2024-08-03 10:45:34 +00:00
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 ( ) ;