From 39b5c5bc4242e31eb2244589138f0f17542e5814 Mon Sep 17 00:00:00 2001 From: Preston Tamkin Date: Sun, 2 Jun 2019 14:35:24 -0700 Subject: [PATCH] Modularize emscripten build. By default, emscripten's generated javascript modules lives in the global object "Module'. This makes it impossible to load multiple emscripten modules on the same page. In attempt to avoid namespace collision, this change modularizes the emscripten build so the Module is instead called 'BASIS'. Many target applications for Basis are likely to already be using other emscripten modules. Testing: The existing webgl/(texture|gltf) pages have been updated to use the new name and seem to operate as before --- webgl/gltf/index.html | 4 ++-- webgl/texture/index.html | 4 ++-- webgl/transcoder/CMakeLists.txt | 2 +- webgl/transcoder/build/basis_transcoder.js | 22 ++++++++++++++++++- webgl/transcoder/build/basis_transcoder.wasm | Bin 217809 -> 219388 bytes 5 files changed, 26 insertions(+), 6 deletions(-) diff --git a/webgl/gltf/index.html b/webgl/gltf/index.html index e9756dbea0..91e2bf6246 100644 --- a/webgl/gltf/index.html +++ b/webgl/gltf/index.html @@ -15,7 +15,7 @@ diff --git a/webgl/transcoder/CMakeLists.txt b/webgl/transcoder/CMakeLists.txt index 945be6f94e..a3dd12dac8 100644 --- a/webgl/transcoder/CMakeLists.txt +++ b/webgl/transcoder/CMakeLists.txt @@ -17,5 +17,5 @@ if (EMSCRIPTEN) set_target_properties(basis_transcoder.js PROPERTIES OUTPUT_NAME "basis_transcoder" SUFFIX ".js" - LINK_FLAGS "--bind -s ALLOW_MEMORY_GROWTH=1 -O3 -s ASSERTIONS=0 -s MALLOC=emmalloc") + LINK_FLAGS "--bind -s ALLOW_MEMORY_GROWTH=1 -O3 -s ASSERTIONS=0 -s MALLOC=emmalloc -s MODULARIZE=1 -s EXPORT_NAME=BASIS ") endif() diff --git a/webgl/transcoder/build/basis_transcoder.js b/webgl/transcoder/build/basis_transcoder.js index ab1dc890ac..89d9529312 100644 --- a/webgl/transcoder/build/basis_transcoder.js +++ b/webgl/transcoder/build/basis_transcoder.js @@ -1 +1,21 @@ -var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}Module["arguments"]=[];Module["thisProgram"]="./this.program";Module["quit"]=function(status,toThrow){throw toThrow};Module["preRun"]=[];Module["postRun"]=[];var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof require==="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}else{return scriptDirectory+path}}if(ENVIRONMENT_IS_NODE){scriptDirectory=__dirname+"/";var nodeFS;var nodePath;Module["read"]=function shell_read(filename,binary){var ret;if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);ret=nodeFS["readFileSync"](filename);return binary?ret:ret.toString()};Module["readBinary"]=function readBinary(filename){var ret=Module["read"](filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){Module["thisProgram"]=process["argv"][1].replace(/\\/g,"/")}Module["arguments"]=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);Module["quit"]=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){Module["read"]=function shell_read(f){return read(f)}}Module["readBinary"]=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){Module["arguments"]=scriptArgs}else if(typeof arguments!="undefined"){Module["arguments"]=arguments}if(typeof quit==="function"){Module["quit"]=function(status){quit(status)}}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}Module["read"]=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){Module["readBinary"]=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}Module["readAsync"]=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)};Module["setWindowTitle"]=function(title){document.title=title}}else{}var out=Module["print"]||(typeof console!=="undefined"?console.log.bind(console):typeof print!=="undefined"?print:null);var err=Module["printErr"]||(typeof printErr!=="undefined"?printErr:typeof console!=="undefined"&&console.warn.bind(console)||out);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=undefined;var asm2wasmImports={"f64-rem":function(x,y){return x%y},"debugger":function(){debugger}};var functionPointers=new Array(0);var tempRet0=0;var setTempRet0=function(value){tempRet0=value};if(typeof WebAssembly!=="object"){err("no native wasm support detected")}var wasmMemory;var wasmTable;var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(u8Array,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(u8Array[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,outU8Array,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;outU8Array[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;outU8Array[outIdx++]=192|u>>6;outU8Array[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;outU8Array[outIdx++]=224|u>>12;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;outU8Array[outIdx++]=240|u>>18;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}}outU8Array[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var UTF16Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;var WASM_PAGE_SIZE=65536;function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferViews(){Module["HEAP8"]=HEAP8=new Int8Array(buffer);Module["HEAP16"]=HEAP16=new Int16Array(buffer);Module["HEAP32"]=HEAP32=new Int32Array(buffer);Module["HEAPU8"]=HEAPU8=new Uint8Array(buffer);Module["HEAPU16"]=HEAPU16=new Uint16Array(buffer);Module["HEAPU32"]=HEAPU32=new Uint32Array(buffer);Module["HEAPF32"]=HEAPF32=new Float32Array(buffer);Module["HEAPF64"]=HEAPF64=new Float64Array(buffer)}var DYNAMIC_BASE=5401280,DYNAMICTOP_PTR=158368;var TOTAL_STACK=5242880;var INITIAL_TOTAL_MEMORY=Module["TOTAL_MEMORY"]||16777216;if(INITIAL_TOTAL_MEMORY>2]=DYNAMIC_BASE;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Module["dynCall_v"](func)}else{Module["dynCall_vi"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){if(runtimeInitialized)return;runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}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 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()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return String.prototype.startsWith?filename.startsWith(dataURIPrefix):filename.indexOf(dataURIPrefix)===0}var wasmBinaryFile="basis_transcoder.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(Module["wasmBinary"]){return new Uint8Array(Module["wasmBinary"])}if(Module["readBinary"]){return Module["readBinary"](wasmBinaryFile)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!Module["wasmBinary"]&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(env){var info={"env":env,"global":{"NaN":NaN,Infinity:Infinity},"global.Math":Math,"asm2wasm":asm2wasmImports};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");if(Module["instantiateWasm"]){try{return Module["instantiateWasm"](info,receiveInstance)}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}function receiveInstantiatedSource(output){receiveInstance(output["instance"])}function instantiateArrayBuffer(receiver){getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}if(!Module["wasmBinary"]&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&typeof fetch==="function"){WebAssembly.instantiateStreaming(fetch(wasmBinaryFile,{credentials:"same-origin"}),info).then(receiveInstantiatedSource,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");instantiateArrayBuffer(receiveInstantiatedSource)})}else{instantiateArrayBuffer(receiveInstantiatedSource)}return{}}Module["asm"]=function(global,env,providedBuffer){env["memory"]=wasmMemory;env["table"]=wasmTable=new WebAssembly.Table({"initial":70,"maximum":70,"element":"anyfunc"});env["__memory_base"]=1024;env["__table_base"]=0;var exports=createWasm(env);return exports};__ATINIT__.push({func:function(){globalCtors()}});function ___cxa_allocate_exception(size){return _malloc(size)}function __ZSt18uncaught_exceptionv(){return!!__ZSt18uncaught_exceptionv.uncaught_exception}function ___cxa_free_exception(ptr){try{return _free(ptr)}catch(e){}}var EXCEPTIONS={last:0,caught:[],infos:{},deAdjust:function(adjusted){if(!adjusted||EXCEPTIONS.infos[adjusted])return adjusted;for(var key in EXCEPTIONS.infos){var ptr=+key;var adj=EXCEPTIONS.infos[ptr].adjusted;var len=adj.length;for(var i=0;i0);info.refcount--;if(info.refcount===0&&!info.rethrown){if(info.destructor){Module["dynCall_vi"](info.destructor,ptr)}delete EXCEPTIONS.infos[ptr];___cxa_free_exception(ptr)}},clearRef:function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount=0}};function ___cxa_throw(ptr,type,destructor){EXCEPTIONS.infos[ptr]={ptr:ptr,adjusted:[ptr],type:type,destructor:destructor,refcount:0,caught:false,rethrown:false};EXCEPTIONS.last=ptr;if(!("uncaught_exception"in __ZSt18uncaught_exceptionv)){__ZSt18uncaught_exceptionv.uncaught_exception=1}else{__ZSt18uncaught_exceptionv.uncaught_exception++}throw ptr}var SYSCALLS={buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:0,get:function(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(){var ret=UTF8ToString(SYSCALLS.get());return ret},get64:function(){var low=SYSCALLS.get(),high=SYSCALLS.get();return low},getZero:function(){SYSCALLS.get()}};function ___syscall140(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),offset_high=SYSCALLS.get(),offset_low=SYSCALLS.get(),result=SYSCALLS.get(),whence=SYSCALLS.get();return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall146(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.get(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j=char_0&&f<=char_9){return"_"+name}else{return name}}function createNamedFunction(name,body){name=makeLegalFunctionName(name);return new Function("body","return function "+name+"() {\n"+' "use strict";'+" return body.apply(this, arguments);\n"+"};\n")(body)}function 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 BindingError=undefined;function throwBindingError(message){throw new BindingError(message)}var InternalError=undefined;function throwInternalError(message){throw new InternalError(message)}function 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>shift])},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}function shallowCopyInternalPointer(o){return{count:o.count,deleteScheduled:o.deleteScheduled,preservePointerOnDelete:o.preservePointerOnDelete,ptr:o.ptr,ptrType:o.ptrType,smartPtr:o.smartPtr,smartPtrType:o.smartPtrType}}function throwInstanceAlreadyDeleted(obj){function getInstanceTypeName(handle){return handle.$$.ptrType.registeredClass.name}throwBindingError(getInstanceTypeName(obj)+" instance already deleted")}function ClassHandle_clone(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.preservePointerOnDelete){this.$$.count.value+=1;return this}else{var clone=Object.create(Object.getPrototypeOf(this),{$$:{value:shallowCopyInternalPointer(this.$$)}});clone.$$.count.value+=1;clone.$$.deleteScheduled=false;return clone}}function runDestructor(handle){var $$=handle.$$;if($$.smartPtr){$$.smartPtrType.rawDestructor($$.smartPtr)}else{$$.ptrType.registeredClass.rawDestructor($$.ptr)}}function ClassHandle_delete(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion")}this.$$.count.value-=1;var toDelete=0===this.$$.count.value;if(toDelete){runDestructor(this)}if(!this.$$.preservePointerOnDelete){this.$$.smartPtr=undefined;this.$$.ptr=undefined}}function ClassHandle_isDeleted(){return!this.$$.ptr}var delayFunction=undefined;var deletionQueue=[];function flushPendingDeletes(){while(deletionQueue.length){var obj=deletionQueue.pop();obj.$$.deleteScheduled=false;obj["delete"]()}}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}function init_ClassHandle(){ClassHandle.prototype["isAliasOf"]=ClassHandle_isAliasOf;ClassHandle.prototype["clone"]=ClassHandle_clone;ClassHandle.prototype["delete"]=ClassHandle_delete;ClassHandle.prototype["isDeleted"]=ClassHandle_isDeleted;ClassHandle.prototype["deleteLater"]=ClassHandle_deleteLater}function ClassHandle(){}var registeredPointers={};function 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}}function 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=[]}function 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 "'+_embind_repr(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 "'+_embind_repr(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_register(function(){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 "'+_embind_repr(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 simpleReadValueFromPointer(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)}}function RegisteredPointer_deleteObject(handle){if(handle!==null){handle["delete"]()}}function 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)}function getInheritedInstanceCount(){return Object.keys(registeredInstances).length}function getLiveInheritedInstances(){var rv=[];for(var k in registeredInstances){if(registeredInstances.hasOwnProperty(k)){rv.push(registeredInstances[k])}}return rv}function setDelayFunction(fn){delayFunction=fn;if(deletionQueue.length&&delayFunction){delayFunction(flushPendingDeletes)}}function init_embind(){Module["getInheritedInstanceCount"]=getInheritedInstanceCount;Module["getLiveInheritedInstances"]=getLiveInheritedInstances;Module["flushPendingDeletes"]=flushPendingDeletes;Module["setDelayFunction"]=setDelayFunction}var registeredInstances={};function getBasestPointer(class_,ptr){if(ptr===undefined){throwBindingError("ptr should not be undefined")}while(class_.baseClass){ptr=class_.upcast(ptr);class_=class_.baseClass}return ptr}function getInheritedInstance(class_,ptr){ptr=getBasestPointer(class_,ptr);return registeredInstances[ptr]}function 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 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})}}function init_RegisteredPointer(){RegisteredPointer.prototype.getPointee=RegisteredPointer_getPointee;RegisteredPointer.prototype.destructor=RegisteredPointer_destructor;RegisteredPointer.prototype["argPackAdvance"]=8;RegisteredPointer.prototype["readValueFromPointer"]=simpleReadValueFromPointer;RegisteredPointer.prototype["deleteObject"]=RegisteredPointer_deleteObject;RegisteredPointer.prototype["fromWireType"]=RegisteredPointer_fromWireType}function RegisteredPointer(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}}function 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}}function embind__requireFunction(signature,rawFunction){signature=readLatin1String(signature);function makeDynCaller(dynCall){var args=[];for(var i=1;i>2)+i])}return array}function runDestructors(destructors){while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}}function __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]=function unboundTypeHandler(){throwUnboundTypeError("Cannot construct "+classType.name+" due to unbound types",rawArgTypes)};whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){classType.registeredClass.constructor_body[argCount-1]=function constructor_body(){if(arguments.length!==argCount-1){throwBindingError(humanName+" called with "+arguments.length+" arguments, expected "+(argCount-1))}var destructors=[];var args=new Array(argCount);args[0]=rawConstructor;for(var i=1;i0?", ":"")+argsListWired}invokerFnBody+=(returns?"var rv = ":"")+"invoker(fn"+(argsListWired.length>0?", ":"")+argsListWired+");\n";if(needsDestructorStack){invokerFnBody+="runDestructors(destructors);\n"}else{for(var i=isClassMethodFunc?1:2;i4&&0===--emval_handle_array[handle].refcount){emval_handle_array[handle]=undefined;emval_free_list.push(handle)}}function count_emval_handles(){var count=0;for(var i=5;i>2])};case 3:return function(pointer){return this["fromWireType"](HEAPF64[pointer>>3])};default:throw new TypeError("Unknown float type: "+name)}}function __embind_register_float(rawType,name,size){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(value){return value},"toWireType":function(destructors,value){if(typeof value!=="number"&&typeof value!=="boolean"){throw new TypeError('Cannot convert "'+_embind_repr(value)+'" to '+this.name)}return value},"argPackAdvance":8,"readValueFromPointer":floatReadValueFromPointer(name,shift),destructorFunction:null})}function __embind_register_function(name,argCount,rawArgTypesAddr,signature,rawInvoker,fn){var argTypes=heap32VectorToArray(argCount,rawArgTypesAddr);name=readLatin1String(name);rawInvoker=embind__requireFunction(signature,rawInvoker);exposePublicSymbol(name,function(){throwUnboundTypeError("Cannot call "+name+" due to unbound types",argTypes)},argCount-1);whenDependentTypesAreResolved([],argTypes,function(argTypes){var invokerArgsArray=[argTypes[0],null].concat(argTypes.slice(1));replacePublicSymbol(name,craftInvokerFunction(name,invokerArgsArray,null,rawInvoker,fn),argCount-1);return[]})}function integerReadValueFromPointer(name,shift,signed){switch(shift){case 0:return signed?function readS8FromPointer(pointer){return HEAP8[pointer]}:function readU8FromPointer(pointer){return HEAPU8[pointer]};case 1:return signed?function readS16FromPointer(pointer){return HEAP16[pointer>>1]}:function readU16FromPointer(pointer){return HEAPU16[pointer>>1]};case 2:return signed?function readS32FromPointer(pointer){return HEAP32[pointer>>2]}:function readU32FromPointer(pointer){return HEAPU32[pointer>>2]};default:throw new TypeError("Unknown integer type: "+name)}}function __embind_register_integer(primitiveType,name,size,minRange,maxRange){name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var shift=getShiftFromSize(size);var fromWireType=function(value){return value};if(minRange===0){var bitshift=32-8*size;fromWireType=function(value){return value<>>bitshift}}var isUnsignedType=name.indexOf("unsigned")!=-1;registerType(primitiveType,{name:name,"fromWireType":fromWireType,"toWireType":function(destructors,value){if(typeof value!=="number"&&typeof value!=="boolean"){throw new TypeError('Cannot convert "'+_embind_repr(value)+'" to '+this.name)}if(valuemaxRange){throw new TypeError('Passing a number "'+_embind_repr(value)+'" from JS side to C/C++ side to an argument of type "'+name+'", which is outside the valid range ['+minRange+", "+maxRange+"]!")}return isUnsignedType?value>>>0:value|0},"argPackAdvance":8,"readValueFromPointer":integerReadValueFromPointer(name,shift,minRange!==0),destructorFunction:null})}function __embind_register_memory_view(rawType,dataTypeIndex,name){var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){handle=handle>>2;var heap=HEAPU32;var size=heap[handle];var data=heap[handle+1];return new TA(heap["buffer"],data,size)}name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":decodeMemoryView,"argPackAdvance":8,"readValueFromPointer":decodeMemoryView},{ignoreDuplicateRegistrations:true})}function __embind_register_std_string(rawType,name){name=readLatin1String(name);var stdStringIsUTF8=name==="std::string";registerType(rawType,{name:name,"fromWireType":function(value){var length=HEAPU32[value>>2];var str;if(stdStringIsUTF8){var endChar=HEAPU8[value+4+length];var endCharSwap=0;if(endChar!=0){endCharSwap=endChar;HEAPU8[value+4+length]=0}var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i;if(HEAPU8[currentBytePtr]==0){var stringSegment=UTF8ToString(decodeStartPtr);if(str===undefined)str=stringSegment;else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+1}}if(endCharSwap!=0)HEAPU8[value+4+length]=endCharSwap}else{var a=new Array(length);for(var i=0;i>2]=length;if(stdStringIsUTF8&&valueIsOfTypeString){stringToUTF8(value,ptr+4,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+4+i]=charCode}}else{for(var i=0;i>2];var a=new Array(length);var start=value+4>>shift;for(var i=0;i>2]=length;var start=ptr+4>>shift;for(var i=0;i>2]=rd;return returnType["toWireType"](destructors,handle)}var emval_symbols={};function getStringOrSymbol(address){var symbol=emval_symbols[address];if(symbol===undefined){return readLatin1String(address)}else{return symbol}}var emval_methodCallers=[];function __emval_call_void_method(caller,handle,methodName,args){caller=emval_methodCallers[caller];handle=requireHandle(handle);methodName=getStringOrSymbol(methodName);caller(handle,methodName,null,args)}function emval_get_global(){return function(){return Function}()("return this")()}function __emval_get_global(name){if(name===0){return __emval_register(emval_get_global())}else{name=getStringOrSymbol(name);return __emval_register(emval_get_global()[name])}}function __emval_addMethodCaller(caller){var id=emval_methodCallers.length;emval_methodCallers.push(caller);return id}function __emval_lookupTypes(argCount,argTypes,argWireTypes){var a=new Array(argCount);for(var i=0;i>2)+i],"parameter "+i)}return a}function __emval_get_method_caller(argCount,argTypes){var types=__emval_lookupTypes(argCount,argTypes);var retType=types[0];var signatureName=retType.name+"_$"+types.slice(1).map(function(t){return t.name}).join("_")+"$";var params=["retType"];var args=[retType];var argsList="";for(var i=0;i4){emval_handle_array[handle].refcount+=1}}function craftEmvalAllocator(argCount){var argsList="";for(var i=0;i> 2) + "+i+'], "parameter '+i+'");\n'+"var arg"+i+" = argType"+i+".readValueFromPointer(args);\n"+"args += argType"+i+"['argPackAdvance'];\n"}functionBody+="var obj = new constructor("+argsList+");\n"+"return __emval_register(obj);\n"+"}\n";return new Function("requireRegisteredType","Module","__emval_register",functionBody)(requireRegisteredType,Module,__emval_register)}var emval_newers={};function __emval_new(handle,argCount,argTypes,args){handle=requireHandle(handle);var newer=emval_newers[argCount];if(!newer){newer=craftEmvalAllocator(argCount);emval_newers[argCount]=newer}return newer(handle,argTypes,args)}function __emval_new_cstring(v){return __emval_register(getStringOrSymbol(v))}function __emval_run_destructors(handle){var destructors=emval_handle_array[handle].value;runDestructors(destructors);__emval_decref(handle)}function _abort(){Module["abort"]()}function _emscripten_get_heap_size(){return HEAP8.length}function abortOnCannotGrowMemory(requestedSize){abort("OOM")}function emscripten_realloc_buffer(size){var PAGE_MULTIPLE=65536;size=alignUp(size,PAGE_MULTIPLE);var oldSize=buffer.byteLength;try{var result=wasmMemory.grow((size-oldSize)/65536);if(result!==(-1|0)){buffer=wasmMemory.buffer;return true}else{return false}}catch(e){return false}}function _emscripten_resize_heap(requestedSize){var oldSize=_emscripten_get_heap_size();var PAGE_MULTIPLE=65536;var LIMIT=2147483648-PAGE_MULTIPLE;if(requestedSize>LIMIT){return false}var MIN_TOTAL_MEMORY=16777216;var newSize=Math.max(oldSize,MIN_TOTAL_MEMORY);while(newSize>2]=value;return value}embind_init_charCodes();BindingError=Module["BindingError"]=extendError(Error,"BindingError");InternalError=Module["InternalError"]=extendError(Error,"InternalError");init_ClassHandle();init_RegisteredPointer();init_embind();UnboundTypeError=Module["UnboundTypeError"]=extendError(Error,"UnboundTypeError");init_emval();var asmGlobalArg={};var asmLibraryArg={"d":abort,"B":setTempRet0,"i":___cxa_allocate_exception,"h":___cxa_throw,"n":___setErrNo,"A":___syscall140,"m":___syscall146,"z":___syscall6,"y":__embind_register_bool,"x":__embind_register_class,"w":__embind_register_class_constructor,"g":__embind_register_class_function,"K":__embind_register_emval,"v":__embind_register_float,"J":__embind_register_function,"f":__embind_register_integer,"c":__embind_register_memory_view,"u":__embind_register_std_string,"I":__embind_register_std_wstring,"H":__embind_register_void,"t":__emval_as,"s":__emval_call_void_method,"b":__emval_decref,"G":__emval_get_global,"r":__emval_get_method_caller,"q":__emval_get_module_property,"k":__emval_get_property,"l":__emval_incref,"p":__emval_new,"j":__emval_new_cstring,"o":__emval_run_destructors,"e":_abort,"F":_emscripten_get_heap_size,"E":_emscripten_memcpy_big,"D":_emscripten_resize_heap,"C":abortOnCannotGrowMemory,"a":DYNAMICTOP_PTR};var asm=Module["asm"](asmGlobalArg,asmLibraryArg,buffer);Module["asm"]=asm;var ___errno_location=Module["___errno_location"]=function(){return Module["asm"]["L"].apply(null,arguments)};var ___getTypeName=Module["___getTypeName"]=function(){return Module["asm"]["M"].apply(null,arguments)};var _free=Module["_free"]=function(){return Module["asm"]["N"].apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return Module["asm"]["O"].apply(null,arguments)};var globalCtors=Module["globalCtors"]=function(){return Module["asm"]["ca"].apply(null,arguments)};var dynCall_ii=Module["dynCall_ii"]=function(){return Module["asm"]["P"].apply(null,arguments)};var dynCall_iidiiii=Module["dynCall_iidiiii"]=function(){return Module["asm"]["Q"].apply(null,arguments)};var dynCall_iii=Module["dynCall_iii"]=function(){return Module["asm"]["R"].apply(null,arguments)};var dynCall_iiii=Module["dynCall_iiii"]=function(){return Module["asm"]["S"].apply(null,arguments)};var dynCall_iiiii=Module["dynCall_iiiii"]=function(){return Module["asm"]["T"].apply(null,arguments)};var dynCall_iiiiii=Module["dynCall_iiiiii"]=function(){return Module["asm"]["U"].apply(null,arguments)};var dynCall_iiiiiiii=Module["dynCall_iiiiiiii"]=function(){return Module["asm"]["V"].apply(null,arguments)};var dynCall_iiiiiiiii=Module["dynCall_iiiiiiiii"]=function(){return Module["asm"]["W"].apply(null,arguments)};var dynCall_jiji=Module["dynCall_jiji"]=function(){return Module["asm"]["X"].apply(null,arguments)};var dynCall_v=Module["dynCall_v"]=function(){return Module["asm"]["Y"].apply(null,arguments)};var dynCall_vi=Module["dynCall_vi"]=function(){return Module["asm"]["Z"].apply(null,arguments)};var dynCall_vii=Module["dynCall_vii"]=function(){return Module["asm"]["_"].apply(null,arguments)};var dynCall_viiii=Module["dynCall_viiii"]=function(){return Module["asm"]["$"].apply(null,arguments)};var dynCall_viiiii=Module["dynCall_viiiii"]=function(){return Module["asm"]["aa"].apply(null,arguments)};var dynCall_viiiiii=Module["dynCall_viiiiii"]=function(){return Module["asm"]["ba"].apply(null,arguments)};Module["asm"]=asm;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}ExitStatus.prototype=new Error;ExitStatus.prototype.constructor=ExitStatus;dependenciesFulfilled=function runCaller(){if(!Module["calledRun"])run();if(!Module["calledRun"])dependenciesFulfilled=runCaller};function run(args){args=args||Module["arguments"];if(runDependencies>0){return}preRun();if(runDependencies>0)return;if(Module["calledRun"])return;function doRun(){if(Module["calledRun"])return;Module["calledRun"]=true;if(ABORT)return;ensureInitRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(what!==undefined){out(what);err(what);what=JSON.stringify(what)}else{what=""}ABORT=true;EXITSTATUS=1;throw"abort("+what+"). Build with -s ASSERTIONS=1 for more info."}Module["abort"]=abort;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}Module["noExitRuntime"]=true;run(); + +var BASIS = (function() { + var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined; + return ( +function(BASIS) { + BASIS = BASIS || {}; + +var Module=typeof BASIS!=="undefined"?BASIS:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}Module["arguments"]=[];Module["thisProgram"]="./this.program";Module["quit"]=function(status,toThrow){throw toThrow};Module["preRun"]=[];Module["postRun"]=[];var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_HAS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_HAS_NODE=typeof process==="object"&&typeof require==="function";ENVIRONMENT_IS_NODE=ENVIRONMENT_HAS_NODE&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}else{return scriptDirectory+path}}if(ENVIRONMENT_IS_NODE){scriptDirectory=__dirname+"/";var nodeFS;var nodePath;Module["read"]=function shell_read(filename,binary){var ret;if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);ret=nodeFS["readFileSync"](filename);return binary?ret:ret.toString()};Module["readBinary"]=function readBinary(filename){var ret=Module["read"](filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){Module["thisProgram"]=process["argv"][1].replace(/\\/g,"/")}Module["arguments"]=process["argv"].slice(2);process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);Module["quit"]=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){Module["read"]=function shell_read(f){return read(f)}}Module["readBinary"]=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){Module["arguments"]=scriptArgs}else if(typeof arguments!="undefined"){Module["arguments"]=arguments}if(typeof quit==="function"){Module["quit"]=function(status){quit(status)}}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}Module["read"]=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){Module["readBinary"]=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}Module["readAsync"]=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)};Module["setWindowTitle"]=function(title){document.title=title}}else{}var out=Module["print"]||(typeof console!=="undefined"?console.log.bind(console):typeof print!=="undefined"?print:null);var err=Module["printErr"]||(typeof printErr!=="undefined"?printErr:typeof console!=="undefined"&&console.warn.bind(console)||out);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=undefined;var asm2wasmImports={"f64-rem":function(x,y){return x%y},"debugger":function(){debugger}};var functionPointers=new Array(0);var tempRet0=0;var setTempRet0=function(value){tempRet0=value};if(typeof WebAssembly!=="object"){err("no native wasm support detected")}var wasmMemory;var wasmTable;var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(u8Array,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(u8Array[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,outU8Array,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;outU8Array[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;outU8Array[outIdx++]=192|u>>6;outU8Array[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;outU8Array[outIdx++]=224|u>>12;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;outU8Array[outIdx++]=240|u>>18;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}}outU8Array[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var UTF16Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;var WASM_PAGE_SIZE=65536;function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferViews(){Module["HEAP8"]=HEAP8=new Int8Array(buffer);Module["HEAP16"]=HEAP16=new Int16Array(buffer);Module["HEAP32"]=HEAP32=new Int32Array(buffer);Module["HEAPU8"]=HEAPU8=new Uint8Array(buffer);Module["HEAPU16"]=HEAPU16=new Uint16Array(buffer);Module["HEAPU32"]=HEAPU32=new Uint32Array(buffer);Module["HEAPF32"]=HEAPF32=new Float32Array(buffer);Module["HEAPF64"]=HEAPF64=new Float64Array(buffer)}var DYNAMIC_BASE=5401280,DYNAMICTOP_PTR=158368;var TOTAL_STACK=5242880;var INITIAL_TOTAL_MEMORY=Module["TOTAL_MEMORY"]||16777216;if(INITIAL_TOTAL_MEMORY>2]=DYNAMIC_BASE;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Module["dynCall_v"](func)}else{Module["dynCall_vi"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){if(runtimeInitialized)return;runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}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 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()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return String.prototype.startsWith?filename.startsWith(dataURIPrefix):filename.indexOf(dataURIPrefix)===0}var wasmBinaryFile="basis_transcoder.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(Module["wasmBinary"]){return new Uint8Array(Module["wasmBinary"])}if(Module["readBinary"]){return Module["readBinary"](wasmBinaryFile)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!Module["wasmBinary"]&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(env){var info={"env":env,"global":{"NaN":NaN,Infinity:Infinity},"global.Math":Math,"asm2wasm":asm2wasmImports};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiatedSource(output){receiveInstance(output["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!Module["wasmBinary"]&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&typeof fetch==="function"){return WebAssembly.instantiateStreaming(fetch(wasmBinaryFile,{credentials:"same-origin"}),info).then(receiveInstantiatedSource,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");instantiateArrayBuffer(receiveInstantiatedSource)})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module["instantiateWasm"]){try{return Module["instantiateWasm"](info,receiveInstance)}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}Module["asm"]=function(global,env,providedBuffer){env["memory"]=wasmMemory;env["table"]=wasmTable=new WebAssembly.Table({"initial":70,"maximum":70,"element":"anyfunc"});env["__memory_base"]=1024;env["__table_base"]=0;var exports=createWasm(env);return exports};__ATINIT__.push({func:function(){globalCtors()}});function ___cxa_allocate_exception(size){return _malloc(size)}function __ZSt18uncaught_exceptionv(){return!!__ZSt18uncaught_exceptionv.uncaught_exception}function ___cxa_free_exception(ptr){try{return _free(ptr)}catch(e){}}var EXCEPTIONS={last:0,caught:[],infos:{},deAdjust:function(adjusted){if(!adjusted||EXCEPTIONS.infos[adjusted])return adjusted;for(var key in EXCEPTIONS.infos){var ptr=+key;var adj=EXCEPTIONS.infos[ptr].adjusted;var len=adj.length;for(var i=0;i0);info.refcount--;if(info.refcount===0&&!info.rethrown){if(info.destructor){Module["dynCall_vi"](info.destructor,ptr)}delete EXCEPTIONS.infos[ptr];___cxa_free_exception(ptr)}},clearRef:function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount=0}};function ___cxa_throw(ptr,type,destructor){EXCEPTIONS.infos[ptr]={ptr:ptr,adjusted:[ptr],type:type,destructor:destructor,refcount:0,caught:false,rethrown:false};EXCEPTIONS.last=ptr;if(!("uncaught_exception"in __ZSt18uncaught_exceptionv)){__ZSt18uncaught_exceptionv.uncaught_exception=1}else{__ZSt18uncaught_exceptionv.uncaught_exception++}throw ptr}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};var SYSCALLS={buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:0,get:function(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(){var ret=UTF8ToString(SYSCALLS.get());return ret},get64:function(){var low=SYSCALLS.get(),high=SYSCALLS.get();return low},getZero:function(){SYSCALLS.get()}};function ___syscall140(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),offset_high=SYSCALLS.get(),offset_low=SYSCALLS.get(),result=SYSCALLS.get(),whence=SYSCALLS.get();return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall146(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.get(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j=char_0&&f<=char_9){return"_"+name}else{return name}}function createNamedFunction(name,body){name=makeLegalFunctionName(name);return new Function("body","return function "+name+"() {\n"+' "use strict";'+" return body.apply(this, arguments);\n"+"};\n")(body)}function 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 BindingError=undefined;function throwBindingError(message){throw new BindingError(message)}var InternalError=undefined;function throwInternalError(message){throw new InternalError(message)}function 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>shift])},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}function shallowCopyInternalPointer(o){return{count:o.count,deleteScheduled:o.deleteScheduled,preservePointerOnDelete:o.preservePointerOnDelete,ptr:o.ptr,ptrType:o.ptrType,smartPtr:o.smartPtr,smartPtrType:o.smartPtrType}}function throwInstanceAlreadyDeleted(obj){function getInstanceTypeName(handle){return handle.$$.ptrType.registeredClass.name}throwBindingError(getInstanceTypeName(obj)+" instance already deleted")}var finalizationGroup=false;function detachFinalizer(handle){}function runDestructor($$){if($$.smartPtr){$$.smartPtrType.rawDestructor($$.smartPtr)}else{$$.ptrType.registeredClass.rawDestructor($$.ptr)}}function releaseClassHandle($$){$$.count.value-=1;var toDelete=0===$$.count.value;if(toDelete){runDestructor($$)}}function attachFinalizer(handle){if("undefined"===typeof FinalizationGroup){attachFinalizer=function(handle){return handle};return handle}finalizationGroup=new FinalizationGroup(function(iter){for(var result=iter.next();!result.done;result=iter.next()){var $$=result.value;if(!$$.ptr){console.warn("object already deleted: "+$$.ptr)}else{releaseClassHandle($$)}}});attachFinalizer=function(handle){finalizationGroup.register(handle,handle.$$,handle.$$);return handle};detachFinalizer=function(handle){finalizationGroup.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}var delayFunction=undefined;var deletionQueue=[];function flushPendingDeletes(){while(deletionQueue.length){var obj=deletionQueue.pop();obj.$$.deleteScheduled=false;obj["delete"]()}}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}function init_ClassHandle(){ClassHandle.prototype["isAliasOf"]=ClassHandle_isAliasOf;ClassHandle.prototype["clone"]=ClassHandle_clone;ClassHandle.prototype["delete"]=ClassHandle_delete;ClassHandle.prototype["isDeleted"]=ClassHandle_isDeleted;ClassHandle.prototype["deleteLater"]=ClassHandle_deleteLater}function ClassHandle(){}var registeredPointers={};function 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}}function 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=[]}function 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 "'+_embind_repr(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 "'+_embind_repr(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_register(function(){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 "'+_embind_repr(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 simpleReadValueFromPointer(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)}}function RegisteredPointer_deleteObject(handle){if(handle!==null){handle["delete"]()}}function 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)}function getInheritedInstanceCount(){return Object.keys(registeredInstances).length}function getLiveInheritedInstances(){var rv=[];for(var k in registeredInstances){if(registeredInstances.hasOwnProperty(k)){rv.push(registeredInstances[k])}}return rv}function setDelayFunction(fn){delayFunction=fn;if(deletionQueue.length&&delayFunction){delayFunction(flushPendingDeletes)}}function init_embind(){Module["getInheritedInstanceCount"]=getInheritedInstanceCount;Module["getLiveInheritedInstances"]=getLiveInheritedInstances;Module["flushPendingDeletes"]=flushPendingDeletes;Module["setDelayFunction"]=setDelayFunction}var registeredInstances={};function getBasestPointer(class_,ptr){if(ptr===undefined){throwBindingError("ptr should not be undefined")}while(class_.baseClass){ptr=class_.upcast(ptr);class_=class_.baseClass}return ptr}function getInheritedInstance(class_,ptr){ptr=getBasestPointer(class_,ptr);return registeredInstances[ptr]}function 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})}}function init_RegisteredPointer(){RegisteredPointer.prototype.getPointee=RegisteredPointer_getPointee;RegisteredPointer.prototype.destructor=RegisteredPointer_destructor;RegisteredPointer.prototype["argPackAdvance"]=8;RegisteredPointer.prototype["readValueFromPointer"]=simpleReadValueFromPointer;RegisteredPointer.prototype["deleteObject"]=RegisteredPointer_deleteObject;RegisteredPointer.prototype["fromWireType"]=RegisteredPointer_fromWireType}function RegisteredPointer(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}}function 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}}function embind__requireFunction(signature,rawFunction){signature=readLatin1String(signature);function makeDynCaller(dynCall){var args=[];for(var i=1;i>2)+i])}return array}function runDestructors(destructors){while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}}function __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]=function unboundTypeHandler(){throwUnboundTypeError("Cannot construct "+classType.name+" due to unbound types",rawArgTypes)};whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){classType.registeredClass.constructor_body[argCount-1]=function constructor_body(){if(arguments.length!==argCount-1){throwBindingError(humanName+" called with "+arguments.length+" arguments, expected "+(argCount-1))}var destructors=[];var args=new Array(argCount);args[0]=rawConstructor;for(var i=1;i0?", ":"")+argsListWired}invokerFnBody+=(returns?"var rv = ":"")+"invoker(fn"+(argsListWired.length>0?", ":"")+argsListWired+");\n";if(needsDestructorStack){invokerFnBody+="runDestructors(destructors);\n"}else{for(var i=isClassMethodFunc?1:2;i4&&0===--emval_handle_array[handle].refcount){emval_handle_array[handle]=undefined;emval_free_list.push(handle)}}function count_emval_handles(){var count=0;for(var i=5;i>2])};case 3:return function(pointer){return this["fromWireType"](HEAPF64[pointer>>3])};default:throw new TypeError("Unknown float type: "+name)}}function __embind_register_float(rawType,name,size){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(value){return value},"toWireType":function(destructors,value){if(typeof value!=="number"&&typeof value!=="boolean"){throw new TypeError('Cannot convert "'+_embind_repr(value)+'" to '+this.name)}return value},"argPackAdvance":8,"readValueFromPointer":floatReadValueFromPointer(name,shift),destructorFunction:null})}function __embind_register_function(name,argCount,rawArgTypesAddr,signature,rawInvoker,fn){var argTypes=heap32VectorToArray(argCount,rawArgTypesAddr);name=readLatin1String(name);rawInvoker=embind__requireFunction(signature,rawInvoker);exposePublicSymbol(name,function(){throwUnboundTypeError("Cannot call "+name+" due to unbound types",argTypes)},argCount-1);whenDependentTypesAreResolved([],argTypes,function(argTypes){var invokerArgsArray=[argTypes[0],null].concat(argTypes.slice(1));replacePublicSymbol(name,craftInvokerFunction(name,invokerArgsArray,null,rawInvoker,fn),argCount-1);return[]})}function integerReadValueFromPointer(name,shift,signed){switch(shift){case 0:return signed?function readS8FromPointer(pointer){return HEAP8[pointer]}:function readU8FromPointer(pointer){return HEAPU8[pointer]};case 1:return signed?function readS16FromPointer(pointer){return HEAP16[pointer>>1]}:function readU16FromPointer(pointer){return HEAPU16[pointer>>1]};case 2:return signed?function readS32FromPointer(pointer){return HEAP32[pointer>>2]}:function readU32FromPointer(pointer){return HEAPU32[pointer>>2]};default:throw new TypeError("Unknown integer type: "+name)}}function __embind_register_integer(primitiveType,name,size,minRange,maxRange){name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var shift=getShiftFromSize(size);var fromWireType=function(value){return value};if(minRange===0){var bitshift=32-8*size;fromWireType=function(value){return value<>>bitshift}}var isUnsignedType=name.indexOf("unsigned")!=-1;registerType(primitiveType,{name:name,"fromWireType":fromWireType,"toWireType":function(destructors,value){if(typeof value!=="number"&&typeof value!=="boolean"){throw new TypeError('Cannot convert "'+_embind_repr(value)+'" to '+this.name)}if(valuemaxRange){throw new TypeError('Passing a number "'+_embind_repr(value)+'" from JS side to C/C++ side to an argument of type "'+name+'", which is outside the valid range ['+minRange+", "+maxRange+"]!")}return isUnsignedType?value>>>0:value|0},"argPackAdvance":8,"readValueFromPointer":integerReadValueFromPointer(name,shift,minRange!==0),destructorFunction:null})}function __embind_register_memory_view(rawType,dataTypeIndex,name){var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){handle=handle>>2;var heap=HEAPU32;var size=heap[handle];var data=heap[handle+1];return new TA(heap["buffer"],data,size)}name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":decodeMemoryView,"argPackAdvance":8,"readValueFromPointer":decodeMemoryView},{ignoreDuplicateRegistrations:true})}function __embind_register_std_string(rawType,name){name=readLatin1String(name);var stdStringIsUTF8=name==="std::string";registerType(rawType,{name:name,"fromWireType":function(value){var length=HEAPU32[value>>2];var str;if(stdStringIsUTF8){var endChar=HEAPU8[value+4+length];var endCharSwap=0;if(endChar!=0){endCharSwap=endChar;HEAPU8[value+4+length]=0}var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i;if(HEAPU8[currentBytePtr]==0){var stringSegment=UTF8ToString(decodeStartPtr);if(str===undefined)str=stringSegment;else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+1}}if(endCharSwap!=0)HEAPU8[value+4+length]=endCharSwap}else{var a=new Array(length);for(var i=0;i>2]=length;if(stdStringIsUTF8&&valueIsOfTypeString){stringToUTF8(value,ptr+4,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+4+i]=charCode}}else{for(var i=0;i>2];var a=new Array(length);var start=value+4>>shift;for(var i=0;i>2]=length;var start=ptr+4>>shift;for(var i=0;i>2]=rd;return returnType["toWireType"](destructors,handle)}var emval_symbols={};function getStringOrSymbol(address){var symbol=emval_symbols[address];if(symbol===undefined){return readLatin1String(address)}else{return symbol}}var emval_methodCallers=[];function __emval_call_void_method(caller,handle,methodName,args){caller=emval_methodCallers[caller];handle=requireHandle(handle);methodName=getStringOrSymbol(methodName);caller(handle,methodName,null,args)}function emval_get_global(){return function(){return Function}()("return this")()}function __emval_get_global(name){if(name===0){return __emval_register(emval_get_global())}else{name=getStringOrSymbol(name);return __emval_register(emval_get_global()[name])}}function __emval_addMethodCaller(caller){var id=emval_methodCallers.length;emval_methodCallers.push(caller);return id}function __emval_lookupTypes(argCount,argTypes,argWireTypes){var a=new Array(argCount);for(var i=0;i>2)+i],"parameter "+i)}return a}function __emval_get_method_caller(argCount,argTypes){var types=__emval_lookupTypes(argCount,argTypes);var retType=types[0];var signatureName=retType.name+"_$"+types.slice(1).map(function(t){return t.name}).join("_")+"$";var params=["retType"];var args=[retType];var argsList="";for(var i=0;i4){emval_handle_array[handle].refcount+=1}}function craftEmvalAllocator(argCount){var argsList="";for(var i=0;i> 2) + "+i+'], "parameter '+i+'");\n'+"var arg"+i+" = argType"+i+".readValueFromPointer(args);\n"+"args += argType"+i+"['argPackAdvance'];\n"}functionBody+="var obj = new constructor("+argsList+");\n"+"return __emval_register(obj);\n"+"}\n";return new Function("requireRegisteredType","Module","__emval_register",functionBody)(requireRegisteredType,Module,__emval_register)}var emval_newers={};function __emval_new(handle,argCount,argTypes,args){handle=requireHandle(handle);var newer=emval_newers[argCount];if(!newer){newer=craftEmvalAllocator(argCount);emval_newers[argCount]=newer}return newer(handle,argTypes,args)}function __emval_new_cstring(v){return __emval_register(getStringOrSymbol(v))}function __emval_run_destructors(handle){var destructors=emval_handle_array[handle].value;runDestructors(destructors);__emval_decref(handle)}function _abort(){Module["abort"]()}function _emscripten_get_heap_size(){return HEAP8.length}function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest)}function ___setErrNo(value){if(Module["___errno_location"])HEAP32[Module["___errno_location"]()>>2]=value;return value}function abortOnCannotGrowMemory(requestedSize){abort("OOM")}function emscripten_realloc_buffer(size){var PAGE_MULTIPLE=65536;size=alignUp(size,PAGE_MULTIPLE);var oldSize=buffer.byteLength;try{var result=wasmMemory.grow((size-oldSize)/65536);if(result!==(-1|0)){buffer=wasmMemory.buffer;return true}else{return false}}catch(e){return false}}function _emscripten_resize_heap(requestedSize){var oldSize=_emscripten_get_heap_size();var PAGE_MULTIPLE=65536;var LIMIT=2147483648-PAGE_MULTIPLE;if(requestedSize>LIMIT){return false}var MIN_TOTAL_MEMORY=16777216;var newSize=Math.max(oldSize,MIN_TOTAL_MEMORY);while(newSize0){return}preRun();if(runDependencies>0)return;if(Module["calledRun"])return;function doRun(){if(Module["calledRun"])return;Module["calledRun"]=true;if(ABORT)return;ensureInitRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(what!==undefined){out(what);err(what);what=JSON.stringify(what)}else{what=""}ABORT=true;EXITSTATUS=1;throw"abort("+what+"). Build with -s ASSERTIONS=1 for more info."}Module["abort"]=abort;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}Module["noExitRuntime"]=true;run(); + + + return BASIS +} +); +})(); +if (typeof exports === 'object' && typeof module === 'object') + module.exports = BASIS; + else if (typeof define === 'function' && define['amd']) + define([], function() { return BASIS; }); + else if (typeof exports === 'object') + exports["BASIS"] = BASIS; + \ No newline at end of file diff --git a/webgl/transcoder/build/basis_transcoder.wasm b/webgl/transcoder/build/basis_transcoder.wasm index c5b4d204411003d75e80410b345cc7138dfbe21c..18d486146715b2ee0721c457bf2a443a923a9bc5 100644 GIT binary patch delta 32613 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 z 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 delta 30868 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