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<n.length;o++){var i=n[o];if(0===i||i===t)break;if(e7(i,t,r.get_adjusted_ptr_addr()))return setTempRet0(i),0|r.ptr}return setTempRet0(t),0|r.ptr}function ___cxa_find_matching_catch_3(){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<n.length;o++){var i=n[o];if(0===i||i===t)break;if(e7(i,t,r.get_adjusted_ptr_addr()))return setTempRet0(i),0|r.ptr}return setTempRet0(t),0|r.ptr}function ___cxa_rethrow(){var e=ea.pop();e||abort("no exception to throw");var t=e.get_exception_info(),r=e.get_base_ptr();throw t.get_rethrown()?e.free():(ea.push(e),t.set_rethrown(!0),t.set_caught(!1),es++),ec=r,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_thread_atexit(e,t){return _atexit(e,t)}function ___cxa_throw(e,t,r){throw new ExceptionInfo(e).init(t,r),ec=e,es++,e+" - Exception catching is disabled, this exception cannot be caught. Compile with -s NO_DISABLE_EXCEPTION_CATCHING or -s EXCEPTION_CATCHING_ALLOWED=[..] to catch."}function setErrNo(e){return E[eJ()>>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<e.length&&""===e[t];t++);for(var r=e.length-1;r>=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;a<o;a++)if(r[a]!==n[a]){i=a;break}for(var s=[],a=i;a<r.length;a++)s.push("..");return(s=s.concat(n.slice(i))).join("/")}},el={ttys:[],init:function(){},shutdown:function(){},register:function(e,t){el.ttys[e]={input:[],output:[],ops:t},eg.registerDevice(e,el.stream_ops)},stream_ops:{open:function(e){var t=el.ttys[e.node.rdev];if(!t)throw new eg.ErrnoError(43);e.tty=t,e.seekable=!1},close:function(e){e.tty.ops.flush(e.tty)},flush:function(e){e.tty.ops.flush(e.tty)},read:function(e,t,r,n,o){if(!e.tty||!e.tty.ops.get_char)throw new eg.ErrnoError(60);for(var i,a=0,s=0;s<n;s++){try{i=e.tty.ops.get_char(e.tty)}catch{throw new eg.ErrnoError(29)}if(void 0===i&&0===a)throw new eg.ErrnoError(6);if(null==i)break;a++,t[r+s]=i}return a&&(e.node.timestamp=Date.now()),a},write:function(e,t,r,n,o){if(!e.tty||!e.tty.ops.put_char)throw new eg.ErrnoError(60);try{for(var i=0;i<n;i++)e.tty.ops.put_char(e.tty,t[r+i])}catch{throw new eg.ErrnoError(29)}return n&&(e.node.timestamp=Date.now()),i}},default_tty_ops:{get_char:function(e){if(!e.input.length){var t=null;if(j){var r=Buffer.alloc(256),n=0;try{n=c.readSync(process.stdin.fd,r,0,256,null)}catch(e){if(e.toString().includes("EOF"))n=0;else throw e}t=n>0?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;s<a;s++)t[r+s]=i[o+s];return a},write:function(e,t,r,n,o,i){if(assert(!(t instanceof ArrayBuffer)),t.buffer===_.buffer&&(i=!1),!n)return 0;var a=e.node;if(a.timestamp=Date.now(),t.subarray&&(!a.contents||a.contents.subarray)){if(i)return assert(0===o,"canOwn must imply no weird position inside the file"),a.contents=t.subarray(r,r+n),a.usedBytes=n,n;else if(0===a.usedBytes&&0===o)return a.contents=t.slice(r,r+n),a.usedBytes=n,n;else if(o+n<=a.usedBytes)return a.contents.set(t.subarray(r,r+n),o),n}if(ef.expandFileStorage(a,o+n),a.contents.subarray&&t.subarray)a.contents.set(t.subarray(r,r+n),o);else for(var s=0;s<n;s++)a.contents[o+s]=t[r+s];return a.usedBytes=Math.max(a.usedBytes,o+n),n},llseek:function(e,t,r){var n=t;if(1===r?n+=e.position:2===r&&eg.isFile(e.node.mode)&&(n+=e.node.usedBytes),n<0)throw new eg.ErrnoError(28);return n},allocate:function(e,t,r){ef.expandFileStorage(e.node,t+r),e.node.usedBytes=Math.max(e.node.usedBytes,t+r)},mmap:function(e,t,r,n,o,i){if(0!==t)throw new eg.ErrnoError(28);if(!eg.isFile(e.node.mode))throw new eg.ErrnoError(43);var a,s,c=e.node.contents;if(2&i||c.buffer!==p){if((n>0||n+r<c.length)&&(c=c.subarray?c.subarray(n,n+r):Array.prototype.slice.call(c,n,n+r)),s=!0,!(a=mmapAlloc(r)))throw new eg.ErrnoError(48);_.set(c,a)}else s=!1,a=c.byteOffset;return{ptr:a,allocated:s}},msync:function(e,t,r,n,o){if(!eg.isFile(e.node.mode))throw new eg.ErrnoError(43);return 2&o||ef.stream_ops.write(e,t,0,n,r,!1),0}}};function asyncLoad(e,t,r,n){var o=n?"":getUniqueRunDependency("al "+e);a(e,function(r){assert(r,'Loading data file "'+e+'" failed (no arrayBuffer).'),t(new Uint8Array(r)),o&&removeRunDependency(o)},function(t){if(r)r();else throw'Loading data file "'+e+'" failed.'}),o&&addRunDependency(o)}var ep={0:"Success",1:"Arg list too long",2:"Permission denied",3:"Address already in use",4:"Address not available",5:"Address family not supported by protocol family",6:"No more processes",7:"Socket already connected",8:"Bad file number",9:"Trying to read unreadable message",10:"Mount device busy",11:"Operation canceled",12:"No children",13:"Connection aborted",14:"Connection refused",15:"Connection reset by peer",16:"File locking deadlock error",17:"Destination address required",18:"Math arg out of domain of func",19:"Quota exceeded",20:"File exists",21:"Bad address",22:"File too large",23:"Host is unreachable",24:"Identifier removed",25:"Illegal byte sequence",26:"Connection already in progress",27:"Interrupted system call",28:"Invalid argument",29:"I/O error",30:"Socket is already connected",31:"Is a directory",32:"Too many symbolic links",33:"Too many open files",34:"Too many links",35:"Message too long",36:"Multihop attempted",37:"File or path name too long",38:"Network interface is not configured",39:"Connection reset by network",40:"Network is unreachable",41:"Too many open files in system",42:"No buffer space available",43:"No such device",44:"No such file or directory",45:"Exec format error",46:"No record locks available",47:"The link has been severed",48:"Not enough core",49:"No message of desired type",50:"Protocol not available",51:"No space left on device",52:"Function not implemented",53:"Socket is not connected",54:"Not a directory",55:"Directory not empty",56:"State not recoverable",57:"Socket operation on non-socket",59:"Not a typewriter",60:"No such device or address",61:"Value too large for defined data type",62:"Previous owner died",63:"Not super-user",64:"Broken pipe",65:"Protocol error",66:"Unknown protocol",67:"Protocol wrong type for socket",68:"Math result not representable",69:"Read only file system",70:"Illegal seek",71:"No such process",72:"Stale file handle",73:"Connection timed out",74:"Text file busy",75:"Cross-device link",100:"Device not a stream",101:"Bad font file fmt",102:"Invalid slot",103:"Invalid request code",104:"No anode",105:"Block device required",106:"Channel number out of range",107:"Level 3 halted",108:"Level 3 reset",109:"Link number out of range",110:"Protocol driver not attached",111:"No CSI structure available",112:"Level 2 halted",113:"Invalid exchange",114:"Invalid request descriptor",115:"Exchange full",116:"No data (for no delay io)",117:"Timer expired",118:"Out of streams resources",119:"Machine is not on the network",120:"Package not installed",121:"The object is remote",122:"Advertise error",123:"Srmount error",124:"Communication error on send",125:"Cross mount point (not really error)",126:"Given log. name not unique",127:"f.d. invalid for this operation",128:"Remote address changed",129:"Can   access a needed shared lib",130:"Accessing a corrupted shared lib",131:".lib section in a.out corrupted",132:"Attempting to link in too many libs",133:"Attempting to exec a shared library",135:"Streams pipe error",136:"Too many users",137:"Socket type not supported",138:"Not supported",139:"Protocol family not supported",140:"Can't send after socket shutdown",141:"Too many references",142:"Host is down",148:"No medium (in tape drive)",156:"Level 2 not synchronized"},e_={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135},eg={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:function(e,t){if(e=ed.resolve(eg.cwd(),e),t=t||{},!e)return{path:"",node:null};var r={follow_mount:!0,recurse_count:0};for(var n in r)void 0===t[n]&&(t[n]=r[n]);if(t.recurse_count>8)throw new eg.ErrnoError(32);for(var o=eu.normalizeArray(e.split("/").filter(function(e){return!!e}),!1),i=eg.root,a="/",s=0;s<o.length;s++){var c=s===o.length-1;if(c&&t.parent)break;if(i=eg.lookupNode(i,o[s]),a=eu.join2(a,o[s]),eg.isMountpoint(i)&&(!c||c&&t.follow_mount)&&(i=i.mounted.root),!c||t.follow)for(var u=0;eg.isLink(i.mode);){var d=eg.readlink(a);if(a=ed.resolve(eu.dirname(a),d),i=eg.lookupPath(a,{recurse_count:t.recurse_count}).node,u++>40)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<t.length;n++)r=(r<<5)-r+t.charCodeAt(n)|0;return(e+r>>>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;o<r.length;++o)if(r[o]){n+="/"+r[o];try{eg.mkdir(n,t)}catch(e){if(20!=e.errno)throw e}}},mkdev:function(e,t,r){return void 0===r&&(r=t,t=438),t|=8192,eg.mknod(e,t,r)},symlink:function(e,t){if(!ed.resolve(e))throw new eg.ErrnoError(44);var r=eg.lookupPath(t,{parent:!0}).node;if(!r)throw new eg.ErrnoError(44);var n=eu.basename(t),o=eg.mayCreate(r,n);if(o)throw new eg.ErrnoError(o);if(!r.node_ops.symlink)throw new eg.ErrnoError(63);return r.node_ops.symlink(r,n,e)},rename:function(e,t){var r,n,o,i=eu.dirname(e),a=eu.dirname(t),s=eu.basename(e),c=eu.basename(t);if(r=eg.lookupPath(e,{parent:!0}).node,n=eg.lookupPath(t,{parent:!0}).node,!r||!n)throw new eg.ErrnoError(44);if(r.mount!==n.mount)throw new eg.ErrnoError(75);var u=eg.lookupNode(r,s),d=ed.relative(e,a);if("."!==d.charAt(0))throw new eg.ErrnoError(28);if("."!==(d=ed.relative(t,i)).charAt(0))throw new eg.ErrnoError(55);try{o=eg.lookupNode(n,c)}catch(e){}if(u!==o){var l=eg.isDir(u.mode),f=eg.mayDelete(r,s,l);if(f||(f=o?eg.mayDelete(n,c,l):eg.mayCreate(n,c)))throw new eg.ErrnoError(f);if(!r.node_ops.rename)throw new eg.ErrnoError(63);if(eg.isMountpoint(u)||o&&eg.isMountpoint(o))throw new eg.ErrnoError(10);if(n!==r&&(f=eg.nodePermissions(r,"w")))throw new eg.ErrnoError(f);try{eg.trackingDelegate.willMovePath&&eg.trackingDelegate.willMovePath(e,t)}catch(r){N("FS.trackingDelegate['willMovePath']('"+e+"', '"+t+"') threw an exception: "+r.message)}eg.hashRemoveNode(u);try{r.node_ops.rename(u,n,c)}catch(e){throw e}finally{eg.hashAddNode(u)}try{eg.trackingDelegate.onMovePath&&eg.trackingDelegate.onMovePath(e,t)}catch(r){N("FS.trackingDelegate['onMovePath']('"+e+"', '"+t+"') threw an exception: "+r.message)}}},rmdir:function(e){var t=eg.lookupPath(e,{parent:!0}).node,r=eu.basename(e),n=eg.lookupNode(t,r),o=eg.mayDelete(t,r,!0);if(o)throw new eg.ErrnoError(o);if(!t.node_ops.rmdir)throw new eg.ErrnoError(63);if(eg.isMountpoint(n))throw new eg.ErrnoError(10);try{eg.trackingDelegate.willDeletePath&&eg.trackingDelegate.willDeletePath(e)}catch(t){N("FS.trackingDelegate['willDeletePath']('"+e+"') threw an exception: "+t.message)}t.node_ops.rmdir(t,r),eg.destroyNode(n);try{eg.trackingDelegate.onDeletePath&&eg.trackingDelegate.onDeletePath(e)}catch(t){N("FS.trackingDelegate['onDeletePath']('"+e+"') threw an exception: "+t.message)}},readdir:function(e){var t=eg.lookupPath(e,{follow:!0}).node;if(!t.node_ops.readdir)throw new eg.ErrnoError(54);return t.node_ops.readdir(t)},unlink:function(e){var t=eg.lookupPath(e,{parent:!0}).node,r=eu.basename(e),n=eg.lookupNode(t,r),o=eg.mayDelete(t,r,!1);if(o)throw new eg.ErrnoError(o);if(!t.node_ops.unlink)throw new eg.ErrnoError(63);if(eg.isMountpoint(n))throw new eg.ErrnoError(10);try{eg.trackingDelegate.willDeletePath&&eg.trackingDelegate.willDeletePath(e)}catch(t){N("FS.trackingDelegate['willDeletePath']('"+e+"') threw an exception: "+t.message)}t.node_ops.unlink(t,r),eg.destroyNode(n);try{eg.trackingDelegate.onDeletePath&&eg.trackingDelegate.onDeletePath(e)}catch(t){N("FS.trackingDelegate['onDeletePath']('"+e+"') threw an exception: "+t.message)}},readlink:function(e){var t=eg.lookupPath(e).node;if(!t)throw new eg.ErrnoError(44);if(!t.node_ops.readlink)throw new eg.ErrnoError(28);return ed.resolve(eg.getPath(t.parent),t.node_ops.readlink(t))},stat:function(e,t){var r=eg.lookupPath(e,{follow:!t}).node;if(!r)throw new eg.ErrnoError(44);if(!r.node_ops.getattr)throw new eg.ErrnoError(63);return r.node_ops.getattr(r)},lstat:function(e){return eg.stat(e,!0)},chmod:function(e,t,r){var n;if(!(n="string"==typeof e?eg.lookupPath(e,{follow:!r}).node:e).node_ops.setattr)throw new eg.ErrnoError(63);n.node_ops.setattr(n,{mode:4095&t|-4096&n.mode,timestamp:Date.now()})},lchmod:function(e,t){eg.chmod(e,t,!0)},fchmod:function(e,t){var r=eg.getStream(e);if(!r)throw new eg.ErrnoError(8);eg.chmod(r.node,t)},chown:function(e,t,r,n){var o;if(!(o="string"==typeof e?eg.lookupPath(e,{follow:!n}).node:e).node_ops.setattr)throw new eg.ErrnoError(63);o.node_ops.setattr(o,{timestamp:Date.now()})},lchown:function(e,t,r){eg.chown(e,t,r,!0)},fchown:function(e,t,r){var n=eg.getStream(e);if(!n)throw new eg.ErrnoError(8);eg.chown(n.node,t,r)},truncate:function(e,t){if(t<0)throw new eg.ErrnoError(28);if("string"==typeof e){var r;r=eg.lookupPath(e,{follow:!0}).node}else r=e;if(!r.node_ops.setattr)throw new eg.ErrnoError(63);if(eg.isDir(r.mode))throw new eg.ErrnoError(31);if(!eg.isFile(r.mode))throw new eg.ErrnoError(28);var n=eg.nodePermissions(r,"w");if(n)throw new eg.ErrnoError(n);r.node_ops.setattr(r,{size:t,timestamp:Date.now()})},ftruncate:function(e,t){var r=eg.getStream(e);if(!r)throw new eg.ErrnoError(8);if((2097155&r.flags)==0)throw new eg.ErrnoError(28);eg.truncate(r.node,t)},utime:function(e,t,r){var n=eg.lookupPath(e,{follow:!0}).node;n.node_ops.setattr(n,{timestamp:Math.max(t,r)})},open:function(e,t,r,n,o){if(""===e)throw new eg.ErrnoError(44);if(t="string"==typeof t?eg.modeStringToFlags(t):t,r=void 0===r?438:r,r=64&t?4095&r|32768:0,"object"==typeof e)i=e;else{e=eu.normalize(e);try{var i;i=eg.lookupPath(e,{follow:!(131072&t)}).node}catch(e){}}var a=!1;if(64&t)if(i){if(128&t)throw new eg.ErrnoError(20)}else i=eg.mknod(e,r,0),a=!0;if(!i)throw new eg.ErrnoError(44);if(eg.isChrdev(i.mode)&&(t&=-513),65536&t&&!eg.isDir(i.mode))throw new eg.ErrnoError(54);if(!a){var s=eg.mayOpen(i,t);if(s)throw new eg.ErrnoError(s)}512&t&&eg.truncate(i,0),t&=-131713;var c=eg.createStream({node:i,path:eg.getPath(i),flags:t,seekable:!0,position:0,stream_ops:i.stream_ops,ungotten:[],error:!1},n,o);c.stream_ops.open&&c.stream_ops.open(c),M.logReadFiles&&!(1&t)&&(eg.readFiles||(eg.readFiles={}),e in eg.readFiles||(eg.readFiles[e]=1,N("FS.trackingDelegate error on read file: "+e)));try{if(eg.trackingDelegate.onOpenFile){var u=0;(2097155&t)!=1&&(u|=eg.tracking.openFlags.READ),(2097155&t)!=0&&(u|=eg.tracking.openFlags.WRITE),eg.trackingDelegate.onOpenFile(e,u)}}catch(t){N("FS.trackingDelegate['onOpenFile']('"+e+"', flags) threw an exception: "+t.message)}return c},close:function(e){if(eg.isClosed(e))throw new eg.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(e){throw e}finally{eg.closeStream(e.fd)}e.fd=null},isClosed:function(e){return null===e.fd},llseek:function(e,t,r){if(eg.isClosed(e))throw new eg.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new eg.ErrnoError(70);if(0!=r&&1!=r&&2!=r)throw new eg.ErrnoError(28);return e.position=e.stream_ops.llseek(e,t,r),e.ungotten=[],e.position},read:function(e,t,r,n,o){if(n<0||o<0)throw new eg.ErrnoError(28);if(eg.isClosed(e)||(2097155&e.flags)==1)throw new eg.ErrnoError(8);if(eg.isDir(e.node.mode))throw new eg.ErrnoError(31);if(!e.stream_ops.read)throw new eg.ErrnoError(28);var i=void 0!==o;if(i){if(!e.seekable)throw new eg.ErrnoError(70)}else o=e.position;var a=e.stream_ops.read(e,t,r,n,o);return i||(e.position+=a),a},write:function(e,t,r,n,o,i){if(n<0||o<0)throw new eg.ErrnoError(28);if(eg.isClosed(e)||(2097155&e.flags)==0)throw new eg.ErrnoError(8);if(eg.isDir(e.node.mode))throw new eg.ErrnoError(31);if(!e.stream_ops.write)throw new eg.ErrnoError(28);e.seekable&&1024&e.flags&&eg.llseek(e,0,2);var a=void 0!==o;if(a){if(!e.seekable)throw new eg.ErrnoError(70)}else o=e.position;var s=e.stream_ops.write(e,t,r,n,o,i);a||(e.position+=s);try{e.path&&eg.trackingDelegate.onWriteToFile&&eg.trackingDelegate.onWriteToFile(e.path)}catch(t){N("FS.trackingDelegate['onWriteToFile']('"+e.path+"') threw an exception: "+t.message)}return s},allocate:function(e,t,r){if(eg.isClosed(e))throw new eg.ErrnoError(8);if(t<0||r<=0)throw new eg.ErrnoError(28);if((2097155&e.flags)==0)throw new eg.ErrnoError(8);if(!eg.isFile(e.node.mode)&&!eg.isDir(e.node.mode))throw new eg.ErrnoError(43);if(!e.stream_ops.allocate)throw new eg.ErrnoError(138);e.stream_ops.allocate(e,t,r)},mmap:function(e,t,r,n,o,i){if((2&o)!=0&&(2&i)==0&&(2097155&e.flags)!=2||(2097155&e.flags)==1)throw new eg.ErrnoError(2);if(!e.stream_ops.mmap)throw new eg.ErrnoError(43);return e.stream_ops.mmap(e,t,r,n,o,i)},msync:function(e,t,r,n,o){return e&&e.stream_ops.msync?e.stream_ops.msync(e,t,r,n,o):0},munmap:function(e){return 0},ioctl:function(e,t,r){if(!e.stream_ops.ioctl)throw new eg.ErrnoError(59);return e.stream_ops.ioctl(e,t,r)},readFile:function(e,t){if((t=t||{}).flags=t.flags||0,t.encoding=t.encoding||"binary","utf8"!==t.encoding&&"binary"!==t.encoding)throw Error('Invalid encoding type "'+t.encoding+'"');var r,n=eg.open(e,t.flags),o=eg.stat(e).size,i=new Uint8Array(o);return eg.read(n,i,0,o,0),"utf8"===t.encoding?r=UTF8ArrayToString(i,0):"binary"===t.encoding&&(r=i),eg.close(n),r},writeFile:function(e,t,r){(r=r||{}).flags=r.flags||577;var n=eg.open(e,r.flags,r.mode);if("string"==typeof t){var o=new Uint8Array(lengthBytesUTF8(t)+1),i=stringToUTF8Array(t,o,0,o.length);eg.write(n,o,0,i,void 0,r.canOwn)}else if(ArrayBuffer.isView(t))eg.write(n,t,0,t.byteLength,void 0,r.canOwn);else throw Error("Unsupported data type");eg.close(n)},cwd:function(){return eg.currentPath},chdir:function(e){var t=eg.lookupPath(e,{follow:!0});if(null===t.node)throw new eg.ErrnoError(44);if(!eg.isDir(t.node.mode))throw new eg.ErrnoError(54);var r=eg.nodePermissions(t.node,"x");if(r)throw new eg.ErrnoError(r);eg.currentPath=t.path},createDefaultDirectories:function(){eg.mkdir("/tmp"),eg.mkdir("/home"),eg.mkdir("/home/web_user")},createDefaultDevices:function(){eg.mkdir("/dev"),eg.registerDevice(eg.makedev(1,3),{read:function(){return 0},write:function(e,t,r,n,o){return n}}),eg.mkdev("/dev/null",eg.makedev(1,3)),el.register(eg.makedev(5,0),el.default_tty_ops),el.register(eg.makedev(6,0),el.default_tty1_ops),eg.mkdev("/dev/tty",eg.makedev(5,0)),eg.mkdev("/dev/tty1",eg.makedev(6,0));var e=getRandomDevice();eg.createDevice("/dev","random",e),eg.createDevice("/dev","urandom",e),eg.mkdir("/dev/shm"),eg.mkdir("/dev/shm/tmp")},createSpecialDirectories:function(){eg.mkdir("/proc");var e=eg.mkdir("/proc/self");eg.mkdir("/proc/self/fd"),eg.mount({mount:function(){var t=eg.createNode(e,"fd",16895,73);return t.node_ops={lookup:function(e,t){var r=eg.getStream(+t);if(!r)throw new eg.ErrnoError(8);var n={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:function(){return r.path}}};return n.parent=n,n}},t}},{},"/proc/self/fd")},createStandardStreams:function(){M.stdin?eg.createDevice("/dev","stdin",M.stdin):eg.symlink("/dev/tty","/dev/stdin"),M.stdout?eg.createDevice("/dev","stdout",null,M.stdout):eg.symlink("/dev/tty","/dev/stdout"),M.stderr?eg.createDevice("/dev","stderr",null,M.stderr):eg.symlink("/dev/tty1","/dev/stderr");var e=eg.open("/dev/stdin",0),t=eg.open("/dev/stdout",1),r=eg.open("/dev/stderr",1);assert(0===e.fd,"invalid handle for stdin ("+e.fd+")"),assert(1===t.fd,"invalid handle for stdout ("+t.fd+")"),assert(2===r.fd,"invalid handle for stderr ("+r.fd+")")},ensureErrnoError:function(){eg.ErrnoError||(eg.ErrnoError=function(e,t){this.node=t,this.setErrno=function(e){for(var t in this.errno=e,e_)if(e_[t]===e){this.code=t;break}},this.setErrno(e),this.message=ep[e],this.stack&&(Object.defineProperty(this,"stack",{value:Error().stack,writable:!0}),this.stack=demangleAll(this.stack))},eg.ErrnoError.prototype=Error(),eg.ErrnoError.prototype.constructor=eg.ErrnoError,[44].forEach(function(e){eg.genericErrors[e]=new eg.ErrnoError(e),eg.genericErrors[e].stack="<generic error, no stack>"}))},staticInit:function(){eg.ensureErrnoError(),eg.nameTable=Array(4096),eg.mount(ef,{},"/"),eg.createDefaultDirectories(),eg.createDefaultDevices(),eg.createSpecialDirectories(),eg.filesystems={MEMFS:ef}},init:function(e,t,r){assert(!eg.init.initialized,"FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)"),eg.init.initialized=!0,eg.ensureErrnoError(),M.stdin=e||M.stdin,M.stdout=t||M.stdout,M.stderr=r||M.stderr,eg.createStandardStreams()},quit:function(){eg.init.initialized=!1;var e=M._fflush;e&&e(0);for(var t=0;t<eg.streams.length;t++){var r=eg.streams[t];r&&eg.close(r)}},getMode:function(e,t){var r=0;return e&&(r|=365),t&&(r|=146),r},findObject:function(e,t){var r=eg.analyzePath(e,t);return r.exists?r.object:null},analyzePath:function(e,t){try{var r=eg.lookupPath(e,{follow:!t});e=r.path}catch(e){}var n={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var r=eg.lookupPath(e,{parent:!0});n.parentExists=!0,n.parentPath=r.path,n.parentObject=r.node,n.name=eu.basename(e),r=eg.lookupPath(e,{follow:!t}),n.exists=!0,n.path=r.path,n.object=r.node,n.name=r.node.name,n.isRoot="/"===r.path}catch(e){n.error=e.errno}return n},createPath:function(e,t,r,n){e="string"==typeof e?e:eg.getPath(e);for(var o=t.split("/").reverse();o.length;){var i=o.pop();if(i){var a=eu.join2(e,i);try{eg.mkdir(a)}catch(e){}e=a}}return a},createFile:function(e,t,r,n,o){var i=eu.join2("string"==typeof e?e:eg.getPath(e),t),a=eg.getMode(n,o);return eg.create(i,a)},createDataFile:function(e,t,r,n,o,i){var a=t?eu.join2("string"==typeof e?e:eg.getPath(e),t):e,s=eg.getMode(n,o),c=eg.create(a,s);if(r){if("string"==typeof r){for(var u=Array(r.length),d=0,l=r.length;d<l;++d)u[d]=r.charCodeAt(d);r=u}eg.chmod(c,146|s);var f=eg.open(c,577);eg.write(f,r,0,r.length,0,i),eg.close(f),eg.chmod(c,s)}return c},createDevice:function(e,t,r,n){var o=eu.join2("string"==typeof e?e:eg.getPath(e),t),i=eg.getMode(!!r,!!n);eg.createDevice.major||(eg.createDevice.major=64);var a=eg.makedev(eg.createDevice.major++,0);return eg.registerDevice(a,{open:function(e){e.seekable=!1},close:function(e){n&&n.buffer&&n.buffer.length&&n(10)},read:function(e,t,n,o,i){for(var a,s=0,c=0;c<o;c++){try{a=r()}catch(e){throw new eg.ErrnoError(29)}if(void 0===a&&0===s)throw new eg.ErrnoError(6);if(null==a)break;s++,t[n+c]=a}return s&&(e.node.timestamp=Date.now()),s},write:function(e,t,r,o,i){for(var a=0;a<o;a++)try{n(t[r+a])}catch(e){throw new eg.ErrnoError(29)}return o&&(e.node.timestamp=Date.now()),a}}),eg.mkdev(o,i,a)},forceLoadFile:function(e){if(e.isDevice||e.isFolder||e.link||e.contents)return!0;if("u">typeof 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<a;c++)t[r+c]=i[o+c];else for(var c=0;c<a;c++)t[r+c]=i.get(o+c);return a},s.stream_ops=c,s},createPreloadedFile:function(e,t,r,n,o,i,a,s,c,u){ei.init();var d=t?ed.resolve(eu.join2(e,t)):e,l=getUniqueRunDependency("cp "+d);function processData(r){function finish(r){u&&u(),s||eg.createDataFile(e,t,r,n,o,c),i&&i(),removeRunDependency(l)}var f=!1;M.preloadPlugins.forEach(function(e){!f&&e.canHandle(d)&&(e.handle(r,d,finish,function(){a&&a(),removeRunDependency(l)}),f=!0)}),f||finish(r)}addRunDependency(l),"string"==typeof r?asyncLoad(r,function(e){processData(e)},a):processData(r)},indexedDB:function(){return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},DB_NAME:function(){return"EM_FS_"+window.location.pathname},DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:function(e,t,r){t=t||function(){},r=r||function(){};var n=eg.indexedDB();try{var o=n.open(eg.DB_NAME(),eg.DB_VERSION)}catch(e){return r(e)}o.onupgradeneeded=function(){L("creating db"),o.result.createObjectStore(eg.DB_STORE_NAME)},o.onsuccess=function(){var n=o.result.transaction([eg.DB_STORE_NAME],"readwrite"),i=n.objectStore(eg.DB_STORE_NAME),a=0,s=0,c=e.length;function finish(){0==s?t():r()}e.forEach(function(e){var t=i.put(eg.analyzePath(e).object.contents,e);t.onsuccess=function(){++a+s==c&&finish()},t.onerror=function(){s++,a+s==c&&finish()}}),n.onerror=r},o.onerror=r},loadFilesFromDB:function(e,t,r){t=t||function(){},r=r||function(){};var n=eg.indexedDB();try{var o=n.open(eg.DB_NAME(),eg.DB_VERSION)}catch(e){return r(e)}o.onupgradeneeded=r,o.onsuccess=function(){var n=o.result;try{var i=n.transaction([eg.DB_STORE_NAME],"readonly")}catch(e){r(e);return}var a=i.objectStore(eg.DB_STORE_NAME),s=0,c=0,u=e.length;function finish(){0==c?t():r()}e.forEach(function(e){var t=a.get(e);t.onsuccess=function(){eg.analyzePath(e).exists&&eg.unlink(e),eg.createDataFile(eu.dirname(e),eu.basename(e),t.result,!0,!0,!0),++s+c==u&&finish()},t.onerror=function(){c++,s+c==u&&finish()}}),i.onerror=r},o.onerror=r},absolutePath:function(){abort("FS.absolutePath has been removed; use PATH_FS.resolve instead")},createFolder:function(){abort("FS.createFolder has been removed; use FS.mkdir instead")},createLink:function(){abort("FS.createLink has been removed; use FS.symlink instead")},joinPath:function(){abort("FS.joinPath has been removed; use PATH.join instead")},mmapAlloc:function(){abort("FS.mmapAlloc has been replaced by the top level function mmapAlloc")},standardizePath:function(){abort("FS.standardizePath has been removed; use PATH.normalize instead")}},em={mappings:{},DEFAULT_POLLMASK:5,umask:511,calculateAt:function(e,t,r){if("/"===t[0])return t;if(-100===e)n=eg.cwd();else{var n,o=eg.getStream(e);if(!o)throw new eg.ErrnoError(8);n=o.path}if(0==t.length){if(!r)throw new eg.ErrnoError(44);return n}return eu.join2(n,t)},doStat:function(e,t,r){try{var n=e(t)}catch(e){if(e&&e.node&&eu.normalize(t)!==eu.normalize(eg.getPath(e.node)))return -54;throw e}return E[r>>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<r;i++){var a=E[t+8*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<s)break}return o},doWritev:function(e,t,r,n){for(var o=0,i=0;i<r;i++){var a=E[t+8*i>>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<eE.length;++t)void 0!==eE[t]&&++e;return e}function get_first_emval(){for(var e=5;e<eE.length;++e)if(void 0!==eE[e])return eE[e];return null}function init_emval(){M.count_emval_handles=count_emval_handles,M.get_first_emval=get_first_emval}function __emval_register(e){switch(e){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var t=eh.length?eh.pop():eE.length;return eE[t]={refcount:1,value:e},t}}function extendError(e,t){var r=createNamedFunction(t,function(e){this.name=t,this.message=e;var r=Error(e).stack;void 0!==r&&(this.stack=this.toString()+`
`+r.replace(/^Error(:[^\n]*)?\n/,""))});return r.prototype=Object.create(e.prototype),r.prototype.constructor=r,r.prototype.toString=function(){return void 0===this.message?this.name:this.name+": "+this.message},r}var eb=void 0;function embind_init_charCodes(){for(var e=Array(256),t=0;t<256;++t)e[t]=String.fromCharCode(t);ey=e}var ey=void 0;function readLatin1String(e){for(var t="",r=e;g[r];)t+=ey[g[r++]];return t}function getInheritedInstanceCount(){return Object.keys(eT).length}function getLiveInheritedInstances(){var e=[];for(var t in eT)eT.hasOwnProperty(t)&&e.push(eT[t]);return e}var ev=[];function flushPendingDeletes(){for(;ev.length;){var e=ev.pop();e.$$.deleteScheduled=!1,e.delete()}}var ew=void 0;function setDelayFunction(e){ew=e,ev.length&&ew&&ew(flushPendingDeletes)}function init_embind(){M.getInheritedInstanceCount=getInheritedInstanceCount,M.getLiveInheritedInstances=getLiveInheritedInstances,M.flushPendingDeletes=flushPendingDeletes,M.setDelayFunction=setDelayFunction}var eT={},eO=void 0;function throwBindingError(e){throw new eO(e)}function getBasestPointer(e,t){for(void 0===t&&throwBindingError("ptr should not be undefined");e.baseClass;)t=e.upcast(t),e=e.baseClass;return t}function registerInheritedInstance(e,t,r){t=getBasestPointer(e,t),eT.hasOwnProperty(t)?throwBindingError("Tried to register registered instance: "+t):eT[t]=r}function requireHandle(e){return e||throwBindingError("Cannot use deleted val. handle = "+e),eE[e].value}var eD={};function getTypeName(e){var t=e0(e),r=readLatin1String(t);return eZ(t),r}function requireRegisteredType(e,t){var r=eD[e];return void 0===r&&throwBindingError(t+" has unknown type "+getTypeName(e)),r}function unregisterInheritedInstance(e,t){t=getBasestPointer(e,t),eT.hasOwnProperty(t)?delete eT[t]:throwBindingError("Tried to unregister unregistered instance: "+t)}function detachFinalizer(e){}var eP=!1;function runDestructor(e){e.smartPtr?e.smartPtrType.rawDestructor(e.smartPtr):e.ptrType.registeredClass.rawDestructor(e.ptr)}function releaseClassHandle(e){e.count.value-=1,0===e.count.value&&runDestructor(e)}function attachFinalizer(e){return"u"<typeof FinalizationGroup?(attachFinalizer=function(e){return e},e):(eP=new FinalizationGroup(function(e){for(var t=e.next();!t.done;t=e.next()){var r=t.value;r.ptr?releaseClassHandle(r):console.warn("object already deleted: "+r.ptr)}}),attachFinalizer=function(e){return eP.register(e,e.$$,e.$$),e},detachFinalizer=function(e){eP.unregister(e.$$)},attachFinalizer(e))}function __embind_create_inheriting_constructor(e,t,r){e=readLatin1String(e),t=requireRegisteredType(t,"wrapper"),r=requireHandle(r);var n=[].slice,o=t.registeredClass,i=o.instancePrototype,a=o.baseClass.instancePrototype,s=o.baseClass.constructor,c=createNamedFunction(e,function(){o.baseClass.pureVirtualFunctions.forEach((function(e){if(this[e]===a[e])throw new eb("Pure virtual function "+e+" must be implemented in JavaScript")}).bind(this)),Object.defineProperty(this,"__parent",{value:i}),this.__construct.apply(this,n.call(arguments))});for(var u in i.__construct=function(){this===i&&throwBindingError("Pass correct 'this' to __construct");var e=s.implement.apply(void 0,[this].concat(n.call(arguments)));detachFinalizer(e);var t=e.$$;e.notifyOnDestruction(),t.preservePointerOnDelete=!0,Object.defineProperties(this,{$$:{value:t}}),attachFinalizer(this),registerInheritedInstance(o,t.ptr,this)},i.__destruct=function(){this===i&&throwBindingError("Pass correct 'this' to __destruct"),detachFinalizer(this),unregisterInheritedInstance(o,this.$$.ptr)},c.prototype=Object.create(i),r)c.prototype[u]=r[u];return __emval_register(c)}var eR={};function runDestructors(e){for(;e.length;){var t=e.pop();e.pop()(t)}}function simpleReadValueFromPointer(e){return this.fromWireType(b[e>>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<e.length;++o)registerType(e[o],n[o])}e.forEach(function(e){eM[e]=t});var n=Array(t.length),o=[],i=0;t.forEach(function(e,t){eD.hasOwnProperty(e)?n[t]=eD[e]:(o.push(e),ex.hasOwnProperty(e)||(ex[e]=[]),ex[e].push(function(){n[t]=eD[e],++i===o.length&&onComplete(n)}))}),0===o.length&&onComplete(n)}function __embind_finalize_value_object(e){var t=eR[e];delete eR[e];var r=t.rawConstructor,n=t.rawDestructor,o=t.fields;whenDependentTypesAreResolved([e],o.map(function(e){return e.getterReturnType}).concat(o.map(function(e){return e.setterArgumentType})),function(e){var i={};return o.forEach(function(t,r){var n=t.fieldName,a=e[r],s=t.getter,c=t.getterContext,u=e[r+o.length],d=t.setter,l=t.setterContext;i[n]={read:function(e){return a.fromWireType(s(c,e))},write:function(e,t){var r=[];d(l,e,u.toWireType(r,t)),runDestructors(r)}}}),[{name:t.name,fromWireType:function(e){var t={};for(var r in i)t[r]=i[r].read(e);return n(e),t},toWireType:function(e,t){for(var o in i)if(!(o in t))throw TypeError('Missing field:  "'+o+'"');var a=r();for(o in i)i[o].write(a,t[o]);return null!==e&&e.push(n,a),a},argPackAdvance:8,readValueFromPointer:simpleReadValueFromPointer,destructorFunction:n}]})}function __embind_register_bigint(e,t,r,n,o){}function getShiftFromSize(e){switch(e){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw TypeError("Unknown type size: "+e)}}function registerType(e,t,r){if(r=r||{},!("argPackAdvance"in t))throw TypeError("registerType registeredInstance requires argPackAdvance");var n=t.name;if(e||throwBindingError('type "'+n+'" must have a positive integer typeid pointer'),eD.hasOwnProperty(e))if(r.ignoreDuplicateRegistrations)return;else throwBindingError("Cannot register type '"+n+"' twice");if(eD[e]=t,delete eM[e],ex.hasOwnProperty(e)){var o=ex[e];delete ex[e],o.forEach(function(e){e()})}}function __embind_register_bool(e,t,r,n,o){var i=getShiftFromSize(r);registerType(e,{name:t=readLatin1String(t),fromWireType:function(e){return!!e},toWireType:function(e,t){return t?n:o},argPackAdvance:8,readValueFromPointer:function(e){var n;if(1===r)n=_;else if(2===r)n=m;else if(4===r)n=E;else throw TypeError("Unknown boolean type size: "+t);return this.fromWireType(n[e>>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;n<arguments.length;n++)r[n]=arguments[n];return dynCall(e,t,r)}}function embind__requireFunction(e,t){var r=(e=readLatin1String(e)).includes("j")?getDynCaller(e,t):w.get(t);return"function"!=typeof r&&throwBindingError("unknown function pointer with signature "+e+": "+t),r}var eA=void 0;function throwUnboundTypeError(e,t){var r=[],n={};function visit(e){if(!n[e]&&!eD[e]){if(eM[e])return void eM[e].forEach(visit);r.push(e),n[e]=!0}}throw t.forEach(visit),new eA(e+": "+r.map(getTypeName).join([", "]))}function __embind_register_class(e,t,r,n,o,i,a,s,c,u,d,l,f){d=readLatin1String(d),i=embind__requireFunction(o,i),s&&(s=embind__requireFunction(a,s)),u&&(u=embind__requireFunction(c,u)),f=embind__requireFunction(l,f);var p=makeLegalFunctionName(d);exposePublicSymbol(p,function(){throwUnboundTypeError("Cannot construct "+d+" due to unbound types",[n])}),whenDependentTypesAreResolved([e,t,r],n?[n]:[],function(t){t=t[0];var r,o=n?(r=t.registeredClass).instancePrototype:ClassHandle.prototype,a=createNamedFunction(p,function(){if(Object.getPrototypeOf(this)!==c)throw new eO("Use 'new' to construct "+d);if(void 0===l.constructor_body)throw new eO(d+" has no accessible constructor");var e=l.constructor_body[arguments.length];if(void 0===e)throw new eO("Tried to invoke ctor of "+d+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(l.constructor_body).toString()+") parameters instead!");return e.apply(this,arguments)}),c=Object.create(o,{constructor:{value:a}});a.prototype=c;var l=new RegisteredClass(d,a,c,f,r,i,s,u),_=new RegisteredPointer(d,l,!0,!1,!1),g=new RegisteredPointer(d+"*",l,!1,!1,!1),m=new RegisteredPointer(d+" const*",l,!1,!0,!1);return eF[e]={pointerType:g,constPointerType:m},replacePublicSymbol(p,a),[_,g,m]})}function new_(e,t){if(!(e instanceof Function))throw TypeError("new_ called with constructor type "+typeof e+" which is not a function");var r=createNamedFunction(e.name||"unknownFunctionName",function(){});r.prototype=e.prototype;var n=new r,o=e.apply(n,t);return o instanceof Object?o:n}function craftInvokerFunction(e,t,r,n,o){var i=t.length;i<2&&throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var a=null!==t[1]&&null!==r,s=!1,c=1;c<t.length;++c)if(null!==t[c]&&void 0===t[c].destructorFunction){s=!0;break}for(var u="void"!==t[0].name,d="",l="",c=0;c<i-2;++c)d+=(0!==c?", ":"")+"arg"+c,l+=(0!==c?", ":"")+"arg"+c+"Wired";var f="return function "+makeLegalFunctionName(e)+"("+d+`) {
if (arguments.length !== `+(i-2)+`) {
throwBindingError('function `+e+" called with ' + arguments.length + ' arguments, expected "+(i-2)+` args!');
}
`;s&&(f+=`var destructors = [];
`);var p=s?"destructors":"null",_=["throwBindingError","invoker","fn","runDestructors","retType","classParam"],g=[throwBindingError,n,o,runDestructors,t[0],t[1]];a&&(f+="var thisWired = classParam.toWireType("+p+`, this);
`);for(var c=0;c<i-2;++c)f+="var arg"+c+"Wired = argType"+c+".toWireType("+p+", arg"+c+"); // "+t[c+2].name+`
`,_.push("argType"+c),g.push(t[c+2]);if(a&&(l="thisWired"+(l.length>0?", ":"")+l),f+=(u?"var rv = ":"")+"invoker(fn"+(l.length>0?", ":"")+l+`);
`,s)f+=`runDestructors(destructors);
`;else for(var c=a?1:2;c<t.length;++c){var m=1===c?"thisWired":"arg"+(c-2)+"Wired";null!==t[c].destructorFunction&&(f+=m+"_dtor("+m+"); // "+t[c].name+`
`,_.push(m+"_dtor"),g.push(t[c].destructorFunction))}return u&&(f+=`var ret = retType.fromWireType(rv);
return ret;
`),f+=`}
`,_.push(f),new_(Function,_).apply(null,g)}function heap32VectorToArray(e,t){for(var r=[],n=0;n<e;n++)r.push(E[(t>>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>>>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(r<n||r>o)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<n;++i)u[i]=String.fromCharCode(g[e+4+i]);t=u.join("")}return eZ(e),t},toWireType:function(e,t){t instanceof ArrayBuffer&&(t=new Uint8Array(t));var n="string"==typeof t;n||t instanceof Uint8Array||t instanceof Uint8ClampedArray||t instanceof Int8Array||throwBindingError("Cannot pass non-string to std::string");var o=(r&&n?function(){return lengthBytesUTF8(t)}:function(){return t.length})(),i=eK(4+o+1);if(b[i>>2]=o,r&&n)stringToUTF8(t,i+4,o+1);else if(n)for(var a=0;a<o;++a){var s=t.charCodeAt(a);s>255&&(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<o;++a)g[i+4+a]=t[a];return null!==e&&e.push(eZ,i),i},argPackAdvance:8,readValueFromPointer:simpleReadValueFromPointer,destructorFunction:function(e){eZ(e)}})}function __embind_register_std_wstring(e,t,r){var n,o,i,a,s;r=readLatin1String(r),2===t?(n=UTF16ToString,o=stringToUTF16,a=lengthBytesUTF16,i=function(){return h},s=1):4===t&&(n=UTF32ToString,o=stringToUTF32,a=lengthBytesUTF32,i=function(){return b},s=2),registerType(e,{name:r,fromWireType:function(e){for(var r,o=b[e>>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<e;++n)r[n]=requireRegisteredType(E[(t>>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;c<e-1;++c)s+=(0!==c?", ":"")+"arg"+c,i.push("argType"+c),a.push(r[1+c]);for(var u="return function "+makeLegalFunctionName("methodCaller_"+o)+`(handle, name, destructors, args) {
`,d=0,c=0;c<e-1;++c)u+="    var arg"+c+" = argType"+c+".readValueFromPointer(args"+(d?"+"+d:"")+`);
`,d+=r[c+1].argPackAdvance;u+="    var rv = handle[name]("+s+`);
`;for(var c=0;c<e-1;++c)r[c+1].deleteObject&&(u+="    argType"+c+".deleteObject(arg"+c+`);
`);return n.isVoid||(u+=`    return retType.toWireType(destructors, rv);
`),u+=`};
`,i.push(u),__emval_addMethodCaller(new_(Function,i).apply(null,a))}function __emval_incref(e){e>4&&(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<r&&n[i+o];++i)E[t+4*i>>2]=_emscripten_generate_pc(n[i+o]);return i}function _emscripten_thread_sleep(e){for(var t=P();P()-t<e;);}function __webgl_enable_ANGLE_instanced_arrays(e){var t=e.getExtension("ANGLE_instanced_arrays");if(t)return e.vertexAttribDivisor=function(e,r){t.vertexAttribDivisorANGLE(e,r)},e.drawArraysInstanced=function(e,r,n,o){t.drawArraysInstancedANGLE(e,r,n,o)},e.drawElementsInstanced=function(e,r,n,o,i){t.drawElementsInstancedANGLE(e,r,n,o,i)},1}function __webgl_enable_OES_vertex_array_object(e){var t=e.getExtension("OES_vertex_array_object");if(t)return e.createVertexArray=function(){return t.createVertexArrayOES()},e.deleteVertexArray=function(e){t.deleteVertexArrayOES(e)},e.bindVertexArray=function(e){t.bindVertexArrayOES(e)},e.isVertexArray=function(e){return t.isVertexArrayOES(e)},1}function __webgl_enable_WEBGL_draw_buffers(e){var t=e.getExtension("WEBGL_draw_buffers");if(t)return e.drawBuffers=function(e,r){t.drawBuffersWEBGL(e,r)},1}function __webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance(e){return!!(e.dibvbi=e.getExtension("WEBGL_draw_instanced_base_vertex_base_instance"))}function __webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance(e){return!!(e.mdibvbi=e.getExtension("WEBGL_multi_draw_instanced_base_vertex_base_instance"))}function __webgl_enable_WEBGL_multi_draw(e){return!!(e.multiDrawWebgl=e.getExtension("WEBGL_multi_draw"))}var eU={counter:1,buffers:[],mappedBuffers:{},programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],samplers:[],transformFeedbacks:[],syncs:[],byteSizeByTypeRoot:5120,byteSizeByType:[1,1,2,2,4,4,4,2,3,4,8],stringCache:{},stringiCache:{},unpackAlignment:4,recordError:function(e){eU.lastError||(eU.lastError=e)},getNewId:function(e){for(var t=eU.counter++,r=e.length;r<t;r++)e[r]=null;return t},MAX_TEMP_BUFFER_SIZE:2097152,numTempVertexBuffersPerSize:64,log2ceilLookup:function(e){return 32-Math.clz32(0===e?0:e-1)},generateTempBuffers:function(e,t){var r=eU.log2ceilLookup(eU.MAX_TEMP_BUFFER_SIZE);t.tempVertexBufferCounters1=[],t.tempVertexBufferCounters2=[],t.tempVertexBufferCounters1.length=t.tempVertexBufferCounters2.length=r+1,t.tempVertexBuffers1=[],t.tempVertexBuffers2=[],t.tempVertexBuffers1.length=t.tempVertexBuffers2.length=r+1,t.tempIndexBuffers=[],t.tempIndexBuffers.length=r+1;for(var n=0;n<=r;++n){t.tempIndexBuffers[n]=null,t.tempVertexBufferCounters1[n]=t.tempVertexBufferCounters2[n]=0;var o=eU.numTempVertexBuffersPerSize;t.tempVertexBuffers1[n]=[],t.tempVertexBuffers2[n]=[];var i=t.tempVertexBuffers1[n],a=t.tempVertexBuffers2[n];i.length=a.length=o;for(var s=0;s<o;++s)i[s]=a[s]=null}if(e){t.tempQuadIndexBuffer=R.createBuffer(),t.GLctx.bindBuffer(34963,t.tempQuadIndexBuffer);for(var c=eU.MAX_TEMP_BUFFER_SIZE>>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<<t,35048),R.bindBuffer(34962,i),r[n]},getTempIndexBuffer:function(e){var t=eU.log2ceilLookup(e),r=eU.currentContext.tempIndexBuffers[t];if(r)return r;var n=R.getParameter(34965);return eU.currentContext.tempIndexBuffers[t]=R.createBuffer(),R.bindBuffer(34963,eU.currentContext.tempIndexBuffers[t]),R.bufferData(34963,1<<t,35048),R.bindBuffer(34963,n),eU.currentContext.tempIndexBuffers[t]},newRenderingFrameStarted:function(){if(eU.currentContext){var e=eU.currentContext.tempVertexBuffers1;eU.currentContext.tempVertexBuffers1=eU.currentContext.tempVertexBuffers2,eU.currentContext.tempVertexBuffers2=e,e=eU.currentContext.tempVertexBufferCounters1,eU.currentContext.tempVertexBufferCounters1=eU.currentContext.tempVertexBufferCounters2,eU.currentContext.tempVertexBufferCounters2=e;for(var t=eU.log2ceilLookup(eU.MAX_TEMP_BUFFER_SIZE),r=0;r<=t;++r)eU.currentContext.tempVertexBufferCounters1[r]=0}},getSource:function(e,t,r,n){for(var o="",i=0;i<t;++i){var a=n?E[n+4*i>>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;t<eU.currentContext.maxVertexAttribs;++t){var r=eU.currentContext.clientBuffers[t];if(r.clientside&&r.enabled){eU.resetBufferBinding=!0;var n=eU.calcBufLength(r.size,r.type,r.stride,e),o=eU.getTempVertexBuffer(n);R.bindBuffer(34962,o),R.bufferSubData(34962,0,g.subarray(r.ptr,r.ptr+n)),r.vertexAttribPointerAdaptor.call(R,t,r.size,r.type,r.normalized,r.stride,0)}}},postDrawHandleClientVertexAttribBindings:function(){eU.resetBufferBinding&&R.bindBuffer(34962,eU.buffers[R.currentArrayBufferBinding])},createContext:function(e,t){t.renderViaOffscreenBackBuffer&&(t.preserveDrawingBuffer=!0),e.getContextSafariWebGL2Fixed||(e.getContextSafariWebGL2Fixed=e.getContext,e.getContext=function(t,r){var n=e.getContextSafariWebGL2Fixed(t,r);return"webgl"==t==n instanceof WebGLRenderingContext?n:null});var r=t.majorVersion>1?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<n.maxVertexAttribs;o++)n.clientBuffers[o]={enabled:!1,clientside:!1,size:0,type:0,normalized:0,stride:0,ptr:0,vertexAttribPointerAdaptor:null};return eU.generateTempBuffers(!1,n),t.renderViaOffscreenBackBuffer&&eU.createOffscreenFramebuffer(n),r},makeContextCurrent:function(e){return eU.currentContext=eU.contexts[e],M.ctx=R=eU.currentContext&&eU.currentContext.GLctx,!(e&&!R)},getContext:function(e){return eU.contexts[e]},deleteContext:function(e){eU.currentContext===eU.contexts[e]&&(eU.currentContext=null),"object"==typeof eL&&eL.removeAllHandlersOnTarget(eU.contexts[e].GLctx.canvas),eU.contexts[e]&&eU.contexts[e].GLctx.canvas&&(eU.contexts[e].GLctx.canvas.GLctxObject=void 0),eU.contexts[e]=null},initExtensions:function(e){if(e||(e=eU.currentContext),!e.initExtensionsDone){e.initExtensionsDone=!0;var t=e.GLctx;__webgl_enable_ANGLE_instanced_arrays(t),__webgl_enable_OES_vertex_array_object(t),__webgl_enable_WEBGL_draw_buffers(t),__webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance(t),__webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance(t),e.version>=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.precedence<t.precedence})},removeDeferredCalls:function(e){for(var t=0;t<eL.deferredCalls.length;++t)eL.deferredCalls[t].targetFunction==e&&(eL.deferredCalls.splice(t,1),--t)},canPerformEventHandlerRequests:function(){return eL.inEventHandler&&eL.currentEventHandler.allowsDeferredCalls},runDeferredCalls:function(){if(eL.canPerformEventHandlerRequests())for(var e=0;e<eL.deferredCalls.length;++e){var t=eL.deferredCalls[e];eL.deferredCalls.splice(e,1),--e,t.targetFunction.apply(null,t.argsList)}},eventHandlers:[],removeAllHandlersOnTarget:function(e,t){for(var r=0;r<eL.eventHandlers.length;++r)eL.eventHandlers[r].target!=e||t&&t!=eL.eventHandlers[r].eventTypeString||eL._removeHandler(r--)},_removeHandler:function(e){var t=eL.eventHandlers[e];t.target.removeEventListener(t.eventTypeString,t.eventListenerFunc,t.useCapture),eL.eventHandlers.splice(e,1)},registerOrRemoveHandler:function(e){var jsEventHandler=function(t){++eL.inEventHandler,eL.currentEventHandler=e,eL.runDeferredCalls(),e.handlerFunc(t),eL.runDeferredCalls(),--eL.inEventHandler};if(e.callbackfunc)e.eventListenerFunc=jsEventHandler,e.target.addEventListener(e.eventTypeString,jsEventHandler,e.useCapture),eL.eventHandlers.push(e),eL.registerRemoveEventListeners();else for(var t=0;t<eL.eventHandlers.length;++t)eL.eventHandlers[t].target==e.target&&eL.eventHandlers[t].eventTypeString==e.eventTypeString&&eL._removeHandler(t--)},getNodeNameForTarget:function(e){return e?e==window?"#window":e==screen?"#screen":e&&e.nodeName?e.nodeName:"":""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}},eN=["default","low-power","high-performance"],eB=[0,"u">typeof 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<t;r++)_[e+r|0]=_getentropy.randomDevice();return 0}function _glActiveTexture(e){R.activeTexture(e)}function _glAttachShader(e,t){R.attachShader(eU.programs[e],eU.shaders[t])}function _glBindAttribLocation(e,t,r){R.bindAttribLocation(eU.programs[e],t,UTF8ToString(r))}function _glBindBuffer(e,t){34962==e?R.currentArrayBufferBinding=t:34963==e&&(R.currentElementArrayBufferBinding=t),35051==e?R.currentPixelPackBufferBinding=t:35052==e&&(R.currentPixelUnpackBufferBinding=t),R.bindBuffer(e,eU.buffers[t])}function _glBindBufferBase(e,t,r){R.bindBufferBase(e,t,eU.buffers[r])}function _glBindFramebuffer(e,t){R.bindFramebuffer(e,t?eU.framebuffers[t]:eU.currentContext.defaultFbo)}function _glBindTexture(e,t){R.bindTexture(e,eU.textures[t])}function _glBindVertexArray(e){R.bindVertexArray(eU.vaos[e]);var t=R.getParameter(34965);R.currentElementArrayBufferBinding=t?0|t.name:0}function _glBufferData(e,t,r,n){eU.currentContext.version>=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<e;r++){var n=E[t+4*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<e;++r){var n=E[t+4*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<e;r++){var n=E[t+4*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<e;r++){var n=E[t+4*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<e;n++)r[n]=E[t+4*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<e;o++){var i=R[r](),a=i&&eU.getNewId(n);i?(i.name=a,n[a]=i):eU.recordError(1282),E[t+4*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<i.length;++a)switch(r){case 0:E[t+4*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={};t<R.getProgramParameter(e,35718);++t){var i=R.getActiveUniform(e,t),a=i.name,s=i.size,c=webglGetLeftBracePos(a),u=c>0?a.slice(0,c):a,d=e.uniformIdCounter;for(e.uniformIdCounter+=s,o[u]=[s,d],r=0;r<s;++r)n[d]=r,e.uniformArrayNamesById[d++]=u}}function _glGetUniformLocation(e,t){if(t=UTF8ToString(t),e=eU.programs[e]){webglPrepareUniformLocationsBeforeFirstUse(e);var r=e.uniformLocsById,n=0,o=t,i=webglGetLeftBracePos(t);i>0&&(n=jstoi_q(t.slice(i+1))>>>0,o=t.slice(0,i));var a=e.uniformSizeAndIdsByName[o];if(a&&n<a[0]&&(r[n+=a[1]]=r[n]||R.getUniformLocation(e,t)))return n}else eU.recordError(1281);return -1}function _glLinkProgram(e){e=eU.programs[e],R.linkProgram(e),e.uniformLocsById=0,e.uniformSizeAndIdsByName={}}function _glPixelStorei(e,t){3317==e&&(eU.unpackAlignment=t),R.pixelStorei(e,t)}function computeUnpackAlignedImageSize(e,t,r,n){return t*function roundedToNextMultipleOf(e,t){return e+t-1&-t}(e*r,n)}function __colorChannelsInGlTextureFormat(e){return({5:3,6:4,8:2,29502:3,29504:4,26917:2,26918:2,29846:3,29847:4})[e-6402]||1}function heapObjectForWebGLType(e){return 0==(e-=5120)?_:1==e?g:2==e?m:4==e?E:6==e?y:5==e||28922==e||28520==e||30779==e||30782==e?b:h}function heapAccessShiftForWebGLHeap(e){return 31-Math.clz32(e.BYTES_PER_ELEMENT)}function emscriptenWebGLGetTexPixelData(e,t,r,n,o,i){var a=heapObjectForWebGLType(e),s=heapAccessShiftForWebGLHeap(a),c=computeUnpackAlignedImageSize(r,n,__colorChannelsInGlTextureFormat(t)*(1<<s),eU.unpackAlignment);return a.subarray(o>>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<n?(E[e2()>>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.length<t;)n=r[0]+n;return n}function leadingNulls(e,t){return leadingSomething(e,t,"0")}function compareByDay(e,t){var r;function sgn(e){return e<0?-1:+(e>0)}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()<e.tm_year+1900?e.tm_yday+32-n.getDate():e.tm_yday+1-n.getDate())/7),2)},"%w":function(e){return e.tm_wday},"%W":function(e){var t=new Date(e.tm_year,0,1),r=1===t.getDay()?t:__addDays(t,0===t.getDay()?1:7-t.getDay()+1),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"},"%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úô