From c35cd06b1443f58dc657288952d987bd44bc3a86 Mon Sep 17 00:00:00 2001 From: msqr1 Date: Wed, 18 Sep 2024 18:04:44 -0700 Subject: [PATCH] Bump emscripten version to 3.1.67, remove lto from debug --- Examples/Vosklet.js | 2 +- Examples/Vosklet.wasm | Bin 2560327 -> 2559691 bytes Vosklet.js | 2 +- Vosklet.wasm | Bin 2560327 -> 2559691 bytes src/make | 8 ++++---- test | 4 ++-- 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Examples/Vosklet.js b/Examples/Vosklet.js index 1a7c98a..30897dd 100644 --- a/Examples/Vosklet.js +++ b/Examples/Vosklet.js @@ -6,7 +6,7 @@ var loadVosklet = (() => { function(moduleArg = {}) { var moduleRtn; -function GROWABLE_HEAP_I8(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAP8}function GROWABLE_HEAP_U8(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAPU8}function GROWABLE_HEAP_I16(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAP16}function GROWABLE_HEAP_U16(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAPU16}function GROWABLE_HEAP_I32(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAP32}function GROWABLE_HEAP_U32(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAPU32}function GROWABLE_HEAP_F32(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAPF32}function GROWABLE_HEAP_F64(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAPF64}var Module=moduleArg;var readyPromiseResolve,readyPromiseReject;var readyPromise=new Promise((resolve,reject)=>{readyPromiseResolve=resolve;readyPromiseReject=reject});var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof importScripts=="function";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";var ENVIRONMENT_IS_WASM_WORKER=Module["$ww"];let objs=[];let events=["status","partialResult","result"];let processorURL=URL.createObjectURL(new Blob(["(",(()=>{registerProcessor("VoskletTransferer",class extends AudioWorkletProcessor{constructor(opts){super();this.count=0;this.maxCount=opts.processorOptions.maxCount;this.buffer=new Float32Array(this.maxCount*128)}process(inputs){if(!inputs[0][0])return true;this.buffer.set(inputs[0][0],this.count*128);this.count++;if(this.count>=this.maxCount){this.count=0;this.port.postMessage(this.buffer,[this.buffer.buffer]);this.buffer=new Float32Array(this.maxCount*128)}return true}})}).toString(),")()"],{type:"text/javascript"}));Module.cleanUp=async()=>{for(let obj of objs)await obj.delete();URL.revokeObjectURL(processorURL)};Module.createTransferer=async(ctx,bufferSize)=>{await ctx.audioWorklet.addModule(processorURL);return new AudioWorkletNode(ctx,"VoskletTransferer",{channelCountMode:"explicit",numberOfInputs:1,numberOfOutputs:0,channelCount:1,processorOptions:{maxCount:bufferSize/128}})};getFileHandle=async(path,create=false)=>{let components=path.split("/");let prevDir=await navigator.storage.getDirectory();for(let component of components.slice(0,-1))prevDir=await prevDir.getDirectoryHandle(component,{create});return prevDir.getFileHandle(components[components.length-1],{create})};class CommonModel extends EventTarget{constructor(){super();objs.push(this)}delete(){this.obj.delete()}static async create(url,storepath,id,normalMdl){let mdl=new CommonModel;let result=new Promise((resolve,reject)=>{mdl.addEventListener("status",ev=>{if(!ev.detail){if(normalMdl)mdl.findWord=word=>mdl.obj.findWord(word);resolve(mdl)}else reject(ev.detail)},{once:true})});let tar;try{let dataFile=await(await getFileHandle(storepath+"/model.tgz")).getFile();let idFile=await(await getFileHandle(storepath+"/id")).getFile();if(await idFile.text()!=id)throw"";tar=await new Response(dataFile.stream().pipeThrough(new DecompressionStream("gzip"))).arrayBuffer()}catch{try{let res=await fetch(url);if(!res.ok)throw"Unable to download model";let teedBody=new Response(res.body.pipeThrough(new DecompressionStream("gzip"))).body.tee();let newDataFile=await(await getFileHandle(storepath+"/model.tgz",true)).createWritable();await newDataFile.write(await new Response(teedBody[0].pipeThrough(new CompressionStream("gzip"))).arrayBuffer());await newDataFile.close();let newIDFile=await(await getFileHandle(storepath+"/id",true)).createWritable();await newIDFile.write(id);await newIDFile.close();tar=await new Response(teedBody[1]).arrayBuffer()}catch(e){mdl.delete();throw e}}let tarStart=_malloc(tar.byteLength);GROWABLE_HEAP_U8().set(new Uint8Array(tar),tarStart);mdl.obj=new Module.CommonModel(objs.length-1,normalMdl,"/"+storepath,id,tarStart,tar.byteLength);return result}}Module.createModel=async(url,storepath,id)=>CommonModel.create(url,storepath,id,true);Module.createSpkModel=async(url,storepath,id)=>CommonModel.create(url,storepath,id,false);class Recognizer extends EventTarget{constructor(){super();objs.push(this);return new Proxy(this,{get(self,prop,_){if(self[prop]==undefined&&self.obj[prop]==undefined)return undefined;let p=self[prop];if(p)return p.bind?p.bind(self):p;p=self.obj[prop];return p.bind?p.bind(self.obj):p}})}acceptWaveform(audioData){let start=_malloc(audioData.length*4);GROWABLE_HEAP_F32().set(audioData,start/4);this.obj.acceptWaveform(start,audioData.length)}async delete(processCurrent=false){let result=new Promise((resolve,_)=>this.addEventListener("status",_=>{this.obj.delete();resolve()},{once:true}));this.obj.safeDelete(processCurrent);return result}static async create(model,sampleRate,mode,grammar,spkModel){let rec=new Recognizer;let result=new Promise((resolve,reject)=>{rec.addEventListener("status",ev=>{if(!ev.detail)resolve(rec);else reject(ev.detail)},{once:true})});switch(mode){case 1:rec.obj=new Module.Recognizer(objs.length-1,sampleRate,model);break;case 2:rec.obj=new Module.Recognizer(objs.length-1,sampleRate,model,spkModel);break;default:rec.obj=new Module.Recognizer(objs.length-1,sampleRate,model,grammar,0)}return result}}Module.createRecognizer=(model,sampleRate)=>Recognizer.create(model.obj,sampleRate,1);Module.createRecognizerWithSpkModel=(model,sampleRate,spkModel)=>Recognizer.create(model.obj,sampleRate,2,null,spkModel.obj);Module.createRecognizerWithGrm=(model,sampleRate,grammar)=>Recognizer.create(model.obj,sampleRate,3,grammar,null);var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};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){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptName){scriptDirectory=_scriptName}if(scriptDirectory.startsWith("blob:")){scriptDirectory=""}else{scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}{if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=url=>fetch(url,{credentials:"same-origin"}).then(response=>{if(response.ok){return response.arrayBuffer()}return Promise.reject(new Error(response.status+" : "+response.url))})}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.error.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];var wasmBinary=Module["wasmBinary"];var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAP64,HEAPU64,HEAPF64;function updateMemoryViews(){var b=wasmMemory.buffer;Module["HEAP8"]=HEAP8=new Int8Array(b);Module["HEAP16"]=HEAP16=new Int16Array(b);Module["HEAPU8"]=HEAPU8=new Uint8Array(b);Module["HEAPU16"]=HEAPU16=new Uint16Array(b);Module["HEAP32"]=HEAP32=new Int32Array(b);Module["HEAPU32"]=HEAPU32=new Uint32Array(b);Module["HEAPF32"]=HEAPF32=new Float32Array(b);Module["HEAPF64"]=HEAPF64=new Float64Array(b);Module["HEAP64"]=HEAP64=new BigInt64Array(b);Module["HEAPU64"]=HEAPU64=new BigUint64Array(b)}if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||330301440;wasmMemory=new WebAssembly.Memory({initial:INITIAL_MEMORY/65536,maximum:32768,shared:true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){err("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and/or recent version)")}throw Error("bad memory")}}updateMemoryViews();var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_WASM_WORKER)return _wasmWorkerInitializeRuntime();callRuntimeCallbacks(__ATINIT__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;Module["monitorRunDependencies"]?.(runDependencies)}function removeRunDependency(id){runDependencies--;Module["monitorRunDependencies"]?.(runDependencies);if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}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 dataURIPrefix="data:application/octet-stream;base64,";var isDataURI=filename=>filename.startsWith(dataURIPrefix);function findWasmBinary(){var f="Vosklet.wasm";if(!isDataURI(f)){return locateFile(f)}return f}var wasmBinaryFile;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"}function getBinaryPromise(binaryFile){if(!wasmBinary){return readAsync(binaryFile).then(response=>new Uint8Array(response),()=>getBinarySync(binaryFile))}return Promise.resolve().then(()=>getBinarySync(binaryFile))}function instantiateArrayBuffer(binaryFile,imports,receiver){return getBinaryPromise(binaryFile).then(binary=>WebAssembly.instantiate(binary,imports)).then(receiver,reason=>{err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)})}function instantiateAsync(binary,binaryFile,imports,callback){if(!binary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(binaryFile)&&typeof fetch=="function"){return fetch(binaryFile,{credentials:"same-origin"}).then(response=>{var result=WebAssembly.instantiateStreaming(response,imports);return result.then(callback,function(reason){err(`wasm streaming compile failed: ${reason}`);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(binaryFile,imports,callback)})})}return instantiateArrayBuffer(binaryFile,imports,callback)}function getWasmImports(){return{a:wasmImports}}function createWasm(){var info=getWasmImports();function receiveInstance(instance,module){wasmExports=instance.exports;wasmTable=wasmExports["$"];addOnInit(wasmExports["Y"]);wasmModule=module;removeRunDependency("wasm-instantiate");return wasmExports}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}if(Module["instantiateWasm"]){try{return Module["instantiateWasm"](info,receiveInstance)}catch(e){err(`Module.instantiateWasm callback failed with error: ${e}`);readyPromiseReject(e)}}if(!wasmBinaryFile)wasmBinaryFile=findWasmBinary();instantiateAsync(wasmBinary,wasmBinaryFile,info,receiveInstantiationResult).catch(readyPromiseReject);return{}}function mtFireEv(index,typeIdx,content){objs[index].dispatchEvent(new CustomEvent(events[typeIdx],{detail:content==0?null:UTF8ToString(content)}))}function ExitStatus(status){this.name="ExitStatus";this.message=`Program terminated with exit(${status})`;this.status=status}var _wasmWorkerDelayedMessageQueue=[];var wasmTableMirror=[];var wasmTable;var getWasmTableEntry=funcPtr=>{var func=wasmTableMirror[funcPtr];if(!func){if(funcPtr>=wasmTableMirror.length)wasmTableMirror.length=funcPtr+1;wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr)}return func};var _wasmWorkerRunPostMessage=e=>{let data=e.data;let wasmCall=data["_wsc"];wasmCall&&getWasmTableEntry(wasmCall)(...data["x"])};var _wasmWorkerAppendToQueue=e=>{_wasmWorkerDelayedMessageQueue.push(e)};var _wasmWorkerInitializeRuntime=()=>{let m=Module;__emscripten_wasm_worker_initialize(m["sb"],m["sz"]);removeEventListener("message",_wasmWorkerAppendToQueue);_wasmWorkerDelayedMessageQueue=_wasmWorkerDelayedMessageQueue.forEach(_wasmWorkerRunPostMessage);addEventListener("message",_wasmWorkerRunPostMessage)};var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};var noExitRuntime=Module["noExitRuntime"]||true;var UTF8Decoder=new TextDecoder;var UTF8ToString=(ptr,maxBytesToRead)=>{if(!ptr)return"";var maxPtr=ptr+maxBytesToRead;for(var end=ptr;!(end>=maxPtr)&&GROWABLE_HEAP_U8()[end];)++end;return UTF8Decoder.decode(GROWABLE_HEAP_U8().slice(ptr,end))};var ___assert_fail=(condition,filename,line,func)=>{abort(`Assertion failed: ${UTF8ToString(condition)}, at: `+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])};var ___call_sighandler=(fp,sig)=>getWasmTableEntry(fp)(sig);class ExceptionInfo{constructor(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24}set_type(type){GROWABLE_HEAP_U32()[this.ptr+4>>2]=type}get_type(){return GROWABLE_HEAP_U32()[this.ptr+4>>2]}set_destructor(destructor){GROWABLE_HEAP_U32()[this.ptr+8>>2]=destructor}get_destructor(){return GROWABLE_HEAP_U32()[this.ptr+8>>2]}set_caught(caught){caught=caught?1:0;GROWABLE_HEAP_I8()[this.ptr+12]=caught}get_caught(){return GROWABLE_HEAP_I8()[this.ptr+12]!=0}set_rethrown(rethrown){rethrown=rethrown?1:0;GROWABLE_HEAP_I8()[this.ptr+13]=rethrown}get_rethrown(){return GROWABLE_HEAP_I8()[this.ptr+13]!=0}init(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor)}set_adjusted_ptr(adjustedPtr){GROWABLE_HEAP_U32()[this.ptr+16>>2]=adjustedPtr}get_adjusted_ptr(){return GROWABLE_HEAP_U32()[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 __abort_js=()=>{abort("")};var embindRepr=v=>{if(v===null){return"null"}var t=typeof v;if(t==="object"||t==="array"||t==="function"){return v.toString()}else{return""+v}};var embind_init_charCodes=()=>{var codes=new Array(256);for(var i=0;i<256;++i){codes[i]=String.fromCharCode(i)}embind_charCodes=codes};var embind_charCodes;var readLatin1String=ptr=>{var ret="";var c=ptr;while(GROWABLE_HEAP_U8()[c]){ret+=embind_charCodes[GROWABLE_HEAP_U8()[c++]]}return ret};var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var BindingError;var throwBindingError=message=>{throw new BindingError(message)};var 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{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)}};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=>GROWABLE_HEAP_I8()[pointer]:pointer=>GROWABLE_HEAP_U8()[pointer];case 2:return signed?pointer=>GROWABLE_HEAP_I16()[pointer>>1]:pointer=>GROWABLE_HEAP_U16()[pointer>>1];case 4:return signed?pointer=>GROWABLE_HEAP_I32()[pointer>>2]:pointer=>GROWABLE_HEAP_U32()[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=readLatin1String(name);var isUnsignedType=name.indexOf("u")!=-1;if(isUnsignedType){maxRange=(1n<<64n)-1n}registerType(primitiveType,{name,fromWireType:value=>value,toWireType:function(destructors,value){if(typeof value!="bigint"&&typeof value!="number"){throw new TypeError(`Cannot convert "${embindRepr(value)}" to ${this.name}`)}if(typeof value=="number"){value=BigInt(value)}return value},argPackAdvance:GenericWireTypeSize,readValueFromPointer:integerReadValueFromPointer(name,size,!isUnsignedType),destructorFunction:null})};var GenericWireTypeSize=8;var __embind_register_bool=(rawType,name,trueValue,falseValue)=>{name=readLatin1String(name);registerType(rawType,{name,fromWireType:function(wt){return!!wt},toWireType:function(destructors,o){return o?trueValue:falseValue},argPackAdvance:GenericWireTypeSize,readValueFromPointer:function(pointer){return this["fromWireType"](GROWABLE_HEAP_U8()[pointer])},destructorFunction:null})};var shallowCopyInternalPointer=o=>({count:o.count,deleteScheduled:o.deleteScheduled,preservePointerOnDelete:o.preservePointerOnDelete,ptr:o.ptr,ptrType:o.ptrType,smartPtr:o.smartPtr,smartPtrType:o.smartPtrType});var throwInstanceAlreadyDeleted=obj=>{function getInstanceTypeName(handle){return handle.$$.ptrType.registeredClass.name}throwBindingError(getInstanceTypeName(obj)+" instance already deleted")};var finalizationRegistry=false;var detachFinalizer=handle=>{};var runDestructor=$$=>{if($$.smartPtr){$$.smartPtrType.rawDestructor($$.smartPtr)}else{$$.ptrType.registeredClass.rawDestructor($$.ptr)}};var releaseClassHandle=$$=>{$$.count.value-=1;var toDelete=0===$$.count.value;if(toDelete){runDestructor($$)}};var downcastPointer=(ptr,ptrClass,desiredClass)=>{if(ptrClass===desiredClass){return ptr}if(undefined===desiredClass.baseClass){return null}var rv=downcastPointer(ptr,ptrClass,desiredClass.baseClass);if(rv===null){return null}return desiredClass.downcast(rv)};var registeredPointers={};var getInheritedInstanceCount=()=>Object.keys(registeredInstances).length;var getLiveInheritedInstances=()=>{var rv=[];for(var k in registeredInstances){if(registeredInstances.hasOwnProperty(k)){rv.push(registeredInstances[k])}}return rv};var deletionQueue=[];var flushPendingDeletes=()=>{while(deletionQueue.length){var obj=deletionQueue.pop();obj.$$.deleteScheduled=false;obj["delete"]()}};var delayFunction;var setDelayFunction=fn=>{delayFunction=fn;if(deletionQueue.length&&delayFunction){delayFunction(flushPendingDeletes)}};var init_embind=()=>{Module["getInheritedInstanceCount"]=getInheritedInstanceCount;Module["getLiveInheritedInstances"]=getLiveInheritedInstances;Module["flushPendingDeletes"]=flushPendingDeletes;Module["setDelayFunction"]=setDelayFunction};var registeredInstances={};var getBasestPointer=(class_,ptr)=>{if(ptr===undefined){throwBindingError("ptr should not be undefined")}while(class_.baseClass){ptr=class_.upcast(ptr);class_=class_.baseClass}return ptr};var getInheritedInstance=(class_,ptr)=>{ptr=getBasestPointer(class_,ptr);return registeredInstances[ptr]};var makeClassHandle=(prototype,record)=>{if(!record.ptrType||!record.ptr){throwInternalError("makeClassHandle requires ptr and ptrType")}var hasSmartPtrType=!!record.smartPtrType;var hasSmartPtr=!!record.smartPtr;if(hasSmartPtrType!==hasSmartPtr){throwInternalError("Both smartPtrType and smartPtr must be specified")}record.count={value:1};return attachFinalizer(Object.create(prototype,{$$:{value:record,writable:true}}))};function RegisteredPointer_fromWireType(ptr){var rawPointer=this.getPointee(ptr);if(!rawPointer){this.destructor(ptr);return null}var registeredInstance=getInheritedInstance(this.registeredClass,rawPointer);if(undefined!==registeredInstance){if(0===registeredInstance.$$.count.value){registeredInstance.$$.ptr=rawPointer;registeredInstance.$$.smartPtr=ptr;return registeredInstance["clone"]()}else{var rv=registeredInstance["clone"]();this.destructor(ptr);return rv}}function makeDefaultHandle(){if(this.isSmartPointer){return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:rawPointer,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this,ptr})}}var actualType=this.registeredClass.getActualType(rawPointer);var registeredPointerRecord=registeredPointers[actualType];if(!registeredPointerRecord){return makeDefaultHandle.call(this)}var toType;if(this.isConst){toType=registeredPointerRecord.constPointerType}else{toType=registeredPointerRecord.pointerType}var dp=downcastPointer(rawPointer,this.registeredClass,toType.registeredClass);if(dp===null){return makeDefaultHandle.call(this)}if(this.isSmartPointer){return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp})}}var attachFinalizer=handle=>{if("undefined"===typeof FinalizationRegistry){attachFinalizer=handle=>handle;return handle}finalizationRegistry=new FinalizationRegistry(info=>{releaseClassHandle(info.$$)});attachFinalizer=handle=>{var $$=handle.$$;var hasSmartPtr=!!$$.smartPtr;if(hasSmartPtr){var info={$$};finalizationRegistry.register(handle,info,handle)}return handle};detachFinalizer=handle=>finalizationRegistry.unregister(handle);return attachFinalizer(handle)};var init_ClassHandle=()=>{Object.assign(ClassHandle.prototype,{isAliasOf(other){if(!(this instanceof ClassHandle)){return false}if(!(other instanceof ClassHandle)){return false}var leftClass=this.$$.ptrType.registeredClass;var left=this.$$.ptr;other.$$=other.$$;var rightClass=other.$$.ptrType.registeredClass;var right=other.$$.ptr;while(leftClass.baseClass){left=leftClass.upcast(left);leftClass=leftClass.baseClass}while(rightClass.baseClass){right=rightClass.upcast(right);rightClass=rightClass.baseClass}return leftClass===rightClass&&left===right},clone(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.preservePointerOnDelete){this.$$.count.value+=1;return this}else{var clone=attachFinalizer(Object.create(Object.getPrototypeOf(this),{$$:{value:shallowCopyInternalPointer(this.$$)}}));clone.$$.count.value+=1;clone.$$.deleteScheduled=false;return clone}},delete(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion")}detachFinalizer(this);releaseClassHandle(this.$$);if(!this.$$.preservePointerOnDelete){this.$$.smartPtr=undefined;this.$$.ptr=undefined}},isDeleted(){return!this.$$.ptr},deleteLater(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion")}deletionQueue.push(this);if(deletionQueue.length===1&&delayFunction){delayFunction(flushPendingDeletes)}this.$$.deleteScheduled=true;return this}})};function ClassHandle(){}var createNamedFunction=(name,body)=>Object.defineProperty(body,"name",{value:name});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.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;if(undefined!==numArguments){Module[name].numArguments=numArguments}}};var char_0=48;var char_9=57;var makeLegalFunctionName=name=>{if(undefined===name){return"_unknown"}name=name.replace(/[^a-zA-Z0-9_]/g,"$");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return`_${name}`}return name};function RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast){this.name=name;this.constructor=constructor;this.instancePrototype=instancePrototype;this.rawDestructor=rawDestructor;this.baseClass=baseClass;this.getActualType=getActualType;this.upcast=upcast;this.downcast=downcast;this.pureVirtualFunctions=[]}var upcastPointer=(ptr,ptrClass,desiredClass)=>{while(ptrClass!==desiredClass){if(!ptrClass.upcast){throwBindingError(`Expected null or instance of ${desiredClass.name}, got an instance of ${ptrClass.name}`)}ptr=ptrClass.upcast(ptr);ptrClass=ptrClass.baseClass}return ptr};function constNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError(`null is not a valid ${this.name}`)}return 0}if(!handle.$$){throwBindingError(`Cannot pass "${embindRepr(handle)}" as a ${this.name}`)}if(!handle.$$.ptr){throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function genericPointerToWireType(destructors,handle){var ptr;if(handle===null){if(this.isReference){throwBindingError(`null is not a valid ${this.name}`)}if(this.isSmartPointer){ptr=this.rawConstructor();if(destructors!==null){destructors.push(this.rawDestructor,ptr)}return ptr}else{return 0}}if(!handle||!handle.$$){throwBindingError(`Cannot pass "${embindRepr(handle)}" as a ${this.name}`)}if(!handle.$$.ptr){throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`)}if(!this.isConst&&handle.$$.ptrType.isConst){throwBindingError(`Cannot convert argument of type ${handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name} to parameter type ${this.name}`)}var handleClass=handle.$$.ptrType.registeredClass;ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);if(this.isSmartPointer){if(undefined===handle.$$.smartPtr){throwBindingError("Passing raw pointer to smart pointer is illegal")}switch(this.sharingPolicy){case 0:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{throwBindingError(`Cannot convert argument of type ${handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name} to parameter type ${this.name}`)}break;case 1:ptr=handle.$$.smartPtr;break;case 2:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{var clonedHandle=handle["clone"]();ptr=this.rawShare(ptr,Emval.toHandle(()=>clonedHandle["delete"]()));if(destructors!==null){destructors.push(this.rawDestructor,ptr)}}break;default:throwBindingError("Unsupporting sharing policy")}}return ptr}function nonConstNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError(`null is not a valid ${this.name}`)}return 0}if(!handle.$$){throwBindingError(`Cannot pass "${embindRepr(handle)}" as a ${this.name}`)}if(!handle.$$.ptr){throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`)}if(handle.$$.ptrType.isConst){throwBindingError(`Cannot convert argument of type ${handle.$$.ptrType.name} to parameter type ${this.name}`)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function readPointer(pointer){return this["fromWireType"](GROWABLE_HEAP_U32()[pointer>>2])}var init_RegisteredPointer=()=>{Object.assign(RegisteredPointer.prototype,{getPointee(ptr){if(this.rawGetPointee){ptr=this.rawGetPointee(ptr)}return ptr},destructor(ptr){this.rawDestructor?.(ptr)},argPackAdvance:GenericWireTypeSize,readValueFromPointer:readPointer,fromWireType:RegisteredPointer_fromWireType})};function RegisteredPointer(name,registeredClass,isReference,isConst,isSmartPointer,pointeeType,sharingPolicy,rawGetPointee,rawConstructor,rawShare,rawDestructor){this.name=name;this.registeredClass=registeredClass;this.isReference=isReference;this.isConst=isConst;this.isSmartPointer=isSmartPointer;this.pointeeType=pointeeType;this.sharingPolicy=sharingPolicy;this.rawGetPointee=rawGetPointee;this.rawConstructor=rawConstructor;this.rawShare=rawShare;this.rawDestructor=rawDestructor;if(!isSmartPointer&®isteredClass.baseClass===undefined){if(isConst){this["toWireType"]=constNoSmartPtrRawPointerToWireType;this.destructorFunction=null}else{this["toWireType"]=nonConstNoSmartPtrRawPointerToWireType;this.destructorFunction=null}}else{this["toWireType"]=genericPointerToWireType}}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 embind__requireFunction=(signature,rawFunction)=>{signature=readLatin1String(signature);function makeDynCaller(){return getWasmTableEntry(rawFunction)}var fp=makeDynCaller();if(typeof fp!="function"){throwBindingError(`unknown function pointer with signature ${signature}: ${rawFunction}`)}return fp};var extendError=(baseErrorType,errorName)=>{var errorClass=createNamedFunction(errorName,function(message){this.name=errorName;this.message=message;var stack=new Error(message).stack;if(stack!==undefined){this.stack=this.toString()+"\n"+stack.replace(/^Error(:[^\n]*)?\n/,"")}});errorClass.prototype=Object.create(baseErrorType.prototype);errorClass.prototype.constructor=errorClass;errorClass.prototype.toString=function(){if(this.message===undefined){return this.name}else{return`${this.name}: ${this.message}`}};return errorClass};var UnboundTypeError;var getTypeName=type=>{var ptr=___getTypeName(type);var rv=readLatin1String(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 __embind_register_class=(rawType,rawPointerType,rawConstPointerType,baseClassRawType,getActualTypeSignature,getActualType,upcastSignature,upcast,downcastSignature,downcast,name,destructorSignature,rawDestructor)=>{name=readLatin1String(name);getActualType=embind__requireFunction(getActualTypeSignature,getActualType);upcast&&=embind__requireFunction(upcastSignature,upcast);downcast&&=embind__requireFunction(downcastSignature,downcast);rawDestructor=embind__requireFunction(destructorSignature,rawDestructor);var legalFunctionName=makeLegalFunctionName(name);exposePublicSymbol(legalFunctionName,function(){throwUnboundTypeError(`Cannot construct ${name} due to unbound types`,[baseClassRawType])});whenDependentTypesAreResolved([rawType,rawPointerType,rawConstPointerType],baseClassRawType?[baseClassRawType]:[],base=>{base=base[0];var baseClass;var basePrototype;if(baseClassRawType){baseClass=base.registeredClass;basePrototype=baseClass.instancePrototype}else{basePrototype=ClassHandle.prototype}var constructor=createNamedFunction(name,function(...args){if(Object.getPrototypeOf(this)!==instancePrototype){throw new BindingError("Use 'new' to construct "+name)}if(undefined===registeredClass.constructor_body){throw new BindingError(name+" has no accessible constructor")}var body=registeredClass.constructor_body[args.length];if(undefined===body){throw new BindingError(`Tried to invoke ctor of ${name} with invalid number of parameters (${args.length}) - expected (${Object.keys(registeredClass.constructor_body).toString()}) parameters instead!`)}return body.apply(this,args)});var instancePrototype=Object.create(basePrototype,{constructor:{value:constructor}});constructor.prototype=instancePrototype;var registeredClass=new RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast);if(registeredClass.baseClass){registeredClass.baseClass.__derivedClasses??=[];registeredClass.baseClass.__derivedClasses.push(registeredClass)}var referenceConverter=new RegisteredPointer(name,registeredClass,true,false,false);var pointerConverter=new RegisteredPointer(name+"*",registeredClass,false,false,false);var constPointerConverter=new RegisteredPointer(name+" const*",registeredClass,false,true,false);registeredPointers[rawType]={pointerType:pointerConverter,constPointerType:constPointerConverter};replacePublicSymbol(legalFunctionName,constructor);return[referenceConverter,pointerConverter,constPointerConverter]})};var heap32VectorToArray=(count,firstElement)=>{var array=[];for(var i=0;i>2])}return array};var runDestructors=destructors=>{while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}};function usesDestructorStack(argTypes){for(var i=1;i{var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);invoker=embind__requireFunction(invokerSignature,invoker);whenDependentTypesAreResolved([],[rawClassType],classType=>{classType=classType[0];var humanName=`constructor ${classType.name}`;if(undefined===classType.registeredClass.constructor_body){classType.registeredClass.constructor_body=[]}if(undefined!==classType.registeredClass.constructor_body[argCount-1]){throw new BindingError(`Cannot register multiple constructors with identical number of parameters (${argCount-1}) for class '${classType.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`)}classType.registeredClass.constructor_body[argCount-1]=()=>{throwUnboundTypeError(`Cannot construct ${classType.name} due to unbound types`,rawArgTypes)};whenDependentTypesAreResolved([],rawArgTypes,argTypes=>{argTypes.splice(1,0,null);classType.registeredClass.constructor_body[argCount-1]=craftInvokerFunction(humanName,argTypes,null,invoker,rawConstructor);return[]});return[]})};var getFunctionName=signature=>{signature=signature.trim();const argsIndex=signature.indexOf("(");if(argsIndex!==-1){return signature.substr(0,argsIndex)}else{return signature}};var __embind_register_class_function=(rawClassType,methodName,argCount,rawArgTypesAddr,invokerSignature,rawInvoker,context,isPureVirtual,isAsync)=>{var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);methodName=readLatin1String(methodName);methodName=getFunctionName(methodName);rawInvoker=embind__requireFunction(invokerSignature,rawInvoker);whenDependentTypesAreResolved([],[rawClassType],classType=>{classType=classType[0];var humanName=`${classType.name}.${methodName}`;if(methodName.startsWith("@@")){methodName=Symbol[methodName.substring(2)]}if(isPureVirtual){classType.registeredClass.pureVirtualFunctions.push(methodName)}function unboundTypesHandler(){throwUnboundTypeError(`Cannot call ${humanName} due to unbound types`,rawArgTypes)}var proto=classType.registeredClass.instancePrototype;var method=proto[methodName];if(undefined===method||undefined===method.overloadTable&&method.className!==classType.name&&method.argCount===argCount-2){unboundTypesHandler.argCount=argCount-2;unboundTypesHandler.className=classType.name;proto[methodName]=unboundTypesHandler}else{ensureOverloadTable(proto,methodName,humanName);proto[methodName].overloadTable[argCount-2]=unboundTypesHandler}whenDependentTypesAreResolved([],rawArgTypes,argTypes=>{var memberFunction=craftInvokerFunction(humanName,argTypes,classType,rawInvoker,context,isAsync);if(undefined===proto[methodName].overloadTable){memberFunction.argCount=argCount-2;proto[methodName]=memberFunction}else{proto[methodName].overloadTable[argCount-2]=memberFunction}return[]});return[]})};var emval_freelist=[];var emval_handles=[];var __emval_decref=handle=>{if(handle>9&&0===--emval_handles[handle+1]){emval_handles[handle]=undefined;emval_freelist.push(handle)}};var count_emval_handles=()=>emval_handles.length/2-5-emval_freelist.length;var init_emval=()=>{emval_handles.push(0,1,undefined,1,null,1,true,1,false,1);Module["count_emval_handles"]=count_emval_handles};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),argPackAdvance:GenericWireTypeSize,readValueFromPointer:readPointer,destructorFunction:null};var __embind_register_emval=rawType=>registerType(rawType,EmValType);var enumReadValueFromPointer=(name,width,signed)=>{switch(width){case 1:return signed?function(pointer){return this["fromWireType"](GROWABLE_HEAP_I8()[pointer])}:function(pointer){return this["fromWireType"](GROWABLE_HEAP_U8()[pointer])};case 2:return signed?function(pointer){return this["fromWireType"](GROWABLE_HEAP_I16()[pointer>>1])}:function(pointer){return this["fromWireType"](GROWABLE_HEAP_U16()[pointer>>1])};case 4:return signed?function(pointer){return this["fromWireType"](GROWABLE_HEAP_I32()[pointer>>2])}:function(pointer){return this["fromWireType"](GROWABLE_HEAP_U32()[pointer>>2])};default:throw new TypeError(`invalid integer width (${width}): ${name}`)}};var __embind_register_enum=(rawType,name,size,isSigned)=>{name=readLatin1String(name);function ctor(){}ctor.values={};registerType(rawType,{name,constructor:ctor,fromWireType:function(c){return this.constructor.values[c]},toWireType:(destructors,c)=>c.value,argPackAdvance:GenericWireTypeSize,readValueFromPointer:enumReadValueFromPointer(name,size,isSigned),destructorFunction:null});exposePublicSymbol(name,ctor)};var requireRegisteredType=(rawType,humanName)=>{var impl=registeredTypes[rawType];if(undefined===impl){throwBindingError(`${humanName} has unknown type ${getTypeName(rawType)}`)}return impl};var __embind_register_enum_value=(rawEnumType,name,enumValue)=>{var enumType=requireRegisteredType(rawEnumType,"enum");name=readLatin1String(name);var Enum=enumType.constructor;var Value=Object.create(enumType.constructor.prototype,{value:{value:enumValue},constructor:{value:createNamedFunction(`${enumType.name}_${name}`,function(){})}});Enum.values[enumValue]=Value;Enum[name]=Value};var floatReadValueFromPointer=(name,width)=>{switch(width){case 4:return function(pointer){return this["fromWireType"](GROWABLE_HEAP_F32()[pointer>>2])};case 8:return function(pointer){return this["fromWireType"](GROWABLE_HEAP_F64()[pointer>>3])};default:throw new TypeError(`invalid float width (${width}): ${name}`)}};var __embind_register_float=(rawType,name,size)=>{name=readLatin1String(name);registerType(rawType,{name,fromWireType:value=>value,toWireType:(destructors,value)=>value,argPackAdvance:GenericWireTypeSize,readValueFromPointer:floatReadValueFromPointer(name,size),destructorFunction:null})};var __embind_register_function=(name,argCount,rawArgTypesAddr,signature,rawInvoker,fn,isAsync)=>{var argTypes=heap32VectorToArray(argCount,rawArgTypesAddr);name=readLatin1String(name);name=getFunctionName(name);rawInvoker=embind__requireFunction(signature,rawInvoker);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=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var fromWireType=value=>value;if(minRange===0){var bitshift=32-8*size;fromWireType=value=>value<>>bitshift}var isUnsignedType=name.includes("unsigned");var checkAssertions=(value,toTypeName)=>{};var toWireType;if(isUnsignedType){toWireType=function(destructors,value){checkAssertions(value,this.name);return value>>>0}}else{toWireType=function(destructors,value){checkAssertions(value,this.name);return value}}registerType(primitiveType,{name,fromWireType,toWireType,argPackAdvance:GenericWireTypeSize,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=GROWABLE_HEAP_U32()[handle>>2];var data=GROWABLE_HEAP_U32()[handle+4>>2];return new TA(GROWABLE_HEAP_I8().buffer,data,size)}name=readLatin1String(name);registerType(rawType,{name,fromWireType:decodeMemoryView,argPackAdvance:GenericWireTypeSize,readValueFromPointer:decodeMemoryView},{ignoreDuplicateRegistrations:true})};var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}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}}heap[outIdx]=0;return outIdx-startIdx};var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,GROWABLE_HEAP_U8(),outPtr,maxBytesToWrite);var lengthBytesUTF8=str=>{var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var __embind_register_std_string=(rawType,name)=>{name=readLatin1String(name);var stdStringIsUTF8=name==="std::string";registerType(rawType,{name,fromWireType(value){var length=GROWABLE_HEAP_U32()[value>>2];var payload=value+4;var str;if(stdStringIsUTF8){var decodeStartPtr=payload;for(var i=0;i<=length;++i){var currentBytePtr=payload+i;if(i==length||GROWABLE_HEAP_U8()[currentBytePtr]==0){var maxRead=currentBytePtr-decodeStartPtr;var stringSegment=UTF8ToString(decodeStartPtr,maxRead);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+1}}}else{var a=new Array(length);for(var i=0;i>2]=length;if(stdStringIsUTF8&&valueIsOfTypeString){stringToUTF8(value,ptr,length+1)}else{if(valueIsOfTypeString){for(var i=0;i255){_free(ptr);throwBindingError("String has UTF-16 code units that do not fit in 8 bits")}GROWABLE_HEAP_U8()[ptr+i]=charCode}}else{for(var i=0;i{var endPtr=ptr;var idx=endPtr>>1;var maxIdx=idx+maxBytesToRead/2;while(!(idx>=maxIdx)&&GROWABLE_HEAP_U16()[idx])++idx;endPtr=idx<<1;return UTF16Decoder.decode(GROWABLE_HEAP_U8().slice(ptr,endPtr))};var stringToUTF16=(str,outPtr,maxBytesToWrite)=>{maxBytesToWrite??=2147483647;if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}GROWABLE_HEAP_I16()[outPtr>>1]=0;return outPtr-startPtr};var lengthBytesUTF16=str=>str.length*2;var UTF32ToString=(ptr,maxBytesToRead)=>{var i=0;var str="";while(!(i>=maxBytesToRead/4)){var utf32=GROWABLE_HEAP_I32()[ptr+i*4>>2];if(utf32==0)break;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(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=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}GROWABLE_HEAP_I32()[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}GROWABLE_HEAP_I32()[outPtr>>2]=0;return outPtr-startPtr};var lengthBytesUTF32=str=>{var len=0;for(var i=0;i=55296&&codeUnit<=57343)++i;len+=4}return len};var __embind_register_std_wstring=(rawType,charSize,name)=>{name=readLatin1String(name);var decodeString,encodeString,readCharAt,lengthBytesUTF;if(charSize===2){decodeString=UTF16ToString;encodeString=stringToUTF16;lengthBytesUTF=lengthBytesUTF16;readCharAt=pointer=>GROWABLE_HEAP_U16()[pointer>>1]}else if(charSize===4){decodeString=UTF32ToString;encodeString=stringToUTF32;lengthBytesUTF=lengthBytesUTF32;readCharAt=pointer=>GROWABLE_HEAP_U32()[pointer>>2]}registerType(rawType,{name,fromWireType:value=>{var length=GROWABLE_HEAP_U32()[value>>2];var str;var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i*charSize;if(i==length||readCharAt(currentBytePtr)==0){var maxReadBytes=currentBytePtr-decodeStartPtr;var stringSegment=decodeString(decodeStartPtr,maxReadBytes);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+charSize}}_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);GROWABLE_HEAP_U32()[ptr>>2]=length/charSize;encodeString(value,ptr+4,length+charSize);if(destructors!==null){destructors.push(_free,ptr)}return ptr},argPackAdvance:GenericWireTypeSize,readValueFromPointer:readPointer,destructorFunction(ptr){_free(ptr)}})};var __embind_register_void=(rawType,name)=>{name=readLatin1String(name);registerType(rawType,{isVoid:true,name,argPackAdvance:0,fromWireType:()=>undefined,toWireType:(destructors,o)=>undefined})};var _wasmWorkers={};var _wasmWorkersID=1;var _wasmWorkerBlobUrl=URL.createObjectURL(new Blob(["onmessage=function(d){onmessage=null;d=d.data;d[`instantiateWasm`]=(i,r)=>{var n=new WebAssembly.Instance(d[`wasm`],i);return r(n,d[`wasm`]);};importScripts(d.js);loadVosklet(d);d.wasm=d.mem=d.js=0;}"],{type:"application/javascript"}));var __emscripten_create_wasm_worker=(stackLowestAddress,stackSize)=>{let worker=_wasmWorkers[_wasmWorkersID]=new Worker(_wasmWorkerBlobUrl);worker.postMessage({$ww:_wasmWorkersID,wasm:wasmModule,js:Module["mainScriptUrlOrBlob"]||_scriptName,wasmMemory,sb:stackLowestAddress,sz:stackSize});worker.onmessage=_wasmWorkerRunPostMessage;return _wasmWorkersID++};var nowIsMonotonic=1;var __emscripten_get_now_is_monotonic=()=>nowIsMonotonic;var __emscripten_runtime_keepalive_clear=()=>{noExitRuntime=false;runtimeKeepaliveCounter=0};var timers={};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 _emscripten_get_now;_emscripten_get_now=()=>performance.now();var __setitimer_js=(which,timeout_ms)=>{if(timers[which]){clearTimeout(timers[which].id);delete timers[which]}if(!timeout_ms)return 0;var id=setTimeout(()=>{delete timers[which];callUserCallback(()=>__emscripten_timeout(which,_emscripten_get_now()))},timeout_ms);timers[which]={id,timeout_ms};return 0};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);GROWABLE_HEAP_U32()[timezone>>2]=stdTimezoneOffset*60;GROWABLE_HEAP_I32()[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(summerOffsetGROWABLE_HEAP_U8().set(wasmFSPreloadedFiles[index].fileData,buffer);var wasmFSPreloadedDirs=[];var __wasmfs_get_num_preloaded_dirs=()=>wasmFSPreloadedDirs.length;var wasmFSPreloadedFiles=[];var wasmFSPreloadingFlushed=false;var __wasmfs_get_num_preloaded_files=()=>{wasmFSPreloadingFlushed=true;return wasmFSPreloadedFiles.length};var __wasmfs_get_preloaded_child_path=(index,childNameBuffer)=>{var s=wasmFSPreloadedDirs[index].childName;var len=lengthBytesUTF8(s)+1;stringToUTF8(s,childNameBuffer,len)};var __wasmfs_get_preloaded_file_mode=index=>wasmFSPreloadedFiles[index].mode;var __wasmfs_get_preloaded_file_size=index=>wasmFSPreloadedFiles[index].fileData.length;var __wasmfs_get_preloaded_parent_path=(index,parentPathBuffer)=>{var s=wasmFSPreloadedDirs[index].parentPath;var len=lengthBytesUTF8(s)+1;stringToUTF8(s,parentPathBuffer,len)};var __wasmfs_get_preloaded_path_name=(index,fileNameBuffer)=>{var s=wasmFSPreloadedFiles[index].pathName;var len=lengthBytesUTF8(s)+1;stringToUTF8(s,fileNameBuffer,len)};var FS_stdin_getChar_buffer=[];function 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 __wasmfs_stdin_get_char=()=>{var c=FS_stdin_getChar();if(typeof c==="number"){return c}return-1};var _emscripten_console_error=str=>{console.error(UTF8ToString(str))};var _emscripten_console_log=str=>{console.log(UTF8ToString(str))};var _emscripten_console_warn=str=>{console.warn(UTF8ToString(str))};var _emscripten_date_now=()=>Date.now();var _emscripten_err=str=>err(UTF8ToString(str));var _emscripten_out=str=>out(UTF8ToString(str));var getHeapMax=()=>2147483648;var alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;var growMemory=size=>{var b=wasmMemory.buffer;var pages=(size-b.byteLength+65535)/65536;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};var _emscripten_resize_heap=requestedSize=>{var oldSize=GROWABLE_HEAP_U8().length;requestedSize>>>=0;if(requestedSize<=oldSize){return false}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 _wasmWorkerPostFunction2=(id,funcPtr,arg0,arg1)=>{_wasmWorkers[id].postMessage({_wsc:funcPtr,x:[arg0,arg1]})};var _emscripten_wasm_worker_post_function_vii=_wasmWorkerPostFunction2;var _wasmWorkerPostFunction3=(id,funcPtr,arg0,arg1,arg2)=>{_wasmWorkers[id].postMessage({_wsc:funcPtr,x:[arg0,arg1,arg2]})};var _emscripten_wasm_worker_post_function_viii=_wasmWorkerPostFunction3;var ENV={};var getExecutableName=()=>thisProgram||"./this.program";var getEnvStrings=()=>{if(!getEnvStrings.strings){var lang=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"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 stringToAscii=(str,buffer)=>{for(var i=0;i{var bufSize=0;getEnvStrings().forEach((string,i)=>{var ptr=environ_buf+bufSize;GROWABLE_HEAP_U32()[__environ+i*4>>2]=ptr;stringToAscii(string,ptr);bufSize+=string.length+1});return 0};var _environ_sizes_get=(penviron_count,penviron_buf_size)=>{var strings=getEnvStrings();GROWABLE_HEAP_U32()[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(string=>bufSize+=string.length+1);GROWABLE_HEAP_U32()[penviron_buf_size>>2]=bufSize;return 0};var initRandomFill=()=>{if(typeof crypto=="object"&&typeof crypto["getRandomValues"]=="function"){return view=>(view.set(crypto.getRandomValues(new Uint8Array(view.byteLength))),view)}else abort("initRandomDevice")};var randomFill=view=>(randomFill=initRandomFill())(view);var _getentropy=(buffer,size)=>{randomFill(GROWABLE_HEAP_U8().subarray(buffer,buffer+size));return 0};embind_init_charCodes();BindingError=Module["BindingError"]=class BindingError extends Error{constructor(message){super(message);this.name="BindingError"}};InternalError=Module["InternalError"]=class InternalError extends Error{constructor(message){super(message);this.name="InternalError"}};init_ClassHandle();init_embind();init_RegisteredPointer();UnboundTypeError=Module["UnboundTypeError"]=extendError(Error,"UnboundTypeError");init_emval();if(ENVIRONMENT_IS_WASM_WORKER){_wasmWorkers[0]=this;addEventListener("message",_wasmWorkerAppendToQueue)}var wasmImports={c:___assert_fail,t:___call_sighandler,d:___cxa_throw,P:__abort_js,q:__embind_register_bigint,S:__embind_register_bool,o:__embind_register_class,j:__embind_register_class_constructor,g:__embind_register_class_function,R:__embind_register_emval,s:__embind_register_enum,k:__embind_register_enum_value,p:__embind_register_float,C:__embind_register_function,i:__embind_register_integer,e:__embind_register_memory_view,r:__embind_register_std_string,n:__embind_register_std_wstring,T:__embind_register_void,I:__emscripten_create_wasm_worker,O:__emscripten_get_now_is_monotonic,v:__emscripten_runtime_keepalive_clear,w:__setitimer_js,K:__tzset_js,E:__wasmfs_copy_preloaded_file_data,B:__wasmfs_get_num_preloaded_dirs,D:__wasmfs_get_num_preloaded_files,z:__wasmfs_get_preloaded_child_path,x:__wasmfs_get_preloaded_file_mode,F:__wasmfs_get_preloaded_file_size,A:__wasmfs_get_preloaded_parent_path,y:__wasmfs_get_preloaded_path_name,H:__wasmfs_stdin_get_char,U:_emscripten_console_error,W:_emscripten_console_log,V:_emscripten_console_warn,f:_emscripten_date_now,l:_emscripten_err,m:_emscripten_get_now,G:_emscripten_out,L:_emscripten_resize_heap,Q:_emscripten_wasm_worker_post_function_vii,h:_emscripten_wasm_worker_post_function_viii,M:_environ_get,N:_environ_sizes_get,b:_exit,J:_getentropy,a:wasmMemory,X:mtFireEv,u:_proc_exit};var wasmExports=createWasm();var ___wasm_call_ctors=()=>(___wasm_call_ctors=wasmExports["Y"])();var _free=a0=>(_free=wasmExports["Z"])(a0);var _malloc=Module["_malloc"]=a0=>(_malloc=Module["_malloc"]=wasmExports["_"])(a0);var ___getTypeName=a0=>(___getTypeName=wasmExports["aa"])(a0);var __emscripten_timeout=(a0,a1)=>(__emscripten_timeout=wasmExports["ba"])(a0,a1);var __emscripten_wasm_worker_initialize=(a0,a1)=>(__emscripten_wasm_worker_initialize=wasmExports["ca"])(a0,a1);Module["UTF8ToString"]=UTF8ToString;var calledRun;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(){if(runDependencies>0){return}if(ENVIRONMENT_IS_WASM_WORKER){readyPromiseResolve(Module);return initRuntime()}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);Module["onRuntimeInitialized"]?.();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(()=>{setTimeout(()=>Module["setStatus"](""),1);doRun()},1)}else{doRun()}}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}run();moduleRtn=readyPromise; +function GROWABLE_HEAP_I8(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAP8}function GROWABLE_HEAP_U8(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAPU8}function GROWABLE_HEAP_I16(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAP16}function GROWABLE_HEAP_U16(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAPU16}function GROWABLE_HEAP_I32(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAP32}function GROWABLE_HEAP_U32(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAPU32}function GROWABLE_HEAP_F32(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAPF32}function GROWABLE_HEAP_F64(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAPF64}var Module=moduleArg;var readyPromiseResolve,readyPromiseReject;var readyPromise=new Promise((resolve,reject)=>{readyPromiseResolve=resolve;readyPromiseReject=reject});var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof importScripts=="function";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";var ENVIRONMENT_IS_WASM_WORKER=Module["$ww"];let objs=[];let events=["status","partialResult","result"];let processorURL=URL.createObjectURL(new Blob(["(",(()=>{registerProcessor("VoskletTransferer",class extends AudioWorkletProcessor{constructor(opts){super();this.count=0;this.maxCount=opts.processorOptions.maxCount;this.buffer=new Float32Array(this.maxCount*128)}process(inputs){if(!inputs[0][0])return true;this.buffer.set(inputs[0][0],this.count*128);this.count++;if(this.count>=this.maxCount){this.count=0;this.port.postMessage(this.buffer,[this.buffer.buffer]);this.buffer=new Float32Array(this.maxCount*128)}return true}})}).toString(),")()"],{type:"text/javascript"}));Module.cleanUp=async()=>{for(let obj of objs)await obj.delete();URL.revokeObjectURL(processorURL)};Module.createTransferer=async(ctx,bufferSize)=>{await ctx.audioWorklet.addModule(processorURL);return new AudioWorkletNode(ctx,"VoskletTransferer",{channelCountMode:"explicit",numberOfInputs:1,numberOfOutputs:0,channelCount:1,processorOptions:{maxCount:bufferSize/128}})};getFileHandle=async(path,create=false)=>{let components=path.split("/");let prevDir=await navigator.storage.getDirectory();for(let component of components.slice(0,-1))prevDir=await prevDir.getDirectoryHandle(component,{create});return prevDir.getFileHandle(components[components.length-1],{create})};class CommonModel extends EventTarget{constructor(){super();objs.push(this)}delete(){this.obj.delete()}static async create(url,storepath,id,normalMdl){let mdl=new CommonModel;let result=new Promise((resolve,reject)=>{mdl.addEventListener("status",ev=>{if(!ev.detail){if(normalMdl)mdl.findWord=word=>mdl.obj.findWord(word);resolve(mdl)}else reject(ev.detail)},{once:true})});let tar;try{let dataFile=await(await getFileHandle(storepath+"/model.tgz")).getFile();let idFile=await(await getFileHandle(storepath+"/id")).getFile();if(await idFile.text()!=id)throw"";tar=await new Response(dataFile.stream().pipeThrough(new DecompressionStream("gzip"))).arrayBuffer()}catch{try{let res=await fetch(url);if(!res.ok)throw"Unable to download model";let teedBody=new Response(res.body.pipeThrough(new DecompressionStream("gzip"))).body.tee();let newDataFile=await(await getFileHandle(storepath+"/model.tgz",true)).createWritable();await newDataFile.write(await new Response(teedBody[0].pipeThrough(new CompressionStream("gzip"))).arrayBuffer());await newDataFile.close();let newIDFile=await(await getFileHandle(storepath+"/id",true)).createWritable();await newIDFile.write(id);await newIDFile.close();tar=await new Response(teedBody[1]).arrayBuffer()}catch(e){mdl.delete();throw e}}let tarStart=_malloc(tar.byteLength);GROWABLE_HEAP_U8().set(new Uint8Array(tar),tarStart);mdl.obj=new Module.CommonModel(objs.length-1,normalMdl,"/"+storepath,id,tarStart,tar.byteLength);return result}}Module.createModel=async(url,storepath,id)=>CommonModel.create(url,storepath,id,true);Module.createSpkModel=async(url,storepath,id)=>CommonModel.create(url,storepath,id,false);class Recognizer extends EventTarget{constructor(){super();objs.push(this);return new Proxy(this,{get(self,prop,_){if(self[prop]==undefined&&self.obj[prop]==undefined)return undefined;let p=self[prop];if(p)return p.bind?p.bind(self):p;p=self.obj[prop];return p.bind?p.bind(self.obj):p}})}acceptWaveform(audioData){let start=_malloc(audioData.length*4);GROWABLE_HEAP_F32().set(audioData,start/4);this.obj.acceptWaveform(start,audioData.length)}async delete(processCurrent=false){let result=new Promise((resolve,_)=>this.addEventListener("status",_=>{this.obj.delete();resolve()},{once:true}));this.obj.safeDelete(processCurrent);return result}static async create(model,sampleRate,mode,grammar,spkModel){let rec=new Recognizer;let result=new Promise((resolve,reject)=>{rec.addEventListener("status",ev=>{if(!ev.detail)resolve(rec);else reject(ev.detail)},{once:true})});switch(mode){case 1:rec.obj=new Module.Recognizer(objs.length-1,sampleRate,model);break;case 2:rec.obj=new Module.Recognizer(objs.length-1,sampleRate,model,spkModel);break;default:rec.obj=new Module.Recognizer(objs.length-1,sampleRate,model,grammar,0)}return result}}Module.createRecognizer=(model,sampleRate)=>Recognizer.create(model.obj,sampleRate,1);Module.createRecognizerWithSpkModel=(model,sampleRate,spkModel)=>Recognizer.create(model.obj,sampleRate,2,null,spkModel.obj);Module.createRecognizerWithGrm=(model,sampleRate,grammar)=>Recognizer.create(model.obj,sampleRate,3,grammar,null);var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};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){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptName){scriptDirectory=_scriptName}if(scriptDirectory.startsWith("blob:")){scriptDirectory=""}else{scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}{if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=url=>fetch(url,{credentials:"same-origin"}).then(response=>{if(response.ok){return response.arrayBuffer()}return Promise.reject(new Error(response.status+" : "+response.url))})}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.error.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];var wasmBinary=Module["wasmBinary"];var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAP64,HEAPU64,HEAPF64;function updateMemoryViews(){var b=wasmMemory.buffer;Module["HEAP8"]=HEAP8=new Int8Array(b);Module["HEAP16"]=HEAP16=new Int16Array(b);Module["HEAPU8"]=HEAPU8=new Uint8Array(b);Module["HEAPU16"]=HEAPU16=new Uint16Array(b);Module["HEAP32"]=HEAP32=new Int32Array(b);Module["HEAPU32"]=HEAPU32=new Uint32Array(b);Module["HEAPF32"]=HEAPF32=new Float32Array(b);Module["HEAPF64"]=HEAPF64=new Float64Array(b);Module["HEAP64"]=HEAP64=new BigInt64Array(b);Module["HEAPU64"]=HEAPU64=new BigUint64Array(b)}if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||330301440;wasmMemory=new WebAssembly.Memory({initial:INITIAL_MEMORY/65536,maximum:32768,shared:true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){err("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and/or recent version)")}throw Error("bad memory")}}updateMemoryViews();var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_WASM_WORKER)return _wasmWorkerInitializeRuntime();callRuntimeCallbacks(__ATINIT__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;Module["monitorRunDependencies"]?.(runDependencies)}function removeRunDependency(id){runDependencies--;Module["monitorRunDependencies"]?.(runDependencies);if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}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 dataURIPrefix="data:application/octet-stream;base64,";var isDataURI=filename=>filename.startsWith(dataURIPrefix);function findWasmBinary(){var f="Vosklet.wasm";if(!isDataURI(f)){return locateFile(f)}return f}var wasmBinaryFile;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"}function getBinaryPromise(binaryFile){if(!wasmBinary){return readAsync(binaryFile).then(response=>new Uint8Array(response),()=>getBinarySync(binaryFile))}return Promise.resolve().then(()=>getBinarySync(binaryFile))}function instantiateArrayBuffer(binaryFile,imports,receiver){return getBinaryPromise(binaryFile).then(binary=>WebAssembly.instantiate(binary,imports)).then(receiver,reason=>{err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)})}function instantiateAsync(binary,binaryFile,imports,callback){if(!binary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(binaryFile)&&typeof fetch=="function"){return fetch(binaryFile,{credentials:"same-origin"}).then(response=>{var result=WebAssembly.instantiateStreaming(response,imports);return result.then(callback,function(reason){err(`wasm streaming compile failed: ${reason}`);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(binaryFile,imports,callback)})})}return instantiateArrayBuffer(binaryFile,imports,callback)}function getWasmImports(){return{a:wasmImports}}function createWasm(){var info=getWasmImports();function receiveInstance(instance,module){wasmExports=instance.exports;wasmTable=wasmExports["$"];addOnInit(wasmExports["Y"]);wasmModule=module;removeRunDependency("wasm-instantiate");return wasmExports}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}if(Module["instantiateWasm"]){try{return Module["instantiateWasm"](info,receiveInstance)}catch(e){err(`Module.instantiateWasm callback failed with error: ${e}`);readyPromiseReject(e)}}if(!wasmBinaryFile)wasmBinaryFile=findWasmBinary();instantiateAsync(wasmBinary,wasmBinaryFile,info,receiveInstantiationResult).catch(readyPromiseReject);return{}}function mtFireEv(index,typeIdx,content){objs[index].dispatchEvent(new CustomEvent(events[typeIdx],{detail:content==0?null:UTF8ToString(content)}))}function ExitStatus(status){this.name="ExitStatus";this.message=`Program terminated with exit(${status})`;this.status=status}var _wasmWorkerDelayedMessageQueue=[];var wasmTableMirror=[];var wasmTable;var getWasmTableEntry=funcPtr=>{var func=wasmTableMirror[funcPtr];if(!func){if(funcPtr>=wasmTableMirror.length)wasmTableMirror.length=funcPtr+1;wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr)}return func};var _wasmWorkerRunPostMessage=e=>{let data=e.data;let wasmCall=data["_wsc"];wasmCall&&getWasmTableEntry(wasmCall)(...data["x"])};var _wasmWorkerAppendToQueue=e=>{_wasmWorkerDelayedMessageQueue.push(e)};var _wasmWorkerInitializeRuntime=()=>{let m=Module;__emscripten_wasm_worker_initialize(m["sb"],m["sz"]);removeEventListener("message",_wasmWorkerAppendToQueue);_wasmWorkerDelayedMessageQueue=_wasmWorkerDelayedMessageQueue.forEach(_wasmWorkerRunPostMessage);addEventListener("message",_wasmWorkerRunPostMessage)};var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};var noExitRuntime=Module["noExitRuntime"]||true;var UTF8Decoder=new TextDecoder;var UTF8ToString=(ptr,maxBytesToRead)=>{if(!ptr)return"";var maxPtr=ptr+maxBytesToRead;for(var end=ptr;!(end>=maxPtr)&&GROWABLE_HEAP_U8()[end];)++end;return UTF8Decoder.decode(GROWABLE_HEAP_U8().slice(ptr,end))};var ___assert_fail=(condition,filename,line,func)=>{abort(`Assertion failed: ${UTF8ToString(condition)}, at: `+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])};var ___call_sighandler=(fp,sig)=>getWasmTableEntry(fp)(sig);class ExceptionInfo{constructor(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24}set_type(type){GROWABLE_HEAP_U32()[this.ptr+4>>2]=type}get_type(){return GROWABLE_HEAP_U32()[this.ptr+4>>2]}set_destructor(destructor){GROWABLE_HEAP_U32()[this.ptr+8>>2]=destructor}get_destructor(){return GROWABLE_HEAP_U32()[this.ptr+8>>2]}set_caught(caught){caught=caught?1:0;GROWABLE_HEAP_I8()[this.ptr+12]=caught}get_caught(){return GROWABLE_HEAP_I8()[this.ptr+12]!=0}set_rethrown(rethrown){rethrown=rethrown?1:0;GROWABLE_HEAP_I8()[this.ptr+13]=rethrown}get_rethrown(){return GROWABLE_HEAP_I8()[this.ptr+13]!=0}init(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor)}set_adjusted_ptr(adjustedPtr){GROWABLE_HEAP_U32()[this.ptr+16>>2]=adjustedPtr}get_adjusted_ptr(){return GROWABLE_HEAP_U32()[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 __abort_js=()=>{abort("")};var embindRepr=v=>{if(v===null){return"null"}var t=typeof v;if(t==="object"||t==="array"||t==="function"){return v.toString()}else{return""+v}};var embind_init_charCodes=()=>{var codes=new Array(256);for(var i=0;i<256;++i){codes[i]=String.fromCharCode(i)}embind_charCodes=codes};var embind_charCodes;var readLatin1String=ptr=>{var ret="";var c=ptr;while(GROWABLE_HEAP_U8()[c]){ret+=embind_charCodes[GROWABLE_HEAP_U8()[c++]]}return ret};var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var BindingError;var throwBindingError=message=>{throw new BindingError(message)};var 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{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)}};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=>GROWABLE_HEAP_I8()[pointer]:pointer=>GROWABLE_HEAP_U8()[pointer];case 2:return signed?pointer=>GROWABLE_HEAP_I16()[pointer>>1]:pointer=>GROWABLE_HEAP_U16()[pointer>>1];case 4:return signed?pointer=>GROWABLE_HEAP_I32()[pointer>>2]:pointer=>GROWABLE_HEAP_U32()[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=readLatin1String(name);var isUnsignedType=name.indexOf("u")!=-1;if(isUnsignedType){maxRange=(1n<<64n)-1n}registerType(primitiveType,{name,fromWireType:value=>value,toWireType:function(destructors,value){if(typeof value!="bigint"&&typeof value!="number"){throw new TypeError(`Cannot convert "${embindRepr(value)}" to ${this.name}`)}if(typeof value=="number"){value=BigInt(value)}return value},argPackAdvance:GenericWireTypeSize,readValueFromPointer:integerReadValueFromPointer(name,size,!isUnsignedType),destructorFunction:null})};var GenericWireTypeSize=8;var __embind_register_bool=(rawType,name,trueValue,falseValue)=>{name=readLatin1String(name);registerType(rawType,{name,fromWireType:function(wt){return!!wt},toWireType:function(destructors,o){return o?trueValue:falseValue},argPackAdvance:GenericWireTypeSize,readValueFromPointer:function(pointer){return this["fromWireType"](GROWABLE_HEAP_U8()[pointer])},destructorFunction:null})};var shallowCopyInternalPointer=o=>({count:o.count,deleteScheduled:o.deleteScheduled,preservePointerOnDelete:o.preservePointerOnDelete,ptr:o.ptr,ptrType:o.ptrType,smartPtr:o.smartPtr,smartPtrType:o.smartPtrType});var throwInstanceAlreadyDeleted=obj=>{function getInstanceTypeName(handle){return handle.$$.ptrType.registeredClass.name}throwBindingError(getInstanceTypeName(obj)+" instance already deleted")};var finalizationRegistry=false;var detachFinalizer=handle=>{};var runDestructor=$$=>{if($$.smartPtr){$$.smartPtrType.rawDestructor($$.smartPtr)}else{$$.ptrType.registeredClass.rawDestructor($$.ptr)}};var releaseClassHandle=$$=>{$$.count.value-=1;var toDelete=0===$$.count.value;if(toDelete){runDestructor($$)}};var downcastPointer=(ptr,ptrClass,desiredClass)=>{if(ptrClass===desiredClass){return ptr}if(undefined===desiredClass.baseClass){return null}var rv=downcastPointer(ptr,ptrClass,desiredClass.baseClass);if(rv===null){return null}return desiredClass.downcast(rv)};var registeredPointers={};var getInheritedInstanceCount=()=>Object.keys(registeredInstances).length;var getLiveInheritedInstances=()=>{var rv=[];for(var k in registeredInstances){if(registeredInstances.hasOwnProperty(k)){rv.push(registeredInstances[k])}}return rv};var deletionQueue=[];var flushPendingDeletes=()=>{while(deletionQueue.length){var obj=deletionQueue.pop();obj.$$.deleteScheduled=false;obj["delete"]()}};var delayFunction;var setDelayFunction=fn=>{delayFunction=fn;if(deletionQueue.length&&delayFunction){delayFunction(flushPendingDeletes)}};var init_embind=()=>{Module["getInheritedInstanceCount"]=getInheritedInstanceCount;Module["getLiveInheritedInstances"]=getLiveInheritedInstances;Module["flushPendingDeletes"]=flushPendingDeletes;Module["setDelayFunction"]=setDelayFunction};var registeredInstances={};var getBasestPointer=(class_,ptr)=>{if(ptr===undefined){throwBindingError("ptr should not be undefined")}while(class_.baseClass){ptr=class_.upcast(ptr);class_=class_.baseClass}return ptr};var getInheritedInstance=(class_,ptr)=>{ptr=getBasestPointer(class_,ptr);return registeredInstances[ptr]};var makeClassHandle=(prototype,record)=>{if(!record.ptrType||!record.ptr){throwInternalError("makeClassHandle requires ptr and ptrType")}var hasSmartPtrType=!!record.smartPtrType;var hasSmartPtr=!!record.smartPtr;if(hasSmartPtrType!==hasSmartPtr){throwInternalError("Both smartPtrType and smartPtr must be specified")}record.count={value:1};return attachFinalizer(Object.create(prototype,{$$:{value:record,writable:true}}))};function RegisteredPointer_fromWireType(ptr){var rawPointer=this.getPointee(ptr);if(!rawPointer){this.destructor(ptr);return null}var registeredInstance=getInheritedInstance(this.registeredClass,rawPointer);if(undefined!==registeredInstance){if(0===registeredInstance.$$.count.value){registeredInstance.$$.ptr=rawPointer;registeredInstance.$$.smartPtr=ptr;return registeredInstance["clone"]()}else{var rv=registeredInstance["clone"]();this.destructor(ptr);return rv}}function makeDefaultHandle(){if(this.isSmartPointer){return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:rawPointer,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this,ptr})}}var actualType=this.registeredClass.getActualType(rawPointer);var registeredPointerRecord=registeredPointers[actualType];if(!registeredPointerRecord){return makeDefaultHandle.call(this)}var toType;if(this.isConst){toType=registeredPointerRecord.constPointerType}else{toType=registeredPointerRecord.pointerType}var dp=downcastPointer(rawPointer,this.registeredClass,toType.registeredClass);if(dp===null){return makeDefaultHandle.call(this)}if(this.isSmartPointer){return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp})}}var attachFinalizer=handle=>{if("undefined"===typeof FinalizationRegistry){attachFinalizer=handle=>handle;return handle}finalizationRegistry=new FinalizationRegistry(info=>{releaseClassHandle(info.$$)});attachFinalizer=handle=>{var $$=handle.$$;var hasSmartPtr=!!$$.smartPtr;if(hasSmartPtr){var info={$$};finalizationRegistry.register(handle,info,handle)}return handle};detachFinalizer=handle=>finalizationRegistry.unregister(handle);return attachFinalizer(handle)};var init_ClassHandle=()=>{Object.assign(ClassHandle.prototype,{isAliasOf(other){if(!(this instanceof ClassHandle)){return false}if(!(other instanceof ClassHandle)){return false}var leftClass=this.$$.ptrType.registeredClass;var left=this.$$.ptr;other.$$=other.$$;var rightClass=other.$$.ptrType.registeredClass;var right=other.$$.ptr;while(leftClass.baseClass){left=leftClass.upcast(left);leftClass=leftClass.baseClass}while(rightClass.baseClass){right=rightClass.upcast(right);rightClass=rightClass.baseClass}return leftClass===rightClass&&left===right},clone(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.preservePointerOnDelete){this.$$.count.value+=1;return this}else{var clone=attachFinalizer(Object.create(Object.getPrototypeOf(this),{$$:{value:shallowCopyInternalPointer(this.$$)}}));clone.$$.count.value+=1;clone.$$.deleteScheduled=false;return clone}},delete(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion")}detachFinalizer(this);releaseClassHandle(this.$$);if(!this.$$.preservePointerOnDelete){this.$$.smartPtr=undefined;this.$$.ptr=undefined}},isDeleted(){return!this.$$.ptr},deleteLater(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion")}deletionQueue.push(this);if(deletionQueue.length===1&&delayFunction){delayFunction(flushPendingDeletes)}this.$$.deleteScheduled=true;return this}})};function ClassHandle(){}var createNamedFunction=(name,body)=>Object.defineProperty(body,"name",{value:name});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.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;if(undefined!==numArguments){Module[name].numArguments=numArguments}}};var char_0=48;var char_9=57;var makeLegalFunctionName=name=>{if(undefined===name){return"_unknown"}name=name.replace(/[^a-zA-Z0-9_]/g,"$");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return`_${name}`}return name};function RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast){this.name=name;this.constructor=constructor;this.instancePrototype=instancePrototype;this.rawDestructor=rawDestructor;this.baseClass=baseClass;this.getActualType=getActualType;this.upcast=upcast;this.downcast=downcast;this.pureVirtualFunctions=[]}var upcastPointer=(ptr,ptrClass,desiredClass)=>{while(ptrClass!==desiredClass){if(!ptrClass.upcast){throwBindingError(`Expected null or instance of ${desiredClass.name}, got an instance of ${ptrClass.name}`)}ptr=ptrClass.upcast(ptr);ptrClass=ptrClass.baseClass}return ptr};function constNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError(`null is not a valid ${this.name}`)}return 0}if(!handle.$$){throwBindingError(`Cannot pass "${embindRepr(handle)}" as a ${this.name}`)}if(!handle.$$.ptr){throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function genericPointerToWireType(destructors,handle){var ptr;if(handle===null){if(this.isReference){throwBindingError(`null is not a valid ${this.name}`)}if(this.isSmartPointer){ptr=this.rawConstructor();if(destructors!==null){destructors.push(this.rawDestructor,ptr)}return ptr}else{return 0}}if(!handle||!handle.$$){throwBindingError(`Cannot pass "${embindRepr(handle)}" as a ${this.name}`)}if(!handle.$$.ptr){throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`)}if(!this.isConst&&handle.$$.ptrType.isConst){throwBindingError(`Cannot convert argument of type ${handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name} to parameter type ${this.name}`)}var handleClass=handle.$$.ptrType.registeredClass;ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);if(this.isSmartPointer){if(undefined===handle.$$.smartPtr){throwBindingError("Passing raw pointer to smart pointer is illegal")}switch(this.sharingPolicy){case 0:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{throwBindingError(`Cannot convert argument of type ${handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name} to parameter type ${this.name}`)}break;case 1:ptr=handle.$$.smartPtr;break;case 2:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{var clonedHandle=handle["clone"]();ptr=this.rawShare(ptr,Emval.toHandle(()=>clonedHandle["delete"]()));if(destructors!==null){destructors.push(this.rawDestructor,ptr)}}break;default:throwBindingError("Unsupporting sharing policy")}}return ptr}function nonConstNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError(`null is not a valid ${this.name}`)}return 0}if(!handle.$$){throwBindingError(`Cannot pass "${embindRepr(handle)}" as a ${this.name}`)}if(!handle.$$.ptr){throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`)}if(handle.$$.ptrType.isConst){throwBindingError(`Cannot convert argument of type ${handle.$$.ptrType.name} to parameter type ${this.name}`)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function readPointer(pointer){return this["fromWireType"](GROWABLE_HEAP_U32()[pointer>>2])}var init_RegisteredPointer=()=>{Object.assign(RegisteredPointer.prototype,{getPointee(ptr){if(this.rawGetPointee){ptr=this.rawGetPointee(ptr)}return ptr},destructor(ptr){this.rawDestructor?.(ptr)},argPackAdvance:GenericWireTypeSize,readValueFromPointer:readPointer,fromWireType:RegisteredPointer_fromWireType})};function RegisteredPointer(name,registeredClass,isReference,isConst,isSmartPointer,pointeeType,sharingPolicy,rawGetPointee,rawConstructor,rawShare,rawDestructor){this.name=name;this.registeredClass=registeredClass;this.isReference=isReference;this.isConst=isConst;this.isSmartPointer=isSmartPointer;this.pointeeType=pointeeType;this.sharingPolicy=sharingPolicy;this.rawGetPointee=rawGetPointee;this.rawConstructor=rawConstructor;this.rawShare=rawShare;this.rawDestructor=rawDestructor;if(!isSmartPointer&®isteredClass.baseClass===undefined){if(isConst){this["toWireType"]=constNoSmartPtrRawPointerToWireType;this.destructorFunction=null}else{this["toWireType"]=nonConstNoSmartPtrRawPointerToWireType;this.destructorFunction=null}}else{this["toWireType"]=genericPointerToWireType}}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 embind__requireFunction=(signature,rawFunction)=>{signature=readLatin1String(signature);function makeDynCaller(){return getWasmTableEntry(rawFunction)}var fp=makeDynCaller();if(typeof fp!="function"){throwBindingError(`unknown function pointer with signature ${signature}: ${rawFunction}`)}return fp};var extendError=(baseErrorType,errorName)=>{var errorClass=createNamedFunction(errorName,function(message){this.name=errorName;this.message=message;var stack=new Error(message).stack;if(stack!==undefined){this.stack=this.toString()+"\n"+stack.replace(/^Error(:[^\n]*)?\n/,"")}});errorClass.prototype=Object.create(baseErrorType.prototype);errorClass.prototype.constructor=errorClass;errorClass.prototype.toString=function(){if(this.message===undefined){return this.name}else{return`${this.name}: ${this.message}`}};return errorClass};var UnboundTypeError;var getTypeName=type=>{var ptr=___getTypeName(type);var rv=readLatin1String(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 __embind_register_class=(rawType,rawPointerType,rawConstPointerType,baseClassRawType,getActualTypeSignature,getActualType,upcastSignature,upcast,downcastSignature,downcast,name,destructorSignature,rawDestructor)=>{name=readLatin1String(name);getActualType=embind__requireFunction(getActualTypeSignature,getActualType);upcast&&=embind__requireFunction(upcastSignature,upcast);downcast&&=embind__requireFunction(downcastSignature,downcast);rawDestructor=embind__requireFunction(destructorSignature,rawDestructor);var legalFunctionName=makeLegalFunctionName(name);exposePublicSymbol(legalFunctionName,function(){throwUnboundTypeError(`Cannot construct ${name} due to unbound types`,[baseClassRawType])});whenDependentTypesAreResolved([rawType,rawPointerType,rawConstPointerType],baseClassRawType?[baseClassRawType]:[],base=>{base=base[0];var baseClass;var basePrototype;if(baseClassRawType){baseClass=base.registeredClass;basePrototype=baseClass.instancePrototype}else{basePrototype=ClassHandle.prototype}var constructor=createNamedFunction(name,function(...args){if(Object.getPrototypeOf(this)!==instancePrototype){throw new BindingError("Use 'new' to construct "+name)}if(undefined===registeredClass.constructor_body){throw new BindingError(name+" has no accessible constructor")}var body=registeredClass.constructor_body[args.length];if(undefined===body){throw new BindingError(`Tried to invoke ctor of ${name} with invalid number of parameters (${args.length}) - expected (${Object.keys(registeredClass.constructor_body).toString()}) parameters instead!`)}return body.apply(this,args)});var instancePrototype=Object.create(basePrototype,{constructor:{value:constructor}});constructor.prototype=instancePrototype;var registeredClass=new RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast);if(registeredClass.baseClass){registeredClass.baseClass.__derivedClasses??=[];registeredClass.baseClass.__derivedClasses.push(registeredClass)}var referenceConverter=new RegisteredPointer(name,registeredClass,true,false,false);var pointerConverter=new RegisteredPointer(name+"*",registeredClass,false,false,false);var constPointerConverter=new RegisteredPointer(name+" const*",registeredClass,false,true,false);registeredPointers[rawType]={pointerType:pointerConverter,constPointerType:constPointerConverter};replacePublicSymbol(legalFunctionName,constructor);return[referenceConverter,pointerConverter,constPointerConverter]})};var heap32VectorToArray=(count,firstElement)=>{var array=[];for(var i=0;i>2])}return array};var runDestructors=destructors=>{while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}};function usesDestructorStack(argTypes){for(var i=1;i{var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);invoker=embind__requireFunction(invokerSignature,invoker);whenDependentTypesAreResolved([],[rawClassType],classType=>{classType=classType[0];var humanName=`constructor ${classType.name}`;if(undefined===classType.registeredClass.constructor_body){classType.registeredClass.constructor_body=[]}if(undefined!==classType.registeredClass.constructor_body[argCount-1]){throw new BindingError(`Cannot register multiple constructors with identical number of parameters (${argCount-1}) for class '${classType.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`)}classType.registeredClass.constructor_body[argCount-1]=()=>{throwUnboundTypeError(`Cannot construct ${classType.name} due to unbound types`,rawArgTypes)};whenDependentTypesAreResolved([],rawArgTypes,argTypes=>{argTypes.splice(1,0,null);classType.registeredClass.constructor_body[argCount-1]=craftInvokerFunction(humanName,argTypes,null,invoker,rawConstructor);return[]});return[]})};var getFunctionName=signature=>{signature=signature.trim();const argsIndex=signature.indexOf("(");if(argsIndex!==-1){return signature.substr(0,argsIndex)}else{return signature}};var __embind_register_class_function=(rawClassType,methodName,argCount,rawArgTypesAddr,invokerSignature,rawInvoker,context,isPureVirtual,isAsync,isNonnullReturn)=>{var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);methodName=readLatin1String(methodName);methodName=getFunctionName(methodName);rawInvoker=embind__requireFunction(invokerSignature,rawInvoker);whenDependentTypesAreResolved([],[rawClassType],classType=>{classType=classType[0];var humanName=`${classType.name}.${methodName}`;if(methodName.startsWith("@@")){methodName=Symbol[methodName.substring(2)]}if(isPureVirtual){classType.registeredClass.pureVirtualFunctions.push(methodName)}function unboundTypesHandler(){throwUnboundTypeError(`Cannot call ${humanName} due to unbound types`,rawArgTypes)}var proto=classType.registeredClass.instancePrototype;var method=proto[methodName];if(undefined===method||undefined===method.overloadTable&&method.className!==classType.name&&method.argCount===argCount-2){unboundTypesHandler.argCount=argCount-2;unboundTypesHandler.className=classType.name;proto[methodName]=unboundTypesHandler}else{ensureOverloadTable(proto,methodName,humanName);proto[methodName].overloadTable[argCount-2]=unboundTypesHandler}whenDependentTypesAreResolved([],rawArgTypes,argTypes=>{var memberFunction=craftInvokerFunction(humanName,argTypes,classType,rawInvoker,context,isAsync);if(undefined===proto[methodName].overloadTable){memberFunction.argCount=argCount-2;proto[methodName]=memberFunction}else{proto[methodName].overloadTable[argCount-2]=memberFunction}return[]});return[]})};var emval_freelist=[];var emval_handles=[];var __emval_decref=handle=>{if(handle>9&&0===--emval_handles[handle+1]){emval_handles[handle]=undefined;emval_freelist.push(handle)}};var count_emval_handles=()=>emval_handles.length/2-5-emval_freelist.length;var init_emval=()=>{emval_handles.push(0,1,undefined,1,null,1,true,1,false,1);Module["count_emval_handles"]=count_emval_handles};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),argPackAdvance:GenericWireTypeSize,readValueFromPointer:readPointer,destructorFunction:null};var __embind_register_emval=rawType=>registerType(rawType,EmValType);var enumReadValueFromPointer=(name,width,signed)=>{switch(width){case 1:return signed?function(pointer){return this["fromWireType"](GROWABLE_HEAP_I8()[pointer])}:function(pointer){return this["fromWireType"](GROWABLE_HEAP_U8()[pointer])};case 2:return signed?function(pointer){return this["fromWireType"](GROWABLE_HEAP_I16()[pointer>>1])}:function(pointer){return this["fromWireType"](GROWABLE_HEAP_U16()[pointer>>1])};case 4:return signed?function(pointer){return this["fromWireType"](GROWABLE_HEAP_I32()[pointer>>2])}:function(pointer){return this["fromWireType"](GROWABLE_HEAP_U32()[pointer>>2])};default:throw new TypeError(`invalid integer width (${width}): ${name}`)}};var __embind_register_enum=(rawType,name,size,isSigned)=>{name=readLatin1String(name);function ctor(){}ctor.values={};registerType(rawType,{name,constructor:ctor,fromWireType:function(c){return this.constructor.values[c]},toWireType:(destructors,c)=>c.value,argPackAdvance:GenericWireTypeSize,readValueFromPointer:enumReadValueFromPointer(name,size,isSigned),destructorFunction:null});exposePublicSymbol(name,ctor)};var requireRegisteredType=(rawType,humanName)=>{var impl=registeredTypes[rawType];if(undefined===impl){throwBindingError(`${humanName} has unknown type ${getTypeName(rawType)}`)}return impl};var __embind_register_enum_value=(rawEnumType,name,enumValue)=>{var enumType=requireRegisteredType(rawEnumType,"enum");name=readLatin1String(name);var Enum=enumType.constructor;var Value=Object.create(enumType.constructor.prototype,{value:{value:enumValue},constructor:{value:createNamedFunction(`${enumType.name}_${name}`,function(){})}});Enum.values[enumValue]=Value;Enum[name]=Value};var floatReadValueFromPointer=(name,width)=>{switch(width){case 4:return function(pointer){return this["fromWireType"](GROWABLE_HEAP_F32()[pointer>>2])};case 8:return function(pointer){return this["fromWireType"](GROWABLE_HEAP_F64()[pointer>>3])};default:throw new TypeError(`invalid float width (${width}): ${name}`)}};var __embind_register_float=(rawType,name,size)=>{name=readLatin1String(name);registerType(rawType,{name,fromWireType:value=>value,toWireType:(destructors,value)=>value,argPackAdvance:GenericWireTypeSize,readValueFromPointer:floatReadValueFromPointer(name,size),destructorFunction:null})};var __embind_register_function=(name,argCount,rawArgTypesAddr,signature,rawInvoker,fn,isAsync,isNonnullReturn)=>{var argTypes=heap32VectorToArray(argCount,rawArgTypesAddr);name=readLatin1String(name);name=getFunctionName(name);rawInvoker=embind__requireFunction(signature,rawInvoker);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=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var fromWireType=value=>value;if(minRange===0){var bitshift=32-8*size;fromWireType=value=>value<>>bitshift}var isUnsignedType=name.includes("unsigned");var checkAssertions=(value,toTypeName)=>{};var toWireType;if(isUnsignedType){toWireType=function(destructors,value){checkAssertions(value,this.name);return value>>>0}}else{toWireType=function(destructors,value){checkAssertions(value,this.name);return value}}registerType(primitiveType,{name,fromWireType,toWireType,argPackAdvance:GenericWireTypeSize,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=GROWABLE_HEAP_U32()[handle>>2];var data=GROWABLE_HEAP_U32()[handle+4>>2];return new TA(GROWABLE_HEAP_I8().buffer,data,size)}name=readLatin1String(name);registerType(rawType,{name,fromWireType:decodeMemoryView,argPackAdvance:GenericWireTypeSize,readValueFromPointer:decodeMemoryView},{ignoreDuplicateRegistrations:true})};var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}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}}heap[outIdx]=0;return outIdx-startIdx};var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,GROWABLE_HEAP_U8(),outPtr,maxBytesToWrite);var lengthBytesUTF8=str=>{var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var __embind_register_std_string=(rawType,name)=>{name=readLatin1String(name);var stdStringIsUTF8=name==="std::string";registerType(rawType,{name,fromWireType(value){var length=GROWABLE_HEAP_U32()[value>>2];var payload=value+4;var str;if(stdStringIsUTF8){var decodeStartPtr=payload;for(var i=0;i<=length;++i){var currentBytePtr=payload+i;if(i==length||GROWABLE_HEAP_U8()[currentBytePtr]==0){var maxRead=currentBytePtr-decodeStartPtr;var stringSegment=UTF8ToString(decodeStartPtr,maxRead);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+1}}}else{var a=new Array(length);for(var i=0;i>2]=length;if(stdStringIsUTF8&&valueIsOfTypeString){stringToUTF8(value,ptr,length+1)}else{if(valueIsOfTypeString){for(var i=0;i255){_free(ptr);throwBindingError("String has UTF-16 code units that do not fit in 8 bits")}GROWABLE_HEAP_U8()[ptr+i]=charCode}}else{for(var i=0;i{var endPtr=ptr;var idx=endPtr>>1;var maxIdx=idx+maxBytesToRead/2;while(!(idx>=maxIdx)&&GROWABLE_HEAP_U16()[idx])++idx;endPtr=idx<<1;return UTF16Decoder.decode(GROWABLE_HEAP_U8().slice(ptr,endPtr))};var stringToUTF16=(str,outPtr,maxBytesToWrite)=>{maxBytesToWrite??=2147483647;if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}GROWABLE_HEAP_I16()[outPtr>>1]=0;return outPtr-startPtr};var lengthBytesUTF16=str=>str.length*2;var UTF32ToString=(ptr,maxBytesToRead)=>{var i=0;var str="";while(!(i>=maxBytesToRead/4)){var utf32=GROWABLE_HEAP_I32()[ptr+i*4>>2];if(utf32==0)break;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(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=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}GROWABLE_HEAP_I32()[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}GROWABLE_HEAP_I32()[outPtr>>2]=0;return outPtr-startPtr};var lengthBytesUTF32=str=>{var len=0;for(var i=0;i=55296&&codeUnit<=57343)++i;len+=4}return len};var __embind_register_std_wstring=(rawType,charSize,name)=>{name=readLatin1String(name);var decodeString,encodeString,readCharAt,lengthBytesUTF;if(charSize===2){decodeString=UTF16ToString;encodeString=stringToUTF16;lengthBytesUTF=lengthBytesUTF16;readCharAt=pointer=>GROWABLE_HEAP_U16()[pointer>>1]}else if(charSize===4){decodeString=UTF32ToString;encodeString=stringToUTF32;lengthBytesUTF=lengthBytesUTF32;readCharAt=pointer=>GROWABLE_HEAP_U32()[pointer>>2]}registerType(rawType,{name,fromWireType:value=>{var length=GROWABLE_HEAP_U32()[value>>2];var str;var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i*charSize;if(i==length||readCharAt(currentBytePtr)==0){var maxReadBytes=currentBytePtr-decodeStartPtr;var stringSegment=decodeString(decodeStartPtr,maxReadBytes);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+charSize}}_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);GROWABLE_HEAP_U32()[ptr>>2]=length/charSize;encodeString(value,ptr+4,length+charSize);if(destructors!==null){destructors.push(_free,ptr)}return ptr},argPackAdvance:GenericWireTypeSize,readValueFromPointer:readPointer,destructorFunction(ptr){_free(ptr)}})};var __embind_register_void=(rawType,name)=>{name=readLatin1String(name);registerType(rawType,{isVoid:true,name,argPackAdvance:0,fromWireType:()=>undefined,toWireType:(destructors,o)=>undefined})};var _wasmWorkers={};var _wasmWorkersID=1;var _wasmWorkerBlobUrl=URL.createObjectURL(new Blob(["onmessage=function(d){onmessage=null;d=d.data;d[`instantiateWasm`]=(i,r)=>{var n=new WebAssembly.Instance(d[`wasm`],i);return r(n,d[`wasm`]);};importScripts(d.js);loadVosklet(d);d.wasm=d.mem=d.js=0;}"],{type:"application/javascript"}));var __emscripten_create_wasm_worker=(stackLowestAddress,stackSize)=>{let worker=_wasmWorkers[_wasmWorkersID]=new Worker(_wasmWorkerBlobUrl);worker.postMessage({$ww:_wasmWorkersID,wasm:wasmModule,js:Module["mainScriptUrlOrBlob"]||_scriptName,wasmMemory,sb:stackLowestAddress,sz:stackSize});worker.onmessage=_wasmWorkerRunPostMessage;return _wasmWorkersID++};var nowIsMonotonic=1;var __emscripten_get_now_is_monotonic=()=>nowIsMonotonic;var __emscripten_runtime_keepalive_clear=()=>{noExitRuntime=false;runtimeKeepaliveCounter=0};var timers={};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 _emscripten_get_now;_emscripten_get_now=()=>performance.now();var __setitimer_js=(which,timeout_ms)=>{if(timers[which]){clearTimeout(timers[which].id);delete timers[which]}if(!timeout_ms)return 0;var id=setTimeout(()=>{delete timers[which];callUserCallback(()=>__emscripten_timeout(which,_emscripten_get_now()))},timeout_ms);timers[which]={id,timeout_ms};return 0};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);GROWABLE_HEAP_U32()[timezone>>2]=stdTimezoneOffset*60;GROWABLE_HEAP_I32()[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(summerOffsetGROWABLE_HEAP_U8().set(wasmFSPreloadedFiles[index].fileData,buffer);var wasmFSPreloadedDirs=[];var __wasmfs_get_num_preloaded_dirs=()=>wasmFSPreloadedDirs.length;var wasmFSPreloadedFiles=[];var wasmFSPreloadingFlushed=false;var __wasmfs_get_num_preloaded_files=()=>{wasmFSPreloadingFlushed=true;return wasmFSPreloadedFiles.length};var __wasmfs_get_preloaded_child_path=(index,childNameBuffer)=>{var s=wasmFSPreloadedDirs[index].childName;var len=lengthBytesUTF8(s)+1;stringToUTF8(s,childNameBuffer,len)};var __wasmfs_get_preloaded_file_mode=index=>wasmFSPreloadedFiles[index].mode;var __wasmfs_get_preloaded_file_size=index=>wasmFSPreloadedFiles[index].fileData.length;var __wasmfs_get_preloaded_parent_path=(index,parentPathBuffer)=>{var s=wasmFSPreloadedDirs[index].parentPath;var len=lengthBytesUTF8(s)+1;stringToUTF8(s,parentPathBuffer,len)};var __wasmfs_get_preloaded_path_name=(index,fileNameBuffer)=>{var s=wasmFSPreloadedFiles[index].pathName;var len=lengthBytesUTF8(s)+1;stringToUTF8(s,fileNameBuffer,len)};var FS_stdin_getChar_buffer=[];function 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 __wasmfs_stdin_get_char=()=>{var c=FS_stdin_getChar();if(typeof c==="number"){return c}return-1};var _emscripten_console_error=str=>{console.error(UTF8ToString(str))};var _emscripten_console_log=str=>{console.log(UTF8ToString(str))};var _emscripten_console_warn=str=>{console.warn(UTF8ToString(str))};var _emscripten_date_now=()=>Date.now();var _emscripten_err=str=>err(UTF8ToString(str));var _emscripten_out=str=>out(UTF8ToString(str));var getHeapMax=()=>2147483648;var alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;var growMemory=size=>{var b=wasmMemory.buffer;var pages=(size-b.byteLength+65535)/65536;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};var _emscripten_resize_heap=requestedSize=>{var oldSize=GROWABLE_HEAP_U8().length;requestedSize>>>=0;if(requestedSize<=oldSize){return false}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 _wasmWorkerPostFunction2=(id,funcPtr,arg0,arg1)=>{_wasmWorkers[id].postMessage({_wsc:funcPtr,x:[arg0,arg1]})};var _emscripten_wasm_worker_post_function_vii=_wasmWorkerPostFunction2;var _wasmWorkerPostFunction3=(id,funcPtr,arg0,arg1,arg2)=>{_wasmWorkers[id].postMessage({_wsc:funcPtr,x:[arg0,arg1,arg2]})};var _emscripten_wasm_worker_post_function_viii=_wasmWorkerPostFunction3;var ENV={};var getExecutableName=()=>thisProgram||"./this.program";var getEnvStrings=()=>{if(!getEnvStrings.strings){var lang=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"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 stringToAscii=(str,buffer)=>{for(var i=0;i{var bufSize=0;getEnvStrings().forEach((string,i)=>{var ptr=environ_buf+bufSize;GROWABLE_HEAP_U32()[__environ+i*4>>2]=ptr;stringToAscii(string,ptr);bufSize+=string.length+1});return 0};var _environ_sizes_get=(penviron_count,penviron_buf_size)=>{var strings=getEnvStrings();GROWABLE_HEAP_U32()[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(string=>bufSize+=string.length+1);GROWABLE_HEAP_U32()[penviron_buf_size>>2]=bufSize;return 0};var initRandomFill=()=>{if(typeof crypto=="object"&&typeof crypto["getRandomValues"]=="function"){return view=>(view.set(crypto.getRandomValues(new Uint8Array(view.byteLength))),view)}else abort("initRandomDevice")};var randomFill=view=>(randomFill=initRandomFill())(view);var _getentropy=(buffer,size)=>{randomFill(GROWABLE_HEAP_U8().subarray(buffer,buffer+size));return 0};embind_init_charCodes();BindingError=Module["BindingError"]=class BindingError extends Error{constructor(message){super(message);this.name="BindingError"}};InternalError=Module["InternalError"]=class InternalError extends Error{constructor(message){super(message);this.name="InternalError"}};init_ClassHandle();init_embind();init_RegisteredPointer();UnboundTypeError=Module["UnboundTypeError"]=extendError(Error,"UnboundTypeError");init_emval();if(ENVIRONMENT_IS_WASM_WORKER){_wasmWorkers[0]=this;addEventListener("message",_wasmWorkerAppendToQueue)}var wasmImports={c:___assert_fail,t:___call_sighandler,d:___cxa_throw,P:__abort_js,q:__embind_register_bigint,S:__embind_register_bool,o:__embind_register_class,j:__embind_register_class_constructor,g:__embind_register_class_function,R:__embind_register_emval,s:__embind_register_enum,k:__embind_register_enum_value,p:__embind_register_float,C:__embind_register_function,i:__embind_register_integer,e:__embind_register_memory_view,r:__embind_register_std_string,n:__embind_register_std_wstring,T:__embind_register_void,I:__emscripten_create_wasm_worker,O:__emscripten_get_now_is_monotonic,v:__emscripten_runtime_keepalive_clear,w:__setitimer_js,K:__tzset_js,E:__wasmfs_copy_preloaded_file_data,B:__wasmfs_get_num_preloaded_dirs,D:__wasmfs_get_num_preloaded_files,z:__wasmfs_get_preloaded_child_path,x:__wasmfs_get_preloaded_file_mode,F:__wasmfs_get_preloaded_file_size,A:__wasmfs_get_preloaded_parent_path,y:__wasmfs_get_preloaded_path_name,H:__wasmfs_stdin_get_char,U:_emscripten_console_error,W:_emscripten_console_log,V:_emscripten_console_warn,f:_emscripten_date_now,l:_emscripten_err,m:_emscripten_get_now,G:_emscripten_out,L:_emscripten_resize_heap,Q:_emscripten_wasm_worker_post_function_vii,h:_emscripten_wasm_worker_post_function_viii,M:_environ_get,N:_environ_sizes_get,b:_exit,J:_getentropy,a:wasmMemory,X:mtFireEv,u:_proc_exit};var wasmExports=createWasm();var ___wasm_call_ctors=()=>(___wasm_call_ctors=wasmExports["Y"])();var _free=a0=>(_free=wasmExports["Z"])(a0);var _malloc=Module["_malloc"]=a0=>(_malloc=Module["_malloc"]=wasmExports["_"])(a0);var ___getTypeName=a0=>(___getTypeName=wasmExports["aa"])(a0);var __emscripten_timeout=(a0,a1)=>(__emscripten_timeout=wasmExports["ba"])(a0,a1);var __emscripten_wasm_worker_initialize=(a0,a1)=>(__emscripten_wasm_worker_initialize=wasmExports["ca"])(a0,a1);Module["UTF8ToString"]=UTF8ToString;var calledRun;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(){if(runDependencies>0){return}if(ENVIRONMENT_IS_WASM_WORKER){readyPromiseResolve(Module);return initRuntime()}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);Module["onRuntimeInitialized"]?.();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(()=>{setTimeout(()=>Module["setStatus"](""),1);doRun()},1)}else{doRun()}}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}run();moduleRtn=readyPromise; return moduleRtn; diff --git a/Examples/Vosklet.wasm b/Examples/Vosklet.wasm index 2ae7518d64c2674d396b1a23e38aed9deb926763..a1443ae0165fe88b4128aab31dcc4cab08d20347 100755 GIT binary patch delta 52742 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 R;NKYjjV;Z(afkTD{|B;tw95bh delta 54270 zcmb@v2b@&Z+4w)V&7FIv?%vtHuy^h*%d&JqKtN!SUId~sCK?T0()Q!R;_@>>4i=iJ#{F!A?$fA8ln!nx(#Q=aqm z=Q(E{xa?BnzN;=ZHrvMfywTp2>Z|^j_)NP0lG5l~zts4Z;csm)drfzOvC=p?kz4;w zyFDw{$0uz5Jt5J({uX(DL>~GUUAmg8HNVRf2ymep;Twq+zN%S?<+Sc&?CVVV4Ar);ScElV1shTD!|*_LCBrhany zilot*Xy<#|H2FATa^c&yZ5T$v8EzTPhA}+pm>(OSuq`{ZBBRbW4@%hk9&C6GN=v@Cs zaA;Q^{=Fu#$|vi?&9XBP_=>r#q%&Tc&H(*h#};thR5D zUcc5YE}8P_WXeut7y%P?Oe4eK&BXp@V!D$!Vg_?d0E+|@N|;9`Op_vS8p)(>PO@#l zXQfO%Z93_my#9H2LTRSOFbsKV*^Zy^X@V=$GLzq*P><%j+*n zO(>3IzIBFa$|{+b;m`J++3TN6)f+R{zmuBLcz|vB{{D$1@2sQ?kQtz1SO=_M;>`q3 z=Xnc)uE0O;_!Gt^SFN^vGnqKivc|7})%&C|etp?*HoDdy?hkk7%;o>}=lE^F{d#}W z&}m6y=$Nkz8I`mg=d^ShG+9%!O~a_KOBi;?`gi>=jOlP0dxCyVaKLbkWFloG_@n!; zv1SOiSiV_TZ!EOUj`i!(%YqKqb*bT72?Go=?1eP-*Yv(tyWPINI}=*_?6c4MrJ0Gf zvz$IZ=_eBjn`y5#&M?}yuFojL8&=AcGMUWcVOuBUPBV;gTQ}toPZ~d7pQ+zs{CMl_ z^)I`PKQ`AI*I8E@OE+b1%)DmaV*bT^(|W`D@zxzf4>bqhem(oO?4EB&mTog?=nw5f z_}A@d=iiYXNAmBv9iQjlH#=7H??J;}9BknU?{RO>7M6C7GmLFpPapm*%e-~hR)6H- zDdXDpM^E^qv0?q46Y7i&TYo*_cS&Q|)}2#dNg6-edUbhS))=;a=hR_aKe_B0!?#ml-?te(TbKX3HD%ne^|h>c2D8uRAfjcTOPMYdgS^#j2yc!bVer<<>!pm<);$! zoN^*P$qYl=>{FKvH|Bdu##Fc{8z$ACh8z0?x@BA7A}<6gNj0v^IL1h-i@S^&Z7Bek zDzAIj)BT5BuYK2hFJUL%OWTDorQYc>o~ldDUTaOZ66H(#cuy;Loni87es^JrGP{iy zBc+CR8|@UcyN$)P{OxXI-?+cc*QRN>@bv+Jth1V#SD7iRm%5Du@-nI@Rd~-gX92pD z+IOVUxy+br&ng=w4Y2YR*QR@_ZRqD_^*K!sKF^vo3Y@wGXwD?FRZ3YUDb$Zg8ovQB z>&zZOlgfFcjEODAHI+N(8=shAoL^}=%ZQAW&xk)TRxhc{Kig0R<45W_W!$XPMaF)% zj7>dqkujvSmj4O|XN`1dg;u;|tV+REBP z%~78)dMY<;G9U3j{x8e$`a&a2beXBhlERMc-m-P_QX7;Djk0x8Pssv?M%m~sf53mn z>d4?7_dStOexE1S>d2v9DQU?kX4z6(p787YtOVC4m>fFbX__z0d0B%R$)1v(mb!Bi z)&KURF00oQA)lmfI!uHXc$-fP;>)NKkt3suphh7>0hqav<MJ)}CH2xRC?F}7yww`n z=St;)PebmQYh(Or>%gb&p;vC~DY?Svz@Id%GXuh=Tf$UNXusf>p9pGCXJ`qgHLVihTmR@~Cp6u)`|%&2K3&tn}Qh9pv71`DJYHnAW|vrNlm6+k?I8 zjJ#Sg+Y9wGC{w61Dq ztqiCXcgK|bKT2lY`2E~$QZVgriFpH~N~Zh5yj~97-rvA?Rvml?;iT?M{SOR28+<1n zR+~qM2?Iec-N37RRFY?V5JxH|j#Nw>DWNe3!WbhU2~#H`7=S)cp$}%kG<)D|wJ{g= z^blnMRJhY>PiaODDy!Ywt+8XI$pLhiq2yqYWe;&E%MunKm8bwyWbLzIL2cP-eLC$T zZG>y07FL>Wvp#O7ps1cwlG{`6u;v8DS1UUnv%cmVH&kZ));iRNC94-Kv%|Ql@&m_y z$o>d{{Z-#S*tk|9u#1&fe0%LQ4?H#|O$-lNavopr^m3>D! zL5E$oO9{1Lxidwbx!gJ5v=&u@70y*9QPpp!{nSE-TfVozxV?Nk*MYjxRLSSnew!p8Cy z$%UnEORyp0uN`(nJ3?I6EVZ(x*q~0>=3G~_qoxpI&V~(eez>&&N$VHe7UA66IXQW}P=Wlj~1ilFWRG1N!GX+AiK&tI#r*prmMo~Z# zh3TGB4rY}Re&o`jD@-@ZiZTW(tce#!j{!ABoqn^^FeK(W|9K2G>du>-(H}JeB&aG> zoX)-~+4PT~CLRH=8G#p%z)Od|Ow$ju3q%8S!rUbDBno)xDxsE1=CKqtlgvXYQ1}j} zz)D&UP_bmR{v~AAq_M3xau-#pP+-}2lQZm7NexR)-(Ei~ttu?hy!G2u*#Id~EBLz@ zt)UF0pGYigi9C#+fv@NoSQhpX%ZCA{)$2Dqt!l+~XP>e1Li9VoAIM3jn3O46C77Vl zIZjYCkM|*AFtUI>i-3x-44KGRJRM=qnJlX*@0WlWLT&nHjyzdVSR!hG zR$@}I62sGj89&AH$VPu;9#A2o`?!G_(|`-1CB+s+dBgzzmT}Jmo<_ z_c%In_|!xrdfnz*oC7=4^Rfwef>l+7utT&!5*65u1rj3GRUNlFC-hZk?9b1N`XUhM zFE>(=00JMxpxiBecYaN?~)Hk{l~daiRV6XaPEutn!M1*hbI3&nfoj~ z_sZcr9M@>j!WnSM;IV#Mk1Gj%x2Uh|bY}Q1`nk}Sx@)I1EQNy9D$2WheW%m*DYQ}1 z12bVps~IRmk<|jK@Kn@juDw`r0432HwHc4HBDIs~`MQ26#1vX0;Qf*nCgs9a$K2+O z?sJi2NJ!DjLeR1>iHhQ@1y0g}Y-W6sIYTMYr-bGx&w z=q-ahd9ca}Au=B=D`Tsl-|lp&Wp_BuDfc8+B+F1%-{A~vu}{<;3y|z`-C)IrAu9kMG*=boS%!(|0;c(q5RyKo+=oYTKR8)MofhIZ>V=lkbguT0I*6 z18{hsy2}~!2`FkoHW~WRE7~6n@(r=4R!5emPx=%|1cRehfji474BUAyVVz@?Msp7V zH&SG)ge^3m3`eW;?{fAnz-~{17v<4X^YA)fJ$4tuWVCw!E+?!V{a#u_rS({rJ{?&l zUyZxlsl!EKms{Z|YU$n1!HyuHtFFDWl=zeEPtZ4~tev7-j zU8N@$buF$2_2~W1KEqSxC%=Ipg+Yx<+{fs|%AvweLs)pKuzzznv@pFnec>*rPR;ze z6B(g8>gUe#1)9yXNYvd9hJc{x6c#3v5OE@MX~x2W7cmC1Nnvj@R@Jt+5>k|q3s_X2)eMLw0=R_k_ghMZD<7nC#9 z+rMyXT2sB?8S@C2>FLEY!&KD6j2>{Nf3iAEsg@5L=MRj{5}!(bQQT*JII<_q3m`^? zjiJ@cRXQw&EwlsBS_Eh<0yIm2CZOV7<&FoSsy=~8UD&jw6opMtEM(2yJZxkG(b5P) zqvJ(TKmFGWzY=d$op4B4nsnGua;XZ^dEszAu18I3jpri7qCpe63tD&#wB_%j7J-Cl znh;>Qfb{ml)|iQw#41?zkW*AwKZst*!e}O{zm{)>H2(3RGvpI=${>Un>mljhheb(R zjQd8IP+9nEWb?J$APhoV_buL7h6B?a=sN5aWGSiRA9CsqSAF9lXEDX24>?0Rr3aZO zP+5dQ0#F(XyWCj#n7+X| zeNAQRlg>=1;V)^!??agnwdYxrFkX-Om2dynxuL^2tuozA_Jqdy>bfYo#1~Uzb(Afe zi!1+%l7?rUv370czegs|sxz)rUn?i4U|H-aCvWr31 z+8dWzf8|5XYU%!N7Of~Fnm#Tu0gcQG#aQe9nb6cL!s4>7s1saxWfYxc`58lm36?g{ zk|*LGTeCXyd&AUXUKsJSfm<=D3-X0oF7#r98&de<6)daY?C<6SPn7&@Z^>lUl3*w8 zDI?4lRepx+s&Btz;&`6njxjQ7=?wQtn9+B)mg?2?nQkWK9jk|*QOjq#4U;m^mR75v zeCQEt>cl7$*YJgFg!0d*u=*$?G=*ZIE}Q9g(CS??-Q)Av<49{pDK$$OHFK7GVm8Cd z-VbghWzwpAQ>myPo8@+P>&mTh<%tL=z9}*@{2Y_aCk@d(Cz+2+nNd;M-Pgi1CtugA zRb^M$?thovWfY5NyT_%)AVGD)QEIA{-|_3MER~;`?H-PIZodQEuTpQw9JkYC0M8xZ zHlxpuj9rT+@ z@(M0@a%AL)(-F^t8>=hkxNQt!*BrMam4dsLj4)OC^BlLv;OYBw-Npi5z(klte8J#B zq?GEM=azW6V4k}m{)C5>i{`moES@e}nS8!vu{)RIg2nE#;jA#eYq8~szHlWG6j^ulZFC*+%D~xZ zA+^MvP@pnz(+4E@uT;;|#Y@}+Y4-<9+`}l|S>m=g;30z}#)>ycuVKNesBuf(hR+Fh zrU0;AE^1v0>HxmzG(r-1heJ&j1Q&#t3mv$ct)qmc!ut1uQmKmFa3QIVuRbH(#wfS) zDJHWZtQxGTNzfYD#oQLfy|=t(5rg03GyM01pXr;7ZUY7( zZ;JY+7~iz&n^x8kCcqTcUzfU17g=oyW7Ng6Ck2p8o_gUxx8!-qKv5Jum0srV&oV4r z<_@7)@uh}(iqn_5U7h&zkTeoFi%cxKbh#Bx4Kk2**M)>Q5~}p8u(k60Wp1z4(BG<*`=YYui7Q@nYwJ0b~|6RT3;$KBOFwnFF= ziYcYkB_DT}Q04a@*R=SBL)?wD6@0>7V5BOCf5QFT&A5E-%%(muJ$s$`9wy#M3)`-6 zof@_%H5=A^%%arPmg`K3EI=(fw$j7+?HN2ls9FeU8tb(E#+4CYXcc4EW;Fc~+U?|mFE*^(cVQKRurB1%go11H$ zg0BFk(rsR0Mnly7mwDZ-Lo`_(hEjla!JBgkv2>f^VNk&kmHQ!>-Kxg^&>J;OBdUZ& zH8;gzl?A;&A-Xrlwbcl9J@Y;F>Bozm=B^9XHy$s3rb&Bx52i<(7$Uw1Py7(mR^sfUCS~8@zstA_)+Mb={L;c{1vZ zPZjE$VHZFVWe(|i`f32Hm2v%k+|^z^ZOp&g8&<1Bau7n49cy z?D*-%tGy#eWlbULlo%pbm>ppfTmgx~Y`2-30$J#*%oGAHT&WYzu$%f~_j>uki?_a# z5ck$@xnQkPYguCLk`dO)U+t24W%tDs@W|va`EvaqrMN8idt}7FTf}_!2D;~}+P%Kg z-E#$wVG*@Jg`#gIV;&$tiSRH8ktF?10sdPI#qStvPWiVf92zr*8rI;3D!;?asfPQ# zqI&vXuQerDh~}A8&s^)xP_Mo1b>hgxq~Dqmo@AE$#4Bdb?wf2KBWk5xs!>N?=S_kM z?7Gz(t6s{)P0ncSZ%7S zb!zu`x7CKbU8Mdz-fdFNKk_CTfm-$>Z}?!XQ`Ljx-4>~}Hm`e&Q{M&rRIOgon4fZ7RINa@6QMJiin0tP?K8 z`l93vtHxQMpLtcOGaMGShr_PE{Hjui8n?q6G6?GBn}Gfs8+F@jHhHCeI>L^y^Rq2c zd*QJ1wXd1wTwwzCwpm_h^c3cX+46?-QKCe5+%6YrRi4^>hu7NZ74{b|Yhk)J$jtIu zxTS;WRx7^MT;E3G6d)io<6NY^z@f`L$7Zd0K8Y*!=Dk)&JpI&-UZ$qLaK4SXf;cIp=-FC_;8ZM}<<%>w&c*JSOD=49+&>U%9WJkl9aK}|&;C{GTbE7wO z>hLs!-yIJ=Uw*!N5#|arKq-l)t(pu29h_i3o?s%(spm6pGze$qZ1S2jU9?Xh0@BWZ z2Wee8TYmh%t#ZCFf&N!*@H>SeKP3$rU~<;Pu3a!eH0cc%RF?8*KXBuF=vZ+s8Odb+u{wK zi;4!95dS8!A2}FXny@Xd(;!YADlGaK4(ghN2sJ7ycA%_ePkR z$>v2YAYF9-)Ei%u5A$UUKOAlj+}%h5b?i^QgUcD(LtJ58Xf2C1W7yKB7J4EZu#izw zXo#?(=GKQIHpKf&ztXy~)tl(a$Yfl;nz7aU3^MrgtzP52z1m8bhUzxcrB=QhI>o$H zzDMB3qoir%bG~dYY>7!vI-U=Uu2b)A^+x2FB3yR^d{m5CHF2BQHPJ(}1iCprbOCjV zAONmKaaI+oL3yC00|c_(=mSNyZkyMblBGtqgcEG@n)^~zLUY4`DHqyl9s3PLof~`z zkB^-=7{r1qe9wC^rQ`e*1gnMu8Z>q@Q7O^l>P7UU_|vj2U)PtnLHrLAEfuZJV zy#~Xsd~-X?4?{2A>eV>`o`*n9yVV;$HmG)l2s~DkfdL`u_lOWtxZvO0O-*}HU#$Ds|@zxh8e* zU0zp;5IEen)TZ9K%R6!KZq?o1K0dK$Avn}fwefDR@lY7Ks32k66cjO(V4tSoG!}ki zi9LW)EYUs@>Wx<3KppMMSVz!-+MbR>XnZ{nJ}S0Jtd*oy>pfm)pWrb*CV{dLeZSP8 zGc7fE{XKb3iMA%amc&iODCTJZ=C5cBNtO@bS(+x&- zAnRoktHo_M1$TNoN0{$X#F)>qDhyWioLg5gs)k5*{@J!b3<;3y;5%u!L09q#q3kk&>ExueT3rPgJjfQzYpc6SR&0glVnf ztwo|%5vsMuP0UVw42G62eAkLila_z)JbVA1oiDq8p!3{7=Nht=&G&nAjTVCZ3x80at=sK&V&heId$TNpgX&+qz1FmNPxyMLwzywt?Na%@U@u@fVs$&T4^RwYu@n4 z4;8hghz3Vdh$OWY@REoN>=)p}7T4^`hrGHz+*`pUa~FyWE1IgZ7oO}ymDQ?G>m>6Y z6R7tA)<6_$f@XkE)M=cFG)RUZ*DdB&}zr7~Hdguuj@4+9wiZi@a)K*B9OI9KLU zDGNpSvIGAs^T{_SW+26Xf0N6X8by}>|rlITlX{2 zm@KeGI7dpShp?)QIFJU#uOAilwtqW_w z|6&+W2@GajL@IbuwJi|ta$43V|@L2U?q+*TtLXgj$=r=X`fQC6b zEPO6*F4;@6LQ*~aeocdq86<#_w4j>xW=kKJv1hg>B&SNk4_Wb8NP>Kb9VWI1Fw>VB zv9(df=Q4bPYAh#6B>ym7$tn+eV6l*w$$1uwa0c0Cg|+5bf?VF)k>#o8*IQbBj2xJQK95M#@R1V7QW3TE#V~B4!B92(~y9 z6vF0|T71}#OL%_zdSdHJzmf(rG6+#xGn$eezJMzU<}%LlG3kKUrpSct5R&vlfa_#t zBPO@KESss~5{|Z$1&^gaVlG~+R^alAbEl;yftXp3dCBfn%mKAtPi+{0CY}EQ^yPy& zMw*a?MrBAaXswgQoLgL)z%sUVCB3Mhu6c5)=5Td@MKKr;gC#6#b>#!^~J?`O5 z`(Mhdcc1j?)w*AK?Sm5Y;wQYxRf*ZUx6rDJ!Z~6bJ9E`v-tvb0y9E3XE$;Z$fEeuC ztHpR#W#0j$L`2H~EU?wk&?2n-23%HLNjoV;Z{JQykWOoLX8C#(#f7*PGMd$>j!nB+ zu|+nTBsEfAZ{jlmzc-trFM<*0|Jut~WTGqM6|X5T3^`WFbZe?K8CL)6UweHXYM5r$ zZR*G;y=4URa%#(yUb~S~k33^Uv8KUPC#b*Q>*WgnM25yL!%1|75Lx;gJbPGlQJ-kl z66mi6jYNqQ(L(z$p|Y_k>x6mHJ`$)JU~}16g7==u%H(CzGI>y0PhL`KMC9a=H#!7G zV5by;PewPYL8&_AXiDtYgJ9luRpBXbYB3E;o8@;cAg1+8VgB&}Abha2U3Q_XzZThtM)k0fHT_5%q} zw1%biQR^PJt%rp}2wU9nwAajXZF*{p|!*P2GM-QGv1H`YYLx^Qlrsw4A^ve z`#pB~{kv_n8qE>Ou>e>-5iTCPyqSGm;XFxt;I>izSrU;M1z!NL*lzIDta@Q#W|Aej zlvj>2M+`;f!QNVu)@>%Gb$PO@@FZa{l;H8tdM%$y6^=wko7zjc_h8QZL!$hL-&67b z=fOyu$uh0~+hCBNOP}@HaF2_>`v@Gg&A2l=1OCYY7 zpzpAj>KoQYuMtmTcUW6E^n!kmSQx5TpY_h`6ugWvGA7)ZWTPQ52Fu+>Gip`OzT^#2 zH$Uf1?W3Ep6h?(VLn87T1(V8}Qn^FD1WR!LXdO&^C_-6lDa8r5hJwmko^FF5RQZCK ztKcuzoM!2@)Dou7(rNpEQa2#mtfCH4o<&muo2z=4XwM*UOkw{>h%vSPd2f2I%Aez{ zT6y)`=e?CHhK6kyM5WMzyadU?_9i-*4g&0u(u(lq3Sy?c!!P0gb}ipxn5*|PXAkB@U0j3G+uVUIKZ`Q2f4P+p<}vg z{7c?JGq}+FM2iHB&?O8xW?i7IW?jO+g>Toww)%NCvYSjk+PLc_?*$J(V!T}HyU*ns za@MK9Qrtx`EFb-ycVU|^YEGOMz_*J+zvRI-A<}h5DV<5G>2G*LQ+drmQ0O~&f- zkfShcCrf%;PQCevJ2Yn6;Va%mwXDv~siR);8fMkP0qlMbKxW-ul#jnvf({goCETq- z^O=5{CtiVCT~KHIKG~*j_-=iJg=o@*e>fSPB$zLeY{Q~BCAHhuDQ~&jD*xdsiN;o$ z2^uo@y<`$pJ@4`s?NftvT#bVuBqLa~>H8DCWzk;mPpC^@&a^B=P?q56@JUgNWTTk& zJk<5ud1B*;CWu-!HE}LlvoM%aoggWr6zS@Obv^M8ucCVHRj=U_&Yu06qxcF1N4T39 zcjDCrlgSEW5<)8dLxvFk!+^DaS_k23HJc;%U2~S4<}6(~;Vd<97EDQG9ScW{77-)3 z%S{1=ilP{)Lw@It#bQ4eZxm|ab?IZvH(mex_At|OEW}t!sw?00y8J|1{(v-Twd4GYH8pB%zhS0V$2WC19`Z4|IEZV)tT+*y`bLg<^l? z`|S_oZF5Lpb%#ztwgiB{;_N6;z_T)8t)OPDtZempyv;2R-~xxj0SOtPKuxpC4MxO< z5V7mn4l0Nt4qfr_RLyc8$7VT6Ju*vNPnF~Ugl!!MTDSd~811o{=G=vU@uss#B4gU) zn5x#0V7}Pa!X?n@h~Nl2W_C4d&0oCkz7MURp=nB|`dG6}{>Umyrz|(tp3m+G88}0( zC6X0C4~xinMlG5i?~oiQWg7V;d?0=o&2sW&QVK@K548zxc8?Xz(E{+)sO>NjJZs?B zRq=G#YH3%bPdGGey&!}$t3zJ%qN7oXG~`5%Kt%>g(F~zkiw~nPX>PiN*bzud*nvtq z^g>OP)q%%omGYPw$_^sYBdenmZxFW(Rz3HcH?}R%3|2hS+6x^9#7$&-UM~Jdjegx5 zT`Qj#+3G3Ins~PA*w?*v?Ln9m$Z7NX`l>7EQc1q0sv*f;AXwWQ-n2e~Zi#3_)saEG zDkTCJjaNcfr6C}u@EZIdy9SInW{1$-##3fX^sh*(6eO;Q+|{P4C8ktfz<}HZH{%FQ zNIopWmzGd8+59BCE&A|z#C{I8m*{N+(ufJ)w)$5eU*SFYt}u_8k{zMA< zWf4)dN&918JH3V4#LcO1z3DCLs~03?5rI2sX-C1lD67+T07}3_B+S-I-#|(4!4q2` z=q)>hK?xY@%?0v`H4fk%4pa|g5Z*>UnBD`y);_%oDbUoGbpcH&GoUGJ)0c@_4_hsY zL_daJu>M?8+@>B$njL8?tV_HqX-S4ANw+BfpxlG8Vj?kPc1noAfg_=zFT>;~kRVaq zfdR=hWH^+tG-0J>LvrU(SZ0b-qMrFN0r92?vWY!rp<@d-5*{sqLmq@U0b`$uWaI{X z9A@XLBYGObqXHNnudAsx0k1KjNVhTBm?$-^kY|$pBah`^1}%6suP>C4hE)b9x*mLN zA=yr{*`_9}?FoyF0kuP|`J4CYF7}>i2B5VXoZx6R0H64`U=Wrj_xQcaA#Z zEn-zyyydl!k-qaSkB-!{Z+W+pIcbQm2jA4&-UuH4;%#rmsQ#u?*w8G!_Q7m00Be;; z#U1NFN?Of-$6Hm${-%D%ArTAGgP=A??S2Q-l9+*5VHA5>VcN-n0;Qb{;3U2k&0sWD zF&^y!hN`reX;6ucorkp5D%cJQX=cFKw8+v67SkHb#am#Zp19d-RNwf!cT7(2YnEs0 z3`v&#@4tJaM>G|7+cDN_%x@a>P>_qWgnsa-F9(cGYQ;ai>7VsA{|C+nI6{r(>~Xh5#`l^|MZ69`Z(^N-dJ2E;SL{a;=K z>D|&VMyF1ilCJ?=j62LQqrWXRX!!mc$oLXiNdv8sGfz^gAV<_JfMT>nO|qg^`GY%u zJyw)BFQAc-^gu3wMsC2_Nc{jH4W4NM&uCdX#N77b&) zM4<8wq1g{tZP8$My=B$$zp+v2X#ojf>ChC`vr|6dpvMF4gFki`n zGc=+?Fu2$1LxeM2UuY)6TuP8_A-NoD`}hYTVYY~Gg*si-ku730CXpr}!4^nxiaQvN z==P-I%AEx2ih|u@)Fu)altQs**Oy?P^&vYgasnFIgQ#8fEF>9?xQ_m#f|~rU_puQM zS&zh6X;q|)9512Mml_IBK`o(-r2|&LQ?;zmAFi$lTHE_%c^E`TSP-p+*DfE4caj~~ zt_YJWq=Xi+ZUwdwVilE1E)i9Rmzp<7Hm7F!h_X{P(~liCEDv+TTy+_gwU$!6PHR9M z{EJ-$%{yWyFH<+vx$k-97EFlqq$bw;1rffgb7T-h!|;M=sCxB1Z_X_71!3uxYz^^J zo3Qx=tW0;dj@kkNz7n?@3kml)84tCfe)$|UuaxS2-y5GN1zC4WL;)t4Q$Km%J6wEA zYv_$$PYqpg1VPk`k5}3e*EHyJrXfr~)T(Okq~s%NP8K7Gt|FlWGFE9Cg^Q7)Z%8dZ zjL}F?ELrtT>o-+S=q3;W@BnrG2VQqOuJ}Dd80n7;VN4@omW2Zs1Xo!$6gjBEkSc>6ZzDI(AZ3?g$Z>K1* zDUtJy>Pv<{Y?&zJ2w{drwe$&!!5rvY9dy;mCvMcIJ zF}r}{91x6RK^4IS6W-OE^t93J#YjelSy4f@Xo5vawfxLXT`hLnfR#+op|eMvpC9CoG-$1wP>qb{I3U(+wy`Ga4o8rR0RBTVARKtt5$irQv6|0$5Hg?UrL1~$ zXtC)F5o}uAaiomoV$Dl2 zdE^?oSYJ>2GZ$*JObc8wVfWNxv~o@UfM_3j{6Zg)*hE%cBfQ-6jjf5tQEAto80<|W zymjVY*x6iEm$<&CPH_FBp9BR@#fq75PJS^I;*2{1PE6I|W$d*y5$A z>gdvAWTD=u+fsi0r(lps2Z@cw7A~?Rb||~@sn*5MGy2&~N5rXgng%pb^ri=KmB0;3 znhJ3+MV{vKN|La*`e` z45s>Om*+PHU_bi7kR4$g0!ovYq5kaoZGA?}#27QG40s%J`iCqAdSc-L1fqahXD$hK zK-Qv|VV{ZYq8N}}p6HHY_nCS_#2zAyI{inMG2=Z%SnQB9J`Oz*v;IgCmWLAZ{US^! z3iq=gwvKBrJSOfQeaq=-{X7#r)kU%7`WzE~{}eIJPNyZO5VJ9)i*T5z2p6~aNigT29rR~LP z(|Cf7$*jLm#*c?8DZRd$llA9!aVVm|>hKSxyAKT{$C!Q`kkvqa#RT_afg;qJ>MpV=S{c9Hx+fu{@JN91|e!ARHIk9h6l&a{kcz zswYC5&DvcdNgOrm^_*WvlD(7nCmzQ(CkfQ)WPI74tLvGl2=LyEQYDvYx^fdg zuilUbKKKR;O1ASsmjWlyq%8T9bO4J&yC7q{=2(A-x;yVLYt<(V0QY4`M8H?v8Ya5U z#_ym1t^qk*`AD%*%|DV1P>Y@N)>4U16xHg2AIz+om$hjQ??VYh)eh<^3&ZJrsR^&9 zHJm0QhEQs?^&sKf*pe)&y9<747F9uS@r~MHZ21MM1IBysNt;U)}Ml=bhtdoB5AL9qAY7%;fb2aZr ztOZBCIW%9VUjA{eHp#YVaTIBHd#2yr?up_sL=}p@Yt*WAt>47%o?*5AAuHg7;uhEe(W>HcQJo(tuvT;6X~tG?zpsp)I|gDUIR`cD@6_f>BAuD|f7 z#!oA+9gzN6?=G%x*zk=-hXB!nV9bA_#H`GRy^+g1~$q>-&iLgk{DcJvl_CMjkP z7iz_U>Bh>X3({9wV|7(F1;Y|VnS-LG=AK^{{_Ru6ryV-%Bx;oO`scaLO=|zZ&Z(!C zq~A2Qp1pf%n!g$TW-Ggw=6Y)L7Z;3z95}EUKXs}jp;q3Jt5cu)OwR9v{De29gu`X% z`tO%PjQB(KS&hQI!GE2#5yZPeaQAZf;&JE@a^fNO8}VG(HIkO&bR->xgBa&#p?CBb zdDy^VC}=zjTF?yG-~Hj*eY$#59KSX6lmu$hM3ls$lT-=nCm^3>%jiU+JQYl!iSo@? znvBsZz+q}cOU#rTg|VmQ04}y?6CoVzy?Vk=e|vCgI7okc^Gkh5X%dWAW5Cc`4V@cb zT3xEqI&ZZfJMKq>h(rgpEb$l{9gChLc^u;0)zJb}f8j+A-&chi2k{8RkZcZ?Dc3IC zDOUbLki~s1j9!Q9$V7{+Y}l2!c62aHa`C_-tuiv>7^i%(l&PZ0M7TKD!m+X<0NB@~ zhb5=}P+wl7sP@K(42HhQHiW-a7cwhNFUVB!dIFay*DJ?NoGinYD56A)8H_zJ6W#+} zIpURU*w9<7zB8)Wq@Mm2S|g&h4?v zdc_A<8KpveBmeVNhD`|P;Gi~P8H20LweGrqm1S5Zw(d}0W@HYovOe^#f0bv+Q2lt7 z^{g2mve~vC3838GBoDhyaD}tqt5g(C?BOj$VUU$w!(6`uAgg9YGyrL<=3}+G7!qlyv1BFbb z2FSVKv)pKPoWq-?3ek`y6lelVz?xLNHRm&2=nbM>@`OY&IpK6vPn2N0PAcA+BUSVU zSgQ1I8ok~K6Xc{20YA$e+P8!n>P4`yl?!&{a(`c3-cl{1f&g3(R@?o$7rGhsYDT$Z#dsB`)noEYyd{XROgW}g94T)lra(XvoPt$D#LOa@zXX zZDF-J^`|-cMMH!Gvx;*3u>=#i1`XkCuuNP-oBx)sQ%B9sH&^=R=6A27=_S9)5A!*L z{KV(;&l%=5rn=(!{5tj0i}@EB#=S4)&uFI7g7@?3k@E5UXGoW=&*!dd=%NUQf+jrV?Ts1-ea zV5Q$nR}S4$cq=eouPpspq24$QzA%Mh^3xB?XP6Tu+BQ+b?MyZnt{`dIK2eO5iHOnu zKk`sqLW#l+a!{+R_Y^T^6QYxH8q_?&>dHO$7LFQbJX9I}=fd5_Feo4L7!|qVgG`hU zhU(zha^Se zSsjV0_95acXPJh?TMfMfTe!8HRU}C%=DwKP;&KS>%7k>y%c;Tw!|E%a^-Hql83|{j zS2~L|mXY1SA-Jq-`M1C3d}lSOu4V#9xA)Z5yg$s?Soz{KL_Xyy(`)h$$GU|%MYFgBnm)1-+HmWU4YZla#HVFUV{FK$CW@ybM%ojFR@(0$Om!;07 zht(WSVIN*IH=ruapm(o&haX;Z+llzTH-2??sM;Q`X*CX1(;u$+p|POy^usj=*~XH} z*vD&LOj6c9UGt`CEIQkMwx(h~TYJ)(#>MK(M+IjZx$E9PDlls$7ek~0c0$>hn!s(T z3ZD;t=;meUKUi$UG2>W!|dL#eE7PN#9;uO+(7W@_STICXVqnRA6>YVhF=$%{;(V8f$US1u{$e<9hm!n6J z+gG#RFq=~>3o9IED=SV6E;2d%iVEkDBqT~5u~0dET?SQ3h^DRIuEihR8$pB!8IfZ( zjH~VBU`{q8%C%d{X9#_z)vA+&hI~d~5ukad1r}L#;mJXJV|=D6Nh%oYG|7gmjKCtT z9z8jjl*?#%keDg%fwbCmT+pP(oD#Tx)lb1E>dv!+Ln_}tCD>??!!`TVU_57D%Wj4| z{jNDRm;)TD2&Ta>g)O1*43EFr%2THX3yrh@DoG}zto|9pht^l-d?i?BfPddRE!a)5 za!v3w#r|In?lm$M`}E+~4qZL-^;hW-)rUPQPKd z5g|;y8m`Kn5`=2=*?~*d?PmuU*06384wX@n<3duoI`W*L5kx%ooM5?;)p?g#Ma+_o zQ7gwc)~P>!GnmcSqrVljP%Qjbu!Z9NrHu_q@>Cg;dh^<#PK`b{IL?t^yQRkO@3yKP z=LT8MuZi6#THgjC)syE2BlDSlr$BXURPA}eNSd5+Ua%#GP5Y}mY?rhs_FUij@Ny3$8&_m1!3Q*E=X6RR#_h z)(81A2w|fCQo+|PxmbHqFhXB!yeJsM#9hQ+DCEHQlP2}vMZt0U?Qs_e*XWD79|W_S za{c);NC1t%!t_fWe0BT}0@;^x!4Hri8P#w}FixF3t=Pa+kGw>~oSGnSD5oyFG}!Pz696Y&7Ieb!&GPTH z0J!?HpxLM!6eW7-lEDH?dhCb6RTDleNTQDAXr%&OOw3r|4NP}=EaTL5mun%zekd{u za+Sv}N655DpZZ=`7si7Dkd?S?wvxLtAW=tXToP}Y&-|-`S7YL~;>Za*>L70X1z4WK zUgTWCrB??Bw?V}4+IUM6_C}95$H@~KAmUwDYvBQpO{-U~4%)loTqrnp?C8S7B5q8f zXiKN=@<#Y;MvdPPG}UNk&ZF2di$SZN-xwUCwrmLYgZuqyLvX6axW($1aaWGJKIk=B z+28y)*wRLRcbEBRGmgrVg(1i+?Gg4D-;DavPl9<<5vt@r?SbhyO~bTcx*cOWCw2;^ zv)fM#Q*c})2i_hvVq-7^Qh+C=)o~kxX^`WLJHV5)jBypiTX93M-l#!Ht%e{a;%3Ux zF&XvtjX~Ry{Q*bJQ%*mXAOt_eBa2B6p1Ef zQ_v@?&bT?KPsul^pILSJ%|RoZNSW1iu}x`2-E(vBOSB~%OIdYUC1_KNHU~v@{4GIN z{k9Th`)FQPEy6~Zg%VaOz9W`Mm=A}1g<#4a4tSiC@vd8_pkJ&c1O>%D(3qHzCbTE1 zuHV-z?x`rij0EvgmKc}POH|(*sxNM5IQy&GREk4=3_1(cmP>*T3kjsQZ4b_3{iof+ zuy{l`ksFswR0kr)Hx(>eJA<3lx7o!b${zq=)90?6;*5**Y9LW>s)f4q31 zv`RO?U3sil-5LldKIhiplN89=B5r>iI9m3>pTca#*%8ba=4A9MARyP})yk4mEtRF> zp3+Zyfa3PlwA+FV8x*r@(QUyKF;lqcqnW~t+k<&!%@nW?_7HznrjY#zrjV7TsD-^y z2qb@Ydoa15H<&PmWVVEsy(feCqDKMUG5v7TcIZ?C^M zc+tGUy1_%DZ_z(hC^ zUMJ=!Xk31`ht*2R&+LRGP&TVe9u6j@nN64Z22_rNV#}`rIL#x-A5N^`0^_~E@ML5*I`5;w=sHj5 zCa&!}Jj&=iZV%MXsDmC2rddR_)OQ~Zf<7+9G01oG^odQ(KKAY{w!W?YP_Y!z0GfjT=-bf<=~MG{mR{s1uLC2 zx~G7N=xbVyeKMFaV&FlEASMwzq%bQ6nZ+SxCLTXYS1x=qu=v$W^@FE^(Jb`+PX!lq zchu9tL5;{|SfGqta$*^VoJT6O{ovCadW-KNUE&jsg*QFQzB*b`~>^7Fy$22!v>wksZiT_TI$7V1rX zSvBK@;Akj(%&&qL&@?!k`U_tSl#!{t@FEflW*~>eWCWY@zYE%y%6+Vsog@pOU(12( z(*1TrB8b)3YpMr`Y&WoSdAZYw40tUZQob?Bbfd}Bei!^)E0*(L4#ot+cm~^!)xmRK z4#H7Y0%fB7U`9;=^42=2EsE&l3}W`#YbDe%lNHOU$6p3axyt)52m2b*c4gA5!H-Rj zTZ)_3Cs&bNKE40sDw#x1z5j=xe*AwVY?BdxB*D-9V^D(N9r3!-$_alAp3L?4q_d;b z>f?XXJb~Y}5j9ku@u%Pi+1%_i2S;4#`g8EUW24r8CjRM~@?V3mN#u%9yej=R3M$Y1 zHMm=Jtt;LRhH^fi2r&z8kX1i_JNSJnD=ggN?v{5D-JAp0ObmlTuPPMC^h*NRU78ezT(QZQqGfKH@@dGtmJ^-wX{s#coCPo^~6 z$Bb5YnZ@zU`7N`!uTal<-^6)vfL&~_)AlItG9fthqBvNgPP2>4fYbwav1Mq6#U2RC z>qrCf(>T2k38`$SID%yu;}l01s+L`x6Kat;GvkG*<@@ve<^g42_0qeYE-~lf^8K=zcw>KGtI-g+NX+(|SyH z&oS#n0$ZIC_(3vOUDW1eu?5W-M%ofO!|TsS*7_QUNtDNwKy% zKNi(YD-P=OZt+#7zBE<*cmWgx&TJNtANdhv`)R89h5s2k4XJ$7D~>We44f|Wd02wl z(voaYPx!_8^S~hFYODxwUMn#ZEEkP?X|W=-9W3z@e$NkNVjTr{$cmRj(pgind+Dfj zvAsE79kx?Rv|-S_#1Dt5mEFZQb$hzl)W&~R$ILsEL!cF-3RJyU)l*@AnA6U!eJ_nYmBOeUf zY;I0fpMDS>@07;k#Ce3(WOs_>Z&iP;VYLKo#7j~>J>qL@W z)m$7kPs8I8$sh&6dePSlM}-4|m|r^3b!GMW5GGl;omjm{lSs~S)X7cA7h4ruiuf|a zc-Q~ok*l=<*0ZH}#1bP`b0`v}kVVCzqE#JD?HPQF5Pd3gMJQ*)jMTFvL5^8UOuTdc`2jttZsS1oTXPD8uVDUNJ{I*%Pt-R7C*;p~^IK4s(Bvj?AN{{}%9u8RnE2>%#C%MF0&rE?12*gi7RrMab zs`m&oO05C4N4FwmCS)WLEz}-UozYMXRNG5IQf>Ns;Hb6T#dK8*g3M_9UD1My>VhG~ zk?Quxg8IrYhZGMY(xHZziYwu$-z*h3ayKa|@|$`BQgKln8x_MQvKYie9^2MHI?f~& z^X;0b*b&I7)ErVNh6;(FW&5ipNOCvQ} z;oz1JV>!jCwGaU##i(bX)pcUPm4ED4 zPs1gVRtqi(Mye~P6`Q%P(A+zvtBJNoQFdGMNh+*RAV4s|& zKHFD3LhW4P7S$7d#ofV7{rCf z0T)=ozPS0Zp;ifJ(_LsN(ieL?3}LREP9ZE;^0)PSj695`&|i&33A}Yp_2wDHmOhsm zS@G{IvAsm^DARdft3~!gEJVObgciXMC&N)ZPh!L_^LI`pR_;J;#3H{W`)c*hUd`FH zNh^s7gAMEWGQV`o7Bh02C3hDygxuYk_zL(&3Hc2&@0?d&QR|y#DJ8i@))W8`YL8i;IjKEAL)e z{O{)SjRVPinZk`MHa>RdV`Bq}TrJP)iJ#8uMcP$!`<^G7L{$;rPT|JNl-r6^tpoq< z+nNu5nBU_gI^q=MSGA2TGF$rA)^~47k3o$O>}K`;ySArZ+Esju(LQ-+are2#CUwoy zx`oE3%Iiz(lrd}5z~G(2CixJyt+}`46&mHP-uP*koWOuc65DRNekL)dWMPx~@`tA7|yk9$&6tI1e0D_d3Jbad6$FU-~!jT8^aziMNcb@2IqO)t_mh zo^2Re|F0b7|I$SIqneN*5|)O* zdrJ)rH6CWA0wlkSmF^8)(O2N>!Z`+RiRx(kT7BxgLY9O_&T1{kZt7IOo0cSe)keDQ?^hkVU_DUx;L_PU z-Piarvzg&mf5lYNZe=Gp$-IK5rh4}0jUysdCfqr&OKDZM+S3MSH|S#(s7MZu8ug3D zO69p%3@W2$wkkJ#`c=imd6{zAs;ajX^e?H`*`C4 zOk~&-dLjou(fF5IV@qZB?;8(WVBD&HIIgMF*rJRDO?9qYzMl2*)eGaAek#don-(=S zvn{77;`7JGH@!a;;6TWt&dGYB#}WgCs^tdosn_;t8V36>PH6g$i;}~ij0U>eHKECM zGJrg*cK?5^oq3#`RhjRrs+Uw(b#+(oeY(5SRn-XzgwAHj0trn)79b#D5@G-uf&!8S zNWvm(Dk2UbOA?eEcG)EChRsS4WL2U@%#6s0gF23mJ9_atb1#Z|zrW|a)!o4v@BQO` zApO?6o%fvQJm=Y;=X}7eqz+cbPnqFn5-OW4W!R+`xbmOD6{8*PQviuWBh(Q6yN_K$ zv8u5;+5&ZFbtV!4OIl2Xp_~+MTpmh-*4T$6*wiWn8cf2ehR_1GL5B+U0xeh8^XJch zDXVHyxXyhPa`P0yM8P!v9o>uC28mT`N!C*ONUo=j-calybekLaA{7@+Wb~1G5?|0? zJ=v*xfMT2WkH>fw*@;vB9$nMR<_l*YQ5nlyW?q;-MOCWJho(%7U0eFUhw-_q)k8E3* zmC7fJKU1zGNuNY_btB&F@-%w1FE<mrOG!l&MRi}bywd@l!v z*8?bq4sp41gy~6|;t8p{J(S*n91xbKP+^F=P(mR^2=uMu83rRn*J(1{={c%Bb%H)I z@S}Cq<1$6j%Ne{(ntS8f$VrNB;?nGVtpej~sgU})RgRE`LtMTU^QmkHtY<63Av0a~ zTm&Duk|+VrPx9yZC_)4vno*<(wh%*M-v*bo;z*+j4A1N{fyFLJv|eb~_qmX>K$!y3 zcx@=9DP+!g7S|E+y1VAOc08Y?ea&^96I$S6qF`3qgwz78*h&-|Vof9$prW-Cr!y+WSip+qv*Q+jbkZzSi!hwvC(4|Pl89nT)VS$T zcl>1LQ!9UDp1EMu5=)J;-ZjTyXgw7jRK~x3$c-atXwH!9Kd@;b6_-G5(6o2dEaGVc z`0Ni9mTNnc2n)J$2-?%+9~g26mKzib$P(j;BSpp$qNoJiEDla%&9ddlF2XEY$*=Ar zadfTFn`n_jslzPWuHs2xXp58$BK6sBAc{0Mwz?Ag2V*RS^@TiN%4iK!4Z$xv%uTFG zL95G$x&HpF{5oagU+VK6+8$O*LB1GaTwNjSpF7OWYJ-Y!-4-xT4PyAgf-xm`)=@Mg z>_E=5tz~H_WsLzvCO`$&EnlTA$fQB)(nP!;UDAGM$@P^9G1L+VD0X~wC^ zKSr_niXCZyvDMSsEJZo(K4uoo;3!%Y%m#HOB6y9qD>M3dkHgO z5=#HHz+FB8+beruCyML{Yb64+rq&{TTUkr&>y(yCP@C%Rg>K+PVmtB))(*>0DO@W# zphiE7Tm^2jw}1>i8IzY1htV6}U5U`6kTs(&P*|h}4K!Bl5ccx`W#JVEom=F(K!XlH zYmu8$Hlj*3c+DMK%3~$sN2|HxAzTtu6e8IQ40V%M8d*jh9;soaXQWf}2s}hk5bb7X zdnQvG+}9RW7&A=1RHqJ+eVYayRPY`e+)^h}rplzOT1{ix|K}nCz$y6ed;ZZC>)Ob) zu>xHK{-Z~_WyK`rUOSBlh$e%SGi@Saa$=i zp|P8}nr2#$b|1`iP-3fOX-byacq6)rJwef#*Vtq?5PBuJbbhp%M#i#&GoIY zLSpS?*#H4>-b{~C$&idDS^kG+el+VxmLHZmWg=B1KEOz*>Sf%D1qJLDk24)1?Qb~7or&8(vJ*s?XJs$p1xS>wcM`W2(2Cs7 z?pQY$P%J+dRzyhtv96m4Xx6$Kv)X0;t`EA28J2SB7^czmwh7&x{#PG#jXg*SY8nEF z^&aGx1OvxZ-&&4yg*hTIz%`aOJeAZ7O_8kw!A=Nda&sLhjpis7mXEAcPz%9f`*nBQ zH?VzMl?Irs%%Sujb0|Pe`R&KK{%o_X$vhJ&^cnxgac(Cn+vX)sdfm5|xVJRZ$Ga;A zTZKZfd%liM0hnVmp@s?gU(M}IMK%)!2%P$NZq`zhz*tX~H;4Fd;;aHEqDVXh=wJcK z%C^xEyzY|7hqJ!xC>V9Qal74$X<67Ux>oV4aHWO{-1moIhu_d%}Awm_561AuA7fRWaMNiQvR=Oh)e zYU_LUGFJehPFm)UXr*z83NQ&9;P5s7g=Maz9f8zJYcM=xY^=t#|L!t3t(7wOfKRD0 zQTH>x_XO8B9pj6lBgNN=y5YCQF5*F0oj314ln;?zpHux$Sj7hR7j|8T|G&Qn>`{=c z2raWnPL`lRWB#QR+yEQl0(ES;(T6pn5I(6PsPa%u)Qxle*DhPJ}hf3AZtr$_mAJ1eH?bR77#zOtF=+~MXR78e1$Df^cB{IzJh_)gb-o1 z)J-NFiSqDIDfxKQrWb}JiL|LTh&^c40OJ5J{FZyVXZVdDa&1$TOF@IG14o1Bk185w z9E{@NEHgu%CVn*euYSn&%a}IN3~d^ascEOn)v-crc^NCk*R61C>LmpeF>v7ucMC)( zm=wTC>U3i8Y4n8?-O@z*DF5tLZc;fcHCo-RdMs+z)Nk@u3?PlAS2?nn!##*5BCAA} zd^0diS7Dgef**!qdIW~eXa|BJ+;X^10>3E|p>l!sd7nSYolv8knu|_y2OJOrMr@u( z4^`>HV@kWhE8O*TMw?XZImw+fK}3zki9v_*7$O&Sz$#Trt_ceeF&-3zFP?U?yB2HF z+b6q+fyT>RnyaYZ8k654 zW2P7*I7xu0{wK5iGQO;_Vnm3QQfr#(V|DR(Jb@m8wjKlZxB>s*3Ah5%bl@X$PSp}F z)a3vE@7;=%AY>O5!51Ac%H|UYKNs>w$R!swg1Jz!i*d3@6iQ(U_X%WOC7Tg>o-nZ% zJ3IoG><#p627_wz*;Cz+|ISM1{8^{EgBBT0Q8X9b!W66KO6BZUcsQaorDl0BQGc^_^5NsX%|b?}u66x2<$TEa)Ytx^DlQ zmF}QPf4ldRk|LWssP)0qTnQ&`7)H@#EQ|i>kGdZMw3|+MD<JmY_LhMQMrlLJly)qs>QizuZqA8Qso8)(Xtz!Q65NeDxR z_qGmDH^lBp)Q+*3!4Z0ujcA8xKfPcX8CEoCiIm2v)ZVyr0Bwol@W^^Ke*2jY?|0>w zXS&VtA!`+lidF%1DOHk{F2fck9keC|2m6~XOnO2bkG7>jwFzji(o8$gawmWnO{?5_ znWm=N*qB&c5@x=ma>FY3TKwc_Qq_J~$+(T`sH%*0QiO4suJJpfYvF2^sxa6-u|pui z@Hjt_4;ThC1;G4kqLA{HHHdR5|JE9JFo&+SE{`?>O61d!*F@>bpYCz6s6bwSrmfBq z@Y4RowQezwe}1hygsjAgYn5_`Mz|LIZuH5s-N6l3RsgI?`Ne0uT)nO^^@!;h9M?N-WxssA8{}~1 zdba{Vet*4N?hhVx%^-YTX`I-MX%;k<@yj;2rQJy9CNG<{)zDm9cq9I9nOW#8^Gkw$ zvH6MofMHuO2R`vx?QFuG#&8HS8KV~uKy^3Cn%i<&A)vE(&XVU=qcUTm_Xn?4X@2~|0dGQ}{%NXFC0EmH-| z?Ss4tfs4%&t+2C7zJb^TI}DF&2S?7ddQeb!xzvt7R|JGfUn2(*{taN~Pq?oki+wp< zBManwVz-3T?cj8C>8C>D-lC~$Rp$`m3Xo;550+FLza-A099!A3&;wK;^#BH_9_XSKST_S*_tD}rZF0g$-L#he?wT=c& zSnl7v<;kDMsHroPRV3Ij^fa3*M8hJG$CFIOaT@t zKkY)-1=1gNp)2M@)Bv9i5i!=LzdAsI=gxDzWp>mMQfjsVqr?Jp!w!!sCi?MTjSODI ze@*+244JkH4#=?$OnM~iOI>8rnGb5sRVTf1X4mLhx4zi;$atuZZx*i4k?~>bX0D@2 zW}>3G)MbQ%?5vpW_W>Ou>g(g~L;z8Lkt@tdl{$h0Pl0}NjKV}T?Ny4iJ&henC*DPALJ%+i;+l#Q&>Pzl(kzsQ}O;!%0LantzsE^-r`d250+ zC>MUQakaI??YS4b-hQ!iu2ji{aMzyD2c+d(c(FTTDh#?n@fmug{vyWMJF+ctPQ__6 zF3=s2l%|k{e{r#!&Zzq?ar+DGGAmmtReXXNV5$FED8L<+O9^>9;}SRF12`CHrHJ?) z-G)#|qz7vND^i@05sO$b3Tc_9{PUN%p`p*n?hwAJqM3d27j&xOKDg`5Y-D8IVYy~w3#!sP7MglTGmTFu)( zkMrDXm$}IuCgHF&1=;$jXfKJ`mpetm8>bE7dlz>xPcUB#`v7`Y<-8idr)7ssg<^TR z>+4BZv-iwqAi9jrK!RS% zn_njAw7W>ba+aZ9lUszd855|b&D}e!-8aB2b zj5SF7CWgI(1SDW#i|4Fj)I1@TBh8zwqh8jix`_=SPWXb~`3X08!25bK`ca-7=>|N$ z`3l!nRxYQiAw`|Ft}#k=O{PA6Hl!sUsQ-lSGYA$E-WDxYy}K}9zdj8UQGPU?M6QL` z8VvIGZ7ORZ$=UKkm0pxjub0*+PYzEd^Kd+l!Mdv=;WFHEA*+hzwB3M*9)2~tg<>|J z-@sFtD??MEA-!xp8})XYo}qK+b0gmu)~q+4r!bh71*?%T1?$nH8$CEZ4AIJ`C2V1n zk?JaVFUya$8HtswEC2!Lm{`PnUx?I>XA?)nVw;9O4COL=E*N#gCtc?_Lq6dW6K$BJ z)>c@PG9-{+iCJ{>l}K}4{tH*S+a!NUC>laO8x;e_7MXw9`3x{ICd&Q5p-k6jAzgPRksjfTEiL-es4r&y z_vy$Y%{F*!C;yVzw zIiYX@Bo_b9r(9nNOD2Vd^UVPU)W;4bAv z>8Q16;5q(%;GvqpDDX4^9?UV3ujl>XL64TG3L;7lx0)3keCjIKKO>cW(}*!#qRM)ZSV$mo7O=!bcxNg z1n>505oq2rvQ!HWoTwO!!6hG-AaqK64!`;&DIaIxM894cEEr%hX3~DRrNX<_*wR07Jn} z%o0T$w#z8dmlqbB0T|}QBQq)_9Y+Vg5D!k`e9%xnY$*p^FC5n^a7upDY2Ag)Vycu^ ztT$82Ly7avTbC;JueY57fb+(8`o}hAOXGt8CUx$*>)mn$&4j;u=9o7Bzpr-_8pFnP z#7OXUKj{Y7Tc9tnLd6aoN3g1G}w6fYFDX7v? zuAo@Jr|7rNEOa!AX@iwAX=MEmx44pDaih!l!L9VE$*UwOV2|*3mknuyG!8>TS zZ9<$ZCCHNo zZmpPQ(!eB0UMAa8QfhcJQ;_nzZo(vy@!!44{oQ`5J&A2B>X>LYj|k&Ywq<-Is*D;@ ze#tgBX-=a)qKZwpe3({Ri|I|u29nn-u=qUisUEX?0ULV>{?(FGHg~fz_J2xOrCnPBiqw&y%`fC zm7;ETW3drHHe@%kVub>a-!a{}@g`yaUloDeE$+aaaRZb}P)C?XOEOsm`ke7+-r_#G zpLJdW29$B+9@;Uhi_c>p`>ve0zrDpBM#rY!>gHPhQ{ZFrM5Q6rXKgX?la)L0w`Cs4a`u(yr(Al!Bwcd}v&9#@|OZphxtWAp<^RiA0gv2nDRvQ)Z zHBiB3dDWu&5wHNlETTMIBY%{25&6rFB7c2V@~51nq8lN9;VZ=+>Rarj6InwS!~%9& zlj7t=3UmJ5+gx@&-V?}hu=HESKNz$~9zopdFFFgol*FS4MW2wgAx2sls>!$-i#(-o zZg=~~o5N02EB717Xm?eR9QVn+x4RkbitNAyY;wfSi9#2%f&Ov3>*1aHJKPeN2}%zP zL)e^Gm{NklV$MJJ4%c;5pjsD+pNQ8f&M3&)M=J6z{j2kvi9&0V` z;#&XAJ^1wTFyG@Q^jWV#A9{^)Lx6zwdekdCShLGfoFuQsGE3vcOT&?$k4(m1;TTy^l@hbfP{ z*{x~@GR1OS+*^wAm1ckO<9L3P{;9{^p}l<9)Wq!cG`&JZgl~Z>ie2)VCtUA57VzrQ z#?UCCDCb8-vcl@WQvgT5CE6K1Am-01v z1+^DuFdSDFqOBqAkLKI86_;%SW~u|?aL@s;xPb#cb7wnML7sNWGIFxeTdo=mCEAEUO zuR{bN{9uz-C`&?%g9ca`{@k4|-()aD3b%x{l)q!Ao9pyiL{?1GtFFzY|J_bE-9PYd zQ^rr*<PN>(%g`2gFey-mQY z7`V|JrfOtsPjgzJT|DO|3|Md*^iNU5OcV;2w0P-g@;#$$Ac5}pWp`{mT{-{DZhjnz zX4mt$%P2eXygQ~WHOs2CV84|90rp6&hi0sU{Rt#1VSUmwEGx={KcWGUIcoKRaG$g}$_7KH7>u4wny)7?2*3LUm%-Eb#tUv{Q%g`huo&i(g|zQ^(G9j*Nm_#c zv`UQwX8nmTy1t3FY znz9R~{cjJf>+x?*$*3Mlu;IYM0+$!9l_T@nSKL7Nup_fxJlgCM)QiWlz4zLlE`R6C zE)7s0dKsSF;`hEx*qmt@7G+H=3qUpJI`iZEUU7Z>_6ak)v_!(9qDmlSC~7h?{nvdw z`oHNTiAiGq+Fl8$1d)i`RMP>Z?;2gGibP=m{x`2!EPl^d+|n|A9S18%$;@*g#+Hpo z#JHk9>pH7R!ZoU=7KWz&tYVu`R##b3N1}#H)K;$#d{Jofoz?<5|4-o%E%3X0ug_e9ude74!2@KxN!&HkRRx)UX)nI`= zQxJe*CZdwifCY*w$Ay`{WeYI#Hi`iaCd^8UimyFckkuvT6_ZC68|-T!YSS?hxh*CI zMv@GIv9A7*d;=-QTJa6gZqf%B44yQ;MQb3np2tfNrdBcgb8X3tOfxI?k2T9EH#1v%?y|vjIlAh z|K)DCt_ioLS=rk)=P7^I*WAnXW?v#m=Id^5_4mv@ZoqH*x*3aa-$UX>%Kz@`?zQUe zuYSX=uKwmxIqajSp5Eg=#IkA)dPCEr`IcdB&t?Ku<-rerlOeYH#ou(LMf*I2odXP+e;XK$j$fne#h;q=Hyo{dc%Fa*mZw>JYFvS;k{TX zQM&87y3zyu%a&UF$?v+yeEJV=o4@xDZnFROAKai%{E=VN|H!Y?^lPjByr@6#=uhE2 z{v6Mr$|v4)|8{uY6PSFP{X1{oMknEfn1<7QeP|2A_lytx1 z$n>D!k*V#je7@B4m72-JcYr)`x|EI%507k-*Q5)wc-Cc~@Q-DvcEg)ftazIW;!vai zm~^kNTiEj#K3%t{XIC-)jmq<@dM+4b`@VyGPuRY%)~~B%yM4_qJ!>oLZs~dAzq{$V zIll7Aul1~Mi$Cdq^H$G74h*QXviSQw|9(5Qp{8BZTdv{w_~pG%9vpw#pRu#|dz>D& zt9NrP$Gy+>E+}*CoY!|*ku7>Yb86qKC&r)hC-3U}0H>RG^?js{(>c%g_4}6R`zCOW z-%CDBwW%%N>OZz}V0P@D`1X5qxmK=h`scB;D{oE7y*VcSp#S2mTz~w*${VwC#W<($ z&dyEYu>YLgWziX>ai{?`I475@{O26PRk++WH@C4*m-BIWR!#QJ`gHmOF~Fu$dQij% z{o`|UGydv*KXYF0Ij;VGUTz_uJmk>a8%M_<_HTbCH&_|ECimNT{Nc)!YjdAWaPg{} za}z4xyFT|(F8Y>RbMyU4TXP%y?>FZT;=(s>=fXK#a@$AU)bHx`#eVCJxo^ZD@uz$y zx0zP?M2A|X^@){9+j1v!QsEQVM6LfUynBPc>bBg;q0J}#o~^lV|Jd!hKAxrF6XR^o zGycxp*uwzs{2%0Qoi+-%HzXps!n$*3S5~%-oq9xkdu8kLv2Ra|@9^dF*wf=XDnBWY zJ@?r71CVa?A|-JLOHMs(=l{bxH_{oH1j3@!#DdE_#Yh9e?evKg8l>M(T2aG zUv0d1MgPN%oIbGGPBUBjKb_+A=3DLbPq+4G)0{TlZ>Q(o-+y-lryV=&^pYL@59@Tl zXYBOaXZmY9_%Il9UqjUY%Gq!BA3lwuNIO#b8z+aGvlIT(L-H?GN5~T!DnFl_fAt&? za>v8@Z;j!&>B;=FpKSPJZB0WtacO*`KVnwlhC?T*0G=gst0GW*&7+4mZY(x$FUF~l zZ(@KLTur`uiV+&UPB)ql&tJX0^7>T+55%v!bWWji>73%rhs3x0p$m!|`Pi2)DE`Z> zoZgxp(5Y(~_~wT4x9j7L+HVpE4%fdvTRZ0*M2^ZB-&ZSsE^PlT@!TSj$?1i0 z!_GJpg9~R6YBLU#t772}d^+ru1vy6x6je`B(oE_RdKveo8sEgr4-16z6>5+#;&2w# z)G|9s83_l1Mqru_c$lp-FnIM6fi%#4er8{Z7aL_bC)$FLF;#;=nqu^M3-lKlNd7;H zGq&BTVNXnDUNQ=mluR9mOu;f2XMzro8bu@3$4%&wJRqP4Ii1!p!7v(n8%8rGjExY@ zYG18382yvuGwQ7c@M+W<`i#(L;2PIyw^aq?w?L(C$7R)>=*J!~&{>XaKDka`HHD!R zF{W9Y7y&_bZ25@2#Rh9)CibWT44G}hCKza4b-rt&Vm>5}*~jtlpgxd zL*I!J5#4~k(@=WjV9w*m;jn9SGAOZEJnul|q+)`_luD z&9OE~^U~KXXJJ&Q*a}6x!Cs*6n+QCWzFAM3{p;5btQxNs(-0a4E7vNhEPPQWmHKca z6+Uq;5JJ6 { function(moduleArg = {}) { var moduleRtn; -function GROWABLE_HEAP_I8(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAP8}function GROWABLE_HEAP_U8(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAPU8}function GROWABLE_HEAP_I16(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAP16}function GROWABLE_HEAP_U16(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAPU16}function GROWABLE_HEAP_I32(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAP32}function GROWABLE_HEAP_U32(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAPU32}function GROWABLE_HEAP_F32(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAPF32}function GROWABLE_HEAP_F64(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAPF64}var Module=moduleArg;var readyPromiseResolve,readyPromiseReject;var readyPromise=new Promise((resolve,reject)=>{readyPromiseResolve=resolve;readyPromiseReject=reject});var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof importScripts=="function";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";var ENVIRONMENT_IS_WASM_WORKER=Module["$ww"];let objs=[];let events=["status","partialResult","result"];let processorURL=URL.createObjectURL(new Blob(["(",(()=>{registerProcessor("VoskletTransferer",class extends AudioWorkletProcessor{constructor(opts){super();this.count=0;this.maxCount=opts.processorOptions.maxCount;this.buffer=new Float32Array(this.maxCount*128)}process(inputs){if(!inputs[0][0])return true;this.buffer.set(inputs[0][0],this.count*128);this.count++;if(this.count>=this.maxCount){this.count=0;this.port.postMessage(this.buffer,[this.buffer.buffer]);this.buffer=new Float32Array(this.maxCount*128)}return true}})}).toString(),")()"],{type:"text/javascript"}));Module.cleanUp=async()=>{for(let obj of objs)await obj.delete();URL.revokeObjectURL(processorURL)};Module.createTransferer=async(ctx,bufferSize)=>{await ctx.audioWorklet.addModule(processorURL);return new AudioWorkletNode(ctx,"VoskletTransferer",{channelCountMode:"explicit",numberOfInputs:1,numberOfOutputs:0,channelCount:1,processorOptions:{maxCount:bufferSize/128}})};getFileHandle=async(path,create=false)=>{let components=path.split("/");let prevDir=await navigator.storage.getDirectory();for(let component of components.slice(0,-1))prevDir=await prevDir.getDirectoryHandle(component,{create});return prevDir.getFileHandle(components[components.length-1],{create})};class CommonModel extends EventTarget{constructor(){super();objs.push(this)}delete(){this.obj.delete()}static async create(url,storepath,id,normalMdl){let mdl=new CommonModel;let result=new Promise((resolve,reject)=>{mdl.addEventListener("status",ev=>{if(!ev.detail){if(normalMdl)mdl.findWord=word=>mdl.obj.findWord(word);resolve(mdl)}else reject(ev.detail)},{once:true})});let tar;try{let dataFile=await(await getFileHandle(storepath+"/model.tgz")).getFile();let idFile=await(await getFileHandle(storepath+"/id")).getFile();if(await idFile.text()!=id)throw"";tar=await new Response(dataFile.stream().pipeThrough(new DecompressionStream("gzip"))).arrayBuffer()}catch{try{let res=await fetch(url);if(!res.ok)throw"Unable to download model";let teedBody=res.body.tee();let newDataFile=await(await getFileHandle(storepath+"/model.tgz",true)).createWritable();await newDataFile.write(await new Response(teedBody[0].pipeThrough(new CompressionStream("gzip"))).arrayBuffer());await newDataFile.close();let newIDFile=await(await getFileHandle(storepath+"/id",true)).createWritable();await newIDFile.write(id);await newIDFile.close();tar=await new Response(teedBody[1]).arrayBuffer()}catch(e){mdl.delete();throw e}}let tarStart=_malloc(tar.byteLength);GROWABLE_HEAP_U8().set(new Uint8Array(tar),tarStart);mdl.obj=new Module.CommonModel(objs.length-1,normalMdl,"/"+storepath,id,tarStart,tar.byteLength);return result}}Module.createModel=async(url,storepath,id)=>CommonModel.create(url,storepath,id,true);Module.createSpkModel=async(url,storepath,id)=>CommonModel.create(url,storepath,id,false);class Recognizer extends EventTarget{constructor(){super();objs.push(this);return new Proxy(this,{get(self,prop,_){if(self[prop]==undefined&&self.obj[prop]==undefined)return undefined;let p=self[prop];if(p)return p.bind?p.bind(self):p;p=self.obj[prop];return p.bind?p.bind(self.obj):p}})}acceptWaveform(audioData){let start=_malloc(audioData.length*4);GROWABLE_HEAP_F32().set(audioData,start/4);this.obj.acceptWaveform(start,audioData.length)}async delete(processCurrent=false){let result=new Promise((resolve,_)=>this.addEventListener("status",_=>{this.obj.delete();resolve()},{once:true}));this.obj.safeDelete(processCurrent);return result}static async create(model,sampleRate,mode,grammar,spkModel){let rec=new Recognizer;let result=new Promise((resolve,reject)=>{rec.addEventListener("status",ev=>{if(!ev.detail)resolve(rec);else reject(ev.detail)},{once:true})});switch(mode){case 1:rec.obj=new Module.Recognizer(objs.length-1,sampleRate,model);break;case 2:rec.obj=new Module.Recognizer(objs.length-1,sampleRate,model,spkModel);break;default:rec.obj=new Module.Recognizer(objs.length-1,sampleRate,model,grammar,0)}return result}}Module.createRecognizer=(model,sampleRate)=>Recognizer.create(model.obj,sampleRate,1);Module.createRecognizerWithSpkModel=(model,sampleRate,spkModel)=>Recognizer.create(model.obj,sampleRate,2,null,spkModel.obj);Module.createRecognizerWithGrm=(model,sampleRate,grammar)=>Recognizer.create(model.obj,sampleRate,3,grammar,null);var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};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){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptName){scriptDirectory=_scriptName}if(scriptDirectory.startsWith("blob:")){scriptDirectory=""}else{scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}{if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=url=>fetch(url,{credentials:"same-origin"}).then(response=>{if(response.ok){return response.arrayBuffer()}return Promise.reject(new Error(response.status+" : "+response.url))})}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.error.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];var wasmBinary=Module["wasmBinary"];var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAP64,HEAPU64,HEAPF64;function updateMemoryViews(){var b=wasmMemory.buffer;Module["HEAP8"]=HEAP8=new Int8Array(b);Module["HEAP16"]=HEAP16=new Int16Array(b);Module["HEAPU8"]=HEAPU8=new Uint8Array(b);Module["HEAPU16"]=HEAPU16=new Uint16Array(b);Module["HEAP32"]=HEAP32=new Int32Array(b);Module["HEAPU32"]=HEAPU32=new Uint32Array(b);Module["HEAPF32"]=HEAPF32=new Float32Array(b);Module["HEAPF64"]=HEAPF64=new Float64Array(b);Module["HEAP64"]=HEAP64=new BigInt64Array(b);Module["HEAPU64"]=HEAPU64=new BigUint64Array(b)}if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||330301440;wasmMemory=new WebAssembly.Memory({initial:INITIAL_MEMORY/65536,maximum:32768,shared:true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){err("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and/or recent version)")}throw Error("bad memory")}}updateMemoryViews();var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_WASM_WORKER)return _wasmWorkerInitializeRuntime();callRuntimeCallbacks(__ATINIT__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;Module["monitorRunDependencies"]?.(runDependencies)}function removeRunDependency(id){runDependencies--;Module["monitorRunDependencies"]?.(runDependencies);if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}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 dataURIPrefix="data:application/octet-stream;base64,";var isDataURI=filename=>filename.startsWith(dataURIPrefix);function findWasmBinary(){var f="Vosklet.wasm";if(!isDataURI(f)){return locateFile(f)}return f}var wasmBinaryFile;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"}function getBinaryPromise(binaryFile){if(!wasmBinary){return readAsync(binaryFile).then(response=>new Uint8Array(response),()=>getBinarySync(binaryFile))}return Promise.resolve().then(()=>getBinarySync(binaryFile))}function instantiateArrayBuffer(binaryFile,imports,receiver){return getBinaryPromise(binaryFile).then(binary=>WebAssembly.instantiate(binary,imports)).then(receiver,reason=>{err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)})}function instantiateAsync(binary,binaryFile,imports,callback){if(!binary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(binaryFile)&&typeof fetch=="function"){return fetch(binaryFile,{credentials:"same-origin"}).then(response=>{var result=WebAssembly.instantiateStreaming(response,imports);return result.then(callback,function(reason){err(`wasm streaming compile failed: ${reason}`);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(binaryFile,imports,callback)})})}return instantiateArrayBuffer(binaryFile,imports,callback)}function getWasmImports(){return{a:wasmImports}}function createWasm(){var info=getWasmImports();function receiveInstance(instance,module){wasmExports=instance.exports;wasmTable=wasmExports["$"];addOnInit(wasmExports["Y"]);wasmModule=module;removeRunDependency("wasm-instantiate");return wasmExports}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}if(Module["instantiateWasm"]){try{return Module["instantiateWasm"](info,receiveInstance)}catch(e){err(`Module.instantiateWasm callback failed with error: ${e}`);readyPromiseReject(e)}}if(!wasmBinaryFile)wasmBinaryFile=findWasmBinary();instantiateAsync(wasmBinary,wasmBinaryFile,info,receiveInstantiationResult).catch(readyPromiseReject);return{}}function mtFireEv(index,typeIdx,content){objs[index].dispatchEvent(new CustomEvent(events[typeIdx],{detail:content==0?null:UTF8ToString(content)}))}function ExitStatus(status){this.name="ExitStatus";this.message=`Program terminated with exit(${status})`;this.status=status}var _wasmWorkerDelayedMessageQueue=[];var wasmTableMirror=[];var wasmTable;var getWasmTableEntry=funcPtr=>{var func=wasmTableMirror[funcPtr];if(!func){if(funcPtr>=wasmTableMirror.length)wasmTableMirror.length=funcPtr+1;wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr)}return func};var _wasmWorkerRunPostMessage=e=>{let data=e.data;let wasmCall=data["_wsc"];wasmCall&&getWasmTableEntry(wasmCall)(...data["x"])};var _wasmWorkerAppendToQueue=e=>{_wasmWorkerDelayedMessageQueue.push(e)};var _wasmWorkerInitializeRuntime=()=>{let m=Module;__emscripten_wasm_worker_initialize(m["sb"],m["sz"]);removeEventListener("message",_wasmWorkerAppendToQueue);_wasmWorkerDelayedMessageQueue=_wasmWorkerDelayedMessageQueue.forEach(_wasmWorkerRunPostMessage);addEventListener("message",_wasmWorkerRunPostMessage)};var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};var noExitRuntime=Module["noExitRuntime"]||true;var UTF8Decoder=new TextDecoder;var UTF8ToString=(ptr,maxBytesToRead)=>{if(!ptr)return"";var maxPtr=ptr+maxBytesToRead;for(var end=ptr;!(end>=maxPtr)&&GROWABLE_HEAP_U8()[end];)++end;return UTF8Decoder.decode(GROWABLE_HEAP_U8().slice(ptr,end))};var ___assert_fail=(condition,filename,line,func)=>{abort(`Assertion failed: ${UTF8ToString(condition)}, at: `+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])};var ___call_sighandler=(fp,sig)=>getWasmTableEntry(fp)(sig);class ExceptionInfo{constructor(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24}set_type(type){GROWABLE_HEAP_U32()[this.ptr+4>>2]=type}get_type(){return GROWABLE_HEAP_U32()[this.ptr+4>>2]}set_destructor(destructor){GROWABLE_HEAP_U32()[this.ptr+8>>2]=destructor}get_destructor(){return GROWABLE_HEAP_U32()[this.ptr+8>>2]}set_caught(caught){caught=caught?1:0;GROWABLE_HEAP_I8()[this.ptr+12]=caught}get_caught(){return GROWABLE_HEAP_I8()[this.ptr+12]!=0}set_rethrown(rethrown){rethrown=rethrown?1:0;GROWABLE_HEAP_I8()[this.ptr+13]=rethrown}get_rethrown(){return GROWABLE_HEAP_I8()[this.ptr+13]!=0}init(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor)}set_adjusted_ptr(adjustedPtr){GROWABLE_HEAP_U32()[this.ptr+16>>2]=adjustedPtr}get_adjusted_ptr(){return GROWABLE_HEAP_U32()[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 __abort_js=()=>{abort("")};var embindRepr=v=>{if(v===null){return"null"}var t=typeof v;if(t==="object"||t==="array"||t==="function"){return v.toString()}else{return""+v}};var embind_init_charCodes=()=>{var codes=new Array(256);for(var i=0;i<256;++i){codes[i]=String.fromCharCode(i)}embind_charCodes=codes};var embind_charCodes;var readLatin1String=ptr=>{var ret="";var c=ptr;while(GROWABLE_HEAP_U8()[c]){ret+=embind_charCodes[GROWABLE_HEAP_U8()[c++]]}return ret};var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var BindingError;var throwBindingError=message=>{throw new BindingError(message)};var 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{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)}};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=>GROWABLE_HEAP_I8()[pointer]:pointer=>GROWABLE_HEAP_U8()[pointer];case 2:return signed?pointer=>GROWABLE_HEAP_I16()[pointer>>1]:pointer=>GROWABLE_HEAP_U16()[pointer>>1];case 4:return signed?pointer=>GROWABLE_HEAP_I32()[pointer>>2]:pointer=>GROWABLE_HEAP_U32()[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=readLatin1String(name);var isUnsignedType=name.indexOf("u")!=-1;if(isUnsignedType){maxRange=(1n<<64n)-1n}registerType(primitiveType,{name,fromWireType:value=>value,toWireType:function(destructors,value){if(typeof value!="bigint"&&typeof value!="number"){throw new TypeError(`Cannot convert "${embindRepr(value)}" to ${this.name}`)}if(typeof value=="number"){value=BigInt(value)}return value},argPackAdvance:GenericWireTypeSize,readValueFromPointer:integerReadValueFromPointer(name,size,!isUnsignedType),destructorFunction:null})};var GenericWireTypeSize=8;var __embind_register_bool=(rawType,name,trueValue,falseValue)=>{name=readLatin1String(name);registerType(rawType,{name,fromWireType:function(wt){return!!wt},toWireType:function(destructors,o){return o?trueValue:falseValue},argPackAdvance:GenericWireTypeSize,readValueFromPointer:function(pointer){return this["fromWireType"](GROWABLE_HEAP_U8()[pointer])},destructorFunction:null})};var shallowCopyInternalPointer=o=>({count:o.count,deleteScheduled:o.deleteScheduled,preservePointerOnDelete:o.preservePointerOnDelete,ptr:o.ptr,ptrType:o.ptrType,smartPtr:o.smartPtr,smartPtrType:o.smartPtrType});var throwInstanceAlreadyDeleted=obj=>{function getInstanceTypeName(handle){return handle.$$.ptrType.registeredClass.name}throwBindingError(getInstanceTypeName(obj)+" instance already deleted")};var finalizationRegistry=false;var detachFinalizer=handle=>{};var runDestructor=$$=>{if($$.smartPtr){$$.smartPtrType.rawDestructor($$.smartPtr)}else{$$.ptrType.registeredClass.rawDestructor($$.ptr)}};var releaseClassHandle=$$=>{$$.count.value-=1;var toDelete=0===$$.count.value;if(toDelete){runDestructor($$)}};var downcastPointer=(ptr,ptrClass,desiredClass)=>{if(ptrClass===desiredClass){return ptr}if(undefined===desiredClass.baseClass){return null}var rv=downcastPointer(ptr,ptrClass,desiredClass.baseClass);if(rv===null){return null}return desiredClass.downcast(rv)};var registeredPointers={};var getInheritedInstanceCount=()=>Object.keys(registeredInstances).length;var getLiveInheritedInstances=()=>{var rv=[];for(var k in registeredInstances){if(registeredInstances.hasOwnProperty(k)){rv.push(registeredInstances[k])}}return rv};var deletionQueue=[];var flushPendingDeletes=()=>{while(deletionQueue.length){var obj=deletionQueue.pop();obj.$$.deleteScheduled=false;obj["delete"]()}};var delayFunction;var setDelayFunction=fn=>{delayFunction=fn;if(deletionQueue.length&&delayFunction){delayFunction(flushPendingDeletes)}};var init_embind=()=>{Module["getInheritedInstanceCount"]=getInheritedInstanceCount;Module["getLiveInheritedInstances"]=getLiveInheritedInstances;Module["flushPendingDeletes"]=flushPendingDeletes;Module["setDelayFunction"]=setDelayFunction};var registeredInstances={};var getBasestPointer=(class_,ptr)=>{if(ptr===undefined){throwBindingError("ptr should not be undefined")}while(class_.baseClass){ptr=class_.upcast(ptr);class_=class_.baseClass}return ptr};var getInheritedInstance=(class_,ptr)=>{ptr=getBasestPointer(class_,ptr);return registeredInstances[ptr]};var makeClassHandle=(prototype,record)=>{if(!record.ptrType||!record.ptr){throwInternalError("makeClassHandle requires ptr and ptrType")}var hasSmartPtrType=!!record.smartPtrType;var hasSmartPtr=!!record.smartPtr;if(hasSmartPtrType!==hasSmartPtr){throwInternalError("Both smartPtrType and smartPtr must be specified")}record.count={value:1};return attachFinalizer(Object.create(prototype,{$$:{value:record,writable:true}}))};function RegisteredPointer_fromWireType(ptr){var rawPointer=this.getPointee(ptr);if(!rawPointer){this.destructor(ptr);return null}var registeredInstance=getInheritedInstance(this.registeredClass,rawPointer);if(undefined!==registeredInstance){if(0===registeredInstance.$$.count.value){registeredInstance.$$.ptr=rawPointer;registeredInstance.$$.smartPtr=ptr;return registeredInstance["clone"]()}else{var rv=registeredInstance["clone"]();this.destructor(ptr);return rv}}function makeDefaultHandle(){if(this.isSmartPointer){return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:rawPointer,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this,ptr})}}var actualType=this.registeredClass.getActualType(rawPointer);var registeredPointerRecord=registeredPointers[actualType];if(!registeredPointerRecord){return makeDefaultHandle.call(this)}var toType;if(this.isConst){toType=registeredPointerRecord.constPointerType}else{toType=registeredPointerRecord.pointerType}var dp=downcastPointer(rawPointer,this.registeredClass,toType.registeredClass);if(dp===null){return makeDefaultHandle.call(this)}if(this.isSmartPointer){return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp})}}var attachFinalizer=handle=>{if("undefined"===typeof FinalizationRegistry){attachFinalizer=handle=>handle;return handle}finalizationRegistry=new FinalizationRegistry(info=>{releaseClassHandle(info.$$)});attachFinalizer=handle=>{var $$=handle.$$;var hasSmartPtr=!!$$.smartPtr;if(hasSmartPtr){var info={$$};finalizationRegistry.register(handle,info,handle)}return handle};detachFinalizer=handle=>finalizationRegistry.unregister(handle);return attachFinalizer(handle)};var init_ClassHandle=()=>{Object.assign(ClassHandle.prototype,{isAliasOf(other){if(!(this instanceof ClassHandle)){return false}if(!(other instanceof ClassHandle)){return false}var leftClass=this.$$.ptrType.registeredClass;var left=this.$$.ptr;other.$$=other.$$;var rightClass=other.$$.ptrType.registeredClass;var right=other.$$.ptr;while(leftClass.baseClass){left=leftClass.upcast(left);leftClass=leftClass.baseClass}while(rightClass.baseClass){right=rightClass.upcast(right);rightClass=rightClass.baseClass}return leftClass===rightClass&&left===right},clone(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.preservePointerOnDelete){this.$$.count.value+=1;return this}else{var clone=attachFinalizer(Object.create(Object.getPrototypeOf(this),{$$:{value:shallowCopyInternalPointer(this.$$)}}));clone.$$.count.value+=1;clone.$$.deleteScheduled=false;return clone}},delete(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion")}detachFinalizer(this);releaseClassHandle(this.$$);if(!this.$$.preservePointerOnDelete){this.$$.smartPtr=undefined;this.$$.ptr=undefined}},isDeleted(){return!this.$$.ptr},deleteLater(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion")}deletionQueue.push(this);if(deletionQueue.length===1&&delayFunction){delayFunction(flushPendingDeletes)}this.$$.deleteScheduled=true;return this}})};function ClassHandle(){}var createNamedFunction=(name,body)=>Object.defineProperty(body,"name",{value:name});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.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;if(undefined!==numArguments){Module[name].numArguments=numArguments}}};var char_0=48;var char_9=57;var makeLegalFunctionName=name=>{if(undefined===name){return"_unknown"}name=name.replace(/[^a-zA-Z0-9_]/g,"$");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return`_${name}`}return name};function RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast){this.name=name;this.constructor=constructor;this.instancePrototype=instancePrototype;this.rawDestructor=rawDestructor;this.baseClass=baseClass;this.getActualType=getActualType;this.upcast=upcast;this.downcast=downcast;this.pureVirtualFunctions=[]}var upcastPointer=(ptr,ptrClass,desiredClass)=>{while(ptrClass!==desiredClass){if(!ptrClass.upcast){throwBindingError(`Expected null or instance of ${desiredClass.name}, got an instance of ${ptrClass.name}`)}ptr=ptrClass.upcast(ptr);ptrClass=ptrClass.baseClass}return ptr};function constNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError(`null is not a valid ${this.name}`)}return 0}if(!handle.$$){throwBindingError(`Cannot pass "${embindRepr(handle)}" as a ${this.name}`)}if(!handle.$$.ptr){throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function genericPointerToWireType(destructors,handle){var ptr;if(handle===null){if(this.isReference){throwBindingError(`null is not a valid ${this.name}`)}if(this.isSmartPointer){ptr=this.rawConstructor();if(destructors!==null){destructors.push(this.rawDestructor,ptr)}return ptr}else{return 0}}if(!handle||!handle.$$){throwBindingError(`Cannot pass "${embindRepr(handle)}" as a ${this.name}`)}if(!handle.$$.ptr){throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`)}if(!this.isConst&&handle.$$.ptrType.isConst){throwBindingError(`Cannot convert argument of type ${handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name} to parameter type ${this.name}`)}var handleClass=handle.$$.ptrType.registeredClass;ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);if(this.isSmartPointer){if(undefined===handle.$$.smartPtr){throwBindingError("Passing raw pointer to smart pointer is illegal")}switch(this.sharingPolicy){case 0:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{throwBindingError(`Cannot convert argument of type ${handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name} to parameter type ${this.name}`)}break;case 1:ptr=handle.$$.smartPtr;break;case 2:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{var clonedHandle=handle["clone"]();ptr=this.rawShare(ptr,Emval.toHandle(()=>clonedHandle["delete"]()));if(destructors!==null){destructors.push(this.rawDestructor,ptr)}}break;default:throwBindingError("Unsupporting sharing policy")}}return ptr}function nonConstNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError(`null is not a valid ${this.name}`)}return 0}if(!handle.$$){throwBindingError(`Cannot pass "${embindRepr(handle)}" as a ${this.name}`)}if(!handle.$$.ptr){throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`)}if(handle.$$.ptrType.isConst){throwBindingError(`Cannot convert argument of type ${handle.$$.ptrType.name} to parameter type ${this.name}`)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function readPointer(pointer){return this["fromWireType"](GROWABLE_HEAP_U32()[pointer>>2])}var init_RegisteredPointer=()=>{Object.assign(RegisteredPointer.prototype,{getPointee(ptr){if(this.rawGetPointee){ptr=this.rawGetPointee(ptr)}return ptr},destructor(ptr){this.rawDestructor?.(ptr)},argPackAdvance:GenericWireTypeSize,readValueFromPointer:readPointer,fromWireType:RegisteredPointer_fromWireType})};function RegisteredPointer(name,registeredClass,isReference,isConst,isSmartPointer,pointeeType,sharingPolicy,rawGetPointee,rawConstructor,rawShare,rawDestructor){this.name=name;this.registeredClass=registeredClass;this.isReference=isReference;this.isConst=isConst;this.isSmartPointer=isSmartPointer;this.pointeeType=pointeeType;this.sharingPolicy=sharingPolicy;this.rawGetPointee=rawGetPointee;this.rawConstructor=rawConstructor;this.rawShare=rawShare;this.rawDestructor=rawDestructor;if(!isSmartPointer&®isteredClass.baseClass===undefined){if(isConst){this["toWireType"]=constNoSmartPtrRawPointerToWireType;this.destructorFunction=null}else{this["toWireType"]=nonConstNoSmartPtrRawPointerToWireType;this.destructorFunction=null}}else{this["toWireType"]=genericPointerToWireType}}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 embind__requireFunction=(signature,rawFunction)=>{signature=readLatin1String(signature);function makeDynCaller(){return getWasmTableEntry(rawFunction)}var fp=makeDynCaller();if(typeof fp!="function"){throwBindingError(`unknown function pointer with signature ${signature}: ${rawFunction}`)}return fp};var extendError=(baseErrorType,errorName)=>{var errorClass=createNamedFunction(errorName,function(message){this.name=errorName;this.message=message;var stack=new Error(message).stack;if(stack!==undefined){this.stack=this.toString()+"\n"+stack.replace(/^Error(:[^\n]*)?\n/,"")}});errorClass.prototype=Object.create(baseErrorType.prototype);errorClass.prototype.constructor=errorClass;errorClass.prototype.toString=function(){if(this.message===undefined){return this.name}else{return`${this.name}: ${this.message}`}};return errorClass};var UnboundTypeError;var getTypeName=type=>{var ptr=___getTypeName(type);var rv=readLatin1String(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 __embind_register_class=(rawType,rawPointerType,rawConstPointerType,baseClassRawType,getActualTypeSignature,getActualType,upcastSignature,upcast,downcastSignature,downcast,name,destructorSignature,rawDestructor)=>{name=readLatin1String(name);getActualType=embind__requireFunction(getActualTypeSignature,getActualType);upcast&&=embind__requireFunction(upcastSignature,upcast);downcast&&=embind__requireFunction(downcastSignature,downcast);rawDestructor=embind__requireFunction(destructorSignature,rawDestructor);var legalFunctionName=makeLegalFunctionName(name);exposePublicSymbol(legalFunctionName,function(){throwUnboundTypeError(`Cannot construct ${name} due to unbound types`,[baseClassRawType])});whenDependentTypesAreResolved([rawType,rawPointerType,rawConstPointerType],baseClassRawType?[baseClassRawType]:[],base=>{base=base[0];var baseClass;var basePrototype;if(baseClassRawType){baseClass=base.registeredClass;basePrototype=baseClass.instancePrototype}else{basePrototype=ClassHandle.prototype}var constructor=createNamedFunction(name,function(...args){if(Object.getPrototypeOf(this)!==instancePrototype){throw new BindingError("Use 'new' to construct "+name)}if(undefined===registeredClass.constructor_body){throw new BindingError(name+" has no accessible constructor")}var body=registeredClass.constructor_body[args.length];if(undefined===body){throw new BindingError(`Tried to invoke ctor of ${name} with invalid number of parameters (${args.length}) - expected (${Object.keys(registeredClass.constructor_body).toString()}) parameters instead!`)}return body.apply(this,args)});var instancePrototype=Object.create(basePrototype,{constructor:{value:constructor}});constructor.prototype=instancePrototype;var registeredClass=new RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast);if(registeredClass.baseClass){registeredClass.baseClass.__derivedClasses??=[];registeredClass.baseClass.__derivedClasses.push(registeredClass)}var referenceConverter=new RegisteredPointer(name,registeredClass,true,false,false);var pointerConverter=new RegisteredPointer(name+"*",registeredClass,false,false,false);var constPointerConverter=new RegisteredPointer(name+" const*",registeredClass,false,true,false);registeredPointers[rawType]={pointerType:pointerConverter,constPointerType:constPointerConverter};replacePublicSymbol(legalFunctionName,constructor);return[referenceConverter,pointerConverter,constPointerConverter]})};var heap32VectorToArray=(count,firstElement)=>{var array=[];for(var i=0;i>2])}return array};var runDestructors=destructors=>{while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}};function usesDestructorStack(argTypes){for(var i=1;i{var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);invoker=embind__requireFunction(invokerSignature,invoker);whenDependentTypesAreResolved([],[rawClassType],classType=>{classType=classType[0];var humanName=`constructor ${classType.name}`;if(undefined===classType.registeredClass.constructor_body){classType.registeredClass.constructor_body=[]}if(undefined!==classType.registeredClass.constructor_body[argCount-1]){throw new BindingError(`Cannot register multiple constructors with identical number of parameters (${argCount-1}) for class '${classType.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`)}classType.registeredClass.constructor_body[argCount-1]=()=>{throwUnboundTypeError(`Cannot construct ${classType.name} due to unbound types`,rawArgTypes)};whenDependentTypesAreResolved([],rawArgTypes,argTypes=>{argTypes.splice(1,0,null);classType.registeredClass.constructor_body[argCount-1]=craftInvokerFunction(humanName,argTypes,null,invoker,rawConstructor);return[]});return[]})};var getFunctionName=signature=>{signature=signature.trim();const argsIndex=signature.indexOf("(");if(argsIndex!==-1){return signature.substr(0,argsIndex)}else{return signature}};var __embind_register_class_function=(rawClassType,methodName,argCount,rawArgTypesAddr,invokerSignature,rawInvoker,context,isPureVirtual,isAsync)=>{var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);methodName=readLatin1String(methodName);methodName=getFunctionName(methodName);rawInvoker=embind__requireFunction(invokerSignature,rawInvoker);whenDependentTypesAreResolved([],[rawClassType],classType=>{classType=classType[0];var humanName=`${classType.name}.${methodName}`;if(methodName.startsWith("@@")){methodName=Symbol[methodName.substring(2)]}if(isPureVirtual){classType.registeredClass.pureVirtualFunctions.push(methodName)}function unboundTypesHandler(){throwUnboundTypeError(`Cannot call ${humanName} due to unbound types`,rawArgTypes)}var proto=classType.registeredClass.instancePrototype;var method=proto[methodName];if(undefined===method||undefined===method.overloadTable&&method.className!==classType.name&&method.argCount===argCount-2){unboundTypesHandler.argCount=argCount-2;unboundTypesHandler.className=classType.name;proto[methodName]=unboundTypesHandler}else{ensureOverloadTable(proto,methodName,humanName);proto[methodName].overloadTable[argCount-2]=unboundTypesHandler}whenDependentTypesAreResolved([],rawArgTypes,argTypes=>{var memberFunction=craftInvokerFunction(humanName,argTypes,classType,rawInvoker,context,isAsync);if(undefined===proto[methodName].overloadTable){memberFunction.argCount=argCount-2;proto[methodName]=memberFunction}else{proto[methodName].overloadTable[argCount-2]=memberFunction}return[]});return[]})};var emval_freelist=[];var emval_handles=[];var __emval_decref=handle=>{if(handle>9&&0===--emval_handles[handle+1]){emval_handles[handle]=undefined;emval_freelist.push(handle)}};var count_emval_handles=()=>emval_handles.length/2-5-emval_freelist.length;var init_emval=()=>{emval_handles.push(0,1,undefined,1,null,1,true,1,false,1);Module["count_emval_handles"]=count_emval_handles};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),argPackAdvance:GenericWireTypeSize,readValueFromPointer:readPointer,destructorFunction:null};var __embind_register_emval=rawType=>registerType(rawType,EmValType);var enumReadValueFromPointer=(name,width,signed)=>{switch(width){case 1:return signed?function(pointer){return this["fromWireType"](GROWABLE_HEAP_I8()[pointer])}:function(pointer){return this["fromWireType"](GROWABLE_HEAP_U8()[pointer])};case 2:return signed?function(pointer){return this["fromWireType"](GROWABLE_HEAP_I16()[pointer>>1])}:function(pointer){return this["fromWireType"](GROWABLE_HEAP_U16()[pointer>>1])};case 4:return signed?function(pointer){return this["fromWireType"](GROWABLE_HEAP_I32()[pointer>>2])}:function(pointer){return this["fromWireType"](GROWABLE_HEAP_U32()[pointer>>2])};default:throw new TypeError(`invalid integer width (${width}): ${name}`)}};var __embind_register_enum=(rawType,name,size,isSigned)=>{name=readLatin1String(name);function ctor(){}ctor.values={};registerType(rawType,{name,constructor:ctor,fromWireType:function(c){return this.constructor.values[c]},toWireType:(destructors,c)=>c.value,argPackAdvance:GenericWireTypeSize,readValueFromPointer:enumReadValueFromPointer(name,size,isSigned),destructorFunction:null});exposePublicSymbol(name,ctor)};var requireRegisteredType=(rawType,humanName)=>{var impl=registeredTypes[rawType];if(undefined===impl){throwBindingError(`${humanName} has unknown type ${getTypeName(rawType)}`)}return impl};var __embind_register_enum_value=(rawEnumType,name,enumValue)=>{var enumType=requireRegisteredType(rawEnumType,"enum");name=readLatin1String(name);var Enum=enumType.constructor;var Value=Object.create(enumType.constructor.prototype,{value:{value:enumValue},constructor:{value:createNamedFunction(`${enumType.name}_${name}`,function(){})}});Enum.values[enumValue]=Value;Enum[name]=Value};var floatReadValueFromPointer=(name,width)=>{switch(width){case 4:return function(pointer){return this["fromWireType"](GROWABLE_HEAP_F32()[pointer>>2])};case 8:return function(pointer){return this["fromWireType"](GROWABLE_HEAP_F64()[pointer>>3])};default:throw new TypeError(`invalid float width (${width}): ${name}`)}};var __embind_register_float=(rawType,name,size)=>{name=readLatin1String(name);registerType(rawType,{name,fromWireType:value=>value,toWireType:(destructors,value)=>value,argPackAdvance:GenericWireTypeSize,readValueFromPointer:floatReadValueFromPointer(name,size),destructorFunction:null})};var __embind_register_function=(name,argCount,rawArgTypesAddr,signature,rawInvoker,fn,isAsync)=>{var argTypes=heap32VectorToArray(argCount,rawArgTypesAddr);name=readLatin1String(name);name=getFunctionName(name);rawInvoker=embind__requireFunction(signature,rawInvoker);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=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var fromWireType=value=>value;if(minRange===0){var bitshift=32-8*size;fromWireType=value=>value<>>bitshift}var isUnsignedType=name.includes("unsigned");var checkAssertions=(value,toTypeName)=>{};var toWireType;if(isUnsignedType){toWireType=function(destructors,value){checkAssertions(value,this.name);return value>>>0}}else{toWireType=function(destructors,value){checkAssertions(value,this.name);return value}}registerType(primitiveType,{name,fromWireType,toWireType,argPackAdvance:GenericWireTypeSize,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=GROWABLE_HEAP_U32()[handle>>2];var data=GROWABLE_HEAP_U32()[handle+4>>2];return new TA(GROWABLE_HEAP_I8().buffer,data,size)}name=readLatin1String(name);registerType(rawType,{name,fromWireType:decodeMemoryView,argPackAdvance:GenericWireTypeSize,readValueFromPointer:decodeMemoryView},{ignoreDuplicateRegistrations:true})};var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}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}}heap[outIdx]=0;return outIdx-startIdx};var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,GROWABLE_HEAP_U8(),outPtr,maxBytesToWrite);var lengthBytesUTF8=str=>{var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var __embind_register_std_string=(rawType,name)=>{name=readLatin1String(name);var stdStringIsUTF8=name==="std::string";registerType(rawType,{name,fromWireType(value){var length=GROWABLE_HEAP_U32()[value>>2];var payload=value+4;var str;if(stdStringIsUTF8){var decodeStartPtr=payload;for(var i=0;i<=length;++i){var currentBytePtr=payload+i;if(i==length||GROWABLE_HEAP_U8()[currentBytePtr]==0){var maxRead=currentBytePtr-decodeStartPtr;var stringSegment=UTF8ToString(decodeStartPtr,maxRead);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+1}}}else{var a=new Array(length);for(var i=0;i>2]=length;if(stdStringIsUTF8&&valueIsOfTypeString){stringToUTF8(value,ptr,length+1)}else{if(valueIsOfTypeString){for(var i=0;i255){_free(ptr);throwBindingError("String has UTF-16 code units that do not fit in 8 bits")}GROWABLE_HEAP_U8()[ptr+i]=charCode}}else{for(var i=0;i{var endPtr=ptr;var idx=endPtr>>1;var maxIdx=idx+maxBytesToRead/2;while(!(idx>=maxIdx)&&GROWABLE_HEAP_U16()[idx])++idx;endPtr=idx<<1;return UTF16Decoder.decode(GROWABLE_HEAP_U8().slice(ptr,endPtr))};var stringToUTF16=(str,outPtr,maxBytesToWrite)=>{maxBytesToWrite??=2147483647;if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}GROWABLE_HEAP_I16()[outPtr>>1]=0;return outPtr-startPtr};var lengthBytesUTF16=str=>str.length*2;var UTF32ToString=(ptr,maxBytesToRead)=>{var i=0;var str="";while(!(i>=maxBytesToRead/4)){var utf32=GROWABLE_HEAP_I32()[ptr+i*4>>2];if(utf32==0)break;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(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=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}GROWABLE_HEAP_I32()[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}GROWABLE_HEAP_I32()[outPtr>>2]=0;return outPtr-startPtr};var lengthBytesUTF32=str=>{var len=0;for(var i=0;i=55296&&codeUnit<=57343)++i;len+=4}return len};var __embind_register_std_wstring=(rawType,charSize,name)=>{name=readLatin1String(name);var decodeString,encodeString,readCharAt,lengthBytesUTF;if(charSize===2){decodeString=UTF16ToString;encodeString=stringToUTF16;lengthBytesUTF=lengthBytesUTF16;readCharAt=pointer=>GROWABLE_HEAP_U16()[pointer>>1]}else if(charSize===4){decodeString=UTF32ToString;encodeString=stringToUTF32;lengthBytesUTF=lengthBytesUTF32;readCharAt=pointer=>GROWABLE_HEAP_U32()[pointer>>2]}registerType(rawType,{name,fromWireType:value=>{var length=GROWABLE_HEAP_U32()[value>>2];var str;var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i*charSize;if(i==length||readCharAt(currentBytePtr)==0){var maxReadBytes=currentBytePtr-decodeStartPtr;var stringSegment=decodeString(decodeStartPtr,maxReadBytes);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+charSize}}_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);GROWABLE_HEAP_U32()[ptr>>2]=length/charSize;encodeString(value,ptr+4,length+charSize);if(destructors!==null){destructors.push(_free,ptr)}return ptr},argPackAdvance:GenericWireTypeSize,readValueFromPointer:readPointer,destructorFunction(ptr){_free(ptr)}})};var __embind_register_void=(rawType,name)=>{name=readLatin1String(name);registerType(rawType,{isVoid:true,name,argPackAdvance:0,fromWireType:()=>undefined,toWireType:(destructors,o)=>undefined})};var _wasmWorkers={};var _wasmWorkersID=1;var _wasmWorkerBlobUrl=URL.createObjectURL(new Blob(["onmessage=function(d){onmessage=null;d=d.data;d[`instantiateWasm`]=(i,r)=>{var n=new WebAssembly.Instance(d[`wasm`],i);return r(n,d[`wasm`]);};importScripts(d.js);loadVosklet(d);d.wasm=d.mem=d.js=0;}"],{type:"application/javascript"}));var __emscripten_create_wasm_worker=(stackLowestAddress,stackSize)=>{let worker=_wasmWorkers[_wasmWorkersID]=new Worker(_wasmWorkerBlobUrl);worker.postMessage({$ww:_wasmWorkersID,wasm:wasmModule,js:Module["mainScriptUrlOrBlob"]||_scriptName,wasmMemory,sb:stackLowestAddress,sz:stackSize});worker.onmessage=_wasmWorkerRunPostMessage;return _wasmWorkersID++};var nowIsMonotonic=1;var __emscripten_get_now_is_monotonic=()=>nowIsMonotonic;var __emscripten_runtime_keepalive_clear=()=>{noExitRuntime=false;runtimeKeepaliveCounter=0};var timers={};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 _emscripten_get_now;_emscripten_get_now=()=>performance.now();var __setitimer_js=(which,timeout_ms)=>{if(timers[which]){clearTimeout(timers[which].id);delete timers[which]}if(!timeout_ms)return 0;var id=setTimeout(()=>{delete timers[which];callUserCallback(()=>__emscripten_timeout(which,_emscripten_get_now()))},timeout_ms);timers[which]={id,timeout_ms};return 0};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);GROWABLE_HEAP_U32()[timezone>>2]=stdTimezoneOffset*60;GROWABLE_HEAP_I32()[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(summerOffsetGROWABLE_HEAP_U8().set(wasmFSPreloadedFiles[index].fileData,buffer);var wasmFSPreloadedDirs=[];var __wasmfs_get_num_preloaded_dirs=()=>wasmFSPreloadedDirs.length;var wasmFSPreloadedFiles=[];var wasmFSPreloadingFlushed=false;var __wasmfs_get_num_preloaded_files=()=>{wasmFSPreloadingFlushed=true;return wasmFSPreloadedFiles.length};var __wasmfs_get_preloaded_child_path=(index,childNameBuffer)=>{var s=wasmFSPreloadedDirs[index].childName;var len=lengthBytesUTF8(s)+1;stringToUTF8(s,childNameBuffer,len)};var __wasmfs_get_preloaded_file_mode=index=>wasmFSPreloadedFiles[index].mode;var __wasmfs_get_preloaded_file_size=index=>wasmFSPreloadedFiles[index].fileData.length;var __wasmfs_get_preloaded_parent_path=(index,parentPathBuffer)=>{var s=wasmFSPreloadedDirs[index].parentPath;var len=lengthBytesUTF8(s)+1;stringToUTF8(s,parentPathBuffer,len)};var __wasmfs_get_preloaded_path_name=(index,fileNameBuffer)=>{var s=wasmFSPreloadedFiles[index].pathName;var len=lengthBytesUTF8(s)+1;stringToUTF8(s,fileNameBuffer,len)};var FS_stdin_getChar_buffer=[];function 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 __wasmfs_stdin_get_char=()=>{var c=FS_stdin_getChar();if(typeof c==="number"){return c}return-1};var _emscripten_console_error=str=>{console.error(UTF8ToString(str))};var _emscripten_console_log=str=>{console.log(UTF8ToString(str))};var _emscripten_console_warn=str=>{console.warn(UTF8ToString(str))};var _emscripten_date_now=()=>Date.now();var _emscripten_err=str=>err(UTF8ToString(str));var _emscripten_out=str=>out(UTF8ToString(str));var getHeapMax=()=>2147483648;var alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;var growMemory=size=>{var b=wasmMemory.buffer;var pages=(size-b.byteLength+65535)/65536;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};var _emscripten_resize_heap=requestedSize=>{var oldSize=GROWABLE_HEAP_U8().length;requestedSize>>>=0;if(requestedSize<=oldSize){return false}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 _wasmWorkerPostFunction2=(id,funcPtr,arg0,arg1)=>{_wasmWorkers[id].postMessage({_wsc:funcPtr,x:[arg0,arg1]})};var _emscripten_wasm_worker_post_function_vii=_wasmWorkerPostFunction2;var _wasmWorkerPostFunction3=(id,funcPtr,arg0,arg1,arg2)=>{_wasmWorkers[id].postMessage({_wsc:funcPtr,x:[arg0,arg1,arg2]})};var _emscripten_wasm_worker_post_function_viii=_wasmWorkerPostFunction3;var ENV={};var getExecutableName=()=>thisProgram||"./this.program";var getEnvStrings=()=>{if(!getEnvStrings.strings){var lang=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"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 stringToAscii=(str,buffer)=>{for(var i=0;i{var bufSize=0;getEnvStrings().forEach((string,i)=>{var ptr=environ_buf+bufSize;GROWABLE_HEAP_U32()[__environ+i*4>>2]=ptr;stringToAscii(string,ptr);bufSize+=string.length+1});return 0};var _environ_sizes_get=(penviron_count,penviron_buf_size)=>{var strings=getEnvStrings();GROWABLE_HEAP_U32()[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(string=>bufSize+=string.length+1);GROWABLE_HEAP_U32()[penviron_buf_size>>2]=bufSize;return 0};var initRandomFill=()=>{if(typeof crypto=="object"&&typeof crypto["getRandomValues"]=="function"){return view=>(view.set(crypto.getRandomValues(new Uint8Array(view.byteLength))),view)}else abort("initRandomDevice")};var randomFill=view=>(randomFill=initRandomFill())(view);var _getentropy=(buffer,size)=>{randomFill(GROWABLE_HEAP_U8().subarray(buffer,buffer+size));return 0};embind_init_charCodes();BindingError=Module["BindingError"]=class BindingError extends Error{constructor(message){super(message);this.name="BindingError"}};InternalError=Module["InternalError"]=class InternalError extends Error{constructor(message){super(message);this.name="InternalError"}};init_ClassHandle();init_embind();init_RegisteredPointer();UnboundTypeError=Module["UnboundTypeError"]=extendError(Error,"UnboundTypeError");init_emval();if(ENVIRONMENT_IS_WASM_WORKER){_wasmWorkers[0]=this;addEventListener("message",_wasmWorkerAppendToQueue)}var wasmImports={c:___assert_fail,t:___call_sighandler,d:___cxa_throw,P:__abort_js,q:__embind_register_bigint,S:__embind_register_bool,o:__embind_register_class,j:__embind_register_class_constructor,g:__embind_register_class_function,R:__embind_register_emval,s:__embind_register_enum,k:__embind_register_enum_value,p:__embind_register_float,C:__embind_register_function,i:__embind_register_integer,e:__embind_register_memory_view,r:__embind_register_std_string,n:__embind_register_std_wstring,T:__embind_register_void,I:__emscripten_create_wasm_worker,O:__emscripten_get_now_is_monotonic,v:__emscripten_runtime_keepalive_clear,w:__setitimer_js,K:__tzset_js,E:__wasmfs_copy_preloaded_file_data,B:__wasmfs_get_num_preloaded_dirs,D:__wasmfs_get_num_preloaded_files,z:__wasmfs_get_preloaded_child_path,x:__wasmfs_get_preloaded_file_mode,F:__wasmfs_get_preloaded_file_size,A:__wasmfs_get_preloaded_parent_path,y:__wasmfs_get_preloaded_path_name,H:__wasmfs_stdin_get_char,U:_emscripten_console_error,W:_emscripten_console_log,V:_emscripten_console_warn,f:_emscripten_date_now,l:_emscripten_err,m:_emscripten_get_now,G:_emscripten_out,L:_emscripten_resize_heap,Q:_emscripten_wasm_worker_post_function_vii,h:_emscripten_wasm_worker_post_function_viii,M:_environ_get,N:_environ_sizes_get,b:_exit,J:_getentropy,a:wasmMemory,X:mtFireEv,u:_proc_exit};var wasmExports=createWasm();var ___wasm_call_ctors=()=>(___wasm_call_ctors=wasmExports["Y"])();var _free=a0=>(_free=wasmExports["Z"])(a0);var _malloc=Module["_malloc"]=a0=>(_malloc=Module["_malloc"]=wasmExports["_"])(a0);var ___getTypeName=a0=>(___getTypeName=wasmExports["aa"])(a0);var __emscripten_timeout=(a0,a1)=>(__emscripten_timeout=wasmExports["ba"])(a0,a1);var __emscripten_wasm_worker_initialize=(a0,a1)=>(__emscripten_wasm_worker_initialize=wasmExports["ca"])(a0,a1);Module["UTF8ToString"]=UTF8ToString;var calledRun;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(){if(runDependencies>0){return}if(ENVIRONMENT_IS_WASM_WORKER){readyPromiseResolve(Module);return initRuntime()}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);Module["onRuntimeInitialized"]?.();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(()=>{setTimeout(()=>Module["setStatus"](""),1);doRun()},1)}else{doRun()}}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}run();moduleRtn=readyPromise; +function GROWABLE_HEAP_I8(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAP8}function GROWABLE_HEAP_U8(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAPU8}function GROWABLE_HEAP_I16(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAP16}function GROWABLE_HEAP_U16(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAPU16}function GROWABLE_HEAP_I32(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAP32}function GROWABLE_HEAP_U32(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAPU32}function GROWABLE_HEAP_F32(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAPF32}function GROWABLE_HEAP_F64(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAPF64}var Module=moduleArg;var readyPromiseResolve,readyPromiseReject;var readyPromise=new Promise((resolve,reject)=>{readyPromiseResolve=resolve;readyPromiseReject=reject});var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof importScripts=="function";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";var ENVIRONMENT_IS_WASM_WORKER=Module["$ww"];let objs=[];let events=["status","partialResult","result"];let processorURL=URL.createObjectURL(new Blob(["(",(()=>{registerProcessor("VoskletTransferer",class extends AudioWorkletProcessor{constructor(opts){super();this.count=0;this.maxCount=opts.processorOptions.maxCount;this.buffer=new Float32Array(this.maxCount*128)}process(inputs){if(!inputs[0][0])return true;this.buffer.set(inputs[0][0],this.count*128);this.count++;if(this.count>=this.maxCount){this.count=0;this.port.postMessage(this.buffer,[this.buffer.buffer]);this.buffer=new Float32Array(this.maxCount*128)}return true}})}).toString(),")()"],{type:"text/javascript"}));Module.cleanUp=async()=>{for(let obj of objs)await obj.delete();URL.revokeObjectURL(processorURL)};Module.createTransferer=async(ctx,bufferSize)=>{await ctx.audioWorklet.addModule(processorURL);return new AudioWorkletNode(ctx,"VoskletTransferer",{channelCountMode:"explicit",numberOfInputs:1,numberOfOutputs:0,channelCount:1,processorOptions:{maxCount:bufferSize/128}})};getFileHandle=async(path,create=false)=>{let components=path.split("/");let prevDir=await navigator.storage.getDirectory();for(let component of components.slice(0,-1))prevDir=await prevDir.getDirectoryHandle(component,{create});return prevDir.getFileHandle(components[components.length-1],{create})};class CommonModel extends EventTarget{constructor(){super();objs.push(this)}delete(){this.obj.delete()}static async create(url,storepath,id,normalMdl){let mdl=new CommonModel;let result=new Promise((resolve,reject)=>{mdl.addEventListener("status",ev=>{if(!ev.detail){if(normalMdl)mdl.findWord=word=>mdl.obj.findWord(word);resolve(mdl)}else reject(ev.detail)},{once:true})});let tar;try{let dataFile=await(await getFileHandle(storepath+"/model.tgz")).getFile();let idFile=await(await getFileHandle(storepath+"/id")).getFile();if(await idFile.text()!=id)throw"";tar=await new Response(dataFile.stream().pipeThrough(new DecompressionStream("gzip"))).arrayBuffer()}catch{try{let res=await fetch(url);if(!res.ok)throw"Unable to download model";let teedBody=res.body.tee();let newDataFile=await(await getFileHandle(storepath+"/model.tgz",true)).createWritable();await newDataFile.write(await new Response(teedBody[0].pipeThrough(new CompressionStream("gzip"))).arrayBuffer());await newDataFile.close();let newIDFile=await(await getFileHandle(storepath+"/id",true)).createWritable();await newIDFile.write(id);await newIDFile.close();tar=await new Response(teedBody[1]).arrayBuffer()}catch(e){mdl.delete();throw e}}let tarStart=_malloc(tar.byteLength);GROWABLE_HEAP_U8().set(new Uint8Array(tar),tarStart);mdl.obj=new Module.CommonModel(objs.length-1,normalMdl,"/"+storepath,id,tarStart,tar.byteLength);return result}}Module.createModel=async(url,storepath,id)=>CommonModel.create(url,storepath,id,true);Module.createSpkModel=async(url,storepath,id)=>CommonModel.create(url,storepath,id,false);class Recognizer extends EventTarget{constructor(){super();objs.push(this);return new Proxy(this,{get(self,prop,_){if(self[prop]==undefined&&self.obj[prop]==undefined)return undefined;let p=self[prop];if(p)return p.bind?p.bind(self):p;p=self.obj[prop];return p.bind?p.bind(self.obj):p}})}acceptWaveform(audioData){let start=_malloc(audioData.length*4);GROWABLE_HEAP_F32().set(audioData,start/4);this.obj.acceptWaveform(start,audioData.length)}async delete(processCurrent=false){let result=new Promise((resolve,_)=>this.addEventListener("status",_=>{this.obj.delete();resolve()},{once:true}));this.obj.safeDelete(processCurrent);return result}static async create(model,sampleRate,mode,grammar,spkModel){let rec=new Recognizer;let result=new Promise((resolve,reject)=>{rec.addEventListener("status",ev=>{if(!ev.detail)resolve(rec);else reject(ev.detail)},{once:true})});switch(mode){case 1:rec.obj=new Module.Recognizer(objs.length-1,sampleRate,model);break;case 2:rec.obj=new Module.Recognizer(objs.length-1,sampleRate,model,spkModel);break;default:rec.obj=new Module.Recognizer(objs.length-1,sampleRate,model,grammar,0)}return result}}Module.createRecognizer=(model,sampleRate)=>Recognizer.create(model.obj,sampleRate,1);Module.createRecognizerWithSpkModel=(model,sampleRate,spkModel)=>Recognizer.create(model.obj,sampleRate,2,null,spkModel.obj);Module.createRecognizerWithGrm=(model,sampleRate,grammar)=>Recognizer.create(model.obj,sampleRate,3,grammar,null);var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};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){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptName){scriptDirectory=_scriptName}if(scriptDirectory.startsWith("blob:")){scriptDirectory=""}else{scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}{if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=url=>fetch(url,{credentials:"same-origin"}).then(response=>{if(response.ok){return response.arrayBuffer()}return Promise.reject(new Error(response.status+" : "+response.url))})}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.error.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];var wasmBinary=Module["wasmBinary"];var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAP64,HEAPU64,HEAPF64;function updateMemoryViews(){var b=wasmMemory.buffer;Module["HEAP8"]=HEAP8=new Int8Array(b);Module["HEAP16"]=HEAP16=new Int16Array(b);Module["HEAPU8"]=HEAPU8=new Uint8Array(b);Module["HEAPU16"]=HEAPU16=new Uint16Array(b);Module["HEAP32"]=HEAP32=new Int32Array(b);Module["HEAPU32"]=HEAPU32=new Uint32Array(b);Module["HEAPF32"]=HEAPF32=new Float32Array(b);Module["HEAPF64"]=HEAPF64=new Float64Array(b);Module["HEAP64"]=HEAP64=new BigInt64Array(b);Module["HEAPU64"]=HEAPU64=new BigUint64Array(b)}if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||330301440;wasmMemory=new WebAssembly.Memory({initial:INITIAL_MEMORY/65536,maximum:32768,shared:true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){err("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and/or recent version)")}throw Error("bad memory")}}updateMemoryViews();var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_WASM_WORKER)return _wasmWorkerInitializeRuntime();callRuntimeCallbacks(__ATINIT__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;Module["monitorRunDependencies"]?.(runDependencies)}function removeRunDependency(id){runDependencies--;Module["monitorRunDependencies"]?.(runDependencies);if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}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 dataURIPrefix="data:application/octet-stream;base64,";var isDataURI=filename=>filename.startsWith(dataURIPrefix);function findWasmBinary(){var f="Vosklet.wasm";if(!isDataURI(f)){return locateFile(f)}return f}var wasmBinaryFile;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"}function getBinaryPromise(binaryFile){if(!wasmBinary){return readAsync(binaryFile).then(response=>new Uint8Array(response),()=>getBinarySync(binaryFile))}return Promise.resolve().then(()=>getBinarySync(binaryFile))}function instantiateArrayBuffer(binaryFile,imports,receiver){return getBinaryPromise(binaryFile).then(binary=>WebAssembly.instantiate(binary,imports)).then(receiver,reason=>{err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)})}function instantiateAsync(binary,binaryFile,imports,callback){if(!binary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(binaryFile)&&typeof fetch=="function"){return fetch(binaryFile,{credentials:"same-origin"}).then(response=>{var result=WebAssembly.instantiateStreaming(response,imports);return result.then(callback,function(reason){err(`wasm streaming compile failed: ${reason}`);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(binaryFile,imports,callback)})})}return instantiateArrayBuffer(binaryFile,imports,callback)}function getWasmImports(){return{a:wasmImports}}function createWasm(){var info=getWasmImports();function receiveInstance(instance,module){wasmExports=instance.exports;wasmTable=wasmExports["$"];addOnInit(wasmExports["Y"]);wasmModule=module;removeRunDependency("wasm-instantiate");return wasmExports}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}if(Module["instantiateWasm"]){try{return Module["instantiateWasm"](info,receiveInstance)}catch(e){err(`Module.instantiateWasm callback failed with error: ${e}`);readyPromiseReject(e)}}if(!wasmBinaryFile)wasmBinaryFile=findWasmBinary();instantiateAsync(wasmBinary,wasmBinaryFile,info,receiveInstantiationResult).catch(readyPromiseReject);return{}}function mtFireEv(index,typeIdx,content){objs[index].dispatchEvent(new CustomEvent(events[typeIdx],{detail:content==0?null:UTF8ToString(content)}))}function ExitStatus(status){this.name="ExitStatus";this.message=`Program terminated with exit(${status})`;this.status=status}var _wasmWorkerDelayedMessageQueue=[];var wasmTableMirror=[];var wasmTable;var getWasmTableEntry=funcPtr=>{var func=wasmTableMirror[funcPtr];if(!func){if(funcPtr>=wasmTableMirror.length)wasmTableMirror.length=funcPtr+1;wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr)}return func};var _wasmWorkerRunPostMessage=e=>{let data=e.data;let wasmCall=data["_wsc"];wasmCall&&getWasmTableEntry(wasmCall)(...data["x"])};var _wasmWorkerAppendToQueue=e=>{_wasmWorkerDelayedMessageQueue.push(e)};var _wasmWorkerInitializeRuntime=()=>{let m=Module;__emscripten_wasm_worker_initialize(m["sb"],m["sz"]);removeEventListener("message",_wasmWorkerAppendToQueue);_wasmWorkerDelayedMessageQueue=_wasmWorkerDelayedMessageQueue.forEach(_wasmWorkerRunPostMessage);addEventListener("message",_wasmWorkerRunPostMessage)};var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};var noExitRuntime=Module["noExitRuntime"]||true;var UTF8Decoder=new TextDecoder;var UTF8ToString=(ptr,maxBytesToRead)=>{if(!ptr)return"";var maxPtr=ptr+maxBytesToRead;for(var end=ptr;!(end>=maxPtr)&&GROWABLE_HEAP_U8()[end];)++end;return UTF8Decoder.decode(GROWABLE_HEAP_U8().slice(ptr,end))};var ___assert_fail=(condition,filename,line,func)=>{abort(`Assertion failed: ${UTF8ToString(condition)}, at: `+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])};var ___call_sighandler=(fp,sig)=>getWasmTableEntry(fp)(sig);class ExceptionInfo{constructor(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24}set_type(type){GROWABLE_HEAP_U32()[this.ptr+4>>2]=type}get_type(){return GROWABLE_HEAP_U32()[this.ptr+4>>2]}set_destructor(destructor){GROWABLE_HEAP_U32()[this.ptr+8>>2]=destructor}get_destructor(){return GROWABLE_HEAP_U32()[this.ptr+8>>2]}set_caught(caught){caught=caught?1:0;GROWABLE_HEAP_I8()[this.ptr+12]=caught}get_caught(){return GROWABLE_HEAP_I8()[this.ptr+12]!=0}set_rethrown(rethrown){rethrown=rethrown?1:0;GROWABLE_HEAP_I8()[this.ptr+13]=rethrown}get_rethrown(){return GROWABLE_HEAP_I8()[this.ptr+13]!=0}init(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor)}set_adjusted_ptr(adjustedPtr){GROWABLE_HEAP_U32()[this.ptr+16>>2]=adjustedPtr}get_adjusted_ptr(){return GROWABLE_HEAP_U32()[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 __abort_js=()=>{abort("")};var embindRepr=v=>{if(v===null){return"null"}var t=typeof v;if(t==="object"||t==="array"||t==="function"){return v.toString()}else{return""+v}};var embind_init_charCodes=()=>{var codes=new Array(256);for(var i=0;i<256;++i){codes[i]=String.fromCharCode(i)}embind_charCodes=codes};var embind_charCodes;var readLatin1String=ptr=>{var ret="";var c=ptr;while(GROWABLE_HEAP_U8()[c]){ret+=embind_charCodes[GROWABLE_HEAP_U8()[c++]]}return ret};var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var BindingError;var throwBindingError=message=>{throw new BindingError(message)};var 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{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)}};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=>GROWABLE_HEAP_I8()[pointer]:pointer=>GROWABLE_HEAP_U8()[pointer];case 2:return signed?pointer=>GROWABLE_HEAP_I16()[pointer>>1]:pointer=>GROWABLE_HEAP_U16()[pointer>>1];case 4:return signed?pointer=>GROWABLE_HEAP_I32()[pointer>>2]:pointer=>GROWABLE_HEAP_U32()[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=readLatin1String(name);var isUnsignedType=name.indexOf("u")!=-1;if(isUnsignedType){maxRange=(1n<<64n)-1n}registerType(primitiveType,{name,fromWireType:value=>value,toWireType:function(destructors,value){if(typeof value!="bigint"&&typeof value!="number"){throw new TypeError(`Cannot convert "${embindRepr(value)}" to ${this.name}`)}if(typeof value=="number"){value=BigInt(value)}return value},argPackAdvance:GenericWireTypeSize,readValueFromPointer:integerReadValueFromPointer(name,size,!isUnsignedType),destructorFunction:null})};var GenericWireTypeSize=8;var __embind_register_bool=(rawType,name,trueValue,falseValue)=>{name=readLatin1String(name);registerType(rawType,{name,fromWireType:function(wt){return!!wt},toWireType:function(destructors,o){return o?trueValue:falseValue},argPackAdvance:GenericWireTypeSize,readValueFromPointer:function(pointer){return this["fromWireType"](GROWABLE_HEAP_U8()[pointer])},destructorFunction:null})};var shallowCopyInternalPointer=o=>({count:o.count,deleteScheduled:o.deleteScheduled,preservePointerOnDelete:o.preservePointerOnDelete,ptr:o.ptr,ptrType:o.ptrType,smartPtr:o.smartPtr,smartPtrType:o.smartPtrType});var throwInstanceAlreadyDeleted=obj=>{function getInstanceTypeName(handle){return handle.$$.ptrType.registeredClass.name}throwBindingError(getInstanceTypeName(obj)+" instance already deleted")};var finalizationRegistry=false;var detachFinalizer=handle=>{};var runDestructor=$$=>{if($$.smartPtr){$$.smartPtrType.rawDestructor($$.smartPtr)}else{$$.ptrType.registeredClass.rawDestructor($$.ptr)}};var releaseClassHandle=$$=>{$$.count.value-=1;var toDelete=0===$$.count.value;if(toDelete){runDestructor($$)}};var downcastPointer=(ptr,ptrClass,desiredClass)=>{if(ptrClass===desiredClass){return ptr}if(undefined===desiredClass.baseClass){return null}var rv=downcastPointer(ptr,ptrClass,desiredClass.baseClass);if(rv===null){return null}return desiredClass.downcast(rv)};var registeredPointers={};var getInheritedInstanceCount=()=>Object.keys(registeredInstances).length;var getLiveInheritedInstances=()=>{var rv=[];for(var k in registeredInstances){if(registeredInstances.hasOwnProperty(k)){rv.push(registeredInstances[k])}}return rv};var deletionQueue=[];var flushPendingDeletes=()=>{while(deletionQueue.length){var obj=deletionQueue.pop();obj.$$.deleteScheduled=false;obj["delete"]()}};var delayFunction;var setDelayFunction=fn=>{delayFunction=fn;if(deletionQueue.length&&delayFunction){delayFunction(flushPendingDeletes)}};var init_embind=()=>{Module["getInheritedInstanceCount"]=getInheritedInstanceCount;Module["getLiveInheritedInstances"]=getLiveInheritedInstances;Module["flushPendingDeletes"]=flushPendingDeletes;Module["setDelayFunction"]=setDelayFunction};var registeredInstances={};var getBasestPointer=(class_,ptr)=>{if(ptr===undefined){throwBindingError("ptr should not be undefined")}while(class_.baseClass){ptr=class_.upcast(ptr);class_=class_.baseClass}return ptr};var getInheritedInstance=(class_,ptr)=>{ptr=getBasestPointer(class_,ptr);return registeredInstances[ptr]};var makeClassHandle=(prototype,record)=>{if(!record.ptrType||!record.ptr){throwInternalError("makeClassHandle requires ptr and ptrType")}var hasSmartPtrType=!!record.smartPtrType;var hasSmartPtr=!!record.smartPtr;if(hasSmartPtrType!==hasSmartPtr){throwInternalError("Both smartPtrType and smartPtr must be specified")}record.count={value:1};return attachFinalizer(Object.create(prototype,{$$:{value:record,writable:true}}))};function RegisteredPointer_fromWireType(ptr){var rawPointer=this.getPointee(ptr);if(!rawPointer){this.destructor(ptr);return null}var registeredInstance=getInheritedInstance(this.registeredClass,rawPointer);if(undefined!==registeredInstance){if(0===registeredInstance.$$.count.value){registeredInstance.$$.ptr=rawPointer;registeredInstance.$$.smartPtr=ptr;return registeredInstance["clone"]()}else{var rv=registeredInstance["clone"]();this.destructor(ptr);return rv}}function makeDefaultHandle(){if(this.isSmartPointer){return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:rawPointer,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this,ptr})}}var actualType=this.registeredClass.getActualType(rawPointer);var registeredPointerRecord=registeredPointers[actualType];if(!registeredPointerRecord){return makeDefaultHandle.call(this)}var toType;if(this.isConst){toType=registeredPointerRecord.constPointerType}else{toType=registeredPointerRecord.pointerType}var dp=downcastPointer(rawPointer,this.registeredClass,toType.registeredClass);if(dp===null){return makeDefaultHandle.call(this)}if(this.isSmartPointer){return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp})}}var attachFinalizer=handle=>{if("undefined"===typeof FinalizationRegistry){attachFinalizer=handle=>handle;return handle}finalizationRegistry=new FinalizationRegistry(info=>{releaseClassHandle(info.$$)});attachFinalizer=handle=>{var $$=handle.$$;var hasSmartPtr=!!$$.smartPtr;if(hasSmartPtr){var info={$$};finalizationRegistry.register(handle,info,handle)}return handle};detachFinalizer=handle=>finalizationRegistry.unregister(handle);return attachFinalizer(handle)};var init_ClassHandle=()=>{Object.assign(ClassHandle.prototype,{isAliasOf(other){if(!(this instanceof ClassHandle)){return false}if(!(other instanceof ClassHandle)){return false}var leftClass=this.$$.ptrType.registeredClass;var left=this.$$.ptr;other.$$=other.$$;var rightClass=other.$$.ptrType.registeredClass;var right=other.$$.ptr;while(leftClass.baseClass){left=leftClass.upcast(left);leftClass=leftClass.baseClass}while(rightClass.baseClass){right=rightClass.upcast(right);rightClass=rightClass.baseClass}return leftClass===rightClass&&left===right},clone(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.preservePointerOnDelete){this.$$.count.value+=1;return this}else{var clone=attachFinalizer(Object.create(Object.getPrototypeOf(this),{$$:{value:shallowCopyInternalPointer(this.$$)}}));clone.$$.count.value+=1;clone.$$.deleteScheduled=false;return clone}},delete(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion")}detachFinalizer(this);releaseClassHandle(this.$$);if(!this.$$.preservePointerOnDelete){this.$$.smartPtr=undefined;this.$$.ptr=undefined}},isDeleted(){return!this.$$.ptr},deleteLater(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion")}deletionQueue.push(this);if(deletionQueue.length===1&&delayFunction){delayFunction(flushPendingDeletes)}this.$$.deleteScheduled=true;return this}})};function ClassHandle(){}var createNamedFunction=(name,body)=>Object.defineProperty(body,"name",{value:name});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.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;if(undefined!==numArguments){Module[name].numArguments=numArguments}}};var char_0=48;var char_9=57;var makeLegalFunctionName=name=>{if(undefined===name){return"_unknown"}name=name.replace(/[^a-zA-Z0-9_]/g,"$");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return`_${name}`}return name};function RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast){this.name=name;this.constructor=constructor;this.instancePrototype=instancePrototype;this.rawDestructor=rawDestructor;this.baseClass=baseClass;this.getActualType=getActualType;this.upcast=upcast;this.downcast=downcast;this.pureVirtualFunctions=[]}var upcastPointer=(ptr,ptrClass,desiredClass)=>{while(ptrClass!==desiredClass){if(!ptrClass.upcast){throwBindingError(`Expected null or instance of ${desiredClass.name}, got an instance of ${ptrClass.name}`)}ptr=ptrClass.upcast(ptr);ptrClass=ptrClass.baseClass}return ptr};function constNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError(`null is not a valid ${this.name}`)}return 0}if(!handle.$$){throwBindingError(`Cannot pass "${embindRepr(handle)}" as a ${this.name}`)}if(!handle.$$.ptr){throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function genericPointerToWireType(destructors,handle){var ptr;if(handle===null){if(this.isReference){throwBindingError(`null is not a valid ${this.name}`)}if(this.isSmartPointer){ptr=this.rawConstructor();if(destructors!==null){destructors.push(this.rawDestructor,ptr)}return ptr}else{return 0}}if(!handle||!handle.$$){throwBindingError(`Cannot pass "${embindRepr(handle)}" as a ${this.name}`)}if(!handle.$$.ptr){throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`)}if(!this.isConst&&handle.$$.ptrType.isConst){throwBindingError(`Cannot convert argument of type ${handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name} to parameter type ${this.name}`)}var handleClass=handle.$$.ptrType.registeredClass;ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);if(this.isSmartPointer){if(undefined===handle.$$.smartPtr){throwBindingError("Passing raw pointer to smart pointer is illegal")}switch(this.sharingPolicy){case 0:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{throwBindingError(`Cannot convert argument of type ${handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name} to parameter type ${this.name}`)}break;case 1:ptr=handle.$$.smartPtr;break;case 2:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{var clonedHandle=handle["clone"]();ptr=this.rawShare(ptr,Emval.toHandle(()=>clonedHandle["delete"]()));if(destructors!==null){destructors.push(this.rawDestructor,ptr)}}break;default:throwBindingError("Unsupporting sharing policy")}}return ptr}function nonConstNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError(`null is not a valid ${this.name}`)}return 0}if(!handle.$$){throwBindingError(`Cannot pass "${embindRepr(handle)}" as a ${this.name}`)}if(!handle.$$.ptr){throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`)}if(handle.$$.ptrType.isConst){throwBindingError(`Cannot convert argument of type ${handle.$$.ptrType.name} to parameter type ${this.name}`)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function readPointer(pointer){return this["fromWireType"](GROWABLE_HEAP_U32()[pointer>>2])}var init_RegisteredPointer=()=>{Object.assign(RegisteredPointer.prototype,{getPointee(ptr){if(this.rawGetPointee){ptr=this.rawGetPointee(ptr)}return ptr},destructor(ptr){this.rawDestructor?.(ptr)},argPackAdvance:GenericWireTypeSize,readValueFromPointer:readPointer,fromWireType:RegisteredPointer_fromWireType})};function RegisteredPointer(name,registeredClass,isReference,isConst,isSmartPointer,pointeeType,sharingPolicy,rawGetPointee,rawConstructor,rawShare,rawDestructor){this.name=name;this.registeredClass=registeredClass;this.isReference=isReference;this.isConst=isConst;this.isSmartPointer=isSmartPointer;this.pointeeType=pointeeType;this.sharingPolicy=sharingPolicy;this.rawGetPointee=rawGetPointee;this.rawConstructor=rawConstructor;this.rawShare=rawShare;this.rawDestructor=rawDestructor;if(!isSmartPointer&®isteredClass.baseClass===undefined){if(isConst){this["toWireType"]=constNoSmartPtrRawPointerToWireType;this.destructorFunction=null}else{this["toWireType"]=nonConstNoSmartPtrRawPointerToWireType;this.destructorFunction=null}}else{this["toWireType"]=genericPointerToWireType}}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 embind__requireFunction=(signature,rawFunction)=>{signature=readLatin1String(signature);function makeDynCaller(){return getWasmTableEntry(rawFunction)}var fp=makeDynCaller();if(typeof fp!="function"){throwBindingError(`unknown function pointer with signature ${signature}: ${rawFunction}`)}return fp};var extendError=(baseErrorType,errorName)=>{var errorClass=createNamedFunction(errorName,function(message){this.name=errorName;this.message=message;var stack=new Error(message).stack;if(stack!==undefined){this.stack=this.toString()+"\n"+stack.replace(/^Error(:[^\n]*)?\n/,"")}});errorClass.prototype=Object.create(baseErrorType.prototype);errorClass.prototype.constructor=errorClass;errorClass.prototype.toString=function(){if(this.message===undefined){return this.name}else{return`${this.name}: ${this.message}`}};return errorClass};var UnboundTypeError;var getTypeName=type=>{var ptr=___getTypeName(type);var rv=readLatin1String(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 __embind_register_class=(rawType,rawPointerType,rawConstPointerType,baseClassRawType,getActualTypeSignature,getActualType,upcastSignature,upcast,downcastSignature,downcast,name,destructorSignature,rawDestructor)=>{name=readLatin1String(name);getActualType=embind__requireFunction(getActualTypeSignature,getActualType);upcast&&=embind__requireFunction(upcastSignature,upcast);downcast&&=embind__requireFunction(downcastSignature,downcast);rawDestructor=embind__requireFunction(destructorSignature,rawDestructor);var legalFunctionName=makeLegalFunctionName(name);exposePublicSymbol(legalFunctionName,function(){throwUnboundTypeError(`Cannot construct ${name} due to unbound types`,[baseClassRawType])});whenDependentTypesAreResolved([rawType,rawPointerType,rawConstPointerType],baseClassRawType?[baseClassRawType]:[],base=>{base=base[0];var baseClass;var basePrototype;if(baseClassRawType){baseClass=base.registeredClass;basePrototype=baseClass.instancePrototype}else{basePrototype=ClassHandle.prototype}var constructor=createNamedFunction(name,function(...args){if(Object.getPrototypeOf(this)!==instancePrototype){throw new BindingError("Use 'new' to construct "+name)}if(undefined===registeredClass.constructor_body){throw new BindingError(name+" has no accessible constructor")}var body=registeredClass.constructor_body[args.length];if(undefined===body){throw new BindingError(`Tried to invoke ctor of ${name} with invalid number of parameters (${args.length}) - expected (${Object.keys(registeredClass.constructor_body).toString()}) parameters instead!`)}return body.apply(this,args)});var instancePrototype=Object.create(basePrototype,{constructor:{value:constructor}});constructor.prototype=instancePrototype;var registeredClass=new RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast);if(registeredClass.baseClass){registeredClass.baseClass.__derivedClasses??=[];registeredClass.baseClass.__derivedClasses.push(registeredClass)}var referenceConverter=new RegisteredPointer(name,registeredClass,true,false,false);var pointerConverter=new RegisteredPointer(name+"*",registeredClass,false,false,false);var constPointerConverter=new RegisteredPointer(name+" const*",registeredClass,false,true,false);registeredPointers[rawType]={pointerType:pointerConverter,constPointerType:constPointerConverter};replacePublicSymbol(legalFunctionName,constructor);return[referenceConverter,pointerConverter,constPointerConverter]})};var heap32VectorToArray=(count,firstElement)=>{var array=[];for(var i=0;i>2])}return array};var runDestructors=destructors=>{while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}};function usesDestructorStack(argTypes){for(var i=1;i{var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);invoker=embind__requireFunction(invokerSignature,invoker);whenDependentTypesAreResolved([],[rawClassType],classType=>{classType=classType[0];var humanName=`constructor ${classType.name}`;if(undefined===classType.registeredClass.constructor_body){classType.registeredClass.constructor_body=[]}if(undefined!==classType.registeredClass.constructor_body[argCount-1]){throw new BindingError(`Cannot register multiple constructors with identical number of parameters (${argCount-1}) for class '${classType.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`)}classType.registeredClass.constructor_body[argCount-1]=()=>{throwUnboundTypeError(`Cannot construct ${classType.name} due to unbound types`,rawArgTypes)};whenDependentTypesAreResolved([],rawArgTypes,argTypes=>{argTypes.splice(1,0,null);classType.registeredClass.constructor_body[argCount-1]=craftInvokerFunction(humanName,argTypes,null,invoker,rawConstructor);return[]});return[]})};var getFunctionName=signature=>{signature=signature.trim();const argsIndex=signature.indexOf("(");if(argsIndex!==-1){return signature.substr(0,argsIndex)}else{return signature}};var __embind_register_class_function=(rawClassType,methodName,argCount,rawArgTypesAddr,invokerSignature,rawInvoker,context,isPureVirtual,isAsync,isNonnullReturn)=>{var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);methodName=readLatin1String(methodName);methodName=getFunctionName(methodName);rawInvoker=embind__requireFunction(invokerSignature,rawInvoker);whenDependentTypesAreResolved([],[rawClassType],classType=>{classType=classType[0];var humanName=`${classType.name}.${methodName}`;if(methodName.startsWith("@@")){methodName=Symbol[methodName.substring(2)]}if(isPureVirtual){classType.registeredClass.pureVirtualFunctions.push(methodName)}function unboundTypesHandler(){throwUnboundTypeError(`Cannot call ${humanName} due to unbound types`,rawArgTypes)}var proto=classType.registeredClass.instancePrototype;var method=proto[methodName];if(undefined===method||undefined===method.overloadTable&&method.className!==classType.name&&method.argCount===argCount-2){unboundTypesHandler.argCount=argCount-2;unboundTypesHandler.className=classType.name;proto[methodName]=unboundTypesHandler}else{ensureOverloadTable(proto,methodName,humanName);proto[methodName].overloadTable[argCount-2]=unboundTypesHandler}whenDependentTypesAreResolved([],rawArgTypes,argTypes=>{var memberFunction=craftInvokerFunction(humanName,argTypes,classType,rawInvoker,context,isAsync);if(undefined===proto[methodName].overloadTable){memberFunction.argCount=argCount-2;proto[methodName]=memberFunction}else{proto[methodName].overloadTable[argCount-2]=memberFunction}return[]});return[]})};var emval_freelist=[];var emval_handles=[];var __emval_decref=handle=>{if(handle>9&&0===--emval_handles[handle+1]){emval_handles[handle]=undefined;emval_freelist.push(handle)}};var count_emval_handles=()=>emval_handles.length/2-5-emval_freelist.length;var init_emval=()=>{emval_handles.push(0,1,undefined,1,null,1,true,1,false,1);Module["count_emval_handles"]=count_emval_handles};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),argPackAdvance:GenericWireTypeSize,readValueFromPointer:readPointer,destructorFunction:null};var __embind_register_emval=rawType=>registerType(rawType,EmValType);var enumReadValueFromPointer=(name,width,signed)=>{switch(width){case 1:return signed?function(pointer){return this["fromWireType"](GROWABLE_HEAP_I8()[pointer])}:function(pointer){return this["fromWireType"](GROWABLE_HEAP_U8()[pointer])};case 2:return signed?function(pointer){return this["fromWireType"](GROWABLE_HEAP_I16()[pointer>>1])}:function(pointer){return this["fromWireType"](GROWABLE_HEAP_U16()[pointer>>1])};case 4:return signed?function(pointer){return this["fromWireType"](GROWABLE_HEAP_I32()[pointer>>2])}:function(pointer){return this["fromWireType"](GROWABLE_HEAP_U32()[pointer>>2])};default:throw new TypeError(`invalid integer width (${width}): ${name}`)}};var __embind_register_enum=(rawType,name,size,isSigned)=>{name=readLatin1String(name);function ctor(){}ctor.values={};registerType(rawType,{name,constructor:ctor,fromWireType:function(c){return this.constructor.values[c]},toWireType:(destructors,c)=>c.value,argPackAdvance:GenericWireTypeSize,readValueFromPointer:enumReadValueFromPointer(name,size,isSigned),destructorFunction:null});exposePublicSymbol(name,ctor)};var requireRegisteredType=(rawType,humanName)=>{var impl=registeredTypes[rawType];if(undefined===impl){throwBindingError(`${humanName} has unknown type ${getTypeName(rawType)}`)}return impl};var __embind_register_enum_value=(rawEnumType,name,enumValue)=>{var enumType=requireRegisteredType(rawEnumType,"enum");name=readLatin1String(name);var Enum=enumType.constructor;var Value=Object.create(enumType.constructor.prototype,{value:{value:enumValue},constructor:{value:createNamedFunction(`${enumType.name}_${name}`,function(){})}});Enum.values[enumValue]=Value;Enum[name]=Value};var floatReadValueFromPointer=(name,width)=>{switch(width){case 4:return function(pointer){return this["fromWireType"](GROWABLE_HEAP_F32()[pointer>>2])};case 8:return function(pointer){return this["fromWireType"](GROWABLE_HEAP_F64()[pointer>>3])};default:throw new TypeError(`invalid float width (${width}): ${name}`)}};var __embind_register_float=(rawType,name,size)=>{name=readLatin1String(name);registerType(rawType,{name,fromWireType:value=>value,toWireType:(destructors,value)=>value,argPackAdvance:GenericWireTypeSize,readValueFromPointer:floatReadValueFromPointer(name,size),destructorFunction:null})};var __embind_register_function=(name,argCount,rawArgTypesAddr,signature,rawInvoker,fn,isAsync,isNonnullReturn)=>{var argTypes=heap32VectorToArray(argCount,rawArgTypesAddr);name=readLatin1String(name);name=getFunctionName(name);rawInvoker=embind__requireFunction(signature,rawInvoker);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=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var fromWireType=value=>value;if(minRange===0){var bitshift=32-8*size;fromWireType=value=>value<>>bitshift}var isUnsignedType=name.includes("unsigned");var checkAssertions=(value,toTypeName)=>{};var toWireType;if(isUnsignedType){toWireType=function(destructors,value){checkAssertions(value,this.name);return value>>>0}}else{toWireType=function(destructors,value){checkAssertions(value,this.name);return value}}registerType(primitiveType,{name,fromWireType,toWireType,argPackAdvance:GenericWireTypeSize,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=GROWABLE_HEAP_U32()[handle>>2];var data=GROWABLE_HEAP_U32()[handle+4>>2];return new TA(GROWABLE_HEAP_I8().buffer,data,size)}name=readLatin1String(name);registerType(rawType,{name,fromWireType:decodeMemoryView,argPackAdvance:GenericWireTypeSize,readValueFromPointer:decodeMemoryView},{ignoreDuplicateRegistrations:true})};var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}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}}heap[outIdx]=0;return outIdx-startIdx};var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,GROWABLE_HEAP_U8(),outPtr,maxBytesToWrite);var lengthBytesUTF8=str=>{var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var __embind_register_std_string=(rawType,name)=>{name=readLatin1String(name);var stdStringIsUTF8=name==="std::string";registerType(rawType,{name,fromWireType(value){var length=GROWABLE_HEAP_U32()[value>>2];var payload=value+4;var str;if(stdStringIsUTF8){var decodeStartPtr=payload;for(var i=0;i<=length;++i){var currentBytePtr=payload+i;if(i==length||GROWABLE_HEAP_U8()[currentBytePtr]==0){var maxRead=currentBytePtr-decodeStartPtr;var stringSegment=UTF8ToString(decodeStartPtr,maxRead);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+1}}}else{var a=new Array(length);for(var i=0;i>2]=length;if(stdStringIsUTF8&&valueIsOfTypeString){stringToUTF8(value,ptr,length+1)}else{if(valueIsOfTypeString){for(var i=0;i255){_free(ptr);throwBindingError("String has UTF-16 code units that do not fit in 8 bits")}GROWABLE_HEAP_U8()[ptr+i]=charCode}}else{for(var i=0;i{var endPtr=ptr;var idx=endPtr>>1;var maxIdx=idx+maxBytesToRead/2;while(!(idx>=maxIdx)&&GROWABLE_HEAP_U16()[idx])++idx;endPtr=idx<<1;return UTF16Decoder.decode(GROWABLE_HEAP_U8().slice(ptr,endPtr))};var stringToUTF16=(str,outPtr,maxBytesToWrite)=>{maxBytesToWrite??=2147483647;if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}GROWABLE_HEAP_I16()[outPtr>>1]=0;return outPtr-startPtr};var lengthBytesUTF16=str=>str.length*2;var UTF32ToString=(ptr,maxBytesToRead)=>{var i=0;var str="";while(!(i>=maxBytesToRead/4)){var utf32=GROWABLE_HEAP_I32()[ptr+i*4>>2];if(utf32==0)break;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(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=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}GROWABLE_HEAP_I32()[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}GROWABLE_HEAP_I32()[outPtr>>2]=0;return outPtr-startPtr};var lengthBytesUTF32=str=>{var len=0;for(var i=0;i=55296&&codeUnit<=57343)++i;len+=4}return len};var __embind_register_std_wstring=(rawType,charSize,name)=>{name=readLatin1String(name);var decodeString,encodeString,readCharAt,lengthBytesUTF;if(charSize===2){decodeString=UTF16ToString;encodeString=stringToUTF16;lengthBytesUTF=lengthBytesUTF16;readCharAt=pointer=>GROWABLE_HEAP_U16()[pointer>>1]}else if(charSize===4){decodeString=UTF32ToString;encodeString=stringToUTF32;lengthBytesUTF=lengthBytesUTF32;readCharAt=pointer=>GROWABLE_HEAP_U32()[pointer>>2]}registerType(rawType,{name,fromWireType:value=>{var length=GROWABLE_HEAP_U32()[value>>2];var str;var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i*charSize;if(i==length||readCharAt(currentBytePtr)==0){var maxReadBytes=currentBytePtr-decodeStartPtr;var stringSegment=decodeString(decodeStartPtr,maxReadBytes);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+charSize}}_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);GROWABLE_HEAP_U32()[ptr>>2]=length/charSize;encodeString(value,ptr+4,length+charSize);if(destructors!==null){destructors.push(_free,ptr)}return ptr},argPackAdvance:GenericWireTypeSize,readValueFromPointer:readPointer,destructorFunction(ptr){_free(ptr)}})};var __embind_register_void=(rawType,name)=>{name=readLatin1String(name);registerType(rawType,{isVoid:true,name,argPackAdvance:0,fromWireType:()=>undefined,toWireType:(destructors,o)=>undefined})};var _wasmWorkers={};var _wasmWorkersID=1;var _wasmWorkerBlobUrl=URL.createObjectURL(new Blob(["onmessage=function(d){onmessage=null;d=d.data;d[`instantiateWasm`]=(i,r)=>{var n=new WebAssembly.Instance(d[`wasm`],i);return r(n,d[`wasm`]);};importScripts(d.js);loadVosklet(d);d.wasm=d.mem=d.js=0;}"],{type:"application/javascript"}));var __emscripten_create_wasm_worker=(stackLowestAddress,stackSize)=>{let worker=_wasmWorkers[_wasmWorkersID]=new Worker(_wasmWorkerBlobUrl);worker.postMessage({$ww:_wasmWorkersID,wasm:wasmModule,js:Module["mainScriptUrlOrBlob"]||_scriptName,wasmMemory,sb:stackLowestAddress,sz:stackSize});worker.onmessage=_wasmWorkerRunPostMessage;return _wasmWorkersID++};var nowIsMonotonic=1;var __emscripten_get_now_is_monotonic=()=>nowIsMonotonic;var __emscripten_runtime_keepalive_clear=()=>{noExitRuntime=false;runtimeKeepaliveCounter=0};var timers={};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 _emscripten_get_now;_emscripten_get_now=()=>performance.now();var __setitimer_js=(which,timeout_ms)=>{if(timers[which]){clearTimeout(timers[which].id);delete timers[which]}if(!timeout_ms)return 0;var id=setTimeout(()=>{delete timers[which];callUserCallback(()=>__emscripten_timeout(which,_emscripten_get_now()))},timeout_ms);timers[which]={id,timeout_ms};return 0};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);GROWABLE_HEAP_U32()[timezone>>2]=stdTimezoneOffset*60;GROWABLE_HEAP_I32()[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(summerOffsetGROWABLE_HEAP_U8().set(wasmFSPreloadedFiles[index].fileData,buffer);var wasmFSPreloadedDirs=[];var __wasmfs_get_num_preloaded_dirs=()=>wasmFSPreloadedDirs.length;var wasmFSPreloadedFiles=[];var wasmFSPreloadingFlushed=false;var __wasmfs_get_num_preloaded_files=()=>{wasmFSPreloadingFlushed=true;return wasmFSPreloadedFiles.length};var __wasmfs_get_preloaded_child_path=(index,childNameBuffer)=>{var s=wasmFSPreloadedDirs[index].childName;var len=lengthBytesUTF8(s)+1;stringToUTF8(s,childNameBuffer,len)};var __wasmfs_get_preloaded_file_mode=index=>wasmFSPreloadedFiles[index].mode;var __wasmfs_get_preloaded_file_size=index=>wasmFSPreloadedFiles[index].fileData.length;var __wasmfs_get_preloaded_parent_path=(index,parentPathBuffer)=>{var s=wasmFSPreloadedDirs[index].parentPath;var len=lengthBytesUTF8(s)+1;stringToUTF8(s,parentPathBuffer,len)};var __wasmfs_get_preloaded_path_name=(index,fileNameBuffer)=>{var s=wasmFSPreloadedFiles[index].pathName;var len=lengthBytesUTF8(s)+1;stringToUTF8(s,fileNameBuffer,len)};var FS_stdin_getChar_buffer=[];function 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 __wasmfs_stdin_get_char=()=>{var c=FS_stdin_getChar();if(typeof c==="number"){return c}return-1};var _emscripten_console_error=str=>{console.error(UTF8ToString(str))};var _emscripten_console_log=str=>{console.log(UTF8ToString(str))};var _emscripten_console_warn=str=>{console.warn(UTF8ToString(str))};var _emscripten_date_now=()=>Date.now();var _emscripten_err=str=>err(UTF8ToString(str));var _emscripten_out=str=>out(UTF8ToString(str));var getHeapMax=()=>2147483648;var alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;var growMemory=size=>{var b=wasmMemory.buffer;var pages=(size-b.byteLength+65535)/65536;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};var _emscripten_resize_heap=requestedSize=>{var oldSize=GROWABLE_HEAP_U8().length;requestedSize>>>=0;if(requestedSize<=oldSize){return false}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 _wasmWorkerPostFunction2=(id,funcPtr,arg0,arg1)=>{_wasmWorkers[id].postMessage({_wsc:funcPtr,x:[arg0,arg1]})};var _emscripten_wasm_worker_post_function_vii=_wasmWorkerPostFunction2;var _wasmWorkerPostFunction3=(id,funcPtr,arg0,arg1,arg2)=>{_wasmWorkers[id].postMessage({_wsc:funcPtr,x:[arg0,arg1,arg2]})};var _emscripten_wasm_worker_post_function_viii=_wasmWorkerPostFunction3;var ENV={};var getExecutableName=()=>thisProgram||"./this.program";var getEnvStrings=()=>{if(!getEnvStrings.strings){var lang=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"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 stringToAscii=(str,buffer)=>{for(var i=0;i{var bufSize=0;getEnvStrings().forEach((string,i)=>{var ptr=environ_buf+bufSize;GROWABLE_HEAP_U32()[__environ+i*4>>2]=ptr;stringToAscii(string,ptr);bufSize+=string.length+1});return 0};var _environ_sizes_get=(penviron_count,penviron_buf_size)=>{var strings=getEnvStrings();GROWABLE_HEAP_U32()[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(string=>bufSize+=string.length+1);GROWABLE_HEAP_U32()[penviron_buf_size>>2]=bufSize;return 0};var initRandomFill=()=>{if(typeof crypto=="object"&&typeof crypto["getRandomValues"]=="function"){return view=>(view.set(crypto.getRandomValues(new Uint8Array(view.byteLength))),view)}else abort("initRandomDevice")};var randomFill=view=>(randomFill=initRandomFill())(view);var _getentropy=(buffer,size)=>{randomFill(GROWABLE_HEAP_U8().subarray(buffer,buffer+size));return 0};embind_init_charCodes();BindingError=Module["BindingError"]=class BindingError extends Error{constructor(message){super(message);this.name="BindingError"}};InternalError=Module["InternalError"]=class InternalError extends Error{constructor(message){super(message);this.name="InternalError"}};init_ClassHandle();init_embind();init_RegisteredPointer();UnboundTypeError=Module["UnboundTypeError"]=extendError(Error,"UnboundTypeError");init_emval();if(ENVIRONMENT_IS_WASM_WORKER){_wasmWorkers[0]=this;addEventListener("message",_wasmWorkerAppendToQueue)}var wasmImports={c:___assert_fail,t:___call_sighandler,d:___cxa_throw,P:__abort_js,q:__embind_register_bigint,S:__embind_register_bool,o:__embind_register_class,j:__embind_register_class_constructor,g:__embind_register_class_function,R:__embind_register_emval,s:__embind_register_enum,k:__embind_register_enum_value,p:__embind_register_float,C:__embind_register_function,i:__embind_register_integer,e:__embind_register_memory_view,r:__embind_register_std_string,n:__embind_register_std_wstring,T:__embind_register_void,I:__emscripten_create_wasm_worker,O:__emscripten_get_now_is_monotonic,v:__emscripten_runtime_keepalive_clear,w:__setitimer_js,K:__tzset_js,E:__wasmfs_copy_preloaded_file_data,B:__wasmfs_get_num_preloaded_dirs,D:__wasmfs_get_num_preloaded_files,z:__wasmfs_get_preloaded_child_path,x:__wasmfs_get_preloaded_file_mode,F:__wasmfs_get_preloaded_file_size,A:__wasmfs_get_preloaded_parent_path,y:__wasmfs_get_preloaded_path_name,H:__wasmfs_stdin_get_char,U:_emscripten_console_error,W:_emscripten_console_log,V:_emscripten_console_warn,f:_emscripten_date_now,l:_emscripten_err,m:_emscripten_get_now,G:_emscripten_out,L:_emscripten_resize_heap,Q:_emscripten_wasm_worker_post_function_vii,h:_emscripten_wasm_worker_post_function_viii,M:_environ_get,N:_environ_sizes_get,b:_exit,J:_getentropy,a:wasmMemory,X:mtFireEv,u:_proc_exit};var wasmExports=createWasm();var ___wasm_call_ctors=()=>(___wasm_call_ctors=wasmExports["Y"])();var _free=a0=>(_free=wasmExports["Z"])(a0);var _malloc=Module["_malloc"]=a0=>(_malloc=Module["_malloc"]=wasmExports["_"])(a0);var ___getTypeName=a0=>(___getTypeName=wasmExports["aa"])(a0);var __emscripten_timeout=(a0,a1)=>(__emscripten_timeout=wasmExports["ba"])(a0,a1);var __emscripten_wasm_worker_initialize=(a0,a1)=>(__emscripten_wasm_worker_initialize=wasmExports["ca"])(a0,a1);Module["UTF8ToString"]=UTF8ToString;var calledRun;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(){if(runDependencies>0){return}if(ENVIRONMENT_IS_WASM_WORKER){readyPromiseResolve(Module);return initRuntime()}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);Module["onRuntimeInitialized"]?.();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(()=>{setTimeout(()=>Module["setStatus"](""),1);doRun()},1)}else{doRun()}}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}run();moduleRtn=readyPromise; return moduleRtn; diff --git a/Vosklet.wasm b/Vosklet.wasm index 2ae7518d64c2674d396b1a23e38aed9deb926763..a1443ae0165fe88b4128aab31dcc4cab08d20347 100755 GIT binary patch delta 52742 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 R;NKYjjV;Z(afkTD{|B;tw95bh delta 54270 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 "$OPENFST"/Makefile fi @@ -58,7 +58,7 @@ if [ ! -d "$KALDI" ]; then git clone -b vosk --depth=1 https://github.com/alphacep/kaldi "$KALDI" && cd "$KALDI"/src && git apply "$SRC"/Kaldi.patch && - CXXFLAGS="-O3 -UHAVE_EXECINFO_H -fno-rtti -flto -msimd128 -mreference-types -mnontrapping-fptoint -mextended-const -msign-ext -mmutable-globals -Wno-unused-variable -Wno-unused-but-set-variable -g0" LDFLAGS="-O3 -lembind -flto -g0" emconfigure ./configure --use-cuda=no --with-cudadecoder=no --static --static-math=yes --static-fst=yes --debug-level=0 --fst-root="$OPENFST" --clapack-root="$CLAPACK_WASM" --host=WASM && + CXXFLAGS="-O3 -UHAVE_EXECINFO_H -DEMSCRIPTEN_HAS_UNBOUND_TYPE_NAMES=0 -flto -msimd128 -mreference-types -mnontrapping-fptoint -mextended-const -msign-ext -mmutable-globals -Wno-unused-variable -Wno-unused-but-set-variable -g0" LDFLAGS="-lembind" emconfigure ./configure --use-cuda=no --with-cudadecoder=no --static --static-math=yes --static-fst=yes --debug-level=0 --fst-root="$OPENFST" --clapack-root="$CLAPACK_WASM" --host=WASM && emmake make -j"$JOBS" online2 rnnlm fi diff --git a/test b/test index db6794e..62fc612 100755 --- a/test +++ b/test @@ -36,10 +36,10 @@ OPENFST=$(realpath openfst) CLAPACK_WASM=$(realpath clapack-wasm) cd src && -MODE=1 && # 0: Ultra debug info, 1: Optimized release, else custom +MODE=1 && # 0: Debug, 1: Optimized release, else custom echo "Mode = $MODE" && if [ "$MODE" = 0 ]; then - em++ Util.cc CommonModel.cc Recognizer.cc Bindings.cc -O0 -DEMSCRIPTEN_HAS_UNBOUND_TYPE_NAMES=0 -fno-rtti -DMAX_WORKERS="$MAX_THREADS" -sWASMFS -sWASM_BIGINT -sMODULARIZE -sWASM_EXNREF -sTEXTDECODER=2 -sWASM_WORKERS=2 -sEVAL_CTORS=2 -sSTACK_OVERFLOW_CHECK=2 -sASSERTIONS=2 -sINITIAL_MEMORY="$INITIAL_MEMORY" -sALLOW_MEMORY_GROWTH -sRUNTIME_DEBUG -sPOLYFILL=0 -sEXIT_RUNTIME=0 -sINVOKE_RUN=0 -sDISABLE_EXCEPTION_CATCHING=0 -sEXPORTED_FUNCTIONS=_malloc -sEXPORT_NAME=loadVosklet -sMALLOC=emmalloc -sEXPORTED_RUNTIME_METHODS=UTF8ToString -sENVIRONMENT=web,worker -I. -I"$VOSK"/src -L"$KALDI"/src -l:online2/kaldi-online2.a -l:decoder/kaldi-decoder.a -l:ivector/kaldi-ivector.a -l:gmm/kaldi-gmm.a -l:tree/kaldi-tree.a -l:feat/kaldi-feat.a -l:cudamatrix/kaldi-cudamatrix.a -l:lat/kaldi-lat.a -l:lm/kaldi-lm.a -l:rnnlm/kaldi-rnnlm.a -l:hmm/kaldi-hmm.a -l:nnet3/kaldi-nnet3.a -l:transform/kaldi-transform.a -l:matrix/kaldi-matrix.a -l:fstext/kaldi-fstext.a -l:util/kaldi-util.a -l:base/kaldi-base.a -L"$OPENFST"/lib -l:libfst.a -l:libfstngram.a -L"$CLAPACK_WASM" -l:CBLAS/lib/cblas.a -l:CLAPACK-3.2.1/lapack.a -l:CLAPACK-3.2.1/libcblaswr.a -l:f2c_BLAS-3.8.0/blas.a -l:libf2c/libf2c.a -L"$VOSK"/src -l:vosk.a -lembind -flto -msimd128 -mreference-types -mnontrapping-fptoint -mextended-const -msign-ext -mmutable-globals --pre-js Wrapper.js -o ../test.js + em++ Util.cc CommonModel.cc Recognizer.cc Bindings.cc -O0 -DEMSCRIPTEN_HAS_UNBOUND_TYPE_NAMES=0 -fno-rtti -DMAX_WORKERS="$MAX_THREADS" -sWASMFS -sWASM_BIGINT -sMODULARIZE -sWASM_EXNREF -sTEXTDECODER=2 -sWASM_WORKERS=2 -sEVAL_CTORS=2 -sSTACK_OVERFLOW_CHECK=2 -sASSERTIONS=2 -sINITIAL_MEMORY="$INITIAL_MEMORY" -sALLOW_MEMORY_GROWTH -sRUNTIME_DEBUG -sPOLYFILL=0 -sEXIT_RUNTIME=0 -sINVOKE_RUN=0 -sDISABLE_EXCEPTION_CATCHING=0 -sEXPORTED_FUNCTIONS=_malloc -sEXPORT_NAME=loadVosklet -sMALLOC=emmalloc -sEXPORTED_RUNTIME_METHODS=UTF8ToString -sENVIRONMENT=web,worker -I. -I"$VOSK"/src -L"$KALDI"/src -l:online2/kaldi-online2.a -l:decoder/kaldi-decoder.a -l:ivector/kaldi-ivector.a -l:gmm/kaldi-gmm.a -l:tree/kaldi-tree.a -l:feat/kaldi-feat.a -l:cudamatrix/kaldi-cudamatrix.a -l:lat/kaldi-lat.a -l:lm/kaldi-lm.a -l:rnnlm/kaldi-rnnlm.a -l:hmm/kaldi-hmm.a -l:nnet3/kaldi-nnet3.a -l:transform/kaldi-transform.a -l:matrix/kaldi-matrix.a -l:fstext/kaldi-fstext.a -l:util/kaldi-util.a -l:base/kaldi-base.a -L"$OPENFST"/lib -l:libfst.a -l:libfstngram.a -L"$CLAPACK_WASM" -l:CBLAS/lib/cblas.a -l:CLAPACK-3.2.1/lapack.a -l:CLAPACK-3.2.1/libcblaswr.a -l:f2c_BLAS-3.8.0/blas.a -l:libf2c/libf2c.a -L"$VOSK"/src -l:vosk.a -lembind -msimd128 -mreference-types -mnontrapping-fptoint -mextended-const -msign-ext -mmutable-globals --pre-js Wrapper.js -o ../test.js elif [ "$MODE" = 1 ]; then em++ Util.cc CommonModel.cc Recognizer.cc Bindings.cc -O3 -Wall -Werror -DEMSCRIPTEN_HAS_UNBOUND_TYPE_NAMES=0 -fno-rtti -DMAX_WORKERS="$MAX_THREADS" -sWASMFS -sWASM_BIGINT -sMODULARIZE -sWASM_EXNREF -sTEXTDECODER=2 -sWASM_WORKERS=2 -sEVAL_CTORS=2 -sINITIAL_MEMORY="$INITIAL_MEMORY" -sALLOW_MEMORY_GROWTH -sPOLYFILL=0 -sEXIT_RUNTIME=0 -sINVOKE_RUN=0 -sSUPPORT_LONGJMP=0 -sEXPORTED_FUNCTIONS=_malloc -sEXPORT_NAME=loadVosklet -sMALLOC=emmalloc -sEXPORTED_RUNTIME_METHODS=UTF8ToString -sENVIRONMENT=web,worker -I. -I"$VOSK"/src -L"$KALDI"/src -l:online2/kaldi-online2.a -l:decoder/kaldi-decoder.a -l:ivector/kaldi-ivector.a -l:gmm/kaldi-gmm.a -l:tree/kaldi-tree.a -l:feat/kaldi-feat.a -l:cudamatrix/kaldi-cudamatrix.a -l:lat/kaldi-lat.a -l:lm/kaldi-lm.a -l:rnnlm/kaldi-rnnlm.a -l:hmm/kaldi-hmm.a -l:nnet3/kaldi-nnet3.a -l:transform/kaldi-transform.a -l:matrix/kaldi-matrix.a -l:fstext/kaldi-fstext.a -l:util/kaldi-util.a -l:base/kaldi-base.a -L"$OPENFST"/lib -l:libfst.a -l:libfstngram.a -L"$CLAPACK_WASM" -l:CBLAS/lib/cblas.a -l:CLAPACK-3.2.1/lapack.a -l:CLAPACK-3.2.1/libcblaswr.a -l:f2c_BLAS-3.8.0/blas.a -l:libf2c/libf2c.a -L"$VOSK"/src -l:vosk.a -lembind -flto -msimd128 -mreference-types -mnontrapping-fptoint -mextended-const -msign-ext -mmutable-globals --pre-js Wrapper.js -o ../test.js fi