From 87cad6c61312fdcb4f4d0cefbb91a613d5ca4d4f Mon Sep 17 00:00:00 2001 From: Cadence Ember Date: Sat, 3 Aug 2024 22:45:34 +1200 Subject: [PATCH] Update and unminify rlottie --- d2m/converters/rlottie-wasm.js | 2636 +++++++++++++++++++++++++++++- d2m/converters/rlottie-wasm.wasm | Bin 504120 -> 608159 bytes test/res/lottie-bee.png | Bin 5492 -> 5510 bytes 3 files changed, 2635 insertions(+), 1 deletion(-) diff --git a/d2m/converters/rlottie-wasm.js b/d2m/converters/rlottie-wasm.js index 4abf45d..986a299 100644 --- a/d2m/converters/rlottie-wasm.js +++ b/d2m/converters/rlottie-wasm.js @@ -1 +1,2635 @@ -var Module=typeof Module!="undefined"?Module:{};var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};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 scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;if(ENVIRONMENT_IS_NODE){var fs=require("fs");var nodePath=require("path");if(ENVIRONMENT_IS_WORKER){scriptDirectory=nodePath.dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=(filename,binary)=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);return fs.readFileSync(filename,binary?undefined:"utf8")};readBinary=filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}return ret};readAsync=(filename,onload,onerror,binary=true)=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);fs.readFile(filename,binary?undefined:"utf8",(err,data)=>{if(err)onerror(err);else onload(binary?data.buffer:data)})};if(!Module["thisProgram"]&&process.argv.length>1){thisProgram=process.argv[1].replace(/\\/g,"/")}arguments_=process.argv.slice(2);if(typeof module!="undefined"){module["exports"]=Module}process.on("uncaughtException",ex=>{if(ex!=="unwind"&&!(ex instanceof ExitStatus)&&!(ex.context instanceof ExitStatus)){throw ex}});quit_=(status,toThrow)=>{process.exitCode=status;throw toThrow};Module["inspect"]=()=>"[Emscripten Module object]"}else 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(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};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,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=title=>document.title=title}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"];if(Module["quit"])quit_=Module["quit"];var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!="object"){abort("no native wasm support detected")}var wasmMemory;var ABORT=false;var EXITSTATUS;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,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)}var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeKeepaliveCounter=0;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;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++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile;wasmBinaryFile="rlottie-wasm.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(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&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch=="function"&&!isFileURI(binaryFile)){return fetch(binaryFile,{credentials:"same-origin"}).then(response=>{if(!response["ok"]){throw"failed to load wasm binary file at '"+binaryFile+"'"}return response["arrayBuffer"]()}).catch(()=>getBinarySync(binaryFile))}else if(readAsync){return new Promise((resolve,reject)=>{readAsync(binaryFile,response=>resolve(new Uint8Array(response)),reject)})}}return Promise.resolve().then(()=>getBinarySync(binaryFile))}function instantiateArrayBuffer(binaryFile,imports,receiver){return getBinaryPromise(binaryFile).then(binary=>WebAssembly.instantiate(binary,imports)).then(instance=>instance).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)&&!isFileURI(binaryFile)&&!ENVIRONMENT_IS_NODE&&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 createWasm(){var info={"env":wasmImports,"wasi_snapshot_preview1":wasmImports};function receiveInstance(instance,module){var exports=instance.exports;wasmExports=exports;wasmMemory=wasmExports["memory"];updateMemoryViews();wasmTable=wasmExports["__indirect_function_table"];addOnInit(wasmExports["__wasm_call_ctors"]);removeRunDependency("wasm-instantiate");return exports}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}if(Module["instantiateWasm"]){try{return Module["instantiateWasm"](info,receiveInstance)}catch(e){err(`Module.instantiateWasm callback failed with error: ${e}`);return false}}instantiateAsync(wasmBinary,wasmBinaryFile,info,receiveInstantiationResult);return{}}var tempDouble;function ExitStatus(status){this.name="ExitStatus";this.message=`Program terminated with exit(${status})`;this.status=status}var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};var UTF8Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):undefined;var UTF8ArrayToString=(heapOrArray,idx,maxBytesToRead)=>{var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str="";while(idx>10,56320|ch&1023)}}return str};var UTF8ToString=(ptr,maxBytesToRead)=>ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):"";var ___assert_fail=(condition,filename,line,func)=>{abort(`Assertion failed: ${UTF8ToString(condition)}, at: `+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])};function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24;this.set_type=function(type){HEAPU32[this.ptr+4>>2]=type};this.get_type=function(){return HEAPU32[this.ptr+4>>2]};this.set_destructor=function(destructor){HEAPU32[this.ptr+8>>2]=destructor};this.get_destructor=function(){return HEAPU32[this.ptr+8>>2]};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+12>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+12>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+13>>0]!=0};this.init=function(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor)};this.set_adjusted_ptr=function(adjustedPtr){HEAPU32[this.ptr+16>>2]=adjustedPtr};this.get_adjusted_ptr=function(){return HEAPU32[this.ptr+16>>2]};this.get_exception_ptr=function(){var isPointer=___cxa_is_pointer_type(this.get_type());if(isPointer){return HEAPU32[this.excPtr>>2]}var adjusted=this.get_adjusted_ptr();if(adjusted!==0)return adjusted;return this.excPtr}}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 SYSCALLS={varargs:undefined,get(){var ret=HEAP32[SYSCALLS.varargs>>2];SYSCALLS.varargs+=4;return ret},getp(){return SYSCALLS.get()},getStr(ptr){var ret=UTF8ToString(ptr);return ret}};function ___syscall_ioctl(fd,op,varargs){SYSCALLS.varargs=varargs;return 0}function ___syscall_openat(dirfd,path,flags,varargs){SYSCALLS.varargs=varargs}var __embind_register_bigint=(primitiveType,name,size,minRange,maxRange)=>{};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=undefined;var readLatin1String=ptr=>{var ret="";var c=ptr;while(HEAPU8[c]){ret+=embind_charCodes[HEAPU8[c++]]}return ret};var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var BindingError=undefined;var throwBindingError=message=>{throw new BindingError(message)};var InternalError=undefined;var throwInternalError=message=>{throw new InternalError(message)};var whenDependentTypesAreResolved=(myTypes,dependentTypes,getTypeConverters)=>{myTypes.forEach(function(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={}){if(!("argPackAdvance"in registeredInstance)){throw new TypeError("registerType registeredInstance requires argPackAdvance")}return sharedRegisterType(rawType,registeredInstance,options)}var GenericWireTypeSize=8;var __embind_register_bool=(rawType,name,trueValue,falseValue)=>{name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(wt){return!!wt},"toWireType":function(destructors,o){return o?trueValue:falseValue},"argPackAdvance":GenericWireTypeSize,"readValueFromPointer":function(pointer){return this["fromWireType"](HEAPU8[pointer])},destructorFunction:null})};function ClassHandle_isAliasOf(other){if(!(this instanceof ClassHandle)){return false}if(!(other instanceof ClassHandle)){return false}var leftClass=this.$$.ptrType.registeredClass;var left=this.$$.ptr;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}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=undefined;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}}))};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: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)};function ClassHandle_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}}function ClassHandle_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}}function ClassHandle_isDeleted(){return!this.$$.ptr}function ClassHandle_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}var init_ClassHandle=()=>{ClassHandle.prototype["isAliasOf"]=ClassHandle_isAliasOf;ClassHandle.prototype["clone"]=ClassHandle_clone;ClassHandle.prototype["delete"]=ClassHandle_delete;ClassHandle.prototype["isDeleted"]=ClassHandle_isDeleted;ClassHandle.prototype["deleteLater"]=ClassHandle_deleteLater};function ClassHandle(){}var 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 createNamedFunction(name,body){name=makeLegalFunctionName(name);return{[name]:function(){return body.apply(this,arguments)}}[name]}var ensureOverloadTable=(proto,methodName,humanName)=>{if(undefined===proto[methodName].overloadTable){var prevFunc=proto[methodName];proto[methodName]=function(){if(!proto[methodName].overloadTable.hasOwnProperty(arguments.length)){throwBindingError(`Function '${humanName}' called with an invalid number of arguments (${arguments.length}) - expects one of (${proto[methodName].overloadTable})!`)}return proto[methodName].overloadTable[arguments.length].apply(this,arguments)};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}}};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.$$){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"](HEAPU32[pointer>>2])}function RegisteredPointer_getPointee(ptr){if(this.rawGetPointee){ptr=this.rawGetPointee(ptr)}return ptr}function RegisteredPointer_destructor(ptr){if(this.rawDestructor){this.rawDestructor(ptr)}}var RegisteredPointer_deleteObject=handle=>{if(handle!==null){handle["delete"]()}};var init_RegisteredPointer=()=>{RegisteredPointer.prototype.getPointee=RegisteredPointer_getPointee;RegisteredPointer.prototype.destructor=RegisteredPointer_destructor;RegisteredPointer.prototype["argPackAdvance"]=GenericWireTypeSize;RegisteredPointer.prototype["readValueFromPointer"]=readPointer;RegisteredPointer.prototype["deleteObject"]=RegisteredPointer_deleteObject;RegisteredPointer.prototype["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 nonexistant public symbol")}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}};var dynCallLegacy=(sig,ptr,args)=>{var f=Module["dynCall_"+sig];return args&&args.length?f.apply(null,[ptr].concat(args)):f.call(null,ptr)};var wasmTableMirror=[];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 dynCall=(sig,ptr,args)=>{if(sig.includes("j")){return dynCallLegacy(sig,ptr,args)}var rtn=getWasmTableEntry(ptr).apply(null,args);return rtn};var getDynCaller=(sig,ptr)=>{var argCache=[];return function(){argCache.length=0;Object.assign(argCache,arguments);return dynCall(sig,ptr,argCache)}};var embind__requireFunction=(signature,rawFunction)=>{signature=readLatin1String(signature);function makeDynCaller(){if(signature.includes("j")){return getDynCaller(signature,rawFunction)}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=undefined;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);if(upcast){upcast=embind__requireFunction(upcastSignature,upcast)}if(downcast){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]:[],function(base){base=base[0];var baseClass;var basePrototype;if(baseClassRawType){baseClass=base.registeredClass;basePrototype=baseClass.instancePrototype}else{basePrototype=ClassHandle.prototype}var constructor=createNamedFunction(legalFunctionName,function(){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[arguments.length];if(undefined===body){throw new BindingError(`Tried to invoke ctor of ${name} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(registeredClass.constructor_body).toString()}) parameters instead!`)}return body.apply(this,arguments)});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){if(registeredClass.baseClass.__derivedClasses===undefined){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 newFunc(constructor,argumentList){if(!(constructor instanceof Function)){throw new TypeError(`new_ called with constructor type ${typeof constructor} which is not a function`)}var dummy=createNamedFunction(constructor.name||"unknownFunctionName",function(){});dummy.prototype=constructor.prototype;var obj=new dummy;var r=constructor.apply(obj,argumentList);return r instanceof Object?r:obj}function craftInvokerFunction(humanName,argTypes,classType,cppInvokerFunc,cppTargetFunc,isAsync){var argCount=argTypes.length;if(argCount<2){throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!")}var isClassMethodFunc=argTypes[1]!==null&&classType!==null;var needsDestructorStack=false;for(var i=1;i0?", ":"")+argsListWired}invokerFnBody+=(returns||isAsync?"var rv = ":"")+"invoker(fn"+(argsListWired.length>0?", ":"")+argsListWired+");\n";if(needsDestructorStack){invokerFnBody+="runDestructors(destructors);\n"}else{for(var i=isClassMethodFunc?1:2;i{var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);invoker=embind__requireFunction(invokerSignature,invoker);whenDependentTypesAreResolved([],[rawClassType],function(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 __embind_register_class_function=(rawClassType,methodName,argCount,rawArgTypesAddr,invokerSignature,rawInvoker,context,isPureVirtual,isAsync)=>{var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);methodName=readLatin1String(methodName);rawInvoker=embind__requireFunction(invokerSignature,rawInvoker);whenDependentTypesAreResolved([],[rawClassType],function(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,function(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[]})};function handleAllocatorInit(){Object.assign(HandleAllocator.prototype,{get(id){return this.allocated[id]},has(id){return this.allocated[id]!==undefined},allocate(handle){var id=this.freelist.pop()||this.allocated.length;this.allocated[id]=handle;return id},free(id){this.allocated[id]=undefined;this.freelist.push(id)}})}function HandleAllocator(){this.allocated=[undefined];this.freelist=[]}var emval_handles=new HandleAllocator;var __emval_decref=handle=>{if(handle>=emval_handles.reserved&&0===--emval_handles.get(handle).refcount){emval_handles.free(handle)}};var count_emval_handles=()=>{var count=0;for(var i=emval_handles.reserved;i{emval_handles.allocated.push({value:undefined},{value:null},{value:true},{value:false});emval_handles.reserved=emval_handles.allocated.length;Module["count_emval_handles"]=count_emval_handles};var Emval={toValue:handle=>{if(!handle){throwBindingError("Cannot use deleted val. handle = "+handle)}return emval_handles.get(handle).value},toHandle:value=>{switch(value){case undefined:return 1;case null:return 2;case true:return 3;case false:return 4;default:{return emval_handles.allocate({refcount:1,value:value})}}}};function simpleReadValueFromPointer(pointer){return this["fromWireType"](HEAP32[pointer>>2])}var __embind_register_emval=(rawType,name)=>{name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":handle=>{var rv=Emval.toValue(handle);__emval_decref(handle);return rv},"toWireType":(destructors,value)=>Emval.toHandle(value),"argPackAdvance":GenericWireTypeSize,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:null})};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 floatReadValueFromPointer=(name,width)=>{switch(width){case 4:return function(pointer){return this["fromWireType"](HEAPF32[pointer>>2])};case 8:return function(pointer){return this["fromWireType"](HEAPF64[pointer>>3])};default:throw new TypeError(`invalid float width (${width}): ${name}`)}};var __embind_register_float=(rawType,name,size)=>{name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":value=>value,"toWireType":(destructors,value)=>value,"argPackAdvance":GenericWireTypeSize,"readValueFromPointer":floatReadValueFromPointer(name,size),destructorFunction:null})};var integerReadValueFromPointer=(name,width,signed)=>{switch(width){case 1:return signed?pointer=>HEAP8[pointer>>0]:pointer=>HEAPU8[pointer>>0];case 2:return signed?pointer=>HEAP16[pointer>>1]:pointer=>HEAPU16[pointer>>1];case 4:return signed?pointer=>HEAP32[pointer>>2]:pointer=>HEAPU32[pointer>>2];default:throw new TypeError(`invalid integer width (${width}): ${name}`)}};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:name,"fromWireType":fromWireType,"toWireType":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];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){var size=HEAPU32[handle>>2];var data=HEAPU32[handle+4>>2];return new TA(HEAP8.buffer,data,size)}name=readLatin1String(name);registerType(rawType,{name: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,HEAPU8,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:name,"fromWireType":value=>{var length=HEAPU32[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||HEAPU8[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{if(value instanceof ArrayBuffer){value=new Uint8Array(value)}var length;var valueIsOfTypeString=typeof value=="string";if(!(valueIsOfTypeString||value instanceof Uint8Array||value instanceof Uint8ClampedArray||value instanceof Int8Array)){throwBindingError("Cannot pass non-string to std::string")}if(stdStringIsUTF8&&valueIsOfTypeString){length=lengthBytesUTF8(value)}else{length=value.length}var base=_malloc(4+length+1);var ptr=base+4;HEAPU32[base>>2]=length;if(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")}HEAPU8[ptr+i]=charCode}}else{for(var i=0;i_free(ptr)})};var UTF16Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):undefined;var UTF16ToString=(ptr,maxBytesToRead)=>{var endPtr=ptr;var idx=endPtr>>1;var maxIdx=idx+maxBytesToRead/2;while(!(idx>=maxIdx)&&HEAPU16[idx])++idx;endPtr=idx<<1;if(endPtr-ptr>32&&UTF16Decoder)return UTF16Decoder.decode(HEAPU8.subarray(ptr,endPtr));var str="";for(var i=0;!(i>=maxBytesToRead/2);++i){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)break;str+=String.fromCharCode(codeUnit)}return str};var stringToUTF16=(str,outPtr,maxBytesToWrite)=>{if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}HEAP16[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=HEAP32[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)=>{if(maxBytesToWrite===undefined){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}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr};var lengthBytesUTF32=str=>{var len=0;for(var i=0;i=55296&&codeUnit<=57343)++i;len+=4}return len};var __embind_register_std_wstring=(rawType,charSize,name)=>{name=readLatin1String(name);var decodeString,encodeString,getHeap,lengthBytesUTF,shift;if(charSize===2){decodeString=UTF16ToString;encodeString=stringToUTF16;lengthBytesUTF=lengthBytesUTF16;getHeap=()=>HEAPU16;shift=1}else if(charSize===4){decodeString=UTF32ToString;encodeString=stringToUTF32;lengthBytesUTF=lengthBytesUTF32;getHeap=()=>HEAPU32;shift=2}registerType(rawType,{name:name,"fromWireType":value=>{var length=HEAPU32[value>>2];var HEAP=getHeap();var str;var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i*charSize;if(i==length||HEAP[currentBytePtr>>shift]==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);HEAPU32[ptr>>2]=length>>shift;encodeString(value,ptr+4,length+charSize);if(destructors!==null){destructors.push(_free,ptr)}return ptr},"argPackAdvance":GenericWireTypeSize,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:ptr=>_free(ptr)})};var __embind_register_void=(rawType,name)=>{name=readLatin1String(name);registerType(rawType,{isVoid:true,name:name,"argPackAdvance":0,"fromWireType":()=>undefined,"toWireType":(destructors,o)=>undefined})};var __emscripten_throw_longjmp=()=>{throw Infinity};var __emval_incref=handle=>{if(handle>4){emval_handles.get(handle).refcount+=1}};var requireRegisteredType=(rawType,humanName)=>{var impl=registeredTypes[rawType];if(undefined===impl){throwBindingError(humanName+" has unknown type "+getTypeName(rawType))}return impl};var __emval_take_value=(type,arg)=>{type=requireRegisteredType(type,"_emval_take_value");var v=type["readValueFromPointer"](arg);return Emval.toHandle(v)};var isLeapYear=year=>year%4===0&&(year%100!==0||year%400===0);var MONTH_DAYS_LEAP_CUMULATIVE=[0,31,60,91,121,152,182,213,244,274,305,335];var MONTH_DAYS_REGULAR_CUMULATIVE=[0,31,59,90,120,151,181,212,243,273,304,334];var ydayFromDate=date=>{var leap=isLeapYear(date.getFullYear());var monthDaysCumulative=leap?MONTH_DAYS_LEAP_CUMULATIVE:MONTH_DAYS_REGULAR_CUMULATIVE;var yday=monthDaysCumulative[date.getMonth()]+date.getDate()-1;return yday};var convertI32PairToI53Checked=(lo,hi)=>hi+2097152>>>0<4194305-!!lo?(lo>>>0)+hi*4294967296:NaN;function __localtime_js(time_low,time_high,tmPtr){var time=convertI32PairToI53Checked(time_low,time_high);var date=new Date(time*1e3);HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();HEAP32[tmPtr+20>>2]=date.getFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getDay();var yday=ydayFromDate(date)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr+36>>2]=-(date.getTimezoneOffset()*60);var start=new Date(date.getFullYear(),0,1);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;HEAP32[tmPtr+32>>2]=dst}var __mktime_js=function(tmPtr){var ret=(()=>{var date=new Date(HEAP32[tmPtr+20>>2]+1900,HEAP32[tmPtr+16>>2],HEAP32[tmPtr+12>>2],HEAP32[tmPtr+8>>2],HEAP32[tmPtr+4>>2],HEAP32[tmPtr>>2],0);var dst=HEAP32[tmPtr+32>>2];var guessedOffset=date.getTimezoneOffset();var start=new Date(date.getFullYear(),0,1);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dstOffset=Math.min(winterOffset,summerOffset);if(dst<0){HEAP32[tmPtr+32>>2]=Number(summerOffset!=winterOffset&&dstOffset==guessedOffset)}else if(dst>0!=(dstOffset==guessedOffset)){var nonDstOffset=Math.max(winterOffset,summerOffset);var trueOffset=dst>0?dstOffset:nonDstOffset;date.setTime(date.getTime()+(trueOffset-guessedOffset)*6e4)}HEAP32[tmPtr+24>>2]=date.getDay();var yday=ydayFromDate(date)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();HEAP32[tmPtr+20>>2]=date.getYear();return date.getTime()/1e3})();return setTempRet0((tempDouble=ret,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)),ret>>>0};var stringToNewUTF8=str=>{var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8(str,ret,size);return ret};var __tzset_js=(timezone,daylight,tzname)=>{var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);HEAPU32[timezone>>2]=stdTimezoneOffset*60;HEAP32[daylight>>2]=Number(winterOffset!=summerOffset);function extractZone(date){var match=date.toTimeString().match(/\(([A-Za-z ]+)\)$/);return match?match[1]:"GMT"}var winterName=extractZone(winter);var summerName=extractZone(summer);var winterNamePtr=stringToNewUTF8(winterName);var summerNamePtr=stringToNewUTF8(summerName);if(summerOffset>2]=winterNamePtr;HEAPU32[tzname+4>>2]=summerNamePtr}else{HEAPU32[tzname>>2]=summerNamePtr;HEAPU32[tzname+4>>2]=winterNamePtr}};var _abort=()=>{abort("")};var _emscripten_memcpy_big=(dest,src,num)=>HEAPU8.copyWithin(dest,src,src+num);var getHeapMax=()=>2147483648;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=HEAPU8.length;requestedSize>>>=0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}var alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;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,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}return false};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>0]=str.charCodeAt(i)}HEAP8[buffer>>0]=0};var _environ_get=(__environ,environ_buf)=>{var bufSize=0;getEnvStrings().forEach((string,i)=>{var ptr=environ_buf+bufSize;HEAPU32[__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();HEAPU32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(string=>bufSize+=string.length+1);HEAPU32[penviron_buf_size>>2]=bufSize;return 0};var _fd_close=fd=>52;var _fd_read=(fd,iov,iovcnt,pnum)=>52;function _fd_seek(fd,offset_low,offset_high,whence,newOffset){var offset=convertI32PairToI53Checked(offset_low,offset_high);return 70}var printCharBuffers=[null,[],[]];var printChar=(stream,curr)=>{var buffer=printCharBuffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}};var _fd_write=(fd,iov,iovcnt,pnum)=>{var num=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;for(var j=0;j>2]=num;return 0};var arraySum=(array,index)=>{var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum};var MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];var addDays=(date,days)=>{var newDate=new Date(date.getTime());while(days>0){var leap=isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?MONTH_DAYS_LEAP:MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate};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 writeArrayToMemory=(array,buffer)=>{HEAP8.set(array,buffer)};var _strftime=(s,maxsize,format,tm)=>{var tm_zone=HEAPU32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value=="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}return thisDate.getFullYear()}return thisDate.getFullYear()-1}var EXPANSION_RULES_2={"%a":date=>WEEKDAYS[date.tm_wday].substring(0,3),"%A":date=>WEEKDAYS[date.tm_wday],"%b":date=>MONTHS[date.tm_mon].substring(0,3),"%B":date=>MONTHS[date.tm_mon],"%C":date=>{var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":date=>leadingNulls(date.tm_mday,2),"%e":date=>leadingSomething(date.tm_mday,2," "),"%g":date=>getWeekBasedYear(date).toString().substring(2),"%G":date=>getWeekBasedYear(date),"%H":date=>leadingNulls(date.tm_hour,2),"%I":date=>{var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":date=>leadingNulls(date.tm_mday+arraySum(isLeapYear(date.tm_year+1900)?MONTH_DAYS_LEAP:MONTH_DAYS_REGULAR,date.tm_mon-1),3),"%m":date=>leadingNulls(date.tm_mon+1,2),"%M":date=>leadingNulls(date.tm_min,2),"%n":()=>"\n","%p":date=>{if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}return"PM"},"%S":date=>leadingNulls(date.tm_sec,2),"%t":()=>"\t","%u":date=>date.tm_wday||7,"%U":date=>{var days=date.tm_yday+7-date.tm_wday;return leadingNulls(Math.floor(days/7),2)},"%V":date=>{var val=Math.floor((date.tm_yday+7-(date.tm_wday+6)%7)/7);if((date.tm_wday+371-date.tm_yday-2)%7<=2){val++}if(!val){val=52;var dec31=(date.tm_wday+7-date.tm_yday-1)%7;if(dec31==4||dec31==5&&isLeapYear(date.tm_year%400-1)){val++}}else if(val==53){var jan1=(date.tm_wday+371-date.tm_yday)%7;if(jan1!=4&&(jan1!=3||!isLeapYear(date.tm_year)))val=1}return leadingNulls(val,2)},"%w":date=>date.tm_wday,"%W":date=>{var days=date.tm_yday+7-(date.tm_wday+6)%7;return leadingNulls(Math.floor(days/7),2)},"%y":date=>(date.tm_year+1900).toString().substring(2),"%Y":date=>date.tm_year+1900,"%z":date=>{var off=date.tm_gmtoff;var ahead=off>=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":date=>date.tm_zone,"%%":()=>"%"};pattern=pattern.replace(/%%/g,"\0\0");for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}pattern=pattern.replace(/\0\0/g,"%");var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1};var _strftime_l=(s,maxsize,format,tm,loc)=>_strftime(s,maxsize,format,tm);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");handleAllocatorInit();init_emval();var wasmImports={__assert_fail:___assert_fail,__cxa_throw:___cxa_throw,__syscall_ioctl:___syscall_ioctl,__syscall_openat:___syscall_openat,_embind_register_bigint:__embind_register_bigint,_embind_register_bool:__embind_register_bool,_embind_register_class:__embind_register_class,_embind_register_class_constructor:__embind_register_class_constructor,_embind_register_class_function:__embind_register_class_function,_embind_register_emval:__embind_register_emval,_embind_register_float:__embind_register_float,_embind_register_integer:__embind_register_integer,_embind_register_memory_view:__embind_register_memory_view,_embind_register_std_string:__embind_register_std_string,_embind_register_std_wstring:__embind_register_std_wstring,_embind_register_void:__embind_register_void,_emscripten_throw_longjmp:__emscripten_throw_longjmp,_emval_decref:__emval_decref,_emval_incref:__emval_incref,_emval_take_value:__emval_take_value,_localtime_js:__localtime_js,_mktime_js:__mktime_js,_tzset_js:__tzset_js,abort:_abort,emscripten_memcpy_big:_emscripten_memcpy_big,emscripten_resize_heap:_emscripten_resize_heap,environ_get:_environ_get,environ_sizes_get:_environ_sizes_get,fd_close:_fd_close,fd_read:_fd_read,fd_seek:_fd_seek,fd_write:_fd_write,invoke_vi:invoke_vi,invoke_viii:invoke_viii,invoke_viiii:invoke_viiii,invoke_viiiii:invoke_viiiii,strftime_l:_strftime_l};var wasmExports=createWasm();var ___wasm_call_ctors=()=>(___wasm_call_ctors=wasmExports["__wasm_call_ctors"])();var _free=a0=>(_free=wasmExports["free"])(a0);var _malloc=a0=>(_malloc=wasmExports["malloc"])(a0);var ___getTypeName=a0=>(___getTypeName=wasmExports["__getTypeName"])(a0);var __embind_initialize_bindings=Module["__embind_initialize_bindings"]=()=>(__embind_initialize_bindings=Module["__embind_initialize_bindings"]=wasmExports["_embind_initialize_bindings"])();var ___errno_location=()=>(___errno_location=wasmExports["__errno_location"])();var _setThrew=(a0,a1)=>(_setThrew=wasmExports["setThrew"])(a0,a1);var setTempRet0=a0=>(setTempRet0=wasmExports["setTempRet0"])(a0);var stackSave=()=>(stackSave=wasmExports["stackSave"])();var stackRestore=a0=>(stackRestore=wasmExports["stackRestore"])(a0);var stackAlloc=a0=>(stackAlloc=wasmExports["stackAlloc"])(a0);var ___cxa_increment_exception_refcount=a0=>(___cxa_increment_exception_refcount=wasmExports["__cxa_increment_exception_refcount"])(a0);var ___cxa_is_pointer_type=a0=>(___cxa_is_pointer_type=wasmExports["__cxa_is_pointer_type"])(a0);var dynCall_iijii=Module["dynCall_iijii"]=(a0,a1,a2,a3,a4,a5)=>(dynCall_iijii=Module["dynCall_iijii"]=wasmExports["dynCall_iijii"])(a0,a1,a2,a3,a4,a5);var dynCall_jiji=Module["dynCall_jiji"]=(a0,a1,a2,a3,a4)=>(dynCall_jiji=Module["dynCall_jiji"]=wasmExports["dynCall_jiji"])(a0,a1,a2,a3,a4);var dynCall_viijii=Module["dynCall_viijii"]=(a0,a1,a2,a3,a4,a5,a6)=>(dynCall_viijii=Module["dynCall_viijii"]=wasmExports["dynCall_viijii"])(a0,a1,a2,a3,a4,a5,a6);var dynCall_iiiiij=Module["dynCall_iiiiij"]=(a0,a1,a2,a3,a4,a5,a6)=>(dynCall_iiiiij=Module["dynCall_iiiiij"]=wasmExports["dynCall_iiiiij"])(a0,a1,a2,a3,a4,a5,a6);var dynCall_iiiiijj=Module["dynCall_iiiiijj"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8)=>(dynCall_iiiiijj=Module["dynCall_iiiiijj"]=wasmExports["dynCall_iiiiijj"])(a0,a1,a2,a3,a4,a5,a6,a7,a8);var dynCall_iiiiiijj=Module["dynCall_iiiiiijj"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9)=>(dynCall_iiiiiijj=Module["dynCall_iiiiiijj"]=wasmExports["dynCall_iiiiiijj"])(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9);function invoke_vi(index,a1){var sp=stackSave();try{getWasmTableEntry(index)(a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viii(index,a1,a2,a3){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiii(index,a1,a2,a3,a4){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}var calledRun;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(){if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){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(); +var Module = typeof Module != "undefined" ? Module : {}; + +var moduleOverrides = Object.assign({}, Module); + +var arguments_ = []; + +var thisProgram = "./this.program"; + +var quit_ = (status, toThrow) => { + throw toThrow; +}; + +var ENVIRONMENT_IS_WEB = false; + +var ENVIRONMENT_IS_WORKER = false; + +var ENVIRONMENT_IS_NODE = true; + +var scriptDirectory = ""; + +function locateFile(path) { + if (Module["locateFile"]) { + return Module["locateFile"](path, scriptDirectory); + } + return scriptDirectory + path; +} + +var read_, readAsync, readBinary; + +if (ENVIRONMENT_IS_NODE) { + var fs = require("fs"); + var nodePath = require("path"); + if (ENVIRONMENT_IS_WORKER) { + scriptDirectory = nodePath.dirname(scriptDirectory) + "/"; + } else { + scriptDirectory = __dirname + "/"; + } + read_ = (filename, binary) => { + filename = isFileURI(filename) ? new URL(filename) : nodePath.normalize(filename); + return fs.readFileSync(filename, binary ? undefined : "utf8"); + }; + readBinary = filename => { + var ret = read_(filename, true); + if (!ret.buffer) { + ret = new Uint8Array(ret); + } + return ret; + }; + readAsync = (filename, onload, onerror, binary = true) => { + filename = isFileURI(filename) ? new URL(filename) : nodePath.normalize(filename); + fs.readFile(filename, binary ? undefined : "utf8", (err, data) => { + if (err) onerror(err); else onload(binary ? data.buffer : data); + }); + }; + if (!Module["thisProgram"] && process.argv.length > 1) { + thisProgram = process.argv[1].replace(/\\/g, "/"); + } + arguments_ = process.argv.slice(2); + if (typeof module != "undefined") { + module["exports"] = Module; + } + quit_ = (status, toThrow) => { + process.exitCode = status; + throw toThrow; + }; + Module["inspect"] = () => "[Emscripten Module object]"; +} 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"]; + +if (Module["quit"]) quit_ = Module["quit"]; + +var wasmBinary; + +if (Module["wasmBinary"]) wasmBinary = Module["wasmBinary"]; + +var noExitRuntime = Module["noExitRuntime"] || true; + +if (typeof WebAssembly != "object") { + abort("no native wasm support detected"); +} + +var wasmMemory; + +var ABORT = false; + +var EXITSTATUS; + +var HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, 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); +} + +var wasmTable; + +var __ATPRERUN__ = []; + +var __ATINIT__ = []; + +var __ATPOSTRUN__ = []; + +var runtimeInitialized = false; + +var runtimeKeepaliveCounter = 0; + +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; + 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++; + if (Module["monitorRunDependencies"]) { + Module["monitorRunDependencies"](runDependencies); + } +} + +function removeRunDependency(id) { + runDependencies--; + if (Module["monitorRunDependencies"]) { + Module["monitorRunDependencies"](runDependencies); + } + if (runDependencies == 0) { + if (runDependencyWatcher !== null) { + clearInterval(runDependencyWatcher); + runDependencyWatcher = null; + } + if (dependenciesFulfilled) { + var callback = dependenciesFulfilled; + dependenciesFulfilled = null; + callback(); + } + } +} + +function abort(what) { + if (Module["onAbort"]) { + Module["onAbort"](what); + } + what = "Aborted(" + what + ")"; + err(what); + ABORT = true; + EXITSTATUS = 1; + what += ". Build with -sASSERTIONS for more info."; + var e = new WebAssembly.RuntimeError(what); + throw e; +} + +var dataURIPrefix = "data:application/octet-stream;base64,"; + +function isDataURI(filename) { + return filename.startsWith(dataURIPrefix); +} + +function isFileURI(filename) { + return filename.startsWith("file://"); +} + +var wasmBinaryFile; + +wasmBinaryFile = "rlottie-wasm.wasm"; + +if (!isDataURI(wasmBinaryFile)) { + wasmBinaryFile = locateFile(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 && (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER)) { + if (typeof fetch == "function") { + return fetch(binaryFile, { + credentials: "same-origin" + }).then(response => { + if (!response["ok"]) { + throw "failed to load wasm binary file at '" + binaryFile + "'"; + } + return response["arrayBuffer"](); + }).catch(() => getBinarySync(binaryFile)); + } + } + return Promise.resolve().then(() => getBinarySync(binaryFile)); +} + +function instantiateArrayBuffer(binaryFile, imports, receiver) { + return getBinaryPromise(binaryFile).then(binary => WebAssembly.instantiate(binary, imports)).then(instance => instance).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) && !ENVIRONMENT_IS_NODE && 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 createWasm() { + var info = { + "env": wasmImports, + "wasi_snapshot_preview1": wasmImports + }; + function receiveInstance(instance, module) { + var exports = instance.exports; + wasmExports = exports; + wasmMemory = wasmExports["memory"]; + updateMemoryViews(); + wasmTable = wasmExports["__indirect_function_table"]; + addOnInit(wasmExports["__wasm_call_ctors"]); + removeRunDependency("wasm-instantiate"); + return exports; + } + addRunDependency("wasm-instantiate"); + function receiveInstantiationResult(result) { + receiveInstance(result["instance"]); + } + if (Module["instantiateWasm"]) { + try { + return Module["instantiateWasm"](info, receiveInstance); + } catch (e) { + err(`Module.instantiateWasm callback failed with error: ${e}`); + return false; + } + } + instantiateAsync(wasmBinary, wasmBinaryFile, info, receiveInstantiationResult); + return {}; +} + +var tempDouble; + +function ExitStatus(status) { + this.name = "ExitStatus"; + this.message = `Program terminated with exit(${status})`; + this.status = status; +} + +var callRuntimeCallbacks = callbacks => { + while (callbacks.length > 0) { + callbacks.shift()(Module); + } +}; + +var UTF8Decoder = typeof TextDecoder != "undefined" ? new TextDecoder("utf8") : undefined; + +var UTF8ArrayToString = (heapOrArray, idx, maxBytesToRead) => { + var endIdx = idx + maxBytesToRead; + var endPtr = idx; + while (heapOrArray[endPtr] && !(endPtr >= endIdx)) ++endPtr; + if (endPtr - idx > 16 && heapOrArray.buffer && UTF8Decoder) { + return UTF8Decoder.decode(heapOrArray.subarray(idx, endPtr)); + } + var str = ""; + while (idx < endPtr) { + var u0 = heapOrArray[idx++]; + if (!(u0 & 128)) { + str += String.fromCharCode(u0); + continue; + } + var u1 = heapOrArray[idx++] & 63; + if ((u0 & 224) == 192) { + str += String.fromCharCode((u0 & 31) << 6 | u1); + continue; + } + var u2 = heapOrArray[idx++] & 63; + if ((u0 & 240) == 224) { + u0 = (u0 & 15) << 12 | u1 << 6 | u2; + } else { + u0 = (u0 & 7) << 18 | u1 << 12 | u2 << 6 | heapOrArray[idx++] & 63; + } + if (u0 < 65536) { + str += String.fromCharCode(u0); + } else { + var ch = u0 - 65536; + str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023); + } + } + return str; +}; + +var UTF8ToString = (ptr, maxBytesToRead) => ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : ""; + +var ___assert_fail = (condition, filename, line, func) => { + abort(`Assertion failed: ${UTF8ToString(condition)}, at: ` + [ filename ? UTF8ToString(filename) : "unknown filename", line, func ? UTF8ToString(func) : "unknown function" ]); +}; + +function ExceptionInfo(excPtr) { + this.excPtr = excPtr; + this.ptr = excPtr - 24; + this.set_type = function(type) { + HEAPU32[this.ptr + 4 >> 2] = type; + }; + this.get_type = function() { + return HEAPU32[this.ptr + 4 >> 2]; + }; + this.set_destructor = function(destructor) { + HEAPU32[this.ptr + 8 >> 2] = destructor; + }; + this.get_destructor = function() { + return HEAPU32[this.ptr + 8 >> 2]; + }; + this.set_caught = function(caught) { + caught = caught ? 1 : 0; + HEAP8[this.ptr + 12 >> 0] = caught; + }; + this.get_caught = function() { + return HEAP8[this.ptr + 12 >> 0] != 0; + }; + this.set_rethrown = function(rethrown) { + rethrown = rethrown ? 1 : 0; + HEAP8[this.ptr + 13 >> 0] = rethrown; + }; + this.get_rethrown = function() { + return HEAP8[this.ptr + 13 >> 0] != 0; + }; + this.init = function(type, destructor) { + this.set_adjusted_ptr(0); + this.set_type(type); + this.set_destructor(destructor); + }; + this.set_adjusted_ptr = function(adjustedPtr) { + HEAPU32[this.ptr + 16 >> 2] = adjustedPtr; + }; + this.get_adjusted_ptr = function() { + return HEAPU32[this.ptr + 16 >> 2]; + }; + this.get_exception_ptr = function() { + var isPointer = ___cxa_is_pointer_type(this.get_type()); + if (isPointer) { + return HEAPU32[this.excPtr >> 2]; + } + var adjusted = this.get_adjusted_ptr(); + if (adjusted !== 0) return adjusted; + return this.excPtr; + }; +} + +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 SYSCALLS = { + varargs: undefined, + get() { + var ret = HEAP32[SYSCALLS.varargs >> 2]; + SYSCALLS.varargs += 4; + return ret; + }, + getp() { + return SYSCALLS.get(); + }, + getStr(ptr) { + var ret = UTF8ToString(ptr); + return ret; + } +}; + +function ___syscall_ioctl(fd, op, varargs) { + SYSCALLS.varargs = varargs; + return 0; +} + +function ___syscall_openat(dirfd, path, flags, varargs) { + SYSCALLS.varargs = varargs; +} + +var __embind_register_bigint = (primitiveType, name, size, minRange, maxRange) => {}; + +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 = undefined; + +var readLatin1String = ptr => { + var ret = ""; + var c = ptr; + while (HEAPU8[c]) { + ret += embind_charCodes[HEAPU8[c++]]; + } + return ret; +}; + +var awaitingDependencies = {}; + +var registeredTypes = {}; + +var typeDependencies = {}; + +var BindingError = undefined; + +var throwBindingError = message => { + throw new BindingError(message); +}; + +var InternalError = undefined; + +var throwInternalError = message => { + throw new InternalError(message); +}; + +var whenDependentTypesAreResolved = (myTypes, dependentTypes, getTypeConverters) => { + myTypes.forEach(function(type) { + typeDependencies[type] = dependentTypes; + }); + function onComplete(typeConverters) { + var myTypeConverters = getTypeConverters(typeConverters); + if (myTypeConverters.length !== myTypes.length) { + throwInternalError("Mismatched type converter count"); + } + for (var i = 0; i < myTypes.length; ++i) { + registerType(myTypes[i], myTypeConverters[i]); + } + } + var typeConverters = new Array(dependentTypes.length); + var unregisteredTypes = []; + var registered = 0; + dependentTypes.forEach((dt, i) => { + if (registeredTypes.hasOwnProperty(dt)) { + typeConverters[i] = registeredTypes[dt]; + } else { + unregisteredTypes.push(dt); + if (!awaitingDependencies.hasOwnProperty(dt)) { + awaitingDependencies[dt] = []; + } + awaitingDependencies[dt].push(() => { + typeConverters[i] = registeredTypes[dt]; + ++registered; + if (registered === unregisteredTypes.length) { + onComplete(typeConverters); + } + }); + } + }); + if (0 === unregisteredTypes.length) { + onComplete(typeConverters); + } +}; + +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 = {}) { + if (!("argPackAdvance" in registeredInstance)) { + throw new TypeError("registerType registeredInstance requires argPackAdvance"); + } + return sharedRegisterType(rawType, registeredInstance, options); +} + +var GenericWireTypeSize = 8; + +var __embind_register_bool = (rawType, name, trueValue, falseValue) => { + name = readLatin1String(name); + registerType(rawType, { + name: name, + "fromWireType": function(wt) { + return !!wt; + }, + "toWireType": function(destructors, o) { + return o ? trueValue : falseValue; + }, + "argPackAdvance": GenericWireTypeSize, + "readValueFromPointer": function(pointer) { + return this["fromWireType"](HEAPU8[pointer]); + }, + destructorFunction: null + }); +}; + +function ClassHandle_isAliasOf(other) { + if (!(this instanceof ClassHandle)) { + return false; + } + if (!(other instanceof ClassHandle)) { + return false; + } + var leftClass = this.$$.ptrType.registeredClass; + var left = this.$$.ptr; + 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; +} + +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 = undefined; + +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 + } + })); +}; + +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: 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); +}; + +function ClassHandle_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; + } +} + +function ClassHandle_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; + } +} + +function ClassHandle_isDeleted() { + return !this.$$.ptr; +} + +function ClassHandle_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; +} + +var init_ClassHandle = () => { + ClassHandle.prototype["isAliasOf"] = ClassHandle_isAliasOf; + ClassHandle.prototype["clone"] = ClassHandle_clone; + ClassHandle.prototype["delete"] = ClassHandle_delete; + ClassHandle.prototype["isDeleted"] = ClassHandle_isDeleted; + ClassHandle.prototype["deleteLater"] = ClassHandle_deleteLater; +}; + +function ClassHandle() {} + +var 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 createNamedFunction(name, body) { + name = makeLegalFunctionName(name); + return { + [name]: function() { + return body.apply(this, arguments); + } + }[name]; +} + +var ensureOverloadTable = (proto, methodName, humanName) => { + if (undefined === proto[methodName].overloadTable) { + var prevFunc = proto[methodName]; + proto[methodName] = function() { + if (!proto[methodName].overloadTable.hasOwnProperty(arguments.length)) { + throwBindingError(`Function '${humanName}' called with an invalid number of arguments (${arguments.length}) - expects one of (${proto[methodName].overloadTable})!`); + } + return proto[methodName].overloadTable[arguments.length].apply(this, arguments); + }; + 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; + } + } +}; + +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.$$) { + 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"](HEAPU32[pointer >> 2]); +} + +function RegisteredPointer_getPointee(ptr) { + if (this.rawGetPointee) { + ptr = this.rawGetPointee(ptr); + } + return ptr; +} + +function RegisteredPointer_destructor(ptr) { + if (this.rawDestructor) { + this.rawDestructor(ptr); + } +} + +var RegisteredPointer_deleteObject = handle => { + if (handle !== null) { + handle["delete"](); + } +}; + +var init_RegisteredPointer = () => { + RegisteredPointer.prototype.getPointee = RegisteredPointer_getPointee; + RegisteredPointer.prototype.destructor = RegisteredPointer_destructor; + RegisteredPointer.prototype["argPackAdvance"] = GenericWireTypeSize; + RegisteredPointer.prototype["readValueFromPointer"] = readPointer; + RegisteredPointer.prototype["deleteObject"] = RegisteredPointer_deleteObject; + RegisteredPointer.prototype["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 && registeredClass.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 nonexistant public symbol"); + } + if (undefined !== Module[name].overloadTable && undefined !== numArguments) { + Module[name].overloadTable[numArguments] = value; + } else { + Module[name] = value; + Module[name].argCount = numArguments; + } +}; + +var dynCallLegacy = (sig, ptr, args) => { + var f = Module["dynCall_" + sig]; + return args && args.length ? f.apply(null, [ ptr ].concat(args)) : f.call(null, ptr); +}; + +var wasmTableMirror = []; + +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 dynCall = (sig, ptr, args) => { + if (sig.includes("j")) { + return dynCallLegacy(sig, ptr, args); + } + var rtn = getWasmTableEntry(ptr).apply(null, args); + return rtn; +}; + +var getDynCaller = (sig, ptr) => { + var argCache = []; + return function() { + argCache.length = 0; + Object.assign(argCache, arguments); + return dynCall(sig, ptr, argCache); + }; +}; + +var embind__requireFunction = (signature, rawFunction) => { + signature = readLatin1String(signature); + function makeDynCaller() { + if (signature.includes("j")) { + return getDynCaller(signature, rawFunction); + } + 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 = undefined; + +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); + if (upcast) { + upcast = embind__requireFunction(upcastSignature, upcast); + } + if (downcast) { + 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 ] : [], function(base) { + base = base[0]; + var baseClass; + var basePrototype; + if (baseClassRawType) { + baseClass = base.registeredClass; + basePrototype = baseClass.instancePrototype; + } else { + basePrototype = ClassHandle.prototype; + } + var constructor = createNamedFunction(legalFunctionName, function() { + 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[arguments.length]; + if (undefined === body) { + throw new BindingError(`Tried to invoke ctor of ${name} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(registeredClass.constructor_body).toString()}) parameters instead!`); + } + return body.apply(this, arguments); + }); + 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) { + if (registeredClass.baseClass.__derivedClasses === undefined) { + 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 < count; i++) { + array.push(HEAPU32[firstElement + i * 4 >> 2]); + } + return array; +}; + +var runDestructors = destructors => { + while (destructors.length) { + var ptr = destructors.pop(); + var del = destructors.pop(); + del(ptr); + } +}; + +function newFunc(constructor, argumentList) { + if (!(constructor instanceof Function)) { + throw new TypeError(`new_ called with constructor type ${typeof constructor} which is not a function`); + } + var dummy = createNamedFunction(constructor.name || "unknownFunctionName", function() {}); + dummy.prototype = constructor.prototype; + var obj = new dummy; + var r = constructor.apply(obj, argumentList); + return r instanceof Object ? r : obj; +} + +function craftInvokerFunction(humanName, argTypes, classType, cppInvokerFunc, cppTargetFunc, isAsync) { + var argCount = argTypes.length; + if (argCount < 2) { + throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!"); + } + var isClassMethodFunc = argTypes[1] !== null && classType !== null; + var needsDestructorStack = false; + for (var i = 1; i < argTypes.length; ++i) { + if (argTypes[i] !== null && argTypes[i].destructorFunction === undefined) { + needsDestructorStack = true; + break; + } + } + var returns = argTypes[0].name !== "void"; + var argsList = ""; + var argsListWired = ""; + for (var i = 0; i < argCount - 2; ++i) { + argsList += (i !== 0 ? ", " : "") + "arg" + i; + argsListWired += (i !== 0 ? ", " : "") + "arg" + i + "Wired"; + } + var invokerFnBody = `\n return function ${makeLegalFunctionName(humanName)}(${argsList}) {\n if (arguments.length !== ${argCount - 2}) {\n throwBindingError('function ${humanName} called with ' + arguments.length + ' arguments, expected ${argCount - 2}');\n }`; + if (needsDestructorStack) { + invokerFnBody += "var destructors = [];\n"; + } + var dtorStack = needsDestructorStack ? "destructors" : "null"; + var args1 = [ "throwBindingError", "invoker", "fn", "runDestructors", "retType", "classParam" ]; + var args2 = [ throwBindingError, cppInvokerFunc, cppTargetFunc, runDestructors, argTypes[0], argTypes[1] ]; + if (isClassMethodFunc) { + invokerFnBody += "var thisWired = classParam.toWireType(" + dtorStack + ", this);\n"; + } + for (var i = 0; i < argCount - 2; ++i) { + invokerFnBody += "var arg" + i + "Wired = argType" + i + ".toWireType(" + dtorStack + ", arg" + i + "); // " + argTypes[i + 2].name + "\n"; + args1.push("argType" + i); + args2.push(argTypes[i + 2]); + } + if (isClassMethodFunc) { + argsListWired = "thisWired" + (argsListWired.length > 0 ? ", " : "") + argsListWired; + } + invokerFnBody += (returns || isAsync ? "var rv = " : "") + "invoker(fn" + (argsListWired.length > 0 ? ", " : "") + argsListWired + ");\n"; + if (needsDestructorStack) { + invokerFnBody += "runDestructors(destructors);\n"; + } else { + for (var i = isClassMethodFunc ? 1 : 2; i < argTypes.length; ++i) { + var paramName = i === 1 ? "thisWired" : "arg" + (i - 2) + "Wired"; + if (argTypes[i].destructorFunction !== null) { + invokerFnBody += paramName + "_dtor(" + paramName + "); // " + argTypes[i].name + "\n"; + args1.push(paramName + "_dtor"); + args2.push(argTypes[i].destructorFunction); + } + } + } + if (returns) { + invokerFnBody += "var ret = retType.fromWireType(rv);\n" + "return ret;\n"; + } else {} + invokerFnBody += "}\n"; + args1.push(invokerFnBody); + return newFunc(Function, args1).apply(null, args2); +} + +var __embind_register_class_constructor = (rawClassType, argCount, rawArgTypesAddr, invokerSignature, invoker, rawConstructor) => { + var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr); + invoker = embind__requireFunction(invokerSignature, invoker); + whenDependentTypesAreResolved([], [ rawClassType ], function(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 __embind_register_class_function = (rawClassType, methodName, argCount, rawArgTypesAddr, invokerSignature, rawInvoker, context, isPureVirtual, isAsync) => { + var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr); + methodName = readLatin1String(methodName); + rawInvoker = embind__requireFunction(invokerSignature, rawInvoker); + whenDependentTypesAreResolved([], [ rawClassType ], function(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, function(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 []; + }); +}; + +function handleAllocatorInit() { + Object.assign(HandleAllocator.prototype, { + get(id) { + return this.allocated[id]; + }, + has(id) { + return this.allocated[id] !== undefined; + }, + allocate(handle) { + var id = this.freelist.pop() || this.allocated.length; + this.allocated[id] = handle; + return id; + }, + free(id) { + this.allocated[id] = undefined; + this.freelist.push(id); + } + }); +} + +function HandleAllocator() { + this.allocated = [ undefined ]; + this.freelist = []; +} + +var emval_handles = new HandleAllocator; + +var __emval_decref = handle => { + if (handle >= emval_handles.reserved && 0 === --emval_handles.get(handle).refcount) { + emval_handles.free(handle); + } +}; + +var count_emval_handles = () => { + var count = 0; + for (var i = emval_handles.reserved; i < emval_handles.allocated.length; ++i) { + if (emval_handles.allocated[i] !== undefined) { + ++count; + } + } + return count; +}; + +var init_emval = () => { + emval_handles.allocated.push({ + value: undefined + }, { + value: null + }, { + value: true + }, { + value: false + }); + emval_handles.reserved = emval_handles.allocated.length; + Module["count_emval_handles"] = count_emval_handles; +}; + +var Emval = { + toValue: handle => { + if (!handle) { + throwBindingError("Cannot use deleted val. handle = " + handle); + } + return emval_handles.get(handle).value; + }, + toHandle: value => { + switch (value) { + case undefined: + return 1; + + case null: + return 2; + + case true: + return 3; + + case false: + return 4; + + default: + { + return emval_handles.allocate({ + refcount: 1, + value: value + }); + } + } + } +}; + +function simpleReadValueFromPointer(pointer) { + return this["fromWireType"](HEAP32[pointer >> 2]); +} + +var __embind_register_emval = (rawType, name) => { + name = readLatin1String(name); + registerType(rawType, { + name: name, + "fromWireType": handle => { + var rv = Emval.toValue(handle); + __emval_decref(handle); + return rv; + }, + "toWireType": (destructors, value) => Emval.toHandle(value), + "argPackAdvance": GenericWireTypeSize, + "readValueFromPointer": simpleReadValueFromPointer, + destructorFunction: null + }); +}; + +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 floatReadValueFromPointer = (name, width) => { + switch (width) { + case 4: + return function(pointer) { + return this["fromWireType"](HEAPF32[pointer >> 2]); + }; + + case 8: + return function(pointer) { + return this["fromWireType"](HEAPF64[pointer >> 3]); + }; + + default: + throw new TypeError(`invalid float width (${width}): ${name}`); + } +}; + +var __embind_register_float = (rawType, name, size) => { + name = readLatin1String(name); + registerType(rawType, { + name: name, + "fromWireType": value => value, + "toWireType": (destructors, value) => value, + "argPackAdvance": GenericWireTypeSize, + "readValueFromPointer": floatReadValueFromPointer(name, size), + destructorFunction: null + }); +}; + +var integerReadValueFromPointer = (name, width, signed) => { + switch (width) { + case 1: + return signed ? pointer => HEAP8[pointer >> 0] : pointer => HEAPU8[pointer >> 0]; + + case 2: + return signed ? pointer => HEAP16[pointer >> 1] : pointer => HEAPU16[pointer >> 1]; + + case 4: + return signed ? pointer => HEAP32[pointer >> 2] : pointer => HEAPU32[pointer >> 2]; + + default: + throw new TypeError(`invalid integer width (${width}): ${name}`); + } +}; + +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 >>> 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: name, + "fromWireType": fromWireType, + "toWireType": 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 ]; + var TA = typeMapping[dataTypeIndex]; + function decodeMemoryView(handle) { + var size = HEAPU32[handle >> 2]; + var data = HEAPU32[handle + 4 >> 2]; + return new TA(HEAP8.buffer, data, size); + } + name = readLatin1String(name); + registerType(rawType, { + name: 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 < str.length; ++i) { + var u = str.charCodeAt(i); + if (u >= 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, HEAPU8, outPtr, maxBytesToWrite); + +var lengthBytesUTF8 = str => { + var len = 0; + for (var i = 0; i < str.length; ++i) { + var c = str.charCodeAt(i); + if (c <= 127) { + len++; + } else if (c <= 2047) { + len += 2; + } else if (c >= 55296 && c <= 57343) { + len += 4; + ++i; + } else { + len += 3; + } + } + return len; +}; + +var __embind_register_std_string = (rawType, name) => { + name = readLatin1String(name); + var stdStringIsUTF8 = name === "std::string"; + registerType(rawType, { + name: name, + "fromWireType": value => { + var length = HEAPU32[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 || HEAPU8[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 < length; ++i) { + a[i] = String.fromCharCode(HEAPU8[payload + i]); + } + str = a.join(""); + } + _free(value); + return str; + }, + "toWireType": (destructors, value) => { + if (value instanceof ArrayBuffer) { + value = new Uint8Array(value); + } + var length; + var valueIsOfTypeString = typeof value == "string"; + if (!(valueIsOfTypeString || value instanceof Uint8Array || value instanceof Uint8ClampedArray || value instanceof Int8Array)) { + throwBindingError("Cannot pass non-string to std::string"); + } + if (stdStringIsUTF8 && valueIsOfTypeString) { + length = lengthBytesUTF8(value); + } else { + length = value.length; + } + var base = _malloc(4 + length + 1); + var ptr = base + 4; + HEAPU32[base >> 2] = length; + if (stdStringIsUTF8 && valueIsOfTypeString) { + stringToUTF8(value, ptr, length + 1); + } else { + if (valueIsOfTypeString) { + for (var i = 0; i < length; ++i) { + var charCode = value.charCodeAt(i); + if (charCode > 255) { + _free(ptr); + throwBindingError("String has UTF-16 code units that do not fit in 8 bits"); + } + HEAPU8[ptr + i] = charCode; + } + } else { + for (var i = 0; i < length; ++i) { + HEAPU8[ptr + i] = value[i]; + } + } + } + if (destructors !== null) { + destructors.push(_free, base); + } + return base; + }, + "argPackAdvance": GenericWireTypeSize, + "readValueFromPointer": readPointer, + destructorFunction: ptr => _free(ptr) + }); +}; + +var UTF16Decoder = typeof TextDecoder != "undefined" ? new TextDecoder("utf-16le") : undefined; + +var UTF16ToString = (ptr, maxBytesToRead) => { + var endPtr = ptr; + var idx = endPtr >> 1; + var maxIdx = idx + maxBytesToRead / 2; + while (!(idx >= maxIdx) && HEAPU16[idx]) ++idx; + endPtr = idx << 1; + if (endPtr - ptr > 32 && UTF16Decoder) return UTF16Decoder.decode(HEAPU8.subarray(ptr, endPtr)); + var str = ""; + for (var i = 0; !(i >= maxBytesToRead / 2); ++i) { + var codeUnit = HEAP16[ptr + i * 2 >> 1]; + if (codeUnit == 0) break; + str += String.fromCharCode(codeUnit); + } + return str; +}; + +var stringToUTF16 = (str, outPtr, maxBytesToWrite) => { + if (maxBytesToWrite === undefined) { + maxBytesToWrite = 2147483647; + } + if (maxBytesToWrite < 2) return 0; + maxBytesToWrite -= 2; + var startPtr = outPtr; + var numCharsToWrite = maxBytesToWrite < str.length * 2 ? maxBytesToWrite / 2 : str.length; + for (var i = 0; i < numCharsToWrite; ++i) { + var codeUnit = str.charCodeAt(i); + HEAP16[outPtr >> 1] = codeUnit; + outPtr += 2; + } + HEAP16[outPtr >> 1] = 0; + return outPtr - startPtr; +}; + +var lengthBytesUTF16 = str => str.length * 2; + +var UTF32ToString = (ptr, maxBytesToRead) => { + var i = 0; + var str = ""; + while (!(i >= maxBytesToRead / 4)) { + var utf32 = HEAP32[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) => { + if (maxBytesToWrite === undefined) { + maxBytesToWrite = 2147483647; + } + if (maxBytesToWrite < 4) return 0; + var startPtr = outPtr; + var endPtr = startPtr + maxBytesToWrite - 4; + for (var i = 0; i < str.length; ++i) { + var codeUnit = str.charCodeAt(i); + if (codeUnit >= 55296 && codeUnit <= 57343) { + var trailSurrogate = str.charCodeAt(++i); + codeUnit = 65536 + ((codeUnit & 1023) << 10) | trailSurrogate & 1023; + } + HEAP32[outPtr >> 2] = codeUnit; + outPtr += 4; + if (outPtr + 4 > endPtr) break; + } + HEAP32[outPtr >> 2] = 0; + return outPtr - startPtr; +}; + +var lengthBytesUTF32 = str => { + var len = 0; + for (var i = 0; i < str.length; ++i) { + var codeUnit = str.charCodeAt(i); + if (codeUnit >= 55296 && codeUnit <= 57343) ++i; + len += 4; + } + return len; +}; + +var __embind_register_std_wstring = (rawType, charSize, name) => { + name = readLatin1String(name); + var decodeString, encodeString, getHeap, lengthBytesUTF, shift; + if (charSize === 2) { + decodeString = UTF16ToString; + encodeString = stringToUTF16; + lengthBytesUTF = lengthBytesUTF16; + getHeap = () => HEAPU16; + shift = 1; + } else if (charSize === 4) { + decodeString = UTF32ToString; + encodeString = stringToUTF32; + lengthBytesUTF = lengthBytesUTF32; + getHeap = () => HEAPU32; + shift = 2; + } + registerType(rawType, { + name: name, + "fromWireType": value => { + var length = HEAPU32[value >> 2]; + var HEAP = getHeap(); + var str; + var decodeStartPtr = value + 4; + for (var i = 0; i <= length; ++i) { + var currentBytePtr = value + 4 + i * charSize; + if (i == length || HEAP[currentBytePtr >> shift] == 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); + HEAPU32[ptr >> 2] = length >> shift; + encodeString(value, ptr + 4, length + charSize); + if (destructors !== null) { + destructors.push(_free, ptr); + } + return ptr; + }, + "argPackAdvance": GenericWireTypeSize, + "readValueFromPointer": simpleReadValueFromPointer, + destructorFunction: ptr => _free(ptr) + }); +}; + +var __embind_register_void = (rawType, name) => { + name = readLatin1String(name); + registerType(rawType, { + isVoid: true, + name: name, + "argPackAdvance": 0, + "fromWireType": () => undefined, + "toWireType": (destructors, o) => undefined + }); +}; + +var __emscripten_throw_longjmp = () => { + throw Infinity; +}; + +var __emval_incref = handle => { + if (handle > 4) { + emval_handles.get(handle).refcount += 1; + } +}; + +var requireRegisteredType = (rawType, humanName) => { + var impl = registeredTypes[rawType]; + if (undefined === impl) { + throwBindingError(humanName + " has unknown type " + getTypeName(rawType)); + } + return impl; +}; + +var __emval_take_value = (type, arg) => { + type = requireRegisteredType(type, "_emval_take_value"); + var v = type["readValueFromPointer"](arg); + return Emval.toHandle(v); +}; + +var isLeapYear = year => year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0); + +var MONTH_DAYS_LEAP_CUMULATIVE = [ 0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335 ]; + +var MONTH_DAYS_REGULAR_CUMULATIVE = [ 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334 ]; + +var ydayFromDate = date => { + var leap = isLeapYear(date.getFullYear()); + var monthDaysCumulative = leap ? MONTH_DAYS_LEAP_CUMULATIVE : MONTH_DAYS_REGULAR_CUMULATIVE; + var yday = monthDaysCumulative[date.getMonth()] + date.getDate() - 1; + return yday; +}; + +var convertI32PairToI53Checked = (lo, hi) => hi + 2097152 >>> 0 < 4194305 - !!lo ? (lo >>> 0) + hi * 4294967296 : NaN; + +function __localtime_js(time_low, time_high, tmPtr) { + var time = convertI32PairToI53Checked(time_low, time_high); + var date = new Date(time * 1e3); + HEAP32[tmPtr >> 2] = date.getSeconds(); + HEAP32[tmPtr + 4 >> 2] = date.getMinutes(); + HEAP32[tmPtr + 8 >> 2] = date.getHours(); + HEAP32[tmPtr + 12 >> 2] = date.getDate(); + HEAP32[tmPtr + 16 >> 2] = date.getMonth(); + HEAP32[tmPtr + 20 >> 2] = date.getFullYear() - 1900; + HEAP32[tmPtr + 24 >> 2] = date.getDay(); + var yday = ydayFromDate(date) | 0; + HEAP32[tmPtr + 28 >> 2] = yday; + HEAP32[tmPtr + 36 >> 2] = -(date.getTimezoneOffset() * 60); + var start = new Date(date.getFullYear(), 0, 1); + var summerOffset = new Date(date.getFullYear(), 6, 1).getTimezoneOffset(); + var winterOffset = start.getTimezoneOffset(); + var dst = (summerOffset != winterOffset && date.getTimezoneOffset() == Math.min(winterOffset, summerOffset)) | 0; + HEAP32[tmPtr + 32 >> 2] = dst; +} + +var __mktime_js = function(tmPtr) { + var ret = (() => { + var date = new Date(HEAP32[tmPtr + 20 >> 2] + 1900, HEAP32[tmPtr + 16 >> 2], HEAP32[tmPtr + 12 >> 2], HEAP32[tmPtr + 8 >> 2], HEAP32[tmPtr + 4 >> 2], HEAP32[tmPtr >> 2], 0); + var dst = HEAP32[tmPtr + 32 >> 2]; + var guessedOffset = date.getTimezoneOffset(); + var start = new Date(date.getFullYear(), 0, 1); + var summerOffset = new Date(date.getFullYear(), 6, 1).getTimezoneOffset(); + var winterOffset = start.getTimezoneOffset(); + var dstOffset = Math.min(winterOffset, summerOffset); + if (dst < 0) { + HEAP32[tmPtr + 32 >> 2] = Number(summerOffset != winterOffset && dstOffset == guessedOffset); + } else if (dst > 0 != (dstOffset == guessedOffset)) { + var nonDstOffset = Math.max(winterOffset, summerOffset); + var trueOffset = dst > 0 ? dstOffset : nonDstOffset; + date.setTime(date.getTime() + (trueOffset - guessedOffset) * 6e4); + } + HEAP32[tmPtr + 24 >> 2] = date.getDay(); + var yday = ydayFromDate(date) | 0; + HEAP32[tmPtr + 28 >> 2] = yday; + HEAP32[tmPtr >> 2] = date.getSeconds(); + HEAP32[tmPtr + 4 >> 2] = date.getMinutes(); + HEAP32[tmPtr + 8 >> 2] = date.getHours(); + HEAP32[tmPtr + 12 >> 2] = date.getDate(); + HEAP32[tmPtr + 16 >> 2] = date.getMonth(); + HEAP32[tmPtr + 20 >> 2] = date.getYear(); + return date.getTime() / 1e3; + })(); + return setTempRet0((tempDouble = ret, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? +Math.floor(tempDouble / 4294967296) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)), + ret >>> 0; +}; + +var stringToNewUTF8 = str => { + var size = lengthBytesUTF8(str) + 1; + var ret = _malloc(size); + if (ret) stringToUTF8(str, ret, size); + return ret; +}; + +var __tzset_js = (timezone, daylight, tzname) => { + var currentYear = (new Date).getFullYear(); + var winter = new Date(currentYear, 0, 1); + var summer = new Date(currentYear, 6, 1); + var winterOffset = winter.getTimezoneOffset(); + var summerOffset = summer.getTimezoneOffset(); + var stdTimezoneOffset = Math.max(winterOffset, summerOffset); + HEAPU32[timezone >> 2] = stdTimezoneOffset * 60; + HEAP32[daylight >> 2] = Number(winterOffset != summerOffset); + function extractZone(date) { + var match = date.toTimeString().match(/\(([A-Za-z ]+)\)$/); + return match ? match[1] : "GMT"; + } + var winterName = extractZone(winter); + var summerName = extractZone(summer); + var winterNamePtr = stringToNewUTF8(winterName); + var summerNamePtr = stringToNewUTF8(summerName); + if (summerOffset < winterOffset) { + HEAPU32[tzname >> 2] = winterNamePtr; + HEAPU32[tzname + 4 >> 2] = summerNamePtr; + } else { + HEAPU32[tzname >> 2] = summerNamePtr; + HEAPU32[tzname + 4 >> 2] = winterNamePtr; + } +}; + +var _abort = () => { + abort(""); +}; + +var _emscripten_memcpy_big = (dest, src, num) => HEAPU8.copyWithin(dest, src, src + num); + +var getHeapMax = () => 2147483648; + +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 = HEAPU8.length; + requestedSize >>>= 0; + var maxHeapSize = getHeapMax(); + if (requestedSize > maxHeapSize) { + return false; + } + var alignUp = (x, multiple) => x + (multiple - x % multiple) % multiple; + 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, alignUp(Math.max(requestedSize, overGrownHeapSize), 65536)); + var replacement = growMemory(newSize); + if (replacement) { + return true; + } + } + return false; +}; + +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 < str.length; ++i) { + HEAP8[buffer++ >> 0] = str.charCodeAt(i); + } + HEAP8[buffer >> 0] = 0; +}; + +var _environ_get = (__environ, environ_buf) => { + var bufSize = 0; + getEnvStrings().forEach((string, i) => { + var ptr = environ_buf + bufSize; + HEAPU32[__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(); + HEAPU32[penviron_count >> 2] = strings.length; + var bufSize = 0; + strings.forEach(string => bufSize += string.length + 1); + HEAPU32[penviron_buf_size >> 2] = bufSize; + return 0; +}; + +var _fd_close = fd => 52; + +var _fd_read = (fd, iov, iovcnt, pnum) => 52; + +function _fd_seek(fd, offset_low, offset_high, whence, newOffset) { + var offset = convertI32PairToI53Checked(offset_low, offset_high); + return 70; +} + +var printCharBuffers = [ null, [], [] ]; + +var printChar = (stream, curr) => { + var buffer = printCharBuffers[stream]; + if (curr === 0 || curr === 10) { + (stream === 1 ? out : err)(UTF8ArrayToString(buffer, 0)); + buffer.length = 0; + } else { + buffer.push(curr); + } +}; + +var _fd_write = (fd, iov, iovcnt, pnum) => { + var num = 0; + for (var i = 0; i < iovcnt; i++) { + var ptr = HEAPU32[iov >> 2]; + var len = HEAPU32[iov + 4 >> 2]; + iov += 8; + for (var j = 0; j < len; j++) { + printChar(fd, HEAPU8[ptr + j]); + } + num += len; + } + HEAPU32[pnum >> 2] = num; + return 0; +}; + +var arraySum = (array, index) => { + var sum = 0; + for (var i = 0; i <= index; sum += array[i++]) {} + return sum; +}; + +var MONTH_DAYS_LEAP = [ 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ]; + +var MONTH_DAYS_REGULAR = [ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ]; + +var addDays = (date, days) => { + var newDate = new Date(date.getTime()); + while (days > 0) { + var leap = isLeapYear(newDate.getFullYear()); + var currentMonth = newDate.getMonth(); + var daysInCurrentMonth = (leap ? MONTH_DAYS_LEAP : MONTH_DAYS_REGULAR)[currentMonth]; + if (days > daysInCurrentMonth - newDate.getDate()) { + days -= daysInCurrentMonth - newDate.getDate() + 1; + newDate.setDate(1); + if (currentMonth < 11) { + newDate.setMonth(currentMonth + 1); + } else { + newDate.setMonth(0); + newDate.setFullYear(newDate.getFullYear() + 1); + } + } else { + newDate.setDate(newDate.getDate() + days); + return newDate; + } + } + return newDate; +}; + +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 writeArrayToMemory = (array, buffer) => { + HEAP8.set(array, buffer); +}; + +var _strftime = (s, maxsize, format, tm) => { + var tm_zone = HEAPU32[tm + 40 >> 2]; + var date = { + tm_sec: HEAP32[tm >> 2], + tm_min: HEAP32[tm + 4 >> 2], + tm_hour: HEAP32[tm + 8 >> 2], + tm_mday: HEAP32[tm + 12 >> 2], + tm_mon: HEAP32[tm + 16 >> 2], + tm_year: HEAP32[tm + 20 >> 2], + tm_wday: HEAP32[tm + 24 >> 2], + tm_yday: HEAP32[tm + 28 >> 2], + tm_isdst: HEAP32[tm + 32 >> 2], + tm_gmtoff: HEAP32[tm + 36 >> 2], + tm_zone: tm_zone ? UTF8ToString(tm_zone) : "" + }; + var pattern = UTF8ToString(format); + var EXPANSION_RULES_1 = { + "%c": "%a %b %d %H:%M:%S %Y", + "%D": "%m/%d/%y", + "%F": "%Y-%m-%d", + "%h": "%b", + "%r": "%I:%M:%S %p", + "%R": "%H:%M", + "%T": "%H:%M:%S", + "%x": "%m/%d/%y", + "%X": "%H:%M:%S", + "%Ec": "%c", + "%EC": "%C", + "%Ex": "%m/%d/%y", + "%EX": "%H:%M:%S", + "%Ey": "%y", + "%EY": "%Y", + "%Od": "%d", + "%Oe": "%e", + "%OH": "%H", + "%OI": "%I", + "%Om": "%m", + "%OM": "%M", + "%OS": "%S", + "%Ou": "%u", + "%OU": "%U", + "%OV": "%V", + "%Ow": "%w", + "%OW": "%W", + "%Oy": "%y" + }; + for (var rule in EXPANSION_RULES_1) { + pattern = pattern.replace(new RegExp(rule, "g"), EXPANSION_RULES_1[rule]); + } + var WEEKDAYS = [ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ]; + var MONTHS = [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ]; + function leadingSomething(value, digits, character) { + var str = typeof value == "number" ? value.toString() : value || ""; + while (str.length < digits) { + str = character[0] + str; + } + return str; + } + function leadingNulls(value, digits) { + return leadingSomething(value, digits, "0"); + } + function compareByDay(date1, date2) { + function sgn(value) { + return value < 0 ? -1 : value > 0 ? 1 : 0; + } + var compare; + if ((compare = sgn(date1.getFullYear() - date2.getFullYear())) === 0) { + if ((compare = sgn(date1.getMonth() - date2.getMonth())) === 0) { + compare = sgn(date1.getDate() - date2.getDate()); + } + } + return compare; + } + function getFirstWeekStartDate(janFourth) { + switch (janFourth.getDay()) { + case 0: + return new Date(janFourth.getFullYear() - 1, 11, 29); + + case 1: + return janFourth; + + case 2: + return new Date(janFourth.getFullYear(), 0, 3); + + case 3: + return new Date(janFourth.getFullYear(), 0, 2); + + case 4: + return new Date(janFourth.getFullYear(), 0, 1); + + case 5: + return new Date(janFourth.getFullYear() - 1, 11, 31); + + case 6: + return new Date(janFourth.getFullYear() - 1, 11, 30); + } + } + function getWeekBasedYear(date) { + var thisDate = addDays(new Date(date.tm_year + 1900, 0, 1), date.tm_yday); + var janFourthThisYear = new Date(thisDate.getFullYear(), 0, 4); + var janFourthNextYear = new Date(thisDate.getFullYear() + 1, 0, 4); + var firstWeekStartThisYear = getFirstWeekStartDate(janFourthThisYear); + var firstWeekStartNextYear = getFirstWeekStartDate(janFourthNextYear); + if (compareByDay(firstWeekStartThisYear, thisDate) <= 0) { + if (compareByDay(firstWeekStartNextYear, thisDate) <= 0) { + return thisDate.getFullYear() + 1; + } + return thisDate.getFullYear(); + } + return thisDate.getFullYear() - 1; + } + var EXPANSION_RULES_2 = { + "%a": date => WEEKDAYS[date.tm_wday].substring(0, 3), + "%A": date => WEEKDAYS[date.tm_wday], + "%b": date => MONTHS[date.tm_mon].substring(0, 3), + "%B": date => MONTHS[date.tm_mon], + "%C": date => { + var year = date.tm_year + 1900; + return leadingNulls(year / 100 | 0, 2); + }, + "%d": date => leadingNulls(date.tm_mday, 2), + "%e": date => leadingSomething(date.tm_mday, 2, " "), + "%g": date => getWeekBasedYear(date).toString().substring(2), + "%G": date => getWeekBasedYear(date), + "%H": date => leadingNulls(date.tm_hour, 2), + "%I": date => { + var twelveHour = date.tm_hour; + if (twelveHour == 0) twelveHour = 12; else if (twelveHour > 12) twelveHour -= 12; + return leadingNulls(twelveHour, 2); + }, + "%j": date => leadingNulls(date.tm_mday + arraySum(isLeapYear(date.tm_year + 1900) ? MONTH_DAYS_LEAP : MONTH_DAYS_REGULAR, date.tm_mon - 1), 3), + "%m": date => leadingNulls(date.tm_mon + 1, 2), + "%M": date => leadingNulls(date.tm_min, 2), + "%n": () => "\n", + "%p": date => { + if (date.tm_hour >= 0 && date.tm_hour < 12) { + return "AM"; + } + return "PM"; + }, + "%S": date => leadingNulls(date.tm_sec, 2), + "%t": () => "\t", + "%u": date => date.tm_wday || 7, + "%U": date => { + var days = date.tm_yday + 7 - date.tm_wday; + return leadingNulls(Math.floor(days / 7), 2); + }, + "%V": date => { + var val = Math.floor((date.tm_yday + 7 - (date.tm_wday + 6) % 7) / 7); + if ((date.tm_wday + 371 - date.tm_yday - 2) % 7 <= 2) { + val++; + } + if (!val) { + val = 52; + var dec31 = (date.tm_wday + 7 - date.tm_yday - 1) % 7; + if (dec31 == 4 || dec31 == 5 && isLeapYear(date.tm_year % 400 - 1)) { + val++; + } + } else if (val == 53) { + var jan1 = (date.tm_wday + 371 - date.tm_yday) % 7; + if (jan1 != 4 && (jan1 != 3 || !isLeapYear(date.tm_year))) val = 1; + } + return leadingNulls(val, 2); + }, + "%w": date => date.tm_wday, + "%W": date => { + var days = date.tm_yday + 7 - (date.tm_wday + 6) % 7; + return leadingNulls(Math.floor(days / 7), 2); + }, + "%y": date => (date.tm_year + 1900).toString().substring(2), + "%Y": date => date.tm_year + 1900, + "%z": date => { + var off = date.tm_gmtoff; + var ahead = off >= 0; + off = Math.abs(off) / 60; + off = off / 60 * 100 + off % 60; + return (ahead ? "+" : "-") + String("0000" + off).slice(-4); + }, + "%Z": date => date.tm_zone, + "%%": () => "%" + }; + pattern = pattern.replace(/%%/g, "\0\0"); + for (var rule in EXPANSION_RULES_2) { + if (pattern.includes(rule)) { + pattern = pattern.replace(new RegExp(rule, "g"), EXPANSION_RULES_2[rule](date)); + } + } + pattern = pattern.replace(/\0\0/g, "%"); + var bytes = intArrayFromString(pattern, false); + if (bytes.length > maxsize) { + return 0; + } + writeArrayToMemory(bytes, s); + return bytes.length - 1; +}; + +var _strftime_l = (s, maxsize, format, tm, loc) => _strftime(s, maxsize, format, tm); + +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"); + +handleAllocatorInit(); + +init_emval(); + +var wasmImports = { + __assert_fail: ___assert_fail, + __cxa_throw: ___cxa_throw, + __syscall_ioctl: ___syscall_ioctl, + __syscall_openat: ___syscall_openat, + _embind_register_bigint: __embind_register_bigint, + _embind_register_bool: __embind_register_bool, + _embind_register_class: __embind_register_class, + _embind_register_class_constructor: __embind_register_class_constructor, + _embind_register_class_function: __embind_register_class_function, + _embind_register_emval: __embind_register_emval, + _embind_register_float: __embind_register_float, + _embind_register_integer: __embind_register_integer, + _embind_register_memory_view: __embind_register_memory_view, + _embind_register_std_string: __embind_register_std_string, + _embind_register_std_wstring: __embind_register_std_wstring, + _embind_register_void: __embind_register_void, + _emscripten_throw_longjmp: __emscripten_throw_longjmp, + _emval_decref: __emval_decref, + _emval_incref: __emval_incref, + _emval_take_value: __emval_take_value, + _localtime_js: __localtime_js, + _mktime_js: __mktime_js, + _tzset_js: __tzset_js, + abort: _abort, + emscripten_memcpy_big: _emscripten_memcpy_big, + emscripten_resize_heap: _emscripten_resize_heap, + environ_get: _environ_get, + environ_sizes_get: _environ_sizes_get, + fd_close: _fd_close, + fd_read: _fd_read, + fd_seek: _fd_seek, + fd_write: _fd_write, + invoke_vi: invoke_vi, + invoke_viii: invoke_viii, + invoke_viiii: invoke_viiii, + invoke_viiiii: invoke_viiiii, + strftime_l: _strftime_l +}; + +var wasmExports = createWasm(); + +var ___wasm_call_ctors = () => (___wasm_call_ctors = wasmExports["__wasm_call_ctors"])(); + +var _free = a0 => (_free = wasmExports["free"])(a0); + +var _malloc = a0 => (_malloc = wasmExports["malloc"])(a0); + +var ___getTypeName = a0 => (___getTypeName = wasmExports["__getTypeName"])(a0); + +var __embind_initialize_bindings = Module["__embind_initialize_bindings"] = () => (__embind_initialize_bindings = Module["__embind_initialize_bindings"] = wasmExports["_embind_initialize_bindings"])(); + +var ___errno_location = () => (___errno_location = wasmExports["__errno_location"])(); + +var _setThrew = (a0, a1) => (_setThrew = wasmExports["setThrew"])(a0, a1); + +var setTempRet0 = a0 => (setTempRet0 = wasmExports["setTempRet0"])(a0); + +var stackSave = () => (stackSave = wasmExports["stackSave"])(); + +var stackRestore = a0 => (stackRestore = wasmExports["stackRestore"])(a0); + +var stackAlloc = a0 => (stackAlloc = wasmExports["stackAlloc"])(a0); + +var ___cxa_increment_exception_refcount = a0 => (___cxa_increment_exception_refcount = wasmExports["__cxa_increment_exception_refcount"])(a0); + +var ___cxa_is_pointer_type = a0 => (___cxa_is_pointer_type = wasmExports["__cxa_is_pointer_type"])(a0); + +var dynCall_iijii = Module["dynCall_iijii"] = (a0, a1, a2, a3, a4, a5) => (dynCall_iijii = Module["dynCall_iijii"] = wasmExports["dynCall_iijii"])(a0, a1, a2, a3, a4, a5); + +var dynCall_jiji = Module["dynCall_jiji"] = (a0, a1, a2, a3, a4) => (dynCall_jiji = Module["dynCall_jiji"] = wasmExports["dynCall_jiji"])(a0, a1, a2, a3, a4); + +var dynCall_viijii = Module["dynCall_viijii"] = (a0, a1, a2, a3, a4, a5, a6) => (dynCall_viijii = Module["dynCall_viijii"] = wasmExports["dynCall_viijii"])(a0, a1, a2, a3, a4, a5, a6); + +var dynCall_iiiiij = Module["dynCall_iiiiij"] = (a0, a1, a2, a3, a4, a5, a6) => (dynCall_iiiiij = Module["dynCall_iiiiij"] = wasmExports["dynCall_iiiiij"])(a0, a1, a2, a3, a4, a5, a6); + +var dynCall_iiiiijj = Module["dynCall_iiiiijj"] = (a0, a1, a2, a3, a4, a5, a6, a7, a8) => (dynCall_iiiiijj = Module["dynCall_iiiiijj"] = wasmExports["dynCall_iiiiijj"])(a0, a1, a2, a3, a4, a5, a6, a7, a8); + +var dynCall_iiiiiijj = Module["dynCall_iiiiiijj"] = (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) => (dynCall_iiiiiijj = Module["dynCall_iiiiiijj"] = wasmExports["dynCall_iiiiiijj"])(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9); + +function invoke_vi(index, a1) { + var sp = stackSave(); + try { + getWasmTableEntry(index)(a1); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} + +function invoke_viii(index, a1, a2, a3) { + var sp = stackSave(); + try { + getWasmTableEntry(index)(a1, a2, a3); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} + +function invoke_viiii(index, a1, a2, a3, a4) { + var sp = stackSave(); + try { + getWasmTableEntry(index)(a1, a2, a3, a4); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} + +function invoke_viiiii(index, a1, a2, a3, a4, a5) { + var sp = stackSave(); + try { + getWasmTableEntry(index)(a1, a2, a3, a4, a5); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} + +var calledRun; + +dependenciesFulfilled = function runCaller() { + if (!calledRun) run(); + if (!calledRun) dependenciesFulfilled = runCaller; +}; + +function run() { + if (runDependencies > 0) { + return; + } + preRun(); + if (runDependencies > 0) { + return; + } + function doRun() { + if (calledRun) return; + calledRun = true; + Module["calledRun"] = true; + if (ABORT) return; + initRuntime(); + if (Module["onRuntimeInitialized"]) Module["onRuntimeInitialized"](); + postRun(); + } + if (Module["setStatus"]) { + Module["setStatus"]("Running..."); + setTimeout(function() { + setTimeout(function() { + 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(); diff --git a/d2m/converters/rlottie-wasm.wasm b/d2m/converters/rlottie-wasm.wasm index b7778c99eebd14f5fbf655c4a082d8c5562ca351..ca65b5b6ff7139db1ca9106fc194510b1bd6034f 100755 GIT binary patch delta 104498 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 delta 184 zcmbQ=ue#%r+=l!7jJum3@V7tUXKa7K&(!{apLzQOeioi}jJLMG-OCcr%%;f0RIk7} z{lY;OrRn(xS=KUgPnSK!vX_x}`t3t3S}wftyiCpv3=9m4Tna1-tZux_%nnQr3M^Vo z3`%?oyz#EQ3?L4R60-tt9GIiQ#G%B>QmeqKz^lMFS%F!BZ~Fd|EDF;z53@M4aZgs_ jR^Z;g=`hQic*Y&m=PR?$ZnsupZMRlo+itDG&e#h8`VKMk diff --git a/test/res/lottie-bee.png b/test/res/lottie-bee.png index 3fdc19a99dd727d13647e9bda65d547daee86775..4586cb50ebc6aa34f4d1acc222322bff7f4ff617 100644 GIT binary patch literal 5510 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