ction stackTrace(){var e=jsStackTrace();return M.extraStackTrace&&(e+=` `+M.extraStackTrace()),demangleAll(e)}function ___cxa_allocate_exception(e){return eK(e+16)+16}function _atexit(e,t){}function ___cxa_atexit(e,t){return _atexit(e,t)}function ExceptionInfo(e){this.excPtr=e,this.ptr=e-16,this.set_type=function(e){E[this.ptr+4>>2]=e},this.get_type=function(){return E[this.ptr+4>>2]},this.set_destructor=function(e){E[this.ptr+8>>2]=e},this.get_destructor=function(){return E[this.ptr+8>>2]},this.set_refcount=function(e){E[this.ptr>>2]=e},this.set_caught=function(e){e=+!!e,_[this.ptr+12|0]=e},this.get_caught=function(){return 0!=_[this.ptr+12|0]},this.set_rethrown=function(e){e=+!!e,_[this.ptr+13|0]=e},this.get_rethrown=function(){return 0!=_[this.ptr+13|0]},this.init=function(e,t){this.set_type(e),this.set_destructor(t),this.set_refcount(0),this.set_caught(!1),this.set_rethrown(!1)},this.add_ref=function(){var e=E[this.ptr>>2];E[this.ptr>>2]=e+1},this.release_ref=function(){var e=E[this.ptr>>2];return E[this.ptr>>2]=e-1,assert(e>0),1===e}}function CatchInfo(e){this.free=function(){eZ(this.ptr),this.ptr=0},this.set_base_ptr=function(e){E[this.ptr>>2]=e},this.get_base_ptr=function(){return E[this.ptr>>2]},this.set_adjusted_ptr=function(e){E[this.ptr+4>>2]=e},this.get_adjusted_ptr_addr=function(){return this.ptr+4},this.get_adjusted_ptr=function(){return E[this.ptr+4>>2]},this.get_exception_ptr=function(){if(te(this.get_exception_info().get_type()))return E[this.get_base_ptr()>>2];var e=this.get_adjusted_ptr();return 0!==e?e:this.get_base_ptr()},this.get_exception_info=function(){return new ExceptionInfo(this.get_base_ptr())},void 0===e?(this.ptr=eK(8),this.set_adjusted_ptr(0)):this.ptr=e}var ea=[];function exception_addRef(e){e.add_ref()}var es=0;function ___cxa_begin_catch(e){var t=new CatchInfo(e),r=t.get_exception_info();return!r.get_caught()&&(r.set_caught(!0),es--),r.set_rethrown(!1),ea.push(t),exception_addRef(r),t.get_exception_ptr()}var ec=0;function ___cxa_free_exception(e){try{return eZ(new ExceptionInfo(e).ptr)}catch(e){N("exception during cxa_free_exception: "+e)}}function exception_decRef(e){if(e.release_ref()&&!e.get_rethrown()){var t=e.get_destructor();t&&w.get(t)(e.excPtr),___cxa_free_exception(e.excPtr)}}function ___cxa_end_catch(){e9(0),assert(ea.length>0);var e=ea.pop();exception_decRef(e.get_exception_info()),e.free(),ec=0}function ___resumeException(e){var t=new CatchInfo(e),r=t.get_base_ptr();throw ec||(ec=r),t.free(),r+" - Exception catching is disabled, this exception cannot be caught. Compile with -s NO_DISABLE_EXCEPTION_CATCHING or -s EXCEPTION_CATCHING_ALLOWED=[..] to catch."}function ___cxa_find_matching_catch_2(){var e=ec;if(!e)return setTempRet0(0),0;var t=new ExceptionInfo(e).get_type(),r=new CatchInfo;if(r.set_base_ptr(e),r.set_adjusted_ptr(e),!t)return setTempRet0(0),0|r.ptr;for(var n=Array.prototype.slice.call(arguments),o=0;o>2]=e,e}var eu={splitPath:function(e){return/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(e).slice(1)},normalizeArray:function(e,t){for(var r=0,n=e.length-1;n>=0;n--){var o=e[n];"."===o?e.splice(n,1):".."===o?(e.splice(n,1),r++):r&&(e.splice(n,1),r--)}if(t)for(;r;r--)e.unshift("..");return e},normalize:function(e){var t="/"===e.charAt(0),r="/"===e.substr(-1);return(e=eu.normalizeArray(e.split("/").filter(function(e){return!!e}),!t).join("/"))||t||(e="."),e&&r&&(e+="/"),(t?"/":"")+e},dirname:function(e){var t=eu.splitPath(e),r=t[0],n=t[1];return r||n?(n&&(n=n.substr(0,n.length-1)),r+n):"."},basename:function(e){if("/"===e)return"/";var t=(e=(e=eu.normalize(e)).replace(/\/$/,"")).lastIndexOf("/");return -1===t?e:e.substr(t+1)},extname:function(e){return eu.splitPath(e)[3]},join:function(){var e=Array.prototype.slice.call(arguments,0);return eu.normalize(e.join("/"))},join2:function(e,t){return eu.normalize(e+"/"+t)}};function getRandomDevice(){if("object"==typeof crypto&&"function"==typeof crypto.getRandomValues){var e=new Uint8Array(1);return function(){return crypto.getRandomValues(e),e[0]}}if(j)try{var t=require("crypto");return function(){return t.randomBytes(1)[0]}}catch{}return function(){abort("no cryptographic support found for randomDevice. consider polyfilling it if you want to use something insecure like Math.random(), e.g. put this in a --pre-js: var crypto = { getRandomValues: function(array) { for (var i = 0; i < array.length; i++) array[i] = (Math.random()*256)|0 } };")}}var ed={resolve:function(){for(var e="",t=!1,r=arguments.length-1;r>=-1&&!t;r--){var n=r>=0?arguments[r]:eg.cwd();if("string"!=typeof n)throw TypeError("Arguments to path.resolve must be strings");if(!n)return"";e=n+"/"+e,t="/"===n.charAt(0)}return e=eu.normalizeArray(e.split("/").filter(function(e){return!!e}),!t).join("/"),(t?"/":"")+e||"."},relative:function(e,t){function trim(e){for(var t=0;t=0&&""===e[r];r--);return t>r?[]:e.slice(t,r-t+1)}e=ed.resolve(e).substr(1),t=ed.resolve(t).substr(1);for(var r=trim(e.split("/")),n=trim(t.split("/")),o=Math.min(r.length,n.length),i=o,a=0;a0?r.slice(0,n).toString("utf-8"):null}else"u">typeof window&&"function"==typeof window.prompt?null!==(t=window.prompt("Input: "))&&(t+=` `):"function"==typeof readline&&null!==(t=readline())&&(t+=` `);if(!t)return null;e.input=intArrayFromString(t,!0)}return e.input.shift()},put_char:function(e,t){null===t||10===t?(L(UTF8ArrayToString(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},flush:function(e){e.output&&e.output.length>0&&(L(UTF8ArrayToString(e.output,0)),e.output=[])}},default_tty1_ops:{put_char:function(e,t){null===t||10===t?(N(UTF8ArrayToString(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},flush:function(e){e.output&&e.output.length>0&&(N(UTF8ArrayToString(e.output,0)),e.output=[])}}};function zeroMemory(e,t){g.fill(0,e,e+t)}function alignMemory(e,t){return assert(t,"alignment argument is required"),Math.ceil(e/t)*t}function mmapAlloc(e){var t=tt(65536,e=alignMemory(e,65536));return t?(zeroMemory(t,e),t):0}var ef={ops_table:null,mount:function(e){return ef.createNode(null,"/",16895,0)},createNode:function(e,t,r,n){if(eg.isBlkdev(r)||eg.isFIFO(r))throw new eg.ErrnoError(63);ef.ops_table||(ef.ops_table={dir:{node:{getattr:ef.node_ops.getattr,setattr:ef.node_ops.setattr,lookup:ef.node_ops.lookup,mknod:ef.node_ops.mknod,rename:ef.node_ops.rename,unlink:ef.node_ops.unlink,rmdir:ef.node_ops.rmdir,readdir:ef.node_ops.readdir,symlink:ef.node_ops.symlink},stream:{llseek:ef.stream_ops.llseek}},file:{node:{getattr:ef.node_ops.getattr,setattr:ef.node_ops.setattr},stream:{llseek:ef.stream_ops.llseek,read:ef.stream_ops.read,write:ef.stream_ops.write,allocate:ef.stream_ops.allocate,mmap:ef.stream_ops.mmap,msync:ef.stream_ops.msync}},link:{node:{getattr:ef.node_ops.getattr,setattr:ef.node_ops.setattr,readlink:ef.node_ops.readlink},stream:{}},chrdev:{node:{getattr:ef.node_ops.getattr,setattr:ef.node_ops.setattr},stream:eg.chrdev_stream_ops}});var o=eg.createNode(e,t,r,n);return eg.isDir(o.mode)?(o.node_ops=ef.ops_table.dir.node,o.stream_ops=ef.ops_table.dir.stream,o.contents={}):eg.isFile(o.mode)?(o.node_ops=ef.ops_table.file.node,o.stream_ops=ef.ops_table.file.stream,o.usedBytes=0,o.contents=null):eg.isLink(o.mode)?(o.node_ops=ef.ops_table.link.node,o.stream_ops=ef.ops_table.link.stream):eg.isChrdev(o.mode)&&(o.node_ops=ef.ops_table.chrdev.node,o.stream_ops=ef.ops_table.chrdev.stream),o.timestamp=Date.now(),e&&(e.contents[t]=o,e.timestamp=o.timestamp),o},getFileDataAsTypedArray:function(e){return e.contents?e.contents.subarray?e.contents.subarray(0,e.usedBytes):new Uint8Array(e.contents):new Uint8Array(0)},expandFileStorage:function(e,t){var r=e.contents?e.contents.length:0;if(!(r>=t)){t=Math.max(t,r*(r<1048576?2:1.125)>>>0),0!=r&&(t=Math.max(t,256));var n=e.contents;e.contents=new Uint8Array(t),e.usedBytes>0&&e.contents.set(n.subarray(0,e.usedBytes),0)}},resizeFileStorage:function(e,t){if(e.usedBytes!=t)if(0==t)e.contents=null,e.usedBytes=0;else{var r=e.contents;e.contents=new Uint8Array(t),r&&e.contents.set(r.subarray(0,Math.min(t,e.usedBytes))),e.usedBytes=t}},node_ops:{getattr:function(e){var t={};return t.dev=eg.isChrdev(e.mode)?e.id:1,t.ino=e.id,t.mode=e.mode,t.nlink=1,t.uid=0,t.gid=0,t.rdev=e.rdev,eg.isDir(e.mode)?t.size=4096:eg.isFile(e.mode)?t.size=e.usedBytes:eg.isLink(e.mode)?t.size=e.link.length:t.size=0,t.atime=new Date(e.timestamp),t.mtime=new Date(e.timestamp),t.ctime=new Date(e.timestamp),t.blksize=4096,t.blocks=Math.ceil(t.size/t.blksize),t},setattr:function(e,t){void 0!==t.mode&&(e.mode=t.mode),void 0!==t.timestamp&&(e.timestamp=t.timestamp),void 0!==t.size&&ef.resizeFileStorage(e,t.size)},lookup:function(e,t){throw eg.genericErrors[44]},mknod:function(e,t,r,n){return ef.createNode(e,t,r,n)},rename:function(e,t,r){if(eg.isDir(e.mode)){var n;try{n=eg.lookupNode(t,r)}catch{}if(n)for(var o in n.contents)throw new eg.ErrnoError(55)}delete e.parent.contents[e.name],e.parent.timestamp=Date.now(),e.name=r,t.contents[r]=e,t.timestamp=e.parent.timestamp,e.parent=t},unlink:function(e,t){delete e.contents[t],e.timestamp=Date.now()},rmdir:function(e,t){var r=eg.lookupNode(e,t);for(var n in r.contents)throw new eg.ErrnoError(55);delete e.contents[t],e.timestamp=Date.now()},readdir:function(e){var t=[".",".."];for(var r in e.contents)e.contents.hasOwnProperty(r)&&t.push(r);return t},symlink:function(e,t,r){var n=ef.createNode(e,t,41471,0);return n.link=r,n},readlink:function(e){if(!eg.isLink(e.mode))throw new eg.ErrnoError(28);return e.link}},stream_ops:{read:function(e,t,r,n,o){var i=e.node.contents;if(o>=e.node.usedBytes)return 0;var a=Math.min(e.node.usedBytes-o,n);if(assert(a>=0),a>8&&i.subarray)t.set(i.subarray(o,o+a),r);else for(var s=0;s0||n+r8)throw new eg.ErrnoError(32);for(var o=eu.normalizeArray(e.split("/").filter(function(e){return!!e}),!1),i=eg.root,a="/",s=0;s40)throw new eg.ErrnoError(32)}}return{path:a,node:i}},getPath:function(e){for(var t;;){if(eg.isRoot(e)){var r=e.mount.mountpoint;if(!t)return r;return"/"!==r[r.length-1]?r+"/"+t:r+t}t=t?e.name+"/"+t:e.name,e=e.parent}},hashName:function(e,t){for(var r=0,n=0;n>>0)%eg.nameTable.length},hashAddNode:function(e){var t=eg.hashName(e.parent.id,e.name);e.name_next=eg.nameTable[t],eg.nameTable[t]=e},hashRemoveNode:function(e){var t=eg.hashName(e.parent.id,e.name);if(eg.nameTable[t]===e)eg.nameTable[t]=e.name_next;else for(var r=eg.nameTable[t];r;){if(r.name_next===e){r.name_next=e.name_next;break}r=r.name_next}},lookupNode:function(e,t){var r=eg.mayLookup(e);if(r)throw new eg.ErrnoError(r,e);for(var n=eg.hashName(e.id,t),o=eg.nameTable[n];o;o=o.name_next){var i=o.name;if(o.parent.id===e.id&&i===t)return o}return eg.lookup(e,t)},createNode:function(e,t,r,n){assert("object"==typeof e);var o=new eg.FSNode(e,t,r,n);return eg.hashAddNode(o),o},destroyNode:function(e){eg.hashRemoveNode(e)},isRoot:function(e){return e===e.parent},isMountpoint:function(e){return!!e.mounted},isFile:function(e){return(61440&e)==32768},isDir:function(e){return(61440&e)==16384},isLink:function(e){return(61440&e)==40960},isChrdev:function(e){return(61440&e)==8192},isBlkdev:function(e){return(61440&e)==24576},isFIFO:function(e){return(61440&e)==4096},isSocket:function(e){return(49152&e)==49152},flagModes:{r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},modeStringToFlags:function(e){var t=eg.flagModes[e];if(void 0===t)throw Error("Unknown file open mode: "+e);return t},flagsToPermissionString:function(e){var t=["r","w","rw"][3&e];return 512&e&&(t+="w"),t},nodePermissions:function(e,t){return eg.ignorePermissions?0:t.includes("r")&&!(292&e.mode)||t.includes("w")&&!(146&e.mode)||t.includes("x")&&!(73&e.mode)?2:0},mayLookup:function(e){var t=eg.nodePermissions(e,"x");return t||2*!e.node_ops.lookup},mayCreate:function(e,t){try{return eg.lookupNode(e,t),20}catch(e){}return eg.nodePermissions(e,"wx")},mayDelete:function(e,t,r){try{n=eg.lookupNode(e,t)}catch(e){return e.errno}var n,o=eg.nodePermissions(e,"wx");if(o)return o;if(r){if(!eg.isDir(n.mode))return 54;if(eg.isRoot(n)||eg.getPath(n)===eg.cwd())return 10}else if(eg.isDir(n.mode))return 31;return 0},mayOpen:function(e,t){return e?eg.isLink(e.mode)?32:eg.isDir(e.mode)&&("r"!==eg.flagsToPermissionString(t)||512&t)?31:eg.nodePermissions(e,eg.flagsToPermissionString(t)):44},MAX_OPEN_FDS:4096,nextfd:function(e,t){e=e||0,t=t||eg.MAX_OPEN_FDS;for(var r=e;r<=t;r++)if(!eg.streams[r])return r;throw new eg.ErrnoError(33)},getStream:function(e){return eg.streams[e]},createStream:function(e,t,r){eg.FSStream||(eg.FSStream=function(){},eg.FSStream.prototype={object:{get:function(){return this.node},set:function(e){this.node=e}},isRead:{get:function(){return(2097155&this.flags)!=1}},isWrite:{get:function(){return(2097155&this.flags)!=0}},isAppend:{get:function(){return 1024&this.flags}}});var n=new eg.FSStream;for(var o in e)n[o]=e[o];e=n;var i=eg.nextfd(t,r);return e.fd=i,eg.streams[i]=e,e},closeStream:function(e){eg.streams[e]=null},chrdev_stream_ops:{open:function(e){var t=eg.getDevice(e.node.rdev);e.stream_ops=t.stream_ops,e.stream_ops.open&&e.stream_ops.open(e)},llseek:function(){throw new eg.ErrnoError(70)}},major:function(e){return e>>8},minor:function(e){return 255&e},makedev:function(e,t){return e<<8|t},registerDevice:function(e,t){eg.devices[e]={stream_ops:t}},getDevice:function(e){return eg.devices[e]},getMounts:function(e){for(var t=[],r=[e];r.length;){var n=r.pop();t.push(n),r.push.apply(r,n.mounts)}return t},syncfs:function(e,t){"function"==typeof e&&(t=e,e=!1),eg.syncFSRequests++,eg.syncFSRequests>1&&N("warning: "+eg.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var r=eg.getMounts(eg.root.mount),n=0;function doCallback(e){return assert(eg.syncFSRequests>0),eg.syncFSRequests--,t(e)}function done(e){if(e)return done.errored?void 0:(done.errored=!0,doCallback(e));++n>=r.length&&doCallback(null)}r.forEach(function(t){if(!t.type.syncfs)return done(null);t.type.syncfs(t,e,done)})},mount:function(e,t,r){if("string"==typeof e)throw e;var n,o="/"===r,i=!r;if(o&&eg.root)throw new eg.ErrnoError(10);if(!o&&!i){var a=eg.lookupPath(r,{follow_mount:!1});if(r=a.path,n=a.node,eg.isMountpoint(n))throw new eg.ErrnoError(10);if(!eg.isDir(n.mode))throw new eg.ErrnoError(54)}var s={type:e,opts:t,mountpoint:r,mounts:[]},c=e.mount(s);return c.mount=s,s.root=c,o?eg.root=c:n&&(n.mounted=s,n.mount&&n.mount.mounts.push(s)),c},unmount:function(e){var t=eg.lookupPath(e,{follow_mount:!1});if(!eg.isMountpoint(t.node))throw new eg.ErrnoError(28);var r=t.node,n=r.mounted,o=eg.getMounts(n);Object.keys(eg.nameTable).forEach(function(e){for(var t=eg.nameTable[e];t;){var r=t.name_next;o.includes(t.mount)&&eg.destroyNode(t),t=r}}),r.mounted=null;var i=r.mount.mounts.indexOf(n);assert(-1!==i),r.mount.mounts.splice(i,1)},lookup:function(e,t){return e.node_ops.lookup(e,t)},mknod:function(e,t,r){var n=eg.lookupPath(e,{parent:!0}).node,o=eu.basename(e);if(!o||"."===o||".."===o)throw new eg.ErrnoError(28);var i=eg.mayCreate(n,o);if(i)throw new eg.ErrnoError(i);if(!n.node_ops.mknod)throw new eg.ErrnoError(63);return n.node_ops.mknod(n,o,t,r)},create:function(e,t){return t=(void 0!==t?t:438)&4095|32768,eg.mknod(e,t,0)},mkdir:function(e,t){return t=(void 0!==t?t:511)&1023|16384,eg.mknod(e,t,0)},mkdirTree:function(e,t){for(var r=e.split("/"),n="",o=0;otypeof XMLHttpRequest)throw 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.");if(i)try{e.contents=intArrayFromString(i(e.url),!0),e.usedBytes=e.contents.length}catch(e){throw new eg.ErrnoError(29)}else throw Error("Cannot load without read() or XMLHttpRequest.")},createLazyFile:function(e,t,r,n,o){function LazyUint8Array(){this.lengthKnown=!1,this.chunks=[]}if(LazyUint8Array.prototype.get=function(e){if(!(e>this.length-1)&&!(e<0)){var t=e%this.chunkSize,r=e/this.chunkSize|0;return this.getter(r)[t]}},LazyUint8Array.prototype.setDataGetter=function(e){this.getter=e},LazyUint8Array.prototype.cacheLength=function(){var e,t=new XMLHttpRequest;if(t.open("HEAD",r,!1),t.send(null),!(t.status>=200&&t.status<300||304===t.status))throw Error("Couldn't load "+r+". Status: "+t.status);var n=Number(t.getResponseHeader("Content-length")),o=(e=t.getResponseHeader("Accept-Ranges"))&&"bytes"===e,i=(e=t.getResponseHeader("Content-Encoding"))&&"gzip"===e,a=1048576;o||(a=n);var doXHR=function(e,t){if(e>t)throw Error("invalid range ("+e+", "+t+") or no bytes requested!");if(t>n-1)throw Error("only "+n+" bytes available! programmer error!");var o=new XMLHttpRequest;if(o.open("GET",r,!1),n!==a&&o.setRequestHeader("Range","bytes="+e+"-"+t),"u">typeof Uint8Array&&(o.responseType="arraybuffer"),o.overrideMimeType&&o.overrideMimeType("text/plain; charset=x-user-defined"),o.send(null),!(o.status>=200&&o.status<300||304===o.status))throw Error("Couldn't load "+r+". Status: "+o.status);return void 0!==o.response?new Uint8Array(o.response||[]):intArrayFromString(o.responseText||"",!0)},s=this;s.setDataGetter(function(e){var t=e*a,r=(e+1)*a-1;if(r=Math.min(r,n-1),void 0===s.chunks[e]&&(s.chunks[e]=doXHR(t,r)),void 0===s.chunks[e])throw Error("doXHR failed!");return s.chunks[e]}),(i||!n)&&(a=n=1,a=n=this.getter(0).length,L("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=n,this._chunkSize=a,this.lengthKnown=!0},"u">typeof XMLHttpRequest){if(!I)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var i=new LazyUint8Array;Object.defineProperties(i,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var a={isDevice:!1,contents:i}}else var a={isDevice:!1,url:r};var s=eg.createFile(e,t,a,n,o);a.contents?s.contents=a.contents:a.url&&(s.contents=null,s.url=a.url),Object.defineProperties(s,{usedBytes:{get:function(){return this.contents.length}}});var c={};return Object.keys(s.stream_ops).forEach(function(e){var t=s.stream_ops[e];c[e]=function(){return eg.forceLoadFile(s),t.apply(null,arguments)}}),c.read=function(e,t,r,n,o){eg.forceLoadFile(s);var i=e.node.contents;if(o>=i.length)return 0;var a=Math.min(i.length-o,n);if(assert(a>=0),i.slice)for(var c=0;c>2]=n.dev,E[r+4>>2]=0,E[r+8>>2]=n.ino,E[r+12>>2]=n.mode,E[r+16>>2]=n.nlink,E[r+20>>2]=n.uid,E[r+24>>2]=n.gid,E[r+28>>2]=n.rdev,E[r+32>>2]=0,D=[n.size>>>0,+Math.abs(O=n.size)>=1?O>0?Math.min(+Math.floor(O/0x100000000),0xffffffff)>>>0:~~Math.ceil((O-(~~O>>>0))/0x100000000)>>>0:0],E[r+40>>2]=D[0],E[r+44>>2]=D[1],E[r+48>>2]=4096,E[r+52>>2]=n.blocks,E[r+56>>2]=n.atime.getTime()/1e3|0,E[r+60>>2]=0,E[r+64>>2]=n.mtime.getTime()/1e3|0,E[r+68>>2]=0,E[r+72>>2]=n.ctime.getTime()/1e3|0,E[r+76>>2]=0,D=[n.ino>>>0,+Math.abs(O=n.ino)>=1?O>0?Math.min(+Math.floor(O/0x100000000),0xffffffff)>>>0:~~Math.ceil((O-(~~O>>>0))/0x100000000)>>>0:0],E[r+80>>2]=D[0],E[r+84>>2]=D[1],0},doMsync:function(e,t,r,n,o){var i=g.slice(e,e+r);eg.msync(t,i,o,r,n)},doMkdir:function(e,t){return"/"===(e=eu.normalize(e))[e.length-1]&&(e=e.substr(0,e.length-1)),eg.mkdir(e,t,0),0},doMknod:function(e,t,r){switch(61440&t){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return -28}return eg.mknod(e,t,r),0},doReadlink:function(e,t,r){if(r<=0)return -28;var n=eg.readlink(e),o=Math.min(r,lengthBytesUTF8(n)),i=_[t+o];return stringToUTF8(n,t,r+1),_[t+o]=i,o},doAccess:function(e,t){if(-8&t)return -28;if(!(r=eg.lookupPath(e,{follow:!0}).node))return -44;var r,n="";return(4&t&&(n+="r"),2&t&&(n+="w"),1&t&&(n+="x"),n&&eg.nodePermissions(r,n))?-2:0},doDup:function(e,t,r){var n=eg.getStream(r);return n&&eg.close(n),eg.open(e,t,0,r,r).fd},doReadv:function(e,t,r,n){for(var o=0,i=0;i>2],s=E[t+(8*i+4)>>2],c=eg.read(e,_,a,s,n);if(c<0)return -1;if(o+=c,c>2],s=E[t+(8*i+4)>>2],c=eg.write(e,_,a,s,n);if(c<0)return -1;o+=c}return o},varargs:void 0,get:function(){return assert(void 0!=em.varargs),em.varargs+=4,E[em.varargs-4>>2]},getStr:function(e){return UTF8ToString(e)},getStreamFromFD:function(e){var t=eg.getStream(e);if(!t)throw new eg.ErrnoError(8);return t},get64:function(e,t){return e>=0?assert(0===t):assert(-1===t),e}};function ___sys_fcntl64(e,t,r){em.varargs=r;try{var n=em.getStreamFromFD(e);switch(t){case 0:var o=em.get();if(o<0)return -28;return eg.open(n.path,n.flags,0,o).fd;case 1:case 2:case 13:case 14:return 0;case 3:return n.flags;case 4:var o=em.get();return n.flags|=o,0;case 12:var o=em.get();return m[o+0>>1]=2,0;case 16:case 8:default:return -28;case 9:return setErrNo(28),-1}}catch(e){return void 0!==eg&&e instanceof eg.ErrnoError||abort(e),-e.errno}}function ___sys_ioctl(e,t,r){em.varargs=r;try{var n=em.getStreamFromFD(e);switch(t){case 21509:case 21505:case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:case 21523:case 21524:if(!n.tty)return -59;return 0;case 21519:if(!n.tty)return -59;var o=em.get();return E[o>>2]=0,0;case 21520:if(!n.tty)return -59;return -28;case 21531:var o=em.get();return eg.ioctl(n,t,o);default:abort("bad ioctl syscall "+t)}}catch(e){return void 0!==eg&&e instanceof eg.ErrnoError||abort(e),-e.errno}}function syscallMmap2(e,t,r,n,o,i){i<<=12;var a,s=!1;if((16&n)!=0&&e%65536!=0)return -28;if((32&n)!=0){if(!(a=mmapAlloc(t)))return -48;s=!0}else{var c=eg.getStream(o);if(!c)return -8;var u=eg.mmap(c,e,t,i,r,n);a=u.ptr,s=u.allocated}return em.mappings[a]={malloc:a,len:t,allocated:s,fd:o,prot:r,flags:n,offset:i},a}function ___sys_mmap2(e,t,r,n,o,i){try{return syscallMmap2(e,t,r,n,o,i)}catch(e){return void 0!==eg&&e instanceof eg.ErrnoError||abort(e),-e.errno}}function ___sys_open(e,t,r){em.varargs=r;try{var n=em.getStr(e),o=r?em.get():0;return eg.open(n,t,o).fd}catch(e){return void 0!==eg&&e instanceof eg.ErrnoError||abort(e),-e.errno}}function ___sys_stat64(e,t){try{return e=em.getStr(e),em.doStat(eg.stat,e,t)}catch(e){return void 0!==eg&&e instanceof eg.ErrnoError||abort(e),-e.errno}}function makeLegalFunctionName(e){if(void 0===e)return"_unknown";var t=(e=e.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return t>=48&&t<=57?"_"+e:e}function createNamedFunction(e,t){return Function("body","return function "+(e=makeLegalFunctionName(e))+`() { "use strict"; return body.apply(this, arguments); }; `)(t)}var eh=[],eE=[{},{value:void 0},{value:null},{value:!0},{value:!1}];function count_emval_handles(){for(var e=0,t=5;t>2])}var ex={},eM={},eS=void 0;function throwInternalError(e){throw new eS(e)}function whenDependentTypesAreResolved(e,t,r){function onComplete(t){var n=r(t);n.length!==e.length&&throwInternalError("Mismatched type converter count");for(var o=0;o>i])},destructorFunction:null})}function ClassHandle_isAliasOf(e){if(!(this instanceof ClassHandle)||!(e instanceof ClassHandle))return!1;for(var t=this.$$.ptrType.registeredClass,r=this.$$.ptr,n=e.$$.ptrType.registeredClass,o=e.$$.ptr;t.baseClass;)r=t.upcast(r),t=t.baseClass;for(;n.baseClass;)o=n.upcast(o),n=n.baseClass;return t===n&&r===o}function shallowCopyInternalPointer(e){return{count:e.count,deleteScheduled:e.deleteScheduled,preservePointerOnDelete:e.preservePointerOnDelete,ptr:e.ptr,ptrType:e.ptrType,smartPtr:e.smartPtr,smartPtrType:e.smartPtrType}}function throwInstanceAlreadyDeleted(e){throwBindingError(e.$$.ptrType.registeredClass.name+" instance already deleted")}function ClassHandle_clone(){if(this.$$.ptr||throwInstanceAlreadyDeleted(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var e=attachFinalizer(Object.create(Object.getPrototypeOf(this),{$$:{value:shallowCopyInternalPointer(this.$$)}}));return e.$$.count.value+=1,e.$$.deleteScheduled=!1,e}function ClassHandle_delete(){this.$$.ptr||throwInstanceAlreadyDeleted(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&throwBindingError("Object already scheduled for deletion"),detachFinalizer(this),releaseClassHandle(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function ClassHandle_isDeleted(){return!this.$$.ptr}function ClassHandle_deleteLater(){return this.$$.ptr||throwInstanceAlreadyDeleted(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&throwBindingError("Object already scheduled for deletion"),ev.push(this),1===ev.length&&ew&&ew(flushPendingDeletes),this.$$.deleteScheduled=!0,this}function init_ClassHandle(){ClassHandle.prototype.isAliasOf=ClassHandle_isAliasOf,ClassHandle.prototype.clone=ClassHandle_clone,ClassHandle.prototype.delete=ClassHandle_delete,ClassHandle.prototype.isDeleted=ClassHandle_isDeleted,ClassHandle.prototype.deleteLater=ClassHandle_deleteLater}function ClassHandle(){}var eF={};function ensureOverloadTable(e,t,r){if(void 0===e[t].overloadTable){var n=e[t];e[t]=function(){return e[t].overloadTable.hasOwnProperty(arguments.length)||throwBindingError("Function '"+r+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+e[t].overloadTable+")!"),e[t].overloadTable[arguments.length].apply(this,arguments)},e[t].overloadTable=[],e[t].overloadTable[n.argCount]=n}}function exposePublicSymbol(e,t,r){M.hasOwnProperty(e)?((void 0===r||void 0!==M[e].overloadTable&&void 0!==M[e].overloadTable[r])&&throwBindingError("Cannot register public name '"+e+"' twice"),ensureOverloadTable(M,e,e),M.hasOwnProperty(r)&&throwBindingError("Cannot register multiple overloads of a function with the same number of arguments ("+r+")!"),M[e].overloadTable[r]=t):(M[e]=t,void 0!==r&&(M[e].numArguments=r))}function RegisteredClass(e,t,r,n,o,i,a,s){this.name=e,this.constructor=t,this.instancePrototype=r,this.rawDestructor=n,this.baseClass=o,this.getActualType=i,this.upcast=a,this.downcast=s,this.pureVirtualFunctions=[]}function upcastPointer(e,t,r){for(;t!==r;)t.upcast||throwBindingError("Expected null or instance of "+r.name+", got an instance of "+t.name),e=t.upcast(e),t=t.baseClass;return e}function constNoSmartPtrRawPointerToWireType(e,t){if(null===t)return this.isReference&&throwBindingError("null is not a valid "+this.name),0;t.$$||throwBindingError('Cannot pass "'+_embind_repr(t)+'" as a '+this.name),t.$$.ptr||throwBindingError("Cannot pass deleted object as a pointer of type "+this.name);var r=t.$$.ptrType.registeredClass;return upcastPointer(t.$$.ptr,r,this.registeredClass)}function genericPointerToWireType(e,t){if(null===t)return(this.isReference&&throwBindingError("null is not a valid "+this.name),this.isSmartPointer)?(r=this.rawConstructor(),null!==e&&e.push(this.rawDestructor,r),r):0;t.$$||throwBindingError('Cannot pass "'+_embind_repr(t)+'" as a '+this.name),t.$$.ptr||throwBindingError("Cannot pass deleted object as a pointer of type "+this.name),!this.isConst&&t.$$.ptrType.isConst&&throwBindingError("Cannot convert argument of type "+(t.$$.smartPtrType?t.$$.smartPtrType.name:t.$$.ptrType.name)+" to parameter type "+this.name);var r,n=t.$$.ptrType.registeredClass;if(r=upcastPointer(t.$$.ptr,n,this.registeredClass),this.isSmartPointer)switch(void 0===t.$$.smartPtr&&throwBindingError("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:t.$$.smartPtrType===this?r=t.$$.smartPtr:throwBindingError("Cannot convert argument of type "+(t.$$.smartPtrType?t.$$.smartPtrType.name:t.$$.ptrType.name)+" to parameter type "+this.name);break;case 1:r=t.$$.smartPtr;break;case 2:if(t.$$.smartPtrType===this)r=t.$$.smartPtr;else{var o=t.clone();r=this.rawShare(r,__emval_register(function(){o.delete()})),null!==e&&e.push(this.rawDestructor,r)}break;default:throwBindingError("Unsupporting sharing policy")}return r}function nonConstNoSmartPtrRawPointerToWireType(e,t){if(null===t)return this.isReference&&throwBindingError("null is not a valid "+this.name),0;t.$$||throwBindingError('Cannot pass "'+_embind_repr(t)+'" as a '+this.name),t.$$.ptr||throwBindingError("Cannot pass deleted object as a pointer of type "+this.name),t.$$.ptrType.isConst&&throwBindingError("Cannot convert argument of type "+t.$$.ptrType.name+" to parameter type "+this.name);var r=t.$$.ptrType.registeredClass;return upcastPointer(t.$$.ptr,r,this.registeredClass)}function RegisteredPointer_getPointee(e){return this.rawGetPointee&&(e=this.rawGetPointee(e)),e}function RegisteredPointer_destructor(e){this.rawDestructor&&this.rawDestructor(e)}function RegisteredPointer_deleteObject(e){null!==e&&e.delete()}function downcastPointer(e,t,r){if(t===r)return e;if(void 0===r.baseClass)return null;var n=downcastPointer(e,t,r.baseClass);return null===n?null:r.downcast(n)}function getInheritedInstance(e,t){return eT[t=getBasestPointer(e,t)]}function makeClassHandle(e,t){return t.ptrType&&t.ptr||throwInternalError("makeClassHandle requires ptr and ptrType"),!!t.smartPtrType!=!!t.smartPtr&&throwInternalError("Both smartPtrType and smartPtr must be specified"),t.count={value:1},attachFinalizer(Object.create(e,{$$:{value:t}}))}function RegisteredPointer_fromWireType(e){var t,r=this.getPointee(e);if(!r)return this.destructor(e),null;var n=getInheritedInstance(this.registeredClass,r);if(void 0!==n)if(0===n.$$.count.value)return n.$$.ptr=r,n.$$.smartPtr=e,n.clone();else{var o=n.clone();return this.destructor(e),o}function makeDefaultHandle(){return this.isSmartPointer?makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:r,smartPtrType:this,smartPtr:e}):makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this,ptr:e})}var i=eF[this.registeredClass.getActualType(r)];if(!i)return makeDefaultHandle.call(this);t=this.isConst?i.constPointerType:i.pointerType;var a=downcastPointer(r,this.registeredClass,t.registeredClass);return null===a?makeDefaultHandle.call(this):this.isSmartPointer?makeClassHandle(t.registeredClass.instancePrototype,{ptrType:t,ptr:a,smartPtrType:this,smartPtr:e}):makeClassHandle(t.registeredClass.instancePrototype,{ptrType:t,ptr:a})}function init_RegisteredPointer(){RegisteredPointer.prototype.getPointee=RegisteredPointer_getPointee,RegisteredPointer.prototype.destructor=RegisteredPointer_destructor,RegisteredPointer.prototype.argPackAdvance=8,RegisteredPointer.prototype.readValueFromPointer=simpleReadValueFromPointer,RegisteredPointer.prototype.deleteObject=RegisteredPointer_deleteObject,RegisteredPointer.prototype.fromWireType=RegisteredPointer_fromWireType}function RegisteredPointer(e,t,r,n,o,i,a,s,c,u,d){this.name=e,this.registeredClass=t,this.isReference=r,this.isConst=n,this.isSmartPointer=o,this.pointeeType=i,this.sharingPolicy=a,this.rawGetPointee=s,this.rawConstructor=c,this.rawShare=u,this.rawDestructor=d,o||void 0!==t.baseClass?this.toWireType=genericPointerToWireType:(n?this.toWireType=constNoSmartPtrRawPointerToWireType:this.toWireType=nonConstNoSmartPtrRawPointerToWireType,this.destructorFunction=null)}function replacePublicSymbol(e,t,r){M.hasOwnProperty(e)||throwInternalError("Replacing nonexistant public symbol"),void 0!==M[e].overloadTable&&void 0!==r?M[e].overloadTable[r]=t:(M[e]=t,M[e].argCount=r)}function dynCallLegacy(e,t,r){assert("dynCall_"+e in M,"bad function pointer type - no table for sig '"+e+"'"),r&&r.length?assert(r.length===e.substring(1).replace(/j/g,"--").length):assert(1==e.length);var n=M["dynCall_"+e];return r&&r.length?n.apply(null,[t].concat(r)):n.call(null,t)}function dynCall(e,t,r){return e.includes("j")?dynCallLegacy(e,t,r):(assert(w.get(t),"missing table entry in dynCall: "+t),w.get(t).apply(null,r))}function getDynCaller(e,t){assert(e.includes("j"),"getDynCaller should only be called with i64 sigs");var r=[];return function(){r.length=arguments.length;for(var n=0;n0?", ":"")+l),f+=(u?"var rv = ":"")+"invoker(fn"+(l.length>0?", ":"")+l+`); `,s)f+=`runDestructors(destructors); `;else for(var c=a?1:2;c>2)+n]);return r}function __embind_register_class_class_function(e,t,r,n,o,i,a){var s=heap32VectorToArray(r,n);t=readLatin1String(t),i=embind__requireFunction(o,i),whenDependentTypesAreResolved([],[e],function(e){var n=(e=e[0]).name+"."+t;function unboundTypesHandler(){throwUnboundTypeError("Cannot call "+n+" due to unbound types",s)}t.startsWith("@@")&&(t=Symbol[t.substring(2)]);var o=e.registeredClass.constructor;return void 0===o[t]?(unboundTypesHandler.argCount=r-1,o[t]=unboundTypesHandler):(ensureOverloadTable(o,t,n),o[t].overloadTable[r-1]=unboundTypesHandler),whenDependentTypesAreResolved([],s,function(e){var s=craftInvokerFunction(n,[e[0],null].concat(e.slice(1)),null,i,a);return void 0===o[t].overloadTable?(s.argCount=r-1,o[t]=s):o[t].overloadTable[r-1]=s,[]}),[]})}function __embind_register_class_constructor(e,t,r,n,o,i){assert(t>0);var a=heap32VectorToArray(t,r);o=embind__requireFunction(n,o),whenDependentTypesAreResolved([],[e],function(e){var r="constructor "+(e=e[0]).name;if(void 0===e.registeredClass.constructor_body&&(e.registeredClass.constructor_body=[]),void 0!==e.registeredClass.constructor_body[t-1])throw new eO("Cannot register multiple constructors with identical number of parameters ("+(t-1)+") for class '"+e.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");return e.registeredClass.constructor_body[t-1]=function(){throwUnboundTypeError("Cannot construct "+e.name+" due to unbound types",a)},whenDependentTypesAreResolved([],a,function(n){return n.splice(1,0,null),e.registeredClass.constructor_body[t-1]=craftInvokerFunction(r,n,null,o,i),[]}),[]})}function __embind_register_class_function(e,t,r,n,o,i,a,s){var c=heap32VectorToArray(r,n);t=readLatin1String(t),i=embind__requireFunction(o,i),whenDependentTypesAreResolved([],[e],function(e){var n=(e=e[0]).name+"."+t;function unboundTypesHandler(){throwUnboundTypeError("Cannot call "+n+" due to unbound types",c)}t.startsWith("@@")&&(t=Symbol[t.substring(2)]),s&&e.registeredClass.pureVirtualFunctions.push(t);var o=e.registeredClass.instancePrototype,u=o[t];return void 0===u||void 0===u.overloadTable&&u.className!==e.name&&u.argCount===r-2?(unboundTypesHandler.argCount=r-2,unboundTypesHandler.className=e.name,o[t]=unboundTypesHandler):(ensureOverloadTable(o,t,n),o[t].overloadTable[r-2]=unboundTypesHandler),whenDependentTypesAreResolved([],c,function(s){var c=craftInvokerFunction(n,s,e,i,a);return void 0===o[t].overloadTable?(c.argCount=r-2,o[t]=c):o[t].overloadTable[r-2]=c,[]}),[]})}function validateThis(e,t,r){return e instanceof Object||throwBindingError(r+' with invalid "this": '+e),e instanceof t.registeredClass.constructor||throwBindingError(r+' incompatible with "this" of type '+e.constructor.name),e.$$.ptr||throwBindingError("cannot call emscripten binding method "+r+" on deleted object"),upcastPointer(e.$$.ptr,e.$$.ptrType.registeredClass,t.registeredClass)}function __embind_register_class_property(e,t,r,n,o,i,a,s,c,u){t=readLatin1String(t),o=embind__requireFunction(n,o),whenDependentTypesAreResolved([],[e],function(e){var n=(e=e[0]).name+"."+t,d={get:function(){throwUnboundTypeError("Cannot access "+n+" due to unbound types",[r,a])},enumerable:!0,configurable:!0};return c?d.set=function(){throwUnboundTypeError("Cannot access "+n+" due to unbound types",[r,a])}:d.set=function(e){throwBindingError(n+" is a read-only property")},Object.defineProperty(e.registeredClass.instancePrototype,t,d),whenDependentTypesAreResolved([],c?[r,a]:[r],function(r){var a=r[0],d={get:function(){var t=validateThis(this,e,n+" getter");return a.fromWireType(o(i,t))},enumerable:!0};if(c){c=embind__requireFunction(s,c);var l=r[1];d.set=function(t){var r=validateThis(this,e,n+" setter"),o=[];c(u,r,l.toWireType(o,t)),runDestructors(o)}}return Object.defineProperty(e.registeredClass.instancePrototype,t,d),[]}),[]})}function __emval_decref(e){e>4&&0==--eE[e].refcount&&(eE[e]=void 0,eh.push(e))}function __embind_register_emval(e,t){registerType(e,{name:t=readLatin1String(t),fromWireType:function(e){var t=eE[e].value;return __emval_decref(e),t},toWireType:function(e,t){return __emval_register(t)},argPackAdvance:8,readValueFromPointer:simpleReadValueFromPointer,destructorFunction:null})}function _embind_repr(e){if(null===e)return"null";var t=typeof e;return"object"===t||"array"===t||"function"===t?e.toString():""+e}function floatReadValueFromPointer(e,t){switch(t){case 2:return function(e){return this.fromWireType(y[e>>2])};case 3:return function(e){return this.fromWireType(v[e>>3])};default:throw TypeError("Unknown float type: "+e)}}function __embind_register_float(e,t,r){var n=getShiftFromSize(r);registerType(e,{name:t=readLatin1String(t),fromWireType:function(e){return e},toWireType:function(e,t){if("number"!=typeof t&&"boolean"!=typeof t)throw TypeError('Cannot convert "'+_embind_repr(t)+'" to '+this.name);return t},argPackAdvance:8,readValueFromPointer:floatReadValueFromPointer(t,n),destructorFunction:null})}function __embind_register_function(e,t,r,n,o,i){var a=heap32VectorToArray(t,r);e=readLatin1String(e),o=embind__requireFunction(n,o),exposePublicSymbol(e,function(){throwUnboundTypeError("Cannot call "+e+" due to unbound types",a)},t-1),whenDependentTypesAreResolved([],a,function(r){var n=[r[0],null].concat(r.slice(1));return replacePublicSymbol(e,craftInvokerFunction(e,n,null,o,i),t-1),[]})}function integerReadValueFromPointer(e,t,r){switch(t){case 0:return r?function(e){return _[e]}:function(e){return g[e]};case 1:return r?function(e){return m[e>>1]}:function(e){return h[e>>1]};case 2:return r?function(e){return E[e>>2]}:function(e){return b[e>>2]};default:throw TypeError("Unknown integer type: "+e)}}function __embind_register_integer(e,t,r,n,o){t=readLatin1String(t),-1===o&&(o=0xffffffff);var i=getShiftFromSize(r),fromWireType=function(e){return e};if(0===n){var a=32-8*r;fromWireType=function(e){return e<>>a}}var s=t.includes("unsigned");registerType(e,{name:t,fromWireType:fromWireType,toWireType:function(e,r){if("number"!=typeof r&&"boolean"!=typeof r)throw TypeError('Cannot convert "'+_embind_repr(r)+'" to '+this.name);if(ro)throw TypeError('Passing a number "'+_embind_repr(r)+'" from JS side to C/C++ side to an argument of type "'+t+'", which is outside the valid range ['+n+", "+o+"]!");return s?r>>>0:0|r},argPackAdvance:8,readValueFromPointer:integerReadValueFromPointer(t,i,0!==n),destructorFunction:null})}function __embind_register_memory_view(e,t,r){var n=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][t];function decodeMemoryView(e){e>>=2;var t=b,r=t[e],o=t[e+1];return new n(p,o,r)}registerType(e,{name:r=readLatin1String(r),fromWireType:decodeMemoryView,argPackAdvance:8,readValueFromPointer:decodeMemoryView},{ignoreDuplicateRegistrations:!0})}function __embind_register_std_string(e,t){var r="std::string"===(t=readLatin1String(t));registerType(e,{name:t,fromWireType:function(e){var t,n=b[e>>2];if(r)for(var o=e+4,i=0;i<=n;++i){var a=e+4+i;if(i==n||0==g[a]){var s=a-o,c=UTF8ToString(o,s);void 0===t?t=c:(t+="\0",t+=c),o=a+1}}else{for(var u=Array(n),i=0;i>2]=o,r&&n)stringToUTF8(t,i+4,o+1);else if(n)for(var a=0;a255&&(eZ(i),throwBindingError("String has UTF-16 code units that do not fit in 8 bits")),g[i+4+a]=s}else for(var a=0;a>2],a=i(),c=e+4,u=0;u<=o;++u){var d=e+4+u*t;if(u==o||0==a[d>>s]){var l=d-c,f=n(c,l);void 0===r?r=f:(r+="\0",r+=f),c=d+t}}return eZ(e),r},toWireType:function(e,n){"string"!=typeof n&&throwBindingError("Cannot pass non-string to C++ string type "+r);var i=a(n),c=eK(4+i+t);return b[c>>2]=i>>s,o(n,c+4,i+t),null!==e&&e.push(eZ,c),c},argPackAdvance:8,readValueFromPointer:simpleReadValueFromPointer,destructorFunction:function(e){eZ(e)}})}function __embind_register_value_object(e,t,r,n,o,i){eR[e]={name:readLatin1String(t),rawConstructor:embind__requireFunction(r,n),rawDestructor:embind__requireFunction(o,i),fields:[]}}function __embind_register_value_object_field(e,t,r,n,o,i,a,s,c,u){eR[e].fields.push({fieldName:readLatin1String(t),getterReturnType:r,getter:embind__requireFunction(n,o),getterContext:i,setterArgumentType:a,setter:embind__requireFunction(s,c),setterContext:u})}function __embind_register_void(e,t){registerType(e,{isVoid:!0,name:t=readLatin1String(t),argPackAdvance:0,fromWireType:function(){},toWireType:function(e,t){}})}var ek={};function getStringOrSymbol(e){var t=ek[e];return void 0===t?readLatin1String(e):t}var eI=[];function __emval_call_void_method(e,t,r,n){e=eI[e],e(t=requireHandle(t),r=getStringOrSymbol(r),null,n)}function __emval_addMethodCaller(e){var t=eI.length;return eI.push(e),t}function __emval_lookupTypes(e,t){for(var r=Array(e),n=0;n>2)+n],"parameter "+n);return r}function __emval_get_method_caller(e,t){for(var r=__emval_lookupTypes(e,t),n=r[0],o=n.name+"_$"+r.slice(1).map(function(e){return e.name}).join("_")+"$",i=["retType"],a=[n],s="",c=0;c4&&(eE[e].refcount+=1)}function __emval_take_value(e,t){return __emval_register((e=requireRegisteredType(e,"_emval_take_value")).readValueFromPointer(t))}function _abort(){abort()}function _clock_gettime(e,t){var r;if(0===e)r=Date.now();else{if(1!==e&&4!==e)return setErrNo(28),-1;r=P()}return E[t>>2]=r/1e3|0,E[t+4>>2]=r%1e3*1e6|0,0}function _dlopen(e,t){abort("To use dlopen, you need to use Emscripten's linking support, see https://github.com/emscripten-core/emscripten/wiki/Linking")}function _dlsym(e,t){abort("To use dlopen, you need to use Emscripten's linking support, see https://github.com/emscripten-core/emscripten/wiki/Linking")}var ej=[];function readAsmConstArgs(e,t){for(assert(Array.isArray(ej)),assert(t%16==0),ej.length=0,t>>=2;r=g[e++];){assert(100===r||102===r||105===r);var r,n=r<105;n&&1&t&&t++,ej.push(n?v[t++>>1]:E[t]),++t}return ej}function _emscripten_asm_const_int(e,t,r){var n=readAsmConstArgs(t,r);return eo.hasOwnProperty(e)||abort("No EM_ASM constant found at address "+e),eo[e].apply(null,n)}function _emscripten_get_heap_max(){return 0x80000000}function _emscripten_memcpy_big(e,t,r){g.copyWithin(e,t,t+r)}function _emscripten_pc_get_function(e){abort("Cannot use emscripten_pc_get_function without -s USE_OFFSET_CONVERTER")}function emscripten_realloc_buffer(e){try{return l.grow(e-p.byteLength+65535>>>16),updateGlobalBufferAndViews(l.buffer),1}catch(t){N("emscripten_realloc_buffer: Attempted to grow heap from "+p.byteLength+" bytes to "+e+" bytes, but got error: "+t)}}function _emscripten_resize_heap(e){var t=g.length;if(assert((e>>>=0)>t),e>0x80000000)return N("Cannot enlarge memory, asked to go up to "+e+" bytes, but the limit is 2147483648 bytes!"),!1;for(var r=1;r<=4;r*=2){var n=t*(1+.2/r);n=Math.min(n,e+0x6000000);var o=Math.min(0x80000000,alignUp(Math.max(e,n),65536));if(emscripten_realloc_buffer(o))return!0}return N("Failed to grow the heap from "+t+" bytes to "+o+" bytes, not enough memory!"),!1}function _emscripten_generate_pc(e){abort("Cannot use emscripten_generate_pc (needed by __builtin_return_address) without -s USE_OFFSET_CONVERTER")}var eC={};function __emscripten_save_in_unwind_cache(e){e.forEach(function(e){var t=_emscripten_generate_pc(e);t&&(eC[t]=e)})}function _emscripten_stack_snapshot(){var e=Error().stack.split(` `);return"Error"==e[0]&&e.shift(),__emscripten_save_in_unwind_cache(e),eC.last_addr=_emscripten_generate_pc(e[2]),eC.last_stack=e,eC.last_addr}function _emscripten_stack_unwind_buffer(e,t,r){eC.last_addr==e?n=eC.last_stack:("Error"==(n=Error().stack.split(` `))[0]&&n.shift(),__emscripten_save_in_unwind_cache(n));for(var n,o=2;n[o]&&_emscripten_generate_pc(n[o])!=e;)++o;for(var i=0;i>2]=_emscripten_generate_pc(n[i+o]);return i}function _emscripten_thread_sleep(e){for(var t=P();P()-t>1,u=new Uint16Array(c),n=0,d=0;(u[n++]=d,!(n>=c))&&(u[n++]=d+1,!(n>=c)&&(u[n++]=d+2,!(n>=c))&&(u[n++]=d,!(n>=c))&&(u[n++]=d+2,!(n>=c))&&(u[n++]=d+3,!(n>=c)));){;d+=4}t.GLctx.bufferData(34963,u,35044),t.GLctx.bindBuffer(34963,null)}},getTempVertexBuffer:function(e){var t=eU.log2ceilLookup(e),r=eU.currentContext.tempVertexBuffers1[t],n=eU.currentContext.tempVertexBufferCounters1[t];eU.currentContext.tempVertexBufferCounters1[t]=eU.currentContext.tempVertexBufferCounters1[t]+1&eU.numTempVertexBuffersPerSize-1;var o=r[n];if(o)return o;var i=R.getParameter(34964);return r[n]=R.createBuffer(),R.bindBuffer(34962,r[n]),R.bufferData(34962,1<>2]:-1;o+=UTF8ToString(E[r+4*i>>2],a<0?void 0:a)}return o},calcBufLength:function(e,t,r,n){return r>0?n*r:e*eU.byteSizeByType[t-eU.byteSizeByTypeRoot]*n},usedTempBuffers:[],preDrawHandleClientVertexAttribBindings:function(e){eU.resetBufferBinding=!1;for(var t=0;t1?e.getContext("webgl2",t):e.getContext("webgl",t);return r?eU.registerContext(r,t):0},enableOffscreenFramebufferAttributes:function(e){e.renderViaOffscreenBackBuffer=!0,e.preserveDrawingBuffer=!0},createOffscreenFramebuffer:function(e){var t=e.GLctx,r=t.createFramebuffer();if(t.bindFramebuffer(36160,r),e.defaultFbo=r,e.defaultFboForbidBlitFramebuffer=!1,t.getContextAttributes().antialias)e.defaultFboForbidBlitFramebuffer=!0;else{var n=navigator.userAgent.toLowerCase().match(/firefox\/(\d\d)/);null!=n&&(e.defaultFboForbidBlitFramebuffer=n[1]<67)}e.defaultColorTarget=t.createTexture(),e.defaultDepthTarget=t.createRenderbuffer(),eU.resizeOffscreenFramebuffer(e),t.bindTexture(3553,e.defaultColorTarget),t.texParameteri(3553,10241,9728),t.texParameteri(3553,10240,9728),t.texParameteri(3553,10242,33071),t.texParameteri(3553,10243,33071),t.texImage2D(3553,0,6408,t.canvas.width,t.canvas.height,0,6408,5121,null),t.framebufferTexture2D(36160,36064,3553,e.defaultColorTarget,0),t.bindTexture(3553,null),t.createRenderbuffer(),t.bindRenderbuffer(36161,e.defaultDepthTarget),t.renderbufferStorage(36161,33189,t.canvas.width,t.canvas.height),t.framebufferRenderbuffer(36160,36096,36161,e.defaultDepthTarget),t.bindRenderbuffer(36161,null);var o=t.createBuffer();t.bindBuffer(34962,o),t.bufferData(34962,new Float32Array([-1,-1,-1,1,1,-1,1,1]),35044),t.bindBuffer(34962,null),e.blitVB=o;var i=t.createShader(35633);t.shaderSource(i,"attribute vec2 pos;varying lowp vec2 tex;void main() { tex = pos * 0.5 + vec2(0.5,0.5); gl_Position = vec4(pos, 0.0, 1.0); }"),t.compileShader(i);var a=t.createShader(35632);t.shaderSource(a,"varying lowp vec2 tex;uniform sampler2D sampler;void main() { gl_FragColor = texture2D(sampler, tex); }"),t.compileShader(a);var s=t.createProgram();t.attachShader(s,i),t.attachShader(s,a),t.linkProgram(s),e.blitProgram=s,e.blitPosLoc=t.getAttribLocation(s,"pos"),t.useProgram(s),t.uniform1i(t.getUniformLocation(s,"sampler"),0),t.useProgram(null),e.defaultVao=void 0,t.createVertexArray&&(e.defaultVao=t.createVertexArray(),t.bindVertexArray(e.defaultVao),t.enableVertexAttribArray(e.blitPosLoc),t.bindVertexArray(null))},resizeOffscreenFramebuffer:function(e){var t=e.GLctx;if(e.defaultColorTarget){var r=t.getParameter(32873);t.bindTexture(3553,e.defaultColorTarget),t.texImage2D(3553,0,6408,t.drawingBufferWidth,t.drawingBufferHeight,0,6408,5121,null),t.bindTexture(3553,r)}if(e.defaultDepthTarget){var n=t.getParameter(36007);t.bindRenderbuffer(36161,e.defaultDepthTarget),t.renderbufferStorage(36161,33189,t.drawingBufferWidth,t.drawingBufferHeight),t.bindRenderbuffer(36161,n)}},blitOffscreenFramebuffer:function(e){var t=e.GLctx,r=t.getParameter(3089);r&&t.disable(3089);var n=t.getParameter(36006);if(t.blitFramebuffer&&!e.defaultFboForbidBlitFramebuffer)t.bindFramebuffer(36008,e.defaultFbo),t.bindFramebuffer(36009,null),t.blitFramebuffer(0,0,t.canvas.width,t.canvas.height,0,0,t.canvas.width,t.canvas.height,16384,9728);else{t.bindFramebuffer(36160,null);var o=t.getParameter(35725);t.useProgram(e.blitProgram);var i=t.getParameter(34964);t.bindBuffer(34962,e.blitVB);var a=t.getParameter(34016);t.activeTexture(33984);var s=t.getParameter(32873);t.bindTexture(3553,e.defaultColorTarget);var c=t.getParameter(3042);c&&t.disable(3042);var u=t.getParameter(2884);u&&t.disable(2884);var d=t.getParameter(2929);d&&t.disable(2929);var l=t.getParameter(2960);function draw(){t.vertexAttribPointer(e.blitPosLoc,2,5126,!1,0,0),t.drawArrays(5,0,4)}if(l&&t.disable(2960),e.defaultVao){var f=t.getParameter(34229);t.bindVertexArray(e.defaultVao),draw(),t.bindVertexArray(f)}else{for(var p={buffer:t.getVertexAttrib(e.blitPosLoc,34975),size:t.getVertexAttrib(e.blitPosLoc,34339),stride:t.getVertexAttrib(e.blitPosLoc,34340),type:t.getVertexAttrib(e.blitPosLoc,34341),normalized:t.getVertexAttrib(e.blitPosLoc,34922),pointer:t.getVertexAttribOffset(e.blitPosLoc,34373)},_=t.getParameter(34921),g=[],m=0;m<_;++m){var h=t.getVertexAttrib(m,34338),E=m==e.blitPosLoc;h&&!E&&t.disableVertexAttribArray(m),!h&&E&&t.enableVertexAttribArray(m),g[m]=h}draw();for(var m=0;m<_;++m){var h=g[m],b=m==e.blitPosLoc;h&&!b&&t.enableVertexAttribArray(m),!h&&b&&t.disableVertexAttribArray(m)}t.bindBuffer(34962,p.buffer),t.vertexAttribPointer(e.blitPosLoc,p.size,p.type,p.normalized,p.stride,p.offset)}l&&t.enable(2960),d&&t.enable(2929),u&&t.enable(2884),c&&t.enable(3042),t.bindTexture(3553,s),t.activeTexture(a),t.bindBuffer(34962,i),t.useProgram(o)}t.bindFramebuffer(36160,n),r&&t.enable(3089)},registerContext:function(e,t){var r=eU.getNewId(eU.contexts),n={handle:r,attributes:t,version:t.majorVersion,GLctx:e};e.canvas&&(e.canvas.GLctxObject=n),eU.contexts[r]=n,(void 0===t.enableExtensionsByDefault||t.enableExtensionsByDefault)&&eU.initExtensions(n),n.maxVertexAttribs=n.GLctx.getParameter(34921),n.clientBuffers=[];for(var o=0;o=2&&(t.disjointTimerQueryExt=t.getExtension("EXT_disjoint_timer_query_webgl2")),(e.version<2||!t.disjointTimerQueryExt)&&(t.disjointTimerQueryExt=t.getExtension("EXT_disjoint_timer_query")),__webgl_enable_WEBGL_multi_draw(t),(t.getSupportedExtensions()||[]).forEach(function(e){e.includes("lose_context")||e.includes("debug")||t.getExtension(e)})}}},eL={inEventHandler:0,removeAllEventListeners:function(){for(var e=eL.eventHandlers.length-1;e>=0;--e)eL._removeHandler(e);eL.eventHandlers=[],eL.deferredCalls=[]},registerRemoveEventListeners:function(){eL.removeEventListenersRegistered||($.push(eL.removeAllEventListeners),eL.removeEventListenersRegistered=!0)},deferredCalls:[],deferCall:function(e,t,r){function arraysHaveEqualContent(e,t){if(e.length!=t.length)return!1;for(var r in e)if(e[r]!=t[r])return!1;return!0}for(var n in eL.deferredCalls){var o=eL.deferredCalls[n];if(o.targetFunction==e&&arraysHaveEqualContent(o.argsList,r))return}eL.deferredCalls.push({targetFunction:e,precedence:t,argsList:r}),eL.deferredCalls.sort(function(e,t){return e.precedencetypeof document?document:0,"u">typeof window?window:0];function findEventTarget(e){warnOnce("Rules for selecting event targets in HTML5 API are changing: instead of using document.getElementById() that only can refer to elements by their DOM ID, new event target selection mechanism uses the more flexible function document.querySelector() that can look up element names, classes, and complex CSS selectors. Build with -s DISABLE_DEPRECATED_FIND_EVENT_TARGET_BEHAVIOR=1 to change to the new lookup rules. See https://github.com/emscripten-core/emscripten/pull/7977 for more details.");try{if(!e||("number"==typeof e&&(e=eB[e]||UTF8ToString(e)),"#window"===e))return window;if("#document"===e)return document;if("#screen"===e)return screen;else if("#canvas"===e)return M.canvas;return"string"==typeof e?document.getElementById(e):e}catch{return null}}function findCanvasEventTarget(e){return("number"==typeof e&&(e=UTF8ToString(e)),e&&"#canvas"!==e)?void 0!==eU&&eU.offscreenCanvases[e]?eU.offscreenCanvases[e]:findEventTarget(e):void 0!==eU&&eU.offscreenCanvases.canvas?eU.offscreenCanvases.canvas:M.canvas}function _emscripten_webgl_do_create_context(e,t){assert(t);var r=t>>2,n=E[r+6],o={alpha:!!E[r+0],depth:!!E[r+1],stencil:!!E[r+2],antialias:!!E[r+3],premultipliedAlpha:!!E[r+4],preserveDrawingBuffer:!!E[r+5],powerPreference:eN[n],failIfMajorPerformanceCaveat:!!E[r+7],majorVersion:E[r+8],minorVersion:E[r+9],enableExtensionsByDefault:E[r+10],explicitSwapControl:E[r+11],proxyContextToMainThread:E[r+12],renderViaOffscreenBackBuffer:E[r+13]},i=findCanvasEventTarget(e);if(!i)return 0;if(i.offscreenCanvas&&(i=i.offscreenCanvas),o.explicitSwapControl&&(i.transferControlToOffscreen||"u">typeof OffscreenCanvas&&i instanceof OffscreenCanvas||o.renderViaOffscreenBackBuffer||(o.renderViaOffscreenBackBuffer=!0),i.transferControlToOffscreen)){if(i.controlTransferredOffscreen){if(!eU.offscreenCanvases[i.id])return 0}else eU.offscreenCanvases[i.id]={canvas:i.transferControlToOffscreen(),canvasSharedPtr:eK(12),id:i.id},i.controlTransferredOffscreen=!0;i=eU.offscreenCanvases[i.id]}return eU.createContext(i,o)}function _emscripten_webgl_create_context(e,t){return _emscripten_webgl_do_create_context(e,t)}function _emscripten_webgl_do_get_current_context(){return eU.currentContext?eU.currentContext.handle:0}function _emscripten_webgl_get_current_context(){return _emscripten_webgl_do_get_current_context()}function _emscripten_webgl_make_context_current(e){return eU.makeContextCurrent(e)?0:-5}function _emscripten_webgl_destroy_context(e){eU.currentContext==e&&(eU.currentContext=0),eU.deleteContext(e)}function _emscripten_webgl_get_context_attributes(e,t){if(!t)return -5;if(!(e=eU.contexts[e]))return -3;var r=e.GLctx;if(!r)return -3;r=r.getContextAttributes(),E[t>>2]=r.alpha,E[t+4>>2]=r.depth,E[t+8>>2]=r.stencil,E[t+12>>2]=r.antialias,E[t+16>>2]=r.premultipliedAlpha,E[t+20>>2]=r.preserveDrawingBuffer;var n=r.powerPreference&&eN.indexOf(r.powerPreference);return E[t+24>>2]=n,E[t+28>>2]=r.failIfMajorPerformanceCaveat,E[t+32>>2]=e.version,E[t+36>>2]=0,E[t+40>>2]=e.attributes.enableExtensionsByDefault,0}function _emscripten_webgl_init_context_attributes(e){assert(e);for(var t=e>>2,r=0;r<14;++r)E[t+r]=0;E[t+0]=E[t+1]=E[t+3]=E[t+4]=E[t+8]=E[t+10]=1}M._emscripten_webgl_get_current_context=_emscripten_webgl_get_current_context,M._emscripten_webgl_make_context_current=_emscripten_webgl_make_context_current;var eH={};function getExecutableName(){return A||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var e={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:getExecutableName()};for(var t in eH)void 0===eH[t]?delete e[t]:e[t]=eH[t];var r=[];for(var t in e)r.push(t+"="+e[t]);getEnvStrings.strings=r}return getEnvStrings.strings}function _environ_get(e,t){var r=0;return getEnvStrings().forEach(function(n,o){var i=t+r;E[e+4*o>>2]=i,writeAsciiToMemory(n,i),r+=n.length+1}),0}function _environ_sizes_get(e,t){var r=getEnvStrings();E[e>>2]=r.length;var n=0;return r.forEach(function(e){n+=e.length+1}),E[t>>2]=n,0}function _fd_close(e){try{var t=em.getStreamFromFD(e);return eg.close(t),0}catch(e){return void 0!==eg&&e instanceof eg.ErrnoError||abort(e),e.errno}}function _fd_read(e,t,r,n){try{var o=em.getStreamFromFD(e),i=em.doReadv(o,t,r);return E[n>>2]=i,0}catch(e){return void 0!==eg&&e instanceof eg.ErrnoError||abort(e),e.errno}}function _fd_seek(e,t,r,n,o){try{var i=em.getStreamFromFD(e),a=0x100000000*r+(t>>>0);if(a<=-0x20000000000000||a>=0x20000000000000)return -61;return eg.llseek(i,a,n),D=[i.position>>>0,(O=i.position,+Math.abs(O)>=1?O>0?Math.min(+Math.floor(O/0x100000000),0xffffffff)>>>0:~~Math.ceil((O-(~~O>>>0))/0x100000000)>>>0:0)],E[o>>2]=D[0],E[o+4>>2]=D[1],i.getdents&&0===a&&0===n&&(i.getdents=null),0}catch(e){return void 0!==eg&&e instanceof eg.ErrnoError||abort(e),e.errno}}function _fd_write(e,t,r,n){try{var o=em.getStreamFromFD(e),i=em.doWritev(o,t,r);return E[n>>2]=i,0}catch(e){return void 0!==eg&&e instanceof eg.ErrnoError||abort(e),e.errno}}function _getTempRet0(){return B}function _getentropy(e,t){_getentropy.randomDevice||(_getentropy.randomDevice=getRandomDevice());for(var r=0;r=2?r?R.bufferData(e,g,n,r,t):R.bufferData(e,t,n):R.bufferData(e,r?g.subarray(r,r+t):t,n)}function convertI32PairToI53(e,t){return assert(t===(0|t)),(e>>>0)+0x100000000*t}function _glClientWaitSync(e,t,r,n){return R.clientWaitSync(eU.syncs[e],t,convertI32PairToI53(r,n))}function _glCompileShader(e){R.compileShader(eU.shaders[e])}function _glCreateProgram(){var e=eU.getNewId(eU.programs),t=R.createProgram();return t.name=e,t.maxUniformLength=t.maxAttributeLength=t.maxUniformBlockNameLength=0,t.uniformIdCounter=1,eU.programs[e]=t,e}function _glCreateShader(e){var t=eU.getNewId(eU.shaders);return eU.shaders[t]=R.createShader(e),t}function _glDeleteBuffers(e,t){for(var r=0;r>2],o=eU.buffers[n];o&&(R.deleteBuffer(o),o.name=0,eU.buffers[n]=null,n==R.currentArrayBufferBinding&&(R.currentArrayBufferBinding=0),n==R.currentElementArrayBufferBinding&&(R.currentElementArrayBufferBinding=0),n==R.currentPixelPackBufferBinding&&(R.currentPixelPackBufferBinding=0),n==R.currentPixelUnpackBufferBinding&&(R.currentPixelUnpackBufferBinding=0))}}function _glDeleteFramebuffers(e,t){for(var r=0;r>2],o=eU.framebuffers[n];o&&(R.deleteFramebuffer(o),o.name=0,eU.framebuffers[n]=null)}}function _glDeleteProgram(e){if(e){var t=eU.programs[e];if(!t)return void eU.recordError(1281);R.deleteProgram(t),t.name=0,eU.programs[e]=null}}function _glDeleteShader(e){if(e){var t=eU.shaders[e];if(!t)return void eU.recordError(1281);R.deleteShader(t),eU.shaders[e]=null}}function _glDeleteSync(e){if(e){var t=eU.syncs[e];if(!t)return void eU.recordError(1281);R.deleteSync(t),t.name=0,eU.syncs[e]=null}}function _glDeleteTextures(e,t){for(var r=0;r>2],o=eU.textures[n];o&&(R.deleteTexture(o),o.name=0,eU.textures[n]=null)}}function _glDeleteVertexArrays(e,t){for(var r=0;r>2];R.deleteVertexArray(eU.vaos[n]),eU.vaos[n]=null}}function _glDisable(e){R.disable(e)}function _glDisableVertexAttribArray(e){eU.currentContext.clientBuffers[e].enabled=!1,R.disableVertexAttribArray(e)}function _glDrawArrays(e,t,r){eU.preDrawHandleClientVertexAttribBindings(t+r),R.drawArrays(e,t,r),eU.postDrawHandleClientVertexAttribBindings()}var eX=[];function _glDrawBuffers(e,t){for(var r=eX[e],n=0;n>2];R.drawBuffers(r)}function _glEnableVertexAttribArray(e){eU.currentContext.clientBuffers[e].enabled=!0,R.enableVertexAttribArray(e)}function _glFenceSync(e,t){var r=R.fenceSync(e,t);if(!r)return 0;var n=eU.getNewId(eU.syncs);return r.name=n,eU.syncs[n]=r,n}function _glFinish(){R.finish()}function _glFlush(){R.flush()}function _glFramebufferTexture2D(e,t,r,n,o){R.framebufferTexture2D(e,t,r,eU.textures[n],o)}function _glFramebufferTextureLayer(e,t,r,n,o){R.framebufferTextureLayer(e,t,eU.textures[r],n,o)}function __glGenObject(e,t,r,n){for(var o=0;o>2]=a}}function _glGenBuffers(e,t){__glGenObject(e,t,"createBuffer",eU.buffers)}function _glGenFramebuffers(e,t){__glGenObject(e,t,"createFramebuffer",eU.framebuffers)}function _glGenTextures(e,t){__glGenObject(e,t,"createTexture",eU.textures)}function _glGenVertexArrays(e,t){__glGenObject(e,t,"createVertexArray",eU.vaos)}function _glGetAttribLocation(e,t){return R.getAttribLocation(eU.programs[e],UTF8ToString(t))}function _glGetError(){var e=R.getError()||eU.lastError;return eU.lastError=0,e}function readI53FromI64(e){return b[e>>2]+0x100000000*E[e+4>>2]}function readI53FromU64(e){return b[e>>2]+0x100000000*b[e+4>>2]}function writeI53ToI64(e,t){b[e>>2]=t,b[e+4>>2]=(t-b[e>>2])/0x100000000;var r=t>=0?readI53FromU64(e):readI53FromI64(e);r!=t&&warnOnce("writeI53ToI64() out of range: serialized JS Number "+t+" to Wasm heap as bytes lo=0x"+b[e>>2].toString(16)+", hi=0x"+b[e+4>>2].toString(16)+", which deserializes back to "+r+" instead!")}function emscriptenWebGLGet(e,t,r){if(!t)return void eU.recordError(1281);var n=void 0;switch(e){case 36346:n=1;break;case 36344:0!=r&&1!=r&&eU.recordError(1280);return;case 34814:case 36345:n=0;break;case 34466:var o=R.getParameter(34467);n=o?o.length:0;break;case 33309:if(eU.currentContext.version<2)return void eU.recordError(1282);n=2*(R.getSupportedExtensions()||[]).length;break;case 33307:case 33308:if(eU.currentContext.version<2)return void eU.recordError(1280);n=3*(33307==e)}if(void 0===n){var i=R.getParameter(e);switch(typeof i){case"number":n=i;break;case"boolean":n=+!!i;break;case"string":eU.recordError(1280);return;case"object":if(null===i)switch(e){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 36662:case 36663:case 35053:case 35055:case 36010:case 35097:case 35869:case 32874:case 36389:case 35983:case 35368:case 34068:n=0;break;default:return void eU.recordError(1280)}else if(i instanceof Float32Array||i instanceof Uint32Array||i instanceof Int32Array||i instanceof Array){for(var a=0;a>2]=i[a];break;case 2:y[t+4*a>>2]=i[a];break;case 4:_[t+a|0]=+!!i[a]}return}else try{n=0|i.name}catch(t){eU.recordError(1280),N("GL_INVALID_ENUM in glGet"+r+"v: Unknown object returned from WebGL getParameter("+e+")! (error: "+t+")");return}break;default:eU.recordError(1280),N("GL_INVALID_ENUM in glGet"+r+"v: Native code calling glGet"+r+"v("+e+") and it returns "+i+" of type "+typeof i+"!");return}}switch(r){case 1:writeI53ToI64(t,n);break;case 0:E[t>>2]=n;break;case 2:y[t>>2]=n;break;case 4:_[0|t]=+!!n}}function _glGetIntegerv(e,t){emscriptenWebGLGet(e,t,0)}function stringToNewUTF8(e){var t=lengthBytesUTF8(e)+1,r=eK(t);return stringToUTF8(e,r,t),r}function _glGetString(e){var t=eU.stringCache[e];if(!t){switch(e){case 7939:var r=R.getSupportedExtensions()||[];t=stringToNewUTF8((r=r.concat(r.map(function(e){return"GL_"+e}))).join(" "));break;case 7936:case 7937:case 37445:case 37446:var n=R.getParameter(e);n||eU.recordError(1280),t=n&&stringToNewUTF8(n);break;case 7938:var o=R.getParameter(7938);t=stringToNewUTF8(o=eU.currentContext.version>=2?"OpenGL ES 3.0 ("+o+")":"OpenGL ES 2.0 ("+o+")");break;case 35724:var i=R.getParameter(35724),a=i.match(/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/);null!==a&&(3==a[1].length&&(a[1]=a[1]+"0"),i="OpenGL ES GLSL ES "+a[1]+" ("+i+")"),t=stringToNewUTF8(i);break;default:eU.recordError(1280)}eU.stringCache[e]=t}return t}function _glGetUniformBlockIndex(e,t){return R.getUniformBlockIndex(eU.programs[e],UTF8ToString(t))}function jstoi_q(e){return parseInt(e)}function webglGetLeftBracePos(e){return"]"==e.slice(-1)&&e.lastIndexOf("[")}function webglPrepareUniformLocationsBeforeFirstUse(e){var t,r,n=e.uniformLocsById,o=e.uniformSizeAndIdsByName;if(!n)for(t=0,e.uniformLocsById=n={},e.uniformArrayNamesById={};t0?a.slice(0,c):a,d=e.uniformIdCounter;for(e.uniformIdCounter+=s,o[u]=[s,d],r=0;r0&&(n=jstoi_q(t.slice(i+1))>>>0,o=t.slice(0,i));var a=e.uniformSizeAndIdsByName[o];if(a&&n>s,o+c>>s)}function _glReadPixels(e,t,r,n,o,i,a){if(eU.currentContext.version>=2){if(R.currentPixelPackBufferBinding)R.readPixels(e,t,r,n,o,i,a);else{var s=heapObjectForWebGLType(i);R.readPixels(e,t,r,n,o,i,s,a>>heapAccessShiftForWebGLHeap(s))}return}var c=emscriptenWebGLGetTexPixelData(i,o,r,n,a,o);c?R.readPixels(e,t,r,n,o,i,c):eU.recordError(1280)}function _glShaderSource(e,t,r,n){var o=eU.getSource(e,t,r,n);R.shaderSource(eU.shaders[e],o)}function _glTexImage2D(e,t,r,n,o,i,a,s,c){if(eU.currentContext.version>=2){if(R.currentPixelUnpackBufferBinding)R.texImage2D(e,t,r,n,o,i,a,s,c);else if(c){var u=heapObjectForWebGLType(s);R.texImage2D(e,t,r,n,o,i,a,s,u,c>>heapAccessShiftForWebGLHeap(u))}else R.texImage2D(e,t,r,n,o,i,a,s,null);return}R.texImage2D(e,t,r,n,o,i,a,s,c?emscriptenWebGLGetTexPixelData(s,a,n,o,c,r):null)}function _glTexParameterfv(e,t,r){var n=y[r>>2];R.texParameterf(e,t,n)}function _glTexParameteri(e,t,r){R.texParameteri(e,t,r)}function _glTexStorage2D(e,t,r,n,o){R.texStorage2D(e,t,r,n,o)}function _glTexStorage3D(e,t,r,n,o,i){R.texStorage3D(e,t,r,n,o,i)}function _glTexSubImage2D(e,t,r,n,o,i,a,s,c){if(eU.currentContext.version>=2){if(R.currentPixelUnpackBufferBinding)R.texSubImage2D(e,t,r,n,o,i,a,s,c);else if(c){var u=heapObjectForWebGLType(s);R.texSubImage2D(e,t,r,n,o,i,a,s,u,c>>heapAccessShiftForWebGLHeap(u))}else R.texSubImage2D(e,t,r,n,o,i,a,s,null);return}var d=null;c&&(d=emscriptenWebGLGetTexPixelData(s,a,o,i,c,0)),R.texSubImage2D(e,t,r,n,o,i,a,s,d)}function _glTexSubImage3D(e,t,r,n,o,i,a,s,c,u,d){if(R.currentPixelUnpackBufferBinding)R.texSubImage3D(e,t,r,n,o,i,a,s,c,u,d);else if(d){var l=heapObjectForWebGLType(u);R.texSubImage3D(e,t,r,n,o,i,a,s,c,u,l,d>>heapAccessShiftForWebGLHeap(l))}else R.texSubImage3D(e,t,r,n,o,i,a,s,c,u,null)}function webglGetUniformLocation(e){var t=R.currentProgram;if(t){var r=t.uniformLocsById[e];return"number"==typeof r&&(t.uniformLocsById[e]=r=R.getUniformLocation(t,t.uniformArrayNamesById[e]+(r>0?"["+r+"]":""))),r}eU.recordError(1282)}function _glUniform1f(e,t){R.uniform1f(webglGetUniformLocation(e),t)}function _glUniform1i(e,t){R.uniform1i(webglGetUniformLocation(e),t)}var eQ=[];function _glUniform2fv(e,t,r){if(eU.currentContext.version>=2)return void R.uniform2fv(webglGetUniformLocation(e),y,r>>2,2*t);if(t<=144)for(var n=eQ[2*t-1],o=0;o<2*t;o+=2)n[o]=y[r+4*o>>2],n[o+1]=y[r+(4*o+4)>>2];else var n=y.subarray(r>>2,r+8*t>>2);R.uniform2fv(webglGetUniformLocation(e),n)}function _glUniform4fv(e,t,r){if(eU.currentContext.version>=2)return void R.uniform4fv(webglGetUniformLocation(e),y,r>>2,4*t);if(t<=72){var n=eQ[4*t-1],o=y;r>>=2;for(var i=0;i<4*t;i+=4){var a=r+i;n[i]=o[a],n[i+1]=o[a+1],n[i+2]=o[a+2],n[i+3]=o[a+3]}}else var n=y.subarray(r>>2,r+16*t>>2);R.uniform4fv(webglGetUniformLocation(e),n)}var eW=[];function _glUniform4iv(e,t,r){if(eU.currentContext.version>=2)return void R.uniform4iv(webglGetUniformLocation(e),E,r>>2,4*t);if(t<=72)for(var n=eW[4*t-1],o=0;o<4*t;o+=4)n[o]=E[r+4*o>>2],n[o+1]=E[r+(4*o+4)>>2],n[o+2]=E[r+(4*o+8)>>2],n[o+3]=E[r+(4*o+12)>>2];else var n=E.subarray(r>>2,r+16*t>>2);R.uniform4iv(webglGetUniformLocation(e),n)}function _glUniformBlockBinding(e,t,r){e=eU.programs[e],R.uniformBlockBinding(e,t,r)}function _glUniformMatrix4fv(e,t,r,n){if(eU.currentContext.version>=2)return void R.uniformMatrix4fv(webglGetUniformLocation(e),!!r,y,n>>2,16*t);if(t<=18){var o=eQ[16*t-1],i=y;n>>=2;for(var a=0;a<16*t;a+=16){var s=n+a;o[a]=i[s],o[a+1]=i[s+1],o[a+2]=i[s+2],o[a+3]=i[s+3],o[a+4]=i[s+4],o[a+5]=i[s+5],o[a+6]=i[s+6],o[a+7]=i[s+7],o[a+8]=i[s+8],o[a+9]=i[s+9],o[a+10]=i[s+10],o[a+11]=i[s+11],o[a+12]=i[s+12],o[a+13]=i[s+13],o[a+14]=i[s+14],o[a+15]=i[s+15]}}else var o=y.subarray(n>>2,n+64*t>>2);R.uniformMatrix4fv(webglGetUniformLocation(e),!!r,o)}function _glUseProgram(e){e=eU.programs[e],R.useProgram(e),R.currentProgram=e}function _glVertexAttribPointer(e,t,r,n,o,i){var a=eU.currentContext.clientBuffers[e];if(!R.currentArrayBufferBinding){a.size=t,a.type=r,a.normalized=n,a.stride=o,a.ptr=i,a.clientside=!0,a.vertexAttribPointerAdaptor=function(e,t,r,n,o,i){this.vertexAttribPointer(e,t,r,n,o,i)};return}a.clientside=!1,R.vertexAttribPointer(e,t,r,!!n,o,i)}function _glViewport(e,t,r,n){R.viewport(e,t,r,n)}function _gmtime_r(e,t){var r=new Date(1e3*E[e>>2]);E[t>>2]=r.getUTCSeconds(),E[t+4>>2]=r.getUTCMinutes(),E[t+8>>2]=r.getUTCHours(),E[t+12>>2]=r.getUTCDate(),E[t+16>>2]=r.getUTCMonth(),E[t+20>>2]=r.getUTCFullYear()-1900,E[t+24>>2]=r.getUTCDay(),E[t+36>>2]=0,E[t+32>>2]=0;var n=Date.UTC(r.getUTCFullYear(),0,1,0,0,0,0),o=(r.getTime()-n)/864e5|0;return E[t+28>>2]=o,_gmtime_r.GMTString||(_gmtime_r.GMTString=allocateUTF8("GMT")),E[t+40>>2]=_gmtime_r.GMTString,t}function _llvm_eh_typeid_for(e){return e}function _tzset(){if(!_tzset.called){_tzset.called=!0;var e=(new Date).getFullYear(),t=new Date(e,0,1),r=new Date(e,6,1),n=t.getTimezoneOffset(),o=r.getTimezoneOffset(),i=Math.max(n,o);E[e4()>>2]=60*i,E[e3()>>2]=Number(n!=o);var a=extractZone(t),s=extractZone(r),c=allocateUTF8(a),u=allocateUTF8(s);o>2]=c,E[e2()+4>>2]=u):(E[e2()>>2]=u,E[e2()+4>>2]=c)}function extractZone(e){var t=e.toTimeString().match(/\(([A-Za-z ]+)\)$/);return t?t[1]:"GMT"}}function _localtime_r(e,t){_tzset();var r=new Date(1e3*E[e>>2]);E[t>>2]=r.getSeconds(),E[t+4>>2]=r.getMinutes(),E[t+8>>2]=r.getHours(),E[t+12>>2]=r.getDate(),E[t+16>>2]=r.getMonth(),E[t+20>>2]=r.getFullYear()-1900,E[t+24>>2]=r.getDay();var n=new Date(r.getFullYear(),0,1),o=(r.getTime()-n.getTime())/864e5|0;E[t+28>>2]=o,E[t+36>>2]=-(60*r.getTimezoneOffset());var i=new Date(r.getFullYear(),6,1).getTimezoneOffset(),a=n.getTimezoneOffset(),s=0|(i!=a&&r.getTimezoneOffset()==Math.min(a,i));E[t+32>>2]=s;var c=E[e2()+4*!!s>>2];return E[t+40>>2]=c,t}function _mktime(e){_tzset();var t=new Date(E[e+20>>2]+1900,E[e+16>>2],E[e+12>>2],E[e+8>>2],E[e+4>>2],E[e>>2],0),r=E[e+32>>2],n=t.getTimezoneOffset(),o=new Date(t.getFullYear(),0,1),i=new Date(t.getFullYear(),6,1).getTimezoneOffset(),a=o.getTimezoneOffset(),s=Math.min(a,i);if(r<0)E[e+32>>2]=Number(i!=a&&s==n);else if(r>0!=(s==n)){var c=Math.max(a,i);t.setTime(t.getTime()+((r>0?s:c)-n)*6e4)}E[e+24>>2]=t.getDay();var u=(t.getTime()-o.getTime())/864e5|0;return E[e+28>>2]=u,E[e>>2]=t.getSeconds(),E[e+4>>2]=t.getMinutes(),E[e+8>>2]=t.getHours(),E[e+12>>2]=t.getDate(),E[e+16>>2]=t.getMonth(),t.getTime()/1e3|0}function _proc_exit(e){procExit(e)}function _setTempRet0(e){setTempRet0(e)}function __isLeapYear(e){return e%4==0&&(e%100!=0||e%400==0)}function __arraySum(e,t){for(var r=0,n=0;n<=t;r+=e[n++]);return r}var eG=[31,29,31,30,31,30,31,31,30,31,30,31],ez=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(e,t){for(var r=new Date(e.getTime());t>0;){var n=__isLeapYear(r.getFullYear()),o=r.getMonth(),i=(n?eG:ez)[o];if(t>i-r.getDate())t-=i-r.getDate()+1,r.setDate(1),o<11?r.setMonth(o+1):(r.setMonth(0),r.setFullYear(r.getFullYear()+1));else{r.setDate(r.getDate()+t);break}}return r}function _strftime(e,t,r,n){var o=E[n+40>>2],i={tm_sec:E[n>>2],tm_min:E[n+4>>2],tm_hour:E[n+8>>2],tm_mday:E[n+12>>2],tm_mon:E[n+16>>2],tm_year:E[n+20>>2],tm_wday:E[n+24>>2],tm_yday:E[n+28>>2],tm_isdst:E[n+32>>2],tm_gmtoff:E[n+36>>2],tm_zone:o?UTF8ToString(o):""},a=UTF8ToString(r),s={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var c in s)a=a.replace(RegExp(c,"g"),s[c]);var u=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],d=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(e,t,r){for(var n="number"==typeof e?e.toString():e||"";n.length0)}return 0===(r=sgn(e.getFullYear()-t.getFullYear()))&&0===(r=sgn(e.getMonth()-t.getMonth()))&&(r=sgn(e.getDate()-t.getDate())),r}function getFirstWeekStartDate(e){switch(e.getDay()){case 0:return new Date(e.getFullYear()-1,11,29);case 1:return e;case 2:return new Date(e.getFullYear(),0,3);case 3:return new Date(e.getFullYear(),0,2);case 4:return new Date(e.getFullYear(),0,1);case 5:return new Date(e.getFullYear()-1,11,31);case 6:return new Date(e.getFullYear()-1,11,30)}}function getWeekBasedYear(e){var t=__addDays(new Date(e.tm_year+1900,0,1),e.tm_yday),r=new Date(t.getFullYear(),0,4),n=new Date(t.getFullYear()+1,0,4),o=getFirstWeekStartDate(r),i=getFirstWeekStartDate(n);return 0>=compareByDay(o,t)?0>=compareByDay(i,t)?t.getFullYear()+1:t.getFullYear():t.getFullYear()-1}var l={"%a":function(e){return u[e.tm_wday].substring(0,3)},"%A":function(e){return u[e.tm_wday]},"%b":function(e){return d[e.tm_mon].substring(0,3)},"%B":function(e){return d[e.tm_mon]},"%C":function(e){return leadingNulls((e.tm_year+1900)/100|0,2)},"%d":function(e){return leadingNulls(e.tm_mday,2)},"%e":function(e){return leadingSomething(e.tm_mday,2," ")},"%g":function(e){return getWeekBasedYear(e).toString().substring(2)},"%G":function(e){return getWeekBasedYear(e)},"%H":function(e){return leadingNulls(e.tm_hour,2)},"%I":function(e){var t=e.tm_hour;return 0==t?t=12:t>12&&(t-=12),leadingNulls(t,2)},"%j":function(e){return leadingNulls(e.tm_mday+__arraySum(__isLeapYear(e.tm_year+1900)?eG:ez,e.tm_mon-1),3)},"%m":function(e){return leadingNulls(e.tm_mon+1,2)},"%M":function(e){return leadingNulls(e.tm_min,2)},"%n":function(){return` `},"%p":function(e){return e.tm_hour>=0&&e.tm_hour<12?"AM":"PM"},"%S":function(e){return leadingNulls(e.tm_sec,2)},"%t":function(){return" "},"%u":function(e){return e.tm_wday||7},"%U":function(e){var t=new Date(e.tm_year+1900,0,1),r=0===t.getDay()?t:__addDays(t,7-t.getDay()),n=new Date(e.tm_year+1900,e.tm_mon,e.tm_mday);if(0>compareByDay(r,n)){var o=__arraySum(__isLeapYear(n.getFullYear())?eG:ez,n.getMonth()-1)-31;return leadingNulls(Math.ceil((31-r.getDate()+o+n.getDate())/7),2)}return 0===compareByDay(r,t)?"01":"00"},"%V":function(e){var t=new Date(e.tm_year+1900,0,4),r=new Date(e.tm_year+1901,0,4),n=getFirstWeekStartDate(t),o=getFirstWeekStartDate(r),i=__addDays(new Date(e.tm_year+1900,0,1),e.tm_yday);return 0>compareByDay(i,n)?"53":0>=compareByDay(o,i)?"01":leadingNulls(Math.ceil((n.getFullYear()compareByDay(r,n)){var o=__arraySum(__isLeapYear(n.getFullYear())?eG:ez,n.getMonth()-1)-31;return leadingNulls(Math.ceil((31-r.getDate()+o+n.getDate())/7),2)}return 0===compareByDay(r,t)?"01":"00"},"%y":function(e){return(e.tm_year+1900).toString().substring(2)},"%Y":function(e){return e.tm_year+1900},"%z":function(e){var t=e.tm_gmtoff;return(t>=0?"+":"-")+String("0000"+(t=(t=Math.abs(t)/60)/60*100+t%60)).slice(-4)},"%Z":function(e){return e.tm_zone},"%%":function(){return"%"}};for(var c in l)a.includes(c)&&(a=a.replace(RegExp(c,"g"),l[c](i)));var f=intArrayFromString(a,!1);return f.length>t?0:(writeArrayToMemory(f,e),f.length-1)}function _strftime_l(e,t,r,n){return _strftime(e,t,r,n)}M.requestFullscreen=function(e,t){ei.requestFullscreen(e,t)},M.requestFullScreen=function(){ei.requestFullScreen()},M.requestAnimationFrame=function(e){ei.requestAnimationFrame(e)},M.setCanvasSize=function(e,t,r){ei.setCanvasSize(e,t,r)},M.pauseMainLoop=function(){ei.mainLoop.pause()},M.resumeMainLoop=function(){ei.mainLoop.resume()},M.getUserMedia=function(){ei.getUserMedia()},M.createContext=function(e,t,r,n){return ei.createContext(e,t,r,n)};var FSNode=function(e,t,r,n){e||(e=this),this.parent=e,this.mount=e.mount,this.mounted=null,this.id=eg.nextInode++,this.name=t,this.mode=r,this.node_ops={},this.stream_ops={},this.rdev=n};Object.defineProperties(FSNode.prototype,{read:{get:function(){return(365&this.mode)==365},set:function(e){e?this.mode|=365:this.mode&=-366}},write:{get:function(){return(146&this.mode)==146},set:function(e){e?this.mode|=146:this.mode&=-147}},isFolder:{get:function(){return eg.isDir(this.mode)}},isDevice:{get:function(){return eg.isChrdev(this.mode)}}}),eg.FSNode=FSNode,eg.staticInit(),M.FS_createPath=eg.createPath,M.FS_createDataFile=eg.createDataFile,M.FS_createPreloadedFile=eg.createPreloadedFile,M.FS_createLazyFile=eg.createLazyFile,M.FS_createDevice=eg.createDevice,M.FS_unlink=eg.unlink,init_emval(),eb=M.PureVirtualError=extendError(Error,"PureVirtualError"),embind_init_charCodes(),init_embind(),eO=M.BindingError=extendError(Error,"BindingError"),eS=M.InternalError=extendError(Error,"InternalError"),init_ClassHandle(),init_RegisteredPointer(),eA=M.UnboundTypeError=extendError(Error,"UnboundTypeError");for(var eV=0;eV<32;++eV)eX.push(Array(eV));for(var eY=new Float32Array(288),eV=0;eV<288;++eV)eQ[eV]=eY.subarray(0,eV+1);for(var eq=new Int32Array(288),eV=0;eV<288;++eV)eW[eV]=eq.subarray(0,eV+1);function intArrayFromString(e,t,r){var n=Array(r>0?r:lengthBytesUTF8(e)+1),o=stringToUTF8Array(e,n,0,n.length);return t&&(n.length=o),n}var e$={HaveOffsetConverter:HaveOffsetConverter,__cxa_allocate_exception:___cxa_allocate_exception,__cxa_atexit:___cxa_atexit,__cxa_begin_catch:___cxa_begin_catch,__cxa_end_catch:___cxa_end_catch,__cxa_find_matching_catch_2:___cxa_find_matching_catch_2,__cxa_find_matching_catch_3:___cxa_find_matching_catch_3,__cxa_free_exception:___cxa_free_exception,__cxa_rethrow:___cxa_rethrow,__cxa_thread_atexit:___cxa_thread_atexit,__cxa_throw:___cxa_throw,__resumeException:___resumeException,__sys_fcntl64:___sys_fcntl64,__sys_ioctl:___sys_ioctl,__sys_mmap2:___sys_mmap2,__sys_open:___sys_open,__sys_stat64:___sys_stat64,_embind_create_inheriting_constructor:__embind_create_inheriting_constructor,_embind_finalize_value_object:__embind_finalize_value_object,_embind_register_bigint:__embind_register_bigint,_embind_register_bool:__embind_register_bool,_embind_register_class:__embind_register_class,_embind_register_class_class_function:__embind_register_class_class_function,_embind_register_class_constructor:__embind_register_class_constructor,_embind_register_class_function:__embind_register_class_function,_embind_register_class_property:__embind_register_class_property,_embind_register_emval:__embind_register_emval,_embind_register_float:__embind_register_float,_embind_register_function:__embind_register_function,_embind_register_integer:__embind_register_integer,_embind_register_memory_view:__embind_register_memory_view,_embind_register_std_string:__embind_register_std_string,_embind_register_std_wstring:__embind_register_std_wstring,_embind_register_value_object:__embind_register_value_object,_embind_register_value_object_field:__embind_register_value_object_field,_embind_register_void:__embind_register_void,_emval_call_void_method:__emval_call_void_method,_emval_decref:__emval_decref,_emval_get_method_caller:__emval_get_method_caller,_emval_incref:__emval_incref,_emval_take_value:__emval_take_value,abort:_abort,clock_gettime:_clock_gettime,dlopen:_dlopen,dlsym:_dlsym,emscripten_asm_const_int:_emscripten_asm_const_int,emscripten_get_heap_max:_emscripten_get_heap_max,emscripten_memcpy_big:_emscripten_memcpy_big,emscripten_pc_get_function:_emscripten_pc_get_function,emscripten_resize_heap:_emscripten_resize_heap,emscripten_stack_snapshot:_emscripten_stack_snapshot,emscripten_stack_unwind_buffer:_emscripten_stack_unwind_buffer,emscripten_thread_sleep:_emscripten_thread_sleep,emscripten_webgl_create_context:_emscripten_webgl_create_context,emscripten_webgl_destroy_context:_emscripten_webgl_destroy_context,emscripten_webgl_get_context_attributes:_emscripten_webgl_get_context_attributes,emscripten_webgl_get_current_context:_emscripten_webgl_get_current_context,emscripten_webgl_init_context_attributes:_emscripten_webgl_init_context_attributes,emscripten_webgl_make_context_current:_emscripten_webgl_make_context_current,environ_get:_environ_get,environ_sizes_get:_environ_sizes_get,exit:_exit,fd_close:_fd_close,fd_read:_fd_read,fd_seek:_fd_seek,fd_write:_fd_write,getTempRet0:_getTempRet0,getentropy:_getentropy,glActiveTexture:_glActiveTexture,glAttachShader:_glAttachShader,glBindAttribLocation:_glBindAttribLocation,glBindBuffer:_glBindBuffer,glBindBufferBase:_glBindBufferBase,glBindFramebuffer:_glBindFramebuffer,glBindTexture:_glBindTexture,glBindVertexArray:_glBindVertexArray,glBufferData:_glBufferData,glClientWaitSync:_glClientWaitSync,glCompileShader:_glCompileShader,glCreateProgram:_glCreateProgram,glCreateShader:_glCreateShader,glDeleteBuffers:_glDeleteBuffers,glDeleteFramebuffers:_glDeleteFramebuffers,glDeleteProgram:_glDeleteProgram,glDeleteShader:_glDeleteShader,glDeleteSync:_glDeleteSync,glDeleteTextures:_glDeleteTextures,glDeleteVertexArrays:_glDeleteVertexArrays,glDisable:_glDisable,glDisableVertexAttribArray:_glDisableVertexAttribArray,glDrawArrays:_glDrawArrays,glDrawBuffers:_glDrawBuffers,glEnableVertexAttribArray:_glEnableVertexAttribArray,glFenceSync:_glFenceSync,glFinish:_glFinish,glFlush:_glFlush,glFramebufferTexture2D:_glFramebufferTexture2D,glFramebufferTextureLayer:_glFramebufferTextureLayer,glGenBuffers:_glGenBuffers,glGenFramebuffers:_glGenFramebuffers,glGenTextures:_glGenTextures,glGenVertexArrays:_glGenVertexArrays,glGetAttribLocation:_glGetAttribLocation,glGetError:_glGetError,glGetIntegerv:_glGetIntegerv,glGetString:_glGetString,glGetUniformBlockIndex:_glGetUniformBlockIndex,glGetUniformLocation:_glGetUniformLocation,glLinkProgram:_glLinkProgram,glPixelStorei:_glPixelStorei,glReadPixels:_glReadPixels,glShaderSource:_glShaderSource,glTexImage2D:_glTexImage2D,glTexParameterfv:_glTexParameterfv,glTexParameteri:_glTexParameteri,glTexStorage2D:_glTexStorage2D,glTexStorage3D:_glTexStorage3D,glTexSubImage2D:_glTexSubImage2D,glTexSubImage3D:_glTexSubImage3D,glUniform1f:_glUniform1f,glUniform1i:_glUniform1i,glUniform2fv:_glUniform2fv,glUniform4fv:_glUniform4fv,glUniform4iv:_glUniform4iv,glUniformBlockBinding:_glUniformBlockBinding,glUniformMatrix4fv:_glUniformMatrix4fv,glUseProgram:_glUseProgram,glVertexAttribPointer:_glVertexAttribPointer,glViewport:_glViewport,gmtime_r:_gmtime_r,invoke_diii:invoke_diii,invoke_i:invoke_i,invoke_ii:invoke_ii,invoke_iii:invoke_iii,invoke_iiii:invoke_iiii,invoke_iiiii:invoke_iiiii,invoke_iiiiii:invoke_iiiiii,invoke_iiiiiii:invoke_iiiiiii,invoke_iiiiiiiddi:invoke_iiiiiiiddi,invoke_iiiiiiii:invoke_iiiiiiii,invoke_iiiiiiiii:invoke_iiiiiiiii,invoke_v:invoke_v,invoke_vdiii:invoke_vdiii,invoke_vi:invoke_vi,invoke_vididdii:invoke_vididdii,invoke_vidii:invoke_vidii,invoke_vii:invoke_vii,invoke_viid:invoke_viid,invoke_viidi:invoke_viidi,invoke_viididii:invoke_viididii,invoke_viii:invoke_viii,invoke_viiid:invoke_viiid,invoke_viiidd:invoke_viiidd,invoke_viiiddi:invoke_viiiddi,invoke_viiidi:invoke_viiidi,invoke_viiii:invoke_viiii,invoke_viiiid:invoke_viiiid,invoke_viiiidi:invoke_viiiidi,invoke_viiiidid:invoke_viiiidid,invoke_viiiidiidiiiiiii:invoke_viiiidiidiiiiiii,invoke_viiiifiifiiiiiii:invoke_viiiifiifiiiiiii,invoke_viiiii:invoke_viiiii,invoke_viiiiid:invoke_viiiiid,invoke_viiiiif:invoke_viiiiif,invoke_viiiiii:invoke_viiiiii,invoke_viiiiiid:invoke_viiiiiid,invoke_viiiiiif:invoke_viiiiiif,invoke_viiiiiii:invoke_viiiiiii,invoke_viiiiiiiddi:invoke_viiiiiiiddi,invoke_viiiiiiidiiii:invoke_viiiiiiidiiii,invoke_viiiiiiifiiii:invoke_viiiiiiifiiii,invoke_viiiiiiii:invoke_viiiiiiii,invoke_viiiiiiiidd:invoke_viiiiiiiidd,invoke_viiiiiiiidf:invoke_viiiiiiiidf,invoke_viiiiiiiii:invoke_viiiiiiiii,invoke_viiiiiiiiidd:invoke_viiiiiiiiidd,invoke_viiiiiiiiiddi:invoke_viiiiiiiiiddi,invoke_viiiiiiiiii:invoke_viiiiiiiiii,invoke_viiiiiiiiiiddi:invoke_viiiiiiiiiiddi,invoke_viiiiiiiiiii:invoke_viiiiiiiiiii,invoke_viiiiiiiiiiii:invoke_viiiiiiiiiiii,invoke_viiiiiiiiiiiii:invoke_viiiiiiiiiiiii,llvm_eh_typeid_for:_llvm_eh_typeid_for,localtime_r:_localtime_r,mktime:_mktime,proc_exit:_proc_exit,setTempRet0:_setTempRet0,strftime:_strftime,strftime_l:_strftime_l};createWasm(),M.___wasm_call_ctors=createExportWrapper("__wasm_call_ctors");var eZ=M._free=createExportWrapper("free"),eK=M._malloc=createExportWrapper("malloc"),eJ=M.___errno_location=createExportWrapper("__errno_location");M._fflush=createExportWrapper("fflush");var e0=M.___getTypeName=createExportWrapper("__getTypeName");M.___embind_register_native_and_builtin_types=createExportWrapper("__embind_register_native_and_builtin_types"),M._emscripten_main_thread_process_queued_calls=createExportWrapper("emscripten_main_thread_process_queued_calls");var e1=M._emscripten_stack_get_end=function(){return(e1=M._emscripten_stack_get_end=M.asm.emscripten_stack_get_end).apply(null,arguments)},e2=M.__get_tzname=createExportWrapper("_get_tzname"),e3=M.__get_daylight=createExportWrapper("_get_daylight"),e4=M.__get_timezone=createExportWrapper("_get_timezone"),e6=M.stackSave=createExportWrapper("stackSave"),e8=M.stackRestore=createExportWrapper("stackRestore");M.stackAlloc=createExportWrapper("stackAlloc");var e5=M._emscripten_stack_init=function(){return(e5=M._emscripten_stack_init=M.asm.emscripten_stack_init).apply(null,arguments)};M._emscripten_stack_get_free=function(){return(M._emscripten_stack_get_free=M.asm.emscripten_stack_get_free).apply(null,arguments)},M._saveSetjmp=createExportWrapper("saveSetjmp");var e9=M._setThrew=createExportWrapper("setThrew"),e7=M.___cxa_can_catch=createExportWrapper("__cxa_can_catch"),te=M.___cxa_is_pointer_type=createExportWrapper("__cxa_is_pointer_type"),tt=M._memalign=createExportWrapper("memalign");function invoke_viid(e,t,r,n){var o=e6();try{w.get(e)(t,r,n)}catch(e){if(e8(o),e!==e+0&&"longjmp"!==e)throw e;e9(1,0)}}function invoke_vi(e,t){var r=e6();try{w.get(e)(t)}catch(e){if(e8(r),e!==e+0&&"longjmp"!==e)throw e;e9(1,0)}}function invoke_iii(e,t,r){var n=e6();try{return w.get(e)(t,r)}catch(e){if(e8(n),e!==e+0&&"longjmp"!==e)throw e;e9(1,0)}}function invoke_viiiii(e,t,r,n,o,i){var a=e6();try{w.get(e)(t,r,n,o,i)}catch(e){if(e8(a),e!==e+0&&"longjmp"!==e)throw e;e9(1,0)}}function invoke_iiiiiii(e,t,r,n,o,i,a){var s=e6();try{return w.get(e)(t,r,n,o,i,a)}catch(e){if(e8(s),e!==e+0&&"longjmp"!==e)throw e;e9(1,0)}}function invoke_v(e){var t=e6();try{w.get(e)()}catch(e){if(e8(t),e!==e+0&&"longjmp"!==e)throw e;e9(1,0)}}function invoke_viiiiiiiiii(e,t,r,n,o,i,a,s,c,u,d){var l=e6();try{w.get(e)(t,r,n,o,i,a,s,c,u,d)}catch(e){if(e8(l),e!==e+0&&"longjmp"!==e)throw e;e9(1,0)}}function invoke_vii(e,t,r){var n=e6();try{w.get(e)(t,r)}catch(e){if(e8(n),e!==e+0&&"longjmp"!==e)throw e;e9(1,0)}}function invoke_ii(e,t){var r=e6();try{return w.get(e)(t)}catch(e){if(e8(r),e!==e+0&&"longjmp"!==e)throw e;e9(1,0)}}function invoke_viii(e,t,r,n){var o=e6();try{w.get(e)(t,r,n)}catch(e){if(e8(o),e!==e+0&&"longjmp"!==e)throw e;e9(1,0)}}function invoke_viiiiii(e,t,r,n,o,i,a){var s=e6();try{w.get(e)(t,r,n,o,i,a)}catch(e){if(e8(s),e!==e+0&&"longjmp"!==e)throw e;e9(1,0)}}function invoke_viiiiiii(e,t,r,n,o,i,a,s){var c=e6();try{w.get(e)(t,r,n,o,i,a,s)}catch(e){if(e8(c),e!==e+0&&"longjmp"!==e)throw e;e9(1,0)}}function invoke_viiiiiiii(e,t,r,n,o,i,a,s,c){var u=e6();try{w.get(e)(t,r,n,o,i,a,s,c)}catch(e){if(e8(u),e!==e+0&&"longjmp"!==e)throw e;e9(1,0)}}function invoke_viiiiiiiii(e,t,r,n,o,i,a,s,c,u){var d=e6();try{w.get(e)(t,r,n,o,i,a,s,c,u)}catch(e){if(e8(d),e!==e+0&&"longjmp"!==e)throw e;e9(1,0)}}function invoke_viiii(e,t,r,n,o){var i=e6();try{w.get(e)(t,r,n,o)}catch(e){if(e8(i),e!==e+0&&"longjmp"!==e)throw e;e9(1,0)}}function invoke_iiiii(e,t,r,n,o){var i=e6();try{return w.get(e)(t,r,n,o)}catch(e){if(e8(i),e!==e+0&&"longjmp"!==e)throw e;e9(1,0)}}function invoke_viiiiiiiiiii(e,t,r,n,o,i,a,s,c,u,d,l){var f=e6();try{w.get(e)(t,r,n,o,i,a,s,c,u,d,l)}catch(e){if(e8(f),e!==e+0&&"longjmp"!==e)throw e;e9(1,0)}}function invoke_viiidd(e,t,r,n,o,i){var a=e6();try{w.get(e)(t,r,n,o,i)}catch(e){if(e8(a),e!==e+0&&"longjmp"!==e)throw e;e9(1,0)}}function invoke_iiiiii(e,t,r,n,o,i){var a=e6();try{return w.get(e)(t,r,n,o,i)}catch(e){if(e8(a),e!==e+0&&"longjmp"!==e)throw e;e9(1,0)}}function invoke_viiiiiiiiiiiii(e,t,r,n,o,i,a,s,c,u,d,l,f,p){var _=e6();try{w.get(e)(t,r,n,o,i,a,s,c,u,d,l,f,p)}catch(e){if(e8(_),e!==e+0&&"longjmp"!==e)throw e;e9(1,0)}}function invoke_iiiiiiii(e,t,r,n,o,i,a,s){var c=e6();try{return w.get(e)(t,r,n,o,i,a,s)}catch(e){if(e8(c),e!==e+0&&"longjmp"!==e)throw e;e9(1,0)}}function invoke_diii(e,t,r,n){var o=e6();try{return w.get(e)(t,r,n)}catch(e){if(e8(o),e!==e+0&&"longjmp"!==e)throw e;e9(1,0)}}function invoke_iiii(e,t,r,n){var o=e6();try{return w.get(e)(t,r,n)}catch(e){if(e8(o),e!==e+0&&"longjmp"!==e)throw e;e9(1,0)}}function invoke_viiiiiiiiidd(e,t,r,n,o,i,a,s,c,u,d,l){var f=e6();try{w.get(e)(t,r,n,o,i,a,s,c,u,d,l)}catch(e){if(e8(f),e!==e+0&&"longjmp"!==e)throw e;e9(1,0)}}function invoke_viiiiiiiiiddi(e,t,r,n,o,i,a,s,c,u,d,l,f){var p=e6();try{w.get(e)(t,r,n,o,i,a,s,c,u,d,l,f)}catch(e){if(e8(p),e!==e+0&&"longjmp"!==e)throw e;e9(1,0)}}function invoke_viiiddi(e,t,r,n,o,i,a){var s=e6();try{w.get(e)(t,r,n,o,i,a)}catch(e){if(e8(s),e!==e+0&&"longjmp"!==e)throw e;e9(1,0)}}function invoke_i(e){var t=e6();try{return w.get(e)()}catch(e){if(e8(t),e!==e+0&&"longjmp"!==e)throw e;e9(1,0)}}function invoke_viiidi(e,t,r,n,o,i){var a=e6();try{w.get(e)(t,r,n,o,i)}catch(e){if(e8(a),e!==e+0&&"longjmp"!==e)throw e;e9(1,0)}}function invoke_viiiidi(e,t,r,n,o,i,a){var s=e6();try{w.get(e)(t,r,n,o,i,a)}catch(e){if(e8(s),e!==e+0&&"longjmp"!==e)throw e;e9(1,0)}}function invoke_viididii(e,t,r,n,o,i,a,s){var c=e6();try{w.get(e)(t,r,n,o,i,a,s)}catch(e){if(e8(c),e!==e+0&&"longjmp"!==e)throw e;e9(1,0)}}function invoke_iiiiiiiii(e,t,r,n,o,i,a,s,c){var u=e6();try{return w.get(e)(t,r,n,o,i,a,s,c)}catch(e){if(e8(u),e!==e+0&&"longjmp"!==e)throw e;e9(1,0)}}function invoke_viiiiiiiidf(e,t,r,n,o,i,a,s,c,u,d){var l=e6();try{w.get(e)(t,r,n,o,i,a,s,c,u,d)}catch(e){if(e8(l),e!==e+0&&"longjmp"!==e)throw e;e9(1,0)}}function invoke_viiiiiiiidd(e,t,r,n,o,i,a,s,c,u,d){var l=e6();try{w.get(e)(t,r,n,o,i,a,s,c,u,d)}catch(e){if(e8(l),e!==e+0&&"longjmp"!==e)throw e;e9(1,0)}}function invoke_viiiiid(e,t,r,n,o,i,a){var s=e6();try{w.get(e)(t,r,n,o,i,a)}catch(e){if(e8(s),e!==e+0&&"longjmp"!==e)throw e;e9(1,0)}}function invoke_viiiiiid(e,t,r,n,o,i,a,s){var c=e6();try{w.get(e)(t,r,n,o,i,a,s)}catch(e){if(e8(c),e!==e+0&&"longjmp"!==e)throw e;e9(1,0)}}function invoke_viiiiiiiiiiii(e,t,r,n,o,i,a,s,c,u,d,l,f){var p=e6();try{w.get(e)(t,r,n,o,i,a,s,c,u,d,l,f)}catch(e){if(e8(p),e!==e+0&&"longjmp"!==e)throw e;e9(1,0)}}function invoke_viiiiiiidiiii(e,t,r,n,o,i,a,s,c,u,d,l,f){var p=e6();try{w.get(e)(t,r,n,o,i,a,s,c,u,d,l,f)}catch(e){if(e8(p),e!==e+0&&"longjmp"!==e)throw e;e9(1,0)}}function invoke_viiiiif(e,t,r,n,o,i,a){var s=e6();try{w.get(e)(t,r,n,o,i,a)}catch(e){if(e8(s),e!==e+0&&"longjmp"!==e)throw e;e9(1,0)}}function invoke_viiiiiif(e,t,r,n,o,i,a,s){var c=e6();try{w.get(e)(t,r,n,o,i,a,s)}catch(e){if(e8(c),e!==e+0&&"longjmp"!==e)throw e;e9(1,0)}}function invoke_viiiiiiifiiii(e,t,r,n,o,i,a,s,c,u,d,l,f){var p=e6();try{w.get(e)(t,r,n,o,i,a,s,c,u,d,l,f)}catch(e){if(e8(p),e!==e+0&&"longjmp"!==e)throw e;e9(1,0)}}function invoke_viiiifiifiiiiiii(e,t,r,n,o,i,a,s,c,u,d,l,f,p,_,g){var m=e6();try{w.get(e)(t,r,n,o,i,a,s,c,u,d,l,f,p,_,g)}catch(e){if(e8(m),e!==e+0&&"longjmp"!==e)throw e;e9(1,0)}}function invoke_viiiidiidiiiiiii(e,t,r,n,o,i,a,s,c,u,d,l,f,p,_,g){var m=e6();try{w.get(e)(t,r,n,o,i,a,s,c,u,d,l,f,p,_,g)}catch(e){if(e8(m),e!==e+0&&"longjmp"!==e)throw e;e9(1,0)}}function invoke_vididdii(e,t,r,n,o,i,a,s){var c=e6();try{w.get(e)(t,r,n,o,i,a,s)}catch(e){if(e8(c),e!==e+0&&"longjmp"!==e)throw e;e9(1,0)}}function invoke_viiid(e,t,r,n,o){var i=e6();try{w.get(e)(t,r,n,o)}catch(e){if(e8(i),e!==e+0&&"longjmp"!==e)throw e;e9(1,0)}}function invoke_vidii(e,t,r,n,o){var i=e6();try{w.get(e)(t,r,n,o)}catch(e){if(e8(i),e!==e+0&&"longjmp"!==e)throw e;e9(1,0)}}function invoke_viiiiiiiiiiddi(e,t,r,n,o,i,a,s,c,u,d,l,f,p){var _=e6();try{w.get(e)(t,r,n,o,i,a,s,c,u,d,l,f,p)}catch(e){if(e8(_),e!==e+0&&"longjmp"!==e)throw e;e9(1,0)}}function invoke_viiiiiiiddi(e,t,r,n,o,i,a,s,c,u,d){var l=e6();try{w.get(e)(t,r,n,o,i,a,s,c,u,d)}catch(e){if(e8(l),e!==e+0&&"longjmp"!==e)throw e;e9(1,0)}}function invoke_iiiiiiiddi(e,t,r,n,o,i,a,s,c,u){var d=e6();try{return w.get(e)(t,r,n,o,i,a,s,c,u)}catch(e){if(e8(d),e!==e+0&&"longjmp"!==e)throw e;e9(1,0)}}function invoke_viiiid(e,t,r,n,o,i){var a=e6();try{w.get(e)(t,r,n,o,i)}catch(e){if(e8(a),e!==e+0&&"longjmp"!==e)throw e;e9(1,0)}}function invoke_viiiidid(e,t,r,n,o,i,a,s){var c=e6();try{w.get(e)(t,r,n,o,i,a,s)}catch(e){if(e8(c),e!==e+0&&"longjmp"!==e)throw e;e9(1,0)}}function invoke_viidi(e,t,r,n,o){var i=e6();try{w.get(e)(t,r,n,o)}catch(e){if(e8(i),e!==e+0&&"longjmp"!==e)throw e;e9(1,0)}}function invoke_vdiii(e,t,r,n,o){var i=e6();try{w.get(e)(t,r,n,o)}catch(e){if(e8(i),e!==e+0&&"longjmp"!==e)throw e;e9(1,0)}}function ExitStatus(e){this.name="ExitStatus",this.message="Program terminated with exit("+e+")",this.status=e}function stackCheckInit(){e5(),writeStackCookie()}function run(e){e=e||F,!(ee>0)&&(stackCheckInit(),preRun(),ee>0||(M.setStatus?(M.setStatus("Running..."),setTimeout(function(){setTimeout(function(){M.setStatus("")},1),doRun()},1)):doRun(),checkStackCookie()));function doRun(){x||(x=!0,M.calledRun=!0,X||(initRuntime(),r(M),M.onRuntimeInitialized&&M.onRuntimeInitialized(),assert(!M._main,'compiled without a main, but one is present. if you added it from JS, use Module["onRuntimeInitialized"]'),postRun()))}}function checkUnflushedContent(){var e=L,t=N,r=!1;L=N=function(e){r=!0};try{var n=M._fflush;n&&n(0),["stdout","stderr"].forEach(function(e){var t=eg.analyzePath("/dev/"+e);if(t){var n=t.object.rdev,o=el.ttys[n];o&&o.output&&o.output.length&&(r=!0)}})}catch{}L=e,N=t,r&&warnOnce("stdio streams had content in them that was not flushed. you should set EXIT_RUNTIME to 1 (see the FAQ), or make sure to emit a newline when you printf etc.")}function exit(e,t){if(f=e,checkUnflushedContent(),H||0){if(!t){var r="program exited (with status: "+e+"), but EXIT_RUNTIME is not set, so halting execution but not exiting the runtime or preventing further async execution (build with EXIT_RUNTIME=1, if you want a true shutdown)";n(r),N(r)}}else exitRuntime();procExit(e)}function procExit(e){f=e,H||(M.onExit&&M.onExit(e),X=!0),quit_(e,new ExitStatus(e))}if(M._emscripten_builtin_malloc=createExportWrapper("emscripten_builtin_malloc"),M._emscripten_builtin_free=createExportWrapper("emscripten_builtin_free"),M._emscripten_builtin_memalign=createExportWrapper("emscripten_builtin_memalign"),M.dynCall_jii=createExportWrapper("dynCall_jii"),M.dynCall_viji=createExportWrapper("dynCall_viji"),M.dynCall_jjj=createExportWrapper("dynCall_jjj"),M.dynCall_iiiijj=createExportWrapper("dynCall_iiiijj"),M.dynCall_viijj=createExportWrapper("dynCall_viijj"),M.dynCall_viiijjjj=createExportWrapper("dynCall_viiijjjj"),M.dynCall_ji=createExportWrapper("dynCall_ji"),M.dynCall_vij=createExportWrapper("dynCall_vij"),M.dynCall_viijii=createExportWrapper("dynCall_viijii"),M.dynCall_vj=createExportWrapper("dynCall_vj"),M.dynCall_viij=createExportWrapper("dynCall_viij"),M.dynCall_viiiiij=createExportWrapper("dynCall_viiiiij"),M.dynCall_iijjiiii=createExportWrapper("dynCall_iijjiiii"),M.dynCall_jiji=createExportWrapper("dynCall_jiji"),M.dynCall_iiiiij=createExportWrapper("dynCall_iiiiij"),M.dynCall_iiiiijj=createExportWrapper("dynCall_iiiiijj"),M.dynCall_iiiiiijj=createExportWrapper("dynCall_iiiiiijj"),Object.getOwnPropertyDescriptor(M,"intArrayFromString")||(M.intArrayFromString=function(){abort("'intArrayFromString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"intArrayToString")||(M.intArrayToString=function(){abort("'intArrayToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"ccall")||(M.ccall=function(){abort("'ccall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"cwrap")||(M.cwrap=function(){abort("'cwrap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"setValue")||(M.setValue=function(){abort("'setValue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"getValue")||(M.getValue=function(){abort("'getValue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"allocate")||(M.allocate=function(){abort("'allocate' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"UTF8ArrayToString")||(M.UTF8ArrayToString=function(){abort("'UTF8ArrayToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"UTF8ToString")||(M.UTF8ToString=function(){abort("'UTF8ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"stringToUTF8Array")||(M.stringToUTF8Array=function(){abort("'stringToUTF8Array' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"stringToUTF8")||(M.stringToUTF8=function(){abort("'stringToUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"lengthBytesUTF8")||(M.lengthBytesUTF8=function(){abort("'lengthBytesUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"stackTrace")||(M.stackTrace=function(){abort("'stackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"addOnPreRun")||(M.addOnPreRun=function(){abort("'addOnPreRun' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"addOnInit")||(M.addOnInit=function(){abort("'addOnInit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"addOnPreMain")||(M.addOnPreMain=function(){abort("'addOnPreMain' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"addOnExit")||(M.addOnExit=function(){abort("'addOnExit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"addOnPostRun")||(M.addOnPostRun=function(){abort("'addOnPostRun' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"writeStringToMemory")||(M.writeStringToMemory=function(){abort("'writeStringToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"writeArrayToMemory")||(M.writeArrayToMemory=function(){abort("'writeArrayToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"writeAsciiToMemory")||(M.writeAsciiToMemory=function(){abort("'writeAsciiToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),M.addRunDependency=addRunDependency,M.removeRunDependency=removeRunDependency,Object.getOwnPropertyDescriptor(M,"FS_createFolder")||(M.FS_createFolder=function(){abort("'FS_createFolder' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),M.FS_createPath=eg.createPath,M.FS_createDataFile=eg.createDataFile,M.FS_createPreloadedFile=eg.createPreloadedFile,M.FS_createLazyFile=eg.createLazyFile,Object.getOwnPropertyDescriptor(M,"FS_createLink")||(M.FS_createLink=function(){abort("'FS_createLink' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),M.FS_createDevice=eg.createDevice,M.FS_unlink=eg.unlink,Object.getOwnPropertyDescriptor(M,"getLEB")||(M.getLEB=function(){abort("'getLEB' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"getFunctionTables")||(M.getFunctionTables=function(){abort("'getFunctionTables' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"alignFunctionTables")||(M.alignFunctionTables=function(){abort("'alignFunctionTables' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"registerFunctions")||(M.registerFunctions=function(){abort("'registerFunctions' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"addFunction")||(M.addFunction=function(){abort("'addFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"removeFunction")||(M.removeFunction=function(){abort("'removeFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"getFuncWrapper")||(M.getFuncWrapper=function(){abort("'getFuncWrapper' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"prettyPrint")||(M.prettyPrint=function(){abort("'prettyPrint' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"dynCall")||(M.dynCall=function(){abort("'dynCall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"getCompilerSetting")||(M.getCompilerSetting=function(){abort("'getCompilerSetting' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"print")||(M.print=function(){abort("'print' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"printErr")||(M.printErr=function(){abort("'printErr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"getTempRet0")||(M.getTempRet0=function(){abort("'getTempRet0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"setTempRet0")||(M.setTempRet0=function(){abort("'setTempRet0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"callMain")||(M.callMain=function(){abort("'callMain' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"abort")||(M.abort=function(){abort("'abort' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"keepRuntimeAlive")||(M.keepRuntimeAlive=function(){abort("'keepRuntimeAlive' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"zeroMemory")||(M.zeroMemory=function(){abort("'zeroMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"stringToNewUTF8")||(M.stringToNewUTF8=function(){abort("'stringToNewUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"setFileTime")||(M.setFileTime=function(){abort("'setFileTime' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"emscripten_realloc_buffer")||(M.emscripten_realloc_buffer=function(){abort("'emscripten_realloc_buffer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"ENV")||(M.ENV=function(){abort("'ENV' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"ERRNO_CODES")||(M.ERRNO_CODES=function(){abort("'ERRNO_CODES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"ERRNO_MESSAGES")||(M.ERRNO_MESSAGES=function(){abort("'ERRNO_MESSAGES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"setErrNo")||(M.setErrNo=function(){abort("'setErrNo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"inetPton4")||(M.inetPton4=function(){abort("'inetPton4' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"inetNtop4")||(M.inetNtop4=function(){abort("'inetNtop4' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"inetPton6")||(M.inetPton6=function(){abort("'inetPton6' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"inetNtop6")||(M.inetNtop6=function(){abort("'inetNtop6' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"readSockaddr")||(M.readSockaddr=function(){abort("'readSockaddr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"writeSockaddr")||(M.writeSockaddr=function(){abort("'writeSockaddr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"DNS")||(M.DNS=function(){abort("'DNS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"getHostByName")||(M.getHostByName=function(){abort("'getHostByName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"GAI_ERRNO_MESSAGES")||(M.GAI_ERRNO_MESSAGES=function(){abort("'GAI_ERRNO_MESSAGES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"Protocols")||(M.Protocols=function(){abort("'Protocols' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"Sockets")||(M.Sockets=function(){abort("'Sockets' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"getRandomDevice")||(M.getRandomDevice=function(){abort("'getRandomDevice' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"traverseStack")||(M.traverseStack=function(){abort("'traverseStack' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"UNWIND_CACHE")||(M.UNWIND_CACHE=function(){abort("'UNWIND_CACHE' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"withBuiltinMalloc")||(M.withBuiltinMalloc=function(){abort("'withBuiltinMalloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"readAsmConstArgsArray")||(M.readAsmConstArgsArray=function(){abort("'readAsmConstArgsArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"readAsmConstArgs")||(M.readAsmConstArgs=function(){abort("'readAsmConstArgs' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"mainThreadEM_ASM")||(M.mainThreadEM_ASM=function(){abort("'mainThreadEM_ASM' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"jstoi_q")||(M.jstoi_q=function(){abort("'jstoi_q' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"jstoi_s")||(M.jstoi_s=function(){abort("'jstoi_s' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"getExecutableName")||(M.getExecutableName=function(){abort("'getExecutableName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"listenOnce")||(M.listenOnce=function(){abort("'listenOnce' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"autoResumeAudioContext")||(M.autoResumeAudioContext=function(){abort("'autoResumeAudioContext' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"dynCallLegacy")||(M.dynCallLegacy=function(){abort("'dynCallLegacy' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"getDynCaller")||(M.getDynCaller=function(){abort("'getDynCaller' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"dynCall")||(M.dynCall=function(){abort("'dynCall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"callRuntimeCallbacks")||(M.callRuntimeCallbacks=function(){abort("'callRuntimeCallbacks' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"runtimeKeepalivePush")||(M.runtimeKeepalivePush=function(){abort("'runtimeKeepalivePush' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"runtimeKeepalivePop")||(M.runtimeKeepalivePop=function(){abort("'runtimeKeepalivePop' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"callUserCallback")||(M.callUserCallback=function(){abort("'callUserCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"maybeExit")||(M.maybeExit=function(){abort("'maybeExit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"safeSetTimeout")||(M.safeSetTimeout=function(){abort("'safeSetTimeout' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"asmjsMangle")||(M.asmjsMangle=function(){abort("'asmjsMangle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"asyncLoad")||(M.asyncLoad=function(){abort("'asyncLoad' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"alignMemory")||(M.alignMemory=function(){abort("'alignMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"mmapAlloc")||(M.mmapAlloc=function(){abort("'mmapAlloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"reallyNegative")||(M.reallyNegative=function(){abort("'reallyNegative' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"unSign")||(M.unSign=function(){abort("'unSign' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"reSign")||(M.reSign=function(){abort("'reSign' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"formatString")||(M.formatString=function(){abort("'formatString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"PATH")||(M.PATH=function(){abort("'PATH' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"PATH_FS")||(M.PATH_FS=function(){abort("'PATH_FS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"SYSCALLS")||(M.SYSCALLS=function(){abort("'SYSCALLS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"syscallMmap2")||(M.syscallMmap2=function(){abort("'syscallMmap2' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"syscallMunmap")||(M.syscallMunmap=function(){abort("'syscallMunmap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"getSocketFromFD")||(M.getSocketFromFD=function(){abort("'getSocketFromFD' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"getSocketAddress")||(M.getSocketAddress=function(){abort("'getSocketAddress' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"JSEvents")||(M.JSEvents=function(){abort("'JSEvents' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"registerKeyEventCallback")||(M.registerKeyEventCallback=function(){abort("'registerKeyEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"specialHTMLTargets")||(M.specialHTMLTargets=function(){abort("'specialHTMLTargets' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"findEventTarget")||(M.findEventTarget=function(){abort("'findEventTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"findCanvasEventTarget")||(M.findCanvasEventTarget=function(){abort("'findCanvasEventTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"getBoundingClientRect")||(M.getBoundingClientRect=function(){abort("'getBoundingClientRect' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"fillMouseEventData")||(M.fillMouseEventData=function(){abort("'fillMouseEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"registerMouseEventCallback")||(M.registerMouseEventCallback=function(){abort("'registerMouseEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"registerWheelEventCallback")||(M.registerWheelEventCallback=function(){abort("'registerWheelEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"registerUiEventCallback")||(M.registerUiEventCallback=function(){abort("'registerUiEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"registerFocusEventCallback")||(M.registerFocusEventCallback=function(){abort("'registerFocusEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"fillDeviceOrientationEventData")||(M.fillDeviceOrientationEventData=function(){abort("'fillDeviceOrientationEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"registerDeviceOrientationEventCallback")||(M.registerDeviceOrientationEventCallback=function(){abort("'registerDeviceOrientationEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"fillDeviceMotionEventData")||(M.fillDeviceMotionEventData=function(){abort("'fillDeviceMotionEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"registerDeviceMotionEventCallback")||(M.registerDeviceMotionEventCallback=function(){abort("'registerDeviceMotionEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"screenOrientation")||(M.screenOrientation=function(){abort("'screenOrientation' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"fillOrientationChangeEventData")||(M.fillOrientationChangeEventData=function(){abort("'fillOrientationChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"registerOrientationChangeEventCallback")||(M.registerOrientationChangeEventCallback=function(){abort("'registerOrientationChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"fillFullscreenChangeEventData")||(M.fillFullscreenChangeEventData=function(){abort("'fillFullscreenChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"registerFullscreenChangeEventCallback")||(M.registerFullscreenChangeEventCallback=function(){abort("'registerFullscreenChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"registerRestoreOldStyle")||(M.registerRestoreOldStyle=function(){abort("'registerRestoreOldStyle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"hideEverythingExceptGivenElement")||(M.hideEverythingExceptGivenElement=function(){abort("'hideEverythingExceptGivenElement' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"restoreHiddenElements")||(M.restoreHiddenElements=function(){abort("'restoreHiddenElements' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"setLetterbox")||(M.setLetterbox=function(){abort("'setLetterbox' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"currentFullscreenStrategy")||(M.currentFullscreenStrategy=function(){abort("'currentFullscreenStrategy' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"restoreOldWindowedStyle")||(M.restoreOldWindowedStyle=function(){abort("'restoreOldWindowedStyle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"softFullscreenResizeWebGLRenderTarget")||(M.softFullscreenResizeWebGLRenderTarget=function(){abort("'softFullscreenResizeWebGLRenderTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"doRequestFullscreen")||(M.doRequestFullscreen=function(){abort("'doRequestFullscreen' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"fillPointerlockChangeEventData")||(M.fillPointerlockChangeEventData=function(){abort("'fillPointerlockChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"registerPointerlockChangeEventCallback")||(M.registerPointerlockChangeEventCallback=function(){abort("'registerPointerlockChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"registerPointerlockErrorEventCallback")||(M.registerPointerlockErrorEventCallback=function(){abort("'registerPointerlockErrorEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"requestPointerLock")||(M.requestPointerLock=function(){abort("'requestPointerLock' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"fillVisibilityChangeEventData")||(M.fillVisibilityChangeEventData=function(){abort("'fillVisibilityChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"registerVisibilityChangeEventCallback")||(M.registerVisibilityChangeEventCallback=function(){abort("'registerVisibilityChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"registerTouchEventCallback")||(M.registerTouchEventCallback=function(){abort("'registerTouchEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"fillGamepadEventData")||(M.fillGamepadEventData=function(){abort("'fillGamepadEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"registerGamepadEventCallback")||(M.registerGamepadEventCallback=function(){abort("'registerGamepadEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"registerBeforeUnloadEventCallback")||(M.registerBeforeUnloadEventCallback=function(){abort("'registerBeforeUnloadEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"fillBatteryEventData")||(M.fillBatteryEventData=function(){abort("'fillBatteryEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"battery")||(M.battery=function(){abort("'battery' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"registerBatteryEventCallback")||(M.registerBatteryEventCallback=function(){abort("'registerBatteryEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"setCanvasElementSize")||(M.setCanvasElementSize=function(){abort("'setCanvasElementSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"getCanvasElementSize")||(M.getCanvasElementSize=function(){abort("'getCanvasElementSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"polyfillSetImmediate")||(M.polyfillSetImmediate=function(){abort("'polyfillSetImmediate' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"demangle")||(M.demangle=function(){abort("'demangle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"demangleAll")||(M.demangleAll=function(){abort("'demangleAll' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"jsStackTrace")||(M.jsStackTrace=function(){abort("'jsStackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"stackTrace")||(M.stackTrace=function(){abort("'stackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"getEnvStrings")||(M.getEnvStrings=function(){abort("'getEnvStrings' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"checkWasiClock")||(M.checkWasiClock=function(){abort("'checkWasiClock' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"writeI53ToI64")||(M.writeI53ToI64=function(){abort("'writeI53ToI64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"writeI53ToI64Clamped")||(M.writeI53ToI64Clamped=function(){abort("'writeI53ToI64Clamped' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"writeI53ToI64Signaling")||(M.writeI53ToI64Signaling=function(){abort("'writeI53ToI64Signaling' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"writeI53ToU64Clamped")||(M.writeI53ToU64Clamped=function(){abort("'writeI53ToU64Clamped' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"writeI53ToU64Signaling")||(M.writeI53ToU64Signaling=function(){abort("'writeI53ToU64Signaling' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"readI53FromI64")||(M.readI53FromI64=function(){abort("'readI53FromI64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"readI53FromU64")||(M.readI53FromU64=function(){abort("'readI53FromU64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"convertI32PairToI53")||(M.convertI32PairToI53=function(){abort("'convertI32PairToI53' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"convertU32PairToI53")||(M.convertU32PairToI53=function(){abort("'convertU32PairToI53' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"uncaughtExceptionCount")||(M.uncaughtExceptionCount=function(){abort("'uncaughtExceptionCount' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"exceptionLast")||(M.exceptionLast=function(){abort("'exceptionLast' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"exceptionCaught")||(M.exceptionCaught=function(){abort("'exceptionCaught' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"ExceptionInfo")||(M.ExceptionInfo=function(){abort("'ExceptionInfo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"CatchInfo")||(M.CatchInfo=function(){abort("'CatchInfo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"exception_addRef")||(M.exception_addRef=function(){abort("'exception_addRef' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"exception_decRef")||(M.exception_decRef=function(){abort("'exception_decRef' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"Browser")||(M.Browser=function(){abort("'Browser' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"funcWrappers")||(M.funcWrappers=function(){abort("'funcWrappers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"getFuncWrapper")||(M.getFuncWrapper=function(){abort("'getFuncWrapper' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"setMainLoop")||(M.setMainLoop=function(){abort("'setMainLoop' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"wget")||(M.wget=function(){abort("'wget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"FS")||(M.FS=function(){abort("'FS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"MEMFS")||(M.MEMFS=function(){abort("'MEMFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"TTY")||(M.TTY=function(){abort("'TTY' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"PIPEFS")||(M.PIPEFS=function(){abort("'PIPEFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"SOCKFS")||(M.SOCKFS=function(){abort("'SOCKFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"_setNetworkCallback")||(M._setNetworkCallback=function(){abort("'_setNetworkCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"tempFixedLengthArray")||(M.tempFixedLengthArray=function(){abort("'tempFixedLengthArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"miniTempWebGLFloatBuffers")||(M.miniTempWebGLFloatBuffers=function(){abort("'miniTempWebGLFloatBuffers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"heapObjectForWebGLType")||(M.heapObjectForWebGLType=function(){abort("'heapObjectForWebGLType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"heapAccessShiftForWebGLHeap")||(M.heapAccessShiftForWebGLHeap=function(){abort("'heapAccessShiftForWebGLHeap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),M.GL=eU,Object.getOwnPropertyDescriptor(M,"emscriptenWebGLGet")||(M.emscriptenWebGLGet=function(){abort("'emscriptenWebGLGet' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"computeUnpackAlignedImageSize")||(M.computeUnpackAlignedImageSize=function(){abort("'computeUnpackAlignedImageSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"emscriptenWebGLGetTexPixelData")||(M.emscriptenWebGLGetTexPixelData=function(){abort("'emscriptenWebGLGetTexPixelData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"emscriptenWebGLGetUniform")||(M.emscriptenWebGLGetUniform=function(){abort("'emscriptenWebGLGetUniform' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"webglGetUniformLocation")||(M.webglGetUniformLocation=function(){abort("'webglGetUniformLocation' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"webglPrepareUniformLocationsBeforeFirstUse")||(M.webglPrepareUniformLocationsBeforeFirstUse=function(){abort("'webglPrepareUniformLocationsBeforeFirstUse' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"webglGetLeftBracePos")||(M.webglGetLeftBracePos=function(){abort("'webglGetLeftBracePos' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"emscriptenWebGLGetVertexAttrib")||(M.emscriptenWebGLGetVertexAttrib=function(){abort("'emscriptenWebGLGetVertexAttrib' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"emscriptenWebGLGetBufferBinding")||(M.emscriptenWebGLGetBufferBinding=function(){abort("'emscriptenWebGLGetBufferBinding' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"emscriptenWebGLValidateMapBufferTarget")||(M.emscriptenWebGLValidateMapBufferTarget=function(){abort("'emscriptenWebGLValidateMapBufferTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"writeGLArray")||(M.writeGLArray=function(){abort("'writeGLArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"AL")||(M.AL=function(){abort("'AL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"SDL_unicode")||(M.SDL_unicode=function(){abort("'SDL_unicode' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"SDL_ttfContext")||(M.SDL_ttfContext=function(){abort("'SDL_ttfContext' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"SDL_audio")||(M.SDL_audio=function(){abort("'SDL_audio' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"SDL")||(M.SDL=function(){abort("'SDL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"SDL_gfx")||(M.SDL_gfx=function(){abort("'SDL_gfx' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"GLUT")||(M.GLUT=function(){abort("'GLUT' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"EGL")||(M.EGL=function(){abort("'EGL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"GLFW_Window")||(M.GLFW_Window=function(){abort("'GLFW_Window' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"GLFW")||(M.GLFW=function(){abort("'GLFW' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"GLEW")||(M.GLEW=function(){abort("'GLEW' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"IDBStore")||(M.IDBStore=function(){abort("'IDBStore' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"runAndAbortIfError")||(M.runAndAbortIfError=function(){abort("'runAndAbortIfError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"emval_handle_array")||(M.emval_handle_array=function(){abort("'emval_handle_array' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"emval_free_list")||(M.emval_free_list=function(){abort("'emval_free_list' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"emval_symbols")||(M.emval_symbols=function(){abort("'emval_symbols' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"init_emval")||(M.init_emval=function(){abort("'init_emval' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"count_emval_handles")||(M.count_emval_handles=function(){abort("'count_emval_handles' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"get_first_emval")||(M.get_first_emval=function(){abort("'get_first_emval' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"getStringOrSymbol")||(M.getStringOrSymbol=function(){abort("'getStringOrSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"requireHandle")||(M.requireHandle=function(){abort("'requireHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"emval_newers")||(M.emval_newers=function(){abort("'emval_newers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"craftEmvalAllocator")||(M.craftEmvalAllocator=function(){abort("'craftEmvalAllocator' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"emval_get_global")||(M.emval_get_global=function(){abort("'emval_get_global' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"emval_methodCallers")||(M.emval_methodCallers=function(){abort("'emval_methodCallers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"InternalError")||(M.InternalError=function(){abort("'InternalError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"BindingError")||(M.BindingError=function(){abort("'BindingError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"UnboundTypeError")||(M.UnboundTypeError=function(){abort("'UnboundTypeError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"PureVirtualError")||(M.PureVirtualError=function(){abort("'PureVirtualError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"init_embind")||(M.init_embind=function(){abort("'init_embind' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"throwInternalError")||(M.throwInternalError=function(){abort("'throwInternalError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"throwBindingError")||(M.throwBindingError=function(){abort("'throwBindingError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"throwUnboundTypeError")||(M.throwUnboundTypeError=function(){abort("'throwUnboundTypeError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"ensureOverloadTable")||(M.ensureOverloadTable=function(){abort("'ensureOverloadTable' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"exposePublicSymbol")||(M.exposePublicSymbol=function(){abort("'exposePublicSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"replacePublicSymbol")||(M.replacePublicSymbol=function(){abort("'replacePublicSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"extendError")||(M.extendError=function(){abort("'extendError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"createNamedFunction")||(M.createNamedFunction=function(){abort("'createNamedFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"registeredInstances")||(M.registeredInstances=function(){abort("'registeredInstances' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"getBasestPointer")||(M.getBasestPointer=function(){abort("'getBasestPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"registerInheritedInstance")||(M.registerInheritedInstance=function(){abort("'registerInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"unregisterInheritedInstance")||(M.unregisterInheritedInstance=function(){abort("'unregisterInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"getInheritedInstance")||(M.getInheritedInstance=function(){abort("'getInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"getInheritedInstanceCount")||(M.getInheritedInstanceCount=function(){abort("'getInheritedInstanceCount' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"getLiveInheritedInstances")||(M.getLiveInheritedInstances=function(){abort("'getLiveInheritedInstances' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"registeredTypes")||(M.registeredTypes=function(){abort("'registeredTypes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"awaitingDependencies")||(M.awaitingDependencies=function(){abort("'awaitingDependencies' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"typeDependencies")||(M.typeDependencies=function(){abort("'typeDependencies' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"registeredPointers")||(M.registeredPointers=function(){abort("'registeredPointers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"registerType")||(M.registerType=function(){abort("'registerType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"whenDependentTypesAreResolved")||(M.whenDependentTypesAreResolved=function(){abort("'whenDependentTypesAreResolved' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"embind_charCodes")||(M.embind_charCodes=function(){abort("'embind_charCodes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"embind_init_charCodes")||(M.embind_init_charCodes=function(){abort("'embind_init_charCodes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"readLatin1String")||(M.readLatin1String=function(){abort("'readLatin1String' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"getTypeName")||(M.getTypeName=function(){abort("'getTypeName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"heap32VectorToArray")||(M.heap32VectorToArray=function(){abort("'heap32VectorToArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"requireRegisteredType")||(M.requireRegisteredType=function(){abort("'requireRegisteredType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"getShiftFromSize")||(M.getShiftFromSize=function(){abort("'getShiftFromSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"integerReadValueFromPointer")||(M.integerReadValueFromPointer=function(){abort("'integerReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"enumReadValueFromPointer")||(M.enumReadValueFromPointer=function(){abort("'enumReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"floatReadValueFromPointer")||(M.floatReadValueFromPointer=function(){abort("'floatReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"simpleReadValueFromPointer")||(M.simpleReadValueFromPointer=function(){abort("'simpleReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"runDestructors")||(M.runDestructors=function(){abort("'runDestructors' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"new_")||(M.new_=function(){abort("'new_' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"craftInvokerFunction")||(M.craftInvokerFunction=function(){abort("'craftInvokerFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"embind__requireFunction")||(M.embind__requireFunction=function(){abort("'embind__requireFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"tupleRegistrations")||(M.tupleRegistrations=function(){abort("'tupleRegistrations' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"structRegistrations")||(M.structRegistrations=function(){abort("'structRegistrations' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"genericPointerToWireType")||(M.genericPointerToWireType=function(){abort("'genericPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"constNoSmartPtrRawPointerToWireType")||(M.constNoSmartPtrRawPointerToWireType=function(){abort("'constNoSmartPtrRawPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"nonConstNoSmartPtrRawPointerToWireType")||(M.nonConstNoSmartPtrRawPointerToWireType=function(){abort("'nonConstNoSmartPtrRawPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"init_RegisteredPointer")||(M.init_RegisteredPointer=function(){abort("'init_RegisteredPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"RegisteredPointer")||(M.RegisteredPointer=function(){abort("'RegisteredPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"RegisteredPointer_getPointee")||(M.RegisteredPointer_getPointee=function(){abort("'RegisteredPointer_getPointee' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"RegisteredPointer_destructor")||(M.RegisteredPointer_destructor=function(){abort("'RegisteredPointer_destructor' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"RegisteredPointer_deleteObject")||(M.RegisteredPointer_deleteObject=function(){abort("'RegisteredPointer_deleteObject' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"RegisteredPointer_fromWireType")||(M.RegisteredPointer_fromWireType=function(){abort("'RegisteredPointer_fromWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"runDestructor")||(M.runDestructor=function(){abort("'runDestructor' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"releaseClassHandle")||(M.releaseClassHandle=function(){abort("'releaseClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"finalizationGroup")||(M.finalizationGroup=function(){abort("'finalizationGroup' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"detachFinalizer_deps")||(M.detachFinalizer_deps=function(){abort("'detachFinalizer_deps' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"detachFinalizer")||(M.detachFinalizer=function(){abort("'detachFinalizer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"attachFinalizer")||(M.attachFinalizer=function(){abort("'attachFinalizer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"makeClassHandle")||(M.makeClassHandle=function(){abort("'makeClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"init_ClassHandle")||(M.init_ClassHandle=function(){abort("'init_ClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"ClassHandle")||(M.ClassHandle=function(){abort("'ClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"ClassHandle_isAliasOf")||(M.ClassHandle_isAliasOf=function(){abort("'ClassHandle_isAliasOf' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"throwInstanceAlreadyDeleted")||(M.throwInstanceAlreadyDeleted=function(){abort("'throwInstanceAlreadyDeleted' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"ClassHandle_clone")||(M.ClassHandle_clone=function(){abort("'ClassHandle_clone' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"ClassHandle_delete")||(M.ClassHandle_delete=function(){abort("'ClassHandle_delete' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"deletionQueue")||(M.deletionQueue=function(){abort("'deletionQueue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"ClassHandle_isDeleted")||(M.ClassHandle_isDeleted=function(){abort("'ClassHandle_isDeleted' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"ClassHandle_deleteLater")||(M.ClassHandle_deleteLater=function(){abort("'ClassHandle_deleteLater' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"flushPendingDeletes")||(M.flushPendingDeletes=function(){abort("'flushPendingDeletes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"delayFunction")||(M.delayFunction=function(){abort("'delayFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"setDelayFunction")||(M.setDelayFunction=function(){abort("'setDelayFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"RegisteredClass")||(M.RegisteredClass=function(){abort("'RegisteredClass' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"shallowCopyInternalPointer")||(M.shallowCopyInternalPointer=function(){abort("'shallowCopyInternalPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"downcastPointer")||(M.downcastPointer=function(){abort("'downcastPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"upcastPointer")||(M.upcastPointer=function(){abort("'upcastPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"validateThis")||(M.validateThis=function(){abort("'validateThis' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"char_0")||(M.char_0=function(){abort("'char_0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"char_9")||(M.char_9=function(){abort("'char_9' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"makeLegalFunctionName")||(M.makeLegalFunctionName=function(){abort("'makeLegalFunctionName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"emscriptenWebGLGetIndexed")||(M.emscriptenWebGLGetIndexed=function(){abort("'emscriptenWebGLGetIndexed' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"warnOnce")||(M.warnOnce=function(){abort("'warnOnce' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"stackSave")||(M.stackSave=function(){abort("'stackSave' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"stackRestore")||(M.stackRestore=function(){abort("'stackRestore' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"stackAlloc")||(M.stackAlloc=function(){abort("'stackAlloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"AsciiToString")||(M.AsciiToString=function(){abort("'AsciiToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"stringToAscii")||(M.stringToAscii=function(){abort("'stringToAscii' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"UTF16ToString")||(M.UTF16ToString=function(){abort("'UTF16ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"stringToUTF16")||(M.stringToUTF16=function(){abort("'stringToUTF16' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"lengthBytesUTF16")||(M.lengthBytesUTF16=function(){abort("'lengthBytesUTF16' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"UTF32ToString")||(M.UTF32ToString=function(){abort("'UTF32ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"stringToUTF32")||(M.stringToUTF32=function(){abort("'stringToUTF32' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"lengthBytesUTF32")||(M.lengthBytesUTF32=function(){abort("'lengthBytesUTF32' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"allocateUTF8")||(M.allocateUTF8=function(){abort("'allocateUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(M,"allocateUTF8OnStack")||(M.allocateUTF8OnStack=function(){abort("'allocateUTF8OnStack' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),M.writeStackCookie=writeStackCookie,M.checkStackCookie=checkStackCookie,Object.getOwnPropertyDescriptor(M,"ALLOC_NORMAL")||Object.defineProperty(M,"ALLOC_NORMAL",{configurable:!0,get:function(){abort("'ALLOC_NORMAL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}}),Object.getOwnPropertyDescriptor(M,"ALLOC_STACK")||Object.defineProperty(M,"ALLOC_STACK",{configurable:!0,get:function(){abort("'ALLOC_STACK' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}}),er=function runCaller(){x||run(),x||(er=runCaller)},M.run=run,M.preInit)for("function"==typeof M.preInit&&(M.preInit=[M.preInit]);M.preInit.length>0;)M.preInit.pop()();return run(),t.ready}}();"object"==typeof exports&&"object"==typeof module?module.exports=createMediapipeSolutionsWasm:"function"==typeof define&&define.amd?define([],function(){return createMediapipeSolutionsWasm}):"object"==typeof exports&&(exports.createMediapipeSolutionsWasm=createMediapipeSolutionsWasm);ØA —Eoúô