{"version":3,"file":"index.mjs","sources":["../src/cpp/ifcdb.js","../src/ifcWasmConverterLoader.ts","../src/ifcConverter.ts","../src/ifcConverterSimple.ts"],"sourcesContent":["async function IfcDbWasm(moduleArg={}){var moduleRtn;var Module=moduleArg;var ENVIRONMENT_IS_WEB=true;var ENVIRONMENT_IS_WORKER=false;var arguments_=[];var thisProgram=\"./this.program\";var quit_=(status,toThrow)=>{throw toThrow};var _scriptName=import.meta.url;var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var readAsync,readBinary;if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){try{scriptDirectory=new URL(\".\",_scriptName).href}catch{}{readAsync=async url=>{var response=await fetch(url,{credentials:\"same-origin\"});if(response.ok){return response.arrayBuffer()}throw new Error(response.status+\" : \"+response.url)}}}else{}var out=console.log.bind(console);var err=console.error.bind(console);var wasmBinary;var ABORT=false;var EXITSTATUS;var readyPromiseResolve,readyPromiseReject;var wasmMemory;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;var HEAP64,HEAPU64;var runtimeInitialized=false;function updateMemoryViews(){var b=wasmMemory.buffer;HEAP8=new Int8Array(b);HEAP16=new Int16Array(b);HEAPU8=new Uint8Array(b);HEAPU16=new Uint16Array(b);HEAP32=new Int32Array(b);HEAPU32=new Uint32Array(b);HEAPF32=new Float32Array(b);HEAPF64=new Float64Array(b);HEAP64=new BigInt64Array(b);HEAPU64=new BigUint64Array(b)}function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(onPreRuns)}function initRuntime(){runtimeInitialized=true;if(!Module[\"noFSInit\"]&&!FS.initialized)FS.init();TTY.init();wasmExports[\"U\"]();FS.ignorePermissions=false}function preMain(){}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(onPostRuns)}function abort(what){Module[\"onAbort\"]?.(what);what=\"Aborted(\"+what+\")\";err(what);ABORT=true;what+=\". Build with -sASSERTIONS for more info.\";var e=new WebAssembly.RuntimeError(what);readyPromiseReject?.(e);throw e}var wasmBinaryFile;function findWasmBinary(){if(Module[\"locateFile\"]){return locateFile(\"ifcdb.wasm\")}return new URL(\"ifcdb.wasm\",import.meta.url).href}function getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw\"both async and sync fetching of the wasm failed\"}async function getWasmBinary(binaryFile){if(!wasmBinary){try{var response=await readAsync(binaryFile);return new Uint8Array(response)}catch{}}return getBinarySync(binaryFile)}async function instantiateArrayBuffer(binaryFile,imports){try{var binary=await getWasmBinary(binaryFile);var instance=await WebAssembly.instantiate(binary,imports);return instance}catch(reason){err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)}}async function instantiateAsync(binary,binaryFile,imports){if(!binary){try{var response=fetch(binaryFile,{credentials:\"same-origin\"});var instantiationResult=await WebAssembly.instantiateStreaming(response,imports);return instantiationResult}catch(reason){err(`wasm streaming compile failed: ${reason}`);err(\"falling back to ArrayBuffer instantiation\")}}return instantiateArrayBuffer(binaryFile,imports)}function getWasmImports(){return{a:wasmImports}}async function createWasm(){function receiveInstance(instance,module){wasmExports=instance.exports;wasmExports=Asyncify.instrumentWasmExports(wasmExports);wasmMemory=wasmExports[\"T\"];updateMemoryViews();assignWasmExports(wasmExports);return wasmExports}function receiveInstantiationResult(result){return receiveInstance(result[\"instance\"])}var info=getWasmImports();if(Module[\"instantiateWasm\"]){return new Promise((resolve,reject)=>{Module[\"instantiateWasm\"](info,(mod,inst)=>{resolve(receiveInstance(mod,inst))})})}wasmBinaryFile??=findWasmBinary();var result=await instantiateAsync(wasmBinary,wasmBinaryFile,info);var exports=receiveInstantiationResult(result);return exports}class ExitStatus{name=\"ExitStatus\";constructor(status){this.message=`Program terminated with exit(${status})`;this.status=status}}var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};var onPostRuns=[];var addOnPostRun=cb=>onPostRuns.push(cb);var onPreRuns=[];var addOnPreRun=cb=>onPreRuns.push(cb);var dynCalls={};var dynCallLegacy=(sig,ptr,args)=>{sig=sig.replace(/p/g,\"i\");var f=dynCalls[sig];return f(ptr,...args)};var dynCall=(sig,ptr,args=[],promising=false)=>{var rtn=dynCallLegacy(sig,ptr,args);function convert(rtn){return rtn}return convert(rtn)};var noExitRuntime=true;class ExceptionInfo{constructor(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24}set_type(type){HEAPU32[this.ptr+4>>2]=type}get_type(){return HEAPU32[this.ptr+4>>2]}set_destructor(destructor){HEAPU32[this.ptr+8>>2]=destructor}get_destructor(){return HEAPU32[this.ptr+8>>2]}set_caught(caught){caught=caught?1:0;HEAP8[this.ptr+12]=caught}get_caught(){return HEAP8[this.ptr+12]!=0}set_rethrown(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13]=rethrown}get_rethrown(){return HEAP8[this.ptr+13]!=0}init(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor)}set_adjusted_ptr(adjustedPtr){HEAPU32[this.ptr+16>>2]=adjustedPtr}get_adjusted_ptr(){return HEAPU32[this.ptr+16>>2]}}var exceptionLast=0;var uncaughtExceptionCount=0;var ___cxa_throw=(ptr,type,destructor)=>{var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw exceptionLast};var syscallGetVarargI=()=>{var ret=HEAP32[+SYSCALLS.varargs>>2];SYSCALLS.varargs+=4;return ret};var syscallGetVarargP=syscallGetVarargI;var PATH={isAbs:path=>path.charAt(0)===\"/\",splitPath:filename=>{var splitPathRe=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:(parts,allowAboveRoot)=>{var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last===\".\"){parts.splice(i,1)}else if(last===\"..\"){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift(\"..\")}}return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.slice(-1)===\"/\";path=PATH.normalizeArray(path.split(\"/\").filter(p=>!!p),!isAbsolute).join(\"/\");if(!path&&!isAbsolute){path=\".\"}if(path&&trailingSlash){path+=\"/\"}return(isAbsolute?\"/\":\"\")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return\".\"}if(dir){dir=dir.slice(0,-1)}return root+dir},basename:path=>path&&path.match(/([^\\/]+|\\/)\\/*$/)[1],join:(...paths)=>PATH.normalize(paths.join(\"/\")),join2:(l,r)=>PATH.normalize(l+\"/\"+r)};var initRandomFill=()=>view=>crypto.getRandomValues(view);var randomFill=view=>{(randomFill=initRandomFill())(view)};var PATH_FS={resolve:(...args)=>{var resolvedPath=\"\",resolvedAbsolute=false;for(var i=args.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?args[i]:FS.cwd();if(typeof path!=\"string\"){throw new TypeError(\"Arguments to path.resolve must be strings\")}else if(!path){return\"\"}resolvedPath=path+\"/\"+resolvedPath;resolvedAbsolute=PATH.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split(\"/\").filter(p=>!!p),!resolvedAbsolute).join(\"/\");return(resolvedAbsolute?\"/\":\"\")+resolvedPath||\".\"},relative:(from,to)=>{from=PATH_FS.resolve(from).slice(1);to=PATH_FS.resolve(to).slice(1);function trim(arr){var start=0;for(;start<arr.length;start++){if(arr[start]!==\"\")break}var end=arr.length-1;for(;end>=0;end--){if(arr[end]!==\"\")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split(\"/\"));var toParts=trim(to.split(\"/\"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i<length;i++){if(fromParts[i]!==toParts[i]){samePartsLength=i;break}}var outputParts=[];for(var i=samePartsLength;i<fromParts.length;i++){outputParts.push(\"..\")}outputParts=outputParts.concat(toParts.slice(samePartsLength));return outputParts.join(\"/\")}};var UTF8Decoder=typeof TextDecoder!=\"undefined\"?new TextDecoder:undefined;var findStringEnd=(heapOrArray,idx,maxBytesToRead,ignoreNul)=>{var maxIdx=idx+maxBytesToRead;if(ignoreNul)return maxIdx;while(heapOrArray[idx]&&!(idx>=maxIdx))++idx;return idx};var UTF8ArrayToString=(heapOrArray,idx=0,maxBytesToRead,ignoreNul)=>{var endPtr=findStringEnd(heapOrArray,idx,maxBytesToRead,ignoreNul);if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str=\"\";while(idx<endPtr){var u0=heapOrArray[idx++];if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heapOrArray[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heapOrArray[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heapOrArray[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str};var FS_stdin_getChar_buffer=[];var lengthBytesUTF8=str=>{var len=0;for(var i=0;i<str.length;++i){var c=str.charCodeAt(i);if(c<=127){len++}else if(c<=2047){len+=2}else if(c>=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.codePointAt(i);if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63;i++}}heap[outIdx]=0;return outIdx-startIdx};var intArrayFromString=(stringy,dontAddNull,length)=>{var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array};var FS_stdin_getChar=()=>{if(!FS_stdin_getChar_buffer.length){var result=null;if(typeof window!=\"undefined\"&&typeof window.prompt==\"function\"){result=window.prompt(\"Input: \");if(result!==null){result+=\"\\n\"}}else{}if(!result){return null}FS_stdin_getChar_buffer=intArrayFromString(result,true)}return FS_stdin_getChar_buffer.shift()};var TTY={ttys:[],init(){},shutdown(){},register(dev,ops){TTY.ttys[dev]={input:[],output:[],ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},close(stream){stream.tty.ops.fsync(stream.tty)},fsync(stream){stream.tty.ops.fsync(stream.tty)},read(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(60)}var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=stream.tty.ops.get_char(stream.tty)}catch(e){throw new FS.ErrnoError(29)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(6)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}if(bytesRead){stream.node.atime=Date.now()}return bytesRead},write(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.put_char){throw new FS.ErrnoError(60)}try{for(var i=0;i<length;i++){stream.tty.ops.put_char(stream.tty,buffer[offset+i])}}catch(e){throw new FS.ErrnoError(29)}if(length){stream.node.mtime=stream.node.ctime=Date.now()}return i}},default_tty_ops:{get_char(tty){return FS_stdin_getChar()},put_char(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync(tty){if(tty.output?.length>0){out(UTF8ArrayToString(tty.output));tty.output=[]}},ioctl_tcgets(tty){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(tty,optional_actions,data){return 0},ioctl_tiocgwinsz(tty){return[24,80]}},default_tty1_ops:{put_char(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync(tty){if(tty.output?.length>0){err(UTF8ArrayToString(tty.output));tty.output=[]}}}};var mmapAlloc=size=>{abort()};var MEMFS={ops_table:null,mount(mount){return MEMFS.createNode(null,\"/\",16895,0)},createNode(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}MEMFS.ops_table||={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}};var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.atime=node.mtime=node.ctime=Date.now();if(parent){parent.contents[name]=node;parent.atime=parent.mtime=parent.ctime=node.atime}return node},getFileDataAsTypedArray(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity<CAPACITY_DOUBLING_MAX?2:1.125)>>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.atime);attr.mtime=new Date(node.mtime);attr.ctime=new Date(node.ctime);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr(node,attr){for(const key of[\"mode\",\"atime\",\"mtime\",\"ctime\"]){if(attr[key]!=null){node[key]=attr[key]}}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup(parent,name){if(!MEMFS.doesNotExistError){MEMFS.doesNotExistError=new FS.ErrnoError(44);MEMFS.doesNotExistError.stack=\"<generic error, no stack>\"}throw MEMFS.doesNotExistError},mknod(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename(old_node,new_dir,new_name){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){if(FS.isDir(old_node.mode)){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}FS.hashRemoveNode(new_node)}delete old_node.parent.contents[old_node.name];new_dir.contents[new_name]=old_node;old_node.name=new_name;new_dir.ctime=new_dir.mtime=old_node.parent.ctime=old_node.parent.mtime=Date.now()},unlink(parent,name){delete parent.contents[name];parent.ctime=parent.mtime=Date.now()},rmdir(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.ctime=parent.mtime=Date.now()},readdir(node){return[\".\",\"..\",...Object.keys(node.contents)]},symlink(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i<size;i++)buffer[offset+i]=contents[position+i]}return size},write(stream,buffer,offset,length,position,canOwn){if(buffer.buffer===HEAP8.buffer){canOwn=false}if(!length)return 0;var node=stream.node;node.mtime=node.ctime=Date.now();if(buffer.subarray&&(!node.contents||node.contents.subarray)){if(canOwn){node.contents=buffer.subarray(offset,offset+length);node.usedBytes=length;return length}else if(node.usedBytes===0&&position===0){node.contents=buffer.slice(offset,offset+length);node.usedBytes=length;return length}else if(position+length<=node.usedBytes){node.contents.set(buffer.subarray(offset,offset+length),position);return length}}MEMFS.expandFileStorage(node,position+length);if(node.contents.subarray&&buffer.subarray){node.contents.set(buffer.subarray(offset,offset+length),position)}else{for(var i=0;i<length;i++){node.contents[position+i]=buffer[offset+i]}}node.usedBytes=Math.max(node.usedBytes,position+length);return length},llseek(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.usedBytes}}if(position<0){throw new FS.ErrnoError(28)}return position},mmap(stream,length,position,prot,flags){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}var ptr;var allocated;var contents=stream.node.contents;if(!(flags&2)&&contents&&contents.buffer===HEAP8.buffer){allocated=false;ptr=contents.byteOffset}else{allocated=true;ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}if(contents){if(position>0||position+length<contents.length){if(contents.subarray){contents=contents.subarray(position,position+length)}else{contents=Array.prototype.slice.call(contents,position,position+length)}}HEAP8.set(contents,ptr)}}return{ptr,allocated}},msync(stream,buffer,offset,length,mmapFlags){MEMFS.stream_ops.write(stream,buffer,0,length,offset,false);return 0}}};var FS_modeStringToFlags=str=>{var flagModes={r:0,\"r+\":2,w:512|64|1,\"w+\":512|64|2,a:1024|64|1,\"a+\":1024|64|2};var flags=flagModes[str];if(typeof flags==\"undefined\"){throw new Error(`Unknown file open mode: ${str}`)}return flags};var FS_getMode=(canRead,canWrite)=>{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode};var asyncLoad=async url=>{var arrayBuffer=await readAsync(url);return new Uint8Array(arrayBuffer)};var FS_createDataFile=(...args)=>FS.createDataFile(...args);var getUniqueRunDependency=id=>id;var runDependencies=0;var dependenciesFulfilled=null;var removeRunDependency=id=>{runDependencies--;Module[\"monitorRunDependencies\"]?.(runDependencies);if(runDependencies==0){if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}};var addRunDependency=id=>{runDependencies++;Module[\"monitorRunDependencies\"]?.(runDependencies)};var preloadPlugins=[];var FS_handledByPreloadPlugin=async(byteArray,fullname)=>{if(typeof Browser!=\"undefined\")Browser.init();for(var plugin of preloadPlugins){if(plugin[\"canHandle\"](fullname)){return plugin[\"handle\"](byteArray,fullname)}}return byteArray};var FS_preloadFile=async(parent,name,url,canRead,canWrite,dontCreateFile,canOwn,preFinish)=>{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency(`cp ${fullname}`);addRunDependency(dep);try{var byteArray=url;if(typeof url==\"string\"){byteArray=await asyncLoad(url)}byteArray=await FS_handledByPreloadPlugin(byteArray,fullname);preFinish?.();if(!dontCreateFile){FS_createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}}finally{removeRunDependency(dep)}};var FS_createPreloadedFile=(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)=>{FS_preloadFile(parent,name,url,canRead,canWrite,dontCreateFile,canOwn,preFinish).then(onload).catch(onerror)};var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:\"/\",initialized:false,ignorePermissions:true,filesystems:null,syncFSRequests:0,readFiles:{},ErrnoError:class{name=\"ErrnoError\";constructor(errno){this.errno=errno}},FSStream:class{shared={};get object(){return this.node}set object(val){this.node=val}get isRead(){return(this.flags&2097155)!==1}get isWrite(){return(this.flags&2097155)!==0}get isAppend(){return this.flags&1024}get flags(){return this.shared.flags}set flags(val){this.shared.flags=val}get position(){return this.shared.position}set position(val){this.shared.position=val}},FSNode:class{node_ops={};stream_ops={};readMode=292|73;writeMode=146;mounted=null;constructor(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.rdev=rdev;this.atime=this.mtime=this.ctime=Date.now()}get read(){return(this.mode&this.readMode)===this.readMode}set read(val){val?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(val){val?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return FS.isDir(this.mode)}get isDevice(){return FS.isChrdev(this.mode)}},lookupPath(path,opts={}){if(!path){throw new FS.ErrnoError(44)}opts.follow_mount??=true;if(!PATH.isAbs(path)){path=FS.cwd()+\"/\"+path}linkloop:for(var nlinks=0;nlinks<40;nlinks++){var parts=path.split(\"/\").filter(p=>!!p);var current=FS.root;var current_path=\"/\";for(var i=0;i<parts.length;i++){var islast=i===parts.length-1;if(islast&&opts.parent){break}if(parts[i]===\".\"){continue}if(parts[i]===\"..\"){current_path=PATH.dirname(current_path);if(FS.isRoot(current)){path=current_path+\"/\"+parts.slice(i+1).join(\"/\");nlinks--;continue linkloop}else{current=current.parent}continue}current_path=PATH.join2(current_path,parts[i]);try{current=FS.lookupNode(current,parts[i])}catch(e){if(e?.errno===44&&islast&&opts.noent_okay){return{path:current_path}}throw e}if(FS.isMountpoint(current)&&(!islast||opts.follow_mount)){current=current.mounted.root}if(FS.isLink(current.mode)&&(!islast||opts.follow)){if(!current.node_ops.readlink){throw new FS.ErrnoError(52)}var link=current.node_ops.readlink(current);if(!PATH.isAbs(link)){link=PATH.dirname(current_path)+\"/\"+link}path=link+\"/\"+parts.slice(i+1).join(\"/\");continue linkloop}}return{path:current_path,node:current}}throw new FS.ErrnoError(32)},getPath(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!==\"/\"?`${mount}/${path}`:mount+path}path=path?`${node.name}/${path}`:node.name;node=node.parent}},hashName(parentid,name){var hash=0;for(var i=0;i<name.length;i++){hash=(hash<<5)-hash+name.charCodeAt(i)|0}return(parentid+hash>>>0)%FS.nameTable.length},hashAddNode(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode(node){FS.hashRemoveNode(node)},isRoot(node){return node===node.parent},isMountpoint(node){return!!node.mounted},isFile(mode){return(mode&61440)===32768},isDir(mode){return(mode&61440)===16384},isLink(mode){return(mode&61440)===40960},isChrdev(mode){return(mode&61440)===8192},isBlkdev(mode){return(mode&61440)===24576},isFIFO(mode){return(mode&61440)===4096},isSocket(mode){return(mode&49152)===49152},flagsToPermissionString(flag){var perms=[\"r\",\"w\",\"rw\"][flag&3];if(flag&512){perms+=\"w\"}return perms},nodePermissions(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes(\"r\")&&!(node.mode&292)){return 2}else if(perms.includes(\"w\")&&!(node.mode&146)){return 2}else if(perms.includes(\"x\")&&!(node.mode&73)){return 2}return 0},mayLookup(dir){if(!FS.isDir(dir.mode))return 54;var errCode=FS.nodePermissions(dir,\"x\");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate(dir,name){if(!FS.isDir(dir.mode)){return 54}try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,\"wx\")},mayDelete(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,\"wx\");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!==\"r\"||flags&(512|64)){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},checkOpExists(op,err){if(!op){throw new FS.ErrnoError(err)}return op},MAX_OPEN_FDS:4096,nextfd(){for(var fd=0;fd<=FS.MAX_OPEN_FDS;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStreamChecked(fd){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}return stream},getStream:fd=>FS.streams[fd],createStream(stream,fd=-1){stream=Object.assign(new FS.FSStream,stream);if(fd==-1){fd=FS.nextfd()}stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream(fd){FS.streams[fd]=null},dupStream(origStream,fd=-1){var stream=FS.createStream(origStream,fd);stream.stream_ops?.dup?.(stream);return stream},doSetAttr(stream,node,attr){var setattr=stream?.stream_ops.setattr;var arg=setattr?stream:node;setattr??=node.node_ops.setattr;FS.checkOpExists(setattr,63);setattr(arg,attr)},chrdev_stream_ops:{open(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;stream.stream_ops.open?.(stream)},llseek(){throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push(...m.mounts)}return mounts},syncfs(populate,callback){if(typeof populate==\"function\"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err(`warning: ${FS.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`)}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(mount=>{if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount(type,opts,mountpoint){var root=mountpoint===\"/\";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type,opts,mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(hash=>{var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup(parent,name){return parent.node_ops.lookup(parent,name)},mknod(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name){throw new FS.ErrnoError(28)}if(name===\".\"||name===\"..\"){throw new FS.ErrnoError(20)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},statfs(path){return FS.statfsNode(FS.lookupPath(path,{follow:true}).node)},statfsStream(stream){return FS.statfsNode(stream.node)},statfsNode(node){var rtn={bsize:4096,frsize:4096,blocks:1e6,bfree:5e5,bavail:5e5,files:FS.nextInode,ffree:FS.nextInode-1,fsid:42,flags:2,namelen:255};if(node.node_ops.statfs){Object.assign(rtn,node.node_ops.statfs(node.mount.opts.root))}return rtn},create(path,mode=438){mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir(path,mode=511){mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree(path,mode){var dirs=path.split(\"/\");var d=\"\";for(var dir of dirs){if(!dir)continue;if(d||PATH.isAbs(path))d+=\"/\";d+=dir;try{FS.mkdir(d,mode)}catch(e){if(e.errno!=20)throw e}}},mkdev(path,mode,dev){if(typeof dev==\"undefined\"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)},symlink(oldpath,newpath){if(!PATH_FS.resolve(oldpath)){throw new FS.ErrnoError(44)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var newname=PATH.basename(newpath);var errCode=FS.mayCreate(parent,newname);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(63)}return parent.node_ops.symlink(parent,newname,oldpath)},rename(old_path,new_path){var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node;if(!old_dir||!new_dir)throw new FS.ErrnoError(44);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(75)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH_FS.relative(old_path,new_dirname);if(relative.charAt(0)!==\".\"){throw new FS.ErrnoError(28)}relative=PATH_FS.relative(new_path,old_dirname);if(relative.charAt(0)!==\".\"){throw new FS.ErrnoError(55)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var errCode=FS.mayDelete(old_dir,old_name,isdir);if(errCode){throw new FS.ErrnoError(errCode)}errCode=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(errCode){throw new FS.ErrnoError(errCode)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(63)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(10)}if(new_dir!==old_dir){errCode=FS.nodePermissions(old_dir,\"w\");if(errCode){throw new FS.ErrnoError(errCode)}}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name);old_node.parent=new_dir}catch(e){throw e}finally{FS.hashAddNode(old_node)}},rmdir(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,true);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node)},readdir(path){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;var readdir=FS.checkOpExists(node.node_ops.readdir,54);return readdir(node)},unlink(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,false);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.unlink(parent,name);FS.destroyNode(node)},readlink(path){var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(44)}if(!link.node_ops.readlink){throw new FS.ErrnoError(28)}return link.node_ops.readlink(link)},stat(path,dontFollow){var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;var getattr=FS.checkOpExists(node.node_ops.getattr,63);return getattr(node)},fstat(fd){var stream=FS.getStreamChecked(fd);var node=stream.node;var getattr=stream.stream_ops.getattr;var arg=getattr?stream:node;getattr??=node.node_ops.getattr;FS.checkOpExists(getattr,63);return getattr(arg)},lstat(path){return FS.stat(path,true)},doChmod(stream,node,mode,dontFollow){FS.doSetAttr(stream,node,{mode:mode&4095|node.mode&~4095,ctime:Date.now(),dontFollow})},chmod(path,mode,dontFollow){var node;if(typeof path==\"string\"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}FS.doChmod(null,node,mode,dontFollow)},lchmod(path,mode){FS.chmod(path,mode,true)},fchmod(fd,mode){var stream=FS.getStreamChecked(fd);FS.doChmod(stream,stream.node,mode,false)},doChown(stream,node,dontFollow){FS.doSetAttr(stream,node,{timestamp:Date.now(),dontFollow})},chown(path,uid,gid,dontFollow){var node;if(typeof path==\"string\"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}FS.doChown(null,node,dontFollow)},lchown(path,uid,gid){FS.chown(path,uid,gid,true)},fchown(fd,uid,gid){var stream=FS.getStreamChecked(fd);FS.doChown(stream,stream.node,false)},doTruncate(stream,node,len){if(FS.isDir(node.mode)){throw new FS.ErrnoError(31)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(28)}var errCode=FS.nodePermissions(node,\"w\");if(errCode){throw new FS.ErrnoError(errCode)}FS.doSetAttr(stream,node,{size:len,timestamp:Date.now()})},truncate(path,len){if(len<0){throw new FS.ErrnoError(28)}var node;if(typeof path==\"string\"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}FS.doTruncate(null,node,len)},ftruncate(fd,len){var stream=FS.getStreamChecked(fd);if(len<0||(stream.flags&2097155)===0){throw new FS.ErrnoError(28)}FS.doTruncate(stream,stream.node,len)},utime(path,atime,mtime){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;var setattr=FS.checkOpExists(node.node_ops.setattr,63);setattr(node,{atime,mtime})},open(path,flags,mode=438){if(path===\"\"){throw new FS.ErrnoError(44)}flags=typeof flags==\"string\"?FS_modeStringToFlags(flags):flags;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;var isDirPath;if(typeof path==\"object\"){node=path}else{isDirPath=path.endsWith(\"/\");var lookup=FS.lookupPath(path,{follow:!(flags&131072),noent_okay:true});node=lookup.node;path=lookup.path}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(20)}}else if(isDirPath){throw new FS.ErrnoError(31)}else{node=FS.mknod(path,mode|511,0);created=true}}if(!node){throw new FS.ErrnoError(44)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}if(!created){var errCode=FS.mayOpen(node,flags);if(errCode){throw new FS.ErrnoError(errCode)}}if(flags&512&&!created){FS.truncate(node,0)}flags&=~(128|512|131072);var stream=FS.createStream({node,path:FS.getPath(node),flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false});if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(created){FS.chmod(node,mode&511)}if(Module[\"logReadFiles\"]&&!(flags&1)){if(!(path in FS.readFiles)){FS.readFiles[path]=1}}return stream},close(stream){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}stream.fd=null},isClosed(stream){return stream.fd===null},llseek(stream,offset,whence){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(70)}if(whence!=0&&whence!=1&&whence!=2){throw new FS.ErrnoError(28)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position},read(stream,buffer,offset,length,position){if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.read){throw new FS.ErrnoError(28)}var seeking=typeof position!=\"undefined\";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead},write(stream,buffer,offset,length,position,canOwn){if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.write){throw new FS.ErrnoError(28)}if(stream.seekable&&stream.flags&1024){FS.llseek(stream,0,2)}var seeking=typeof position!=\"undefined\";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;return bytesWritten},mmap(stream,length,position,prot,flags){if((prot&2)!==0&&(flags&2)===0&&(stream.flags&2097155)!==2){throw new FS.ErrnoError(2)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(2)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(43)}if(!length){throw new FS.ErrnoError(28)}return stream.stream_ops.mmap(stream,length,position,prot,flags)},msync(stream,buffer,offset,length,mmapFlags){if(!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)},ioctl(stream,cmd,arg){if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(59)}return stream.stream_ops.ioctl(stream,cmd,arg)},readFile(path,opts={}){opts.flags=opts.flags||0;opts.encoding=opts.encoding||\"binary\";if(opts.encoding!==\"utf8\"&&opts.encoding!==\"binary\"){throw new Error(`Invalid encoding type \"${opts.encoding}\"`)}var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding===\"utf8\"){buf=UTF8ArrayToString(buf)}FS.close(stream);return buf},writeFile(path,data,opts={}){opts.flags=opts.flags||577;var stream=FS.open(path,opts.flags,opts.mode);if(typeof data==\"string\"){data=new Uint8Array(intArrayFromString(data,true))}if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn)}else{throw new Error(\"Unsupported data type\")}FS.close(stream)},cwd:()=>FS.currentPath,chdir(path){var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,\"x\");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories(){FS.mkdir(\"/tmp\");FS.mkdir(\"/home\");FS.mkdir(\"/home/web_user\")},createDefaultDevices(){FS.mkdir(\"/dev\");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length,llseek:()=>0});FS.mkdev(\"/dev/null\",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev(\"/dev/tty\",FS.makedev(5,0));FS.mkdev(\"/dev/tty1\",FS.makedev(6,0));var randomBuffer=new Uint8Array(1024),randomLeft=0;var randomByte=()=>{if(randomLeft===0){randomFill(randomBuffer);randomLeft=randomBuffer.byteLength}return randomBuffer[--randomLeft]};FS.createDevice(\"/dev\",\"random\",randomByte);FS.createDevice(\"/dev\",\"urandom\",randomByte);FS.mkdir(\"/dev/shm\");FS.mkdir(\"/dev/shm/tmp\")},createSpecialDirectories(){FS.mkdir(\"/proc\");var proc_self=FS.mkdir(\"/proc/self\");FS.mkdir(\"/proc/self/fd\");FS.mount({mount(){var node=FS.createNode(proc_self,\"fd\",16895,73);node.stream_ops={llseek:MEMFS.stream_ops.llseek};node.node_ops={lookup(parent,name){var fd=+name;var stream=FS.getStreamChecked(fd);var ret={parent:null,mount:{mountpoint:\"fake\"},node_ops:{readlink:()=>stream.path},id:fd+1};ret.parent=ret;return ret},readdir(){return Array.from(FS.streams.entries()).filter(([k,v])=>v).map(([k,v])=>k.toString())}};return node}},{},\"/proc/self/fd\")},createStandardStreams(input,output,error){if(input){FS.createDevice(\"/dev\",\"stdin\",input)}else{FS.symlink(\"/dev/tty\",\"/dev/stdin\")}if(output){FS.createDevice(\"/dev\",\"stdout\",null,output)}else{FS.symlink(\"/dev/tty\",\"/dev/stdout\")}if(error){FS.createDevice(\"/dev\",\"stderr\",null,error)}else{FS.symlink(\"/dev/tty1\",\"/dev/stderr\")}var stdin=FS.open(\"/dev/stdin\",0);var stdout=FS.open(\"/dev/stdout\",1);var stderr=FS.open(\"/dev/stderr\",1)},staticInit(){FS.nameTable=new Array(4096);FS.mount(MEMFS,{},\"/\");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={MEMFS}},init(input,output,error){FS.initialized=true;input??=Module[\"stdin\"];output??=Module[\"stdout\"];error??=Module[\"stderr\"];FS.createStandardStreams(input,output,error)},quit(){FS.initialized=false;for(var stream of FS.streams){if(stream){FS.close(stream)}}},findObject(path,dontResolveLastLink){var ret=FS.analyzePath(path,dontResolveLastLink);if(!ret.exists){return null}return ret.object},analyzePath(path,dontResolveLastLink){try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path===\"/\"}catch(e){ret.error=e.errno}return ret},createPath(parent,path,canRead,canWrite){parent=typeof parent==\"string\"?parent:FS.getPath(parent);var parts=path.split(\"/\").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){if(e.errno!=20)throw e}parent=current}return current},createFile(parent,name,properties,canRead,canWrite){var path=PATH.join2(typeof parent==\"string\"?parent:FS.getPath(parent),name);var mode=FS_getMode(canRead,canWrite);return FS.create(path,mode)},createDataFile(parent,name,data,canRead,canWrite,canOwn){var path=name;if(parent){parent=typeof parent==\"string\"?parent:FS.getPath(parent);path=name?PATH.join2(parent,name):parent}var mode=FS_getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data==\"string\"){var arr=new Array(data.length);for(var i=0,len=data.length;i<len;++i)arr[i]=data.charCodeAt(i);data=arr}FS.chmod(node,mode|146);var stream=FS.open(node,577);FS.write(stream,data,0,data.length,0,canOwn);FS.close(stream);FS.chmod(node,mode)}},createDevice(parent,name,input,output){var path=PATH.join2(typeof parent==\"string\"?parent:FS.getPath(parent),name);var mode=FS_getMode(!!input,!!output);FS.createDevice.major??=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{open(stream){stream.seekable=false},close(stream){if(output?.buffer?.length){output(10)}},read(stream,buffer,offset,length,pos){var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=input()}catch(e){throw new FS.ErrnoError(29)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(6)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}if(bytesRead){stream.node.atime=Date.now()}return bytesRead},write(stream,buffer,offset,length,pos){for(var i=0;i<length;i++){try{output(buffer[offset+i])}catch(e){throw new FS.ErrnoError(29)}}if(length){stream.node.mtime=stream.node.ctime=Date.now()}return i}});return FS.mkdev(path,mode,dev)},forceLoadFile(obj){if(obj.isDevice||obj.isFolder||obj.link||obj.contents)return true;if(typeof XMLHttpRequest!=\"undefined\"){throw new Error(\"Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.\")}else{try{obj.contents=readBinary(obj.url)}catch(e){throw new FS.ErrnoError(29)}}},createLazyFile(parent,name,url,canRead,canWrite){class LazyUint8Array{lengthKnown=false;chunks=[];get(idx){if(idx>this.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]}setDataGetter(getter){this.getter=getter}cacheLength(){var xhr=new XMLHttpRequest;xhr.open(\"HEAD\",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error(\"Couldn't load \"+url+\". Status: \"+xhr.status);var datalength=Number(xhr.getResponseHeader(\"Content-length\"));var header;var hasByteServing=(header=xhr.getResponseHeader(\"Accept-Ranges\"))&&header===\"bytes\";var usesGzip=(header=xhr.getResponseHeader(\"Content-Encoding\"))&&header===\"gzip\";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)throw new Error(\"invalid range (\"+from+\", \"+to+\") or no bytes requested!\");if(to>datalength-1)throw new Error(\"only \"+datalength+\" bytes available! programmer error!\");var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);if(datalength!==chunkSize)xhr.setRequestHeader(\"Range\",\"bytes=\"+from+\"-\"+to);xhr.responseType=\"arraybuffer\";if(xhr.overrideMimeType){xhr.overrideMimeType(\"text/plain; charset=x-user-defined\")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error(\"Couldn't load \"+url+\". Status: \"+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}return intArrayFromString(xhr.responseText||\"\",true)};var lazyArray=this;lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==\"undefined\"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==\"undefined\")throw new Error(\"doXHR failed!\");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out(\"LazyFiles on gzip forces download of the whole file when length is accessed\")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true}get length(){if(!this.lengthKnown){this.cacheLength()}return this._length}get chunkSize(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}if(typeof XMLHttpRequest!=\"undefined\"){if(!ENVIRONMENT_IS_WORKER)throw\"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc\";var lazyArray=new LazyUint8Array;var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(key=>{var fn=node.stream_ops[key];stream_ops[key]=(...args)=>{FS.forceLoadFile(node);return fn(...args)}});function writeChunks(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i<size;i++){buffer[offset+i]=contents[position+i]}}else{for(var i=0;i<size;i++){buffer[offset+i]=contents.get(position+i)}}return size}stream_ops.read=(stream,buffer,offset,length,position)=>{FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position)};stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);var ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}writeChunks(stream,HEAP8,ptr,length,position);return{ptr,allocated:true}};node.stream_ops=stream_ops;return node}};var UTF8ToString=(ptr,maxBytesToRead,ignoreNul)=>ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead,ignoreNul):\"\";var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=SYSCALLS.getStreamFromFD(dirfd);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return dir+\"/\"+path},writeStat(buf,stat){HEAPU32[buf>>2]=stat.dev;HEAPU32[buf+4>>2]=stat.mode;HEAPU32[buf+8>>2]=stat.nlink;HEAPU32[buf+12>>2]=stat.uid;HEAPU32[buf+16>>2]=stat.gid;HEAPU32[buf+20>>2]=stat.rdev;HEAP64[buf+24>>3]=BigInt(stat.size);HEAP32[buf+32>>2]=4096;HEAP32[buf+36>>2]=stat.blocks;var atime=stat.atime.getTime();var mtime=stat.mtime.getTime();var ctime=stat.ctime.getTime();HEAP64[buf+40>>3]=BigInt(Math.floor(atime/1e3));HEAPU32[buf+48>>2]=atime%1e3*1e3*1e3;HEAP64[buf+56>>3]=BigInt(Math.floor(mtime/1e3));HEAPU32[buf+64>>2]=mtime%1e3*1e3*1e3;HEAP64[buf+72>>3]=BigInt(Math.floor(ctime/1e3));HEAPU32[buf+80>>2]=ctime%1e3*1e3*1e3;HEAP64[buf+88>>3]=BigInt(stat.ino);return 0},writeStatFs(buf,stats){HEAPU32[buf+4>>2]=stats.bsize;HEAPU32[buf+60>>2]=stats.bsize;HEAP64[buf+8>>3]=BigInt(stats.blocks);HEAP64[buf+16>>3]=BigInt(stats.bfree);HEAP64[buf+24>>3]=BigInt(stats.bavail);HEAP64[buf+32>>3]=BigInt(stats.files);HEAP64[buf+40>>3]=BigInt(stats.ffree);HEAPU32[buf+48>>2]=stats.fsid;HEAPU32[buf+64>>2]=stats.flags;HEAPU32[buf+56>>2]=stats.namelen},doMsync(addr,stream,len,flags,offset){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}if(flags&2){return 0}var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},getStreamFromFD(fd){var stream=FS.getStreamChecked(fd);return stream},varargs:undefined,getStr(ptr){var ret=UTF8ToString(ptr);return ret}};function ___syscall_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=syscallGetVarargI();if(arg<0){return-28}while(FS.streams[arg]){arg++}var newStream;newStream=FS.dupStream(stream,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=syscallGetVarargI();stream.flags|=arg;return 0}case 12:{var arg=syscallGetVarargP();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0}return-28}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_ioctl(fd,op,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:{if(!stream.tty)return-59;return 0}case 21505:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tcgets){var termios=stream.tty.ops.ioctl_tcgets(stream);var argp=syscallGetVarargP();HEAP32[argp>>2]=termios.c_iflag||0;HEAP32[argp+4>>2]=termios.c_oflag||0;HEAP32[argp+8>>2]=termios.c_cflag||0;HEAP32[argp+12>>2]=termios.c_lflag||0;for(var i=0;i<32;i++){HEAP8[argp+i+17]=termios.c_cc[i]||0}return 0}return 0}case 21510:case 21511:case 21512:{if(!stream.tty)return-59;return 0}case 21506:case 21507:case 21508:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tcsets){var argp=syscallGetVarargP();var c_iflag=HEAP32[argp>>2];var c_oflag=HEAP32[argp+4>>2];var c_cflag=HEAP32[argp+8>>2];var c_lflag=HEAP32[argp+12>>2];var c_cc=[];for(var i=0;i<32;i++){c_cc.push(HEAP8[argp+i+17])}return stream.tty.ops.ioctl_tcsets(stream.tty,op,{c_iflag,c_oflag,c_cflag,c_lflag,c_cc})}return 0}case 21519:{if(!stream.tty)return-59;var argp=syscallGetVarargP();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21537:case 21531:{var argp=syscallGetVarargP();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tiocgwinsz){var winsize=stream.tty.ops.ioctl_tiocgwinsz(stream.tty);var argp=syscallGetVarargP();HEAP16[argp>>1]=winsize[0];HEAP16[argp+2>>1]=winsize[1]}return 0}case 21524:{if(!stream.tty)return-59;return 0}case 21515:{if(!stream.tty)return-59;return 0}default:return-28}}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_openat(dirfd,path,flags,varargs){SYSCALLS.varargs=varargs;try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);var mode=varargs?syscallGetVarargI():0;return FS.open(path,flags,mode).fd}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_renameat(olddirfd,oldpath,newdirfd,newpath){try{oldpath=SYSCALLS.getStr(oldpath);newpath=SYSCALLS.getStr(newpath);oldpath=SYSCALLS.calculateAt(olddirfd,oldpath);newpath=SYSCALLS.calculateAt(newdirfd,newpath);FS.rename(oldpath,newpath);return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_rmdir(path){try{path=SYSCALLS.getStr(path);FS.rmdir(path);return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_stat64(path,buf){try{path=SYSCALLS.getStr(path);return SYSCALLS.writeStat(buf,FS.stat(path))}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_unlinkat(dirfd,path,flags){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);if(!flags){FS.unlink(path)}else if(flags===512){FS.rmdir(path)}else{return-28}return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}var __abort_js=()=>abort(\"\");var structRegistrations={};var runDestructors=destructors=>{while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}};function readPointer(pointer){return this.fromWireType(HEAPU32[pointer>>2])}var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var InternalError=class InternalError extends Error{constructor(message){super(message);this.name=\"InternalError\"}};var throwInternalError=message=>{throw new InternalError(message)};var whenDependentTypesAreResolved=(myTypes,dependentTypes,getTypeConverters)=>{myTypes.forEach(type=>typeDependencies[type]=dependentTypes);function onComplete(typeConverters){var myTypeConverters=getTypeConverters(typeConverters);if(myTypeConverters.length!==myTypes.length){throwInternalError(\"Mismatched type converter count\")}for(var i=0;i<myTypes.length;++i){registerType(myTypes[i],myTypeConverters[i])}}var typeConverters=new Array(dependentTypes.length);var unregisteredTypes=[];var registered=0;dependentTypes.forEach((dt,i)=>{if(registeredTypes.hasOwnProperty(dt)){typeConverters[i]=registeredTypes[dt]}else{unregisteredTypes.push(dt);if(!awaitingDependencies.hasOwnProperty(dt)){awaitingDependencies[dt]=[]}awaitingDependencies[dt].push(()=>{typeConverters[i]=registeredTypes[dt];++registered;if(registered===unregisteredTypes.length){onComplete(typeConverters)}})}});if(0===unregisteredTypes.length){onComplete(typeConverters)}};var __embind_finalize_value_object=structType=>{var reg=structRegistrations[structType];delete structRegistrations[structType];var rawConstructor=reg.rawConstructor;var rawDestructor=reg.rawDestructor;var fieldRecords=reg.fields;var fieldTypes=fieldRecords.map(field=>field.getterReturnType).concat(fieldRecords.map(field=>field.setterArgumentType));whenDependentTypesAreResolved([structType],fieldTypes,fieldTypes=>{var fields={};fieldRecords.forEach((field,i)=>{var fieldName=field.fieldName;var getterReturnType=fieldTypes[i];var optional=fieldTypes[i].optional;var getter=field.getter;var getterContext=field.getterContext;var setterArgumentType=fieldTypes[i+fieldRecords.length];var setter=field.setter;var setterContext=field.setterContext;fields[fieldName]={read:ptr=>getterReturnType.fromWireType(getter(getterContext,ptr)),write:(ptr,o)=>{var destructors=[];setter(setterContext,ptr,setterArgumentType.toWireType(destructors,o));runDestructors(destructors)},optional}});return[{name:reg.name,fromWireType:ptr=>{var rv={};for(var i in fields){rv[i]=fields[i].read(ptr)}rawDestructor(ptr);return rv},toWireType:(destructors,o)=>{for(var fieldName in fields){if(!(fieldName in o)&&!fields[fieldName].optional){throw new TypeError(`Missing field: \"${fieldName}\"`)}}var ptr=rawConstructor();for(fieldName in fields){fields[fieldName].write(ptr,o[fieldName])}if(destructors!==null){destructors.push(rawDestructor,ptr)}return ptr},readValueFromPointer:readPointer,destructorFunction:rawDestructor}]})};var AsciiToString=ptr=>{var str=\"\";while(1){var ch=HEAPU8[ptr++];if(!ch)return str;str+=String.fromCharCode(ch)}};var BindingError=class BindingError extends Error{constructor(message){super(message);this.name=\"BindingError\"}};var throwBindingError=message=>{throw new BindingError(message)};function sharedRegisterType(rawType,registeredInstance,options={}){var name=registeredInstance.name;if(!rawType){throwBindingError(`type \"${name}\" must have a positive integer typeid pointer`)}if(registeredTypes.hasOwnProperty(rawType)){if(options.ignoreDuplicateRegistrations){return}else{throwBindingError(`Cannot register type '${name}' twice`)}}registeredTypes[rawType]=registeredInstance;delete typeDependencies[rawType];if(awaitingDependencies.hasOwnProperty(rawType)){var callbacks=awaitingDependencies[rawType];delete awaitingDependencies[rawType];callbacks.forEach(cb=>cb())}}function registerType(rawType,registeredInstance,options={}){return sharedRegisterType(rawType,registeredInstance,options)}var integerReadValueFromPointer=(name,width,signed)=>{switch(width){case 1:return signed?pointer=>HEAP8[pointer]:pointer=>HEAPU8[pointer];case 2:return signed?pointer=>HEAP16[pointer>>1]:pointer=>HEAPU16[pointer>>1];case 4:return signed?pointer=>HEAP32[pointer>>2]:pointer=>HEAPU32[pointer>>2];case 8:return signed?pointer=>HEAP64[pointer>>3]:pointer=>HEAPU64[pointer>>3];default:throw new TypeError(`invalid integer width (${width}): ${name}`)}};var __embind_register_bigint=(primitiveType,name,size,minRange,maxRange)=>{name=AsciiToString(name);const isUnsignedType=minRange===0n;let fromWireType=value=>value;if(isUnsignedType){const bitSize=size*8;fromWireType=value=>BigInt.asUintN(bitSize,value);maxRange=fromWireType(maxRange)}registerType(primitiveType,{name,fromWireType,toWireType:(destructors,value)=>{if(typeof value==\"number\"){value=BigInt(value)}return value},readValueFromPointer:integerReadValueFromPointer(name,size,!isUnsignedType),destructorFunction:null})};var __embind_register_bool=(rawType,name,trueValue,falseValue)=>{name=AsciiToString(name);registerType(rawType,{name,fromWireType:function(wt){return!!wt},toWireType:function(destructors,o){return o?trueValue:falseValue},readValueFromPointer:function(pointer){return this.fromWireType(HEAPU8[pointer])},destructorFunction:null})};var emval_freelist=[];var emval_handles=[0,1,,1,null,1,true,1,false,1];var __emval_decref=handle=>{if(handle>9&&0===--emval_handles[handle+1]){emval_handles[handle]=undefined;emval_freelist.push(handle)}};var Emval={toValue:handle=>{if(!handle){throwBindingError(`Cannot use deleted val. handle = ${handle}`)}return emval_handles[handle]},toHandle:value=>{switch(value){case undefined:return 2;case null:return 4;case true:return 6;case false:return 8;default:{const handle=emval_freelist.pop()||emval_handles.length;emval_handles[handle]=value;emval_handles[handle+1]=1;return handle}}}};var EmValType={name:\"emscripten::val\",fromWireType:handle=>{var rv=Emval.toValue(handle);__emval_decref(handle);return rv},toWireType:(destructors,value)=>Emval.toHandle(value),readValueFromPointer:readPointer,destructorFunction:null};var __embind_register_emval=rawType=>registerType(rawType,EmValType);var floatReadValueFromPointer=(name,width)=>{switch(width){case 4:return function(pointer){return this.fromWireType(HEAPF32[pointer>>2])};case 8:return function(pointer){return this.fromWireType(HEAPF64[pointer>>3])};default:throw new TypeError(`invalid float width (${width}): ${name}`)}};var __embind_register_float=(rawType,name,size)=>{name=AsciiToString(name);registerType(rawType,{name,fromWireType:value=>value,toWireType:(destructors,value)=>value,readValueFromPointer:floatReadValueFromPointer(name,size),destructorFunction:null})};var createNamedFunction=(name,func)=>Object.defineProperty(func,\"name\",{value:name});function usesDestructorStack(argTypes){for(var i=1;i<argTypes.length;++i){if(argTypes[i]!==null&&argTypes[i].destructorFunction===undefined){return true}}return false}function createJsInvoker(argTypes,isClassMethodFunc,returns,isAsync){var needsDestructorStack=usesDestructorStack(argTypes);var argCount=argTypes.length-2;var argsList=[];var argsListWired=[\"fn\"];if(isClassMethodFunc){argsListWired.push(\"thisWired\")}for(var i=0;i<argCount;++i){argsList.push(`arg${i}`);argsListWired.push(`arg${i}Wired`)}argsList=argsList.join(\",\");argsListWired=argsListWired.join(\",\");var invokerFnBody=`return function (${argsList}) {\\n`;if(needsDestructorStack){invokerFnBody+=\"var destructors = [];\\n\"}var dtorStack=needsDestructorStack?\"destructors\":\"null\";var args1=[\"humanName\",\"throwBindingError\",\"invoker\",\"fn\",\"runDestructors\",\"fromRetWire\",\"toClassParamWire\"];if(isClassMethodFunc){invokerFnBody+=`var thisWired = toClassParamWire(${dtorStack}, this);\\n`}for(var i=0;i<argCount;++i){var argName=`toArg${i}Wire`;invokerFnBody+=`var arg${i}Wired = ${argName}(${dtorStack}, arg${i});\\n`;args1.push(argName)}invokerFnBody+=(returns||isAsync?\"var rv = \":\"\")+`invoker(${argsListWired});\\n`;var returnVal=returns?\"rv\":\"\";args1.push(\"Asyncify\");invokerFnBody+=`function onDone(${returnVal}) {\\n`;if(needsDestructorStack){invokerFnBody+=\"runDestructors(destructors);\\n\"}else{for(var i=isClassMethodFunc?1:2;i<argTypes.length;++i){var paramName=i===1?\"thisWired\":\"arg\"+(i-2)+\"Wired\";if(argTypes[i].destructorFunction!==null){invokerFnBody+=`${paramName}_dtor(${paramName});\\n`;args1.push(`${paramName}_dtor`)}}}if(returns){invokerFnBody+=\"var ret = fromRetWire(rv);\\n\"+\"return ret;\\n\"}else{}invokerFnBody+=\"}\\n\";invokerFnBody+=`return Asyncify.currData ? Asyncify.whenDone().then(onDone) : onDone(${returnVal});\\n`;invokerFnBody+=\"}\\n\";return new Function(args1,invokerFnBody)}var runAndAbortIfError=func=>{try{return func()}catch(e){abort(e)}};var handleException=e=>{if(e instanceof ExitStatus||e==\"unwind\"){return EXITSTATUS}quit_(1,e)};var runtimeKeepaliveCounter=0;var keepRuntimeAlive=()=>noExitRuntime||runtimeKeepaliveCounter>0;var _proc_exit=code=>{EXITSTATUS=code;if(!keepRuntimeAlive()){Module[\"onExit\"]?.(code);ABORT=true}quit_(code,new ExitStatus(code))};var exitJS=(status,implicit)=>{EXITSTATUS=status;_proc_exit(status)};var _exit=exitJS;var maybeExit=()=>{if(!keepRuntimeAlive()){try{_exit(EXITSTATUS)}catch(e){handleException(e)}}};var callUserCallback=func=>{if(ABORT){return}try{func();maybeExit()}catch(e){handleException(e)}};var Asyncify={instrumentWasmImports(imports){var importPattern=/^(invoke_.*|__asyncjs__.*)$/;for(let[x,original]of Object.entries(imports)){if(typeof original==\"function\"){let isAsyncifyImport=original.isAsync||importPattern.test(x)}}},instrumentFunction(original){var wrapper=(...args)=>{Asyncify.exportCallStack.push(original);try{return original(...args)}finally{if(!ABORT){var top=Asyncify.exportCallStack.pop();Asyncify.maybeStopUnwind()}}};Asyncify.funcWrappers.set(original,wrapper);return wrapper},instrumentWasmExports(exports){var ret={};for(let[x,original]of Object.entries(exports)){if(typeof original==\"function\"){var wrapper=Asyncify.instrumentFunction(original);ret[x]=wrapper}else{ret[x]=original}}return ret},State:{Normal:0,Unwinding:1,Rewinding:2,Disabled:3},state:0,StackSize:4096,currData:null,handleSleepReturnValue:0,exportCallStack:[],callstackFuncToId:new Map,callStackIdToFunc:new Map,funcWrappers:new Map,callStackId:0,asyncPromiseHandlers:null,sleepCallbacks:[],getCallStackId(func){if(!Asyncify.callstackFuncToId.has(func)){var id=Asyncify.callStackId++;Asyncify.callstackFuncToId.set(func,id);Asyncify.callStackIdToFunc.set(id,func)}return Asyncify.callstackFuncToId.get(func)},maybeStopUnwind(){if(Asyncify.currData&&Asyncify.state===Asyncify.State.Unwinding&&Asyncify.exportCallStack.length===0){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(_asyncify_stop_unwind);if(typeof Fibers!=\"undefined\"){Fibers.trampoline()}}},whenDone(){return new Promise((resolve,reject)=>{Asyncify.asyncPromiseHandlers={resolve,reject}})},allocateData(){var ptr=_malloc(12+Asyncify.StackSize);Asyncify.setDataHeader(ptr,ptr+12,Asyncify.StackSize);Asyncify.setDataRewindFunc(ptr);return ptr},setDataHeader(ptr,stack,stackSize){HEAPU32[ptr>>2]=stack;HEAPU32[ptr+4>>2]=stack+stackSize},setDataRewindFunc(ptr){var bottomOfCallStack=Asyncify.exportCallStack[0];var rewindId=Asyncify.getCallStackId(bottomOfCallStack);HEAP32[ptr+8>>2]=rewindId},getDataRewindFunc(ptr){var id=HEAP32[ptr+8>>2];var func=Asyncify.callStackIdToFunc.get(id);return func},doRewind(ptr){var original=Asyncify.getDataRewindFunc(ptr);var func=Asyncify.funcWrappers.get(original);return func()},handleSleep(startAsync){if(ABORT)return;if(Asyncify.state===Asyncify.State.Normal){var reachedCallback=false;var reachedAfterCallback=false;startAsync((handleSleepReturnValue=0)=>{if(ABORT)return;Asyncify.handleSleepReturnValue=handleSleepReturnValue;reachedCallback=true;if(!reachedAfterCallback){return}Asyncify.state=Asyncify.State.Rewinding;runAndAbortIfError(()=>_asyncify_start_rewind(Asyncify.currData));if(typeof MainLoop!=\"undefined\"&&MainLoop.func){MainLoop.resume()}var asyncWasmReturnValue,isError=false;try{asyncWasmReturnValue=Asyncify.doRewind(Asyncify.currData)}catch(err){asyncWasmReturnValue=err;isError=true}var handled=false;if(!Asyncify.currData){var asyncPromiseHandlers=Asyncify.asyncPromiseHandlers;if(asyncPromiseHandlers){Asyncify.asyncPromiseHandlers=null;(isError?asyncPromiseHandlers.reject:asyncPromiseHandlers.resolve)(asyncWasmReturnValue);handled=true}}if(isError&&!handled){throw asyncWasmReturnValue}});reachedAfterCallback=true;if(!reachedCallback){Asyncify.state=Asyncify.State.Unwinding;Asyncify.currData=Asyncify.allocateData();if(typeof MainLoop!=\"undefined\"&&MainLoop.func){MainLoop.pause()}runAndAbortIfError(()=>_asyncify_start_unwind(Asyncify.currData))}}else if(Asyncify.state===Asyncify.State.Rewinding){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(_asyncify_stop_rewind);_free(Asyncify.currData);Asyncify.currData=null;Asyncify.sleepCallbacks.forEach(callUserCallback)}else{abort(`invalid state: ${Asyncify.state}`)}return Asyncify.handleSleepReturnValue},handleAsync:startAsync=>Asyncify.handleSleep(wakeUp=>{startAsync().then(wakeUp)})};function craftInvokerFunction(humanName,argTypes,classType,cppInvokerFunc,cppTargetFunc,isAsync){var argCount=argTypes.length;if(argCount<2){throwBindingError(\"argTypes array size mismatch! Must at least get return value and 'this' types!\")}var isClassMethodFunc=argTypes[1]!==null&&classType!==null;var needsDestructorStack=usesDestructorStack(argTypes);var returns=!argTypes[0].isVoid;var retType=argTypes[0];var instType=argTypes[1];var closureArgs=[humanName,throwBindingError,cppInvokerFunc,cppTargetFunc,runDestructors,retType.fromWireType.bind(retType),instType?.toWireType.bind(instType)];for(var i=2;i<argCount;++i){var argType=argTypes[i];closureArgs.push(argType.toWireType.bind(argType))}closureArgs.push(Asyncify);if(!needsDestructorStack){for(var i=isClassMethodFunc?1:2;i<argTypes.length;++i){if(argTypes[i].destructorFunction!==null){closureArgs.push(argTypes[i].destructorFunction)}}}let invokerFactory=createJsInvoker(argTypes,isClassMethodFunc,returns,isAsync);var invokerFn=invokerFactory(...closureArgs);return createNamedFunction(humanName,invokerFn)}var ensureOverloadTable=(proto,methodName,humanName)=>{if(undefined===proto[methodName].overloadTable){var prevFunc=proto[methodName];proto[methodName]=function(...args){if(!proto[methodName].overloadTable.hasOwnProperty(args.length)){throwBindingError(`Function '${humanName}' called with an invalid number of arguments (${args.length}) - expects one of (${proto[methodName].overloadTable})!`)}return proto[methodName].overloadTable[args.length].apply(this,args)};proto[methodName].overloadTable=[];proto[methodName].overloadTable[prevFunc.argCount]=prevFunc}};var exposePublicSymbol=(name,value,numArguments)=>{if(Module.hasOwnProperty(name)){if(undefined===numArguments||undefined!==Module[name].overloadTable&&undefined!==Module[name].overloadTable[numArguments]){throwBindingError(`Cannot register public name '${name}' twice`)}ensureOverloadTable(Module,name,name);if(Module[name].overloadTable.hasOwnProperty(numArguments)){throwBindingError(`Cannot register multiple overloads of a function with the same number of arguments (${numArguments})!`)}Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}};var heap32VectorToArray=(count,firstElement)=>{var array=[];for(var i=0;i<count;i++){array.push(HEAPU32[firstElement+i*4>>2])}return array};var replacePublicSymbol=(name,value,numArguments)=>{if(!Module.hasOwnProperty(name)){throwInternalError(\"Replacing nonexistent public symbol\")}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}};var getDynCaller=(sig,ptr,promising=false)=>(...args)=>dynCall(sig,ptr,args,promising);var embind__requireFunction=(signature,rawFunction,isAsync=false)=>{signature=AsciiToString(signature);function makeDynCaller(){return getDynCaller(signature,rawFunction)}var fp=makeDynCaller();if(typeof fp!=\"function\"){throwBindingError(`unknown function pointer with signature ${signature}: ${rawFunction}`)}return fp};class UnboundTypeError extends Error{}var getTypeName=type=>{var ptr=___getTypeName(type);var rv=AsciiToString(ptr);_free(ptr);return rv};var throwUnboundTypeError=(message,types)=>{var unboundTypes=[];var seen={};function visit(type){if(seen[type]){return}if(registeredTypes[type]){return}if(typeDependencies[type]){typeDependencies[type].forEach(visit);return}unboundTypes.push(type);seen[type]=true}types.forEach(visit);throw new UnboundTypeError(`${message}: `+unboundTypes.map(getTypeName).join([\", \"]))};var getFunctionName=signature=>{signature=signature.trim();const argsIndex=signature.indexOf(\"(\");if(argsIndex===-1)return signature;return signature.slice(0,argsIndex)};var __embind_register_function=(name,argCount,rawArgTypesAddr,signature,rawInvoker,fn,isAsync,isNonnullReturn)=>{var argTypes=heap32VectorToArray(argCount,rawArgTypesAddr);name=AsciiToString(name);name=getFunctionName(name);rawInvoker=embind__requireFunction(signature,rawInvoker,isAsync);exposePublicSymbol(name,function(){throwUnboundTypeError(`Cannot call ${name} due to unbound types`,argTypes)},argCount-1);whenDependentTypesAreResolved([],argTypes,argTypes=>{var invokerArgsArray=[argTypes[0],null].concat(argTypes.slice(1));replacePublicSymbol(name,craftInvokerFunction(name,invokerArgsArray,null,rawInvoker,fn,isAsync),argCount-1);return[]})};var __embind_register_integer=(primitiveType,name,size,minRange,maxRange)=>{name=AsciiToString(name);const isUnsignedType=minRange===0;let fromWireType=value=>value;if(isUnsignedType){var bitshift=32-8*size;fromWireType=value=>value<<bitshift>>>bitshift;maxRange=fromWireType(maxRange)}registerType(primitiveType,{name,fromWireType,toWireType:(destructors,value)=>value,readValueFromPointer:integerReadValueFromPointer(name,size,minRange!==0),destructorFunction:null})};var __embind_register_memory_view=(rawType,dataTypeIndex,name)=>{var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){var size=HEAPU32[handle>>2];var data=HEAPU32[handle+4>>2];return new TA(HEAP8.buffer,data,size)}name=AsciiToString(name);registerType(rawType,{name,fromWireType:decodeMemoryView,readValueFromPointer:decodeMemoryView},{ignoreDuplicateRegistrations:true})};var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite);var __embind_register_std_string=(rawType,name)=>{name=AsciiToString(name);var stdStringIsUTF8=true;registerType(rawType,{name,fromWireType(value){var length=HEAPU32[value>>2];var payload=value+4;var str;if(stdStringIsUTF8){str=UTF8ToString(payload,length,true)}else{str=\"\";for(var i=0;i<length;++i){str+=String.fromCharCode(HEAPU8[payload+i])}}_free(value);return str},toWireType(destructors,value){if(value instanceof ArrayBuffer){value=new Uint8Array(value)}var length;var valueIsOfTypeString=typeof value==\"string\";if(!(valueIsOfTypeString||ArrayBuffer.isView(value)&&value.BYTES_PER_ELEMENT==1)){throwBindingError(\"Cannot pass non-string to std::string\")}if(stdStringIsUTF8&&valueIsOfTypeString){length=lengthBytesUTF8(value)}else{length=value.length}var base=_malloc(4+length+1);var ptr=base+4;HEAPU32[base>>2]=length;if(valueIsOfTypeString){if(stdStringIsUTF8){stringToUTF8(value,ptr,length+1)}else{for(var i=0;i<length;++i){var charCode=value.charCodeAt(i);if(charCode>255){_free(base);throwBindingError(\"String has UTF-16 code units that do not fit in 8 bits\")}HEAPU8[ptr+i]=charCode}}}else{HEAPU8.set(value,ptr)}if(destructors!==null){destructors.push(_free,base)}return base},readValueFromPointer:readPointer,destructorFunction(ptr){_free(ptr)}})};var UTF16Decoder=typeof TextDecoder!=\"undefined\"?new TextDecoder(\"utf-16le\"):undefined;var UTF16ToString=(ptr,maxBytesToRead,ignoreNul)=>{var idx=ptr>>1;var endIdx=findStringEnd(HEAPU16,idx,maxBytesToRead/2,ignoreNul);if(endIdx-idx>16&&UTF16Decoder)return UTF16Decoder.decode(HEAPU16.subarray(idx,endIdx));var str=\"\";for(var i=idx;i<endIdx;++i){var codeUnit=HEAPU16[i];str+=String.fromCharCode(codeUnit)}return str};var stringToUTF16=(str,outPtr,maxBytesToWrite)=>{maxBytesToWrite??=2147483647;if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite<str.length*2?maxBytesToWrite/2:str.length;for(var i=0;i<numCharsToWrite;++i){var codeUnit=str.charCodeAt(i);HEAP16[outPtr>>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr};var lengthBytesUTF16=str=>str.length*2;var UTF32ToString=(ptr,maxBytesToRead,ignoreNul)=>{var str=\"\";var startIdx=ptr>>2;for(var i=0;!(i>=maxBytesToRead/4);i++){var utf32=HEAPU32[startIdx+i];if(!utf32&&!ignoreNul)break;str+=String.fromCodePoint(utf32)}return str};var stringToUTF32=(str,outPtr,maxBytesToWrite)=>{maxBytesToWrite??=2147483647;if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i<str.length;++i){var codePoint=str.codePointAt(i);if(codePoint>65535){i++}HEAP32[outPtr>>2]=codePoint;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr};var lengthBytesUTF32=str=>{var len=0;for(var i=0;i<str.length;++i){var codePoint=str.codePointAt(i);if(codePoint>65535){i++}len+=4}return len};var __embind_register_std_wstring=(rawType,charSize,name)=>{name=AsciiToString(name);var decodeString,encodeString,lengthBytesUTF;if(charSize===2){decodeString=UTF16ToString;encodeString=stringToUTF16;lengthBytesUTF=lengthBytesUTF16}else{decodeString=UTF32ToString;encodeString=stringToUTF32;lengthBytesUTF=lengthBytesUTF32}registerType(rawType,{name,fromWireType:value=>{var length=HEAPU32[value>>2];var str=decodeString(value+4,length*charSize,true);_free(value);return str},toWireType:(destructors,value)=>{if(!(typeof value==\"string\")){throwBindingError(`Cannot pass non-string to C++ string type ${name}`)}var length=lengthBytesUTF(value);var ptr=_malloc(4+length+charSize);HEAPU32[ptr>>2]=length/charSize;encodeString(value,ptr+4,length+charSize);if(destructors!==null){destructors.push(_free,ptr)}return ptr},readValueFromPointer:readPointer,destructorFunction(ptr){_free(ptr)}})};var __embind_register_value_object=(rawType,name,constructorSignature,rawConstructor,destructorSignature,rawDestructor)=>{structRegistrations[rawType]={name:AsciiToString(name),rawConstructor:embind__requireFunction(constructorSignature,rawConstructor),rawDestructor:embind__requireFunction(destructorSignature,rawDestructor),fields:[]}};var __embind_register_value_object_field=(structType,fieldName,getterReturnType,getterSignature,getter,getterContext,setterArgumentType,setterSignature,setter,setterContext)=>{structRegistrations[structType].fields.push({fieldName:AsciiToString(fieldName),getterReturnType,getter:embind__requireFunction(getterSignature,getter),getterContext,setterArgumentType,setter:embind__requireFunction(setterSignature,setter),setterContext})};var __embind_register_void=(rawType,name)=>{name=AsciiToString(name);registerType(rawType,{isVoid:true,name,fromWireType:()=>undefined,toWireType:(destructors,o)=>undefined})};var emval_methodCallers=[];var emval_addMethodCaller=caller=>{var id=emval_methodCallers.length;emval_methodCallers.push(caller);return id};var requireRegisteredType=(rawType,humanName)=>{var impl=registeredTypes[rawType];if(undefined===impl){throwBindingError(`${humanName} has unknown type ${getTypeName(rawType)}`)}return impl};var emval_lookupTypes=(argCount,argTypes)=>{var a=new Array(argCount);for(var i=0;i<argCount;++i){a[i]=requireRegisteredType(HEAPU32[argTypes+i*4>>2],`parameter ${i}`)}return a};var emval_returnValue=(toReturnWire,destructorsRef,handle)=>{var destructors=[];var result=toReturnWire(destructors,handle);if(destructors.length){HEAPU32[destructorsRef>>2]=Emval.toHandle(destructors)}return result};var emval_symbols={};var getStringOrSymbol=address=>{var symbol=emval_symbols[address];if(symbol===undefined){return AsciiToString(address)}return symbol};var __emval_create_invoker=(argCount,argTypesPtr,kind)=>{var GenericWireTypeSize=8;var[retType,...argTypes]=emval_lookupTypes(argCount,argTypesPtr);var toReturnWire=retType.toWireType.bind(retType);var argFromPtr=argTypes.map(type=>type.readValueFromPointer.bind(type));argCount--;var captures={toValue:Emval.toValue};var args=argFromPtr.map((argFromPtr,i)=>{var captureName=`argFromPtr${i}`;captures[captureName]=argFromPtr;return`${captureName}(args${i?\"+\"+i*GenericWireTypeSize:\"\"})`});var functionBody;switch(kind){case 0:functionBody=\"toValue(handle)\";break;case 2:functionBody=\"new (toValue(handle))\";break;case 3:functionBody=\"\";break;case 1:captures[\"getStringOrSymbol\"]=getStringOrSymbol;functionBody=\"toValue(handle)[getStringOrSymbol(methodName)]\";break}functionBody+=`(${args})`;if(!retType.isVoid){captures[\"toReturnWire\"]=toReturnWire;captures[\"emval_returnValue\"]=emval_returnValue;functionBody=`return emval_returnValue(toReturnWire, destructorsRef, ${functionBody})`}functionBody=`return function (handle, methodName, destructorsRef, args) {\\n  ${functionBody}\\n  }`;var invokerFunction=new Function(Object.keys(captures),functionBody)(...Object.values(captures));var functionName=`methodCaller<(${argTypes.map(t=>t.name)}) => ${retType.name}>`;return emval_addMethodCaller(createNamedFunction(functionName,invokerFunction))};var emval_get_global=()=>globalThis;var __emval_get_global=name=>{if(name===0){return Emval.toHandle(emval_get_global())}else{name=getStringOrSymbol(name);return Emval.toHandle(emval_get_global()[name])}};var __emval_incref=handle=>{if(handle>9){emval_handles[handle+1]+=1}};var __emval_invoke=(caller,handle,methodName,destructorsRef,args)=>emval_methodCallers[caller](handle,methodName,destructorsRef,args);var __emval_is_string=handle=>{handle=Emval.toValue(handle);return typeof handle==\"string\"};var __emval_run_destructors=handle=>{var destructors=Emval.toValue(handle);runDestructors(destructors);__emval_decref(handle)};var INT53_MAX=9007199254740992;var INT53_MIN=-9007199254740992;var bigintToI53Checked=num=>num<INT53_MIN||num>INT53_MAX?NaN:Number(num);function __gmtime_js(time,tmPtr){time=bigintToI53Checked(time);var date=new Date(time*1e3);HEAP32[tmPtr>>2]=date.getUTCSeconds();HEAP32[tmPtr+4>>2]=date.getUTCMinutes();HEAP32[tmPtr+8>>2]=date.getUTCHours();HEAP32[tmPtr+12>>2]=date.getUTCDate();HEAP32[tmPtr+16>>2]=date.getUTCMonth();HEAP32[tmPtr+20>>2]=date.getUTCFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getUTCDay();var start=Date.UTC(date.getUTCFullYear(),0,1,0,0,0,0);var yday=(date.getTime()-start)/(1e3*60*60*24)|0;HEAP32[tmPtr+28>>2]=yday}var isLeapYear=year=>year%4===0&&(year%100!==0||year%400===0);var MONTH_DAYS_LEAP_CUMULATIVE=[0,31,60,91,121,152,182,213,244,274,305,335];var MONTH_DAYS_REGULAR_CUMULATIVE=[0,31,59,90,120,151,181,212,243,273,304,334];var ydayFromDate=date=>{var leap=isLeapYear(date.getFullYear());var monthDaysCumulative=leap?MONTH_DAYS_LEAP_CUMULATIVE:MONTH_DAYS_REGULAR_CUMULATIVE;var yday=monthDaysCumulative[date.getMonth()]+date.getDate()-1;return yday};function __localtime_js(time,tmPtr){time=bigintToI53Checked(time);var date=new Date(time*1e3);HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();HEAP32[tmPtr+20>>2]=date.getFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getDay();var yday=ydayFromDate(date)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr+36>>2]=-(date.getTimezoneOffset()*60);var start=new Date(date.getFullYear(),0,1);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;HEAP32[tmPtr+32>>2]=dst}var __mktime_js=function(tmPtr){var ret=(()=>{var date=new Date(HEAP32[tmPtr+20>>2]+1900,HEAP32[tmPtr+16>>2],HEAP32[tmPtr+12>>2],HEAP32[tmPtr+8>>2],HEAP32[tmPtr+4>>2],HEAP32[tmPtr>>2],0);var dst=HEAP32[tmPtr+32>>2];var guessedOffset=date.getTimezoneOffset();var start=new Date(date.getFullYear(),0,1);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dstOffset=Math.min(winterOffset,summerOffset);if(dst<0){HEAP32[tmPtr+32>>2]=Number(summerOffset!=winterOffset&&dstOffset==guessedOffset)}else if(dst>0!=(dstOffset==guessedOffset)){var nonDstOffset=Math.max(winterOffset,summerOffset);var trueOffset=dst>0?dstOffset:nonDstOffset;date.setTime(date.getTime()+(trueOffset-guessedOffset)*6e4)}HEAP32[tmPtr+24>>2]=date.getDay();var yday=ydayFromDate(date)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();HEAP32[tmPtr+20>>2]=date.getYear();var timeMs=date.getTime();if(isNaN(timeMs)){return-1}return timeMs/1e3})();return BigInt(ret)};var __tzset_js=(timezone,daylight,std_name,dst_name)=>{var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);HEAPU32[timezone>>2]=stdTimezoneOffset*60;HEAP32[daylight>>2]=Number(winterOffset!=summerOffset);var extractZone=timezoneOffset=>{var sign=timezoneOffset>=0?\"-\":\"+\";var absOffset=Math.abs(timezoneOffset);var hours=String(Math.floor(absOffset/60)).padStart(2,\"0\");var minutes=String(absOffset%60).padStart(2,\"0\");return`UTC${sign}${hours}${minutes}`};var winterName=extractZone(winterOffset);var summerName=extractZone(summerOffset);if(summerOffset<winterOffset){stringToUTF8(winterName,std_name,17);stringToUTF8(summerName,dst_name,17)}else{stringToUTF8(winterName,dst_name,17);stringToUTF8(summerName,std_name,17)}};var _emscripten_get_now=()=>performance.now();var _emscripten_date_now=()=>Date.now();var nowIsMonotonic=1;var checkWasiClock=clock_id=>clock_id>=0&&clock_id<=3;function _clock_time_get(clk_id,ignored_precision,ptime){ignored_precision=bigintToI53Checked(ignored_precision);if(!checkWasiClock(clk_id)){return 28}var now;if(clk_id===0){now=_emscripten_date_now()}else if(nowIsMonotonic){now=_emscripten_get_now()}else{return 52}var nsec=Math.round(now*1e3*1e3);HEAP64[ptime>>3]=BigInt(nsec);return 0}var readEmAsmArgsArray=[];var readEmAsmArgs=(sigPtr,buf)=>{readEmAsmArgsArray.length=0;var ch;while(ch=HEAPU8[sigPtr++]){var wide=ch!=105;wide&=ch!=112;buf+=wide&&buf%8?4:0;readEmAsmArgsArray.push(ch==112?HEAPU32[buf>>2]:ch==106?HEAP64[buf>>3]:ch==105?HEAP32[buf>>2]:HEAPF64[buf>>3]);buf+=wide?8:4}return readEmAsmArgsArray};var runEmAsmFunction=(code,sigPtr,argbuf)=>{var args=readEmAsmArgs(sigPtr,argbuf);return ASM_CONSTS[code](...args)};var _emscripten_asm_const_int=(code,sigPtr,argbuf)=>runEmAsmFunction(code,sigPtr,argbuf);var getHeapMax=()=>2147483648;var alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;var growMemory=size=>{var oldHeapSize=wasmMemory.buffer.byteLength;var pages=(size-oldHeapSize+65535)/65536|0;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};var _emscripten_resize_heap=requestedSize=>{var oldSize=HEAPU8.length;requestedSize>>>=0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignMemory(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}return false};var safeSetTimeout=(func,timeout)=>setTimeout(()=>{callUserCallback(func)},timeout);var _emscripten_sleep=ms=>Asyncify.handleSleep(wakeUp=>safeSetTimeout(wakeUp,ms));_emscripten_sleep.isAsync=true;var ENV={};var getExecutableName=()=>thisProgram||\"./this.program\";var getEnvStrings=()=>{if(!getEnvStrings.strings){var lang=(typeof navigator==\"object\"&&navigator.language||\"C\").replace(\"-\",\"_\")+\".UTF-8\";var env={USER:\"web_user\",LOGNAME:\"web_user\",PATH:\"/\",PWD:\"/\",HOME:\"/home/web_user\",LANG:lang,_:getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(`${x}=${env[x]}`)}getEnvStrings.strings=strings}return getEnvStrings.strings};var _environ_get=(__environ,environ_buf)=>{var bufSize=0;var envp=0;for(var string of getEnvStrings()){var ptr=environ_buf+bufSize;HEAPU32[__environ+envp>>2]=ptr;bufSize+=stringToUTF8(string,ptr,Infinity)+1;envp+=4}return 0};var _environ_sizes_get=(penviron_count,penviron_buf_size)=>{var strings=getEnvStrings();HEAPU32[penviron_count>>2]=strings.length;var bufSize=0;for(var string of strings){bufSize+=lengthBytesUTF8(string)+1}HEAPU32[penviron_buf_size>>2]=bufSize;return 0};function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return e.errno}}function _fd_fdstat_get(fd,pbuf){try{var rightsBase=0;var rightsInheriting=0;var flags=0;{var stream=SYSCALLS.getStreamFromFD(fd);var type=stream.tty?2:FS.isDir(stream.mode)?3:FS.isLink(stream.mode)?7:4}HEAP8[pbuf]=type;HEAP16[pbuf+2>>1]=flags;HEAP64[pbuf+8>>3]=BigInt(rightsBase);HEAP64[pbuf+16>>3]=BigInt(rightsInheriting);return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return e.errno}}var doReadv=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAPU32[iov>>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr<len)break;if(typeof offset!=\"undefined\"){offset+=curr}}return ret};function _fd_read(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doReadv(stream,iov,iovcnt);HEAPU32[pnum>>2]=num;return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return e.errno}}function _fd_seek(fd,offset,whence,newOffset){offset=bigintToI53Checked(offset);try{if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);FS.llseek(stream,offset,whence);HEAP64[newOffset>>3]=BigInt(stream.position);if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return e.errno}}var doWritev=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAPU32[iov>>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr<len){break}if(typeof offset!=\"undefined\"){offset+=curr}}return ret};function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doWritev(stream,iov,iovcnt);HEAPU32[pnum>>2]=num;return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return e.errno}}var stackAlloc=sz=>__emscripten_stack_alloc(sz);var stringToUTF8OnStack=str=>{var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8(str,ret,size);return ret};FS.createPreloadedFile=FS_createPreloadedFile;FS.preloadFile=FS_preloadFile;FS.staticInit();{if(Module[\"noExitRuntime\"])noExitRuntime=Module[\"noExitRuntime\"];if(Module[\"preloadPlugins\"])preloadPlugins=Module[\"preloadPlugins\"];if(Module[\"print\"])out=Module[\"print\"];if(Module[\"printErr\"])err=Module[\"printErr\"];if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].shift()()}}}var ASM_CONSTS={1486072:()=>{console.error(\"progress callback is not set.\")}};var ___getTypeName,_malloc,_free,_main,__emscripten_stack_alloc,dynCall_vi,dynCall_ii,dynCall_iii,dynCall_viii,dynCall_iiiii,dynCall_iiii,dynCall_ddd,dynCall_vii,dynCall_v,dynCall_viiii,dynCall_iiiiii,dynCall_iijii,dynCall_viif,dynCall_i,dynCall_fii,dynCall_idd,dynCall_jiji,dynCall_iidiiii,dynCall_viijii,dynCall_iiiiiiiii,dynCall_iiiiiii,dynCall_iiiiij,dynCall_iiiiid,dynCall_iiiiijj,dynCall_iiiiiiii,dynCall_iiiiiijj,dynCall_viiiiii,dynCall_viiiii,_asyncify_start_unwind,_asyncify_stop_unwind,_asyncify_start_rewind,_asyncify_stop_rewind;function assignWasmExports(wasmExports){___getTypeName=wasmExports[\"V\"];_malloc=wasmExports[\"W\"];_free=wasmExports[\"X\"];Module[\"_main\"]=_main=wasmExports[\"Y\"];__emscripten_stack_alloc=wasmExports[\"Z\"];dynCalls[\"vi\"]=dynCall_vi=wasmExports[\"_\"];dynCalls[\"ii\"]=dynCall_ii=wasmExports[\"$\"];dynCalls[\"iii\"]=dynCall_iii=wasmExports[\"aa\"];dynCalls[\"viii\"]=dynCall_viii=wasmExports[\"ba\"];dynCalls[\"iiiii\"]=dynCall_iiiii=wasmExports[\"ca\"];dynCalls[\"iiii\"]=dynCall_iiii=wasmExports[\"da\"];dynCalls[\"ddd\"]=dynCall_ddd=wasmExports[\"ea\"];dynCalls[\"vii\"]=dynCall_vii=wasmExports[\"fa\"];dynCalls[\"v\"]=dynCall_v=wasmExports[\"ga\"];dynCalls[\"viiii\"]=dynCall_viiii=wasmExports[\"ha\"];dynCalls[\"iiiiii\"]=dynCall_iiiiii=wasmExports[\"ia\"];dynCalls[\"iijii\"]=dynCall_iijii=wasmExports[\"ja\"];dynCalls[\"viif\"]=dynCall_viif=wasmExports[\"ka\"];dynCalls[\"i\"]=dynCall_i=wasmExports[\"la\"];dynCalls[\"fii\"]=dynCall_fii=wasmExports[\"ma\"];dynCalls[\"idd\"]=dynCall_idd=wasmExports[\"na\"];dynCalls[\"jiji\"]=dynCall_jiji=wasmExports[\"oa\"];dynCalls[\"iidiiii\"]=dynCall_iidiiii=wasmExports[\"pa\"];dynCalls[\"viijii\"]=dynCall_viijii=wasmExports[\"qa\"];dynCalls[\"iiiiiiiii\"]=dynCall_iiiiiiiii=wasmExports[\"ra\"];dynCalls[\"iiiiiii\"]=dynCall_iiiiiii=wasmExports[\"sa\"];dynCalls[\"iiiiij\"]=dynCall_iiiiij=wasmExports[\"ta\"];dynCalls[\"iiiiid\"]=dynCall_iiiiid=wasmExports[\"ua\"];dynCalls[\"iiiiijj\"]=dynCall_iiiiijj=wasmExports[\"va\"];dynCalls[\"iiiiiiii\"]=dynCall_iiiiiiii=wasmExports[\"wa\"];dynCalls[\"iiiiiijj\"]=dynCall_iiiiiijj=wasmExports[\"xa\"];dynCalls[\"viiiiii\"]=dynCall_viiiiii=wasmExports[\"ya\"];dynCalls[\"viiiii\"]=dynCall_viiiii=wasmExports[\"za\"];_asyncify_start_unwind=wasmExports[\"Aa\"];_asyncify_stop_unwind=wasmExports[\"Ba\"];_asyncify_start_rewind=wasmExports[\"Ca\"];_asyncify_stop_rewind=wasmExports[\"Da\"]}var wasmImports={a:___cxa_throw,k:___syscall_fcntl64,H:___syscall_ioctl,I:___syscall_openat,r:___syscall_renameat,s:___syscall_rmdir,w:___syscall_stat64,t:___syscall_unlinkat,u:__abort_js,N:__embind_finalize_value_object,n:__embind_register_bigint,o:__embind_register_bool,Q:__embind_register_emval,m:__embind_register_float,f:__embind_register_function,c:__embind_register_integer,b:__embind_register_memory_view,R:__embind_register_std_string,g:__embind_register_std_wstring,P:__embind_register_value_object,O:__embind_register_value_object_field,p:__embind_register_void,e:__emval_create_invoker,F:__emval_decref,M:__emval_get_global,h:__emval_incref,d:__emval_invoke,S:__emval_is_string,q:__emval_run_destructors,x:__gmtime_js,y:__localtime_js,z:__mktime_js,A:__tzset_js,K:_clock_time_get,L:_emscripten_asm_const_int,J:_emscripten_date_now,v:_emscripten_resize_heap,l:_emscripten_sleep,D:_environ_get,E:_environ_sizes_get,i:_fd_close,C:_fd_fdstat_get,G:_fd_read,B:_fd_seek,j:_fd_write};function callMain(args=[]){var entryFunction=_main;args.unshift(thisProgram);var argc=args.length;var argv=stackAlloc((argc+1)*4);var argv_ptr=argv;args.forEach(arg=>{HEAPU32[argv_ptr>>2]=stringToUTF8OnStack(arg);argv_ptr+=4});HEAPU32[argv_ptr>>2]=0;try{var ret=entryFunction(argc,argv);exitJS(ret,true);return ret}catch(e){return handleException(e)}}function run(args=arguments_){if(runDependencies>0){dependenciesFulfilled=run;return}preRun();if(runDependencies>0){dependenciesFulfilled=run;return}function doRun(){Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();readyPromiseResolve?.(Module);Module[\"onRuntimeInitialized\"]?.();var noInitialRun=Module[\"noInitialRun\"]||true;if(!noInitialRun)callMain(args);postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(()=>{setTimeout(()=>Module[\"setStatus\"](\"\"),1);doRun()},1)}else{doRun()}}var wasmExports;wasmExports=await (createWasm());run();if(runtimeInitialized){moduleRtn=Module}else{moduleRtn=new Promise((resolve,reject)=>{readyPromiseResolve=resolve;readyPromiseReject=reject})}\n;return moduleRtn}export default IfcDbWasm;\n","//import package json\nimport packageJSON from \"./../package.json\";\nconst cdnUrl = `https://cdn.jsdelivr.net/npm/@creooxag/cxconverter@${packageJSON.version}/dist/`;\n\nimport IfcDbWasmLocal from \"./cpp/ifcdb.js\";\n\nconst defaultUrlPrefix = \"./\";\n\nexport class IfcWasmConverterLoader {\n  static instance: IfcWasmConverterLoader;\n  private module: any;\n  private constructor() { }\n\n  static async getInstance(userUrlPrefix: string = 'remote'): Promise<IfcWasmConverterLoader> {\n    let urlPrefix = defaultUrlPrefix;\n    if (userUrlPrefix) {\n      urlPrefix = userUrlPrefix == 'remote' ? cdnUrl : userUrlPrefix;\n    }\n\n    if (!IfcWasmConverterLoader.instance) {\n      IfcWasmConverterLoader.instance = new IfcWasmConverterLoader();\n      const Module = {\n        locateFile: function (path: string) {\n          const fullPath = urlPrefix + path;\n          if (path.endsWith(\".wasm\")) {\n            console.log(`Loading wasm file from ${fullPath}`);\n            return fullPath;\n          }\n          return path;\n        }\n      };\n      try {\n        IfcWasmConverterLoader.instance.module = await IfcDbWasmLocal(Module);\n\n      } catch (error) {\n        console.error('Error on wasm import:', error);\n      }\n    }\n\n    return IfcWasmConverterLoader.instance;\n  }\n  static async getModule(userUrlPrefix?: string) {\n    return (await IfcWasmConverterLoader.getInstance(userUrlPrefix)).module;\n  }\n}\n","import { IfcWasmConverterLoader } from \"./ifcWasmConverterLoader\";\nimport { WasmModule } from \"./wasmModuleInterface\";\n\nexport class IfcConverter {\n    private module?: WasmModule;\n    private metaDataGlobal?: { [key: string]: any };\n    private handleGLTFclb?: (glbContent: string) => Promise<void>;\n    private handleMetaDataClb?: (metaData: { [key: string]: any }) => Promise<void>;\n    private GLTFs: string[] = [];\n\n    private constructor() { }\n\n    private async init(inputOptions: string = IfcConverter.getDefaultInputOptions()) {\n        //TODO should expose url to set it from outside\n        this.module = await IfcWasmConverterLoader.getModule('remote');\n        this.module!.setInputOptions(inputOptions);\n        this.module!.setGltfChunkDoneCallback(this.gltfChunkDoneCallback.bind(this));\n        this.module!.setMetaDataCompleteCallback(this.metaDataCompleteCallback.bind(this));\n    }\n    static async create(inputOptions: string = IfcConverter.getDefaultInputOptions()): Promise<IfcConverter> {\n        let ifcConverter = new IfcConverter()\n        await ifcConverter.init(inputOptions);\n        return ifcConverter;\n    }\n\n    loadModel(data: string, loadOptions: any = IfcConverter.getDefaultLoadOptions()) {\n        this.module!.loadModel(data, loadOptions);\n    }\n    registerProgressCallback(progressCallback: (progress: number) => void) {\n        this.module!.setProgressCallback(progressCallback);\n    }\n    registerProgressTextCallback(progressTextCallback: (progressText: string) => void) {\n        this.module!.setProgressTextCallback(progressTextCallback);\n    }\n    registerGltfChunkDoneCallback(handleGLTFclb: (gltf: string) => Promise<void>) {\n        this.handleGLTFclb = handleGLTFclb;\n    }\n    registerMetaDataCompleteCallback(handleMetaDataClb: (metaData: { [key: string]: any }) => Promise<void>) {\n        this.handleMetaDataClb = handleMetaDataClb;\n    }\n    registerGltfCompleteCallback(gltfCompleteCallback: () => void) {\n        this.module!.setGltfCompleteCallback(gltfCompleteCallback);\n    }\n\n    static getDefaultInputOptions() {\n        const inputOptions = {\n            \"inputParameters\": {\n                \"exportPropertySets\": \"yes\",\n                \"exportIfcPropertyTypes\": \"yes\",\n                \"exportIfcValueTypes\": \"yes\",\n                \"exportPolylines\": \"yes\",\n                \"excludeGeometryForIfcTypes\": [\"IfcOpeningElement\"],\n                \"exportGeometryOnlyForIfcTypes\": [\"\"],\n                \"excludeGUIDs\": [\"\"],\n                \"exportOnlyGUIDs\": [\"\"],\n                \"centerModelAtOrigin\": \"yes\",\n                \"ignoreProfileRadius\": \"yes\",\n                \"enableGltfCompression\": \"yes\",\n                \"enableGltfQuantization\": \"no\",\n                \"exportNormals\": \"no\",\n                \"numPointsPerCircle\": 18,\n                \"licenceKey\": \"\",\n                // JSON above is copied from default input config file. Changes applied here:\n                \"loadingPriorityTypes\": [\"IFCWALL\", \"IFCSLAB\", \"IFCWINDOW\", \"IFCROOF\", \"IFCFURNISHINGELEMENT\", \"IFCAIRTERMINAL\"]//[ \"IfcOpeningElement\" ],\n            }\n        };\n\n        const inputOptionsString = JSON.stringify(inputOptions);\n        return inputOptionsString;\n    }\n\n    static getDefaultLoadOptions() {\n        const loadOptions = {\n            \"maxFileSizeInMegaBytes\": 15\n        };\n        return loadOptions;\n    }\n\n    async metaDataCompleteCallback() {\n        console.log(\"metaDataCompleteCallback\");\n        try {\n            const uint8Array = await this.module!.getMetaData();\n\n            const decoder = new TextDecoder();\n            const metaStr = decoder.decode(uint8Array);\n            //console.log(metaStr);\n\n            this.metaDataGlobal = await JSON.parse(metaStr);\n            if (this.metaDataGlobal!.metaObjects != null) {\n                console.log(\"loading \" + this.metaDataGlobal!.metaObjects.length + \" meta objects\");\n            }\n        }\n        catch (e) {\n            console.log(\"getMetaData failed: \" + e)\n        }\n        if (this.handleMetaDataClb)\n            await this.handleMetaDataClb(this.metaDataGlobal!);\n    }\n\n    async gltfChunkDoneCallback() {\n        console.log(\"GltfChunkDoneCallback\");\n        try {\n            const glbContent = await this.module!.getGeometry();\n            await this.module!.clearFileContent();\n            this.GLTFs.push(glbContent);\n            if (glbContent.length > 0) {\n                if (this.handleGLTFclb)\n                    await this.handleGLTFclb(glbContent);\n            }\n        }\n        catch (e) {\n            console.log(\"getGeometry failed: \" + e)\n        }\n    }\n}\n","import { IfcWasmConverterLoader } from \"./ifcWasmConverterLoader\";\nimport { WasmModule } from \"./wasmModuleInterface\";\n\n\n\nexport async function ifc2gltf(\n    ifcData: string,\n    params: {\n        remote?: boolean,\n        urlPath?: string,\n        progressCallback?: ((progress: number) => void),\n        progressTextCallback?: ((progressText: string) => void),\n        inputOptions?: string\n    } = { remote: true })\n    : Promise<{ gltf: string, metaData: { [key: string]: any } }> {\n\n    if(params.remote == undefined)\n        params.remote = true;\n    const inputOptionsString = (params.inputOptions) ? params.inputOptions : JSON.stringify(inputOptionsDefault);\n    const loadOptions = {\n        \"maxFileSizeInMegaBytes\": 1000,\n    };\n\n    let resolveCallbackGltf: (() => void) | undefined = undefined;\n    let resolveCallbackMetadata: (() => void) | undefined = undefined;\n    const url = params.remote ? 'remote' : params.urlPath;\n    const module = await IfcWasmConverterLoader.getModule(url) as WasmModule;\n    if (params.progressCallback)\n        module.setProgressCallback(params.progressCallback);\n    else\n        module.setProgressCallback((progress: number) => { console.log(`Progress: ${progress}`); });\n    if (params.progressTextCallback)\n        module.setProgressTextCallback(params.progressTextCallback);\n    else\n        module.setProgressTextCallback((progressText: string) => { console.log(`Progress text: ${progressText}`); });\n    module.setInputOptions(inputOptionsString);\n\n    const promiseGltf = new Promise<void>((resolve) => {\n        resolveCallbackGltf = resolve;\n    });\n    const promiseMetadata = new Promise<void>((resolve) => {\n        resolveCallbackMetadata = resolve;\n    });\n    if (resolveCallbackGltf)\n        module.setGltfCompleteCallback(resolveCallbackGltf);\n    if (resolveCallbackMetadata)\n        module.setMetaDataCompleteCallback(resolveCallbackMetadata);\n    module.loadModel(ifcData, loadOptions);\n    await Promise.all([promiseGltf, promiseMetadata]);\n    const gltf = await module.getGeometry();\n    const uint8Array = await module.getMetaData();\n    const decoder = new TextDecoder();\n    const metaStr = decoder.decode(uint8Array);\n    const metaData = await JSON.parse(metaStr);\n    return { gltf: gltf, metaData: metaData };\n}\n\n\nconst inputOptionsDefault = {\n    \"inputParameters\": {\n        \"exportPropertySets\": \"yes\",\n        \"exportIfcPropertyTypes\": \"yes\",\n        \"exportIfcValueTypes\": \"yes\",\n        \"exportPolylines\": \"yes\",\n        \"excludeGeometryForIfcTypes\": [\"IfcOpeningElement\"],\n        \"excludeGUIDs\": [\"\"],\n        \"exportOnlyGUIDs\": [\"\"],\n        \"centerModelAtOrigin\": \"yes\",\n        \"ignoreProfileRadius\": \"yes\",\n        \"enableGltfCompression\": \"yes\",\n        \"enableGltfQuantization\": \"no\",\n        \"exportNormals\": \"no\",\n        \"numPointsPerCircle\": 18,\n        \"licenceKey\": \"\",\n        // JSON above is copied from default input config file. Changes applied here:\n        \"loadingPriorityTypes\": [\"IFCWALL\", \"IFCSLAB\", \"IFCWINDOW\", \"IFCROOF\", \"IFCFURNISHINGELEMENT\", \"IFCAIRTERMINAL\"]//[ \"IfcOpeningElement\" ],\n    }\n};\n"],"names":["result","__publicField","rtn","err","xhr","lazyArray","typeConverters","fieldTypes","argTypes","argFromPtr","wasmExports","IfcDbWasmLocal"],"mappings":"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"}