var skwasm = ( ( ) => {
var _scriptDir = typeof document !== 'undefined' && document . currentScript ? document . currentScript . src : undefined ;
if ( typeof _ _filename !== 'undefined' ) _scriptDir = _scriptDir || _ _filename ;
return (
function ( moduleArg = { } ) {
function aa ( ) { d . buffer != h . buffer && l ( ) ; return h } function p ( ) { d . buffer != h . buffer && l ( ) ; return ca } function q ( ) { d . buffer != h . buffer && l ( ) ; return da } function t ( ) { d . buffer != h . buffer && l ( ) ; return ea } function v ( ) { d . buffer != h . buffer && l ( ) ; return fa } function ha ( ) { d . buffer != h . buffer && l ( ) ; return ia } var w = moduleArg , ja , ka ; w . ready = new Promise ( ( a , b ) => { ja = a ; ka = b } ) ;
var la = Object . assign ( { } , w ) , ma = "./this.program" , na = ( a , b ) => { throw b ; } , oa = "object" == typeof window , pa = "function" == typeof importScripts , x = "object" == typeof process && "object" == typeof process . versions && "string" == typeof process . versions . node , A = w . ENVIRONMENT _IS _PTHREAD || ! 1 , C = "" ; function qa ( a ) { return w . locateFile ? w . locateFile ( a , C ) : C + a } var ra , sa , ta ;
if ( x ) { var fs = require ( "fs" ) , ua = require ( "path" ) ; C = pa ? ua . dirname ( C ) + "/" : _ _dirname + "/" ; ra = ( b , c ) => { b = b . startsWith ( "file://" ) ? new URL ( b ) : ua . normalize ( b ) ; return fs . readFileSync ( b , c ? void 0 : "utf8" ) } ; ta = b => { b = ra ( b , ! 0 ) ; b . buffer || ( b = new Uint8Array ( b ) ) ; return b } ; sa = ( b , c , e , f = ! 0 ) => { b = b . startsWith ( "file://" ) ? new URL ( b ) : ua . normalize ( b ) ; fs . readFile ( b , f ? void 0 : "utf8" , ( g , k ) => { g ? e ( g ) : c ( f ? k . buffer : k ) } ) } ; ! w . thisProgram && 1 < process . argv . length && ( ma = process . argv [ 1 ] . replace ( /\\/g , "/" ) ) ; process . argv . slice ( 2 ) ; na = ( b , c ) => { process . exitCode =
b ; throw c ; } ; w . inspect = ( ) => "[Emscripten Module object]" ; let a ; try { a = require ( "worker_threads" ) } catch ( b ) { throw console . error ( 'The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?' ) , b ; } global . Worker = a . Worker } else if ( oa || pa ) pa ? C = self . location . href : "undefined" != typeof document && document . currentScript && ( C = document . currentScript . src ) , _scriptDir && ( C = _scriptDir ) , 0 !== C . indexOf ( "blob:" ) ? C = C . substr ( 0 , C . replace ( /[?#].*/ , "" ) . lastIndexOf ( "/" ) + 1 ) : C = "" , x || ( ra = a => { var b =
new XMLHttpRequest ; b . open ( "GET" , a , ! 1 ) ; b . send ( null ) ; return b . responseText } , pa && ( ta = a => { var b = new XMLHttpRequest ; b . open ( "GET" , a , ! 1 ) ; b . responseType = "arraybuffer" ; b . send ( null ) ; return new Uint8Array ( b . response ) } ) , sa = ( a , b , c ) => { var e = new XMLHttpRequest ; e . open ( "GET" , a , ! 0 ) ; e . responseType = "arraybuffer" ; e . onload = ( ) => { 200 == e . status || 0 == e . status && e . response ? b ( e . response ) : c ( ) } ; e . onerror = c ; e . send ( null ) } ) ; x && "undefined" == typeof performance && ( global . performance = require ( "perf_hooks" ) . performance ) ;
var va = console . log . bind ( console ) , wa = console . error . bind ( console ) ; x && ( va = ( ... a ) => fs . writeSync ( 1 , a . join ( " " ) + "\n" ) , wa = ( ... a ) => fs . writeSync ( 2 , a . join ( " " ) + "\n" ) ) ; var xa = w . print || va , D = w . printErr || wa ; Object . assign ( w , la ) ; la = null ; w . thisProgram && ( ma = w . thisProgram ) ; w . quit && ( na = w . quit ) ; var ya ; w . wasmBinary && ( ya = w . wasmBinary ) ; var noExitRuntime = w . noExitRuntime || ! 0 ; "object" != typeof WebAssembly && za ( "no native wasm support detected" ) ; var d , F , Aa , Ba = ! 1 , Ca , h , ca , Da , Ea , da , ea , fa , ia ;
function l ( ) { var a = d . buffer ; w . HEAP8 = h = new Int8Array ( a ) ; w . HEAP16 = Da = new Int16Array ( a ) ; w . HEAP32 = da = new Int32Array ( a ) ; w . HEAPU8 = ca = new Uint8Array ( a ) ; w . HEAPU16 = Ea = new Uint16Array ( a ) ; w . HEAPU32 = ea = new Uint32Array ( a ) ; w . HEAPF32 = fa = new Float32Array ( a ) ; w . HEAPF64 = ia = new Float64Array ( a ) } var Fa = w . INITIAL _MEMORY || 16777216 ; 65536 <= Fa || za ( "INITIAL_MEMORY should be larger than STACK_SIZE, was " + Fa + "! (STACK_SIZE=65536)" ) ;
if ( A ) d = w . wasmMemory ; else if ( w . wasmMemory ) d = w . wasmMemory ; else if ( d = new WebAssembly . Memory ( { initial : Fa / 65536 , maximum : 32768 , shared : ! 0 } ) , ! ( d . buffer instanceof SharedArrayBuffer ) ) throw D ( "requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag" ) , x && D ( "(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and/or recent version)" ) ,
Error ( "bad memory" ) ; l ( ) ; Fa = d . buffer . byteLength ; var G , Ga = [ ] , Ha = [ ] , Ia = [ ] , Ja = 0 ; function Ka ( ) { return noExitRuntime || 0 < Ja } var H = 0 , La = null , Ma = null ; function Na ( ) { H ++ ; w . monitorRunDependencies && w . monitorRunDependencies ( H ) } function Oa ( ) { H -- ; w . monitorRunDependencies && w . monitorRunDependencies ( H ) ; if ( 0 == H && ( null !== La && ( clearInterval ( La ) , La = null ) , Ma ) ) { var a = Ma ; Ma = null ; a ( ) } }
function za ( a ) { if ( w . onAbort ) w . onAbort ( a ) ; a = "Aborted(" + a + ")" ; D ( a ) ; Ba = ! 0 ; Ca = 1 ; a = new WebAssembly . RuntimeError ( a + ". Build with -sASSERTIONS for more info." ) ; ka ( a ) ; throw a ; } function Pa ( a ) { return a . startsWith ( "data:application/octet-stream;base64," ) } var Qa ; Qa = "skwasm.wasm" ; Pa ( Qa ) || ( Qa = qa ( Qa ) ) ; function Ra ( a ) { if ( a == Qa && ya ) return new Uint8Array ( ya ) ; if ( ta ) return ta ( a ) ; throw "both async and sync fetching of the wasm failed" ; }
function Sa ( a ) { if ( ! ya && ( oa || pa ) ) { if ( "function" == typeof fetch && ! a . startsWith ( "file://" ) ) return fetch ( a , { credentials : "same-origin" } ) . then ( b => { if ( ! b . ok ) throw "failed to load wasm binary file at '" + a + "'" ; return b . arrayBuffer ( ) } ) . catch ( ( ) => Ra ( a ) ) ; if ( sa ) return new Promise ( ( b , c ) => { sa ( a , e => b ( new Uint8Array ( e ) ) , c ) } ) } return Promise . resolve ( ) . then ( ( ) => Ra ( a ) ) } function Ta ( a , b , c ) { return Sa ( a ) . then ( e => WebAssembly . instantiate ( e , b ) ) . then ( e => e ) . then ( c , e => { D ( "failed to asynchronously prepare wasm: " + e ) ; za ( e ) } ) }
function Ua ( a , b ) { var c = Qa ; return ya || "function" != typeof WebAssembly . instantiateStreaming || Pa ( c ) || c . startsWith ( "file://" ) || x || "function" != typeof fetch ? Ta ( c , a , b ) : fetch ( c , { credentials : "same-origin" } ) . then ( e => WebAssembly . instantiateStreaming ( e , a ) . then ( b , function ( f ) { D ( "wasm streaming compile failed: " + f ) ; D ( "falling back to ArrayBuffer instantiation" ) ; return Ta ( c , a , b ) } ) ) } function Va ( a ) { this . name = "ExitStatus" ; this . message = ` Program terminated with exit( ${ a } ) ` ; this . status = a }
function Wa ( a ) { a . terminate ( ) ; a . onmessage = ( ) => { } } function Xa ( a ) { ( a = I . g [ a ] ) || za ( ) ; I . Aa ( a ) } function Ya ( a ) { var b = I . ma ( ) ; if ( ! b ) return 6 ; I . u . push ( b ) ; I . g [ a . m ] = b ; b . m = a . m ; var c = { cmd : "run" , start _routine : a . Ba , arg : a . ka , pthread _ptr : a . m } ; c . D = a . D ; c . S = a . S ; x && b . unref ( ) ; b . postMessage ( c , a . Ha ) ; return 0 }
var Za = "undefined" != typeof TextDecoder ? new TextDecoder ( "utf8" ) : void 0 , $a = ( a , b , c ) => { var e = b + c ; for ( c = b ; a [ c ] && ! ( c >= e ) ; ) ++ c ; if ( 16 < c - b && a . buffer && Za ) return Za . decode ( a . slice ( b , c ) ) ; for ( e = "" ; b < c ; ) { var f = a [ b ++ ] ; if ( f & 128 ) { var g = a [ b ++ ] & 63 ; if ( 192 == ( f & 224 ) ) e += String . fromCharCode ( ( f & 31 ) << 6 | g ) ; else { var k = a [ b ++ ] & 63 ; f = 224 == ( f & 240 ) ? ( f & 15 ) << 12 | g << 6 | k : ( f & 7 ) << 18 | g << 12 | k << 6 | a [ b ++ ] & 63 ; 65536 > f ? e += String . fromCharCode ( f ) : ( f -= 65536 , e += String . fromCharCode ( 55296 | f >> 10 , 56320 | f & 1023 ) ) } } else e += String . fromCharCode ( f ) } return e } ,
J = ( a , b ) => a ? $a ( p ( ) , a , b ) : "" ; function ab ( a ) { if ( A ) return K ( 1 , 1 , a ) ; Ca = a ; if ( ! Ka ( ) ) { I . Ca ( ) ; if ( w . onExit ) w . onExit ( a ) ; Ba = ! 0 } na ( a , new Va ( a ) ) }
var cb = a => { Ca = a ; if ( A ) throw bb ( a ) , "unwind" ; ab ( a ) } , I = { o : [ ] , u : [ ] , ha : [ ] , g : { } , R : function ( ) { A ? I . ra ( ) : I . qa ( ) } , qa : function ( ) { for ( var a = 1 ; a -- ; ) I . X ( ) ; Ga . unshift ( ( ) => { Na ( ) ; I . ta ( ( ) => Oa ( ) ) } ) } , ra : function ( ) { I . receiveObjectTransfer = I . za ; I . threadInitTLS = I . ga ; I . setExitStatus = I . fa ; noExitRuntime = ! 1 } , fa : function ( a ) { Ca = a } , Oa : [ "$terminateWorker" ] , Ca : function ( ) { for ( var a of I . u ) Wa ( a ) ; for ( a of I . o ) Wa ( a ) ; I . o = [ ] ; I . u = [ ] ; I . g = [ ] } , Aa : function ( a ) { var b = a . m ; delete I . g [ b ] ; I . o . push ( a ) ; I . u . splice ( I . u . indexOf ( a ) , 1 ) ; a . m = 0 ; db ( b ) } , za : function ( a ) { "undefined" !=
typeof eb && ( Object . assign ( L , a . S ) , ! w . canvas && a . D && L [ a . D ] && ( w . canvas = L [ a . D ] . F , w . canvas . id = a . D ) ) } , ga : function ( ) { I . ha . forEach ( a => a ( ) ) } , ba : a => new Promise ( b => { a . onmessage = g => { g = g . data ; var k = g . cmd ; if ( g . targetThread && g . targetThread != fb ( ) ) { var n = I . g [ g . Na ] ; n ? n . postMessage ( g , g . transferList ) : D ( 'Internal error! Worker sent a message "' + k + '" to target pthread ' + g . targetThread + ", but that thread no longer exists!" ) } else if ( "checkMailbox" === k ) gb ( ) ; else if ( "spawnThread" === k ) Ya ( g ) ; else if ( "cleanupThread" === k ) Xa ( g . thread ) ;
else if ( "killThread" === k ) g = g . thread , k = I . g [ g ] , delete I . g [ g ] , Wa ( k ) , db ( g ) , I . u . splice ( I . u . indexOf ( k ) , 1 ) , k . m = 0 ; else if ( "cancelThread" === k ) I . g [ g . thread ] . postMessage ( { cmd : "cancel" } ) ; else if ( "loaded" === k ) a . loaded = ! 0 , x && ! a . m && a . unref ( ) , b ( a ) ; else if ( "alert" === k ) alert ( "Thread " + g . threadId + ": " + g . text ) ; else if ( "setimmediate" === g . target ) a . postMessage ( g ) ; else if ( "callHandler" === k ) w [ g . handler ] ( ... g . args ) ; else k && D ( "worker sent an unknown command " + k ) } ; a . onerror = g => { D ( "worker sent an error! " + g . filename + ":" + g . lineno +
": " + g . message ) ; throw g ; } ; x && ( a . on ( "message" , function ( g ) { a . onmessage ( { data : g } ) } ) , a . on ( "error" , function ( g ) { a . onerror ( g ) } ) ) ; var c = [ ] , e = [ "onExit" , "onAbort" , "print" , "printErr" ] , f ; for ( f of e ) w . hasOwnProperty ( f ) && c . push ( f ) ; a . postMessage ( { cmd : "load" , handlers : c , urlOrBlob : w . mainScriptUrlOrBlob || _scriptDir , wasmMemory : d , wasmModule : Aa } ) } ) , ta : function ( a ) { if ( A ) return a ( ) ; Promise . all ( I . o . map ( I . ba ) ) . then ( a ) } , X : function ( ) { var a = qa ( "skwasm.worker.js" ) ; a = new Worker ( a ) ; I . o . push ( a ) } , ma : function ( ) { 0 == I . o . length && ( I . X ( ) ,
I . ba ( I . o [ 0 ] ) ) ; return I . o . pop ( ) } } ; w . PThread = I ; var hb = a => { for ( ; 0 < a . length ; ) a . shift ( ) ( w ) } ; w . establishStackSpace = function ( ) { var a = fb ( ) , b = q ( ) [ a + 52 >> 2 ] ; a = q ( ) [ a + 56 >> 2 ] ; ib ( b , b - a ) ; M ( b ) } ; function bb ( a ) { if ( A ) return K ( 2 , 0 , a ) ; cb ( a ) } w . invokeEntryPoint = function ( a , b ) { a = G . get ( a ) ( b ) ; Ka ( ) ? I . fa ( a ) : jb ( a ) } ; function kb ( a ) { this . C = a - 24 ; this . ua = function ( b ) { t ( ) [ this . C + 4 >> 2 ] = b } ; this . sa = function ( b ) { t ( ) [ this . C + 8 >> 2 ] = b } ; this . R = function ( b , c ) { this . na ( ) ; this . ua ( b ) ; this . sa ( c ) } ; this . na = function ( ) { t ( ) [ this . C + 16 >> 2 ] = 0 } } var lb = 0 , mb = 0 ;
function nb ( a , b , c , e ) { return A ? K ( 3 , 1 , a , b , c , e ) : ob ( a , b , c , e ) }
function ob ( a , b , c , e ) { if ( "undefined" == typeof SharedArrayBuffer ) return D ( "Current environment does not support SharedArrayBuffer, pthreads are not available!" ) , 6 ; var f = [ ] , g = 0 , k = b ? t ( ) [ b + 40 >> 2 ] : 0 ; 4294967295 == k ? k = "#canvas" : k && ( k = J ( k ) . trim ( ) ) ; k && ( k = k . split ( "," ) ) ; var n = { } , r = w . canvas ? w . canvas . id : "" , u ; for ( u in k ) { var y = k [ u ] . trim ( ) ; try { if ( "#canvas" == y ) { if ( ! w . canvas ) { D ( 'pthread_create: could not find canvas with ID "' + y + '" to transfer to thread!' ) ; g = 28 ; break } y = w . canvas . id } if ( L [ y ] ) { var V = L [ y ] ; L [ y ] = null ; w . canvas instanceof
OffscreenCanvas && y === w . canvas . id && ( w . canvas = null ) } else if ( ! A ) { var E = w . canvas && w . canvas . id === y ? w . canvas : document . querySelector ( y ) ; if ( ! E ) { D ( 'pthread_create: could not find canvas with ID "' + y + '" to transfer to thread!' ) ; g = 28 ; break } if ( E . Y ) { D ( 'pthread_create: cannot transfer canvas with ID "' + y + '" to thread, since the current thread does not have control over it!' ) ; g = 63 ; break } if ( E . transferControlToOffscreen ) E . h || ( E . h = pb ( 12 ) , q ( ) [ E . h >> 2 ] = E . width , q ( ) [ E . h + 4 >> 2 ] = E . height , q ( ) [ E . h + 8 >> 2 ] = 0 ) , V = { F : E . transferControlToOffscreen ( ) ,
h : E . h , id : E . id } , E . Y = ! 0 ; else return D ( 'pthread_create: cannot transfer control of canvas "' + y + '" to pthread, because current browser does not support OffscreenCanvas!' ) , D ( "pthread_create: Build with -sOFFSCREEN_FRAMEBUFFER to enable fallback proxying of GL commands from pthread to main thread." ) , 52 } V && ( f . push ( V . F ) , n [ V . id ] = V ) } catch ( m ) { return D ( 'pthread_create: failed to transfer control of canvas "' + y + '" to OffscreenCanvas! Error: ' + m ) , 28 } } if ( A && ( 0 === f . length || g ) ) return nb ( a , b , c , e ) ; if ( g ) return g ; for ( E of Object . values ( n ) ) q ( ) [ E . h +
8 >> 2 ] = a ; a = { Ba : c , m : a , ka : e , D : r , S : n , Ha : f } ; return A ? ( a . Ja = "spawnThread" , postMessage ( a , f ) , 0 ) : Ya ( a ) } function qb ( a , b , c ) { return A ? K ( 4 , 1 , a , b , c ) : 0 } function rb ( a , b ) { if ( A ) return K ( 5 , 1 , a , b ) } function sb ( a , b , c ) { return A ? K ( 6 , 1 , a , b , c ) : 0 } function tb ( a , b , c , e ) { if ( A ) return K ( 7 , 1 , a , b , c , e ) } var ub = a => { if ( ! Ba ) try { if ( a ( ) , ! Ka ( ) ) try { A ? jb ( Ca ) : cb ( Ca ) } catch ( b ) { b instanceof Va || "unwind" == b || na ( 1 , b ) } } catch ( b ) { b instanceof Va || "unwind" == b || na ( 1 , b ) } } ;
function vb ( a ) { "function" === typeof Atomics . Ia && ( Atomics . Ia ( q ( ) , a >> 2 , a ) . value . then ( gb ) , a += 128 , Atomics . store ( q ( ) , a >> 2 , 1 ) ) } w . _ _emscripten _thread _mailbox _await = vb ; function gb ( ) { var a = fb ( ) ; a && ( vb ( a ) , ub ( ( ) => wb ( ) ) ) } w . checkMailbox = gb ;
var xb = a => { var b = N ( ) ; a = a ( ) ; M ( b ) ; return a } , yb = a => { for ( var b = 0 , c = 0 ; c < a . length ; ++ c ) { var e = a . charCodeAt ( c ) ; 127 >= e ? b ++ : 2047 >= e ? b += 2 : 55296 <= e && 57343 >= e ? ( b += 4 , ++ c ) : b += 3 } return b } , zb = ( a , b , c , e ) => { if ( ! ( 0 < e ) ) return 0 ; var f = c ; e = c + e - 1 ; for ( var g = 0 ; g < a . length ; ++ g ) { var k = a . charCodeAt ( g ) ; if ( 55296 <= k && 57343 >= k ) { var n = a . charCodeAt ( ++ g ) ; k = 65536 + ( ( k & 1023 ) << 10 ) | n & 1023 } if ( 127 >= k ) { if ( c >= e ) break ; b [ c ++ ] = k } else { if ( 2047 >= k ) { if ( c + 1 >= e ) break ; b [ c ++ ] = 192 | k >> 6 } else { if ( 65535 >= k ) { if ( c + 2 >= e ) break ; b [ c ++ ] = 224 | k >> 12 } else { if ( c + 3 >= e ) break ;
b [ c ++ ] = 240 | k >> 18 ; b [ c ++ ] = 128 | k >> 12 & 63 } b [ c ++ ] = 128 | k >> 6 & 63 } b [ c ++ ] = 128 | k & 63 } } b [ c ] = 0 ; return c - f } , Ab = a => { var b = yb ( a ) + 1 , c = pb ( b ) ; c && zb ( a , p ( ) , c , b ) ; return c } ; function Bb ( a , b , c , e ) { b = b ? J ( b ) : "" ; xb ( function ( ) { var f = Cb ( 12 ) , g = 0 ; b && ( g = Ab ( b ) ) ; q ( ) [ f >> 2 ] = g ; q ( ) [ f + 4 >> 2 ] = c ; q ( ) [ f + 8 >> 2 ] = e ; Db ( a , 654311424 , 0 , g , f ) } ) }
function Eb ( a ) { var b = a . getExtension ( "ANGLE_instanced_arrays" ) ; b && ( a . vertexAttribDivisor = function ( c , e ) { b . vertexAttribDivisorANGLE ( c , e ) } , a . drawArraysInstanced = function ( c , e , f , g ) { b . drawArraysInstancedANGLE ( c , e , f , g ) } , a . drawElementsInstanced = function ( c , e , f , g , k ) { b . drawElementsInstancedANGLE ( c , e , f , g , k ) } ) }
function Fb ( a ) { var b = a . getExtension ( "OES_vertex_array_object" ) ; b && ( a . createVertexArray = function ( ) { return b . createVertexArrayOES ( ) } , a . deleteVertexArray = function ( c ) { b . deleteVertexArrayOES ( c ) } , a . bindVertexArray = function ( c ) { b . bindVertexArrayOES ( c ) } , a . isVertexArray = function ( c ) { return b . isVertexArrayOES ( c ) } ) } function Gb ( a ) { var b = a . getExtension ( "WEBGL_draw_buffers" ) ; b && ( a . drawBuffers = function ( c , e ) { b . drawBuffersWEBGL ( c , e ) } ) }
function Hb ( a ) { a . Z = a . getExtension ( "WEBGL_draw_instanced_base_vertex_base_instance" ) } function Ib ( a ) { a . ea = a . getExtension ( "WEBGL_multi_draw_instanced_base_vertex_base_instance" ) } function Jb ( a ) { a . Ma = a . getExtension ( "WEBGL_multi_draw" ) } var Kb = 1 , Lb = [ ] , O = [ ] , Mb = [ ] , Nb = [ ] , P = [ ] , Q = [ ] , Ob = [ ] , Pb = { } , L = { } , R = [ ] , Qb = [ ] , Rb = { } , Sb = { } , Tb = 4 ; function S ( a ) { Ub || ( Ub = a ) } function Vb ( a ) { for ( var b = Kb ++ , c = a . length ; c < b ; c ++ ) a [ c ] = null ; return b }
function Wb ( a ) { var b = { da : 2 , alpha : ! 0 , depth : ! 0 , stencil : ! 0 , antialias : ! 1 , premultipliedAlpha : ! 0 , preserveDrawingBuffer : ! 1 , powerPreference : "default" , failIfMajorPerformanceCaveat : ! 1 , aa : ! 0 } ; a . C || ( a . C = a . getContext , a . getContext = function ( e , f ) { f = a . C ( e , f ) ; return "webgl" == e == f instanceof WebGLRenderingContext ? f : null } ) ; var c = 1 < b . da ? a . getContext ( "webgl2" , b ) : a . getContext ( "webgl" , b ) ; return c ? Xb ( c , b ) : 0 }
function Xb ( a , b ) { var c = pb ( 8 ) ; q ( ) [ c + 4 >> 2 ] = fb ( ) ; var e = { handle : c , attributes : b , version : b . da , s : a } ; a . canvas && ( a . canvas . I = e ) ; Pb [ c ] = e ; ( "undefined" == typeof b . aa || b . aa ) && Yb ( e ) ; return c }
function Yb ( a ) { a || ( a = T ) ; if ( ! a . pa ) { a . pa = ! 0 ; var b = a . s ; Eb ( b ) ; Fb ( b ) ; Gb ( b ) ; Hb ( b ) ; Ib ( b ) ; 2 <= a . version && ( b . $ = b . getExtension ( "EXT_disjoint_timer_query_webgl2" ) ) ; if ( 2 > a . version || ! b . $ ) b . $ = b . getExtension ( "EXT_disjoint_timer_query" ) ; Jb ( b ) ; ( b . getSupportedExtensions ( ) || [ ] ) . forEach ( function ( c ) { c . includes ( "lose_context" ) || c . includes ( "debug" ) || b . getExtension ( c ) } ) } } var eb = { } , Ub , T ;
function Zb ( a ) { a = 2 < a ? J ( a ) : a ; return L [ a . substr ( 1 ) ] || "canvas" == a && Object . keys ( L ) [ 0 ] || "undefined" != typeof document && document . querySelector ( a ) } function $b ( a , b , c ) { var e = Zb ( a ) ; if ( ! e ) return - 4 ; e . h && ( q ( ) [ e . h >> 2 ] = b , q ( ) [ e . h + 4 >> 2 ] = c ) ; if ( e . F || ! e . Y ) e . F && ( e = e . F ) , a = ! 1 , e . I && e . I . s && ( a = e . I . s . getParameter ( 2978 ) , a = 0 === a [ 0 ] && 0 === a [ 1 ] && a [ 2 ] === e . width && a [ 3 ] === e . height ) , e . width = b , e . height = c , a && e . I . s . viewport ( 0 , 0 , b , c ) ; else return e . h ? ( e = q ( ) [ e . h + 8 >> 2 ] , Bb ( e , a , b , c ) , 1 ) : - 4 ; return 0 }
function ac ( a , b , c ) { return A ? K ( 8 , 1 , a , b , c ) : $b ( a , b , c ) } function bc ( a , b , c , e , f , g , k , n ) { return A ? K ( 9 , 1 , a , b , c , e , f , g , k , n ) : - 52 } function cc ( a , b , c , e , f , g , k ) { if ( A ) return K ( 10 , 1 , a , b , c , e , f , g , k ) } function dc ( a , b ) { U . bindFramebuffer ( a , Mb [ b ] ) } function ec ( a ) { U . clear ( a ) } function fc ( a , b , c , e ) { U . clearColor ( a , b , c , e ) } function gc ( a ) { U . clearStencil ( a ) }
function hc ( a , b , c ) { if ( b ) { var e = void 0 ; switch ( a ) { case 36346 : e = 1 ; break ; case 36344 : 0 != c && 1 != c && S ( 1280 ) ; return ; case 34814 : case 36345 : e = 0 ; break ; case 34466 : var f = U . getParameter ( 34467 ) ; e = f ? f . length : 0 ; break ; case 33309 : if ( 2 > T . version ) { S ( 1282 ) ; return } e = 2 * ( U . getSupportedExtensions ( ) || [ ] ) . length ; break ; case 33307 : case 33308 : if ( 2 > T . version ) { S ( 1280 ) ; return } e = 33307 == a ? 3 : 0 } if ( void 0 === e ) switch ( f = U . getParameter ( a ) , typeof f ) { case "number" : e = f ; break ; case "boolean" : e = f ? 1 : 0 ; break ; case "string" : S ( 1280 ) ; return ; case "object" : if ( null ===
f ) switch ( a ) { case 34964 : case 35725 : case 34965 : case 36006 : case 36007 : case 32873 : case 34229 : case 36662 : case 36663 : case 35053 : case 35055 : case 36010 : case 35097 : case 35869 : case 32874 : case 36389 : case 35983 : case 35368 : case 34068 : e = 0 ; break ; default : S ( 1280 ) ; return } else { if ( f instanceof Float32Array || f instanceof Uint32Array || f instanceof Int32Array || f instanceof Array ) { for ( a = 0 ; a < f . length ; ++ a ) switch ( c ) { case 0 : q ( ) [ b + 4 * a >> 2 ] = f [ a ] ; break ; case 2 : v ( ) [ b + 4 * a >> 2 ] = f [ a ] ; break ; case 4 : aa ( ) [ b + a >> 0 ] = f [ a ] ? 1 : 0 } return } try { e = f . name |
0 } catch ( g ) { S ( 1280 ) ; D ( "GL_INVALID_ENUM in glGet" + c + "v: Unknown object returned from WebGL getParameter(" + a + ")! (error: " + g + ")" ) ; return } } break ; default : S ( 1280 ) ; D ( "GL_INVALID_ENUM in glGet" + c + "v: Native code calling glGet" + c + "v(" + a + ") and it returns " + f + " of type " + typeof f + "!" ) ; return } switch ( c ) { case 1 : c = e ; t ( ) [ b >> 2 ] = c ; t ( ) [ b + 4 >> 2 ] = ( c - t ( ) [ b >> 2 ] ) / 4294967296 ; break ; case 0 : q ( ) [ b >> 2 ] = e ; break ; case 2 : v ( ) [ b >> 2 ] = e ; break ; case 4 : aa ( ) [ b >> 0 ] = e ? 1 : 0 } } else S ( 1281 ) } function ic ( a , b ) { hc ( a , b , 0 ) }
function K ( a , b ) { var c = arguments . length - 2 , e = arguments ; return xb ( ( ) => { for ( var f = Cb ( 8 * c ) , g = f >> 3 , k = 0 ; k < c ; k ++ ) { var n = e [ 2 + k ] ; ha ( ) [ g + k ] = n } return jc ( a , c , f , b ) } ) }
var kc = [ ] , lc = { } , nc = ( ) => { if ( ! mc ) { var a = { USER : "web_user" , LOGNAME : "web_user" , PATH : "/" , PWD : "/" , HOME : "/home/web_user" , LANG : ( "object" == typeof navigator && navigator . languages && navigator . languages [ 0 ] || "C" ) . replace ( "-" , "_" ) + ".UTF-8" , _ : ma || "./this.program" } , b ; for ( b in lc ) void 0 === lc [ b ] ? delete a [ b ] : a [ b ] = lc [ b ] ; var c = [ ] ; for ( b in a ) c . push ( ` ${ b } = ${ a [ b ] } ` ) ; mc = c } return mc } , mc ;
function oc ( a , b ) { if ( A ) return K ( 11 , 1 , a , b ) ; var c = 0 ; nc ( ) . forEach ( function ( e , f ) { var g = b + c ; f = t ( ) [ a + 4 * f >> 2 ] = g ; for ( g = 0 ; g < e . length ; ++ g ) aa ( ) [ f ++ >> 0 ] = e . charCodeAt ( g ) ; aa ( ) [ f >> 0 ] = 0 ; c += e . length + 1 } ) ; return 0 } function pc ( a , b ) { if ( A ) return K ( 12 , 1 , a , b ) ; var c = nc ( ) ; t ( ) [ a >> 2 ] = c . length ; var e = 0 ; c . forEach ( function ( f ) { e += f . length + 1 } ) ; t ( ) [ b >> 2 ] = e ; return 0 } function qc ( a ) { return A ? K ( 13 , 1 , a ) : 52 } function rc ( a , b , c , e , f , g ) { return A ? K ( 14 , 1 , a , b , c , e , f , g ) : 52 } function sc ( a , b , c , e ) { return A ? K ( 15 , 1 , a , b , c , e ) : 52 }
function tc ( a , b , c , e , f ) { return A ? K ( 16 , 1 , a , b , c , e , f ) : 70 } var uc = [ null , [ ] , [ ] ] ; function vc ( a , b , c , e ) { if ( A ) return K ( 17 , 1 , a , b , c , e ) ; for ( var f = 0 , g = 0 ; g < c ; g ++ ) { var k = t ( ) [ b >> 2 ] , n = t ( ) [ b + 4 >> 2 ] ; b += 8 ; for ( var r = 0 ; r < n ; r ++ ) { var u = p ( ) [ k + r ] , y = uc [ a ] ; 0 === u || 10 === u ? ( ( 1 === a ? xa : D ) ( $a ( y , 0 ) ) , y . length = 0 ) : y . push ( u ) } f += n } t ( ) [ e >> 2 ] = f ; return 0 } function wc ( a ) { U . bindVertexArray ( Ob [ a ] ) } function xc ( a , b ) { for ( var c = 0 ; c < a ; c ++ ) { var e = q ( ) [ b + 4 * c >> 2 ] ; U . deleteVertexArray ( Ob [ e ] ) ; Ob [ e ] = null } } var yc = [ ] ;
function zc ( a , b , c , e ) { U . drawElements ( a , b , c , e ) } function Ac ( a , b , c , e ) { for ( var f = 0 ; f < a ; f ++ ) { var g = U [ c ] ( ) , k = g && Vb ( e ) ; g ? ( g . name = k , e [ k ] = g ) : S ( 1282 ) ; q ( ) [ b + 4 * f >> 2 ] = k } } function Bc ( a , b ) { Ac ( a , b , "createVertexArray" , Ob ) } function Cc ( a ) { return "]" == a . slice ( - 1 ) && a . lastIndexOf ( "[" ) } function Dc ( a ) { a -= 5120 ; 0 == a ? a = aa ( ) : 1 == a ? a = p ( ) : 2 == a ? ( d . buffer != h . buffer && l ( ) , a = Da ) : 4 == a ? a = q ( ) : 6 == a ? a = v ( ) : 5 == a || 28922 == a || 28520 == a || 30779 == a || 30782 == a ? a = t ( ) : ( d . buffer != h . buffer && l ( ) , a = Ea ) ; return a }
function Ec ( a , b , c , e , f ) { a = Dc ( a ) ; var g = 31 - Math . clz32 ( a . BYTES _PER _ELEMENT ) , k = Tb ; return a . subarray ( f >> g , f + e * ( c * ( { 5 : 3 , 6 : 4 , 8 : 2 , 29502 : 3 , 29504 : 4 , 26917 : 2 , 26918 : 2 , 29846 : 3 , 29847 : 4 } [ b - 6402 ] || 1 ) * ( 1 << g ) + k - 1 & - k ) >> g ) } function W ( a ) { var b = U . la ; if ( b ) { var c = b . H [ a ] ; "number" == typeof c && ( b . H [ a ] = c = U . getUniformLocation ( b , b . ia [ a ] + ( 0 < c ? "[" + c + "]" : "" ) ) ) ; return c } S ( 1282 ) } var X = [ ] , Fc = [ ] ; function Gc ( ) { } function Hc ( ) { } function Ic ( ) { } function Jc ( ) { } function Lc ( ) { } function Mc ( ) { } function Nc ( ) { } function Oc ( ) { } function Pc ( ) { }
function Qc ( ) { } function Rc ( ) { } var Sc = a => 0 === a % 4 && ( 0 !== a % 100 || 0 === a % 400 ) , Tc = [ 31 , 29 , 31 , 30 , 31 , 30 , 31 , 31 , 30 , 31 , 30 , 31 ] , Uc = [ 31 , 28 , 31 , 30 , 31 , 30 , 31 , 31 , 30 , 31 , 30 , 31 ] ; function Vc ( a ) { var b = Array ( yb ( a ) + 1 ) ; zb ( a , b , 0 , b . length ) ; return b }
var Wc = ( a , b ) => { aa ( ) . set ( a , b ) } , Xc = ( a , b , c , e ) => { function f ( m , z , B ) { for ( m = "number" == typeof m ? m . toString ( ) : m || "" ; m . length < z ; ) m = B [ 0 ] + m ; return m } function g ( m , z ) { return f ( m , z , "0" ) } function k ( m , z ) { function B ( Kc ) { return 0 > Kc ? - 1 : 0 < Kc ? 1 : 0 } var ba ; 0 === ( ba = B ( m . getFullYear ( ) - z . getFullYear ( ) ) ) && 0 === ( ba = B ( m . getMonth ( ) - z . getMonth ( ) ) ) && ( ba = B ( m . getDate ( ) - z . getDate ( ) ) ) ; return ba } function n ( m ) { switch ( m . getDay ( ) ) { case 0 : return new Date ( m . getFullYear ( ) - 1 , 11 , 29 ) ; case 1 : return m ; case 2 : return new Date ( m . getFullYear ( ) , 0 , 3 ) ; case 3 : return new Date ( m . getFullYear ( ) ,
0 , 2 ) ; case 4 : return new Date ( m . getFullYear ( ) , 0 , 1 ) ; case 5 : return new Date ( m . getFullYear ( ) - 1 , 11 , 31 ) ; case 6 : return new Date ( m . getFullYear ( ) - 1 , 11 , 30 ) } } function r ( m ) { var z = m . v ; for ( m = new Date ( ( new Date ( m . A + 1900 , 0 , 1 ) ) . getTime ( ) ) ; 0 < z ; ) { var B = m . getMonth ( ) , ba = ( Sc ( m . getFullYear ( ) ) ? Tc : Uc ) [ B ] ; if ( z > ba - m . getDate ( ) ) z -= ba - m . getDate ( ) + 1 , m . setDate ( 1 ) , 11 > B ? m . setMonth ( B + 1 ) : ( m . setMonth ( 0 ) , m . setFullYear ( m . getFullYear ( ) + 1 ) ) ; else { m . setDate ( m . getDate ( ) + z ) ; break } } B = new Date ( m . getFullYear ( ) + 1 , 0 , 4 ) ; z = n ( new Date ( m . getFullYear ( ) ,
0 , 4 ) ) ; B = n ( B ) ; return 0 >= k ( z , m ) ? 0 >= k ( B , m ) ? m . getFullYear ( ) + 1 : m . getFullYear ( ) : m . getFullYear ( ) - 1 } var u = q ( ) [ e + 40 >> 2 ] ; e = { Fa : q ( ) [ e >> 2 ] , Ea : q ( ) [ e + 4 >> 2 ] , M : q ( ) [ e + 8 >> 2 ] , V : q ( ) [ e + 12 >> 2 ] , N : q ( ) [ e + 16 >> 2 ] , A : q ( ) [ e + 20 >> 2 ] , l : q ( ) [ e + 24 >> 2 ] , v : q ( ) [ e + 28 >> 2 ] , Pa : q ( ) [ e + 32 >> 2 ] , Da : q ( ) [ e + 36 >> 2 ] , Ga : u ? J ( u ) : "" } ; c = J ( c ) ; u = { "%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 y in u ) c = c . replace ( new RegExp ( y , "g" ) , u [ y ] ) ; var V = "Sunday Monday Tuesday Wednesday Thursday Friday Saturday" . split ( " " ) , E = "January February March April May June July August September October November December" . split ( " " ) ; u = { "%a" : m => V [ m . l ] . substring ( 0 , 3 ) , "%A" : m => V [ m . l ] , "%b" : m => E [ m . N ] . substring ( 0 , 3 ) , "%B" : m => E [ m . N ] , "%C" : m => g ( ( m . A + 1900 ) / 100 |
0 , 2 ) , "%d" : m => g ( m . V , 2 ) , "%e" : m => f ( m . V , 2 , " " ) , "%g" : m => r ( m ) . toString ( ) . substring ( 2 ) , "%G" : m => r ( m ) , "%H" : m => g ( m . M , 2 ) , "%I" : m => { m = m . M ; 0 == m ? m = 12 : 12 < m && ( m -= 12 ) ; return g ( m , 2 ) } , "%j" : m => { for ( var z = 0 , B = 0 ; B <= m . N - 1 ; z += ( Sc ( m . A + 1900 ) ? Tc : Uc ) [ B ++ ] ) ; return g ( m . V + z , 3 ) } , "%m" : m => g ( m . N + 1 , 2 ) , "%M" : m => g ( m . Ea , 2 ) , "%n" : ( ) => "\n" , "%p" : m => 0 <= m . M && 12 > m . M ? "AM" : "PM" , "%S" : m => g ( m . Fa , 2 ) , "%t" : ( ) => "\t" , "%u" : m => m . l || 7 , "%U" : m => g ( Math . floor ( ( m . v + 7 - m . l ) / 7 ) , 2 ) , "%V" : m => { var z = Math . floor ( ( m . v + 7 - ( m . l + 6 ) % 7 ) / 7 ) ; 2 >= ( m . l + 371 - m . v - 2 ) % 7 && z ++ ; if ( z ) 53 == z &&
( B = ( m . l + 371 - m . v ) % 7 , 4 == B || 3 == B && Sc ( m . A ) || ( z = 1 ) ) ; else { z = 52 ; var B = ( m . l + 7 - m . v - 1 ) % 7 ; ( 4 == B || 5 == B && Sc ( m . A % 400 - 1 ) ) && z ++ } return g ( z , 2 ) } , "%w" : m => m . l , "%W" : m => g ( Math . floor ( ( m . v + 7 - ( m . l + 6 ) % 7 ) / 7 ) , 2 ) , "%y" : m => ( m . A + 1900 ) . toString ( ) . substring ( 2 ) , "%Y" : m => m . A + 1900 , "%z" : m => { m = m . Da ; var z = 0 <= m ; m = Math . abs ( m ) / 60 ; return ( z ? "+" : "-" ) + String ( "0000" + ( m / 60 * 100 + m % 60 ) ) . slice ( - 4 ) } , "%Z" : m => m . Ga , "%%" : ( ) => "%" } ; c = c . replace ( /%%/g , "\x00\x00" ) ; for ( y in u ) c . includes ( y ) && ( c = c . replace ( new RegExp ( y , "g" ) , u [ y ] ( e ) ) ) ; c = c . replace ( /\0\0/g , "%" ) ; y = Vc ( c ) ;
if ( y . length > b ) return 0 ; Wc ( y , a ) ; return y . length - 1 } , Yc = void 0 , Zc = [ ] ; I . R ( ) ; for ( var U , Y = 0 ; 32 > Y ; ++ Y ) yc . push ( Array ( Y ) ) ; var $c = new Float32Array ( 288 ) ; for ( Y = 0 ; 288 > Y ; ++ Y ) X [ Y ] = $c . subarray ( 0 , Y + 1 ) ; var ad = new Int32Array ( 288 ) ; for ( Y = 0 ; 288 > Y ; ++ Y ) Fc [ Y ] = ad . subarray ( 0 , Y + 1 ) ;
( function ( ) { const a = new Map , b = new Map ; let c ; Qc = function ( e , f , g ) { I . g [ e ] . postMessage ( { G : "setAssociatedObject" , T : f , object : g } , [ g ] ) } ; Mc = function ( e ) { return b . get ( e ) } ; Rc = function ( e ) { I . g [ e ] . postMessage ( { G : "syncTimeOrigin" , timeOrigin : performance . timeOrigin } ) } ; Nc = function ( e ) { function f ( { data : g } ) { var k = g . G ; if ( k ) switch ( k ) { case "syncTimeOrigin" : c = performance . timeOrigin - g . timeOrigin ; break ; case "renderPictures" : bd ( g . U , g . wa , g . va , g . O , performance . now ( ) + c ) ; break ; case "onRenderComplete" : cd ( g . U , g . O , { imageBitmaps : g . oa ,
rasterStartMilliseconds : g . ya , rasterEndMilliseconds : g . xa } ) ; break ; case "setAssociatedObject" : b . set ( g . T , g . object ) ; break ; case "disposeAssociatedObject" : g = g . T ; k = b . get ( g ) ; k . close && k . close ( ) ; b . delete ( g ) ; break ; default : console . warn ( ` unrecognized skwasm message: ${ k } ` ) } } e ? I . g [ e ] . addEventListener ( "message" , f ) : addEventListener ( "message" , f ) } ; Jc = function ( e , f , g , k , n ) { I . g [ e ] . postMessage ( { G : "renderPictures" , U : f , wa : g , va : k , O : n } ) } ; Ic = function ( e , f ) { e = new OffscreenCanvas ( e , f ) ; f = Wb ( e ) ; a . set ( f , e ) ; return f } ; Oc = function ( e ,
f , g ) { e = a . get ( e ) ; e . width = f ; e . height = g } ; Gc = function ( e , f , g , k ) { k || ( k = [ ] ) ; e = a . get ( e ) ; k . push ( createImageBitmap ( e , 0 , 0 , f , g ) ) ; return k } ; Pc = async function ( e , f , g , k ) { f = f ? await Promise . all ( f ) : [ ] ; postMessage ( { G : "onRenderComplete" , U : e , O : k , oa : f , ya : g , xa : performance . now ( ) + c } , [ ... f ] ) } ; Hc = function ( e , f , g ) { const k = T . s , n = k . createTexture ( ) ; k . bindTexture ( k . TEXTURE _2D , n ) ; k . pixelStorei ( k . UNPACK _PREMULTIPLY _ALPHA _WEBGL , ! 0 ) ; k . texImage2D ( k . TEXTURE _2D , 0 , k . RGBA , f , g , 0 , k . RGBA , k . UNSIGNED _BYTE , e ) ; k . pixelStorei ( k . UNPACK _PREMULTIPLY _ALPHA _WEBGL ,
! 1 ) ; k . bindTexture ( k . TEXTURE _2D , null ) ; e = Vb ( P ) ; P [ e ] = n ; return e } ; Lc = function ( e , f ) { I . g [ e ] . postMessage ( { G : "disposeAssociatedObject" , T : f } ) } } ) ( ) ;
var dd = [ null , ab , bb , nb , qb , rb , sb , tb , ac , bc , cc , oc , pc , qc , rc , sc , tc , vc ] , qd = { _ _cxa _throw : function ( a , b , c ) { ( new kb ( a ) ) . R ( b , c ) ; lb = a ; mb ++ ; throw lb ; } , _ _emscripten _init _main _thread _js : function ( a ) { ed ( a , ! pa , 1 , ! oa , 65536 , ! 1 ) ; I . ga ( ) } , _ _emscripten _thread _cleanup : function ( a ) { A ? postMessage ( { cmd : "cleanupThread" , thread : a } ) : Xa ( a ) } , _ _pthread _create _js : ob , _ _syscall _fcntl64 : qb , _ _syscall _fstat64 : rb , _ _syscall _ioctl : sb , _ _syscall _openat : tb , _emscripten _get _now _is _monotonic : ( ) => ! 0 , _emscripten _notify _mailbox _postmessage : function ( a ,
b ) { a == b ? setTimeout ( ( ) => gb ( ) ) : A ? postMessage ( { targetThread : a , cmd : "checkMailbox" } ) : ( a = I . g [ a ] ) && a . postMessage ( { cmd : "checkMailbox" } ) } , _emscripten _set _offscreencanvas _size : function ( a , b , c ) { return Zb ( a ) ? $b ( a , b , c ) : ac ( a , b , c ) } , _emscripten _thread _mailbox _await : vb , _emscripten _thread _set _strongref : function ( a ) { x && I . g [ a ] . ref ( ) } , _emscripten _throw _longjmp : ( ) => { throw Infinity ; } , _mmap _js : bc , _munmap _js : cc , abort : ( ) => { za ( "" ) } , emscripten _check _blocking _allowed : function ( ) { } , emscripten _exit _with _live _runtime : ( ) => { Ja += 1 ; throw "unwind" ;
} , emscripten _get _now : ( ) => performance . timeOrigin + performance . now ( ) , emscripten _glBindFramebuffer : dc , emscripten _glClear : ec , emscripten _glClearColor : fc , emscripten _glClearStencil : gc , emscripten _glGetIntegerv : ic , emscripten _receive _on _main _thread _js : function ( a , b , c , e ) { I . La = b ; kc . length = c ; b = e >> 3 ; for ( e = 0 ; e < c ; e ++ ) kc [ e ] = ha ( ) [ b + e ] ; return dd [ a ] . apply ( null , kc ) } , emscripten _resize _heap : a => { var b = p ( ) . length ; a >>>= 0 ; if ( a <= b || 2147483648 < a ) return ! 1 ; for ( var c = 1 ; 4 >= c ; c *= 2 ) { var e = b * ( 1 + . 2 / c ) ; e = Math . min ( e , a + 100663296 ) ; var f = Math ;
e = Math . max ( a , e ) ; a : { f = f . min . call ( f , 2147483648 , e + ( 65536 - e % 65536 ) % 65536 ) - d . buffer . byteLength + 65535 >>> 16 ; try { d . grow ( f ) ; l ( ) ; var g = 1 ; break a } catch ( k ) { } g = void 0 } if ( g ) return ! 0 } return ! 1 } , emscripten _webgl _enable _extension : function ( a , b ) { a = Pb [ a ] ; b = J ( b ) ; b . startsWith ( "GL_" ) && ( b = b . substr ( 3 ) ) ; "ANGLE_instanced_arrays" == b && Eb ( U ) ; "OES_vertex_array_object" == b && Fb ( U ) ; "WEBGL_draw_buffers" == b && Gb ( U ) ; "WEBGL_draw_instanced_base_vertex_base_instance" == b && Hb ( U ) ; "WEBGL_multi_draw_instanced_base_vertex_base_instance" == b && Ib ( U ) ;
"WEBGL_multi_draw" == b && Jb ( U ) ; return ! ! a . s . getExtension ( b ) } , emscripten _webgl _get _current _context : function ( ) { return T ? T . handle : 0 } , emscripten _webgl _make _context _current : function ( a ) { T = Pb [ a ] ; w . Ka = U = T && T . s ; return ! a || U ? 0 : - 5 } , environ _get : oc , environ _sizes _get : pc , exit : cb , fd _close : qc , fd _pread : rc , fd _read : sc , fd _seek : tc , fd _write : vc , glActiveTexture : function ( a ) { U . activeTexture ( a ) } , glAttachShader : function ( a , b ) { U . attachShader ( O [ a ] , Q [ b ] ) } , glBindAttribLocation : function ( a , b , c ) { U . bindAttribLocation ( O [ a ] , b , J ( c ) ) } , glBindBuffer : function ( a ,
b ) { 35051 == a ? U . P = b : 35052 == a && ( U . B = b ) ; U . bindBuffer ( a , Lb [ b ] ) } , glBindFramebuffer : dc , glBindRenderbuffer : function ( a , b ) { U . bindRenderbuffer ( a , Nb [ b ] ) } , glBindSampler : function ( a , b ) { U . bindSampler ( a , R [ b ] ) } , glBindTexture : function ( a , b ) { U . bindTexture ( a , P [ b ] ) } , glBindVertexArray : wc , glBindVertexArrayOES : wc , glBlendColor : function ( a , b , c , e ) { U . blendColor ( a , b , c , e ) } , glBlendEquation : function ( a ) { U . blendEquation ( a ) } , glBlendFunc : function ( a , b ) { U . blendFunc ( a , b ) } , glBlitFramebuffer : function ( a , b , c , e , f , g , k , n , r , u ) { U . blitFramebuffer ( a ,
b , c , e , f , g , k , n , r , u ) } , glBufferData : function ( a , b , c , e ) { 2 <= T . version ? c && b ? U . bufferData ( a , p ( ) , e , c , b ) : U . bufferData ( a , b , e ) : U . bufferData ( a , c ? p ( ) . subarray ( c , c + b ) : b , e ) } , glBufferSubData : function ( a , b , c , e ) { 2 <= T . version ? c && U . bufferSubData ( a , b , p ( ) , e , c ) : U . bufferSubData ( a , b , p ( ) . subarray ( e , e + c ) ) } , glCheckFramebufferStatus : function ( a ) { return U . checkFramebufferStatus ( a ) } , glClear : ec , glClearColor : fc , glClearStencil : gc , glClientWaitSync : function ( a , b , c , e ) { return U . clientWaitSync ( Qb [ a ] , b , ( c >>> 0 ) + 4294967296 * e ) } , glColorMask : function ( a ,
b , c , e ) { U . colorMask ( ! ! a , ! ! b , ! ! c , ! ! e ) } , glCompileShader : function ( a ) { U . compileShader ( Q [ a ] ) } , glCompressedTexImage2D : function ( a , b , c , e , f , g , k , n ) { 2 <= T . version ? U . B || ! k ? U . compressedTexImage2D ( a , b , c , e , f , g , k , n ) : U . compressedTexImage2D ( a , b , c , e , f , g , p ( ) , n , k ) : U . compressedTexImage2D ( a , b , c , e , f , g , n ? p ( ) . subarray ( n , n + k ) : null ) } , glCompressedTexSubImage2D : function ( a , b , c , e , f , g , k , n , r ) { 2 <= T . version ? U . B || ! n ? U . compressedTexSubImage2D ( a , b , c , e , f , g , k , n , r ) : U . compressedTexSubImage2D ( a , b , c , e , f , g , k , p ( ) , r , n ) : U . compressedTexSubImage2D ( a ,
b , c , e , f , g , k , r ? p ( ) . subarray ( r , r + n ) : null ) } , glCopyBufferSubData : function ( a , b , c , e , f ) { U . copyBufferSubData ( a , b , c , e , f ) } , glCopyTexSubImage2D : function ( a , b , c , e , f , g , k , n ) { U . copyTexSubImage2D ( a , b , c , e , f , g , k , n ) } , glCreateProgram : function ( ) { var a = Vb ( O ) , b = U . createProgram ( ) ; b . name = a ; b . L = b . J = b . K = 0 ; b . W = 1 ; O [ a ] = b ; return a } , glCreateShader : function ( a ) { var b = Vb ( Q ) ; Q [ b ] = U . createShader ( a ) ; return b } , glCullFace : function ( a ) { U . cullFace ( a ) } , glDeleteBuffers : function ( a , b ) { for ( var c = 0 ; c < a ; c ++ ) { var e = q ( ) [ b + 4 * c >> 2 ] , f = Lb [ e ] ; f && ( U . deleteBuffer ( f ) ,
f . name = 0 , Lb [ e ] = null , e == U . P && ( U . P = 0 ) , e == U . B && ( U . B = 0 ) ) } } , glDeleteFramebuffers : function ( a , b ) { for ( var c = 0 ; c < a ; ++ c ) { var e = q ( ) [ b + 4 * c >> 2 ] , f = Mb [ e ] ; f && ( U . deleteFramebuffer ( f ) , f . name = 0 , Mb [ e ] = null ) } } , glDeleteProgram : function ( a ) { if ( a ) { var b = O [ a ] ; b ? ( U . deleteProgram ( b ) , b . name = 0 , O [ a ] = null ) : S ( 1281 ) } } , glDeleteRenderbuffers : function ( a , b ) { for ( var c = 0 ; c < a ; c ++ ) { var e = q ( ) [ b + 4 * c >> 2 ] , f = Nb [ e ] ; f && ( U . deleteRenderbuffer ( f ) , f . name = 0 , Nb [ e ] = null ) } } , glDeleteSamplers : function ( a , b ) { for ( var c = 0 ; c < a ; c ++ ) { var e = q ( ) [ b + 4 * c >> 2 ] , f = R [ e ] ;
f && ( U . deleteSampler ( f ) , f . name = 0 , R [ e ] = null ) } } , glDeleteShader : function ( a ) { if ( a ) { var b = Q [ a ] ; b ? ( U . deleteShader ( b ) , Q [ a ] = null ) : S ( 1281 ) } } , glDeleteSync : function ( a ) { if ( a ) { var b = Qb [ a ] ; b ? ( U . deleteSync ( b ) , b . name = 0 , Qb [ a ] = null ) : S ( 1281 ) } } , glDeleteTextures : function ( a , b ) { for ( var c = 0 ; c < a ; c ++ ) { var e = q ( ) [ b + 4 * c >> 2 ] , f = P [ e ] ; f && ( U . deleteTexture ( f ) , f . name = 0 , P [ e ] = null ) } } , glDeleteVertexArrays : xc , glDeleteVertexArraysOES : xc , glDepthMask : function ( a ) { U . depthMask ( ! ! a ) } , glDisable : function ( a ) { U . disable ( a ) } , glDisableVertexAttribArray : function ( a ) { U . disableVertexAttribArray ( a ) } ,
glDrawArrays : function ( a , b , c ) { U . drawArrays ( a , b , c ) } , glDrawArraysInstanced : function ( a , b , c , e ) { U . drawArraysInstanced ( a , b , c , e ) } , glDrawArraysInstancedBaseInstanceWEBGL : function ( a , b , c , e , f ) { U . Z . drawArraysInstancedBaseInstanceWEBGL ( a , b , c , e , f ) } , glDrawBuffers : function ( a , b ) { for ( var c = yc [ a ] , e = 0 ; e < a ; e ++ ) c [ e ] = q ( ) [ b + 4 * e >> 2 ] ; U . drawBuffers ( c ) } , glDrawElements : zc , glDrawElementsInstanced : function ( a , b , c , e , f ) { U . drawElementsInstanced ( a , b , c , e , f ) } , glDrawElementsInstancedBaseVertexBaseInstanceWEBGL : function ( a , b , c , e , f , g , k ) { U . Z . drawElementsInstancedBaseVertexBaseInstanceWEBGL ( a ,
b , c , e , f , g , k ) } , glDrawRangeElements : function ( a , b , c , e , f , g ) { zc ( a , e , f , g ) } , glEnable : function ( a ) { U . enable ( a ) } , glEnableVertexAttribArray : function ( a ) { U . enableVertexAttribArray ( a ) } , glFenceSync : function ( a , b ) { return ( a = U . fenceSync ( a , b ) ) ? ( b = Vb ( Qb ) , a . name = b , Qb [ b ] = a , b ) : 0 } , glFinish : function ( ) { U . finish ( ) } , glFlush : function ( ) { U . flush ( ) } , glFramebufferRenderbuffer : function ( a , b , c , e ) { U . framebufferRenderbuffer ( a , b , c , Nb [ e ] ) } , glFramebufferTexture2D : function ( a , b , c , e , f ) { U . framebufferTexture2D ( a , b , c , P [ e ] , f ) } , glFrontFace : function ( a ) { U . frontFace ( a ) } ,
glGenBuffers : function ( a , b ) { Ac ( a , b , "createBuffer" , Lb ) } , glGenFramebuffers : function ( a , b ) { Ac ( a , b , "createFramebuffer" , Mb ) } , glGenRenderbuffers : function ( a , b ) { Ac ( a , b , "createRenderbuffer" , Nb ) } , glGenSamplers : function ( a , b ) { Ac ( a , b , "createSampler" , R ) } , glGenTextures : function ( a , b ) { Ac ( a , b , "createTexture" , P ) } , glGenVertexArrays : Bc , glGenVertexArraysOES : Bc , glGenerateMipmap : function ( a ) { U . generateMipmap ( a ) } , glGetBufferParameteriv : function ( a , b , c ) { c ? q ( ) [ c >> 2 ] = U . getBufferParameter ( a , b ) : S ( 1281 ) } , glGetError : function ( ) { var a =
U . getError ( ) || Ub ; Ub = 0 ; return a } , glGetFloatv : function ( a , b ) { hc ( a , b , 2 ) } , glGetFramebufferAttachmentParameteriv : function ( a , b , c , e ) { a = U . getFramebufferAttachmentParameter ( a , b , c ) ; if ( a instanceof WebGLRenderbuffer || a instanceof WebGLTexture ) a = a . name | 0 ; q ( ) [ e >> 2 ] = a } , glGetIntegerv : ic , glGetProgramInfoLog : function ( a , b , c , e ) { a = U . getProgramInfoLog ( O [ a ] ) ; null === a && ( a = "(unknown error)" ) ; var f ; 0 < b && e ? f = zb ( a , p ( ) , e , b ) : f = 0 ; b = f ; c && ( q ( ) [ c >> 2 ] = b ) } , glGetProgramiv : function ( a , b , c ) { if ( c ) if ( a >= Kb ) S ( 1281 ) ; else if ( a = O [ a ] , 35716 == b ) a =
U . getProgramInfoLog ( a ) , null === a && ( a = "(unknown error)" ) , q ( ) [ c >> 2 ] = a . length + 1 ; else if ( 35719 == b ) { if ( ! a . L ) for ( b = 0 ; b < U . getProgramParameter ( a , 35718 ) ; ++ b ) a . L = Math . max ( a . L , U . getActiveUniform ( a , b ) . name . length + 1 ) ; q ( ) [ c >> 2 ] = a . L } else if ( 35722 == b ) { if ( ! a . J ) for ( b = 0 ; b < U . getProgramParameter ( a , 35721 ) ; ++ b ) a . J = Math . max ( a . J , U . getActiveAttrib ( a , b ) . name . length + 1 ) ; q ( ) [ c >> 2 ] = a . J } else if ( 35381 == b ) { if ( ! a . K ) for ( b = 0 ; b < U . getProgramParameter ( a , 35382 ) ; ++ b ) a . K = Math . max ( a . K , U . getActiveUniformBlockName ( a , b ) . length + 1 ) ; q ( ) [ c >> 2 ] = a . K } else q ( ) [ c >>
2 ] = U . getProgramParameter ( a , b ) ; else S ( 1281 ) } , glGetRenderbufferParameteriv : function ( a , b , c ) { c ? q ( ) [ c >> 2 ] = U . getRenderbufferParameter ( a , b ) : S ( 1281 ) } , glGetShaderInfoLog : function ( a , b , c , e ) { a = U . getShaderInfoLog ( Q [ a ] ) ; null === a && ( a = "(unknown error)" ) ; var f ; 0 < b && e ? f = zb ( a , p ( ) , e , b ) : f = 0 ; b = f ; c && ( q ( ) [ c >> 2 ] = b ) } , glGetShaderPrecisionFormat : function ( a , b , c , e ) { a = U . getShaderPrecisionFormat ( a , b ) ; q ( ) [ c >> 2 ] = a . rangeMin ; q ( ) [ c + 4 >> 2 ] = a . rangeMax ; q ( ) [ e >> 2 ] = a . precision } , glGetShaderiv : function ( a , b , c ) { c ? 35716 == b ? ( a = U . getShaderInfoLog ( Q [ a ] ) ,
null === a && ( a = "(unknown error)" ) , a = a ? a . length + 1 : 0 , q ( ) [ c >> 2 ] = a ) : 35720 == b ? ( a = ( a = U . getShaderSource ( Q [ a ] ) ) ? a . length + 1 : 0 , q ( ) [ c >> 2 ] = a ) : q ( ) [ c >> 2 ] = U . getShaderParameter ( Q [ a ] , b ) : S ( 1281 ) } , glGetString : function ( a ) { var b = Rb [ a ] ; if ( ! b ) { switch ( a ) { case 7939 : b = U . getSupportedExtensions ( ) || [ ] ; b = b . concat ( b . map ( function ( e ) { return "GL_" + e } ) ) ; b = Ab ( b . join ( " " ) ) ; break ; case 7936 : case 7937 : case 37445 : case 37446 : ( b = U . getParameter ( a ) ) || S ( 1280 ) ; b = b && Ab ( b ) ; break ; case 7938 : b = U . getParameter ( 7938 ) ; b = 2 <= T . version ? "OpenGL ES 3.0 (" + b + ")" :
"OpenGL ES 2.0 (" + b + ")" ; b = Ab ( b ) ; break ; case 35724 : b = U . getParameter ( 35724 ) ; var c = b . match ( /^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/ ) ; null !== c && ( 3 == c [ 1 ] . length && ( c [ 1 ] += "0" ) , b = "OpenGL ES GLSL ES " + c [ 1 ] + " (" + b + ")" ) ; b = Ab ( b ) ; break ; default : S ( 1280 ) } Rb [ a ] = b } return b } , glGetStringi : function ( a , b ) { if ( 2 > T . version ) return S ( 1282 ) , 0 ; var c = Sb [ a ] ; if ( c ) return 0 > b || b >= c . length ? ( S ( 1281 ) , 0 ) : c [ b ] ; switch ( a ) { case 7939 : return c = U . getSupportedExtensions ( ) || [ ] , c = c . concat ( c . map ( function ( e ) { return "GL_" + e } ) ) , c = c . map ( function ( e ) { return Ab ( e ) } ) ,
c = Sb [ a ] = c , 0 > b || b >= c . length ? ( S ( 1281 ) , 0 ) : c [ b ] ; default : return S ( 1280 ) , 0 } } , glGetUniformLocation : function ( a , b ) { b = J ( b ) ; if ( a = O [ a ] ) { var c = a , e = c . H , f = c . ja , g ; if ( ! e ) for ( c . H = e = { } , c . ia = { } , g = 0 ; g < U . getProgramParameter ( c , 35718 ) ; ++ g ) { var k = U . getActiveUniform ( c , g ) ; var n = k . name ; k = k . size ; var r = Cc ( n ) ; r = 0 < r ? n . slice ( 0 , r ) : n ; var u = c . W ; c . W += k ; f [ r ] = [ k , u ] ; for ( n = 0 ; n < k ; ++ n ) e [ u ] = n , c . ia [ u ++ ] = r } c = a . H ; e = 0 ; f = b ; g = Cc ( b ) ; 0 < g && ( e = parseInt ( b . slice ( g + 1 ) ) >>> 0 , f = b . slice ( 0 , g ) ) ; if ( ( f = a . ja [ f ] ) && e < f [ 0 ] && ( e += f [ 1 ] , c [ e ] = c [ e ] || U . getUniformLocation ( a ,
b ) ) ) return e } else S ( 1281 ) ; return - 1 } , glInvalidateFramebuffer : function ( a , b , c ) { for ( var e = yc [ b ] , f = 0 ; f < b ; f ++ ) e [ f ] = q ( ) [ c + 4 * f >> 2 ] ; U . invalidateFramebuffer ( a , e ) } , glInvalidateSubFramebuffer : function ( a , b , c , e , f , g , k ) { for ( var n = yc [ b ] , r = 0 ; r < b ; r ++ ) n [ r ] = q ( ) [ c + 4 * r >> 2 ] ; U . invalidateSubFramebuffer ( a , n , e , f , g , k ) } , glIsSync : function ( a ) { return U . isSync ( Qb [ a ] ) } , glIsTexture : function ( a ) { return ( a = P [ a ] ) ? U . isTexture ( a ) : 0 } , glLineWidth : function ( a ) { U . lineWidth ( a ) } , glLinkProgram : function ( a ) { a = O [ a ] ; U . linkProgram ( a ) ; a . H = 0 ; a . ja = { } } , glMultiDrawArraysInstancedBaseInstanceWEBGL : function ( a ,
b , c , e , f , g ) { U . ea . multiDrawArraysInstancedBaseInstanceWEBGL ( a , q ( ) , b >> 2 , q ( ) , c >> 2 , q ( ) , e >> 2 , t ( ) , f >> 2 , g ) } , glMultiDrawElementsInstancedBaseVertexBaseInstanceWEBGL : function ( a , b , c , e , f , g , k , n ) { U . ea . multiDrawElementsInstancedBaseVertexBaseInstanceWEBGL ( a , q ( ) , b >> 2 , c , q ( ) , e >> 2 , q ( ) , f >> 2 , q ( ) , g >> 2 , t ( ) , k >> 2 , n ) } , glPixelStorei : function ( a , b ) { 3317 == a && ( Tb = b ) ; U . pixelStorei ( a , b ) } , glReadBuffer : function ( a ) { U . readBuffer ( a ) } , glReadPixels : function ( a , b , c , e , f , g , k ) { if ( 2 <= T . version ) if ( U . P ) U . readPixels ( a , b , c , e , f , g , k ) ; else { var n = Dc ( g ) ;
U . readPixels ( a , b , c , e , f , g , n , k >> 31 - Math . clz32 ( n . BYTES _PER _ELEMENT ) ) } else ( k = Ec ( g , f , c , e , k ) ) ? U . readPixels ( a , b , c , e , f , g , k ) : S ( 1280 ) } , glRenderbufferStorage : function ( a , b , c , e ) { U . renderbufferStorage ( a , b , c , e ) } , glRenderbufferStorageMultisample : function ( a , b , c , e , f ) { U . renderbufferStorageMultisample ( a , b , c , e , f ) } , glSamplerParameterf : function ( a , b , c ) { U . samplerParameterf ( R [ a ] , b , c ) } , glSamplerParameteri : function ( a , b , c ) { U . samplerParameteri ( R [ a ] , b , c ) } , glSamplerParameteriv : function ( a , b , c ) { c = q ( ) [ c >> 2 ] ; U . samplerParameteri ( R [ a ] ,
b , c ) } , glScissor : function ( a , b , c , e ) { U . scissor ( a , b , c , e ) } , glShaderSource : function ( a , b , c , e ) { for ( var f = "" , g = 0 ; g < b ; ++ g ) { var k = e ? q ( ) [ e + 4 * g >> 2 ] : - 1 ; f += J ( q ( ) [ c + 4 * g >> 2 ] , 0 > k ? void 0 : k ) } U . shaderSource ( Q [ a ] , f ) } , glStencilFunc : function ( a , b , c ) { U . stencilFunc ( a , b , c ) } , glStencilFuncSeparate : function ( a , b , c , e ) { U . stencilFuncSeparate ( a , b , c , e ) } , glStencilMask : function ( a ) { U . stencilMask ( a ) } , glStencilMaskSeparate : function ( a , b ) { U . stencilMaskSeparate ( a , b ) } , glStencilOp : function ( a , b , c ) { U . stencilOp ( a , b , c ) } , glStencilOpSeparate : function ( a ,
b , c , e ) { U . stencilOpSeparate ( a , b , c , e ) } , glTexImage2D : function ( a , b , c , e , f , g , k , n , r ) { if ( 2 <= T . version ) if ( U . B ) U . texImage2D ( a , b , c , e , f , g , k , n , r ) ; else if ( r ) { var u = Dc ( n ) ; U . texImage2D ( a , b , c , e , f , g , k , n , u , r >> 31 - Math . clz32 ( u . BYTES _PER _ELEMENT ) ) } else U . texImage2D ( a , b , c , e , f , g , k , n , null ) ; else U . texImage2D ( a , b , c , e , f , g , k , n , r ? Ec ( n , k , e , f , r ) : null ) } , glTexParameterf : function ( a , b , c ) { U . texParameterf ( a , b , c ) } , glTexParameterfv : function ( a , b , c ) { c = v ( ) [ c >> 2 ] ; U . texParameterf ( a , b , c ) } , glTexParameteri : function ( a , b , c ) { U . texParameteri ( a , b , c ) } ,
glTexParameteriv : function ( a , b , c ) { c = q ( ) [ c >> 2 ] ; U . texParameteri ( a , b , c ) } , glTexStorage2D : function ( a , b , c , e , f ) { U . texStorage2D ( a , b , c , e , f ) } , glTexSubImage2D : function ( a , b , c , e , f , g , k , n , r ) { if ( 2 <= T . version ) if ( U . B ) U . texSubImage2D ( a , b , c , e , f , g , k , n , r ) ; else if ( r ) { var u = Dc ( n ) ; U . texSubImage2D ( a , b , c , e , f , g , k , n , u , r >> 31 - Math . clz32 ( u . BYTES _PER _ELEMENT ) ) } else U . texSubImage2D ( a , b , c , e , f , g , k , n , null ) ; else u = null , r && ( u = Ec ( n , k , f , g , r ) ) , U . texSubImage2D ( a , b , c , e , f , g , k , n , u ) } , glUniform1f : function ( a , b ) { U . uniform1f ( W ( a ) , b ) } , glUniform1fv : function ( a ,
b , c ) { if ( 2 <= T . version ) b && U . uniform1fv ( W ( a ) , v ( ) , c >> 2 , b ) ; else { if ( 288 >= b ) for ( var e = X [ b - 1 ] , f = 0 ; f < b ; ++ f ) e [ f ] = v ( ) [ c + 4 * f >> 2 ] ; else e = v ( ) . subarray ( c >> 2 , c + 4 * b >> 2 ) ; U . uniform1fv ( W ( a ) , e ) } } , glUniform1i : function ( a , b ) { U . uniform1i ( W ( a ) , b ) } , glUniform1iv : function ( a , b , c ) { if ( 2 <= T . version ) b && U . uniform1iv ( W ( a ) , q ( ) , c >> 2 , b ) ; else { if ( 288 >= b ) for ( var e = Fc [ b - 1 ] , f = 0 ; f < b ; ++ f ) e [ f ] = q ( ) [ c + 4 * f >> 2 ] ; else e = q ( ) . subarray ( c >> 2 , c + 4 * b >> 2 ) ; U . uniform1iv ( W ( a ) , e ) } } , glUniform2f : function ( a , b , c ) { U . uniform2f ( W ( a ) , b , c ) } , glUniform2fv : function ( a , b , c ) { if ( 2 <=
T . version ) b && U . uniform2fv ( W ( a ) , v ( ) , c >> 2 , 2 * b ) ; else { if ( 144 >= b ) for ( var e = X [ 2 * b - 1 ] , f = 0 ; f < 2 * b ; f += 2 ) e [ f ] = v ( ) [ c + 4 * f >> 2 ] , e [ f + 1 ] = v ( ) [ c + ( 4 * f + 4 ) >> 2 ] ; else e = v ( ) . subarray ( c >> 2 , c + 8 * b >> 2 ) ; U . uniform2fv ( W ( a ) , e ) } } , glUniform2i : function ( a , b , c ) { U . uniform2i ( W ( a ) , b , c ) } , glUniform2iv : function ( a , b , c ) { if ( 2 <= T . version ) b && U . uniform2iv ( W ( a ) , q ( ) , c >> 2 , 2 * b ) ; else { if ( 144 >= b ) for ( var e = Fc [ 2 * b - 1 ] , f = 0 ; f < 2 * b ; f += 2 ) e [ f ] = q ( ) [ c + 4 * f >> 2 ] , e [ f + 1 ] = q ( ) [ c + ( 4 * f + 4 ) >> 2 ] ; else e = q ( ) . subarray ( c >> 2 , c + 8 * b >> 2 ) ; U . uniform2iv ( W ( a ) , e ) } } , glUniform3f : function ( a ,
b , c , e ) { U . uniform3f ( W ( a ) , b , c , e ) } , glUniform3fv : function ( a , b , c ) { if ( 2 <= T . version ) b && U . uniform3fv ( W ( a ) , v ( ) , c >> 2 , 3 * b ) ; else { if ( 96 >= b ) for ( var e = X [ 3 * b - 1 ] , f = 0 ; f < 3 * b ; f += 3 ) e [ f ] = v ( ) [ c + 4 * f >> 2 ] , e [ f + 1 ] = v ( ) [ c + ( 4 * f + 4 ) >> 2 ] , e [ f + 2 ] = v ( ) [ c + ( 4 * f + 8 ) >> 2 ] ; else e = v ( ) . subarray ( c >> 2 , c + 12 * b >> 2 ) ; U . uniform3fv ( W ( a ) , e ) } } , glUniform3i : function ( a , b , c , e ) { U . uniform3i ( W ( a ) , b , c , e ) } , glUniform3iv : function ( a , b , c ) { if ( 2 <= T . version ) b && U . uniform3iv ( W ( a ) , q ( ) , c >> 2 , 3 * b ) ; else { if ( 96 >= b ) for ( var e = Fc [ 3 * b - 1 ] , f = 0 ; f < 3 * b ; f += 3 ) e [ f ] = q ( ) [ c + 4 * f >> 2 ] , e [ f + 1 ] = q ( ) [ c +
( 4 * f + 4 ) >> 2 ] , e [ f + 2 ] = q ( ) [ c + ( 4 * f + 8 ) >> 2 ] ; else e = q ( ) . subarray ( c >> 2 , c + 12 * b >> 2 ) ; U . uniform3iv ( W ( a ) , e ) } } , glUniform4f : function ( a , b , c , e , f ) { U . uniform4f ( W ( a ) , b , c , e , f ) } , glUniform4fv : function ( a , b , c ) { if ( 2 <= T . version ) b && U . uniform4fv ( W ( a ) , v ( ) , c >> 2 , 4 * b ) ; else { if ( 72 >= b ) { var e = X [ 4 * b - 1 ] , f = v ( ) ; c >>= 2 ; for ( var g = 0 ; g < 4 * b ; g += 4 ) { var k = c + g ; e [ g ] = f [ k ] ; e [ g + 1 ] = f [ k + 1 ] ; e [ g + 2 ] = f [ k + 2 ] ; e [ g + 3 ] = f [ k + 3 ] } } else e = v ( ) . subarray ( c >> 2 , c + 16 * b >> 2 ) ; U . uniform4fv ( W ( a ) , e ) } } , glUniform4i : function ( a , b , c , e , f ) { U . uniform4i ( W ( a ) , b , c , e , f ) } , glUniform4iv : function ( a ,
b , c ) { if ( 2 <= T . version ) b && U . uniform4iv ( W ( a ) , q ( ) , c >> 2 , 4 * b ) ; else { if ( 72 >= b ) for ( var e = Fc [ 4 * b - 1 ] , f = 0 ; f < 4 * b ; f += 4 ) e [ f ] = q ( ) [ c + 4 * f >> 2 ] , e [ f + 1 ] = q ( ) [ c + ( 4 * f + 4 ) >> 2 ] , e [ f + 2 ] = q ( ) [ c + ( 4 * f + 8 ) >> 2 ] , e [ f + 3 ] = q ( ) [ c + ( 4 * f + 12 ) >> 2 ] ; else e = q ( ) . subarray ( c >> 2 , c + 16 * b >> 2 ) ; U . uniform4iv ( W ( a ) , e ) } } , glUniformMatrix2fv : function ( a , b , c , e ) { if ( 2 <= T . version ) b && U . uniformMatrix2fv ( W ( a ) , ! ! c , v ( ) , e >> 2 , 4 * b ) ; else { if ( 72 >= b ) for ( var f = X [ 4 * b - 1 ] , g = 0 ; g < 4 * b ; g += 4 ) f [ g ] = v ( ) [ e + 4 * g >> 2 ] , f [ g + 1 ] = v ( ) [ e + ( 4 * g + 4 ) >> 2 ] , f [ g + 2 ] = v ( ) [ e + ( 4 * g + 8 ) >> 2 ] , f [ g + 3 ] = v ( ) [ e + ( 4 * g + 12 ) >> 2 ] ; else f =
v ( ) . subarray ( e >> 2 , e + 16 * b >> 2 ) ; U . uniformMatrix2fv ( W ( a ) , ! ! c , f ) } } , glUniformMatrix3fv : function ( a , b , c , e ) { if ( 2 <= T . version ) b && U . uniformMatrix3fv ( W ( a ) , ! ! c , v ( ) , e >> 2 , 9 * b ) ; else { if ( 32 >= b ) for ( var f = X [ 9 * b - 1 ] , g = 0 ; g < 9 * b ; g += 9 ) f [ g ] = v ( ) [ e + 4 * g >> 2 ] , f [ g + 1 ] = v ( ) [ e + ( 4 * g + 4 ) >> 2 ] , f [ g + 2 ] = v ( ) [ e + ( 4 * g + 8 ) >> 2 ] , f [ g + 3 ] = v ( ) [ e + ( 4 * g + 12 ) >> 2 ] , f [ g + 4 ] = v ( ) [ e + ( 4 * g + 16 ) >> 2 ] , f [ g + 5 ] = v ( ) [ e + ( 4 * g + 20 ) >> 2 ] , f [ g + 6 ] = v ( ) [ e + ( 4 * g + 24 ) >> 2 ] , f [ g + 7 ] = v ( ) [ e + ( 4 * g + 28 ) >> 2 ] , f [ g + 8 ] = v ( ) [ e + ( 4 * g + 32 ) >> 2 ] ; else f = v ( ) . subarray ( e >> 2 , e + 36 * b >> 2 ) ; U . uniformMatrix3fv ( W ( a ) , ! ! c , f ) } } ,
glUniformMatrix4fv : function ( a , b , c , e ) { if ( 2 <= T . version ) b && U . uniformMatrix4fv ( W ( a ) , ! ! c , v ( ) , e >> 2 , 16 * b ) ; else { if ( 18 >= b ) { var f = X [ 16 * b - 1 ] , g = v ( ) ; e >>= 2 ; for ( var k = 0 ; k < 16 * b ; k += 16 ) { var n = e + k ; f [ k ] = g [ n ] ; f [ k + 1 ] = g [ n + 1 ] ; f [ k + 2 ] = g [ n + 2 ] ; f [ k + 3 ] = g [ n + 3 ] ; f [ k + 4 ] = g [ n + 4 ] ; f [ k + 5 ] = g [ n + 5 ] ; f [ k + 6 ] = g [ n + 6 ] ; f [ k + 7 ] = g [ n + 7 ] ; f [ k + 8 ] = g [ n + 8 ] ; f [ k + 9 ] = g [ n + 9 ] ; f [ k + 10 ] = g [ n + 10 ] ; f [ k + 11 ] = g [ n + 11 ] ; f [ k + 12 ] = g [ n + 12 ] ; f [ k + 13 ] = g [ n + 13 ] ; f [ k + 14 ] = g [ n + 14 ] ; f [ k + 15 ] = g [ n + 15 ] } } else f = v ( ) . subarray ( e >> 2 , e + 64 * b >> 2 ) ; U . uniformMatrix4fv ( W ( a ) , ! ! c , f ) } } , glUseProgram : function ( a ) { a =
O [ a ] ; U . useProgram ( a ) ; U . la = a } , glVertexAttrib1f : function ( a , b ) { U . vertexAttrib1f ( a , b ) } , glVertexAttrib2fv : function ( a , b ) { U . vertexAttrib2f ( a , v ( ) [ b >> 2 ] , v ( ) [ b + 4 >> 2 ] ) } , glVertexAttrib3fv : function ( a , b ) { U . vertexAttrib3f ( a , v ( ) [ b >> 2 ] , v ( ) [ b + 4 >> 2 ] , v ( ) [ b + 8 >> 2 ] ) } , glVertexAttrib4fv : function ( a , b ) { U . vertexAttrib4f ( a , v ( ) [ b >> 2 ] , v ( ) [ b + 4 >> 2 ] , v ( ) [ b + 8 >> 2 ] , v ( ) [ b + 12 >> 2 ] ) } , glVertexAttribDivisor : function ( a , b ) { U . vertexAttribDivisor ( a , b ) } , glVertexAttribIPointer : function ( a , b , c , e , f ) { U . vertexAttribIPointer ( a , b , c , e , f ) } , glVertexAttribPointer : function ( a ,
b , c , e , f , g ) { U . vertexAttribPointer ( a , b , c , ! ! e , f , g ) } , glViewport : function ( a , b , c , e ) { U . viewport ( a , b , c , e ) } , glWaitSync : function ( a , b , c , e ) { U . waitSync ( Qb [ a ] , b , ( c >>> 0 ) + 4294967296 * e ) } , invoke _ii : fd , invoke _iii : gd , invoke _iiii : hd , invoke _iiiii : jd , invoke _iiiiiii : kd , invoke _vi : ld , invoke _vii : md , invoke _viii : nd , invoke _viiii : od , invoke _viiiiiii : pd , memory : d || w . wasmMemory , skwasm _captureImageBitmap : Gc , skwasm _createGlTextureFromTextureSource : Hc , skwasm _createOffscreenCanvas : Ic , skwasm _dispatchRenderPictures : Jc , skwasm _disposeAssociatedObjectOnThread : Lc ,
skwasm _getAssociatedObject : Mc , skwasm _registerMessageListener : Nc , skwasm _resizeCanvas : Oc , skwasm _resolveAndPostImages : Pc , skwasm _setAssociatedObjectOnThread : Qc , skwasm _syncTimeOriginForThread : Rc , strftime _l : ( a , b , c , e ) => Xc ( a , b , c , e ) } ;
( function ( ) { function a ( c , e ) { F = c = c . exports ; w . wasmExports = F ; I . ha . push ( F . _emscripten _tls _init ) ; G = F . _ _indirect _function _table ; Ha . unshift ( F . _ _wasm _call _ctors ) ; Aa = e ; Oa ( ) ; return c } var b = { env : qd , wasi _snapshot _preview1 : qd } ; Na ( ) ; if ( w . instantiateWasm ) try { return w . instantiateWasm ( b , a ) } catch ( c ) { D ( "Module.instantiateWasm callback failed with error: " + c ) , ka ( c ) } Ua ( b , function ( c ) { a ( c . instance , c . module ) } ) . catch ( ka ) ; return { } } ) ( ) ; w . _canvas _saveLayer = ( a , b , c , e ) => ( w . _canvas _saveLayer = F . canvas _saveLayer ) ( a , b , c , e ) ;
w . _canvas _save = a => ( w . _canvas _save = F . canvas _save ) ( a ) ; w . _canvas _restore = a => ( w . _canvas _restore = F . canvas _restore ) ( a ) ; w . _canvas _restoreToCount = ( a , b ) => ( w . _canvas _restoreToCount = F . canvas _restoreToCount ) ( a , b ) ; w . _canvas _getSaveCount = a => ( w . _canvas _getSaveCount = F . canvas _getSaveCount ) ( a ) ; w . _canvas _translate = ( a , b , c ) => ( w . _canvas _translate = F . canvas _translate ) ( a , b , c ) ; w . _canvas _scale = ( a , b , c ) => ( w . _canvas _scale = F . canvas _scale ) ( a , b , c ) ; w . _canvas _rotate = ( a , b ) => ( w . _canvas _rotate = F . canvas _rotate ) ( a , b ) ;
w . _canvas _skew = ( a , b , c ) => ( w . _canvas _skew = F . canvas _skew ) ( a , b , c ) ; w . _canvas _transform = ( a , b ) => ( w . _canvas _transform = F . canvas _transform ) ( a , b ) ; w . _canvas _clipRect = ( a , b , c , e ) => ( w . _canvas _clipRect = F . canvas _clipRect ) ( a , b , c , e ) ; w . _canvas _clipRRect = ( a , b , c ) => ( w . _canvas _clipRRect = F . canvas _clipRRect ) ( a , b , c ) ; w . _canvas _clipPath = ( a , b , c ) => ( w . _canvas _clipPath = F . canvas _clipPath ) ( a , b , c ) ; w . _canvas _drawColor = ( a , b , c ) => ( w . _canvas _drawColor = F . canvas _drawColor ) ( a , b , c ) ;
w . _canvas _drawLine = ( a , b , c , e , f , g ) => ( w . _canvas _drawLine = F . canvas _drawLine ) ( a , b , c , e , f , g ) ; w . _canvas _drawPaint = ( a , b ) => ( w . _canvas _drawPaint = F . canvas _drawPaint ) ( a , b ) ; w . _canvas _drawRect = ( a , b , c ) => ( w . _canvas _drawRect = F . canvas _drawRect ) ( a , b , c ) ; w . _canvas _drawRRect = ( a , b , c ) => ( w . _canvas _drawRRect = F . canvas _drawRRect ) ( a , b , c ) ; w . _canvas _drawDRRect = ( a , b , c , e ) => ( w . _canvas _drawDRRect = F . canvas _drawDRRect ) ( a , b , c , e ) ; w . _canvas _drawOval = ( a , b , c ) => ( w . _canvas _drawOval = F . canvas _drawOval ) ( a , b , c ) ;
w . _canvas _drawCircle = ( a , b , c , e , f ) => ( w . _canvas _drawCircle = F . canvas _drawCircle ) ( a , b , c , e , f ) ; w . _canvas _drawArc = ( a , b , c , e , f , g ) => ( w . _canvas _drawArc = F . canvas _drawArc ) ( a , b , c , e , f , g ) ; w . _canvas _drawPath = ( a , b , c ) => ( w . _canvas _drawPath = F . canvas _drawPath ) ( a , b , c ) ; w . _canvas _drawShadow = ( a , b , c , e , f , g ) => ( w . _canvas _drawShadow = F . canvas _drawShadow ) ( a , b , c , e , f , g ) ; w . _canvas _drawParagraph = ( a , b , c , e ) => ( w . _canvas _drawParagraph = F . canvas _drawParagraph ) ( a , b , c , e ) ;
w . _canvas _drawPicture = ( a , b ) => ( w . _canvas _drawPicture = F . canvas _drawPicture ) ( a , b ) ; w . _canvas _drawImage = ( a , b , c , e , f , g ) => ( w . _canvas _drawImage = F . canvas _drawImage ) ( a , b , c , e , f , g ) ; w . _canvas _drawImageRect = ( a , b , c , e , f , g ) => ( w . _canvas _drawImageRect = F . canvas _drawImageRect ) ( a , b , c , e , f , g ) ; w . _canvas _drawImageNine = ( a , b , c , e , f , g ) => ( w . _canvas _drawImageNine = F . canvas _drawImageNine ) ( a , b , c , e , f , g ) ; w . _canvas _drawVertices = ( a , b , c , e ) => ( w . _canvas _drawVertices = F . canvas _drawVertices ) ( a , b , c , e ) ;
w . _canvas _drawPoints = ( a , b , c , e , f ) => ( w . _canvas _drawPoints = F . canvas _drawPoints ) ( a , b , c , e , f ) ; w . _canvas _drawAtlas = ( a , b , c , e , f , g , k , n , r ) => ( w . _canvas _drawAtlas = F . canvas _drawAtlas ) ( a , b , c , e , f , g , k , n , r ) ; w . _canvas _getTransform = ( a , b ) => ( w . _canvas _getTransform = F . canvas _getTransform ) ( a , b ) ; w . _canvas _getLocalClipBounds = ( a , b ) => ( w . _canvas _getLocalClipBounds = F . canvas _getLocalClipBounds ) ( a , b ) ; w . _canvas _getDeviceClipBounds = ( a , b ) => ( w . _canvas _getDeviceClipBounds = F . canvas _getDeviceClipBounds ) ( a , b ) ;
w . _contourMeasureIter _create = ( a , b , c ) => ( w . _contourMeasureIter _create = F . contourMeasureIter _create ) ( a , b , c ) ; w . _contourMeasureIter _next = a => ( w . _contourMeasureIter _next = F . contourMeasureIter _next ) ( a ) ; w . _contourMeasureIter _dispose = a => ( w . _contourMeasureIter _dispose = F . contourMeasureIter _dispose ) ( a ) ; w . _contourMeasure _dispose = a => ( w . _contourMeasure _dispose = F . contourMeasure _dispose ) ( a ) ; w . _contourMeasure _length = a => ( w . _contourMeasure _length = F . contourMeasure _length ) ( a ) ;
w . _contourMeasure _isClosed = a => ( w . _contourMeasure _isClosed = F . contourMeasure _isClosed ) ( a ) ; w . _contourMeasure _getPosTan = ( a , b , c , e ) => ( w . _contourMeasure _getPosTan = F . contourMeasure _getPosTan ) ( a , b , c , e ) ; w . _contourMeasure _getSegment = ( a , b , c , e ) => ( w . _contourMeasure _getSegment = F . contourMeasure _getSegment ) ( a , b , c , e ) ; w . _skData _create = a => ( w . _skData _create = F . skData _create ) ( a ) ; w . _skData _getPointer = a => ( w . _skData _getPointer = F . skData _getPointer ) ( a ) ; w . _skData _getConstPointer = a => ( w . _skData _getConstPointer = F . skData _getConstPointer ) ( a ) ;
w . _skData _getSize = a => ( w . _skData _getSize = F . skData _getSize ) ( a ) ; w . _skData _dispose = a => ( w . _skData _dispose = F . skData _dispose ) ( a ) ; w . _imageFilter _createBlur = ( a , b , c ) => ( w . _imageFilter _createBlur = F . imageFilter _createBlur ) ( a , b , c ) ; w . _imageFilter _createDilate = ( a , b ) => ( w . _imageFilter _createDilate = F . imageFilter _createDilate ) ( a , b ) ; w . _imageFilter _createErode = ( a , b ) => ( w . _imageFilter _createErode = F . imageFilter _createErode ) ( a , b ) ;
w . _imageFilter _createMatrix = ( a , b ) => ( w . _imageFilter _createMatrix = F . imageFilter _createMatrix ) ( a , b ) ; w . _imageFilter _createFromColorFilter = a => ( w . _imageFilter _createFromColorFilter = F . imageFilter _createFromColorFilter ) ( a ) ; w . _imageFilter _compose = ( a , b ) => ( w . _imageFilter _compose = F . imageFilter _compose ) ( a , b ) ; w . _imageFilter _dispose = a => ( w . _imageFilter _dispose = F . imageFilter _dispose ) ( a ) ; w . _imageFilter _getFilterBounds = ( a , b ) => ( w . _imageFilter _getFilterBounds = F . imageFilter _getFilterBounds ) ( a , b ) ;
w . _colorFilter _createMode = ( a , b ) => ( w . _colorFilter _createMode = F . colorFilter _createMode ) ( a , b ) ; w . _colorFilter _createMatrix = a => ( w . _colorFilter _createMatrix = F . colorFilter _createMatrix ) ( a ) ; w . _colorFilter _createSRGBToLinearGamma = ( ) => ( w . _colorFilter _createSRGBToLinearGamma = F . colorFilter _createSRGBToLinearGamma ) ( ) ; w . _colorFilter _createLinearToSRGBGamma = ( ) => ( w . _colorFilter _createLinearToSRGBGamma = F . colorFilter _createLinearToSRGBGamma ) ( ) ;
w . _colorFilter _compose = ( a , b ) => ( w . _colorFilter _compose = F . colorFilter _compose ) ( a , b ) ; w . _colorFilter _dispose = a => ( w . _colorFilter _dispose = F . colorFilter _dispose ) ( a ) ; w . _maskFilter _createBlur = ( a , b ) => ( w . _maskFilter _createBlur = F . maskFilter _createBlur ) ( a , b ) ; w . _maskFilter _dispose = a => ( w . _maskFilter _dispose = F . maskFilter _dispose ) ( a ) ; w . _fontCollection _create = ( ) => ( w . _fontCollection _create = F . fontCollection _create ) ( ) ; w . _fontCollection _dispose = a => ( w . _fontCollection _dispose = F . fontCollection _dispose ) ( a ) ;
w . _typeface _create = a => ( w . _typeface _create = F . typeface _create ) ( a ) ; w . _typeface _dispose = a => ( w . _typeface _dispose = F . typeface _dispose ) ( a ) ; w . _typefaces _filterCoveredCodePoints = ( a , b , c , e ) => ( w . _typefaces _filterCoveredCodePoints = F . typefaces _filterCoveredCodePoints ) ( a , b , c , e ) ; w . _fontCollection _registerTypeface = ( a , b , c ) => ( w . _fontCollection _registerTypeface = F . fontCollection _registerTypeface ) ( a , b , c ) ; w . _fontCollection _clearCaches = a => ( w . _fontCollection _clearCaches = F . fontCollection _clearCaches ) ( a ) ;
w . _image _createFromPicture = ( a , b , c ) => ( w . _image _createFromPicture = F . image _createFromPicture ) ( a , b , c ) ; w . _image _createFromPixels = ( a , b , c , e , f ) => ( w . _image _createFromPixels = F . image _createFromPixels ) ( a , b , c , e , f ) ; w . _image _createFromTextureSource = ( a , b , c , e ) => ( w . _image _createFromTextureSource = F . image _createFromTextureSource ) ( a , b , c , e ) ; w . _image _ref = a => ( w . _image _ref = F . image _ref ) ( a ) ; w . _image _dispose = a => ( w . _image _dispose = F . image _dispose ) ( a ) ; w . _image _getWidth = a => ( w . _image _getWidth = F . image _getWidth ) ( a ) ;
w . _image _getHeight = a => ( w . _image _getHeight = F . image _getHeight ) ( a ) ; w . _paint _create = ( ) => ( w . _paint _create = F . paint _create ) ( ) ; w . _paint _dispose = a => ( w . _paint _dispose = F . paint _dispose ) ( a ) ; w . _paint _setBlendMode = ( a , b ) => ( w . _paint _setBlendMode = F . paint _setBlendMode ) ( a , b ) ; w . _paint _setStyle = ( a , b ) => ( w . _paint _setStyle = F . paint _setStyle ) ( a , b ) ; w . _paint _getStyle = a => ( w . _paint _getStyle = F . paint _getStyle ) ( a ) ; w . _paint _setStrokeWidth = ( a , b ) => ( w . _paint _setStrokeWidth = F . paint _setStrokeWidth ) ( a , b ) ;
w . _paint _getStrokeWidth = a => ( w . _paint _getStrokeWidth = F . paint _getStrokeWidth ) ( a ) ; w . _paint _setStrokeCap = ( a , b ) => ( w . _paint _setStrokeCap = F . paint _setStrokeCap ) ( a , b ) ; w . _paint _getStrokeCap = a => ( w . _paint _getStrokeCap = F . paint _getStrokeCap ) ( a ) ; w . _paint _setStrokeJoin = ( a , b ) => ( w . _paint _setStrokeJoin = F . paint _setStrokeJoin ) ( a , b ) ; w . _paint _getStrokeJoin = a => ( w . _paint _getStrokeJoin = F . paint _getStrokeJoin ) ( a ) ; w . _paint _setAntiAlias = ( a , b ) => ( w . _paint _setAntiAlias = F . paint _setAntiAlias ) ( a , b ) ;
w . _paint _getAntiAlias = a => ( w . _paint _getAntiAlias = F . paint _getAntiAlias ) ( a ) ; w . _paint _setColorInt = ( a , b ) => ( w . _paint _setColorInt = F . paint _setColorInt ) ( a , b ) ; w . _paint _getColorInt = a => ( w . _paint _getColorInt = F . paint _getColorInt ) ( a ) ; w . _paint _setMiterLimit = ( a , b ) => ( w . _paint _setMiterLimit = F . paint _setMiterLimit ) ( a , b ) ; w . _paint _getMiterLImit = a => ( w . _paint _getMiterLImit = F . paint _getMiterLImit ) ( a ) ; w . _paint _setShader = ( a , b ) => ( w . _paint _setShader = F . paint _setShader ) ( a , b ) ;
w . _paint _setImageFilter = ( a , b ) => ( w . _paint _setImageFilter = F . paint _setImageFilter ) ( a , b ) ; w . _paint _setColorFilter = ( a , b ) => ( w . _paint _setColorFilter = F . paint _setColorFilter ) ( a , b ) ; w . _paint _setMaskFilter = ( a , b ) => ( w . _paint _setMaskFilter = F . paint _setMaskFilter ) ( a , b ) ; w . _path _create = ( ) => ( w . _path _create = F . path _create ) ( ) ; w . _path _dispose = a => ( w . _path _dispose = F . path _dispose ) ( a ) ; w . _path _copy = a => ( w . _path _copy = F . path _copy ) ( a ) ; w . _path _setFillType = ( a , b ) => ( w . _path _setFillType = F . path _setFillType ) ( a , b ) ;
w . _path _getFillType = a => ( w . _path _getFillType = F . path _getFillType ) ( a ) ; w . _path _moveTo = ( a , b , c ) => ( w . _path _moveTo = F . path _moveTo ) ( a , b , c ) ; w . _path _relativeMoveTo = ( a , b , c ) => ( w . _path _relativeMoveTo = F . path _relativeMoveTo ) ( a , b , c ) ; w . _path _lineTo = ( a , b , c ) => ( w . _path _lineTo = F . path _lineTo ) ( a , b , c ) ; w . _path _relativeLineTo = ( a , b , c ) => ( w . _path _relativeLineTo = F . path _relativeLineTo ) ( a , b , c ) ; w . _path _quadraticBezierTo = ( a , b , c , e , f ) => ( w . _path _quadraticBezierTo = F . path _quadraticBezierTo ) ( a , b , c , e , f ) ;
w . _path _relativeQuadraticBezierTo = ( a , b , c , e , f ) => ( w . _path _relativeQuadraticBezierTo = F . path _relativeQuadraticBezierTo ) ( a , b , c , e , f ) ; w . _path _cubicTo = ( a , b , c , e , f , g , k ) => ( w . _path _cubicTo = F . path _cubicTo ) ( a , b , c , e , f , g , k ) ; w . _path _relativeCubicTo = ( a , b , c , e , f , g , k ) => ( w . _path _relativeCubicTo = F . path _relativeCubicTo ) ( a , b , c , e , f , g , k ) ; w . _path _conicTo = ( a , b , c , e , f , g ) => ( w . _path _conicTo = F . path _conicTo ) ( a , b , c , e , f , g ) ; w . _path _relativeConicTo = ( a , b , c , e , f , g ) => ( w . _path _relativeConicTo = F . path _relativeConicTo ) ( a , b , c , e , f , g ) ;
w . _path _arcToOval = ( a , b , c , e , f ) => ( w . _path _arcToOval = F . path _arcToOval ) ( a , b , c , e , f ) ; w . _path _arcToRotated = ( a , b , c , e , f , g , k , n ) => ( w . _path _arcToRotated = F . path _arcToRotated ) ( a , b , c , e , f , g , k , n ) ; w . _path _relativeArcToRotated = ( a , b , c , e , f , g , k , n ) => ( w . _path _relativeArcToRotated = F . path _relativeArcToRotated ) ( a , b , c , e , f , g , k , n ) ; w . _path _addRect = ( a , b ) => ( w . _path _addRect = F . path _addRect ) ( a , b ) ; w . _path _addOval = ( a , b ) => ( w . _path _addOval = F . path _addOval ) ( a , b ) ; w . _path _addArc = ( a , b , c , e ) => ( w . _path _addArc = F . path _addArc ) ( a , b , c , e ) ;
w . _path _addPolygon = ( a , b , c , e ) => ( w . _path _addPolygon = F . path _addPolygon ) ( a , b , c , e ) ; w . _path _addRRect = ( a , b ) => ( w . _path _addRRect = F . path _addRRect ) ( a , b ) ; w . _path _addPath = ( a , b , c , e ) => ( w . _path _addPath = F . path _addPath ) ( a , b , c , e ) ; w . _path _close = a => ( w . _path _close = F . path _close ) ( a ) ; w . _path _reset = a => ( w . _path _reset = F . path _reset ) ( a ) ; w . _path _contains = ( a , b , c ) => ( w . _path _contains = F . path _contains ) ( a , b , c ) ; w . _path _transform = ( a , b ) => ( w . _path _transform = F . path _transform ) ( a , b ) ;
w . _path _getBounds = ( a , b ) => ( w . _path _getBounds = F . path _getBounds ) ( a , b ) ; w . _path _combine = ( a , b , c ) => ( w . _path _combine = F . path _combine ) ( a , b , c ) ; w . _pictureRecorder _create = ( ) => ( w . _pictureRecorder _create = F . pictureRecorder _create ) ( ) ; w . _pictureRecorder _dispose = a => ( w . _pictureRecorder _dispose = F . pictureRecorder _dispose ) ( a ) ; w . _pictureRecorder _beginRecording = ( a , b ) => ( w . _pictureRecorder _beginRecording = F . pictureRecorder _beginRecording ) ( a , b ) ; w . _pictureRecorder _endRecording = a => ( w . _pictureRecorder _endRecording = F . pictureRecorder _endRecording ) ( a ) ;
w . _picture _getCullRect = ( a , b ) => ( w . _picture _getCullRect = F . picture _getCullRect ) ( a , b ) ; w . _picture _dispose = a => ( w . _picture _dispose = F . picture _dispose ) ( a ) ; w . _picture _approximateBytesUsed = a => ( w . _picture _approximateBytesUsed = F . picture _approximateBytesUsed ) ( a ) ; w . _shader _createLinearGradient = ( a , b , c , e , f , g ) => ( w . _shader _createLinearGradient = F . shader _createLinearGradient ) ( a , b , c , e , f , g ) ; w . _shader _createRadialGradient = ( a , b , c , e , f , g , k , n ) => ( w . _shader _createRadialGradient = F . shader _createRadialGradient ) ( a , b , c , e , f , g , k , n ) ;
w . _shader _createConicalGradient = ( a , b , c , e , f , g , k , n ) => ( w . _shader _createConicalGradient = F . shader _createConicalGradient ) ( a , b , c , e , f , g , k , n ) ; w . _shader _createSweepGradient = ( a , b , c , e , f , g , k , n , r ) => ( w . _shader _createSweepGradient = F . shader _createSweepGradient ) ( a , b , c , e , f , g , k , n , r ) ; w . _shader _dispose = a => ( w . _shader _dispose = F . shader _dispose ) ( a ) ; w . _runtimeEffect _create = a => ( w . _runtimeEffect _create = F . runtimeEffect _create ) ( a ) ; w . _runtimeEffect _dispose = a => ( w . _runtimeEffect _dispose = F . runtimeEffect _dispose ) ( a ) ;
w . _runtimeEffect _getUniformSize = a => ( w . _runtimeEffect _getUniformSize = F . runtimeEffect _getUniformSize ) ( a ) ; w . _shader _createRuntimeEffectShader = ( a , b , c , e ) => ( w . _shader _createRuntimeEffectShader = F . shader _createRuntimeEffectShader ) ( a , b , c , e ) ; w . _shader _createFromImage = ( a , b , c , e , f ) => ( w . _shader _createFromImage = F . shader _createFromImage ) ( a , b , c , e , f ) ; w . _skString _allocate = a => ( w . _skString _allocate = F . skString _allocate ) ( a ) ; w . _skString _getData = a => ( w . _skString _getData = F . skString _getData ) ( a ) ;
w . _skString _free = a => ( w . _skString _free = F . skString _free ) ( a ) ; w . _skString16 _allocate = a => ( w . _skString16 _allocate = F . skString16 _allocate ) ( a ) ; w . _skString16 _getData = a => ( w . _skString16 _getData = F . skString16 _getData ) ( a ) ; w . _skString16 _free = a => ( w . _skString16 _free = F . skString16 _free ) ( a ) ; var Db = ( a , b , c , e , f ) => ( Db = F . emscripten _dispatch _to _thread _ ) ( a , b , c , e , f ) ; w . _surface _create = ( ) => ( w . _surface _create = F . surface _create ) ( ) ; w . _surface _getThreadId = a => ( w . _surface _getThreadId = F . surface _getThreadId ) ( a ) ;
w . _surface _setCallbackHandler = ( a , b ) => ( w . _surface _setCallbackHandler = F . surface _setCallbackHandler ) ( a , b ) ; w . _surface _destroy = a => ( w . _surface _destroy = F . surface _destroy ) ( a ) ; w . _surface _renderPictures = ( a , b , c ) => ( w . _surface _renderPictures = F . surface _renderPictures ) ( a , b , c ) ; var bd = w . _surface _renderPicturesOnWorker = ( a , b , c , e , f ) => ( bd = w . _surface _renderPicturesOnWorker = F . surface _renderPicturesOnWorker ) ( a , b , c , e , f ) ; w . _surface _rasterizeImage = ( a , b , c ) => ( w . _surface _rasterizeImage = F . surface _rasterizeImage ) ( a , b , c ) ;
var cd = w . _surface _onRenderComplete = ( a , b , c ) => ( cd = w . _surface _onRenderComplete = F . surface _onRenderComplete ) ( a , b , c ) ; w . _lineMetrics _create = ( a , b , c , e , f , g , k , n , r ) => ( w . _lineMetrics _create = F . lineMetrics _create ) ( a , b , c , e , f , g , k , n , r ) ; w . _lineMetrics _dispose = a => ( w . _lineMetrics _dispose = F . lineMetrics _dispose ) ( a ) ; w . _lineMetrics _getHardBreak = a => ( w . _lineMetrics _getHardBreak = F . lineMetrics _getHardBreak ) ( a ) ; w . _lineMetrics _getAscent = a => ( w . _lineMetrics _getAscent = F . lineMetrics _getAscent ) ( a ) ;
w . _lineMetrics _getDescent = a => ( w . _lineMetrics _getDescent = F . lineMetrics _getDescent ) ( a ) ; w . _lineMetrics _getUnscaledAscent = a => ( w . _lineMetrics _getUnscaledAscent = F . lineMetrics _getUnscaledAscent ) ( a ) ; w . _lineMetrics _getHeight = a => ( w . _lineMetrics _getHeight = F . lineMetrics _getHeight ) ( a ) ; w . _lineMetrics _getWidth = a => ( w . _lineMetrics _getWidth = F . lineMetrics _getWidth ) ( a ) ; w . _lineMetrics _getLeft = a => ( w . _lineMetrics _getLeft = F . lineMetrics _getLeft ) ( a ) ; w . _lineMetrics _getBaseline = a => ( w . _lineMetrics _getBaseline = F . lineMetrics _getBaseline ) ( a ) ;
w . _lineMetrics _getLineNumber = a => ( w . _lineMetrics _getLineNumber = F . lineMetrics _getLineNumber ) ( a ) ; w . _lineMetrics _getStartIndex = a => ( w . _lineMetrics _getStartIndex = F . lineMetrics _getStartIndex ) ( a ) ; w . _lineMetrics _getEndIndex = a => ( w . _lineMetrics _getEndIndex = F . lineMetrics _getEndIndex ) ( a ) ; w . _paragraph _dispose = a => ( w . _paragraph _dispose = F . paragraph _dispose ) ( a ) ; w . _paragraph _getWidth = a => ( w . _paragraph _getWidth = F . paragraph _getWidth ) ( a ) ; w . _paragraph _getHeight = a => ( w . _paragraph _getHeight = F . paragraph _getHeight ) ( a ) ;
w . _paragraph _getLongestLine = a => ( w . _paragraph _getLongestLine = F . paragraph _getLongestLine ) ( a ) ; w . _paragraph _getMinIntrinsicWidth = a => ( w . _paragraph _getMinIntrinsicWidth = F . paragraph _getMinIntrinsicWidth ) ( a ) ; w . _paragraph _getMaxIntrinsicWidth = a => ( w . _paragraph _getMaxIntrinsicWidth = F . paragraph _getMaxIntrinsicWidth ) ( a ) ; w . _paragraph _getAlphabeticBaseline = a => ( w . _paragraph _getAlphabeticBaseline = F . paragraph _getAlphabeticBaseline ) ( a ) ; w . _paragraph _getIdeographicBaseline = a => ( w . _paragraph _getIdeographicBaseline = F . paragraph _getIdeographicBaseline ) ( a ) ;
w . _paragraph _getDidExceedMaxLines = a => ( w . _paragraph _getDidExceedMaxLines = F . paragraph _getDidExceedMaxLines ) ( a ) ; w . _paragraph _layout = ( a , b ) => ( w . _paragraph _layout = F . paragraph _layout ) ( a , b ) ; w . _paragraph _getPositionForOffset = ( a , b , c , e ) => ( w . _paragraph _getPositionForOffset = F . paragraph _getPositionForOffset ) ( a , b , c , e ) ; w . _paragraph _getClosestGlyphInfoAtCoordinate = ( a , b , c , e , f , g ) => ( w . _paragraph _getClosestGlyphInfoAtCoordinate = F . paragraph _getClosestGlyphInfoAtCoordinate ) ( a , b , c , e , f , g ) ;
w . _paragraph _getGlyphInfoAt = ( a , b , c , e , f ) => ( w . _paragraph _getGlyphInfoAt = F . paragraph _getGlyphInfoAt ) ( a , b , c , e , f ) ; w . _paragraph _getWordBoundary = ( a , b , c ) => ( w . _paragraph _getWordBoundary = F . paragraph _getWordBoundary ) ( a , b , c ) ; w . _paragraph _getLineCount = a => ( w . _paragraph _getLineCount = F . paragraph _getLineCount ) ( a ) ; w . _paragraph _getLineNumberAt = ( a , b ) => ( w . _paragraph _getLineNumberAt = F . paragraph _getLineNumberAt ) ( a , b ) ;
w . _paragraph _getLineMetricsAtIndex = ( a , b ) => ( w . _paragraph _getLineMetricsAtIndex = F . paragraph _getLineMetricsAtIndex ) ( a , b ) ; w . _textBoxList _dispose = a => ( w . _textBoxList _dispose = F . textBoxList _dispose ) ( a ) ; w . _textBoxList _getLength = a => ( w . _textBoxList _getLength = F . textBoxList _getLength ) ( a ) ; w . _textBoxList _getBoxAtIndex = ( a , b , c ) => ( w . _textBoxList _getBoxAtIndex = F . textBoxList _getBoxAtIndex ) ( a , b , c ) ; w . _paragraph _getBoxesForRange = ( a , b , c , e , f ) => ( w . _paragraph _getBoxesForRange = F . paragraph _getBoxesForRange ) ( a , b , c , e , f ) ;
w . _paragraph _getBoxesForPlaceholders = a => ( w . _paragraph _getBoxesForPlaceholders = F . paragraph _getBoxesForPlaceholders ) ( a ) ; w . _paragraph _getUnresolvedCodePoints = ( a , b , c ) => ( w . _paragraph _getUnresolvedCodePoints = F . paragraph _getUnresolvedCodePoints ) ( a , b , c ) ; w . _paragraphBuilder _create = ( a , b ) => ( w . _paragraphBuilder _create = F . paragraphBuilder _create ) ( a , b ) ; w . _paragraphBuilder _dispose = a => ( w . _paragraphBuilder _dispose = F . paragraphBuilder _dispose ) ( a ) ;
w . _paragraphBuilder _addPlaceholder = ( a , b , c , e , f , g ) => ( w . _paragraphBuilder _addPlaceholder = F . paragraphBuilder _addPlaceholder ) ( a , b , c , e , f , g ) ; w . _paragraphBuilder _addText = ( a , b ) => ( w . _paragraphBuilder _addText = F . paragraphBuilder _addText ) ( a , b ) ; w . _paragraphBuilder _getUtf8Text = ( a , b ) => ( w . _paragraphBuilder _getUtf8Text = F . paragraphBuilder _getUtf8Text ) ( a , b ) ; w . _paragraphBuilder _pushStyle = ( a , b ) => ( w . _paragraphBuilder _pushStyle = F . paragraphBuilder _pushStyle ) ( a , b ) ; w . _paragraphBuilder _pop = a => ( w . _paragraphBuilder _pop = F . paragraphBuilder _pop ) ( a ) ;
w . _paragraphBuilder _build = a => ( w . _paragraphBuilder _build = F . paragraphBuilder _build ) ( a ) ; w . _unicodePositionBuffer _create = a => ( w . _unicodePositionBuffer _create = F . unicodePositionBuffer _create ) ( a ) ; w . _unicodePositionBuffer _getDataPointer = a => ( w . _unicodePositionBuffer _getDataPointer = F . unicodePositionBuffer _getDataPointer ) ( a ) ; w . _unicodePositionBuffer _free = a => ( w . _unicodePositionBuffer _free = F . unicodePositionBuffer _free ) ( a ) ; w . _lineBreakBuffer _create = a => ( w . _lineBreakBuffer _create = F . lineBreakBuffer _create ) ( a ) ;
w . _lineBreakBuffer _getDataPointer = a => ( w . _lineBreakBuffer _getDataPointer = F . lineBreakBuffer _getDataPointer ) ( a ) ; w . _lineBreakBuffer _free = a => ( w . _lineBreakBuffer _free = F . lineBreakBuffer _free ) ( a ) ; w . _paragraphBuilder _setGraphemeBreaksUtf16 = ( a , b ) => ( w . _paragraphBuilder _setGraphemeBreaksUtf16 = F . paragraphBuilder _setGraphemeBreaksUtf16 ) ( a , b ) ; w . _paragraphBuilder _setWordBreaksUtf16 = ( a , b ) => ( w . _paragraphBuilder _setWordBreaksUtf16 = F . paragraphBuilder _setWordBreaksUtf16 ) ( a , b ) ;
w . _paragraphBuilder _setLineBreaksUtf16 = ( a , b ) => ( w . _paragraphBuilder _setLineBreaksUtf16 = F . paragraphBuilder _setLineBreaksUtf16 ) ( a , b ) ; w . _paragraphStyle _create = ( ) => ( w . _paragraphStyle _create = F . paragraphStyle _create ) ( ) ; w . _paragraphStyle _dispose = a => ( w . _paragraphStyle _dispose = F . paragraphStyle _dispose ) ( a ) ; w . _paragraphStyle _setTextAlign = ( a , b ) => ( w . _paragraphStyle _setTextAlign = F . paragraphStyle _setTextAlign ) ( a , b ) ;
w . _paragraphStyle _setTextDirection = ( a , b ) => ( w . _paragraphStyle _setTextDirection = F . paragraphStyle _setTextDirection ) ( a , b ) ; w . _paragraphStyle _setMaxLines = ( a , b ) => ( w . _paragraphStyle _setMaxLines = F . paragraphStyle _setMaxLines ) ( a , b ) ; w . _paragraphStyle _setHeight = ( a , b ) => ( w . _paragraphStyle _setHeight = F . paragraphStyle _setHeight ) ( a , b ) ; w . _paragraphStyle _setTextHeightBehavior = ( a , b , c ) => ( w . _paragraphStyle _setTextHeightBehavior = F . paragraphStyle _setTextHeightBehavior ) ( a , b , c ) ;
w . _paragraphStyle _setEllipsis = ( a , b ) => ( w . _paragraphStyle _setEllipsis = F . paragraphStyle _setEllipsis ) ( a , b ) ; w . _paragraphStyle _setStrutStyle = ( a , b ) => ( w . _paragraphStyle _setStrutStyle = F . paragraphStyle _setStrutStyle ) ( a , b ) ; w . _paragraphStyle _setTextStyle = ( a , b ) => ( w . _paragraphStyle _setTextStyle = F . paragraphStyle _setTextStyle ) ( a , b ) ; w . _paragraphStyle _setApplyRoundingHack = ( a , b ) => ( w . _paragraphStyle _setApplyRoundingHack = F . paragraphStyle _setApplyRoundingHack ) ( a , b ) ; w . _strutStyle _create = ( ) => ( w . _strutStyle _create = F . strutStyle _create ) ( ) ;
w . _strutStyle _dispose = a => ( w . _strutStyle _dispose = F . strutStyle _dispose ) ( a ) ; w . _strutStyle _setFontFamilies = ( a , b , c ) => ( w . _strutStyle _setFontFamilies = F . strutStyle _setFontFamilies ) ( a , b , c ) ; w . _strutStyle _setFontSize = ( a , b ) => ( w . _strutStyle _setFontSize = F . strutStyle _setFontSize ) ( a , b ) ; w . _strutStyle _setHeight = ( a , b ) => ( w . _strutStyle _setHeight = F . strutStyle _setHeight ) ( a , b ) ; w . _strutStyle _setHalfLeading = ( a , b ) => ( w . _strutStyle _setHalfLeading = F . strutStyle _setHalfLeading ) ( a , b ) ;
w . _strutStyle _setLeading = ( a , b ) => ( w . _strutStyle _setLeading = F . strutStyle _setLeading ) ( a , b ) ; w . _strutStyle _setFontStyle = ( a , b , c ) => ( w . _strutStyle _setFontStyle = F . strutStyle _setFontStyle ) ( a , b , c ) ; w . _strutStyle _setForceStrutHeight = ( a , b ) => ( w . _strutStyle _setForceStrutHeight = F . strutStyle _setForceStrutHeight ) ( a , b ) ; w . _textStyle _create = ( ) => ( w . _textStyle _create = F . textStyle _create ) ( ) ; w . _textStyle _copy = a => ( w . _textStyle _copy = F . textStyle _copy ) ( a ) ; w . _textStyle _dispose = a => ( w . _textStyle _dispose = F . textStyle _dispose ) ( a ) ;
w . _textStyle _setColor = ( a , b ) => ( w . _textStyle _setColor = F . textStyle _setColor ) ( a , b ) ; w . _textStyle _setDecoration = ( a , b ) => ( w . _textStyle _setDecoration = F . textStyle _setDecoration ) ( a , b ) ; w . _textStyle _setDecorationColor = ( a , b ) => ( w . _textStyle _setDecorationColor = F . textStyle _setDecorationColor ) ( a , b ) ; w . _textStyle _setDecorationStyle = ( a , b ) => ( w . _textStyle _setDecorationStyle = F . textStyle _setDecorationStyle ) ( a , b ) ;
w . _textStyle _setDecorationThickness = ( a , b ) => ( w . _textStyle _setDecorationThickness = F . textStyle _setDecorationThickness ) ( a , b ) ; w . _textStyle _setFontStyle = ( a , b , c ) => ( w . _textStyle _setFontStyle = F . textStyle _setFontStyle ) ( a , b , c ) ; w . _textStyle _setTextBaseline = ( a , b ) => ( w . _textStyle _setTextBaseline = F . textStyle _setTextBaseline ) ( a , b ) ; w . _textStyle _clearFontFamilies = a => ( w . _textStyle _clearFontFamilies = F . textStyle _clearFontFamilies ) ( a ) ;
w . _textStyle _addFontFamilies = ( a , b , c ) => ( w . _textStyle _addFontFamilies = F . textStyle _addFontFamilies ) ( a , b , c ) ; w . _textStyle _setFontSize = ( a , b ) => ( w . _textStyle _setFontSize = F . textStyle _setFontSize ) ( a , b ) ; w . _textStyle _setLetterSpacing = ( a , b ) => ( w . _textStyle _setLetterSpacing = F . textStyle _setLetterSpacing ) ( a , b ) ; w . _textStyle _setWordSpacing = ( a , b ) => ( w . _textStyle _setWordSpacing = F . textStyle _setWordSpacing ) ( a , b ) ; w . _textStyle _setHeight = ( a , b ) => ( w . _textStyle _setHeight = F . textStyle _setHeight ) ( a , b ) ;
w . _textStyle _setHalfLeading = ( a , b ) => ( w . _textStyle _setHalfLeading = F . textStyle _setHalfLeading ) ( a , b ) ; w . _textStyle _setLocale = ( a , b ) => ( w . _textStyle _setLocale = F . textStyle _setLocale ) ( a , b ) ; w . _textStyle _setBackground = ( a , b ) => ( w . _textStyle _setBackground = F . textStyle _setBackground ) ( a , b ) ; w . _textStyle _setForeground = ( a , b ) => ( w . _textStyle _setForeground = F . textStyle _setForeground ) ( a , b ) ; w . _textStyle _addShadow = ( a , b , c , e , f ) => ( w . _textStyle _addShadow = F . textStyle _addShadow ) ( a , b , c , e , f ) ;
w . _textStyle _addFontFeature = ( a , b , c ) => ( w . _textStyle _addFontFeature = F . textStyle _addFontFeature ) ( a , b , c ) ; w . _textStyle _setFontVariations = ( a , b , c , e ) => ( w . _textStyle _setFontVariations = F . textStyle _setFontVariations ) ( a , b , c , e ) ; w . _vertices _create = ( a , b , c , e , f , g , k ) => ( w . _vertices _create = F . vertices _create ) ( a , b , c , e , f , g , k ) ; w . _vertices _dispose = a => ( w . _vertices _dispose = F . vertices _dispose ) ( a ) ; var fb = w . _pthread _self = ( ) => ( fb = w . _pthread _self = F . pthread _self ) ( ) , pb = a => ( pb = F . malloc ) ( a ) ;
w . _ _emscripten _tls _init = ( ) => ( w . _ _emscripten _tls _init = F . _emscripten _tls _init ) ( ) ; var ed = w . _ _emscripten _thread _init = ( a , b , c , e , f , g ) => ( ed = w . _ _emscripten _thread _init = F . _emscripten _thread _init ) ( a , b , c , e , f , g ) ; w . _ _emscripten _thread _crashed = ( ) => ( w . _ _emscripten _thread _crashed = F . _emscripten _thread _crashed ) ( ) ;
var jc = ( a , b , c , e ) => ( jc = F . _emscripten _run _in _main _runtime _thread _js ) ( a , b , c , e ) , db = a => ( db = F . _emscripten _thread _free _data ) ( a ) , jb = w . _ _emscripten _thread _exit = a => ( jb = w . _ _emscripten _thread _exit = F . _emscripten _thread _exit ) ( a ) , wb = w . _ _emscripten _check _mailbox = ( ) => ( wb = w . _ _emscripten _check _mailbox = F . _emscripten _check _mailbox ) ( ) , Z = ( a , b ) => ( Z = F . setThrew ) ( a , b ) , ib = ( a , b ) => ( ib = F . emscripten _stack _set _limits ) ( a , b ) , N = ( ) => ( N = F . stackSave ) ( ) , M = a => ( M = F . stackRestore ) ( a ) , Cb = w . stackAlloc = a => ( Cb = w . stackAlloc = F . stackAlloc ) ( a ) ;
function gd ( a , b , c ) { var e = N ( ) ; try { return G . get ( a ) ( b , c ) } catch ( f ) { M ( e ) ; if ( f !== f + 0 ) throw f ; Z ( 1 , 0 ) } } function md ( a , b , c ) { var e = N ( ) ; try { G . get ( a ) ( b , c ) } catch ( f ) { M ( e ) ; if ( f !== f + 0 ) throw f ; Z ( 1 , 0 ) } } function fd ( a , b ) { var c = N ( ) ; try { return G . get ( a ) ( b ) } catch ( e ) { M ( c ) ; if ( e !== e + 0 ) throw e ; Z ( 1 , 0 ) } } function nd ( a , b , c , e ) { var f = N ( ) ; try { G . get ( a ) ( b , c , e ) } catch ( g ) { M ( f ) ; if ( g !== g + 0 ) throw g ; Z ( 1 , 0 ) } } function hd ( a , b , c , e ) { var f = N ( ) ; try { return G . get ( a ) ( b , c , e ) } catch ( g ) { M ( f ) ; if ( g !== g + 0 ) throw g ; Z ( 1 , 0 ) } }
function od ( a , b , c , e , f ) { var g = N ( ) ; try { G . get ( a ) ( b , c , e , f ) } catch ( k ) { M ( g ) ; if ( k !== k + 0 ) throw k ; Z ( 1 , 0 ) } } function pd ( a , b , c , e , f , g , k , n ) { var r = N ( ) ; try { G . get ( a ) ( b , c , e , f , g , k , n ) } catch ( u ) { M ( r ) ; if ( u !== u + 0 ) throw u ; Z ( 1 , 0 ) } } function ld ( a , b ) { var c = N ( ) ; try { G . get ( a ) ( b ) } catch ( e ) { M ( c ) ; if ( e !== e + 0 ) throw e ; Z ( 1 , 0 ) } } function kd ( a , b , c , e , f , g , k ) { var n = N ( ) ; try { return G . get ( a ) ( b , c , e , f , g , k ) } catch ( r ) { M ( n ) ; if ( r !== r + 0 ) throw r ; Z ( 1 , 0 ) } }
function jd ( a , b , c , e , f ) { var g = N ( ) ; try { return G . get ( a ) ( b , c , e , f ) } catch ( k ) { M ( g ) ; if ( k !== k + 0 ) throw k ; Z ( 1 , 0 ) } } w . keepRuntimeAlive = Ka ; w . wasmMemory = d ; w . wasmExports = F ;
w . addFunction = function ( a , b ) { if ( ! Yc ) { Yc = new WeakMap ; var c = G . length ; if ( Yc ) for ( var e = 0 ; e < 0 + c ; e ++ ) { var f = G . get ( e ) ; f && Yc . set ( f , e ) } } if ( c = Yc . get ( a ) || 0 ) return c ; if ( Zc . length ) c = Zc . pop ( ) ; else { try { G . grow ( 1 ) } catch ( n ) { if ( ! ( n instanceof RangeError ) ) throw n ; throw "Unable to grow wasm table. Set ALLOW_TABLE_GROWTH." ; } c = G . length - 1 } try { G . set ( c , a ) } catch ( n ) { if ( ! ( n instanceof TypeError ) ) throw n ; if ( "function" == typeof WebAssembly . Function ) { e = WebAssembly . Function ; f = { i : "i32" , j : "i64" , f : "f32" , d : "f64" , p : "i32" } ; for ( var g = { parameters : [ ] ,
results : "v" == b [ 0 ] ? [ ] : [ f [ b [ 0 ] ] ] } , k = 1 ; k < b . length ; ++ k ) g . parameters . push ( f [ b [ k ] ] ) ; b = new e ( g , a ) } else { e = [ 1 ] ; f = b . slice ( 0 , 1 ) ; b = b . slice ( 1 ) ; g = { i : 127 , p : 127 , j : 126 , f : 125 , d : 124 } ; e . push ( 96 ) ; k = b . length ; 128 > k ? e . push ( k ) : e . push ( k % 128 | 128 , k >> 7 ) ; for ( k = 0 ; k < b . length ; ++ k ) e . push ( g [ b [ k ] ] ) ; "v" == f ? e . push ( 0 ) : e . push ( 1 , g [ f ] ) ; b = [ 0 , 97 , 115 , 109 , 1 , 0 , 0 , 0 , 1 ] ; f = e . length ; 128 > f ? b . push ( f ) : b . push ( f % 128 | 128 , f >> 7 ) ; b . push . apply ( b , e ) ; b . push ( 2 , 7 , 1 , 1 , 101 , 1 , 102 , 0 , 0 , 7 , 5 , 1 , 1 , 102 , 0 , 0 ) ; b = new WebAssembly . Module ( new Uint8Array ( b ) ) ; b = ( new WebAssembly . Instance ( b ,
{ e : { f : a } } ) ) . exports . f } G . set ( c , b ) } Yc . set ( a , c ) ; return c } ; w . ExitStatus = Va ; w . PThread = I ; var rd ; Ma = function sd ( ) { rd || td ( ) ; rd || ( Ma = sd ) } ;
function td ( ) { function a ( ) { if ( ! rd && ( rd = ! 0 , w . calledRun = ! 0 , ! Ba ) ) { A || hb ( Ha ) ; ja ( w ) ; if ( w . onRuntimeInitialized ) w . onRuntimeInitialized ( ) ; if ( ! A ) { if ( w . postRun ) for ( "function" == typeof w . postRun && ( w . postRun = [ w . postRun ] ) ; w . postRun . length ; ) { var b = w . postRun . shift ( ) ; Ia . unshift ( b ) } hb ( Ia ) } } } if ( ! ( 0 < H ) ) if ( A ) ja ( w ) , A || hb ( Ha ) , startWorker ( w ) ; else { if ( w . preRun ) for ( "function" == typeof w . preRun && ( w . preRun = [ w . preRun ] ) ; w . preRun . length ; ) Ga . unshift ( w . preRun . shift ( ) ) ; hb ( Ga ) ; 0 < H || ( w . setStatus ? ( w . setStatus ( "Running..." ) , setTimeout ( function ( ) { setTimeout ( function ( ) { w . setStatus ( "" ) } ,
1 ) ; a ( ) } , 1 ) ) : a ( ) ) } } if ( w . preInit ) for ( "function" == typeof w . preInit && ( w . preInit = [ w . preInit ] ) ; 0 < w . preInit . length ; ) w . preInit . pop ( ) ( ) ; td ( ) ;
return moduleArg . ready
}
) ;
} ) ( ) ;
if ( typeof exports === 'object' && typeof module === 'object' )
module . exports = skwasm ;
else if ( typeof define === 'function' && define [ 'amd' ] )
define ( [ ] , ( ) => skwasm ) ;