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 4abf45d8..986a299c 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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

SlsXv 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 delta 184 zcmbQ=ue#%r+=l!7jJum3@V7tUX9Qv3DX=K8y74kIJ1{vYuxK$cDDf%q z#=G(|fH*8l%nH15V2%b8hY~AGtpck8uL9p>1!e`l>HANzC``{h%;L<(Jz0rcfqVO= d!z^#&8Fx&dugp5T-CBheh}pJVtFSZn0s#6BG4lWb diff --git a/test/res/lottie-bee.png b/test/res/lottie-bee.png index 3fdc19a99dd727d13647e9bda65d547daee86775..4586cb50ebc6aa34f4d1acc222322bff7f4ff617 100644 GIT binary patch delta 5363 zcmV`zEO*mn2J;Z0*9fma;5EfUsrE zK%f~2A%p=2#)JvoArlfh>CW^VIztalpXqd9(w**XBw;lNG9d#bKy2AY*w$`&k*o#V z+ANji(pG!bd-qN`#~Bo1%Lh83;-M5;p)^Y~QLK+7+0W*nsY#RKljSuz`$QkPEH1Jf%yIYdPPxQ(lqT$9UUF7;f(U~@@`dC zx8gmA0dTA^1cSPA>$RsYyW=iTUP&3lGK5Z@;)7l7`tkNQ9tq8V?FvpzZ0qamJBbgW zva&MI?RM|gb^UW49UU!Lq@tqYKM~P?0Whv<+SdjL2j9gRn>KB_hB5YeBHAc~n9_B< zH5!eU0La&M{i*)`{-pW?1a?XFz-rjx--ZNBHRh3Od_#GnJ3}7!l=2RGeP;YPVP+n279uG&j)#+gP z05WoO*){h)U~2t8FKq#%&gPvv8vtlnCPh)Uan84I+3f$C({9?p7!?aHd_)uy5F?3{ z=#Rv-w>mmHb^zc=^Lo863L#!>Z*Tucyx&^@Zbq6ALeq7<2?n6TppvoJzTqR?SClti zf)7ezjBUAp<+G}4QY#rz_nsX))&me&n&r|<8op*y*?-P(sG+T!T=um-v)Subkm*(s zjd29$^_q!U4ZFI-_qrTgm`ZqaCY(A1AlBB__K!G=>FMdav$C>|04UaV{bvIM1KltH zfn}Q|meR+Fw zu(kEIea(A5gL7zTX!xwtsyuO3ozr>8)gD`ZmYLx^VoA=Mxg4$Ncqe|Jdc|dp+e`B;4?eyvH|zS%Zi~yN z5SGED5S0~Jm76d1Ad#ZV(P`Z0_GG;_IXM}`3P3QJy1Kfn-CpnG9~g34-t1q;kg1^Aoa|6XG7@S(!t;o%vim6n#e z3-hzz{Nx5l)n9%#$H5pedpk0)bsK9`Pfj+ShVyV{WKdC6HPv79Day#sM)!_4S>L{9?p;$PY)%(Ln$_Wd zBrTahZ2DBy$nfxs0F;f@W$)a2x#yw>Z_05{8a||g95dToZZkJ^M{f3HX8(F(Vj=(o zQ(yp9RaHe5>(?LNa>I?~H+=EW)x5Rq6vi0g1M=qQQ_YoE3A4q5<`-X}cr2>>)|N1& zdGiZt=wSCcGou&RSC;&bE!B=sK6Fcejsq8v*P~KJq1pUSZ~P`jwftyiW+nlHQeXfZ z{Qkawch@}`jn{wLq$mpE0w92VMa8Vl?-z&n>|)0{JNcTLTA`X$C7DcMW@MMy3+{z+hYqPbP(`Lb&Y; zVHpk{i}7zhH6h+U6hY5O5F@hD6}%1ark(QKlzIwf*}nxB{swo94B5&p}fG% zw_Tfw!W;|3IrNRh`QJT1iErKILq(yLAuXEV{Odm)r^`1uoxf@m-vO`%2BhF)&f##3 z5a(Z7fB7ew$!sQkL?~_D#v0Mrx}P0y*@M5iErYV$Dj{vp!7%^37pCxk;7wk9<(3>= zvC+w{sdLfIpKyz0N}yvP4u6@Qa1Mu0#KfOn>_$bQmCZ+W-ZzpEUXO~)HaOwSP-*|s zn8WJuzA-T|5rDxc_?VlXo}SOi$tetuk8h}K+``fb9}%V~l;O+O`}e%T9=IW!A#Gwt z=IgyLKadEF}g;Meooldo~S*fgQM zuxnNn`%KtUswe58n(^ zc6JU;Pft^6S-ChoWM_`0-;L zACb}S7P_R;L^#8w63fk08PeWppXV<%N14-=K}gFlEW;DOHu0XJ7{_@$-!zAKJkACO z2N}|8YHD!befQyiyT6>qx?D4aVEI0u&jEvBFp#(3e*4aW&W`(Ec&sv+C*EGNK^I!ew8(&X`sB`VZyhroY?z`s-Jg`8UzV%P&{+OUpq3!v_?N#Ne`JGb}P4(y>@` zb2Dzc?KYf$)^j2TU#$yglhScE?4gGq!fCN2hcCmV0v}^bI!wmFc=jpKp+r^1OkCa0X$k!QIS77 zF!0Ecx0~*?+ifbTW}fBqkzlGPS0#cd~?i^IxTMS+?3kEO7f5Q0~&G2_KOoDE0>OwQ?;4rz$aahOd6i<#l4ozr?K%2}F%G(}Os2>SF~3cd^# z3wd2C%g<8z$!U$@eFQHrv|%aRuFb?>{%8`5`O9oroo!*kc}Rgn#g-Mcjdk3N42i*2s3 zAvaTHSVCi!lYRcm1b?n+j^PZii}7!KZWTf?ormK(_4M>iz+hCYAgi*RzcQOxc1?+$ zVHwutnbF!8$3oErXU&Jh_{?P<{2mT|)rg0;*%Npp8e%xZ>tg(?pUK8@+<(27)w^wf zTI-HD%T!fddy|7_Whm;7t`Ik=v;zjDVujeWY13`Gpo`|Bf=$k8e3eIKIFHgiGZqs< zpl>vRSdw#_nK7Kfj}Z82K^EnBRE7n{P9<>HKMdooju0OUCVA6=Fn{Ek zNu+dv)7WZ`-yyHS z7-!El%~CYMInJOwfyF3KV6oNN7WPkH%tLE`6yJI}fPKADJa&%{UYE*{M#X^g37s>) z&e=weAHE)p=(_m((b3Tu3`oTaU^S~>N~ECRjFzKO%tv+Zwkr(hap^^NY~MYPg@}mh z9NM!xX6U}_yf}@O3nl`b^8*ZjfPk`5fRziJO@5Y{ee-r7&Vez%z-cD}3BKo0H2L=4 z)+b?53B6)oWTXLw>m>uj!!qbAcWvpBpl=H|L&ismfkSO8OmjxnI1^N z^hF))lbiuy_<*7b&L954L^u>p-3=fCgJLi^hlSmG^Cg~)H900M^m6lmJkmJMW6dfH z+frr6VnoDd!a5$?ehOp3B**V4#Gr!VLl8pn|NgT;WIm$(Yez@N>o70|gR@$c#?pK< zt0}Q!p|MjM+t(Aua@=`!2F`}1aSr{zes3K8BXN!kAdwRMtKT1w92tu3-rd~#4Hz7Q z!6kK6tj)8avBHkUe*DIN4AMBxW5Ze-yJDlA<1FT)+*G{E%>U}C3G6u-*6<-r&T0G$ z|1=Wr9ZLM9X?M$wSOFM}jdWc&+;)XERM=rsz_CF8Sc>gA7{+pZ@rEpzRB)U{Yky3= z?Q#!)Zs!bp_y;HX@MMDH50FR+{=;7d<9GkV@Z9Kh>Y=8$_kS6GD}(}rD_T?V*LPi$ zX;KxUp~<8;HjyGM&^MY8e|E83D2xb8aM~2oxey25jT6q|(D69FeSbc8I}|*=eTq5< zV?uCJdk2oB%T8M=1(T@uU{^}RkcoZ4#d!O zAS}N3YLFC#xZ6e|!>Po>F%dg8uPdRbZnl`w6N>R4L?ZE*4;?x*gB3`H!KsRf%tg5) z!=a$Q%+AX4&3xcwl3{^ocFf|MItO2~%EGV&RU!7*x99MGFFY~Eg&>ASjt4aMKVO*S z-?}Ro4Hb6QP+`YuCjv?B{wGGmJwwsE8DnFqRBH6#!Gn{KpupftiVHTc^_i>J=2-}7 zZaaxx2cv`qgaGxNNQmniU4ju2mf&@(1V9{kH%>TB+pPLMgO(wtI z*52{_cv>KT5QsqfEd>VW&B+s7VC&U&E-TWCd}gt)Cn|y=ov=VKq*FA(#pVh-;XG>A zSw+uqT#N-Z!dVJrYaF~#mlVPH%IZX_VB?${qTJzzE_{2pvk?B$i zOR$(2ZK<-0-*kpWA|(j#N8QI_@o=2q*wxk53F)j9tN<3Pv-#wV@)uXvxhyUlBc%Du zY@(@uJ1jy`PFO(WpuIg&ado{@*e#5(1h-uwf2mdM><){R2Eqa^8%1NW)cvh(9j`(< zCj~3O+O=!Tb%8rtjz;WTH@RU}iByHCw!|vl=m-l<2VsF|LQqR@R9sQx5H>R-EFs&Y zQbUyAvA;J?TN_-$ zq!4AfRH`a8iyd7NAp{5u%tkov?}>^lYMjDmW`repJt|#QW7iKJkMp^3DmWKTUft2r z)dcCh6c}7_aq-U+iA0&M>!y^Zvv7>_o!v32FSUwHmrD6wGgTIt#Gbq%xn2m6M zYB~@Wn=5Q0!>JO^;oz|t|8GAFgr?^7-Ls+O)&mC)9D}qh3JlEe_g_y$e-V$z?UaVJ zl%}(pP*QK|P9U7nwe`hTD$cdA%@sD$+7}g(xF9SLi3@t8BP`bBsG`VcA-soo4MxSc zUp_VeeACSM)SP~M^WN6SCMG7Lkd}>qU|ApOAz z231>ITV^tuTEgM5n}}E%H=E5NRaIl0^M~5o+h0IhQBjdKCnx9DOqcqlcv4hrp5$qdDfII#U%Aj39I_be$8ondn43rN0o4CZFo=?jD2mp%4tp@AqE^;8{)6>?V^b zOhhw6h`()bZ+{j5$2rv1)#WqBE@F&j3L$hMga#nWIX}|X)pZim1w}BZ>gsBz-EMyb zKup*5SGu~o+964jBuSDaNs=Uy${Bwb3_&^<^85X6v)P=%Irk`v;t)dE0N98~B_f4$ zt`HF?q9o@$NkmD`d6I~dobv=@Y%ZBh&USQk%mWaR-iILlR%vOeB`YhdL{-&dBFY8e z1EAu<&;SGgjBA>9A{Y!F8yp-=KmuWf^ZWgIX0!PdilS5qAsGG$h=`{h)pdWpxuvBg zfE7%^3f9=zSY@$TK2Joe01*CoC@qJG>U=)mtY8EQe!oA@WHQw-#>$8&10Ss!&iR0*Y29sYZ4+4G z2-5HI`~4n^#gfZ8&s7v9i*rYwK|~n<>_o({3`CR^LL@lnb3%w&0MnYLO$Z?-IyyS$ zApL&?Y1yi)tIf7F#+aH&Bovd$q%g)rJRVOFQPN~GB|ADgQjn3cFc=Kr{{cxGETnHy Rp?UxS002ovPDHLkV1g$tP<;RZ delta 5337 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