From 9d5bb10f1093a75bd36aa94f7b0d16948eab34ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E7=AB=8B=E5=B8=AE?= <3294713004@qq.com> Date: Mon, 9 Sep 2024 16:38:22 +0800 Subject: [PATCH] =?UTF-8?q?Update:=20=E6=9B=B4=E6=96=B0python=5Fpyodide?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- boards.json | 2 +- .../0.62.21/python3/pyodide/pyodide.asm.js | 18 +----------------- .../deps/0.62.21/python3/pyodide/pyodide.js | 3 +-- boards/default/python_pyodide/index.xml | 2 +- boards/default/python_pyodide/main.bundle.js | 4 ++-- .../{317.ba1aee9d.css => 317.d64c0353.css} | 0 .../{main.ba1aee9d.css => main.d64c0353.css} | 0 .../python_pyodide/others/python-shell.js | 3 +++ 8 files changed, 9 insertions(+), 23 deletions(-) rename boards/default/python_pyodide/styles/{317.ba1aee9d.css => 317.d64c0353.css} (100%) rename boards/default/python_pyodide/styles/{main.ba1aee9d.css => main.d64c0353.css} (100%) diff --git a/boards.json b/boards.json index 7048a712..58282437 100644 --- a/boards.json +++ b/boards.json @@ -100,7 +100,7 @@ "boardType": "Python 3 Online", "boardIndex": "./boards/default/python_pyodide/index.xml", "env": { - "electron": false, + "electron": true, "web": true, "webCompiler": false, "webSocket": false diff --git a/boards/default/python_pyodide/deps/0.62.21/python3/pyodide/pyodide.asm.js b/boards/default/python_pyodide/deps/0.62.21/python3/pyodide/pyodide.asm.js index 961ca39e..f4ca267b 100644 --- a/boards/default/python_pyodide/deps/0.62.21/python3/pyodide/pyodide.asm.js +++ b/boards/default/python_pyodide/deps/0.62.21/python3/pyodide/pyodide.asm.js @@ -1,17 +1 @@ -"use strict"; - -var _createPyodideModule = (() => { - var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined; - if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename; - return ( -function(_createPyodideModule = {}) { - -var Module=typeof _createPyodideModule!="undefined"?_createPyodideModule:{};if(typeof globalThis.BigInt64Array==="undefined"){function partsToBigIntSigned(lower,upper){return BigInt(lower)|BigInt(upper+2*(upper&2147483648))<<32n}function partsToBigIntUnsigned(lower,upper){return BigInt(lower)|BigInt(upper)<<32n}function bigIntToParts(value){var lower=Number(BigInt(value)&BigInt(4294967295))|0;var upper=Number(BigInt(value)>>32n)|0;return[lower,upper]}function createBigIntArrayShim(partsToBigInt){function createBigInt64Array(array){if(typeof array==="number"){array=new Uint32Array(2*array)}var orig_array;if(!ArrayBuffer.isView(array)){if(array.constructor&&array.constructor.name==="ArrayBuffer"){array=new Uint32Array(array)}else{orig_array=array;array=new Uint32Array(array.length*2)}}var proxy=new Proxy({slice:function(min,max){if(max===undefined){max=array.length}var new_buf=array.slice(min*2,max*2);return createBigInt64Array(new_buf)},subarray:function(min,max){var new_buf=array.subarray(min*2,max*2);return createBigInt64Array(new_buf)},[Symbol.iterator]:function*(){for(var i=0;iarray.length){throw new RangeError("offset is out of bounds")}for(var i=0;i{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof importScripts=="function";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";var ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;function logExceptionOnExit(e){if(e instanceof ExitStatus)return;let toLog=e;if(e&&typeof e=="object"&&e.stack){toLog=[e,e.stack]}err("exiting due to exception: "+toLog)}if(ENVIRONMENT_IS_NODE){var fs=require("fs");var nodePath=require("path");if(ENVIRONMENT_IS_WORKER){scriptDirectory=nodePath.dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=(filename,binary)=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);return fs.readFileSync(filename,binary?undefined:"utf8")};readBinary=filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}return ret};readAsync=(filename,onload,onerror)=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);fs.readFile(filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})};if(process.argv.length>1){thisProgram=process.argv[1].replace(/\\/g,"/")}arguments_=process.argv.slice(2);quit_=(status,toThrow)=>{if(keepRuntimeAlive()){process.exitCode=status;throw toThrow}logExceptionOnExit(toThrow);process.exit(status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=title=>document.title=title}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var dynamicLibraries=Module["dynamicLibraries"]||[];var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!="object"){abort("no native wasm support detected")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}var UTF8Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heapOrArray,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str="";while(idx>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len}var HEAP,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAP64,HEAPU64,HEAPF64;function updateMemoryViews(){var b=wasmMemory.buffer;Module["HEAP8"]=HEAP8=new Int8Array(b);Module["HEAP16"]=HEAP16=new Int16Array(b);Module["HEAP32"]=HEAP32=new Int32Array(b);Module["HEAPU8"]=HEAPU8=new Uint8Array(b);Module["HEAPU16"]=HEAPU16=new Uint16Array(b);Module["HEAPU32"]=HEAPU32=new Uint32Array(b);Module["HEAPF32"]=HEAPF32=new Float32Array(b);Module["HEAPF64"]=HEAPF64=new Float64Array(b);Module["HEAP64"]=HEAP64=new BigInt64Array(b);Module["HEAPU64"]=HEAPU64=new BigUint64Array(b)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||20971520;assert(INITIAL_MEMORY>=5242880,"INITIAL_MEMORY should be larger than STACK_SIZE, was "+INITIAL_MEMORY+"! (STACK_SIZE="+5242880+")");if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":2147483648/65536})}updateMemoryViews();INITIAL_MEMORY=wasmMemory.buffer.byteLength;var wasmTable=new WebAssembly.Table({"initial":6377,"element":"anyfunc"});var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var __RELOC_FUNCS__=[];var runtimeInitialized=false;function keepRuntimeAlive(){return noExitRuntime}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__RELOC_FUNCS__);if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();SOCKFS.root=FS.mount(SOCKFS,{},null);PIPEFS.root=FS.mount(PIPEFS,{},null);callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPreMain(cb){__ATMAIN__.unshift(cb)}function addOnExit(cb){}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile;wasmBinaryFile="pyodide.asm.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}catch(err){abort(err)}}function getBinaryPromise(binaryFile){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch=="function"&&!isFileURI(binaryFile)){return fetch(binaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+binaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(binaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(binaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(binaryFile)})}function instantiateArrayBuffer(binaryFile,imports,receiver){return getBinaryPromise(binaryFile).then(function(binary){return WebAssembly.instantiate(binary,imports)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(binary,binaryFile,imports,callback){if(!binary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(binaryFile)&&!isFileURI(binaryFile)&&!ENVIRONMENT_IS_NODE&&typeof fetch=="function"){return fetch(binaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,imports);return result.then(callback,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(binaryFile,imports,callback)})})}else{return instantiateArrayBuffer(binaryFile,imports,callback)}}function createWasm(){var info={"env":wasmImports,"wasi_snapshot_preview1":wasmImports,"GOT.mem":new Proxy(wasmImports,GOTHandler),"GOT.func":new Proxy(wasmImports,GOTHandler)};function receiveInstance(instance,module){var exports=instance.exports;exports=relocateExports(exports,1024);var metadata=getDylinkMetadata(module);if(metadata.neededDynlibs){dynamicLibraries=metadata.neededDynlibs.concat(dynamicLibraries)}mergeLibSymbols(exports,"main");Module["asm"]=exports;addOnInit(Module["asm"]["__wasm_call_ctors"]);__RELOC_FUNCS__.push(Module["asm"]["__wasm_apply_data_relocs"]);removeRunDependency("wasm-instantiate");return exports}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}if(Module["instantiateWasm"]){try{return Module["instantiateWasm"](info,receiveInstance)}catch(e){err("Module.instantiateWasm callback failed with error: "+e);readyPromiseReject(e)}}instantiateAsync(wasmBinary,wasmBinaryFile,info,receiveInstantiationResult).catch(readyPromiseReject);return{}}var tempDouble;var tempI64;var ASM_CONSTS={3880638:()=>{throw new Error("intentionally triggered fatal error!")},3880695:$0=>{Hiwire.get_value($0)()},3880718:()=>{Module.UTF8ToString=UTF8ToString;Module.wasmTable=wasmTable;Module.ERRNO_CODES=ERRNO_CODES},3880822:$0=>{API._pyodide=Hiwire.pop_value($0)},3880863:($0,$1)=>{Hiwire.get_value($1).push(...Hiwire.get_value($0))},3880919:$0=>{for(let v of Hiwire.get_value($0)){if(typeof v.destroy==="function"){try{v.destroy()}catch(e){console.warn("Weird error:",e)}}}}};function console_error(msg){let jsmsg=UTF8ToString(msg);console.error(jsmsg)}function console_error_obj(obj){console.error(Hiwire.get_value(obj))}console_error_obj.sig="vi";function new_error(type,msg,err){try{return Hiwire.new_value(new API.PythonError(UTF8ToString(type),UTF8ToString(msg),err))}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}new_error.sig="iiii";function fail_test(){API.fail_test=true}fail_test.sig="v";function hiwire_to_bool(val){return!!Hiwire.get_value(val)}hiwire_to_bool.sig="ii";function hiwire_init(){try{let _hiwire={objects:new Map,obj_to_key:new Map,counter:new Uint32Array([1])};Hiwire.UNDEFINED=HEAPU8[_Js_undefined+0];_hiwire.objects.set(Hiwire.UNDEFINED,[undefined,-1]);_hiwire.obj_to_key.set(undefined,Hiwire.UNDEFINED);Hiwire.JSNULL=HEAPU8[_Js_null+0];_hiwire.objects.set(Hiwire.JSNULL,[null,-1]);_hiwire.obj_to_key.set(null,Hiwire.JSNULL);Hiwire.TRUE=HEAPU8[_Js_true+0];_hiwire.objects.set(Hiwire.TRUE,[!!1,-1]);_hiwire.obj_to_key.set(!!1,Hiwire.TRUE);Hiwire.FALSE=HEAPU8[_Js_false+0];_hiwire.objects.set(Hiwire.FALSE,[!!0,-1]);_hiwire.obj_to_key.set(!!0,Hiwire.FALSE);let hiwire_next_permanent=HEAPU8[_Js_novalue]+2;Hiwire.new_value=function(jsval){let idval=_hiwire.obj_to_key.get(jsval);if(idval!==undefined){_hiwire.objects.get(idval)[1]++;return idval}while(_hiwire.objects.has(_hiwire.counter[0])){_hiwire.counter[0]+=2}idval=_hiwire.counter[0];_hiwire.objects.set(idval,[jsval,1]);_hiwire.obj_to_key.set(jsval,idval);_hiwire.counter[0]+=2;return idval};Hiwire.intern_object=function(obj){let id=hiwire_next_permanent;hiwire_next_permanent+=2;_hiwire.objects.set(id,[obj,-1]);return id};Hiwire.num_keys=function(){return Array.from(_hiwire.objects.keys()).filter(x=>x%2).length};Hiwire.get_value=function(idval){if(!idval){API.fail_test=!!1;if(_PyErr_Occurred()){let exc=_wrap_exception();let e=Hiwire.pop_value(exc);console.error(`Pyodide internal error: Argument '${idval}' to hiwire.get_value is falsy. `+"This was probably because the Python error indicator was set when get_value was called. "+"The Python error that caused this was:",e);throw e}else{console.error(`Pyodide internal error: Argument '${idval}' to hiwire.get_value is falsy`+" (but error indicator is not set).");throw new Error(`Pyodide internal error: Argument '${idval}' to hiwire.get_value is falsy`+" (but error indicator is not set).")}}if(!_hiwire.objects.has(idval)){API.fail_test=!!1;console.error(`Pyodide internal error: Undefined id ${idval}`);throw new Error(`Undefined id ${idval}`)}return _hiwire.objects.get(idval)[0]};Hiwire.decref=function(idval){if((idval&1)===0){return}let pair=_hiwire.objects.get(idval);let new_refcnt=--pair[1];if(new_refcnt===0){_hiwire.objects.delete(idval);_hiwire.obj_to_key.delete(pair[0])}};Hiwire.incref=function(idval){if((idval&1)===0){return}_hiwire.objects.get(idval)[1]++};Hiwire.pop_value=function(idval){let result=Hiwire.get_value(idval);Hiwire.decref(idval);return result};Hiwire.isPromise=function(obj){try{return!!obj&&typeof obj.then==="function"}catch(e){return!!0}};API.typedArrayAsUint8Array=function(arg){if(ArrayBuffer.isView(arg)){return new Uint8Array(arg.buffer,arg.byteOffset,arg.byteLength)}else{return new Uint8Array(arg)}};{let dtypes_str=["b","B","h","H","i","I","f","d"].join(String.fromCharCode(0));let dtypes_ptr=stringToNewUTF8(dtypes_str);let dtypes_map={};for(let[idx,val]of Object.entries(dtypes_str)){dtypes_map[val]=dtypes_ptr+Number(idx)}let buffer_datatype_map=new Map([["Int8Array",[dtypes_map["b"],1,!!1]],["Uint8Array",[dtypes_map["B"],1,!!1]],["Uint8ClampedArray",[dtypes_map["B"],1,!!1]],["Int16Array",[dtypes_map["h"],2,!!1]],["Uint16Array",[dtypes_map["H"],2,!!1]],["Int32Array",[dtypes_map["i"],4,!!1]],["Uint32Array",[dtypes_map["I"],4,!!1]],["Float32Array",[dtypes_map["f"],4,!!1]],["Float64Array",[dtypes_map["d"],8,!!1]],["DataView",[dtypes_map["B"],1,!!0]],["ArrayBuffer",[dtypes_map["B"],1,!!0]]]);Module.get_buffer_datatype=function(jsobj){return buffer_datatype_map.get(jsobj.constructor.name)||[0,0,!!0]}}Module.iterObject=function*(object){for(let k in object){if(Object.prototype.hasOwnProperty.call(object,k)){yield k}}};if(globalThis.BigInt){Module.BigInt=BigInt}else{Module.BigInt=Number}return 0}catch(e){Module.handle_js_error(e);return-1}return 0}hiwire_init.sig="i";function hiwire_incref(idval){if(idval&1){Hiwire.incref(idval)}return idval}hiwire_incref.sig="ii";function hiwire_decref(idval){Hiwire.decref(idval)}hiwire_decref.sig="vi";function hiwire_int(val){try{return Hiwire.new_value(val)}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}hiwire_int.sig="ii";function hiwire_int_from_digits(digits,ndigits){try{let result=BigInt(0);for(let i=0;i>2)+i])<>2)+ndigits-1]&2147483648)<2147483647){return-4}return result}catch(e){Module.handle_js_error(e);return-1}return 0}hiwire_get_length_helper.sig="ii";function hiwire_get_length_string(idobj){try{const val=Hiwire.get_value(idobj);let result;if(typeof val.size==="number"){result=val.size}else if(typeof val.length==="number"){result=val.length}return stringToNewUTF8(" "+result.toString())}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}hiwire_get_length_string.sig="ii";function hiwire_get_bool(idobj){try{let val=Hiwire.get_value(idobj);if(!val){return!!0}if(val.size===0){if(/HTML[A-Za-z]*Element/.test(getTypeTag(val))){return!!1}return!!0}if(val.length===0&&JsArray_Check(idobj)){return!!0}if(val.byteLength===0){return!!0}return!!1}catch(e){return!!0}}hiwire_get_bool.sig="ii";function hiwire_is_function(idobj){try{return typeof Hiwire.get_value(idobj)==="function"}catch(e){return!!0}}hiwire_is_function.sig="ii";function hiwire_is_generator(idobj){try{return getTypeTag(Hiwire.get_value(idobj))==="[object Generator]"}catch(e){return!!0}}hiwire_is_generator.sig="ii";function hiwire_is_async_generator(idobj){try{return Object.prototype.toString.call(Hiwire.get_value(idobj))==="[object AsyncGenerator]"}catch(e){return!!0}}hiwire_is_async_generator.sig="ii";function hiwire_is_comlink_proxy(idobj){try{let value=Hiwire.get_value(idobj);return!!(API.Comlink&&value[API.Comlink.createEndpoint])}catch(e){return!!0}}hiwire_is_comlink_proxy.sig="ii";function hiwire_is_error(idobj){try{let value=Hiwire.get_value(idobj);return!!(value&&typeof value.stack==="string"&&typeof value.message==="string")}catch(e){return!!0}}function hiwire_is_promise(idobj){try{let obj=Hiwire.get_value(idobj);return Hiwire.isPromise(obj)}catch(e){return!!0}}hiwire_is_promise.sig="ii";function hiwire_resolve_promise(idobj){try{let obj=Hiwire.get_value(idobj);let result=Promise.resolve(obj);return Hiwire.new_value(result)}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}hiwire_resolve_promise.sig="ii";function hiwire_to_string(idobj){try{return Hiwire.new_value(Hiwire.get_value(idobj).toString())}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}hiwire_to_string.sig="ii";function hiwire_typeof(idobj){return Hiwire.new_value(typeof Hiwire.get_value(idobj))}hiwire_typeof.sig="ii";function hiwire_constructor_name(idobj){try{return stringToNewUTF8(Hiwire.get_value(idobj).constructor.name)}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}hiwire_constructor_name.sig="ii";function hiwire_less_than(ida,idb){try{return!!(Hiwire.get_value(ida)Hiwire.get_value(idb))}catch(e){return!!0}}hiwire_greater_than.sig="iii";function hiwire_greater_than_equal(ida,idb){try{return!!(Hiwire.get_value(ida)>=Hiwire.get_value(idb))}catch(e){return!!0}}hiwire_greater_than_equal.sig="iii";function hiwire_reversed_iterator(idarray){try{if(!Module._reversedIterator){Module._reversedIterator=class ReversedIterator{constructor(array){this._array=array;this._i=array.length-1}__length_hint__(){return this._array.length}[Symbol.toStringTag](){return"ReverseIterator"}next(){const i=this._i;const a=this._array;const done=i<0;const value=done?undefined:a[i];this._i--;return{done:done,value:value}}}}let array=Hiwire.get_value(idarray);return Hiwire.new_value(new Module._reversedIterator(array))}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}hiwire_reversed_iterator.sig="ii";function hiwire_assign_to_ptr(idobj,ptr){try{let jsobj=Hiwire.get_value(idobj);Module.HEAPU8.set(API.typedArrayAsUint8Array(jsobj),ptr)}catch(e){Module.handle_js_error(e);return-1}return 0}hiwire_assign_to_ptr.sig="iii";function hiwire_assign_from_ptr(idobj,ptr){try{let jsobj=Hiwire.get_value(idobj);API.typedArrayAsUint8Array(jsobj).set(Module.HEAPU8.subarray(ptr,ptr+jsobj.byteLength))}catch(e){Module.handle_js_error(e);return-1}return 0}hiwire_assign_from_ptr.sig="iii";function hiwire_read_from_file(idobj,fd){try{let jsobj=Hiwire.get_value(idobj);let uint8_buffer=API.typedArrayAsUint8Array(jsobj);let stream=Module.FS.streams[fd];Module.FS.read(stream,uint8_buffer,0,uint8_buffer.byteLength)}catch(e){Module.handle_js_error(e);return-1}return 0}hiwire_read_from_file.sig="iii";function hiwire_write_to_file(idobj,fd){try{let jsobj=Hiwire.get_value(idobj);let uint8_buffer=API.typedArrayAsUint8Array(jsobj);let stream=Module.FS.streams[fd];Module.FS.write(stream,uint8_buffer,0,uint8_buffer.byteLength)}catch(e){Module.handle_js_error(e);return-1}return 0}hiwire_write_to_file.sig="iii";function hiwire_into_file(idobj,fd){try{let jsobj=Hiwire.get_value(idobj);let uint8_buffer=API.typedArrayAsUint8Array(jsobj);let stream=Module.FS.streams[fd];Module.FS.write(stream,uint8_buffer,0,uint8_buffer.byteLength,undefined,!!1)}catch(e){Module.handle_js_error(e);return-1}return 0}hiwire_into_file.sig="iii";function hiwire_get_buffer_info(idobj,byteLength_ptr,format_ptr,size_ptr,checked_ptr){let jsobj=Hiwire.get_value(idobj);let byteLength=jsobj.byteLength;let[format_utf8,size,checked]=Module.get_buffer_datatype(jsobj);HEAPU32[(byteLength_ptr>>2)+0]=byteLength;HEAPU32[(format_ptr>>2)+0]=format_utf8;HEAPU32[(size_ptr>>2)+0]=size;HEAPU8[checked_ptr+0]=checked}hiwire_get_buffer_info.sig="viiiii";function hiwire_subarray(idarr,start,end){try{let jsarr=Hiwire.get_value(idarr);let jssub=jsarr.subarray(start,end);return Hiwire.new_value(jssub)}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}function JsArray_Check(idobj){try{let obj=Hiwire.get_value(idobj);if(Array.isArray(obj)){return!!1}let typeTag=getTypeTag(obj);if(typeTag==="[object HTMLCollection]"||typeTag==="[object NodeList]"){return!!1}if(ArrayBuffer.isView(obj)&&obj.constructor.name!=="DataView"){return!!1}return!!0}catch(e){return!!0}}JsArray_Check.sig="ii";function JsArray_New(){try{return Hiwire.new_value([])}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}JsArray_New.sig="i";function JsArray_Push(idarr,idval){try{Hiwire.get_value(idarr).push(Hiwire.get_value(idval))}catch(e){Module.handle_js_error(e);return-1}return 0}JsArray_Push.sig="iii";function JsArray_Push_unchecked(idarr,idval){const arr=Hiwire.get_value(idarr);arr.push(Hiwire.get_value(idval));return arr.length-1}JsArray_Push_unchecked.sig="iii";function JsArray_Get(idobj,idx){try{let obj=Hiwire.get_value(idobj);let result=obj[idx];if(result===undefined&&!(idx in obj)){return 0}return Hiwire.new_value(result)}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}JsArray_Get.sig="iii";function JsArray_Set(idobj,idx,idval){try{Hiwire.get_value(idobj)[idx]=Hiwire.get_value(idval)}catch(e){Module.handle_js_error(e);return-1}return 0}JsArray_Set.sig="iiii";function JsArray_Delete(idobj,idx){try{let obj=Hiwire.get_value(idobj);if(idx<0||idx>=obj.length){return-1}obj.splice(idx,1)}catch(e){Module.handle_js_error(e);return-1}return 0}JsArray_Delete.sig="iii";function JsArray_Splice(idobj,idx){try{let obj=Hiwire.get_value(idobj);if(idx<0||idx>=obj.length){return 0}return Hiwire.new_value(obj.splice(idx,1))}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}JsArray_Splice.sig="iii";function JsArray_slice(idobj,length,start,stop,step){try{let obj=Hiwire.get_value(idobj);let result;if(step===1){result=obj.slice(start,stop)}else{result=Array.from({length:length},(_,i)=>obj[start+i*step])}return Hiwire.new_value(result)}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}JsArray_slice.sig="iiiiii";function JsArray_slice_assign(idobj,slicelength,start,stop,step,values_length,values){try{let obj=Hiwire.get_value(idobj);let jsvalues=[];for(let i=0;i>2)+i]);if(ref===0){return-1}jsvalues.push(Hiwire.pop_value(ref))}if(step===1){obj.splice(start,slicelength,...jsvalues)}else{if(values!==0){for(let i=0;i=0;i--){obj.splice(start+i*step,1)}}}}catch(e){Module.handle_js_error(e);return-1}return 0}JsArray_slice_assign.sig="iiiiiiii";function JsArray_Clear(idobj){try{let obj=Hiwire.get_value(idobj);obj.splice(0,obj.length)}catch(e){Module.handle_js_error(e);return-1}return 0}function JsObject_New(){try{return Hiwire.new_value({})}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}JsObject_New.sig="i";function isReservedWord(word){if(!Module.pythonReservedWords){Module.pythonReservedWords=new Set(["False","await","else","import","pass","None","break","except","in","raise","True","class","finally","is","return","and","continue","for","lambda","try","as","def","from","nonlocal","while","assert","del","global","not","with","async","elif","if","or","yield"])}return Module.pythonReservedWords.has(word)}function normalizeReservedWords(action,word){const noTrailing_=word.replace(/_*$/,"");if(!isReservedWord(noTrailing_)){return word}if(noTrailing_!==word){return word.slice(0,-1)}let action_ptr=stringToNewUTF8(action);let word_ptr=stringToNewUTF8(word);_setReservedError(action_ptr,word_ptr);_free(action_ptr);_free(word_ptr);throw new Module._PropagatePythonError}function JsObject_GetString(idobj,ptrkey){try{let jsobj=Hiwire.get_value(idobj);let jskey=normalizeReservedWords("get",UTF8ToString(ptrkey));if(jskey in jsobj){return Hiwire.new_value(jsobj[jskey])}return 0}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}JsObject_GetString.sig="iii";function JsObject_SetString(idobj,ptrkey,idval){try{let jsobj=Hiwire.get_value(idobj);let jskey=normalizeReservedWords("set",UTF8ToString(ptrkey));let jsval=Hiwire.get_value(idval);jsobj[jskey]=jsval}catch(e){Module.handle_js_error(e);return-1}return 0}JsObject_SetString.sig="iiii";function JsObject_DeleteString(idobj,ptrkey){try{let jsobj=Hiwire.get_value(idobj);let jskey=normalizeReservedWords("delete",UTF8ToString(ptrkey));delete jsobj[jskey]}catch(e){Module.handle_js_error(e);return-1}return 0}JsObject_DeleteString.sig="iii";function JsObject_Dir(idobj){try{let jsobj=Hiwire.get_value(idobj);let result=[];do{const names=Object.getOwnPropertyNames(jsobj);result.push(...names.filter(s=>{let c=s.charCodeAt(0);return c<48||c>57}).map(word=>isReservedWord(word.replace(/_*$/,""))?word+"_":word))}while(jsobj=Object.getPrototypeOf(jsobj));return Hiwire.new_value(result)}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}JsObject_Dir.sig="ii";function JsObject_Entries(idobj){try{let jsobj=Hiwire.get_value(idobj);return Hiwire.new_value(Object.entries(jsobj))}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}JsObject_Entries.sig="ii";function JsObject_Keys(idobj){try{let jsobj=Hiwire.get_value(idobj);return Hiwire.new_value(Object.keys(jsobj))}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}JsObject_Keys.sig="ii";function JsObject_Values(idobj){try{let jsobj=Hiwire.get_value(idobj);return Hiwire.new_value(Object.values(jsobj))}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}JsObject_Values.sig="ii";function JsString_InternFromCString(str){try{let jsstring=UTF8ToString(str);return Hiwire.intern_object(jsstring)}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}JsString_InternFromCString.sig="ii";function JsMap_New(){try{return Hiwire.new_value(new Map)}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}JsMap_New.sig="i";function JsMap_Set(mapid,keyid,valueid){try{let map=Hiwire.get_value(mapid);let key=Hiwire.get_value(keyid);let value=Hiwire.get_value(valueid);map.set(key,value)}catch(e){Module.handle_js_error(e);return-1}return 0}JsMap_Set.sig="iiii";function JsSet_New(){try{return Hiwire.new_value(new Set)}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}JsSet_New.sig="i";function JsSet_Add(mapid,keyid){try{let set=Hiwire.get_value(mapid);let key=Hiwire.get_value(keyid);set.add(key)}catch(e){Module.handle_js_error(e);return-1}return 0}JsSet_Add.sig="iii";function js2python_immutable(id){try{let value=Hiwire.get_value(id);let result=Module.js2python_convertImmutable(value,id);if(result!==undefined){return result}return 0}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}js2python_immutable.sig="ii";function js2python(id){try{let value=Hiwire.get_value(id);let result=Module.js2python_convertImmutable(value,id);if(result!==undefined){return result}return _JsProxy_create(id)}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}js2python.sig="ii";function js2python_convert(id,depth,default_converter){try{let defaultConverter=default_converter?Module.hiwire.get_value(default_converter):undefined;return Module.js2python_convert(id,{depth:depth,defaultConverter:defaultConverter})}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}js2python_convert.sig="iiii";function js2python_init(){try{{0;let PropagateError=Module._PropagatePythonError;function js2python_string(value){let max_code_point=0;let num_code_points=0;for(let c of value){num_code_points++;let code_point=c.codePointAt(0);max_code_point=code_point>max_code_point?code_point:max_code_point}let result=_PyUnicode_New(num_code_points,max_code_point);if(result===0){throw new PropagateError}let ptr=_PyUnicode_Data(result);if(max_code_point>65535){for(let c of value){HEAPU32[ptr/4]=c.codePointAt(0);ptr+=4}}else if(max_code_point>255){for(let c of value){HEAPU16[ptr/2]=c.codePointAt(0);ptr+=2}}else{for(let c of value){HEAPU8[ptr]=c.codePointAt(0);ptr+=1}}return result}function js2python_bigint(value){let value_orig=value;let length=0;if(value<0){value=-value}value<<=BigInt(1);while(value){length++;value>>=BigInt(32)}let stackTop=stackSave();let ptr=stackAlloc(length*4);value=value_orig;for(let i=0;i>2)+i]=Number(value&BigInt(4294967295));value>>=BigInt(32)}let result=__PyLong_FromByteArray(ptr,length*4,!!1,!!1);stackRestore(stackTop);return result}function js2python_convertImmutable(value,id){let result=js2python_convertImmutableInner(value,id);if(result===0){throw new PropagateError}return result}Module.js2python_convertImmutable=js2python_convertImmutable;function js2python_convertImmutableInner(value,id){let type=typeof value;if(type==="string"){return js2python_string(value)}else if(type==="number"){if(Number.isSafeInteger(value)){return _PyLong_FromDouble(value)}else{return _PyFloat_FromDouble(value)}}else if(type==="bigint"){return js2python_bigint(value)}else if(value===undefined||value===null){return __js2python_none()}else if(value===!!1){return __js2python_true()}else if(value===!!0){return __js2python_false()}else if(API.isPyProxy(value)){if(value.$$.ptr==0){Module.PyProxy_getPtr(value)}if(value.$$props.roundtrip){if(id===undefined){id=Hiwire.new_value(value)}return _JsProxy_create(id)}else{return __js2python_pyproxy(Module.PyProxy_getPtr(value))}}return undefined}function js2python_convertList(obj,context){let list=_PyList_New(obj.length);if(list===0){return 0}let entryid=0;let item=0;try{context.cache.set(obj,list);for(let i=0;i>2)+0]=stringToNewUTF8(errmsg);return-1}let result_id=Hiwire.new_value(res.value);HEAPU32[(result_ptr>>2)+0]=result_id;return res.done}catch(e){Module.handle_js_error(e);return-1}return 0}handle_next_result_js.sig="iiii";function JsException_new_helper(name_ptr,message_ptr,stack_ptr){try{let name=UTF8ToString(name_ptr);let message=UTF8ToString(message_ptr);let stack=UTF8ToString(stack_ptr);return Hiwire.new_value(API.deserializeError(name,message,stack))}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}JsException_new_helper.sig="iiii";function JsProxy_GetAsyncIter_js(idobj){try{let jsobj=Hiwire.get_value(idobj);return Hiwire.new_value(jsobj[Symbol.asyncIterator]())}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}JsProxy_GetAsyncIter_js.sig="ii";function _agen_handle_result_js(promiseid,msg,set_result,set_exception,closing){try{let p=Hiwire.get_value(promiseid);let errmsg;if(typeof p!=="object"){errmsg=`Result of anext() should be object not ${typeof p}`}else if(typeof p.then!=="function"){if(typeof p.done==="boolean"){errmsg=`Result of anext() was not a promise, use next() instead.`}else{errmsg=`Result of anext() was not a promise.`}}if(errmsg){HEAPU32[(msg>>2)+0]=stringToNewUTF8(errmsg);return-1}_Py_IncRef(set_result);_Py_IncRef(set_exception);p.then(({done:done,value:value})=>{let id=Hiwire.new_value(value);__agen_handle_result_js_c(set_result,set_exception,done,id,closing);Hiwire.decref(id)},err=>{let id=Hiwire.new_value(err);__agen_handle_result_js_c(set_result,set_exception,-1,id,closing);Hiwire.decref(id)}).finally(()=>{_Py_DecRef(set_result);_Py_DecRef(set_exception)});return 0}catch(e){Module.handle_js_error(e);return-1}return 0}_agen_handle_result_js.sig="iiiiii";function JsArray_index_helper(list,value,start,stop){try{let o=Hiwire.get_value(list);let v=Hiwire.get_value(value);for(let i=start;iModule.pyproxy_destroy(px,msg))}function wrap(funcname){return function(val){if(API.isPyProxy(val)){val=val.copy();proxies.add(val)}let res;try{res=gen[funcname](val)}catch(e){cleanup();throw e}if(res.done){proxies.delete(res.value);cleanup()}return res}}return Hiwire.new_value({get[Symbol.toStringTag](){return"Generator"},[Symbol.iterator](){return this},next:wrap("next"),throw:wrap("throw"),return:wrap("return")})}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}wrap_generator.sig="iii";function wrap_async_generator(genid,proxiesid){try{const proxies=new Set(Hiwire.get_value(proxiesid));const gen=Hiwire.get_value(genid);const msg="This borrowed proxy was automatically destroyed "+"when an asynchronous generator completed execution. Try "+"using create_proxy or create_once_callable.";function cleanup(){proxies.forEach(px=>Module.pyproxy_destroy(px,msg))}function wrap(funcname){return async function(val){if(API.isPyProxy(val)){val=val.copy();proxies.add(val)}let res;try{res=await gen[funcname](val)}catch(e){cleanup();throw e}if(res.done){proxies.delete(res.value);cleanup()}return res}}return Hiwire.new_value({get[Symbol.toStringTag](){return"AsyncGenerator"},[Symbol.asyncIterator](){return this},next:wrap("next"),throw:wrap("throw"),return:wrap("return")})}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}wrap_async_generator.sig="iii";function JsBuffer_DecodeString_js(jsbuffer_id,encoding){try{let buffer=Hiwire.get_value(jsbuffer_id);let encoding_js;if(encoding){encoding_js=UTF8ToString(encoding)}let decoder=new TextDecoder(encoding_js,{fatal:!!1,ignoreBOM:!!1});let res;try{res=decoder.decode(buffer)}catch(e){if(e instanceof TypeError){return 0}throw e}return Hiwire.new_value(res)}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}JsBuffer_DecodeString_js.sig="iii";function JsDoubleProxy_unwrap_helper(id){try{return Module.PyProxy_getPtr(Hiwire.get_value(id))}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}JsDoubleProxy_unwrap_helper.sig="ii";function JsProxy_compute_typeflags(idobj){try{let obj=Hiwire.get_value(idobj);let type_flags=0;if(API.isPyProxy(obj)&&obj.$$.ptr===0){return 0}const constructorName=obj.constructor?obj.constructor.name:"";let typeTag=getTypeTag(obj);if(typeof obj==="function"){type_flags|=1<<9}if(typeof obj.then==="function"){type_flags|=1<<7}if(typeof obj[Symbol.iterator]==="function"){type_flags|=1<<0}if(typeof obj[Symbol.asyncIterator]==="function"){type_flags|=1<<15}if(typeof obj.next==="function"&&(typeof obj[Symbol.iterator]==="function"||typeof obj[Symbol.asyncIterator]!=="function")){type_flags|=1<<1}if(typeof obj.next==="function"&&(typeof obj[Symbol.iterator]!=="function"||typeof obj[Symbol.asyncIterator]==="function")){type_flags|=1<<18}if(typeof obj.size==="number"||typeof obj.length==="number"&&typeof obj!=="function"){type_flags|=1<<2}if(typeof obj.get==="function"){type_flags|=1<<3}if(typeof obj.set==="function"){type_flags|=1<<4}if(typeof obj.has==="function"){type_flags|=1<<5}if(typeof obj.includes==="function"){type_flags|=1<<6}if((ArrayBuffer.isView(obj)||constructorName==="ArrayBuffer")&&!(type_flags&1<<9)){type_flags|=1<<8}if(API.isPyProxy(obj)){type_flags|=1<<13}if(Array.isArray(obj)){type_flags|=1<<10}if(typeTag==="[object HTMLCollection]"||typeTag==="[object NodeList]"){type_flags|=1<<11}if(ArrayBuffer.isView(obj)&&obj.constructor.name!=="DataView"){type_flags|=1<<12}if(typeTag==="[object Generator]"){type_flags|=1<<16}if(typeTag==="[object AsyncGenerator]"){type_flags|=1<<17}if(typeof obj.stack==="string"&&typeof obj.message==="string"&&!(type_flags&(1<<9|1<<8))){type_flags|=1<<19}return type_flags}catch(e){Module.handle_js_error(e);return-1}return 0}JsProxy_compute_typeflags.sig="ii";function pyproxy_Check(x){if(x==0){return false}let val=Hiwire.get_value(x);return API.isPyProxy(val)}pyproxy_Check.sig="ii";function pyproxy_AsPyObject(x){if(x==0){return 0}let val=Hiwire.get_value(x);if(!API.isPyProxy(val)){return 0}return Module.PyProxy_getPtr(val)}pyproxy_AsPyObject.sig="ii";function destroy_proxies(proxies_id,msg_ptr){let msg=undefined;if(msg_ptr){msg=UTF8ToString(msg_ptr)}let proxies=Hiwire.get_value(proxies_id);for(let px of proxies){Module.pyproxy_destroy(px,msg,false)}}destroy_proxies.sig="vii";function destroy_proxy(proxy_id,msg_ptr){let px=Module.hiwire.get_value(proxy_id);if(px.$$props.roundtrip){return}let msg=undefined;if(msg_ptr){msg=UTF8ToString(msg_ptr)}Module.pyproxy_destroy(px,msg,false)}destroy_proxy.sig="vii";function proxy_cache_get(proxyCacheId,descr){let proxyCache=Hiwire.get_value(proxyCacheId);let proxyId=proxyCache.get(descr);if(!proxyId){return undefined}if(Hiwire.get_value(proxyId).$$.ptr){return proxyId}else{proxyCache.delete(descr);Hiwire.decref(proxyId);return undefined}}proxy_cache_get.sig="iii";function proxy_cache_set(proxyCacheId,descr,proxy){let proxyCache=Hiwire.get_value(proxyCacheId);proxyCache.set(descr,proxy)}proxy_cache_set.sig="viii";function array_to_js(array,len){return Hiwire.new_value(Array.from(HEAP32.subarray(array/4,array/4+len)))}array_to_js.sig="iii";function pyproxy_new_ex(ptrobj,capture_this,roundtrip){try{return Hiwire.new_value(Module.pyproxy_new(ptrobj,{props:{captureThis:!!capture_this,roundtrip:!!roundtrip}}))}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}pyproxy_new_ex.sig="iiii";function pyproxy_new(ptrobj){try{return Hiwire.new_value(Module.pyproxy_new(ptrobj))}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}pyproxy_new.sig="ii";function create_once_callable(obj){try{_Py_IncRef(obj);let alreadyCalled=!!0;function wrapper(...args){if(alreadyCalled){throw new Error("OnceProxy can only be called once")}try{return Module.callPyObject(obj,args)}finally{wrapper.destroy()}}wrapper.destroy=function(){if(alreadyCalled){throw new Error("OnceProxy has already been destroyed")}alreadyCalled=!!1;Module.finalizationRegistry.unregister(wrapper);_Py_DecRef(obj)};Module.finalizationRegistry.register(wrapper,[obj,undefined],wrapper);return Hiwire.new_value(wrapper)}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}create_once_callable.sig="ii";function create_promise_handles(handle_result,handle_exception,done_callback_id){try{if(handle_result){_Py_IncRef(handle_result)}if(handle_exception){_Py_IncRef(handle_exception)}let done_callback=x=>{};if(done_callback_id){done_callback=Hiwire.get_value(done_callback_id)}let used=!!0;function checkUsed(){if(used){throw new Error("One of the promise handles has already been called.")}}function destroy(){checkUsed();used=!!1;if(handle_result){_Py_DecRef(handle_result)}if(handle_exception){_Py_DecRef(handle_exception)}}function onFulfilled(res){checkUsed();try{if(handle_result){return Module.callPyObject(handle_result,[res])}}finally{done_callback(res);destroy()}}function onRejected(err){checkUsed();try{if(handle_exception){return Module.callPyObject(handle_exception,[err])}}finally{done_callback(undefined);destroy()}}onFulfilled.destroy=destroy;onRejected.destroy=destroy;return Hiwire.new_value([onFulfilled,onRejected])}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}create_promise_handles.sig="iiii";function _python2js_buffer_inner(buf,itemsize,ndim,format,shape,strides,suboffsets){try{let converter=Module.get_converter(format,itemsize);let result=Module._python2js_buffer_recursive(buf,0,{ndim:ndim,format:format,itemsize:itemsize,shape:shape,strides:strides,suboffsets:suboffsets,converter:converter});return Hiwire.new_value(result)}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}_python2js_buffer_inner.sig="iiiiiiii";function python2js_buffer_init(){try{{0;Module.processBufferFormatString=function(formatStr,errorMessage=""){if(formatStr.length>2){throw new Error("Expected format string to have length <= 2, "+`got '${formatStr}'.`+errorMessage)}let formatChar=formatStr.slice(-1);let alignChar=formatStr.slice(0,-1);let bigEndian;switch(alignChar){case"!":case">":bigEndian=!!1;break;case"<":case"@":case"=":case"":bigEndian=!!0;break;default:throw new Error(`Unrecognized alignment character ${alignChar}.`+errorMessage)}let arrayType;switch(formatChar){case"b":arrayType=Int8Array;break;case"s":case"p":case"c":case"B":case"?":arrayType=Uint8Array;break;case"h":arrayType=Int16Array;break;case"H":arrayType=Uint16Array;break;case"i":case"l":case"n":arrayType=Int32Array;break;case"I":case"L":case"N":case"P":arrayType=Uint32Array;break;case"q":if(globalThis.BigInt64Array===undefined){throw new Error("BigInt64Array is not supported on this browser."+errorMessage)}arrayType=BigInt64Array;break;case"Q":if(globalThis.BigUint64Array===undefined){throw new Error("BigUint64Array is not supported on this browser."+errorMessage)}arrayType=BigUint64Array;break;case"f":arrayType=Float32Array;break;case"d":arrayType=Float64Array;break;case"e":throw new Error("Javascript has no Float16 support.");default:throw new Error(`Unrecognized format character '${formatChar}'.`+errorMessage)}return[arrayType,bigEndian]};Module.python2js_buffer_1d_contiguous=function(ptr,stride,n){let byteLength=stride*n;return HEAP8.slice(ptr,ptr+byteLength).buffer};Module.python2js_buffer_1d_noncontiguous=function(ptr,stride,suboffset,n,itemsize){let byteLength=itemsize*n;let buffer=new Uint8Array(byteLength);for(let i=0;i=0){curptr=HEAPU32[(curptr>>2)+0]+suboffset}buffer.set(HEAP8.subarray(curptr,curptr+itemsize),i*itemsize)}return buffer.buffer};Module._python2js_buffer_recursive=function(ptr,curdim,bufferData){let n=HEAPU32[(bufferData.shape>>2)+curdim];let stride=HEAP32[(bufferData.strides>>2)+curdim];let suboffset=-1;if(bufferData.suboffsets!==0){suboffset=HEAP32[(bufferData.suboffsets>>2)+curdim]}if(curdim===bufferData.ndim-1){let arraybuffer;if(stride===bufferData.itemsize&&suboffset<0){arraybuffer=Module.python2js_buffer_1d_contiguous(ptr,stride,n)}else{arraybuffer=Module.python2js_buffer_1d_noncontiguous(ptr,stride,suboffset,n,bufferData.itemsize)}return bufferData.converter(arraybuffer)}let result=[];for(let i=0;i=0){curptr=HEAPU32[(curptr>>2)+0]+suboffset}result.push(Module._python2js_buffer_recursive(curPtr,curdim+1,bufferData))}return result};Module.get_converter=function(format,itemsize){let formatStr=UTF8ToString(format);let[ArrayType,bigEndian]=Module.processBufferFormatString(formatStr);let formatChar=formatStr.slice(-1);switch(formatChar){case"s":let decoder=new TextDecoder("utf8",{ignoreBOM:!!1});return buff=>decoder.decode(buff);case"?":return buff=>Array.from(new Uint8Array(buff),x=>!!x)}if(!bigEndian){return buff=>new ArrayType(buff)}let getFuncName;let setFuncName;switch(itemsize){case 2:getFuncName="getUint16";setFuncName="setUint16";break;case 4:getFuncName="getUint32";setFuncName="setUint32";break;case 8:getFuncName="getFloat64";setFuncName="setFloat64";break;default:throw new Error(`Unexpected size ${itemsize}`)}function swapFunc(buff){let dataview=new DataView(buff);let getFunc=dataview[getFuncName].bind(dataview);let setFunc=dataview[setFuncName].bind(dataview);for(let byte=0;bytenew ArrayType(swapFunc(buff))}}return 0}catch(e){Module.handle_js_error(e);return-1}return 0}python2js_buffer_init.sig="i";function _python2js_addto_postprocess_list(idlist,idparent,idkey,value){const list=Hiwire.get_value(idlist);const parent=Hiwire.get_value(idparent);const key=Hiwire.get_value(idkey);list.push([parent,key,value])}_python2js_addto_postprocess_list.sig="viiii";function _python2js_handle_postprocess_list(idlist,idcache){const list=Hiwire.get_value(idlist);const cache=Hiwire.get_value(idcache);for(const[parent,key,value]of list){let out_value=Hiwire.get_value(cache.get(value));if(parent.constructor.name==="Map"){parent.set(key,out_value)}else{parent[key]=out_value}}}_python2js_handle_postprocess_list.sig="vii";function _python2js_ucs1(ptr,len){try{let jsstr="";for(let i=0;i>1)+i])}return Hiwire.new_value(jsstr)}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}_python2js_ucs2.sig="iii";function _python2js_ucs4(ptr,len){try{let jsstr="";for(let i=0;i>2)+i])}return Hiwire.new_value(jsstr)}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}_python2js_ucs4.sig="iii";function _python2js_add_to_cache(cacheid,pyparent,jsparent){try{const cache=Hiwire.get_value(cacheid);const old_value=cache.get(pyparent);if(old_value!==undefined){Hiwire.decref(old_value)}Hiwire.incref(jsparent);cache.set(pyparent,jsparent)}catch(e){Module.handle_js_error(e);return-1}return 0}_python2js_add_to_cache.sig="iiii";function _python2js_destroy_cache(cacheid){const cache=Hiwire.get_value(cacheid);for(const[k,v]of cache.entries()){Hiwire.decref(v)}}_python2js_destroy_cache.sig="vi";function _python2js_cache_lookup(cacheid,pyparent){return Hiwire.get_value(cacheid).get(pyparent)}_python2js_cache_lookup.sig="iii";function _JsArray_PushEntry_helper(array,key,value){try{Hiwire.get_value(array).push([Hiwire.get_value(key),Hiwire.get_value(value)])}catch(e){Module.handle_js_error(e);return-1}return 0}_JsArray_PushEntry_helper.sig="iiii";function _JsArray_PostProcess_helper(jscontext,array){try{return Hiwire.new_value(Hiwire.get_value(jscontext).dict_converter(Hiwire.get_value(array)))}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}_JsArray_PostProcess_helper.sig="iii";function python2js__default_converter(jscontext,object){try{let context=Hiwire.get_value(jscontext);let proxy=Module.pyproxy_new(object);let result=context.default_converter(proxy,context.converter,context.cacheConversion);proxy.destroy();return Hiwire.new_value(result)}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}python2js__default_converter.sig="iii";function python2js_custom__create_jscontext(context,idcache,dict_converter,default_converter){try{let jscontext={};if(dict_converter!==0){jscontext.dict_converter=Hiwire.get_value(dict_converter)}if(default_converter!==0){jscontext.default_converter=Hiwire.get_value(default_converter);jscontext.cacheConversion=function(input,output){if(!API.isPyProxy(input)){throw new TypeError("The first argument to cacheConversion must be a PyProxy.")}let input_ptr=Module.PyProxy_getPtr(input);let output_key=Hiwire.new_value(output);Hiwire.get_value(idcache).set(input_ptr,output_key)};jscontext.converter=function(x){if(!API.isPyProxy(x)){return x}let ptr=Module.PyProxy_getPtr(x);let res=__python2js(context,ptr);return Hiwire.pop_value(res)}}return Hiwire.new_value(jscontext)}catch(e){Module.handle_js_error(e);return 0}throw new Error("Assertion error: control reached end of function without return")}python2js_custom__create_jscontext.sig="iiiii";function destroy_proxies_js(proxies_id){try{for(let proxy of Hiwire.get_value(proxies_id)){proxy.destroy()}}catch(e){Module.handle_js_error(e);return-1}return 0}destroy_proxies_js.sig="ii";function pyodide_js_init(){!function(exports){"use strict";function __decorate(decorators,target,key,desc){var d,c=arguments.length,r=c<3?target:null===desc?desc=Object.getOwnPropertyDescriptor(target,key):desc;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r}function __await(v){return this instanceof __await?(this.v=v,this):new __await(v)}function __asyncGenerator(thisArg,_arguments,generator){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var i,g=generator.apply(thisArg,_arguments||[]),q=[];return i={},verb("next"),verb("throw"),verb("return"),i[Symbol.asyncIterator]=function(){return this},i;function verb(n){g[n]&&(i[n]=function(v){return new Promise(function(a,b){q.push([n,v,a,b])>1||resume(n,v)})})}function resume(n,v){try{(r=g[n](v)).value instanceof __await?Promise.resolve(r.value.v).then(fulfill,reject):settle(q[0][2],r)}catch(e){settle(q[0][3],e)}var r}function fulfill(value){resume("next",value)}function reject(value){resume("throw",value)}function settle(f,v){f(v),q.shift(),q.length&&resume(q[0][0],q[0][1])}}const IN_NODE=false;let nodeFetch,nodePath,nodeFsPromisesMod,resolvePath,loadBinaryFile;if(resolvePath=IN_NODE?function(path,base){return nodePath.resolve(base||".",path)}:function(path,base){return void 0===base&&(base=location),new URL(path,base).toString()},loadBinaryFile=IN_NODE?async function(path,_file_sub_resource_hash){if(path.startsWith("file://")&&(path=path.slice("file://".length)),path.includes("://")){let response=await nodeFetch(path);if(!response.ok)throw new Error(`Failed to load '${path}': request failed.`);return new Uint8Array(await response.arrayBuffer())}{const data=await nodeFsPromisesMod.readFile(path);return new Uint8Array(data.buffer,data.byteOffset,data.byteLength)}}:async function(path,subResourceHash){const url=new URL(path,location);let options=subResourceHash?{integrity:subResourceHash}:{},response=await fetch(url,options);if(!response.ok)throw new Error(`Failed to load '${url}': request failed.`);return new Uint8Array(await response.arrayBuffer())},globalThis.document);else if(globalThis.importScripts);else if(!IN_NODE)throw new Error("Cannot determine runtime environment");function makeWarnOnce(warning){let warned=!1;return function(){warned||(warned=!0,console.warn(warning))}}function warnOnce(warning){let warned=!1;return function(_target,_key,descriptor){const key=descriptor.value?"value":"get",original=descriptor[key];return descriptor[key]=function(...args){return warned||(warned=!0,console.warn(warning)),original.call(this,...args)},descriptor}}API.isPyProxy=function(jsobj){return jsobj instanceof PyProxy},globalThis.FinalizationRegistry?Module.finalizationRegistry=new FinalizationRegistry(([ptr,cache])=>{cache&&(cache.leaked=!0,pyproxy_decref_cache(cache));try{Module._Py_DecRef(ptr)}catch(e){API.fatal_error(e)}}):Module.finalizationRegistry={register(){},unregister(){}};let trace_pyproxy_alloc,trace_pyproxy_dealloc,pyproxy_alloc_map=new Map;function pyproxy_new(ptrobj,{flags:flags_arg,cache:cache,props:props,$$:$$}={}){const flags=void 0!==flags_arg?flags_arg:Module._pyproxy_getflags(ptrobj);-1===flags&&Module._pythonexc2js();const cls=Module.getPyProxyClass(flags);let target;256&flags?(target=function(){},Object.setPrototypeOf(target,cls.prototype),delete target.length,delete target.name,target.prototype=void 0):target=Object.create(cls.prototype);const isAlias=!!$$;if(!isAlias){if(!cache){cache={cacheId:Hiwire.new_value(new Map),refcnt:0}}cache.refcnt++,$$={ptr:ptrobj,type:"PyProxy",cache:cache,flags:flags},Module.finalizationRegistry.register($$,[ptrobj,cache],$$),Module._Py_IncRef(ptrobj)}Object.defineProperty(target,"$$",{value:$$}),props||(props={}),props=Object.assign({isBound:!1,captureThis:!1,boundArgs:[],roundtrip:!1},props),Object.defineProperty(target,"$$props",{value:props});let proxy=new Proxy(target,PyProxyHandlers);return isAlias||trace_pyproxy_alloc(proxy),proxy}function _getPtr(jsobj){let ptr=jsobj.$$.ptr;if(0===ptr)throw new Error(jsobj.$$.destroyed_msg);return ptr}function _adjustArgs(proxyobj,jsthis,jsargs){const{captureThis:captureThis,boundArgs:boundArgs,boundThis:boundThis,isBound:isBound}=proxyobj.$$props;return captureThis?isBound?[boundThis].concat(boundArgs,jsargs):[jsthis].concat(jsargs):isBound?boundArgs.concat(jsargs):jsargs}Module.pyproxy_alloc_map=pyproxy_alloc_map,Module.enable_pyproxy_allocation_tracing=function(){trace_pyproxy_alloc=function(proxy){pyproxy_alloc_map.set(proxy,Error().stack)},trace_pyproxy_dealloc=function(proxy){pyproxy_alloc_map.delete(proxy)}},Module.disable_pyproxy_allocation_tracing=function(){trace_pyproxy_alloc=function(proxy){},trace_pyproxy_dealloc=function(proxy){}},Module.disable_pyproxy_allocation_tracing(),Module.pyproxy_new=pyproxy_new;let pyproxyClassMap=new Map;Module.getPyProxyClass=function(flags){const FLAG_TYPE_PAIRS=[[1,PyLengthMethods],[2,PyGetItemMethods],[4,PySetItemMethods],[8,PyContainsMethods],[16,PyIterableMethods],[32,PyIteratorMethods],[2048,PyGeneratorMethods],[512,PyAsyncIterableMethods],[1024,PyAsyncIteratorMethods],[4096,PyAsyncGeneratorMethods],[64,PyAwaitableMethods],[128,PyBufferMethods],[256,PyCallableMethods]];let result=pyproxyClassMap.get(flags);if(result)return result;let descriptors={};for(let[feature_flag,methods]of FLAG_TYPE_PAIRS)flags&feature_flag&&Object.assign(descriptors,Object.getOwnPropertyDescriptors(methods.prototype));descriptors.constructor=Object.getOwnPropertyDescriptor(PyProxy.prototype,"constructor"),Object.assign(descriptors,Object.getOwnPropertyDescriptors({$$flags:flags}));let new_proto=Object.create(PyProxy.prototype,descriptors);function NewPyProxyClass(){}return NewPyProxyClass.prototype=new_proto,pyproxyClassMap.set(flags,NewPyProxyClass),NewPyProxyClass},Module.PyProxy_getPtr=_getPtr;function pyproxy_decref_cache(cache){if(cache&&(cache.refcnt--,0===cache.refcnt)){let cache_map=Hiwire.pop_value(cache.cacheId);for(let proxy_id of cache_map.values()){const cache_entry=Hiwire.pop_value(proxy_id);cache.leaked||Module.pyproxy_destroy(cache_entry,"This borrowed attribute proxy was automatically destroyed in the process of destroying the proxy it was borrowed from. Try using the 'copy' method.",!0)}}}Module.pyproxy_destroy=function(proxy,destroyed_msg,destroy_roundtrip){if(0===proxy.$$.ptr)return;if(!destroy_roundtrip&&proxy.$$props.roundtrip)return;let ptrobj=_getPtr(proxy);Module.finalizationRegistry.unregister(proxy.$$),destroyed_msg=destroyed_msg||"Object has already been destroyed";let proxy_repr,proxy_type=proxy.type;try{proxy_repr=proxy.toString()}catch(e){if(e.pyodide_fatal_error)throw e}proxy.$$.ptr=0,destroyed_msg+=`\nThe object was of type "${proxy_type}" and `,destroyed_msg+=proxy_repr?`had repr "${proxy_repr}"`:"an error was raised when trying to generate its repr",proxy.$$.destroyed_msg=destroyed_msg,pyproxy_decref_cache(proxy.$$.cache);try{Module._Py_DecRef(ptrobj),trace_pyproxy_dealloc(proxy)}catch(e){API.fatal_error(e)}},Module.callPyObjectKwargs=function(ptrobj,jsargs,kwargs){let num_pos_args=jsargs.length,kwargs_names=Object.keys(kwargs),kwargs_values=Object.values(kwargs),num_kwargs=kwargs_names.length;jsargs.push(...kwargs_values);let idresult,idargs=Hiwire.new_value(jsargs),idkwnames=Hiwire.new_value(kwargs_names);try{idresult=Module.__pyproxy_apply(ptrobj,idargs,num_pos_args,idkwnames,num_kwargs)}catch(e){return void(API._skip_unwind_fatal_error?API.maybe_fatal_error(e):API.fatal_error(e))}finally{Hiwire.decref(idargs),Hiwire.decref(idkwnames)}0===idresult&&Module._pythonexc2js();let result=Hiwire.pop_value(idresult);return result&&"coroutine"===result.type&&result._ensure_future&&result._ensure_future(),result},Module.callPyObject=function(ptrobj,jsargs){return Module.callPyObjectKwargs(ptrobj,jsargs,{})};class PyProxy{constructor(){throw new TypeError("PyProxy is not a constructor")}get[Symbol.toStringTag](){return"PyProxy"}get type(){let ptrobj=_getPtr(this);return Hiwire.pop_value(Module.__pyproxy_type(ptrobj))}toString(){let jsref_repr,ptrobj=_getPtr(this);try{jsref_repr=Module.__pyproxy_repr(ptrobj)}catch(e){API.fatal_error(e)}return 0===jsref_repr&&Module._pythonexc2js(),Hiwire.pop_value(jsref_repr)}destroy(options={}){options=Object.assign({message:"",destroyRoundtrip:!0},options);const{message:m,destroyRoundtrip:d}=options;Module.pyproxy_destroy(this,m,d)}copy(){return pyproxy_new(_getPtr(this),{flags:this.$$flags,cache:this.$$.cache,props:this.$$props})}toJs({depth:depth=-1,pyproxies:pyproxies,create_pyproxies:create_pyproxies=!0,dict_converter:dict_converter,default_converter:default_converter}={}){let idresult,proxies_id,ptrobj=_getPtr(this),dict_converter_id=0,default_converter_id=0;proxies_id=create_pyproxies?pyproxies?Hiwire.new_value(pyproxies):Hiwire.new_value([]):0,dict_converter&&(dict_converter_id=Hiwire.new_value(dict_converter)),default_converter&&(default_converter_id=Hiwire.new_value(default_converter));try{idresult=Module._python2js_custom(ptrobj,depth,proxies_id,dict_converter_id,default_converter_id)}catch(e){API.fatal_error(e)}finally{Hiwire.decref(proxies_id),Hiwire.decref(dict_converter_id),Hiwire.decref(default_converter_id)}return 0===idresult&&Module._pythonexc2js(),Hiwire.pop_value(idresult)}supportsLength(){return!!(1&this.$$flags)}supportsGet(){return!!(2&this.$$flags)}supportsSet(){return!!(4&this.$$flags)}supportsHas(){return!!(8&this.$$flags)}isIterable(){return!!(48&this.$$flags)}isIterator(){return!!(32&this.$$flags)}isAwaitable(){return!!(64&this.$$flags)}isBuffer(){return!!(128&this.$$flags)}isCallable(){return!!(256&this.$$flags)}}__decorate([warnOnce("supportsLength() is deprecated. Use `instanceof pyodide.ffi.PyProxyWithLength` instead.")],PyProxy.prototype,"supportsLength",null),__decorate([warnOnce("supportsGet() is deprecated. Use `instanceof pyodide.ffi.PyProxyWithGet` instead.")],PyProxy.prototype,"supportsGet",null),__decorate([warnOnce("supportsSet() is deprecated. Use `instanceof pyodide.ffi.PyProxyWithSet` instead.")],PyProxy.prototype,"supportsSet",null),__decorate([warnOnce("supportsHas() is deprecated. Use `instanceof pyodide.ffi.PyProxyWithHas` instead.")],PyProxy.prototype,"supportsHas",null),__decorate([warnOnce("isIterable() is deprecated. Use `instanceof pyodide.ffi.PyIterable` instead.")],PyProxy.prototype,"isIterable",null),__decorate([warnOnce("isIterator() is deprecated. Use `instanceof pyodide.ffi.PyIterator` instead.")],PyProxy.prototype,"isIterator",null),__decorate([warnOnce("isAwaitable() is deprecated. Use `instanceof pyodide.ffi.PyAwaitable` instead.")],PyProxy.prototype,"isAwaitable",null),__decorate([warnOnce("isBuffer() is deprecated. Use `instanceof pyodide.ffi.PyBuffer` instead.")],PyProxy.prototype,"isBuffer",null),__decorate([warnOnce("isCallable() is deprecated. Use `instanceof pyodide.ffi.PyCallable` instead.")],PyProxy.prototype,"isCallable",null);class PyProxyWithLength extends PyProxy{static[Symbol.hasInstance](obj){return API.isPyProxy(obj)&&!!(1&obj.$$flags)}}class PyLengthMethods{get length(){let length,ptrobj=_getPtr(this);try{length=Module._PyObject_Size(ptrobj)}catch(e){API.fatal_error(e)}return-1===length&&Module._pythonexc2js(),length}}class PyProxyWithGet extends PyProxy{static[Symbol.hasInstance](obj){return API.isPyProxy(obj)&&!!(2&obj.$$flags)}}class PyGetItemMethods{get(key){let idresult,ptrobj=_getPtr(this),idkey=Hiwire.new_value(key);try{idresult=Module.__pyproxy_getitem(ptrobj,idkey)}catch(e){API.fatal_error(e)}finally{Hiwire.decref(idkey)}if(0===idresult){if(!Module._PyErr_Occurred())return;Module._pythonexc2js()}return Hiwire.pop_value(idresult)}}class PyProxyWithSet extends PyProxy{static[Symbol.hasInstance](obj){return API.isPyProxy(obj)&&!!(4&obj.$$flags)}}class PySetItemMethods{set(key,value){let errcode,ptrobj=_getPtr(this),idkey=Hiwire.new_value(key),idval=Hiwire.new_value(value);try{errcode=Module.__pyproxy_setitem(ptrobj,idkey,idval)}catch(e){API.fatal_error(e)}finally{Hiwire.decref(idkey),Hiwire.decref(idval)}-1===errcode&&Module._pythonexc2js()}delete(key){let errcode,ptrobj=_getPtr(this),idkey=Hiwire.new_value(key);try{errcode=Module.__pyproxy_delitem(ptrobj,idkey)}catch(e){API.fatal_error(e)}finally{Hiwire.decref(idkey)}-1===errcode&&Module._pythonexc2js()}}class PyProxyWithHas extends PyProxy{static[Symbol.hasInstance](obj){return API.isPyProxy(obj)&&!!(8&obj.$$flags)}}class PyContainsMethods{has(key){let result,ptrobj=_getPtr(this),idkey=Hiwire.new_value(key);try{result=Module.__pyproxy_contains(ptrobj,idkey)}catch(e){API.fatal_error(e)}finally{Hiwire.decref(idkey)}return-1===result&&Module._pythonexc2js(),1===result}}class PyIterable extends PyProxy{static[Symbol.hasInstance](obj){return API.isPyProxy(obj)&&!!(48&obj.$$flags)}}class PyIterableMethods{[Symbol.iterator](){let iterptr,ptrobj=_getPtr(this),token={};try{iterptr=Module._PyObject_GetIter(ptrobj)}catch(e){API.fatal_error(e)}0===iterptr&&Module._pythonexc2js();let result=function*(iterptr,token){try{for(;;){const item=Module.__pyproxy_iter_next(iterptr);if(0===item)break;yield Hiwire.pop_value(item)}}catch(e){API.fatal_error(e)}finally{Module.finalizationRegistry.unregister(token),Module._Py_DecRef(iterptr)}Module._PyErr_Occurred()&&Module._pythonexc2js()}(iterptr,token);return Module.finalizationRegistry.register(result,[iterptr,void 0],token),result}}class PyAsyncIterable extends PyProxy{static[Symbol.hasInstance](obj){return API.isPyProxy(obj)&&!!(1536&obj.$$flags)}}class PyAsyncIterableMethods{[Symbol.asyncIterator](){let iterptr,ptrobj=_getPtr(this),token={};try{iterptr=Module._PyObject_GetAIter(ptrobj)}catch(e){API.fatal_error(e)}0===iterptr&&Module._pythonexc2js();let result=function(iterptr,token){return __asyncGenerator(this,arguments,function*(){try{for(;;){let item,p;try{if(item=Module.__pyproxy_aiter_next(iterptr),0===item)break;p=Hiwire.pop_value(item)}catch(e){API.fatal_error(e)}try{yield yield __await(yield __await(p))}catch(e){if(e&&"object"==typeof e&&"StopAsyncIteration"===e.type)return yield __await(void 0);throw e}finally{p.destroy()}}}finally{Module.finalizationRegistry.unregister(token),Module._Py_DecRef(iterptr)}Module._PyErr_Occurred()&&Module._pythonexc2js()})}(iterptr,token);return Module.finalizationRegistry.register(result,[iterptr,void 0],token),result}}class PyIterator extends PyProxy{static[Symbol.hasInstance](obj){return API.isPyProxy(obj)&&!!(32&obj.$$flags)}}class PyIteratorMethods{[Symbol.iterator](){return this}next(arg){let status,done,idarg=Hiwire.new_value(arg),stackTop=stackSave(),res_ptr=stackAlloc(4);try{status=Module.__pyproxyGen_Send(_getPtr(this),idarg,res_ptr)}catch(e){API.fatal_error(e)}finally{Hiwire.decref(idarg)}let idresult=HEAPU32[0+(res_ptr>>2)];return stackRestore(stackTop),-1===status&&Module._pythonexc2js(),done=0===status,{done:done,value:Hiwire.pop_value(idresult)}}}class PyGenerator extends PyProxy{static[Symbol.hasInstance](obj){return API.isPyProxy(obj)&&!!(2048&obj.$$flags)}}class PyGeneratorMethods{throw(exc){let status,done,idarg=Hiwire.new_value(exc),stackTop=stackSave(),res_ptr=stackAlloc(4);try{status=Module.__pyproxyGen_throw(_getPtr(this),idarg,res_ptr)}catch(e){API.fatal_error(e)}finally{Hiwire.decref(idarg)}let idresult=HEAPU32[0+(res_ptr>>2)];return stackRestore(stackTop),-1===status&&Module._pythonexc2js(),done=0===status,{done:done,value:Hiwire.pop_value(idresult)}}return(v){let status,done,idarg=Hiwire.new_value(v),stackTop=stackSave(),res_ptr=stackAlloc(4);try{status=Module.__pyproxyGen_return(_getPtr(this),idarg,res_ptr)}catch(e){API.fatal_error(e)}finally{Hiwire.decref(idarg)}let idresult=HEAPU32[0+(res_ptr>>2)];return stackRestore(stackTop),-1===status&&Module._pythonexc2js(),done=0===status,{done:done,value:Hiwire.pop_value(idresult)}}}class PyAsyncIterator extends PyProxy{static[Symbol.hasInstance](obj){return API.isPyProxy(obj)&&!!(1024&obj.$$flags)}}class PyAsyncIteratorMethods{[Symbol.asyncIterator](){return this}async next(arg){let idresult,idarg=Hiwire.new_value(arg);try{idresult=Module.__pyproxyGen_asend(_getPtr(this),idarg)}catch(e){API.fatal_error(e)}finally{Hiwire.decref(idarg)}0===idresult&&Module._pythonexc2js();const p=Hiwire.pop_value(idresult);let value;try{value=await p}catch(e){if(e&&"object"==typeof e&&"StopAsyncIteration"===e.type)return{done:!0,value:value};throw e}finally{p.destroy()}return{done:!1,value:value}}}class PyAsyncGenerator extends PyProxy{static[Symbol.hasInstance](obj){return API.isPyProxy(obj)&&!!(4096&obj.$$flags)}}class PyAsyncGeneratorMethods{async throw(exc){let idresult,idarg=Hiwire.new_value(exc);try{idresult=Module.__pyproxyGen_athrow(_getPtr(this),idarg)}catch(e){API.fatal_error(e)}finally{Hiwire.decref(idarg)}0===idresult&&Module._pythonexc2js();const p=Hiwire.pop_value(idresult);let value;try{value=await p}catch(e){if(e&&"object"==typeof e){if("StopAsyncIteration"===e.type)return{done:!0,value:value};if("GeneratorExit"===e.type)return{done:!0,value:value}}throw e}finally{p.destroy()}return{done:!1,value:value}}async return(v){let idresult;try{idresult=Module.__pyproxyGen_areturn(_getPtr(this))}catch(e){API.fatal_error(e)}0===idresult&&Module._pythonexc2js();const p=Hiwire.pop_value(idresult);let value;try{value=await p}catch(e){if(e&&"object"==typeof e){if("StopAsyncIteration"===e.type)return{done:!0,value:value};if("GeneratorExit"===e.type)return{done:!0,value:v}}throw e}finally{p.destroy()}return{done:!1,value:value}}}let PyProxyHandlers={isExtensible:()=>!0,has:(jsobj,jskey)=>!!Reflect.has(jsobj,jskey)||"symbol"!=typeof jskey&&(jskey.startsWith("$")&&(jskey=jskey.slice(1)),function(jsobj,jskey){let result,ptrobj=_getPtr(jsobj),idkey=Hiwire.new_value(jskey);try{result=Module.__pyproxy_hasattr(ptrobj,idkey)}catch(e){API.fatal_error(e)}finally{Hiwire.decref(idkey)}return-1===result&&Module._pythonexc2js(),0!==result}(jsobj,jskey)),get(jsobj,jskey){if(jskey in jsobj||"symbol"==typeof jskey)return Reflect.get(jsobj,jskey);jskey.startsWith("$")&&(jskey=jskey.slice(1));let idresult=function(jsobj,jskey){let idresult,ptrobj=_getPtr(jsobj),idkey=Hiwire.new_value(jskey),cacheId=jsobj.$$.cache.cacheId;try{idresult=Module.__pyproxy_getattr(ptrobj,idkey,cacheId)}catch(e){API.fatal_error(e)}finally{Hiwire.decref(idkey)}return 0===idresult&&Module._PyErr_Occurred()&&Module._pythonexc2js(),idresult}(jsobj,jskey);return 0!==idresult?Hiwire.pop_value(idresult):void 0},set(jsobj,jskey,jsval){let descr=Object.getOwnPropertyDescriptor(jsobj,jskey);if(descr&&!descr.writable)throw new TypeError(`Cannot set read only field '${jskey}'`);return"symbol"==typeof jskey?Reflect.set(jsobj,jskey,jsval):(jskey.startsWith("$")&&(jskey=jskey.slice(1)),function(jsobj,jskey,jsval){let errcode,ptrobj=_getPtr(jsobj),idkey=Hiwire.new_value(jskey),idval=Hiwire.new_value(jsval);try{errcode=Module.__pyproxy_setattr(ptrobj,idkey,idval)}catch(e){API.fatal_error(e)}finally{Hiwire.decref(idkey),Hiwire.decref(idval)}-1===errcode&&Module._pythonexc2js()}(jsobj,jskey,jsval),!0)},deleteProperty(jsobj,jskey){let descr=Object.getOwnPropertyDescriptor(jsobj,jskey);if(descr&&!descr.writable)throw new TypeError(`Cannot delete read only field '${jskey}'`);return"symbol"==typeof jskey?Reflect.deleteProperty(jsobj,jskey):(jskey.startsWith("$")&&(jskey=jskey.slice(1)),function(jsobj,jskey){let errcode,ptrobj=_getPtr(jsobj),idkey=Hiwire.new_value(jskey);try{errcode=Module.__pyproxy_delattr(ptrobj,idkey)}catch(e){API.fatal_error(e)}finally{Hiwire.decref(idkey)}-1===errcode&&Module._pythonexc2js()}(jsobj,jskey),!descr||!!descr.configurable)},ownKeys(jsobj){let idresult,ptrobj=_getPtr(jsobj);try{idresult=Module.__pyproxy_ownKeys(ptrobj)}catch(e){API.fatal_error(e)}0===idresult&&Module._pythonexc2js();let result=Hiwire.pop_value(idresult);return result.push(...Reflect.ownKeys(jsobj)),result},apply:(jsobj,jsthis,jsargs)=>jsobj.apply(jsthis,jsargs)};class PyAwaitable extends PyProxy{static[Symbol.hasInstance](obj){return API.isPyProxy(obj)&&!!(64&obj.$$flags)}}class PyAwaitableMethods{_ensure_future(){if(this.$$.promise)return this.$$.promise;let resolveHandle,rejectHandle,errcode,ptrobj=_getPtr(this),promise=new Promise((resolve,reject)=>{resolveHandle=resolve,rejectHandle=reject}),resolve_handle_id=Hiwire.new_value(resolveHandle),reject_handle_id=Hiwire.new_value(rejectHandle);try{errcode=Module.__pyproxy_ensure_future(ptrobj,resolve_handle_id,reject_handle_id)}catch(e){API.fatal_error(e)}finally{Hiwire.decref(reject_handle_id),Hiwire.decref(resolve_handle_id)}return-1===errcode&&Module._pythonexc2js(),this.$$.promise=promise,this.destroy(),promise}then(onFulfilled,onRejected){return this._ensure_future().then(onFulfilled,onRejected)}catch(onRejected){return this._ensure_future().catch(onRejected)}finally(onFinally){return this._ensure_future().finally(onFinally)}}class PyCallable extends PyProxy{static[Symbol.hasInstance](obj){return API.isPyProxy(obj)&&!!(256&obj.$$flags)}}class PyCallableMethods{apply(thisArg,jsargs){return jsargs=_adjustArgs(this,thisArg,jsargs=function(...args){return args}.apply(void 0,jsargs)),Module.callPyObject(_getPtr(this),jsargs)}call(thisArg,...jsargs){return jsargs=_adjustArgs(this,thisArg,jsargs),Module.callPyObject(_getPtr(this),jsargs)}callKwargs(...jsargs){if(0===jsargs.length)throw new TypeError("callKwargs requires at least one argument (the key word argument object)");let kwargs=jsargs.pop();if(void 0!==kwargs.constructor&&"Object"!==kwargs.constructor.name)throw new TypeError("kwargs argument is not an object");return Module.callPyObjectKwargs(_getPtr(this),jsargs,kwargs)}bind(thisArg,...jsargs){const{boundArgs:boundArgsOld,boundThis:boundThisOld,isBound:isBound}=this.$$props;let boundThis=thisArg;isBound&&(boundThis=boundThisOld);let boundArgs=boundArgsOld.concat(jsargs);const props=Object.assign({},this.$$props,{boundArgs:boundArgs,isBound:!0,boundThis:boundThis}),$$=this.$$;return pyproxy_new(_getPtr(this),{$$:$$,flags:this.$$flags,props:props})}captureThis(){const props=Object.assign({},this.$$props,{captureThis:!0});return pyproxy_new(_getPtr(this),{$$:this.$$,flags:this.$$flags,props:props})}}PyCallableMethods.prototype.prototype=Function.prototype;let type_to_array_map=new Map([["i8",Int8Array],["u8",Uint8Array],["u8clamped",Uint8ClampedArray],["i16",Int16Array],["u16",Uint16Array],["i32",Int32Array],["u32",Uint32Array],["i32",Int32Array],["u32",Uint32Array],["i64",globalThis.BigInt64Array],["u64",globalThis.BigUint64Array],["f32",Float32Array],["f64",Float64Array],["dataview",DataView]]);class PyBuffer extends PyProxy{static[Symbol.hasInstance](obj){return API.isPyProxy(obj)&&!!(128&obj.$$flags)}}class PyBufferMethods{getBuffer(type){let ArrayType;if(type&&(ArrayType=type_to_array_map.get(type),void 0===ArrayType))throw new Error(`Unknown type ${type}`);let errcode,orig_stack_ptr=stackSave(),buffer_struct_ptr=stackAlloc(HEAPU32[0+(Module._buffer_struct_size>>2)]),this_ptr=_getPtr(this);try{errcode=Module.__pyproxy_get_buffer(buffer_struct_ptr,this_ptr)}catch(e){API.fatal_error(e)}-1===errcode&&Module._pythonexc2js();let startByteOffset=HEAPU32[0+(buffer_struct_ptr>>2)],minByteOffset=HEAPU32[1+(buffer_struct_ptr>>2)],maxByteOffset=HEAPU32[2+(buffer_struct_ptr>>2)],readonly=!!HEAPU32[3+(buffer_struct_ptr>>2)],format_ptr=HEAPU32[4+(buffer_struct_ptr>>2)],itemsize=HEAPU32[5+(buffer_struct_ptr>>2)],shape=Hiwire.pop_value(HEAPU32[6+(buffer_struct_ptr>>2)]),strides=Hiwire.pop_value(HEAPU32[7+(buffer_struct_ptr>>2)]),view_ptr=HEAPU32[8+(buffer_struct_ptr>>2)],c_contiguous=!!HEAPU32[9+(buffer_struct_ptr>>2)],f_contiguous=!!HEAPU32[10+(buffer_struct_ptr>>2)],format=Module.UTF8ToString(format_ptr);stackRestore(orig_stack_ptr);let success=!1;try{let bigEndian=!1;void 0===ArrayType&&([ArrayType,bigEndian]=Module.processBufferFormatString(format," In this case, you can pass an explicit type argument."));let alignment=parseInt(ArrayType.name.replace(/[^0-9]/g,""))/8||1;if(bigEndian&&alignment>1)throw new Error("Javascript has no native support for big endian buffers. In this case, you can pass an explicit type argument. For instance, `getBuffer('dataview')` will return a `DataView`which has native support for reading big endian data. Alternatively, toJs will automatically convert the buffer to little endian.");let numBytes=maxByteOffset-minByteOffset;if(0!==numBytes&&(startByteOffset%alignment!=0||minByteOffset%alignment!=0||maxByteOffset%alignment!=0))throw new Error(`Buffer does not have valid alignment for a ${ArrayType.name}`);let data,numEntries=numBytes/alignment,offset=(startByteOffset-minByteOffset)/alignment;data=0===numBytes?new ArrayType:new ArrayType(HEAPU32.buffer,minByteOffset,numEntries);for(let i of strides.keys())strides[i]/=alignment;return success=!0,Object.create(PyBufferView.prototype,Object.getOwnPropertyDescriptors({offset:offset,readonly:readonly,format:format,itemsize:itemsize,ndim:shape.length,nbytes:numBytes,shape:shape,strides:strides,data:data,c_contiguous:c_contiguous,f_contiguous:f_contiguous,_view_ptr:view_ptr,_released:!1}))}finally{if(!success)try{Module._PyBuffer_Release(view_ptr),Module._PyMem_Free(view_ptr)}catch(e){API.fatal_error(e)}}}}class PyDict extends PyProxy{static[Symbol.hasInstance](obj){return API.isPyProxy(obj)&&"dict"===obj.type}}class PyBufferView{constructor(){throw new TypeError("PyBufferView is not a constructor")}release(){if(!this._released){try{Module._PyBuffer_Release(this._view_ptr),Module._PyMem_Free(this._view_ptr)}catch(e){API.fatal_error(e)}this._released=!0,this.data=null}}}"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;var errorStackParser={exports:{}},stackframe={exports:{}};stackframe.exports=function(){function _isNumber(n){return!isNaN(parseFloat(n))&&isFinite(n)}function _capitalize(str){return str.charAt(0).toUpperCase()+str.substring(1)}function _getter(p){return function(){return this[p]}}var booleanProps=["isConstructor","isEval","isNative","isToplevel"],numericProps=["columnNumber","lineNumber"],stringProps=["fileName","functionName","source"],arrayProps=["args"],objectProps=["evalOrigin"],props=booleanProps.concat(numericProps,stringProps,arrayProps,objectProps);function StackFrame(obj){if(obj)for(var i=0;i-1&&(line=line.replace(/eval code/g,"eval").replace(/(\(eval at [^()]*)|(,.*$)/g,""));var sanitizedLine=line.replace(/^\s+/,"").replace(/\(eval code/g,"(").replace(/^.*?\s+/,""),location=sanitizedLine.match(/ (\(.+\)$)/);sanitizedLine=location?sanitizedLine.replace(location[0],""):sanitizedLine;var locationParts=this.extractLocation(location?location[1]:sanitizedLine),functionName=location&&sanitizedLine||void 0,fileName=["eval",""].indexOf(locationParts[0])>-1?void 0:locationParts[0];return new StackFrame({functionName:functionName,fileName:fileName,lineNumber:locationParts[1],columnNumber:locationParts[2],source:line})},this)},parseFFOrSafari:function(error){return error.stack.split("\n").filter(function(line){return!line.match(SAFARI_NATIVE_CODE_REGEXP)},this).map(function(line){if(line.indexOf(" > eval")>-1&&(line=line.replace(/ line (\d+)(?: > eval line \d+)* > eval:\d+:\d+/g,":$1")),-1===line.indexOf("@")&&-1===line.indexOf(":"))return new StackFrame({functionName:line});var functionNameRegex=/((.*".+"[^@]*)?[^@]*)(?:@)/,matches=line.match(functionNameRegex),functionName=matches&&matches[1]?matches[1]:void 0,locationParts=this.extractLocation(line.replace(functionNameRegex,""));return new StackFrame({functionName:functionName,fileName:locationParts[0],lineNumber:locationParts[1],columnNumber:locationParts[2],source:line})},this)},parseOpera:function(e){return!e.stacktrace||e.message.indexOf("\n")>-1&&e.message.split("\n").length>e.stacktrace.split("\n").length?this.parseOpera9(e):e.stack?this.parseOpera11(e):this.parseOpera10(e)},parseOpera9:function(e){for(var lineRE=/Line (\d+).*script (?:in )?(\S+)/i,lines=e.message.split("\n"),result=[],i=2,len=lines.length;i/,"$2").replace(/\([^)]*\)/g,"")||void 0;functionCall.match(/\(([^)]*)\)/)&&(argsRaw=functionCall.replace(/^[^(]+\(([^)]*)\)$/,"$1"));var args=void 0===argsRaw||"[arguments not available]"===argsRaw?void 0:argsRaw.split(",");return new StackFrame({functionName:functionName,args:args,fileName:locationParts[0],lineNumber:locationParts[1],columnNumber:locationParts[2],source:line})},this)}})}(errorStackParser);var ErrorStackParser=errorStackParser.exports;function ensureCaughtObjectIsError(e){if("string"==typeof e)e=new Error(e);else if(e&&"object"==typeof e&&"ExitStatus"===e.name){let status=e.status;(e=new Exit(e.message)).status=status}else if("object"!=typeof e||null===e||"string"!=typeof e.stack||"string"!=typeof e.message){let msg=`A value of type ${typeof e} with tag ${API.getTypeTag(e)} was thrown as an error!`;try{msg+=`\nString interpolation of the thrown value gives """${e}""".`}catch(e){msg+="\nString interpolation of the thrown value fails."}try{msg+=`\nThe thrown value's toString method returns """${e.toString()}""".`}catch(e){msg+="\nThe thrown value's toString method fails."}e=new Error(msg)}return e}class CppException extends Error{constructor(ty,msg,ptr){msg||(msg=`The exception is an object of type ${ty} at address ${ptr} which does not inherit from std::exception`),super(msg),this.ty=ty}}function convertCppException(e){let[ty,msg]=Module.getExceptionMessage(e);return new CppException(ty,msg,e)}Object.defineProperty(CppException.prototype,"name",{get(){return`${this.constructor.name} ${this.ty}`}}),Tests.convertCppException=convertCppException;let fatal_error_occurred=!1;API.fatal_error=function(e){if(e&&e.pyodide_fatal_error)return;if(fatal_error_occurred)return console.error("Recursive call to fatal_error. Inner error was:"),void console.error(e);(e="number"==typeof e?convertCppException(e):ensureCaughtObjectIsError(e)).pyodide_fatal_error=!0,fatal_error_occurred=!0;const isexit=e instanceof Exit;isexit||(console.error("Pyodide has suffered a fatal error. Please report this to the Pyodide maintainers."),console.error("The cause of the fatal error was:"),API.inTestHoist?(console.error(e.toString()),console.error(e.stack)):console.error(e));try{isexit||Module._dump_traceback();let msg=`Pyodide already ${isexit?"exited":"fatally failed"} and can no longer be used.`;for(let key of Reflect.ownKeys(API.public_api))"string"==typeof key&&key.startsWith("_")||"version"===key||Object.defineProperty(API.public_api,key,{enumerable:!0,configurable:!0,get:()=>{throw new Error(msg)}});API.on_fatal&&API.on_fatal(e)}catch(err2){console.error("Another error occurred while handling the fatal error:"),console.error(err2)}throw e},API.maybe_fatal_error=function(e){if(!e||"unwind"!=e)return API.fatal_error(e)};let stderr_chars=[];function isPyodideFrame(frame){if(!frame)return!1;const fileName=frame.fileName||"";if(fileName.includes("wasm-function"))return!0;if(!fileName.includes("pyodide.asm.js"))return!1;let funcName=frame.functionName||"";return funcName.startsWith("Object.")&&(funcName=funcName.slice("Object.".length)),!(funcName in API.public_api)||"PythonError"===funcName||(frame.functionName=funcName,!1)}API.capture_stderr=function(){stderr_chars=[];const FS=Module.FS;FS.createDevice("/dev","capture_stderr",null,e=>stderr_chars.push(e)),FS.closeStream(2),FS.open("/dev/capture_stderr",1)},API.restore_stderr=function(){const FS=Module.FS;return FS.closeStream(2),FS.unlink("/dev/capture_stderr"),FS.open("/dev/stderr",1),(new TextDecoder).decode(new Uint8Array(stderr_chars))},API.fatal_loading_error=function(...args){let message=args.join(" ");if(Module._PyErr_Occurred()){API.capture_stderr(),Module._PyErr_Print();message+="\n"+API.restore_stderr()}throw new FatalPyodideError(message)},Module.handle_js_error=function(e){if(e&&e.pyodide_fatal_error)throw e;if(e instanceof Module._PropagatePythonError)return;let stack,weirdCatch,restored_error=!1;e instanceof API.PythonError&&(restored_error=Module._restore_sys_last_exception(e.__error_address));try{stack=ErrorStackParser.parse(e)}catch(_){weirdCatch=!0}if(weirdCatch&&(e=ensureCaughtObjectIsError(e)),!restored_error){let eidx=Hiwire.new_value(e),err=Module._JsProxy_create(eidx);Module._set_error(err),Module._Py_DecRef(err),Hiwire.decref(eidx)}if(!weirdCatch){if(function(frame){if(!isPyodideFrame(frame))return!1;const funcName=frame.functionName;return"PythonError"===funcName||"new_error"===funcName}(stack[0]))for(;isPyodideFrame(stack[0]);)stack.shift();for(const frame of stack){if(isPyodideFrame(frame))break;const funcnameAddr=Module.stringToNewUTF8(frame.functionName||"???"),fileNameAddr=Module.stringToNewUTF8(frame.fileName||"???.js");Module.__PyTraceback_Add(funcnameAddr,fileNameAddr,frame.lineNumber),Module._free(funcnameAddr),Module._free(fileNameAddr)}}};class PythonError extends Error{constructor(type,message,error_address){const oldLimit=Error.stackTraceLimit;Error.stackTraceLimit=1/0,super(message),Error.stackTraceLimit=oldLimit,this.type=type,this.__error_address=error_address}}API.PythonError=PythonError;class _PropagatePythonError extends Error{constructor(){super("If you are seeing this message, an internal Pyodide error has occurred. Please report it to the Pyodide maintainers.")}}class FatalPyodideError extends Error{}class Exit extends Error{}[_PropagatePythonError,FatalPyodideError,Exit,PythonError].forEach(function(errClass){Object.defineProperty(errClass.prototype,"name",{value:errClass.name})}),Module._PropagatePythonError=_PropagatePythonError,API.errorConstructors=new Map([EvalError,RangeError,ReferenceError,SyntaxError,TypeError,URIError,globalThis.DOMException,globalThis.AssertionError,globalThis.SystemError].filter(x=>x).map(x=>[x.constructor.name,x])),API.deserializeError=function(name,message,stack){const err=new(API.errorConstructors.get(name)||Error)(message);return API.errorConstructors.has(name)||(err.name=name),err.message=message,err.stack=stack,err};const ffi={PyProxy:PyProxy,PyProxyWithLength:PyProxyWithLength,PyProxyWithGet:PyProxyWithGet,PyProxyWithSet:PyProxyWithSet,PyProxyWithHas:PyProxyWithHas,PyDict:PyDict,PyIterable:PyIterable,PyAsyncIterable:PyAsyncIterable,PyIterator:PyIterator,PyAsyncIterator:PyAsyncIterator,PyGenerator:PyGenerator,PyAsyncGenerator:PyAsyncGenerator,PyAwaitable:PyAwaitable,PyCallable:PyCallable,PyBuffer:PyBuffer,PyBufferView:PyBufferView,PythonError:PythonError},setCanvas2D=canvas=>{"canvas"!==canvas.id&&console.warn("If you are using canvas element for SDL library, it should have id 'canvas' to work properly."),Module.canvas=canvas},getCanvas2D=()=>Module.canvas,canvas={setCanvas2D:setCanvas2D,getCanvas2D:getCanvas2D,setCanvas3D:canvas=>{setCanvas2D(canvas)},getCanvas3D:()=>getCanvas2D()};function createLock(){let _lock=Promise.resolve();return async function(){const old_lock=_lock;let releaseLock;return _lock=new Promise(resolve=>releaseLock=resolve),await old_lock,releaseLock}}const acquireDynlibLock=createLock();async function loadDynlib(lib,global,searchDirs,readFileFunc){const releaseDynlibLock=await acquireDynlibLock();const fs=function(lib,searchDirs,readFileFunc){const dirname=lib.substring(0,lib.lastIndexOf("/"));let _searchDirs=searchDirs||[];_searchDirs=_searchDirs.concat(API.defaultLdLibraryPath,[dirname]);const resolvePath=path=>{for(const dir of _searchDirs){const fullPath=Module.PATH.join2(dir,path);if(null!==Module.FS.findObject(fullPath))return fullPath}return path};let readFile=path=>Module.FS.readFile(resolvePath(path));return void 0!==readFileFunc&&(readFile=path=>readFileFunc(resolvePath(path))),{findObject:(path,dontResolveLastLink)=>Module.FS.findObject(resolvePath(path),dontResolveLastLink),readFile:readFile}}(lib,searchDirs,readFileFunc);try{if(await Module.loadDynamicLibrary(lib,{loadAsync:!0,nodelete:!0,allowUndefined:!0,global:global,fs:fs}),global&&Module.PATH.isAbs(lib)){const libName=Module.PATH.basename(lib);Module.LDSO.loadedLibsByName[libName]||(Module.LDSO.loadedLibsByName[libName]=Module.LDSO.loadedLibsByName[lib])}}catch(e){if(e&&e.message&&e.message.includes("need to see wasm magic number"))return void console.warn(`Failed to load dynlib ${lib}. We probably just tried to load a linux .so file or something.`);throw e}finally{releaseDynlibLock()}}async function loadDynlibsFromPackage(pkg,dynlibPaths){const auditWheelLibDir=`${API.sitepackages}/${pkg.file_name.split("-")[0]}.libs`,readFileMemoized=(fn=>{let cache={};return(...args)=>{let n=args[0];if(n in cache)return cache[n];{let result=fn(n);return cache[n]=result,result}}})(Module.FS.readFile);let dynlibs;if(!!pkg.shared_library)dynlibs=dynlibPaths.map(path=>({path:path,global:!0}));else{const globalLibs=function(libs,readFileFunc){let readFile=Module.FS.readFile;void 0!==readFileFunc&&(readFile=readFileFunc);const globalLibs=new Set;return libs.forEach(lib=>{const binary=readFile(lib);Module.getDylinkMetadata(binary).neededDynlibs.forEach(lib=>{globalLibs.add(lib)})}),globalLibs}(dynlibPaths,readFileMemoized);dynlibs=dynlibPaths.map(path=>({path:path,global:globalLibs.has(Module.PATH.basename(path))||!!pkg.shared_library}))}dynlibs.sort((lib1,lib2)=>Number(lib2.global)-Number(lib1.global));for(const{path:path,global:global}of dynlibs)await loadDynlib(path,global,[auditWheelLibDir],readFileMemoized)}let cdnURL;API.loadDynlib=loadDynlib,API.loadDynlibsFromPackage=loadDynlibsFromPackage,API.packageIndexReady=async function(lockFileURL){let repodata;if(IN_NODE){await async function(){if(!IN_NODE)return;if((await import("url")).default,nodeFsPromisesMod=await import("fs/promises"),nodeFetch=globalThis.fetch?fetch:(await import("node-fetch")).default,(await import("vm")).default,nodePath=await import("path"),"undefined"!=typeof require)return;const node_modules={fs:await import("fs"),crypto:await import("crypto"),ws:await import("ws"),child_process:await import("child_process")};globalThis.require=function(mod){return node_modules[mod]}}();const package_string=await nodeFsPromisesMod.readFile(lockFileURL);repodata=JSON.parse(package_string)}else{let response=await fetch(lockFileURL);repodata=await response.json()}if(!repodata.packages)throw new Error("Loaded repodata.json does not contain the expected key 'packages'.");API.repodata_info=repodata.info,API.repodata_packages=repodata.packages,API.repodata_unvendored_stdlibs_and_test=[],API._import_name_to_package_name=new Map;for(let name of Object.keys(API.repodata_packages)){const pkg=API.repodata_packages[name];for(let import_name of pkg.imports)API._import_name_to_package_name.set(import_name,name);"cpython_module"===pkg.package_type&&API.repodata_unvendored_stdlibs_and_test.push(name)}API.repodata_unvendored_stdlibs=API.repodata_unvendored_stdlibs_and_test.filter(lib=>"test"!==lib)}(API.config.lockFileURL),API.setCdnUrl=function(url){cdnURL=url};const package_uri_regexp=/^.*?([^\/]*)\.whl$/;function _uri_to_package_name(package_uri){let match=package_uri_regexp.exec(package_uri);if(match){return match[1].toLowerCase().split("-").slice(0,-4).join("-")}}function createDonePromise(){let _resolve=()=>{},_reject=()=>{};const p=new Promise((resolve,reject)=>{_resolve=resolve,_reject=reject});return p.resolve=_resolve,p.reject=_reject,p}function addPackageToLoad(name,toLoad){if(name=name.toLowerCase(),toLoad.has(name))return;const pkg_info=API.repodata_packages[name];if(!pkg_info)throw new Error(`No known package with name '${name}'`);if(toLoad.set(name,{name:name,channel:"default channel",depends:pkg_info.depends,installPromise:void 0,done:createDonePromise()}),void 0===loadedPackages[name])for(let dep_name of pkg_info.depends)addPackageToLoad(dep_name,toLoad)}async function downloadAndInstall(name,toLoad,loaded,failed,checkIntegrity=!0){if(void 0!==loadedPackages[name])return;const pkg=toLoad.get(name);try{const buffer=await async function(name,channel,checkIntegrity=!0){let file_name,uri,file_sub_resource_hash;if("default channel"===channel){if(!(name in API.repodata_packages))throw new Error(`Internal error: no entry for package named ${name}`);file_name=API.repodata_packages[name].file_name,uri=resolvePath(file_name,API.config.indexURL),file_sub_resource_hash=API.package_loader.sub_resource_hash(API.repodata_packages[name].sha256)}else uri=channel,file_sub_resource_hash=void 0;checkIntegrity||(file_sub_resource_hash=void 0);try{return await loadBinaryFile(uri,file_sub_resource_hash)}catch(e){if(!IN_NODE||"default channel"!==channel)throw e}console.log(`Didn't find package ${file_name} locally, attempting to load from ${cdnURL}`);let binary=await loadBinaryFile(cdnURL+file_name);return console.log(`Package ${file_name} loaded from ${cdnURL}, caching the wheel in node_modules for future use.`),await nodeFsPromisesMod.writeFile(uri,binary),binary}(pkg.name,pkg.channel,checkIntegrity),installPromisDependencies=pkg.depends.map(dependency=>toLoad.has(dependency)?toLoad.get(dependency).done:Promise.resolve());await Promise.all(installPromisDependencies),await async function(name,buffer,channel){let pkg=API.repodata_packages[name];pkg||(pkg={file_name:".whl",shared_library:!1,depends:[],imports:[],install_dir:"site"});const filename=pkg.file_name,dynlibs=API.package_loader.unpack_buffer.callKwargs({buffer:buffer,filename:filename,target:pkg.install_dir,calculate_dynlibs:!0,installer:"pyodide.loadPackage",source:"default channel"===channel?"pyodide":channel});await loadDynlibsFromPackage(pkg,dynlibs)}(pkg.name,buffer,pkg.channel),loaded.add(pkg.name),loadedPackages[pkg.name]=pkg.channel}catch(err){failed.set(name,err)}finally{pkg.done.resolve()}}const acquirePackageLock=createLock(),cbDeprecationWarnOnce=makeWarnOnce("Passing a messageCallback (resp. errorCallback) as the second (resp. third) argument to loadPackage is deprecated and will be removed in v0.24. Instead use:\n { messageCallback : callbackFunc }");async function loadPackage(names,options={checkIntegrity:!0},errorCallbackDeprecated){"function"==typeof options&&(cbDeprecationWarnOnce(),options={messageCallback:options,errorCallback:errorCallbackDeprecated});const messageCallback=options.messageCallback||console.log,errorCallback=options.errorCallback||console.error;names instanceof PyProxy&&(names=names.toJs()),Array.isArray(names)||(names=[names]);const toLoad=function(names,errorCallback){const toLoad=new Map;for(let name of names){const pkgname=_uri_to_package_name(name);if(void 0===pkgname){addPackageToLoad(name,toLoad);continue}const channel=name;toLoad.has(pkgname)&&toLoad.get(pkgname).channel!==channel?errorCallback(`Loading same package ${pkgname} from ${channel} and ${toLoad.get(pkgname).channel}`):toLoad.set(pkgname,{name:pkgname,channel:channel,depends:[],installPromise:void 0,done:createDonePromise()})}return toLoad}(names,errorCallback);for(const[pkg,pkg_metadata]of toLoad){const loaded=loadedPackages[pkg];void 0!==loaded&&(toLoad.delete(pkg),loaded===pkg_metadata.channel||"default channel"===pkg_metadata.channel?messageCallback(`${pkg} already loaded from ${loaded}`):errorCallback(`URI mismatch, attempting to load package ${pkg} from ${pkg_metadata.channel} while it is already loaded from ${loaded}. To override a dependency, load the custom package first.`))}if(0===toLoad.size)return void messageCallback("No new packages to load");const packageNames=[...toLoad.keys()].join(", "),loaded=new Set,failed=new Map,releaseLock=await acquirePackageLock();try{messageCallback(`Loading ${packageNames}`);for(const[name]of toLoad)loadedPackages[name]?toLoad.delete(name):toLoad.get(name).installPromise=downloadAndInstall(name,toLoad,loaded,failed,options.checkIntegrity);if(await Promise.all(Array.from(toLoad.values()).map(({installPromise:installPromise})=>installPromise)),Module.reportUndefinedSymbols(),loaded.size>0){messageCallback(`Loaded ${Array.from(loaded).join(", ")}`)}if(failed.size>0){messageCallback(`Failed to load ${Array.from(failed.keys()).join(", ")}`);for(const[name,err]of failed)errorCallback(`The following error occurred while loading ${name}:`),errorCallback(err.message)}API.importlib.invalidate_caches()}finally{releaseLock()}}let loadedPackages={};let INITIALIZED=!1;const ttyout_ops={},ttyerr_ops={},isattys={};function refreshStreams(){INITIALIZED&&(FS.unlink("/dev/stdin"),FS.unlink("/dev/stdout"),FS.unlink("/dev/stderr"),isattys.stdin?FS.symlink("/dev/tty","/dev/stdin"):FS.createDevice("/dev","stdin",ttyout_ops.get_char),isattys.stdout?FS.symlink("/dev/tty","/dev/stdout"):FS.createDevice("/dev","stdout",null,ttyout_ops.put_char.bind(void 0,void 0)),isattys.stderr?FS.symlink("/dev/tty","/dev/stderr"):FS.createDevice("/dev","stderr",null,ttyerr_ops.put_char.bind(void 0,void 0)),FS.closeStream(0),FS.closeStream(1),FS.closeStream(2),FS.open("/dev/stdin",0),FS.open("/dev/stdout",1),FS.open("/dev/stderr",1))}function setStdinError(){isattys.stdin=!1;const get_char=()=>{throw 0};ttyout_ops.get_char=get_char,ttyerr_ops.get_char=get_char,refreshStreams()}function setStdin(options={}){if(options.stdin&&options.error)throw new TypeError("Both a stdin handler provided and the error argument was set");if(options.error)setStdinError();else{if(options.stdin){let autoEOF=options.autoEOF;autoEOF=void 0===autoEOF||autoEOF,isattys.stdin=!!options.isatty;const get_char=function(infunc,autoEOF){let index=0,buf=new Uint8Array(0),insertEOF=!1;return function(){try{if(index>=buf.length){if(insertEOF)return insertEOF=!1,null;let input=infunc();if(null==input)return null;if("number"==typeof input)return input;if("string"==typeof input)input.endsWith("\n")||(input+="\n"),buf=textencoder.encode(input);else if(ArrayBuffer.isView(input)){if(1!==input.BYTES_PER_ELEMENT)throw new Error("Expected BYTES_PER_ELEMENT to be 1");buf=input}else{if("[object ArrayBuffer]"!==Object.prototype.toString.call(input))throw new Error("Expected result to be undefined, null, string, array buffer, or array buffer view");buf=new Uint8Array(input)}if(0===buf.length)return null;autoEOF&&(insertEOF=!0),index=0}return buf[index++]}catch(e){throw console.error("Error thrown in stdin:"),console.error(e),e}}}(options.stdin,autoEOF);return ttyout_ops.get_char=get_char,ttyerr_ops.get_char=get_char,void refreshStreams()}!function(){if(IN_NODE){const BUFSIZE=256,buf=Buffer.alloc(BUFSIZE),fs=require("fs");setStdin({stdin:function(){let bytesRead;try{bytesRead=fs.readSync(process.stdin.fd,buf,0,BUFSIZE,-1)}catch(e){if(!e.toString().includes("EOF"))throw e;bytesRead=0}return 0===bytesRead?null:buf.subarray(0,bytesRead)},isatty:require("tty").isatty(process.stdin.fd)})}else setStdinError()}()}}function setDefaultStdout(){if(IN_NODE){setStdout({raw:x=>process.stdout.write(Buffer.from([x])),isatty:require("tty").isatty(process.stdout.fd)})}else setStdout({batched:x=>console.log(x)})}function setStdout(options={}){if(options.raw&&options.batched)throw new TypeError("Both a batched handler and a raw handler provided");if(!options.raw&&options.isatty)throw new TypeError("Cannot set isatty to true unless a raw handler is provided");return options.raw?(isattys.stdout=!!options.isatty,Object.assign(ttyout_ops,make_unbatched_put_char(options.raw)),void refreshStreams()):options.batched?(isattys.stdout=!1,Object.assign(ttyout_ops,make_batched_put_char(options.batched)),void refreshStreams()):void setDefaultStdout()}function setDefaultStderr(){if(IN_NODE){setStderr({raw:x=>process.stderr.write(Buffer.from([x])),isatty:require("tty").isatty(process.stderr.fd)})}else setStderr({batched:x=>console.warn(x)})}function setStderr(options={}){if(options.raw&&options.batched)throw new TypeError("Both a batched handler and a raw handler provided");if(!options.raw&&options.isatty)throw new TypeError("Cannot set isatty to true unless a raw handler is provided");return options.raw?(isattys.stderr=!!options.isatty,Object.assign(ttyerr_ops,make_unbatched_put_char(options.raw)),void refreshStreams()):options.batched?(isattys.stderr=!1,Object.assign(ttyerr_ops,make_batched_put_char(options.batched)),void refreshStreams()):void setDefaultStderr()}API.initializeStreams=function(stdin,stdout,stderr){setStdin({stdin:stdin}),stdout?setStdout({batched:stdout}):setDefaultStdout(),stderr?setStderr({batched:stderr}):setDefaultStderr();const ttyout_dev=FS.makedev(5,0),ttyerr_dev=FS.makedev(6,0);TTY.register(ttyout_dev,ttyout_ops),TTY.register(ttyerr_dev,ttyerr_ops),INITIALIZED=!0,refreshStreams()};const textencoder=new TextEncoder,textdecoder=new TextDecoder;function make_unbatched_put_char(out){return{put_char(tty,val){out(val)},fsync(){}}}function make_batched_put_char(out){let output=[];return{put_char(tty,val){null===val||10===val?(out(textdecoder.decode(new Uint8Array(output))),output=[]):0!==val&&output.push(val)},fsync(tty){output&&output.length>0&&(out(textdecoder.decode(new Uint8Array(output))),output=[])}}}API.loadBinaryFile=loadBinaryFile,API.rawRun=function(code){const code_ptr=Module.stringToNewUTF8(code);Module.API.capture_stderr();let errcode=Module._PyRun_SimpleString(code_ptr);Module._free(code_ptr);return[errcode,Module.API.restore_stderr().trim()]},API.runPythonInternal=function(code){return API._pyodide._base.eval_code(code,API.runPythonInternal_dict)};const positionalCallbackWarnOnce=makeWarnOnce("Passing a messageCallback (resp. errorCallback) as the second (resp. third) argument to loadPackageFromImports is deprecated and will be removed in v0.24. Instead use:\n { messageCallback : callbackFunc }");API.saveState=()=>API.pyodide_py._state.save_state(),API.restoreState=state=>API.pyodide_py._state.restore_state(state);class PyodideAPI{static async loadPackagesFromImports(code,options={checkIntegrity:!0},errorCallbackDeprecated){"function"==typeof options&&(positionalCallbackWarnOnce(),options={messageCallback:options,errorCallback:errorCallbackDeprecated});let imports,pyimports=API.pyodide_code.find_imports(code);try{imports=pyimports.toJs()}finally{pyimports.destroy()}if(0===imports.length)return;let packageNames=API._import_name_to_package_name,packages=new Set;for(let name of imports)packageNames.has(name)&&packages.add(packageNames.get(name));packages.size&&await loadPackage(Array.from(packages),options)}static runPython(code,options={}){return options.globals||(options.globals=API.globals),API.pyodide_code.eval_code(code,options.globals,options.locals)}static async runPythonAsync(code,options={}){return options.globals||(options.globals=API.globals),await API.pyodide_code.eval_code_async(code,options.globals,options.locals)}static registerJsModule(name,module){API.pyodide_ffi.register_js_module(name,module)}static unregisterJsModule(name){API.pyodide_ffi.unregister_js_module(name)}static toPy(obj,{depth:depth,defaultConverter:defaultConverter}={depth:-1}){switch(typeof obj){case"string":case"number":case"boolean":case"bigint":case"undefined":return obj}if(!obj||API.isPyProxy(obj))return obj;let obj_id=0,py_result=0,result=0;try{obj_id=Hiwire.new_value(obj);try{py_result=Module.js2python_convert(obj_id,{depth:depth,defaultConverter:defaultConverter})}catch(e){throw e instanceof Module._PropagatePythonError&&Module._pythonexc2js(),e}if(Module._JsProxy_Check(py_result))return obj;result=Module._python2js(py_result),0===result&&Module._pythonexc2js()}finally{Hiwire.decref(obj_id),Module._Py_DecRef(py_result)}return Hiwire.pop_value(result)}static pyimport(mod_name){return API.importlib.import_module(mod_name)}static unpackArchive(buffer,format,options={}){if(!ArrayBuffer.isView(buffer)&&"[object ArrayBuffer]"!==API.getTypeTag(buffer))throw new TypeError("Expected argument 'buffer' to be an ArrayBuffer or an ArrayBuffer view");API.typedArrayAsUint8Array(buffer);let extract_dir=options.extractDir;API.package_loader.unpack_buffer.callKwargs({buffer:buffer,format:format,extract_dir:extract_dir,installer:"pyodide.unpackArchive"})}static async mountNativeFS(path,fileSystemHandle){if("FileSystemDirectoryHandle"!==fileSystemHandle.constructor.name)throw new TypeError("Expected argument 'fileSystemHandle' to be a FileSystemDirectoryHandle");return null==Module.FS.findObject(path)&&Module.FS.mkdirTree(path),Module.FS.mount(Module.FS.filesystems.NATIVEFS_ASYNC,{fileSystemHandle:fileSystemHandle},path),await new Promise((resolve,_)=>Module.FS.syncfs(!0,resolve)),{syncfs:async()=>new Promise((resolve,_)=>Module.FS.syncfs(!1,resolve))}}static registerComlink(Comlink){API._Comlink=Comlink}static setInterruptBuffer(interrupt_buffer){Module.HEAP8[Module._Py_EMSCRIPTEN_SIGNAL_HANDLING]=!!interrupt_buffer,Module.Py_EmscriptenSignalBuffer=interrupt_buffer}static checkInterrupt(){Module.__PyErr_CheckSignals()&&Module._pythonexc2js()}static isPyProxy(jsobj){return console.warn("pyodide.isPyProxy() is deprecated. Use `instanceof pyodide.ffi.PyProxy` instead."),this.isPyProxy=API.isPyProxy,API.isPyProxy(jsobj)}static get PyBuffer(){return console.warn("pyodide.PyBuffer is deprecated. Use `pyodide.ffi.PyBufferView` instead."),Object.defineProperty(this,"PyBuffer",{value:PyBufferView}),PyBufferView}static get PyProxyBuffer(){return console.warn("pyodide.PyProxyBuffer is deprecated. Use `pyodide.ffi.PyBuffer` instead."),Object.defineProperty(this,"PyProxyBuffer",{value:PyBuffer}),PyBuffer}static get PythonError(){return console.warn("pyodide.PythonError is deprecated. Use `pyodide.ffi.PythonError` instead."),Object.defineProperty(this,"PythonError",{value:PythonError}),PythonError}}PyodideAPI.version="0.23.2",PyodideAPI.loadPackage=loadPackage,PyodideAPI.loadedPackages=loadedPackages,PyodideAPI.ffi=ffi,PyodideAPI.setStdin=setStdin,PyodideAPI.setStdout=setStdout,PyodideAPI.setStderr=setStderr,PyodideAPI.globals={},PyodideAPI.FS={},PyodideAPI.PATH={},PyodideAPI.canvas=canvas,PyodideAPI.ERRNO_CODES={},PyodideAPI.pyodide_py={},API.makePublicAPI=function(){let d=Object.getOwnPropertyDescriptors(PyodideAPI);delete d.prototype;const pyodideAPI=Object.create({},d);return API.public_api=pyodideAPI,pyodideAPI.FS=Module.FS,pyodideAPI.PATH=Module.PATH,pyodideAPI.ERRNO_CODES=Module.ERRNO_CODES,pyodideAPI._module=Module,pyodideAPI._api=API,pyodideAPI},exports.PyodideAPI=PyodideAPI,Object.defineProperty(exports,"__esModule",{value:!0})}({})}const API=Module.API;const Hiwire={};const Tests={};API.tests=Tests;API.version="0.23.2";Module.hiwire=Hiwire;const getTypeTag=x=>Object.prototype.toString.call(x);API.getTypeTag=getTypeTag;pyodide_js_init();function descr_set_trampoline_call(set,obj,value,closure){return wasmTable.get(set)(obj,value,closure)}descr_set_trampoline_call.sig="iiiii";function descr_get_trampoline_call(get,obj,closure){return wasmTable.get(get)(obj,closure)}descr_get_trampoline_call.sig="iiii";function _PyCFunctionWithKeywords_TrampolineCall(func,self,args,kw){return wasmTable.get(func)(self,args,kw)}_PyCFunctionWithKeywords_TrampolineCall.sig="iiiii";function _PyImport_InitFunc_TrampolineCall(func){return wasmTable.get(func)()}_PyImport_InitFunc_TrampolineCall.sig="ii";function _Py_emscripten_runtime(){var info;if(typeof navigator=="object"){info=navigator.userAgent}else if(typeof process=="object"){info="Node.js ".concat(process.version)}else{info="UNKNOWN"}var len=lengthBytesUTF8(info)+1;var res=_malloc(len);if(res)stringToUTF8(info,res,len);return res}_Py_emscripten_runtime.sig="i";function _Py_CheckEmscriptenSignals_Helper(){if(!Module.Py_EmscriptenSignalBuffer){return 0}try{let result=Module.Py_EmscriptenSignalBuffer[0];Module.Py_EmscriptenSignalBuffer[0]=0;return result}catch(e){return 0}}_Py_CheckEmscriptenSignals_Helper.sig="i";function unbox_small_structs(type_ptr){var type_id=HEAPU16[(type_ptr+6>>1)+0];while(type_id===13){var elements=HEAPU32[(type_ptr+8>>2)+0];var first_element=HEAPU32[(elements>>2)+0];if(first_element===0){type_id=0;break}else if(HEAPU32[(elements>>2)+1]===0){type_ptr=first_element;type_id=HEAPU16[(first_element+6>>1)+0]}else{break}}return[type_ptr,type_id]}function ffi_call_js(cif,fn,rvalue,avalue){var abi=HEAPU32[(cif>>2)+0];var nargs=HEAPU32[(cif>>2)+1];var nfixedargs=HEAPU32[(cif>>2)+6];var arg_types_ptr=HEAPU32[(cif>>2)+2];var rtype_unboxed=unbox_small_structs(HEAPU32[(cif>>2)+3]);var rtype_ptr=rtype_unboxed[0];var rtype_id=rtype_unboxed[1];var orig_stack_ptr=stackSave();var cur_stack_ptr=orig_stack_ptr;var args=[];var ret_by_arg=false;if(rtype_id===15){throw new Error("complex ret marshalling nyi")}if(rtype_id<0||rtype_id>15){throw new Error("Unexpected rtype "+rtype_id)}if(rtype_id===4||rtype_id===13){args.push(rvalue);ret_by_arg=true}for(var i=0;i>2)+i];var arg_unboxed=unbox_small_structs(HEAPU32[(arg_types_ptr>>2)+i]);var arg_type_ptr=arg_unboxed[0];var arg_type_id=arg_unboxed[1];switch(arg_type_id){case 1:case 10:case 9:case 14:args.push(HEAPU32[(arg_ptr>>2)+0]);break;case 2:args.push(HEAPF32[(arg_ptr>>2)+0]);break;case 3:args.push(HEAPF64[(arg_ptr>>3)+0]);break;case 5:args.push(HEAPU8[arg_ptr+0]);break;case 6:args.push(HEAP8[arg_ptr+0]);break;case 7:args.push(HEAPU16[(arg_ptr>>1)+0]);break;case 8:args.push(HEAP16[(arg_ptr>>1)+0]);break;case 11:case 12:args.push(HEAPU64[(arg_ptr>>3)+0]);break;case 4:args.push(HEAPU64[(arg_ptr>>3)+0]);args.push(HEAPU64[(arg_ptr>>3)+1]);break;case 13:var size=HEAPU32[(arg_type_ptr>>2)+0];var align=HEAPU16[(arg_type_ptr+4>>1)+0];cur_stack_ptr-=size,cur_stack_ptr&=~(align-1);HEAP8.subarray(cur_stack_ptr,cur_stack_ptr+size).set(HEAP8.subarray(arg_ptr,arg_ptr+size));args.push(cur_stack_ptr);break;case 15:throw new Error("complex marshalling nyi");default:throw new Error("Unexpected type "+arg_type_id)}}if(nfixedargs!=nargs){var struct_arg_info=[];for(var i=nargs-1;i>=nfixedargs;i--){var arg_ptr=HEAPU32[(avalue>>2)+i];var arg_unboxed=unbox_small_structs(HEAPU32[(arg_types_ptr>>2)+i]);var arg_type_ptr=arg_unboxed[0];var arg_type_id=arg_unboxed[1];switch(arg_type_id){case 5:case 6:cur_stack_ptr-=1,cur_stack_ptr&=~(1-1);HEAPU8[cur_stack_ptr+0]=HEAPU8[arg_ptr+0];break;case 7:case 8:cur_stack_ptr-=2,cur_stack_ptr&=~(2-1);HEAPU16[(cur_stack_ptr>>1)+0]=HEAPU16[(arg_ptr>>1)+0];break;case 1:case 9:case 10:case 14:case 2:cur_stack_ptr-=4,cur_stack_ptr&=~(4-1);HEAPU32[(cur_stack_ptr>>2)+0]=HEAPU32[(arg_ptr>>2)+0];break;case 3:case 11:case 12:cur_stack_ptr-=8,cur_stack_ptr&=~(8-1);HEAPU32[(cur_stack_ptr>>2)+0]=HEAPU32[(arg_ptr>>2)+0];HEAPU32[(cur_stack_ptr>>2)+1]=HEAPU32[(arg_ptr>>2)+1];break;case 4:cur_stack_ptr-=16,cur_stack_ptr&=~(8-1);HEAPU32[(cur_stack_ptr>>2)+0]=HEAPU32[(arg_ptr>>2)+0];HEAPU32[(cur_stack_ptr>>2)+1]=HEAPU32[(arg_ptr>>2)+1];HEAPU32[(cur_stack_ptr>>2)+2]=HEAPU32[(arg_ptr>>2)+2];HEAPU32[(cur_stack_ptr>>2)+3]=HEAPU32[(arg_ptr>>2)+3];break;case 13:cur_stack_ptr-=4,cur_stack_ptr&=~(4-1);struct_arg_info.push([cur_stack_ptr,arg_ptr,HEAPU32[(arg_type_ptr>>2)+0],HEAPU16[(arg_type_ptr+4>>1)+0]]);break;case 15:throw new Error("complex arg marshalling nyi");default:throw new Error("Unexpected argtype "+arg_type_id)}}args.push(cur_stack_ptr);for(var i=0;i>2)+0]=cur_stack_ptr}}stackRestore(cur_stack_ptr);stackAlloc(0);var result=(0,getWasmTableEntry(fn).apply(null,args));stackRestore(orig_stack_ptr);if(ret_by_arg){return}switch(rtype_id){case 0:break;case 1:case 9:case 10:case 14:HEAPU32[(rvalue>>2)+0]=result;break;case 2:HEAPF32[(rvalue>>2)+0]=result;break;case 3:HEAPF64[(rvalue>>3)+0]=result;break;case 5:case 6:HEAPU8[rvalue+0]=result;break;case 7:case 8:HEAPU16[(rvalue>>1)+0]=result;break;case 11:case 12:HEAPU64[(rvalue>>3)+0]=result;break;case 15:throw new Error("complex ret marshalling nyi");default:throw new Error("Unexpected rtype "+rtype_id)}}ffi_call_js.sig="viiii";function ffi_closure_alloc_js(size,code){var closure=_malloc(size);var index=getEmptyTableSlot();HEAPU32[(code>>2)+0]=index;HEAPU32[(closure>>2)+0]=index;return closure}ffi_closure_alloc_js.sig="iii";function ffi_closure_free_js(closure){var index=HEAPU32[(closure>>2)+0];freeTableIndexes.push(index);_free(closure)}ffi_closure_free_js.sig="vi";function ffi_prep_closure_loc_js(closure,cif,fun,user_data,codeloc){var abi=HEAPU32[(cif>>2)+0];var nargs=HEAPU32[(cif>>2)+1];var nfixedargs=HEAPU32[(cif>>2)+6];var arg_types_ptr=HEAPU32[(cif>>2)+2];var rtype_unboxed=unbox_small_structs(HEAPU32[(cif>>2)+3]);var rtype_ptr=rtype_unboxed[0];var rtype_id=rtype_unboxed[1];var sig;var ret_by_arg=false;switch(rtype_id){case 0:sig="v";break;case 13:case 4:sig="vi";ret_by_arg=true;break;case 1:case 5:case 6:case 7:case 8:case 9:case 10:case 14:sig="i";break;case 2:sig="f";break;case 3:sig="d";break;case 11:case 12:sig="j";break;case 15:throw new Error("complex ret marshalling nyi");default:throw new Error("Unexpected rtype "+rtype_id)}var unboxed_arg_type_id_list=[];var unboxed_arg_type_info_list=[];for(var i=0;i>2)+i]);var arg_type_ptr=arg_unboxed[0];var arg_type_id=arg_unboxed[1];unboxed_arg_type_id_list.push(arg_type_id);unboxed_arg_type_info_list.push([HEAPU32[(arg_type_ptr>>2)+0],HEAPU16[(arg_type_ptr+4>>1)+0]])}for(var i=0;i>2)+carg_idx]=cur_ptr;HEAPU8[cur_ptr+0]=cur_arg;break;case 7:case 8:cur_ptr-=2,cur_ptr&=~(4-1);HEAPU32[(args_ptr>>2)+carg_idx]=cur_ptr;HEAPU16[(cur_ptr>>1)+0]=cur_arg;break;case 1:case 9:case 10:case 14:cur_ptr-=4,cur_ptr&=~(4-1);HEAPU32[(args_ptr>>2)+carg_idx]=cur_ptr;HEAPU32[(cur_ptr>>2)+0]=cur_arg;break;case 13:cur_ptr-=arg_size,cur_ptr&=~(arg_align-1);HEAP8.subarray(cur_ptr,cur_ptr+arg_size).set(HEAP8.subarray(cur_arg,cur_arg+arg_size));HEAPU32[(args_ptr>>2)+carg_idx]=cur_ptr;break;case 2:cur_ptr-=4,cur_ptr&=~(4-1);HEAPU32[(args_ptr>>2)+carg_idx]=cur_ptr;HEAPF32[(cur_ptr>>2)+0]=cur_arg;break;case 3:cur_ptr-=8,cur_ptr&=~(8-1);HEAPU32[(args_ptr>>2)+carg_idx]=cur_ptr;HEAPF64[(cur_ptr>>3)+0]=cur_arg;break;case 11:case 12:cur_ptr-=8,cur_ptr&=~(8-1);HEAPU32[(args_ptr>>2)+carg_idx]=cur_ptr;HEAPU64[(cur_ptr>>3)+0]=cur_arg;break;case 4:cur_ptr-=16,cur_ptr&=~(8-1);HEAPU32[(args_ptr>>2)+carg_idx]=cur_ptr;HEAPU64[(cur_ptr>>3)+0]=cur_arg;cur_arg=args[jsarg_idx++];HEAPU64[(cur_ptr>>3)+1]=cur_arg;break}}var varargs=args[args.length-1];for(;carg_idx>2)+0];cur_ptr-=arg_size,cur_ptr&=~(arg_align-1);HEAP8.subarray(cur_ptr,cur_ptr+arg_size).set(HEAP8.subarray(struct_ptr,struct_ptr+arg_size));HEAPU32[(args_ptr>>2)+carg_idx]=cur_ptr}else{HEAPU32[(args_ptr>>2)+carg_idx]=varargs}varargs+=4}stackRestore(cur_ptr);stackAlloc(0);0;getWasmTableEntry(HEAPU32[(closure>>2)+2])(HEAPU32[(closure>>2)+1],ret_ptr,args_ptr,HEAPU32[(closure>>2)+3]);stackRestore(orig_stack_ptr);if(!ret_by_arg){switch(sig[0]){case"i":return HEAPU32[(ret_ptr>>2)+0];case"j":return HEAPU64[(ret_ptr>>3)+0];case"d":return HEAPF64[(ret_ptr>>3)+0];case"f":return HEAPF32[(ret_ptr>>2)+0]}}}try{var wasm_trampoline=convertJsFunctionToWasm(trampoline,sig)}catch(e){return 1}setWasmTableEntry(codeloc,wasm_trampoline);HEAPU32[(closure>>2)+1]=cif;HEAPU32[(closure>>2)+2]=fun;HEAPU32[(closure>>2)+3]=user_data;return 0}ffi_prep_closure_loc_js.sig="iiiiii";function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}Module["ExitStatus"]=ExitStatus;var GOT={};Module["GOT"]=GOT;var CurrentModuleWeakSymbols=new Set([]);Module["CurrentModuleWeakSymbols"]=CurrentModuleWeakSymbols;var GOTHandler={get:function(obj,symName){var rtn=GOT[symName];if(!rtn){rtn=GOT[symName]=new WebAssembly.Global({"value":"i32","mutable":true})}if(!CurrentModuleWeakSymbols.has(symName)){rtn.required=true}return rtn}};Module["GOTHandler"]=GOTHandler;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){callbacks.shift()(Module)}}Module["callRuntimeCallbacks"]=callRuntimeCallbacks;var wasmTableMirror=[];Module["wasmTableMirror"]=wasmTableMirror;function getWasmTableEntry(funcPtr){var func=wasmTableMirror[funcPtr];if(!func){if(funcPtr>=wasmTableMirror.length)wasmTableMirror.length=funcPtr+1;wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr)}return func}Module["getWasmTableEntry"]=getWasmTableEntry;function exception_decRef(info){if(info.release_ref()&&!info.get_rethrown()){var destructor=info.get_destructor();if(destructor){getWasmTableEntry(destructor)(info.excPtr)}___cxa_free_exception(info.excPtr)}}Module["exception_decRef"]=exception_decRef;function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24;this.set_type=function(type){HEAPU32[this.ptr+4>>2]=type};this.get_type=function(){return HEAPU32[this.ptr+4>>2]};this.set_destructor=function(destructor){HEAPU32[this.ptr+8>>2]=destructor};this.get_destructor=function(){return HEAPU32[this.ptr+8>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+12>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+12>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+13>>0]!=0};this.init=function(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){var value=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=value+1};this.release_ref=function(){var prev=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=prev-1;return prev===1};this.set_adjusted_ptr=function(adjustedPtr){HEAPU32[this.ptr+16>>2]=adjustedPtr};this.get_adjusted_ptr=function(){return HEAPU32[this.ptr+16>>2]};this.get_exception_ptr=function(){var isPointer=___cxa_is_pointer_type(this.get_type());if(isPointer){return HEAPU32[this.excPtr>>2]}var adjusted=this.get_adjusted_ptr();if(adjusted!==0)return adjusted;return this.excPtr}}Module["ExceptionInfo"]=ExceptionInfo;function ___cxa_decrement_exception_refcount(ptr){if(!ptr)return;exception_decRef(new ExceptionInfo(ptr))}Module["___cxa_decrement_exception_refcount"]=___cxa_decrement_exception_refcount;___cxa_decrement_exception_refcount.sig="vp";function decrementExceptionRefcount(ptr){___cxa_decrement_exception_refcount(ptr)}Module["decrementExceptionRefcount"]=decrementExceptionRefcount;function withStackSave(f){var stack=stackSave();var ret=f();stackRestore(stack);return ret}Module["withStackSave"]=withStackSave;function demangle(func){demangle.recursionGuard=(demangle.recursionGuard|0)+1;if(demangle.recursionGuard>1)return func;return withStackSave(function(){try{var s=func;if(s.startsWith("__Z"))s=s.substr(1);var len=lengthBytesUTF8(s)+1;var buf=stackAlloc(len);stringToUTF8(s,buf,len);var status=stackAlloc(4);var ret=___cxa_demangle(buf,0,0,status);if(HEAP32[status>>2]===0&&ret){return UTF8ToString(ret)}}catch(e){}finally{_free(ret);if(demangle.recursionGuard<2)--demangle.recursionGuard}return func})}Module["demangle"]=demangle;function getDylinkMetadata(binary){var offset=0;var end=0;function getU8(){return binary[offset++]}function getLEB(){var ret=0;var mul=1;while(1){var byte=binary[offset++];ret+=(byte&127)*mul;mul*=128;if(!(byte&128))break}return ret}function getString(){var len=getLEB();offset+=len;return UTF8ArrayToString(binary,offset-len,len)}function failIf(condition,message){if(condition)throw new Error(message)}var name="dylink.0";if(binary instanceof WebAssembly.Module){var dylinkSection=WebAssembly.Module.customSections(binary,name);if(dylinkSection.length===0){name="dylink";dylinkSection=WebAssembly.Module.customSections(binary,name)}failIf(dylinkSection.length===0,"need dylink section");binary=new Uint8Array(dylinkSection[0]);end=binary.length}else{var int32View=new Uint32Array(new Uint8Array(binary.subarray(0,24)).buffer);var magicNumberFound=int32View[0]==1836278016;failIf(!magicNumberFound,"need to see wasm magic number");failIf(binary[8]!==0,"need the dylink section to be first");offset=9;var section_size=getLEB();end=offset+section_size;name=getString()}var customSection={neededDynlibs:[],tlsExports:new Set,weakImports:new Set};if(name=="dylink"){customSection.memorySize=getLEB();customSection.memoryAlign=getLEB();customSection.tableSize=getLEB();customSection.tableAlign=getLEB();var neededDynlibsCount=getLEB();for(var i=0;i>2];var message_addr=HEAPU32[message_addr_addr>>2];var type=UTF8ToString(type_addr);_free(type_addr);var message;if(message_addr){message=UTF8ToString(message_addr);_free(message_addr)}return[type,message]})}Module["getExceptionMessageCommon"]=getExceptionMessageCommon;function getExceptionMessage(ptr){return getExceptionMessageCommon(ptr)}Module["getExceptionMessage"]=getExceptionMessage;function getValue(ptr,type="i8"){if(type.endsWith("*"))type="*";switch(type){case"i1":return HEAP8[ptr>>0];case"i8":return HEAP8[ptr>>0];case"i16":return HEAP16[ptr>>1];case"i32":return HEAP32[ptr>>2];case"i64":return HEAP64[ptr>>3];case"float":return HEAPF32[ptr>>2];case"double":return HEAPF64[ptr>>3];case"*":return HEAPU32[ptr>>2];default:abort("invalid type for getValue: "+type)}}Module["getValue"]=getValue;function exception_addRef(info){info.add_ref()}Module["exception_addRef"]=exception_addRef;function ___cxa_increment_exception_refcount(ptr){if(!ptr)return;exception_addRef(new ExceptionInfo(ptr))}Module["___cxa_increment_exception_refcount"]=___cxa_increment_exception_refcount;___cxa_increment_exception_refcount.sig="vp";function incrementExceptionRefcount(ptr){___cxa_increment_exception_refcount(ptr)}Module["incrementExceptionRefcount"]=incrementExceptionRefcount;function asmjsMangle(x){var unmangledSymbols=["stackAlloc","stackSave","stackRestore","getTempRet0","setTempRet0"];return x.indexOf("dynCall_")==0||unmangledSymbols.includes(x)?x:"_"+x}Module["asmjsMangle"]=asmjsMangle;function isSymbolDefined(symName){var existing=wasmImports[symName];if(!existing||existing.stub){return false}return true}Module["isSymbolDefined"]=isSymbolDefined;function mergeLibSymbols(exports,libName){for(var sym in exports){if(!exports.hasOwnProperty(sym)){continue}const setImport=target=>{if(!isSymbolDefined(target)){wasmImports[target]=exports[sym]}};setImport(sym);const main_alias="__main_argc_argv";if(sym=="main"){setImport(main_alias)}if(sym==main_alias){setImport("main")}if(sym.startsWith("dynCall_")&&!Module.hasOwnProperty(sym)){Module[sym]=exports[sym]}}}Module["mergeLibSymbols"]=mergeLibSymbols;function newDSO(name,handle,syms){var dso={refcount:Infinity,name:name,module:syms,global:true};LDSO.loadedLibsByName[name]=dso;if(handle!=undefined){LDSO.loadedLibsByHandle[handle]=dso}return dso}Module["newDSO"]=newDSO;var LDSO={loadedLibsByName:{},loadedLibsByHandle:{},init:()=>newDSO("__main__",0,wasmImports)};Module["LDSO"]=LDSO;var ___heap_base=9186144;Module["___heap_base"]=___heap_base;function zeroMemory(address,size){HEAPU8.fill(0,address,address+size);return address}Module["zeroMemory"]=zeroMemory;function getMemory(size){if(runtimeInitialized){return zeroMemory(_malloc(size),size)}var ret=___heap_base;var end=ret+size+15&-16;___heap_base=end;GOT["__heap_base"].value=end;return ret}Module["getMemory"]=getMemory;function isInternalSym(symName){return["__cpp_exception","__c_longjmp","__wasm_apply_data_relocs","__dso_handle","__tls_size","__tls_align","__set_stack_limits","_emscripten_tls_init","__wasm_init_tls","__wasm_call_ctors","__start_em_asm","__stop_em_asm"].includes(symName)}Module["isInternalSym"]=isInternalSym;function uleb128Encode(n,target){if(n<128){target.push(n)}else{target.push(n%128|128,n>>7)}}Module["uleb128Encode"]=uleb128Encode;function sigToWasmTypes(sig){var typeNames={"i":"i32","j":"i32","f":"f32","d":"f64","p":"i32"};var type={parameters:[],results:sig[0]=="v"?[]:[typeNames[sig[0]]]};for(var i=1;i>0];if(firstLoad){var memAlign=Math.pow(2,metadata.memoryAlign);memAlign=Math.max(memAlign,16);var memoryBase=metadata.memorySize?alignMemory(getMemory(metadata.memorySize+memAlign),memAlign):0;var tableBase=metadata.tableSize?wasmTable.length:0;if(handle){HEAP8[handle+8>>0]=1;HEAPU32[handle+12>>2]=memoryBase;HEAP32[handle+16>>2]=metadata.memorySize;HEAPU32[handle+20>>2]=tableBase;HEAP32[handle+24>>2]=metadata.tableSize}}else{memoryBase=HEAPU32[handle+12>>2];tableBase=HEAPU32[handle+20>>2]}var tableGrowthNeeded=tableBase+metadata.tableSize-wasmTable.length;if(tableGrowthNeeded>0){wasmTable.grow(tableGrowthNeeded)}var moduleExports;function resolveSymbol(sym){var resolved=resolveGlobalSymbol(sym).sym;if(!resolved){resolved=moduleExports[sym]}return resolved}var proxyHandler={"get":function(stubs,prop){switch(prop){case"__memory_base":return memoryBase;case"__table_base":return tableBase}if(prop in wasmImports&&!wasmImports[prop].stub){return wasmImports[prop]}if(!(prop in stubs)){var resolved;stubs[prop]=function(){if(!resolved)resolved=resolveSymbol(prop);return resolved.apply(null,arguments)}}return stubs[prop]}};var proxy=new Proxy({},proxyHandler);var info={"GOT.mem":new Proxy({},GOTHandler),"GOT.func":new Proxy({},GOTHandler),"env":proxy,wasi_snapshot_preview1:proxy};function postInstantiation(instance){updateTableMap(tableBase,metadata.tableSize);moduleExports=relocateExports(instance.exports,memoryBase);if(!flags.allowUndefined){reportUndefinedSymbols()}function addEmAsm(addr,body){var args=[];var arity=0;for(;arity<16;arity++){if(body.indexOf("$"+arity)!=-1){args.push("$"+arity)}else{break}}args=args.join(",");var func="("+args+" ) => { "+body+"};";ASM_CONSTS[start]=eval(func)}if("__start_em_asm"in moduleExports){var start=moduleExports["__start_em_asm"];var stop=moduleExports["__stop_em_asm"];while(startresolve(new Uint8Array(data)),reject)})}if(!readBinary){throw new Error(libFile+": file not found, and synchronous loading of external files is not available")}return readBinary(libFile)}function getLibModule(){if(typeof preloadedWasm!="undefined"&&preloadedWasm[lib]){var libModule=preloadedWasm[lib];return flags.loadAsync?Promise.resolve(libModule):libModule}if(flags.loadAsync){return loadLibData(lib).then(function(libData){return loadWebAssemblyModule(libData,flags,handle)})}return loadWebAssemblyModule(loadLibData(lib),flags,handle)}function moduleLoaded(libModule){if(dso.global){mergeLibSymbols(libModule,lib)}dso.module=libModule}if(flags.loadAsync){return getLibModule().then(function(libModule){moduleLoaded(libModule);return true})}moduleLoaded(getLibModule());return true}Module["loadDynamicLibrary"]=loadDynamicLibrary;function reportUndefinedSymbols(){for(var symName in GOT){if(GOT[symName].value==0){var value=resolveGlobalSymbol(symName,true).sym;if(!value&&!GOT[symName].required){continue}if(typeof value=="function"){GOT[symName].value=addFunction(value,value.sig)}else if(typeof value=="number"){GOT[symName].value=value}else{throw new Error("bad export type for `"+symName+"`: "+typeof value)}}}}Module["reportUndefinedSymbols"]=reportUndefinedSymbols;function preloadDylibs(){if(!dynamicLibraries.length){reportUndefinedSymbols();return}addRunDependency("preloadDylibs");dynamicLibraries.reduce(function(chain,lib){return chain.then(function(){return loadDynamicLibrary(lib,{loadAsync:true,global:true,nodelete:true,allowUndefined:true})})},Promise.resolve()).then(function(){reportUndefinedSymbols();removeRunDependency("preloadDylibs")})}Module["preloadDylibs"]=preloadDylibs;function setValue(ptr,value,type="i8"){if(type.endsWith("*"))type="*";switch(type){case"i1":HEAP8[ptr>>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;case"*":HEAPU32[ptr>>2]=value;break;default:abort("invalid type for setValue: "+type)}}Module["setValue"]=setValue;function jsStackTrace(){var error=new Error;if(!error.stack){try{throw new Error}catch(e){error=e}if(!error.stack){return"(no stack trace available)"}}return error.stack.toString()}Module["jsStackTrace"]=jsStackTrace;function demangleAll(text){var regex=/\b_Z[\w\d_]+/g;return text.replace(regex,function(x){var y=demangle(x);return x===y?x:y+" ["+x+"]"})}Module["demangleAll"]=demangleAll;function stackTrace(){var js=jsStackTrace();if(Module["extraStackTrace"])js+="\n"+Module["extraStackTrace"]();return demangleAll(js)}Module["stackTrace"]=stackTrace;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}Module["___assert_fail"]=___assert_fail;___assert_fail.sig="vppip";function ___call_sighandler(fp,sig){getWasmTableEntry(fp)(sig)}Module["___call_sighandler"]=___call_sighandler;___call_sighandler.sig="vpi";var exceptionCaught=[];Module["exceptionCaught"]=exceptionCaught;var uncaughtExceptionCount=0;Module["uncaughtExceptionCount"]=uncaughtExceptionCount;function ___cxa_begin_catch(ptr){var info=new ExceptionInfo(ptr);if(!info.get_caught()){info.set_caught(true);uncaughtExceptionCount--}info.set_rethrown(false);exceptionCaught.push(info);exception_addRef(info);return info.get_exception_ptr()}Module["___cxa_begin_catch"]=___cxa_begin_catch;___cxa_begin_catch.sig="pp";function ___cxa_current_primary_exception(){if(!exceptionCaught.length){return 0}var info=exceptionCaught[exceptionCaught.length-1];exception_addRef(info);return info.excPtr}Module["___cxa_current_primary_exception"]=___cxa_current_primary_exception;var exceptionLast=0;Module["exceptionLast"]=exceptionLast;function ___cxa_end_catch(){_setThrew(0);var info=exceptionCaught.pop();exception_decRef(info);exceptionLast=0}Module["___cxa_end_catch"]=___cxa_end_catch;___cxa_end_catch.sig="v";function ___resumeException(ptr){if(!exceptionLast){exceptionLast=ptr}throw ptr}Module["___resumeException"]=___resumeException;___resumeException.sig="vp";function ___cxa_find_matching_catch(){var thrown=exceptionLast;if(!thrown){setTempRet0(0);return 0}var info=new ExceptionInfo(thrown);info.set_adjusted_ptr(thrown);var thrownType=info.get_type();if(!thrownType){setTempRet0(0);return thrown}for(var i=0;ipath.charAt(0)==="/",splitPath:filename=>{var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:(parts,allowAboveRoot)=>{var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(p=>!!p),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:path=>{if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},join:function(){var paths=Array.prototype.slice.call(arguments);return PATH.normalize(paths.join("/"))},join2:(l,r)=>{return PATH.normalize(l+"/"+r)}};Module["PATH"]=PATH;function getRandomDevice(){if(typeof crypto=="object"&&typeof crypto["getRandomValues"]=="function"){var randomBuffer=new Uint8Array(1);return()=>{crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return()=>crypto_module["randomBytes"](1)[0]}catch(e){}}return()=>abort("randomDevice")}Module["getRandomDevice"]=getRandomDevice;var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=PATH.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(p=>!!p),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:(from,to)=>{from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}Module["intArrayFromString"]=intArrayFromString;var TTY={ttys:[],init:function(){},shutdown:function(){},register:function(dev,ops){TTY.ttys[dev]={input:[],output:[],ops:ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open:function(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},close:function(stream){stream.tty.ops.fsync(stream.tty)},fsync:function(stream){stream.tty.ops.fsync(stream.tty)},read:function(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(60)}var bytesRead=0;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};Module["TTY"]=TTY;function mmapAlloc(size){size=alignMemory(size,65536);var ptr=_emscripten_builtin_memalign(65536,size);if(!ptr)return 0;return zeroMemory(ptr,size)}Module["mmapAlloc"]=mmapAlloc;var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray:function(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage:function(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length{assert(arrayBuffer,'Loading data file "'+url+'" failed (no arrayBuffer).');onload(new Uint8Array(arrayBuffer));if(dep)removeRunDependency(dep)},event=>{if(onerror){onerror()}else{throw'Loading data file "'+url+'" failed.'}});if(dep)addRunDependency(dep)}Module["asyncLoad"]=asyncLoad;var IDBFS={dbs:{},indexedDB:()=>{if(typeof indexedDB!="undefined")return indexedDB;var ret=null;if(typeof window=="object")ret=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB;assert(ret,"IDBFS used, but indexedDB not supported");return ret},DB_VERSION:21,DB_STORE_NAME:"FILE_DATA",mount:function(mount){return MEMFS.mount.apply(null,arguments)},syncfs:(mount,populate,callback)=>{IDBFS.getLocalSet(mount,(err,local)=>{if(err)return callback(err);IDBFS.getRemoteSet(mount,(err,remote)=>{if(err)return callback(err);var src=populate?remote:local;var dst=populate?local:remote;IDBFS.reconcile(src,dst,callback)})})},quit:()=>{Object.values(IDBFS.dbs).forEach(value=>value.close());IDBFS.dbs={}},getDB:(name,callback)=>{var db=IDBFS.dbs[name];if(db){return callback(null,db)}var req;try{req=IDBFS.indexedDB().open(name,IDBFS.DB_VERSION)}catch(e){return callback(e)}if(!req){return callback("Unable to connect to IndexedDB")}req.onupgradeneeded=e=>{var db=e.target.result;var transaction=e.target.transaction;var fileStore;if(db.objectStoreNames.contains(IDBFS.DB_STORE_NAME)){fileStore=transaction.objectStore(IDBFS.DB_STORE_NAME)}else{fileStore=db.createObjectStore(IDBFS.DB_STORE_NAME)}if(!fileStore.indexNames.contains("timestamp")){fileStore.createIndex("timestamp","timestamp",{unique:false})}};req.onsuccess=()=>{db=req.result;IDBFS.dbs[name]=db;callback(null,db)};req.onerror=e=>{callback(this.error);e.preventDefault()}},getLocalSet:(mount,callback)=>{var entries={};function isRealDir(p){return p!=="."&&p!==".."}function toAbsolute(root){return p=>{return PATH.join2(root,p)}}var check=FS.readdir(mount.mountpoint).filter(isRealDir).map(toAbsolute(mount.mountpoint));while(check.length){var path=check.pop();var stat;try{stat=FS.stat(path)}catch(e){return callback(e)}if(FS.isDir(stat.mode)){check.push.apply(check,FS.readdir(path).filter(isRealDir).map(toAbsolute(path)))}entries[path]={"timestamp":stat.mtime}}return callback(null,{type:"local",entries:entries})},getRemoteSet:(mount,callback)=>{var entries={};IDBFS.getDB(mount.mountpoint,(err,db)=>{if(err)return callback(err);try{var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readonly");transaction.onerror=e=>{callback(this.error);e.preventDefault()};var store=transaction.objectStore(IDBFS.DB_STORE_NAME);var index=store.index("timestamp");index.openKeyCursor().onsuccess=event=>{var cursor=event.target.result;if(!cursor){return callback(null,{type:"remote",db:db,entries:entries})}entries[cursor.primaryKey]={"timestamp":cursor.key};cursor.continue()}}catch(e){return callback(e)}})},loadLocalEntry:(path,callback)=>{var stat,node;try{var lookup=FS.lookupPath(path);node=lookup.node;stat=FS.stat(path)}catch(e){return callback(e)}if(FS.isDir(stat.mode)){return callback(null,{"timestamp":stat.mtime,"mode":stat.mode})}else if(FS.isFile(stat.mode)){node.contents=MEMFS.getFileDataAsTypedArray(node);return callback(null,{"timestamp":stat.mtime,"mode":stat.mode,"contents":node.contents})}else{return callback(new Error("node type not supported"))}},storeLocalEntry:(path,entry,callback)=>{try{if(FS.isDir(entry["mode"])){FS.mkdirTree(path,entry["mode"])}else if(FS.isFile(entry["mode"])){FS.writeFile(path,entry["contents"],{canOwn:true})}else{return callback(new Error("node type not supported"))}FS.chmod(path,entry["mode"]);FS.utime(path,entry["timestamp"],entry["timestamp"])}catch(e){return callback(e)}callback(null)},removeLocalEntry:(path,callback)=>{try{var stat=FS.stat(path);if(FS.isDir(stat.mode)){FS.rmdir(path)}else if(FS.isFile(stat.mode)){FS.unlink(path)}}catch(e){return callback(e)}callback(null)},loadRemoteEntry:(store,path,callback)=>{var req=store.get(path);req.onsuccess=event=>{callback(null,event.target.result)};req.onerror=e=>{callback(this.error);e.preventDefault()}},storeRemoteEntry:(store,path,entry,callback)=>{try{var req=store.put(entry,path)}catch(e){callback(e);return}req.onsuccess=()=>{callback(null)};req.onerror=e=>{callback(this.error);e.preventDefault()}},removeRemoteEntry:(store,path,callback)=>{var req=store.delete(path);req.onsuccess=()=>{callback(null)};req.onerror=e=>{callback(this.error);e.preventDefault()}},reconcile:(src,dst,callback)=>{var total=0;var create=[];Object.keys(src.entries).forEach(function(key){var e=src.entries[key];var e2=dst.entries[key];if(!e2||e["timestamp"].getTime()!=e2["timestamp"].getTime()){create.push(key);total++}});var remove=[];Object.keys(dst.entries).forEach(function(key){if(!src.entries[key]){remove.push(key);total++}});if(!total){return callback(null)}var errored=false;var db=src.type==="remote"?src.db:dst.db;var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readwrite");var store=transaction.objectStore(IDBFS.DB_STORE_NAME);function done(err){if(err&&!errored){errored=true;return callback(err)}}transaction.onerror=e=>{done(this.error);e.preventDefault()};transaction.oncomplete=e=>{if(!errored){callback(null)}};create.sort().forEach(path=>{if(dst.type==="local"){IDBFS.loadRemoteEntry(store,path,(err,entry)=>{if(err)return done(err);IDBFS.storeLocalEntry(path,entry,done)})}else{IDBFS.loadLocalEntry(path,(err,entry)=>{if(err)return done(err);IDBFS.storeRemoteEntry(store,path,entry,done)})}});remove.sort().reverse().forEach(path=>{if(dst.type==="local"){IDBFS.removeLocalEntry(path,done)}else{IDBFS.removeRemoteEntry(store,path,done)}})}};Module["IDBFS"]=IDBFS;var ERRNO_CODES={};Module["ERRNO_CODES"]=ERRNO_CODES;var NODEFS={isWindows:false,staticInit:()=>{NODEFS.isWindows=!!process.platform.match(/^win/);var flags=process.binding("constants");if(flags["fs"]){flags=flags["fs"]}NODEFS.flagsForNodeMap={1024:flags["O_APPEND"],64:flags["O_CREAT"],128:flags["O_EXCL"],256:flags["O_NOCTTY"],0:flags["O_RDONLY"],2:flags["O_RDWR"],4096:flags["O_SYNC"],512:flags["O_TRUNC"],1:flags["O_WRONLY"],131072:flags["O_NOFOLLOW"]}},convertNodeCode:e=>{var code=e.code;return ERRNO_CODES[code]},mount:mount=>{return NODEFS.createNode(null,"/",NODEFS.getMode(mount.opts.root),0)},createNode:(parent,name,mode,dev)=>{if(!FS.isDir(mode)&&!FS.isFile(mode)&&!FS.isLink(mode)){throw new FS.ErrnoError(28)}var node=FS.createNode(parent,name,mode);node.node_ops=NODEFS.node_ops;node.stream_ops=NODEFS.stream_ops;return node},getMode:path=>{var stat;try{stat=fs.lstatSync(path);if(NODEFS.isWindows){stat.mode=stat.mode|(stat.mode&292)>>2}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(NODEFS.convertNodeCode(e))}return stat.mode},realPath:node=>{var parts=[];while(node.parent!==node){parts.push(node.name);node=node.parent}parts.push(node.mount.opts.root);parts.reverse();return PATH.join.apply(null,parts)},flagsForNode:flags=>{flags&=~2097152;flags&=~2048;flags&=~32768;flags&=~524288;flags&=~65536;var newFlags=0;for(var k in NODEFS.flagsForNodeMap){if(flags&k){newFlags|=NODEFS.flagsForNodeMap[k];flags^=k}}if(flags){throw new FS.ErrnoError(28)}return newFlags},node_ops:{getattr:node=>{var path=NODEFS.realPath(node);var stat;try{stat=fs.lstatSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(NODEFS.convertNodeCode(e))}if(NODEFS.isWindows&&!stat.blksize){stat.blksize=4096}if(NODEFS.isWindows&&!stat.blocks){stat.blocks=(stat.size+stat.blksize-1)/stat.blksize|0}return{dev:stat.dev,ino:stat.ino,mode:stat.mode,nlink:stat.nlink,uid:stat.uid,gid:stat.gid,rdev:stat.rdev,size:stat.size,atime:stat.atime,mtime:stat.mtime,ctime:stat.ctime,blksize:stat.blksize,blocks:stat.blocks}},setattr:(node,attr)=>{var path=NODEFS.realPath(node);try{if(attr.mode!==undefined){fs.chmodSync(path,attr.mode);node.mode=attr.mode}if(attr.timestamp!==undefined){var date=new Date(attr.timestamp);fs.utimesSync(path,date,date)}if(attr.size!==undefined){fs.truncateSync(path,attr.size)}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(NODEFS.convertNodeCode(e))}},lookup:(parent,name)=>{var path=PATH.join2(NODEFS.realPath(parent),name);var mode=NODEFS.getMode(path);return NODEFS.createNode(parent,name,mode)},mknod:(parent,name,mode,dev)=>{var node=NODEFS.createNode(parent,name,mode,dev);var path=NODEFS.realPath(node);try{if(FS.isDir(node.mode)){fs.mkdirSync(path,node.mode)}else{fs.writeFileSync(path,"",{mode:node.mode})}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(NODEFS.convertNodeCode(e))}return node},rename:(oldNode,newDir,newName)=>{var oldPath=NODEFS.realPath(oldNode);var newPath=PATH.join2(NODEFS.realPath(newDir),newName);try{fs.renameSync(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(NODEFS.convertNodeCode(e))}oldNode.name=newName},unlink:(parent,name)=>{var path=PATH.join2(NODEFS.realPath(parent),name);try{fs.unlinkSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(NODEFS.convertNodeCode(e))}},rmdir:(parent,name)=>{var path=PATH.join2(NODEFS.realPath(parent),name);try{fs.rmdirSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(NODEFS.convertNodeCode(e))}},readdir:node=>{var path=NODEFS.realPath(node);try{return fs.readdirSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(NODEFS.convertNodeCode(e))}},symlink:(parent,newName,oldPath)=>{var newPath=PATH.join2(NODEFS.realPath(parent),newName);try{fs.symlinkSync(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(NODEFS.convertNodeCode(e))}},readlink:node=>{var path=NODEFS.realPath(node);try{path=fs.readlinkSync(path);path=nodePath.relative(nodePath.resolve(node.mount.opts.root),path);return path}catch(e){if(!e.code)throw e;if(e.code==="UNKNOWN")throw new FS.ErrnoError(28);throw new FS.ErrnoError(NODEFS.convertNodeCode(e))}}},stream_ops:{open:stream=>{var path=NODEFS.realPath(stream.node);try{if(FS.isFile(stream.node.mode)){stream.nfd=fs.openSync(path,NODEFS.flagsForNode(stream.flags))}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(NODEFS.convertNodeCode(e))}},close:stream=>{try{if(FS.isFile(stream.node.mode)&&stream.nfd){fs.closeSync(stream.nfd)}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(NODEFS.convertNodeCode(e))}},read:(stream,buffer,offset,length,position)=>{if(length===0)return 0;try{return fs.readSync(stream.nfd,Buffer.from(buffer.buffer),offset,length,position)}catch(e){throw new FS.ErrnoError(NODEFS.convertNodeCode(e))}},write:(stream,buffer,offset,length,position)=>{try{return fs.writeSync(stream.nfd,Buffer.from(buffer.buffer),offset,length,position)}catch(e){throw new FS.ErrnoError(NODEFS.convertNodeCode(e))}},llseek:(stream,offset,whence)=>{var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){try{var stat=fs.fstatSync(stream.nfd);position+=stat.size}catch(e){throw new FS.ErrnoError(NODEFS.convertNodeCode(e))}}}if(position<0){throw new FS.ErrnoError(28)}return position},mmap:(stream,length,position,prot,flags)=>{if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}var ptr=mmapAlloc(length);NODEFS.stream_ops.read(stream,HEAP8,ptr,length,position);return{ptr:ptr,allocated:true}},msync:(stream,buffer,offset,length,mmapFlags)=>{NODEFS.stream_ops.write(stream,buffer,0,length,offset,false);return 0}}};Module["NODEFS"]=NODEFS;var WORKERFS={DIR_MODE:16895,FILE_MODE:33279,reader:null,mount:function(mount){assert(ENVIRONMENT_IS_WORKER);if(!WORKERFS.reader)WORKERFS.reader=new FileReaderSync;var root=WORKERFS.createNode(null,"/",WORKERFS.DIR_MODE,0);var createdParents={};function ensureParent(path){var parts=path.split("/");var parent=root;for(var i=0;i=stream.node.size)return 0;var chunk=stream.node.contents.slice(position,position+length);var ab=WORKERFS.reader.readAsArrayBuffer(chunk);buffer.set(new Uint8Array(ab),offset);return chunk.size},write:function(stream,buffer,offset,length,position){throw new FS.ErrnoError(29)},llseek:function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.size}}if(position<0){throw new FS.ErrnoError(28)}return position}}};Module["WORKERFS"]=WORKERFS;var PROXYFS={mount:function(mount){return PROXYFS.createNode(null,"/",mount.opts.fs.lstat(mount.opts.root).mode,0)},createNode:function(parent,name,mode,dev){if(!FS.isDir(mode)&&!FS.isFile(mode)&&!FS.isLink(mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node=FS.createNode(parent,name,mode);node.node_ops=PROXYFS.node_ops;node.stream_ops=PROXYFS.stream_ops;return node},realPath:function(node){var parts=[];while(node.parent!==node){parts.push(node.name);node=node.parent}parts.push(node.mount.opts.root);parts.reverse();return PATH.join.apply(null,parts)},node_ops:{getattr:function(node){var path=PROXYFS.realPath(node);var stat;try{stat=node.mount.opts.fs.lstat(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return{dev:stat.dev,ino:stat.ino,mode:stat.mode,nlink:stat.nlink,uid:stat.uid,gid:stat.gid,rdev:stat.rdev,size:stat.size,atime:stat.atime,mtime:stat.mtime,ctime:stat.ctime,blksize:stat.blksize,blocks:stat.blocks}},setattr:function(node,attr){var path=PROXYFS.realPath(node);try{if(attr.mode!==undefined){node.mount.opts.fs.chmod(path,attr.mode);node.mode=attr.mode}if(attr.timestamp!==undefined){var date=new Date(attr.timestamp);node.mount.opts.fs.utime(path,date,date)}if(attr.size!==undefined){node.mount.opts.fs.truncate(path,attr.size)}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},lookup:function(parent,name){try{var path=PATH.join2(PROXYFS.realPath(parent),name);var mode=parent.mount.opts.fs.lstat(path).mode;var node=PROXYFS.createNode(parent,name,mode);return node}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},mknod:function(parent,name,mode,dev){var node=PROXYFS.createNode(parent,name,mode,dev);var path=PROXYFS.realPath(node);try{if(FS.isDir(node.mode)){node.mount.opts.fs.mkdir(path,node.mode)}else{node.mount.opts.fs.writeFile(path,"",{mode:node.mode})}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return node},rename:function(oldNode,newDir,newName){var oldPath=PROXYFS.realPath(oldNode);var newPath=PATH.join2(PROXYFS.realPath(newDir),newName);try{oldNode.mount.opts.fs.rename(oldPath,newPath);oldNode.name=newName;oldNode.parent=newDir}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},unlink:function(parent,name){var path=PATH.join2(PROXYFS.realPath(parent),name);try{parent.mount.opts.fs.unlink(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},rmdir:function(parent,name){var path=PATH.join2(PROXYFS.realPath(parent),name);try{parent.mount.opts.fs.rmdir(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},readdir:function(node){var path=PROXYFS.realPath(node);try{return node.mount.opts.fs.readdir(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},symlink:function(parent,newName,oldPath){var newPath=PATH.join2(PROXYFS.realPath(parent),newName);try{parent.mount.opts.fs.symlink(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},readlink:function(node){var path=PROXYFS.realPath(node);try{return node.mount.opts.fs.readlink(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}},stream_ops:{open:function(stream){var path=PROXYFS.realPath(stream.node);try{stream.nfd=stream.node.mount.opts.fs.open(path,stream.flags)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},close:function(stream){try{stream.node.mount.opts.fs.close(stream.nfd)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},read:function(stream,buffer,offset,length,position){try{return stream.node.mount.opts.fs.read(stream.nfd,buffer,offset,length,position)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},write:function(stream,buffer,offset,length,position){try{return stream.node.mount.opts.fs.write(stream.nfd,buffer,offset,length,position)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},llseek:function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){try{var stat=stream.node.node_ops.getattr(stream.node);position+=stat.size}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}}}if(position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return position}}};Module["PROXYFS"]=PROXYFS;var LZ4={DIR_MODE:16895,FILE_MODE:33279,CHUNK_SIZE:-1,codec:null,init:function(){if(LZ4.codec)return;LZ4.codec=function(){var MiniLZ4=function(){var exports={};exports.uncompress=function(input,output,sIdx,eIdx){sIdx=sIdx||0;eIdx=eIdx||input.length-sIdx;for(var i=sIdx,n=eIdx,j=0;i>4;if(literals_length>0){var l=literals_length+240;while(l===255){l=input[i++];literals_length+=l}var end=i+literals_length;while(ij)return-(i-2);var match_length=token&15;var l=match_length+240;while(l===255){l=input[i++];match_length+=l}var pos=j-offset;var end=j+match_length+4;while(jmaxInputSize?0:isize+isize/255+16|0};exports.compress=function(src,dst,sIdx,eIdx){hashTable.set(empty);return compressBlock(src,dst,0,sIdx||0,eIdx||dst.length)};function compressBlock(src,dst,pos,sIdx,eIdx){var dpos=sIdx;var dlen=eIdx-sIdx;var anchor=0;if(src.length>=maxInputSize)throw new Error("input too large");if(src.length>mfLimit){var n=exports.compressBound(src.length);if(dlen>>hashShift;var ref=hashTable[hash]-1;hashTable[hash]=pos+1;if(ref<0||pos-ref>>>16>0||((src[ref+3]<<8|src[ref+2])!=sequenceHighBits||(src[ref+1]<<8|src[ref])!=sequenceLowBits)){step=findMatchAttempts++>>skipStrength;pos+=step;continue}findMatchAttempts=(1<=runMask){dst[dpos++]=(runMask<254;len-=255){dst[dpos++]=255}dst[dpos++]=len}else{dst[dpos++]=(literals_length<>8;if(match_length>=mlMask){match_length-=mlMask;while(match_length>=255){match_length-=255;dst[dpos++]=255}dst[dpos++]=match_length}anchor=pos}}if(anchor==0)return 0;literals_length=src.length-anchor;if(literals_length>=runMask){dst[dpos++]=runMask<254;ln-=255){dst[dpos++]=255}dst[dpos++]=ln}else{dst[dpos++]=literals_length<0){assert(compressedSize<=bound);compressed=compressed.subarray(0,compressedSize);compressedChunks.push(compressed);total+=compressedSize;successes.push(1);if(verify){var back=exports.uncompress(compressed,temp);assert(back===chunk.length,[back,chunk.length]);for(var i=0;i=0){currChunk=compressedData["cachedChunks"][found]}else{compressedData["cachedIndexes"].pop();compressedData["cachedIndexes"].unshift(chunkIndex);currChunk=compressedData["cachedChunks"].pop();compressedData["cachedChunks"].unshift(currChunk);if(compressedData["debug"]){out("decompressing chunk "+chunkIndex);Module["decompressedChunks"]=(Module["decompressedChunks"]||0)+1}var compressed=compressedData["data"].subarray(compressedStart,compressedStart+compressedSize);var originalSize=LZ4.codec.uncompress(compressed,currChunk);if(chunkIndex{path=PATH_FS.resolve(path);if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};opts=Object.assign(defaults,opts);if(opts.recurse_count>8){throw new FS.ErrnoError(32)}var parts=path.split("/").filter(p=>!!p);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:node=>{var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:(parentid,name)=>{var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:node=>{var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:node=>{var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:(parent,name)=>{var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:(parent,name,mode,rdev)=>{var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:node=>{FS.hashRemoveNode(node)},isRoot:node=>{return node===node.parent},isMountpoint:node=>{return!!node.mounted},isFile:mode=>{return(mode&61440)===32768},isDir:mode=>{return(mode&61440)===16384},isLink:mode=>{return(mode&61440)===40960},isChrdev:mode=>{return(mode&61440)===8192},isBlkdev:mode=>{return(mode&61440)===24576},isFIFO:mode=>{return(mode&61440)===4096},isSocket:mode=>{return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:str=>{var flags=FS.flagModes[str];if(typeof flags=="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:flag=>{var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:(node,perms)=>{if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:dir=>{var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:(dir,name)=>{try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:(dir,name,isdir)=>{var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:(node,flags)=>{if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:(fd_start=0,fd_end=FS.MAX_OPEN_FDS)=>{for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:fd=>FS.streams[fd],createStream:(stream,fd_start,fd_end)=>{if(!FS.FSStream){FS.FSStream=function(){this.shared={}};FS.FSStream.prototype={};Object.defineProperties(FS.FSStream.prototype,{object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}},flags:{get:function(){return this.shared.flags},set:function(val){this.shared.flags=val}},position:{get:function(){return this.shared.position},set:function(val){this.shared.position=val}}})}stream=Object.assign(new FS.FSStream,stream);var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:fd=>{FS.streams[fd]=null},chrdev_stream_ops:{open:stream=>{var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:()=>{throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice:(dev,ops)=>{FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts:mount=>{var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:(populate,callback)=>{if(typeof populate=="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(mount=>{if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:(type,opts,mountpoint)=>{var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:mountpoint=>{var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(hash=>{var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:(parent,name)=>{return parent.node_ops.lookup(parent,name)},mknod:(path,mode,dev)=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:(path,mode)=>{mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:(path,mode)=>{mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:(path,mode)=>{var dirs=path.split("/");var d="";for(var i=0;i{if(typeof dev=="undefined"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)},symlink:(oldpath,newpath)=>{if(!PATH_FS.resolve(oldpath)){throw new FS.ErrnoError(44)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var newname=PATH.basename(newpath);var errCode=FS.mayCreate(parent,newname);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(63)}return parent.node_ops.symlink(parent,newname,oldpath)},rename:(old_path,new_path)=>{var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node;if(!old_dir||!new_dir)throw new FS.ErrnoError(44);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(75)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH_FS.relative(old_path,new_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(28)}relative=PATH_FS.relative(new_path,old_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(55)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var errCode=FS.mayDelete(old_dir,old_name,isdir);if(errCode){throw new FS.ErrnoError(errCode)}errCode=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(errCode){throw new FS.ErrnoError(errCode)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(63)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(10)}if(new_dir!==old_dir){errCode=FS.nodePermissions(old_dir,"w");if(errCode){throw new FS.ErrnoError(errCode)}}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name)}catch(e){throw e}finally{FS.hashAddNode(old_node)}},rmdir:path=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,true);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node)},readdir:path=>{var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node.node_ops.readdir){throw new FS.ErrnoError(54)}return node.node_ops.readdir(node)},unlink:path=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,false);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.unlink(parent,name);FS.destroyNode(node)},readlink:path=>{var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(44)}if(!link.node_ops.readlink){throw new FS.ErrnoError(28)}return PATH_FS.resolve(FS.getPath(link.parent),link.node_ops.readlink(link))},stat:(path,dontFollow)=>{var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;if(!node){throw new FS.ErrnoError(44)}if(!node.node_ops.getattr){throw new FS.ErrnoError(63)}return node.node_ops.getattr(node)},lstat:path=>{return FS.stat(path,true)},chmod:(path,mode,dontFollow)=>{var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{mode:mode&4095|node.mode&~4095,timestamp:Date.now()})},lchmod:(path,mode)=>{FS.chmod(path,mode,true)},fchmod:(fd,mode)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}FS.chmod(stream.node,mode)},chown:(path,uid,gid,dontFollow)=>{var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{timestamp:Date.now()})},lchown:(path,uid,gid)=>{FS.chown(path,uid,gid,true)},fchown:(fd,uid,gid)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}FS.chown(stream.node,uid,gid)},truncate:(path,len)=>{if(len<0){throw new FS.ErrnoError(28)}var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}if(FS.isDir(node.mode)){throw new FS.ErrnoError(31)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(28)}var errCode=FS.nodePermissions(node,"w");if(errCode){throw new FS.ErrnoError(errCode)}node.node_ops.setattr(node,{size:len,timestamp:Date.now()})},ftruncate:(fd,len)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(28)}FS.truncate(stream.node,len)},utime:(path,atime,mtime)=>{var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;node.node_ops.setattr(node,{timestamp:Math.max(atime,mtime)})},open:(path,flags,mode)=>{if(path===""){throw new FS.ErrnoError(44)}flags=typeof flags=="string"?FS.modeStringToFlags(flags):flags;mode=typeof mode=="undefined"?438:mode;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;if(typeof path=="object"){node=path}else{path=PATH.normalize(path);try{var lookup=FS.lookupPath(path,{follow:!(flags&131072)});node=lookup.node}catch(e){}}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(20)}}else{node=FS.mknod(path,mode,0);created=true}}if(!node){throw new FS.ErrnoError(44)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}if(!created){var errCode=FS.mayOpen(node,flags);if(errCode){throw new FS.ErrnoError(errCode)}}if(flags&512&&!created){FS.truncate(node,0)}flags&=~(128|512|131072);var stream=FS.createStream({node:node,path:FS.getPath(node),flags:flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false});if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(Module["logReadFiles"]&&!(flags&1)){if(!FS.readFiles)FS.readFiles={};if(!(path in FS.readFiles)){FS.readFiles[path]=1}}return stream},close:stream=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}stream.fd=null},isClosed:stream=>{return stream.fd===null},llseek:(stream,offset,whence)=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(70)}if(whence!=0&&whence!=1&&whence!=2){throw new FS.ErrnoError(28)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position},read:(stream,buffer,offset,length,position)=>{if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.read){throw new FS.ErrnoError(28)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead},write:(stream,buffer,offset,length,position,canOwn)=>{if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.write){throw new FS.ErrnoError(28)}if(stream.seekable&&stream.flags&1024){FS.llseek(stream,0,2)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;return bytesWritten},allocate:(stream,offset,length)=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(offset<0||length<=0){throw new FS.ErrnoError(28)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(!FS.isFile(stream.node.mode)&&!FS.isDir(stream.node.mode)){throw new FS.ErrnoError(43)}if(!stream.stream_ops.allocate){throw new FS.ErrnoError(138)}stream.stream_ops.allocate(stream,offset,length)},mmap:(stream,length,position,prot,flags)=>{if((prot&2)!==0&&(flags&2)===0&&(stream.flags&2097155)!==2){throw new FS.ErrnoError(2)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(2)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(43)}return stream.stream_ops.mmap(stream,length,position,prot,flags)},msync:(stream,buffer,offset,length,mmapFlags)=>{if(!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)},munmap:stream=>0,ioctl:(stream,cmd,arg)=>{if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(59)}return stream.stream_ops.ioctl(stream,cmd,arg)},readFile:(path,opts={})=>{opts.flags=opts.flags||0;opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error('Invalid encoding type "'+opts.encoding+'"')}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){ret=UTF8ArrayToString(buf,0)}else if(opts.encoding==="binary"){ret=buf}FS.close(stream);return ret},writeFile:(path,data,opts={})=>{opts.flags=opts.flags||577;var stream=FS.open(path,opts.flags,opts.mode);if(typeof data=="string"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,undefined,opts.canOwn)}else if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn)}else{throw new Error("Unsupported data type")}FS.close(stream)},cwd:()=>FS.currentPath,chdir:path=>{var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,"x");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories:()=>{FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")},createDefaultDevices:()=>{FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var random_device=getRandomDevice();FS.createDevice("/dev","random",random_device);FS.createDevice("/dev","urandom",random_device);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")},createSpecialDirectories:()=>{FS.mkdir("/proc");var proc_self=FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount:()=>{var node=FS.createNode(proc_self,"fd",16384|511,73);node.node_ops={lookup:(parent,name)=>{var fd=+name;var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>stream.path}};ret.parent=ret;return ret}};return node}},{},"/proc/self/fd")},createStandardStreams:()=>{if(Module["stdin"]){FS.createDevice("/dev","stdin",Module["stdin"])}else{FS.symlink("/dev/tty","/dev/stdin")}if(Module["stdout"]){FS.createDevice("/dev","stdout",null,Module["stdout"])}else{FS.symlink("/dev/tty","/dev/stdout")}if(Module["stderr"]){FS.createDevice("/dev","stderr",null,Module["stderr"])}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin",0);var stdout=FS.open("/dev/stdout",1);var stderr=FS.open("/dev/stderr",1)},ensureErrnoError:()=>{if(FS.ErrnoError)return;FS.ErrnoError=function ErrnoError(errno,node){this.name="ErrnoError";this.node=node;this.setErrno=function(errno){this.errno=errno};this.setErrno(errno);this.message="FS error"};FS.ErrnoError.prototype=new Error;FS.ErrnoError.prototype.constructor=FS.ErrnoError;[44].forEach(code=>{FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack=""})},staticInit:()=>{FS.ensureErrnoError();FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={"MEMFS":MEMFS,"IDBFS":IDBFS,"NODEFS":NODEFS,"WORKERFS":WORKERFS,"PROXYFS":PROXYFS}},init:(input,output,error)=>{FS.init.initialized=true;FS.ensureErrnoError();Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"];Module["stderr"]=error||Module["stderr"];FS.createStandardStreams()},quit:()=>{FS.init.initialized=false;_fflush(0);for(var i=0;i{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode},findObject:(path,dontResolveLastLink)=>{var ret=FS.analyzePath(path,dontResolveLastLink);if(!ret.exists){return null}return ret.object},analyzePath:(path,dontResolveLastLink)=>{try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path==="/"}catch(e){ret.error=e.errno}return ret},createPath:(parent,path,canRead,canWrite)=>{parent=typeof parent=="string"?parent:FS.getPath(parent);var parts=path.split("/").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){}parent=current}return current},createFile:(parent,name,properties,canRead,canWrite)=>{var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(canRead,canWrite);return FS.create(path,mode)},createDataFile:(parent,name,data,canRead,canWrite,canOwn)=>{var path=name;if(parent){parent=typeof parent=="string"?parent:FS.getPath(parent);path=name?PATH.join2(parent,name):parent}var mode=FS.getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data=="string"){var arr=new Array(data.length);for(var i=0,len=data.length;i{var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(!!input,!!output);if(!FS.createDevice.major)FS.createDevice.major=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{open:stream=>{stream.seekable=false},close:stream=>{if(output&&output.buffer&&output.buffer.length){output(10)}},read:(stream,buffer,offset,length,pos)=>{var bytesRead=0;for(var i=0;i{for(var i=0;i{if(obj.isDevice||obj.isFolder||obj.link||obj.contents)return true;if(typeof XMLHttpRequest!="undefined"){throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.")}else if(read_){try{obj.contents=intArrayFromString(read_(obj.url),true);obj.usedBytes=obj.contents.length}catch(e){throw new FS.ErrnoError(29)}}else{throw new Error("Cannot load without read() or XMLHttpRequest.")}},createLazyFile:(parent,name,url,canRead,canWrite)=>{function LazyUint8Array(){this.lengthKnown=false;this.chunks=[]}LazyUint8Array.prototype.get=function LazyUint8Array_get(idx){if(idx>this.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}return intArrayFromString(xhr.responseText||"",true)};var lazyArray=this;lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]=="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]=="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(key=>{var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});function writeChunks(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i{FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position)};stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);var ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}writeChunks(stream,HEAP8,ptr,length,position);return{ptr:ptr,allocated:true}};node.stream_ops=stream_ops;return node},createPreloadedFile:(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)=>{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency("cp "+fullname);function processData(byteArray){function finish(byteArray){if(preFinish)preFinish();if(!dontCreateFile){FS.createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}if(onload)onload();removeRunDependency(dep)}if(Browser.handledByPreloadPlugin(byteArray,fullname,finish,()=>{if(onerror)onerror();removeRunDependency(dep)})){return}finish(byteArray)}addRunDependency(dep);if(typeof url=="string"){asyncLoad(url,byteArray=>processData(byteArray),onerror)}else{processData(url)}},indexedDB:()=>{return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},DB_NAME:()=>{return"EM_FS_"+window.location.pathname},DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:(paths,onload=(()=>{}),onerror=(()=>{}))=>{var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=()=>{out("creating db");var db=openRequest.result;db.createObjectStore(FS.DB_STORE_NAME)};openRequest.onsuccess=()=>{var db=openRequest.result;var transaction=db.transaction([FS.DB_STORE_NAME],"readwrite");var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach(path=>{var putRequest=files.put(FS.analyzePath(path).object.contents,path);putRequest.onsuccess=()=>{ok++;if(ok+fail==total)finish()};putRequest.onerror=()=>{fail++;if(ok+fail==total)finish()}});transaction.onerror=onerror};openRequest.onerror=onerror},loadFilesFromDB:(paths,onload=(()=>{}),onerror=(()=>{}))=>{var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=onerror;openRequest.onsuccess=()=>{var db=openRequest.result;try{var transaction=db.transaction([FS.DB_STORE_NAME],"readonly")}catch(e){onerror(e);return}var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach(path=>{var getRequest=files.get(path);getRequest.onsuccess=()=>{if(FS.analyzePath(path).exists){FS.unlink(path)}FS.createDataFile(PATH.dirname(path),PATH.basename(path),getRequest.result,true,true,true);ok++;if(ok+fail==total)finish()};getRequest.onerror=()=>{fail++;if(ok+fail==total)finish()}});transaction.onerror=onerror};openRequest.onerror=onerror}};Module["FS"]=FS;var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt:function(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=SYSCALLS.getStreamFromFD(dirfd);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return PATH.join2(dir,path)},doStat:function(func,path,buf){try{var stat=func(path)}catch(e){if(e&&e.node&&PATH.normalize(path)!==PATH.normalize(FS.getPath(e.node))){return-54}throw e}HEAP32[buf>>2]=stat.dev;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAPU32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;var atime=stat.atime.getTime();var mtime=stat.mtime.getTime();var ctime=stat.ctime.getTime();tempI64=[Math.floor(atime/1e3)>>>0,(tempDouble=Math.floor(atime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+56>>2]=tempI64[0],HEAP32[buf+60>>2]=tempI64[1];HEAPU32[buf+64>>2]=atime%1e3*1e3;tempI64=[Math.floor(mtime/1e3)>>>0,(tempDouble=Math.floor(mtime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+72>>2]=tempI64[0],HEAP32[buf+76>>2]=tempI64[1];HEAPU32[buf+80>>2]=mtime%1e3*1e3;tempI64=[Math.floor(ctime/1e3)>>>0,(tempDouble=Math.floor(ctime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+88>>2]=tempI64[0],HEAP32[buf+92>>2]=tempI64[1];HEAPU32[buf+96>>2]=ctime%1e3*1e3;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+104>>2]=tempI64[0],HEAP32[buf+108>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}if(flags&2){return 0}var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream}};Module["SYSCALLS"]=SYSCALLS;function ___syscall__newselect(nfds,readfds,writefds,exceptfds,timeout){try{var total=0;var srcReadLow=readfds?HEAP32[readfds>>2]:0,srcReadHigh=readfds?HEAP32[readfds+4>>2]:0;var srcWriteLow=writefds?HEAP32[writefds>>2]:0,srcWriteHigh=writefds?HEAP32[writefds+4>>2]:0;var srcExceptLow=exceptfds?HEAP32[exceptfds>>2]:0,srcExceptHigh=exceptfds?HEAP32[exceptfds+4>>2]:0;var dstReadLow=0,dstReadHigh=0;var dstWriteLow=0,dstWriteHigh=0;var dstExceptLow=0,dstExceptHigh=0;var allLow=(readfds?HEAP32[readfds>>2]:0)|(writefds?HEAP32[writefds>>2]:0)|(exceptfds?HEAP32[exceptfds>>2]:0);var allHigh=(readfds?HEAP32[readfds+4>>2]:0)|(writefds?HEAP32[writefds+4>>2]:0)|(exceptfds?HEAP32[exceptfds+4>>2]:0);var check=function(fd,low,high,val){return fd<32?low&val:high&val};for(var fd=0;fd>2]=dstReadLow;HEAP32[readfds+4>>2]=dstReadHigh}if(writefds){HEAP32[writefds>>2]=dstWriteLow;HEAP32[writefds+4>>2]=dstWriteHigh}if(exceptfds){HEAP32[exceptfds>>2]=dstExceptLow;HEAP32[exceptfds+4>>2]=dstExceptHigh}return total}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}Module["___syscall__newselect"]=___syscall__newselect;var SOCKFS={mount:function(mount){Module["websocket"]=Module["websocket"]&&"object"===typeof Module["websocket"]?Module["websocket"]:{};Module["websocket"]._callbacks={};Module["websocket"]["on"]=function(event,callback){if("function"===typeof callback){this._callbacks[event]=callback}return this};Module["websocket"].emit=function(event,param){if("function"===typeof this._callbacks[event]){this._callbacks[event].call(this,param)}};return FS.createNode(null,"/",16384|511,0)},createSocket:function(family,type,protocol){type&=~526336;var streaming=type==1;if(streaming&&protocol&&protocol!=6){throw new FS.ErrnoError(66)}var sock={family:family,type:type,protocol:protocol,server:null,error:null,peers:{},pending:[],recv_queue:[],sock_ops:SOCKFS.websocket_sock_ops};var name=SOCKFS.nextname();var node=FS.createNode(SOCKFS.root,name,49152,0);node.sock=sock;var stream=FS.createStream({path:name,node:node,flags:2,seekable:false,stream_ops:SOCKFS.stream_ops});sock.stream=stream;return sock},getSocket:function(fd){var stream=FS.getStream(fd);if(!stream||!FS.isSocket(stream.node.mode)){return null}return stream.node.sock},stream_ops:{poll:function(stream){var sock=stream.node.sock;return sock.sock_ops.poll(sock)},ioctl:function(stream,request,varargs){var sock=stream.node.sock;return sock.sock_ops.ioctl(sock,request,varargs)},read:function(stream,buffer,offset,length,position){var sock=stream.node.sock;var msg=sock.sock_ops.recvmsg(sock,length);if(!msg){return 0}buffer.set(msg.buffer,offset);return msg.buffer.length},write:function(stream,buffer,offset,length,position){var sock=stream.node.sock;return sock.sock_ops.sendmsg(sock,buffer,offset,length)},close:function(stream){var sock=stream.node.sock;sock.sock_ops.close(sock)}},nextname:function(){if(!SOCKFS.nextname.current){SOCKFS.nextname.current=0}return"socket["+SOCKFS.nextname.current+++"]"},websocket_sock_ops:{createPeer:function(sock,addr,port){var ws;if(typeof addr=="object"){ws=addr;addr=null;port=null}if(ws){if(ws._socket){addr=ws._socket.remoteAddress;port=ws._socket.remotePort}else{var result=/ws[s]?:\/\/([^:]+):(\d+)/.exec(ws.url);if(!result){throw new Error("WebSocket URL must be in the format ws(s)://address:port")}addr=result[1];port=parseInt(result[2],10)}}else{try{var runtimeConfig=Module["websocket"]&&"object"===typeof Module["websocket"];var url="ws:#".replace("#","//");if(runtimeConfig){if("string"===typeof Module["websocket"]["url"]){url=Module["websocket"]["url"]}}if(url==="ws://"||url==="wss://"){var parts=addr.split("/");url=url+parts[0]+":"+port+"/"+parts.slice(1).join("/")}var subProtocols="binary";if(runtimeConfig){if("string"===typeof Module["websocket"]["subprotocol"]){subProtocols=Module["websocket"]["subprotocol"]}}var opts=undefined;if(subProtocols!=="null"){subProtocols=subProtocols.replace(/^ +| +$/g,"").split(/ *, */);opts=subProtocols}if(runtimeConfig&&null===Module["websocket"]["subprotocol"]){subProtocols="null";opts=undefined}var WebSocketConstructor;if(ENVIRONMENT_IS_NODE){WebSocketConstructor=require("ws")}else{WebSocketConstructor=WebSocket}ws=new WebSocketConstructor(url,opts);ws.binaryType="arraybuffer"}catch(e){throw new FS.ErrnoError(23)}}var peer={addr:addr,port:port,socket:ws,dgram_send_queue:[]};SOCKFS.websocket_sock_ops.addPeer(sock,peer);SOCKFS.websocket_sock_ops.handlePeerEvents(sock,peer);if(sock.type===2&&typeof sock.sport!="undefined"){peer.dgram_send_queue.push(new Uint8Array([255,255,255,255,"p".charCodeAt(0),"o".charCodeAt(0),"r".charCodeAt(0),"t".charCodeAt(0),(sock.sport&65280)>>8,sock.sport&255]))}return peer},getPeer:function(sock,addr,port){return sock.peers[addr+":"+port]},addPeer:function(sock,peer){sock.peers[peer.addr+":"+peer.port]=peer},removePeer:function(sock,peer){delete sock.peers[peer.addr+":"+peer.port]},handlePeerEvents:function(sock,peer){var first=true;var handleOpen=function(){Module["websocket"].emit("open",sock.stream.fd);try{var queued=peer.dgram_send_queue.shift();while(queued){peer.socket.send(queued);queued=peer.dgram_send_queue.shift()}}catch(e){peer.socket.close()}};function handleMessage(data){if(typeof data=="string"){var encoder=new TextEncoder;data=encoder.encode(data)}else{assert(data.byteLength!==undefined);if(data.byteLength==0){return}data=new Uint8Array(data)}var wasfirst=first;first=false;if(wasfirst&&data.length===10&&data[0]===255&&data[1]===255&&data[2]===255&&data[3]===255&&data[4]==="p".charCodeAt(0)&&data[5]==="o".charCodeAt(0)&&data[6]==="r".charCodeAt(0)&&data[7]==="t".charCodeAt(0)){var newport=data[8]<<8|data[9];SOCKFS.websocket_sock_ops.removePeer(sock,peer);peer.port=newport;SOCKFS.websocket_sock_ops.addPeer(sock,peer);return}sock.recv_queue.push({addr:peer.addr,port:peer.port,data:data});Module["websocket"].emit("message",sock.stream.fd)}if(ENVIRONMENT_IS_NODE){peer.socket.on("open",handleOpen);peer.socket.on("message",function(data,isBinary){if(!isBinary){return}handleMessage(new Uint8Array(data).buffer)});peer.socket.on("close",function(){Module["websocket"].emit("close",sock.stream.fd)});peer.socket.on("error",function(error){sock.error=14;Module["websocket"].emit("error",[sock.stream.fd,sock.error,"ECONNREFUSED: Connection refused"])})}else{peer.socket.onopen=handleOpen;peer.socket.onclose=function(){Module["websocket"].emit("close",sock.stream.fd)};peer.socket.onmessage=function peer_socket_onmessage(event){handleMessage(event.data)};peer.socket.onerror=function(error){sock.error=14;Module["websocket"].emit("error",[sock.stream.fd,sock.error,"ECONNREFUSED: Connection refused"])}}},poll:function(sock){if(sock.type===1&&sock.server){return sock.pending.length?64|1:0}var mask=0;var dest=sock.type===1?SOCKFS.websocket_sock_ops.getPeer(sock,sock.daddr,sock.dport):null;if(sock.recv_queue.length||!dest||dest&&dest.socket.readyState===dest.socket.CLOSING||dest&&dest.socket.readyState===dest.socket.CLOSED){mask|=64|1}if(!dest||dest&&dest.socket.readyState===dest.socket.OPEN){mask|=4}if(dest&&dest.socket.readyState===dest.socket.CLOSING||dest&&dest.socket.readyState===dest.socket.CLOSED){mask|=16}return mask},ioctl:function(sock,request,arg){switch(request){case 21531:var bytes=0;if(sock.recv_queue.length){bytes=sock.recv_queue[0].data.length}HEAP32[arg>>2]=bytes;return 0;default:return 28}},close:function(sock){if(sock.server){try{sock.server.close()}catch(e){}sock.server=null}var peers=Object.keys(sock.peers);for(var i=0;i>2]=value;return value}Module["setErrNo"]=setErrNo;var Sockets={BUFFER_SIZE:10240,MAX_BUFFER_SIZE:10485760,nextFd:1,fds:{},nextport:1,maxport:65535,peer:null,connections:{},portmap:{},localAddr:4261412874,addrPool:[33554442,50331658,67108874,83886090,100663306,117440522,134217738,150994954,167772170,184549386,201326602,218103818,234881034]};Module["Sockets"]=Sockets;function inetPton4(str){var b=str.split(".");for(var i=0;i<4;i++){var tmp=Number(b[i]);if(isNaN(tmp))return null;b[i]=tmp}return(b[0]|b[1]<<8|b[2]<<16|b[3]<<24)>>>0}Module["inetPton4"]=inetPton4;function jstoi_q(str){return parseInt(str)}Module["jstoi_q"]=jstoi_q;function inetPton6(str){var words;var w,offset,z,i;var valid6regx=/^((?=.*::)(?!.*::.+::)(::)?([\dA-F]{1,4}:(:|\b)|){5}|([\dA-F]{1,4}:){6})((([\dA-F]{1,4}((?!\3)::|:\b|$))|(?!\2\3)){2}|(((2[0-4]|1\d|[1-9])?\d|25[0-5])\.?\b){4})$/i;var parts=[];if(!valid6regx.test(str)){return null}if(str==="::"){return[0,0,0,0,0,0,0,0]}if(str.startsWith("::")){str=str.replace("::","Z:")}else{str=str.replace("::",":Z:")}if(str.indexOf(".")>0){str=str.replace(new RegExp("[.]","g"),":");words=str.split(":");words[words.length-4]=jstoi_q(words[words.length-4])+jstoi_q(words[words.length-3])*256;words[words.length-3]=jstoi_q(words[words.length-2])+jstoi_q(words[words.length-1])*256;words=words.slice(0,words.length-2)}else{words=str.split(":")}offset=0;z=0;for(w=0;w>2]=16}HEAP16[sa>>1]=family;HEAP32[sa+4>>2]=addr;HEAP16[sa+2>>1]=_htons(port);break;case 10:addr=inetPton6(addr);zeroMemory(sa,28);if(addrlen){HEAP32[addrlen>>2]=28}HEAP32[sa>>2]=family;HEAP32[sa+8>>2]=addr[0];HEAP32[sa+12>>2]=addr[1];HEAP32[sa+16>>2]=addr[2];HEAP32[sa+20>>2]=addr[3];HEAP16[sa+2>>1]=_htons(port);break;default:return 5}return 0}Module["writeSockaddr"]=writeSockaddr;var DNS={address_map:{id:1,addrs:{},names:{}},lookup_name:function(name){var res=inetPton4(name);if(res!==null){return name}res=inetPton6(name);if(res!==null){return name}var addr;if(DNS.address_map.addrs[name]){addr=DNS.address_map.addrs[name]}else{var id=DNS.address_map.id++;assert(id<65535,"exceeded max address mappings of 65535");addr="172.29."+(id&255)+"."+(id&65280);DNS.address_map.names[addr]=name;DNS.address_map.addrs[name]=addr}return addr},lookup_addr:function(addr){if(DNS.address_map.names[addr]){return DNS.address_map.names[addr]}return null}};Module["DNS"]=DNS;function ___syscall_accept4(fd,addr,addrlen,flags){try{var sock=getSocketFromFD(fd);var newsock=sock.sock_ops.accept(sock);if(addr){var errno=writeSockaddr(addr,newsock.family,DNS.lookup_name(newsock.daddr),newsock.dport,addrlen)}return newsock.stream.fd}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}Module["___syscall_accept4"]=___syscall_accept4;function inetNtop4(addr){return(addr&255)+"."+(addr>>8&255)+"."+(addr>>16&255)+"."+(addr>>24&255)}Module["inetNtop4"]=inetNtop4;function inetNtop6(ints){var str="";var word=0;var longest=0;var lastzero=0;var zstart=0;var len=0;var i=0;var parts=[ints[0]&65535,ints[0]>>16,ints[1]&65535,ints[1]>>16,ints[2]&65535,ints[2]>>16,ints[3]&65535,ints[3]>>16];var hasipv4=true;var v4part="";for(i=0;i<5;i++){if(parts[i]!==0){hasipv4=false;break}}if(hasipv4){v4part=inetNtop4(parts[6]|parts[7]<<16);if(parts[5]===-1){str="::ffff:";str+=v4part;return str}if(parts[5]===0){str="::";if(v4part==="0.0.0.0")v4part="";if(v4part==="0.0.0.1")v4part="1";str+=v4part;return str}}for(word=0;word<8;word++){if(parts[word]===0){if(word-lastzero>1){len=0}lastzero=word;len++}if(len>longest){longest=len;zstart=word-longest+1}}for(word=0;word<8;word++){if(longest>1){if(parts[word]===0&&word>=zstart&&word>1];var port=_ntohs(HEAPU16[sa+2>>1]);var addr;switch(family){case 2:if(salen!==16){return{errno:28}}addr=HEAP32[sa+4>>2];addr=inetNtop4(addr);break;case 10:if(salen!==28){return{errno:28}}addr=[HEAP32[sa+8>>2],HEAP32[sa+12>>2],HEAP32[sa+16>>2],HEAP32[sa+20>>2]];addr=inetNtop6(addr);break;default:return{errno:5}}return{family:family,addr:addr,port:port}}Module["readSockaddr"]=readSockaddr;function getSocketAddress(addrp,addrlen,allowNull){if(allowNull&&addrp===0)return null;var info=readSockaddr(addrp,addrlen);if(info.errno)throw new FS.ErrnoError(info.errno);info.addr=DNS.lookup_addr(info.addr)||info.addr;return info}Module["getSocketAddress"]=getSocketAddress;function ___syscall_bind(fd,addr,addrlen){try{var sock=getSocketFromFD(fd);var info=getSocketAddress(addr,addrlen);sock.sock_ops.bind(sock,info.addr,info.port);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}Module["___syscall_bind"]=___syscall_bind;___syscall_bind.sig="iipi";function ___syscall_chdir(path){try{path=SYSCALLS.getStr(path);FS.chdir(path);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}Module["___syscall_chdir"]=___syscall_chdir;___syscall_chdir.sig="ip";function ___syscall_chmod(path,mode){try{path=SYSCALLS.getStr(path);FS.chmod(path,mode);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}Module["___syscall_chmod"]=___syscall_chmod;___syscall_chmod.sig="ipi";function ___syscall_connect(fd,addr,addrlen){try{var sock=getSocketFromFD(fd);var info=getSocketAddress(addr,addrlen);sock.sock_ops.connect(sock,info.addr,info.port);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}Module["___syscall_connect"]=___syscall_connect;___syscall_connect.sig="iipi";function ___syscall_dup(fd){try{var old=SYSCALLS.getStreamFromFD(fd);return FS.createStream(old,0).fd}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}Module["___syscall_dup"]=___syscall_dup;___syscall_dup.sig="ii";function ___syscall_dup3(fd,suggestFD,flags){try{var old=SYSCALLS.getStreamFromFD(fd);if(old.fd===suggestFD)return-28;var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.createStream(old,suggestFD,suggestFD+1).fd}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}Module["___syscall_dup3"]=___syscall_dup3;function ___syscall_faccessat(dirfd,path,amode,flags){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);if(amode&~7){return-28}var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}Module["___syscall_faccessat"]=___syscall_faccessat;___syscall_faccessat.sig="iipii";function ___syscall_fadvise64(fd,offset,len,advice){return 0}Module["___syscall_fadvise64"]=___syscall_fadvise64;var MAX_INT53=9007199254740992;Module["MAX_INT53"]=MAX_INT53;var MIN_INT53=-9007199254740992;Module["MIN_INT53"]=MIN_INT53;function bigintToI53Checked(num){return numMAX_INT53?NaN:Number(num)}Module["bigintToI53Checked"]=bigintToI53Checked;function ___syscall_fallocate(fd,mode,offset,len){try{offset=bigintToI53Checked(offset);if(isNaN(offset))return-61;len=bigintToI53Checked(len);if(isNaN(len))return-61;var stream=SYSCALLS.getStreamFromFD(fd);FS.allocate(stream,offset,len);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}Module["___syscall_fallocate"]=___syscall_fallocate;function ___syscall_fchdir(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.chdir(stream.path);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}Module["___syscall_fchdir"]=___syscall_fchdir;function ___syscall_fchmod(fd,mode){try{FS.fchmod(fd,mode);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}Module["___syscall_fchmod"]=___syscall_fchmod;function ___syscall_fchmodat(dirfd,path,mode,varargs){SYSCALLS.varargs=varargs;try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);FS.chmod(path,mode);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}Module["___syscall_fchmodat"]=___syscall_fchmodat;___syscall_fchmodat.sig="iipip";function ___syscall_fchown32(fd,owner,group){try{FS.fchown(fd,owner,group);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}Module["___syscall_fchown32"]=___syscall_fchown32;function ___syscall_fchownat(dirfd,path,owner,group,flags){try{path=SYSCALLS.getStr(path);var nofollow=flags&256;flags=flags&~256;path=SYSCALLS.calculateAt(dirfd,path);(nofollow?FS.lchown:FS.chown)(path,owner,group);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}Module["___syscall_fchownat"]=___syscall_fchownat;___syscall_fchownat.sig="iipiii";function ___syscall_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-28}var newStream;newStream=FS.createStream(stream,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 5:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 6:case 7:return 0;case 16:case 8:return-28;case 9:setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}Module["___syscall_fcntl64"]=___syscall_fcntl64;___syscall_fcntl64.sig="iiip";function ___syscall_fdatasync(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}Module["___syscall_fdatasync"]=___syscall_fdatasync;function ___syscall_fstat64(fd,buf){try{var stream=SYSCALLS.getStreamFromFD(fd);return SYSCALLS.doStat(FS.stat,stream.path,buf)}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}Module["___syscall_fstat64"]=___syscall_fstat64;___syscall_fstat64.sig="iip";function ___syscall_statfs64(path,size,buf){try{path=SYSCALLS.getStr(path);HEAP32[buf+4>>2]=4096;HEAP32[buf+40>>2]=4096;HEAP32[buf+8>>2]=1e6;HEAP32[buf+12>>2]=5e5;HEAP32[buf+16>>2]=5e5;HEAP32[buf+20>>2]=FS.nextInode;HEAP32[buf+24>>2]=1e6;HEAP32[buf+28>>2]=42;HEAP32[buf+44>>2]=2;HEAP32[buf+36>>2]=255;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}Module["___syscall_statfs64"]=___syscall_statfs64;___syscall_statfs64.sig="ippp";function ___syscall_fstatfs64(fd,size,buf){try{var stream=SYSCALLS.getStreamFromFD(fd);return ___syscall_statfs64(0,size,buf)}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}Module["___syscall_fstatfs64"]=___syscall_fstatfs64;function ___syscall_ftruncate64(fd,length){try{length=bigintToI53Checked(length);if(isNaN(length))return-61;FS.ftruncate(fd,length);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}Module["___syscall_ftruncate64"]=___syscall_ftruncate64;___syscall_ftruncate64.sig="iij";function ___syscall_getcwd(buf,size){try{if(size===0)return-28;var cwd=FS.cwd();var cwdLengthInBytes=lengthBytesUTF8(cwd)+1;if(size>>0,(tempDouble=id,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[dirp+pos>>2]=tempI64[0],HEAP32[dirp+pos+4>>2]=tempI64[1];tempI64=[(idx+1)*struct_size>>>0,(tempDouble=(idx+1)*struct_size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[dirp+pos+8>>2]=tempI64[0],HEAP32[dirp+pos+12>>2]=tempI64[1];HEAP16[dirp+pos+16>>1]=280;HEAP8[dirp+pos+18>>0]=type;stringToUTF8(name,dirp+pos+19,256);pos+=struct_size;idx+=1}FS.llseek(stream,idx*struct_size,0);return pos}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}Module["___syscall_getdents64"]=___syscall_getdents64;___syscall_getdents64.sig="iipi";function ___syscall_getpeername(fd,addr,addrlen){try{var sock=getSocketFromFD(fd);if(!sock.daddr){return-53}var errno=writeSockaddr(addr,sock.family,DNS.lookup_name(sock.daddr),sock.dport,addrlen);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}Module["___syscall_getpeername"]=___syscall_getpeername;function ___syscall_getsockname(fd,addr,addrlen){try{err("__syscall_getsockname "+fd);var sock=getSocketFromFD(fd);var errno=writeSockaddr(addr,sock.family,DNS.lookup_name(sock.saddr||"0.0.0.0"),sock.sport,addrlen);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}Module["___syscall_getsockname"]=___syscall_getsockname;function ___syscall_getsockopt(fd,level,optname,optval,optlen){try{var sock=getSocketFromFD(fd);if(level===1){if(optname===4){HEAP32[optval>>2]=sock.error;HEAP32[optlen>>2]=4;sock.error=null;return 0}}return-50}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}Module["___syscall_getsockopt"]=___syscall_getsockopt;function ___syscall_ioctl(fd,op,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:return-28}}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}Module["___syscall_ioctl"]=___syscall_ioctl;___syscall_ioctl.sig="iiip";function ___syscall_linkat(olddirfd,oldpath,newdirfd,newpath,flags){return-34}Module["___syscall_linkat"]=___syscall_linkat;function ___syscall_listen(fd,backlog){try{var sock=getSocketFromFD(fd);sock.sock_ops.listen(sock,backlog);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}Module["___syscall_listen"]=___syscall_listen;function ___syscall_lstat64(path,buf){try{path=SYSCALLS.getStr(path);return SYSCALLS.doStat(FS.lstat,path,buf)}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}Module["___syscall_lstat64"]=___syscall_lstat64;___syscall_lstat64.sig="ipp";function ___syscall_mkdirat(dirfd,path,mode){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}Module["___syscall_mkdirat"]=___syscall_mkdirat;___syscall_mkdirat.sig="iipi";function ___syscall_mknodat(dirfd,path,mode,dev){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}Module["___syscall_mknodat"]=___syscall_mknodat;___syscall_mknodat.sig="iipii";function ___syscall_newfstatat(dirfd,path,buf,flags){try{path=SYSCALLS.getStr(path);var nofollow=flags&256;var allowEmpty=flags&4096;flags=flags&~6400;path=SYSCALLS.calculateAt(dirfd,path,allowEmpty);return SYSCALLS.doStat(nofollow?FS.lstat:FS.stat,path,buf)}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}Module["___syscall_newfstatat"]=___syscall_newfstatat;___syscall_newfstatat.sig="iippi";function ___syscall_openat(dirfd,path,flags,varargs){SYSCALLS.varargs=varargs;try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);var mode=varargs?SYSCALLS.get():0;return FS.open(path,flags,mode).fd}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}Module["___syscall_openat"]=___syscall_openat;___syscall_openat.sig="iipip";var PIPEFS={BUCKET_BUFFER_SIZE:8192,mount:function(mount){return FS.createNode(null,"/",16384|511,0)},createPipe:function(){var pipe={buckets:[],refcnt:2};pipe.buckets.push({buffer:new Uint8Array(PIPEFS.BUCKET_BUFFER_SIZE),offset:0,roffset:0});var rName=PIPEFS.nextname();var wName=PIPEFS.nextname();var rNode=FS.createNode(PIPEFS.root,rName,4096,0);var wNode=FS.createNode(PIPEFS.root,wName,4096,0);rNode.pipe=pipe;wNode.pipe=pipe;var readableStream=FS.createStream({path:rName,node:rNode,flags:0,seekable:false,stream_ops:PIPEFS.stream_ops});rNode.stream=readableStream;var writableStream=FS.createStream({path:wName,node:wNode,flags:1,seekable:false,stream_ops:PIPEFS.stream_ops});wNode.stream=writableStream;return{readable_fd:readableStream.fd,writable_fd:writableStream.fd}},stream_ops:{poll:function(stream){var pipe=stream.node.pipe;if((stream.flags&2097155)===1){return 256|4}if(pipe.buckets.length>0){for(var i=0;i0){return 64|1}}}return 0},ioctl:function(stream,request,varargs){return 28},fsync:function(stream){return 28},read:function(stream,buffer,offset,length,position){var pipe=stream.node.pipe;var currentLength=0;for(var i=0;i=dataLen){currBucket.buffer.set(data,currBucket.offset);currBucket.offset+=dataLen;return dataLen}else if(freeBytesInCurrBuffer>0){currBucket.buffer.set(data.subarray(0,freeBytesInCurrBuffer),currBucket.offset);currBucket.offset+=freeBytesInCurrBuffer;data=data.subarray(freeBytesInCurrBuffer,data.byteLength)}var numBuckets=data.byteLength/PIPEFS.BUCKET_BUFFER_SIZE|0;var remElements=data.byteLength%PIPEFS.BUCKET_BUFFER_SIZE;for(var i=0;i0){var newBucket={buffer:new Uint8Array(PIPEFS.BUCKET_BUFFER_SIZE),offset:data.byteLength,roffset:0};pipe.buckets.push(newBucket);newBucket.buffer.set(data)}return dataLen},close:function(stream){var pipe=stream.node.pipe;pipe.refcnt--;if(pipe.refcnt===0){pipe.buckets=null}}},nextname:function(){if(!PIPEFS.nextname.current){PIPEFS.nextname.current=0}return"pipe["+PIPEFS.nextname.current+++"]"}};Module["PIPEFS"]=PIPEFS;function ___syscall_pipe(fdPtr){try{if(fdPtr==0){throw new FS.ErrnoError(21)}var res=PIPEFS.createPipe();HEAP32[fdPtr>>2]=res.readable_fd;HEAP32[fdPtr+4>>2]=res.writable_fd;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}Module["___syscall_pipe"]=___syscall_pipe;___syscall_pipe.sig="ip";function ___syscall_poll(fds,nfds,timeout){try{var nonzero=0;for(var i=0;i>2];var events=HEAP16[pollfd+4>>1];var mask=32;var stream=FS.getStream(fd);if(stream){mask=SYSCALLS.DEFAULT_POLLMASK;if(stream.stream_ops.poll){mask=stream.stream_ops.poll(stream)}}mask&=events|8|16;if(mask)nonzero++;HEAP16[pollfd+6>>1]=mask}return nonzero}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}Module["___syscall_poll"]=___syscall_poll;___syscall_poll.sig="ipii";function ___syscall_readlinkat(dirfd,path,buf,bufsize){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}Module["___syscall_readlinkat"]=___syscall_readlinkat;___syscall_readlinkat.sig="vippp";function ___syscall_recvfrom(fd,buf,len,flags,addr,addrlen){try{var sock=getSocketFromFD(fd);var msg=sock.sock_ops.recvmsg(sock,len);if(!msg)return 0;if(addr){var errno=writeSockaddr(addr,sock.family,DNS.lookup_name(msg.addr),msg.port,addrlen)}HEAPU8.set(msg.buffer,buf);return msg.buffer.byteLength}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}Module["___syscall_recvfrom"]=___syscall_recvfrom;function ___syscall_recvmsg(fd,message,flags){try{var sock=getSocketFromFD(fd);var iov=HEAPU32[message+8>>2];var num=HEAP32[message+12>>2];var total=0;for(var i=0;i>2]}var msg=sock.sock_ops.recvmsg(sock,total);if(!msg)return 0;var name=HEAPU32[message>>2];if(name){var errno=writeSockaddr(name,sock.family,DNS.lookup_name(msg.addr),msg.port)}var bytesRead=0;var bytesRemaining=msg.buffer.byteLength;for(var i=0;bytesRemaining>0&&i>2];var iovlen=HEAP32[iov+(8*i+4)>>2];if(!iovlen){continue}var length=Math.min(iovlen,bytesRemaining);var buf=msg.buffer.subarray(bytesRead,bytesRead+length);HEAPU8.set(buf,iovbase+bytesRead);bytesRead+=length;bytesRemaining-=length}return bytesRead}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}Module["___syscall_recvmsg"]=___syscall_recvmsg;function ___syscall_renameat(olddirfd,oldpath,newdirfd,newpath){try{oldpath=SYSCALLS.getStr(oldpath);newpath=SYSCALLS.getStr(newpath);oldpath=SYSCALLS.calculateAt(olddirfd,oldpath);newpath=SYSCALLS.calculateAt(newdirfd,newpath);FS.rename(oldpath,newpath);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}Module["___syscall_renameat"]=___syscall_renameat;___syscall_renameat.sig="iipip";function ___syscall_rmdir(path){try{path=SYSCALLS.getStr(path);FS.rmdir(path);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}Module["___syscall_rmdir"]=___syscall_rmdir;___syscall_rmdir.sig="ip";function ___syscall_sendmsg(fd,message,flags){try{var sock=getSocketFromFD(fd);var iov=HEAPU32[message+8>>2];var num=HEAP32[message+12>>2];var addr,port;var name=HEAPU32[message>>2];var namelen=HEAP32[message+4>>2];if(name){var info=readSockaddr(name,namelen);if(info.errno)return-info.errno;port=info.port;addr=DNS.lookup_addr(info.addr)||info.addr}var total=0;for(var i=0;i>2]}var view=new Uint8Array(total);var offset=0;for(var i=0;i>2];var iovlen=HEAP32[iov+(8*i+4)>>2];for(var j=0;j>0]}}return sock.sock_ops.sendmsg(sock,view,0,total,addr,port)}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}Module["___syscall_sendmsg"]=___syscall_sendmsg;function ___syscall_sendto(fd,message,length,flags,addr,addr_len){try{var sock=getSocketFromFD(fd);var dest=getSocketAddress(addr,addr_len,true);if(!dest){return FS.write(sock.stream,HEAP8,message,length)}return sock.sock_ops.sendmsg(sock,HEAP8,message,length,dest.addr,dest.port)}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}Module["___syscall_sendto"]=___syscall_sendto;___syscall_sendto.sig="iipiipi";function ___syscall_socket(domain,type,protocol){try{var sock=SOCKFS.createSocket(domain,type,protocol);return sock.stream.fd}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}Module["___syscall_socket"]=___syscall_socket;function ___syscall_stat64(path,buf){try{path=SYSCALLS.getStr(path);return SYSCALLS.doStat(FS.stat,path,buf)}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}Module["___syscall_stat64"]=___syscall_stat64;___syscall_stat64.sig="ipp";function ___syscall_symlink(target,linkpath){try{target=SYSCALLS.getStr(target);linkpath=SYSCALLS.getStr(linkpath);FS.symlink(target,linkpath);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}Module["___syscall_symlink"]=___syscall_symlink;___syscall_symlink.sig="ipp";function ___syscall_symlinkat(target,newdirfd,linkpath){try{linkpath=SYSCALLS.calculateAt(newdirfd,linkpath);FS.symlink(target,linkpath);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}Module["___syscall_symlinkat"]=___syscall_symlinkat;function ___syscall_truncate64(path,length){try{length=bigintToI53Checked(length);if(isNaN(length))return-61;path=SYSCALLS.getStr(path);FS.truncate(path,length);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}Module["___syscall_truncate64"]=___syscall_truncate64;___syscall_truncate64.sig="ipj";function ___syscall_unlinkat(dirfd,path,flags){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);if(flags===0){FS.unlink(path)}else if(flags===512){FS.rmdir(path)}else{abort("Invalid flags passed to unlinkat")}return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}Module["___syscall_unlinkat"]=___syscall_unlinkat;___syscall_unlinkat.sig="iipi";function readI53FromI64(ptr){return HEAPU32[ptr>>2]+HEAP32[ptr+4>>2]*4294967296}Module["readI53FromI64"]=readI53FromI64;function ___syscall_utimensat(dirfd,path,times,flags){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path,true);if(!times){var atime=Date.now();var mtime=atime}else{var seconds=readI53FromI64(times);var nanoseconds=HEAP32[times+8>>2];atime=seconds*1e3+nanoseconds/(1e3*1e3);times+=16;seconds=readI53FromI64(times);nanoseconds=HEAP32[times+8>>2];mtime=seconds*1e3+nanoseconds/(1e3*1e3)}FS.utime(path,atime,mtime);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}Module["___syscall_utimensat"]=___syscall_utimensat;___syscall_utimensat.sig="iippi";var ___table_base=new WebAssembly.Global({"value":"i32","mutable":false},1);Module["___table_base"]=___table_base;var ENV={};Module["ENV"]=ENV;function allocateUTF8OnStack(str){var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8Array(str,HEAP8,ret,size);return ret}Module["allocateUTF8OnStack"]=allocateUTF8OnStack;function dlSetError(msg){withStackSave(function(){var cmsg=allocateUTF8OnStack(msg);___dl_seterr(cmsg,0)})}Module["dlSetError"]=dlSetError;function dlopenInternal(handle,jsflags){var filename=UTF8ToString(handle+28);var flags=HEAP32[handle+4>>2];filename=PATH.normalize(filename);var searchpaths=[];var isValidFile=filename=>{var target=FS.findObject(filename);return target&&!target.isFolder&&!target.isDevice};if(!isValidFile(filename)){if(ENV["LD_LIBRARY_PATH"]){searchpaths=ENV["LD_LIBRARY_PATH"].split(":")}for(var ident in searchpaths){var searchfile=PATH.join2(searchpaths[ident],filename);if(isValidFile(searchfile)){filename=searchfile;break}}}var combinedFlags={global:Boolean(flags&256),nodelete:Boolean(flags&4096),loadAsync:jsflags.loadAsync,fs:jsflags.fs};if(jsflags.loadAsync){return loadDynamicLibrary(filename,combinedFlags,handle)}try{return loadDynamicLibrary(filename,combinedFlags,handle)}catch(e){dlSetError("Could not load dynamic lib: "+filename+"\n"+e);return 0}}Module["dlopenInternal"]=dlopenInternal;function __dlopen_js(handle){var jsflags={loadAsync:false,fs:FS};return dlopenInternal(handle,jsflags)}Module["__dlopen_js"]=__dlopen_js;__dlopen_js.sig="pp";function __dlsym_js(handle,symbol,symbolIndex){symbol=UTF8ToString(symbol);var result;var newSymIndex;var lib=LDSO.loadedLibsByHandle[handle];if(!lib.module.hasOwnProperty(symbol)){dlSetError('Tried to lookup unknown symbol "'+symbol+'" in dynamic lib: '+lib.name);return 0}newSymIndex=Object.keys(lib.module).indexOf(symbol);result=lib.module[symbol];if(typeof result=="function"){var addr=getFunctionAddress(result);if(addr){result=addr}else{result=addFunction(result,result.sig);HEAPU32[symbolIndex>>2]=newSymIndex}}return result}Module["__dlsym_js"]=__dlsym_js;__dlsym_js.sig="pppp";function handleException(e){if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)}Module["handleException"]=handleException;function callUserCallback(func){if(ABORT){return}try{func()}catch(e){handleException(e)}}Module["callUserCallback"]=callUserCallback;function __emscripten_dlopen_js(handle,onsuccess,onerror,user_data){function errorCallback(e){var filename=UTF8ToString(HEAPU32[handle+28>>2]);dlSetError("Could not load dynamic lib: "+filename+"\n"+e);callUserCallback(function(){getWasmTableEntry(onerror)(handle,user_data)})}function successCallback(){callUserCallback(function(){getWasmTableEntry(onsuccess)(handle,user_data)})}var promise=dlopenInternal(handle,{loadAsync:true});if(promise){promise.then(successCallback,errorCallback)}else{errorCallback()}}Module["__emscripten_dlopen_js"]=__emscripten_dlopen_js;__emscripten_dlopen_js.sig="vppp";function __emscripten_err(str){err(UTF8ToString(str))}Module["__emscripten_err"]=__emscripten_err;__emscripten_err.sig="vp";var nowIsMonotonic=true;Module["nowIsMonotonic"]=nowIsMonotonic;function __emscripten_get_now_is_monotonic(){return nowIsMonotonic}Module["__emscripten_get_now_is_monotonic"]=__emscripten_get_now_is_monotonic;__emscripten_get_now_is_monotonic.sig="i";function __emscripten_get_progname(str,len){stringToUTF8(thisProgram,str,len)}Module["__emscripten_get_progname"]=__emscripten_get_progname;__emscripten_get_progname.sig="vpp";function __emscripten_out(str){out(UTF8ToString(str))}Module["__emscripten_out"]=__emscripten_out;__emscripten_out.sig="vp";function __emscripten_throw_longjmp(){throw Infinity}Module["__emscripten_throw_longjmp"]=__emscripten_throw_longjmp;__emscripten_throw_longjmp.sig="v";function __gmtime_js(time,tmPtr){var date=new Date(readI53FromI64(time)*1e3);HEAP32[tmPtr>>2]=date.getUTCSeconds();HEAP32[tmPtr+4>>2]=date.getUTCMinutes();HEAP32[tmPtr+8>>2]=date.getUTCHours();HEAP32[tmPtr+12>>2]=date.getUTCDate();HEAP32[tmPtr+16>>2]=date.getUTCMonth();HEAP32[tmPtr+20>>2]=date.getUTCFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getUTCDay();var start=Date.UTC(date.getUTCFullYear(),0,1,0,0,0,0);var yday=(date.getTime()-start)/(1e3*60*60*24)|0;HEAP32[tmPtr+28>>2]=yday}Module["__gmtime_js"]=__gmtime_js;__gmtime_js.sig="ipp";function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}Module["__isLeapYear"]=__isLeapYear;var __MONTH_DAYS_LEAP_CUMULATIVE=[0,31,60,91,121,152,182,213,244,274,305,335];Module["__MONTH_DAYS_LEAP_CUMULATIVE"]=__MONTH_DAYS_LEAP_CUMULATIVE;var __MONTH_DAYS_REGULAR_CUMULATIVE=[0,31,59,90,120,151,181,212,243,273,304,334];Module["__MONTH_DAYS_REGULAR_CUMULATIVE"]=__MONTH_DAYS_REGULAR_CUMULATIVE;function __yday_from_date(date){var isLeapYear=__isLeapYear(date.getFullYear());var monthDaysCumulative=isLeapYear?__MONTH_DAYS_LEAP_CUMULATIVE:__MONTH_DAYS_REGULAR_CUMULATIVE;var yday=monthDaysCumulative[date.getMonth()]+date.getDate()-1;return yday}Module["__yday_from_date"]=__yday_from_date;function __localtime_js(time,tmPtr){var date=new Date(readI53FromI64(time)*1e3);HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();HEAP32[tmPtr+20>>2]=date.getFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getDay();var yday=__yday_from_date(date)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr+36>>2]=-(date.getTimezoneOffset()*60);var start=new Date(date.getFullYear(),0,1);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;HEAP32[tmPtr+32>>2]=dst}Module["__localtime_js"]=__localtime_js;__localtime_js.sig="ipp";function __mktime_js(tmPtr){var date=new Date(HEAP32[tmPtr+20>>2]+1900,HEAP32[tmPtr+16>>2],HEAP32[tmPtr+12>>2],HEAP32[tmPtr+8>>2],HEAP32[tmPtr+4>>2],HEAP32[tmPtr>>2],0);var dst=HEAP32[tmPtr+32>>2];var guessedOffset=date.getTimezoneOffset();var start=new Date(date.getFullYear(),0,1);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dstOffset=Math.min(winterOffset,summerOffset);if(dst<0){HEAP32[tmPtr+32>>2]=Number(summerOffset!=winterOffset&&dstOffset==guessedOffset)}else if(dst>0!=(dstOffset==guessedOffset)){var nonDstOffset=Math.max(winterOffset,summerOffset);var trueOffset=dst>0?dstOffset:nonDstOffset;date.setTime(date.getTime()+(trueOffset-guessedOffset)*6e4)}HEAP32[tmPtr+24>>2]=date.getDay();var yday=__yday_from_date(date)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();HEAP32[tmPtr+20>>2]=date.getYear();return date.getTime()/1e3|0}Module["__mktime_js"]=__mktime_js;__mktime_js.sig="ip";function __mmap_js(len,prot,flags,fd,off,allocated,addr){try{var stream=SYSCALLS.getStreamFromFD(fd);var res=FS.mmap(stream,len,off,prot,flags);var ptr=res.ptr;HEAP32[allocated>>2]=res.allocated;HEAPU32[addr>>2]=ptr;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}Module["__mmap_js"]=__mmap_js;__mmap_js.sig="ipiiippp";function __msync_js(addr,len,prot,flags,fd,offset){try{SYSCALLS.doMsync(addr,SYSCALLS.getStreamFromFD(fd),len,flags,0);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}Module["__msync_js"]=__msync_js;__msync_js.sig="ippiiip";function __munmap_js(addr,len,prot,flags,fd,offset){try{var stream=SYSCALLS.getStreamFromFD(fd);if(prot&2){SYSCALLS.doMsync(addr,stream,len,flags,offset)}FS.munmap(stream)}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}Module["__munmap_js"]=__munmap_js;__munmap_js.sig="ippiiip";var timers={};Module["timers"]=timers;var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=()=>{var t=process.hrtime();return t[0]*1e3+t[1]/1e6}}else _emscripten_get_now=()=>performance.now();Module["_emscripten_get_now"]=_emscripten_get_now;_emscripten_get_now.sig="d";function __setitimer_js(which,timeout_ms){if(timers[which]){clearTimeout(timers[which].id);delete timers[which]}if(!timeout_ms)return 0;var id=setTimeout(()=>{delete timers[which];callUserCallback(()=>__emscripten_timeout(which,_emscripten_get_now()))},timeout_ms);timers[which]={id:id,timeout_ms:timeout_ms};return 0}Module["__setitimer_js"]=__setitimer_js;__setitimer_js.sig="iid";function __timegm_js(tmPtr){var time=Date.UTC(HEAP32[tmPtr+20>>2]+1900,HEAP32[tmPtr+16>>2],HEAP32[tmPtr+12>>2],HEAP32[tmPtr+8>>2],HEAP32[tmPtr+4>>2],HEAP32[tmPtr>>2],0);var date=new Date(time);HEAP32[tmPtr+24>>2]=date.getUTCDay();var start=Date.UTC(date.getUTCFullYear(),0,1,0,0,0,0);var yday=(date.getTime()-start)/(1e3*60*60*24)|0;HEAP32[tmPtr+28>>2]=yday;return date.getTime()/1e3|0}Module["__timegm_js"]=__timegm_js;__timegm_js.sig="ip";function allocateUTF8(str){var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8Array(str,HEAP8,ret,size);return ret}Module["allocateUTF8"]=allocateUTF8;function __tzset_js(timezone,daylight,tzname){var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);HEAPU32[timezone>>2]=stdTimezoneOffset*60;HEAP32[daylight>>2]=Number(winterOffset!=summerOffset);function extractZone(date){var match=date.toTimeString().match(/\(([A-Za-z ]+)\)$/);return match?match[1]:"GMT"}var winterName=extractZone(winter);var summerName=extractZone(summer);var winterNamePtr=allocateUTF8(winterName);var summerNamePtr=allocateUTF8(summerName);if(summerOffset>2]=winterNamePtr;HEAPU32[tzname+4>>2]=summerNamePtr}else{HEAPU32[tzname>>2]=summerNamePtr;HEAPU32[tzname+4>>2]=winterNamePtr}}Module["__tzset_js"]=__tzset_js;__tzset_js.sig="vppp";function _abort(){abort("")}Module["_abort"]=_abort;_abort.sig="v";var readEmAsmArgsArray=[];Module["readEmAsmArgsArray"]=readEmAsmArgsArray;function readEmAsmArgs(sigPtr,buf){readEmAsmArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){buf+=ch!=105&buf;readEmAsmArgsArray.push(ch==105?HEAP32[buf]:(ch==106?HEAP64:HEAPF64)[buf++>>1]);++buf}return readEmAsmArgsArray}Module["readEmAsmArgs"]=readEmAsmArgs;function runEmAsmFunction(code,sigPtr,argbuf){var args=readEmAsmArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}Module["runEmAsmFunction"]=runEmAsmFunction;runEmAsmFunction.sig="ippp";function _emscripten_asm_const_int(code,sigPtr,argbuf){return runEmAsmFunction(code,sigPtr,argbuf)}Module["_emscripten_asm_const_int"]=_emscripten_asm_const_int;_emscripten_asm_const_int.sig="ippp";function _emscripten_console_error(str){console.error(UTF8ToString(str))}Module["_emscripten_console_error"]=_emscripten_console_error;_emscripten_console_error.sig="vp";function _emscripten_console_log(str){console.log(UTF8ToString(str))}Module["_emscripten_console_log"]=_emscripten_console_log;_emscripten_console_log.sig="vp";function _emscripten_console_warn(str){console.warn(UTF8ToString(str))}Module["_emscripten_console_warn"]=_emscripten_console_warn;_emscripten_console_warn.sig="vp";function _emscripten_date_now(){return Date.now()}Module["_emscripten_date_now"]=_emscripten_date_now;_emscripten_date_now.sig="d";function _emscripten_exit_with_live_runtime(){throw"unwind"}Module["_emscripten_exit_with_live_runtime"]=_emscripten_exit_with_live_runtime;_emscripten_exit_with_live_runtime.sig="v";function getHeapMax(){return 2147483648}Module["getHeapMax"]=getHeapMax;function _emscripten_get_heap_max(){return getHeapMax()}Module["_emscripten_get_heap_max"]=_emscripten_get_heap_max;_emscripten_get_heap_max.sig="p";function _emscripten_get_now_res(){if(ENVIRONMENT_IS_NODE){return 1}else return 1e3}Module["_emscripten_get_now_res"]=_emscripten_get_now_res;function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}Module["__webgl_enable_ANGLE_instanced_arrays"]=__webgl_enable_ANGLE_instanced_arrays;function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}Module["__webgl_enable_OES_vertex_array_object"]=__webgl_enable_OES_vertex_array_object;function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}Module["__webgl_enable_WEBGL_draw_buffers"]=__webgl_enable_WEBGL_draw_buffers;function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}Module["__webgl_enable_WEBGL_multi_draw"]=__webgl_enable_WEBGL_multi_draw;var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=GL.getNewId(GL.contexts);var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault=="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents=="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};Module["GL"]=GL;function _emscripten_glActiveTexture(x0){GLctx["activeTexture"](x0)}Module["_emscripten_glActiveTexture"]=_emscripten_glActiveTexture;_emscripten_glActiveTexture.sig="vi";function _emscripten_glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}Module["_emscripten_glAttachShader"]=_emscripten_glAttachShader;_emscripten_glAttachShader.sig="vii";function _emscripten_glBeginQueryEXT(target,id){GLctx.disjointTimerQueryExt["beginQueryEXT"](target,GL.queries[id])}Module["_emscripten_glBeginQueryEXT"]=_emscripten_glBeginQueryEXT;_emscripten_glBeginQueryEXT.sig="vii";function _emscripten_glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}Module["_emscripten_glBindAttribLocation"]=_emscripten_glBindAttribLocation;_emscripten_glBindAttribLocation.sig="viii";function _emscripten_glBindBuffer(target,buffer){GLctx.bindBuffer(target,GL.buffers[buffer])}Module["_emscripten_glBindBuffer"]=_emscripten_glBindBuffer;_emscripten_glBindBuffer.sig="vii";function _emscripten_glBindFramebuffer(target,framebuffer){GLctx.bindFramebuffer(target,GL.framebuffers[framebuffer])}Module["_emscripten_glBindFramebuffer"]=_emscripten_glBindFramebuffer;_emscripten_glBindFramebuffer.sig="vii";function _emscripten_glBindRenderbuffer(target,renderbuffer){GLctx.bindRenderbuffer(target,GL.renderbuffers[renderbuffer])}Module["_emscripten_glBindRenderbuffer"]=_emscripten_glBindRenderbuffer;_emscripten_glBindRenderbuffer.sig="vii";function _emscripten_glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}Module["_emscripten_glBindTexture"]=_emscripten_glBindTexture;_emscripten_glBindTexture.sig="vii";function _emscripten_glBindVertexArrayOES(vao){GLctx["bindVertexArray"](GL.vaos[vao])}Module["_emscripten_glBindVertexArrayOES"]=_emscripten_glBindVertexArrayOES;_emscripten_glBindVertexArrayOES.sig="vi";function _emscripten_glBlendColor(x0,x1,x2,x3){GLctx["blendColor"](x0,x1,x2,x3)}Module["_emscripten_glBlendColor"]=_emscripten_glBlendColor;_emscripten_glBlendColor.sig="vffff";function _emscripten_glBlendEquation(x0){GLctx["blendEquation"](x0)}Module["_emscripten_glBlendEquation"]=_emscripten_glBlendEquation;_emscripten_glBlendEquation.sig="vi";function _emscripten_glBlendEquationSeparate(x0,x1){GLctx["blendEquationSeparate"](x0,x1)}Module["_emscripten_glBlendEquationSeparate"]=_emscripten_glBlendEquationSeparate;_emscripten_glBlendEquationSeparate.sig="vii";function _emscripten_glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}Module["_emscripten_glBlendFunc"]=_emscripten_glBlendFunc;_emscripten_glBlendFunc.sig="vii";function _emscripten_glBlendFuncSeparate(x0,x1,x2,x3){GLctx["blendFuncSeparate"](x0,x1,x2,x3)}Module["_emscripten_glBlendFuncSeparate"]=_emscripten_glBlendFuncSeparate;_emscripten_glBlendFuncSeparate.sig="viiii";function _emscripten_glBufferData(target,size,data,usage){GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}Module["_emscripten_glBufferData"]=_emscripten_glBufferData;_emscripten_glBufferData.sig="viiii";function _emscripten_glBufferSubData(target,offset,size,data){GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}Module["_emscripten_glBufferSubData"]=_emscripten_glBufferSubData;_emscripten_glBufferSubData.sig="viiii";function _emscripten_glCheckFramebufferStatus(x0){return GLctx["checkFramebufferStatus"](x0)}Module["_emscripten_glCheckFramebufferStatus"]=_emscripten_glCheckFramebufferStatus;_emscripten_glCheckFramebufferStatus.sig="ii";function _emscripten_glClear(x0){GLctx["clear"](x0)}Module["_emscripten_glClear"]=_emscripten_glClear;_emscripten_glClear.sig="vi";function _emscripten_glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}Module["_emscripten_glClearColor"]=_emscripten_glClearColor;_emscripten_glClearColor.sig="vffff";function _emscripten_glClearDepthf(x0){GLctx["clearDepth"](x0)}Module["_emscripten_glClearDepthf"]=_emscripten_glClearDepthf;_emscripten_glClearDepthf.sig="vf";function _emscripten_glClearStencil(x0){GLctx["clearStencil"](x0)}Module["_emscripten_glClearStencil"]=_emscripten_glClearStencil;_emscripten_glClearStencil.sig="vi";function _emscripten_glColorMask(red,green,blue,alpha){GLctx.colorMask(!!red,!!green,!!blue,!!alpha)}Module["_emscripten_glColorMask"]=_emscripten_glColorMask;_emscripten_glColorMask.sig="viiii";function _emscripten_glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}Module["_emscripten_glCompileShader"]=_emscripten_glCompileShader;_emscripten_glCompileShader.sig="vi";function _emscripten_glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}Module["_emscripten_glCompressedTexImage2D"]=_emscripten_glCompressedTexImage2D;_emscripten_glCompressedTexImage2D.sig="viiiiiiii";function _emscripten_glCompressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,imageSize,data){GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,data?HEAPU8.subarray(data,data+imageSize):null)}Module["_emscripten_glCompressedTexSubImage2D"]=_emscripten_glCompressedTexSubImage2D;_emscripten_glCompressedTexSubImage2D.sig="viiiiiiiii";function _emscripten_glCopyTexImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}Module["_emscripten_glCopyTexImage2D"]=_emscripten_glCopyTexImage2D;_emscripten_glCopyTexImage2D.sig="viiiiiiii";function _emscripten_glCopyTexSubImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexSubImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}Module["_emscripten_glCopyTexSubImage2D"]=_emscripten_glCopyTexSubImage2D;_emscripten_glCopyTexSubImage2D.sig="viiiiiiii";function _emscripten_glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}Module["_emscripten_glCreateProgram"]=_emscripten_glCreateProgram;_emscripten_glCreateProgram.sig="i";function _emscripten_glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}Module["_emscripten_glCreateShader"]=_emscripten_glCreateShader;_emscripten_glCreateShader.sig="ii";function _emscripten_glCullFace(x0){GLctx["cullFace"](x0)}Module["_emscripten_glCullFace"]=_emscripten_glCullFace;_emscripten_glCullFace.sig="vi";function _emscripten_glDeleteBuffers(n,buffers){for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null}}Module["_emscripten_glDeleteBuffers"]=_emscripten_glDeleteBuffers;_emscripten_glDeleteBuffers.sig="vii";function _emscripten_glDeleteFramebuffers(n,framebuffers){for(var i=0;i>2];var framebuffer=GL.framebuffers[id];if(!framebuffer)continue;GLctx.deleteFramebuffer(framebuffer);framebuffer.name=0;GL.framebuffers[id]=null}}Module["_emscripten_glDeleteFramebuffers"]=_emscripten_glDeleteFramebuffers;_emscripten_glDeleteFramebuffers.sig="vii";function _emscripten_glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}Module["_emscripten_glDeleteProgram"]=_emscripten_glDeleteProgram;_emscripten_glDeleteProgram.sig="vi";function _emscripten_glDeleteQueriesEXT(n,ids){for(var i=0;i>2];var query=GL.queries[id];if(!query)continue;GLctx.disjointTimerQueryExt["deleteQueryEXT"](query);GL.queries[id]=null}}Module["_emscripten_glDeleteQueriesEXT"]=_emscripten_glDeleteQueriesEXT;_emscripten_glDeleteQueriesEXT.sig="vii";function _emscripten_glDeleteRenderbuffers(n,renderbuffers){for(var i=0;i>2];var renderbuffer=GL.renderbuffers[id];if(!renderbuffer)continue;GLctx.deleteRenderbuffer(renderbuffer);renderbuffer.name=0;GL.renderbuffers[id]=null}}Module["_emscripten_glDeleteRenderbuffers"]=_emscripten_glDeleteRenderbuffers;_emscripten_glDeleteRenderbuffers.sig="vii";function _emscripten_glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}Module["_emscripten_glDeleteShader"]=_emscripten_glDeleteShader;_emscripten_glDeleteShader.sig="vi";function _emscripten_glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}Module["_emscripten_glDeleteTextures"]=_emscripten_glDeleteTextures;_emscripten_glDeleteTextures.sig="vii";function _emscripten_glDeleteVertexArraysOES(n,vaos){for(var i=0;i>2];GLctx["deleteVertexArray"](GL.vaos[id]);GL.vaos[id]=null}}Module["_emscripten_glDeleteVertexArraysOES"]=_emscripten_glDeleteVertexArraysOES;_emscripten_glDeleteVertexArraysOES.sig="vii";function _emscripten_glDepthFunc(x0){GLctx["depthFunc"](x0)}Module["_emscripten_glDepthFunc"]=_emscripten_glDepthFunc;_emscripten_glDepthFunc.sig="vi";function _emscripten_glDepthMask(flag){GLctx.depthMask(!!flag)}Module["_emscripten_glDepthMask"]=_emscripten_glDepthMask;_emscripten_glDepthMask.sig="vi";function _emscripten_glDepthRangef(x0,x1){GLctx["depthRange"](x0,x1)}Module["_emscripten_glDepthRangef"]=_emscripten_glDepthRangef;_emscripten_glDepthRangef.sig="vii";function _emscripten_glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}Module["_emscripten_glDetachShader"]=_emscripten_glDetachShader;_emscripten_glDetachShader.sig="vii";function _emscripten_glDisable(x0){GLctx["disable"](x0)}Module["_emscripten_glDisable"]=_emscripten_glDisable;_emscripten_glDisable.sig="vi";function _emscripten_glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}Module["_emscripten_glDisableVertexAttribArray"]=_emscripten_glDisableVertexAttribArray;_emscripten_glDisableVertexAttribArray.sig="vi";function _emscripten_glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}Module["_emscripten_glDrawArrays"]=_emscripten_glDrawArrays;_emscripten_glDrawArrays.sig="viii";function _emscripten_glDrawArraysInstancedANGLE(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}Module["_emscripten_glDrawArraysInstancedANGLE"]=_emscripten_glDrawArraysInstancedANGLE;_emscripten_glDrawArraysInstancedANGLE.sig="viiii";var tempFixedLengthArray=[];Module["tempFixedLengthArray"]=tempFixedLengthArray;function _emscripten_glDrawBuffersWEBGL(n,bufs){var bufArray=tempFixedLengthArray[n];for(var i=0;i>2]}GLctx["drawBuffers"](bufArray)}Module["_emscripten_glDrawBuffersWEBGL"]=_emscripten_glDrawBuffersWEBGL;_emscripten_glDrawBuffersWEBGL.sig="vii";function _emscripten_glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}Module["_emscripten_glDrawElements"]=_emscripten_glDrawElements;_emscripten_glDrawElements.sig="viiii";function _emscripten_glDrawElementsInstancedANGLE(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}Module["_emscripten_glDrawElementsInstancedANGLE"]=_emscripten_glDrawElementsInstancedANGLE;_emscripten_glDrawElementsInstancedANGLE.sig="viiiii";function _emscripten_glEnable(x0){GLctx["enable"](x0)}Module["_emscripten_glEnable"]=_emscripten_glEnable;_emscripten_glEnable.sig="vi";function _emscripten_glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}Module["_emscripten_glEnableVertexAttribArray"]=_emscripten_glEnableVertexAttribArray;_emscripten_glEnableVertexAttribArray.sig="vi";function _emscripten_glEndQueryEXT(target){GLctx.disjointTimerQueryExt["endQueryEXT"](target)}Module["_emscripten_glEndQueryEXT"]=_emscripten_glEndQueryEXT;_emscripten_glEndQueryEXT.sig="vi";function _emscripten_glFinish(){GLctx["finish"]()}Module["_emscripten_glFinish"]=_emscripten_glFinish;_emscripten_glFinish.sig="v";function _emscripten_glFlush(){GLctx["flush"]()}Module["_emscripten_glFlush"]=_emscripten_glFlush;_emscripten_glFlush.sig="v";function _emscripten_glFramebufferRenderbuffer(target,attachment,renderbuffertarget,renderbuffer){GLctx.framebufferRenderbuffer(target,attachment,renderbuffertarget,GL.renderbuffers[renderbuffer])}Module["_emscripten_glFramebufferRenderbuffer"]=_emscripten_glFramebufferRenderbuffer;_emscripten_glFramebufferRenderbuffer.sig="viiii";function _emscripten_glFramebufferTexture2D(target,attachment,textarget,texture,level){GLctx.framebufferTexture2D(target,attachment,textarget,GL.textures[texture],level)}Module["_emscripten_glFramebufferTexture2D"]=_emscripten_glFramebufferTexture2D;_emscripten_glFramebufferTexture2D.sig="viiiii";function _emscripten_glFrontFace(x0){GLctx["frontFace"](x0)}Module["_emscripten_glFrontFace"]=_emscripten_glFrontFace;_emscripten_glFrontFace.sig="vi";function __glGenObject(n,buffers,createFunction,objectTable){for(var i=0;i>2]=id}}Module["__glGenObject"]=__glGenObject;__glGenObject.sig="vii";function _emscripten_glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}Module["_emscripten_glGenBuffers"]=_emscripten_glGenBuffers;_emscripten_glGenBuffers.sig="vii";function _emscripten_glGenFramebuffers(n,ids){__glGenObject(n,ids,"createFramebuffer",GL.framebuffers)}Module["_emscripten_glGenFramebuffers"]=_emscripten_glGenFramebuffers;_emscripten_glGenFramebuffers.sig="vii";function _emscripten_glGenQueriesEXT(n,ids){for(var i=0;i>2]=0;return}var id=GL.getNewId(GL.queries);query.name=id;GL.queries[id]=query;HEAP32[ids+i*4>>2]=id}}Module["_emscripten_glGenQueriesEXT"]=_emscripten_glGenQueriesEXT;_emscripten_glGenQueriesEXT.sig="vii";function _emscripten_glGenRenderbuffers(n,renderbuffers){__glGenObject(n,renderbuffers,"createRenderbuffer",GL.renderbuffers)}Module["_emscripten_glGenRenderbuffers"]=_emscripten_glGenRenderbuffers;_emscripten_glGenRenderbuffers.sig="vii";function _emscripten_glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}Module["_emscripten_glGenTextures"]=_emscripten_glGenTextures;_emscripten_glGenTextures.sig="vii";function _emscripten_glGenVertexArraysOES(n,arrays){__glGenObject(n,arrays,"createVertexArray",GL.vaos)}Module["_emscripten_glGenVertexArraysOES"]=_emscripten_glGenVertexArraysOES;_emscripten_glGenVertexArraysOES.sig="vii";function _emscripten_glGenerateMipmap(x0){GLctx["generateMipmap"](x0)}Module["_emscripten_glGenerateMipmap"]=_emscripten_glGenerateMipmap;_emscripten_glGenerateMipmap.sig="vi";function __glGetActiveAttribOrUniform(funcName,program,index,bufSize,length,size,type,name){program=GL.programs[program];var info=GLctx[funcName](program,index);if(info){var numBytesWrittenExclNull=name&&stringToUTF8(info.name,name,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull;if(size)HEAP32[size>>2]=info.size;if(type)HEAP32[type>>2]=info.type}}Module["__glGetActiveAttribOrUniform"]=__glGetActiveAttribOrUniform;function _emscripten_glGetActiveAttrib(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveAttrib",program,index,bufSize,length,size,type,name)}Module["_emscripten_glGetActiveAttrib"]=_emscripten_glGetActiveAttrib;_emscripten_glGetActiveAttrib.sig="viiiiiii";function _emscripten_glGetActiveUniform(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveUniform",program,index,bufSize,length,size,type,name)}Module["_emscripten_glGetActiveUniform"]=_emscripten_glGetActiveUniform;_emscripten_glGetActiveUniform.sig="viiiiiii";function _emscripten_glGetAttachedShaders(program,maxCount,count,shaders){var result=GLctx.getAttachedShaders(GL.programs[program]);var len=result.length;if(len>maxCount){len=maxCount}HEAP32[count>>2]=len;for(var i=0;i>2]=id}}Module["_emscripten_glGetAttachedShaders"]=_emscripten_glGetAttachedShaders;_emscripten_glGetAttachedShaders.sig="viiii";function _emscripten_glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}Module["_emscripten_glGetAttribLocation"]=_emscripten_glGetAttribLocation;_emscripten_glGetAttribLocation.sig="iii";function writeI53ToI64(ptr,num){HEAPU32[ptr>>2]=num;HEAPU32[ptr+4>>2]=(num-HEAPU32[ptr>>2])/4294967296}Module["writeI53ToI64"]=writeI53ToI64;function emscriptenWebGLGet(name_,p,type){if(!p){GL.recordError(1281);return}var ret=undefined;switch(name_){case 36346:ret=1;break;case 36344:if(type!=0&&type!=1){GL.recordError(1280)}return;case 36345:ret=0;break;case 34466:var formats=GLctx.getParameter(34467);ret=formats?formats.length:0;break}if(ret===undefined){var result=GLctx.getParameter(name_);switch(typeof result){case"number":ret=result;break;case"boolean":ret=result?1:0;break;case"string":GL.recordError(1280);return;case"object":if(result===null){switch(name_){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 34068:{ret=0;break}default:{GL.recordError(1280);return}}}else if(result instanceof Float32Array||result instanceof Uint32Array||result instanceof Int32Array||result instanceof Array){for(var i=0;i>2]=result[i];break;case 2:HEAPF32[p+i*4>>2]=result[i];break;case 4:HEAP8[p+i>>0]=result[i]?1:0;break}}return}else{try{ret=result.name|0}catch(e){GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Unknown object returned from WebGL getParameter("+name_+")! (error: "+e+")");return}}break;default:GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Native code calling glGet"+type+"v("+name_+") and it returns "+result+" of type "+typeof result+"!");return}}switch(type){case 1:writeI53ToI64(p,ret);break;case 0:HEAP32[p>>2]=ret;break;case 2:HEAPF32[p>>2]=ret;break;case 4:HEAP8[p>>0]=ret?1:0;break}}Module["emscriptenWebGLGet"]=emscriptenWebGLGet;function _emscripten_glGetBooleanv(name_,p){emscriptenWebGLGet(name_,p,4)}Module["_emscripten_glGetBooleanv"]=_emscripten_glGetBooleanv;_emscripten_glGetBooleanv.sig="vii";function _emscripten_glGetBufferParameteriv(target,value,data){if(!data){GL.recordError(1281);return}HEAP32[data>>2]=GLctx.getBufferParameter(target,value)}Module["_emscripten_glGetBufferParameteriv"]=_emscripten_glGetBufferParameteriv;_emscripten_glGetBufferParameteriv.sig="viii";function _emscripten_glGetError(){var error=GLctx.getError()||GL.lastError;GL.lastError=0;return error}Module["_emscripten_glGetError"]=_emscripten_glGetError;_emscripten_glGetError.sig="i";function _emscripten_glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}Module["_emscripten_glGetFloatv"]=_emscripten_glGetFloatv;_emscripten_glGetFloatv.sig="vii";function _emscripten_glGetFramebufferAttachmentParameteriv(target,attachment,pname,params){var result=GLctx.getFramebufferAttachmentParameter(target,attachment,pname);if(result instanceof WebGLRenderbuffer||result instanceof WebGLTexture){result=result.name|0}HEAP32[params>>2]=result}Module["_emscripten_glGetFramebufferAttachmentParameteriv"]=_emscripten_glGetFramebufferAttachmentParameteriv;_emscripten_glGetFramebufferAttachmentParameteriv.sig="viiii";function _emscripten_glGetIntegerv(name_,p){emscriptenWebGLGet(name_,p,0)}Module["_emscripten_glGetIntegerv"]=_emscripten_glGetIntegerv;_emscripten_glGetIntegerv.sig="vii";function _emscripten_glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}Module["_emscripten_glGetProgramInfoLog"]=_emscripten_glGetProgramInfoLog;_emscripten_glGetProgramInfoLog.sig="viiii";function _emscripten_glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}Module["_emscripten_glGetProgramiv"]=_emscripten_glGetProgramiv;_emscripten_glGetProgramiv.sig="viii";function _emscripten_glGetQueryObjecti64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;{param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}Module["_emscripten_glGetQueryObjecti64vEXT"]=_emscripten_glGetQueryObjecti64vEXT;_emscripten_glGetQueryObjecti64vEXT.sig="viii";function _emscripten_glGetQueryObjectivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}Module["_emscripten_glGetQueryObjectivEXT"]=_emscripten_glGetQueryObjectivEXT;_emscripten_glGetQueryObjectivEXT.sig="viii";function _emscripten_glGetQueryObjectui64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;{param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}Module["_emscripten_glGetQueryObjectui64vEXT"]=_emscripten_glGetQueryObjectui64vEXT;_emscripten_glGetQueryObjectui64vEXT.sig="viii";function _emscripten_glGetQueryObjectuivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}Module["_emscripten_glGetQueryObjectuivEXT"]=_emscripten_glGetQueryObjectuivEXT;_emscripten_glGetQueryObjectuivEXT.sig="viii";function _emscripten_glGetQueryivEXT(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.disjointTimerQueryExt["getQueryEXT"](target,pname)}Module["_emscripten_glGetQueryivEXT"]=_emscripten_glGetQueryivEXT;_emscripten_glGetQueryivEXT.sig="viii";function _emscripten_glGetRenderbufferParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getRenderbufferParameter(target,pname)}Module["_emscripten_glGetRenderbufferParameteriv"]=_emscripten_glGetRenderbufferParameteriv;_emscripten_glGetRenderbufferParameteriv.sig="viii";function _emscripten_glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}Module["_emscripten_glGetShaderInfoLog"]=_emscripten_glGetShaderInfoLog;_emscripten_glGetShaderInfoLog.sig="viiii";function _emscripten_glGetShaderPrecisionFormat(shaderType,precisionType,range,precision){var result=GLctx.getShaderPrecisionFormat(shaderType,precisionType);HEAP32[range>>2]=result.rangeMin;HEAP32[range+4>>2]=result.rangeMax;HEAP32[precision>>2]=result.precision}Module["_emscripten_glGetShaderPrecisionFormat"]=_emscripten_glGetShaderPrecisionFormat;_emscripten_glGetShaderPrecisionFormat.sig="viiii";function _emscripten_glGetShaderSource(shader,bufSize,length,source){var result=GLctx.getShaderSource(GL.shaders[shader]);if(!result)return;var numBytesWrittenExclNull=bufSize>0&&source?stringToUTF8(result,source,bufSize):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}Module["_emscripten_glGetShaderSource"]=_emscripten_glGetShaderSource;_emscripten_glGetShaderSource.sig="viiii";function _emscripten_glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}Module["_emscripten_glGetShaderiv"]=_emscripten_glGetShaderiv;_emscripten_glGetShaderiv.sig="viii";function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}Module["stringToNewUTF8"]=stringToNewUTF8;function _emscripten_glGetString(name_){var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret}Module["_emscripten_glGetString"]=_emscripten_glGetString;_emscripten_glGetString.sig="ii";function _emscripten_glGetTexParameterfv(target,pname,params){if(!params){GL.recordError(1281);return}HEAPF32[params>>2]=GLctx.getTexParameter(target,pname)}Module["_emscripten_glGetTexParameterfv"]=_emscripten_glGetTexParameterfv;_emscripten_glGetTexParameterfv.sig="viii";function _emscripten_glGetTexParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getTexParameter(target,pname)}Module["_emscripten_glGetTexParameteriv"]=_emscripten_glGetTexParameteriv;_emscripten_glGetTexParameteriv.sig="viii";function webglGetLeftBracePos(name){return name.slice(-1)=="]"&&name.lastIndexOf("[")}Module["webglGetLeftBracePos"]=webglGetLeftBracePos;function webglPrepareUniformLocationsBeforeFirstUse(program){var uniformLocsById=program.uniformLocsById,uniformSizeAndIdsByName=program.uniformSizeAndIdsByName,i,j;if(!uniformLocsById){program.uniformLocsById=uniformLocsById={};program.uniformArrayNamesById={};for(i=0;i0?nm.slice(0,lb):nm;var id=program.uniformIdCounter;program.uniformIdCounter+=sz;uniformSizeAndIdsByName[arrayName]=[sz,id];for(j=0;j0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex0?"["+webglLoc+"]":""))}return webglLoc}else{GL.recordError(1282)}}Module["webglGetUniformLocation"]=webglGetUniformLocation;function emscriptenWebGLGetUniform(program,location,params,type){if(!params){GL.recordError(1281);return}program=GL.programs[program];webglPrepareUniformLocationsBeforeFirstUse(program);var data=GLctx.getUniform(program,webglGetUniformLocation(location));if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break}}}}Module["emscriptenWebGLGetUniform"]=emscriptenWebGLGetUniform;function _emscripten_glGetUniformfv(program,location,params){emscriptenWebGLGetUniform(program,location,params,2)}Module["_emscripten_glGetUniformfv"]=_emscripten_glGetUniformfv;_emscripten_glGetUniformfv.sig="viii";function _emscripten_glGetUniformiv(program,location,params){emscriptenWebGLGetUniform(program,location,params,0)}Module["_emscripten_glGetUniformiv"]=_emscripten_glGetUniformiv;_emscripten_glGetUniformiv.sig="viii";function _emscripten_glGetVertexAttribPointerv(index,pname,pointer){if(!pointer){GL.recordError(1281);return}HEAP32[pointer>>2]=GLctx.getVertexAttribOffset(index,pname)}Module["_emscripten_glGetVertexAttribPointerv"]=_emscripten_glGetVertexAttribPointerv;_emscripten_glGetVertexAttribPointerv.sig="viii";function emscriptenWebGLGetVertexAttrib(index,pname,params,type){if(!params){GL.recordError(1281);return}var data=GLctx.getVertexAttrib(index,pname);if(pname==34975){HEAP32[params>>2]=data&&data["name"]}else if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break;case 5:HEAP32[params>>2]=Math.fround(data);break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break;case 5:HEAP32[params+i*4>>2]=Math.fround(data[i]);break}}}}Module["emscriptenWebGLGetVertexAttrib"]=emscriptenWebGLGetVertexAttrib;function _emscripten_glGetVertexAttribfv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,2)}Module["_emscripten_glGetVertexAttribfv"]=_emscripten_glGetVertexAttribfv;_emscripten_glGetVertexAttribfv.sig="viii";function _emscripten_glGetVertexAttribiv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,5)}Module["_emscripten_glGetVertexAttribiv"]=_emscripten_glGetVertexAttribiv;_emscripten_glGetVertexAttribiv.sig="viii";function _emscripten_glHint(x0,x1){GLctx["hint"](x0,x1)}Module["_emscripten_glHint"]=_emscripten_glHint;_emscripten_glHint.sig="vii";function _emscripten_glIsBuffer(buffer){var b=GL.buffers[buffer];if(!b)return 0;return GLctx.isBuffer(b)}Module["_emscripten_glIsBuffer"]=_emscripten_glIsBuffer;_emscripten_glIsBuffer.sig="ii";function _emscripten_glIsEnabled(x0){return GLctx["isEnabled"](x0)}Module["_emscripten_glIsEnabled"]=_emscripten_glIsEnabled;_emscripten_glIsEnabled.sig="ii";function _emscripten_glIsFramebuffer(framebuffer){var fb=GL.framebuffers[framebuffer];if(!fb)return 0;return GLctx.isFramebuffer(fb)}Module["_emscripten_glIsFramebuffer"]=_emscripten_glIsFramebuffer;_emscripten_glIsFramebuffer.sig="ii";function _emscripten_glIsProgram(program){program=GL.programs[program];if(!program)return 0;return GLctx.isProgram(program)}Module["_emscripten_glIsProgram"]=_emscripten_glIsProgram;_emscripten_glIsProgram.sig="ii";function _emscripten_glIsQueryEXT(id){var query=GL.queries[id];if(!query)return 0;return GLctx.disjointTimerQueryExt["isQueryEXT"](query)}Module["_emscripten_glIsQueryEXT"]=_emscripten_glIsQueryEXT;_emscripten_glIsQueryEXT.sig="ii";function _emscripten_glIsRenderbuffer(renderbuffer){var rb=GL.renderbuffers[renderbuffer];if(!rb)return 0;return GLctx.isRenderbuffer(rb)}Module["_emscripten_glIsRenderbuffer"]=_emscripten_glIsRenderbuffer;_emscripten_glIsRenderbuffer.sig="ii";function _emscripten_glIsShader(shader){var s=GL.shaders[shader];if(!s)return 0;return GLctx.isShader(s)}Module["_emscripten_glIsShader"]=_emscripten_glIsShader;_emscripten_glIsShader.sig="ii";function _emscripten_glIsTexture(id){var texture=GL.textures[id];if(!texture)return 0;return GLctx.isTexture(texture)}Module["_emscripten_glIsTexture"]=_emscripten_glIsTexture;_emscripten_glIsTexture.sig="ii";function _emscripten_glIsVertexArrayOES(array){var vao=GL.vaos[array];if(!vao)return 0;return GLctx["isVertexArray"](vao)}Module["_emscripten_glIsVertexArrayOES"]=_emscripten_glIsVertexArrayOES;_emscripten_glIsVertexArrayOES.sig="ii";function _emscripten_glLineWidth(x0){GLctx["lineWidth"](x0)}Module["_emscripten_glLineWidth"]=_emscripten_glLineWidth;_emscripten_glLineWidth.sig="vf";function _emscripten_glLinkProgram(program){program=GL.programs[program];GLctx.linkProgram(program);program.uniformLocsById=0;program.uniformSizeAndIdsByName={}}Module["_emscripten_glLinkProgram"]=_emscripten_glLinkProgram;_emscripten_glLinkProgram.sig="vi";function _emscripten_glPixelStorei(pname,param){if(pname==3317){GL.unpackAlignment=param}GLctx.pixelStorei(pname,param)}Module["_emscripten_glPixelStorei"]=_emscripten_glPixelStorei;_emscripten_glPixelStorei.sig="vii";function _emscripten_glPolygonOffset(x0,x1){GLctx["polygonOffset"](x0,x1)}Module["_emscripten_glPolygonOffset"]=_emscripten_glPolygonOffset;_emscripten_glPolygonOffset.sig="vff";function _emscripten_glQueryCounterEXT(id,target){GLctx.disjointTimerQueryExt["queryCounterEXT"](GL.queries[id],target)}Module["_emscripten_glQueryCounterEXT"]=_emscripten_glQueryCounterEXT;_emscripten_glQueryCounterEXT.sig="vii";function computeUnpackAlignedImageSize(width,height,sizePerPixel,alignment){function roundedToNextMultipleOf(x,y){return x+y-1&-y}var plainRowSize=width*sizePerPixel;var alignedRowSize=roundedToNextMultipleOf(plainRowSize,alignment);return height*alignedRowSize}Module["computeUnpackAlignedImageSize"]=computeUnpackAlignedImageSize;function __colorChannelsInGlTextureFormat(format){var colorChannels={5:3,6:4,8:2,29502:3,29504:4};return colorChannels[format-6402]||1}Module["__colorChannelsInGlTextureFormat"]=__colorChannelsInGlTextureFormat;function heapObjectForWebGLType(type){type-=5120;if(type==1)return HEAPU8;if(type==4)return HEAP32;if(type==6)return HEAPF32;if(type==5||type==28922)return HEAPU32;return HEAPU16}Module["heapObjectForWebGLType"]=heapObjectForWebGLType;function heapAccessShiftForWebGLHeap(heap){return 31-Math.clz32(heap.BYTES_PER_ELEMENT)}Module["heapAccessShiftForWebGLHeap"]=heapAccessShiftForWebGLHeap;function emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat){var heap=heapObjectForWebGLType(type);var shift=heapAccessShiftForWebGLHeap(heap);var byteSize=1<>shift,pixels+bytes>>shift)}Module["emscriptenWebGLGetTexPixelData"]=emscriptenWebGLGetTexPixelData;function _emscripten_glReadPixels(x,y,width,height,format,type,pixels){var pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,format);if(!pixelData){GL.recordError(1280);return}GLctx.readPixels(x,y,width,height,format,type,pixelData)}Module["_emscripten_glReadPixels"]=_emscripten_glReadPixels;_emscripten_glReadPixels.sig="viiiiiii";function _emscripten_glReleaseShaderCompiler(){}Module["_emscripten_glReleaseShaderCompiler"]=_emscripten_glReleaseShaderCompiler;_emscripten_glReleaseShaderCompiler.sig="v";function _emscripten_glRenderbufferStorage(x0,x1,x2,x3){GLctx["renderbufferStorage"](x0,x1,x2,x3)}Module["_emscripten_glRenderbufferStorage"]=_emscripten_glRenderbufferStorage;_emscripten_glRenderbufferStorage.sig="viiii";function _emscripten_glSampleCoverage(value,invert){GLctx.sampleCoverage(value,!!invert)}Module["_emscripten_glSampleCoverage"]=_emscripten_glSampleCoverage;_emscripten_glSampleCoverage.sig="vii";function _emscripten_glScissor(x0,x1,x2,x3){GLctx["scissor"](x0,x1,x2,x3)}Module["_emscripten_glScissor"]=_emscripten_glScissor;_emscripten_glScissor.sig="viiii";function _emscripten_glShaderBinary(){GL.recordError(1280)}Module["_emscripten_glShaderBinary"]=_emscripten_glShaderBinary;_emscripten_glShaderBinary.sig="v";function _emscripten_glShaderSource(shader,count,string,length){var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)}Module["_emscripten_glShaderSource"]=_emscripten_glShaderSource;_emscripten_glShaderSource.sig="viiii";function _emscripten_glStencilFunc(x0,x1,x2){GLctx["stencilFunc"](x0,x1,x2)}Module["_emscripten_glStencilFunc"]=_emscripten_glStencilFunc;_emscripten_glStencilFunc.sig="viii";function _emscripten_glStencilFuncSeparate(x0,x1,x2,x3){GLctx["stencilFuncSeparate"](x0,x1,x2,x3)}Module["_emscripten_glStencilFuncSeparate"]=_emscripten_glStencilFuncSeparate;_emscripten_glStencilFuncSeparate.sig="viiii";function _emscripten_glStencilMask(x0){GLctx["stencilMask"](x0)}Module["_emscripten_glStencilMask"]=_emscripten_glStencilMask;_emscripten_glStencilMask.sig="vi";function _emscripten_glStencilMaskSeparate(x0,x1){GLctx["stencilMaskSeparate"](x0,x1)}Module["_emscripten_glStencilMaskSeparate"]=_emscripten_glStencilMaskSeparate;_emscripten_glStencilMaskSeparate.sig="vii";function _emscripten_glStencilOp(x0,x1,x2){GLctx["stencilOp"](x0,x1,x2)}Module["_emscripten_glStencilOp"]=_emscripten_glStencilOp;_emscripten_glStencilOp.sig="viii";function _emscripten_glStencilOpSeparate(x0,x1,x2,x3){GLctx["stencilOpSeparate"](x0,x1,x2,x3)}Module["_emscripten_glStencilOpSeparate"]=_emscripten_glStencilOpSeparate;_emscripten_glStencilOpSeparate.sig="viiii";function _emscripten_glTexImage2D(target,level,internalFormat,width,height,border,format,type,pixels){GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat):null)}Module["_emscripten_glTexImage2D"]=_emscripten_glTexImage2D;_emscripten_glTexImage2D.sig="viiiiiiiii";function _emscripten_glTexParameterf(x0,x1,x2){GLctx["texParameterf"](x0,x1,x2)}Module["_emscripten_glTexParameterf"]=_emscripten_glTexParameterf;_emscripten_glTexParameterf.sig="viii";function _emscripten_glTexParameterfv(target,pname,params){var param=HEAPF32[params>>2];GLctx.texParameterf(target,pname,param)}Module["_emscripten_glTexParameterfv"]=_emscripten_glTexParameterfv;_emscripten_glTexParameterfv.sig="viii";function _emscripten_glTexParameteri(x0,x1,x2){GLctx["texParameteri"](x0,x1,x2)}Module["_emscripten_glTexParameteri"]=_emscripten_glTexParameteri;_emscripten_glTexParameteri.sig="viii";function _emscripten_glTexParameteriv(target,pname,params){var param=HEAP32[params>>2];GLctx.texParameteri(target,pname,param)}Module["_emscripten_glTexParameteriv"]=_emscripten_glTexParameteriv;_emscripten_glTexParameteriv.sig="viii";function _emscripten_glTexSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels){var pixelData=null;if(pixels)pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,0);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixelData)}Module["_emscripten_glTexSubImage2D"]=_emscripten_glTexSubImage2D;_emscripten_glTexSubImage2D.sig="viiiiiiiii";function _emscripten_glUniform1f(location,v0){GLctx.uniform1f(webglGetUniformLocation(location),v0)}Module["_emscripten_glUniform1f"]=_emscripten_glUniform1f;_emscripten_glUniform1f.sig="vif";var miniTempWebGLFloatBuffers=[];Module["miniTempWebGLFloatBuffers"]=miniTempWebGLFloatBuffers;function _emscripten_glUniform1fv(location,count,value){if(count<=288){var view=miniTempWebGLFloatBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1fv(webglGetUniformLocation(location),view)}Module["_emscripten_glUniform1fv"]=_emscripten_glUniform1fv;_emscripten_glUniform1fv.sig="viii";function _emscripten_glUniform1i(location,v0){GLctx.uniform1i(webglGetUniformLocation(location),v0)}Module["_emscripten_glUniform1i"]=_emscripten_glUniform1i;_emscripten_glUniform1i.sig="vii";var __miniTempWebGLIntBuffers=[];Module["__miniTempWebGLIntBuffers"]=__miniTempWebGLIntBuffers;function _emscripten_glUniform1iv(location,count,value){if(count<=288){var view=__miniTempWebGLIntBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAP32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1iv(webglGetUniformLocation(location),view)}Module["_emscripten_glUniform1iv"]=_emscripten_glUniform1iv;_emscripten_glUniform1iv.sig="viii";function _emscripten_glUniform2f(location,v0,v1){GLctx.uniform2f(webglGetUniformLocation(location),v0,v1)}Module["_emscripten_glUniform2f"]=_emscripten_glUniform2f;_emscripten_glUniform2f.sig="viff";function _emscripten_glUniform2fv(location,count,value){if(count<=144){var view=miniTempWebGLFloatBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2fv(webglGetUniformLocation(location),view)}Module["_emscripten_glUniform2fv"]=_emscripten_glUniform2fv;_emscripten_glUniform2fv.sig="viii";function _emscripten_glUniform2i(location,v0,v1){GLctx.uniform2i(webglGetUniformLocation(location),v0,v1)}Module["_emscripten_glUniform2i"]=_emscripten_glUniform2i;_emscripten_glUniform2i.sig="viii";function _emscripten_glUniform2iv(location,count,value){if(count<=144){var view=__miniTempWebGLIntBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2iv(webglGetUniformLocation(location),view)}Module["_emscripten_glUniform2iv"]=_emscripten_glUniform2iv;_emscripten_glUniform2iv.sig="viii";function _emscripten_glUniform3f(location,v0,v1,v2){GLctx.uniform3f(webglGetUniformLocation(location),v0,v1,v2)}Module["_emscripten_glUniform3f"]=_emscripten_glUniform3f;_emscripten_glUniform3f.sig="vifff";function _emscripten_glUniform3fv(location,count,value){if(count<=96){var view=miniTempWebGLFloatBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3fv(webglGetUniformLocation(location),view)}Module["_emscripten_glUniform3fv"]=_emscripten_glUniform3fv;_emscripten_glUniform3fv.sig="viii";function _emscripten_glUniform3i(location,v0,v1,v2){GLctx.uniform3i(webglGetUniformLocation(location),v0,v1,v2)}Module["_emscripten_glUniform3i"]=_emscripten_glUniform3i;_emscripten_glUniform3i.sig="viiii";function _emscripten_glUniform3iv(location,count,value){if(count<=96){var view=__miniTempWebGLIntBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3iv(webglGetUniformLocation(location),view)}Module["_emscripten_glUniform3iv"]=_emscripten_glUniform3iv;_emscripten_glUniform3iv.sig="viii";function _emscripten_glUniform4f(location,v0,v1,v2,v3){GLctx.uniform4f(webglGetUniformLocation(location),v0,v1,v2,v3)}Module["_emscripten_glUniform4f"]=_emscripten_glUniform4f;_emscripten_glUniform4f.sig="viffff";function _emscripten_glUniform4fv(location,count,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<4*count;i+=4){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4fv(webglGetUniformLocation(location),view)}Module["_emscripten_glUniform4fv"]=_emscripten_glUniform4fv;_emscripten_glUniform4fv.sig="viii";function _emscripten_glUniform4i(location,v0,v1,v2,v3){GLctx.uniform4i(webglGetUniformLocation(location),v0,v1,v2,v3)}Module["_emscripten_glUniform4i"]=_emscripten_glUniform4i;_emscripten_glUniform4i.sig="viiiii";function _emscripten_glUniform4iv(location,count,value){if(count<=72){var view=__miniTempWebGLIntBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2];view[i+3]=HEAP32[value+(4*i+12)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4iv(webglGetUniformLocation(location),view)}Module["_emscripten_glUniform4iv"]=_emscripten_glUniform4iv;_emscripten_glUniform4iv.sig="viii";function _emscripten_glUniformMatrix2fv(location,count,transpose,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniformMatrix2fv(webglGetUniformLocation(location),!!transpose,view)}Module["_emscripten_glUniformMatrix2fv"]=_emscripten_glUniformMatrix2fv;_emscripten_glUniformMatrix2fv.sig="viiii";function _emscripten_glUniformMatrix3fv(location,count,transpose,value){if(count<=32){var view=miniTempWebGLFloatBuffers[9*count-1];for(var i=0;i<9*count;i+=9){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2];view[i+4]=HEAPF32[value+(4*i+16)>>2];view[i+5]=HEAPF32[value+(4*i+20)>>2];view[i+6]=HEAPF32[value+(4*i+24)>>2];view[i+7]=HEAPF32[value+(4*i+28)>>2];view[i+8]=HEAPF32[value+(4*i+32)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*36>>2)}GLctx.uniformMatrix3fv(webglGetUniformLocation(location),!!transpose,view)}Module["_emscripten_glUniformMatrix3fv"]=_emscripten_glUniformMatrix3fv;_emscripten_glUniformMatrix3fv.sig="viiii";function _emscripten_glUniformMatrix4fv(location,count,transpose,value){if(count<=18){var view=miniTempWebGLFloatBuffers[16*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)}Module["_emscripten_glUniformMatrix4fv"]=_emscripten_glUniformMatrix4fv;_emscripten_glUniformMatrix4fv.sig="viiii";function _emscripten_glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}Module["_emscripten_glUseProgram"]=_emscripten_glUseProgram;_emscripten_glUseProgram.sig="vi";function _emscripten_glValidateProgram(program){GLctx.validateProgram(GL.programs[program])}Module["_emscripten_glValidateProgram"]=_emscripten_glValidateProgram;_emscripten_glValidateProgram.sig="vi";function _emscripten_glVertexAttrib1f(x0,x1){GLctx["vertexAttrib1f"](x0,x1)}Module["_emscripten_glVertexAttrib1f"]=_emscripten_glVertexAttrib1f;_emscripten_glVertexAttrib1f.sig="vif";function _emscripten_glVertexAttrib1fv(index,v){GLctx.vertexAttrib1f(index,HEAPF32[v>>2])}Module["_emscripten_glVertexAttrib1fv"]=_emscripten_glVertexAttrib1fv;_emscripten_glVertexAttrib1fv.sig="vii";function _emscripten_glVertexAttrib2f(x0,x1,x2){GLctx["vertexAttrib2f"](x0,x1,x2)}Module["_emscripten_glVertexAttrib2f"]=_emscripten_glVertexAttrib2f;_emscripten_glVertexAttrib2f.sig="viff";function _emscripten_glVertexAttrib2fv(index,v){GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])}Module["_emscripten_glVertexAttrib2fv"]=_emscripten_glVertexAttrib2fv;_emscripten_glVertexAttrib2fv.sig="vii";function _emscripten_glVertexAttrib3f(x0,x1,x2,x3){GLctx["vertexAttrib3f"](x0,x1,x2,x3)}Module["_emscripten_glVertexAttrib3f"]=_emscripten_glVertexAttrib3f;_emscripten_glVertexAttrib3f.sig="vifff";function _emscripten_glVertexAttrib3fv(index,v){GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])}Module["_emscripten_glVertexAttrib3fv"]=_emscripten_glVertexAttrib3fv;_emscripten_glVertexAttrib3fv.sig="vii";function _emscripten_glVertexAttrib4f(x0,x1,x2,x3,x4){GLctx["vertexAttrib4f"](x0,x1,x2,x3,x4)}Module["_emscripten_glVertexAttrib4f"]=_emscripten_glVertexAttrib4f;_emscripten_glVertexAttrib4f.sig="viffff";function _emscripten_glVertexAttrib4fv(index,v){GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])}Module["_emscripten_glVertexAttrib4fv"]=_emscripten_glVertexAttrib4fv;_emscripten_glVertexAttrib4fv.sig="vii";function _emscripten_glVertexAttribDivisorANGLE(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}Module["_emscripten_glVertexAttribDivisorANGLE"]=_emscripten_glVertexAttribDivisorANGLE;_emscripten_glVertexAttribDivisorANGLE.sig="vii";function _emscripten_glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}Module["_emscripten_glVertexAttribPointer"]=_emscripten_glVertexAttribPointer;_emscripten_glVertexAttribPointer.sig="viiiiii";function _emscripten_glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}Module["_emscripten_glViewport"]=_emscripten_glViewport;_emscripten_glViewport.sig="viiii";function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}Module["_emscripten_memcpy_big"]=_emscripten_memcpy_big;_emscripten_memcpy_big.sig="vppp";function HandleAllocator(){this.allocated=[];this.freelist=[];this.get=function(id){return this.allocated[id]};this.allocate=function(handle){let id;if(this.freelist.length>0){id=this.freelist.pop();this.allocated[id]=handle}else{id=this.allocated.length;this.allocated.push(handle)}return id};this.free=function(id){delete this.allocated[id];this.freelist.push(id)}}Module["HandleAllocator"]=HandleAllocator;var promiseMap=new HandleAllocator;Module["promiseMap"]=promiseMap;function makePromise(){var promiseInfo={};promiseInfo.promise=new Promise((resolve,reject)=>{promiseInfo.reject=reject;promiseInfo.resolve=resolve});promiseInfo.id=promiseMap.allocate(promiseInfo);return promiseInfo}Module["makePromise"]=makePromise;function _emscripten_promise_create(){return makePromise().id}Module["_emscripten_promise_create"]=_emscripten_promise_create;_emscripten_promise_create.sig="p";function _emscripten_promise_destroy(id){promiseMap.free(id)}Module["_emscripten_promise_destroy"]=_emscripten_promise_destroy;_emscripten_promise_destroy.sig="vp";function getPromise(id){return promiseMap.get(id).promise}Module["getPromise"]=getPromise;function _emscripten_promise_resolve(id,result,value){var info=promiseMap.get(id);switch(result){case 0:info.resolve(value);return;case 1:info.resolve(getPromise(value));return;case 2:info.resolve(getPromise(value));_emscripten_promise_destroy(value);return;case 3:info.reject(value);return}}Module["_emscripten_promise_resolve"]=_emscripten_promise_resolve;_emscripten_promise_resolve.sig="vpip";function emscripten_realloc_buffer(size){var b=wasmMemory.buffer;try{wasmMemory.grow(size-b.byteLength+65535>>>16);updateMemoryViews();return 1}catch(e){}}Module["emscripten_realloc_buffer"]=emscripten_realloc_buffer;function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}let alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}Module["_emscripten_resize_heap"]=_emscripten_resize_heap;_emscripten_resize_heap.sig="ip";function getExecutableName(){return thisProgram||"./this.program"}Module["getExecutableName"]=getExecutableName;function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}Module["getEnvStrings"]=getEnvStrings;function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}Module["writeAsciiToMemory"]=writeAsciiToMemory;function _environ_get(__environ,environ_buf){var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAPU32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}Module["_environ_get"]=_environ_get;_environ_get.sig="ipp";function _environ_sizes_get(penviron_count,penviron_buf_size){var strings=getEnvStrings();HEAPU32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAPU32[penviron_buf_size>>2]=bufSize;return 0}Module["_environ_sizes_get"]=_environ_sizes_get;_environ_sizes_get.sig="ipp";function _proc_exit(code){EXITSTATUS=code;if(!keepRuntimeAlive()){if(Module["onExit"])Module["onExit"](code);ABORT=true}quit_(code,new ExitStatus(code))}Module["_proc_exit"]=_proc_exit;_proc_exit.sig="vi";function exitJS(status,implicit){EXITSTATUS=status;_proc_exit(status)}Module["exitJS"]=exitJS;var _exit=exitJS;Module["_exit"]=_exit;_exit.sig="vi";function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}Module["_fd_close"]=_fd_close;_fd_close.sig="ii";function _fd_fdstat_get(fd,pbuf){try{var stream=SYSCALLS.getStreamFromFD(fd);var type=stream.tty?2:FS.isDir(stream.mode)?3:FS.isLink(stream.mode)?7:4;HEAP8[pbuf>>0]=type;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}Module["_fd_fdstat_get"]=_fd_fdstat_get;_fd_fdstat_get.sig="iip";function doReadv(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}Module["_fd_pread"]=_fd_pread;_fd_pread.sig="iippjp";function doWritev(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(typeof offset!=="undefined"){offset+=curr}}return ret}Module["doWritev"]=doWritev;function _fd_pwrite(fd,iov,iovcnt,offset,pnum){try{offset=bigintToI53Checked(offset);if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);var num=doWritev(stream,iov,iovcnt,offset);HEAPU32[pnum>>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}Module["_fd_pwrite"]=_fd_pwrite;_fd_pwrite.sig="iippjp";function _fd_read(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doReadv(stream,iov,iovcnt);HEAPU32[pnum>>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}Module["_fd_read"]=_fd_read;_fd_read.sig="iippp";function _fd_seek(fd,offset,whence,newOffset){try{offset=bigintToI53Checked(offset);if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}Module["_fd_seek"]=_fd_seek;_fd_seek.sig="iijip";function _fd_sync(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);if(stream.stream_ops&&stream.stream_ops.fsync){return stream.stream_ops.fsync(stream)}return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}Module["_fd_sync"]=_fd_sync;_fd_sync.sig="ii";function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doWritev(stream,iov,iovcnt);HEAPU32[pnum>>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}Module["_fd_write"]=_fd_write;_fd_write.sig="iippp";function _getaddrinfo(node,service,hint,out){var addrs=[];var canon=null;var addr=0;var port=0;var flags=0;var family=0;var type=0;var proto=0;var ai,last;function allocaddrinfo(family,type,proto,canon,addr,port){var sa,salen,ai;var errno;salen=family===10?28:16;addr=family===10?inetNtop6(addr):inetNtop4(addr);sa=_malloc(salen);errno=writeSockaddr(sa,family,addr,port);assert(!errno);ai=_malloc(32);HEAP32[ai+4>>2]=family;HEAP32[ai+8>>2]=type;HEAP32[ai+12>>2]=proto;HEAP32[ai+24>>2]=canon;HEAPU32[ai+20>>2]=sa;if(family===10){HEAP32[ai+16>>2]=28}else{HEAP32[ai+16>>2]=16}HEAP32[ai+28>>2]=0;return ai}if(hint){flags=HEAP32[hint>>2];family=HEAP32[hint+4>>2];type=HEAP32[hint+8>>2];proto=HEAP32[hint+12>>2]}if(type&&!proto){proto=type===2?17:6}if(!type&&proto){type=proto===17?2:1}if(proto===0){proto=6}if(type===0){type=1}if(!node&&!service){return-2}if(flags&~(1|2|4|1024|8|16|32)){return-1}if(hint!==0&&HEAP32[hint>>2]&2&&!node){return-1}if(flags&32){return-2}if(type!==0&&type!==1&&type!==2){return-7}if(family!==0&&family!==2&&family!==10){return-6}if(service){service=UTF8ToString(service);port=parseInt(service,10);if(isNaN(port)){if(flags&1024){return-2}return-8}}if(!node){if(family===0){family=2}if((flags&1)===0){if(family===2){addr=_htonl(2130706433)}else{addr=[0,0,0,1]}}ai=allocaddrinfo(family,type,proto,null,addr,port);HEAPU32[out>>2]=ai;return 0}node=UTF8ToString(node);addr=inetPton4(node);if(addr!==null){if(family===0||family===2){family=2}else if(family===10&&flags&8){addr=[0,0,_htonl(65535),addr];family=10}else{return-2}}else{addr=inetPton6(node);if(addr!==null){if(family===0||family===10){family=10}else{return-2}}}if(addr!=null){ai=allocaddrinfo(family,type,proto,node,addr,port);HEAPU32[out>>2]=ai;return 0}if(flags&4){return-2}node=DNS.lookup_name(node);addr=inetPton4(node);if(family===0){family=2}else if(family===10){addr=[0,0,_htonl(65535),addr]}ai=allocaddrinfo(family,type,proto,null,addr,port);HEAPU32[out>>2]=ai;return 0}Module["_getaddrinfo"]=_getaddrinfo;_getaddrinfo.sig="ipppp";function _getentropy(buffer,size){if(!_getentropy.randomDevice){_getentropy.randomDevice=getRandomDevice()}for(var i=0;i>0]=_getentropy.randomDevice()}return 0}Module["_getentropy"]=_getentropy;_getentropy.sig="ipp";function getHostByName(name){var ret=_malloc(20);var nameBuf=_malloc(name.length+1);stringToUTF8(name,nameBuf,name.length+1);HEAPU32[ret>>2]=nameBuf;var aliasesBuf=_malloc(4);HEAPU32[aliasesBuf>>2]=0;HEAPU32[ret+4>>2]=aliasesBuf;var afinet=2;HEAP32[ret+8>>2]=afinet;HEAP32[ret+12>>2]=4;var addrListBuf=_malloc(12);HEAPU32[addrListBuf>>2]=addrListBuf+8;HEAPU32[addrListBuf+4>>2]=0;HEAP32[addrListBuf+8>>2]=inetPton4(DNS.lookup_name(name));HEAPU32[ret+16>>2]=addrListBuf;return ret}Module["getHostByName"]=getHostByName;function _gethostbyaddr(addr,addrlen,type){if(type!==2){setErrNo(5);return null}addr=HEAP32[addr>>2];var host=inetNtop4(addr);var lookup=DNS.lookup_addr(host);if(lookup){host=lookup}return getHostByName(host)}Module["_gethostbyaddr"]=_gethostbyaddr;_gethostbyaddr.sig="ipii";function _gethostbyname(name){return getHostByName(UTF8ToString(name))}Module["_gethostbyname"]=_gethostbyname;_gethostbyname.sig="pp";function _getloadavg(loadavg,nelem){var limit=Math.min(nelem,3);var doubleSize=8;for(var i=0;i>3]=.1}return limit}Module["_getloadavg"]=_getloadavg;_getloadavg.sig="ipi";function _getnameinfo(sa,salen,node,nodelen,serv,servlen,flags){var info=readSockaddr(sa,salen);if(info.errno){return-6}var port=info.port;var addr=info.addr;var overflowed=false;if(node&&nodelen){var lookup;if(flags&1||!(lookup=DNS.lookup_addr(addr))){if(flags&8){return-2}}else{addr=lookup}var numBytesWrittenExclNull=stringToUTF8(addr,node,nodelen);if(numBytesWrittenExclNull+1>=nodelen){overflowed=true}}if(serv&&servlen){port=""+port;var numBytesWrittenExclNull=stringToUTF8(port,serv,servlen);if(numBytesWrittenExclNull+1>=servlen){overflowed=true}}if(overflowed){return-12}return 0}Module["_getnameinfo"]=_getnameinfo;_getnameinfo.sig="ipipipii";var Protocols={list:[],map:{}};Module["Protocols"]=Protocols;function _setprotoent(stayopen){function allocprotoent(name,proto,aliases){var nameBuf=_malloc(name.length+1);writeAsciiToMemory(name,nameBuf);var j=0;var length=aliases.length;var aliasListBuf=_malloc((length+1)*4);for(var i=0;i>2]=aliasBuf}HEAPU32[aliasListBuf+j>>2]=0;var pe=_malloc(12);HEAPU32[pe>>2]=nameBuf;HEAPU32[pe+4>>2]=aliasListBuf;HEAP32[pe+8>>2]=proto;return pe}var list=Protocols.list;var map=Protocols.map;if(list.length===0){var entry=allocprotoent("tcp",6,["TCP"]);list.push(entry);map["tcp"]=map["6"]=entry;entry=allocprotoent("udp",17,["UDP"]);list.push(entry);map["udp"]=map["17"]=entry}_setprotoent.index=0}Module["_setprotoent"]=_setprotoent;function _getprotobyname(name){name=UTF8ToString(name);_setprotoent(true);var result=Protocols.map[name];return result}Module["_getprotobyname"]=_getprotobyname;function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}Module["__arraySum"]=__arraySum;var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];Module["__MONTH_DAYS_LEAP"]=__MONTH_DAYS_LEAP;var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];Module["__MONTH_DAYS_REGULAR"]=__MONTH_DAYS_REGULAR;function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}Module["__addDays"]=__addDays;function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}Module["writeArrayToMemory"]=writeArrayToMemory;function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value=="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}return thisDate.getFullYear()}return thisDate.getFullYear()-1}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}return"PM"},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var days=date.tm_yday+7-date.tm_wday;return leadingNulls(Math.floor(days/7),2)},"%V":function(date){var val=Math.floor((date.tm_yday+7-(date.tm_wday+6)%7)/7);if((date.tm_wday+371-date.tm_yday-2)%7<=2){val++}if(!val){val=52;var dec31=(date.tm_wday+7-date.tm_yday-1)%7;if(dec31==4||dec31==5&&__isLeapYear(date.tm_year%400-1)){val++}}else if(val==53){var jan1=(date.tm_wday+371-date.tm_yday)%7;if(jan1!=4&&(jan1!=3||!__isLeapYear(date.tm_year)))val=1}return leadingNulls(val,2)},"%w":function(date){return date.tm_wday},"%W":function(date){var days=date.tm_yday+7-(date.tm_wday+6)%7;return leadingNulls(Math.floor(days/7),2)},"%y":function(date){return(date.tm_year+1900).toString().substring(2)},"%Y":function(date){return date.tm_year+1900},"%z":function(date){var off=date.tm_gmtoff;var ahead=off>=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};pattern=pattern.replace(/%%/g,"\0\0");for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}pattern=pattern.replace(/\0\0/g,"%");var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}Module["_strftime"]=_strftime;_strftime.sig="ppppp";function _strftime_l(s,maxsize,format,tm,loc){return _strftime(s,maxsize,format,tm)}Module["_strftime_l"]=_strftime_l;_strftime_l.sig="pppppp";function _system(command){if(ENVIRONMENT_IS_NODE){if(!command)return 1;var cmdstr=UTF8ToString(command);if(!cmdstr.length)return 0;var cp=require("child_process");var ret=cp.spawnSync(cmdstr,[],{shell:true,stdio:"inherit"});var _W_EXITCODE=(ret,sig)=>ret<<8|sig;if(ret.status===null){var signalToNumber=sig=>{switch(sig){case"SIGHUP":return 1;case"SIGINT":return 2;case"SIGQUIT":return 3;case"SIGFPE":return 8;case"SIGKILL":return 9;case"SIGALRM":return 14;case"SIGTERM":return 15}return 2};return _W_EXITCODE(0,signalToNumber(ret.signal))}return _W_EXITCODE(ret.status,0)}if(!command)return 0;setErrNo(52);return-1}Module["_system"]=_system;_system.sig="ip";function ptrToString(ptr){return"0x"+ptr.toString(16).padStart(8,"0")}Module["ptrToString"]=ptrToString;function _emscripten_notify_memory_growth(memoryIndex){updateMemoryViews()}Module["_emscripten_notify_memory_growth"]=_emscripten_notify_memory_growth;function ___asctime_r(tmPtr,buf){var date={tm_sec:HEAP32[tmPtr>>2],tm_min:HEAP32[tmPtr+4>>2],tm_hour:HEAP32[tmPtr+8>>2],tm_mday:HEAP32[tmPtr+12>>2],tm_mon:HEAP32[tmPtr+16>>2],tm_year:HEAP32[tmPtr+20>>2],tm_wday:HEAP32[tmPtr+24>>2]};var days=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];var months=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];var s=days[date.tm_wday]+" "+months[date.tm_mon]+(date.tm_mday<10?" ":" ")+date.tm_mday+(date.tm_hour<10?" 0":" ")+date.tm_hour+(date.tm_min<10?":0":":")+date.tm_min+(date.tm_sec<10?":0":":")+date.tm_sec+" "+(1900+date.tm_year)+"\n";stringToUTF8(s,buf,26);return buf}Module["___asctime_r"]=___asctime_r;___asctime_r.sig="ppp";function _strptime(buf,format,tm){var pattern=UTF8ToString(format);var SPECIAL_CHARS="\\!@#$^&*()+=-[]/{}|:<>?,.";for(var i=0,ii=SPECIAL_CHARS.length;i=0;i=pattern.indexOf("%")){capture.push(pattern[i+1]);pattern=pattern.replace(new RegExp("\\%"+pattern[i+1],"g"),"")}var matches=new RegExp("^"+pattern,"i").exec(UTF8ToString(buf));function initDate(){function fixup(value,min,max){return typeof value!="number"||isNaN(value)?min:value>=min?value<=max?value:max:min}return{year:fixup(HEAP32[tm+20>>2]+1900,1970,9999),month:fixup(HEAP32[tm+16>>2],0,11),day:fixup(HEAP32[tm+12>>2],1,31),hour:fixup(HEAP32[tm+8>>2],0,23),min:fixup(HEAP32[tm+4>>2],0,59),sec:fixup(HEAP32[tm>>2],0,59)}}if(matches){var date=initDate();var value;var getMatch=symbol=>{var pos=capture.indexOf(symbol);if(pos>=0){return matches[pos+1]}return};if(value=getMatch("S")){date.sec=jstoi_q(value)}if(value=getMatch("M")){date.min=jstoi_q(value)}if(value=getMatch("H")){date.hour=jstoi_q(value)}else if(value=getMatch("I")){var hour=jstoi_q(value);if(value=getMatch("p")){hour+=value.toUpperCase()[0]==="P"?12:0}date.hour=hour}if(value=getMatch("Y")){date.year=jstoi_q(value)}else if(value=getMatch("y")){var year=jstoi_q(value);if(value=getMatch("C")){year+=jstoi_q(value)*100}else{year+=year<69?2e3:1900}date.year=year}if(value=getMatch("m")){date.month=jstoi_q(value)-1}else if(value=getMatch("b")){date.month=MONTH_NUMBERS[value.substring(0,3).toUpperCase()]||0}if(value=getMatch("d")){date.day=jstoi_q(value)}else if(value=getMatch("j")){var day=jstoi_q(value);var leapYear=__isLeapYear(date.year);for(var month=0;month<12;++month){var daysUntilMonth=__arraySum(leapYear?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,month-1);if(day<=daysUntilMonth+(leapYear?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[month]){date.day=day-daysUntilMonth}}}else if(value=getMatch("a")){var weekDay=value.substring(0,3).toUpperCase();if(value=getMatch("U")){var weekDayNumber=DAY_NUMBERS_SUN_FIRST[weekDay];var weekNumber=jstoi_q(value);var janFirst=new Date(date.year,0,1);var endDate;if(janFirst.getDay()===0){endDate=__addDays(janFirst,weekDayNumber+7*(weekNumber-1))}else{endDate=__addDays(janFirst,7-janFirst.getDay()+weekDayNumber+7*(weekNumber-1))}date.day=endDate.getDate();date.month=endDate.getMonth()}else if(value=getMatch("W")){var weekDayNumber=DAY_NUMBERS_MON_FIRST[weekDay];var weekNumber=jstoi_q(value);var janFirst=new Date(date.year,0,1);var endDate;if(janFirst.getDay()===1){endDate=__addDays(janFirst,weekDayNumber+7*(weekNumber-1))}else{endDate=__addDays(janFirst,7-janFirst.getDay()+1+weekDayNumber+7*(weekNumber-1))}date.day=endDate.getDate();date.month=endDate.getMonth()}}var fullDate=new Date(date.year,date.month,date.day,date.hour,date.min,date.sec,0);HEAP32[tm>>2]=fullDate.getSeconds();HEAP32[tm+4>>2]=fullDate.getMinutes();HEAP32[tm+8>>2]=fullDate.getHours();HEAP32[tm+12>>2]=fullDate.getDate();HEAP32[tm+16>>2]=fullDate.getMonth();HEAP32[tm+20>>2]=fullDate.getFullYear()-1900;HEAP32[tm+24>>2]=fullDate.getDay();HEAP32[tm+28>>2]=__arraySum(__isLeapYear(fullDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,fullDate.getMonth()-1)+fullDate.getDate()-1;HEAP32[tm+32>>2]=0;return buf+intArrayFromString(matches[0]).length-1}return 0}Module["_strptime"]=_strptime;_strptime.sig="pppp";function _strptime_l(buf,format,tm){return _strptime(buf,format,tm)}Module["_strptime_l"]=_strptime_l;_strptime_l.sig="pppp";var ERRNO_MESSAGES={0:"Success",1:"Arg list too long",2:"Permission denied",3:"Address already in use",4:"Address not available",5:"Address family not supported by protocol family",6:"No more processes",7:"Socket already connected",8:"Bad file number",9:"Trying to read unreadable message",10:"Mount device busy",11:"Operation canceled",12:"No children",13:"Connection aborted",14:"Connection refused",15:"Connection reset by peer",16:"File locking deadlock error",17:"Destination address required",18:"Math arg out of domain of func",19:"Quota exceeded",20:"File exists",21:"Bad address",22:"File too large",23:"Host is unreachable",24:"Identifier removed",25:"Illegal byte sequence",26:"Connection already in progress",27:"Interrupted system call",28:"Invalid argument",29:"I/O error",30:"Socket is already connected",31:"Is a directory",32:"Too many symbolic links",33:"Too many open files",34:"Too many links",35:"Message too long",36:"Multihop attempted",37:"File or path name too long",38:"Network interface is not configured",39:"Connection reset by network",40:"Network is unreachable",41:"Too many open files in system",42:"No buffer space available",43:"No such device",44:"No such file or directory",45:"Exec format error",46:"No record locks available",47:"The link has been severed",48:"Not enough core",49:"No message of desired type",50:"Protocol not available",51:"No space left on device",52:"Function not implemented",53:"Socket is not connected",54:"Not a directory",55:"Directory not empty",56:"State not recoverable",57:"Socket operation on non-socket",59:"Not a typewriter",60:"No such device or address",61:"Value too large for defined data type",62:"Previous owner died",63:"Not super-user",64:"Broken pipe",65:"Protocol error",66:"Unknown protocol",67:"Protocol wrong type for socket",68:"Math result not representable",69:"Read only file system",70:"Illegal seek",71:"No such process",72:"Stale file handle",73:"Connection timed out",74:"Text file busy",75:"Cross-device link",100:"Device not a stream",101:"Bad font file fmt",102:"Invalid slot",103:"Invalid request code",104:"No anode",105:"Block device required",106:"Channel number out of range",107:"Level 3 halted",108:"Level 3 reset",109:"Link number out of range",110:"Protocol driver not attached",111:"No CSI structure available",112:"Level 2 halted",113:"Invalid exchange",114:"Invalid request descriptor",115:"Exchange full",116:"No data (for no delay io)",117:"Timer expired",118:"Out of streams resources",119:"Machine is not on the network",120:"Package not installed",121:"The object is remote",122:"Advertise error",123:"Srmount error",124:"Communication error on send",125:"Cross mount point (not really error)",126:"Given log. name not unique",127:"f.d. invalid for this operation",128:"Remote address changed",129:"Can access a needed shared lib",130:"Accessing a corrupted shared lib",131:".lib section in a.out corrupted",132:"Attempting to link in too many libs",133:"Attempting to exec a shared library",135:"Streams pipe error",136:"Too many users",137:"Socket type not supported",138:"Not supported",139:"Protocol family not supported",140:"Can't send after socket shutdown",141:"Too many references",142:"Host is down",148:"No medium (in tape drive)",156:"Level 2 not synchronized"};Module["ERRNO_MESSAGES"]=ERRNO_MESSAGES;function _gethostbyname_r(name,ret,buf,buflen,out,err){var data=_gethostbyname(name);_memcpy(ret,data,20);_free(data);HEAP32[err>>2]=0;HEAPU32[out>>2]=ret;return 0}Module["_gethostbyname_r"]=_gethostbyname_r;_gethostbyname_r.sig="ipppipp";function _endprotoent(){}Module["_endprotoent"]=_endprotoent;function _getprotoent(number){if(_setprotoent.index===Protocols.list.length){return 0}var result=Protocols.list[_setprotoent.index++];return result}Module["_getprotoent"]=_getprotoent;function _getprotobynumber(number){_setprotoent(true);var result=Protocols.map[number];return result}Module["_getprotobynumber"]=_getprotobynumber;function _emscripten_run_script(ptr){eval(UTF8ToString(ptr))}Module["_emscripten_run_script"]=_emscripten_run_script;_emscripten_run_script.sig="vp";function _emscripten_run_script_int(ptr){return eval(UTF8ToString(ptr))|0}Module["_emscripten_run_script_int"]=_emscripten_run_script_int;_emscripten_run_script_int.sig="ip";function _emscripten_run_script_string(ptr){var s=eval(UTF8ToString(ptr));if(s==null){return 0}s+="";var me=_emscripten_run_script_string;var len=lengthBytesUTF8(s);if(!me.bufferSize||me.bufferSize=4){symbolName=parts[1];file=parts[2];lineno=parts[3];column=parts[4]|0}else{callstack+=line+"\n";continue}}var haveSourceMap=false;if(flags&8){var orig=emscripten_source_map.originalPositionFor({line:lineno,column:column});haveSourceMap=orig&&orig.source;if(haveSourceMap){if(flags&64){orig.source=orig.source.substring(orig.source.replace(/\\/g,"/").lastIndexOf("/")+1)}callstack+=" at "+symbolName+" ("+orig.source+":"+orig.line+":"+orig.column+")\n"}}if(flags&16||!haveSourceMap){if(flags&64){file=file.substring(file.replace(/\\/g,"/").lastIndexOf("/")+1)}callstack+=(haveSourceMap?" = "+symbolName:" at "+symbolName)+" ("+file+":"+lineno+":"+column+")\n"}if(flags&128&&stack_args[0]){if(stack_args[1]==symbolName&&stack_args[2].length>0){callstack=callstack.replace(/\s+$/,"");callstack+=" with values: "+stack_args[1]+stack_args[2]+"\n"}stack_args=traverseStack(stack_args[0])}}callstack=callstack.replace(/\s+$/,"");return callstack}Module["_emscripten_get_callstack_js"]=_emscripten_get_callstack_js;function _emscripten_get_callstack(flags,str,maxbytes){var callstack=_emscripten_get_callstack_js(flags);if(!str||maxbytes<=0){return lengthBytesUTF8(callstack)+1}var bytesWrittenExcludingNull=stringToUTF8(callstack,str,maxbytes);return bytesWrittenExcludingNull+1}Module["_emscripten_get_callstack"]=_emscripten_get_callstack;function _emscripten_log_js(flags,str){if(flags&24){str=str.replace(/\s+$/,"");str+=(str.length>0?"\n":"")+_emscripten_get_callstack_js(flags)}if(flags&1){if(flags&4){console.error(str)}else if(flags&2){console.warn(str)}else if(flags&512){console.info(str)}else if(flags&256){console.debug(str)}else{console.log(str)}}else if(flags&6){err(str)}else{out(str)}}Module["_emscripten_log_js"]=_emscripten_log_js;function reallyNegative(x){return x<0||x===0&&1/x===-Infinity}Module["reallyNegative"]=reallyNegative;function convertI32PairToI53(lo,hi){return(lo>>>0)+hi*4294967296}Module["convertI32PairToI53"]=convertI32PairToI53;function convertU32PairToI53(lo,hi){return(lo>>>0)+(hi>>>0)*4294967296}Module["convertU32PairToI53"]=convertU32PairToI53;function reSign(value,bits){if(value<=0){return value}var half=bits<=32?Math.abs(1<=half&&(bits<=32||value>half)){value=-2*half+value}return value}Module["reSign"]=reSign;function unSign(value,bits){if(value>=0){return value}return bits<=32?2*Math.abs(1<>3];argIndex+=8}else if(type=="i64"){ret=[HEAP32[argIndex>>2],HEAP32[argIndex+4>>2]];argIndex+=8}else{type="i32";ret=HEAP32[argIndex>>2];argIndex+=4}return ret}var ret=[];var curr,next,currArg;while(1){var startTextIndex=textIndex;curr=HEAP8[textIndex>>0];if(curr===0)break;next=HEAP8[textIndex+1>>0];if(curr==37){var flagAlwaysSigned=false;var flagLeftAlign=false;var flagAlternative=false;var flagZeroPad=false;var flagPadSign=false;flagsLoop:while(1){switch(next){case 43:flagAlwaysSigned=true;break;case 45:flagLeftAlign=true;break;case 35:flagAlternative=true;break;case 48:if(flagZeroPad){break flagsLoop}else{flagZeroPad=true;break}case 32:flagPadSign=true;break;default:break flagsLoop}textIndex++;next=HEAP8[textIndex+1>>0]}var width=0;if(next==42){width=getNextArg("i32");textIndex++;next=HEAP8[textIndex+1>>0]}else{while(next>=48&&next<=57){width=width*10+(next-48);textIndex++;next=HEAP8[textIndex+1>>0]}}var precisionSet=false,precision=-1;if(next==46){precision=0;precisionSet=true;textIndex++;next=HEAP8[textIndex+1>>0];if(next==42){precision=getNextArg("i32");textIndex++}else{while(1){var precisionChr=HEAP8[textIndex+1>>0];if(precisionChr<48||precisionChr>57)break;precision=precision*10+(precisionChr-48);textIndex++}}next=HEAP8[textIndex+1>>0]}if(precision<0){precision=6;precisionSet=false}var argSize;switch(String.fromCharCode(next)){case"h":var nextNext=HEAP8[textIndex+2>>0];if(nextNext==104){textIndex++;argSize=1}else{argSize=2}break;case"l":var nextNext=HEAP8[textIndex+2>>0];if(nextNext==108){textIndex++;argSize=8}else{argSize=4}break;case"L":case"q":case"j":argSize=8;break;case"z":case"t":case"I":argSize=4;break;default:argSize=null}if(argSize)textIndex++;next=HEAP8[textIndex+1>>0];switch(String.fromCharCode(next)){case"d":case"i":case"u":case"o":case"x":case"X":case"p":{var signed=next==100||next==105;argSize=argSize||4;currArg=getNextArg("i"+argSize*8);var argText;if(argSize==8){currArg=next==117?convertU32PairToI53(currArg[0],currArg[1]):convertI32PairToI53(currArg[0],currArg[1])}if(argSize<=4){var limit=Math.pow(256,argSize)-1;currArg=(signed?reSign:unSign)(currArg&limit,argSize*8)}var currAbsArg=Math.abs(currArg);var prefix="";if(next==100||next==105){argText=reSign(currArg,8*argSize).toString(10)}else if(next==117){argText=unSign(currArg,8*argSize).toString(10);currArg=Math.abs(currArg)}else if(next==111){argText=(flagAlternative?"0":"")+currAbsArg.toString(8)}else if(next==120||next==88){prefix=flagAlternative&&currArg!=0?"0x":"";if(currArg<0){currArg=-currArg;argText=(currAbsArg-1).toString(16);var buffer=[];for(var i=0;i=0){if(flagAlwaysSigned){prefix="+"+prefix}else if(flagPadSign){prefix=" "+prefix}}if(argText.charAt(0)=="-"){prefix="-"+prefix;argText=argText.substr(1)}while(prefix.length+argText.lengthexponent&&exponent>=-4){next=(next==103?"f":"F").charCodeAt(0);precision-=exponent+1}else{next=(next==103?"e":"E").charCodeAt(0);precision--}effectivePrecision=Math.min(precision,20)}if(next==101||next==69){argText=currArg.toExponential(effectivePrecision);if(/[eE][-+]\d$/.test(argText)){argText=argText.slice(0,-1)+"0"+argText.slice(-1)}}else if(next==102||next==70){argText=currArg.toFixed(effectivePrecision);if(currArg===0&&reallyNegative(currArg)){argText="-"+argText}}var parts=argText.split("e");if(isGeneral&&!flagAlternative){while(parts[0].length>1&&parts[0].includes(".")&&(parts[0].slice(-1)=="0"||parts[0].slice(-1)==".")){parts[0]=parts[0].slice(0,-1)}}else{if(flagAlternative&&argText.indexOf(".")==-1)parts[0]+=".";while(precision>effectivePrecision++)parts[0]+="0"}argText=parts[0]+(parts.length>1?"e"+parts[1]:"");if(next==69)argText=argText.toUpperCase();if(currArg>=0){if(flagAlwaysSigned){argText="+"+argText}else if(flagPadSign){argText=" "+argText}}}while(argText.length>0])}}else{ret=ret.concat(intArrayFromString("(null)".substr(0,argLength),true))}if(flagLeftAlign){while(argLength0){ret.push(32)}if(!flagLeftAlign)ret.push(getNextArg("i8"));break}case"n":{var ptr=getNextArg("i32*");HEAP32[ptr>>2]=ret.length;break}case"%":{ret.push(curr);break}default:{for(var i=startTextIndex;i>0])}}}textIndex+=2}else{ret.push(curr);textIndex+=1}}return ret}Module["formatString"]=formatString;function _emscripten_log(flags,format,varargs){var result=formatString(format,varargs);var str=UTF8ArrayToString(result,0);_emscripten_log_js(flags,str)}Module["_emscripten_log"]=_emscripten_log;_emscripten_log.sig="vipp";function _emscripten_get_compiler_setting(name){throw"You must build with -sRETAIN_COMPILER_SETTINGS for getCompilerSetting or emscripten_get_compiler_setting to work"}Module["_emscripten_get_compiler_setting"]=_emscripten_get_compiler_setting;_emscripten_get_compiler_setting.sig="pp";function _emscripten_has_asyncify(){return 0}Module["_emscripten_has_asyncify"]=_emscripten_has_asyncify;function _emscripten_debugger(){debugger}Module["_emscripten_debugger"]=_emscripten_debugger;function _emscripten_print_double(x,to,max){var str=x+"";if(to)return stringToUTF8(str,to,max);else return lengthBytesUTF8(str)}Module["_emscripten_print_double"]=_emscripten_print_double;_emscripten_print_double.sig="iipi";function convertFrameToPC(frame){abort("Cannot use convertFrameToPC (needed by __builtin_return_address) without -sUSE_OFFSET_CONVERTER");return 0}Module["convertFrameToPC"]=convertFrameToPC;function _emscripten_return_address(level){var callstack=jsStackTrace().split("\n");if(callstack[0]=="Error"){callstack.shift()}var caller=callstack[level+3];return convertFrameToPC(caller)}Module["_emscripten_return_address"]=_emscripten_return_address;_emscripten_return_address.sig="pi";var UNWIND_CACHE={};Module["UNWIND_CACHE"]=UNWIND_CACHE;function saveInUnwindCache(callstack){callstack.forEach(frame=>{var pc=convertFrameToPC(frame);if(pc){UNWIND_CACHE[pc]=frame}})}Module["saveInUnwindCache"]=saveInUnwindCache;function _emscripten_stack_snapshot(){var callstack=jsStackTrace().split("\n");if(callstack[0]=="Error"){callstack.shift()}saveInUnwindCache(callstack);UNWIND_CACHE.last_addr=convertFrameToPC(callstack[3]);UNWIND_CACHE.last_stack=callstack;return UNWIND_CACHE.last_addr}Module["_emscripten_stack_snapshot"]=_emscripten_stack_snapshot;_emscripten_stack_snapshot.sig="p";function _emscripten_stack_unwind_buffer(addr,buffer,count){var stack;if(UNWIND_CACHE.last_addr==addr){stack=UNWIND_CACHE.last_stack}else{stack=jsStackTrace().split("\n");if(stack[0]=="Error"){stack.shift()}saveInUnwindCache(stack)}var offset=3;while(stack[offset]&&convertFrameToPC(stack[offset])!=addr){++offset}for(var i=0;i>2]=convertFrameToPC(stack[i+offset])}return i}Module["_emscripten_stack_unwind_buffer"]=_emscripten_stack_unwind_buffer;_emscripten_stack_unwind_buffer.sig="ippi";function _emscripten_pc_get_function(pc){abort("Cannot use emscripten_pc_get_function without -sUSE_OFFSET_CONVERTER")}Module["_emscripten_pc_get_function"]=_emscripten_pc_get_function;function convertPCtoSourceLocation(pc){if(UNWIND_CACHE.last_get_source_pc==pc)return UNWIND_CACHE.last_source;var match;var source;if(!source){var frame=UNWIND_CACHE[pc];if(!frame)return null;if(match=/\((.*):(\d+):(\d+)\)$/.exec(frame)){source={file:match[1],line:match[2],column:match[3]}}else if(match=/@(.*):(\d+):(\d+)/.exec(frame)){source={file:match[1],line:match[2],column:match[3]}}}UNWIND_CACHE.last_get_source_pc=pc;UNWIND_CACHE.last_source=source;return source}Module["convertPCtoSourceLocation"]=convertPCtoSourceLocation;function _emscripten_pc_get_file(pc){var result=convertPCtoSourceLocation(pc);if(!result)return 0;if(_emscripten_pc_get_file.ret)_free(_emscripten_pc_get_file.ret);_emscripten_pc_get_file.ret=allocateUTF8(result.file);return _emscripten_pc_get_file.ret}Module["_emscripten_pc_get_file"]=_emscripten_pc_get_file;_emscripten_pc_get_file.sig="pp";function _emscripten_pc_get_line(pc){var result=convertPCtoSourceLocation(pc);return result?result.line:0}Module["_emscripten_pc_get_line"]=_emscripten_pc_get_line;_emscripten_pc_get_line.sig="ip";function _emscripten_pc_get_column(pc){var result=convertPCtoSourceLocation(pc);return result?result.column||0:0}Module["_emscripten_pc_get_column"]=_emscripten_pc_get_column;_emscripten_pc_get_column.sig="ip";function _emscripten_get_module_name(buf,length){return stringToUTF8(wasmBinaryFile,buf,length)}Module["_emscripten_get_module_name"]=_emscripten_get_module_name;_emscripten_get_module_name.sig="ppp";function _emscripten_asm_const_double(code,sigPtr,argbuf){return runEmAsmFunction(code,sigPtr,argbuf)}Module["_emscripten_asm_const_double"]=_emscripten_asm_const_double;_emscripten_asm_const_double.sig="dppp";var _emscripten_asm_const_ptr=_emscripten_asm_const_int;Module["_emscripten_asm_const_ptr"]=_emscripten_asm_const_ptr;function runMainThreadEmAsm(code,sigPtr,argbuf,sync){var args=readEmAsmArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}Module["runMainThreadEmAsm"]=runMainThreadEmAsm;runMainThreadEmAsm.sig="iippi";function _emscripten_asm_const_int_sync_on_main_thread(code,sigPtr,argbuf){return runMainThreadEmAsm(code,sigPtr,argbuf,1)}Module["_emscripten_asm_const_int_sync_on_main_thread"]=_emscripten_asm_const_int_sync_on_main_thread;_emscripten_asm_const_int_sync_on_main_thread.sig="iiii";var _emscripten_asm_const_double_sync_on_main_thread=_emscripten_asm_const_int_sync_on_main_thread;Module["_emscripten_asm_const_double_sync_on_main_thread"]=_emscripten_asm_const_double_sync_on_main_thread;function _emscripten_asm_const_async_on_main_thread(code,sigPtr,argbuf){return runMainThreadEmAsm(code,sigPtr,argbuf,0)}Module["_emscripten_asm_const_async_on_main_thread"]=_emscripten_asm_const_async_on_main_thread;function jstoi_s(str){return Number(str)}Module["jstoi_s"]=jstoi_s;function __Unwind_Backtrace(func,arg){var trace=_emscripten_get_callstack_js();var parts=trace.split("\n");for(var i=0;i{if(ctx.state==="suspended")ctx.resume()})}})})}Module["autoResumeAudioContext"]=autoResumeAudioContext;function getDynCaller(sig,ptr){var argCache=[];return function(){argCache.length=0;Object.assign(argCache,arguments);return dynCall(sig,ptr,argCache)}}Module["getDynCaller"]=getDynCaller;function _emscripten_force_exit(status){noExitRuntime=false;_exit(status)}Module["_emscripten_force_exit"]=_emscripten_force_exit;_emscripten_force_exit.sig="vi";function _emscripten_throw_number(number){throw number}Module["_emscripten_throw_number"]=_emscripten_throw_number;function _emscripten_throw_string(str){throw UTF8ToString(str)}Module["_emscripten_throw_string"]=_emscripten_throw_string;function runtimeKeepalivePush(){}Module["runtimeKeepalivePush"]=runtimeKeepalivePush;runtimeKeepalivePush.sig="v";function runtimeKeepalivePop(){}Module["runtimeKeepalivePop"]=runtimeKeepalivePop;runtimeKeepalivePop.sig="v";var _emscripten_runtime_keepalive_push=runtimeKeepalivePush;Module["_emscripten_runtime_keepalive_push"]=_emscripten_runtime_keepalive_push;var _emscripten_runtime_keepalive_pop=runtimeKeepalivePop;Module["_emscripten_runtime_keepalive_pop"]=_emscripten_runtime_keepalive_pop;function _emscripten_runtime_keepalive_check(){return keepRuntimeAlive()}Module["_emscripten_runtime_keepalive_check"]=_emscripten_runtime_keepalive_check;function maybeExit(){}Module["maybeExit"]=maybeExit;function safeSetTimeout(func,timeout){return setTimeout(function(){callUserCallback(func)},timeout)}Module["safeSetTimeout"]=safeSetTimeout;var ___global_base=1024;Module["___global_base"]=___global_base;function __emscripten_fs_load_embedded_files(ptr){do{var name_addr=HEAPU32[ptr>>2];ptr+=4;var len=HEAPU32[ptr>>2];ptr+=4;var content=HEAPU32[ptr>>2];ptr+=4;var name=UTF8ToString(name_addr);FS.createPath("/",PATH.dirname(name),true,true);FS.createDataFile(name,null,HEAP8.subarray(content,content+len),true,true,true)}while(HEAPU32[ptr>>2])}Module["__emscripten_fs_load_embedded_files"]=__emscripten_fs_load_embedded_files;__emscripten_fs_load_embedded_files.sig="vp";var POINTER_SIZE=4;Module["POINTER_SIZE"]=POINTER_SIZE;function getNativeTypeSize(type){switch(type){case"i1":case"i8":case"u8":return 1;case"i16":case"u16":return 2;case"i32":case"u32":return 4;case"i64":case"u64":return 8;case"float":return 4;case"double":return 8;default:{if(type[type.length-1]==="*"){return POINTER_SIZE}if(type[0]==="i"){const bits=Number(type.substr(1));assert(bits%8===0,"getNativeTypeSize invalid bits "+bits+", type "+type);return bits/8}return 0}}}Module["getNativeTypeSize"]=getNativeTypeSize;var STACK_SIZE=5242880;Module["STACK_SIZE"]=STACK_SIZE;var STACK_ALIGN=16;Module["STACK_ALIGN"]=STACK_ALIGN;var ASSERTIONS=0;Module["ASSERTIONS"]=ASSERTIONS;function writeI53ToI64Clamped(ptr,num){if(num>0x8000000000000000){HEAPU32[ptr>>2]=4294967295;HEAPU32[ptr+4>>2]=2147483647}else if(num<-0x8000000000000000){HEAPU32[ptr>>2]=0;HEAPU32[ptr+4>>2]=2147483648}else{HEAPU32[ptr>>2]=num;HEAPU32[ptr+4>>2]=(num-HEAPU32[ptr>>2])/4294967296}}Module["writeI53ToI64Clamped"]=writeI53ToI64Clamped;function writeI53ToI64Signaling(ptr,num){if(num>0x8000000000000000||num<-0x8000000000000000){throw"RangeError:"+num}HEAPU32[ptr>>2]=num;HEAPU32[ptr+4>>2]=(num-HEAPU32[ptr>>2])/4294967296}Module["writeI53ToI64Signaling"]=writeI53ToI64Signaling;function writeI53ToU64Clamped(ptr,num){if(num>0x10000000000000000)HEAPU32[ptr>>2]=HEAPU32[ptr+4>>2]=4294967295;else if(num<0)HEAPU32[ptr>>2]=HEAPU32[ptr+4>>2]=0;else{HEAPU32[ptr>>2]=num;HEAPU32[ptr+4>>2]=(num-HEAPU32[ptr>>2])/4294967296}}Module["writeI53ToU64Clamped"]=writeI53ToU64Clamped;function writeI53ToU64Signaling(ptr,num){if(num<0||num>0x10000000000000000){throw"RangeError:"+num}HEAPU32[ptr>>2]=num;HEAPU32[ptr+4>>2]=(num-HEAPU32[ptr>>2])/4294967296}Module["writeI53ToU64Signaling"]=writeI53ToU64Signaling;function readI53FromU64(ptr){return HEAPU32[ptr>>2]+HEAPU32[ptr+4>>2]*4294967296}Module["readI53FromU64"]=readI53FromU64;function convertI32PairToI53Checked(lo,hi){return hi+2097152>>>0<4194305-!!lo?(lo>>>0)+hi*4294967296:NaN}Module["convertI32PairToI53Checked"]=convertI32PairToI53Checked;function getCFunc(ident){var func=Module["_"+ident];return func}Module["getCFunc"]=getCFunc;function ccall(ident,returnType,argTypes,args,opts){var toC={"string":str=>{var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},"array":arr=>{var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType==="string"){return UTF8ToString(ret)}if(returnType==="boolean")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;itype==="number"||type==="boolean");var numericRet=returnType!=="string";if(numericRet&&numericArgs&&!opts){return getCFunc(ident)}return function(){return ccall(ident,returnType,argTypes,arguments,opts)}}Module["cwrap"]=cwrap;function removeFunction(index){functionsInTableMap.delete(getWasmTableEntry(index));freeTableIndexes.push(index)}Module["removeFunction"]=removeFunction;function _emscripten_math_cbrt(x){return Math.cbrt(x)}Module["_emscripten_math_cbrt"]=_emscripten_math_cbrt;function _emscripten_math_pow(x,y){return Math.pow(x,y)}Module["_emscripten_math_pow"]=_emscripten_math_pow;function _emscripten_math_random(){return Math.random()}Module["_emscripten_math_random"]=_emscripten_math_random;function _emscripten_math_sign(x){return Math.sign(x)}Module["_emscripten_math_sign"]=_emscripten_math_sign;function _emscripten_math_sqrt(x){return Math.sqrt(x)}Module["_emscripten_math_sqrt"]=_emscripten_math_sqrt;function _emscripten_math_exp(x){return Math.exp(x)}Module["_emscripten_math_exp"]=_emscripten_math_exp;function _emscripten_math_expm1(x){return Math.expm1(x)}Module["_emscripten_math_expm1"]=_emscripten_math_expm1;function _emscripten_math_fmod(x,y){return x%y}Module["_emscripten_math_fmod"]=_emscripten_math_fmod;function _emscripten_math_log(x){return Math.log(x)}Module["_emscripten_math_log"]=_emscripten_math_log;function _emscripten_math_log1p(x){return Math.log1p(x)}Module["_emscripten_math_log1p"]=_emscripten_math_log1p;function _emscripten_math_log10(x){return Math.log10(x)}Module["_emscripten_math_log10"]=_emscripten_math_log10;function _emscripten_math_log2(x){return Math.log2(x)}Module["_emscripten_math_log2"]=_emscripten_math_log2;function _emscripten_math_round(x){return Math.round(x)}Module["_emscripten_math_round"]=_emscripten_math_round;function _emscripten_math_acos(x){return Math.acos(x)}Module["_emscripten_math_acos"]=_emscripten_math_acos;function _emscripten_math_acosh(x){return Math.acosh(x)}Module["_emscripten_math_acosh"]=_emscripten_math_acosh;function _emscripten_math_asin(x){return Math.asin(x)}Module["_emscripten_math_asin"]=_emscripten_math_asin;function _emscripten_math_asinh(x){return Math.asinh(x)}Module["_emscripten_math_asinh"]=_emscripten_math_asinh;function _emscripten_math_atan(x){return Math.atan(x)}Module["_emscripten_math_atan"]=_emscripten_math_atan;function _emscripten_math_atanh(x){return Math.atanh(x)}Module["_emscripten_math_atanh"]=_emscripten_math_atanh;function _emscripten_math_atan2(y,x){return Math.atan2(y,x)}Module["_emscripten_math_atan2"]=_emscripten_math_atan2;function _emscripten_math_cos(x){return Math.cos(x)}Module["_emscripten_math_cos"]=_emscripten_math_cos;function _emscripten_math_cosh(x){return Math.cosh(x)}Module["_emscripten_math_cosh"]=_emscripten_math_cosh;function _emscripten_math_hypot(count,varargs){var args=[];for(var i=0;i>3)+i]);return Math.hypot.apply(null,args)}Module["_emscripten_math_hypot"]=_emscripten_math_hypot;_emscripten_math_hypot.sig="iip";function _emscripten_math_sin(x){return Math.sin(x)}Module["_emscripten_math_sin"]=_emscripten_math_sin;function _emscripten_math_sinh(x){return Math.sinh(x)}Module["_emscripten_math_sinh"]=_emscripten_math_sinh;function _emscripten_math_tan(x){return Math.tan(x)}Module["_emscripten_math_tan"]=_emscripten_math_tan;function _emscripten_math_tanh(x){return Math.tanh(x)}Module["_emscripten_math_tanh"]=_emscripten_math_tanh;function intArrayToString(array){var ret=[];for(var i=0;i255){chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}Module["intArrayToString"]=intArrayToString;function AsciiToString(ptr){var str="";while(1){var ch=HEAPU8[ptr++>>0];if(!ch)return str;str+=String.fromCharCode(ch)}}Module["AsciiToString"]=AsciiToString;function stringToAscii(str,outPtr){return writeAsciiToMemory(str,outPtr,false)}Module["stringToAscii"]=stringToAscii;var UTF16Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):undefined;Module["UTF16Decoder"]=UTF16Decoder;function UTF16ToString(ptr,maxBytesToRead){var endPtr=ptr;var idx=endPtr>>1;var maxIdx=idx+maxBytesToRead/2;while(!(idx>=maxIdx)&&HEAPU16[idx])++idx;endPtr=idx<<1;if(endPtr-ptr>32&&UTF16Decoder)return UTF16Decoder.decode(HEAPU8.subarray(ptr,endPtr));var str="";for(var i=0;!(i>=maxBytesToRead/2);++i){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)break;str+=String.fromCharCode(codeUnit)}return str}Module["UTF16ToString"]=UTF16ToString;function stringToUTF16(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr}Module["stringToUTF16"]=stringToUTF16;function lengthBytesUTF16(str){return str.length*2}Module["lengthBytesUTF16"]=lengthBytesUTF16;function UTF32ToString(ptr,maxBytesToRead){var i=0;var str="";while(!(i>=maxBytesToRead/4)){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)break;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}return str}Module["UTF32ToString"]=UTF32ToString;function stringToUTF32(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr}Module["stringToUTF32"]=stringToUTF32;function lengthBytesUTF32(str){var len=0;for(var i=0;i=55296&&codeUnit<=57343)++i;len+=4}return len}Module["lengthBytesUTF32"]=lengthBytesUTF32;function writeStringToMemory(string,buffer,dontAddNull){warnOnce("writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!");var lastChar,end;if(dontAddNull){end=buffer+lengthBytesUTF8(string);lastChar=HEAP8[end]}stringToUTF8(string,buffer,Infinity);if(dontAddNull)HEAP8[end]=lastChar}Module["writeStringToMemory"]=writeStringToMemory;function ___syscall_rename(old_path,new_path){try{old_path=SYSCALLS.getStr(old_path);new_path=SYSCALLS.getStr(new_path);FS.rename(old_path,new_path);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}Module["___syscall_rename"]=___syscall_rename;___syscall_rename.sig="ipp";var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence2?UTF8ToString(cString):cString}Module["maybeCStringToJsString"]=maybeCStringToJsString;var specialHTMLTargets=[0,typeof document!="undefined"?document:0,typeof window!="undefined"?window:0];Module["specialHTMLTargets"]=specialHTMLTargets;function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!="undefined"?document.querySelector(target):undefined);return domElement}Module["findEventTarget"]=findEventTarget;function registerKeyEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.keyEvent)JSEvents.keyEvent=_malloc(176);var keyEventHandlerFunc=function(e){var keyEventData=JSEvents.keyEvent;HEAPF64[keyEventData>>3]=e.timeStamp;var idx=keyEventData>>2;HEAP32[idx+2]=e.location;HEAP32[idx+3]=e.ctrlKey;HEAP32[idx+4]=e.shiftKey;HEAP32[idx+5]=e.altKey;HEAP32[idx+6]=e.metaKey;HEAP32[idx+7]=e.repeat;HEAP32[idx+8]=e.charCode;HEAP32[idx+9]=e.keyCode;HEAP32[idx+10]=e.which;stringToUTF8(e.key||"",keyEventData+44,32);stringToUTF8(e.code||"",keyEventData+76,32);stringToUTF8(e.char||"",keyEventData+108,32);stringToUTF8(e.locale||"",keyEventData+140,32);if(getWasmTableEntry(callbackfunc)(eventTypeId,keyEventData,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:keyEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}Module["registerKeyEventCallback"]=registerKeyEventCallback;function findCanvasEventTarget(target){return findEventTarget(target)}Module["findCanvasEventTarget"]=findCanvasEventTarget;function _emscripten_set_keypress_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerKeyEventCallback(target,userData,useCapture,callbackfunc,1,"keypress",targetThread);return 0}Module["_emscripten_set_keypress_callback_on_thread"]=_emscripten_set_keypress_callback_on_thread;_emscripten_set_keypress_callback_on_thread.sig="iiiiii";function _emscripten_set_keydown_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerKeyEventCallback(target,userData,useCapture,callbackfunc,2,"keydown",targetThread);return 0}Module["_emscripten_set_keydown_callback_on_thread"]=_emscripten_set_keydown_callback_on_thread;_emscripten_set_keydown_callback_on_thread.sig="iiiiii";function _emscripten_set_keyup_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerKeyEventCallback(target,userData,useCapture,callbackfunc,3,"keyup",targetThread);return 0}Module["_emscripten_set_keyup_callback_on_thread"]=_emscripten_set_keyup_callback_on_thread;_emscripten_set_keyup_callback_on_thread.sig="iiiiii";function getBoundingClientRect(e){return specialHTMLTargets.indexOf(e)<0?e.getBoundingClientRect():{"left":0,"top":0}}Module["getBoundingClientRect"]=getBoundingClientRect;function fillMouseEventData(eventStruct,e,target){HEAPF64[eventStruct>>3]=e.timeStamp;var idx=eventStruct>>2;HEAP32[idx+2]=e.screenX;HEAP32[idx+3]=e.screenY;HEAP32[idx+4]=e.clientX;HEAP32[idx+5]=e.clientY;HEAP32[idx+6]=e.ctrlKey;HEAP32[idx+7]=e.shiftKey;HEAP32[idx+8]=e.altKey;HEAP32[idx+9]=e.metaKey;HEAP16[idx*2+20]=e.button;HEAP16[idx*2+21]=e.buttons;HEAP32[idx+11]=e["movementX"];HEAP32[idx+12]=e["movementY"];var rect=getBoundingClientRect(target);HEAP32[idx+13]=e.clientX-rect.left;HEAP32[idx+14]=e.clientY-rect.top}Module["fillMouseEventData"]=fillMouseEventData;function registerMouseEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.mouseEvent)JSEvents.mouseEvent=_malloc(72);target=findEventTarget(target);var mouseEventHandlerFunc=function(e=event){fillMouseEventData(JSEvents.mouseEvent,e,target);if(getWasmTableEntry(callbackfunc)(eventTypeId,JSEvents.mouseEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString!="mousemove"&&eventTypeString!="mouseenter"&&eventTypeString!="mouseleave",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:mouseEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}Module["registerMouseEventCallback"]=registerMouseEventCallback;function _emscripten_set_click_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerMouseEventCallback(target,userData,useCapture,callbackfunc,4,"click",targetThread);return 0}Module["_emscripten_set_click_callback_on_thread"]=_emscripten_set_click_callback_on_thread;_emscripten_set_click_callback_on_thread.sig="iiiiii";function _emscripten_set_mousedown_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerMouseEventCallback(target,userData,useCapture,callbackfunc,5,"mousedown",targetThread);return 0}Module["_emscripten_set_mousedown_callback_on_thread"]=_emscripten_set_mousedown_callback_on_thread;_emscripten_set_mousedown_callback_on_thread.sig="iiiiii";function _emscripten_set_mouseup_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerMouseEventCallback(target,userData,useCapture,callbackfunc,6,"mouseup",targetThread);return 0}Module["_emscripten_set_mouseup_callback_on_thread"]=_emscripten_set_mouseup_callback_on_thread;_emscripten_set_mouseup_callback_on_thread.sig="iiiiii";function _emscripten_set_dblclick_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerMouseEventCallback(target,userData,useCapture,callbackfunc,7,"dblclick",targetThread);return 0}Module["_emscripten_set_dblclick_callback_on_thread"]=_emscripten_set_dblclick_callback_on_thread;_emscripten_set_dblclick_callback_on_thread.sig="iiiiii";function _emscripten_set_mousemove_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerMouseEventCallback(target,userData,useCapture,callbackfunc,8,"mousemove",targetThread);return 0}Module["_emscripten_set_mousemove_callback_on_thread"]=_emscripten_set_mousemove_callback_on_thread;_emscripten_set_mousemove_callback_on_thread.sig="iiiiii";function _emscripten_set_mouseenter_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerMouseEventCallback(target,userData,useCapture,callbackfunc,33,"mouseenter",targetThread);return 0}Module["_emscripten_set_mouseenter_callback_on_thread"]=_emscripten_set_mouseenter_callback_on_thread;_emscripten_set_mouseenter_callback_on_thread.sig="iiiiii";function _emscripten_set_mouseleave_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerMouseEventCallback(target,userData,useCapture,callbackfunc,34,"mouseleave",targetThread);return 0}Module["_emscripten_set_mouseleave_callback_on_thread"]=_emscripten_set_mouseleave_callback_on_thread;_emscripten_set_mouseleave_callback_on_thread.sig="iiiiii";function _emscripten_set_mouseover_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerMouseEventCallback(target,userData,useCapture,callbackfunc,35,"mouseover",targetThread);return 0}Module["_emscripten_set_mouseover_callback_on_thread"]=_emscripten_set_mouseover_callback_on_thread;_emscripten_set_mouseover_callback_on_thread.sig="iiiiii";function _emscripten_set_mouseout_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerMouseEventCallback(target,userData,useCapture,callbackfunc,36,"mouseout",targetThread);return 0}Module["_emscripten_set_mouseout_callback_on_thread"]=_emscripten_set_mouseout_callback_on_thread;_emscripten_set_mouseout_callback_on_thread.sig="iiiiii";function _emscripten_get_mouse_status(mouseState){if(!JSEvents.mouseEvent)return-7;HEAP8.set(HEAP8.subarray(JSEvents.mouseEvent,JSEvents.mouseEvent+72),mouseState);return 0}Module["_emscripten_get_mouse_status"]=_emscripten_get_mouse_status;_emscripten_get_mouse_status.sig="ii";function registerWheelEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.wheelEvent)JSEvents.wheelEvent=_malloc(104);var wheelHandlerFunc=function(e=event){var wheelEvent=JSEvents.wheelEvent;fillMouseEventData(wheelEvent,e,target);HEAPF64[wheelEvent+72>>3]=e["deltaX"];HEAPF64[wheelEvent+80>>3]=e["deltaY"];HEAPF64[wheelEvent+88>>3]=e["deltaZ"];HEAP32[wheelEvent+96>>2]=e["deltaMode"];if(getWasmTableEntry(callbackfunc)(eventTypeId,wheelEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:wheelHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}Module["registerWheelEventCallback"]=registerWheelEventCallback;function _emscripten_set_wheel_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){target=findEventTarget(target);if(typeof target.onwheel!="undefined"){registerWheelEventCallback(target,userData,useCapture,callbackfunc,9,"wheel",targetThread);return 0}else{return-1}}Module["_emscripten_set_wheel_callback_on_thread"]=_emscripten_set_wheel_callback_on_thread;_emscripten_set_wheel_callback_on_thread.sig="iiiiii";function registerUiEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.uiEvent)JSEvents.uiEvent=_malloc(36);target=findEventTarget(target);var uiEventHandlerFunc=function(e=event){if(e.target!=target){return}var b=document.body;if(!b){return}var uiEvent=JSEvents.uiEvent;HEAP32[uiEvent>>2]=e.detail;HEAP32[uiEvent+4>>2]=b.clientWidth;HEAP32[uiEvent+8>>2]=b.clientHeight;HEAP32[uiEvent+12>>2]=innerWidth;HEAP32[uiEvent+16>>2]=innerHeight;HEAP32[uiEvent+20>>2]=outerWidth;HEAP32[uiEvent+24>>2]=outerHeight;HEAP32[uiEvent+28>>2]=pageXOffset;HEAP32[uiEvent+32>>2]=pageYOffset;if(getWasmTableEntry(callbackfunc)(eventTypeId,uiEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:uiEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}Module["registerUiEventCallback"]=registerUiEventCallback;function _emscripten_set_resize_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerUiEventCallback(target,userData,useCapture,callbackfunc,10,"resize",targetThread);return 0}Module["_emscripten_set_resize_callback_on_thread"]=_emscripten_set_resize_callback_on_thread;_emscripten_set_resize_callback_on_thread.sig="iiiiii";function _emscripten_set_scroll_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerUiEventCallback(target,userData,useCapture,callbackfunc,11,"scroll",targetThread);return 0}Module["_emscripten_set_scroll_callback_on_thread"]=_emscripten_set_scroll_callback_on_thread;_emscripten_set_scroll_callback_on_thread.sig="iiiiii";function registerFocusEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.focusEvent)JSEvents.focusEvent=_malloc(256);var focusEventHandlerFunc=function(e=event){var nodeName=JSEvents.getNodeNameForTarget(e.target);var id=e.target.id?e.target.id:"";var focusEvent=JSEvents.focusEvent;stringToUTF8(nodeName,focusEvent+0,128);stringToUTF8(id,focusEvent+128,128);if(getWasmTableEntry(callbackfunc)(eventTypeId,focusEvent,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:focusEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}Module["registerFocusEventCallback"]=registerFocusEventCallback;function _emscripten_set_blur_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerFocusEventCallback(target,userData,useCapture,callbackfunc,12,"blur",targetThread);return 0}Module["_emscripten_set_blur_callback_on_thread"]=_emscripten_set_blur_callback_on_thread;_emscripten_set_blur_callback_on_thread.sig="iiiiii";function _emscripten_set_focus_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerFocusEventCallback(target,userData,useCapture,callbackfunc,13,"focus",targetThread);return 0}Module["_emscripten_set_focus_callback_on_thread"]=_emscripten_set_focus_callback_on_thread;_emscripten_set_focus_callback_on_thread.sig="iiiiii";function _emscripten_set_focusin_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerFocusEventCallback(target,userData,useCapture,callbackfunc,14,"focusin",targetThread);return 0}Module["_emscripten_set_focusin_callback_on_thread"]=_emscripten_set_focusin_callback_on_thread;_emscripten_set_focusin_callback_on_thread.sig="iiiiii";function _emscripten_set_focusout_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerFocusEventCallback(target,userData,useCapture,callbackfunc,15,"focusout",targetThread);return 0}Module["_emscripten_set_focusout_callback_on_thread"]=_emscripten_set_focusout_callback_on_thread;_emscripten_set_focusout_callback_on_thread.sig="iiiiii";function fillDeviceOrientationEventData(eventStruct,e,target){HEAPF64[eventStruct>>3]=e.alpha;HEAPF64[eventStruct+8>>3]=e.beta;HEAPF64[eventStruct+16>>3]=e.gamma;HEAP32[eventStruct+24>>2]=e.absolute}Module["fillDeviceOrientationEventData"]=fillDeviceOrientationEventData;function registerDeviceOrientationEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.deviceOrientationEvent)JSEvents.deviceOrientationEvent=_malloc(32);var deviceOrientationEventHandlerFunc=function(e=event){fillDeviceOrientationEventData(JSEvents.deviceOrientationEvent,e,target);if(getWasmTableEntry(callbackfunc)(eventTypeId,JSEvents.deviceOrientationEvent,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:deviceOrientationEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}Module["registerDeviceOrientationEventCallback"]=registerDeviceOrientationEventCallback;function _emscripten_set_deviceorientation_callback_on_thread(userData,useCapture,callbackfunc,targetThread){registerDeviceOrientationEventCallback(2,userData,useCapture,callbackfunc,16,"deviceorientation",targetThread);return 0}Module["_emscripten_set_deviceorientation_callback_on_thread"]=_emscripten_set_deviceorientation_callback_on_thread;_emscripten_set_deviceorientation_callback_on_thread.sig="iiiii";function _emscripten_get_deviceorientation_status(orientationState){if(!JSEvents.deviceOrientationEvent)return-7;HEAP32.set(HEAP32.subarray(JSEvents.deviceOrientationEvent,32),orientationState);return 0}Module["_emscripten_get_deviceorientation_status"]=_emscripten_get_deviceorientation_status;_emscripten_get_deviceorientation_status.sig="ii";function fillDeviceMotionEventData(eventStruct,e,target){var supportedFields=0;var a=e["acceleration"];supportedFields|=a&&1;var ag=e["accelerationIncludingGravity"];supportedFields|=ag&&2;var rr=e["rotationRate"];supportedFields|=rr&&4;a=a||{};ag=ag||{};rr=rr||{};HEAPF64[eventStruct>>3]=a["x"];HEAPF64[eventStruct+8>>3]=a["y"];HEAPF64[eventStruct+16>>3]=a["z"];HEAPF64[eventStruct+24>>3]=ag["x"];HEAPF64[eventStruct+32>>3]=ag["y"];HEAPF64[eventStruct+40>>3]=ag["z"];HEAPF64[eventStruct+48>>3]=rr["alpha"];HEAPF64[eventStruct+56>>3]=rr["beta"];HEAPF64[eventStruct+64>>3]=rr["gamma"]}Module["fillDeviceMotionEventData"]=fillDeviceMotionEventData;function registerDeviceMotionEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.deviceMotionEvent)JSEvents.deviceMotionEvent=_malloc(80);var deviceMotionEventHandlerFunc=function(e=event){fillDeviceMotionEventData(JSEvents.deviceMotionEvent,e,target);if(getWasmTableEntry(callbackfunc)(eventTypeId,JSEvents.deviceMotionEvent,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:deviceMotionEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}Module["registerDeviceMotionEventCallback"]=registerDeviceMotionEventCallback;function _emscripten_set_devicemotion_callback_on_thread(userData,useCapture,callbackfunc,targetThread){registerDeviceMotionEventCallback(2,userData,useCapture,callbackfunc,17,"devicemotion",targetThread);return 0}Module["_emscripten_set_devicemotion_callback_on_thread"]=_emscripten_set_devicemotion_callback_on_thread;_emscripten_set_devicemotion_callback_on_thread.sig="iiiii";function _emscripten_get_devicemotion_status(motionState){if(!JSEvents.deviceMotionEvent)return-7;HEAP32.set(HEAP32.subarray(JSEvents.deviceMotionEvent,80),motionState);return 0}Module["_emscripten_get_devicemotion_status"]=_emscripten_get_devicemotion_status;_emscripten_get_devicemotion_status.sig="ii";function screenOrientation(){if(!screen)return undefined;return screen.orientation||screen.mozOrientation||screen.webkitOrientation||screen.msOrientation}Module["screenOrientation"]=screenOrientation;function fillOrientationChangeEventData(eventStruct){var orientations=["portrait-primary","portrait-secondary","landscape-primary","landscape-secondary"];var orientations2=["portrait","portrait","landscape","landscape"];var orientationString=screenOrientation();var orientation=orientations.indexOf(orientationString);if(orientation==-1){orientation=orientations2.indexOf(orientationString)}HEAP32[eventStruct>>2]=1<>2]=orientation}Module["fillOrientationChangeEventData"]=fillOrientationChangeEventData;function registerOrientationChangeEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.orientationChangeEvent)JSEvents.orientationChangeEvent=_malloc(8);var orientationChangeEventHandlerFunc=function(e=event){var orientationChangeEvent=JSEvents.orientationChangeEvent;fillOrientationChangeEventData(orientationChangeEvent);if(getWasmTableEntry(callbackfunc)(eventTypeId,orientationChangeEvent,userData))e.preventDefault()};if(eventTypeString=="orientationchange"&&screen.mozOrientation!==undefined){eventTypeString="mozorientationchange"}var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:orientationChangeEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}Module["registerOrientationChangeEventCallback"]=registerOrientationChangeEventCallback;function _emscripten_set_orientationchange_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!screen||!screen["addEventListener"])return-1;registerOrientationChangeEventCallback(screen,userData,useCapture,callbackfunc,18,"orientationchange",targetThread);return 0}Module["_emscripten_set_orientationchange_callback_on_thread"]=_emscripten_set_orientationchange_callback_on_thread;_emscripten_set_orientationchange_callback_on_thread.sig="iiiii";function _emscripten_get_orientation_status(orientationChangeEvent){if(!screenOrientation()&&typeof orientation=="undefined")return-1;fillOrientationChangeEventData(orientationChangeEvent);return 0}Module["_emscripten_get_orientation_status"]=_emscripten_get_orientation_status;_emscripten_get_orientation_status.sig="ii";function _emscripten_lock_orientation(allowedOrientations){var orientations=[];if(allowedOrientations&1)orientations.push("portrait-primary");if(allowedOrientations&2)orientations.push("portrait-secondary");if(allowedOrientations&4)orientations.push("landscape-primary");if(allowedOrientations&8)orientations.push("landscape-secondary");var succeeded;if(screen.lockOrientation){succeeded=screen.lockOrientation(orientations)}else if(screen.mozLockOrientation){succeeded=screen.mozLockOrientation(orientations)}else if(screen.webkitLockOrientation){succeeded=screen.webkitLockOrientation(orientations)}else if(screen.msLockOrientation){succeeded=screen.msLockOrientation(orientations)}else{return-1}if(succeeded){return 0}return-6}Module["_emscripten_lock_orientation"]=_emscripten_lock_orientation;_emscripten_lock_orientation.sig="ii";function _emscripten_unlock_orientation(){if(screen.unlockOrientation){screen.unlockOrientation()}else if(screen.mozUnlockOrientation){screen.mozUnlockOrientation()}else if(screen.webkitUnlockOrientation){screen.webkitUnlockOrientation()}else if(screen.msUnlockOrientation){screen.msUnlockOrientation()}else{return-1}return 0}Module["_emscripten_unlock_orientation"]=_emscripten_unlock_orientation;_emscripten_unlock_orientation.sig="i";function fillFullscreenChangeEventData(eventStruct){var fullscreenElement=document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.msFullscreenElement;var isFullscreen=!!fullscreenElement;HEAP32[eventStruct>>2]=isFullscreen;HEAP32[eventStruct+4>>2]=JSEvents.fullscreenEnabled();var reportedElement=isFullscreen?fullscreenElement:JSEvents.previousFullscreenElement;var nodeName=JSEvents.getNodeNameForTarget(reportedElement);var id=reportedElement&&reportedElement.id?reportedElement.id:"";stringToUTF8(nodeName,eventStruct+8,128);stringToUTF8(id,eventStruct+136,128);HEAP32[eventStruct+264>>2]=reportedElement?reportedElement.clientWidth:0;HEAP32[eventStruct+268>>2]=reportedElement?reportedElement.clientHeight:0;HEAP32[eventStruct+272>>2]=screen.width;HEAP32[eventStruct+276>>2]=screen.height;if(isFullscreen){JSEvents.previousFullscreenElement=fullscreenElement}}Module["fillFullscreenChangeEventData"]=fillFullscreenChangeEventData;function registerFullscreenChangeEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.fullscreenChangeEvent)JSEvents.fullscreenChangeEvent=_malloc(280);var fullscreenChangeEventhandlerFunc=function(e=event){var fullscreenChangeEvent=JSEvents.fullscreenChangeEvent;fillFullscreenChangeEventData(fullscreenChangeEvent);if(getWasmTableEntry(callbackfunc)(eventTypeId,fullscreenChangeEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:fullscreenChangeEventhandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}Module["registerFullscreenChangeEventCallback"]=registerFullscreenChangeEventCallback;function _emscripten_set_fullscreenchange_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){if(!JSEvents.fullscreenEnabled())return-1;target=findEventTarget(target);if(!target)return-4;registerFullscreenChangeEventCallback(target,userData,useCapture,callbackfunc,19,"fullscreenchange",targetThread);registerFullscreenChangeEventCallback(target,userData,useCapture,callbackfunc,19,"webkitfullscreenchange",targetThread);return 0}Module["_emscripten_set_fullscreenchange_callback_on_thread"]=_emscripten_set_fullscreenchange_callback_on_thread;_emscripten_set_fullscreenchange_callback_on_thread.sig="iiiiii";function _emscripten_get_fullscreen_status(fullscreenStatus){if(!JSEvents.fullscreenEnabled())return-1;fillFullscreenChangeEventData(fullscreenStatus);return 0}Module["_emscripten_get_fullscreen_status"]=_emscripten_get_fullscreen_status;_emscripten_get_fullscreen_status.sig="ii";function _emscripten_get_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;HEAP32[width>>2]=canvas.width;HEAP32[height>>2]=canvas.height}Module["_emscripten_get_canvas_element_size"]=_emscripten_get_canvas_element_size;_emscripten_get_canvas_element_size.sig="ippp";function getCanvasElementSize(target){return withStackSave(function(){var w=stackAlloc(8);var h=w+4;var targetInt=stackAlloc(target.id.length+1);stringToUTF8(target.id,targetInt,target.id.length+1);var ret=_emscripten_get_canvas_element_size(targetInt,w,h);var size=[HEAP32[w>>2],HEAP32[h>>2]];return size})}Module["getCanvasElementSize"]=getCanvasElementSize;function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;canvas.width=width;canvas.height=height;return 0}Module["_emscripten_set_canvas_element_size"]=_emscripten_set_canvas_element_size;_emscripten_set_canvas_element_size.sig="iiii";function setCanvasElementSize(target,width,height){if(!target.controlTransferredOffscreen){target.width=width;target.height=height}else{withStackSave(function(){var targetInt=stackAlloc(target.id.length+1);stringToUTF8(target.id,targetInt,target.id.length+1);_emscripten_set_canvas_element_size(targetInt,width,height)})}}Module["setCanvasElementSize"]=setCanvasElementSize;function registerRestoreOldStyle(canvas){var canvasSize=getCanvasElementSize(canvas);var oldWidth=canvasSize[0];var oldHeight=canvasSize[1];var oldCssWidth=canvas.style.width;var oldCssHeight=canvas.style.height;var oldBackgroundColor=canvas.style.backgroundColor;var oldDocumentBackgroundColor=document.body.style.backgroundColor;var oldPaddingLeft=canvas.style.paddingLeft;var oldPaddingRight=canvas.style.paddingRight;var oldPaddingTop=canvas.style.paddingTop;var oldPaddingBottom=canvas.style.paddingBottom;var oldMarginLeft=canvas.style.marginLeft;var oldMarginRight=canvas.style.marginRight;var oldMarginTop=canvas.style.marginTop;var oldMarginBottom=canvas.style.marginBottom;var oldDocumentBodyMargin=document.body.style.margin;var oldDocumentOverflow=document.documentElement.style.overflow;var oldDocumentScroll=document.body.scroll;var oldImageRendering=canvas.style.imageRendering;function restoreOldStyle(){var fullscreenElement=document.fullscreenElement||document.webkitFullscreenElement;if(!fullscreenElement){document.removeEventListener("fullscreenchange",restoreOldStyle);document.removeEventListener("webkitfullscreenchange",restoreOldStyle);setCanvasElementSize(canvas,oldWidth,oldHeight);canvas.style.width=oldCssWidth;canvas.style.height=oldCssHeight;canvas.style.backgroundColor=oldBackgroundColor;if(!oldDocumentBackgroundColor)document.body.style.backgroundColor="white";document.body.style.backgroundColor=oldDocumentBackgroundColor;canvas.style.paddingLeft=oldPaddingLeft;canvas.style.paddingRight=oldPaddingRight;canvas.style.paddingTop=oldPaddingTop;canvas.style.paddingBottom=oldPaddingBottom;canvas.style.marginLeft=oldMarginLeft;canvas.style.marginRight=oldMarginRight;canvas.style.marginTop=oldMarginTop;canvas.style.marginBottom=oldMarginBottom;document.body.style.margin=oldDocumentBodyMargin;document.documentElement.style.overflow=oldDocumentOverflow;document.body.scroll=oldDocumentScroll;canvas.style.imageRendering=oldImageRendering;if(canvas.GLctxObject)canvas.GLctxObject.GLctx.viewport(0,0,oldWidth,oldHeight);if(currentFullscreenStrategy.canvasResizedCallback){getWasmTableEntry(currentFullscreenStrategy.canvasResizedCallback)(37,0,currentFullscreenStrategy.canvasResizedCallbackUserData)}}}document.addEventListener("fullscreenchange",restoreOldStyle);document.addEventListener("webkitfullscreenchange",restoreOldStyle);return restoreOldStyle}Module["registerRestoreOldStyle"]=registerRestoreOldStyle;function setLetterbox(element,topBottom,leftRight){element.style.paddingLeft=element.style.paddingRight=leftRight+"px";element.style.paddingTop=element.style.paddingBottom=topBottom+"px"}Module["setLetterbox"]=setLetterbox;function JSEvents_resizeCanvasForFullscreen(target,strategy){var restoreOldStyle=registerRestoreOldStyle(target);var cssWidth=strategy.softFullscreen?innerWidth:screen.width;var cssHeight=strategy.softFullscreen?innerHeight:screen.height;var rect=getBoundingClientRect(target);var windowedCssWidth=rect.width;var windowedCssHeight=rect.height;var canvasSize=getCanvasElementSize(target);var windowedRttWidth=canvasSize[0];var windowedRttHeight=canvasSize[1];if(strategy.scaleMode==3){setLetterbox(target,(cssHeight-windowedCssHeight)/2,(cssWidth-windowedCssWidth)/2);cssWidth=windowedCssWidth;cssHeight=windowedCssHeight}else if(strategy.scaleMode==2){if(cssWidth*windowedRttHeightx*h)w=h*x/y|0;topMargin=(screenHeight-h)/2|0}if(inPixelPerfectFullscreenMode){setCanvasElementSize(canvas,w,h);if(canvas.GLctxObject)canvas.GLctxObject.GLctx.viewport(0,0,w,h)}if(inHiDPIFullscreenMode){topMargin/=dpr;w/=dpr;h/=dpr;w=Math.round(w*1e4)/1e4;h=Math.round(h*1e4)/1e4;topMargin=Math.round(topMargin*1e4)/1e4}if(inCenteredWithoutScalingFullscreenMode){var t=(innerHeight-jstoi_q(canvas.style.height))/2;var b=(innerWidth-jstoi_q(canvas.style.width))/2;setLetterbox(canvas,t,b)}else{canvas.style.width=w+"px";canvas.style.height=h+"px";var b=(innerWidth-w)/2;setLetterbox(canvas,topMargin,b)}if(!inCenteredWithoutScalingFullscreenMode&¤tFullscreenStrategy.canvasResizedCallback){getWasmTableEntry(currentFullscreenStrategy.canvasResizedCallback)(37,0,currentFullscreenStrategy.canvasResizedCallbackUserData)}}Module["softFullscreenResizeWebGLRenderTarget"]=softFullscreenResizeWebGLRenderTarget;function doRequestFullscreen(target,strategy){if(!JSEvents.fullscreenEnabled())return-1;target=findEventTarget(target);if(!target)return-4;if(!target.requestFullscreen&&!target.webkitRequestFullscreen){return-3}var canPerformRequests=JSEvents.canPerformEventHandlerRequests();if(!canPerformRequests){if(strategy.deferUntilInEventHandler){JSEvents.deferCall(JSEvents_requestFullscreen,1,[target,strategy]);return 1}return-2}return JSEvents_requestFullscreen(target,strategy)}Module["doRequestFullscreen"]=doRequestFullscreen;function _emscripten_request_fullscreen(target,deferUntilInEventHandler){var strategy={scaleMode:0,canvasResolutionScaleMode:0,filteringMode:0,deferUntilInEventHandler:deferUntilInEventHandler,canvasResizedCallbackTargetThread:2};return doRequestFullscreen(target,strategy)}Module["_emscripten_request_fullscreen"]=_emscripten_request_fullscreen;_emscripten_request_fullscreen.sig="iii";function _emscripten_request_fullscreen_strategy(target,deferUntilInEventHandler,fullscreenStrategy){var strategy={scaleMode:HEAP32[fullscreenStrategy>>2],canvasResolutionScaleMode:HEAP32[fullscreenStrategy+4>>2],filteringMode:HEAP32[fullscreenStrategy+8>>2],deferUntilInEventHandler:deferUntilInEventHandler,canvasResizedCallback:HEAP32[fullscreenStrategy+12>>2],canvasResizedCallbackUserData:HEAP32[fullscreenStrategy+16>>2]};return doRequestFullscreen(target,strategy)}Module["_emscripten_request_fullscreen_strategy"]=_emscripten_request_fullscreen_strategy;_emscripten_request_fullscreen_strategy.sig="iiii";function _emscripten_enter_soft_fullscreen(target,fullscreenStrategy){target=findEventTarget(target);if(!target)return-4;var strategy={scaleMode:HEAP32[fullscreenStrategy>>2],canvasResolutionScaleMode:HEAP32[fullscreenStrategy+4>>2],filteringMode:HEAP32[fullscreenStrategy+8>>2],canvasResizedCallback:HEAP32[fullscreenStrategy+12>>2],canvasResizedCallbackUserData:HEAP32[fullscreenStrategy+16>>2],target:target,softFullscreen:true};var restoreOldStyle=JSEvents_resizeCanvasForFullscreen(target,strategy);document.documentElement.style.overflow="hidden";document.body.scroll="no";document.body.style.margin="0px";var hiddenElements=hideEverythingExceptGivenElement(target);function restoreWindowedState(){restoreOldStyle();restoreHiddenElements(hiddenElements);removeEventListener("resize",softFullscreenResizeWebGLRenderTarget);if(strategy.canvasResizedCallback){getWasmTableEntry(strategy.canvasResizedCallback)(37,0,strategy.canvasResizedCallbackUserData)}currentFullscreenStrategy=0}restoreOldWindowedStyle=restoreWindowedState;currentFullscreenStrategy=strategy;addEventListener("resize",softFullscreenResizeWebGLRenderTarget);if(strategy.canvasResizedCallback){getWasmTableEntry(strategy.canvasResizedCallback)(37,0,strategy.canvasResizedCallbackUserData)}return 0}Module["_emscripten_enter_soft_fullscreen"]=_emscripten_enter_soft_fullscreen;_emscripten_enter_soft_fullscreen.sig="iii";function _emscripten_exit_soft_fullscreen(){if(restoreOldWindowedStyle)restoreOldWindowedStyle();restoreOldWindowedStyle=null;return 0}Module["_emscripten_exit_soft_fullscreen"]=_emscripten_exit_soft_fullscreen;_emscripten_exit_soft_fullscreen.sig="i";function _emscripten_exit_fullscreen(){if(!JSEvents.fullscreenEnabled())return-1;JSEvents.removeDeferredCalls(JSEvents_requestFullscreen);var d=specialHTMLTargets[1];if(d.exitFullscreen){d.fullscreenElement&&d.exitFullscreen()}else if(d.webkitExitFullscreen){d.webkitFullscreenElement&&d.webkitExitFullscreen()}else{return-1}return 0}Module["_emscripten_exit_fullscreen"]=_emscripten_exit_fullscreen;_emscripten_exit_fullscreen.sig="i";function fillPointerlockChangeEventData(eventStruct){var pointerLockElement=document.pointerLockElement||document.mozPointerLockElement||document.webkitPointerLockElement||document.msPointerLockElement;var isPointerlocked=!!pointerLockElement;HEAP32[eventStruct>>2]=isPointerlocked;var nodeName=JSEvents.getNodeNameForTarget(pointerLockElement);var id=pointerLockElement&&pointerLockElement.id?pointerLockElement.id:"";stringToUTF8(nodeName,eventStruct+4,128);stringToUTF8(id,eventStruct+132,128)}Module["fillPointerlockChangeEventData"]=fillPointerlockChangeEventData;function registerPointerlockChangeEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.pointerlockChangeEvent)JSEvents.pointerlockChangeEvent=_malloc(260);var pointerlockChangeEventHandlerFunc=function(e=event){var pointerlockChangeEvent=JSEvents.pointerlockChangeEvent;fillPointerlockChangeEventData(pointerlockChangeEvent);if(getWasmTableEntry(callbackfunc)(eventTypeId,pointerlockChangeEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:pointerlockChangeEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}Module["registerPointerlockChangeEventCallback"]=registerPointerlockChangeEventCallback;function _emscripten_set_pointerlockchange_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){if(!document||!document.body||!document.body.requestPointerLock&&!document.body.mozRequestPointerLock&&!document.body.webkitRequestPointerLock&&!document.body.msRequestPointerLock){return-1}target=findEventTarget(target);if(!target)return-4;registerPointerlockChangeEventCallback(target,userData,useCapture,callbackfunc,20,"pointerlockchange",targetThread);registerPointerlockChangeEventCallback(target,userData,useCapture,callbackfunc,20,"mozpointerlockchange",targetThread);registerPointerlockChangeEventCallback(target,userData,useCapture,callbackfunc,20,"webkitpointerlockchange",targetThread);registerPointerlockChangeEventCallback(target,userData,useCapture,callbackfunc,20,"mspointerlockchange",targetThread);return 0}Module["_emscripten_set_pointerlockchange_callback_on_thread"]=_emscripten_set_pointerlockchange_callback_on_thread;_emscripten_set_pointerlockchange_callback_on_thread.sig="iiiiii";function registerPointerlockErrorEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){var pointerlockErrorEventHandlerFunc=function(e=event){if(getWasmTableEntry(callbackfunc)(eventTypeId,0,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:pointerlockErrorEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}Module["registerPointerlockErrorEventCallback"]=registerPointerlockErrorEventCallback;function _emscripten_set_pointerlockerror_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){if(!document||!document.body.requestPointerLock&&!document.body.mozRequestPointerLock&&!document.body.webkitRequestPointerLock&&!document.body.msRequestPointerLock){return-1}target=findEventTarget(target);if(!target)return-4;registerPointerlockErrorEventCallback(target,userData,useCapture,callbackfunc,38,"pointerlockerror",targetThread);registerPointerlockErrorEventCallback(target,userData,useCapture,callbackfunc,38,"mozpointerlockerror",targetThread);registerPointerlockErrorEventCallback(target,userData,useCapture,callbackfunc,38,"webkitpointerlockerror",targetThread);registerPointerlockErrorEventCallback(target,userData,useCapture,callbackfunc,38,"mspointerlockerror",targetThread);return 0}Module["_emscripten_set_pointerlockerror_callback_on_thread"]=_emscripten_set_pointerlockerror_callback_on_thread;_emscripten_set_pointerlockerror_callback_on_thread.sig="iiiiii";function _emscripten_get_pointerlock_status(pointerlockStatus){if(pointerlockStatus)fillPointerlockChangeEventData(pointerlockStatus);if(!document.body||!document.body.requestPointerLock&&!document.body.mozRequestPointerLock&&!document.body.webkitRequestPointerLock&&!document.body.msRequestPointerLock){return-1}return 0}Module["_emscripten_get_pointerlock_status"]=_emscripten_get_pointerlock_status;_emscripten_get_pointerlock_status.sig="ii";function requestPointerLock(target){if(target.requestPointerLock){target.requestPointerLock()}else{if(document.body.requestPointerLock){return-3}return-1}return 0}Module["requestPointerLock"]=requestPointerLock;function _emscripten_request_pointerlock(target,deferUntilInEventHandler){target=findEventTarget(target);if(!target)return-4;if(!target.requestPointerLock){return-1}var canPerformRequests=JSEvents.canPerformEventHandlerRequests();if(!canPerformRequests){if(deferUntilInEventHandler){JSEvents.deferCall(requestPointerLock,2,[target]);return 1}return-2}return requestPointerLock(target)}Module["_emscripten_request_pointerlock"]=_emscripten_request_pointerlock;_emscripten_request_pointerlock.sig="iii";function _emscripten_exit_pointerlock(){JSEvents.removeDeferredCalls(requestPointerLock);if(document.exitPointerLock){document.exitPointerLock()}else{return-1}return 0}Module["_emscripten_exit_pointerlock"]=_emscripten_exit_pointerlock;_emscripten_exit_pointerlock.sig="i";function _emscripten_vibrate(msecs){if(!navigator.vibrate)return-1;navigator.vibrate(msecs);return 0}Module["_emscripten_vibrate"]=_emscripten_vibrate;_emscripten_vibrate.sig="ii";function _emscripten_vibrate_pattern(msecsArray,numEntries){if(!navigator.vibrate)return-1;var vibrateList=[];for(var i=0;i>2];vibrateList.push(msecs)}navigator.vibrate(vibrateList);return 0}Module["_emscripten_vibrate_pattern"]=_emscripten_vibrate_pattern;_emscripten_vibrate_pattern.sig="iii";function fillVisibilityChangeEventData(eventStruct){var visibilityStates=["hidden","visible","prerender","unloaded"];var visibilityState=visibilityStates.indexOf(document.visibilityState);HEAP32[eventStruct>>2]=document.hidden;HEAP32[eventStruct+4>>2]=visibilityState}Module["fillVisibilityChangeEventData"]=fillVisibilityChangeEventData;function registerVisibilityChangeEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.visibilityChangeEvent)JSEvents.visibilityChangeEvent=_malloc(8);var visibilityChangeEventHandlerFunc=function(e=event){var visibilityChangeEvent=JSEvents.visibilityChangeEvent;fillVisibilityChangeEventData(visibilityChangeEvent);if(getWasmTableEntry(callbackfunc)(eventTypeId,visibilityChangeEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:visibilityChangeEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}Module["registerVisibilityChangeEventCallback"]=registerVisibilityChangeEventCallback;function _emscripten_set_visibilitychange_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!specialHTMLTargets[1]){return-4}registerVisibilityChangeEventCallback(specialHTMLTargets[1],userData,useCapture,callbackfunc,21,"visibilitychange",targetThread);return 0}Module["_emscripten_set_visibilitychange_callback_on_thread"]=_emscripten_set_visibilitychange_callback_on_thread;_emscripten_set_visibilitychange_callback_on_thread.sig="iiiii";function _emscripten_get_visibility_status(visibilityStatus){if(typeof document.visibilityState=="undefined"&&typeof document.hidden=="undefined"){return-1}fillVisibilityChangeEventData(visibilityStatus);return 0}Module["_emscripten_get_visibility_status"]=_emscripten_get_visibility_status;_emscripten_get_visibility_status.sig="ii";function registerTouchEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.touchEvent)JSEvents.touchEvent=_malloc(1696);target=findEventTarget(target);var touchEventHandlerFunc=function(e){var t,touches={},et=e.touches;for(var i=0;i>3]=e.timeStamp;var idx=touchEvent>>2;HEAP32[idx+3]=e.ctrlKey;HEAP32[idx+4]=e.shiftKey;HEAP32[idx+5]=e.altKey;HEAP32[idx+6]=e.metaKey;idx+=7;var targetRect=getBoundingClientRect(target);var numTouches=0;for(var i in touches){t=touches[i];HEAP32[idx+0]=t.identifier;HEAP32[idx+1]=t.screenX;HEAP32[idx+2]=t.screenY;HEAP32[idx+3]=t.clientX;HEAP32[idx+4]=t.clientY;HEAP32[idx+5]=t.pageX;HEAP32[idx+6]=t.pageY;HEAP32[idx+7]=t.isChanged;HEAP32[idx+8]=t.onTarget;HEAP32[idx+9]=t.clientX-targetRect.left;HEAP32[idx+10]=t.clientY-targetRect.top;idx+=13;if(++numTouches>31){break}}HEAP32[touchEvent+8>>2]=numTouches;if(getWasmTableEntry(callbackfunc)(eventTypeId,touchEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString=="touchstart"||eventTypeString=="touchend",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:touchEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}Module["registerTouchEventCallback"]=registerTouchEventCallback;function _emscripten_set_touchstart_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,22,"touchstart",targetThread);return 0}Module["_emscripten_set_touchstart_callback_on_thread"]=_emscripten_set_touchstart_callback_on_thread;_emscripten_set_touchstart_callback_on_thread.sig="iiiiii";function _emscripten_set_touchend_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,23,"touchend",targetThread);return 0}Module["_emscripten_set_touchend_callback_on_thread"]=_emscripten_set_touchend_callback_on_thread;_emscripten_set_touchend_callback_on_thread.sig="iiiiii";function _emscripten_set_touchmove_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,24,"touchmove",targetThread);return 0}Module["_emscripten_set_touchmove_callback_on_thread"]=_emscripten_set_touchmove_callback_on_thread;_emscripten_set_touchmove_callback_on_thread.sig="iiiiii";function _emscripten_set_touchcancel_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,25,"touchcancel",targetThread);return 0}Module["_emscripten_set_touchcancel_callback_on_thread"]=_emscripten_set_touchcancel_callback_on_thread;_emscripten_set_touchcancel_callback_on_thread.sig="iiiiii";function fillGamepadEventData(eventStruct,e){HEAPF64[eventStruct>>3]=e.timestamp;for(var i=0;i>3]=e.axes[i]}for(var i=0;i>3]=e.buttons[i].value}else{HEAPF64[eventStruct+i*8+528>>3]=e.buttons[i]}}for(var i=0;i>2]=e.buttons[i].pressed}else{HEAP32[eventStruct+i*4+1040>>2]=e.buttons[i]==1}}HEAP32[eventStruct+1296>>2]=e.connected;HEAP32[eventStruct+1300>>2]=e.index;HEAP32[eventStruct+8>>2]=e.axes.length;HEAP32[eventStruct+12>>2]=e.buttons.length;stringToUTF8(e.id,eventStruct+1304,64);stringToUTF8(e.mapping,eventStruct+1368,64)}Module["fillGamepadEventData"]=fillGamepadEventData;function registerGamepadEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.gamepadEvent)JSEvents.gamepadEvent=_malloc(1432);var gamepadEventHandlerFunc=function(e=event){var gamepadEvent=JSEvents.gamepadEvent;fillGamepadEventData(gamepadEvent,e["gamepad"]);if(getWasmTableEntry(callbackfunc)(eventTypeId,gamepadEvent,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:gamepadEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}Module["registerGamepadEventCallback"]=registerGamepadEventCallback;function _emscripten_set_gamepadconnected_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;registerGamepadEventCallback(2,userData,useCapture,callbackfunc,26,"gamepadconnected",targetThread);return 0}Module["_emscripten_set_gamepadconnected_callback_on_thread"]=_emscripten_set_gamepadconnected_callback_on_thread;_emscripten_set_gamepadconnected_callback_on_thread.sig="iiiii";function _emscripten_set_gamepaddisconnected_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;registerGamepadEventCallback(2,userData,useCapture,callbackfunc,27,"gamepaddisconnected",targetThread);return 0}Module["_emscripten_set_gamepaddisconnected_callback_on_thread"]=_emscripten_set_gamepaddisconnected_callback_on_thread;_emscripten_set_gamepaddisconnected_callback_on_thread.sig="iiiii";function _emscripten_sample_gamepad_data(){return(JSEvents.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads():null)?0:-1}Module["_emscripten_sample_gamepad_data"]=_emscripten_sample_gamepad_data;_emscripten_sample_gamepad_data.sig="i";function _emscripten_get_num_gamepads(){return JSEvents.lastGamepadState.length}Module["_emscripten_get_num_gamepads"]=_emscripten_get_num_gamepads;_emscripten_get_num_gamepads.sig="i";function _emscripten_get_gamepad_status(index,gamepadState){if(index<0||index>=JSEvents.lastGamepadState.length)return-5;if(!JSEvents.lastGamepadState[index])return-7;fillGamepadEventData(gamepadState,JSEvents.lastGamepadState[index]);return 0}Module["_emscripten_get_gamepad_status"]=_emscripten_get_gamepad_status;_emscripten_get_gamepad_status.sig="iii";function registerBeforeUnloadEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString){var beforeUnloadEventHandlerFunc=function(e=event){var confirmationMessage=getWasmTableEntry(callbackfunc)(eventTypeId,0,userData);if(confirmationMessage){confirmationMessage=UTF8ToString(confirmationMessage)}if(confirmationMessage){e.preventDefault();e.returnValue=confirmationMessage;return confirmationMessage}};var eventHandler={target:findEventTarget(target),eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:beforeUnloadEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}Module["registerBeforeUnloadEventCallback"]=registerBeforeUnloadEventCallback;function _emscripten_set_beforeunload_callback_on_thread(userData,callbackfunc,targetThread){if(typeof onbeforeunload=="undefined")return-1;if(targetThread!==1)return-5;registerBeforeUnloadEventCallback(2,userData,true,callbackfunc,28,"beforeunload");return 0}Module["_emscripten_set_beforeunload_callback_on_thread"]=_emscripten_set_beforeunload_callback_on_thread;_emscripten_set_beforeunload_callback_on_thread.sig="iii";function fillBatteryEventData(eventStruct,e){HEAPF64[eventStruct>>3]=e.chargingTime;HEAPF64[eventStruct+8>>3]=e.dischargingTime;HEAPF64[eventStruct+16>>3]=e.level;HEAP32[eventStruct+24>>2]=e.charging}Module["fillBatteryEventData"]=fillBatteryEventData;function battery(){return navigator.battery||navigator.mozBattery||navigator.webkitBattery}Module["battery"]=battery;function registerBatteryEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.batteryEvent)JSEvents.batteryEvent=_malloc(32);var batteryEventHandlerFunc=function(e=event){var batteryEvent=JSEvents.batteryEvent;fillBatteryEventData(batteryEvent,battery());if(getWasmTableEntry(callbackfunc)(eventTypeId,batteryEvent,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:batteryEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}Module["registerBatteryEventCallback"]=registerBatteryEventCallback;function _emscripten_set_batterychargingchange_callback_on_thread(userData,callbackfunc,targetThread){if(!battery())return-1;registerBatteryEventCallback(battery(),userData,true,callbackfunc,29,"chargingchange",targetThread);return 0}Module["_emscripten_set_batterychargingchange_callback_on_thread"]=_emscripten_set_batterychargingchange_callback_on_thread;_emscripten_set_batterychargingchange_callback_on_thread.sig="iii";function _emscripten_set_batterylevelchange_callback_on_thread(userData,callbackfunc,targetThread){if(!battery())return-1;registerBatteryEventCallback(battery(),userData,true,callbackfunc,30,"levelchange",targetThread);return 0}Module["_emscripten_set_batterylevelchange_callback_on_thread"]=_emscripten_set_batterylevelchange_callback_on_thread;_emscripten_set_batterylevelchange_callback_on_thread.sig="iii";function _emscripten_get_battery_status(batteryState){if(!battery())return-1;fillBatteryEventData(batteryState,battery());return 0}Module["_emscripten_get_battery_status"]=_emscripten_get_battery_status;_emscripten_get_battery_status.sig="ii";function _emscripten_set_element_css_size(target,width,height){target=findEventTarget(target);if(!target)return-4;target.style.width=width+"px";target.style.height=height+"px";return 0}Module["_emscripten_set_element_css_size"]=_emscripten_set_element_css_size;_emscripten_set_element_css_size.sig="iiii";function _emscripten_get_element_css_size(target,width,height){target=findEventTarget(target);if(!target)return-4;var rect=getBoundingClientRect(target);HEAPF64[width>>3]=rect.width;HEAPF64[height>>3]=rect.height;return 0}Module["_emscripten_get_element_css_size"]=_emscripten_get_element_css_size;_emscripten_get_element_css_size.sig="iiii";function _emscripten_html5_remove_all_event_listeners(){JSEvents.removeAllEventListeners()}Module["_emscripten_html5_remove_all_event_listeners"]=_emscripten_html5_remove_all_event_listeners;_emscripten_html5_remove_all_event_listeners.sig="v";function _emscripten_request_animation_frame(cb,userData){return requestAnimationFrame(function(timeStamp){getWasmTableEntry(cb)(timeStamp,userData)})}Module["_emscripten_request_animation_frame"]=_emscripten_request_animation_frame;function _emscripten_cancel_animation_frame(id){cancelAnimationFrame(id)}Module["_emscripten_cancel_animation_frame"]=_emscripten_cancel_animation_frame;function _emscripten_request_animation_frame_loop(cb,userData){function tick(timeStamp){if(getWasmTableEntry(cb)(timeStamp,userData)){requestAnimationFrame(tick)}}return requestAnimationFrame(tick)}Module["_emscripten_request_animation_frame_loop"]=_emscripten_request_animation_frame_loop;function _emscripten_performance_now(){return performance.now()}Module["_emscripten_performance_now"]=_emscripten_performance_now;function _emscripten_get_device_pixel_ratio(){return typeof devicePixelRatio=="number"&&devicePixelRatio||1}Module["_emscripten_get_device_pixel_ratio"]=_emscripten_get_device_pixel_ratio;_emscripten_get_device_pixel_ratio.sig="d";function checkWasiClock(clock_id){return clock_id==0||clock_id==1||clock_id==2||clock_id==3}Module["checkWasiClock"]=checkWasiClock;function _clock_time_get(clk_id,ignored_precision,ptime){if(!checkWasiClock(clk_id)){return 28}var now;if(clk_id===0){now=Date.now()}else if(nowIsMonotonic){now=_emscripten_get_now()}else{return 52}var nsec=Math.round(now*1e3*1e3);HEAP32[ptime>>2]=nsec>>>0;HEAP32[ptime+4>>2]=nsec/Math.pow(2,32)>>>0;return 0}Module["_clock_time_get"]=_clock_time_get;_clock_time_get.sig="iijp";function _clock_res_get(clk_id,pres){if(!checkWasiClock(clk_id)){return 28}var nsec;if(clk_id===0){nsec=1e3*1e3}else if(nowIsMonotonic){nsec=_emscripten_get_now_res()}else{return 52}HEAP32[pres>>2]=nsec>>>0;HEAP32[pres+4>>2]=nsec/Math.pow(2,32)>>>0;return 0}Module["_clock_res_get"]=_clock_res_get;_clock_res_get.sig="iip";function __dlsym_catchup_js(handle,symbolIndex){var lib=LDSO.loadedLibsByHandle[handle];var symDict=lib.module;var symName=Object.keys(symDict)[symbolIndex];var sym=symDict[symName];var result=addFunction(sym,sym.sig);return result}Module["__dlsym_catchup_js"]=__dlsym_catchup_js;__dlsym_catchup_js.sig="ppp";function createDyncallWrapper(sig){var sections=[];var prelude=[0,97,115,109,1,0,0,0];sections.push(prelude);var wrappersig=[sig[0].replace("j","i"),"i",sig.slice(1).replace(/j/g,"ii")].join("");var typeSectionBody=[3];generateFuncType(wrappersig,typeSectionBody);generateFuncType(sig,typeSectionBody);generateFuncType("vi",typeSectionBody);var typeSection=[1];uleb128Encode(typeSectionBody.length,typeSection);typeSection.push.apply(typeSection,typeSectionBody);sections.push(typeSection);var importSection=[2,15,2,1,101,1,116,1,112,0,0,1,101,1,114,0,2];sections.push(importSection);var functionSection=[3,2,1,0];sections.push(functionSection);var exportSection=[7,5,1,1,102,0,1];sections.push(exportSection);var convert_code=[];if(sig[0]==="j"){convert_code=[1,1,126]}else{convert_code.push(0)}function localGet(j){convert_code.push(32);uleb128Encode(j,convert_code)}var j=1;for(var i=1;i{setImmediateWrapped.mapping[id]=undefined;func()});return id}Module["setImmediateWrapped"]=setImmediateWrapped;function clearImmediateWrapped(id){clearImmediate(setImmediateWrapped.mapping[id]);setImmediateWrapped.mapping[id]=undefined}Module["clearImmediateWrapped"]=clearImmediateWrapped;function polyfillSetImmediate(){}Module["polyfillSetImmediate"]=polyfillSetImmediate;function _emscripten_set_immediate(cb,userData){polyfillSetImmediate();return emSetImmediate(function(){callUserCallback(function(){getWasmTableEntry(cb)(userData)})})}Module["_emscripten_set_immediate"]=_emscripten_set_immediate;_emscripten_set_immediate.sig="ipp";function _emscripten_clear_immediate(id){emClearImmediate(id)}Module["_emscripten_clear_immediate"]=_emscripten_clear_immediate;_emscripten_clear_immediate.sig="vi";function _emscripten_set_immediate_loop(cb,userData){polyfillSetImmediate();function tick(){callUserCallback(function(){if(getWasmTableEntry(cb)(userData)){emSetImmediate(tick)}else{}})}emSetImmediate(tick)}Module["_emscripten_set_immediate_loop"]=_emscripten_set_immediate_loop;_emscripten_set_immediate_loop.sig="ipp";function _emscripten_set_timeout(cb,msecs,userData){return safeSetTimeout(()=>getWasmTableEntry(cb)(userData),msecs)}Module["_emscripten_set_timeout"]=_emscripten_set_timeout;_emscripten_set_timeout.sig="ipdp";function _emscripten_clear_timeout(id){clearTimeout(id)}Module["_emscripten_clear_timeout"]=_emscripten_clear_timeout;_emscripten_clear_timeout.sig="vi";function _emscripten_set_timeout_loop(cb,msecs,userData){function tick(){var t=performance.now();var n=t+msecs;callUserCallback(function(){if(getWasmTableEntry(cb)(t,userData)){setTimeout(tick,n-performance.now())}})}return setTimeout(tick,0)}Module["_emscripten_set_timeout_loop"]=_emscripten_set_timeout_loop;_emscripten_set_timeout_loop.sig="vpdp";function _emscripten_set_interval(cb,msecs,userData){return setInterval(function(){callUserCallback(function(){getWasmTableEntry(cb)(userData)})},msecs)}Module["_emscripten_set_interval"]=_emscripten_set_interval;_emscripten_set_interval.sig="ipdp";function _emscripten_clear_interval(id){clearInterval(id)}Module["_emscripten_clear_interval"]=_emscripten_clear_interval;_emscripten_clear_interval.sig="vi";function makePromiseCallback(callback,userData){return value=>{var stack=stackSave();var resultPtr=stackAlloc(POINTER_SIZE);HEAPU32[resultPtr>>2]=0;try{var result=getWasmTableEntry(callback)(resultPtr,userData,value);var resultVal=HEAPU32[resultPtr>>2]}catch(e){if(typeof e!=="number"){throw 0}throw e}finally{stackRestore(stack)}switch(result){case 0:return resultVal;case 1:return getPromise(resultVal);case 2:var ret=getPromise(resultVal);_emscripten_promise_destroy(resultVal);return ret;case 3:throw resultVal}}}Module["makePromiseCallback"]=makePromiseCallback;function _emscripten_promise_then(id,onFulfilled,onRejected,userData){var promise=getPromise(id);var newId=promiseMap.allocate({promise:promise.then(makePromiseCallback(onFulfilled,userData),makePromiseCallback(onRejected,userData))});return newId}Module["_emscripten_promise_then"]=_emscripten_promise_then;_emscripten_promise_then.sig="ppppp";function _emscripten_promise_all(idBuf,resultBuf,size){var promises=[];for(var i=0;i>2];promises[i]=getPromise(id)}var id=promiseMap.allocate({promise:Promise.all(promises).then(results=>{if(resultBuf){for(var i=0;i>2]=result}}return resultBuf})});return id}Module["_emscripten_promise_all"]=_emscripten_promise_all;_emscripten_promise_all.sig="pppp";function _llvm_eh_typeid_for(type){return type}Module["_llvm_eh_typeid_for"]=_llvm_eh_typeid_for;_llvm_eh_typeid_for.sig="ip";function ___cxa_get_exception_ptr(ptr){return new ExceptionInfo(ptr).get_exception_ptr()}Module["___cxa_get_exception_ptr"]=___cxa_get_exception_ptr;___cxa_get_exception_ptr.sig="pp";function ___cxa_call_unexpected(exception){err("Unexpected exception thrown, this is not properly supported - aborting");ABORT=true;throw exception}Module["___cxa_call_unexpected"]=___cxa_call_unexpected;function _emscripten_set_main_loop_timing(mode,value){Browser.mainLoop.timingMode=mode;Browser.mainLoop.timingValue=value;if(!Browser.mainLoop.func){return 1}if(!Browser.mainLoop.running){Browser.mainLoop.running=true}if(mode==0){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setTimeout(){var timeUntilNextTick=Math.max(0,Browser.mainLoop.tickStartTime+value-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,timeUntilNextTick)};Browser.mainLoop.method="timeout"}else if(mode==1){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_rAF(){Browser.requestAnimationFrame(Browser.mainLoop.runner)};Browser.mainLoop.method="rAF"}else if(mode==2){if(typeof setImmediate=="undefined"){var setImmediates=[];var emscriptenMainLoopMessageId="setimmediate";var Browser_setImmediate_messageHandler=event=>{if(event.data===emscriptenMainLoopMessageId||event.data.target===emscriptenMainLoopMessageId){event.stopPropagation();setImmediates.shift()()}};addEventListener("message",Browser_setImmediate_messageHandler,true);setImmediate=function Browser_emulated_setImmediate(func){setImmediates.push(func);if(ENVIRONMENT_IS_WORKER){if(Module["setImmediates"]===undefined)Module["setImmediates"]=[];Module["setImmediates"].push(func);postMessage({target:emscriptenMainLoopMessageId})}else postMessage(emscriptenMainLoopMessageId,"*")}}Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setImmediate(){setImmediate(Browser.mainLoop.runner)};Browser.mainLoop.method="immediate"}return 0}Module["_emscripten_set_main_loop_timing"]=_emscripten_set_main_loop_timing;_emscripten_set_main_loop_timing.sig="iii";function setMainLoop(browserIterationFunc,fps,simulateInfiniteLoop,arg,noSetTiming){assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.");Browser.mainLoop.func=browserIterationFunc;Browser.mainLoop.arg=arg;var thisMainLoopId=Browser.mainLoop.currentlyRunningMainloop;function checkIsRunning(){if(thisMainLoopId0){var start=Date.now();var blocker=Browser.mainLoop.queue.shift();blocker.func(blocker.arg);if(Browser.mainLoop.remainingBlockers){var remaining=Browser.mainLoop.remainingBlockers;var next=remaining%1==0?remaining-1:Math.floor(remaining);if(blocker.counted){Browser.mainLoop.remainingBlockers=next}else{next=next+.5;Browser.mainLoop.remainingBlockers=(8*remaining+next)/9}}out('main loop blocker "'+blocker.name+'" took '+(Date.now()-start)+" ms");Browser.mainLoop.updateStatus();if(!checkIsRunning())return;setTimeout(Browser.mainLoop.runner,0);return}if(!checkIsRunning())return;Browser.mainLoop.currentFrameNumber=Browser.mainLoop.currentFrameNumber+1|0;if(Browser.mainLoop.timingMode==1&&Browser.mainLoop.timingValue>1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else if(Browser.mainLoop.timingMode==0){Browser.mainLoop.tickStartTime=_emscripten_get_now()}Browser.mainLoop.runIter(browserIterationFunc);if(!checkIsRunning())return;if(typeof SDL=="object"&&SDL.audio&&SDL.audio.queueNewAudioData)SDL.audio.queueNewAudioData();Browser.mainLoop.scheduler()};if(!noSetTiming){if(fps&&fps>0)_emscripten_set_main_loop_timing(0,1e3/fps);else _emscripten_set_main_loop_timing(1,1);Browser.mainLoop.scheduler()}if(simulateInfiniteLoop){throw"unwind"}}Module["setMainLoop"]=setMainLoop;var Browser={mainLoop:{running:false,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++},resume:function(){Browser.mainLoop.currentlyRunningMainloop++;var timingMode=Browser.mainLoop.timingMode;var timingValue=Browser.mainLoop.timingValue;var func=Browser.mainLoop.func;Browser.mainLoop.func=null;setMainLoop(func,0,false,Browser.mainLoop.arg,true);_emscripten_set_main_loop_timing(timingMode,timingValue);Browser.mainLoop.scheduler()},updateStatus:function(){if(Module["setStatus"]){var message=Module["statusMessage"]||"Please wait...";var remaining=Browser.mainLoop.remainingBlockers;var expected=Browser.mainLoop.expectedBlockers;if(remaining){if(remaining{assert(img.complete,"Image "+name+" could not be decoded");var canvas=document.createElement("canvas");canvas.width=img.width;canvas.height=img.height;var ctx=canvas.getContext("2d");ctx.drawImage(img,0,0);preloadedImages[name]=canvas;Browser.URLObject.revokeObjectURL(url);if(onload)onload(byteArray)};img.onerror=event=>{out("Image "+url+" could not be decoded");if(onerror)onerror()};img.src=url};Module["preloadPlugins"].push(imagePlugin);var audioPlugin={};audioPlugin["canHandle"]=function audioPlugin_canHandle(name){return!Module.noAudioDecoding&&name.substr(-4)in{".ogg":1,".wav":1,".mp3":1}};audioPlugin["handle"]=function audioPlugin_handle(byteArray,name,onload,onerror){var done=false;function finish(audio){if(done)return;done=true;preloadedAudios[name]=audio;if(onload)onload(byteArray)}function fail(){if(done)return;done=true;preloadedAudios[name]=new Audio;if(onerror)onerror()}if(Browser.hasBlobConstructor){try{var b=new Blob([byteArray],{type:Browser.getMimetype(name)})}catch(e){return fail()}var url=Browser.URLObject.createObjectURL(b);var audio=new Audio;audio.addEventListener("canplaythrough",()=>finish(audio),false);audio.onerror=function audio_onerror(event){if(done)return;err("warning: browser could not fully decode audio "+name+", trying slower base64 approach");function encode64(data){var BASE="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var PAD="=";var ret="";var leftchar=0;var leftbits=0;for(var i=0;i=6){var curr=leftchar>>leftbits-6&63;leftbits-=6;ret+=BASE[curr]}}if(leftbits==2){ret+=BASE[(leftchar&3)<<4];ret+=PAD+PAD}else if(leftbits==4){ret+=BASE[(leftchar&15)<<2];ret+=PAD}return ret}audio.src="data:audio/x-"+name.substr(-3)+";base64,"+encode64(byteArray);finish(audio)};audio.src=url;safeSetTimeout(function(){finish(audio)},1e4)}else{return fail()}};Module["preloadPlugins"].push(audioPlugin);var wasmPlugin={"asyncWasmLoadPromise":new Promise(function(resolve,reject){return resolve()}),"canHandle":function(name){return!Module.noWasmDecoding&&name.endsWith(".so")},"handle":function(byteArray,name,onload,onerror){wasmPlugin["asyncWasmLoadPromise"]=wasmPlugin["asyncWasmLoadPromise"].then(()=>loadWebAssemblyModule(byteArray,{loadAsync:true,nodelete:true})).then(module=>{preloadedWasm[name]=module;onload()},err=>{console.warn("Couldn't instantiate wasm: "+name+" '"+err+"'");onerror()})}};Module["preloadPlugins"].push(wasmPlugin);function pointerLockChange(){Browser.pointerLock=document["pointerLockElement"]===Module["canvas"]||document["mozPointerLockElement"]===Module["canvas"]||document["webkitPointerLockElement"]===Module["canvas"]||document["msPointerLockElement"]===Module["canvas"]}var canvas=Module["canvas"];if(canvas){canvas.requestPointerLock=canvas["requestPointerLock"]||canvas["mozRequestPointerLock"]||canvas["webkitRequestPointerLock"]||canvas["msRequestPointerLock"]||(()=>{});canvas.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||(()=>{});canvas.exitPointerLock=canvas.exitPointerLock.bind(document);document.addEventListener("pointerlockchange",pointerLockChange,false);document.addEventListener("mozpointerlockchange",pointerLockChange,false);document.addEventListener("webkitpointerlockchange",pointerLockChange,false);document.addEventListener("mspointerlockchange",pointerLockChange,false);if(Module["elementPointerLock"]){canvas.addEventListener("click",ev=>{if(!Browser.pointerLock&&Module["canvas"].requestPointerLock){Module["canvas"].requestPointerLock();ev.preventDefault()}},false)}}},handledByPreloadPlugin:function(byteArray,fullname,finish,onerror){Browser.init();var handled=false;Module["preloadPlugins"].forEach(function(plugin){if(handled)return;if(plugin["canHandle"](fullname)){plugin["handle"](byteArray,fullname,finish,onerror);handled=true}});return handled},createContext:function(canvas,useWebGL,setInModule,webGLContextAttributes){if(useWebGL&&Module.ctx&&canvas==Module.canvas)return Module.ctx;var ctx;var contextHandle;if(useWebGL){var contextAttributes={antialias:false,alpha:false,majorVersion:1};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}if(typeof GL!="undefined"){contextHandle=GL.createContext(canvas,contextAttributes);if(contextHandle){ctx=GL.getContext(contextHandle).GLctx}}}else{ctx=canvas.getContext("2d")}if(!ctx)return null;if(setInModule){if(!useWebGL)assert(typeof GLctx=="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it");Module.ctx=ctx;if(useWebGL)GL.makeContextCurrent(contextHandle);Module.useWebGL=useWebGL;Browser.moduleContextCreatedCallbacks.forEach(function(callback){callback()});Browser.init()}return ctx},destroyContext:function(canvas,useWebGL,setInModule){},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen:function(lockPointer,resizeCanvas){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;if(typeof Browser.lockPointer=="undefined")Browser.lockPointer=true;if(typeof Browser.resizeCanvas=="undefined")Browser.resizeCanvas=false;var canvas=Module["canvas"];function fullscreenChange(){Browser.isFullscreen=false;var canvasContainer=canvas.parentNode;if((document["fullscreenElement"]||document["mozFullScreenElement"]||document["msFullscreenElement"]||document["webkitFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvasContainer){canvas.exitFullscreen=Browser.exitFullscreen;if(Browser.lockPointer)canvas.requestPointerLock();Browser.isFullscreen=true;if(Browser.resizeCanvas){Browser.setFullscreenCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}else{canvasContainer.parentNode.insertBefore(canvas,canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas){Browser.setWindowedCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}if(Module["onFullScreen"])Module["onFullScreen"](Browser.isFullscreen);if(Module["onFullscreen"])Module["onFullscreen"](Browser.isFullscreen)}if(!Browser.fullscreenHandlersInstalled){Browser.fullscreenHandlersInstalled=true;document.addEventListener("fullscreenchange",fullscreenChange,false);document.addEventListener("mozfullscreenchange",fullscreenChange,false);document.addEventListener("webkitfullscreenchange",fullscreenChange,false);document.addEventListener("MSFullscreenChange",fullscreenChange,false)}var canvasContainer=document.createElement("div");canvas.parentNode.insertBefore(canvasContainer,canvas);canvasContainer.appendChild(canvas);canvasContainer.requestFullscreen=canvasContainer["requestFullscreen"]||canvasContainer["mozRequestFullScreen"]||canvasContainer["msRequestFullscreen"]||(canvasContainer["webkitRequestFullscreen"]?()=>canvasContainer["webkitRequestFullscreen"](Element["ALLOW_KEYBOARD_INPUT"]):null)||(canvasContainer["webkitRequestFullScreen"]?()=>canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"]):null);canvasContainer.requestFullscreen()},exitFullscreen:function(){if(!Browser.isFullscreen){return false}var CFS=document["exitFullscreen"]||document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["msExitFullscreen"]||document["webkitCancelFullScreen"]||function(){};CFS.apply(document,[]);return true},nextRAF:0,fakeRequestAnimationFrame:function(func){var now=Date.now();if(Browser.nextRAF===0){Browser.nextRAF=now+1e3/60}else{while(now+2>=Browser.nextRAF){Browser.nextRAF+=1e3/60}}var delay=Math.max(Browser.nextRAF-now,0);setTimeout(func,delay)},requestAnimationFrame:function(func){if(typeof requestAnimationFrame=="function"){requestAnimationFrame(func);return}var RAF=Browser.fakeRequestAnimationFrame;RAF(func)},safeSetTimeout:function(func,timeout){return safeSetTimeout(func,timeout)},safeRequestAnimationFrame:function(func){return Browser.requestAnimationFrame(function(){callUserCallback(func)})},getMimetype:function(name){return{"jpg":"image/jpeg","jpeg":"image/jpeg","png":"image/png","bmp":"image/bmp","ogg":"audio/ogg","wav":"audio/wav","mp3":"audio/mpeg"}[name.substr(name.lastIndexOf(".")+1)]},getUserMedia:function(func){if(!window.getUserMedia){window.getUserMedia=navigator["getUserMedia"]||navigator["mozGetUserMedia"]}window.getUserMedia(func)},getMovementX:function(event){return event["movementX"]||event["mozMovementX"]||event["webkitMovementX"]||0},getMovementY:function(event){return event["movementY"]||event["mozMovementY"]||event["webkitMovementY"]||0},getMouseWheelDelta:function(event){var delta=0;switch(event.type){case"DOMMouseScroll":delta=event.detail/3;break;case"mousewheel":delta=event.wheelDelta/120;break;case"wheel":delta=event.deltaY;switch(event.deltaMode){case 0:delta/=100;break;case 1:delta/=3;break;case 2:delta*=80;break;default:throw"unrecognized mouse wheel delta mode: "+event.deltaMode}break;default:throw"unrecognized mouse wheel event: "+event.type}return delta},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(event){if(Browser.pointerLock){if(event.type!="mousemove"&&"mozMovementX"in event){Browser.mouseMovementX=Browser.mouseMovementY=0}else{Browser.mouseMovementX=Browser.getMovementX(event);Browser.mouseMovementY=Browser.getMovementY(event)}if(typeof SDL!="undefined"){Browser.mouseX=SDL.mouseX+Browser.mouseMovementX;Browser.mouseY=SDL.mouseY+Browser.mouseMovementY}else{Browser.mouseX+=Browser.mouseMovementX;Browser.mouseY+=Browser.mouseMovementY}}else{var rect=Module["canvas"].getBoundingClientRect();var cw=Module["canvas"].width;var ch=Module["canvas"].height;var scrollX=typeof window.scrollX!="undefined"?window.scrollX:window.pageXOffset;var scrollY=typeof window.scrollY!="undefined"?window.scrollY:window.pageYOffset;if(event.type==="touchstart"||event.type==="touchend"||event.type==="touchmove"){var touch=event.touch;if(touch===undefined){return}var adjustedX=touch.pageX-(scrollX+rect.left);var adjustedY=touch.pageY-(scrollY+rect.top);adjustedX=adjustedX*(cw/rect.width);adjustedY=adjustedY*(ch/rect.height);var coords={x:adjustedX,y:adjustedY};if(event.type==="touchstart"){Browser.lastTouches[touch.identifier]=coords;Browser.touches[touch.identifier]=coords}else if(event.type==="touchend"||event.type==="touchmove"){var last=Browser.touches[touch.identifier];if(!last)last=coords;Browser.lastTouches[touch.identifier]=last;Browser.touches[touch.identifier]=coords}return}var x=event.pageX-(scrollX+rect.left);var y=event.pageY-(scrollY+rect.top);x=x*(cw/rect.width);y=y*(ch/rect.height);Browser.mouseMovementX=x-Browser.mouseX;Browser.mouseMovementY=y-Browser.mouseY;Browser.mouseX=x;Browser.mouseY=y}},resizeListeners:[],updateResizeListeners:function(){var canvas=Module["canvas"];Browser.resizeListeners.forEach(function(listener){listener(canvas.width,canvas.height)})},setCanvasSize:function(width,height,noUpdates){var canvas=Module["canvas"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags|8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},setWindowedCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags&~8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},updateCanvasDimensions:function(canvas,wNative,hNative){if(wNative&&hNative){canvas.widthNative=wNative;canvas.heightNative=hNative}else{wNative=canvas.widthNative;hNative=canvas.heightNative}var w=wNative;var h=hNative;if(Module["forcedAspectRatio"]&&Module["forcedAspectRatio"]>0){if(w/h{if(onload)getWasmTableEntry(onload)(file)},()=>{if(onerror)getWasmTableEntry(onerror)(file)},true);return 0}Module["_emscripten_run_preload_plugins"]=_emscripten_run_preload_plugins;_emscripten_run_preload_plugins.sig="iiii";function _emscripten_run_preload_plugins_data(data,size,suffix,arg,onload,onerror){var _suffix=UTF8ToString(suffix);if(!Browser.asyncPrepareDataCounter)Browser.asyncPrepareDataCounter=0;var name="prepare_data_"+Browser.asyncPrepareDataCounter+++"."+_suffix;var lengthAsUTF8=lengthBytesUTF8(name);var cname=_malloc(lengthAsUTF8+1);stringToUTF8(name,cname,lengthAsUTF8+1);FS.createPreloadedFile("/",name,HEAPU8.subarray(data,data+size),true,true,()=>{if(onload)getWasmTableEntry(onload)(arg,cname)},()=>{if(onerror)getWasmTableEntry(onerror)(arg)},true)}Module["_emscripten_run_preload_plugins_data"]=_emscripten_run_preload_plugins_data;_emscripten_run_preload_plugins_data.sig="viiiiii";function _emscripten_async_run_script(script,millis){safeSetTimeout(function(){_emscripten_run_script(script)},millis)}Module["_emscripten_async_run_script"]=_emscripten_async_run_script;function _emscripten_async_load_script(url,onload,onerror){onload=getWasmTableEntry(onload);onerror=getWasmTableEntry(onerror);assert(runDependencies===0,"async_load_script must be run when no other dependencies are active");var script=document.createElement("script");script.onload=function script_onload(){if(onload){if(runDependencies>0){dependenciesFulfilled=onload}else{onload()}}};script.onerror=()=>{if(onerror)onerror()};script.src=UTF8ToString(url);document.body.appendChild(script)}Module["_emscripten_async_load_script"]=_emscripten_async_load_script;function _emscripten_get_main_loop_timing(mode,value){if(mode)HEAP32[mode>>2]=Browser.mainLoop.timingMode;if(value)HEAP32[value>>2]=Browser.mainLoop.timingValue}Module["_emscripten_get_main_loop_timing"]=_emscripten_get_main_loop_timing;_emscripten_get_main_loop_timing.sig="vii";function _emscripten_set_main_loop(func,fps,simulateInfiniteLoop){var browserIterationFunc=getWasmTableEntry(func);setMainLoop(browserIterationFunc,fps,simulateInfiniteLoop)}Module["_emscripten_set_main_loop"]=_emscripten_set_main_loop;_emscripten_set_main_loop.sig="viii";function _emscripten_set_main_loop_arg(func,arg,fps,simulateInfiniteLoop){var browserIterationFunc=()=>getWasmTableEntry(func)(arg);setMainLoop(browserIterationFunc,fps,simulateInfiniteLoop,arg)}Module["_emscripten_set_main_loop_arg"]=_emscripten_set_main_loop_arg;_emscripten_set_main_loop_arg.sig="viiii";function _emscripten_cancel_main_loop(){Browser.mainLoop.pause();Browser.mainLoop.func=null}Module["_emscripten_cancel_main_loop"]=_emscripten_cancel_main_loop;_emscripten_cancel_main_loop.sig="v";function _emscripten_pause_main_loop(){Browser.mainLoop.pause()}Module["_emscripten_pause_main_loop"]=_emscripten_pause_main_loop;_emscripten_pause_main_loop.sig="v";function _emscripten_resume_main_loop(){Browser.mainLoop.resume()}Module["_emscripten_resume_main_loop"]=_emscripten_resume_main_loop;_emscripten_resume_main_loop.sig="v";function __emscripten_push_main_loop_blocker(func,arg,name){Browser.mainLoop.queue.push({func:function(){getWasmTableEntry(func)(arg)},name:UTF8ToString(name),counted:true});Browser.mainLoop.updateStatus()}Module["__emscripten_push_main_loop_blocker"]=__emscripten_push_main_loop_blocker;function __emscripten_push_uncounted_main_loop_blocker(func,arg,name){Browser.mainLoop.queue.push({func:function(){getWasmTableEntry(func)(arg)},name:UTF8ToString(name),counted:false});Browser.mainLoop.updateStatus()}Module["__emscripten_push_uncounted_main_loop_blocker"]=__emscripten_push_uncounted_main_loop_blocker;function _emscripten_set_main_loop_expected_blockers(num){Browser.mainLoop.expectedBlockers=num;Browser.mainLoop.remainingBlockers=num;Browser.mainLoop.updateStatus()}Module["_emscripten_set_main_loop_expected_blockers"]=_emscripten_set_main_loop_expected_blockers;_emscripten_set_main_loop_expected_blockers.sig="vi";function _emscripten_async_call(func,arg,millis){function wrapper(){getWasmTableEntry(func)(arg)}if(millis>=0||ENVIRONMENT_IS_NODE){safeSetTimeout(wrapper,millis)}else{Browser.safeRequestAnimationFrame(wrapper)}}Module["_emscripten_async_call"]=_emscripten_async_call;_emscripten_async_call.sig="vppi";function _emscripten_get_window_title(){var buflen=256;if(!_emscripten_get_window_title.buffer){_emscripten_get_window_title.buffer=_malloc(buflen)}stringToUTF8(document.title,_emscripten_get_window_title.buffer,buflen);return _emscripten_get_window_title.buffer}Module["_emscripten_get_window_title"]=_emscripten_get_window_title;_emscripten_get_window_title.sig="iv";function _emscripten_set_window_title(title){setWindowTitle(UTF8ToString(title))}Module["_emscripten_set_window_title"]=_emscripten_set_window_title;_emscripten_set_window_title.sig="vi";function _emscripten_get_screen_size(width,height){HEAP32[width>>2]=screen.width;HEAP32[height>>2]=screen.height}Module["_emscripten_get_screen_size"]=_emscripten_get_screen_size;_emscripten_get_screen_size.sig="vii";function _emscripten_hide_mouse(){var styleSheet=document.styleSheets[0];var rules=styleSheet.cssRules;for(var i=0;i>2]=canvas.width;HEAP32[height>>2]=canvas.height;HEAP32[isFullscreen>>2]=Browser.isFullscreen?1:0}Module["_emscripten_get_canvas_size"]=_emscripten_get_canvas_size;_emscripten_get_canvas_size.sig="viii";function _emscripten_create_worker(url){url=UTF8ToString(url);var id=Browser.workers.length;var info={worker:new Worker(url),callbacks:[],awaited:0,buffer:0,bufferSize:0};info.worker.onmessage=function info_worker_onmessage(msg){if(ABORT)return;var info=Browser.workers[id];if(!info)return;var callbackId=msg.data["callbackId"];var callbackInfo=info.callbacks[callbackId];if(!callbackInfo)return;if(msg.data["finalResponse"]){info.awaited--;info.callbacks[callbackId]=null}var data=msg.data["data"];if(data){if(!data.byteLength)data=new Uint8Array(data);if(!info.buffer||info.bufferSize>2]=canvas.width;HEAP32[h>>2]=canvas.height;return buf}return 0}Module["_emscripten_get_preloaded_image_data"]=_emscripten_get_preloaded_image_data;_emscripten_get_preloaded_image_data.sig="iiii";function _emscripten_get_preloaded_image_data_from_FILE(file,w,h){var fd=_fileno(file);var stream=FS.getStream(fd);if(stream){return _emscripten_get_preloaded_image_data(stream.path,w,h)}return 0}Module["_emscripten_get_preloaded_image_data_from_FILE"]=_emscripten_get_preloaded_image_data_from_FILE;_emscripten_get_preloaded_image_data_from_FILE.sig="iiii";var wget={wgetRequests:{},nextWgetRequestHandle:0,getNextWgetRequestHandle:function(){var handle=wget.nextWgetRequestHandle;wget.nextWgetRequestHandle++;return handle}};Module["wget"]=wget;function _emscripten_async_wget(url,file,onload,onerror){var _url=UTF8ToString(url);var _file=UTF8ToString(file);_file=PATH_FS.resolve(_file);function doCallback(callback){if(callback){callUserCallback(function(){withStackSave(function(){getWasmTableEntry(callback)(allocateUTF8OnStack(_file))})})}}var destinationDirectory=PATH.dirname(_file);FS.createPreloadedFile(destinationDirectory,PATH.basename(_file),_url,true,true,function(){doCallback(onload)},function(){doCallback(onerror)},false,false,function(){try{FS.unlink(_file)}catch(e){}FS.mkdirTree(destinationDirectory)})}Module["_emscripten_async_wget"]=_emscripten_async_wget;_emscripten_async_wget.sig="viiii";function _emscripten_async_wget_data(url,arg,onload,onerror){asyncLoad(UTF8ToString(url),function(byteArray){callUserCallback(function(){var buffer=_malloc(byteArray.length);HEAPU8.set(byteArray,buffer);getWasmTableEntry(onload)(arg,buffer,byteArray.length);_free(buffer)})},function(){if(onerror){callUserCallback(function(){getWasmTableEntry(onerror)(arg)})}},true)}Module["_emscripten_async_wget_data"]=_emscripten_async_wget_data;_emscripten_async_wget_data.sig="viiii";function _emscripten_async_wget2(url,file,request,param,arg,onload,onerror,onprogress){var _url=UTF8ToString(url);var _file=UTF8ToString(file);_file=PATH_FS.resolve(_file);var _request=UTF8ToString(request);var _param=UTF8ToString(param);var index=_file.lastIndexOf("/");var http=new XMLHttpRequest;http.open(_request,_url,true);http.responseType="arraybuffer";var handle=wget.getNextWgetRequestHandle();var destinationDirectory=PATH.dirname(_file);http.onload=function http_onload(e){if(http.status>=200&&http.status<300){try{FS.unlink(_file)}catch(e){}FS.mkdirTree(destinationDirectory);FS.createDataFile(_file.substr(0,index),_file.substr(index+1),new Uint8Array(http.response),true,true,false);if(onload){withStackSave(function(){getWasmTableEntry(onload)(handle,arg,allocateUTF8OnStack(_file))})}}else{if(onerror)getWasmTableEntry(onerror)(handle,arg,http.status)}delete wget.wgetRequests[handle]};http.onerror=function http_onerror(e){if(onerror)getWasmTableEntry(onerror)(handle,arg,http.status);delete wget.wgetRequests[handle]};http.onprogress=function http_onprogress(e){if(e.lengthComputable||e.lengthComputable===undefined&&e.total!=0){var percentComplete=e.loaded/e.total*100;if(onprogress)getWasmTableEntry(onprogress)(handle,arg,percentComplete)}};http.onabort=function http_onabort(e){delete wget.wgetRequests[handle]};if(_request=="POST"){http.setRequestHeader("Content-type","application/x-www-form-urlencoded");http.send(_param)}else{http.send(null)}wget.wgetRequests[handle]=http;return handle}Module["_emscripten_async_wget2"]=_emscripten_async_wget2;_emscripten_async_wget2.sig="iiiiiiiii";function _emscripten_async_wget2_data(url,request,param,arg,free,onload,onerror,onprogress){var _url=UTF8ToString(url);var _request=UTF8ToString(request);var _param=UTF8ToString(param);var http=new XMLHttpRequest;http.open(_request,_url,true);http.responseType="arraybuffer";var handle=wget.getNextWgetRequestHandle();function onerrorjs(){if(onerror){var statusText=0;if(http.statusText){var len=lengthBytesUTF8(http.statusText)+1;statusText=stackAlloc(len);stringToUTF8(http.statusText,statusText,len)}getWasmTableEntry(onerror)(handle,arg,http.status,statusText)}}http.onload=function http_onload(e){if(http.status>=200&&http.status<300||http.status===0&&_url.substr(0,4).toLowerCase()!="http"){var byteArray=new Uint8Array(http.response);var buffer=_malloc(byteArray.length);HEAPU8.set(byteArray,buffer);if(onload)getWasmTableEntry(onload)(handle,arg,buffer,byteArray.length);if(free)_free(buffer)}else{onerrorjs()}delete wget.wgetRequests[handle]};http.onerror=function http_onerror(e){onerrorjs();delete wget.wgetRequests[handle]};http.onprogress=function http_onprogress(e){if(onprogress)getWasmTableEntry(onprogress)(handle,arg,e.loaded,e.lengthComputable||e.lengthComputable===undefined?e.total:0)};http.onabort=function http_onabort(e){delete wget.wgetRequests[handle]};if(_request=="POST"){http.setRequestHeader("Content-type","application/x-www-form-urlencoded");http.send(_param)}else{http.send(null)}wget.wgetRequests[handle]=http;return handle}Module["_emscripten_async_wget2_data"]=_emscripten_async_wget2_data;_emscripten_async_wget2_data.sig="iiiiiiiii";function _emscripten_async_wget2_abort(handle){var http=wget.wgetRequests[handle];if(http){http.abort()}}Module["_emscripten_async_wget2_abort"]=_emscripten_async_wget2_abort;_emscripten_async_wget2_abort.sig="vi";function _setNetworkCallback(event,userData,callback){function _callback(data){try{if(event==="error"){withStackSave(function(){var msg=allocateUTF8OnStack(data[2]);getWasmTableEntry(callback)(data[0],data[1],msg,userData)})}else{getWasmTableEntry(callback)(data,userData)}}catch(e){if(!(e instanceof ExitStatus)){if(e&&typeof e=="object"&&e.stack)err("exception thrown: "+[e,e.stack]);throw e}}}Module["websocket"]["on"](event,callback?_callback:null)}Module["_setNetworkCallback"]=_setNetworkCallback;function _emscripten_set_socket_error_callback(userData,callback){_setNetworkCallback("error",userData,callback)}Module["_emscripten_set_socket_error_callback"]=_emscripten_set_socket_error_callback;function _emscripten_set_socket_open_callback(userData,callback){_setNetworkCallback("open",userData,callback)}Module["_emscripten_set_socket_open_callback"]=_emscripten_set_socket_open_callback;function _emscripten_set_socket_listen_callback(userData,callback){_setNetworkCallback("listen",userData,callback)}Module["_emscripten_set_socket_listen_callback"]=_emscripten_set_socket_listen_callback;function _emscripten_set_socket_connection_callback(userData,callback){_setNetworkCallback("connection",userData,callback)}Module["_emscripten_set_socket_connection_callback"]=_emscripten_set_socket_connection_callback;function _emscripten_set_socket_message_callback(userData,callback){_setNetworkCallback("message",userData,callback)}Module["_emscripten_set_socket_message_callback"]=_emscripten_set_socket_message_callback;function _emscripten_set_socket_close_callback(userData,callback){_setNetworkCallback("close",userData,callback)}Module["_emscripten_set_socket_close_callback"]=_emscripten_set_socket_close_callback;var ALLOC_NORMAL=0;Module["ALLOC_NORMAL"]=ALLOC_NORMAL;var ALLOC_STACK=1;Module["ALLOC_STACK"]=ALLOC_STACK;function allocate(slab,allocator){var ret;if(allocator==ALLOC_STACK){ret=stackAlloc(slab.length)}else{ret=_malloc(slab.length)}if(!slab.subarray&&!slab.slice){slab=new Uint8Array(slab)}HEAPU8.set(slab,ret);return ret}Module["allocate"]=allocate;function _emscripten_is_main_browser_thread(){return!ENVIRONMENT_IS_WORKER}Module["_emscripten_is_main_browser_thread"]=_emscripten_is_main_browser_thread;var WS={sockets:[null],socketEvent:null};Module["WS"]=WS;function _emscripten_websocket_get_ready_state(socketId,readyState){var socket=WS.sockets[socketId];if(!socket){return-3}HEAP16[readyState>>1]=socket.readyState;return 0}Module["_emscripten_websocket_get_ready_state"]=_emscripten_websocket_get_ready_state;_emscripten_websocket_get_ready_state.sig="iii";function _emscripten_websocket_get_buffered_amount(socketId,bufferedAmount){var socket=WS.sockets[socketId];if(!socket){return-3}tempI64=[socket.bufferedAmount>>>0,(tempDouble=socket.bufferedAmount,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[bufferedAmount>>2]=tempI64[0],HEAP32[bufferedAmount+4>>2]=tempI64[1];return 0}Module["_emscripten_websocket_get_buffered_amount"]=_emscripten_websocket_get_buffered_amount;_emscripten_websocket_get_buffered_amount.sig="iii";function _emscripten_websocket_get_extensions(socketId,extensions,extensionsLength){var socket=WS.sockets[socketId];if(!socket){return-3}if(!extensions)return-5;stringToUTF8(socket.extensions,extensions,extensionsLength);return 0}Module["_emscripten_websocket_get_extensions"]=_emscripten_websocket_get_extensions;_emscripten_websocket_get_extensions.sig="iiii";function _emscripten_websocket_get_extensions_length(socketId,extensionsLength){var socket=WS.sockets[socketId];if(!socket){return-3}if(!extensionsLength)return-5;HEAP32[extensionsLength>>2]=lengthBytesUTF8(socket.extensions)+1;return 0}Module["_emscripten_websocket_get_extensions_length"]=_emscripten_websocket_get_extensions_length;_emscripten_websocket_get_extensions_length.sig="iii";function _emscripten_websocket_get_protocol(socketId,protocol,protocolLength){var socket=WS.sockets[socketId];if(!socket){return-3}if(!protocol)return-5;stringToUTF8(socket.protocol,protocol,protocolLength);return 0}Module["_emscripten_websocket_get_protocol"]=_emscripten_websocket_get_protocol;_emscripten_websocket_get_protocol.sig="iiii";function _emscripten_websocket_get_protocol_length(socketId,protocolLength){var socket=WS.sockets[socketId];if(!socket){return-3}if(!protocolLength)return-5;HEAP32[protocolLength>>2]=lengthBytesUTF8(socket.protocol)+1;return 0}Module["_emscripten_websocket_get_protocol_length"]=_emscripten_websocket_get_protocol_length;_emscripten_websocket_get_protocol_length.sig="iii";function _emscripten_websocket_get_url(socketId,url,urlLength){var socket=WS.sockets[socketId];if(!socket){return-3}if(!url)return-5;stringToUTF8(socket.url,url,urlLength);return 0}Module["_emscripten_websocket_get_url"]=_emscripten_websocket_get_url;_emscripten_websocket_get_url.sig="iiii";function _emscripten_websocket_get_url_length(socketId,urlLength){var socket=WS.sockets[socketId];if(!socket){return-3}if(!urlLength)return-5;HEAP32[urlLength>>2]=lengthBytesUTF8(socket.url)+1;return 0}Module["_emscripten_websocket_get_url_length"]=_emscripten_websocket_get_url_length;_emscripten_websocket_get_url_length.sig="iii";function _emscripten_websocket_set_onopen_callback_on_thread(socketId,userData,callbackFunc,thread){if(!WS.socketEvent)WS.socketEvent=_malloc(1024);var socket=WS.sockets[socketId];if(!socket){return-3}socket.onopen=function(e){HEAPU32[WS.socketEvent>>2]=socketId;getWasmTableEntry(callbackFunc)(0,WS.socketEvent,userData)};return 0}Module["_emscripten_websocket_set_onopen_callback_on_thread"]=_emscripten_websocket_set_onopen_callback_on_thread;_emscripten_websocket_set_onopen_callback_on_thread.sig="iiiii";function _emscripten_websocket_set_onerror_callback_on_thread(socketId,userData,callbackFunc,thread){if(!WS.socketEvent)WS.socketEvent=_malloc(1024);var socket=WS.sockets[socketId];if(!socket){return-3}socket.onerror=function(e){HEAPU32[WS.socketEvent>>2]=socketId;getWasmTableEntry(callbackFunc)(0,WS.socketEvent,userData)};return 0}Module["_emscripten_websocket_set_onerror_callback_on_thread"]=_emscripten_websocket_set_onerror_callback_on_thread;_emscripten_websocket_set_onerror_callback_on_thread.sig="iiiii";function _emscripten_websocket_set_onclose_callback_on_thread(socketId,userData,callbackFunc,thread){if(!WS.socketEvent)WS.socketEvent=_malloc(1024);var socket=WS.sockets[socketId];if(!socket){return-3}socket.onclose=function(e){HEAPU32[WS.socketEvent>>2]=socketId;HEAPU32[WS.socketEvent+4>>2]=e.wasClean;HEAPU32[WS.socketEvent+8>>2]=e.code;stringToUTF8(e.reason,WS.socketEvent+10,512);getWasmTableEntry(callbackFunc)(0,WS.socketEvent,userData)};return 0}Module["_emscripten_websocket_set_onclose_callback_on_thread"]=_emscripten_websocket_set_onclose_callback_on_thread;_emscripten_websocket_set_onclose_callback_on_thread.sig="iiiii";function _emscripten_websocket_set_onmessage_callback_on_thread(socketId,userData,callbackFunc,thread){if(!WS.socketEvent)WS.socketEvent=_malloc(1024);var socket=WS.sockets[socketId];if(!socket){return-3}socket.onmessage=function(e){HEAPU32[WS.socketEvent>>2]=socketId;if(typeof e.data=="string"){var len=lengthBytesUTF8(e.data)+1;var buf=_malloc(len);stringToUTF8(e.data,buf,len);HEAPU32[WS.socketEvent+12>>2]=1}else{var len=e.data.byteLength;var buf=_malloc(len);HEAP8.set(new Uint8Array(e.data),buf);HEAPU32[WS.socketEvent+12>>2]=0}HEAPU32[WS.socketEvent+4>>2]=buf;HEAPU32[WS.socketEvent+8>>2]=len;getWasmTableEntry(callbackFunc)(0,WS.socketEvent,userData);_free(buf)};return 0}Module["_emscripten_websocket_set_onmessage_callback_on_thread"]=_emscripten_websocket_set_onmessage_callback_on_thread;_emscripten_websocket_set_onmessage_callback_on_thread.sig="iiiii";function _emscripten_websocket_new(createAttributes){if(typeof WebSocket=="undefined"){return-1}if(!createAttributes){return-5}var createAttrs=createAttributes>>2;var url=UTF8ToString(HEAP32[createAttrs]);var protocols=HEAP32[createAttrs+1];var socket=protocols?new WebSocket(url,UTF8ToString(protocols).split(",")):new WebSocket(url);socket.binaryType="arraybuffer";var socketId=WS.sockets.length;WS.sockets[socketId]=socket;return socketId}Module["_emscripten_websocket_new"]=_emscripten_websocket_new;_emscripten_websocket_new.sig="ii";function _emscripten_websocket_send_utf8_text(socketId,textData){var socket=WS.sockets[socketId];if(!socket){return-3}var str=UTF8ToString(textData);socket.send(str);return 0}Module["_emscripten_websocket_send_utf8_text"]=_emscripten_websocket_send_utf8_text;_emscripten_websocket_send_utf8_text.sig="iii";function _emscripten_websocket_send_binary(socketId,binaryData,dataLength){var socket=WS.sockets[socketId];if(!socket){return-3}socket.send(HEAPU8.subarray(binaryData,binaryData+dataLength));return 0}Module["_emscripten_websocket_send_binary"]=_emscripten_websocket_send_binary;_emscripten_websocket_send_binary.sig="iiii";function _emscripten_websocket_close(socketId,code,reason){var socket=WS.sockets[socketId];if(!socket){return-3}var reasonStr=reason?UTF8ToString(reason):undefined;if(reason)socket.close(code||undefined,UTF8ToString(reason));else if(code)socket.close(code);else socket.close();return 0}Module["_emscripten_websocket_close"]=_emscripten_websocket_close;_emscripten_websocket_close.sig="iiii";function _emscripten_websocket_delete(socketId){var socket=WS.sockets[socketId];if(!socket){return-3}socket.onopen=socket.onerror=socket.onclose=socket.onmessage=null;delete WS.sockets[socketId];return 0}Module["_emscripten_websocket_delete"]=_emscripten_websocket_delete;_emscripten_websocket_delete.sig="ii";function _emscripten_websocket_is_supported(){return typeof WebSocket!="undefined"}Module["_emscripten_websocket_is_supported"]=_emscripten_websocket_is_supported;_emscripten_websocket_is_supported.sig="i";function _emscripten_websocket_deinitialize(){for(var i in WS.sockets){var socket=WS.sockets[i];if(socket){socket.close();_emscripten_websocket_delete(i)}}WS.sockets=[]}Module["_emscripten_websocket_deinitialize"]=_emscripten_websocket_deinitialize;_emscripten_websocket_deinitialize.sig="v";function _emscripten_webgl_enable_ANGLE_instanced_arrays(ctx){return __webgl_enable_ANGLE_instanced_arrays(GL.contexts[ctx].GLctx)}Module["_emscripten_webgl_enable_ANGLE_instanced_arrays"]=_emscripten_webgl_enable_ANGLE_instanced_arrays;function _emscripten_webgl_enable_OES_vertex_array_object(ctx){return __webgl_enable_OES_vertex_array_object(GL.contexts[ctx].GLctx)}Module["_emscripten_webgl_enable_OES_vertex_array_object"]=_emscripten_webgl_enable_OES_vertex_array_object;function _emscripten_webgl_enable_WEBGL_draw_buffers(ctx){return __webgl_enable_WEBGL_draw_buffers(GL.contexts[ctx].GLctx)}Module["_emscripten_webgl_enable_WEBGL_draw_buffers"]=_emscripten_webgl_enable_WEBGL_draw_buffers;function _emscripten_webgl_enable_WEBGL_multi_draw(ctx){return __webgl_enable_WEBGL_multi_draw(GL.contexts[ctx].GLctx)}Module["_emscripten_webgl_enable_WEBGL_multi_draw"]=_emscripten_webgl_enable_WEBGL_multi_draw;function _glPixelStorei(pname,param){if(pname==3317){GL.unpackAlignment=param}GLctx.pixelStorei(pname,param)}Module["_glPixelStorei"]=_glPixelStorei;_glPixelStorei.sig="vii";function _glGetString(name_){var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret}Module["_glGetString"]=_glGetString;_glGetString.sig="ii";function _glGetIntegerv(name_,p){emscriptenWebGLGet(name_,p,0)}Module["_glGetIntegerv"]=_glGetIntegerv;_glGetIntegerv.sig="vii";function _glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}Module["_glGetFloatv"]=_glGetFloatv;_glGetFloatv.sig="vii";function _glGetBooleanv(name_,p){emscriptenWebGLGet(name_,p,4)}Module["_glGetBooleanv"]=_glGetBooleanv;_glGetBooleanv.sig="vii";function _glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}Module["_glDeleteTextures"]=_glDeleteTextures;_glDeleteTextures.sig="vii";function _glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}Module["_glCompressedTexImage2D"]=_glCompressedTexImage2D;_glCompressedTexImage2D.sig="viiiiiiii";function _glCompressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,imageSize,data){GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,data?HEAPU8.subarray(data,data+imageSize):null)}Module["_glCompressedTexSubImage2D"]=_glCompressedTexSubImage2D;_glCompressedTexSubImage2D.sig="viiiiiiiii";function _glTexImage2D(target,level,internalFormat,width,height,border,format,type,pixels){GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat):null)}Module["_glTexImage2D"]=_glTexImage2D;_glTexImage2D.sig="viiiiiiiii";function _glTexSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels){var pixelData=null;if(pixels)pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,0);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixelData)}Module["_glTexSubImage2D"]=_glTexSubImage2D;_glTexSubImage2D.sig="viiiiiiiii";function _glReadPixels(x,y,width,height,format,type,pixels){var pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,format);if(!pixelData){GL.recordError(1280);return}GLctx.readPixels(x,y,width,height,format,type,pixelData)}Module["_glReadPixels"]=_glReadPixels;_glReadPixels.sig="viiiiiii";function _glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}Module["_glBindTexture"]=_glBindTexture;_glBindTexture.sig="vii";function _glGetTexParameterfv(target,pname,params){if(!params){GL.recordError(1281);return}HEAPF32[params>>2]=GLctx.getTexParameter(target,pname)}Module["_glGetTexParameterfv"]=_glGetTexParameterfv;_glGetTexParameterfv.sig="viii";function _glGetTexParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getTexParameter(target,pname)}Module["_glGetTexParameteriv"]=_glGetTexParameteriv;_glGetTexParameteriv.sig="viii";function _glTexParameterfv(target,pname,params){var param=HEAPF32[params>>2];GLctx.texParameterf(target,pname,param)}Module["_glTexParameterfv"]=_glTexParameterfv;_glTexParameterfv.sig="viii";function _glTexParameteriv(target,pname,params){var param=HEAP32[params>>2];GLctx.texParameteri(target,pname,param)}Module["_glTexParameteriv"]=_glTexParameteriv;_glTexParameteriv.sig="viii";function _glIsTexture(id){var texture=GL.textures[id];if(!texture)return 0;return GLctx.isTexture(texture)}Module["_glIsTexture"]=_glIsTexture;_glIsTexture.sig="ii";function _glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}Module["_glGenBuffers"]=_glGenBuffers;_glGenBuffers.sig="vii";function _glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}Module["_glGenTextures"]=_glGenTextures;_glGenTextures.sig="vii";function _glDeleteBuffers(n,buffers){for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null}}Module["_glDeleteBuffers"]=_glDeleteBuffers;_glDeleteBuffers.sig="vii";function _glGetBufferParameteriv(target,value,data){if(!data){GL.recordError(1281);return}HEAP32[data>>2]=GLctx.getBufferParameter(target,value)}Module["_glGetBufferParameteriv"]=_glGetBufferParameteriv;_glGetBufferParameteriv.sig="viii";function _glBufferData(target,size,data,usage){GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}Module["_glBufferData"]=_glBufferData;_glBufferData.sig="viiii";function _glBufferSubData(target,offset,size,data){GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}Module["_glBufferSubData"]=_glBufferSubData;_glBufferSubData.sig="viiii";function _glGenQueriesEXT(n,ids){for(var i=0;i>2]=0;return}var id=GL.getNewId(GL.queries);query.name=id;GL.queries[id]=query;HEAP32[ids+i*4>>2]=id}}Module["_glGenQueriesEXT"]=_glGenQueriesEXT;_glGenQueriesEXT.sig="vii";function _glDeleteQueriesEXT(n,ids){for(var i=0;i>2];var query=GL.queries[id];if(!query)continue;GLctx.disjointTimerQueryExt["deleteQueryEXT"](query);GL.queries[id]=null}}Module["_glDeleteQueriesEXT"]=_glDeleteQueriesEXT;_glDeleteQueriesEXT.sig="vii";function _glIsQueryEXT(id){var query=GL.queries[id];if(!query)return 0;return GLctx.disjointTimerQueryExt["isQueryEXT"](query)}Module["_glIsQueryEXT"]=_glIsQueryEXT;_glIsQueryEXT.sig="ii";function _glBeginQueryEXT(target,id){GLctx.disjointTimerQueryExt["beginQueryEXT"](target,GL.queries[id])}Module["_glBeginQueryEXT"]=_glBeginQueryEXT;_glBeginQueryEXT.sig="vii";function _glEndQueryEXT(target){GLctx.disjointTimerQueryExt["endQueryEXT"](target)}Module["_glEndQueryEXT"]=_glEndQueryEXT;_glEndQueryEXT.sig="vi";function _glQueryCounterEXT(id,target){GLctx.disjointTimerQueryExt["queryCounterEXT"](GL.queries[id],target)}Module["_glQueryCounterEXT"]=_glQueryCounterEXT;_glQueryCounterEXT.sig="vii";function _glGetQueryivEXT(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.disjointTimerQueryExt["getQueryEXT"](target,pname)}Module["_glGetQueryivEXT"]=_glGetQueryivEXT;_glGetQueryivEXT.sig="viii";function _glGetQueryObjectivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}Module["_glGetQueryObjectivEXT"]=_glGetQueryObjectivEXT;_glGetQueryObjectivEXT.sig="viii";function _glGetQueryObjectuivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}Module["_glGetQueryObjectuivEXT"]=_glGetQueryObjectuivEXT;_glGetQueryObjectuivEXT.sig="viii";function _glGetQueryObjecti64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;{param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}Module["_glGetQueryObjecti64vEXT"]=_glGetQueryObjecti64vEXT;_glGetQueryObjecti64vEXT.sig="viii";function _glGetQueryObjectui64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;{param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}Module["_glGetQueryObjectui64vEXT"]=_glGetQueryObjectui64vEXT;_glGetQueryObjectui64vEXT.sig="viii";function _glIsBuffer(buffer){var b=GL.buffers[buffer];if(!b)return 0;return GLctx.isBuffer(b)}Module["_glIsBuffer"]=_glIsBuffer;_glIsBuffer.sig="ii";function _glGenRenderbuffers(n,renderbuffers){__glGenObject(n,renderbuffers,"createRenderbuffer",GL.renderbuffers)}Module["_glGenRenderbuffers"]=_glGenRenderbuffers;_glGenRenderbuffers.sig="vii";function _glDeleteRenderbuffers(n,renderbuffers){for(var i=0;i>2];var renderbuffer=GL.renderbuffers[id];if(!renderbuffer)continue;GLctx.deleteRenderbuffer(renderbuffer);renderbuffer.name=0;GL.renderbuffers[id]=null}}Module["_glDeleteRenderbuffers"]=_glDeleteRenderbuffers;_glDeleteRenderbuffers.sig="vii";function _glBindRenderbuffer(target,renderbuffer){GLctx.bindRenderbuffer(target,GL.renderbuffers[renderbuffer])}Module["_glBindRenderbuffer"]=_glBindRenderbuffer;_glBindRenderbuffer.sig="vii";function _glGetRenderbufferParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getRenderbufferParameter(target,pname)}Module["_glGetRenderbufferParameteriv"]=_glGetRenderbufferParameteriv;_glGetRenderbufferParameteriv.sig="viii";function _glIsRenderbuffer(renderbuffer){var rb=GL.renderbuffers[renderbuffer];if(!rb)return 0;return GLctx.isRenderbuffer(rb)}Module["_glIsRenderbuffer"]=_glIsRenderbuffer;_glIsRenderbuffer.sig="ii";function _glGetUniformfv(program,location,params){emscriptenWebGLGetUniform(program,location,params,2)}Module["_glGetUniformfv"]=_glGetUniformfv;_glGetUniformfv.sig="viii";function _glGetUniformiv(program,location,params){emscriptenWebGLGetUniform(program,location,params,0)}Module["_glGetUniformiv"]=_glGetUniformiv;_glGetUniformiv.sig="viii";function _glGetUniformLocation(program,name){name=UTF8ToString(name);if(program=GL.programs[program]){webglPrepareUniformLocationsBeforeFirstUse(program);var uniformLocsById=program.uniformLocsById;var arrayIndex=0;var uniformBaseName=name;var leftBrace=webglGetLeftBracePos(name);if(leftBrace>0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex>2]=GLctx.getVertexAttribOffset(index,pname)}Module["_glGetVertexAttribPointerv"]=_glGetVertexAttribPointerv;_glGetVertexAttribPointerv.sig="viii";function _glUniform1f(location,v0){GLctx.uniform1f(webglGetUniformLocation(location),v0)}Module["_glUniform1f"]=_glUniform1f;_glUniform1f.sig="vif";function _glUniform2f(location,v0,v1){GLctx.uniform2f(webglGetUniformLocation(location),v0,v1)}Module["_glUniform2f"]=_glUniform2f;_glUniform2f.sig="viff";function _glUniform3f(location,v0,v1,v2){GLctx.uniform3f(webglGetUniformLocation(location),v0,v1,v2)}Module["_glUniform3f"]=_glUniform3f;_glUniform3f.sig="vifff";function _glUniform4f(location,v0,v1,v2,v3){GLctx.uniform4f(webglGetUniformLocation(location),v0,v1,v2,v3)}Module["_glUniform4f"]=_glUniform4f;_glUniform4f.sig="viffff";function _glUniform1i(location,v0){GLctx.uniform1i(webglGetUniformLocation(location),v0)}Module["_glUniform1i"]=_glUniform1i;_glUniform1i.sig="vii";function _glUniform2i(location,v0,v1){GLctx.uniform2i(webglGetUniformLocation(location),v0,v1)}Module["_glUniform2i"]=_glUniform2i;_glUniform2i.sig="viii";function _glUniform3i(location,v0,v1,v2){GLctx.uniform3i(webglGetUniformLocation(location),v0,v1,v2)}Module["_glUniform3i"]=_glUniform3i;_glUniform3i.sig="viiii";function _glUniform4i(location,v0,v1,v2,v3){GLctx.uniform4i(webglGetUniformLocation(location),v0,v1,v2,v3)}Module["_glUniform4i"]=_glUniform4i;_glUniform4i.sig="viiiii";function _glUniform1iv(location,count,value){if(count<=288){var view=__miniTempWebGLIntBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAP32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1iv(webglGetUniformLocation(location),view)}Module["_glUniform1iv"]=_glUniform1iv;_glUniform1iv.sig="viii";function _glUniform2iv(location,count,value){if(count<=144){var view=__miniTempWebGLIntBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2iv(webglGetUniformLocation(location),view)}Module["_glUniform2iv"]=_glUniform2iv;_glUniform2iv.sig="viii";function _glUniform3iv(location,count,value){if(count<=96){var view=__miniTempWebGLIntBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3iv(webglGetUniformLocation(location),view)}Module["_glUniform3iv"]=_glUniform3iv;_glUniform3iv.sig="viii";function _glUniform4iv(location,count,value){if(count<=72){var view=__miniTempWebGLIntBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2];view[i+3]=HEAP32[value+(4*i+12)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4iv(webglGetUniformLocation(location),view)}Module["_glUniform4iv"]=_glUniform4iv;_glUniform4iv.sig="viii";function _glUniform1fv(location,count,value){if(count<=288){var view=miniTempWebGLFloatBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1fv(webglGetUniformLocation(location),view)}Module["_glUniform1fv"]=_glUniform1fv;_glUniform1fv.sig="viii";function _glUniform2fv(location,count,value){if(count<=144){var view=miniTempWebGLFloatBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2fv(webglGetUniformLocation(location),view)}Module["_glUniform2fv"]=_glUniform2fv;_glUniform2fv.sig="viii";function _glUniform3fv(location,count,value){if(count<=96){var view=miniTempWebGLFloatBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3fv(webglGetUniformLocation(location),view)}Module["_glUniform3fv"]=_glUniform3fv;_glUniform3fv.sig="viii";function _glUniform4fv(location,count,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<4*count;i+=4){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4fv(webglGetUniformLocation(location),view)}Module["_glUniform4fv"]=_glUniform4fv;_glUniform4fv.sig="viii";function _glUniformMatrix2fv(location,count,transpose,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniformMatrix2fv(webglGetUniformLocation(location),!!transpose,view)}Module["_glUniformMatrix2fv"]=_glUniformMatrix2fv;_glUniformMatrix2fv.sig="viiii";function _glUniformMatrix3fv(location,count,transpose,value){if(count<=32){var view=miniTempWebGLFloatBuffers[9*count-1];for(var i=0;i<9*count;i+=9){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2];view[i+4]=HEAPF32[value+(4*i+16)>>2];view[i+5]=HEAPF32[value+(4*i+20)>>2];view[i+6]=HEAPF32[value+(4*i+24)>>2];view[i+7]=HEAPF32[value+(4*i+28)>>2];view[i+8]=HEAPF32[value+(4*i+32)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*36>>2)}GLctx.uniformMatrix3fv(webglGetUniformLocation(location),!!transpose,view)}Module["_glUniformMatrix3fv"]=_glUniformMatrix3fv;_glUniformMatrix3fv.sig="viiii";function _glUniformMatrix4fv(location,count,transpose,value){if(count<=18){var view=miniTempWebGLFloatBuffers[16*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)}Module["_glUniformMatrix4fv"]=_glUniformMatrix4fv;_glUniformMatrix4fv.sig="viiii";function _glBindBuffer(target,buffer){GLctx.bindBuffer(target,GL.buffers[buffer])}Module["_glBindBuffer"]=_glBindBuffer;_glBindBuffer.sig="vii";function _glVertexAttrib1fv(index,v){GLctx.vertexAttrib1f(index,HEAPF32[v>>2])}Module["_glVertexAttrib1fv"]=_glVertexAttrib1fv;_glVertexAttrib1fv.sig="vii";function _glVertexAttrib2fv(index,v){GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])}Module["_glVertexAttrib2fv"]=_glVertexAttrib2fv;_glVertexAttrib2fv.sig="vii";function _glVertexAttrib3fv(index,v){GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])}Module["_glVertexAttrib3fv"]=_glVertexAttrib3fv;_glVertexAttrib3fv.sig="vii";function _glVertexAttrib4fv(index,v){GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])}Module["_glVertexAttrib4fv"]=_glVertexAttrib4fv;_glVertexAttrib4fv.sig="vii";function _glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}Module["_glGetAttribLocation"]=_glGetAttribLocation;_glGetAttribLocation.sig="iii";function _glGetActiveAttrib(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveAttrib",program,index,bufSize,length,size,type,name)}Module["_glGetActiveAttrib"]=_glGetActiveAttrib;_glGetActiveAttrib.sig="viiiiiii";function _glGetActiveUniform(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveUniform",program,index,bufSize,length,size,type,name)}Module["_glGetActiveUniform"]=_glGetActiveUniform;_glGetActiveUniform.sig="viiiiiii";function _glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}Module["_glCreateShader"]=_glCreateShader;_glCreateShader.sig="ii";function _glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}Module["_glDeleteShader"]=_glDeleteShader;_glDeleteShader.sig="vi";function _glGetAttachedShaders(program,maxCount,count,shaders){var result=GLctx.getAttachedShaders(GL.programs[program]);var len=result.length;if(len>maxCount){len=maxCount}HEAP32[count>>2]=len;for(var i=0;i>2]=id}}Module["_glGetAttachedShaders"]=_glGetAttachedShaders;_glGetAttachedShaders.sig="viiii";function _glShaderSource(shader,count,string,length){var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)}Module["_glShaderSource"]=_glShaderSource;_glShaderSource.sig="viiii";function _glGetShaderSource(shader,bufSize,length,source){var result=GLctx.getShaderSource(GL.shaders[shader]);if(!result)return;var numBytesWrittenExclNull=bufSize>0&&source?stringToUTF8(result,source,bufSize):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}Module["_glGetShaderSource"]=_glGetShaderSource;_glGetShaderSource.sig="viiii";function _glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}Module["_glCompileShader"]=_glCompileShader;_glCompileShader.sig="vi";function _glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}Module["_glGetShaderInfoLog"]=_glGetShaderInfoLog;_glGetShaderInfoLog.sig="viiii";function _glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}Module["_glGetShaderiv"]=_glGetShaderiv;_glGetShaderiv.sig="viii";function _glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}Module["_glGetProgramiv"]=_glGetProgramiv;_glGetProgramiv.sig="viii";function _glIsShader(shader){var s=GL.shaders[shader];if(!s)return 0;return GLctx.isShader(s)}Module["_glIsShader"]=_glIsShader;_glIsShader.sig="ii";function _glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}Module["_glCreateProgram"]=_glCreateProgram;_glCreateProgram.sig="i";function _glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}Module["_glDeleteProgram"]=_glDeleteProgram;_glDeleteProgram.sig="vi";function _glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}Module["_glAttachShader"]=_glAttachShader;_glAttachShader.sig="vii";function _glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}Module["_glDetachShader"]=_glDetachShader;_glDetachShader.sig="vii";function _glGetShaderPrecisionFormat(shaderType,precisionType,range,precision){var result=GLctx.getShaderPrecisionFormat(shaderType,precisionType);HEAP32[range>>2]=result.rangeMin;HEAP32[range+4>>2]=result.rangeMax;HEAP32[precision>>2]=result.precision}Module["_glGetShaderPrecisionFormat"]=_glGetShaderPrecisionFormat;_glGetShaderPrecisionFormat.sig="viiii";function _glLinkProgram(program){program=GL.programs[program];GLctx.linkProgram(program);program.uniformLocsById=0;program.uniformSizeAndIdsByName={}}Module["_glLinkProgram"]=_glLinkProgram;_glLinkProgram.sig="vi";function _glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}Module["_glGetProgramInfoLog"]=_glGetProgramInfoLog;_glGetProgramInfoLog.sig="viiii";function _glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}Module["_glUseProgram"]=_glUseProgram;_glUseProgram.sig="vi";function _glValidateProgram(program){GLctx.validateProgram(GL.programs[program])}Module["_glValidateProgram"]=_glValidateProgram;_glValidateProgram.sig="vi";function _glIsProgram(program){program=GL.programs[program];if(!program)return 0;return GLctx.isProgram(program)}Module["_glIsProgram"]=_glIsProgram;_glIsProgram.sig="ii";function _glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}Module["_glBindAttribLocation"]=_glBindAttribLocation;_glBindAttribLocation.sig="viii";function _glBindFramebuffer(target,framebuffer){GLctx.bindFramebuffer(target,GL.framebuffers[framebuffer])}Module["_glBindFramebuffer"]=_glBindFramebuffer;_glBindFramebuffer.sig="vii";function _glGenFramebuffers(n,ids){__glGenObject(n,ids,"createFramebuffer",GL.framebuffers)}Module["_glGenFramebuffers"]=_glGenFramebuffers;_glGenFramebuffers.sig="vii";function _glDeleteFramebuffers(n,framebuffers){for(var i=0;i>2];var framebuffer=GL.framebuffers[id];if(!framebuffer)continue;GLctx.deleteFramebuffer(framebuffer);framebuffer.name=0;GL.framebuffers[id]=null}}Module["_glDeleteFramebuffers"]=_glDeleteFramebuffers;_glDeleteFramebuffers.sig="vii";function _glFramebufferRenderbuffer(target,attachment,renderbuffertarget,renderbuffer){GLctx.framebufferRenderbuffer(target,attachment,renderbuffertarget,GL.renderbuffers[renderbuffer])}Module["_glFramebufferRenderbuffer"]=_glFramebufferRenderbuffer;_glFramebufferRenderbuffer.sig="viiii";function _glFramebufferTexture2D(target,attachment,textarget,texture,level){GLctx.framebufferTexture2D(target,attachment,textarget,GL.textures[texture],level)}Module["_glFramebufferTexture2D"]=_glFramebufferTexture2D;_glFramebufferTexture2D.sig="viiiii";function _glGetFramebufferAttachmentParameteriv(target,attachment,pname,params){var result=GLctx.getFramebufferAttachmentParameter(target,attachment,pname);if(result instanceof WebGLRenderbuffer||result instanceof WebGLTexture){result=result.name|0}HEAP32[params>>2]=result}Module["_glGetFramebufferAttachmentParameteriv"]=_glGetFramebufferAttachmentParameteriv;_glGetFramebufferAttachmentParameteriv.sig="viiii";function _glIsFramebuffer(framebuffer){var fb=GL.framebuffers[framebuffer];if(!fb)return 0;return GLctx.isFramebuffer(fb)}Module["_glIsFramebuffer"]=_glIsFramebuffer;_glIsFramebuffer.sig="ii";function _glGenVertexArrays(n,arrays){__glGenObject(n,arrays,"createVertexArray",GL.vaos)}Module["_glGenVertexArrays"]=_glGenVertexArrays;_glGenVertexArrays.sig="vii";function _glDeleteVertexArrays(n,vaos){for(var i=0;i>2];GLctx["deleteVertexArray"](GL.vaos[id]);GL.vaos[id]=null}}Module["_glDeleteVertexArrays"]=_glDeleteVertexArrays;_glDeleteVertexArrays.sig="vii";function _glBindVertexArray(vao){GLctx["bindVertexArray"](GL.vaos[vao])}Module["_glBindVertexArray"]=_glBindVertexArray;_glBindVertexArray.sig="vi";function _glIsVertexArray(array){var vao=GL.vaos[array];if(!vao)return 0;return GLctx["isVertexArray"](vao)}Module["_glIsVertexArray"]=_glIsVertexArray;_glIsVertexArray.sig="ii";function _glVertexPointer(){throw"Legacy GL function (glVertexPointer) called. If you want legacy GL emulation, you need to compile with -sLEGACY_GL_EMULATION to enable legacy GL emulation."}Module["_glVertexPointer"]=_glVertexPointer;function _glMatrixMode(){throw"Legacy GL function (glMatrixMode) called. If you want legacy GL emulation, you need to compile with -sLEGACY_GL_EMULATION to enable legacy GL emulation."}Module["_glMatrixMode"]=_glMatrixMode;function _glBegin(){throw"Legacy GL function (glBegin) called. If you want legacy GL emulation, you need to compile with -sLEGACY_GL_EMULATION to enable legacy GL emulation."}Module["_glBegin"]=_glBegin;function _glLoadIdentity(){throw"Legacy GL function (glLoadIdentity) called. If you want legacy GL emulation, you need to compile with -sLEGACY_GL_EMULATION to enable legacy GL emulation."}Module["_glLoadIdentity"]=_glLoadIdentity;function _glGenVertexArraysOES(n,arrays){__glGenObject(n,arrays,"createVertexArray",GL.vaos)}Module["_glGenVertexArraysOES"]=_glGenVertexArraysOES;_glGenVertexArraysOES.sig="vii";function _glDeleteVertexArraysOES(n,vaos){for(var i=0;i>2];GLctx["deleteVertexArray"](GL.vaos[id]);GL.vaos[id]=null}}Module["_glDeleteVertexArraysOES"]=_glDeleteVertexArraysOES;_glDeleteVertexArraysOES.sig="vii";function _glBindVertexArrayOES(vao){GLctx["bindVertexArray"](GL.vaos[vao])}Module["_glBindVertexArrayOES"]=_glBindVertexArrayOES;_glBindVertexArrayOES.sig="vi";function _glIsVertexArrayOES(array){var vao=GL.vaos[array];if(!vao)return 0;return GLctx["isVertexArray"](vao)}Module["_glIsVertexArrayOES"]=_glIsVertexArrayOES;_glIsVertexArrayOES.sig="ii";function _glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}Module["_glVertexAttribPointer"]=_glVertexAttribPointer;_glVertexAttribPointer.sig="viiiiii";function _glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}Module["_glEnableVertexAttribArray"]=_glEnableVertexAttribArray;_glEnableVertexAttribArray.sig="vi";function _glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}Module["_glDisableVertexAttribArray"]=_glDisableVertexAttribArray;_glDisableVertexAttribArray.sig="vi";function _glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}Module["_glDrawArrays"]=_glDrawArrays;_glDrawArrays.sig="viii";function _glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}Module["_glDrawElements"]=_glDrawElements;_glDrawElements.sig="viiii";function _glShaderBinary(){GL.recordError(1280)}Module["_glShaderBinary"]=_glShaderBinary;_glShaderBinary.sig="v";function _glReleaseShaderCompiler(){}Module["_glReleaseShaderCompiler"]=_glReleaseShaderCompiler;_glReleaseShaderCompiler.sig="v";function _glGetError(){var error=GLctx.getError()||GL.lastError;GL.lastError=0;return error}Module["_glGetError"]=_glGetError;_glGetError.sig="i";function _glVertexAttribDivisor(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}Module["_glVertexAttribDivisor"]=_glVertexAttribDivisor;_glVertexAttribDivisor.sig="vii";function _glDrawArraysInstanced(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}Module["_glDrawArraysInstanced"]=_glDrawArraysInstanced;_glDrawArraysInstanced.sig="viiii";function _glDrawElementsInstanced(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}Module["_glDrawElementsInstanced"]=_glDrawElementsInstanced;_glDrawElementsInstanced.sig="viiiii";function _glVertexAttribDivisorNV(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}Module["_glVertexAttribDivisorNV"]=_glVertexAttribDivisorNV;_glVertexAttribDivisorNV.sig="vii";function _glDrawArraysInstancedNV(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}Module["_glDrawArraysInstancedNV"]=_glDrawArraysInstancedNV;_glDrawArraysInstancedNV.sig="viiii";function _glDrawElementsInstancedNV(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}Module["_glDrawElementsInstancedNV"]=_glDrawElementsInstancedNV;_glDrawElementsInstancedNV.sig="viiiii";function _glVertexAttribDivisorEXT(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}Module["_glVertexAttribDivisorEXT"]=_glVertexAttribDivisorEXT;_glVertexAttribDivisorEXT.sig="vii";function _glDrawArraysInstancedEXT(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}Module["_glDrawArraysInstancedEXT"]=_glDrawArraysInstancedEXT;_glDrawArraysInstancedEXT.sig="viiii";function _glDrawElementsInstancedEXT(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}Module["_glDrawElementsInstancedEXT"]=_glDrawElementsInstancedEXT;_glDrawElementsInstancedEXT.sig="viiiii";function _glVertexAttribDivisorARB(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}Module["_glVertexAttribDivisorARB"]=_glVertexAttribDivisorARB;_glVertexAttribDivisorARB.sig="vii";function _glDrawArraysInstancedARB(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}Module["_glDrawArraysInstancedARB"]=_glDrawArraysInstancedARB;_glDrawArraysInstancedARB.sig="viiii";function _glDrawElementsInstancedARB(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}Module["_glDrawElementsInstancedARB"]=_glDrawElementsInstancedARB;_glDrawElementsInstancedARB.sig="viiiii";function _glVertexAttribDivisorANGLE(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}Module["_glVertexAttribDivisorANGLE"]=_glVertexAttribDivisorANGLE;_glVertexAttribDivisorANGLE.sig="vii";function _glDrawArraysInstancedANGLE(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}Module["_glDrawArraysInstancedANGLE"]=_glDrawArraysInstancedANGLE;_glDrawArraysInstancedANGLE.sig="viiii";function _glDrawElementsInstancedANGLE(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}Module["_glDrawElementsInstancedANGLE"]=_glDrawElementsInstancedANGLE;_glDrawElementsInstancedANGLE.sig="viiiii";function _glDrawBuffers(n,bufs){var bufArray=tempFixedLengthArray[n];for(var i=0;i>2]}GLctx["drawBuffers"](bufArray)}Module["_glDrawBuffers"]=_glDrawBuffers;_glDrawBuffers.sig="vii";function _glDrawBuffersEXT(n,bufs){var bufArray=tempFixedLengthArray[n];for(var i=0;i>2]}GLctx["drawBuffers"](bufArray)}Module["_glDrawBuffersEXT"]=_glDrawBuffersEXT;_glDrawBuffersEXT.sig="vii";function _glDrawBuffersWEBGL(n,bufs){var bufArray=tempFixedLengthArray[n];for(var i=0;i>2]}GLctx["drawBuffers"](bufArray)}Module["_glDrawBuffersWEBGL"]=_glDrawBuffersWEBGL;_glDrawBuffersWEBGL.sig="vii";function _glColorMask(red,green,blue,alpha){GLctx.colorMask(!!red,!!green,!!blue,!!alpha)}Module["_glColorMask"]=_glColorMask;_glColorMask.sig="viiii";function _glDepthMask(flag){GLctx.depthMask(!!flag)}Module["_glDepthMask"]=_glDepthMask;_glDepthMask.sig="vi";function _glSampleCoverage(value,invert){GLctx.sampleCoverage(value,!!invert)}Module["_glSampleCoverage"]=_glSampleCoverage;_glSampleCoverage.sig="vii";function _glMultiDrawArrays(mode,firsts,counts,drawcount){GLctx.multiDrawWebgl["multiDrawArraysWEBGL"](mode,HEAP32,firsts>>2,HEAP32,counts>>2,drawcount)}Module["_glMultiDrawArrays"]=_glMultiDrawArrays;_glMultiDrawArrays.sig="viiii";function _glMultiDrawArraysANGLE(mode,firsts,counts,drawcount){GLctx.multiDrawWebgl["multiDrawArraysWEBGL"](mode,HEAP32,firsts>>2,HEAP32,counts>>2,drawcount)}Module["_glMultiDrawArraysANGLE"]=_glMultiDrawArraysANGLE;_glMultiDrawArraysANGLE.sig="viiii";function _glMultiDrawArraysWEBGL(mode,firsts,counts,drawcount){GLctx.multiDrawWebgl["multiDrawArraysWEBGL"](mode,HEAP32,firsts>>2,HEAP32,counts>>2,drawcount)}Module["_glMultiDrawArraysWEBGL"]=_glMultiDrawArraysWEBGL;_glMultiDrawArraysWEBGL.sig="viiii";function _glMultiDrawArraysInstancedANGLE(mode,firsts,counts,instanceCounts,drawcount){GLctx.multiDrawWebgl["multiDrawArraysInstancedWEBGL"](mode,HEAP32,firsts>>2,HEAP32,counts>>2,HEAP32,instanceCounts>>2,drawcount)}Module["_glMultiDrawArraysInstancedANGLE"]=_glMultiDrawArraysInstancedANGLE;_glMultiDrawArraysInstancedANGLE.sig="viiiii";function _glMultiDrawArraysInstancedWEBGL(mode,firsts,counts,instanceCounts,drawcount){GLctx.multiDrawWebgl["multiDrawArraysInstancedWEBGL"](mode,HEAP32,firsts>>2,HEAP32,counts>>2,HEAP32,instanceCounts>>2,drawcount)}Module["_glMultiDrawArraysInstancedWEBGL"]=_glMultiDrawArraysInstancedWEBGL;_glMultiDrawArraysInstancedWEBGL.sig="viiiii";function _glMultiDrawElements(mode,counts,type,offsets,drawcount){GLctx.multiDrawWebgl["multiDrawElementsWEBGL"](mode,HEAP32,counts>>2,type,HEAP32,offsets>>2,drawcount)}Module["_glMultiDrawElements"]=_glMultiDrawElements;_glMultiDrawElements.sig="viiiii";function _glMultiDrawElementsANGLE(mode,counts,type,offsets,drawcount){GLctx.multiDrawWebgl["multiDrawElementsWEBGL"](mode,HEAP32,counts>>2,type,HEAP32,offsets>>2,drawcount)}Module["_glMultiDrawElementsANGLE"]=_glMultiDrawElementsANGLE;_glMultiDrawElementsANGLE.sig="viiiii";function _glMultiDrawElementsWEBGL(mode,counts,type,offsets,drawcount){GLctx.multiDrawWebgl["multiDrawElementsWEBGL"](mode,HEAP32,counts>>2,type,HEAP32,offsets>>2,drawcount)}Module["_glMultiDrawElementsWEBGL"]=_glMultiDrawElementsWEBGL;_glMultiDrawElementsWEBGL.sig="viiiii";function _glMultiDrawElementsInstancedANGLE(mode,counts,type,offsets,instanceCounts,drawcount){GLctx.multiDrawWebgl["multiDrawElementsInstancedWEBGL"](mode,HEAP32,counts>>2,type,HEAP32,offsets>>2,HEAP32,instanceCounts>>2,drawcount)}Module["_glMultiDrawElementsInstancedANGLE"]=_glMultiDrawElementsInstancedANGLE;_glMultiDrawElementsInstancedANGLE.sig="viiiiii";function _glMultiDrawElementsInstancedWEBGL(mode,counts,type,offsets,instanceCounts,drawcount){GLctx.multiDrawWebgl["multiDrawElementsInstancedWEBGL"](mode,HEAP32,counts>>2,type,HEAP32,offsets>>2,HEAP32,instanceCounts>>2,drawcount)}Module["_glMultiDrawElementsInstancedWEBGL"]=_glMultiDrawElementsInstancedWEBGL;_glMultiDrawElementsInstancedWEBGL.sig="viiiiii";function _glFinish(){GLctx["finish"]()}Module["_glFinish"]=_glFinish;_glFinish.sig="v";function _glFlush(){GLctx["flush"]()}Module["_glFlush"]=_glFlush;_glFlush.sig="v";function _glClearDepth(x0){GLctx["clearDepth"](x0)}Module["_glClearDepth"]=_glClearDepth;_glClearDepth.sig="vi";function _glClearDepthf(x0){GLctx["clearDepth"](x0)}Module["_glClearDepthf"]=_glClearDepthf;_glClearDepthf.sig="vf";function _glDepthFunc(x0){GLctx["depthFunc"](x0)}Module["_glDepthFunc"]=_glDepthFunc;_glDepthFunc.sig="vi";function _glEnable(x0){GLctx["enable"](x0)}Module["_glEnable"]=_glEnable;_glEnable.sig="vi";function _glDisable(x0){GLctx["disable"](x0)}Module["_glDisable"]=_glDisable;_glDisable.sig="vi";function _glFrontFace(x0){GLctx["frontFace"](x0)}Module["_glFrontFace"]=_glFrontFace;_glFrontFace.sig="vi";function _glCullFace(x0){GLctx["cullFace"](x0)}Module["_glCullFace"]=_glCullFace;_glCullFace.sig="vi";function _glClear(x0){GLctx["clear"](x0)}Module["_glClear"]=_glClear;_glClear.sig="vi";function _glLineWidth(x0){GLctx["lineWidth"](x0)}Module["_glLineWidth"]=_glLineWidth;_glLineWidth.sig="vf";function _glClearStencil(x0){GLctx["clearStencil"](x0)}Module["_glClearStencil"]=_glClearStencil;_glClearStencil.sig="vi";function _glStencilMask(x0){GLctx["stencilMask"](x0)}Module["_glStencilMask"]=_glStencilMask;_glStencilMask.sig="vi";function _glCheckFramebufferStatus(x0){return GLctx["checkFramebufferStatus"](x0)}Module["_glCheckFramebufferStatus"]=_glCheckFramebufferStatus;_glCheckFramebufferStatus.sig="ii";function _glGenerateMipmap(x0){GLctx["generateMipmap"](x0)}Module["_glGenerateMipmap"]=_glGenerateMipmap;_glGenerateMipmap.sig="vi";function _glActiveTexture(x0){GLctx["activeTexture"](x0)}Module["_glActiveTexture"]=_glActiveTexture;_glActiveTexture.sig="vi";function _glBlendEquation(x0){GLctx["blendEquation"](x0)}Module["_glBlendEquation"]=_glBlendEquation;_glBlendEquation.sig="vi";function _glIsEnabled(x0){return GLctx["isEnabled"](x0)}Module["_glIsEnabled"]=_glIsEnabled;_glIsEnabled.sig="ii";function _glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}Module["_glBlendFunc"]=_glBlendFunc;_glBlendFunc.sig="vii";function _glBlendEquationSeparate(x0,x1){GLctx["blendEquationSeparate"](x0,x1)}Module["_glBlendEquationSeparate"]=_glBlendEquationSeparate;_glBlendEquationSeparate.sig="vii";function _glDepthRange(x0,x1){GLctx["depthRange"](x0,x1)}Module["_glDepthRange"]=_glDepthRange;_glDepthRange.sig="vii";function _glDepthRangef(x0,x1){GLctx["depthRange"](x0,x1)}Module["_glDepthRangef"]=_glDepthRangef;_glDepthRangef.sig="vii";function _glStencilMaskSeparate(x0,x1){GLctx["stencilMaskSeparate"](x0,x1)}Module["_glStencilMaskSeparate"]=_glStencilMaskSeparate;_glStencilMaskSeparate.sig="vii";function _glHint(x0,x1){GLctx["hint"](x0,x1)}Module["_glHint"]=_glHint;_glHint.sig="vii";function _glPolygonOffset(x0,x1){GLctx["polygonOffset"](x0,x1)}Module["_glPolygonOffset"]=_glPolygonOffset;_glPolygonOffset.sig="vff";function _glVertexAttrib1f(x0,x1){GLctx["vertexAttrib1f"](x0,x1)}Module["_glVertexAttrib1f"]=_glVertexAttrib1f;_glVertexAttrib1f.sig="vif";function _glTexParameteri(x0,x1,x2){GLctx["texParameteri"](x0,x1,x2)}Module["_glTexParameteri"]=_glTexParameteri;_glTexParameteri.sig="viii";function _glTexParameterf(x0,x1,x2){GLctx["texParameterf"](x0,x1,x2)}Module["_glTexParameterf"]=_glTexParameterf;_glTexParameterf.sig="viii";function _glVertexAttrib2f(x0,x1,x2){GLctx["vertexAttrib2f"](x0,x1,x2)}Module["_glVertexAttrib2f"]=_glVertexAttrib2f;_glVertexAttrib2f.sig="viff";function _glStencilFunc(x0,x1,x2){GLctx["stencilFunc"](x0,x1,x2)}Module["_glStencilFunc"]=_glStencilFunc;_glStencilFunc.sig="viii";function _glStencilOp(x0,x1,x2){GLctx["stencilOp"](x0,x1,x2)}Module["_glStencilOp"]=_glStencilOp;_glStencilOp.sig="viii";function _glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}Module["_glViewport"]=_glViewport;_glViewport.sig="viiii";function _glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}Module["_glClearColor"]=_glClearColor;_glClearColor.sig="vffff";function _glScissor(x0,x1,x2,x3){GLctx["scissor"](x0,x1,x2,x3)}Module["_glScissor"]=_glScissor;_glScissor.sig="viiii";function _glVertexAttrib3f(x0,x1,x2,x3){GLctx["vertexAttrib3f"](x0,x1,x2,x3)}Module["_glVertexAttrib3f"]=_glVertexAttrib3f;_glVertexAttrib3f.sig="vifff";function _glRenderbufferStorage(x0,x1,x2,x3){GLctx["renderbufferStorage"](x0,x1,x2,x3)}Module["_glRenderbufferStorage"]=_glRenderbufferStorage;_glRenderbufferStorage.sig="viiii";function _glBlendFuncSeparate(x0,x1,x2,x3){GLctx["blendFuncSeparate"](x0,x1,x2,x3)}Module["_glBlendFuncSeparate"]=_glBlendFuncSeparate;_glBlendFuncSeparate.sig="viiii";function _glBlendColor(x0,x1,x2,x3){GLctx["blendColor"](x0,x1,x2,x3)}Module["_glBlendColor"]=_glBlendColor;_glBlendColor.sig="vffff";function _glStencilFuncSeparate(x0,x1,x2,x3){GLctx["stencilFuncSeparate"](x0,x1,x2,x3)}Module["_glStencilFuncSeparate"]=_glStencilFuncSeparate;_glStencilFuncSeparate.sig="viiii";function _glStencilOpSeparate(x0,x1,x2,x3){GLctx["stencilOpSeparate"](x0,x1,x2,x3)}Module["_glStencilOpSeparate"]=_glStencilOpSeparate;_glStencilOpSeparate.sig="viiii";function _glVertexAttrib4f(x0,x1,x2,x3,x4){GLctx["vertexAttrib4f"](x0,x1,x2,x3,x4)}Module["_glVertexAttrib4f"]=_glVertexAttrib4f;_glVertexAttrib4f.sig="viffff";function _glCopyTexImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}Module["_glCopyTexImage2D"]=_glCopyTexImage2D;_glCopyTexImage2D.sig="viiiiiiii";function _glCopyTexSubImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexSubImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}Module["_glCopyTexSubImage2D"]=_glCopyTexSubImage2D;_glCopyTexSubImage2D.sig="viiiiiiii";function _emscripten_glGenVertexArrays(n,arrays){__glGenObject(n,arrays,"createVertexArray",GL.vaos)}Module["_emscripten_glGenVertexArrays"]=_emscripten_glGenVertexArrays;_emscripten_glGenVertexArrays.sig="vii";function _emscripten_glDeleteVertexArrays(n,vaos){for(var i=0;i>2];GLctx["deleteVertexArray"](GL.vaos[id]);GL.vaos[id]=null}}Module["_emscripten_glDeleteVertexArrays"]=_emscripten_glDeleteVertexArrays;_emscripten_glDeleteVertexArrays.sig="vii";function _emscripten_glBindVertexArray(vao){GLctx["bindVertexArray"](GL.vaos[vao])}Module["_emscripten_glBindVertexArray"]=_emscripten_glBindVertexArray;_emscripten_glBindVertexArray.sig="vi";function _emscripten_glIsVertexArray(array){var vao=GL.vaos[array];if(!vao)return 0;return GLctx["isVertexArray"](vao)}Module["_emscripten_glIsVertexArray"]=_emscripten_glIsVertexArray;_emscripten_glIsVertexArray.sig="ii";function _emscripten_glVertexPointer(){throw"Legacy GL function (glVertexPointer) called. If you want legacy GL emulation, you need to compile with -sLEGACY_GL_EMULATION to enable legacy GL emulation."}Module["_emscripten_glVertexPointer"]=_emscripten_glVertexPointer;function _emscripten_glMatrixMode(){throw"Legacy GL function (glMatrixMode) called. If you want legacy GL emulation, you need to compile with -sLEGACY_GL_EMULATION to enable legacy GL emulation."}Module["_emscripten_glMatrixMode"]=_emscripten_glMatrixMode;function _emscripten_glBegin(){throw"Legacy GL function (glBegin) called. If you want legacy GL emulation, you need to compile with -sLEGACY_GL_EMULATION to enable legacy GL emulation."}Module["_emscripten_glBegin"]=_emscripten_glBegin;function _emscripten_glLoadIdentity(){throw"Legacy GL function (glLoadIdentity) called. If you want legacy GL emulation, you need to compile with -sLEGACY_GL_EMULATION to enable legacy GL emulation."}Module["_emscripten_glLoadIdentity"]=_emscripten_glLoadIdentity;function _emscripten_glVertexAttribDivisor(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}Module["_emscripten_glVertexAttribDivisor"]=_emscripten_glVertexAttribDivisor;_emscripten_glVertexAttribDivisor.sig="vii";function _emscripten_glDrawArraysInstanced(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}Module["_emscripten_glDrawArraysInstanced"]=_emscripten_glDrawArraysInstanced;_emscripten_glDrawArraysInstanced.sig="viiii";function _emscripten_glDrawElementsInstanced(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}Module["_emscripten_glDrawElementsInstanced"]=_emscripten_glDrawElementsInstanced;_emscripten_glDrawElementsInstanced.sig="viiiii";function _emscripten_glVertexAttribDivisorNV(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}Module["_emscripten_glVertexAttribDivisorNV"]=_emscripten_glVertexAttribDivisorNV;_emscripten_glVertexAttribDivisorNV.sig="vii";function _emscripten_glDrawArraysInstancedNV(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}Module["_emscripten_glDrawArraysInstancedNV"]=_emscripten_glDrawArraysInstancedNV;_emscripten_glDrawArraysInstancedNV.sig="viiii";function _emscripten_glDrawElementsInstancedNV(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}Module["_emscripten_glDrawElementsInstancedNV"]=_emscripten_glDrawElementsInstancedNV;_emscripten_glDrawElementsInstancedNV.sig="viiiii";function _emscripten_glVertexAttribDivisorEXT(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}Module["_emscripten_glVertexAttribDivisorEXT"]=_emscripten_glVertexAttribDivisorEXT;_emscripten_glVertexAttribDivisorEXT.sig="vii";function _emscripten_glDrawArraysInstancedEXT(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}Module["_emscripten_glDrawArraysInstancedEXT"]=_emscripten_glDrawArraysInstancedEXT;_emscripten_glDrawArraysInstancedEXT.sig="viiii";function _emscripten_glDrawElementsInstancedEXT(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}Module["_emscripten_glDrawElementsInstancedEXT"]=_emscripten_glDrawElementsInstancedEXT;_emscripten_glDrawElementsInstancedEXT.sig="viiiii";function _emscripten_glVertexAttribDivisorARB(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}Module["_emscripten_glVertexAttribDivisorARB"]=_emscripten_glVertexAttribDivisorARB;_emscripten_glVertexAttribDivisorARB.sig="vii";function _emscripten_glDrawArraysInstancedARB(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}Module["_emscripten_glDrawArraysInstancedARB"]=_emscripten_glDrawArraysInstancedARB;_emscripten_glDrawArraysInstancedARB.sig="viiii";function _emscripten_glDrawElementsInstancedARB(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}Module["_emscripten_glDrawElementsInstancedARB"]=_emscripten_glDrawElementsInstancedARB;_emscripten_glDrawElementsInstancedARB.sig="viiiii";function _emscripten_glDrawBuffers(n,bufs){var bufArray=tempFixedLengthArray[n];for(var i=0;i>2]}GLctx["drawBuffers"](bufArray)}Module["_emscripten_glDrawBuffers"]=_emscripten_glDrawBuffers;_emscripten_glDrawBuffers.sig="vii";function _emscripten_glDrawBuffersEXT(n,bufs){var bufArray=tempFixedLengthArray[n];for(var i=0;i>2]}GLctx["drawBuffers"](bufArray)}Module["_emscripten_glDrawBuffersEXT"]=_emscripten_glDrawBuffersEXT;_emscripten_glDrawBuffersEXT.sig="vii";function _emscripten_glMultiDrawArrays(mode,firsts,counts,drawcount){GLctx.multiDrawWebgl["multiDrawArraysWEBGL"](mode,HEAP32,firsts>>2,HEAP32,counts>>2,drawcount)}Module["_emscripten_glMultiDrawArrays"]=_emscripten_glMultiDrawArrays;_emscripten_glMultiDrawArrays.sig="viiii";function _emscripten_glMultiDrawArraysANGLE(mode,firsts,counts,drawcount){GLctx.multiDrawWebgl["multiDrawArraysWEBGL"](mode,HEAP32,firsts>>2,HEAP32,counts>>2,drawcount)}Module["_emscripten_glMultiDrawArraysANGLE"]=_emscripten_glMultiDrawArraysANGLE;_emscripten_glMultiDrawArraysANGLE.sig="viiii";function _emscripten_glMultiDrawArraysWEBGL(mode,firsts,counts,drawcount){GLctx.multiDrawWebgl["multiDrawArraysWEBGL"](mode,HEAP32,firsts>>2,HEAP32,counts>>2,drawcount)}Module["_emscripten_glMultiDrawArraysWEBGL"]=_emscripten_glMultiDrawArraysWEBGL;_emscripten_glMultiDrawArraysWEBGL.sig="viiii";function _emscripten_glMultiDrawArraysInstancedANGLE(mode,firsts,counts,instanceCounts,drawcount){GLctx.multiDrawWebgl["multiDrawArraysInstancedWEBGL"](mode,HEAP32,firsts>>2,HEAP32,counts>>2,HEAP32,instanceCounts>>2,drawcount)}Module["_emscripten_glMultiDrawArraysInstancedANGLE"]=_emscripten_glMultiDrawArraysInstancedANGLE;_emscripten_glMultiDrawArraysInstancedANGLE.sig="viiiii";function _emscripten_glMultiDrawArraysInstancedWEBGL(mode,firsts,counts,instanceCounts,drawcount){GLctx.multiDrawWebgl["multiDrawArraysInstancedWEBGL"](mode,HEAP32,firsts>>2,HEAP32,counts>>2,HEAP32,instanceCounts>>2,drawcount)}Module["_emscripten_glMultiDrawArraysInstancedWEBGL"]=_emscripten_glMultiDrawArraysInstancedWEBGL;_emscripten_glMultiDrawArraysInstancedWEBGL.sig="viiiii";function _emscripten_glMultiDrawElements(mode,counts,type,offsets,drawcount){GLctx.multiDrawWebgl["multiDrawElementsWEBGL"](mode,HEAP32,counts>>2,type,HEAP32,offsets>>2,drawcount)}Module["_emscripten_glMultiDrawElements"]=_emscripten_glMultiDrawElements;_emscripten_glMultiDrawElements.sig="viiiii";function _emscripten_glMultiDrawElementsANGLE(mode,counts,type,offsets,drawcount){GLctx.multiDrawWebgl["multiDrawElementsWEBGL"](mode,HEAP32,counts>>2,type,HEAP32,offsets>>2,drawcount)}Module["_emscripten_glMultiDrawElementsANGLE"]=_emscripten_glMultiDrawElementsANGLE;_emscripten_glMultiDrawElementsANGLE.sig="viiiii";function _emscripten_glMultiDrawElementsWEBGL(mode,counts,type,offsets,drawcount){GLctx.multiDrawWebgl["multiDrawElementsWEBGL"](mode,HEAP32,counts>>2,type,HEAP32,offsets>>2,drawcount)}Module["_emscripten_glMultiDrawElementsWEBGL"]=_emscripten_glMultiDrawElementsWEBGL;_emscripten_glMultiDrawElementsWEBGL.sig="viiiii";function _emscripten_glMultiDrawElementsInstancedANGLE(mode,counts,type,offsets,instanceCounts,drawcount){GLctx.multiDrawWebgl["multiDrawElementsInstancedWEBGL"](mode,HEAP32,counts>>2,type,HEAP32,offsets>>2,HEAP32,instanceCounts>>2,drawcount)}Module["_emscripten_glMultiDrawElementsInstancedANGLE"]=_emscripten_glMultiDrawElementsInstancedANGLE;_emscripten_glMultiDrawElementsInstancedANGLE.sig="viiiiii";function _emscripten_glMultiDrawElementsInstancedWEBGL(mode,counts,type,offsets,instanceCounts,drawcount){GLctx.multiDrawWebgl["multiDrawElementsInstancedWEBGL"](mode,HEAP32,counts>>2,type,HEAP32,offsets>>2,HEAP32,instanceCounts>>2,drawcount)}Module["_emscripten_glMultiDrawElementsInstancedWEBGL"]=_emscripten_glMultiDrawElementsInstancedWEBGL;_emscripten_glMultiDrawElementsInstancedWEBGL.sig="viiiiii";function _emscripten_glClearDepth(x0){GLctx["clearDepth"](x0)}Module["_emscripten_glClearDepth"]=_emscripten_glClearDepth;_emscripten_glClearDepth.sig="vi";function _emscripten_glDepthRange(x0,x1){GLctx["depthRange"](x0,x1)}Module["_emscripten_glDepthRange"]=_emscripten_glDepthRange;_emscripten_glDepthRange.sig="vii";function writeGLArray(arr,dst,dstLength,heapType){var len=arr.length;var writeLength=dstLength>2)+i]=arr[i]}return len}Module["writeGLArray"]=writeGLArray;function _emscripten_webgl_init_context_attributes(attributes){var a=attributes>>2;for(var i=0;i<56>>2;++i){HEAP32[a+i]=0}HEAP32[a+(0>>2)]=HEAP32[a+(4>>2)]=HEAP32[a+(12>>2)]=HEAP32[a+(16>>2)]=HEAP32[a+(32>>2)]=HEAP32[a+(40>>2)]=1}Module["_emscripten_webgl_init_context_attributes"]=_emscripten_webgl_init_context_attributes;var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];Module["__emscripten_webgl_power_preferences"]=__emscripten_webgl_power_preferences;function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}Module["_emscripten_webgl_do_create_context"]=_emscripten_webgl_do_create_context;_emscripten_webgl_do_create_context.sig="iii";var _emscripten_webgl_create_context=_emscripten_webgl_do_create_context;Module["_emscripten_webgl_create_context"]=_emscripten_webgl_create_context;_emscripten_webgl_create_context.sig="iii";function _emscripten_webgl_do_get_current_context(){return GL.currentContext?GL.currentContext.handle:0}Module["_emscripten_webgl_do_get_current_context"]=_emscripten_webgl_do_get_current_context;var _emscripten_webgl_get_current_context=_emscripten_webgl_do_get_current_context;Module["_emscripten_webgl_get_current_context"]=_emscripten_webgl_get_current_context;_emscripten_webgl_get_current_context.sig="i";function _emscripten_webgl_do_commit_frame(){if(!GL.currentContext||!GL.currentContext.GLctx){return-3}if(!GL.currentContext.attributes.explicitSwapControl){return-3}return 0}Module["_emscripten_webgl_do_commit_frame"]=_emscripten_webgl_do_commit_frame;_emscripten_webgl_do_commit_frame.sig="i";var _emscripten_webgl_commit_frame=_emscripten_webgl_do_commit_frame;Module["_emscripten_webgl_commit_frame"]=_emscripten_webgl_commit_frame;_emscripten_webgl_commit_frame.sig="i";function _emscripten_webgl_make_context_current(contextHandle){var success=GL.makeContextCurrent(contextHandle);return success?0:-5}Module["_emscripten_webgl_make_context_current"]=_emscripten_webgl_make_context_current;_emscripten_webgl_make_context_current.sig="ii";function _emscripten_webgl_get_drawing_buffer_size(contextHandle,width,height){var GLContext=GL.getContext(contextHandle);if(!GLContext||!GLContext.GLctx||!width||!height){return-5}HEAP32[width>>2]=GLContext.GLctx.drawingBufferWidth;HEAP32[height>>2]=GLContext.GLctx.drawingBufferHeight;return 0}Module["_emscripten_webgl_get_drawing_buffer_size"]=_emscripten_webgl_get_drawing_buffer_size;_emscripten_webgl_get_drawing_buffer_size.sig="iiii";function _emscripten_webgl_get_context_attributes(c,a){if(!a)return-5;c=GL.contexts[c];if(!c)return-3;var t=c.GLctx;if(!t)return-3;t=t.getContextAttributes();HEAP32[a>>2]=t.alpha;HEAP32[a+4>>2]=t.depth;HEAP32[a+8>>2]=t.stencil;HEAP32[a+12>>2]=t.antialias;HEAP32[a+16>>2]=t.premultipliedAlpha;HEAP32[a+20>>2]=t.preserveDrawingBuffer;var power=t["powerPreference"]&&__emscripten_webgl_power_preferences.indexOf(t["powerPreference"]);HEAP32[a+24>>2]=power;HEAP32[a+28>>2]=t.failIfMajorPerformanceCaveat;HEAP32[a+32>>2]=c.version;HEAP32[a+36>>2]=0;HEAP32[a+40>>2]=c.attributes.enableExtensionsByDefault;return 0}Module["_emscripten_webgl_get_context_attributes"]=_emscripten_webgl_get_context_attributes;_emscripten_webgl_get_context_attributes.sig="iii";function _emscripten_webgl_destroy_context(contextHandle){if(GL.currentContext==contextHandle)GL.currentContext=0;GL.deleteContext(contextHandle)}Module["_emscripten_webgl_destroy_context"]=_emscripten_webgl_destroy_context;_emscripten_webgl_destroy_context.sig="vi";function _emscripten_webgl_enable_extension(contextHandle,extension){var context=GL.getContext(contextHandle);var extString=UTF8ToString(extension);if(extString.startsWith("GL_"))extString=extString.substr(3);if(extString=="ANGLE_instanced_arrays")__webgl_enable_ANGLE_instanced_arrays(GLctx);if(extString=="OES_vertex_array_object")__webgl_enable_OES_vertex_array_object(GLctx);if(extString=="WEBGL_draw_buffers")__webgl_enable_WEBGL_draw_buffers(GLctx);if(extString=="WEBGL_multi_draw")__webgl_enable_WEBGL_multi_draw(GLctx);var ext=context.GLctx.getExtension(extString);return!!ext}Module["_emscripten_webgl_enable_extension"]=_emscripten_webgl_enable_extension;_emscripten_webgl_enable_extension.sig="iii";function _emscripten_supports_offscreencanvas(){return 0}Module["_emscripten_supports_offscreencanvas"]=_emscripten_supports_offscreencanvas;function __registerWebGlEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){var webGlEventHandlerFunc=function(e=event){if(getWasmTableEntry(callbackfunc)(eventTypeId,0,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:webGlEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}Module["__registerWebGlEventCallback"]=__registerWebGlEventCallback;function _emscripten_set_webglcontextlost_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){__registerWebGlEventCallback(target,userData,useCapture,callbackfunc,31,"webglcontextlost",targetThread);return 0}Module["_emscripten_set_webglcontextlost_callback_on_thread"]=_emscripten_set_webglcontextlost_callback_on_thread;_emscripten_set_webglcontextlost_callback_on_thread.sig="iiiiii";function _emscripten_set_webglcontextrestored_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){__registerWebGlEventCallback(target,userData,useCapture,callbackfunc,32,"webglcontextrestored",targetThread);return 0}Module["_emscripten_set_webglcontextrestored_callback_on_thread"]=_emscripten_set_webglcontextrestored_callback_on_thread;_emscripten_set_webglcontextrestored_callback_on_thread.sig="iiiiii";function _emscripten_is_webgl_context_lost(contextHandle){return!GL.contexts[contextHandle]||GL.contexts[contextHandle].GLctx.isContextLost()}Module["_emscripten_is_webgl_context_lost"]=_emscripten_is_webgl_context_lost;_emscripten_is_webgl_context_lost.sig="ii";function _emscripten_webgl_get_supported_extensions(){return stringToNewUTF8(GLctx.getSupportedExtensions().join(" "))}Module["_emscripten_webgl_get_supported_extensions"]=_emscripten_webgl_get_supported_extensions;_emscripten_webgl_get_supported_extensions.sig="i";function _emscripten_webgl_get_program_parameter_d(program,param){return GLctx.getProgramParameter(GL.programs[program],param)}Module["_emscripten_webgl_get_program_parameter_d"]=_emscripten_webgl_get_program_parameter_d;_emscripten_webgl_get_program_parameter_d.sig="fii";function _emscripten_webgl_get_program_info_log_utf8(program){return stringToNewUTF8(GLctx.getProgramInfoLog(GL.programs[program]))}Module["_emscripten_webgl_get_program_info_log_utf8"]=_emscripten_webgl_get_program_info_log_utf8;_emscripten_webgl_get_program_info_log_utf8.sig="ii";function _emscripten_webgl_get_shader_parameter_d(shader,param){return GLctx.getShaderParameter(GL.shaders[shader],param)}Module["_emscripten_webgl_get_shader_parameter_d"]=_emscripten_webgl_get_shader_parameter_d;_emscripten_webgl_get_shader_parameter_d.sig="fii";function _emscripten_webgl_get_shader_info_log_utf8(shader){return stringToNewUTF8(GLctx.getShaderInfoLog(GL.shaders[shader]))}Module["_emscripten_webgl_get_shader_info_log_utf8"]=_emscripten_webgl_get_shader_info_log_utf8;_emscripten_webgl_get_shader_info_log_utf8.sig="ii";function _emscripten_webgl_get_shader_source_utf8(shader){return stringToNewUTF8(GLctx.getShaderSource(GL.shaders[shader]))}Module["_emscripten_webgl_get_shader_source_utf8"]=_emscripten_webgl_get_shader_source_utf8;_emscripten_webgl_get_shader_source_utf8.sig="ii";function _emscripten_webgl_get_vertex_attrib_d(index,param){return GLctx.getVertexAttrib(index,param)}Module["_emscripten_webgl_get_vertex_attrib_d"]=_emscripten_webgl_get_vertex_attrib_d;_emscripten_webgl_get_vertex_attrib_d.sig="iii";function _emscripten_webgl_get_vertex_attrib_o(index,param){var obj=GLctx.getVertexAttrib(index,param);return obj&&obj.name}Module["_emscripten_webgl_get_vertex_attrib_o"]=_emscripten_webgl_get_vertex_attrib_o;_emscripten_webgl_get_vertex_attrib_o.sig="iii";function _emscripten_webgl_get_vertex_attrib_v(index,param,dst,dstLength,dstType){return writeGLArray(GLctx.getVertexAttrib(index,param),dst,dstLength,dstType)}Module["_emscripten_webgl_get_vertex_attrib_v"]=_emscripten_webgl_get_vertex_attrib_v;_emscripten_webgl_get_vertex_attrib_v.sig="iiiiii";function _emscripten_webgl_get_uniform_d(program,location){return GLctx.getUniform(GL.programs[program],webglGetUniformLocation(location))}Module["_emscripten_webgl_get_uniform_d"]=_emscripten_webgl_get_uniform_d;_emscripten_webgl_get_uniform_d.sig="fii";function _emscripten_webgl_get_uniform_v(program,location,dst,dstLength,dstType){return writeGLArray(GLctx.getUniform(GL.programs[program],webglGetUniformLocation(location)),dst,dstLength,dstType)}Module["_emscripten_webgl_get_uniform_v"]=_emscripten_webgl_get_uniform_v;_emscripten_webgl_get_uniform_v.sig="iiiiii";function _emscripten_webgl_get_parameter_v(param,dst,dstLength,dstType){return writeGLArray(GLctx.getParameter(param),dst,dstLength,dstType)}Module["_emscripten_webgl_get_parameter_v"]=_emscripten_webgl_get_parameter_v;_emscripten_webgl_get_parameter_v.sig="iiiii";function _emscripten_webgl_get_parameter_d(param){return GLctx.getParameter(param)}Module["_emscripten_webgl_get_parameter_d"]=_emscripten_webgl_get_parameter_d;_emscripten_webgl_get_parameter_d.sig="fi";function _emscripten_webgl_get_parameter_o(param){var obj=GLctx.getParameter(param);return obj&&obj.name}Module["_emscripten_webgl_get_parameter_o"]=_emscripten_webgl_get_parameter_o;_emscripten_webgl_get_parameter_o.sig="ii";function _emscripten_webgl_get_parameter_utf8(param){return stringToNewUTF8(GLctx.getParameter(param))}Module["_emscripten_webgl_get_parameter_utf8"]=_emscripten_webgl_get_parameter_utf8;_emscripten_webgl_get_parameter_utf8.sig="ii";function _emscripten_webgl_get_parameter_i64v(param,dst){writeI53ToI64(dst,GLctx.getParameter(param))}Module["_emscripten_webgl_get_parameter_i64v"]=_emscripten_webgl_get_parameter_i64v;_emscripten_webgl_get_parameter_i64v.sig="vii";var EGL={errorCode:12288,defaultDisplayInitialized:false,currentContext:0,currentReadSurface:0,currentDrawSurface:0,contextAttributes:{alpha:false,depth:false,stencil:false,antialias:false},stringCache:{},setErrorCode:function(code){EGL.errorCode=code},chooseConfig:function(display,attribList,config,config_size,numConfigs){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(attribList){for(;;){var param=HEAP32[attribList>>2];if(param==12321){var alphaSize=HEAP32[attribList+4>>2];EGL.contextAttributes.alpha=alphaSize>0}else if(param==12325){var depthSize=HEAP32[attribList+4>>2];EGL.contextAttributes.depth=depthSize>0}else if(param==12326){var stencilSize=HEAP32[attribList+4>>2];EGL.contextAttributes.stencil=stencilSize>0}else if(param==12337){var samples=HEAP32[attribList+4>>2];EGL.contextAttributes.antialias=samples>0}else if(param==12338){var samples=HEAP32[attribList+4>>2];EGL.contextAttributes.antialias=samples==1}else if(param==12544){var requestedPriority=HEAP32[attribList+4>>2];EGL.contextAttributes.lowLatency=requestedPriority!=12547}else if(param==12344){break}attribList+=8}}if((!config||!config_size)&&!numConfigs){EGL.setErrorCode(12300);return 0}if(numConfigs){HEAP32[numConfigs>>2]=1}if(config&&config_size>0){HEAP32[config>>2]=62002}EGL.setErrorCode(12288);return 1}};Module["EGL"]=EGL;function _eglGetDisplay(nativeDisplayType){EGL.setErrorCode(12288);return 62e3}Module["_eglGetDisplay"]=_eglGetDisplay;_eglGetDisplay.sig="ii";function _eglInitialize(display,majorVersion,minorVersion){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(majorVersion){HEAP32[majorVersion>>2]=1}if(minorVersion){HEAP32[minorVersion>>2]=4}EGL.defaultDisplayInitialized=true;EGL.setErrorCode(12288);return 1}Module["_eglInitialize"]=_eglInitialize;_eglInitialize.sig="iiii";function _eglTerminate(display){if(display!=62e3){EGL.setErrorCode(12296);return 0}EGL.currentContext=0;EGL.currentReadSurface=0;EGL.currentDrawSurface=0;EGL.defaultDisplayInitialized=false;EGL.setErrorCode(12288);return 1}Module["_eglTerminate"]=_eglTerminate;_eglTerminate.sig="ii";function _eglGetConfigs(display,configs,config_size,numConfigs){return EGL.chooseConfig(display,0,configs,config_size,numConfigs)}Module["_eglGetConfigs"]=_eglGetConfigs;_eglGetConfigs.sig="iiiii";function _eglChooseConfig(display,attrib_list,configs,config_size,numConfigs){return EGL.chooseConfig(display,attrib_list,configs,config_size,numConfigs)}Module["_eglChooseConfig"]=_eglChooseConfig;_eglChooseConfig.sig="iiiiii";function _eglGetConfigAttrib(display,config,attribute,value){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(config!=62002){EGL.setErrorCode(12293);return 0}if(!value){EGL.setErrorCode(12300);return 0}EGL.setErrorCode(12288);switch(attribute){case 12320:HEAP32[value>>2]=EGL.contextAttributes.alpha?32:24;return 1;case 12321:HEAP32[value>>2]=EGL.contextAttributes.alpha?8:0;return 1;case 12322:HEAP32[value>>2]=8;return 1;case 12323:HEAP32[value>>2]=8;return 1;case 12324:HEAP32[value>>2]=8;return 1;case 12325:HEAP32[value>>2]=EGL.contextAttributes.depth?24:0;return 1;case 12326:HEAP32[value>>2]=EGL.contextAttributes.stencil?8:0;return 1;case 12327:HEAP32[value>>2]=12344;return 1;case 12328:HEAP32[value>>2]=62002;return 1;case 12329:HEAP32[value>>2]=0;return 1;case 12330:HEAP32[value>>2]=4096;return 1;case 12331:HEAP32[value>>2]=16777216;return 1;case 12332:HEAP32[value>>2]=4096;return 1;case 12333:HEAP32[value>>2]=0;return 1;case 12334:HEAP32[value>>2]=0;return 1;case 12335:HEAP32[value>>2]=12344;return 1;case 12337:HEAP32[value>>2]=EGL.contextAttributes.antialias?4:0;return 1;case 12338:HEAP32[value>>2]=EGL.contextAttributes.antialias?1:0;return 1;case 12339:HEAP32[value>>2]=4;return 1;case 12340:HEAP32[value>>2]=12344;return 1;case 12341:case 12342:case 12343:HEAP32[value>>2]=-1;return 1;case 12345:case 12346:HEAP32[value>>2]=0;return 1;case 12347:HEAP32[value>>2]=0;return 1;case 12348:HEAP32[value>>2]=1;return 1;case 12349:case 12350:HEAP32[value>>2]=0;return 1;case 12351:HEAP32[value>>2]=12430;return 1;case 12352:HEAP32[value>>2]=4;return 1;case 12354:HEAP32[value>>2]=0;return 1;default:EGL.setErrorCode(12292);return 0}}Module["_eglGetConfigAttrib"]=_eglGetConfigAttrib;_eglGetConfigAttrib.sig="iiiii";function _eglCreateWindowSurface(display,config,win,attrib_list){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(config!=62002){EGL.setErrorCode(12293);return 0}EGL.setErrorCode(12288);return 62006}Module["_eglCreateWindowSurface"]=_eglCreateWindowSurface;_eglCreateWindowSurface.sig="iiiii";function _eglDestroySurface(display,surface){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(surface!=62006){EGL.setErrorCode(12301);return 1}if(EGL.currentReadSurface==surface){EGL.currentReadSurface=0}if(EGL.currentDrawSurface==surface){EGL.currentDrawSurface=0}EGL.setErrorCode(12288);return 1}Module["_eglDestroySurface"]=_eglDestroySurface;_eglDestroySurface.sig="iii";function _eglCreateContext(display,config,hmm,contextAttribs){if(display!=62e3){EGL.setErrorCode(12296);return 0}var glesContextVersion=1;for(;;){var param=HEAP32[contextAttribs>>2];if(param==12440){glesContextVersion=HEAP32[contextAttribs+4>>2]}else if(param==12344){break}else{EGL.setErrorCode(12292);return 0}contextAttribs+=8}if(glesContextVersion!=2){EGL.setErrorCode(12293);return 0}EGL.contextAttributes.majorVersion=glesContextVersion-1;EGL.contextAttributes.minorVersion=0;EGL.context=GL.createContext(Module["canvas"],EGL.contextAttributes);if(EGL.context!=0){EGL.setErrorCode(12288);GL.makeContextCurrent(EGL.context);Module.useWebGL=true;Browser.moduleContextCreatedCallbacks.forEach(function(callback){callback()});GL.makeContextCurrent(null);return 62004}else{EGL.setErrorCode(12297);return 0}}Module["_eglCreateContext"]=_eglCreateContext;_eglCreateContext.sig="iiiii";function _eglDestroyContext(display,context){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(context!=62004){EGL.setErrorCode(12294);return 0}GL.deleteContext(EGL.context);EGL.setErrorCode(12288);if(EGL.currentContext==context){EGL.currentContext=0}return 1}Module["_eglDestroyContext"]=_eglDestroyContext;_eglDestroyContext.sig="iii";function _eglQuerySurface(display,surface,attribute,value){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(surface!=62006){EGL.setErrorCode(12301);return 0}if(!value){EGL.setErrorCode(12300);return 0}EGL.setErrorCode(12288);switch(attribute){case 12328:HEAP32[value>>2]=62002;return 1;case 12376:return 1;case 12375:HEAP32[value>>2]=Module["canvas"].width;return 1;case 12374:HEAP32[value>>2]=Module["canvas"].height;return 1;case 12432:HEAP32[value>>2]=-1;return 1;case 12433:HEAP32[value>>2]=-1;return 1;case 12434:HEAP32[value>>2]=-1;return 1;case 12422:HEAP32[value>>2]=12420;return 1;case 12441:HEAP32[value>>2]=12442;return 1;case 12435:HEAP32[value>>2]=12437;return 1;case 12416:case 12417:case 12418:case 12419:return 1;default:EGL.setErrorCode(12292);return 0}}Module["_eglQuerySurface"]=_eglQuerySurface;_eglQuerySurface.sig="iiiii";function _eglQueryContext(display,context,attribute,value){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(context!=62004){EGL.setErrorCode(12294);return 0}if(!value){EGL.setErrorCode(12300);return 0}EGL.setErrorCode(12288);switch(attribute){case 12328:HEAP32[value>>2]=62002;return 1;case 12439:HEAP32[value>>2]=12448;return 1;case 12440:HEAP32[value>>2]=EGL.contextAttributes.majorVersion+1;return 1;case 12422:HEAP32[value>>2]=12420;return 1;default:EGL.setErrorCode(12292);return 0}}Module["_eglQueryContext"]=_eglQueryContext;_eglQueryContext.sig="iiiii";function _eglGetError(){return EGL.errorCode}Module["_eglGetError"]=_eglGetError;_eglGetError.sig="i";function _eglQueryString(display,name){if(display!=62e3){EGL.setErrorCode(12296);return 0}EGL.setErrorCode(12288);if(EGL.stringCache[name])return EGL.stringCache[name];var ret;switch(name){case 12371:ret=allocateUTF8("Emscripten");break;case 12372:ret=allocateUTF8("1.4 Emscripten EGL");break;case 12373:ret=allocateUTF8("");break;case 12429:ret=allocateUTF8("OpenGL_ES");break;default:EGL.setErrorCode(12300);return 0}EGL.stringCache[name]=ret;return ret}Module["_eglQueryString"]=_eglQueryString;_eglQueryString.sig="iii";function _eglBindAPI(api){if(api==12448){EGL.setErrorCode(12288);return 1}EGL.setErrorCode(12300);return 0}Module["_eglBindAPI"]=_eglBindAPI;_eglBindAPI.sig="ii";function _eglQueryAPI(){EGL.setErrorCode(12288);return 12448}Module["_eglQueryAPI"]=_eglQueryAPI;_eglQueryAPI.sig="i";function _eglWaitClient(){EGL.setErrorCode(12288);return 1}Module["_eglWaitClient"]=_eglWaitClient;_eglWaitClient.sig="i";function _eglWaitNative(nativeEngineId){EGL.setErrorCode(12288);return 1}Module["_eglWaitNative"]=_eglWaitNative;_eglWaitNative.sig="ii";var _eglWaitGL=_eglWaitClient;Module["_eglWaitGL"]=_eglWaitGL;function _eglSwapInterval(display,interval){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(interval==0)_emscripten_set_main_loop_timing(0,0);else _emscripten_set_main_loop_timing(1,interval);EGL.setErrorCode(12288);return 1}Module["_eglSwapInterval"]=_eglSwapInterval;_eglSwapInterval.sig="iii";function _eglMakeCurrent(display,draw,read,context){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(context!=0&&context!=62004){EGL.setErrorCode(12294);return 0}if(read!=0&&read!=62006||draw!=0&&draw!=62006){EGL.setErrorCode(12301);return 0}GL.makeContextCurrent(context?EGL.context:null);EGL.currentContext=context;EGL.currentDrawSurface=draw;EGL.currentReadSurface=read;EGL.setErrorCode(12288);return 1}Module["_eglMakeCurrent"]=_eglMakeCurrent;_eglMakeCurrent.sig="iiiii";function _eglGetCurrentContext(){return EGL.currentContext}Module["_eglGetCurrentContext"]=_eglGetCurrentContext;_eglGetCurrentContext.sig="i";function _eglGetCurrentSurface(readdraw){if(readdraw==12378){return EGL.currentReadSurface}else if(readdraw==12377){return EGL.currentDrawSurface}else{EGL.setErrorCode(12300);return 0}}Module["_eglGetCurrentSurface"]=_eglGetCurrentSurface;_eglGetCurrentSurface.sig="ii";function _eglGetCurrentDisplay(){return EGL.currentContext?62e3:0}Module["_eglGetCurrentDisplay"]=_eglGetCurrentDisplay;_eglGetCurrentDisplay.sig="i";function _eglSwapBuffers(){if(!EGL.defaultDisplayInitialized){EGL.setErrorCode(12289)}else if(!Module.ctx){EGL.setErrorCode(12290)}else if(Module.ctx.isContextLost()){EGL.setErrorCode(12302)}else{EGL.setErrorCode(12288);return 1}return 0}Module["_eglSwapBuffers"]=_eglSwapBuffers;_eglSwapBuffers.sig="iii";function _eglReleaseThread(){EGL.currentContext=0;EGL.currentReadSurface=0;EGL.currentDrawSurface=0;EGL.setErrorCode(12288);return 1}Module["_eglReleaseThread"]=_eglReleaseThread;_eglReleaseThread.sig="i";var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_unlink"]=FS.unlink;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;if(ENVIRONMENT_IS_NODE){NODEFS.staticInit()}ERRNO_CODES={"EPERM":63,"ENOENT":44,"ESRCH":71,"EINTR":27,"EIO":29,"ENXIO":60,"E2BIG":1,"ENOEXEC":45,"EBADF":8,"ECHILD":12,"EAGAIN":6,"EWOULDBLOCK":6,"ENOMEM":48,"EACCES":2,"EFAULT":21,"ENOTBLK":105,"EBUSY":10,"EEXIST":20,"EXDEV":75,"ENODEV":43,"ENOTDIR":54,"EISDIR":31,"EINVAL":28,"ENFILE":41,"EMFILE":33,"ENOTTY":59,"ETXTBSY":74,"EFBIG":22,"ENOSPC":51,"ESPIPE":70,"EROFS":69,"EMLINK":34,"EPIPE":64,"EDOM":18,"ERANGE":68,"ENOMSG":49,"EIDRM":24,"ECHRNG":106,"EL2NSYNC":156,"EL3HLT":107,"EL3RST":108,"ELNRNG":109,"EUNATCH":110,"ENOCSI":111,"EL2HLT":112,"EDEADLK":16,"ENOLCK":46,"EBADE":113,"EBADR":114,"EXFULL":115,"ENOANO":104,"EBADRQC":103,"EBADSLT":102,"EDEADLOCK":16,"EBFONT":101,"ENOSTR":100,"ENODATA":116,"ETIME":117,"ENOSR":118,"ENONET":119,"ENOPKG":120,"EREMOTE":121,"ENOLINK":47,"EADV":122,"ESRMNT":123,"ECOMM":124,"EPROTO":65,"EMULTIHOP":36,"EDOTDOT":125,"EBADMSG":9,"ENOTUNIQ":126,"EBADFD":127,"EREMCHG":128,"ELIBACC":129,"ELIBBAD":130,"ELIBSCN":131,"ELIBMAX":132,"ELIBEXEC":133,"ENOSYS":52,"ENOTEMPTY":55,"ENAMETOOLONG":37,"ELOOP":32,"EOPNOTSUPP":138,"EPFNOSUPPORT":139,"ECONNRESET":15,"ENOBUFS":42,"EAFNOSUPPORT":5,"EPROTOTYPE":67,"ENOTSOCK":57,"ENOPROTOOPT":50,"ESHUTDOWN":140,"ECONNREFUSED":14,"EADDRINUSE":3,"ECONNABORTED":13,"ENETUNREACH":40,"ENETDOWN":38,"ETIMEDOUT":73,"EHOSTDOWN":142,"EHOSTUNREACH":23,"EINPROGRESS":26,"EALREADY":7,"EDESTADDRREQ":17,"EMSGSIZE":35,"EPROTONOSUPPORT":66,"ESOCKTNOSUPPORT":137,"EADDRNOTAVAIL":4,"ENETRESET":39,"EISCONN":30,"ENOTCONN":53,"ETOOMANYREFS":141,"EUSERS":136,"EDQUOT":19,"ESTALE":72,"ENOTSUP":138,"ENOMEDIUM":148,"EILSEQ":25,"EOVERFLOW":61,"ECANCELED":11,"ENOTRECOVERABLE":56,"EOWNERDEAD":62,"ESTRPIPE":135};var GLctx;for(var i=0;i<32;++i)tempFixedLengthArray.push(new Array(i));var miniTempWebGLFloatBuffersStorage=new Float32Array(288);for(var i=0;i<288;++i){miniTempWebGLFloatBuffers[i]=miniTempWebGLFloatBuffersStorage.subarray(0,i+1)}var __miniTempWebGLIntBuffersStorage=new Int32Array(288);for(var i=0;i<288;++i){__miniTempWebGLIntBuffers[i]=__miniTempWebGLIntBuffersStorage.subarray(0,i+1)}var emSetImmediate;var emClearImmediate;if(typeof setImmediate!="undefined"){emSetImmediate=setImmediateWrapped;emClearImmediate=clearImmediateWrapped}else if(typeof addEventListener=="function"){var __setImmediate_id_counter=0;var __setImmediate_queue=[];var __setImmediate_message_id="_si";var __setImmediate_cb=e=>{if(e.data===__setImmediate_message_id){e.stopPropagation();__setImmediate_queue.shift()();++__setImmediate_id_counter}};addEventListener("message",__setImmediate_cb,true);emSetImmediate=func=>{postMessage(__setImmediate_message_id,"*");return __setImmediate_id_counter+__setImmediate_queue.push(func)-1};emClearImmediate=id=>{var index=id-__setImmediate_id_counter;if(index>=0&&index<__setImmediate_queue.length)__setImmediate_queue[index]=()=>{}}}Module["requestFullscreen"]=function Module_requestFullscreen(lockPointer,resizeCanvas){Browser.requestFullscreen(lockPointer,resizeCanvas)};Module["requestAnimationFrame"]=function Module_requestAnimationFrame(func){Browser.requestAnimationFrame(func)};Module["setCanvasSize"]=function Module_setCanvasSize(width,height,noUpdates){Browser.setCanvasSize(width,height,noUpdates)};Module["pauseMainLoop"]=function Module_pauseMainLoop(){Browser.mainLoop.pause()};Module["resumeMainLoop"]=function Module_resumeMainLoop(){Browser.mainLoop.resume()};Module["getUserMedia"]=function Module_getUserMedia(){Browser.getUserMedia()};Module["createContext"]=function Module_createContext(canvas,useWebGL,setInModule,webGLContextAttributes){return Browser.createContext(canvas,useWebGL,setInModule,webGLContextAttributes)};var preloadedWasm={};var preloadedImages={};var preloadedAudios={};var decodeBase64=typeof atob=="function"?atob:function(input){var keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var output="";var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;input=input.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{enc1=keyStr.indexOf(input.charAt(i++));enc2=keyStr.indexOf(input.charAt(i++));enc3=keyStr.indexOf(input.charAt(i++));enc4=keyStr.indexOf(input.charAt(i++));chr1=enc1<<2|enc2>>4;chr2=(enc2&15)<<4|enc3>>2;chr3=(enc3&3)<<6|enc4;output=output+String.fromCharCode(chr1);if(enc3!==64){output=output+String.fromCharCode(chr2)}if(enc4!==64){output=output+String.fromCharCode(chr3)}}while(i>2;args.forEach(arg=>{HEAP32[argv_ptr++]=allocateUTF8OnStack(arg)});HEAP32[argv_ptr]=0;try{var ret=entryFunction(argc,argv);exitJS(ret,true);return ret}catch(e){return handleException(e)}}var dylibsLoaded=false;LDSO.init();function run(args=arguments_){if(runDependencies>0){return}if(!dylibsLoaded){preloadDylibs();dylibsLoaded=true;if(runDependencies>0){return}}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();readyPromiseResolve(Module);if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;run(); - - - return _createPyodideModule.ready -} - -); -})(); -globalThis._createPyodideModule = _createPyodideModule; +"use strict";var _createPyodideModule=(()=>{var _scriptDir="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0;return"undefined"!=typeof __filename&&(_scriptDir=_scriptDir||__filename),function(_createPyodideModule={}){var Module=void 0!==_createPyodideModule?_createPyodideModule:{},readyPromiseResolve,readyPromiseReject;if(void 0===globalThis.BigInt64Array){function e(e,t){return BigInt(e)|BigInt(t+2*(2147483648&t))<<32n}function t(e,t){return BigInt(e)|BigInt(t)<<32n}function _(e){return[0|Number(BigInt(e)&BigInt(4294967295)),0|Number(BigInt(e)>>32n)]}function r(e){return function t(r){var n;"number"==typeof r&&(r=new Uint32Array(2*r)),ArrayBuffer.isView(r)||(r.constructor&&"ArrayBuffer"===r.constructor.name?r=new Uint32Array(r):(n=r,r=new Uint32Array(2*r.length)));var o=new Proxy({slice:function(e,_){return void 0===_&&(_=r.length),t(r.slice(2*e,2*_))},subarray:function(e,_){return t(r.subarray(2*e,2*_))},[Symbol.iterator]:function*(){for(var t=0;tr.length)throw new RangeError("offset is out of bounds");for(var n=0;n{throw t},ENVIRONMENT_IS_WEB="object"==typeof window,ENVIRONMENT_IS_WORKER="function"==typeof importScripts,ENVIRONMENT_IS_NODE="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER,scriptDirectory="",read_,readAsync,readBinary,setWindowTitle;function locateFile(e){return Module.locateFile?Module.locateFile(e,scriptDirectory):scriptDirectory+e}function logExceptionOnExit(e){if(e instanceof ExitStatus)return;let t=e;e&&"object"==typeof e&&e.stack&&(t=[e,e.stack]),err("exiting due to exception: "+t)}if(ENVIRONMENT_IS_NODE){var fs=require("fs"),nodePath=require("path");scriptDirectory=ENVIRONMENT_IS_WORKER?nodePath.dirname(scriptDirectory)+"/":__dirname+"/",read_=(e,t)=>(e=isFileURI(e)?new URL(e):nodePath.normalize(e),fs.readFileSync(e,t?void 0:"utf8")),readBinary=e=>{var t=read_(e,!0);return t.buffer||(t=new Uint8Array(t)),t},readAsync=(e,t,_)=>{e=isFileURI(e)?new URL(e):nodePath.normalize(e),fs.readFile(e,(function(e,r){e?_(e):t(r.buffer)}))},process.argv.length>1&&(thisProgram=process.argv[1].replace(/\\/g,"/")),arguments_=process.argv.slice(2),quit_=(e,t)=>{if(keepRuntimeAlive())throw process.exitCode=e,t;logExceptionOnExit(t),process.exit(e)},Module.inspect=function(){return"[Emscripten Module object]"}}else(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&(ENVIRONMENT_IS_WORKER?scriptDirectory=self.location.href:"undefined"!=typeof document&&document.currentScript&&(scriptDirectory=document.currentScript.src),_scriptDir&&(scriptDirectory=_scriptDir),scriptDirectory=0!==scriptDirectory.indexOf("blob:")?scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1):"",read_=e=>{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},ENVIRONMENT_IS_WORKER&&(readBinary=e=>{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}),readAsync=(e,t,_)=>{var r=new XMLHttpRequest;r.open("GET",e,!0),r.responseType="arraybuffer",r.onload=()=>{200==r.status||0==r.status&&r.response?t(r.response):_()},r.onerror=_,r.send(null)},setWindowTitle=e=>document.title=e);var out=Module.print||console.log.bind(console),err=Module.printErr||console.warn.bind(console);Object.assign(Module,moduleOverrides),moduleOverrides=null,Module.arguments&&(arguments_=Module.arguments),Module.thisProgram&&(thisProgram=Module.thisProgram),Module.quit&&(quit_=Module.quit);var dynamicLibraries=Module.dynamicLibraries||[],wasmBinary;Module.wasmBinary&&(wasmBinary=Module.wasmBinary);var noExitRuntime=Module.noExitRuntime||!0,wasmMemory;"object"!=typeof WebAssembly&&abort("no native wasm support detected");var ABORT=!1,EXITSTATUS;function assert(e,t){e||abort(t)}var UTF8Decoder="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0,HEAP,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAP64,HEAPU64,HEAPF64;function UTF8ArrayToString(e,t,_){for(var r=t+_,n=t;e[n]&&!(n>=r);)++n;if(n-t>16&&e.buffer&&UTF8Decoder)return UTF8Decoder.decode(e.subarray(t,n));for(var o="";t>10,56320|1023&u)}}else o+=String.fromCharCode((31&l)<<6|i)}else o+=String.fromCharCode(l)}return o}function UTF8ToString(e,t){return e?UTF8ArrayToString(HEAPU8,e,t):""}function stringToUTF8Array(e,t,_,r){if(!(r>0))return 0;for(var n=_,o=_+r-1,l=0;l=55296&&i<=57343)i=65536+((1023&i)<<10)|1023&e.charCodeAt(++l);if(i<=127){if(_>=o)break;t[_++]=i}else if(i<=2047){if(_+1>=o)break;t[_++]=192|i>>6,t[_++]=128|63&i}else if(i<=65535){if(_+2>=o)break;t[_++]=224|i>>12,t[_++]=128|i>>6&63,t[_++]=128|63&i}else{if(_+3>=o)break;t[_++]=240|i>>18,t[_++]=128|i>>12&63,t[_++]=128|i>>6&63,t[_++]=128|63&i}}return t[_]=0,_-n}function stringToUTF8(e,t,_){return stringToUTF8Array(e,HEAPU8,t,_)}function lengthBytesUTF8(e){for(var t=0,_=0;_=55296&&r<=57343?(t+=4,++_):t+=3}return t}function updateMemoryViews(){var e=wasmMemory.buffer;Module.HEAP8=HEAP8=new Int8Array(e),Module.HEAP16=HEAP16=new Int16Array(e),Module.HEAP32=HEAP32=new Int32Array(e),Module.HEAPU8=HEAPU8=new Uint8Array(e),Module.HEAPU16=HEAPU16=new Uint16Array(e),Module.HEAPU32=HEAPU32=new Uint32Array(e),Module.HEAPF32=HEAPF32=new Float32Array(e),Module.HEAPF64=HEAPF64=new Float64Array(e),Module.HEAP64=HEAP64=new BigInt64Array(e),Module.HEAPU64=HEAPU64=new BigUint64Array(e)}var INITIAL_MEMORY=Module.INITIAL_MEMORY||20971520;assert(INITIAL_MEMORY>=5242880,"INITIAL_MEMORY should be larger than STACK_SIZE, was "+INITIAL_MEMORY+"! (STACK_SIZE=5242880)"),wasmMemory=Module.wasmMemory?Module.wasmMemory:new WebAssembly.Memory({initial:INITIAL_MEMORY/65536,maximum:32768}),updateMemoryViews(),INITIAL_MEMORY=wasmMemory.buffer.byteLength;var wasmTable=new WebAssembly.Table({initial:6377,element:"anyfunc"}),__ATPRERUN__=[],__ATINIT__=[],__ATMAIN__=[],__ATEXIT__=[],__ATPOSTRUN__=[],__RELOC_FUNCS__=[],runtimeInitialized=!1;function keepRuntimeAlive(){return noExitRuntime}function preRun(){if(Module.preRun)for("function"==typeof Module.preRun&&(Module.preRun=[Module.preRun]);Module.preRun.length;)addOnPreRun(Module.preRun.shift());callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=!0,callRuntimeCallbacks(__RELOC_FUNCS__),Module.noFSInit||FS.init.initialized||FS.init(),FS.ignorePermissions=!1,TTY.init(),SOCKFS.root=FS.mount(SOCKFS,{},null),PIPEFS.root=FS.mount(PIPEFS,{},null),callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(Module.postRun)for("function"==typeof Module.postRun&&(Module.postRun=[Module.postRun]);Module.postRun.length;)addOnPostRun(Module.postRun.shift());callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(e){__ATPRERUN__.unshift(e)}function addOnInit(e){__ATINIT__.unshift(e)}function addOnPreMain(e){__ATMAIN__.unshift(e)}function addOnExit(e){}function addOnPostRun(e){__ATPOSTRUN__.unshift(e)}var runDependencies=0,runDependencyWatcher=null,dependenciesFulfilled=null;function getUniqueRunDependency(e){return e}function addRunDependency(e){runDependencies++,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies)}function removeRunDependency(e){if(runDependencies--,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies),0==runDependencies&&(null!==runDependencyWatcher&&(clearInterval(runDependencyWatcher),runDependencyWatcher=null),dependenciesFulfilled)){var t=dependenciesFulfilled;dependenciesFulfilled=null,t()}}function abort(e){Module.onAbort&&Module.onAbort(e),err(e="Aborted("+e+")"),ABORT=!0,EXITSTATUS=1,e+=". Build with -sASSERTIONS for more info.";var t=new WebAssembly.RuntimeError(e);throw readyPromiseReject(t),t}var dataURIPrefix="data:application/octet-stream;base64,",wasmBinaryFile,tempDouble,tempI64;function isDataURI(e){return e.startsWith(dataURIPrefix)}function isFileURI(e){return e.startsWith("file://")}function getBinary(e){try{if(e==wasmBinaryFile&&wasmBinary)return new Uint8Array(wasmBinary);if(readBinary)return readBinary(e);throw"both async and sync fetching of the wasm failed"}catch(e){abort(e)}}function getBinaryPromise(e){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if("function"==typeof fetch&&!isFileURI(e))return fetch(e,{credentials:"same-origin"}).then((function(t){if(!t.ok)throw"failed to load wasm binary file at '"+e+"'";return t.arrayBuffer()})).catch((function(){return getBinary(e)}));if(readAsync)return new Promise((function(t,_){readAsync(e,(function(e){t(new Uint8Array(e))}),_)}))}return Promise.resolve().then((function(){return getBinary(e)}))}function instantiateArrayBuffer(e,t,_){return getBinaryPromise(e).then((function(e){return WebAssembly.instantiate(e,t)})).then((function(e){return e})).then(_,(function(e){err("failed to asynchronously prepare wasm: "+e),abort(e)}))}function instantiateAsync(e,t,_,r){return e||"function"!=typeof WebAssembly.instantiateStreaming||isDataURI(t)||isFileURI(t)||ENVIRONMENT_IS_NODE||"function"!=typeof fetch?instantiateArrayBuffer(t,_,r):fetch(t,{credentials:"same-origin"}).then((function(e){return WebAssembly.instantiateStreaming(e,_).then(r,(function(e){return err("wasm streaming compile failed: "+e),err("falling back to ArrayBuffer instantiation"),instantiateArrayBuffer(t,_,r)}))}))}function createWasm(){var e={env:wasmImports,wasi_snapshot_preview1:wasmImports,"GOT.mem":new Proxy(wasmImports,GOTHandler),"GOT.func":new Proxy(wasmImports,GOTHandler)};function t(e,t){var _=e.exports;_=relocateExports(_,1024);var r=getDylinkMetadata(t);return r.neededDynlibs&&(dynamicLibraries=r.neededDynlibs.concat(dynamicLibraries)),mergeLibSymbols(_,"main"),Module.asm=_,addOnInit(Module.asm.__wasm_call_ctors),__RELOC_FUNCS__.push(Module.asm.__wasm_apply_data_relocs),removeRunDependency("wasm-instantiate"),_}if(addRunDependency("wasm-instantiate"),Module.instantiateWasm)try{return Module.instantiateWasm(e,t)}catch(e){err("Module.instantiateWasm callback failed with error: "+e),readyPromiseReject(e)}return instantiateAsync(wasmBinary,wasmBinaryFile,e,(function(e){t(e.instance,e.module)})).catch(readyPromiseReject),{}}wasmBinaryFile="pyodide.asm.wasm",isDataURI(wasmBinaryFile)||(wasmBinaryFile=locateFile(wasmBinaryFile));var ASM_CONSTS={3880638:()=>{throw new Error("intentionally triggered fatal error!")},3880695:e=>{Hiwire.get_value(e)()},3880718:()=>{Module.UTF8ToString=UTF8ToString,Module.wasmTable=wasmTable,Module.ERRNO_CODES=ERRNO_CODES},3880822:e=>{API._pyodide=Hiwire.pop_value(e)},3880863:(e,t)=>{Hiwire.get_value(t).push(...Hiwire.get_value(e))},3880919:e=>{for(let t of Hiwire.get_value(e))if("function"==typeof t.destroy)try{t.destroy()}catch(e){console.warn("Weird error:",e)}}};function console_error(e){let t=UTF8ToString(e);console.error(t)}function console_error_obj(e){console.error(Hiwire.get_value(e))}function new_error(e,t,_){try{return Hiwire.new_value(new API.PythonError(UTF8ToString(e),UTF8ToString(t),_))}catch(e){return Module.handle_js_error(e),0}throw new Error("Assertion error: control reached end of function without return")}function fail_test(){API.fail_test=!0}function hiwire_to_bool(e){return!!Hiwire.get_value(e)}function hiwire_init(){try{let e={objects:new Map,obj_to_key:new Map,counter:new Uint32Array([1])};Hiwire.UNDEFINED=HEAPU8[_Js_undefined+0],e.objects.set(Hiwire.UNDEFINED,[void 0,-1]),e.obj_to_key.set(void 0,Hiwire.UNDEFINED),Hiwire.JSNULL=HEAPU8[_Js_null+0],e.objects.set(Hiwire.JSNULL,[null,-1]),e.obj_to_key.set(null,Hiwire.JSNULL),Hiwire.TRUE=HEAPU8[_Js_true+0],e.objects.set(Hiwire.TRUE,[!0,-1]),e.obj_to_key.set(!0,Hiwire.TRUE),Hiwire.FALSE=HEAPU8[_Js_false+0],e.objects.set(Hiwire.FALSE,[!1,-1]),e.obj_to_key.set(!1,Hiwire.FALSE);let t=HEAPU8[_Js_novalue]+2;Hiwire.new_value=function(t){let _=e.obj_to_key.get(t);if(void 0!==_)return e.objects.get(_)[1]++,_;for(;e.objects.has(e.counter[0]);)e.counter[0]+=2;return _=e.counter[0],e.objects.set(_,[t,1]),e.obj_to_key.set(t,_),e.counter[0]+=2,_},Hiwire.intern_object=function(_){let r=t;return t+=2,e.objects.set(r,[_,-1]),r},Hiwire.num_keys=function(){return Array.from(e.objects.keys()).filter((e=>e%2)).length},Hiwire.get_value=function(t){if(!t){if(API.fail_test=!0,_PyErr_Occurred()){let e=_wrap_exception(),_=Hiwire.pop_value(e);throw console.error(`Pyodide internal error: Argument '${t}' to hiwire.get_value is falsy. This was probably because the Python error indicator was set when get_value was called. The Python error that caused this was:`,_),_}throw console.error(`Pyodide internal error: Argument '${t}' to hiwire.get_value is falsy (but error indicator is not set).`),new Error(`Pyodide internal error: Argument '${t}' to hiwire.get_value is falsy (but error indicator is not set).`)}if(!e.objects.has(t))throw API.fail_test=!0,console.error(`Pyodide internal error: Undefined id ${t}`),new Error(`Undefined id ${t}`);return e.objects.get(t)[0]},Hiwire.decref=function(t){if(!(1&t))return;let _=e.objects.get(t);0===--_[1]&&(e.objects.delete(t),e.obj_to_key.delete(_[0]))},Hiwire.incref=function(t){1&t&&e.objects.get(t)[1]++},Hiwire.pop_value=function(e){let t=Hiwire.get_value(e);return Hiwire.decref(e),t},Hiwire.isPromise=function(e){try{return!!e&&"function"==typeof e.then}catch(e){return!1}},API.typedArrayAsUint8Array=function(e){return ArrayBuffer.isView(e)?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):new Uint8Array(e)};{let e=["b","B","h","H","i","I","f","d"].join(String.fromCharCode(0)),t=stringToNewUTF8(e),_={};for(let[r,n]of Object.entries(e))_[n]=t+Number(r);let r=new Map([["Int8Array",[_.b,1,!0]],["Uint8Array",[_.B,1,!0]],["Uint8ClampedArray",[_.B,1,!0]],["Int16Array",[_.h,2,!0]],["Uint16Array",[_.H,2,!0]],["Int32Array",[_.i,4,!0]],["Uint32Array",[_.I,4,!0]],["Float32Array",[_.f,4,!0]],["Float64Array",[_.d,8,!0]],["DataView",[_.B,1,!1]],["ArrayBuffer",[_.B,1,!1]]]);Module.get_buffer_datatype=function(e){return r.get(e.constructor.name)||[0,0,!1]}}return Module.iterObject=function*(e){for(let t in e)Object.prototype.hasOwnProperty.call(e,t)&&(yield t)},globalThis.BigInt?Module.BigInt=BigInt:Module.BigInt=Number,0}catch(e){return Module.handle_js_error(e),-1}return 0}function hiwire_incref(e){return 1&e&&Hiwire.incref(e),e}function hiwire_decref(e){Hiwire.decref(e)}function hiwire_int(e){try{return Hiwire.new_value(e)}catch(e){return Module.handle_js_error(e),0}throw new Error("Assertion error: control reached end of function without return")}function hiwire_int_from_digits(e,t){try{let _=BigInt(0);for(let r=0;r>2)+r])<>2)+t-1])<2147483647?-4:t}catch(e){return Module.handle_js_error(e),-1}return 0}function hiwire_get_length_string(e){try{const t=Hiwire.get_value(e);let _;return"number"==typeof t.size?_=t.size:"number"==typeof t.length&&(_=t.length),stringToNewUTF8(" "+_.toString())}catch(e){return Module.handle_js_error(e),0}throw new Error("Assertion error: control reached end of function without return")}function hiwire_get_bool(e){try{let t=Hiwire.get_value(e);return!!t&&(0===t.size?!!/HTML[A-Za-z]*Element/.test(getTypeTag(t)):(0!==t.length||!JsArray_Check(e))&&0!==t.byteLength)}catch(e){return!1}}function hiwire_is_function(e){try{return"function"==typeof Hiwire.get_value(e)}catch(e){return!1}}function hiwire_is_generator(e){try{return"[object Generator]"===getTypeTag(Hiwire.get_value(e))}catch(e){return!1}}function hiwire_is_async_generator(e){try{return"[object AsyncGenerator]"===Object.prototype.toString.call(Hiwire.get_value(e))}catch(e){return!1}}function hiwire_is_comlink_proxy(e){try{let t=Hiwire.get_value(e);return!(!API.Comlink||!t[API.Comlink.createEndpoint])}catch(e){return!1}}function hiwire_is_error(e){try{let t=Hiwire.get_value(e);return!(!t||"string"!=typeof t.stack||"string"!=typeof t.message)}catch(e){return!1}}function hiwire_is_promise(e){try{let t=Hiwire.get_value(e);return Hiwire.isPromise(t)}catch(e){return!1}}function hiwire_resolve_promise(e){try{let t=Hiwire.get_value(e),_=Promise.resolve(t);return Hiwire.new_value(_)}catch(e){return Module.handle_js_error(e),0}throw new Error("Assertion error: control reached end of function without return")}function hiwire_to_string(e){try{return Hiwire.new_value(Hiwire.get_value(e).toString())}catch(e){return Module.handle_js_error(e),0}throw new Error("Assertion error: control reached end of function without return")}function hiwire_typeof(e){return Hiwire.new_value(typeof Hiwire.get_value(e))}function hiwire_constructor_name(e){try{return stringToNewUTF8(Hiwire.get_value(e).constructor.name)}catch(e){return Module.handle_js_error(e),0}throw new Error("Assertion error: control reached end of function without return")}function hiwire_less_than(e,t){try{return!!(Hiwire.get_value(e)Hiwire.get_value(t))}catch(e){return!1}}function hiwire_greater_than_equal(e,t){try{return!!(Hiwire.get_value(e)>=Hiwire.get_value(t))}catch(e){return!1}}function hiwire_reversed_iterator(e){try{Module._reversedIterator||(Module._reversedIterator=class{constructor(e){this._array=e,this._i=e.length-1}__length_hint__(){return this._array.length}[Symbol.toStringTag](){return"ReverseIterator"}next(){const e=this._i,t=this._array,_=e<0,r=_?void 0:t[e];return this._i--,{done:_,value:r}}});let t=Hiwire.get_value(e);return Hiwire.new_value(new Module._reversedIterator(t))}catch(e){return Module.handle_js_error(e),0}throw new Error("Assertion error: control reached end of function without return")}function hiwire_assign_to_ptr(e,t){try{let _=Hiwire.get_value(e);Module.HEAPU8.set(API.typedArrayAsUint8Array(_),t)}catch(e){return Module.handle_js_error(e),-1}return 0}function hiwire_assign_from_ptr(e,t){try{let _=Hiwire.get_value(e);API.typedArrayAsUint8Array(_).set(Module.HEAPU8.subarray(t,t+_.byteLength))}catch(e){return Module.handle_js_error(e),-1}return 0}function hiwire_read_from_file(e,t){try{let _=Hiwire.get_value(e),r=API.typedArrayAsUint8Array(_),n=Module.FS.streams[t];Module.FS.read(n,r,0,r.byteLength)}catch(e){return Module.handle_js_error(e),-1}return 0}function hiwire_write_to_file(e,t){try{let _=Hiwire.get_value(e),r=API.typedArrayAsUint8Array(_),n=Module.FS.streams[t];Module.FS.write(n,r,0,r.byteLength)}catch(e){return Module.handle_js_error(e),-1}return 0}function hiwire_into_file(e,t){try{let _=Hiwire.get_value(e),r=API.typedArrayAsUint8Array(_),n=Module.FS.streams[t];Module.FS.write(n,r,0,r.byteLength,void 0,!0)}catch(e){return Module.handle_js_error(e),-1}return 0}function hiwire_get_buffer_info(e,t,_,r,n){let o=Hiwire.get_value(e),l=o.byteLength,[i,a,u]=Module.get_buffer_datatype(o);HEAPU32[0+(t>>2)]=l,HEAPU32[0+(_>>2)]=i,HEAPU32[0+(r>>2)]=a,HEAPU8[n+0]=u}function hiwire_subarray(e,t,_){try{let r=Hiwire.get_value(e).subarray(t,_);return Hiwire.new_value(r)}catch(e){return Module.handle_js_error(e),0}throw new Error("Assertion error: control reached end of function without return")}function JsArray_Check(e){try{let t=Hiwire.get_value(e);if(Array.isArray(t))return!0;let _=getTypeTag(t);return"[object HTMLCollection]"===_||"[object NodeList]"===_||!(!ArrayBuffer.isView(t)||"DataView"===t.constructor.name)}catch(e){return!1}}function JsArray_New(){try{return Hiwire.new_value([])}catch(e){return Module.handle_js_error(e),0}throw new Error("Assertion error: control reached end of function without return")}function JsArray_Push(e,t){try{Hiwire.get_value(e).push(Hiwire.get_value(t))}catch(e){return Module.handle_js_error(e),-1}return 0}function JsArray_Push_unchecked(e,t){const _=Hiwire.get_value(e);return _.push(Hiwire.get_value(t)),_.length-1}function JsArray_Get(e,t){try{let _=Hiwire.get_value(e),r=_[t];return void 0!==r||t in _?Hiwire.new_value(r):0}catch(e){return Module.handle_js_error(e),0}throw new Error("Assertion error: control reached end of function without return")}function JsArray_Set(e,t,_){try{Hiwire.get_value(e)[t]=Hiwire.get_value(_)}catch(e){return Module.handle_js_error(e),-1}return 0}function JsArray_Delete(e,t){try{let _=Hiwire.get_value(e);if(t<0||t>=_.length)return-1;_.splice(t,1)}catch(e){return Module.handle_js_error(e),-1}return 0}function JsArray_Splice(e,t){try{let _=Hiwire.get_value(e);return t<0||t>=_.length?0:Hiwire.new_value(_.splice(t,1))}catch(e){return Module.handle_js_error(e),0}throw new Error("Assertion error: control reached end of function without return")}function JsArray_slice(e,t,_,r,n){try{let o,l=Hiwire.get_value(e);return o=1===n?l.slice(_,r):Array.from({length:t},((e,t)=>l[_+t*n])),Hiwire.new_value(o)}catch(e){return Module.handle_js_error(e),0}throw new Error("Assertion error: control reached end of function without return")}function JsArray_slice_assign(e,t,_,r,n,o,l){try{let r=Hiwire.get_value(e),i=[];for(let e=0;e>2)+e]);if(0===t)return-1;i.push(Hiwire.pop_value(t))}if(1===n)r.splice(_,t,...i);else if(0!==l)for(let e=0;e=0;e--)r.splice(_+e*n,1)}catch(e){return Module.handle_js_error(e),-1}return 0}function JsArray_Clear(e){try{let t=Hiwire.get_value(e);t.splice(0,t.length)}catch(e){return Module.handle_js_error(e),-1}return 0}function JsObject_New(){try{return Hiwire.new_value({})}catch(e){return Module.handle_js_error(e),0}throw new Error("Assertion error: control reached end of function without return")}function isReservedWord(e){return Module.pythonReservedWords||(Module.pythonReservedWords=new Set(["False","await","else","import","pass","None","break","except","in","raise","True","class","finally","is","return","and","continue","for","lambda","try","as","def","from","nonlocal","while","assert","del","global","not","with","async","elif","if","or","yield"])),Module.pythonReservedWords.has(e)}function normalizeReservedWords(e,t){const _=t.replace(/_*$/,"");if(!isReservedWord(_))return t;if(_!==t)return t.slice(0,-1);let r=stringToNewUTF8(e),n=stringToNewUTF8(t);throw _setReservedError(r,n),_free(r),_free(n),new Module._PropagatePythonError}function JsObject_GetString(e,t){try{let _=Hiwire.get_value(e),r=normalizeReservedWords("get",UTF8ToString(t));return r in _?Hiwire.new_value(_[r]):0}catch(e){return Module.handle_js_error(e),0}throw new Error("Assertion error: control reached end of function without return")}function JsObject_SetString(e,t,_){try{let r=Hiwire.get_value(e),n=normalizeReservedWords("set",UTF8ToString(t)),o=Hiwire.get_value(_);r[n]=o}catch(e){return Module.handle_js_error(e),-1}return 0}function JsObject_DeleteString(e,t){try{delete Hiwire.get_value(e)[normalizeReservedWords("delete",UTF8ToString(t))]}catch(e){return Module.handle_js_error(e),-1}return 0}function JsObject_Dir(e){try{let t=Hiwire.get_value(e),_=[];do{const e=Object.getOwnPropertyNames(t);_.push(...e.filter((e=>{let t=e.charCodeAt(0);return t<48||t>57})).map((e=>isReservedWord(e.replace(/_*$/,""))?e+"_":e)))}while(t=Object.getPrototypeOf(t));return Hiwire.new_value(_)}catch(e){return Module.handle_js_error(e),0}throw new Error("Assertion error: control reached end of function without return")}function JsObject_Entries(e){try{let t=Hiwire.get_value(e);return Hiwire.new_value(Object.entries(t))}catch(e){return Module.handle_js_error(e),0}throw new Error("Assertion error: control reached end of function without return")}function JsObject_Keys(e){try{let t=Hiwire.get_value(e);return Hiwire.new_value(Object.keys(t))}catch(e){return Module.handle_js_error(e),0}throw new Error("Assertion error: control reached end of function without return")}function JsObject_Values(e){try{let t=Hiwire.get_value(e);return Hiwire.new_value(Object.values(t))}catch(e){return Module.handle_js_error(e),0}throw new Error("Assertion error: control reached end of function without return")}function JsString_InternFromCString(e){try{let t=UTF8ToString(e);return Hiwire.intern_object(t)}catch(e){return Module.handle_js_error(e),0}throw new Error("Assertion error: control reached end of function without return")}function JsMap_New(){try{return Hiwire.new_value(new Map)}catch(e){return Module.handle_js_error(e),0}throw new Error("Assertion error: control reached end of function without return")}function JsMap_Set(e,t,_){try{let r=Hiwire.get_value(e),n=Hiwire.get_value(t),o=Hiwire.get_value(_);r.set(n,o)}catch(e){return Module.handle_js_error(e),-1}return 0}function JsSet_New(){try{return Hiwire.new_value(new Set)}catch(e){return Module.handle_js_error(e),0}throw new Error("Assertion error: control reached end of function without return")}function JsSet_Add(e,t){try{let _=Hiwire.get_value(e),r=Hiwire.get_value(t);_.add(r)}catch(e){return Module.handle_js_error(e),-1}return 0}function js2python_immutable(e){try{let t=Hiwire.get_value(e),_=Module.js2python_convertImmutable(t,e);return void 0!==_?_:0}catch(e){return Module.handle_js_error(e),0}throw new Error("Assertion error: control reached end of function without return")}function js2python(e){try{let t=Hiwire.get_value(e),_=Module.js2python_convertImmutable(t,e);return void 0!==_?_:_JsProxy_create(e)}catch(e){return Module.handle_js_error(e),0}throw new Error("Assertion error: control reached end of function without return")}function js2python_convert(e,t,_){try{let r=_?Module.hiwire.get_value(_):void 0;return Module.js2python_convert(e,{depth:t,defaultConverter:r})}catch(e){return Module.handle_js_error(e),0}throw new Error("Assertion error: control reached end of function without return")}function js2python_init(){try{{let e=Module._PropagatePythonError;function t(t){let _=0,r=0;for(let e of t){r++;let t=e.codePointAt(0);_=t>_?t:_}let n=_PyUnicode_New(r,_);if(0===n)throw new e;let o=_PyUnicode_Data(n);if(_>65535)for(let e of t)HEAPU32[o/4]=e.codePointAt(0),o+=4;else if(_>255)for(let e of t)HEAPU16[o/2]=e.codePointAt(0),o+=2;else for(let e of t)HEAPU8[o]=e.codePointAt(0),o+=1;return n}function _(e){let t=e,_=0;for(e<0&&(e=-e),e<<=BigInt(1);e;)_++,e>>=BigInt(32);let r=stackSave(),n=stackAlloc(4*_);e=t;for(let t=0;t<_;t++)HEAPU32[(n>>2)+t]=Number(e&BigInt(4294967295)),e>>=BigInt(32);let o=__PyLong_FromByteArray(n,4*_,!0,!0);return stackRestore(r),o}function r(t,_){let r=n(t,_);if(0===r)throw new e;return r}function n(e,r){let n=typeof e;return"string"===n?t(e):"number"===n?Number.isSafeInteger(e)?_PyLong_FromDouble(e):_PyFloat_FromDouble(e):"bigint"===n?_(e):null==e?__js2python_none():!0===e?__js2python_true():!1===e?__js2python_false():API.isPyProxy(e)?(0==e.$$.ptr&&Module.PyProxy_getPtr(e),e.$$props.roundtrip?(void 0===r&&(r=Hiwire.new_value(e)),_JsProxy_create(r)):__js2python_pyproxy(Module.PyProxy_getPtr(e))):void 0}function o(t,_){let r=_PyList_New(t.length);if(0===r)return 0;let n=0,o=0;try{_.cache.set(t,r);for(let l=0;l>2)]=stringToNewUTF8(r),-1;let o=Hiwire.new_value(n.value);return HEAPU32[0+(t>>2)]=o,n.done}catch(e){return Module.handle_js_error(e),-1}return 0}function JsException_new_helper(e,t,_){try{let r=UTF8ToString(e),n=UTF8ToString(t),o=UTF8ToString(_);return Hiwire.new_value(API.deserializeError(r,n,o))}catch(e){return Module.handle_js_error(e),0}throw new Error("Assertion error: control reached end of function without return")}function JsProxy_GetAsyncIter_js(e){try{let t=Hiwire.get_value(e);return Hiwire.new_value(t[Symbol.asyncIterator]())}catch(e){return Module.handle_js_error(e),0}throw new Error("Assertion error: control reached end of function without return")}function _agen_handle_result_js(e,t,_,r,n){try{let o,l=Hiwire.get_value(e);return"object"!=typeof l?o="Result of anext() should be object not "+typeof l:"function"!=typeof l.then&&(o="boolean"==typeof l.done?"Result of anext() was not a promise, use next() instead.":"Result of anext() was not a promise."),o?(HEAPU32[0+(t>>2)]=stringToNewUTF8(o),-1):(_Py_IncRef(_),_Py_IncRef(r),l.then((({done:e,value:t})=>{let o=Hiwire.new_value(t);__agen_handle_result_js_c(_,r,e,o,n),Hiwire.decref(o)}),(e=>{let t=Hiwire.new_value(e);__agen_handle_result_js_c(_,r,-1,t,n),Hiwire.decref(t)})).finally((()=>{_Py_DecRef(_),_Py_DecRef(r)})),0)}catch(e){return Module.handle_js_error(e),-1}return 0}function JsArray_index_helper(e,t,_,r){try{let n=Hiwire.get_value(e),o=Hiwire.get_value(t);for(let e=_;eModule.pyproxy_destroy(e,n)))}function l(e){return function(t){let n;API.isPyProxy(t)&&(t=t.copy(),_.add(t));try{n=r[e](t)}catch(e){throw o(),e}return n.done&&(_.delete(n.value),o()),n}}return Hiwire.new_value({get[Symbol.toStringTag](){return"Generator"},[Symbol.iterator](){return this},next:l("next"),throw:l("throw"),return:l("return")})}catch(i){return Module.handle_js_error(i),0}throw new Error("Assertion error: control reached end of function without return")}function wrap_async_generator(e,t){try{const _=new Set(Hiwire.get_value(t)),r=Hiwire.get_value(e),n="This borrowed proxy was automatically destroyed when an asynchronous generator completed execution. Try using create_proxy or create_once_callable.";function o(){_.forEach((e=>Module.pyproxy_destroy(e,n)))}function l(e){return async function(t){let n;API.isPyProxy(t)&&(t=t.copy(),_.add(t));try{n=await r[e](t)}catch(e){throw o(),e}return n.done&&(_.delete(n.value),o()),n}}return Hiwire.new_value({get[Symbol.toStringTag](){return"AsyncGenerator"},[Symbol.asyncIterator](){return this},next:l("next"),throw:l("throw"),return:l("return")})}catch(i){return Module.handle_js_error(i),0}throw new Error("Assertion error: control reached end of function without return")}function JsBuffer_DecodeString_js(e,t){try{let _,r=Hiwire.get_value(e);t&&(_=UTF8ToString(t));let n,o=new TextDecoder(_,{fatal:!0,ignoreBOM:!0});try{n=o.decode(r)}catch(e){if(e instanceof TypeError)return 0;throw e}return Hiwire.new_value(n)}catch(e){return Module.handle_js_error(e),0}throw new Error("Assertion error: control reached end of function without return")}function JsDoubleProxy_unwrap_helper(e){try{return Module.PyProxy_getPtr(Hiwire.get_value(e))}catch(e){return Module.handle_js_error(e),0}throw new Error("Assertion error: control reached end of function without return")}function JsProxy_compute_typeflags(e){try{let t=Hiwire.get_value(e),_=0;if(API.isPyProxy(t)&&0===t.$$.ptr)return 0;const r=t.constructor?t.constructor.name:"";let n=getTypeTag(t);return"function"==typeof t&&(_|=512),"function"==typeof t.then&&(_|=128),"function"==typeof t[Symbol.iterator]&&(_|=1),"function"==typeof t[Symbol.asyncIterator]&&(_|=32768),"function"!=typeof t.next||"function"!=typeof t[Symbol.iterator]&&"function"==typeof t[Symbol.asyncIterator]||(_|=2),"function"!=typeof t.next||"function"==typeof t[Symbol.iterator]&&"function"!=typeof t[Symbol.asyncIterator]||(_|=1<<18),("number"==typeof t.size||"number"==typeof t.length&&"function"!=typeof t)&&(_|=4),"function"==typeof t.get&&(_|=8),"function"==typeof t.set&&(_|=16),"function"==typeof t.has&&(_|=32),"function"==typeof t.includes&&(_|=64),!ArrayBuffer.isView(t)&&"ArrayBuffer"!==r||512&_||(_|=256),API.isPyProxy(t)&&(_|=8192),Array.isArray(t)&&(_|=1024),"[object HTMLCollection]"!==n&&"[object NodeList]"!==n||(_|=2048),ArrayBuffer.isView(t)&&"DataView"!==t.constructor.name&&(_|=4096),"[object Generator]"===n&&(_|=65536),"[object AsyncGenerator]"===n&&(_|=1<<17),"string"!=typeof t.stack||"string"!=typeof t.message||768&_||(_|=1<<19),_}catch(e){return Module.handle_js_error(e),-1}return 0}function pyproxy_Check(e){if(0==e)return!1;let t=Hiwire.get_value(e);return API.isPyProxy(t)}function pyproxy_AsPyObject(e){if(0==e)return 0;let t=Hiwire.get_value(e);return API.isPyProxy(t)?Module.PyProxy_getPtr(t):0}function destroy_proxies(e,t){let _;t&&(_=UTF8ToString(t));let r=Hiwire.get_value(e);for(let e of r)Module.pyproxy_destroy(e,_,!1)}function destroy_proxy(e,t){let _,r=Module.hiwire.get_value(e);r.$$props.roundtrip||(t&&(_=UTF8ToString(t)),Module.pyproxy_destroy(r,_,!1))}function proxy_cache_get(e,t){let _=Hiwire.get_value(e),r=_.get(t);if(r)return Hiwire.get_value(r).$$.ptr?r:(_.delete(t),void Hiwire.decref(r))}function proxy_cache_set(e,t,_){Hiwire.get_value(e).set(t,_)}function array_to_js(e,t){return Hiwire.new_value(Array.from(HEAP32.subarray(e/4,e/4+t)))}function pyproxy_new_ex(e,t,_){try{return Hiwire.new_value(Module.pyproxy_new(e,{props:{captureThis:!!t,roundtrip:!!_}}))}catch(e){return Module.handle_js_error(e),0}throw new Error("Assertion error: control reached end of function without return")}function pyproxy_new(e){try{return Hiwire.new_value(Module.pyproxy_new(e))}catch(e){return Module.handle_js_error(e),0}throw new Error("Assertion error: control reached end of function without return")}function create_once_callable(e){try{_Py_IncRef(e);let t=!1;function _(...r){if(t)throw new Error("OnceProxy can only be called once");try{return Module.callPyObject(e,r)}finally{_.destroy()}}return _.destroy=function(){if(t)throw new Error("OnceProxy has already been destroyed");t=!0,Module.finalizationRegistry.unregister(_),_Py_DecRef(e)},Module.finalizationRegistry.register(_,[e,void 0],_),Hiwire.new_value(_)}catch(r){return Module.handle_js_error(r),0}throw new Error("Assertion error: control reached end of function without return")}function create_promise_handles(e,t,_){try{e&&_Py_IncRef(e),t&&_Py_IncRef(t);let r=e=>{};_&&(r=Hiwire.get_value(_));let n=!1;function o(){if(n)throw new Error("One of the promise handles has already been called.")}function l(){o(),n=!0,e&&_Py_DecRef(e),t&&_Py_DecRef(t)}function i(t){o();try{if(e)return Module.callPyObject(e,[t])}finally{r(t),l()}}function a(e){o();try{if(t)return Module.callPyObject(t,[e])}finally{r(void 0),l()}}return i.destroy=l,a.destroy=l,Hiwire.new_value([i,a])}catch(u){return Module.handle_js_error(u),0}throw new Error("Assertion error: control reached end of function without return")}function _python2js_buffer_inner(e,t,_,r,n,o,l){try{let i=Module.get_converter(r,t),a=Module._python2js_buffer_recursive(e,0,{ndim:_,format:r,itemsize:t,shape:n,strides:o,suboffsets:l,converter:i});return Hiwire.new_value(a)}catch(e){return Module.handle_js_error(e),0}throw new Error("Assertion error: control reached end of function without return")}function python2js_buffer_init(){try{return Module.processBufferFormatString=function(e,t=""){if(e.length>2)throw new Error(`Expected format string to have length <= 2, got '${e}'.`+t);let _,r,n=e.slice(-1),o=e.slice(0,-1);switch(o){case"!":case">":_=!0;break;case"<":case"@":case"=":case"":_=!1;break;default:throw new Error(`Unrecognized alignment character ${o}.`+t)}switch(n){case"b":r=Int8Array;break;case"s":case"p":case"c":case"B":case"?":r=Uint8Array;break;case"h":r=Int16Array;break;case"H":r=Uint16Array;break;case"i":case"l":case"n":r=Int32Array;break;case"I":case"L":case"N":case"P":r=Uint32Array;break;case"q":if(void 0===globalThis.BigInt64Array)throw new Error("BigInt64Array is not supported on this browser."+t);r=BigInt64Array;break;case"Q":if(void 0===globalThis.BigUint64Array)throw new Error("BigUint64Array is not supported on this browser."+t);r=BigUint64Array;break;case"f":r=Float32Array;break;case"d":r=Float64Array;break;case"e":throw new Error("Javascript has no Float16 support.");default:throw new Error(`Unrecognized format character '${n}'.`+t)}return[r,_]},Module.python2js_buffer_1d_contiguous=function(e,t,_){let r=t*_;return HEAP8.slice(e,e+r).buffer},Module.python2js_buffer_1d_noncontiguous=function(e,t,_,r,n){let o=new Uint8Array(n*r);for(let l=0;l=0&&(r=HEAPU32[0+(r>>2)]+_),o.set(HEAP8.subarray(r,r+n),l*n)}return o.buffer},Module._python2js_buffer_recursive=function(e,t,_){let r=HEAPU32[(_.shape>>2)+t],n=HEAP32[(_.strides>>2)+t],o=-1;if(0!==_.suboffsets&&(o=HEAP32[(_.suboffsets>>2)+t]),t===_.ndim-1){let t;return t=n===_.itemsize&&o<0?Module.python2js_buffer_1d_contiguous(e,n,r):Module.python2js_buffer_1d_noncontiguous(e,n,o,r,_.itemsize),_.converter(t)}let l=[];for(let i=0;i=0&&(curptr=HEAPU32[0+(curptr>>2)]+o),l.push(Module._python2js_buffer_recursive(r,t+1,_))}return l},Module.get_converter=function(e,t){let _,r,n=UTF8ToString(e),[o,l]=Module.processBufferFormatString(n);switch(n.slice(-1)){case"s":let e=new TextDecoder("utf8",{ignoreBOM:!0});return t=>e.decode(t);case"?":return e=>Array.from(new Uint8Array(e),(e=>!!e))}if(!l)return e=>new o(e);switch(t){case 2:_="getUint16",r="setUint16";break;case 4:_="getUint32",r="setUint32";break;case 8:_="getFloat64",r="setFloat64";break;default:throw new Error(`Unexpected size ${t}`)}return e=>new o(function(e){let n=new DataView(e),o=n[_].bind(n),l=n[r].bind(n);for(let e=0;e>1)+r]);return Hiwire.new_value(_)}catch(e){return Module.handle_js_error(e),0}throw new Error("Assertion error: control reached end of function without return")}function _python2js_ucs4(e,t){try{let _="";for(let r=0;r>2)+r]);return Hiwire.new_value(_)}catch(e){return Module.handle_js_error(e),0}throw new Error("Assertion error: control reached end of function without return")}function _python2js_add_to_cache(e,t,_){try{const r=Hiwire.get_value(e),n=r.get(t);void 0!==n&&Hiwire.decref(n),Hiwire.incref(_),r.set(t,_)}catch(e){return Module.handle_js_error(e),-1}return 0}function _python2js_destroy_cache(e){const t=Hiwire.get_value(e);for(const[e,_]of t.entries())Hiwire.decref(_)}function _python2js_cache_lookup(e,t){return Hiwire.get_value(e).get(t)}function _JsArray_PushEntry_helper(e,t,_){try{Hiwire.get_value(e).push([Hiwire.get_value(t),Hiwire.get_value(_)])}catch(e){return Module.handle_js_error(e),-1}return 0}function _JsArray_PostProcess_helper(e,t){try{return Hiwire.new_value(Hiwire.get_value(e).dict_converter(Hiwire.get_value(t)))}catch(e){return Module.handle_js_error(e),0}throw new Error("Assertion error: control reached end of function without return")}function python2js__default_converter(e,t){try{let _=Hiwire.get_value(e),r=Module.pyproxy_new(t),n=_.default_converter(r,_.converter,_.cacheConversion);return r.destroy(),Hiwire.new_value(n)}catch(e){return Module.handle_js_error(e),0}throw new Error("Assertion error: control reached end of function without return")}function python2js_custom__create_jscontext(e,t,_,r){try{let n={};return 0!==_&&(n.dict_converter=Hiwire.get_value(_)),0!==r&&(n.default_converter=Hiwire.get_value(r),n.cacheConversion=function(e,_){if(!API.isPyProxy(e))throw new TypeError("The first argument to cacheConversion must be a PyProxy.");let r=Module.PyProxy_getPtr(e),n=Hiwire.new_value(_);Hiwire.get_value(t).set(r,n)},n.converter=function(t){if(!API.isPyProxy(t))return t;let _=Module.PyProxy_getPtr(t),r=__python2js(e,_);return Hiwire.pop_value(r)}),Hiwire.new_value(n)}catch(e){return Module.handle_js_error(e),0}throw new Error("Assertion error: control reached end of function without return")}function destroy_proxies_js(e){try{for(let t of Hiwire.get_value(e))t.destroy()}catch(e){return Module.handle_js_error(e),-1}return 0}function pyodide_js_init(){!function(e){function t(e,t,_,r){var n,o=arguments.length,l=o<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,_):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,_,r);else for(var i=e.length-1;i>=0;i--)(n=e[i])&&(l=(o<3?n(l):o>3?n(t,_,l):n(t,_))||l);return o>3&&l&&Object.defineProperty(t,_,l),l}function _(e){return this instanceof _?(this.v=e,this):new _(e)}const r=!1;let n,o,l,i,a;if(i=r?function(e,t){return o.resolve(t||".",e)}:function(e,t){return void 0===t&&(t=location),new URL(e,t).toString()},a=r?async function(e,t){if(e.startsWith("file://")&&(e=e.slice(7)),e.includes("://")){let t=await n(e);if(!t.ok)throw new Error(`Failed to load '${e}': request failed.`);return new Uint8Array(await t.arrayBuffer())}{const t=await l.readFile(e);return new Uint8Array(t.buffer,t.byteOffset,t.byteLength)}}:async function(e,t){const _=new URL(e,location);let r=t?{integrity:t}:{},n=await fetch(_,r);if(!n.ok)throw new Error(`Failed to load '${_}': request failed.`);return new Uint8Array(await n.arrayBuffer())},globalThis.document);else if(globalThis.importScripts);else if(!r)throw new Error("Cannot determine runtime environment");function u(e){let t=!1;return function(){t||(t=!0,console.warn(e))}}function s(e){let t=!1;return function(_,r,n){const o=n.value?"value":"get",l=n[o];return n[o]=function(..._){return t||(t=!0,console.warn(e)),l.call(this,..._)},n}}API.isPyProxy=function(e){return e instanceof P},globalThis.FinalizationRegistry?Module.finalizationRegistry=new FinalizationRegistry((([e,t])=>{t&&(t.leaked=!0,g(t));try{Module._Py_DecRef(e)}catch(e){API.fatal_error(e)}})):Module.finalizationRegistry={register(){},unregister(){}};let c,d,p=new Map;function y(e,{flags:t,cache:_,props:r,$$:n}={}){const o=void 0!==t?t:Module._pyproxy_getflags(e);-1===o&&Module._pythonexc2js();const l=Module.getPyProxyClass(o);let i;256&o?(i=function(){},Object.setPrototypeOf(i,l.prototype),delete i.length,delete i.name,i.prototype=void 0):i=Object.create(l.prototype);const a=!!n;a||(_||(_={cacheId:Hiwire.new_value(new Map),refcnt:0}),_.refcnt++,n={ptr:e,type:"PyProxy",cache:_,flags:o},Module.finalizationRegistry.register(n,[e,_],n),Module._Py_IncRef(e)),Object.defineProperty(i,"$$",{value:n}),r||(r={}),r=Object.assign({isBound:!1,captureThis:!1,boundArgs:[],roundtrip:!1},r),Object.defineProperty(i,"$$props",{value:r});let u=new Proxy(i,H);return a||c(u),u}function m(e){let t=e.$$.ptr;if(0===t)throw new Error(e.$$.destroyed_msg);return t}function f(e,t,_){const{captureThis:r,boundArgs:n,boundThis:o,isBound:l}=e.$$props;return r?l?[o].concat(n,_):[t].concat(_):l?n.concat(_):_}Module.pyproxy_alloc_map=p,Module.enable_pyproxy_allocation_tracing=function(){c=function(e){p.set(e,Error().stack)},d=function(e){p.delete(e)}},Module.disable_pyproxy_allocation_tracing=function(){c=function(e){},d=function(e){}},Module.disable_pyproxy_allocation_tracing(),Module.pyproxy_new=y;let M=new Map;function g(e){if(e&&(e.refcnt--,0===e.refcnt)){let t=Hiwire.pop_value(e.cacheId);for(let _ of t.values()){const t=Hiwire.pop_value(_);e.leaked||Module.pyproxy_destroy(t,"This borrowed attribute proxy was automatically destroyed in the process of destroying the proxy it was borrowed from. Try using the 'copy' method.",!0)}}}Module.getPyProxyClass=function(e){const t=[[1,b],[2,E],[4,v],[8,A],[16,F],[32,G],[2048,D],[512,T],[1024,O],[4096,B],[64,N],[128,J],[256,W]];let _=M.get(e);if(_)return _;let r={};for(let[_,n]of t)e&_&&Object.assign(r,Object.getOwnPropertyDescriptors(n.prototype));r.constructor=Object.getOwnPropertyDescriptor(P.prototype,"constructor"),Object.assign(r,Object.getOwnPropertyDescriptors({$$flags:e}));let n=Object.create(P.prototype,r);function o(){}return o.prototype=n,M.set(e,o),o},Module.PyProxy_getPtr=m,Module.pyproxy_destroy=function(e,t,_){if(0===e.$$.ptr)return;if(!_&&e.$$props.roundtrip)return;let r=m(e);Module.finalizationRegistry.unregister(e.$$),t=t||"Object has already been destroyed";let n,o=e.type;try{n=e.toString()}catch(e){if(e.pyodide_fatal_error)throw e}e.$$.ptr=0,t+=`\nThe object was of type "${o}" and `,t+=n?`had repr "${n}"`:"an error was raised when trying to generate its repr",e.$$.destroyed_msg=t,g(e.$$.cache);try{Module._Py_DecRef(r),d(e)}catch(e){API.fatal_error(e)}},Module.callPyObjectKwargs=function(e,t,_){let r=t.length,n=Object.keys(_),o=Object.values(_),l=n.length;t.push(...o);let i,a=Hiwire.new_value(t),u=Hiwire.new_value(n);try{i=Module.__pyproxy_apply(e,a,r,u,l)}catch(e){return void(API._skip_unwind_fatal_error?API.maybe_fatal_error(e):API.fatal_error(e))}finally{Hiwire.decref(a),Hiwire.decref(u)}0===i&&Module._pythonexc2js();let s=Hiwire.pop_value(i);return s&&"coroutine"===s.type&&s._ensure_future&&s._ensure_future(),s},Module.callPyObject=function(e,t){return Module.callPyObjectKwargs(e,t,{})};class P{constructor(){throw new TypeError("PyProxy is not a constructor")}get[Symbol.toStringTag](){return"PyProxy"}get type(){let e=m(this);return Hiwire.pop_value(Module.__pyproxy_type(e))}toString(){let e,t=m(this);try{e=Module.__pyproxy_repr(t)}catch(e){API.fatal_error(e)}return 0===e&&Module._pythonexc2js(),Hiwire.pop_value(e)}destroy(e={}){e=Object.assign({message:"",destroyRoundtrip:!0},e);const{message:t,destroyRoundtrip:_}=e;Module.pyproxy_destroy(this,t,_)}copy(){return y(m(this),{flags:this.$$flags,cache:this.$$.cache,props:this.$$props})}toJs({depth:e=-1,pyproxies:t,create_pyproxies:_=!0,dict_converter:r,default_converter:n}={}){let o,l,i=m(this),a=0,u=0;l=_?t?Hiwire.new_value(t):Hiwire.new_value([]):0,r&&(a=Hiwire.new_value(r)),n&&(u=Hiwire.new_value(n));try{o=Module._python2js_custom(i,e,l,a,u)}catch(e){API.fatal_error(e)}finally{Hiwire.decref(l),Hiwire.decref(a),Hiwire.decref(u)}return 0===o&&Module._pythonexc2js(),Hiwire.pop_value(o)}supportsLength(){return!!(1&this.$$flags)}supportsGet(){return!!(2&this.$$flags)}supportsSet(){return!!(4&this.$$flags)}supportsHas(){return!!(8&this.$$flags)}isIterable(){return!!(48&this.$$flags)}isIterator(){return!!(32&this.$$flags)}isAwaitable(){return!!(64&this.$$flags)}isBuffer(){return!!(128&this.$$flags)}isCallable(){return!!(256&this.$$flags)}}t([s("supportsLength() is deprecated. Use `instanceof pyodide.ffi.PyProxyWithLength` instead.")],P.prototype,"supportsLength",null),t([s("supportsGet() is deprecated. Use `instanceof pyodide.ffi.PyProxyWithGet` instead.")],P.prototype,"supportsGet",null),t([s("supportsSet() is deprecated. Use `instanceof pyodide.ffi.PyProxyWithSet` instead.")],P.prototype,"supportsSet",null),t([s("supportsHas() is deprecated. Use `instanceof pyodide.ffi.PyProxyWithHas` instead.")],P.prototype,"supportsHas",null),t([s("isIterable() is deprecated. Use `instanceof pyodide.ffi.PyIterable` instead.")],P.prototype,"isIterable",null),t([s("isIterator() is deprecated. Use `instanceof pyodide.ffi.PyIterator` instead.")],P.prototype,"isIterator",null),t([s("isAwaitable() is deprecated. Use `instanceof pyodide.ffi.PyAwaitable` instead.")],P.prototype,"isAwaitable",null),t([s("isBuffer() is deprecated. Use `instanceof pyodide.ffi.PyBuffer` instead.")],P.prototype,"isBuffer",null),t([s("isCallable() is deprecated. Use `instanceof pyodide.ffi.PyCallable` instead.")],P.prototype,"isCallable",null);class h extends P{static[Symbol.hasInstance](e){return API.isPyProxy(e)&&!!(1&e.$$flags)}}class b{get length(){let e,t=m(this);try{e=Module._PyObject_Size(t)}catch(e){API.fatal_error(e)}return-1===e&&Module._pythonexc2js(),e}}class w extends P{static[Symbol.hasInstance](e){return API.isPyProxy(e)&&!!(2&e.$$flags)}}class E{get(e){let t,_=m(this),r=Hiwire.new_value(e);try{t=Module.__pyproxy_getitem(_,r)}catch(e){API.fatal_error(e)}finally{Hiwire.decref(r)}if(0===t){if(!Module._PyErr_Occurred())return;Module._pythonexc2js()}return Hiwire.pop_value(t)}}class S extends P{static[Symbol.hasInstance](e){return API.isPyProxy(e)&&!!(4&e.$$flags)}}class v{set(e,t){let _,r=m(this),n=Hiwire.new_value(e),o=Hiwire.new_value(t);try{_=Module.__pyproxy_setitem(r,n,o)}catch(e){API.fatal_error(e)}finally{Hiwire.decref(n),Hiwire.decref(o)}-1===_&&Module._pythonexc2js()}delete(e){let t,_=m(this),r=Hiwire.new_value(e);try{t=Module.__pyproxy_delitem(_,r)}catch(e){API.fatal_error(e)}finally{Hiwire.decref(r)}-1===t&&Module._pythonexc2js()}}class x extends P{static[Symbol.hasInstance](e){return API.isPyProxy(e)&&!!(8&e.$$flags)}}class A{has(e){let t,_=m(this),r=Hiwire.new_value(e);try{t=Module.__pyproxy_contains(_,r)}catch(e){API.fatal_error(e)}finally{Hiwire.decref(r)}return-1===t&&Module._pythonexc2js(),1===t}}class k extends P{static[Symbol.hasInstance](e){return API.isPyProxy(e)&&!!(48&e.$$flags)}}class F{[Symbol.iterator](){let e,t=m(this),_={};try{e=Module._PyObject_GetIter(t)}catch(e){API.fatal_error(e)}0===e&&Module._pythonexc2js();let r=function*(e,t){try{for(;;){const t=Module.__pyproxy_iter_next(e);if(0===t)break;yield Hiwire.pop_value(t)}}catch(e){API.fatal_error(e)}finally{Module.finalizationRegistry.unregister(t),Module._Py_DecRef(e)}Module._PyErr_Occurred()&&Module._pythonexc2js()}(e,_);return Module.finalizationRegistry.register(r,[e,void 0],_),r}}class I extends P{static[Symbol.hasInstance](e){return API.isPyProxy(e)&&!!(1536&e.$$flags)}}class T{[Symbol.asyncIterator](){let e,t=m(this),r={};try{e=Module._PyObject_GetAIter(t)}catch(e){API.fatal_error(e)}0===e&&Module._pythonexc2js();let n=function(e,t){return function(e,t,r){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var n,o=r.apply(e,t||[]),l=[];return n={},i("next"),i("throw"),i("return"),n[Symbol.asyncIterator]=function(){return this},n;function i(e){o[e]&&(n[e]=function(t){return new Promise((function(_,r){l.push([e,t,_,r])>1||a(e,t)}))})}function a(e,t){try{(r=o[e](t)).value instanceof _?Promise.resolve(r.value.v).then(u,s):c(l[0][2],r)}catch(e){c(l[0][3],e)}var r}function u(e){a("next",e)}function s(e){a("throw",e)}function c(e,t){e(t),l.shift(),l.length&&a(l[0][0],l[0][1])}}(this,arguments,(function*(){try{for(;;){let t,r;try{if(t=Module.__pyproxy_aiter_next(e),0===t)break;r=Hiwire.pop_value(t)}catch(e){API.fatal_error(e)}try{yield yield _(yield _(r))}catch(e){if(e&&"object"==typeof e&&"StopAsyncIteration"===e.type)return yield _(void 0);throw e}finally{r.destroy()}}}finally{Module.finalizationRegistry.unregister(t),Module._Py_DecRef(e)}Module._PyErr_Occurred()&&Module._pythonexc2js()}))}(e,r);return Module.finalizationRegistry.register(n,[e,void 0],r),n}}class C extends P{static[Symbol.hasInstance](e){return API.isPyProxy(e)&&!!(32&e.$$flags)}}class G{[Symbol.iterator](){return this}next(e){let t,_,r=Hiwire.new_value(e),n=stackSave(),o=stackAlloc(4);try{t=Module.__pyproxyGen_Send(m(this),r,o)}catch(e){API.fatal_error(e)}finally{Hiwire.decref(r)}let l=HEAPU32[0+(o>>2)];return stackRestore(n),-1===t&&Module._pythonexc2js(),_=0===t,{done:_,value:Hiwire.pop_value(l)}}}class L extends P{static[Symbol.hasInstance](e){return API.isPyProxy(e)&&!!(2048&e.$$flags)}}class D{throw(e){let t,_,r=Hiwire.new_value(e),n=stackSave(),o=stackAlloc(4);try{t=Module.__pyproxyGen_throw(m(this),r,o)}catch(e){API.fatal_error(e)}finally{Hiwire.decref(r)}let l=HEAPU32[0+(o>>2)];return stackRestore(n),-1===t&&Module._pythonexc2js(),_=0===t,{done:_,value:Hiwire.pop_value(l)}}return(e){let t,_,r=Hiwire.new_value(e),n=stackSave(),o=stackAlloc(4);try{t=Module.__pyproxyGen_return(m(this),r,o)}catch(e){API.fatal_error(e)}finally{Hiwire.decref(r)}let l=HEAPU32[0+(o>>2)];return stackRestore(n),-1===t&&Module._pythonexc2js(),_=0===t,{done:_,value:Hiwire.pop_value(l)}}}class U extends P{static[Symbol.hasInstance](e){return API.isPyProxy(e)&&!!(1024&e.$$flags)}}class O{[Symbol.asyncIterator](){return this}async next(e){let t,_=Hiwire.new_value(e);try{t=Module.__pyproxyGen_asend(m(this),_)}catch(e){API.fatal_error(e)}finally{Hiwire.decref(_)}0===t&&Module._pythonexc2js();const r=Hiwire.pop_value(t);let n;try{n=await r}catch(e){if(e&&"object"==typeof e&&"StopAsyncIteration"===e.type)return{done:!0,value:n};throw e}finally{r.destroy()}return{done:!1,value:n}}}class j extends P{static[Symbol.hasInstance](e){return API.isPyProxy(e)&&!!(4096&e.$$flags)}}class B{async throw(e){let t,_=Hiwire.new_value(e);try{t=Module.__pyproxyGen_athrow(m(this),_)}catch(e){API.fatal_error(e)}finally{Hiwire.decref(_)}0===t&&Module._pythonexc2js();const r=Hiwire.pop_value(t);let n;try{n=await r}catch(e){if(e&&"object"==typeof e){if("StopAsyncIteration"===e.type)return{done:!0,value:n};if("GeneratorExit"===e.type)return{done:!0,value:n}}throw e}finally{r.destroy()}return{done:!1,value:n}}async return(e){let t;try{t=Module.__pyproxyGen_areturn(m(this))}catch(e){API.fatal_error(e)}0===t&&Module._pythonexc2js();const _=Hiwire.pop_value(t);let r;try{r=await _}catch(t){if(t&&"object"==typeof t){if("StopAsyncIteration"===t.type)return{done:!0,value:r};if("GeneratorExit"===t.type)return{done:!0,value:e}}throw t}finally{_.destroy()}return{done:!1,value:r}}}let H={isExtensible:()=>!0,has:(e,t)=>!!Reflect.has(e,t)||"symbol"!=typeof t&&(t.startsWith("$")&&(t=t.slice(1)),function(e,t){let _,r=m(e),n=Hiwire.new_value(t);try{_=Module.__pyproxy_hasattr(r,n)}catch(e){API.fatal_error(e)}finally{Hiwire.decref(n)}return-1===_&&Module._pythonexc2js(),0!==_}(e,t)),get(e,t){if(t in e||"symbol"==typeof t)return Reflect.get(e,t);t.startsWith("$")&&(t=t.slice(1));let _=function(e,t){let _,r=m(e),n=Hiwire.new_value(t),o=e.$$.cache.cacheId;try{_=Module.__pyproxy_getattr(r,n,o)}catch(e){API.fatal_error(e)}finally{Hiwire.decref(n)}return 0===_&&Module._PyErr_Occurred()&&Module._pythonexc2js(),_}(e,t);return 0!==_?Hiwire.pop_value(_):void 0},set(e,t,_){let r=Object.getOwnPropertyDescriptor(e,t);if(r&&!r.writable)throw new TypeError(`Cannot set read only field '${t}'`);return"symbol"==typeof t?Reflect.set(e,t,_):(t.startsWith("$")&&(t=t.slice(1)),function(e,t,_){let r,n=m(e),o=Hiwire.new_value(t),l=Hiwire.new_value(_);try{r=Module.__pyproxy_setattr(n,o,l)}catch(e){API.fatal_error(e)}finally{Hiwire.decref(o),Hiwire.decref(l)}-1===r&&Module._pythonexc2js()}(e,t,_),!0)},deleteProperty(e,t){let _=Object.getOwnPropertyDescriptor(e,t);if(_&&!_.writable)throw new TypeError(`Cannot delete read only field '${t}'`);return"symbol"==typeof t?Reflect.deleteProperty(e,t):(t.startsWith("$")&&(t=t.slice(1)),function(e,t){let _,r=m(e),n=Hiwire.new_value(t);try{_=Module.__pyproxy_delattr(r,n)}catch(e){API.fatal_error(e)}finally{Hiwire.decref(n)}-1===_&&Module._pythonexc2js()}(e,t),!_||!!_.configurable)},ownKeys(e){let t,_=m(e);try{t=Module.__pyproxy_ownKeys(_)}catch(e){API.fatal_error(e)}0===t&&Module._pythonexc2js();let r=Hiwire.pop_value(t);return r.push(...Reflect.ownKeys(e)),r},apply:(e,t,_)=>e.apply(t,_)};class R extends P{static[Symbol.hasInstance](e){return API.isPyProxy(e)&&!!(64&e.$$flags)}}class N{_ensure_future(){if(this.$$.promise)return this.$$.promise;let e,t,_,r=m(this),n=new Promise(((_,r)=>{e=_,t=r})),o=Hiwire.new_value(e),l=Hiwire.new_value(t);try{_=Module.__pyproxy_ensure_future(r,o,l)}catch(e){API.fatal_error(e)}finally{Hiwire.decref(l),Hiwire.decref(o)}return-1===_&&Module._pythonexc2js(),this.$$.promise=n,this.destroy(),n}then(e,t){return this._ensure_future().then(e,t)}catch(e){return this._ensure_future().catch(e)}finally(e){return this._ensure_future().finally(e)}}class z extends P{static[Symbol.hasInstance](e){return API.isPyProxy(e)&&!!(256&e.$$flags)}}class W{apply(e,t){return t=f(this,e,t=function(...e){return e}.apply(void 0,t)),Module.callPyObject(m(this),t)}call(e,...t){return t=f(this,e,t),Module.callPyObject(m(this),t)}callKwargs(...e){if(0===e.length)throw new TypeError("callKwargs requires at least one argument (the key word argument object)");let t=e.pop();if(void 0!==t.constructor&&"Object"!==t.constructor.name)throw new TypeError("kwargs argument is not an object");return Module.callPyObjectKwargs(m(this),e,t)}bind(e,...t){const{boundArgs:_,boundThis:r,isBound:n}=this.$$props;let o=e;n&&(o=r);let l=_.concat(t);const i=Object.assign({},this.$$props,{boundArgs:l,isBound:!0,boundThis:o}),a=this.$$;return y(m(this),{$$:a,flags:this.$$flags,props:i})}captureThis(){const e=Object.assign({},this.$$props,{captureThis:!0});return y(m(this),{$$:this.$$,flags:this.$$flags,props:e})}}W.prototype.prototype=Function.prototype;let V=new Map([["i8",Int8Array],["u8",Uint8Array],["u8clamped",Uint8ClampedArray],["i16",Int16Array],["u16",Uint16Array],["i32",Int32Array],["u32",Uint32Array],["i32",Int32Array],["u32",Uint32Array],["i64",globalThis.BigInt64Array],["u64",globalThis.BigUint64Array],["f32",Float32Array],["f64",Float64Array],["dataview",DataView]]);class q extends P{static[Symbol.hasInstance](e){return API.isPyProxy(e)&&!!(128&e.$$flags)}}class J{getBuffer(e){let t;if(e&&(t=V.get(e),void 0===t))throw new Error(`Unknown type ${e}`);let _,r=stackSave(),n=stackAlloc(HEAPU32[0+(Module._buffer_struct_size>>2)]),o=m(this);try{_=Module.__pyproxy_get_buffer(n,o)}catch(e){API.fatal_error(e)}-1===_&&Module._pythonexc2js();let l=HEAPU32[0+(n>>2)],i=HEAPU32[1+(n>>2)],a=HEAPU32[2+(n>>2)],u=!!HEAPU32[3+(n>>2)],s=HEAPU32[4+(n>>2)],c=HEAPU32[5+(n>>2)],d=Hiwire.pop_value(HEAPU32[6+(n>>2)]),p=Hiwire.pop_value(HEAPU32[7+(n>>2)]),y=HEAPU32[8+(n>>2)],f=!!HEAPU32[9+(n>>2)],M=!!HEAPU32[10+(n>>2)],g=Module.UTF8ToString(s);stackRestore(r);let P=!1;try{let e=!1;void 0===t&&([t,e]=Module.processBufferFormatString(g," In this case, you can pass an explicit type argument."));let _=parseInt(t.name.replace(/[^0-9]/g,""))/8||1;if(e&&_>1)throw new Error("Javascript has no native support for big endian buffers. In this case, you can pass an explicit type argument. For instance, `getBuffer('dataview')` will return a `DataView`which has native support for reading big endian data. Alternatively, toJs will automatically convert the buffer to little endian.");let r=a-i;if(0!==r&&(l%_!=0||i%_!=0||a%_!=0))throw new Error(`Buffer does not have valid alignment for a ${t.name}`);let n,o=r/_,s=(l-i)/_;n=0===r?new t:new t(HEAPU32.buffer,i,o);for(let e of p.keys())p[e]/=_;return P=!0,Object.create(X.prototype,Object.getOwnPropertyDescriptors({offset:s,readonly:u,format:g,itemsize:c,ndim:d.length,nbytes:r,shape:d,strides:p,data:n,c_contiguous:f,f_contiguous:M,_view_ptr:y,_released:!1}))}finally{if(!P)try{Module._PyBuffer_Release(y),Module._PyMem_Free(y)}catch(e){API.fatal_error(e)}}}}class K extends P{static[Symbol.hasInstance](e){return API.isPyProxy(e)&&"dict"===e.type}}class X{constructor(){throw new TypeError("PyBufferView is not a constructor")}release(){if(!this._released){try{Module._PyBuffer_Release(this._view_ptr),Module._PyMem_Free(this._view_ptr)}catch(e){API.fatal_error(e)}this._released=!0,this.data=null}}}"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;var Y,Z,Q,$,ee={exports:{}},te={exports:{}};te.exports=function(){function e(e){return e.charAt(0).toUpperCase()+e.substring(1)}function t(e){return function(){return this[e]}}var _=["isConstructor","isEval","isNative","isToplevel"],r=["columnNumber","lineNumber"],n=["fileName","functionName","source"],o=_.concat(r,n,["args"],["evalOrigin"]);function l(t){if(t)for(var _=0;_-1&&(e=e.replace(/eval code/g,"eval").replace(/(\(eval at [^()]*)|(,.*$)/g,""));var t=e.replace(/^\s+/,"").replace(/\(eval code/g,"(").replace(/^.*?\s+/,""),_=t.match(/ (\(.+\)$)/);t=_?t.replace(_[0],""):t;var r=this.extractLocation(_?_[1]:t),n=_&&t||void 0,o=["eval",""].indexOf(r[0])>-1?void 0:r[0];return new Y({functionName:n,fileName:o,lineNumber:r[1],columnNumber:r[2],source:e})}),this)},parseFFOrSafari:function(e){return e.stack.split("\n").filter((function(e){return!e.match($)}),this).map((function(e){if(e.indexOf(" > eval")>-1&&(e=e.replace(/ line (\d+)(?: > eval line \d+)* > eval:\d+:\d+/g,":$1")),-1===e.indexOf("@")&&-1===e.indexOf(":"))return new Y({functionName:e});var t=/((.*".+"[^@]*)?[^@]*)(?:@)/,_=e.match(t),r=_&&_[1]?_[1]:void 0,n=this.extractLocation(e.replace(t,""));return new Y({functionName:r,fileName:n[0],lineNumber:n[1],columnNumber:n[2],source:e})}),this)},parseOpera:function(e){return!e.stacktrace||e.message.indexOf("\n")>-1&&e.message.split("\n").length>e.stacktrace.split("\n").length?this.parseOpera9(e):e.stack?this.parseOpera11(e):this.parseOpera10(e)},parseOpera9:function(e){for(var t=/Line (\d+).*script (?:in )?(\S+)/i,_=e.message.split("\n"),r=[],n=2,o=_.length;n/,"$2").replace(/\([^)]*\)/g,"")||void 0;n.match(/\(([^)]*)\)/)&&(t=n.replace(/^[^(]+\(([^)]*)\)$/,"$1"));var l=void 0===t||"[arguments not available]"===t?void 0:t.split(",");return new Y({functionName:o,args:l,fileName:r[0],lineNumber:r[1],columnNumber:r[2],source:e})}),this)}});var _e=ee.exports;function re(e){if("string"==typeof e)e=new Error(e);else if(e&&"object"==typeof e&&"ExitStatus"===e.name){let t=e.status;(e=new de(e.message)).status=t}else if("object"!=typeof e||null===e||"string"!=typeof e.stack||"string"!=typeof e.message){let t=`A value of type ${typeof e} with tag ${API.getTypeTag(e)} was thrown as an error!`;try{t+=`\nString interpolation of the thrown value gives """${e}""".`}catch(e){t+="\nString interpolation of the thrown value fails."}try{t+=`\nThe thrown value's toString method returns """${e.toString()}""".`}catch(e){t+="\nThe thrown value's toString method fails."}e=new Error(t)}return e}class ne extends Error{constructor(e,t,_){t||(t=`The exception is an object of type ${e} at address ${_} which does not inherit from std::exception`),super(t),this.ty=e}}function oe(e){let[t,_]=Module.getExceptionMessage(e);return new ne(t,_,e)}Object.defineProperty(ne.prototype,"name",{get(){return`${this.constructor.name} ${this.ty}`}}),Tests.convertCppException=oe;let le=!1;API.fatal_error=function(e){if(e&&e.pyodide_fatal_error)return;if(le)return console.error("Recursive call to fatal_error. Inner error was:"),void console.error(e);(e="number"==typeof e?oe(e):re(e)).pyodide_fatal_error=!0,le=!0;const t=e instanceof de;t||(console.error("Pyodide has suffered a fatal error. Please report this to the Pyodide maintainers."),console.error("The cause of the fatal error was:"),API.inTestHoist?(console.error(e.toString()),console.error(e.stack)):console.error(e));try{t||Module._dump_traceback();let _=`Pyodide already ${t?"exited":"fatally failed"} and can no longer be used.`;for(let e of Reflect.ownKeys(API.public_api))"string"==typeof e&&e.startsWith("_")||"version"===e||Object.defineProperty(API.public_api,e,{enumerable:!0,configurable:!0,get:()=>{throw new Error(_)}});API.on_fatal&&API.on_fatal(e)}catch(e){console.error("Another error occurred while handling the fatal error:"),console.error(e)}throw e},API.maybe_fatal_error=function(e){if(!e||"unwind"!=e)return API.fatal_error(e)};let ie=[];function ae(e){if(!e)return!1;const t=e.fileName||"";if(t.includes("wasm-function"))return!0;if(!t.includes("pyodide.asm.js"))return!1;let _=e.functionName||"";return _.startsWith("Object.")&&(_=_.slice(7)),!(_ in API.public_api)||"PythonError"===_||(e.functionName=_,!1)}API.capture_stderr=function(){ie=[];const e=Module.FS;e.createDevice("/dev","capture_stderr",null,(e=>ie.push(e))),e.closeStream(2),e.open("/dev/capture_stderr",1)},API.restore_stderr=function(){const e=Module.FS;return e.closeStream(2),e.unlink("/dev/capture_stderr"),e.open("/dev/stderr",1),(new TextDecoder).decode(new Uint8Array(ie))},API.fatal_loading_error=function(...e){let t=e.join(" ");throw Module._PyErr_Occurred()&&(API.capture_stderr(),Module._PyErr_Print(),t+="\n"+API.restore_stderr()),new ce(t)},Module.handle_js_error=function(e){if(e&&e.pyodide_fatal_error)throw e;if(e instanceof Module._PropagatePythonError)return;let t,_,r=!1;e instanceof API.PythonError&&(r=Module._restore_sys_last_exception(e.__error_address));try{t=_e.parse(e)}catch(e){_=!0}if(_&&(e=re(e)),!r){let t=Hiwire.new_value(e),_=Module._JsProxy_create(t);Module._set_error(_),Module._Py_DecRef(_),Hiwire.decref(t)}if(!_){if(function(e){if(!ae(e))return!1;const t=e.functionName;return"PythonError"===t||"new_error"===t}(t[0]))for(;ae(t[0]);)t.shift();for(const e of t){if(ae(e))break;const t=Module.stringToNewUTF8(e.functionName||"???"),_=Module.stringToNewUTF8(e.fileName||"???.js");Module.__PyTraceback_Add(t,_,e.lineNumber),Module._free(t),Module._free(_)}}};class ue extends Error{constructor(e,t,_){const r=Error.stackTraceLimit;Error.stackTraceLimit=1/0,super(t),Error.stackTraceLimit=r,this.type=e,this.__error_address=_}}API.PythonError=ue;class se extends Error{constructor(){super("If you are seeing this message, an internal Pyodide error has occurred. Please report it to the Pyodide maintainers.")}}class ce extends Error{}class de extends Error{}[se,ce,de,ue].forEach((function(e){Object.defineProperty(e.prototype,"name",{value:e.name})})),Module._PropagatePythonError=se,API.errorConstructors=new Map([EvalError,RangeError,ReferenceError,SyntaxError,TypeError,URIError,globalThis.DOMException,globalThis.AssertionError,globalThis.SystemError].filter((e=>e)).map((e=>[e.constructor.name,e]))),API.deserializeError=function(e,t,_){const r=new(API.errorConstructors.get(e)||Error)(t);return API.errorConstructors.has(e)||(r.name=e),r.message=t,r.stack=_,r};const pe={PyProxy:P,PyProxyWithLength:h,PyProxyWithGet:w,PyProxyWithSet:S,PyProxyWithHas:x,PyDict:K,PyIterable:k,PyAsyncIterable:I,PyIterator:C,PyAsyncIterator:U,PyGenerator:L,PyAsyncGenerator:j,PyAwaitable:R,PyCallable:z,PyBuffer:q,PyBufferView:X,PythonError:ue},ye=e=>{"canvas"!==e.id&&console.warn("If you are using canvas element for SDL library, it should have id 'canvas' to work properly."),Module.canvas=e},me=()=>Module.canvas,fe={setCanvas2D:ye,getCanvas2D:me,setCanvas3D:e=>{ye(e)},getCanvas3D:()=>me()};function Me(){let e=Promise.resolve();return async function(){const t=e;let _;return e=new Promise((e=>_=e)),await t,_}}const ge=Me();async function Pe(e,t,_,r){const n=await ge(),o=function(e,t,_){const r=e.substring(0,e.lastIndexOf("/"));let n=t||[];n=n.concat(API.defaultLdLibraryPath,[r]);const o=e=>{for(const t of n){const _=Module.PATH.join2(t,e);if(null!==Module.FS.findObject(_))return _}return e};let l=e=>Module.FS.readFile(o(e));return void 0!==_&&(l=e=>_(o(e))),{findObject:(e,t)=>Module.FS.findObject(o(e),t),readFile:l}}(e,_,r);try{if(await Module.loadDynamicLibrary(e,{loadAsync:!0,nodelete:!0,allowUndefined:!0,global:t,fs:o}),t&&Module.PATH.isAbs(e)){const t=Module.PATH.basename(e);Module.LDSO.loadedLibsByName[t]||(Module.LDSO.loadedLibsByName[t]=Module.LDSO.loadedLibsByName[e])}}catch(t){if(t&&t.message&&t.message.includes("need to see wasm magic number"))return void console.warn(`Failed to load dynlib ${e}. We probably just tried to load a linux .so file or something.`);throw t}finally{n()}}async function he(e,t){const _=`${API.sitepackages}/${e.file_name.split("-")[0]}.libs`,r=(e=>{let t={};return(..._)=>{let r=_[0];if(r in t)return t[r];{let _=e(r);return t[r]=_,_}}})(Module.FS.readFile);let n;if(e.shared_library)n=t.map((e=>({path:e,global:!0})));else{const _=function(e,t){let _=Module.FS.readFile;void 0!==t&&(_=t);const r=new Set;return e.forEach((e=>{const t=_(e);Module.getDylinkMetadata(t).neededDynlibs.forEach((e=>{r.add(e)}))})),r}(t,r);n=t.map((t=>({path:t,global:_.has(Module.PATH.basename(t))||!!e.shared_library})))}n.sort(((e,t)=>Number(t.global)-Number(e.global)));for(const{path:e,global:t}of n)await Pe(e,t,[_],r)}let be;API.loadDynlib=Pe,API.loadDynlibsFromPackage=he,API.packageIndexReady=async function(e){let t;if(r){await async function(){if(!r)return;if((await import("url")).default,l=await import("fs/promises"),n=globalThis.fetch?fetch:(await import("node-fetch")).default,(await import("vm")).default,o=await import("path"),"undefined"!=typeof require)return;const e={fs:await import("fs"),crypto:await import("crypto"),ws:await import("ws"),child_process:await import("child_process")};globalThis.require=function(t){return e[t]}}();const _=await l.readFile(e);t=JSON.parse(_)}else{let _=await fetch(e);t=await _.json()}if(!t.packages)throw new Error("Loaded repodata.json does not contain the expected key 'packages'.");API.repodata_info=t.info,API.repodata_packages=t.packages,API.repodata_unvendored_stdlibs_and_test=[],API._import_name_to_package_name=new Map;for(let e of Object.keys(API.repodata_packages)){const t=API.repodata_packages[e];for(let _ of t.imports)API._import_name_to_package_name.set(_,e);"cpython_module"===t.package_type&&API.repodata_unvendored_stdlibs_and_test.push(e)}API.repodata_unvendored_stdlibs=API.repodata_unvendored_stdlibs_and_test.filter((e=>"test"!==e))}(API.config.lockFileURL),API.setCdnUrl=function(e){be=e};const we=/^.*?([^\/]*)\.whl$/;function Ee(e){let t=we.exec(e);if(t)return t[1].toLowerCase().split("-").slice(0,-4).join("-")}function Se(){let e=()=>{},t=()=>{};const _=new Promise(((_,r)=>{e=_,t=r}));return _.resolve=e,_.reject=t,_}function ve(e,t){if(e=e.toLowerCase(),t.has(e))return;const _=API.repodata_packages[e];if(!_)throw new Error(`No known package with name '${e}'`);if(t.set(e,{name:e,channel:"default channel",depends:_.depends,installPromise:void 0,done:Se()}),void 0===Ie[e])for(let e of _.depends)ve(e,t)}async function xe(e,t,_,n,o=!0){if(void 0!==Ie[e])return;const u=t.get(e);try{const e=await async function(e,t,_=!0){let n,o,u;if("default channel"===t){if(!(e in API.repodata_packages))throw new Error(`Internal error: no entry for package named ${e}`);n=API.repodata_packages[e].file_name,o=i(n,API.config.indexURL),u=API.package_loader.sub_resource_hash(API.repodata_packages[e].sha256)}else o=t,u=void 0;_||(u=void 0);try{return await a(o,u)}catch(e){if(!r||"default channel"!==t)throw e}console.log(`Didn't find package ${n} locally, attempting to load from ${be}`);let s=await a(be+n);return console.log(`Package ${n} loaded from ${be}, caching the wheel in node_modules for future use.`),await l.writeFile(o,s),s}(u.name,u.channel,o),n=u.depends.map((e=>t.has(e)?t.get(e).done:Promise.resolve()));await Promise.all(n),await async function(e,t,_){let r=API.repodata_packages[e];r||(r={file_name:".whl",shared_library:!1,depends:[],imports:[],install_dir:"site"});const n=r.file_name,o=API.package_loader.unpack_buffer.callKwargs({buffer:t,filename:n,target:r.install_dir,calculate_dynlibs:!0,installer:"pyodide.loadPackage",source:"default channel"===_?"pyodide":_});await he(r,o)}(u.name,e,u.channel),_.add(u.name),Ie[u.name]=u.channel}catch(t){n.set(e,t)}finally{u.done.resolve()}}const Ae=Me(),ke=u("Passing a messageCallback (resp. errorCallback) as the second (resp. third) argument to loadPackage is deprecated and will be removed in v0.24. Instead use:\n { messageCallback : callbackFunc }");async function Fe(e,t={checkIntegrity:!0},_){"function"==typeof t&&(ke(),t={messageCallback:t,errorCallback:_});const r=t.messageCallback||console.log,n=t.errorCallback||console.error;e instanceof P&&(e=e.toJs()),Array.isArray(e)||(e=[e]);const o=function(e,t){const _=new Map;for(let r of e){const e=Ee(r);if(void 0===e){ve(r,_);continue}const n=r;_.has(e)&&_.get(e).channel!==n?t(`Loading same package ${e} from ${n} and ${_.get(e).channel}`):_.set(e,{name:e,channel:n,depends:[],installPromise:void 0,done:Se()})}return _}(e,n);for(const[e,t]of o){const _=Ie[e];void 0!==_&&(o.delete(e),_===t.channel||"default channel"===t.channel?r(`${e} already loaded from ${_}`):n(`URI mismatch, attempting to load package ${e} from ${t.channel} while it is already loaded from ${_}. To override a dependency, load the custom package first.`))}if(0===o.size)return void r("No new packages to load");const l=[...o.keys()].join(", "),i=new Set,a=new Map,u=await Ae();try{r(`Loading ${l}`);for(const[e]of o)Ie[e]?o.delete(e):o.get(e).installPromise=xe(e,o,i,a,t.checkIntegrity);if(await Promise.all(Array.from(o.values()).map((({installPromise:e})=>e))),Module.reportUndefinedSymbols(),i.size>0&&r(`Loaded ${Array.from(i).join(", ")}`),a.size>0){r(`Failed to load ${Array.from(a.keys()).join(", ")}`);for(const[e,t]of a)n(`The following error occurred while loading ${e}:`),n(t.message)}API.importlib.invalidate_caches()}finally{u()}}let Ie={},Te=!1;const Ce={},Ge={},Le={};function De(){Te&&(FS.unlink("/dev/stdin"),FS.unlink("/dev/stdout"),FS.unlink("/dev/stderr"),Le.stdin?FS.symlink("/dev/tty","/dev/stdin"):FS.createDevice("/dev","stdin",Ce.get_char),Le.stdout?FS.symlink("/dev/tty","/dev/stdout"):FS.createDevice("/dev","stdout",null,Ce.put_char.bind(void 0,void 0)),Le.stderr?FS.symlink("/dev/tty","/dev/stderr"):FS.createDevice("/dev","stderr",null,Ge.put_char.bind(void 0,void 0)),FS.closeStream(0),FS.closeStream(1),FS.closeStream(2),FS.open("/dev/stdin",0),FS.open("/dev/stdout",1),FS.open("/dev/stderr",1))}function Ue(){Le.stdin=!1;const e=()=>{throw 0};Ce.get_char=e,Ge.get_char=e,De()}function Oe(e={}){if(e.stdin&&e.error)throw new TypeError("Both a stdin handler provided and the error argument was set");if(e.error)Ue();else{if(e.stdin){let t=e.autoEOF;t=void 0===t||t,Le.stdin=!!e.isatty;const _=function(e,t){let _=0,r=new Uint8Array(0),n=!1;return function(){try{if(_>=r.length){if(n)return n=!1,null;let o=e();if(null==o)return null;if("number"==typeof o)return o;if("string"==typeof o)o.endsWith("\n")||(o+="\n"),r=Ne.encode(o);else if(ArrayBuffer.isView(o)){if(1!==o.BYTES_PER_ELEMENT)throw new Error("Expected BYTES_PER_ELEMENT to be 1");r=o}else{if("[object ArrayBuffer]"!==Object.prototype.toString.call(o))throw new Error("Expected result to be undefined, null, string, array buffer, or array buffer view");r=new Uint8Array(o)}if(0===r.length)return null;t&&(n=!0),_=0}return r[_++]}catch(e){throw console.error("Error thrown in stdin:"),console.error(e),e}}}(e.stdin,t);return Ce.get_char=_,Ge.get_char=_,void De()}!function(){if(r){const e=256,t=Buffer.alloc(e),_=require("fs");Oe({stdin:function(){let r;try{r=_.readSync(process.stdin.fd,t,0,e,-1)}catch(e){if(!e.toString().includes("EOF"))throw e;r=0}return 0===r?null:t.subarray(0,r)},isatty:require("tty").isatty(process.stdin.fd)})}else Ue()}()}}function je(){Be(r?{raw:e=>process.stdout.write(Buffer.from([e])),isatty:require("tty").isatty(process.stdout.fd)}:{batched:e=>console.log(e)})}function Be(e={}){if(e.raw&&e.batched)throw new TypeError("Both a batched handler and a raw handler provided");if(!e.raw&&e.isatty)throw new TypeError("Cannot set isatty to true unless a raw handler is provided");return e.raw?(Le.stdout=!!e.isatty,Object.assign(Ce,We(e.raw)),void De()):e.batched?(Le.stdout=!1,Object.assign(Ce,Ve(e.batched)),void De()):void je()}function He(){Re(r?{raw:e=>process.stderr.write(Buffer.from([e])),isatty:require("tty").isatty(process.stderr.fd)}:{batched:e=>console.warn(e)})}function Re(e={}){if(e.raw&&e.batched)throw new TypeError("Both a batched handler and a raw handler provided");if(!e.raw&&e.isatty)throw new TypeError("Cannot set isatty to true unless a raw handler is provided");return e.raw?(Le.stderr=!!e.isatty,Object.assign(Ge,We(e.raw)),void De()):e.batched?(Le.stderr=!1,Object.assign(Ge,Ve(e.batched)),void De()):void He()}API.initializeStreams=function(e,t,_){Oe({stdin:e}),t?Be({batched:t}):je(),_?Re({batched:_}):He();const r=FS.makedev(5,0),n=FS.makedev(6,0);TTY.register(r,Ce),TTY.register(n,Ge),Te=!0,De()};const Ne=new TextEncoder,ze=new TextDecoder;function We(e){return{put_char(t,_){e(_)},fsync(){}}}function Ve(e){let t=[];return{put_char(_,r){null===r||10===r?(e(ze.decode(new Uint8Array(t))),t=[]):0!==r&&t.push(r)},fsync(_){t&&t.length>0&&(e(ze.decode(new Uint8Array(t))),t=[])}}}API.loadBinaryFile=a,API.rawRun=function(e){const t=Module.stringToNewUTF8(e);Module.API.capture_stderr();let _=Module._PyRun_SimpleString(t);return Module._free(t),[_,Module.API.restore_stderr().trim()]},API.runPythonInternal=function(e){return API._pyodide._base.eval_code(e,API.runPythonInternal_dict)};const qe=u("Passing a messageCallback (resp. errorCallback) as the second (resp. third) argument to loadPackageFromImports is deprecated and will be removed in v0.24. Instead use:\n { messageCallback : callbackFunc }");API.saveState=()=>API.pyodide_py._state.save_state(),API.restoreState=e=>API.pyodide_py._state.restore_state(e);class Je{static async loadPackagesFromImports(e,t={checkIntegrity:!0},_){"function"==typeof t&&(qe(),t={messageCallback:t,errorCallback:_});let r,n=API.pyodide_code.find_imports(e);try{r=n.toJs()}finally{n.destroy()}if(0===r.length)return;let o=API._import_name_to_package_name,l=new Set;for(let e of r)o.has(e)&&l.add(o.get(e));l.size&&await Fe(Array.from(l),t)}static runPython(e,t={}){return t.globals||(t.globals=API.globals),API.pyodide_code.eval_code(e,t.globals,t.locals)}static async runPythonAsync(e,t={}){return t.globals||(t.globals=API.globals),await API.pyodide_code.eval_code_async(e,t.globals,t.locals)}static registerJsModule(e,t){API.pyodide_ffi.register_js_module(e,t)}static unregisterJsModule(e){API.pyodide_ffi.unregister_js_module(e)}static toPy(e,{depth:t,defaultConverter:_}={depth:-1}){switch(typeof e){case"string":case"number":case"boolean":case"bigint":case"undefined":return e}if(!e||API.isPyProxy(e))return e;let r=0,n=0,o=0;try{r=Hiwire.new_value(e);try{n=Module.js2python_convert(r,{depth:t,defaultConverter:_})}catch(e){throw e instanceof Module._PropagatePythonError&&Module._pythonexc2js(),e}if(Module._JsProxy_Check(n))return e;o=Module._python2js(n),0===o&&Module._pythonexc2js()}finally{Hiwire.decref(r),Module._Py_DecRef(n)}return Hiwire.pop_value(o)}static pyimport(e){return API.importlib.import_module(e)}static unpackArchive(e,t,_={}){if(!ArrayBuffer.isView(e)&&"[object ArrayBuffer]"!==API.getTypeTag(e))throw new TypeError("Expected argument 'buffer' to be an ArrayBuffer or an ArrayBuffer view");API.typedArrayAsUint8Array(e);let r=_.extractDir;API.package_loader.unpack_buffer.callKwargs({buffer:e,format:t,extract_dir:r,installer:"pyodide.unpackArchive"})}static async mountNativeFS(e,t){if("FileSystemDirectoryHandle"!==t.constructor.name)throw new TypeError("Expected argument 'fileSystemHandle' to be a FileSystemDirectoryHandle");return null==Module.FS.findObject(e)&&Module.FS.mkdirTree(e),Module.FS.mount(Module.FS.filesystems.NATIVEFS_ASYNC,{fileSystemHandle:t},e),await new Promise(((e,t)=>Module.FS.syncfs(!0,e))),{syncfs:async()=>new Promise(((e,t)=>Module.FS.syncfs(!1,e)))}}static registerComlink(e){API._Comlink=e}static setInterruptBuffer(e){Module.HEAP8[Module._Py_EMSCRIPTEN_SIGNAL_HANDLING]=!!e,Module.Py_EmscriptenSignalBuffer=e}static checkInterrupt(){Module.__PyErr_CheckSignals()&&Module._pythonexc2js()}static isPyProxy(e){return console.warn("pyodide.isPyProxy() is deprecated. Use `instanceof pyodide.ffi.PyProxy` instead."),this.isPyProxy=API.isPyProxy,API.isPyProxy(e)}static get PyBuffer(){return console.warn("pyodide.PyBuffer is deprecated. Use `pyodide.ffi.PyBufferView` instead."),Object.defineProperty(this,"PyBuffer",{value:X}),X}static get PyProxyBuffer(){return console.warn("pyodide.PyProxyBuffer is deprecated. Use `pyodide.ffi.PyBuffer` instead."),Object.defineProperty(this,"PyProxyBuffer",{value:q}),q}static get PythonError(){return console.warn("pyodide.PythonError is deprecated. Use `pyodide.ffi.PythonError` instead."),Object.defineProperty(this,"PythonError",{value:ue}),ue}}Je.version="0.23.2",Je.loadPackage=Fe,Je.loadedPackages=Ie,Je.ffi=pe,Je.setStdin=Oe,Je.setStdout=Be,Je.setStderr=Re,Je.globals={},Je.FS={},Je.PATH={},Je.canvas=fe,Je.ERRNO_CODES={},Je.pyodide_py={},API.makePublicAPI=function(){let e=Object.getOwnPropertyDescriptors(Je);delete e.prototype;const t=Object.create({},e);return API.public_api=t,t.FS=Module.FS,t.PATH=Module.PATH,t.ERRNO_CODES=Module.ERRNO_CODES,t._module=Module,t._api=API,t},e.PyodideAPI=Je,Object.defineProperty(e,"__esModule",{value:!0})}({})}console_error_obj.sig="vi",new_error.sig="iiii",fail_test.sig="v",hiwire_to_bool.sig="ii",hiwire_init.sig="i",hiwire_incref.sig="ii",hiwire_decref.sig="vi",hiwire_int.sig="ii",hiwire_int_from_digits.sig="iii",hiwire_double.sig="id",hiwire_string_utf8.sig="ii",hiwire_throw_error.sig="vi",hiwire_call.sig="iii",hiwire_call_OneArg.sig="iii",hiwire_call_bound.sig="iiii",hiwire_HasMethod.sig="iii",hiwire_CallMethodString.sig="iiii",hiwire_CallMethod.sig="iiii",hiwire_CallMethod_NoArgs.sig="iii",hiwire_CallMethod_OneArg.sig="iiii",hiwire_construct.sig="iii",hiwire_get_length_helper.sig="ii",hiwire_get_length_string.sig="ii",hiwire_get_bool.sig="ii",hiwire_is_function.sig="ii",hiwire_is_generator.sig="ii",hiwire_is_async_generator.sig="ii",hiwire_is_comlink_proxy.sig="ii",hiwire_is_promise.sig="ii",hiwire_resolve_promise.sig="ii",hiwire_to_string.sig="ii",hiwire_typeof.sig="ii",hiwire_constructor_name.sig="ii",hiwire_less_than.sig="iii",hiwire_less_than_equal.sig="iii",hiwire_equal.sig="iii",hiwire_not_equal.sig="iii",hiwire_greater_than.sig="iii",hiwire_greater_than_equal.sig="iii",hiwire_reversed_iterator.sig="ii",hiwire_assign_to_ptr.sig="iii",hiwire_assign_from_ptr.sig="iii",hiwire_read_from_file.sig="iii",hiwire_write_to_file.sig="iii",hiwire_into_file.sig="iii",hiwire_get_buffer_info.sig="viiiii",JsArray_Check.sig="ii",JsArray_New.sig="i",JsArray_Push.sig="iii",JsArray_Push_unchecked.sig="iii",JsArray_Get.sig="iii",JsArray_Set.sig="iiii",JsArray_Delete.sig="iii",JsArray_Splice.sig="iii",JsArray_slice.sig="iiiiii",JsArray_slice_assign.sig="iiiiiiii",JsObject_New.sig="i",JsObject_GetString.sig="iii",JsObject_SetString.sig="iiii",JsObject_DeleteString.sig="iii",JsObject_Dir.sig="ii",JsObject_Entries.sig="ii",JsObject_Keys.sig="ii",JsObject_Values.sig="ii",JsString_InternFromCString.sig="ii",JsMap_New.sig="i",JsMap_Set.sig="iiii",JsSet_New.sig="i",JsSet_Add.sig="iii",js2python_immutable.sig="ii",js2python.sig="ii",js2python_convert.sig="iiii",js2python_init.sig="i",JsProxy_GetIter_js.sig="ii",handle_next_result_js.sig="iiii",JsException_new_helper.sig="iiii",JsProxy_GetAsyncIter_js.sig="ii",_agen_handle_result_js.sig="iiiiii",JsArray_index_helper.sig="iiiii",JsArray_count_helper.sig="iii",JsArray_reverse_helper.sig="ii",JsProxy_subscript_js.sig="iii",JsMap_GetIter_js.sig="ii",JsMap_clear_js.sig="ii",JsObjMap_GetIter_js.sig="ii",JsObjMap_length_js.sig="ii",JsObjMap_subscript_js.sig="iii",JsObjMap_ass_subscript_js.sig="iiii",JsObjMap_contains_js.sig="iii",get_async_js_call_done_callback.sig="ii",wrap_generator.sig="iii",wrap_async_generator.sig="iii",JsBuffer_DecodeString_js.sig="iii",JsDoubleProxy_unwrap_helper.sig="ii",JsProxy_compute_typeflags.sig="ii",pyproxy_Check.sig="ii",pyproxy_AsPyObject.sig="ii",destroy_proxies.sig="vii",destroy_proxy.sig="vii",proxy_cache_get.sig="iii",proxy_cache_set.sig="viii",array_to_js.sig="iii",pyproxy_new_ex.sig="iiii",pyproxy_new.sig="ii",create_once_callable.sig="ii",create_promise_handles.sig="iiii",_python2js_buffer_inner.sig="iiiiiiii",python2js_buffer_init.sig="i",_python2js_addto_postprocess_list.sig="viiii",_python2js_handle_postprocess_list.sig="vii",_python2js_ucs1.sig="iii",_python2js_ucs2.sig="iii",_python2js_ucs4.sig="iii",_python2js_add_to_cache.sig="iiii",_python2js_destroy_cache.sig="vi",_python2js_cache_lookup.sig="iii",_JsArray_PushEntry_helper.sig="iiii",_JsArray_PostProcess_helper.sig="iii",python2js__default_converter.sig="iii",python2js_custom__create_jscontext.sig="iiiii",destroy_proxies_js.sig="ii";const API=Module.API,Hiwire={},Tests={};API.tests=Tests,API.version="0.23.2",Module.hiwire=Hiwire;const getTypeTag=e=>Object.prototype.toString.call(e);function descr_set_trampoline_call(e,t,_,r){return wasmTable.get(e)(t,_,r)}function descr_get_trampoline_call(e,t,_){return wasmTable.get(e)(t,_)}function _PyCFunctionWithKeywords_TrampolineCall(e,t,_,r){return wasmTable.get(e)(t,_,r)}function _PyImport_InitFunc_TrampolineCall(e){return wasmTable.get(e)()}function _Py_emscripten_runtime(){var e,t=lengthBytesUTF8(e="object"==typeof navigator?navigator.userAgent:"object"==typeof process?"Node.js ".concat(process.version):"UNKNOWN")+1,_=_malloc(t);return _&&stringToUTF8(e,_,t),_}function _Py_CheckEmscriptenSignals_Helper(){if(!Module.Py_EmscriptenSignalBuffer)return 0;try{let e=Module.Py_EmscriptenSignalBuffer[0];return Module.Py_EmscriptenSignalBuffer[0]=0,e}catch(e){return 0}}function unbox_small_structs(e){for(var t=HEAPU16[0+(e+6>>1)];13===t;){var _=HEAPU32[0+(e+8>>2)],r=HEAPU32[0+(_>>2)];if(0===r){t=0;break}if(0!==HEAPU32[1+(_>>2)])break;e=r,t=HEAPU16[0+(r+6>>1)]}return[e,t]}function ffi_call_js(e,t,_,r){HEAPU32[0+(e>>2)];var n=HEAPU32[1+(e>>2)],o=HEAPU32[6+(e>>2)],l=HEAPU32[2+(e>>2)],i=unbox_small_structs(HEAPU32[3+(e>>2)]),a=(i[0],i[1]),u=stackSave(),s=u,c=[],d=!1;if(15===a)throw new Error("complex ret marshalling nyi");if(a<0||a>15)throw new Error("Unexpected rtype "+a);4!==a&&13!==a||(c.push(_),d=!0);for(var p=0;p>2)+p],m=(M=unbox_small_structs(HEAPU32[(l>>2)+p]))[0];switch(g=M[1]){case 1:case 10:case 9:case 14:c.push(HEAPU32[0+(y>>2)]);break;case 2:c.push(HEAPF32[0+(y>>2)]);break;case 3:c.push(HEAPF64[0+(y>>3)]);break;case 5:c.push(HEAPU8[y+0]);break;case 6:c.push(HEAP8[y+0]);break;case 7:c.push(HEAPU16[0+(y>>1)]);break;case 8:c.push(HEAP16[0+(y>>1)]);break;case 11:case 12:c.push(HEAPU64[0+(y>>3)]);break;case 4:c.push(HEAPU64[0+(y>>3)]),c.push(HEAPU64[1+(y>>3)]);break;case 13:s-=P=HEAPU32[0+(m>>2)],s&=~(HEAPU16[0+(m+4>>1)]-1),HEAP8.subarray(s,s+P).set(HEAP8.subarray(y,y+P)),c.push(s);break;case 15:throw new Error("complex marshalling nyi");default:throw new Error("Unexpected type "+g)}}if(o!=n){var f=[];for(p=n-1;p>=o;p--){var M,g;y=HEAPU32[(r>>2)+p],m=(M=unbox_small_structs(HEAPU32[(l>>2)+p]))[0];switch(g=M[1]){case 5:case 6:s-=1,HEAPU8[(s&=-1)+0]=HEAPU8[y+0];break;case 7:case 8:s-=2,HEAPU16[0+((s&=-2)>>1)]=HEAPU16[0+(y>>1)];break;case 1:case 9:case 10:case 14:case 2:s-=4,HEAPU32[0+((s&=-4)>>2)]=HEAPU32[0+(y>>2)];break;case 3:case 11:case 12:s-=8,HEAPU32[0+((s&=-8)>>2)]=HEAPU32[0+(y>>2)],HEAPU32[1+(s>>2)]=HEAPU32[1+(y>>2)];break;case 4:s-=16,HEAPU32[0+((s&=-8)>>2)]=HEAPU32[0+(y>>2)],HEAPU32[1+(s>>2)]=HEAPU32[1+(y>>2)],HEAPU32[2+(s>>2)]=HEAPU32[2+(y>>2)],HEAPU32[3+(s>>2)]=HEAPU32[3+(y>>2)];break;case 13:s-=4,s&=-4,f.push([s,y,HEAPU32[0+(m>>2)],HEAPU16[0+(m+4>>1)]]);break;case 15:throw new Error("complex arg marshalling nyi");default:throw new Error("Unexpected argtype "+g)}}c.push(s);for(p=0;p>2)]=s}}stackRestore(s),stackAlloc(0);var w=getWasmTableEntry(t).apply(null,c);if(stackRestore(u),!d)switch(a){case 0:break;case 1:case 9:case 10:case 14:HEAPU32[0+(_>>2)]=w;break;case 2:HEAPF32[0+(_>>2)]=w;break;case 3:HEAPF64[0+(_>>3)]=w;break;case 5:case 6:HEAPU8[_+0]=w;break;case 7:case 8:HEAPU16[0+(_>>1)]=w;break;case 11:case 12:HEAPU64[0+(_>>3)]=w;break;case 15:throw new Error("complex ret marshalling nyi");default:throw new Error("Unexpected rtype "+a)}}function ffi_closure_alloc_js(e,t){var _=_malloc(e),r=getEmptyTableSlot();return HEAPU32[0+(t>>2)]=r,HEAPU32[0+(_>>2)]=r,_}function ffi_closure_free_js(e){var t=HEAPU32[0+(e>>2)];freeTableIndexes.push(t),_free(e)}function ffi_prep_closure_loc_js(e,t,_,r,n){HEAPU32[0+(t>>2)];var o,l=HEAPU32[1+(t>>2)],i=HEAPU32[6+(t>>2)],a=HEAPU32[2+(t>>2)],u=unbox_small_structs(HEAPU32[3+(t>>2)]),s=(u[0],u[1]),c=!1;switch(s){case 0:o="v";break;case 13:case 4:o="vi",c=!0;break;case 1:case 5:case 6:case 7:case 8:case 9:case 10:case 14:o="i";break;case 2:o="f";break;case 3:o="d";break;case 11:case 12:o="j";break;case 15:throw new Error("complex ret marshalling nyi");default:throw new Error("Unexpected rtype "+s)}for(var d=[],p=[],y=0;y>2)+y]),f=m[0],M=m[1];d.push(M),p.push([HEAPU32[0+(f>>2)],HEAPU16[0+(f+4>>1)]])}for(y=0;y>2)+s]=n,HEAPU8[n+0]=y;break;case 7:case 8:n-=2,n&=-4,HEAPU32[(u>>2)+s]=n,HEAPU16[0+(n>>1)]=y;break;case 1:case 9:case 10:case 14:n-=4,n&=-4,HEAPU32[(u>>2)+s]=n,HEAPU32[0+(n>>2)]=y;break;case 13:n-=m,n&=~(f-1),HEAP8.subarray(n,n+m).set(HEAP8.subarray(y,y+m)),HEAPU32[(u>>2)+s]=n;break;case 2:n-=4,n&=-4,HEAPU32[(u>>2)+s]=n,HEAPF32[0+(n>>2)]=y;break;case 3:n-=8,n&=-8,HEAPU32[(u>>2)+s]=n,HEAPF64[0+(n>>3)]=y;break;case 11:case 12:n-=8,n&=-8,HEAPU32[(u>>2)+s]=n,HEAPU64[0+(n>>3)]=y;break;case 4:n-=16,n&=-8,HEAPU32[(u>>2)+s]=n,HEAPU64[0+(n>>3)]=y,y=_[a++],HEAPU64[1+(n>>3)]=y}}for(var M=_[_.length-1];s>2)];n-=m,n&=~(f-1),HEAP8.subarray(n,n+m).set(HEAP8.subarray(h,h+m)),HEAPU32[(u>>2)+s]=n}else HEAPU32[(u>>2)+s]=M;M+=4}if(stackRestore(n),stackAlloc(0),getWasmTableEntry(HEAPU32[2+(e>>2)])(HEAPU32[1+(e>>2)],t,u,HEAPU32[3+(e>>2)]),stackRestore(r),!c)switch(o[0]){case"i":return HEAPU32[0+(t>>2)];case"j":return HEAPU64[0+(t>>3)];case"d":return HEAPF64[0+(t>>3)];case"f":return HEAPF32[0+(t>>2)]}}),o)}catch(e){return 1}return setWasmTableEntry(n,g),HEAPU32[1+(e>>2)]=t,HEAPU32[2+(e>>2)]=_,HEAPU32[3+(e>>2)]=r,0}function ExitStatus(e){this.name="ExitStatus",this.message="Program terminated with exit("+e+")",this.status=e}API.getTypeTag=getTypeTag,pyodide_js_init(),descr_set_trampoline_call.sig="iiiii",descr_get_trampoline_call.sig="iiii",_PyCFunctionWithKeywords_TrampolineCall.sig="iiiii",_PyImport_InitFunc_TrampolineCall.sig="ii",_Py_emscripten_runtime.sig="i",_Py_CheckEmscriptenSignals_Helper.sig="i",ffi_call_js.sig="viiii",ffi_closure_alloc_js.sig="iii",ffi_closure_free_js.sig="vi",ffi_prep_closure_loc_js.sig="iiiiii",Module.ExitStatus=ExitStatus;var GOT={};Module.GOT=GOT;var CurrentModuleWeakSymbols=new Set([]);Module.CurrentModuleWeakSymbols=CurrentModuleWeakSymbols;var GOTHandler={get:function(e,t){var _=GOT[t];return _||(_=GOT[t]=new WebAssembly.Global({value:"i32",mutable:!0})),CurrentModuleWeakSymbols.has(t)||(_.required=!0),_}};function callRuntimeCallbacks(e){for(;e.length>0;)e.shift()(Module)}Module.GOTHandler=GOTHandler,Module.callRuntimeCallbacks=callRuntimeCallbacks;var wasmTableMirror=[];function getWasmTableEntry(e){var t=wasmTableMirror[e];return t||(e>=wasmTableMirror.length&&(wasmTableMirror.length=e+1),wasmTableMirror[e]=t=wasmTable.get(e)),t}function exception_decRef(e){if(e.release_ref()&&!e.get_rethrown()){var t=e.get_destructor();t&&getWasmTableEntry(t)(e.excPtr),___cxa_free_exception(e.excPtr)}}function ExceptionInfo(e){this.excPtr=e,this.ptr=e-24,this.set_type=function(e){HEAPU32[this.ptr+4>>2]=e},this.get_type=function(){return HEAPU32[this.ptr+4>>2]},this.set_destructor=function(e){HEAPU32[this.ptr+8>>2]=e},this.get_destructor=function(){return HEAPU32[this.ptr+8>>2]},this.set_refcount=function(e){HEAP32[this.ptr>>2]=e},this.set_caught=function(e){e=e?1:0,HEAP8[this.ptr+12|0]=e},this.get_caught=function(){return 0!=HEAP8[this.ptr+12|0]},this.set_rethrown=function(e){e=e?1:0,HEAP8[this.ptr+13|0]=e},this.get_rethrown=function(){return 0!=HEAP8[this.ptr+13|0]},this.init=function(e,t){this.set_adjusted_ptr(0),this.set_type(e),this.set_destructor(t),this.set_refcount(0),this.set_caught(!1),this.set_rethrown(!1)},this.add_ref=function(){var e=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=e+1},this.release_ref=function(){var e=HEAP32[this.ptr>>2];return HEAP32[this.ptr>>2]=e-1,1===e},this.set_adjusted_ptr=function(e){HEAPU32[this.ptr+16>>2]=e},this.get_adjusted_ptr=function(){return HEAPU32[this.ptr+16>>2]},this.get_exception_ptr=function(){if(___cxa_is_pointer_type(this.get_type()))return HEAPU32[this.excPtr>>2];var e=this.get_adjusted_ptr();return 0!==e?e:this.excPtr}}function ___cxa_decrement_exception_refcount(e){e&&exception_decRef(new ExceptionInfo(e))}function decrementExceptionRefcount(e){___cxa_decrement_exception_refcount(e)}function withStackSave(e){var t=stackSave(),_=e();return stackRestore(t),_}function demangle(e){return demangle.recursionGuard=1+(0|demangle.recursionGuard),demangle.recursionGuard>1?e:withStackSave((function(){try{var t=e;t.startsWith("__Z")&&(t=t.substr(1));var _=lengthBytesUTF8(t)+1,r=stackAlloc(_);stringToUTF8(t,r,_);var n=stackAlloc(4),o=___cxa_demangle(r,0,0,n);if(0===HEAP32[n>>2]&&o)return UTF8ToString(o)}catch(e){}finally{_free(o),demangle.recursionGuard<2&&--demangle.recursionGuard}return e}))}function getDylinkMetadata(e){var t=0,_=0;function r(){for(var _=0,r=1;;){var n=e[t++];if(_+=(127&n)*r,r*=128,!(128&n))break}return _}function n(){var _=r();return UTF8ArrayToString(e,(t+=_)-_,_)}function o(e,t){if(e)throw new Error(t)}var l="dylink.0";if(e instanceof WebAssembly.Module){var i=WebAssembly.Module.customSections(e,l);0===i.length&&(l="dylink",i=WebAssembly.Module.customSections(e,l)),o(0===i.length,"need dylink section"),_=(e=new Uint8Array(i[0])).length}else{o(!(1836278016==new Uint32Array(new Uint8Array(e.subarray(0,24)).buffer)[0]),"need to see wasm magic number"),o(0!==e[8],"need the dylink section to be first"),t=9;var a=r();_=t+a,l=n()}var u={neededDynlibs:[],tlsExports:new Set,weakImports:new Set};if("dylink"==l){u.memorySize=r(),u.memoryAlign=r(),u.tableSize=r(),u.tableAlign=r();for(var s=r(),c=0;c>2],o=HEAPU32[_>>2],l=UTF8ToString(n);return _free(n),o&&(r=UTF8ToString(o),_free(o)),[l,r]}))}function getExceptionMessage(e){return getExceptionMessageCommon(e)}function getValue(e,t="i8"){switch(t.endsWith("*")&&(t="*"),t){case"i1":case"i8":return HEAP8[e|0];case"i16":return HEAP16[e>>1];case"i32":return HEAP32[e>>2];case"i64":return HEAP64[e>>3];case"float":return HEAPF32[e>>2];case"double":return HEAPF64[e>>3];case"*":return HEAPU32[e>>2];default:abort("invalid type for getValue: "+t)}}function exception_addRef(e){e.add_ref()}function ___cxa_increment_exception_refcount(e){e&&exception_addRef(new ExceptionInfo(e))}function incrementExceptionRefcount(e){___cxa_increment_exception_refcount(e)}function asmjsMangle(e){return 0==e.indexOf("dynCall_")||["stackAlloc","stackSave","stackRestore","getTempRet0","setTempRet0"].includes(e)?e:"_"+e}function isSymbolDefined(e){var t=wasmImports[e];return!(!t||t.stub)}function mergeLibSymbols(e,t){for(var _ in e){if(!e.hasOwnProperty(_))continue;const t=t=>{isSymbolDefined(t)||(wasmImports[t]=e[_])};t(_);const r="__main_argc_argv";"main"==_&&t(r),_==r&&t("main"),_.startsWith("dynCall_")&&!Module.hasOwnProperty(_)&&(Module[_]=e[_])}}function newDSO(e,t,_){var r={refcount:1/0,name:e,module:_,global:!0};return LDSO.loadedLibsByName[e]=r,null!=t&&(LDSO.loadedLibsByHandle[t]=r),r}Module.wasmTableMirror=wasmTableMirror,Module.getWasmTableEntry=getWasmTableEntry,Module.exception_decRef=exception_decRef,Module.ExceptionInfo=ExceptionInfo,Module.___cxa_decrement_exception_refcount=___cxa_decrement_exception_refcount,___cxa_decrement_exception_refcount.sig="vp",Module.decrementExceptionRefcount=decrementExceptionRefcount,Module.withStackSave=withStackSave,Module.demangle=demangle,Module.getDylinkMetadata=getDylinkMetadata,Module.getExceptionMessageCommon=getExceptionMessageCommon,Module.getExceptionMessage=getExceptionMessage,Module.getValue=getValue,Module.exception_addRef=exception_addRef,Module.___cxa_increment_exception_refcount=___cxa_increment_exception_refcount,___cxa_increment_exception_refcount.sig="vp",Module.incrementExceptionRefcount=incrementExceptionRefcount,Module.asmjsMangle=asmjsMangle,Module.isSymbolDefined=isSymbolDefined,Module.mergeLibSymbols=mergeLibSymbols,Module.newDSO=newDSO;var LDSO={loadedLibsByName:{},loadedLibsByHandle:{},init:()=>newDSO("__main__",0,wasmImports)};Module.LDSO=LDSO;var ___heap_base=9186144;function zeroMemory(e,t){return HEAPU8.fill(0,e,e+t),e}function getMemory(e){if(runtimeInitialized)return zeroMemory(_malloc(e),e);var t=___heap_base,_=t+e+15&-16;return ___heap_base=_,GOT.__heap_base.value=_,t}function isInternalSym(e){return["__cpp_exception","__c_longjmp","__wasm_apply_data_relocs","__dso_handle","__tls_size","__tls_align","__set_stack_limits","_emscripten_tls_init","__wasm_init_tls","__wasm_call_ctors","__start_em_asm","__stop_em_asm"].includes(e)}function uleb128Encode(e,t){e<128?t.push(e):t.push(e%128|128,e>>7)}function sigToWasmTypes(e){for(var t={i:"i32",j:"i32",f:"f32",d:"f64",p:"i32"},_={parameters:[],results:"v"==e[0]?[]:[t[e[0]]]},r=1;r>2]=memoryBase,HEAP32[handle+16>>2]=metadata.memorySize,HEAPU32[handle+20>>2]=tableBase,HEAP32[handle+24>>2]=metadata.tableSize)}else memoryBase=HEAPU32[handle+12>>2],tableBase=HEAPU32[handle+20>>2];var tableGrowthNeeded=tableBase+metadata.tableSize-wasmTable.length,moduleExports;function resolveSymbol(e){var t=resolveGlobalSymbol(e).sym;return t||(t=moduleExports[e]),t}tableGrowthNeeded>0&&wasmTable.grow(tableGrowthNeeded);var proxyHandler={get:function(e,t){switch(t){case"__memory_base":return memoryBase;case"__table_base":return tableBase}if(t in wasmImports&&!wasmImports[t].stub)return wasmImports[t];var _;t in e||(e[t]=function(){return _||(_=resolveSymbol(t)),_.apply(null,arguments)});return e[t]}},proxy=new Proxy({},proxyHandler),info={"GOT.mem":new Proxy({},GOTHandler),"GOT.func":new Proxy({},GOTHandler),env:proxy,wasi_snapshot_preview1:proxy};function postInstantiation(instance){function addEmAsm(addr,body){for(var args=[],arity=0;arity<16&&-1!=body.indexOf("$"+arity);arity++)args.push("$"+arity);args=args.join(",");var func="("+args+" ) => { "+body+"};";ASM_CONSTS[start]=eval(func)}if(updateTableMap(tableBase,metadata.tableSize),moduleExports=relocateExports(instance.exports,memoryBase),flags.allowUndefined||reportUndefinedSymbols(),"__start_em_asm"in moduleExports)for(var start=moduleExports.__start_em_asm,stop=moduleExports.__stop_em_asm;startt(new Uint8Array(e))),_)}));if(!readBinary)throw new Error(e+": file not found, and synchronous loading of external files is not available");return readBinary(e)}function o(){if(void 0!==preloadedWasm&&preloadedWasm[e]){var r=preloadedWasm[e];return t.loadAsync?Promise.resolve(r):r}return t.loadAsync?n(e).then((function(e){return loadWebAssemblyModule(e,t,_)})):loadWebAssemblyModule(n(e),t,_)}function l(t){r.global&&mergeLibSymbols(t,e),r.module=t}return(r=newDSO(e,_,"loading")).refcount=t.nodelete?1/0:1,r.global=t.global,t.loadAsync?o().then((function(e){return l(e),!0})):(l(o()),!0)}function reportUndefinedSymbols(){for(var e in GOT)if(0==GOT[e].value){var t=resolveGlobalSymbol(e,!0).sym;if(!t&&!GOT[e].required)continue;if("function"==typeof t)GOT[e].value=addFunction(t,t.sig);else{if("number"!=typeof t)throw new Error("bad export type for `"+e+"`: "+typeof t);GOT[e].value=t}}}function preloadDylibs(){dynamicLibraries.length?(addRunDependency("preloadDylibs"),dynamicLibraries.reduce((function(e,t){return e.then((function(){return loadDynamicLibrary(t,{loadAsync:!0,global:!0,nodelete:!0,allowUndefined:!0})}))}),Promise.resolve()).then((function(){reportUndefinedSymbols(),removeRunDependency("preloadDylibs")}))):reportUndefinedSymbols()}function setValue(e,t,_="i8"){switch(_.endsWith("*")&&(_="*"),_){case"i1":case"i8":HEAP8[e|0]=t;break;case"i16":HEAP16[e>>1]=t;break;case"i32":HEAP32[e>>2]=t;break;case"i64":tempI64=[t>>>0,(tempDouble=t,+Math.abs(tempDouble)>=1?tempDouble>0?(0|Math.min(+Math.floor(tempDouble/4294967296),4294967295))>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[e>>2]=tempI64[0],HEAP32[e+4>>2]=tempI64[1];break;case"float":HEAPF32[e>>2]=t;break;case"double":HEAPF64[e>>3]=t;break;case"*":HEAPU32[e>>2]=t;break;default:abort("invalid type for setValue: "+_)}}function jsStackTrace(){var e=new Error;if(!e.stack){try{throw new Error}catch(t){e=t}if(!e.stack)return"(no stack trace available)"}return e.stack.toString()}function demangleAll(e){return e.replace(/\b_Z[\w\d_]+/g,(function(e){var t=demangle(e);return e===t?e:t+" ["+e+"]"}))}function stackTrace(){var e=jsStackTrace();return Module.extraStackTrace&&(e+="\n"+Module.extraStackTrace()),demangleAll(e)}function ___assert_fail(e,t,_,r){abort("Assertion failed: "+UTF8ToString(e)+", at: "+[t?UTF8ToString(t):"unknown filename",_,r?UTF8ToString(r):"unknown function"])}function ___call_sighandler(e,t){getWasmTableEntry(e)(t)}Module.freeTableIndexes=freeTableIndexes,Module.getEmptyTableSlot=getEmptyTableSlot,Module.setWasmTableEntry=setWasmTableEntry,Module.addFunction=addFunction,Module.updateGOT=updateGOT,Module.relocateExports=relocateExports,Module.resolveGlobalSymbol=resolveGlobalSymbol,Module.alignMemory=alignMemory,Module.dynCall=dynCall,Module.createInvokeFunction=createInvokeFunction,Module.loadWebAssemblyModule=loadWebAssemblyModule,Module.loadDynamicLibrary=loadDynamicLibrary,Module.reportUndefinedSymbols=reportUndefinedSymbols,Module.preloadDylibs=preloadDylibs,Module.setValue=setValue,Module.jsStackTrace=jsStackTrace,Module.demangleAll=demangleAll,Module.stackTrace=stackTrace,Module.___assert_fail=___assert_fail,___assert_fail.sig="vppip",Module.___call_sighandler=___call_sighandler,___call_sighandler.sig="vpi";var exceptionCaught=[];Module.exceptionCaught=exceptionCaught;var uncaughtExceptionCount=0;function ___cxa_begin_catch(e){var t=new ExceptionInfo(e);return t.get_caught()||(t.set_caught(!0),uncaughtExceptionCount--),t.set_rethrown(!1),exceptionCaught.push(t),exception_addRef(t),t.get_exception_ptr()}function ___cxa_current_primary_exception(){if(!exceptionCaught.length)return 0;var e=exceptionCaught[exceptionCaught.length-1];return exception_addRef(e),e.excPtr}Module.uncaughtExceptionCount=uncaughtExceptionCount,Module.___cxa_begin_catch=___cxa_begin_catch,___cxa_begin_catch.sig="pp",Module.___cxa_current_primary_exception=___cxa_current_primary_exception;var exceptionLast=0;function ___cxa_end_catch(){_setThrew(0),exception_decRef(exceptionCaught.pop()),exceptionLast=0}function ___resumeException(e){throw exceptionLast||(exceptionLast=e),e}function ___cxa_find_matching_catch(){var e=exceptionLast;if(!e)return setTempRet0(0),0;var t=new ExceptionInfo(e);t.set_adjusted_ptr(e);var _=t.get_type();if(!_)return setTempRet0(0),e;for(var r=0;r"/"===e.charAt(0),splitPath:e=>/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(e).slice(1),normalizeArray:(e,t)=>{for(var _=0,r=e.length-1;r>=0;r--){var n=e[r];"."===n?e.splice(r,1):".."===n?(e.splice(r,1),_++):_&&(e.splice(r,1),_--)}if(t)for(;_;_--)e.unshift("..");return e},normalize:e=>{var t=PATH.isAbs(e),_="/"===e.substr(-1);return(e=PATH.normalizeArray(e.split("/").filter((e=>!!e)),!t).join("/"))||t||(e="."),e&&_&&(e+="/"),(t?"/":"")+e},dirname:e=>{var t=PATH.splitPath(e),_=t[0],r=t[1];return _||r?(r&&(r=r.substr(0,r.length-1)),_+r):"."},basename:e=>{if("/"===e)return"/";var t=(e=(e=PATH.normalize(e)).replace(/\/$/,"")).lastIndexOf("/");return-1===t?e:e.substr(t+1)},join:function(){var e=Array.prototype.slice.call(arguments);return PATH.normalize(e.join("/"))},join2:(e,t)=>PATH.normalize(e+"/"+t)};function getRandomDevice(){if("object"==typeof crypto&&"function"==typeof crypto.getRandomValues){var e=new Uint8Array(1);return()=>(crypto.getRandomValues(e),e[0])}if(ENVIRONMENT_IS_NODE)try{var t=require("crypto");return()=>t.randomBytes(1)[0]}catch(e){}return()=>abort("randomDevice")}Module.PATH=PATH,Module.getRandomDevice=getRandomDevice;var PATH_FS={resolve:function(){for(var e="",t=!1,_=arguments.length-1;_>=-1&&!t;_--){var r=_>=0?arguments[_]:FS.cwd();if("string"!=typeof r)throw new TypeError("Arguments to path.resolve must be strings");if(!r)return"";e=r+"/"+e,t=PATH.isAbs(r)}return(t?"/":"")+(e=PATH.normalizeArray(e.split("/").filter((e=>!!e)),!t).join("/"))||"."},relative:(e,t)=>{function _(e){for(var t=0;t=0&&""===e[_];_--);return t>_?[]:e.slice(t,_-t+1)}e=PATH_FS.resolve(e).substr(1),t=PATH_FS.resolve(t).substr(1);for(var r=_(e.split("/")),n=_(t.split("/")),o=Math.min(r.length,n.length),l=o,i=0;i0?_:lengthBytesUTF8(e)+1,n=new Array(r),o=stringToUTF8Array(e,n,0,n.length);return t&&(n.length=o),n}Module.PATH_FS=PATH_FS,Module.intArrayFromString=intArrayFromString;var TTY={ttys:[],init:function(){},shutdown:function(){},register:function(e,t){TTY.ttys[e]={input:[],output:[],ops:t},FS.registerDevice(e,TTY.stream_ops)},stream_ops:{open:function(e){var t=TTY.ttys[e.node.rdev];if(!t)throw new FS.ErrnoError(43);e.tty=t,e.seekable=!1},close:function(e){e.tty.ops.fsync(e.tty)},fsync:function(e){e.tty.ops.fsync(e.tty)},read:function(e,t,_,r,n){if(!e.tty||!e.tty.ops.get_char)throw new FS.ErrnoError(60);for(var o=0,l=0;l0?_.slice(0,r).toString("utf-8"):null}else"undefined"!=typeof window&&"function"==typeof window.prompt?null!==(t=window.prompt("Input: "))&&(t+="\n"):"function"==typeof readline&&null!==(t=readline())&&(t+="\n");if(!t)return null;e.input=intArrayFromString(t,!0)}return e.input.shift()},put_char:function(e,t){null===t||10===t?(out(UTF8ArrayToString(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},fsync:function(e){e.output&&e.output.length>0&&(out(UTF8ArrayToString(e.output,0)),e.output=[])}},default_tty1_ops:{put_char:function(e,t){null===t||10===t?(err(UTF8ArrayToString(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},fsync:function(e){e.output&&e.output.length>0&&(err(UTF8ArrayToString(e.output,0)),e.output=[])}}};function mmapAlloc(e){e=alignMemory(e,65536);var t=_emscripten_builtin_memalign(65536,e);return t?zeroMemory(t,e):0}Module.TTY=TTY,Module.mmapAlloc=mmapAlloc;var MEMFS={ops_table:null,mount:function(e){return MEMFS.createNode(null,"/",16895,0)},createNode:function(e,t,_,r){if(FS.isBlkdev(_)||FS.isFIFO(_))throw new FS.ErrnoError(63);MEMFS.ops_table||(MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}});var n=FS.createNode(e,t,_,r);return FS.isDir(n.mode)?(n.node_ops=MEMFS.ops_table.dir.node,n.stream_ops=MEMFS.ops_table.dir.stream,n.contents={}):FS.isFile(n.mode)?(n.node_ops=MEMFS.ops_table.file.node,n.stream_ops=MEMFS.ops_table.file.stream,n.usedBytes=0,n.contents=null):FS.isLink(n.mode)?(n.node_ops=MEMFS.ops_table.link.node,n.stream_ops=MEMFS.ops_table.link.stream):FS.isChrdev(n.mode)&&(n.node_ops=MEMFS.ops_table.chrdev.node,n.stream_ops=MEMFS.ops_table.chrdev.stream),n.timestamp=Date.now(),e&&(e.contents[t]=n,e.timestamp=n.timestamp),n},getFileDataAsTypedArray:function(e){return e.contents?e.contents.subarray?e.contents.subarray(0,e.usedBytes):new Uint8Array(e.contents):new Uint8Array(0)},expandFileStorage:function(e,t){var _=e.contents?e.contents.length:0;if(!(_>=t)){t=Math.max(t,_*(_<1048576?2:1.125)>>>0),0!=_&&(t=Math.max(t,256));var r=e.contents;e.contents=new Uint8Array(t),e.usedBytes>0&&e.contents.set(r.subarray(0,e.usedBytes),0)}},resizeFileStorage:function(e,t){if(e.usedBytes!=t)if(0==t)e.contents=null,e.usedBytes=0;else{var _=e.contents;e.contents=new Uint8Array(t),_&&e.contents.set(_.subarray(0,Math.min(t,e.usedBytes))),e.usedBytes=t}},node_ops:{getattr:function(e){var t={};return t.dev=FS.isChrdev(e.mode)?e.id:1,t.ino=e.id,t.mode=e.mode,t.nlink=1,t.uid=0,t.gid=0,t.rdev=e.rdev,FS.isDir(e.mode)?t.size=4096:FS.isFile(e.mode)?t.size=e.usedBytes:FS.isLink(e.mode)?t.size=e.link.length:t.size=0,t.atime=new Date(e.timestamp),t.mtime=new Date(e.timestamp),t.ctime=new Date(e.timestamp),t.blksize=4096,t.blocks=Math.ceil(t.size/t.blksize),t},setattr:function(e,t){void 0!==t.mode&&(e.mode=t.mode),void 0!==t.timestamp&&(e.timestamp=t.timestamp),void 0!==t.size&&MEMFS.resizeFileStorage(e,t.size)},lookup:function(e,t){throw FS.genericErrors[44]},mknod:function(e,t,_,r){return MEMFS.createNode(e,t,_,r)},rename:function(e,t,_){if(FS.isDir(e.mode)){var r;try{r=FS.lookupNode(t,_)}catch(e){}if(r)for(var n in r.contents)throw new FS.ErrnoError(55)}delete e.parent.contents[e.name],e.parent.timestamp=Date.now(),e.name=_,t.contents[_]=e,t.timestamp=e.parent.timestamp,e.parent=t},unlink:function(e,t){delete e.contents[t],e.timestamp=Date.now()},rmdir:function(e,t){var _=FS.lookupNode(e,t);for(var r in _.contents)throw new FS.ErrnoError(55);delete e.contents[t],e.timestamp=Date.now()},readdir:function(e){var t=[".",".."];for(var _ in e.contents)e.contents.hasOwnProperty(_)&&t.push(_);return t},symlink:function(e,t,_){var r=MEMFS.createNode(e,t,41471,0);return r.link=_,r},readlink:function(e){if(!FS.isLink(e.mode))throw new FS.ErrnoError(28);return e.link}},stream_ops:{read:function(e,t,_,r,n){var o=e.node.contents;if(n>=e.node.usedBytes)return 0;var l=Math.min(e.node.usedBytes-n,r);if(l>8&&o.subarray)t.set(o.subarray(n,n+l),_);else for(var i=0;i0||_+t{assert(_,'Loading data file "'+e+'" failed (no arrayBuffer).'),t(new Uint8Array(_)),n&&removeRunDependency(n)}),(t=>{if(!_)throw'Loading data file "'+e+'" failed.';_()})),n&&addRunDependency(n)}Module.MEMFS=MEMFS,Module.asyncLoad=asyncLoad;var IDBFS={dbs:{},indexedDB:()=>{if("undefined"!=typeof indexedDB)return indexedDB;var e=null;return"object"==typeof window&&(e=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB),assert(e,"IDBFS used, but indexedDB not supported"),e},DB_VERSION:21,DB_STORE_NAME:"FILE_DATA",mount:function(e){return MEMFS.mount.apply(null,arguments)},syncfs:(e,t,_)=>{IDBFS.getLocalSet(e,((r,n)=>{if(r)return _(r);IDBFS.getRemoteSet(e,((e,r)=>{if(e)return _(e);var o=t?r:n,l=t?n:r;IDBFS.reconcile(o,l,_)}))}))},quit:()=>{Object.values(IDBFS.dbs).forEach((e=>e.close())),IDBFS.dbs={}},getDB:(e,t)=>{var _,r=IDBFS.dbs[e];if(r)return t(null,r);try{_=IDBFS.indexedDB().open(e,IDBFS.DB_VERSION)}catch(e){return t(e)}if(!_)return t("Unable to connect to IndexedDB");_.onupgradeneeded=e=>{var t,_=e.target.result,r=e.target.transaction;(t=_.objectStoreNames.contains(IDBFS.DB_STORE_NAME)?r.objectStore(IDBFS.DB_STORE_NAME):_.createObjectStore(IDBFS.DB_STORE_NAME)).indexNames.contains("timestamp")||t.createIndex("timestamp","timestamp",{unique:!1})},_.onsuccess=()=>{r=_.result,IDBFS.dbs[e]=r,t(null,r)},_.onerror=e=>{t(this.error),e.preventDefault()}},getLocalSet:(e,t)=>{var _={};function r(e){return"."!==e&&".."!==e}function n(e){return t=>PATH.join2(e,t)}for(var o=FS.readdir(e.mountpoint).filter(r).map(n(e.mountpoint));o.length;){var l,i=o.pop();try{l=FS.stat(i)}catch(e){return t(e)}FS.isDir(l.mode)&&o.push.apply(o,FS.readdir(i).filter(r).map(n(i))),_[i]={timestamp:l.mtime}}return t(null,{type:"local",entries:_})},getRemoteSet:(e,t)=>{var _={};IDBFS.getDB(e.mountpoint,((e,r)=>{if(e)return t(e);try{var n=r.transaction([IDBFS.DB_STORE_NAME],"readonly");n.onerror=e=>{t(this.error),e.preventDefault()},n.objectStore(IDBFS.DB_STORE_NAME).index("timestamp").openKeyCursor().onsuccess=e=>{var n=e.target.result;if(!n)return t(null,{type:"remote",db:r,entries:_});_[n.primaryKey]={timestamp:n.key},n.continue()}}catch(e){return t(e)}}))},loadLocalEntry:(e,t)=>{var _,r;try{r=FS.lookupPath(e).node,_=FS.stat(e)}catch(e){return t(e)}return FS.isDir(_.mode)?t(null,{timestamp:_.mtime,mode:_.mode}):FS.isFile(_.mode)?(r.contents=MEMFS.getFileDataAsTypedArray(r),t(null,{timestamp:_.mtime,mode:_.mode,contents:r.contents})):t(new Error("node type not supported"))},storeLocalEntry:(e,t,_)=>{try{if(FS.isDir(t.mode))FS.mkdirTree(e,t.mode);else{if(!FS.isFile(t.mode))return _(new Error("node type not supported"));FS.writeFile(e,t.contents,{canOwn:!0})}FS.chmod(e,t.mode),FS.utime(e,t.timestamp,t.timestamp)}catch(e){return _(e)}_(null)},removeLocalEntry:(e,t)=>{try{var _=FS.stat(e);FS.isDir(_.mode)?FS.rmdir(e):FS.isFile(_.mode)&&FS.unlink(e)}catch(e){return t(e)}t(null)},loadRemoteEntry:(e,t,_)=>{var r=e.get(t);r.onsuccess=e=>{_(null,e.target.result)},r.onerror=e=>{_(this.error),e.preventDefault()}},storeRemoteEntry:(e,t,_,r)=>{try{var n=e.put(_,t)}catch(e){return void r(e)}n.onsuccess=()=>{r(null)},n.onerror=e=>{r(this.error),e.preventDefault()}},removeRemoteEntry:(e,t,_)=>{var r=e.delete(t);r.onsuccess=()=>{_(null)},r.onerror=e=>{_(this.error),e.preventDefault()}},reconcile:(e,t,_)=>{var r=0,n=[];Object.keys(e.entries).forEach((function(_){var o=e.entries[_],l=t.entries[_];l&&o.timestamp.getTime()==l.timestamp.getTime()||(n.push(_),r++)}));var o=[];if(Object.keys(t.entries).forEach((function(t){e.entries[t]||(o.push(t),r++)})),!r)return _(null);var l=!1,i=("remote"===e.type?e.db:t.db).transaction([IDBFS.DB_STORE_NAME],"readwrite"),a=i.objectStore(IDBFS.DB_STORE_NAME);function u(e){if(e&&!l)return l=!0,_(e)}i.onerror=e=>{u(this.error),e.preventDefault()},i.oncomplete=e=>{l||_(null)},n.sort().forEach((e=>{"local"===t.type?IDBFS.loadRemoteEntry(a,e,((t,_)=>{if(t)return u(t);IDBFS.storeLocalEntry(e,_,u)})):IDBFS.loadLocalEntry(e,((t,_)=>{if(t)return u(t);IDBFS.storeRemoteEntry(a,e,_,u)}))})),o.sort().reverse().forEach((e=>{"local"===t.type?IDBFS.removeLocalEntry(e,u):IDBFS.removeRemoteEntry(a,e,u)}))}};Module.IDBFS=IDBFS;var ERRNO_CODES={};Module.ERRNO_CODES=ERRNO_CODES;var NODEFS={isWindows:!1,staticInit:()=>{NODEFS.isWindows=!!process.platform.match(/^win/);var e=process.binding("constants");e.fs&&(e=e.fs),NODEFS.flagsForNodeMap={1024:e.O_APPEND,64:e.O_CREAT,128:e.O_EXCL,256:e.O_NOCTTY,0:e.O_RDONLY,2:e.O_RDWR,4096:e.O_SYNC,512:e.O_TRUNC,1:e.O_WRONLY,131072:e.O_NOFOLLOW}},convertNodeCode:e=>{var t=e.code;return ERRNO_CODES[t]},mount:e=>NODEFS.createNode(null,"/",NODEFS.getMode(e.opts.root),0),createNode:(e,t,_,r)=>{if(!FS.isDir(_)&&!FS.isFile(_)&&!FS.isLink(_))throw new FS.ErrnoError(28);var n=FS.createNode(e,t,_);return n.node_ops=NODEFS.node_ops,n.stream_ops=NODEFS.stream_ops,n},getMode:e=>{var t;try{t=fs.lstatSync(e),NODEFS.isWindows&&(t.mode=t.mode|(292&t.mode)>>2)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(NODEFS.convertNodeCode(e))}return t.mode},realPath:e=>{for(var t=[];e.parent!==e;)t.push(e.name),e=e.parent;return t.push(e.mount.opts.root),t.reverse(),PATH.join.apply(null,t)},flagsForNode:e=>{e&=-2097153,e&=-2049,e&=-32769,e&=-524289,e&=-65537;var t=0;for(var _ in NODEFS.flagsForNodeMap)e&_&&(t|=NODEFS.flagsForNodeMap[_],e^=_);if(e)throw new FS.ErrnoError(28);return t},node_ops:{getattr:e=>{var t,_=NODEFS.realPath(e);try{t=fs.lstatSync(_)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(NODEFS.convertNodeCode(e))}return NODEFS.isWindows&&!t.blksize&&(t.blksize=4096),NODEFS.isWindows&&!t.blocks&&(t.blocks=(t.size+t.blksize-1)/t.blksize|0),{dev:t.dev,ino:t.ino,mode:t.mode,nlink:t.nlink,uid:t.uid,gid:t.gid,rdev:t.rdev,size:t.size,atime:t.atime,mtime:t.mtime,ctime:t.ctime,blksize:t.blksize,blocks:t.blocks}},setattr:(e,t)=>{var _=NODEFS.realPath(e);try{if(void 0!==t.mode&&(fs.chmodSync(_,t.mode),e.mode=t.mode),void 0!==t.timestamp){var r=new Date(t.timestamp);fs.utimesSync(_,r,r)}void 0!==t.size&&fs.truncateSync(_,t.size)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(NODEFS.convertNodeCode(e))}},lookup:(e,t)=>{var _=PATH.join2(NODEFS.realPath(e),t),r=NODEFS.getMode(_);return NODEFS.createNode(e,t,r)},mknod:(e,t,_,r)=>{var n=NODEFS.createNode(e,t,_,r),o=NODEFS.realPath(n);try{FS.isDir(n.mode)?fs.mkdirSync(o,n.mode):fs.writeFileSync(o,"",{mode:n.mode})}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(NODEFS.convertNodeCode(e))}return n},rename:(e,t,_)=>{var r=NODEFS.realPath(e),n=PATH.join2(NODEFS.realPath(t),_);try{fs.renameSync(r,n)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(NODEFS.convertNodeCode(e))}e.name=_},unlink:(e,t)=>{var _=PATH.join2(NODEFS.realPath(e),t);try{fs.unlinkSync(_)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(NODEFS.convertNodeCode(e))}},rmdir:(e,t)=>{var _=PATH.join2(NODEFS.realPath(e),t);try{fs.rmdirSync(_)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(NODEFS.convertNodeCode(e))}},readdir:e=>{var t=NODEFS.realPath(e);try{return fs.readdirSync(t)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(NODEFS.convertNodeCode(e))}},symlink:(e,t,_)=>{var r=PATH.join2(NODEFS.realPath(e),t);try{fs.symlinkSync(_,r)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(NODEFS.convertNodeCode(e))}},readlink:e=>{var t=NODEFS.realPath(e);try{return t=fs.readlinkSync(t),t=nodePath.relative(nodePath.resolve(e.mount.opts.root),t)}catch(e){if(!e.code)throw e;if("UNKNOWN"===e.code)throw new FS.ErrnoError(28);throw new FS.ErrnoError(NODEFS.convertNodeCode(e))}}},stream_ops:{open:e=>{var t=NODEFS.realPath(e.node);try{FS.isFile(e.node.mode)&&(e.nfd=fs.openSync(t,NODEFS.flagsForNode(e.flags)))}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(NODEFS.convertNodeCode(e))}},close:e=>{try{FS.isFile(e.node.mode)&&e.nfd&&fs.closeSync(e.nfd)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(NODEFS.convertNodeCode(e))}},read:(e,t,_,r,n)=>{if(0===r)return 0;try{return fs.readSync(e.nfd,Buffer.from(t.buffer),_,r,n)}catch(e){throw new FS.ErrnoError(NODEFS.convertNodeCode(e))}},write:(e,t,_,r,n)=>{try{return fs.writeSync(e.nfd,Buffer.from(t.buffer),_,r,n)}catch(e){throw new FS.ErrnoError(NODEFS.convertNodeCode(e))}},llseek:(e,t,_)=>{var r=t;if(1===_)r+=e.position;else if(2===_&&FS.isFile(e.node.mode))try{r+=fs.fstatSync(e.nfd).size}catch(e){throw new FS.ErrnoError(NODEFS.convertNodeCode(e))}if(r<0)throw new FS.ErrnoError(28);return r},mmap:(e,t,_,r,n)=>{if(!FS.isFile(e.node.mode))throw new FS.ErrnoError(43);var o=mmapAlloc(t);return NODEFS.stream_ops.read(e,HEAP8,o,t,_),{ptr:o,allocated:!0}},msync:(e,t,_,r,n)=>(NODEFS.stream_ops.write(e,t,0,r,_,!1),0)}};Module.NODEFS=NODEFS;var WORKERFS={DIR_MODE:16895,FILE_MODE:33279,reader:null,mount:function(e){assert(ENVIRONMENT_IS_WORKER),WORKERFS.reader||(WORKERFS.reader=new FileReaderSync);var t=WORKERFS.createNode(null,"/",WORKERFS.DIR_MODE,0),_={};function r(e){for(var r=e.split("/"),n=t,o=0;o=e.node.size)return 0;var o=e.node.contents.slice(n,n+r),l=WORKERFS.reader.readAsArrayBuffer(o);return t.set(new Uint8Array(l),_),o.size},write:function(e,t,_,r,n){throw new FS.ErrnoError(29)},llseek:function(e,t,_){var r=t;if(1===_?r+=e.position:2===_&&FS.isFile(e.node.mode)&&(r+=e.node.size),r<0)throw new FS.ErrnoError(28);return r}}};Module.WORKERFS=WORKERFS;var PROXYFS={mount:function(e){return PROXYFS.createNode(null,"/",e.opts.fs.lstat(e.opts.root).mode,0)},createNode:function(e,t,_,r){if(!FS.isDir(_)&&!FS.isFile(_)&&!FS.isLink(_))throw new FS.ErrnoError(ERRNO_CODES.EINVAL);var n=FS.createNode(e,t,_);return n.node_ops=PROXYFS.node_ops,n.stream_ops=PROXYFS.stream_ops,n},realPath:function(e){for(var t=[];e.parent!==e;)t.push(e.name),e=e.parent;return t.push(e.mount.opts.root),t.reverse(),PATH.join.apply(null,t)},node_ops:{getattr:function(e){var t,_=PROXYFS.realPath(e);try{t=e.mount.opts.fs.lstat(_)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return{dev:t.dev,ino:t.ino,mode:t.mode,nlink:t.nlink,uid:t.uid,gid:t.gid,rdev:t.rdev,size:t.size,atime:t.atime,mtime:t.mtime,ctime:t.ctime,blksize:t.blksize,blocks:t.blocks}},setattr:function(e,t){var _=PROXYFS.realPath(e);try{if(void 0!==t.mode&&(e.mount.opts.fs.chmod(_,t.mode),e.mode=t.mode),void 0!==t.timestamp){var r=new Date(t.timestamp);e.mount.opts.fs.utime(_,r,r)}void 0!==t.size&&e.mount.opts.fs.truncate(_,t.size)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},lookup:function(e,t){try{var _=PATH.join2(PROXYFS.realPath(e),t),r=e.mount.opts.fs.lstat(_).mode;return PROXYFS.createNode(e,t,r)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},mknod:function(e,t,_,r){var n=PROXYFS.createNode(e,t,_,r),o=PROXYFS.realPath(n);try{FS.isDir(n.mode)?n.mount.opts.fs.mkdir(o,n.mode):n.mount.opts.fs.writeFile(o,"",{mode:n.mode})}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return n},rename:function(e,t,_){var r=PROXYFS.realPath(e),n=PATH.join2(PROXYFS.realPath(t),_);try{e.mount.opts.fs.rename(r,n),e.name=_,e.parent=t}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},unlink:function(e,t){var _=PATH.join2(PROXYFS.realPath(e),t);try{e.mount.opts.fs.unlink(_)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},rmdir:function(e,t){var _=PATH.join2(PROXYFS.realPath(e),t);try{e.mount.opts.fs.rmdir(_)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},readdir:function(e){var t=PROXYFS.realPath(e);try{return e.mount.opts.fs.readdir(t)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},symlink:function(e,t,_){var r=PATH.join2(PROXYFS.realPath(e),t);try{e.mount.opts.fs.symlink(_,r)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},readlink:function(e){var t=PROXYFS.realPath(e);try{return e.mount.opts.fs.readlink(t)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}},stream_ops:{open:function(e){var t=PROXYFS.realPath(e.node);try{e.nfd=e.node.mount.opts.fs.open(t,e.flags)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},close:function(e){try{e.node.mount.opts.fs.close(e.nfd)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},read:function(e,t,_,r,n){try{return e.node.mount.opts.fs.read(e.nfd,t,_,r,n)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},write:function(e,t,_,r,n){try{return e.node.mount.opts.fs.write(e.nfd,t,_,r,n)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},llseek:function(e,t,_){var r=t;if(1===_)r+=e.position;else if(2===_&&FS.isFile(e.node.mode))try{r+=e.node.node_ops.getattr(e.node).size}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}if(r<0)throw new FS.ErrnoError(ERRNO_CODES.EINVAL);return r}}};Module.PROXYFS=PROXYFS;var LZ4={DIR_MODE:16895,FILE_MODE:33279,CHUNK_SIZE:-1,codec:null,init:function(){var e;LZ4.codec||(LZ4.codec=(e=function(){var e={uncompress:function(e,t,_,r){for(var n=_=_||0,o=r=r||e.length-_,l=0;n>4;if(a>0){for(var u=a+240;255===u;)a+=u=e[n++];for(var s=n+a;nl)return-(n-2);var d=15&i;for(u=d+240;255===u;)d+=u=e[n++];var p=l-c;for(s=l+d+4;lt?0:e+e/255+16|0},e.compress=function(i,a,u,s){return o.set(l),function(l,i,a,u,s){var c=u,d=s-u,p=0;if(l.length>=t)throw new Error("input too large");if(l.length>12){var y=e.compressBound(l.length);if(d>>16,h=o[P]-1;if(o[P]=a+1,h<0||a-h>>>16>0||(l[h+3]<<8|l[h+2])!=g||(l[h+1]<<8|l[h])!=M)a+=m++>>6;else{m=67;var b=a-p,w=a-h;h+=4;for(var E=a+=4;a=r){i[c++]=240+S;for(var v=b-r;v>254;v-=255)i[c++]=255;i[c++]=v}else i[c++]=(b<<4)+S;for(var x=0;x>8,E>=_){for(E-=_;E>=255;)E-=255,i[c++]=255;i[c++]=E}p=a}}}if(0==p)return 0;if((b=l.length-p)>=r){i[c++]=240;for(var A=b-r;A>254;A-=255)i[c++]=255;i[c++]=A}else i[c++]=b<<4;for(a=p;a0){if(assert(c<=u),s=s.subarray(0,c),n.push(s),i+=c,o.push(1),_){var d=e.uncompress(s,r);assert(d===a.length,[d,a.length]);for(var p=0;p=0)a=l.cachedChunks[y];else{l.cachedIndexes.pop(),l.cachedIndexes.unshift(c),a=l.cachedChunks.pop(),l.cachedChunks.unshift(a),l.debug&&(out("decompressing chunk "+c),Module.decompressedChunks=(Module.decompressedChunks||0)+1);var m=l.data.subarray(d,d+p),f=LZ4.codec.uncompress(m,a);c{if(!(e=PATH_FS.resolve(e)))return{path:"",node:null};if((t=Object.assign({follow_mount:!0,recurse_count:0},t)).recurse_count>8)throw new FS.ErrnoError(32);for(var _=e.split("/").filter((e=>!!e)),r=FS.root,n="/",o=0;o<_.length;o++){var l=o===_.length-1;if(l&&t.parent)break;if(r=FS.lookupNode(r,_[o]),n=PATH.join2(n,_[o]),FS.isMountpoint(r)&&(!l||l&&t.follow_mount)&&(r=r.mounted.root),!l||t.follow)for(var i=0;FS.isLink(r.mode);){var a=FS.readlink(n);if(n=PATH_FS.resolve(PATH.dirname(n),a),r=FS.lookupPath(n,{recurse_count:t.recurse_count+1}).node,i++>40)throw new FS.ErrnoError(32)}}return{path:n,node:r}},getPath:e=>{for(var t;;){if(FS.isRoot(e)){var _=e.mount.mountpoint;return t?"/"!==_[_.length-1]?_+"/"+t:_+t:_}t=t?e.name+"/"+t:e.name,e=e.parent}},hashName:(e,t)=>{for(var _=0,r=0;r>>0)%FS.nameTable.length},hashAddNode:e=>{var t=FS.hashName(e.parent.id,e.name);e.name_next=FS.nameTable[t],FS.nameTable[t]=e},hashRemoveNode:e=>{var t=FS.hashName(e.parent.id,e.name);if(FS.nameTable[t]===e)FS.nameTable[t]=e.name_next;else for(var _=FS.nameTable[t];_;){if(_.name_next===e){_.name_next=e.name_next;break}_=_.name_next}},lookupNode:(e,t)=>{var _=FS.mayLookup(e);if(_)throw new FS.ErrnoError(_,e);for(var r=FS.hashName(e.id,t),n=FS.nameTable[r];n;n=n.name_next){var o=n.name;if(n.parent.id===e.id&&o===t)return n}return FS.lookup(e,t)},createNode:(e,t,_,r)=>{var n=new FS.FSNode(e,t,_,r);return FS.hashAddNode(n),n},destroyNode:e=>{FS.hashRemoveNode(e)},isRoot:e=>e===e.parent,isMountpoint:e=>!!e.mounted,isFile:e=>32768==(61440&e),isDir:e=>16384==(61440&e),isLink:e=>40960==(61440&e),isChrdev:e=>8192==(61440&e),isBlkdev:e=>24576==(61440&e),isFIFO:e=>4096==(61440&e),isSocket:e=>!(49152&~e),flagModes:{r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},modeStringToFlags:e=>{var t=FS.flagModes[e];if(void 0===t)throw new Error("Unknown file open mode: "+e);return t},flagsToPermissionString:e=>{var t=["r","w","rw"][3&e];return 512&e&&(t+="w"),t},nodePermissions:(e,t)=>FS.ignorePermissions||(!t.includes("r")||292&e.mode)&&(!t.includes("w")||146&e.mode)&&(!t.includes("x")||73&e.mode)?0:2,mayLookup:e=>{var t=FS.nodePermissions(e,"x");return t||(e.node_ops.lookup?0:2)},mayCreate:(e,t)=>{try{FS.lookupNode(e,t);return 20}catch(e){}return FS.nodePermissions(e,"wx")},mayDelete:(e,t,_)=>{var r;try{r=FS.lookupNode(e,t)}catch(e){return e.errno}var n=FS.nodePermissions(e,"wx");if(n)return n;if(_){if(!FS.isDir(r.mode))return 54;if(FS.isRoot(r)||FS.getPath(r)===FS.cwd())return 10}else if(FS.isDir(r.mode))return 31;return 0},mayOpen:(e,t)=>e?FS.isLink(e.mode)?32:FS.isDir(e.mode)&&("r"!==FS.flagsToPermissionString(t)||512&t)?31:FS.nodePermissions(e,FS.flagsToPermissionString(t)):44,MAX_OPEN_FDS:4096,nextfd:(e=0,t=FS.MAX_OPEN_FDS)=>{for(var _=e;_<=t;_++)if(!FS.streams[_])return _;throw new FS.ErrnoError(33)},getStream:e=>FS.streams[e],createStream:(e,t,_)=>{FS.FSStream||(FS.FSStream=function(){this.shared={}},FS.FSStream.prototype={},Object.defineProperties(FS.FSStream.prototype,{object:{get:function(){return this.node},set:function(e){this.node=e}},isRead:{get:function(){return 1!=(2097155&this.flags)}},isWrite:{get:function(){return!!(2097155&this.flags)}},isAppend:{get:function(){return 1024&this.flags}},flags:{get:function(){return this.shared.flags},set:function(e){this.shared.flags=e}},position:{get:function(){return this.shared.position},set:function(e){this.shared.position=e}}})),e=Object.assign(new FS.FSStream,e);var r=FS.nextfd(t,_);return e.fd=r,FS.streams[r]=e,e},closeStream:e=>{FS.streams[e]=null},chrdev_stream_ops:{open:e=>{var t=FS.getDevice(e.node.rdev);e.stream_ops=t.stream_ops,e.stream_ops.open&&e.stream_ops.open(e)},llseek:()=>{throw new FS.ErrnoError(70)}},major:e=>e>>8,minor:e=>255&e,makedev:(e,t)=>e<<8|t,registerDevice:(e,t)=>{FS.devices[e]={stream_ops:t}},getDevice:e=>FS.devices[e],getMounts:e=>{for(var t=[],_=[e];_.length;){var r=_.pop();t.push(r),_.push.apply(_,r.mounts)}return t},syncfs:(e,t)=>{"function"==typeof e&&(t=e,e=!1),FS.syncFSRequests++,FS.syncFSRequests>1&&err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var _=FS.getMounts(FS.root.mount),r=0;function n(e){return FS.syncFSRequests--,t(e)}function o(e){if(e)return o.errored?void 0:(o.errored=!0,n(e));++r>=_.length&&n(null)}_.forEach((t=>{if(!t.type.syncfs)return o(null);t.type.syncfs(t,e,o)}))},mount:(e,t,_)=>{var r,n="/"===_,o=!_;if(n&&FS.root)throw new FS.ErrnoError(10);if(!n&&!o){var l=FS.lookupPath(_,{follow_mount:!1});if(_=l.path,r=l.node,FS.isMountpoint(r))throw new FS.ErrnoError(10);if(!FS.isDir(r.mode))throw new FS.ErrnoError(54)}var i={type:e,opts:t,mountpoint:_,mounts:[]},a=e.mount(i);return a.mount=i,i.root=a,n?FS.root=a:r&&(r.mounted=i,r.mount&&r.mount.mounts.push(i)),a},unmount:e=>{var t=FS.lookupPath(e,{follow_mount:!1});if(!FS.isMountpoint(t.node))throw new FS.ErrnoError(28);var _=t.node,r=_.mounted,n=FS.getMounts(r);Object.keys(FS.nameTable).forEach((e=>{for(var t=FS.nameTable[e];t;){var _=t.name_next;n.includes(t.mount)&&FS.destroyNode(t),t=_}})),_.mounted=null;var o=_.mount.mounts.indexOf(r);_.mount.mounts.splice(o,1)},lookup:(e,t)=>e.node_ops.lookup(e,t),mknod:(e,t,_)=>{var r=FS.lookupPath(e,{parent:!0}).node,n=PATH.basename(e);if(!n||"."===n||".."===n)throw new FS.ErrnoError(28);var o=FS.mayCreate(r,n);if(o)throw new FS.ErrnoError(o);if(!r.node_ops.mknod)throw new FS.ErrnoError(63);return r.node_ops.mknod(r,n,t,_)},create:(e,t)=>(t=void 0!==t?t:438,t&=4095,t|=32768,FS.mknod(e,t,0)),mkdir:(e,t)=>(t=void 0!==t?t:511,t&=1023,t|=16384,FS.mknod(e,t,0)),mkdirTree:(e,t)=>{for(var _=e.split("/"),r="",n=0;n<_.length;++n)if(_[n]){r+="/"+_[n];try{FS.mkdir(r,t)}catch(e){if(20!=e.errno)throw e}}},mkdev:(e,t,_)=>(void 0===_&&(_=t,t=438),t|=8192,FS.mknod(e,t,_)),symlink:(e,t)=>{if(!PATH_FS.resolve(e))throw new FS.ErrnoError(44);var _=FS.lookupPath(t,{parent:!0}).node;if(!_)throw new FS.ErrnoError(44);var r=PATH.basename(t),n=FS.mayCreate(_,r);if(n)throw new FS.ErrnoError(n);if(!_.node_ops.symlink)throw new FS.ErrnoError(63);return _.node_ops.symlink(_,r,e)},rename:(e,t)=>{var _,r,n=PATH.dirname(e),o=PATH.dirname(t),l=PATH.basename(e),i=PATH.basename(t);if(_=FS.lookupPath(e,{parent:!0}).node,r=FS.lookupPath(t,{parent:!0}).node,!_||!r)throw new FS.ErrnoError(44);if(_.mount!==r.mount)throw new FS.ErrnoError(75);var a,u=FS.lookupNode(_,l),s=PATH_FS.relative(e,o);if("."!==s.charAt(0))throw new FS.ErrnoError(28);if("."!==(s=PATH_FS.relative(t,n)).charAt(0))throw new FS.ErrnoError(55);try{a=FS.lookupNode(r,i)}catch(e){}if(u!==a){var c=FS.isDir(u.mode),d=FS.mayDelete(_,l,c);if(d)throw new FS.ErrnoError(d);if(d=a?FS.mayDelete(r,i,c):FS.mayCreate(r,i))throw new FS.ErrnoError(d);if(!_.node_ops.rename)throw new FS.ErrnoError(63);if(FS.isMountpoint(u)||a&&FS.isMountpoint(a))throw new FS.ErrnoError(10);if(r!==_&&(d=FS.nodePermissions(_,"w")))throw new FS.ErrnoError(d);FS.hashRemoveNode(u);try{_.node_ops.rename(u,r,i)}catch(e){throw e}finally{FS.hashAddNode(u)}}},rmdir:e=>{var t=FS.lookupPath(e,{parent:!0}).node,_=PATH.basename(e),r=FS.lookupNode(t,_),n=FS.mayDelete(t,_,!0);if(n)throw new FS.ErrnoError(n);if(!t.node_ops.rmdir)throw new FS.ErrnoError(63);if(FS.isMountpoint(r))throw new FS.ErrnoError(10);t.node_ops.rmdir(t,_),FS.destroyNode(r)},readdir:e=>{var t=FS.lookupPath(e,{follow:!0}).node;if(!t.node_ops.readdir)throw new FS.ErrnoError(54);return t.node_ops.readdir(t)},unlink:e=>{var t=FS.lookupPath(e,{parent:!0}).node;if(!t)throw new FS.ErrnoError(44);var _=PATH.basename(e),r=FS.lookupNode(t,_),n=FS.mayDelete(t,_,!1);if(n)throw new FS.ErrnoError(n);if(!t.node_ops.unlink)throw new FS.ErrnoError(63);if(FS.isMountpoint(r))throw new FS.ErrnoError(10);t.node_ops.unlink(t,_),FS.destroyNode(r)},readlink:e=>{var t=FS.lookupPath(e).node;if(!t)throw new FS.ErrnoError(44);if(!t.node_ops.readlink)throw new FS.ErrnoError(28);return PATH_FS.resolve(FS.getPath(t.parent),t.node_ops.readlink(t))},stat:(e,t)=>{var _=FS.lookupPath(e,{follow:!t}).node;if(!_)throw new FS.ErrnoError(44);if(!_.node_ops.getattr)throw new FS.ErrnoError(63);return _.node_ops.getattr(_)},lstat:e=>FS.stat(e,!0),chmod:(e,t,_)=>{var r;"string"==typeof e?r=FS.lookupPath(e,{follow:!_}).node:r=e;if(!r.node_ops.setattr)throw new FS.ErrnoError(63);r.node_ops.setattr(r,{mode:4095&t|-4096&r.mode,timestamp:Date.now()})},lchmod:(e,t)=>{FS.chmod(e,t,!0)},fchmod:(e,t)=>{var _=FS.getStream(e);if(!_)throw new FS.ErrnoError(8);FS.chmod(_.node,t)},chown:(e,t,_,r)=>{var n;"string"==typeof e?n=FS.lookupPath(e,{follow:!r}).node:n=e;if(!n.node_ops.setattr)throw new FS.ErrnoError(63);n.node_ops.setattr(n,{timestamp:Date.now()})},lchown:(e,t,_)=>{FS.chown(e,t,_,!0)},fchown:(e,t,_)=>{var r=FS.getStream(e);if(!r)throw new FS.ErrnoError(8);FS.chown(r.node,t,_)},truncate:(e,t)=>{if(t<0)throw new FS.ErrnoError(28);var _;"string"==typeof e?_=FS.lookupPath(e,{follow:!0}).node:_=e;if(!_.node_ops.setattr)throw new FS.ErrnoError(63);if(FS.isDir(_.mode))throw new FS.ErrnoError(31);if(!FS.isFile(_.mode))throw new FS.ErrnoError(28);var r=FS.nodePermissions(_,"w");if(r)throw new FS.ErrnoError(r);_.node_ops.setattr(_,{size:t,timestamp:Date.now()})},ftruncate:(e,t)=>{var _=FS.getStream(e);if(!_)throw new FS.ErrnoError(8);if(!(2097155&_.flags))throw new FS.ErrnoError(28);FS.truncate(_.node,t)},utime:(e,t,_)=>{var r=FS.lookupPath(e,{follow:!0}).node;r.node_ops.setattr(r,{timestamp:Math.max(t,_)})},open:(e,t,_)=>{if(""===e)throw new FS.ErrnoError(44);var r;if(_=void 0===_?438:_,_=64&(t="string"==typeof t?FS.modeStringToFlags(t):t)?4095&_|32768:0,"object"==typeof e)r=e;else{e=PATH.normalize(e);try{r=FS.lookupPath(e,{follow:!(131072&t)}).node}catch(e){}}var n=!1;if(64&t)if(r){if(128&t)throw new FS.ErrnoError(20)}else r=FS.mknod(e,_,0),n=!0;if(!r)throw new FS.ErrnoError(44);if(FS.isChrdev(r.mode)&&(t&=-513),65536&t&&!FS.isDir(r.mode))throw new FS.ErrnoError(54);if(!n){var o=FS.mayOpen(r,t);if(o)throw new FS.ErrnoError(o)}512&t&&!n&&FS.truncate(r,0),t&=-131713;var l=FS.createStream({node:r,path:FS.getPath(r),flags:t,seekable:!0,position:0,stream_ops:r.stream_ops,ungotten:[],error:!1});return l.stream_ops.open&&l.stream_ops.open(l),!Module.logReadFiles||1&t||(FS.readFiles||(FS.readFiles={}),e in FS.readFiles||(FS.readFiles[e]=1)),l},close:e=>{if(FS.isClosed(e))throw new FS.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(e){throw e}finally{FS.closeStream(e.fd)}e.fd=null},isClosed:e=>null===e.fd,llseek:(e,t,_)=>{if(FS.isClosed(e))throw new FS.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new FS.ErrnoError(70);if(0!=_&&1!=_&&2!=_)throw new FS.ErrnoError(28);return e.position=e.stream_ops.llseek(e,t,_),e.ungotten=[],e.position},read:(e,t,_,r,n)=>{if(r<0||n<0)throw new FS.ErrnoError(28);if(FS.isClosed(e))throw new FS.ErrnoError(8);if(1==(2097155&e.flags))throw new FS.ErrnoError(8);if(FS.isDir(e.node.mode))throw new FS.ErrnoError(31);if(!e.stream_ops.read)throw new FS.ErrnoError(28);var o=void 0!==n;if(o){if(!e.seekable)throw new FS.ErrnoError(70)}else n=e.position;var l=e.stream_ops.read(e,t,_,r,n);return o||(e.position+=l),l},write:(e,t,_,r,n,o)=>{if(r<0||n<0)throw new FS.ErrnoError(28);if(FS.isClosed(e))throw new FS.ErrnoError(8);if(!(2097155&e.flags))throw new FS.ErrnoError(8);if(FS.isDir(e.node.mode))throw new FS.ErrnoError(31);if(!e.stream_ops.write)throw new FS.ErrnoError(28);e.seekable&&1024&e.flags&&FS.llseek(e,0,2);var l=void 0!==n;if(l){if(!e.seekable)throw new FS.ErrnoError(70)}else n=e.position;var i=e.stream_ops.write(e,t,_,r,n,o);return l||(e.position+=i),i},allocate:(e,t,_)=>{if(FS.isClosed(e))throw new FS.ErrnoError(8);if(t<0||_<=0)throw new FS.ErrnoError(28);if(!(2097155&e.flags))throw new FS.ErrnoError(8);if(!FS.isFile(e.node.mode)&&!FS.isDir(e.node.mode))throw new FS.ErrnoError(43);if(!e.stream_ops.allocate)throw new FS.ErrnoError(138);e.stream_ops.allocate(e,t,_)},mmap:(e,t,_,r,n)=>{if(2&r&&!(2&n)&&2!=(2097155&e.flags))throw new FS.ErrnoError(2);if(1==(2097155&e.flags))throw new FS.ErrnoError(2);if(!e.stream_ops.mmap)throw new FS.ErrnoError(43);return e.stream_ops.mmap(e,t,_,r,n)},msync:(e,t,_,r,n)=>e.stream_ops.msync?e.stream_ops.msync(e,t,_,r,n):0,munmap:e=>0,ioctl:(e,t,_)=>{if(!e.stream_ops.ioctl)throw new FS.ErrnoError(59);return e.stream_ops.ioctl(e,t,_)},readFile:(e,t={})=>{if(t.flags=t.flags||0,t.encoding=t.encoding||"binary","utf8"!==t.encoding&&"binary"!==t.encoding)throw new Error('Invalid encoding type "'+t.encoding+'"');var _,r=FS.open(e,t.flags),n=FS.stat(e).size,o=new Uint8Array(n);return FS.read(r,o,0,n,0),"utf8"===t.encoding?_=UTF8ArrayToString(o,0):"binary"===t.encoding&&(_=o),FS.close(r),_},writeFile:(e,t,_={})=>{_.flags=_.flags||577;var r=FS.open(e,_.flags,_.mode);if("string"==typeof t){var n=new Uint8Array(lengthBytesUTF8(t)+1),o=stringToUTF8Array(t,n,0,n.length);FS.write(r,n,0,o,void 0,_.canOwn)}else{if(!ArrayBuffer.isView(t))throw new Error("Unsupported data type");FS.write(r,t,0,t.byteLength,void 0,_.canOwn)}FS.close(r)},cwd:()=>FS.currentPath,chdir:e=>{var t=FS.lookupPath(e,{follow:!0});if(null===t.node)throw new FS.ErrnoError(44);if(!FS.isDir(t.node.mode))throw new FS.ErrnoError(54);var _=FS.nodePermissions(t.node,"x");if(_)throw new FS.ErrnoError(_);FS.currentPath=t.path},createDefaultDirectories:()=>{FS.mkdir("/tmp"),FS.mkdir("/home"),FS.mkdir("/home/web_user")},createDefaultDevices:()=>{FS.mkdir("/dev"),FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(e,t,_,r,n)=>r}),FS.mkdev("/dev/null",FS.makedev(1,3)),TTY.register(FS.makedev(5,0),TTY.default_tty_ops),TTY.register(FS.makedev(6,0),TTY.default_tty1_ops),FS.mkdev("/dev/tty",FS.makedev(5,0)),FS.mkdev("/dev/tty1",FS.makedev(6,0));var e=getRandomDevice();FS.createDevice("/dev","random",e),FS.createDevice("/dev","urandom",e),FS.mkdir("/dev/shm"),FS.mkdir("/dev/shm/tmp")},createSpecialDirectories:()=>{FS.mkdir("/proc");var e=FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd"),FS.mount({mount:()=>{var t=FS.createNode(e,"fd",16895,73);return t.node_ops={lookup:(e,t)=>{var _=+t,r=FS.getStream(_);if(!r)throw new FS.ErrnoError(8);var n={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>r.path}};return n.parent=n,n}},t}},{},"/proc/self/fd")},createStandardStreams:()=>{Module.stdin?FS.createDevice("/dev","stdin",Module.stdin):FS.symlink("/dev/tty","/dev/stdin"),Module.stdout?FS.createDevice("/dev","stdout",null,Module.stdout):FS.symlink("/dev/tty","/dev/stdout"),Module.stderr?FS.createDevice("/dev","stderr",null,Module.stderr):FS.symlink("/dev/tty1","/dev/stderr");FS.open("/dev/stdin",0),FS.open("/dev/stdout",1),FS.open("/dev/stderr",1)},ensureErrnoError:()=>{FS.ErrnoError||(FS.ErrnoError=function(e,t){this.name="ErrnoError",this.node=t,this.setErrno=function(e){this.errno=e},this.setErrno(e),this.message="FS error"},FS.ErrnoError.prototype=new Error,FS.ErrnoError.prototype.constructor=FS.ErrnoError,[44].forEach((e=>{FS.genericErrors[e]=new FS.ErrnoError(e),FS.genericErrors[e].stack=""})))},staticInit:()=>{FS.ensureErrnoError(),FS.nameTable=new Array(4096),FS.mount(MEMFS,{},"/"),FS.createDefaultDirectories(),FS.createDefaultDevices(),FS.createSpecialDirectories(),FS.filesystems={MEMFS,IDBFS,NODEFS,WORKERFS,PROXYFS}},init:(e,t,_)=>{FS.init.initialized=!0,FS.ensureErrnoError(),Module.stdin=e||Module.stdin,Module.stdout=t||Module.stdout,Module.stderr=_||Module.stderr,FS.createStandardStreams()},quit:()=>{FS.init.initialized=!1,_fflush(0);for(var e=0;e{var _=0;return e&&(_|=365),t&&(_|=146),_},findObject:(e,t)=>{var _=FS.analyzePath(e,t);return _.exists?_.object:null},analyzePath:(e,t)=>{try{e=(r=FS.lookupPath(e,{follow:!t})).path}catch(e){}var _={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var r=FS.lookupPath(e,{parent:!0});_.parentExists=!0,_.parentPath=r.path,_.parentObject=r.node,_.name=PATH.basename(e),r=FS.lookupPath(e,{follow:!t}),_.exists=!0,_.path=r.path,_.object=r.node,_.name=r.node.name,_.isRoot="/"===r.path}catch(e){_.error=e.errno}return _},createPath:(e,t,_,r)=>{e="string"==typeof e?e:FS.getPath(e);for(var n=t.split("/").reverse();n.length;){var o=n.pop();if(o){var l=PATH.join2(e,o);try{FS.mkdir(l)}catch(e){}e=l}}return l},createFile:(e,t,_,r,n)=>{var o=PATH.join2("string"==typeof e?e:FS.getPath(e),t),l=FS.getMode(r,n);return FS.create(o,l)},createDataFile:(e,t,_,r,n,o)=>{var l=t;e&&(e="string"==typeof e?e:FS.getPath(e),l=t?PATH.join2(e,t):e);var i=FS.getMode(r,n),a=FS.create(l,i);if(_){if("string"==typeof _){for(var u=new Array(_.length),s=0,c=_.length;s{var n=PATH.join2("string"==typeof e?e:FS.getPath(e),t),o=FS.getMode(!!_,!!r);FS.createDevice.major||(FS.createDevice.major=64);var l=FS.makedev(FS.createDevice.major++,0);return FS.registerDevice(l,{open:e=>{e.seekable=!1},close:e=>{r&&r.buffer&&r.buffer.length&&r(10)},read:(e,t,r,n,o)=>{for(var l=0,i=0;i{for(var l=0;l{if(e.isDevice||e.isFolder||e.link||e.contents)return!0;if("undefined"!=typeof XMLHttpRequest)throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");if(!read_)throw new Error("Cannot load without read() or XMLHttpRequest.");try{e.contents=intArrayFromString(read_(e.url),!0),e.usedBytes=e.contents.length}catch(e){throw new FS.ErrnoError(29)}},createLazyFile:(e,t,_,r,n)=>{function o(){this.lengthKnown=!1,this.chunks=[]}if(o.prototype.get=function(e){if(!(e>this.length-1||e<0)){var t=e%this.chunkSize,_=e/this.chunkSize|0;return this.getter(_)[t]}},o.prototype.setDataGetter=function(e){this.getter=e},o.prototype.cacheLength=function(){var e=new XMLHttpRequest;if(e.open("HEAD",_,!1),e.send(null),!(e.status>=200&&e.status<300||304===e.status))throw new Error("Couldn't load "+_+". Status: "+e.status);var t,r=Number(e.getResponseHeader("Content-length")),n=(t=e.getResponseHeader("Accept-Ranges"))&&"bytes"===t,o=(t=e.getResponseHeader("Content-Encoding"))&&"gzip"===t,l=1048576;n||(l=r);var i=this;i.setDataGetter((e=>{var t=e*l,n=(e+1)*l-1;if(n=Math.min(n,r-1),void 0===i.chunks[e]&&(i.chunks[e]=((e,t)=>{if(e>t)throw new Error("invalid range ("+e+", "+t+") or no bytes requested!");if(t>r-1)throw new Error("only "+r+" bytes available! programmer error!");var n=new XMLHttpRequest;if(n.open("GET",_,!1),r!==l&&n.setRequestHeader("Range","bytes="+e+"-"+t),n.responseType="arraybuffer",n.overrideMimeType&&n.overrideMimeType("text/plain; charset=x-user-defined"),n.send(null),!(n.status>=200&&n.status<300||304===n.status))throw new Error("Couldn't load "+_+". Status: "+n.status);return void 0!==n.response?new Uint8Array(n.response||[]):intArrayFromString(n.responseText||"",!0)})(t,n)),void 0===i.chunks[e])throw new Error("doXHR failed!");return i.chunks[e]})),!o&&r||(l=r=1,r=this.getter(0).length,l=r,out("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=r,this._chunkSize=l,this.lengthKnown=!0},"undefined"!=typeof XMLHttpRequest){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var l=new o;Object.defineProperties(l,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var i={isDevice:!1,contents:l}}else i={isDevice:!1,url:_};var a=FS.createFile(e,t,i,r,n);i.contents?a.contents=i.contents:i.url&&(a.contents=null,a.url=i.url),Object.defineProperties(a,{usedBytes:{get:function(){return this.contents.length}}});var u={};function s(e,t,_,r,n){var o=e.node.contents;if(n>=o.length)return 0;var l=Math.min(o.length-n,r);if(o.slice)for(var i=0;i{var t=a.stream_ops[e];u[e]=function(){return FS.forceLoadFile(a),t.apply(null,arguments)}})),u.read=(e,t,_,r,n)=>(FS.forceLoadFile(a),s(e,t,_,r,n)),u.mmap=(e,t,_,r,n)=>{FS.forceLoadFile(a);var o=mmapAlloc(t);if(!o)throw new FS.ErrnoError(48);return s(e,HEAP8,o,t,_),{ptr:o,allocated:!0}},a.stream_ops=u,a},createPreloadedFile:(e,t,_,r,n,o,l,i,a,u)=>{var s=t?PATH_FS.resolve(PATH.join2(e,t)):e,c=getUniqueRunDependency("cp "+s);function d(_){function d(_){u&&u(),i||FS.createDataFile(e,t,_,r,n,a),o&&o(),removeRunDependency(c)}Browser.handledByPreloadPlugin(_,s,d,(()=>{l&&l(),removeRunDependency(c)}))||d(_)}addRunDependency(c),"string"==typeof _?asyncLoad(_,(e=>d(e)),l):d(_)},indexedDB:()=>window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB,DB_NAME:()=>"EM_FS_"+window.location.pathname,DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:(e,t=()=>{},_=()=>{})=>{var r=FS.indexedDB();try{var n=r.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return _(e)}n.onupgradeneeded=()=>{out("creating db"),n.result.createObjectStore(FS.DB_STORE_NAME)},n.onsuccess=()=>{var r=n.result.transaction([FS.DB_STORE_NAME],"readwrite"),o=r.objectStore(FS.DB_STORE_NAME),l=0,i=0,a=e.length;function u(){0==i?t():_()}e.forEach((e=>{var t=o.put(FS.analyzePath(e).object.contents,e);t.onsuccess=()=>{++l+i==a&&u()},t.onerror=()=>{i++,l+i==a&&u()}})),r.onerror=_},n.onerror=_},loadFilesFromDB:(e,t=()=>{},_=()=>{})=>{var r=FS.indexedDB();try{var n=r.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return _(e)}n.onupgradeneeded=_,n.onsuccess=()=>{var r=n.result;try{var o=r.transaction([FS.DB_STORE_NAME],"readonly")}catch(e){return void _(e)}var l=o.objectStore(FS.DB_STORE_NAME),i=0,a=0,u=e.length;function s(){0==a?t():_()}e.forEach((e=>{var t=l.get(e);t.onsuccess=()=>{FS.analyzePath(e).exists&&FS.unlink(e),FS.createDataFile(PATH.dirname(e),PATH.basename(e),t.result,!0,!0,!0),++i+a==u&&s()},t.onerror=()=>{a++,i+a==u&&s()}})),o.onerror=_},n.onerror=_}};Module.FS=FS;var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt:function(e,t,_){if(PATH.isAbs(t))return t;var r;-100===e?r=FS.cwd():r=SYSCALLS.getStreamFromFD(e).path;if(0==t.length){if(!_)throw new FS.ErrnoError(44);return r}return PATH.join2(r,t)},doStat:function(e,t,_){try{var r=e(t)}catch(e){if(e&&e.node&&PATH.normalize(t)!==PATH.normalize(FS.getPath(e.node)))return-54;throw e}HEAP32[_>>2]=r.dev,HEAP32[_+8>>2]=r.ino,HEAP32[_+12>>2]=r.mode,HEAPU32[_+16>>2]=r.nlink,HEAP32[_+20>>2]=r.uid,HEAP32[_+24>>2]=r.gid,HEAP32[_+28>>2]=r.rdev,tempI64=[r.size>>>0,(tempDouble=r.size,+Math.abs(tempDouble)>=1?tempDouble>0?(0|Math.min(+Math.floor(tempDouble/4294967296),4294967295))>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[_+40>>2]=tempI64[0],HEAP32[_+44>>2]=tempI64[1],HEAP32[_+48>>2]=4096,HEAP32[_+52>>2]=r.blocks;var n=r.atime.getTime(),o=r.mtime.getTime(),l=r.ctime.getTime();return tempI64=[Math.floor(n/1e3)>>>0,(tempDouble=Math.floor(n/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?(0|Math.min(+Math.floor(tempDouble/4294967296),4294967295))>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[_+56>>2]=tempI64[0],HEAP32[_+60>>2]=tempI64[1],HEAPU32[_+64>>2]=n%1e3*1e3,tempI64=[Math.floor(o/1e3)>>>0,(tempDouble=Math.floor(o/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?(0|Math.min(+Math.floor(tempDouble/4294967296),4294967295))>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[_+72>>2]=tempI64[0],HEAP32[_+76>>2]=tempI64[1],HEAPU32[_+80>>2]=o%1e3*1e3,tempI64=[Math.floor(l/1e3)>>>0,(tempDouble=Math.floor(l/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?(0|Math.min(+Math.floor(tempDouble/4294967296),4294967295))>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[_+88>>2]=tempI64[0],HEAP32[_+92>>2]=tempI64[1],HEAPU32[_+96>>2]=l%1e3*1e3,tempI64=[r.ino>>>0,(tempDouble=r.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(0|Math.min(+Math.floor(tempDouble/4294967296),4294967295))>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[_+104>>2]=tempI64[0],HEAP32[_+108>>2]=tempI64[1],0},doMsync:function(e,t,_,r,n){if(!FS.isFile(t.node.mode))throw new FS.ErrnoError(43);if(2&r)return 0;var o=HEAPU8.slice(e,e+_);FS.msync(t,o,n,_,r)},varargs:void 0,get:function(){return SYSCALLS.varargs+=4,HEAP32[SYSCALLS.varargs-4>>2]},getStr:function(e){return UTF8ToString(e)},getStreamFromFD:function(e){var t=FS.getStream(e);if(!t)throw new FS.ErrnoError(8);return t}};function ___syscall__newselect(e,t,_,r,n){try{for(var o=0,l=t?HEAP32[t>>2]:0,i=t?HEAP32[t+4>>2]:0,a=_?HEAP32[_>>2]:0,u=_?HEAP32[_+4>>2]:0,s=r?HEAP32[r>>2]:0,c=r?HEAP32[r+4>>2]:0,d=0,p=0,y=0,m=0,f=0,M=0,g=(t?HEAP32[t>>2]:0)|(_?HEAP32[_>>2]:0)|(r?HEAP32[r>>2]:0),P=(t?HEAP32[t+4>>2]:0)|(_?HEAP32[_+4>>2]:0)|(r?HEAP32[r+4>>2]:0),h=function(e,t,_,r){return e<32?t&r:_&r},b=0;b>2]=d,HEAP32[t+4>>2]=p),_&&(HEAP32[_>>2]=y,HEAP32[_+4>>2]=m),r&&(HEAP32[r>>2]=f,HEAP32[r+4>>2]=M),o}catch(e){if(void 0===FS||"ErrnoError"!==e.name)throw e;return-e.errno}}Module.SYSCALLS=SYSCALLS,Module.___syscall__newselect=___syscall__newselect;var SOCKFS={mount:function(e){return Module.websocket=Module.websocket&&"object"==typeof Module.websocket?Module.websocket:{},Module.websocket._callbacks={},Module.websocket.on=function(e,t){return"function"==typeof t&&(this._callbacks[e]=t),this},Module.websocket.emit=function(e,t){"function"==typeof this._callbacks[e]&&this._callbacks[e].call(this,t)},FS.createNode(null,"/",16895,0)},createSocket:function(e,t,_){if(1==(t&=-526337)&&_&&6!=_)throw new FS.ErrnoError(66);var r={family:e,type:t,protocol:_,server:null,error:null,peers:{},pending:[],recv_queue:[],sock_ops:SOCKFS.websocket_sock_ops},n=SOCKFS.nextname(),o=FS.createNode(SOCKFS.root,n,49152,0);o.sock=r;var l=FS.createStream({path:n,node:o,flags:2,seekable:!1,stream_ops:SOCKFS.stream_ops});return r.stream=l,r},getSocket:function(e){var t=FS.getStream(e);return t&&FS.isSocket(t.node.mode)?t.node.sock:null},stream_ops:{poll:function(e){var t=e.node.sock;return t.sock_ops.poll(t)},ioctl:function(e,t,_){var r=e.node.sock;return r.sock_ops.ioctl(r,t,_)},read:function(e,t,_,r,n){var o=e.node.sock,l=o.sock_ops.recvmsg(o,r);return l?(t.set(l.buffer,_),l.buffer.length):0},write:function(e,t,_,r,n){var o=e.node.sock;return o.sock_ops.sendmsg(o,t,_,r)},close:function(e){var t=e.node.sock;t.sock_ops.close(t)}},nextname:function(){return SOCKFS.nextname.current||(SOCKFS.nextname.current=0),"socket["+SOCKFS.nextname.current+++"]"},websocket_sock_ops:{createPeer:function(e,t,_){var r;if("object"==typeof t&&(r=t,t=null,_=null),r)if(r._socket)t=r._socket.remoteAddress,_=r._socket.remotePort;else{var n=/ws[s]?:\/\/([^:]+):(\d+)/.exec(r.url);if(!n)throw new Error("WebSocket URL must be in the format ws(s)://address:port");t=n[1],_=parseInt(n[2],10)}else try{var o=Module.websocket&&"object"==typeof Module.websocket,l="ws:#".replace("#","//");if(o&&"string"==typeof Module.websocket.url&&(l=Module.websocket.url),"ws://"===l||"wss://"===l){var i=t.split("/");l=l+i[0]+":"+_+"/"+i.slice(1).join("/")}var a="binary";o&&"string"==typeof Module.websocket.subprotocol&&(a=Module.websocket.subprotocol);var u=void 0;"null"!==a&&(u=a=a.replace(/^ +| +$/g,"").split(/ *, */)),o&&null===Module.websocket.subprotocol&&(a="null",u=void 0),(r=new(ENVIRONMENT_IS_NODE?require("ws"):WebSocket)(l,u)).binaryType="arraybuffer"}catch(e){throw new FS.ErrnoError(23)}var s={addr:t,port:_,socket:r,dgram_send_queue:[]};return SOCKFS.websocket_sock_ops.addPeer(e,s),SOCKFS.websocket_sock_ops.handlePeerEvents(e,s),2===e.type&&void 0!==e.sport&&s.dgram_send_queue.push(new Uint8Array([255,255,255,255,"p".charCodeAt(0),"o".charCodeAt(0),"r".charCodeAt(0),"t".charCodeAt(0),(65280&e.sport)>>8,255&e.sport])),s},getPeer:function(e,t,_){return e.peers[t+":"+_]},addPeer:function(e,t){e.peers[t.addr+":"+t.port]=t},removePeer:function(e,t){delete e.peers[t.addr+":"+t.port]},handlePeerEvents:function(e,t){var _=!0,r=function(){Module.websocket.emit("open",e.stream.fd);try{for(var _=t.dgram_send_queue.shift();_;)t.socket.send(_),_=t.dgram_send_queue.shift()}catch(e){t.socket.close()}};function n(r){if("string"==typeof r){r=(new TextEncoder).encode(r)}else{if(assert(void 0!==r.byteLength),0==r.byteLength)return;r=new Uint8Array(r)}var n=_;if(_=!1,n&&10===r.length&&255===r[0]&&255===r[1]&&255===r[2]&&255===r[3]&&r[4]==="p".charCodeAt(0)&&r[5]==="o".charCodeAt(0)&&r[6]==="r".charCodeAt(0)&&r[7]==="t".charCodeAt(0)){var o=r[8]<<8|r[9];return SOCKFS.websocket_sock_ops.removePeer(e,t),t.port=o,void SOCKFS.websocket_sock_ops.addPeer(e,t)}e.recv_queue.push({addr:t.addr,port:t.port,data:r}),Module.websocket.emit("message",e.stream.fd)}ENVIRONMENT_IS_NODE?(t.socket.on("open",r),t.socket.on("message",(function(e,t){t&&n(new Uint8Array(e).buffer)})),t.socket.on("close",(function(){Module.websocket.emit("close",e.stream.fd)})),t.socket.on("error",(function(t){e.error=14,Module.websocket.emit("error",[e.stream.fd,e.error,"ECONNREFUSED: Connection refused"])}))):(t.socket.onopen=r,t.socket.onclose=function(){Module.websocket.emit("close",e.stream.fd)},t.socket.onmessage=function(e){n(e.data)},t.socket.onerror=function(t){e.error=14,Module.websocket.emit("error",[e.stream.fd,e.error,"ECONNREFUSED: Connection refused"])})},poll:function(e){if(1===e.type&&e.server)return e.pending.length?65:0;var t=0,_=1===e.type?SOCKFS.websocket_sock_ops.getPeer(e,e.daddr,e.dport):null;return(e.recv_queue.length||!_||_&&_.socket.readyState===_.socket.CLOSING||_&&_.socket.readyState===_.socket.CLOSED)&&(t|=65),(!_||_&&_.socket.readyState===_.socket.OPEN)&&(t|=4),(_&&_.socket.readyState===_.socket.CLOSING||_&&_.socket.readyState===_.socket.CLOSED)&&(t|=16),t},ioctl:function(e,t,_){if(21531===t){var r=0;return e.recv_queue.length&&(r=e.recv_queue[0].data.length),HEAP32[_>>2]=r,0}return 28},close:function(e){if(e.server){try{e.server.close()}catch(e){}e.server=null}for(var t=Object.keys(e.peers),_=0;_>2]=e,e}Module.SOCKFS=SOCKFS,Module.getSocketFromFD=getSocketFromFD,Module.setErrNo=setErrNo;var Sockets={BUFFER_SIZE:10240,MAX_BUFFER_SIZE:10485760,nextFd:1,fds:{},nextport:1,maxport:65535,peer:null,connections:{},portmap:{},localAddr:4261412874,addrPool:[33554442,50331658,67108874,83886090,100663306,117440522,134217738,150994954,167772170,184549386,201326602,218103818,234881034]};function inetPton4(e){for(var t=e.split("."),_=0;_<4;_++){var r=Number(t[_]);if(isNaN(r))return null;t[_]=r}return(t[0]|t[1]<<8|t[2]<<16|t[3]<<24)>>>0}function jstoi_q(e){return parseInt(e)}function inetPton6(e){var t,_,r,n,o=[];if(!/^((?=.*::)(?!.*::.+::)(::)?([\dA-F]{1,4}:(:|\b)|){5}|([\dA-F]{1,4}:){6})((([\dA-F]{1,4}((?!\3)::|:\b|$))|(?!\2\3)){2}|(((2[0-4]|1\d|[1-9])?\d|25[0-5])\.?\b){4})$/i.test(e))return null;if("::"===e)return[0,0,0,0,0,0,0,0];for((e=e.startsWith("::")?e.replace("::","Z:"):e.replace("::",":Z:")).indexOf(".")>0?((t=(e=e.replace(new RegExp("[.]","g"),":")).split(":"))[t.length-4]=jstoi_q(t[t.length-4])+256*jstoi_q(t[t.length-3]),t[t.length-3]=jstoi_q(t[t.length-2])+256*jstoi_q(t[t.length-1]),t=t.slice(0,t.length-2)):t=e.split(":"),r=0,n=0,_=0;_>2]=16),HEAP16[e>>1]=t,HEAP32[e+4>>2]=_,HEAP16[e+2>>1]=_htons(r);break;case 10:_=inetPton6(_),zeroMemory(e,28),n&&(HEAP32[n>>2]=28),HEAP32[e>>2]=t,HEAP32[e+8>>2]=_[0],HEAP32[e+12>>2]=_[1],HEAP32[e+16>>2]=_[2],HEAP32[e+20>>2]=_[3],HEAP16[e+2>>1]=_htons(r);break;default:return 5}return 0}Module.Sockets=Sockets,Module.inetPton4=inetPton4,Module.jstoi_q=jstoi_q,Module.inetPton6=inetPton6,Module.writeSockaddr=writeSockaddr;var DNS={address_map:{id:1,addrs:{},names:{}},lookup_name:function(e){var t,_=inetPton4(e);if(null!==_)return e;if(null!==(_=inetPton6(e)))return e;if(DNS.address_map.addrs[e])t=DNS.address_map.addrs[e];else{var r=DNS.address_map.id++;assert(r<65535,"exceeded max address mappings of 65535"),t="172.29."+(255&r)+"."+(65280&r),DNS.address_map.names[t]=e,DNS.address_map.addrs[e]=t}return t},lookup_addr:function(e){return DNS.address_map.names[e]?DNS.address_map.names[e]:null}};function ___syscall_accept4(e,t,_,r){try{var n=getSocketFromFD(e),o=n.sock_ops.accept(n);if(t)writeSockaddr(t,o.family,DNS.lookup_name(o.daddr),o.dport,_);return o.stream.fd}catch(e){if(void 0===FS||"ErrnoError"!==e.name)throw e;return-e.errno}}function inetNtop4(e){return(255&e)+"."+(e>>8&255)+"."+(e>>16&255)+"."+(e>>24&255)}function inetNtop6(e){var t="",_=0,r=0,n=0,o=0,l=0,i=0,a=[65535&e[0],e[0]>>16,65535&e[1],e[1]>>16,65535&e[2],e[2]>>16,65535&e[3],e[3]>>16],u=!0,s="";for(i=0;i<5;i++)if(0!==a[i]){u=!1;break}if(u){if(s=inetNtop4(a[6]|a[7]<<16),-1===a[5])return t="::ffff:",t+=s;if(0===a[5])return t="::","0.0.0.0"===s&&(s=""),"0.0.0.1"===s&&(s="1"),t+=s}for(_=0;_<8;_++)0===a[_]&&(_-n>1&&(l=0),n=_,l++),l>r&&(o=_-(r=l)+1);for(_=0;_<8;_++)r>1&&0===a[_]&&_>=o&&_>1],n=_ntohs(HEAPU16[e+2>>1]);switch(r){case 2:if(16!==t)return{errno:28};_=inetNtop4(_=HEAP32[e+4>>2]);break;case 10:if(28!==t)return{errno:28};_=inetNtop6(_=[HEAP32[e+8>>2],HEAP32[e+12>>2],HEAP32[e+16>>2],HEAP32[e+20>>2]]);break;default:return{errno:5}}return{family:r,addr:_,port:n}}function getSocketAddress(e,t,_){if(_&&0===e)return null;var r=readSockaddr(e,t);if(r.errno)throw new FS.ErrnoError(r.errno);return r.addr=DNS.lookup_addr(r.addr)||r.addr,r}function ___syscall_bind(e,t,_){try{var r=getSocketFromFD(e),n=getSocketAddress(t,_);return r.sock_ops.bind(r,n.addr,n.port),0}catch(e){if(void 0===FS||"ErrnoError"!==e.name)throw e;return-e.errno}}function ___syscall_chdir(e){try{return e=SYSCALLS.getStr(e),FS.chdir(e),0}catch(e){if(void 0===FS||"ErrnoError"!==e.name)throw e;return-e.errno}}function ___syscall_chmod(e,t){try{return e=SYSCALLS.getStr(e),FS.chmod(e,t),0}catch(e){if(void 0===FS||"ErrnoError"!==e.name)throw e;return-e.errno}}function ___syscall_connect(e,t,_){try{var r=getSocketFromFD(e),n=getSocketAddress(t,_);return r.sock_ops.connect(r,n.addr,n.port),0}catch(e){if(void 0===FS||"ErrnoError"!==e.name)throw e;return-e.errno}}function ___syscall_dup(e){try{var t=SYSCALLS.getStreamFromFD(e);return FS.createStream(t,0).fd}catch(e){if(void 0===FS||"ErrnoError"!==e.name)throw e;return-e.errno}}function ___syscall_dup3(e,t,_){try{var r=SYSCALLS.getStreamFromFD(e);if(r.fd===t)return-28;var n=FS.getStream(t);return n&&FS.close(n),FS.createStream(r,t,t+1).fd}catch(e){if(void 0===FS||"ErrnoError"!==e.name)throw e;return-e.errno}}function ___syscall_faccessat(e,t,_,r){try{if(t=SYSCALLS.getStr(t),t=SYSCALLS.calculateAt(e,t),-8&_)return-28;var n=FS.lookupPath(t,{follow:!0}).node;if(!n)return-44;var o="";return 4&_&&(o+="r"),2&_&&(o+="w"),1&_&&(o+="x"),o&&FS.nodePermissions(n,o)?-2:0}catch(e){if(void 0===FS||"ErrnoError"!==e.name)throw e;return-e.errno}}function ___syscall_fadvise64(e,t,_,r){return 0}Module.DNS=DNS,Module.___syscall_accept4=___syscall_accept4,Module.inetNtop4=inetNtop4,Module.inetNtop6=inetNtop6,Module.readSockaddr=readSockaddr,Module.getSocketAddress=getSocketAddress,Module.___syscall_bind=___syscall_bind,___syscall_bind.sig="iipi",Module.___syscall_chdir=___syscall_chdir,___syscall_chdir.sig="ip",Module.___syscall_chmod=___syscall_chmod,___syscall_chmod.sig="ipi",Module.___syscall_connect=___syscall_connect,___syscall_connect.sig="iipi",Module.___syscall_dup=___syscall_dup,___syscall_dup.sig="ii",Module.___syscall_dup3=___syscall_dup3,Module.___syscall_faccessat=___syscall_faccessat,___syscall_faccessat.sig="iipii",Module.___syscall_fadvise64=___syscall_fadvise64;var MAX_INT53=9007199254740992;Module.MAX_INT53=MAX_INT53;var MIN_INT53=-9007199254740992;function bigintToI53Checked(e){return eMAX_INT53?NaN:Number(e)}function ___syscall_fallocate(e,t,_,r){try{if(_=bigintToI53Checked(_),isNaN(_))return-61;if(r=bigintToI53Checked(r),isNaN(r))return-61;var n=SYSCALLS.getStreamFromFD(e);return FS.allocate(n,_,r),0}catch(e){if(void 0===FS||"ErrnoError"!==e.name)throw e;return-e.errno}}function ___syscall_fchdir(e){try{var t=SYSCALLS.getStreamFromFD(e);return FS.chdir(t.path),0}catch(e){if(void 0===FS||"ErrnoError"!==e.name)throw e;return-e.errno}}function ___syscall_fchmod(e,t){try{return FS.fchmod(e,t),0}catch(e){if(void 0===FS||"ErrnoError"!==e.name)throw e;return-e.errno}}function ___syscall_fchmodat(e,t,_,r){SYSCALLS.varargs=r;try{return t=SYSCALLS.getStr(t),t=SYSCALLS.calculateAt(e,t),FS.chmod(t,_),0}catch(e){if(void 0===FS||"ErrnoError"!==e.name)throw e;return-e.errno}}function ___syscall_fchown32(e,t,_){try{return FS.fchown(e,t,_),0}catch(e){if(void 0===FS||"ErrnoError"!==e.name)throw e;return-e.errno}}function ___syscall_fchownat(e,t,_,r,n){try{t=SYSCALLS.getStr(t);var o=256&n;return n&=-257,t=SYSCALLS.calculateAt(e,t),(o?FS.lchown:FS.chown)(t,_,r),0}catch(e){if(void 0===FS||"ErrnoError"!==e.name)throw e;return-e.errno}}function ___syscall_fcntl64(e,t,_){SYSCALLS.varargs=_;try{var r=SYSCALLS.getStreamFromFD(e);switch(t){case 0:return(n=SYSCALLS.get())<0?-28:FS.createStream(r,n).fd;case 1:case 2:case 6:case 7:return 0;case 3:return r.flags;case 4:var n=SYSCALLS.get();return r.flags|=n,0;case 5:n=SYSCALLS.get();return HEAP16[n+0>>1]=2,0;case 16:case 8:default:return-28;case 9:return setErrNo(28),-1}}catch(e){if(void 0===FS||"ErrnoError"!==e.name)throw e;return-e.errno}}function ___syscall_fdatasync(e){try{SYSCALLS.getStreamFromFD(e);return 0}catch(e){if(void 0===FS||"ErrnoError"!==e.name)throw e;return-e.errno}}function ___syscall_fstat64(e,t){try{var _=SYSCALLS.getStreamFromFD(e);return SYSCALLS.doStat(FS.stat,_.path,t)}catch(e){if(void 0===FS||"ErrnoError"!==e.name)throw e;return-e.errno}}function ___syscall_statfs64(e,t,_){try{return e=SYSCALLS.getStr(e),HEAP32[_+4>>2]=4096,HEAP32[_+40>>2]=4096,HEAP32[_+8>>2]=1e6,HEAP32[_+12>>2]=5e5,HEAP32[_+16>>2]=5e5,HEAP32[_+20>>2]=FS.nextInode,HEAP32[_+24>>2]=1e6,HEAP32[_+28>>2]=42,HEAP32[_+44>>2]=2,HEAP32[_+36>>2]=255,0}catch(e){if(void 0===FS||"ErrnoError"!==e.name)throw e;return-e.errno}}function ___syscall_fstatfs64(e,t,_){try{SYSCALLS.getStreamFromFD(e);return ___syscall_statfs64(0,t,_)}catch(e){if(void 0===FS||"ErrnoError"!==e.name)throw e;return-e.errno}}function ___syscall_ftruncate64(e,t){try{return t=bigintToI53Checked(t),isNaN(t)?-61:(FS.ftruncate(e,t),0)}catch(e){if(void 0===FS||"ErrnoError"!==e.name)throw e;return-e.errno}}function ___syscall_getcwd(e,t){try{if(0===t)return-28;var _=FS.cwd(),r=lengthBytesUTF8(_)+1;return t>>0,(tempDouble=a,+Math.abs(tempDouble)>=1?tempDouble>0?(0|Math.min(+Math.floor(tempDouble/4294967296),4294967295))>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[t+o>>2]=tempI64[0],HEAP32[t+o+4>>2]=tempI64[1],tempI64=[(i+1)*n>>>0,(tempDouble=(i+1)*n,+Math.abs(tempDouble)>=1?tempDouble>0?(0|Math.min(+Math.floor(tempDouble/4294967296),4294967295))>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[t+o+8>>2]=tempI64[0],HEAP32[t+o+12>>2]=tempI64[1],HEAP16[t+o+16>>1]=280,HEAP8[t+o+18|0]=u,stringToUTF8(s,t+o+19,256),o+=n,i+=1}return FS.llseek(r,i*n,0),o}catch(e){if(void 0===FS||"ErrnoError"!==e.name)throw e;return-e.errno}}function ___syscall_getpeername(e,t,_){try{var r=getSocketFromFD(e);if(!r.daddr)return-53;writeSockaddr(t,r.family,DNS.lookup_name(r.daddr),r.dport,_);return 0}catch(e){if(void 0===FS||"ErrnoError"!==e.name)throw e;return-e.errno}}function ___syscall_getsockname(e,t,_){try{err("__syscall_getsockname "+e);var r=getSocketFromFD(e);writeSockaddr(t,r.family,DNS.lookup_name(r.saddr||"0.0.0.0"),r.sport,_);return 0}catch(e){if(void 0===FS||"ErrnoError"!==e.name)throw e;return-e.errno}}function ___syscall_getsockopt(e,t,_,r,n){try{var o=getSocketFromFD(e);return 1===t&&4===_?(HEAP32[r>>2]=o.error,HEAP32[n>>2]=4,o.error=null,0):-50}catch(e){if(void 0===FS||"ErrnoError"!==e.name)throw e;return-e.errno}}function ___syscall_ioctl(e,t,_){SYSCALLS.varargs=_;try{var r=SYSCALLS.getStreamFromFD(e);switch(t){case 21509:case 21505:case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:case 21523:case 21524:return r.tty?0:-59;case 21519:if(!r.tty)return-59;var n=SYSCALLS.get();return HEAP32[n>>2]=0,0;case 21520:return r.tty?-28:-59;case 21531:n=SYSCALLS.get();return FS.ioctl(r,t,n);default:return-28}}catch(e){if(void 0===FS||"ErrnoError"!==e.name)throw e;return-e.errno}}function ___syscall_linkat(e,t,_,r,n){return-34}function ___syscall_listen(e,t){try{var _=getSocketFromFD(e);return _.sock_ops.listen(_,t),0}catch(e){if(void 0===FS||"ErrnoError"!==e.name)throw e;return-e.errno}}function ___syscall_lstat64(e,t){try{return e=SYSCALLS.getStr(e),SYSCALLS.doStat(FS.lstat,e,t)}catch(e){if(void 0===FS||"ErrnoError"!==e.name)throw e;return-e.errno}}function ___syscall_mkdirat(e,t,_){try{return t=SYSCALLS.getStr(t),t=SYSCALLS.calculateAt(e,t),"/"===(t=PATH.normalize(t))[t.length-1]&&(t=t.substr(0,t.length-1)),FS.mkdir(t,_,0),0}catch(e){if(void 0===FS||"ErrnoError"!==e.name)throw e;return-e.errno}}function ___syscall_mknodat(e,t,_,r){try{switch(t=SYSCALLS.getStr(t),t=SYSCALLS.calculateAt(e,t),61440&_){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}return FS.mknod(t,_,r),0}catch(e){if(void 0===FS||"ErrnoError"!==e.name)throw e;return-e.errno}}function ___syscall_newfstatat(e,t,_,r){try{t=SYSCALLS.getStr(t);var n=256&r,o=4096&r;return r&=-6401,t=SYSCALLS.calculateAt(e,t,o),SYSCALLS.doStat(n?FS.lstat:FS.stat,t,_)}catch(e){if(void 0===FS||"ErrnoError"!==e.name)throw e;return-e.errno}}function ___syscall_openat(e,t,_,r){SYSCALLS.varargs=r;try{t=SYSCALLS.getStr(t),t=SYSCALLS.calculateAt(e,t);var n=r?SYSCALLS.get():0;return FS.open(t,_,n).fd}catch(e){if(void 0===FS||"ErrnoError"!==e.name)throw e;return-e.errno}}Module.MIN_INT53=MIN_INT53,Module.bigintToI53Checked=bigintToI53Checked,Module.___syscall_fallocate=___syscall_fallocate,Module.___syscall_fchdir=___syscall_fchdir,Module.___syscall_fchmod=___syscall_fchmod,Module.___syscall_fchmodat=___syscall_fchmodat,___syscall_fchmodat.sig="iipip",Module.___syscall_fchown32=___syscall_fchown32,Module.___syscall_fchownat=___syscall_fchownat,___syscall_fchownat.sig="iipiii",Module.___syscall_fcntl64=___syscall_fcntl64,___syscall_fcntl64.sig="iiip",Module.___syscall_fdatasync=___syscall_fdatasync,Module.___syscall_fstat64=___syscall_fstat64,___syscall_fstat64.sig="iip",Module.___syscall_statfs64=___syscall_statfs64,___syscall_statfs64.sig="ippp",Module.___syscall_fstatfs64=___syscall_fstatfs64,Module.___syscall_ftruncate64=___syscall_ftruncate64,___syscall_ftruncate64.sig="iij",Module.___syscall_getcwd=___syscall_getcwd,___syscall_getcwd.sig="ipp",Module.___syscall_getdents64=___syscall_getdents64,___syscall_getdents64.sig="iipi",Module.___syscall_getpeername=___syscall_getpeername,Module.___syscall_getsockname=___syscall_getsockname,Module.___syscall_getsockopt=___syscall_getsockopt,Module.___syscall_ioctl=___syscall_ioctl,___syscall_ioctl.sig="iiip",Module.___syscall_linkat=___syscall_linkat,Module.___syscall_listen=___syscall_listen,Module.___syscall_lstat64=___syscall_lstat64,___syscall_lstat64.sig="ipp",Module.___syscall_mkdirat=___syscall_mkdirat,___syscall_mkdirat.sig="iipi",Module.___syscall_mknodat=___syscall_mknodat,___syscall_mknodat.sig="iipii",Module.___syscall_newfstatat=___syscall_newfstatat,___syscall_newfstatat.sig="iippi",Module.___syscall_openat=___syscall_openat,___syscall_openat.sig="iipip";var PIPEFS={BUCKET_BUFFER_SIZE:8192,mount:function(e){return FS.createNode(null,"/",16895,0)},createPipe:function(){var e={buckets:[],refcnt:2};e.buckets.push({buffer:new Uint8Array(PIPEFS.BUCKET_BUFFER_SIZE),offset:0,roffset:0});var t=PIPEFS.nextname(),_=PIPEFS.nextname(),r=FS.createNode(PIPEFS.root,t,4096,0),n=FS.createNode(PIPEFS.root,_,4096,0);r.pipe=e,n.pipe=e;var o=FS.createStream({path:t,node:r,flags:0,seekable:!1,stream_ops:PIPEFS.stream_ops});r.stream=o;var l=FS.createStream({path:_,node:n,flags:1,seekable:!1,stream_ops:PIPEFS.stream_ops});return n.stream=l,{readable_fd:o.fd,writable_fd:l.fd}},stream_ops:{poll:function(e){var t=e.node.pipe;if(1==(2097155&e.flags))return 260;if(t.buckets.length>0)for(var _=0;_0)return 65}return 0},ioctl:function(e,t,_){return 28},fsync:function(e){return 28},read:function(e,t,_,r,n){for(var o=e.node.pipe,l=0,i=0;i=i)return a.buffer.set(l,a.offset),a.offset+=i,i;u>0&&(a.buffer.set(l.subarray(0,u),a.offset),a.offset+=u,l=l.subarray(u,l.byteLength));for(var s=l.byteLength/PIPEFS.BUCKET_BUFFER_SIZE|0,c=l.byteLength%PIPEFS.BUCKET_BUFFER_SIZE,d=0;d0){p={buffer:new Uint8Array(PIPEFS.BUCKET_BUFFER_SIZE),offset:l.byteLength,roffset:0};o.buckets.push(p),p.buffer.set(l)}return i},close:function(e){var t=e.node.pipe;t.refcnt--,0===t.refcnt&&(t.buckets=null)}},nextname:function(){return PIPEFS.nextname.current||(PIPEFS.nextname.current=0),"pipe["+PIPEFS.nextname.current+++"]"}};function ___syscall_pipe(e){try{if(0==e)throw new FS.ErrnoError(21);var t=PIPEFS.createPipe();return HEAP32[e>>2]=t.readable_fd,HEAP32[e+4>>2]=t.writable_fd,0}catch(e){if(void 0===FS||"ErrnoError"!==e.name)throw e;return-e.errno}}function ___syscall_poll(e,t,_){try{for(var r=0,n=0;n>2],i=HEAP16[o+4>>1],a=32,u=FS.getStream(l);u&&(a=SYSCALLS.DEFAULT_POLLMASK,u.stream_ops.poll&&(a=u.stream_ops.poll(u))),(a&=24|i)&&r++,HEAP16[o+6>>1]=a}return r}catch(e){if(void 0===FS||"ErrnoError"!==e.name)throw e;return-e.errno}}function ___syscall_readlinkat(e,t,_,r){try{if(t=SYSCALLS.getStr(t),t=SYSCALLS.calculateAt(e,t),r<=0)return-28;var n=FS.readlink(t),o=Math.min(r,lengthBytesUTF8(n)),l=HEAP8[_+o];return stringToUTF8(n,_,r+1),HEAP8[_+o]=l,o}catch(e){if(void 0===FS||"ErrnoError"!==e.name)throw e;return-e.errno}}function ___syscall_recvfrom(e,t,_,r,n,o){try{var l=getSocketFromFD(e),i=l.sock_ops.recvmsg(l,_);if(!i)return 0;if(n)writeSockaddr(n,l.family,DNS.lookup_name(i.addr),i.port,o);return HEAPU8.set(i.buffer,t),i.buffer.byteLength}catch(e){if(void 0===FS||"ErrnoError"!==e.name)throw e;return-e.errno}}function ___syscall_recvmsg(e,t,_){try{for(var r=getSocketFromFD(e),n=HEAPU32[t+8>>2],o=HEAP32[t+12>>2],l=0,i=0;i>2];var a=r.sock_ops.recvmsg(r,l);if(!a)return 0;var u=HEAPU32[t>>2];if(u)writeSockaddr(u,r.family,DNS.lookup_name(a.addr),a.port);var s=0,c=a.buffer.byteLength;for(i=0;c>0&&i>2],p=HEAP32[n+(8*i+4)>>2];if(p){var y=Math.min(p,c),m=a.buffer.subarray(s,s+y);HEAPU8.set(m,d+s),s+=y,c-=y}}return s}catch(e){if(void 0===FS||"ErrnoError"!==e.name)throw e;return-e.errno}}function ___syscall_renameat(e,t,_,r){try{return t=SYSCALLS.getStr(t),r=SYSCALLS.getStr(r),t=SYSCALLS.calculateAt(e,t),r=SYSCALLS.calculateAt(_,r),FS.rename(t,r),0}catch(e){if(void 0===FS||"ErrnoError"!==e.name)throw e;return-e.errno}}function ___syscall_rmdir(e){try{return e=SYSCALLS.getStr(e),FS.rmdir(e),0}catch(e){if(void 0===FS||"ErrnoError"!==e.name)throw e;return-e.errno}}function ___syscall_sendmsg(e,t,_){try{var r,n,o=getSocketFromFD(e),l=HEAPU32[t+8>>2],i=HEAP32[t+12>>2],a=HEAPU32[t>>2],u=HEAP32[t+4>>2];if(a){var s=readSockaddr(a,u);if(s.errno)return-s.errno;n=s.port,r=DNS.lookup_addr(s.addr)||s.addr}for(var c=0,d=0;d>2];var p=new Uint8Array(c),y=0;for(d=0;d>2],f=HEAP32[l+(8*d+4)>>2],M=0;M>2]+4294967296*HEAP32[e+4>>2]}function ___syscall_utimensat(e,t,_,r){try{if(t=SYSCALLS.getStr(t),t=SYSCALLS.calculateAt(e,t,!0),_){var n=readI53FromI64(_),o=HEAP32[_+8>>2];l=1e3*n+o/1e6,i=1e3*(n=readI53FromI64(_+=16))+(o=HEAP32[_+8>>2])/1e6}else var l=Date.now(),i=l;return FS.utime(t,l,i),0}catch(e){if(void 0===FS||"ErrnoError"!==e.name)throw e;return-e.errno}}Module.PIPEFS=PIPEFS,Module.___syscall_pipe=___syscall_pipe,___syscall_pipe.sig="ip",Module.___syscall_poll=___syscall_poll,___syscall_poll.sig="ipii",Module.___syscall_readlinkat=___syscall_readlinkat,___syscall_readlinkat.sig="vippp",Module.___syscall_recvfrom=___syscall_recvfrom,Module.___syscall_recvmsg=___syscall_recvmsg,Module.___syscall_renameat=___syscall_renameat,___syscall_renameat.sig="iipip",Module.___syscall_rmdir=___syscall_rmdir,___syscall_rmdir.sig="ip",Module.___syscall_sendmsg=___syscall_sendmsg,Module.___syscall_sendto=___syscall_sendto,___syscall_sendto.sig="iipiipi",Module.___syscall_socket=___syscall_socket,Module.___syscall_stat64=___syscall_stat64,___syscall_stat64.sig="ipp",Module.___syscall_symlink=___syscall_symlink,___syscall_symlink.sig="ipp",Module.___syscall_symlinkat=___syscall_symlinkat,Module.___syscall_truncate64=___syscall_truncate64,___syscall_truncate64.sig="ipj",Module.___syscall_unlinkat=___syscall_unlinkat,___syscall_unlinkat.sig="iipi",Module.readI53FromI64=readI53FromI64,Module.___syscall_utimensat=___syscall_utimensat,___syscall_utimensat.sig="iippi";var ___table_base=new WebAssembly.Global({value:"i32",mutable:!1},1);Module.___table_base=___table_base;var ENV={};function allocateUTF8OnStack(e){var t=lengthBytesUTF8(e)+1,_=stackAlloc(t);return stringToUTF8Array(e,HEAP8,_,t),_}function dlSetError(e){withStackSave((function(){var t=allocateUTF8OnStack(e);___dl_seterr(t,0)}))}function dlopenInternal(e,t){var _=UTF8ToString(e+28),r=HEAP32[e+4>>2],n=[],o=e=>{var t=FS.findObject(e);return t&&!t.isFolder&&!t.isDevice};if(!o(_=PATH.normalize(_)))for(var l in ENV.LD_LIBRARY_PATH&&(n=ENV.LD_LIBRARY_PATH.split(":")),n){var i=PATH.join2(n[l],_);if(o(i)){_=i;break}}var a={global:Boolean(256&r),nodelete:Boolean(4096&r),loadAsync:t.loadAsync,fs:t.fs};if(t.loadAsync)return loadDynamicLibrary(_,a,e);try{return loadDynamicLibrary(_,a,e)}catch(e){return dlSetError("Could not load dynamic lib: "+_+"\n"+e),0}}function __dlopen_js(e){return dlopenInternal(e,{loadAsync:!1,fs:FS})}function __dlsym_js(e,t,_){var r,n;t=UTF8ToString(t);var o=LDSO.loadedLibsByHandle[e];if(!o.module.hasOwnProperty(t))return dlSetError('Tried to lookup unknown symbol "'+t+'" in dynamic lib: '+o.name),0;if(n=Object.keys(o.module).indexOf(t),"function"==typeof(r=o.module[t])){var l=getFunctionAddress(r);l?r=l:(r=addFunction(r,r.sig),HEAPU32[_>>2]=n)}return r}function handleException(e){if(e instanceof ExitStatus||"unwind"==e)return EXITSTATUS;quit_(1,e)}function callUserCallback(e){if(!ABORT)try{e()}catch(e){handleException(e)}}function __emscripten_dlopen_js(e,t,_,r){function n(t){dlSetError("Could not load dynamic lib: "+UTF8ToString(HEAPU32[e+28>>2])+"\n"+t),callUserCallback((function(){getWasmTableEntry(_)(e,r)}))}var o=dlopenInternal(e,{loadAsync:!0});o?o.then((function(){callUserCallback((function(){getWasmTableEntry(t)(e,r)}))}),n):n()}function __emscripten_err(e){err(UTF8ToString(e))}Module.ENV=ENV,Module.allocateUTF8OnStack=allocateUTF8OnStack,Module.dlSetError=dlSetError,Module.dlopenInternal=dlopenInternal,Module.__dlopen_js=__dlopen_js,__dlopen_js.sig="pp",Module.__dlsym_js=__dlsym_js,__dlsym_js.sig="pppp",Module.handleException=handleException,Module.callUserCallback=callUserCallback,Module.__emscripten_dlopen_js=__emscripten_dlopen_js,__emscripten_dlopen_js.sig="vppp",Module.__emscripten_err=__emscripten_err,__emscripten_err.sig="vp";var nowIsMonotonic=!0;function __emscripten_get_now_is_monotonic(){return nowIsMonotonic}function __emscripten_get_progname(e,t){stringToUTF8(thisProgram,e,t)}function __emscripten_out(e){out(UTF8ToString(e))}function __emscripten_throw_longjmp(){throw 1/0}function __gmtime_js(e,t){var _=new Date(1e3*readI53FromI64(e));HEAP32[t>>2]=_.getUTCSeconds(),HEAP32[t+4>>2]=_.getUTCMinutes(),HEAP32[t+8>>2]=_.getUTCHours(),HEAP32[t+12>>2]=_.getUTCDate(),HEAP32[t+16>>2]=_.getUTCMonth(),HEAP32[t+20>>2]=_.getUTCFullYear()-1900,HEAP32[t+24>>2]=_.getUTCDay();var r=Date.UTC(_.getUTCFullYear(),0,1,0,0,0,0),n=(_.getTime()-r)/864e5|0;HEAP32[t+28>>2]=n}function __isLeapYear(e){return e%4==0&&(e%100!=0||e%400==0)}Module.nowIsMonotonic=nowIsMonotonic,Module.__emscripten_get_now_is_monotonic=__emscripten_get_now_is_monotonic,__emscripten_get_now_is_monotonic.sig="i",Module.__emscripten_get_progname=__emscripten_get_progname,__emscripten_get_progname.sig="vpp",Module.__emscripten_out=__emscripten_out,__emscripten_out.sig="vp",Module.__emscripten_throw_longjmp=__emscripten_throw_longjmp,__emscripten_throw_longjmp.sig="v",Module.__gmtime_js=__gmtime_js,__gmtime_js.sig="ipp",Module.__isLeapYear=__isLeapYear;var __MONTH_DAYS_LEAP_CUMULATIVE=[0,31,60,91,121,152,182,213,244,274,305,335];Module.__MONTH_DAYS_LEAP_CUMULATIVE=__MONTH_DAYS_LEAP_CUMULATIVE;var __MONTH_DAYS_REGULAR_CUMULATIVE=[0,31,59,90,120,151,181,212,243,273,304,334];function __yday_from_date(e){return(__isLeapYear(e.getFullYear())?__MONTH_DAYS_LEAP_CUMULATIVE:__MONTH_DAYS_REGULAR_CUMULATIVE)[e.getMonth()]+e.getDate()-1}function __localtime_js(e,t){var _=new Date(1e3*readI53FromI64(e));HEAP32[t>>2]=_.getSeconds(),HEAP32[t+4>>2]=_.getMinutes(),HEAP32[t+8>>2]=_.getHours(),HEAP32[t+12>>2]=_.getDate(),HEAP32[t+16>>2]=_.getMonth(),HEAP32[t+20>>2]=_.getFullYear()-1900,HEAP32[t+24>>2]=_.getDay();var r=0|__yday_from_date(_);HEAP32[t+28>>2]=r,HEAP32[t+36>>2]=-60*_.getTimezoneOffset();var n=new Date(_.getFullYear(),0,1),o=new Date(_.getFullYear(),6,1).getTimezoneOffset(),l=n.getTimezoneOffset(),i=0|(o!=l&&_.getTimezoneOffset()==Math.min(l,o));HEAP32[t+32>>2]=i}function __mktime_js(e){var t=new Date(HEAP32[e+20>>2]+1900,HEAP32[e+16>>2],HEAP32[e+12>>2],HEAP32[e+8>>2],HEAP32[e+4>>2],HEAP32[e>>2],0),_=HEAP32[e+32>>2],r=t.getTimezoneOffset(),n=new Date(t.getFullYear(),0,1),o=new Date(t.getFullYear(),6,1).getTimezoneOffset(),l=n.getTimezoneOffset(),i=Math.min(l,o);if(_<0)HEAP32[e+32>>2]=Number(o!=l&&i==r);else if(_>0!=(i==r)){var a=Math.max(l,o),u=_>0?i:a;t.setTime(t.getTime()+6e4*(u-r))}HEAP32[e+24>>2]=t.getDay();var s=0|__yday_from_date(t);return HEAP32[e+28>>2]=s,HEAP32[e>>2]=t.getSeconds(),HEAP32[e+4>>2]=t.getMinutes(),HEAP32[e+8>>2]=t.getHours(),HEAP32[e+12>>2]=t.getDate(),HEAP32[e+16>>2]=t.getMonth(),HEAP32[e+20>>2]=t.getYear(),t.getTime()/1e3|0}function __mmap_js(e,t,_,r,n,o,l){try{var i=SYSCALLS.getStreamFromFD(r),a=FS.mmap(i,e,n,t,_),u=a.ptr;return HEAP32[o>>2]=a.allocated,HEAPU32[l>>2]=u,0}catch(e){if(void 0===FS||"ErrnoError"!==e.name)throw e;return-e.errno}}function __msync_js(e,t,_,r,n,o){try{return SYSCALLS.doMsync(e,SYSCALLS.getStreamFromFD(n),t,r,0),0}catch(e){if(void 0===FS||"ErrnoError"!==e.name)throw e;return-e.errno}}function __munmap_js(e,t,_,r,n,o){try{var l=SYSCALLS.getStreamFromFD(n);2&_&&SYSCALLS.doMsync(e,l,t,r,o),FS.munmap(l)}catch(e){if(void 0===FS||"ErrnoError"!==e.name)throw e;return-e.errno}}Module.__MONTH_DAYS_REGULAR_CUMULATIVE=__MONTH_DAYS_REGULAR_CUMULATIVE,Module.__yday_from_date=__yday_from_date,Module.__localtime_js=__localtime_js,__localtime_js.sig="ipp",Module.__mktime_js=__mktime_js,__mktime_js.sig="ip",Module.__mmap_js=__mmap_js,__mmap_js.sig="ipiiippp",Module.__msync_js=__msync_js,__msync_js.sig="ippiiip",Module.__munmap_js=__munmap_js,__munmap_js.sig="ippiiip";var timers={},_emscripten_get_now;function __setitimer_js(e,t){if(timers[e]&&(clearTimeout(timers[e].id),delete timers[e]),!t)return 0;var _=setTimeout((()=>{delete timers[e],callUserCallback((()=>__emscripten_timeout(e,_emscripten_get_now())))}),t);return timers[e]={id:_,timeout_ms:t},0}function __timegm_js(e){var t=Date.UTC(HEAP32[e+20>>2]+1900,HEAP32[e+16>>2],HEAP32[e+12>>2],HEAP32[e+8>>2],HEAP32[e+4>>2],HEAP32[e>>2],0),_=new Date(t);HEAP32[e+24>>2]=_.getUTCDay();var r=Date.UTC(_.getUTCFullYear(),0,1,0,0,0,0),n=(_.getTime()-r)/864e5|0;return HEAP32[e+28>>2]=n,_.getTime()/1e3|0}function allocateUTF8(e){var t=lengthBytesUTF8(e)+1,_=_malloc(t);return _&&stringToUTF8Array(e,HEAP8,_,t),_}function __tzset_js(e,t,_){var r=(new Date).getFullYear(),n=new Date(r,0,1),o=new Date(r,6,1),l=n.getTimezoneOffset(),i=o.getTimezoneOffset(),a=Math.max(l,i);function u(e){var t=e.toTimeString().match(/\(([A-Za-z ]+)\)$/);return t?t[1]:"GMT"}HEAPU32[e>>2]=60*a,HEAP32[t>>2]=Number(l!=i);var s=u(n),c=u(o),d=allocateUTF8(s),p=allocateUTF8(c);i>2]=d,HEAPU32[_+4>>2]=p):(HEAPU32[_>>2]=p,HEAPU32[_+4>>2]=d)}function _abort(){abort("")}Module.timers=timers,_emscripten_get_now=ENVIRONMENT_IS_NODE?()=>{var e=process.hrtime();return 1e3*e[0]+e[1]/1e6}:()=>performance.now(),Module._emscripten_get_now=_emscripten_get_now,_emscripten_get_now.sig="d",Module.__setitimer_js=__setitimer_js,__setitimer_js.sig="iid",Module.__timegm_js=__timegm_js,__timegm_js.sig="ip",Module.allocateUTF8=allocateUTF8,Module.__tzset_js=__tzset_js,__tzset_js.sig="vppp",Module._abort=_abort,_abort.sig="v";var readEmAsmArgsArray=[];function readEmAsmArgs(e,t){var _;for(readEmAsmArgsArray.length=0,t>>=2;_=HEAPU8[e++];)t+=105!=_&t,readEmAsmArgsArray.push(105==_?HEAP32[t]:(106==_?HEAP64:HEAPF64)[t++>>1]),++t;return readEmAsmArgsArray}function runEmAsmFunction(e,t,_){var r=readEmAsmArgs(t,_);return ASM_CONSTS[e].apply(null,r)}function _emscripten_asm_const_int(e,t,_){return runEmAsmFunction(e,t,_)}function _emscripten_console_error(e){console.error(UTF8ToString(e))}function _emscripten_console_log(e){console.log(UTF8ToString(e))}function _emscripten_console_warn(e){console.warn(UTF8ToString(e))}function _emscripten_date_now(){return Date.now()}function _emscripten_exit_with_live_runtime(){throw"unwind"}function getHeapMax(){return 2147483648}function _emscripten_get_heap_max(){return getHeapMax()}function _emscripten_get_now_res(){return ENVIRONMENT_IS_NODE?1:1e3}function __webgl_enable_ANGLE_instanced_arrays(e){var t=e.getExtension("ANGLE_instanced_arrays");if(t)return e.vertexAttribDivisor=function(e,_){t.vertexAttribDivisorANGLE(e,_)},e.drawArraysInstanced=function(e,_,r,n){t.drawArraysInstancedANGLE(e,_,r,n)},e.drawElementsInstanced=function(e,_,r,n,o){t.drawElementsInstancedANGLE(e,_,r,n,o)},1}function __webgl_enable_OES_vertex_array_object(e){var t=e.getExtension("OES_vertex_array_object");if(t)return e.createVertexArray=function(){return t.createVertexArrayOES()},e.deleteVertexArray=function(e){t.deleteVertexArrayOES(e)},e.bindVertexArray=function(e){t.bindVertexArrayOES(e)},e.isVertexArray=function(e){return t.isVertexArrayOES(e)},1}function __webgl_enable_WEBGL_draw_buffers(e){var t=e.getExtension("WEBGL_draw_buffers");if(t)return e.drawBuffers=function(e,_){t.drawBuffersWEBGL(e,_)},1}function __webgl_enable_WEBGL_multi_draw(e){return!!(e.multiDrawWebgl=e.getExtension("WEBGL_multi_draw"))}Module.readEmAsmArgsArray=readEmAsmArgsArray,Module.readEmAsmArgs=readEmAsmArgs,Module.runEmAsmFunction=runEmAsmFunction,runEmAsmFunction.sig="ippp",Module._emscripten_asm_const_int=_emscripten_asm_const_int,_emscripten_asm_const_int.sig="ippp",Module._emscripten_console_error=_emscripten_console_error,_emscripten_console_error.sig="vp",Module._emscripten_console_log=_emscripten_console_log,_emscripten_console_log.sig="vp",Module._emscripten_console_warn=_emscripten_console_warn,_emscripten_console_warn.sig="vp",Module._emscripten_date_now=_emscripten_date_now,_emscripten_date_now.sig="d",Module._emscripten_exit_with_live_runtime=_emscripten_exit_with_live_runtime,_emscripten_exit_with_live_runtime.sig="v",Module.getHeapMax=getHeapMax,Module._emscripten_get_heap_max=_emscripten_get_heap_max,_emscripten_get_heap_max.sig="p",Module._emscripten_get_now_res=_emscripten_get_now_res,Module.__webgl_enable_ANGLE_instanced_arrays=__webgl_enable_ANGLE_instanced_arrays,Module.__webgl_enable_OES_vertex_array_object=__webgl_enable_OES_vertex_array_object,Module.__webgl_enable_WEBGL_draw_buffers=__webgl_enable_WEBGL_draw_buffers,Module.__webgl_enable_WEBGL_multi_draw=__webgl_enable_WEBGL_multi_draw;var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function(e){GL.lastError||(GL.lastError=e)},getNewId:function(e){for(var t=GL.counter++,_=e.length;_>2]:-1;n+=UTF8ToString(HEAP32[_+4*o>>2],l<0?void 0:l)}return n},createContext:function(e,t){var _=e.getContext("webgl",t);return _?GL.registerContext(_,t):0},registerContext:function(e,t){var _=GL.getNewId(GL.contexts),r={handle:_,attributes:t,version:t.majorVersion,GLctx:e};return e.canvas&&(e.canvas.GLctxObject=r),GL.contexts[_]=r,(void 0===t.enableExtensionsByDefault||t.enableExtensionsByDefault)&&GL.initExtensions(r),_},makeContextCurrent:function(e){return GL.currentContext=GL.contexts[e],Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx,!(e&&!GLctx)},getContext:function(e){return GL.contexts[e]},deleteContext:function(e){GL.currentContext===GL.contexts[e]&&(GL.currentContext=null),"object"==typeof JSEvents&&JSEvents.removeAllHandlersOnTarget(GL.contexts[e].GLctx.canvas),GL.contexts[e]&&GL.contexts[e].GLctx.canvas&&(GL.contexts[e].GLctx.canvas.GLctxObject=void 0),GL.contexts[e]=null},initExtensions:function(e){if(e||(e=GL.currentContext),!e.initExtensionsDone){e.initExtensionsDone=!0;var t=e.GLctx;__webgl_enable_ANGLE_instanced_arrays(t),__webgl_enable_OES_vertex_array_object(t),__webgl_enable_WEBGL_draw_buffers(t),t.disjointTimerQueryExt=t.getExtension("EXT_disjoint_timer_query"),__webgl_enable_WEBGL_multi_draw(t),(t.getSupportedExtensions()||[]).forEach((function(e){e.includes("lose_context")||e.includes("debug")||t.getExtension(e)}))}}};function _emscripten_glActiveTexture(e){GLctx.activeTexture(e)}function _emscripten_glAttachShader(e,t){GLctx.attachShader(GL.programs[e],GL.shaders[t])}function _emscripten_glBeginQueryEXT(e,t){GLctx.disjointTimerQueryExt.beginQueryEXT(e,GL.queries[t])}function _emscripten_glBindAttribLocation(e,t,_){GLctx.bindAttribLocation(GL.programs[e],t,UTF8ToString(_))}function _emscripten_glBindBuffer(e,t){GLctx.bindBuffer(e,GL.buffers[t])}function _emscripten_glBindFramebuffer(e,t){GLctx.bindFramebuffer(e,GL.framebuffers[t])}function _emscripten_glBindRenderbuffer(e,t){GLctx.bindRenderbuffer(e,GL.renderbuffers[t])}function _emscripten_glBindTexture(e,t){GLctx.bindTexture(e,GL.textures[t])}function _emscripten_glBindVertexArrayOES(e){GLctx.bindVertexArray(GL.vaos[e])}function _emscripten_glBlendColor(e,t,_,r){GLctx.blendColor(e,t,_,r)}function _emscripten_glBlendEquation(e){GLctx.blendEquation(e)}function _emscripten_glBlendEquationSeparate(e,t){GLctx.blendEquationSeparate(e,t)}function _emscripten_glBlendFunc(e,t){GLctx.blendFunc(e,t)}function _emscripten_glBlendFuncSeparate(e,t,_,r){GLctx.blendFuncSeparate(e,t,_,r)}function _emscripten_glBufferData(e,t,_,r){GLctx.bufferData(e,_?HEAPU8.subarray(_,_+t):t,r)}function _emscripten_glBufferSubData(e,t,_,r){GLctx.bufferSubData(e,t,HEAPU8.subarray(r,r+_))}function _emscripten_glCheckFramebufferStatus(e){return GLctx.checkFramebufferStatus(e)}function _emscripten_glClear(e){GLctx.clear(e)}function _emscripten_glClearColor(e,t,_,r){GLctx.clearColor(e,t,_,r)}function _emscripten_glClearDepthf(e){GLctx.clearDepth(e)}function _emscripten_glClearStencil(e){GLctx.clearStencil(e)}function _emscripten_glColorMask(e,t,_,r){GLctx.colorMask(!!e,!!t,!!_,!!r)}function _emscripten_glCompileShader(e){GLctx.compileShader(GL.shaders[e])}function _emscripten_glCompressedTexImage2D(e,t,_,r,n,o,l,i){GLctx.compressedTexImage2D(e,t,_,r,n,o,i?HEAPU8.subarray(i,i+l):null)}function _emscripten_glCompressedTexSubImage2D(e,t,_,r,n,o,l,i,a){GLctx.compressedTexSubImage2D(e,t,_,r,n,o,l,a?HEAPU8.subarray(a,a+i):null)}function _emscripten_glCopyTexImage2D(e,t,_,r,n,o,l,i){GLctx.copyTexImage2D(e,t,_,r,n,o,l,i)}function _emscripten_glCopyTexSubImage2D(e,t,_,r,n,o,l,i){GLctx.copyTexSubImage2D(e,t,_,r,n,o,l,i)}function _emscripten_glCreateProgram(){var e=GL.getNewId(GL.programs),t=GLctx.createProgram();return t.name=e,t.maxUniformLength=t.maxAttributeLength=t.maxUniformBlockNameLength=0,t.uniformIdCounter=1,GL.programs[e]=t,e}function _emscripten_glCreateShader(e){var t=GL.getNewId(GL.shaders);return GL.shaders[t]=GLctx.createShader(e),t}function _emscripten_glCullFace(e){GLctx.cullFace(e)}function _emscripten_glDeleteBuffers(e,t){for(var _=0;_>2],n=GL.buffers[r];n&&(GLctx.deleteBuffer(n),n.name=0,GL.buffers[r]=null)}}function _emscripten_glDeleteFramebuffers(e,t){for(var _=0;_>2],n=GL.framebuffers[r];n&&(GLctx.deleteFramebuffer(n),n.name=0,GL.framebuffers[r]=null)}}function _emscripten_glDeleteProgram(e){if(e){var t=GL.programs[e];t?(GLctx.deleteProgram(t),t.name=0,GL.programs[e]=null):GL.recordError(1281)}}function _emscripten_glDeleteQueriesEXT(e,t){for(var _=0;_>2],n=GL.queries[r];n&&(GLctx.disjointTimerQueryExt.deleteQueryEXT(n),GL.queries[r]=null)}}function _emscripten_glDeleteRenderbuffers(e,t){for(var _=0;_>2],n=GL.renderbuffers[r];n&&(GLctx.deleteRenderbuffer(n),n.name=0,GL.renderbuffers[r]=null)}}function _emscripten_glDeleteShader(e){if(e){var t=GL.shaders[e];t?(GLctx.deleteShader(t),GL.shaders[e]=null):GL.recordError(1281)}}function _emscripten_glDeleteTextures(e,t){for(var _=0;_>2],n=GL.textures[r];n&&(GLctx.deleteTexture(n),n.name=0,GL.textures[r]=null)}}function _emscripten_glDeleteVertexArraysOES(e,t){for(var _=0;_>2];GLctx.deleteVertexArray(GL.vaos[r]),GL.vaos[r]=null}}function _emscripten_glDepthFunc(e){GLctx.depthFunc(e)}function _emscripten_glDepthMask(e){GLctx.depthMask(!!e)}function _emscripten_glDepthRangef(e,t){GLctx.depthRange(e,t)}function _emscripten_glDetachShader(e,t){GLctx.detachShader(GL.programs[e],GL.shaders[t])}function _emscripten_glDisable(e){GLctx.disable(e)}function _emscripten_glDisableVertexAttribArray(e){GLctx.disableVertexAttribArray(e)}function _emscripten_glDrawArrays(e,t,_){GLctx.drawArrays(e,t,_)}function _emscripten_glDrawArraysInstancedANGLE(e,t,_,r){GLctx.drawArraysInstanced(e,t,_,r)}Module.GL=GL,Module._emscripten_glActiveTexture=_emscripten_glActiveTexture,_emscripten_glActiveTexture.sig="vi",Module._emscripten_glAttachShader=_emscripten_glAttachShader,_emscripten_glAttachShader.sig="vii",Module._emscripten_glBeginQueryEXT=_emscripten_glBeginQueryEXT,_emscripten_glBeginQueryEXT.sig="vii",Module._emscripten_glBindAttribLocation=_emscripten_glBindAttribLocation,_emscripten_glBindAttribLocation.sig="viii",Module._emscripten_glBindBuffer=_emscripten_glBindBuffer,_emscripten_glBindBuffer.sig="vii",Module._emscripten_glBindFramebuffer=_emscripten_glBindFramebuffer,_emscripten_glBindFramebuffer.sig="vii",Module._emscripten_glBindRenderbuffer=_emscripten_glBindRenderbuffer,_emscripten_glBindRenderbuffer.sig="vii",Module._emscripten_glBindTexture=_emscripten_glBindTexture,_emscripten_glBindTexture.sig="vii",Module._emscripten_glBindVertexArrayOES=_emscripten_glBindVertexArrayOES,_emscripten_glBindVertexArrayOES.sig="vi",Module._emscripten_glBlendColor=_emscripten_glBlendColor,_emscripten_glBlendColor.sig="vffff",Module._emscripten_glBlendEquation=_emscripten_glBlendEquation,_emscripten_glBlendEquation.sig="vi",Module._emscripten_glBlendEquationSeparate=_emscripten_glBlendEquationSeparate,_emscripten_glBlendEquationSeparate.sig="vii",Module._emscripten_glBlendFunc=_emscripten_glBlendFunc,_emscripten_glBlendFunc.sig="vii",Module._emscripten_glBlendFuncSeparate=_emscripten_glBlendFuncSeparate,_emscripten_glBlendFuncSeparate.sig="viiii",Module._emscripten_glBufferData=_emscripten_glBufferData,_emscripten_glBufferData.sig="viiii",Module._emscripten_glBufferSubData=_emscripten_glBufferSubData,_emscripten_glBufferSubData.sig="viiii",Module._emscripten_glCheckFramebufferStatus=_emscripten_glCheckFramebufferStatus,_emscripten_glCheckFramebufferStatus.sig="ii",Module._emscripten_glClear=_emscripten_glClear,_emscripten_glClear.sig="vi",Module._emscripten_glClearColor=_emscripten_glClearColor,_emscripten_glClearColor.sig="vffff",Module._emscripten_glClearDepthf=_emscripten_glClearDepthf,_emscripten_glClearDepthf.sig="vf",Module._emscripten_glClearStencil=_emscripten_glClearStencil,_emscripten_glClearStencil.sig="vi",Module._emscripten_glColorMask=_emscripten_glColorMask,_emscripten_glColorMask.sig="viiii",Module._emscripten_glCompileShader=_emscripten_glCompileShader,_emscripten_glCompileShader.sig="vi",Module._emscripten_glCompressedTexImage2D=_emscripten_glCompressedTexImage2D,_emscripten_glCompressedTexImage2D.sig="viiiiiiii",Module._emscripten_glCompressedTexSubImage2D=_emscripten_glCompressedTexSubImage2D,_emscripten_glCompressedTexSubImage2D.sig="viiiiiiiii",Module._emscripten_glCopyTexImage2D=_emscripten_glCopyTexImage2D,_emscripten_glCopyTexImage2D.sig="viiiiiiii",Module._emscripten_glCopyTexSubImage2D=_emscripten_glCopyTexSubImage2D,_emscripten_glCopyTexSubImage2D.sig="viiiiiiii",Module._emscripten_glCreateProgram=_emscripten_glCreateProgram,_emscripten_glCreateProgram.sig="i",Module._emscripten_glCreateShader=_emscripten_glCreateShader,_emscripten_glCreateShader.sig="ii",Module._emscripten_glCullFace=_emscripten_glCullFace,_emscripten_glCullFace.sig="vi",Module._emscripten_glDeleteBuffers=_emscripten_glDeleteBuffers,_emscripten_glDeleteBuffers.sig="vii",Module._emscripten_glDeleteFramebuffers=_emscripten_glDeleteFramebuffers,_emscripten_glDeleteFramebuffers.sig="vii",Module._emscripten_glDeleteProgram=_emscripten_glDeleteProgram,_emscripten_glDeleteProgram.sig="vi",Module._emscripten_glDeleteQueriesEXT=_emscripten_glDeleteQueriesEXT,_emscripten_glDeleteQueriesEXT.sig="vii",Module._emscripten_glDeleteRenderbuffers=_emscripten_glDeleteRenderbuffers,_emscripten_glDeleteRenderbuffers.sig="vii",Module._emscripten_glDeleteShader=_emscripten_glDeleteShader,_emscripten_glDeleteShader.sig="vi",Module._emscripten_glDeleteTextures=_emscripten_glDeleteTextures,_emscripten_glDeleteTextures.sig="vii",Module._emscripten_glDeleteVertexArraysOES=_emscripten_glDeleteVertexArraysOES,_emscripten_glDeleteVertexArraysOES.sig="vii",Module._emscripten_glDepthFunc=_emscripten_glDepthFunc,_emscripten_glDepthFunc.sig="vi",Module._emscripten_glDepthMask=_emscripten_glDepthMask,_emscripten_glDepthMask.sig="vi",Module._emscripten_glDepthRangef=_emscripten_glDepthRangef,_emscripten_glDepthRangef.sig="vii",Module._emscripten_glDetachShader=_emscripten_glDetachShader,_emscripten_glDetachShader.sig="vii",Module._emscripten_glDisable=_emscripten_glDisable,_emscripten_glDisable.sig="vi",Module._emscripten_glDisableVertexAttribArray=_emscripten_glDisableVertexAttribArray,_emscripten_glDisableVertexAttribArray.sig="vi",Module._emscripten_glDrawArrays=_emscripten_glDrawArrays,_emscripten_glDrawArrays.sig="viii",Module._emscripten_glDrawArraysInstancedANGLE=_emscripten_glDrawArraysInstancedANGLE,_emscripten_glDrawArraysInstancedANGLE.sig="viiii";var tempFixedLengthArray=[];function _emscripten_glDrawBuffersWEBGL(e,t){for(var _=tempFixedLengthArray[e],r=0;r>2];GLctx.drawBuffers(_)}function _emscripten_glDrawElements(e,t,_,r){GLctx.drawElements(e,t,_,r)}function _emscripten_glDrawElementsInstancedANGLE(e,t,_,r,n){GLctx.drawElementsInstanced(e,t,_,r,n)}function _emscripten_glEnable(e){GLctx.enable(e)}function _emscripten_glEnableVertexAttribArray(e){GLctx.enableVertexAttribArray(e)}function _emscripten_glEndQueryEXT(e){GLctx.disjointTimerQueryExt.endQueryEXT(e)}function _emscripten_glFinish(){GLctx.finish()}function _emscripten_glFlush(){GLctx.flush()}function _emscripten_glFramebufferRenderbuffer(e,t,_,r){GLctx.framebufferRenderbuffer(e,t,_,GL.renderbuffers[r])}function _emscripten_glFramebufferTexture2D(e,t,_,r,n){GLctx.framebufferTexture2D(e,t,_,GL.textures[r],n)}function _emscripten_glFrontFace(e){GLctx.frontFace(e)}function __glGenObject(e,t,_,r){for(var n=0;n>2]=l}}function _emscripten_glGenBuffers(e,t){__glGenObject(e,t,"createBuffer",GL.buffers)}function _emscripten_glGenFramebuffers(e,t){__glGenObject(e,t,"createFramebuffer",GL.framebuffers)}function _emscripten_glGenQueriesEXT(e,t){for(var _=0;_>2]=0;return}var n=GL.getNewId(GL.queries);r.name=n,GL.queries[n]=r,HEAP32[t+4*_>>2]=n}}function _emscripten_glGenRenderbuffers(e,t){__glGenObject(e,t,"createRenderbuffer",GL.renderbuffers)}function _emscripten_glGenTextures(e,t){__glGenObject(e,t,"createTexture",GL.textures)}function _emscripten_glGenVertexArraysOES(e,t){__glGenObject(e,t,"createVertexArray",GL.vaos)}function _emscripten_glGenerateMipmap(e){GLctx.generateMipmap(e)}function __glGetActiveAttribOrUniform(e,t,_,r,n,o,l,i){t=GL.programs[t];var a=GLctx[e](t,_);if(a){var u=i&&stringToUTF8(a.name,i,r);n&&(HEAP32[n>>2]=u),o&&(HEAP32[o>>2]=a.size),l&&(HEAP32[l>>2]=a.type)}}function _emscripten_glGetActiveAttrib(e,t,_,r,n,o,l){__glGetActiveAttribOrUniform("getActiveAttrib",e,t,_,r,n,o,l)}function _emscripten_glGetActiveUniform(e,t,_,r,n,o,l){__glGetActiveAttribOrUniform("getActiveUniform",e,t,_,r,n,o,l)}function _emscripten_glGetAttachedShaders(e,t,_,r){var n=GLctx.getAttachedShaders(GL.programs[e]),o=n.length;o>t&&(o=t),HEAP32[_>>2]=o;for(var l=0;l>2]=i}}function _emscripten_glGetAttribLocation(e,t){return GLctx.getAttribLocation(GL.programs[e],UTF8ToString(t))}function writeI53ToI64(e,t){HEAPU32[e>>2]=t,HEAPU32[e+4>>2]=(t-HEAPU32[e>>2])/4294967296}function emscriptenWebGLGet(e,t,_){if(t){var r=void 0;switch(e){case 36346:r=1;break;case 36344:return void(0!=_&&1!=_&&GL.recordError(1280));case 36345:r=0;break;case 34466:var n=GLctx.getParameter(34467);r=n?n.length:0}if(void 0===r){var o=GLctx.getParameter(e);switch(typeof o){case"number":r=o;break;case"boolean":r=o?1:0;break;case"string":return void GL.recordError(1280);case"object":if(null===o)switch(e){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 34068:r=0;break;default:return void GL.recordError(1280)}else{if(o instanceof Float32Array||o instanceof Uint32Array||o instanceof Int32Array||o instanceof Array){for(var l=0;l>2]=o[l];break;case 2:HEAPF32[t+4*l>>2]=o[l];break;case 4:HEAP8[t+l|0]=o[l]?1:0}return}try{r=0|o.name}catch(t){return GL.recordError(1280),void err("GL_INVALID_ENUM in glGet"+_+"v: Unknown object returned from WebGL getParameter("+e+")! (error: "+t+")")}}break;default:return GL.recordError(1280),void err("GL_INVALID_ENUM in glGet"+_+"v: Native code calling glGet"+_+"v("+e+") and it returns "+o+" of type "+typeof o+"!")}}switch(_){case 1:writeI53ToI64(t,r);break;case 0:HEAP32[t>>2]=r;break;case 2:HEAPF32[t>>2]=r;break;case 4:HEAP8[t|0]=r?1:0}}else GL.recordError(1281)}function _emscripten_glGetBooleanv(e,t){emscriptenWebGLGet(e,t,4)}function _emscripten_glGetBufferParameteriv(e,t,_){_?HEAP32[_>>2]=GLctx.getBufferParameter(e,t):GL.recordError(1281)}function _emscripten_glGetError(){var e=GLctx.getError()||GL.lastError;return GL.lastError=0,e}function _emscripten_glGetFloatv(e,t){emscriptenWebGLGet(e,t,2)}function _emscripten_glGetFramebufferAttachmentParameteriv(e,t,_,r){var n=GLctx.getFramebufferAttachmentParameter(e,t,_);(n instanceof WebGLRenderbuffer||n instanceof WebGLTexture)&&(n=0|n.name),HEAP32[r>>2]=n}function _emscripten_glGetIntegerv(e,t){emscriptenWebGLGet(e,t,0)}function _emscripten_glGetProgramInfoLog(e,t,_,r){var n=GLctx.getProgramInfoLog(GL.programs[e]);null===n&&(n="(unknown error)");var o=t>0&&r?stringToUTF8(n,r,t):0;_&&(HEAP32[_>>2]=o)}function _emscripten_glGetProgramiv(e,t,_){if(_)if(e>=GL.counter)GL.recordError(1281);else if(e=GL.programs[e],35716==t){var r=GLctx.getProgramInfoLog(e);null===r&&(r="(unknown error)"),HEAP32[_>>2]=r.length+1}else if(35719==t){if(!e.maxUniformLength)for(var n=0;n>2]=e.maxUniformLength}else if(35722==t){if(!e.maxAttributeLength)for(n=0;n>2]=e.maxAttributeLength}else if(35381==t){if(!e.maxUniformBlockNameLength)for(n=0;n>2]=e.maxUniformBlockNameLength}else HEAP32[_>>2]=GLctx.getProgramParameter(e,t);else GL.recordError(1281)}function _emscripten_glGetQueryObjecti64vEXT(e,t,_){if(_){var r,n=GL.queries[e];writeI53ToI64(_,"boolean"==typeof(r=GLctx.disjointTimerQueryExt.getQueryObjectEXT(n,t))?r?1:0:r)}else GL.recordError(1281)}function _emscripten_glGetQueryObjectivEXT(e,t,_){if(_){var r,n=GL.queries[e],o=GLctx.disjointTimerQueryExt.getQueryObjectEXT(n,t);r="boolean"==typeof o?o?1:0:o,HEAP32[_>>2]=r}else GL.recordError(1281)}function _emscripten_glGetQueryObjectui64vEXT(e,t,_){if(_){var r,n=GL.queries[e];writeI53ToI64(_,"boolean"==typeof(r=GLctx.disjointTimerQueryExt.getQueryObjectEXT(n,t))?r?1:0:r)}else GL.recordError(1281)}function _emscripten_glGetQueryObjectuivEXT(e,t,_){if(_){var r,n=GL.queries[e],o=GLctx.disjointTimerQueryExt.getQueryObjectEXT(n,t);r="boolean"==typeof o?o?1:0:o,HEAP32[_>>2]=r}else GL.recordError(1281)}function _emscripten_glGetQueryivEXT(e,t,_){_?HEAP32[_>>2]=GLctx.disjointTimerQueryExt.getQueryEXT(e,t):GL.recordError(1281)}function _emscripten_glGetRenderbufferParameteriv(e,t,_){_?HEAP32[_>>2]=GLctx.getRenderbufferParameter(e,t):GL.recordError(1281)}function _emscripten_glGetShaderInfoLog(e,t,_,r){var n=GLctx.getShaderInfoLog(GL.shaders[e]);null===n&&(n="(unknown error)");var o=t>0&&r?stringToUTF8(n,r,t):0;_&&(HEAP32[_>>2]=o)}function _emscripten_glGetShaderPrecisionFormat(e,t,_,r){var n=GLctx.getShaderPrecisionFormat(e,t);HEAP32[_>>2]=n.rangeMin,HEAP32[_+4>>2]=n.rangeMax,HEAP32[r>>2]=n.precision}function _emscripten_glGetShaderSource(e,t,_,r){var n=GLctx.getShaderSource(GL.shaders[e]);if(n){var o=t>0&&r?stringToUTF8(n,r,t):0;_&&(HEAP32[_>>2]=o)}}function _emscripten_glGetShaderiv(e,t,_){if(_)if(35716==t){var r=GLctx.getShaderInfoLog(GL.shaders[e]);null===r&&(r="(unknown error)");var n=r?r.length+1:0;HEAP32[_>>2]=n}else if(35720==t){var o=GLctx.getShaderSource(GL.shaders[e]),l=o?o.length+1:0;HEAP32[_>>2]=l}else HEAP32[_>>2]=GLctx.getShaderParameter(GL.shaders[e],t);else GL.recordError(1281)}function stringToNewUTF8(e){var t=lengthBytesUTF8(e)+1,_=_malloc(t);return stringToUTF8(e,_,t),_}function _emscripten_glGetString(e){var t=GL.stringCache[e];if(!t){switch(e){case 7939:var _=GLctx.getSupportedExtensions()||[];t=stringToNewUTF8((_=_.concat(_.map((function(e){return"GL_"+e})))).join(" "));break;case 7936:case 7937:case 37445:case 37446:var r=GLctx.getParameter(e);r||GL.recordError(1280),t=r&&stringToNewUTF8(r);break;case 7938:var n=GLctx.getParameter(7938);t=stringToNewUTF8(n="OpenGL ES 2.0 ("+n+")");break;case 35724:var o=GLctx.getParameter(35724),l=o.match(/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/);null!==l&&(3==l[1].length&&(l[1]=l[1]+"0"),o="OpenGL ES GLSL ES "+l[1]+" ("+o+")"),t=stringToNewUTF8(o);break;default:GL.recordError(1280)}GL.stringCache[e]=t}return t}function _emscripten_glGetTexParameterfv(e,t,_){_?HEAPF32[_>>2]=GLctx.getTexParameter(e,t):GL.recordError(1281)}function _emscripten_glGetTexParameteriv(e,t,_){_?HEAP32[_>>2]=GLctx.getTexParameter(e,t):GL.recordError(1281)}function webglGetLeftBracePos(e){return"]"==e.slice(-1)&&e.lastIndexOf("[")}function webglPrepareUniformLocationsBeforeFirstUse(e){var t,_,r=e.uniformLocsById,n=e.uniformSizeAndIdsByName;if(!r)for(e.uniformLocsById=r={},e.uniformArrayNamesById={},t=0;t0?l.slice(0,a):l,s=e.uniformIdCounter;for(e.uniformIdCounter+=i,n[u]=[i,s],_=0;_0&&(r=jstoi_q(t.slice(o+1))>>>0,n=t.slice(0,o));var l=e.uniformSizeAndIdsByName[n];if(l&&r0?"["+_+"]":""))),_}GL.recordError(1282)}function emscriptenWebGLGetUniform(e,t,_,r){if(_){webglPrepareUniformLocationsBeforeFirstUse(e=GL.programs[e]);var n=GLctx.getUniform(e,webglGetUniformLocation(t));if("number"==typeof n||"boolean"==typeof n)switch(r){case 0:HEAP32[_>>2]=n;break;case 2:HEAPF32[_>>2]=n}else for(var o=0;o>2]=n[o];break;case 2:HEAPF32[_+4*o>>2]=n[o]}}else GL.recordError(1281)}function _emscripten_glGetUniformfv(e,t,_){emscriptenWebGLGetUniform(e,t,_,2)}function _emscripten_glGetUniformiv(e,t,_){emscriptenWebGLGetUniform(e,t,_,0)}function _emscripten_glGetVertexAttribPointerv(e,t,_){_?HEAP32[_>>2]=GLctx.getVertexAttribOffset(e,t):GL.recordError(1281)}function emscriptenWebGLGetVertexAttrib(e,t,_,r){if(_){var n=GLctx.getVertexAttrib(e,t);if(34975==t)HEAP32[_>>2]=n&&n.name;else if("number"==typeof n||"boolean"==typeof n)switch(r){case 0:HEAP32[_>>2]=n;break;case 2:HEAPF32[_>>2]=n;break;case 5:HEAP32[_>>2]=Math.fround(n)}else for(var o=0;o>2]=n[o];break;case 2:HEAPF32[_+4*o>>2]=n[o];break;case 5:HEAP32[_+4*o>>2]=Math.fround(n[o])}}else GL.recordError(1281)}function _emscripten_glGetVertexAttribfv(e,t,_){emscriptenWebGLGetVertexAttrib(e,t,_,2)}function _emscripten_glGetVertexAttribiv(e,t,_){emscriptenWebGLGetVertexAttrib(e,t,_,5)}function _emscripten_glHint(e,t){GLctx.hint(e,t)}function _emscripten_glIsBuffer(e){var t=GL.buffers[e];return t?GLctx.isBuffer(t):0}function _emscripten_glIsEnabled(e){return GLctx.isEnabled(e)}function _emscripten_glIsFramebuffer(e){var t=GL.framebuffers[e];return t?GLctx.isFramebuffer(t):0}function _emscripten_glIsProgram(e){return(e=GL.programs[e])?GLctx.isProgram(e):0}function _emscripten_glIsQueryEXT(e){var t=GL.queries[e];return t?GLctx.disjointTimerQueryExt.isQueryEXT(t):0}function _emscripten_glIsRenderbuffer(e){var t=GL.renderbuffers[e];return t?GLctx.isRenderbuffer(t):0}function _emscripten_glIsShader(e){var t=GL.shaders[e];return t?GLctx.isShader(t):0}function _emscripten_glIsTexture(e){var t=GL.textures[e];return t?GLctx.isTexture(t):0}function _emscripten_glIsVertexArrayOES(e){var t=GL.vaos[e];return t?GLctx.isVertexArray(t):0}function _emscripten_glLineWidth(e){GLctx.lineWidth(e)}function _emscripten_glLinkProgram(e){e=GL.programs[e],GLctx.linkProgram(e),e.uniformLocsById=0,e.uniformSizeAndIdsByName={}}function _emscripten_glPixelStorei(e,t){3317==e&&(GL.unpackAlignment=t),GLctx.pixelStorei(e,t)}function _emscripten_glPolygonOffset(e,t){GLctx.polygonOffset(e,t)}function _emscripten_glQueryCounterEXT(e,t){GLctx.disjointTimerQueryExt.queryCounterEXT(GL.queries[e],t)}function computeUnpackAlignedImageSize(e,t,_,r){var n;return t*(e*_+(n=r)-1&-n)}function __colorChannelsInGlTextureFormat(e){return{5:3,6:4,8:2,29502:3,29504:4}[e-6402]||1}function heapObjectForWebGLType(e){return 1==(e-=5120)?HEAPU8:4==e?HEAP32:6==e?HEAPF32:5==e||28922==e?HEAPU32:HEAPU16}function heapAccessShiftForWebGLHeap(e){return 31-Math.clz32(e.BYTES_PER_ELEMENT)}function emscriptenWebGLGetTexPixelData(e,t,_,r,n,o){var l=heapObjectForWebGLType(e),i=heapAccessShiftForWebGLHeap(l),a=1<>i,n+u>>i)}function _emscripten_glReadPixels(e,t,_,r,n,o,l){var i=emscriptenWebGLGetTexPixelData(o,n,_,r,l,n);i?GLctx.readPixels(e,t,_,r,n,o,i):GL.recordError(1280)}function _emscripten_glReleaseShaderCompiler(){}function _emscripten_glRenderbufferStorage(e,t,_,r){GLctx.renderbufferStorage(e,t,_,r)}function _emscripten_glSampleCoverage(e,t){GLctx.sampleCoverage(e,!!t)}function _emscripten_glScissor(e,t,_,r){GLctx.scissor(e,t,_,r)}function _emscripten_glShaderBinary(){GL.recordError(1280)}function _emscripten_glShaderSource(e,t,_,r){var n=GL.getSource(e,t,_,r);GLctx.shaderSource(GL.shaders[e],n)}function _emscripten_glStencilFunc(e,t,_){GLctx.stencilFunc(e,t,_)}function _emscripten_glStencilFuncSeparate(e,t,_,r){GLctx.stencilFuncSeparate(e,t,_,r)}function _emscripten_glStencilMask(e){GLctx.stencilMask(e)}function _emscripten_glStencilMaskSeparate(e,t){GLctx.stencilMaskSeparate(e,t)}function _emscripten_glStencilOp(e,t,_){GLctx.stencilOp(e,t,_)}function _emscripten_glStencilOpSeparate(e,t,_,r){GLctx.stencilOpSeparate(e,t,_,r)}function _emscripten_glTexImage2D(e,t,_,r,n,o,l,i,a){GLctx.texImage2D(e,t,_,r,n,o,l,i,a?emscriptenWebGLGetTexPixelData(i,l,r,n,a,_):null)}function _emscripten_glTexParameterf(e,t,_){GLctx.texParameterf(e,t,_)}function _emscripten_glTexParameterfv(e,t,_){var r=HEAPF32[_>>2];GLctx.texParameterf(e,t,r)}function _emscripten_glTexParameteri(e,t,_){GLctx.texParameteri(e,t,_)}function _emscripten_glTexParameteriv(e,t,_){var r=HEAP32[_>>2];GLctx.texParameteri(e,t,r)}function _emscripten_glTexSubImage2D(e,t,_,r,n,o,l,i,a){var u=null;a&&(u=emscriptenWebGLGetTexPixelData(i,l,n,o,a,0)),GLctx.texSubImage2D(e,t,_,r,n,o,l,i,u)}function _emscripten_glUniform1f(e,t){GLctx.uniform1f(webglGetUniformLocation(e),t)}Module.tempFixedLengthArray=tempFixedLengthArray,Module._emscripten_glDrawBuffersWEBGL=_emscripten_glDrawBuffersWEBGL,_emscripten_glDrawBuffersWEBGL.sig="vii",Module._emscripten_glDrawElements=_emscripten_glDrawElements,_emscripten_glDrawElements.sig="viiii",Module._emscripten_glDrawElementsInstancedANGLE=_emscripten_glDrawElementsInstancedANGLE,_emscripten_glDrawElementsInstancedANGLE.sig="viiiii",Module._emscripten_glEnable=_emscripten_glEnable,_emscripten_glEnable.sig="vi",Module._emscripten_glEnableVertexAttribArray=_emscripten_glEnableVertexAttribArray,_emscripten_glEnableVertexAttribArray.sig="vi",Module._emscripten_glEndQueryEXT=_emscripten_glEndQueryEXT,_emscripten_glEndQueryEXT.sig="vi",Module._emscripten_glFinish=_emscripten_glFinish,_emscripten_glFinish.sig="v",Module._emscripten_glFlush=_emscripten_glFlush,_emscripten_glFlush.sig="v",Module._emscripten_glFramebufferRenderbuffer=_emscripten_glFramebufferRenderbuffer,_emscripten_glFramebufferRenderbuffer.sig="viiii",Module._emscripten_glFramebufferTexture2D=_emscripten_glFramebufferTexture2D,_emscripten_glFramebufferTexture2D.sig="viiiii",Module._emscripten_glFrontFace=_emscripten_glFrontFace,_emscripten_glFrontFace.sig="vi",Module.__glGenObject=__glGenObject,__glGenObject.sig="vii",Module._emscripten_glGenBuffers=_emscripten_glGenBuffers,_emscripten_glGenBuffers.sig="vii",Module._emscripten_glGenFramebuffers=_emscripten_glGenFramebuffers,_emscripten_glGenFramebuffers.sig="vii",Module._emscripten_glGenQueriesEXT=_emscripten_glGenQueriesEXT,_emscripten_glGenQueriesEXT.sig="vii",Module._emscripten_glGenRenderbuffers=_emscripten_glGenRenderbuffers,_emscripten_glGenRenderbuffers.sig="vii",Module._emscripten_glGenTextures=_emscripten_glGenTextures,_emscripten_glGenTextures.sig="vii",Module._emscripten_glGenVertexArraysOES=_emscripten_glGenVertexArraysOES,_emscripten_glGenVertexArraysOES.sig="vii",Module._emscripten_glGenerateMipmap=_emscripten_glGenerateMipmap,_emscripten_glGenerateMipmap.sig="vi",Module.__glGetActiveAttribOrUniform=__glGetActiveAttribOrUniform,Module._emscripten_glGetActiveAttrib=_emscripten_glGetActiveAttrib,_emscripten_glGetActiveAttrib.sig="viiiiiii",Module._emscripten_glGetActiveUniform=_emscripten_glGetActiveUniform,_emscripten_glGetActiveUniform.sig="viiiiiii",Module._emscripten_glGetAttachedShaders=_emscripten_glGetAttachedShaders,_emscripten_glGetAttachedShaders.sig="viiii",Module._emscripten_glGetAttribLocation=_emscripten_glGetAttribLocation,_emscripten_glGetAttribLocation.sig="iii",Module.writeI53ToI64=writeI53ToI64,Module.emscriptenWebGLGet=emscriptenWebGLGet,Module._emscripten_glGetBooleanv=_emscripten_glGetBooleanv,_emscripten_glGetBooleanv.sig="vii",Module._emscripten_glGetBufferParameteriv=_emscripten_glGetBufferParameteriv,_emscripten_glGetBufferParameteriv.sig="viii",Module._emscripten_glGetError=_emscripten_glGetError,_emscripten_glGetError.sig="i",Module._emscripten_glGetFloatv=_emscripten_glGetFloatv,_emscripten_glGetFloatv.sig="vii",Module._emscripten_glGetFramebufferAttachmentParameteriv=_emscripten_glGetFramebufferAttachmentParameteriv,_emscripten_glGetFramebufferAttachmentParameteriv.sig="viiii",Module._emscripten_glGetIntegerv=_emscripten_glGetIntegerv,_emscripten_glGetIntegerv.sig="vii",Module._emscripten_glGetProgramInfoLog=_emscripten_glGetProgramInfoLog,_emscripten_glGetProgramInfoLog.sig="viiii",Module._emscripten_glGetProgramiv=_emscripten_glGetProgramiv,_emscripten_glGetProgramiv.sig="viii",Module._emscripten_glGetQueryObjecti64vEXT=_emscripten_glGetQueryObjecti64vEXT,_emscripten_glGetQueryObjecti64vEXT.sig="viii",Module._emscripten_glGetQueryObjectivEXT=_emscripten_glGetQueryObjectivEXT,_emscripten_glGetQueryObjectivEXT.sig="viii",Module._emscripten_glGetQueryObjectui64vEXT=_emscripten_glGetQueryObjectui64vEXT,_emscripten_glGetQueryObjectui64vEXT.sig="viii",Module._emscripten_glGetQueryObjectuivEXT=_emscripten_glGetQueryObjectuivEXT,_emscripten_glGetQueryObjectuivEXT.sig="viii",Module._emscripten_glGetQueryivEXT=_emscripten_glGetQueryivEXT,_emscripten_glGetQueryivEXT.sig="viii",Module._emscripten_glGetRenderbufferParameteriv=_emscripten_glGetRenderbufferParameteriv,_emscripten_glGetRenderbufferParameteriv.sig="viii",Module._emscripten_glGetShaderInfoLog=_emscripten_glGetShaderInfoLog,_emscripten_glGetShaderInfoLog.sig="viiii",Module._emscripten_glGetShaderPrecisionFormat=_emscripten_glGetShaderPrecisionFormat,_emscripten_glGetShaderPrecisionFormat.sig="viiii",Module._emscripten_glGetShaderSource=_emscripten_glGetShaderSource,_emscripten_glGetShaderSource.sig="viiii",Module._emscripten_glGetShaderiv=_emscripten_glGetShaderiv,_emscripten_glGetShaderiv.sig="viii",Module.stringToNewUTF8=stringToNewUTF8,Module._emscripten_glGetString=_emscripten_glGetString,_emscripten_glGetString.sig="ii",Module._emscripten_glGetTexParameterfv=_emscripten_glGetTexParameterfv,_emscripten_glGetTexParameterfv.sig="viii",Module._emscripten_glGetTexParameteriv=_emscripten_glGetTexParameteriv,_emscripten_glGetTexParameteriv.sig="viii",Module.webglGetLeftBracePos=webglGetLeftBracePos,Module.webglPrepareUniformLocationsBeforeFirstUse=webglPrepareUniformLocationsBeforeFirstUse,Module._emscripten_glGetUniformLocation=_emscripten_glGetUniformLocation,_emscripten_glGetUniformLocation.sig="iii",Module.webglGetUniformLocation=webglGetUniformLocation,Module.emscriptenWebGLGetUniform=emscriptenWebGLGetUniform,Module._emscripten_glGetUniformfv=_emscripten_glGetUniformfv,_emscripten_glGetUniformfv.sig="viii",Module._emscripten_glGetUniformiv=_emscripten_glGetUniformiv,_emscripten_glGetUniformiv.sig="viii",Module._emscripten_glGetVertexAttribPointerv=_emscripten_glGetVertexAttribPointerv,_emscripten_glGetVertexAttribPointerv.sig="viii",Module.emscriptenWebGLGetVertexAttrib=emscriptenWebGLGetVertexAttrib,Module._emscripten_glGetVertexAttribfv=_emscripten_glGetVertexAttribfv,_emscripten_glGetVertexAttribfv.sig="viii",Module._emscripten_glGetVertexAttribiv=_emscripten_glGetVertexAttribiv,_emscripten_glGetVertexAttribiv.sig="viii",Module._emscripten_glHint=_emscripten_glHint,_emscripten_glHint.sig="vii",Module._emscripten_glIsBuffer=_emscripten_glIsBuffer,_emscripten_glIsBuffer.sig="ii",Module._emscripten_glIsEnabled=_emscripten_glIsEnabled,_emscripten_glIsEnabled.sig="ii",Module._emscripten_glIsFramebuffer=_emscripten_glIsFramebuffer,_emscripten_glIsFramebuffer.sig="ii",Module._emscripten_glIsProgram=_emscripten_glIsProgram,_emscripten_glIsProgram.sig="ii",Module._emscripten_glIsQueryEXT=_emscripten_glIsQueryEXT,_emscripten_glIsQueryEXT.sig="ii",Module._emscripten_glIsRenderbuffer=_emscripten_glIsRenderbuffer,_emscripten_glIsRenderbuffer.sig="ii",Module._emscripten_glIsShader=_emscripten_glIsShader,_emscripten_glIsShader.sig="ii",Module._emscripten_glIsTexture=_emscripten_glIsTexture,_emscripten_glIsTexture.sig="ii",Module._emscripten_glIsVertexArrayOES=_emscripten_glIsVertexArrayOES,_emscripten_glIsVertexArrayOES.sig="ii",Module._emscripten_glLineWidth=_emscripten_glLineWidth,_emscripten_glLineWidth.sig="vf",Module._emscripten_glLinkProgram=_emscripten_glLinkProgram,_emscripten_glLinkProgram.sig="vi",Module._emscripten_glPixelStorei=_emscripten_glPixelStorei,_emscripten_glPixelStorei.sig="vii",Module._emscripten_glPolygonOffset=_emscripten_glPolygonOffset,_emscripten_glPolygonOffset.sig="vff",Module._emscripten_glQueryCounterEXT=_emscripten_glQueryCounterEXT,_emscripten_glQueryCounterEXT.sig="vii",Module.computeUnpackAlignedImageSize=computeUnpackAlignedImageSize,Module.__colorChannelsInGlTextureFormat=__colorChannelsInGlTextureFormat,Module.heapObjectForWebGLType=heapObjectForWebGLType,Module.heapAccessShiftForWebGLHeap=heapAccessShiftForWebGLHeap,Module.emscriptenWebGLGetTexPixelData=emscriptenWebGLGetTexPixelData,Module._emscripten_glReadPixels=_emscripten_glReadPixels,_emscripten_glReadPixels.sig="viiiiiii",Module._emscripten_glReleaseShaderCompiler=_emscripten_glReleaseShaderCompiler,_emscripten_glReleaseShaderCompiler.sig="v",Module._emscripten_glRenderbufferStorage=_emscripten_glRenderbufferStorage,_emscripten_glRenderbufferStorage.sig="viiii",Module._emscripten_glSampleCoverage=_emscripten_glSampleCoverage,_emscripten_glSampleCoverage.sig="vii",Module._emscripten_glScissor=_emscripten_glScissor,_emscripten_glScissor.sig="viiii",Module._emscripten_glShaderBinary=_emscripten_glShaderBinary,_emscripten_glShaderBinary.sig="v",Module._emscripten_glShaderSource=_emscripten_glShaderSource,_emscripten_glShaderSource.sig="viiii",Module._emscripten_glStencilFunc=_emscripten_glStencilFunc,_emscripten_glStencilFunc.sig="viii",Module._emscripten_glStencilFuncSeparate=_emscripten_glStencilFuncSeparate,_emscripten_glStencilFuncSeparate.sig="viiii",Module._emscripten_glStencilMask=_emscripten_glStencilMask,_emscripten_glStencilMask.sig="vi",Module._emscripten_glStencilMaskSeparate=_emscripten_glStencilMaskSeparate,_emscripten_glStencilMaskSeparate.sig="vii",Module._emscripten_glStencilOp=_emscripten_glStencilOp,_emscripten_glStencilOp.sig="viii",Module._emscripten_glStencilOpSeparate=_emscripten_glStencilOpSeparate,_emscripten_glStencilOpSeparate.sig="viiii",Module._emscripten_glTexImage2D=_emscripten_glTexImage2D,_emscripten_glTexImage2D.sig="viiiiiiiii",Module._emscripten_glTexParameterf=_emscripten_glTexParameterf,_emscripten_glTexParameterf.sig="viii",Module._emscripten_glTexParameterfv=_emscripten_glTexParameterfv,_emscripten_glTexParameterfv.sig="viii",Module._emscripten_glTexParameteri=_emscripten_glTexParameteri,_emscripten_glTexParameteri.sig="viii",Module._emscripten_glTexParameteriv=_emscripten_glTexParameteriv,_emscripten_glTexParameteriv.sig="viii",Module._emscripten_glTexSubImage2D=_emscripten_glTexSubImage2D,_emscripten_glTexSubImage2D.sig="viiiiiiiii",Module._emscripten_glUniform1f=_emscripten_glUniform1f,_emscripten_glUniform1f.sig="vif";var miniTempWebGLFloatBuffers=[];function _emscripten_glUniform1fv(e,t,_){if(t<=288)for(var r=miniTempWebGLFloatBuffers[t-1],n=0;n>2];else r=HEAPF32.subarray(_>>2,_+4*t>>2);GLctx.uniform1fv(webglGetUniformLocation(e),r)}function _emscripten_glUniform1i(e,t){GLctx.uniform1i(webglGetUniformLocation(e),t)}Module.miniTempWebGLFloatBuffers=miniTempWebGLFloatBuffers,Module._emscripten_glUniform1fv=_emscripten_glUniform1fv,_emscripten_glUniform1fv.sig="viii",Module._emscripten_glUniform1i=_emscripten_glUniform1i,_emscripten_glUniform1i.sig="vii";var __miniTempWebGLIntBuffers=[];function _emscripten_glUniform1iv(e,t,_){if(t<=288)for(var r=__miniTempWebGLIntBuffers[t-1],n=0;n>2];else r=HEAP32.subarray(_>>2,_+4*t>>2);GLctx.uniform1iv(webglGetUniformLocation(e),r)}function _emscripten_glUniform2f(e,t,_){GLctx.uniform2f(webglGetUniformLocation(e),t,_)}function _emscripten_glUniform2fv(e,t,_){if(t<=144)for(var r=miniTempWebGLFloatBuffers[2*t-1],n=0;n<2*t;n+=2)r[n]=HEAPF32[_+4*n>>2],r[n+1]=HEAPF32[_+(4*n+4)>>2];else r=HEAPF32.subarray(_>>2,_+8*t>>2);GLctx.uniform2fv(webglGetUniformLocation(e),r)}function _emscripten_glUniform2i(e,t,_){GLctx.uniform2i(webglGetUniformLocation(e),t,_)}function _emscripten_glUniform2iv(e,t,_){if(t<=144)for(var r=__miniTempWebGLIntBuffers[2*t-1],n=0;n<2*t;n+=2)r[n]=HEAP32[_+4*n>>2],r[n+1]=HEAP32[_+(4*n+4)>>2];else r=HEAP32.subarray(_>>2,_+8*t>>2);GLctx.uniform2iv(webglGetUniformLocation(e),r)}function _emscripten_glUniform3f(e,t,_,r){GLctx.uniform3f(webglGetUniformLocation(e),t,_,r)}function _emscripten_glUniform3fv(e,t,_){if(t<=96)for(var r=miniTempWebGLFloatBuffers[3*t-1],n=0;n<3*t;n+=3)r[n]=HEAPF32[_+4*n>>2],r[n+1]=HEAPF32[_+(4*n+4)>>2],r[n+2]=HEAPF32[_+(4*n+8)>>2];else r=HEAPF32.subarray(_>>2,_+12*t>>2);GLctx.uniform3fv(webglGetUniformLocation(e),r)}function _emscripten_glUniform3i(e,t,_,r){GLctx.uniform3i(webglGetUniformLocation(e),t,_,r)}function _emscripten_glUniform3iv(e,t,_){if(t<=96)for(var r=__miniTempWebGLIntBuffers[3*t-1],n=0;n<3*t;n+=3)r[n]=HEAP32[_+4*n>>2],r[n+1]=HEAP32[_+(4*n+4)>>2],r[n+2]=HEAP32[_+(4*n+8)>>2];else r=HEAP32.subarray(_>>2,_+12*t>>2);GLctx.uniform3iv(webglGetUniformLocation(e),r)}function _emscripten_glUniform4f(e,t,_,r,n){GLctx.uniform4f(webglGetUniformLocation(e),t,_,r,n)}function _emscripten_glUniform4fv(e,t,_){if(t<=72){var r=miniTempWebGLFloatBuffers[4*t-1],n=HEAPF32;_>>=2;for(var o=0;o<4*t;o+=4){var l=_+o;r[o]=n[l],r[o+1]=n[l+1],r[o+2]=n[l+2],r[o+3]=n[l+3]}}else r=HEAPF32.subarray(_>>2,_+16*t>>2);GLctx.uniform4fv(webglGetUniformLocation(e),r)}function _emscripten_glUniform4i(e,t,_,r,n){GLctx.uniform4i(webglGetUniformLocation(e),t,_,r,n)}function _emscripten_glUniform4iv(e,t,_){if(t<=72)for(var r=__miniTempWebGLIntBuffers[4*t-1],n=0;n<4*t;n+=4)r[n]=HEAP32[_+4*n>>2],r[n+1]=HEAP32[_+(4*n+4)>>2],r[n+2]=HEAP32[_+(4*n+8)>>2],r[n+3]=HEAP32[_+(4*n+12)>>2];else r=HEAP32.subarray(_>>2,_+16*t>>2);GLctx.uniform4iv(webglGetUniformLocation(e),r)}function _emscripten_glUniformMatrix2fv(e,t,_,r){if(t<=72)for(var n=miniTempWebGLFloatBuffers[4*t-1],o=0;o<4*t;o+=4)n[o]=HEAPF32[r+4*o>>2],n[o+1]=HEAPF32[r+(4*o+4)>>2],n[o+2]=HEAPF32[r+(4*o+8)>>2],n[o+3]=HEAPF32[r+(4*o+12)>>2];else n=HEAPF32.subarray(r>>2,r+16*t>>2);GLctx.uniformMatrix2fv(webglGetUniformLocation(e),!!_,n)}function _emscripten_glUniformMatrix3fv(e,t,_,r){if(t<=32)for(var n=miniTempWebGLFloatBuffers[9*t-1],o=0;o<9*t;o+=9)n[o]=HEAPF32[r+4*o>>2],n[o+1]=HEAPF32[r+(4*o+4)>>2],n[o+2]=HEAPF32[r+(4*o+8)>>2],n[o+3]=HEAPF32[r+(4*o+12)>>2],n[o+4]=HEAPF32[r+(4*o+16)>>2],n[o+5]=HEAPF32[r+(4*o+20)>>2],n[o+6]=HEAPF32[r+(4*o+24)>>2],n[o+7]=HEAPF32[r+(4*o+28)>>2],n[o+8]=HEAPF32[r+(4*o+32)>>2];else n=HEAPF32.subarray(r>>2,r+36*t>>2);GLctx.uniformMatrix3fv(webglGetUniformLocation(e),!!_,n)}function _emscripten_glUniformMatrix4fv(e,t,_,r){if(t<=18){var n=miniTempWebGLFloatBuffers[16*t-1],o=HEAPF32;r>>=2;for(var l=0;l<16*t;l+=16){var i=r+l;n[l]=o[i],n[l+1]=o[i+1],n[l+2]=o[i+2],n[l+3]=o[i+3],n[l+4]=o[i+4],n[l+5]=o[i+5],n[l+6]=o[i+6],n[l+7]=o[i+7],n[l+8]=o[i+8],n[l+9]=o[i+9],n[l+10]=o[i+10],n[l+11]=o[i+11],n[l+12]=o[i+12],n[l+13]=o[i+13],n[l+14]=o[i+14],n[l+15]=o[i+15]}}else n=HEAPF32.subarray(r>>2,r+64*t>>2);GLctx.uniformMatrix4fv(webglGetUniformLocation(e),!!_,n)}function _emscripten_glUseProgram(e){e=GL.programs[e],GLctx.useProgram(e),GLctx.currentProgram=e}function _emscripten_glValidateProgram(e){GLctx.validateProgram(GL.programs[e])}function _emscripten_glVertexAttrib1f(e,t){GLctx.vertexAttrib1f(e,t)}function _emscripten_glVertexAttrib1fv(e,t){GLctx.vertexAttrib1f(e,HEAPF32[t>>2])}function _emscripten_glVertexAttrib2f(e,t,_){GLctx.vertexAttrib2f(e,t,_)}function _emscripten_glVertexAttrib2fv(e,t){GLctx.vertexAttrib2f(e,HEAPF32[t>>2],HEAPF32[t+4>>2])}function _emscripten_glVertexAttrib3f(e,t,_,r){GLctx.vertexAttrib3f(e,t,_,r)}function _emscripten_glVertexAttrib3fv(e,t){GLctx.vertexAttrib3f(e,HEAPF32[t>>2],HEAPF32[t+4>>2],HEAPF32[t+8>>2])}function _emscripten_glVertexAttrib4f(e,t,_,r,n){GLctx.vertexAttrib4f(e,t,_,r,n)}function _emscripten_glVertexAttrib4fv(e,t){GLctx.vertexAttrib4f(e,HEAPF32[t>>2],HEAPF32[t+4>>2],HEAPF32[t+8>>2],HEAPF32[t+12>>2])}function _emscripten_glVertexAttribDivisorANGLE(e,t){GLctx.vertexAttribDivisor(e,t)}function _emscripten_glVertexAttribPointer(e,t,_,r,n,o){GLctx.vertexAttribPointer(e,t,_,!!r,n,o)}function _emscripten_glViewport(e,t,_,r){GLctx.viewport(e,t,_,r)}function _emscripten_memcpy_big(e,t,_){HEAPU8.copyWithin(e,t,t+_)}function HandleAllocator(){this.allocated=[],this.freelist=[],this.get=function(e){return this.allocated[e]},this.allocate=function(e){let t;return this.freelist.length>0?(t=this.freelist.pop(),this.allocated[t]=e):(t=this.allocated.length,this.allocated.push(e)),t},this.free=function(e){delete this.allocated[e],this.freelist.push(e)}}Module.__miniTempWebGLIntBuffers=__miniTempWebGLIntBuffers,Module._emscripten_glUniform1iv=_emscripten_glUniform1iv,_emscripten_glUniform1iv.sig="viii",Module._emscripten_glUniform2f=_emscripten_glUniform2f,_emscripten_glUniform2f.sig="viff",Module._emscripten_glUniform2fv=_emscripten_glUniform2fv,_emscripten_glUniform2fv.sig="viii",Module._emscripten_glUniform2i=_emscripten_glUniform2i,_emscripten_glUniform2i.sig="viii",Module._emscripten_glUniform2iv=_emscripten_glUniform2iv,_emscripten_glUniform2iv.sig="viii",Module._emscripten_glUniform3f=_emscripten_glUniform3f,_emscripten_glUniform3f.sig="vifff",Module._emscripten_glUniform3fv=_emscripten_glUniform3fv,_emscripten_glUniform3fv.sig="viii",Module._emscripten_glUniform3i=_emscripten_glUniform3i,_emscripten_glUniform3i.sig="viiii",Module._emscripten_glUniform3iv=_emscripten_glUniform3iv,_emscripten_glUniform3iv.sig="viii",Module._emscripten_glUniform4f=_emscripten_glUniform4f,_emscripten_glUniform4f.sig="viffff",Module._emscripten_glUniform4fv=_emscripten_glUniform4fv,_emscripten_glUniform4fv.sig="viii",Module._emscripten_glUniform4i=_emscripten_glUniform4i,_emscripten_glUniform4i.sig="viiiii",Module._emscripten_glUniform4iv=_emscripten_glUniform4iv,_emscripten_glUniform4iv.sig="viii",Module._emscripten_glUniformMatrix2fv=_emscripten_glUniformMatrix2fv,_emscripten_glUniformMatrix2fv.sig="viiii",Module._emscripten_glUniformMatrix3fv=_emscripten_glUniformMatrix3fv,_emscripten_glUniformMatrix3fv.sig="viiii",Module._emscripten_glUniformMatrix4fv=_emscripten_glUniformMatrix4fv,_emscripten_glUniformMatrix4fv.sig="viiii",Module._emscripten_glUseProgram=_emscripten_glUseProgram,_emscripten_glUseProgram.sig="vi",Module._emscripten_glValidateProgram=_emscripten_glValidateProgram,_emscripten_glValidateProgram.sig="vi",Module._emscripten_glVertexAttrib1f=_emscripten_glVertexAttrib1f,_emscripten_glVertexAttrib1f.sig="vif",Module._emscripten_glVertexAttrib1fv=_emscripten_glVertexAttrib1fv,_emscripten_glVertexAttrib1fv.sig="vii",Module._emscripten_glVertexAttrib2f=_emscripten_glVertexAttrib2f,_emscripten_glVertexAttrib2f.sig="viff",Module._emscripten_glVertexAttrib2fv=_emscripten_glVertexAttrib2fv,_emscripten_glVertexAttrib2fv.sig="vii",Module._emscripten_glVertexAttrib3f=_emscripten_glVertexAttrib3f,_emscripten_glVertexAttrib3f.sig="vifff",Module._emscripten_glVertexAttrib3fv=_emscripten_glVertexAttrib3fv,_emscripten_glVertexAttrib3fv.sig="vii",Module._emscripten_glVertexAttrib4f=_emscripten_glVertexAttrib4f,_emscripten_glVertexAttrib4f.sig="viffff",Module._emscripten_glVertexAttrib4fv=_emscripten_glVertexAttrib4fv,_emscripten_glVertexAttrib4fv.sig="vii",Module._emscripten_glVertexAttribDivisorANGLE=_emscripten_glVertexAttribDivisorANGLE,_emscripten_glVertexAttribDivisorANGLE.sig="vii",Module._emscripten_glVertexAttribPointer=_emscripten_glVertexAttribPointer,_emscripten_glVertexAttribPointer.sig="viiiiii",Module._emscripten_glViewport=_emscripten_glViewport,_emscripten_glViewport.sig="viiii",Module._emscripten_memcpy_big=_emscripten_memcpy_big,_emscripten_memcpy_big.sig="vppp",Module.HandleAllocator=HandleAllocator;var promiseMap=new HandleAllocator;function makePromise(){var e={};return e.promise=new Promise(((t,_)=>{e.reject=_,e.resolve=t})),e.id=promiseMap.allocate(e),e}function _emscripten_promise_create(){return makePromise().id}function _emscripten_promise_destroy(e){promiseMap.free(e)}function getPromise(e){return promiseMap.get(e).promise}function _emscripten_promise_resolve(e,t,_){var r=promiseMap.get(e);switch(t){case 0:return void r.resolve(_);case 1:return void r.resolve(getPromise(_));case 2:return r.resolve(getPromise(_)),void _emscripten_promise_destroy(_);case 3:return void r.reject(_)}}function emscripten_realloc_buffer(e){var t=wasmMemory.buffer;try{return wasmMemory.grow(e-t.byteLength+65535>>>16),updateMemoryViews(),1}catch(e){}}function _emscripten_resize_heap(e){var t=HEAPU8.length;e>>>=0;var _=getHeapMax();if(e>_)return!1;for(var r=1;r<=4;r*=2){var n=t*(1+.2/r);if(n=Math.min(n,e+100663296),emscripten_realloc_buffer(Math.min(_,(o=Math.max(e,n))+((l=65536)-o%l)%l)))return!0}var o,l;return!1}function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var e={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",_:getExecutableName()};for(var t in ENV)void 0===ENV[t]?delete e[t]:e[t]=ENV[t];var _=[];for(var t in e)_.push(t+"="+e[t]);getEnvStrings.strings=_}return getEnvStrings.strings}function writeAsciiToMemory(e,t,_){for(var r=0;r>2]=o,writeAsciiToMemory(r,o),_+=r.length+1})),0}function _environ_sizes_get(e,t){var _=getEnvStrings();HEAPU32[e>>2]=_.length;var r=0;return _.forEach((function(e){r+=e.length+1})),HEAPU32[t>>2]=r,0}function _proc_exit(e){EXITSTATUS=e,keepRuntimeAlive()||(Module.onExit&&Module.onExit(e),ABORT=!0),quit_(e,new ExitStatus(e))}function exitJS(e,t){EXITSTATUS=e,_proc_exit(e)}Module.promiseMap=promiseMap,Module.makePromise=makePromise,Module._emscripten_promise_create=_emscripten_promise_create,_emscripten_promise_create.sig="p",Module._emscripten_promise_destroy=_emscripten_promise_destroy,_emscripten_promise_destroy.sig="vp",Module.getPromise=getPromise,Module._emscripten_promise_resolve=_emscripten_promise_resolve,_emscripten_promise_resolve.sig="vpip",Module.emscripten_realloc_buffer=emscripten_realloc_buffer,Module._emscripten_resize_heap=_emscripten_resize_heap,_emscripten_resize_heap.sig="ip",Module.getExecutableName=getExecutableName,Module.getEnvStrings=getEnvStrings,Module.writeAsciiToMemory=writeAsciiToMemory,Module._environ_get=_environ_get,_environ_get.sig="ipp",Module._environ_sizes_get=_environ_sizes_get,_environ_sizes_get.sig="ipp",Module._proc_exit=_proc_exit,_proc_exit.sig="vi",Module.exitJS=exitJS;var _exit=exitJS;function _fd_close(e){try{var t=SYSCALLS.getStreamFromFD(e);return FS.close(t),0}catch(e){if(void 0===FS||"ErrnoError"!==e.name)throw e;return e.errno}}function _fd_fdstat_get(e,t){try{var _=SYSCALLS.getStreamFromFD(e),r=_.tty?2:FS.isDir(_.mode)?3:FS.isLink(_.mode)?7:4;return HEAP8[t|0]=r,0}catch(e){if(void 0===FS||"ErrnoError"!==e.name)throw e;return e.errno}}function doReadv(e,t,_,r){for(var n=0,o=0;o<_;o++){var l=HEAPU32[t>>2],i=HEAPU32[t+4>>2];t+=8;var a=FS.read(e,HEAP8,l,i,r);if(a<0)return-1;if(n+=a,a>2]=o,0}catch(e){if(void 0===FS||"ErrnoError"!==e.name)throw e;return e.errno}}function doWritev(e,t,_,r){for(var n=0,o=0;o<_;o++){var l=HEAPU32[t>>2],i=HEAPU32[t+4>>2];t+=8;var a=FS.write(e,HEAP8,l,i,r);if(a<0)return-1;n+=a,void 0!==r&&(r+=a)}return n}function _fd_pwrite(e,t,_,r,n){try{if(r=bigintToI53Checked(r),isNaN(r))return 61;var o=doWritev(SYSCALLS.getStreamFromFD(e),t,_,r);return HEAPU32[n>>2]=o,0}catch(e){if(void 0===FS||"ErrnoError"!==e.name)throw e;return e.errno}}function _fd_read(e,t,_,r){try{var n=doReadv(SYSCALLS.getStreamFromFD(e),t,_);return HEAPU32[r>>2]=n,0}catch(e){if(void 0===FS||"ErrnoError"!==e.name)throw e;return e.errno}}function _fd_seek(e,t,_,r){try{if(t=bigintToI53Checked(t),isNaN(t))return 61;var n=SYSCALLS.getStreamFromFD(e);return FS.llseek(n,t,_),tempI64=[n.position>>>0,(tempDouble=n.position,+Math.abs(tempDouble)>=1?tempDouble>0?(0|Math.min(+Math.floor(tempDouble/4294967296),4294967295))>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[r>>2]=tempI64[0],HEAP32[r+4>>2]=tempI64[1],n.getdents&&0===t&&0===_&&(n.getdents=null),0}catch(e){if(void 0===FS||"ErrnoError"!==e.name)throw e;return e.errno}}function _fd_sync(e){try{var t=SYSCALLS.getStreamFromFD(e);return t.stream_ops&&t.stream_ops.fsync?t.stream_ops.fsync(t):0}catch(e){if(void 0===FS||"ErrnoError"!==e.name)throw e;return e.errno}}function _fd_write(e,t,_,r){try{var n=doWritev(SYSCALLS.getStreamFromFD(e),t,_);return HEAPU32[r>>2]=n,0}catch(e){if(void 0===FS||"ErrnoError"!==e.name)throw e;return e.errno}}function _getaddrinfo(e,t,_,r){var n,o=0,l=0,i=0,a=0,u=0,s=0;function c(e,t,_,r,n,o){var l,i,a;return i=10===e?28:16,n=10===e?inetNtop6(n):inetNtop4(n),assert(!writeSockaddr(l=_malloc(i),e,n,o)),a=_malloc(32),HEAP32[a+4>>2]=e,HEAP32[a+8>>2]=t,HEAP32[a+12>>2]=_,HEAP32[a+24>>2]=r,HEAPU32[a+20>>2]=l,HEAP32[a+16>>2]=10===e?28:16,HEAP32[a+28>>2]=0,a}if(_&&(i=HEAP32[_>>2],a=HEAP32[_+4>>2],u=HEAP32[_+8>>2],s=HEAP32[_+12>>2]),u&&!s&&(s=2===u?17:6),!u&&s&&(u=17===s?2:1),0===s&&(s=6),0===u&&(u=1),!e&&!t)return-2;if(-1088&i)return-1;if(0!==_&&2&HEAP32[_>>2]&&!e)return-1;if(32&i)return-2;if(0!==u&&1!==u&&2!==u)return-7;if(0!==a&&2!==a&&10!==a)return-6;if(t&&(t=UTF8ToString(t),l=parseInt(t,10),isNaN(l)))return 1024&i?-2:-8;if(!e)return 0===a&&(a=2),1&i||(o=2===a?_htonl(2130706433):[0,0,0,1]),n=c(a,u,s,null,o,l),HEAPU32[r>>2]=n,0;if(null!==(o=inetPton4(e=UTF8ToString(e))))if(0===a||2===a)a=2;else{if(!(10===a&&8&i))return-2;o=[0,0,_htonl(65535),o],a=10}else if(null!==(o=inetPton6(e))){if(0!==a&&10!==a)return-2;a=10}return null!=o?(n=c(a,u,s,e,o,l),HEAPU32[r>>2]=n,0):4&i?-2:(o=inetPton4(e=DNS.lookup_name(e)),0===a?a=2:10===a&&(o=[0,0,_htonl(65535),o]),n=c(a,u,s,null,o,l),HEAPU32[r>>2]=n,0)}function _getentropy(e,t){_getentropy.randomDevice||(_getentropy.randomDevice=getRandomDevice());for(var _=0;_>2]=_;var r=_malloc(4);HEAPU32[r>>2]=0,HEAPU32[t+4>>2]=r;HEAP32[t+8>>2]=2,HEAP32[t+12>>2]=4;var n=_malloc(12);return HEAPU32[n>>2]=n+8,HEAPU32[n+4>>2]=0,HEAP32[n+8>>2]=inetPton4(DNS.lookup_name(e)),HEAPU32[t+16>>2]=n,t}function _gethostbyaddr(e,t,_){if(2!==_)return setErrNo(5),null;var r=inetNtop4(e=HEAP32[e>>2]),n=DNS.lookup_addr(r);return n&&(r=n),getHostByName(r)}function _gethostbyname(e){return getHostByName(UTF8ToString(e))}function _getloadavg(e,t){for(var _=Math.min(t,3),r=0;r<_;r++)HEAPF64[e+8*r>>3]=.1;return _}function _getnameinfo(e,t,_,r,n,o,l){var i=readSockaddr(e,t);if(i.errno)return-6;var a=i.port,u=i.addr,s=!1;if(_&&r){var c;if(1&l||!(c=DNS.lookup_addr(u))){if(8&l)return-2}else u=c;stringToUTF8(u,_,r)+1>=r&&(s=!0)}n&&o&&(stringToUTF8(a=""+a,n,o)+1>=o&&(s=!0));return s?-12:0}Module._exit=_exit,_exit.sig="vi",Module._fd_close=_fd_close,_fd_close.sig="ii",Module._fd_fdstat_get=_fd_fdstat_get,_fd_fdstat_get.sig="iip",Module.doReadv=doReadv,Module._fd_pread=_fd_pread,_fd_pread.sig="iippjp",Module.doWritev=doWritev,Module._fd_pwrite=_fd_pwrite,_fd_pwrite.sig="iippjp",Module._fd_read=_fd_read,_fd_read.sig="iippp",Module._fd_seek=_fd_seek,_fd_seek.sig="iijip",Module._fd_sync=_fd_sync,_fd_sync.sig="ii",Module._fd_write=_fd_write,_fd_write.sig="iippp",Module._getaddrinfo=_getaddrinfo,_getaddrinfo.sig="ipppp",Module._getentropy=_getentropy,_getentropy.sig="ipp",Module.getHostByName=getHostByName,Module._gethostbyaddr=_gethostbyaddr,_gethostbyaddr.sig="ipii",Module._gethostbyname=_gethostbyname,_gethostbyname.sig="pp",Module._getloadavg=_getloadavg,_getloadavg.sig="ipi",Module._getnameinfo=_getnameinfo,_getnameinfo.sig="ipipipii";var Protocols={list:[],map:{}};function _setprotoent(e){function t(e,t,_){var r=_malloc(e.length+1);writeAsciiToMemory(e,r);for(var n=0,o=_.length,l=_malloc(4*(o+1)),i=0;i>2]=u}HEAPU32[l+n>>2]=0;var s=_malloc(12);return HEAPU32[s>>2]=r,HEAPU32[s+4>>2]=l,HEAP32[s+8>>2]=t,s}var _=Protocols.list,r=Protocols.map;if(0===_.length){var n=t("tcp",6,["TCP"]);_.push(n),r.tcp=r[6]=n,n=t("udp",17,["UDP"]),_.push(n),r.udp=r[17]=n}_setprotoent.index=0}function _getprotobyname(e){return e=UTF8ToString(e),_setprotoent(!0),Protocols.map[e]}function __arraySum(e,t){for(var _=0,r=0;r<=t;_+=e[r++]);return _}Module.Protocols=Protocols,Module._setprotoent=_setprotoent,Module._getprotobyname=_getprotobyname,Module.__arraySum=__arraySum;var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];Module.__MONTH_DAYS_LEAP=__MONTH_DAYS_LEAP;var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(e,t){for(var _=new Date(e.getTime());t>0;){var r=__isLeapYear(_.getFullYear()),n=_.getMonth(),o=(r?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[n];if(!(t>o-_.getDate()))return _.setDate(_.getDate()+t),_;t-=o-_.getDate()+1,_.setDate(1),n<11?_.setMonth(n+1):(_.setMonth(0),_.setFullYear(_.getFullYear()+1))}return _}function writeArrayToMemory(e,t){HEAP8.set(e,t)}function _strftime(e,t,_,r){var n=HEAP32[r+40>>2],o={tm_sec:HEAP32[r>>2],tm_min:HEAP32[r+4>>2],tm_hour:HEAP32[r+8>>2],tm_mday:HEAP32[r+12>>2],tm_mon:HEAP32[r+16>>2],tm_year:HEAP32[r+20>>2],tm_wday:HEAP32[r+24>>2],tm_yday:HEAP32[r+28>>2],tm_isdst:HEAP32[r+32>>2],tm_gmtoff:HEAP32[r+36>>2],tm_zone:n?UTF8ToString(n):""},l=UTF8ToString(_),i={"%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 a in i)l=l.replace(new RegExp(a,"g"),i[a]);var u=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],s=["January","February","March","April","May","June","July","August","September","October","November","December"];function c(e,t,_){for(var r="number"==typeof e?e.toString():e||"";r.length0?1:0}var r;return 0===(r=_(e.getFullYear()-t.getFullYear()))&&0===(r=_(e.getMonth()-t.getMonth()))&&(r=_(e.getDate()-t.getDate())),r}function y(e){switch(e.getDay()){case 0:return new Date(e.getFullYear()-1,11,29);case 1:return e;case 2:return new Date(e.getFullYear(),0,3);case 3:return new Date(e.getFullYear(),0,2);case 4:return new Date(e.getFullYear(),0,1);case 5:return new Date(e.getFullYear()-1,11,31);case 6:return new Date(e.getFullYear()-1,11,30)}}function m(e){var t=__addDays(new Date(e.tm_year+1900,0,1),e.tm_yday),_=new Date(t.getFullYear(),0,4),r=new Date(t.getFullYear()+1,0,4),n=y(_),o=y(r);return p(n,t)<=0?p(o,t)<=0?t.getFullYear()+1:t.getFullYear():t.getFullYear()-1}var f={"%a":function(e){return u[e.tm_wday].substring(0,3)},"%A":function(e){return u[e.tm_wday]},"%b":function(e){return s[e.tm_mon].substring(0,3)},"%B":function(e){return s[e.tm_mon]},"%C":function(e){return d((e.tm_year+1900)/100|0,2)},"%d":function(e){return d(e.tm_mday,2)},"%e":function(e){return c(e.tm_mday,2," ")},"%g":function(e){return m(e).toString().substring(2)},"%G":function(e){return m(e)},"%H":function(e){return d(e.tm_hour,2)},"%I":function(e){var t=e.tm_hour;return 0==t?t=12:t>12&&(t-=12),d(t,2)},"%j":function(e){return d(e.tm_mday+__arraySum(__isLeapYear(e.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,e.tm_mon-1),3)},"%m":function(e){return d(e.tm_mon+1,2)},"%M":function(e){return d(e.tm_min,2)},"%n":function(){return"\n"},"%p":function(e){return e.tm_hour>=0&&e.tm_hour<12?"AM":"PM"},"%S":function(e){return d(e.tm_sec,2)},"%t":function(){return"\t"},"%u":function(e){return e.tm_wday||7},"%U":function(e){var t=e.tm_yday+7-e.tm_wday;return d(Math.floor(t/7),2)},"%V":function(e){var t=Math.floor((e.tm_yday+7-(e.tm_wday+6)%7)/7);if((e.tm_wday+371-e.tm_yday-2)%7<=2&&t++,t){if(53==t){var _=(e.tm_wday+371-e.tm_yday)%7;4==_||3==_&&__isLeapYear(e.tm_year)||(t=1)}}else{t=52;var r=(e.tm_wday+7-e.tm_yday-1)%7;(4==r||5==r&&__isLeapYear(e.tm_year%400-1))&&t++}return d(t,2)},"%w":function(e){return e.tm_wday},"%W":function(e){var t=e.tm_yday+7-(e.tm_wday+6)%7;return d(Math.floor(t/7),2)},"%y":function(e){return(e.tm_year+1900).toString().substring(2)},"%Y":function(e){return e.tm_year+1900},"%z":function(e){var t=e.tm_gmtoff,_=t>=0;return t=(t=Math.abs(t)/60)/60*100+t%60,(_?"+":"-")+String("0000"+t).slice(-4)},"%Z":function(e){return e.tm_zone},"%%":function(){return"%"}};for(var a in l=l.replace(/%%/g,"\0\0"),f)l.includes(a)&&(l=l.replace(new RegExp(a,"g"),f[a](o)));var M=intArrayFromString(l=l.replace(/\0\0/g,"%"),!1);return M.length>t?0:(writeArrayToMemory(M,e),M.length-1)}function _strftime_l(e,t,_,r,n){return _strftime(e,t,_,r)}function _system(e){if(ENVIRONMENT_IS_NODE){if(!e)return 1;var t=UTF8ToString(e);if(!t.length)return 0;var _=require("child_process").spawnSync(t,[],{shell:!0,stdio:"inherit"}),r=(e,t)=>e<<8|t;if(null===_.status){return r(0,(e=>{switch(e){case"SIGHUP":return 1;case"SIGINT":return 2;case"SIGQUIT":return 3;case"SIGFPE":return 8;case"SIGKILL":return 9;case"SIGALRM":return 14;case"SIGTERM":return 15}return 2})(_.signal))}return r(_.status,0)}return e?(setErrNo(52),-1):0}function ptrToString(e){return"0x"+e.toString(16).padStart(8,"0")}function _emscripten_notify_memory_growth(e){updateMemoryViews()}function ___asctime_r(e,t){var _=HEAP32[e>>2],r=HEAP32[e+4>>2],n=HEAP32[e+8>>2],o=HEAP32[e+12>>2],l=HEAP32[e+16>>2],i=HEAP32[e+20>>2];return stringToUTF8(["Sun","Mon","Tue","Wed","Thu","Fri","Sat"][HEAP32[e+24>>2]]+" "+["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"][l]+(o<10?" ":" ")+o+(n<10?" 0":" ")+n+(r<10?":0":":")+r+(_<10?":0":":")+_+" "+(1900+i)+"\n",t,26),t}function _strptime(e,t,_){for(var r=UTF8ToString(t),n="\\!@#$^&*()+=-[]/{}|:<>?,.",o=0;o<25;++o)r=r.replace(new RegExp("\\"+n[o],"g"),"\\"+n[o]);var l={"%A":"%a","%B":"%b","%c":"%a %b %d %H:%M:%S %Y","%D":"%m\\/%d\\/%y","%e":"%d","%F":"%Y-%m-%d","%h":"%b","%R":"%H\\:%M","%r":"%I\\:%M\\:%S\\s%p","%T":"%H\\:%M\\:%S","%x":"%m\\/%d\\/(?:%y|%Y)","%X":"%H\\:%M\\:%S"};for(var i in l)r=r.replace(i,l[i]);var a={"%a":"(?:Sun(?:day)?)|(?:Mon(?:day)?)|(?:Tue(?:sday)?)|(?:Wed(?:nesday)?)|(?:Thu(?:rsday)?)|(?:Fri(?:day)?)|(?:Sat(?:urday)?)","%b":"(?:Jan(?:uary)?)|(?:Feb(?:ruary)?)|(?:Mar(?:ch)?)|(?:Apr(?:il)?)|May|(?:Jun(?:e)?)|(?:Jul(?:y)?)|(?:Aug(?:ust)?)|(?:Sep(?:tember)?)|(?:Oct(?:ober)?)|(?:Nov(?:ember)?)|(?:Dec(?:ember)?)","%C":"\\d\\d","%d":"0[1-9]|[1-9](?!\\d)|1\\d|2\\d|30|31","%H":"\\d(?!\\d)|[0,1]\\d|20|21|22|23","%I":"\\d(?!\\d)|0\\d|10|11|12","%j":"00[1-9]|0?[1-9](?!\\d)|0?[1-9]\\d(?!\\d)|[1,2]\\d\\d|3[0-6]\\d","%m":"0[1-9]|[1-9](?!\\d)|10|11|12","%M":"0\\d|\\d(?!\\d)|[1-5]\\d","%n":"\\s","%p":"AM|am|PM|pm|A\\.M\\.|a\\.m\\.|P\\.M\\.|p\\.m\\.","%S":"0\\d|\\d(?!\\d)|[1-5]\\d|60","%U":"0\\d|\\d(?!\\d)|[1-4]\\d|50|51|52|53","%W":"0\\d|\\d(?!\\d)|[1-4]\\d|50|51|52|53","%w":"[0-6]","%y":"\\d\\d","%Y":"\\d\\d\\d\\d","%%":"%","%t":"\\s"};for(var u in a)r=r.replace(u,"("+u+a[u]+")");var s=[];for(o=r.indexOf("%");o>=0;o=r.indexOf("%"))s.push(r[o+1]),r=r.replace(new RegExp("\\%"+r[o+1],"g"),"");var c=new RegExp("^"+r,"i").exec(UTF8ToString(e));if(c){var d,p=function(){function e(e,t,_){return"number"!=typeof e||isNaN(e)?t:e>=t?e<=_?e:_:t}return{year:e(HEAP32[_+20>>2]+1900,1970,9999),month:e(HEAP32[_+16>>2],0,11),day:e(HEAP32[_+12>>2],1,31),hour:e(HEAP32[_+8>>2],0,23),min:e(HEAP32[_+4>>2],0,59),sec:e(HEAP32[_>>2],0,59)}}(),y=e=>{var t=s.indexOf(e);if(t>=0)return c[t+1]};if((d=y("S"))&&(p.sec=jstoi_q(d)),(d=y("M"))&&(p.min=jstoi_q(d)),d=y("H"))p.hour=jstoi_q(d);else if(d=y("I")){var m=jstoi_q(d);(d=y("p"))&&(m+="P"===d.toUpperCase()[0]?12:0),p.hour=m}if(d=y("Y"))p.year=jstoi_q(d);else if(d=y("y")){var f=jstoi_q(d);(d=y("C"))?f+=100*jstoi_q(d):f+=f<69?2e3:1900,p.year=f}if((d=y("m"))?p.month=jstoi_q(d)-1:(d=y("b"))&&(p.month={JAN:0,FEB:1,MAR:2,APR:3,MAY:4,JUN:5,JUL:6,AUG:7,SEP:8,OCT:9,NOV:10,DEC:11}[d.substring(0,3).toUpperCase()]||0),d=y("d"))p.day=jstoi_q(d);else if(d=y("j"))for(var M=jstoi_q(d),g=__isLeapYear(p.year),P=0;P<12;++P){var h=__arraySum(g?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,P-1);M<=h+(g?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[P]&&(p.day=M-h)}else if(d=y("a")){var b=d.substring(0,3).toUpperCase();if(d=y("U")){var w={SUN:0,MON:1,TUE:2,WED:3,THU:4,FRI:5,SAT:6}[b],E=jstoi_q(d);v=0===(S=new Date(p.year,0,1)).getDay()?__addDays(S,w+7*(E-1)):__addDays(S,7-S.getDay()+w+7*(E-1)),p.day=v.getDate(),p.month=v.getMonth()}else if(d=y("W")){var S,v;w={MON:0,TUE:1,WED:2,THU:3,FRI:4,SAT:5,SUN:6}[b],E=jstoi_q(d);v=1===(S=new Date(p.year,0,1)).getDay()?__addDays(S,w+7*(E-1)):__addDays(S,7-S.getDay()+1+w+7*(E-1)),p.day=v.getDate(),p.month=v.getMonth()}}var x=new Date(p.year,p.month,p.day,p.hour,p.min,p.sec,0);return HEAP32[_>>2]=x.getSeconds(),HEAP32[_+4>>2]=x.getMinutes(),HEAP32[_+8>>2]=x.getHours(),HEAP32[_+12>>2]=x.getDate(),HEAP32[_+16>>2]=x.getMonth(),HEAP32[_+20>>2]=x.getFullYear()-1900,HEAP32[_+24>>2]=x.getDay(),HEAP32[_+28>>2]=__arraySum(__isLeapYear(x.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,x.getMonth()-1)+x.getDate()-1,HEAP32[_+32>>2]=0,e+intArrayFromString(c[0]).length-1}return 0}function _strptime_l(e,t,_){return _strptime(e,t,_)}Module.__MONTH_DAYS_REGULAR=__MONTH_DAYS_REGULAR,Module.__addDays=__addDays,Module.writeArrayToMemory=writeArrayToMemory,Module._strftime=_strftime,_strftime.sig="ppppp",Module._strftime_l=_strftime_l,_strftime_l.sig="pppppp",Module._system=_system,_system.sig="ip",Module.ptrToString=ptrToString,Module._emscripten_notify_memory_growth=_emscripten_notify_memory_growth,Module.___asctime_r=___asctime_r,___asctime_r.sig="ppp",Module._strptime=_strptime,_strptime.sig="pppp",Module._strptime_l=_strptime_l,_strptime_l.sig="pppp";var ERRNO_MESSAGES={0:"Success",1:"Arg list too long",2:"Permission denied",3:"Address already in use",4:"Address not available",5:"Address family not supported by protocol family",6:"No more processes",7:"Socket already connected",8:"Bad file number",9:"Trying to read unreadable message",10:"Mount device busy",11:"Operation canceled",12:"No children",13:"Connection aborted",14:"Connection refused",15:"Connection reset by peer",16:"File locking deadlock error",17:"Destination address required",18:"Math arg out of domain of func",19:"Quota exceeded",20:"File exists",21:"Bad address",22:"File too large",23:"Host is unreachable",24:"Identifier removed",25:"Illegal byte sequence",26:"Connection already in progress",27:"Interrupted system call",28:"Invalid argument",29:"I/O error",30:"Socket is already connected",31:"Is a directory",32:"Too many symbolic links",33:"Too many open files",34:"Too many links",35:"Message too long",36:"Multihop attempted",37:"File or path name too long",38:"Network interface is not configured",39:"Connection reset by network",40:"Network is unreachable",41:"Too many open files in system",42:"No buffer space available",43:"No such device",44:"No such file or directory",45:"Exec format error",46:"No record locks available",47:"The link has been severed",48:"Not enough core",49:"No message of desired type",50:"Protocol not available",51:"No space left on device",52:"Function not implemented",53:"Socket is not connected",54:"Not a directory",55:"Directory not empty",56:"State not recoverable",57:"Socket operation on non-socket",59:"Not a typewriter",60:"No such device or address",61:"Value too large for defined data type",62:"Previous owner died",63:"Not super-user",64:"Broken pipe",65:"Protocol error",66:"Unknown protocol",67:"Protocol wrong type for socket",68:"Math result not representable",69:"Read only file system",70:"Illegal seek",71:"No such process",72:"Stale file handle",73:"Connection timed out",74:"Text file busy",75:"Cross-device link",100:"Device not a stream",101:"Bad font file fmt",102:"Invalid slot",103:"Invalid request code",104:"No anode",105:"Block device required",106:"Channel number out of range",107:"Level 3 halted",108:"Level 3 reset",109:"Link number out of range",110:"Protocol driver not attached",111:"No CSI structure available",112:"Level 2 halted",113:"Invalid exchange",114:"Invalid request descriptor",115:"Exchange full",116:"No data (for no delay io)",117:"Timer expired",118:"Out of streams resources",119:"Machine is not on the network",120:"Package not installed",121:"The object is remote",122:"Advertise error",123:"Srmount error",124:"Communication error on send",125:"Cross mount point (not really error)",126:"Given log. name not unique",127:"f.d. invalid for this operation",128:"Remote address changed",129:"Can access a needed shared lib",130:"Accessing a corrupted shared lib",131:".lib section in a.out corrupted",132:"Attempting to link in too many libs",133:"Attempting to exec a shared library",135:"Streams pipe error",136:"Too many users",137:"Socket type not supported",138:"Not supported",139:"Protocol family not supported",140:"Can't send after socket shutdown",141:"Too many references",142:"Host is down",148:"No medium (in tape drive)",156:"Level 2 not synchronized"};function _gethostbyname_r(e,t,_,r,n,o){var l=_gethostbyname(e);return _memcpy(t,l,20),_free(l),HEAP32[o>>2]=0,HEAPU32[n>>2]=t,0}function _endprotoent(){}function _getprotoent(e){return _setprotoent.index===Protocols.list.length?0:Protocols.list[_setprotoent.index++]}function _getprotobynumber(e){return _setprotoent(!0),Protocols.map[e]}function _emscripten_run_script(ptr){eval(UTF8ToString(ptr))}function _emscripten_run_script_int(ptr){return 0|eval(UTF8ToString(ptr))}function _emscripten_run_script_string(ptr){var s=eval(UTF8ToString(ptr));if(null==s)return 0;s+="";var me=_emscripten_run_script_string,len=lengthBytesUTF8(s);return(!me.bufferSize||me.bufferSize=4)){t+=c+"\n";continue}d=f[1],p=f[2],y=f[3],m=0|f[4]}var M=!1;if(8&e){var g=emscripten_source_map.originalPositionFor({line:y,column:m});(M=g&&g.source)&&(64&e&&(g.source=g.source.substring(g.source.replace(/\\/g,"/").lastIndexOf("/")+1)),t+=" at "+d+" ("+g.source+":"+g.line+":"+g.column+")\n")}(16&e||!M)&&(64&e&&(p=p.substring(p.replace(/\\/g,"/").lastIndexOf("/")+1)),t+=(M?" = "+d:" at "+d)+" ("+p+":"+y+":"+m+")\n"),128&e&&o[0]&&(o[1]==d&&o[2].length>0&&(t=t.replace(/\s+$/,""),t+=" with values: "+o[1]+o[2]+"\n"),o=traverseStack(o[0]))}return t=t.replace(/\s+$/,"")}function _emscripten_get_callstack(e,t,_){var r=_emscripten_get_callstack_js(e);return!t||_<=0?lengthBytesUTF8(r)+1:stringToUTF8(r,t,_)+1}function _emscripten_log_js(e,t){24&e&&(t=t.replace(/\s+$/,""),t+=(t.length>0?"\n":"")+_emscripten_get_callstack_js(e)),1&e?4&e?console.error(t):2&e?console.warn(t):512&e?console.info(t):256&e?console.debug(t):console.log(t):6&e?err(t):out(t)}function reallyNegative(e){return e<0||0===e&&1/e==-1/0}function convertI32PairToI53(e,t){return(e>>>0)+4294967296*t}function convertU32PairToI53(e,t){return(e>>>0)+4294967296*(t>>>0)}function reSign(e,t){if(e<=0)return e;var _=t<=32?Math.abs(1<=_&&(t<=32||e>_)&&(e=-2*_+e),e}function unSign(e,t){return e>=0?e:t<=32?2*Math.abs(1<>3],r+=8):"i64"==e?(t=[HEAP32[r>>2],HEAP32[r+4>>2]],r+=8):(e="i32",t=HEAP32[r>>2],r+=4),t}for(var o,l,i,a=[];;){var u=_;if(0===(o=HEAP8[_|0]))break;if(l=HEAP8[_+1|0],37==o){var s=!1,c=!1,d=!1,p=!1,y=!1;e:for(;;){switch(l){case 43:s=!0;break;case 45:c=!0;break;case 35:d=!0;break;case 48:if(p)break e;p=!0;break;case 32:y=!0;break;default:break e}_++,l=HEAP8[_+1|0]}var m=0;if(42==l)m=n("i32"),_++,l=HEAP8[_+1|0];else for(;l>=48&&l<=57;)m=10*m+(l-48),_++,l=HEAP8[_+1|0];var f,M=!1,g=-1;if(46==l){if(g=0,M=!0,_++,42==(l=HEAP8[_+1|0]))g=n("i32"),_++;else for(;;){var P=HEAP8[_+1|0];if(P<48||P>57)break;g=10*g+(P-48),_++}l=HEAP8[_+1|0]}switch(g<0&&(g=6,M=!1),String.fromCharCode(l)){case"h":104==HEAP8[_+2|0]?(_++,f=1):f=2;break;case"l":108==HEAP8[_+2|0]?(_++,f=8):f=4;break;case"L":case"q":case"j":f=8;break;case"z":case"t":case"I":f=4;break;default:f=null}switch(f&&_++,l=HEAP8[_+1|0],String.fromCharCode(l)){case"d":case"i":case"u":case"o":case"x":case"X":case"p":var h=100==l||105==l;if(i=n("i"+8*(f=f||4)),8==f&&(i=117==l?convertU32PairToI53(i[0],i[1]):convertI32PairToI53(i[0],i[1])),f<=4)i=(h?reSign:unSign)(i&Math.pow(256,f)-1,8*f);var b=Math.abs(i),w="";if(100==l||105==l)v=reSign(i,8*f).toString(10);else if(117==l)v=unSign(i,8*f).toString(10),i=Math.abs(i);else if(111==l)v=(d?"0":"")+b.toString(8);else if(120==l||88==l){if(w=d&&0!=i?"0x":"",i<0){i=-i,v=(b-1).toString(16);for(var E=[],S=0;S=0&&(s?w="+"+w:y&&(w=" "+w)),"-"==v.charAt(0)&&(w="-"+w,v=v.substr(1));w.length+v.lengthk&&k>=-4?(l=(103==l?"f":"F").charCodeAt(0),g-=k+1):(l=(103==l?"e":"E").charCodeAt(0),g--),A=Math.min(g,20)}101==l||69==l?(v=i.toExponential(A),/[eE][-+]\d$/.test(v)&&(v=v.slice(0,-1)+"0"+v.slice(-1))):102!=l&&70!=l||(v=i.toFixed(A),0===i&&reallyNegative(i)&&(v="-"+v));var F=v.split("e");if(x&&!d)for(;F[0].length>1&&F[0].includes(".")&&("0"==F[0].slice(-1)||"."==F[0].slice(-1));)F[0]=F[0].slice(0,-1);else for(d&&-1==v.indexOf(".")&&(F[0]+=".");g>A++;)F[0]+="0";v=F[0]+(F.length>1?"e"+F[1]:""),69==l&&(v=v.toUpperCase()),i>=0&&(s?v="+"+v:y&&(v=" "+v))}else v=(i<0?"-":"")+"inf",p=!1;for(;v.length0;)a.push(32);c||a.push(n("i8"));break;case"n":var C=n("i32*");HEAP32[C>>2]=a.length;break;case"%":a.push(o);break;default:for(S=u;S<_+2;S++)a.push(HEAP8[S|0])}_+=2}else a.push(o),_+=1}return a}function _emscripten_log(e,t,_){_emscripten_log_js(e,UTF8ArrayToString(formatString(t,_),0))}function _emscripten_get_compiler_setting(e){throw"You must build with -sRETAIN_COMPILER_SETTINGS for getCompilerSetting or emscripten_get_compiler_setting to work"}function _emscripten_has_asyncify(){return 0}function _emscripten_debugger(){}function _emscripten_print_double(e,t,_){var r=e+"";return t?stringToUTF8(r,t,_):lengthBytesUTF8(r)}function convertFrameToPC(e){return abort("Cannot use convertFrameToPC (needed by __builtin_return_address) without -sUSE_OFFSET_CONVERTER"),0}function _emscripten_return_address(e){var t=jsStackTrace().split("\n");return"Error"==t[0]&&t.shift(),convertFrameToPC(t[e+3])}Module.ERRNO_MESSAGES=ERRNO_MESSAGES,Module._gethostbyname_r=_gethostbyname_r,_gethostbyname_r.sig="ipppipp",Module._endprotoent=_endprotoent,Module._getprotoent=_getprotoent,Module._getprotobynumber=_getprotobynumber,Module._emscripten_run_script=_emscripten_run_script,_emscripten_run_script.sig="vp",Module._emscripten_run_script_int=_emscripten_run_script_int,_emscripten_run_script_int.sig="ip",Module._emscripten_run_script_string=_emscripten_run_script_string,_emscripten_run_script_string.sig="pp",Module._emscripten_random=_emscripten_random,Module.warnOnce=warnOnce,Module.traverseStack=traverseStack,Module._emscripten_get_callstack_js=_emscripten_get_callstack_js,Module._emscripten_get_callstack=_emscripten_get_callstack,Module._emscripten_log_js=_emscripten_log_js,Module.reallyNegative=reallyNegative,Module.convertI32PairToI53=convertI32PairToI53,Module.convertU32PairToI53=convertU32PairToI53,Module.reSign=reSign,Module.unSign=unSign,Module.strLen=strLen,Module.formatString=formatString,Module._emscripten_log=_emscripten_log,_emscripten_log.sig="vipp",Module._emscripten_get_compiler_setting=_emscripten_get_compiler_setting,_emscripten_get_compiler_setting.sig="pp",Module._emscripten_has_asyncify=_emscripten_has_asyncify,Module._emscripten_debugger=_emscripten_debugger,Module._emscripten_print_double=_emscripten_print_double,_emscripten_print_double.sig="iipi",Module.convertFrameToPC=convertFrameToPC,Module._emscripten_return_address=_emscripten_return_address,_emscripten_return_address.sig="pi";var UNWIND_CACHE={};function saveInUnwindCache(e){e.forEach((e=>{var t=convertFrameToPC(e);t&&(UNWIND_CACHE[t]=e)}))}function _emscripten_stack_snapshot(){var e=jsStackTrace().split("\n");return"Error"==e[0]&&e.shift(),saveInUnwindCache(e),UNWIND_CACHE.last_addr=convertFrameToPC(e[3]),UNWIND_CACHE.last_stack=e,UNWIND_CACHE.last_addr}function _emscripten_stack_unwind_buffer(e,t,_){var r;UNWIND_CACHE.last_addr==e?r=UNWIND_CACHE.last_stack:("Error"==(r=jsStackTrace().split("\n"))[0]&&r.shift(),saveInUnwindCache(r));for(var n=3;r[n]&&convertFrameToPC(r[n])!=e;)++n;for(var o=0;o<_&&r[o+n];++o)HEAP32[t+4*o>>2]=convertFrameToPC(r[o+n]);return o}function _emscripten_pc_get_function(e){abort("Cannot use emscripten_pc_get_function without -sUSE_OFFSET_CONVERTER")}function convertPCtoSourceLocation(e){if(UNWIND_CACHE.last_get_source_pc==e)return UNWIND_CACHE.last_source;var t,_;if(!_){var r=UNWIND_CACHE[e];if(!r)return null;((t=/\((.*):(\d+):(\d+)\)$/.exec(r))||(t=/@(.*):(\d+):(\d+)/.exec(r)))&&(_={file:t[1],line:t[2],column:t[3]})}return UNWIND_CACHE.last_get_source_pc=e,UNWIND_CACHE.last_source=_,_}function _emscripten_pc_get_file(e){var t=convertPCtoSourceLocation(e);return t?(_emscripten_pc_get_file.ret&&_free(_emscripten_pc_get_file.ret),_emscripten_pc_get_file.ret=allocateUTF8(t.file),_emscripten_pc_get_file.ret):0}function _emscripten_pc_get_line(e){var t=convertPCtoSourceLocation(e);return t?t.line:0}function _emscripten_pc_get_column(e){var t=convertPCtoSourceLocation(e);return t&&t.column||0}function _emscripten_get_module_name(e,t){return stringToUTF8(wasmBinaryFile,e,t)}function _emscripten_asm_const_double(e,t,_){return runEmAsmFunction(e,t,_)}Module.UNWIND_CACHE=UNWIND_CACHE,Module.saveInUnwindCache=saveInUnwindCache,Module._emscripten_stack_snapshot=_emscripten_stack_snapshot,_emscripten_stack_snapshot.sig="p",Module._emscripten_stack_unwind_buffer=_emscripten_stack_unwind_buffer,_emscripten_stack_unwind_buffer.sig="ippi",Module._emscripten_pc_get_function=_emscripten_pc_get_function,Module.convertPCtoSourceLocation=convertPCtoSourceLocation,Module._emscripten_pc_get_file=_emscripten_pc_get_file,_emscripten_pc_get_file.sig="pp",Module._emscripten_pc_get_line=_emscripten_pc_get_line,_emscripten_pc_get_line.sig="ip",Module._emscripten_pc_get_column=_emscripten_pc_get_column,_emscripten_pc_get_column.sig="ip",Module._emscripten_get_module_name=_emscripten_get_module_name,_emscripten_get_module_name.sig="ppp",Module._emscripten_asm_const_double=_emscripten_asm_const_double,_emscripten_asm_const_double.sig="dppp";var _emscripten_asm_const_ptr=_emscripten_asm_const_int;function runMainThreadEmAsm(e,t,_,r){var n=readEmAsmArgs(t,_);return ASM_CONSTS[e].apply(null,n)}function _emscripten_asm_const_int_sync_on_main_thread(e,t,_){return runMainThreadEmAsm(e,t,_,1)}Module._emscripten_asm_const_ptr=_emscripten_asm_const_ptr,Module.runMainThreadEmAsm=runMainThreadEmAsm,runMainThreadEmAsm.sig="iippi",Module._emscripten_asm_const_int_sync_on_main_thread=_emscripten_asm_const_int_sync_on_main_thread,_emscripten_asm_const_int_sync_on_main_thread.sig="iiii";var _emscripten_asm_const_double_sync_on_main_thread=_emscripten_asm_const_int_sync_on_main_thread;function _emscripten_asm_const_async_on_main_thread(e,t,_){return runMainThreadEmAsm(e,t,_,0)}function jstoi_s(e){return Number(e)}function __Unwind_Backtrace(e,t){for(var _=_emscripten_get_callstack_js().split("\n"),r=0;r<_.length;r++){if(0!==getWasmTableEntry(e)(0,t))return}}function __Unwind_GetIPInfo(){abort("Unwind_GetIPInfo")}function __Unwind_FindEnclosingFunction(){return 0}function __Unwind_RaiseException(e){return err("Warning: _Unwind_RaiseException is not correctly implemented"),___cxa_throw(e,0,0)}function __Unwind_DeleteException(e){err("TODO: Unwind_DeleteException")}function _emscripten_autodebug_i64(e,t,_){out("AD:"+[e,t,_])}function _emscripten_autodebug_i32(e,t){out("AD:"+[e,t])}function _emscripten_autodebug_i16(e,t){out("AD:"+[e,t])}function _emscripten_autodebug_i8(e,t){out("AD:"+[e,t])}function _emscripten_autodebug_float(e,t){out("AD:"+[e,t])}function _emscripten_autodebug_double(e,t){out("AD:"+[e,t])}function listenOnce(e,t,_){e.addEventListener(t,_,{once:!0})}function autoResumeAudioContext(e,t){t||(t=[document,document.getElementById("canvas")]),["keydown","mousedown","touchstart"].forEach((function(_){t.forEach((function(t){t&&listenOnce(t,_,(()=>{"suspended"===e.state&&e.resume()}))}))}))}function getDynCaller(e,t){var _=[];return function(){return _.length=0,Object.assign(_,arguments),dynCall(e,t,_)}}function _emscripten_force_exit(e){noExitRuntime=!1,_exit(e)}function _emscripten_throw_number(e){throw e}function _emscripten_throw_string(e){throw UTF8ToString(e)}function runtimeKeepalivePush(){}function runtimeKeepalivePop(){}Module._emscripten_asm_const_double_sync_on_main_thread=_emscripten_asm_const_double_sync_on_main_thread,Module._emscripten_asm_const_async_on_main_thread=_emscripten_asm_const_async_on_main_thread,Module.jstoi_s=jstoi_s,Module.__Unwind_Backtrace=__Unwind_Backtrace,Module.__Unwind_GetIPInfo=__Unwind_GetIPInfo,Module.__Unwind_FindEnclosingFunction=__Unwind_FindEnclosingFunction,Module.__Unwind_RaiseException=__Unwind_RaiseException,Module.__Unwind_DeleteException=__Unwind_DeleteException,Module._emscripten_autodebug_i64=_emscripten_autodebug_i64,Module._emscripten_autodebug_i32=_emscripten_autodebug_i32,Module._emscripten_autodebug_i16=_emscripten_autodebug_i16,Module._emscripten_autodebug_i8=_emscripten_autodebug_i8,Module._emscripten_autodebug_float=_emscripten_autodebug_float,Module._emscripten_autodebug_double=_emscripten_autodebug_double,Module.listenOnce=listenOnce,Module.autoResumeAudioContext=autoResumeAudioContext,Module.getDynCaller=getDynCaller,Module._emscripten_force_exit=_emscripten_force_exit,_emscripten_force_exit.sig="vi",Module._emscripten_throw_number=_emscripten_throw_number,Module._emscripten_throw_string=_emscripten_throw_string,Module.runtimeKeepalivePush=runtimeKeepalivePush,runtimeKeepalivePush.sig="v",Module.runtimeKeepalivePop=runtimeKeepalivePop,runtimeKeepalivePop.sig="v";var _emscripten_runtime_keepalive_push=runtimeKeepalivePush;Module._emscripten_runtime_keepalive_push=_emscripten_runtime_keepalive_push;var _emscripten_runtime_keepalive_pop=runtimeKeepalivePop;function _emscripten_runtime_keepalive_check(){return keepRuntimeAlive()}function maybeExit(){}function safeSetTimeout(e,t){return setTimeout((function(){callUserCallback(e)}),t)}Module._emscripten_runtime_keepalive_pop=_emscripten_runtime_keepalive_pop,Module._emscripten_runtime_keepalive_check=_emscripten_runtime_keepalive_check,Module.maybeExit=maybeExit,Module.safeSetTimeout=safeSetTimeout;var ___global_base=1024;function __emscripten_fs_load_embedded_files(e){do{var t=HEAPU32[e>>2],_=HEAPU32[(e+=4)>>2],r=HEAPU32[(e+=4)>>2];e+=4;var n=UTF8ToString(t);FS.createPath("/",PATH.dirname(n),!0,!0),FS.createDataFile(n,null,HEAP8.subarray(r,r+_),!0,!0,!0)}while(HEAPU32[e>>2])}Module.___global_base=___global_base,Module.__emscripten_fs_load_embedded_files=__emscripten_fs_load_embedded_files,__emscripten_fs_load_embedded_files.sig="vp";var POINTER_SIZE=4;function getNativeTypeSize(e){switch(e){case"i1":case"i8":case"u8":return 1;case"i16":case"u16":return 2;case"i32":case"u32":case"float":return 4;case"i64":case"u64":case"double":return 8;default:if("*"===e[e.length-1])return POINTER_SIZE;if("i"===e[0]){const t=Number(e.substr(1));return assert(t%8==0,"getNativeTypeSize invalid bits "+t+", type "+e),t/8}return 0}}Module.POINTER_SIZE=POINTER_SIZE,Module.getNativeTypeSize=getNativeTypeSize;var STACK_SIZE=5242880;Module.STACK_SIZE=STACK_SIZE;var STACK_ALIGN=16;Module.STACK_ALIGN=STACK_ALIGN;var ASSERTIONS=0;function writeI53ToI64Clamped(e,t){t>0x8000000000000000?(HEAPU32[e>>2]=4294967295,HEAPU32[e+4>>2]=2147483647):t<-0x8000000000000000?(HEAPU32[e>>2]=0,HEAPU32[e+4>>2]=2147483648):(HEAPU32[e>>2]=t,HEAPU32[e+4>>2]=(t-HEAPU32[e>>2])/4294967296)}function writeI53ToI64Signaling(e,t){if(t>0x8000000000000000||t<-0x8000000000000000)throw"RangeError:"+t;HEAPU32[e>>2]=t,HEAPU32[e+4>>2]=(t-HEAPU32[e>>2])/4294967296}function writeI53ToU64Clamped(e,t){t>0x10000000000000000?HEAPU32[e>>2]=HEAPU32[e+4>>2]=4294967295:t<0?HEAPU32[e>>2]=HEAPU32[e+4>>2]=0:(HEAPU32[e>>2]=t,HEAPU32[e+4>>2]=(t-HEAPU32[e>>2])/4294967296)}function writeI53ToU64Signaling(e,t){if(t<0||t>0x10000000000000000)throw"RangeError:"+t;HEAPU32[e>>2]=t,HEAPU32[e+4>>2]=(t-HEAPU32[e>>2])/4294967296}function readI53FromU64(e){return HEAPU32[e>>2]+4294967296*HEAPU32[e+4>>2]}function convertI32PairToI53Checked(e,t){return t+2097152>>>0<4194305-!!e?(e>>>0)+4294967296*t:NaN}function getCFunc(e){return Module["_"+e]}function ccall(e,t,_,r,n){var o={string:e=>{var t=0;if(null!=e&&0!==e){var _=1+(e.length<<2);stringToUTF8(e,t=stackAlloc(_),_)}return t},array:e=>{var t=stackAlloc(e.length);return writeArrayToMemory(e,t),t}};var l=getCFunc(e),i=[],a=0;if(r)for(var u=0;u"number"===e||"boolean"===e));return"string"!==t&&n&&!r?getCFunc(e):function(){return ccall(e,t,_,arguments,r)}}function removeFunction(e){functionsInTableMap.delete(getWasmTableEntry(e)),freeTableIndexes.push(e)}function _emscripten_math_cbrt(e){return Math.cbrt(e)}function _emscripten_math_pow(e,t){return Math.pow(e,t)}function _emscripten_math_random(){return Math.random()}function _emscripten_math_sign(e){return Math.sign(e)}function _emscripten_math_sqrt(e){return Math.sqrt(e)}function _emscripten_math_exp(e){return Math.exp(e)}function _emscripten_math_expm1(e){return Math.expm1(e)}function _emscripten_math_fmod(e,t){return e%t}function _emscripten_math_log(e){return Math.log(e)}function _emscripten_math_log1p(e){return Math.log1p(e)}function _emscripten_math_log10(e){return Math.log10(e)}function _emscripten_math_log2(e){return Math.log2(e)}function _emscripten_math_round(e){return Math.round(e)}function _emscripten_math_acos(e){return Math.acos(e)}function _emscripten_math_acosh(e){return Math.acosh(e)}function _emscripten_math_asin(e){return Math.asin(e)}function _emscripten_math_asinh(e){return Math.asinh(e)}function _emscripten_math_atan(e){return Math.atan(e)}function _emscripten_math_atanh(e){return Math.atanh(e)}function _emscripten_math_atan2(e,t){return Math.atan2(e,t)}function _emscripten_math_cos(e){return Math.cos(e)}function _emscripten_math_cosh(e){return Math.cosh(e)}function _emscripten_math_hypot(e,t){for(var _=[],r=0;r>3)+r]);return Math.hypot.apply(null,_)}function _emscripten_math_sin(e){return Math.sin(e)}function _emscripten_math_sinh(e){return Math.sinh(e)}function _emscripten_math_tan(e){return Math.tan(e)}function _emscripten_math_tanh(e){return Math.tanh(e)}function intArrayToString(e){for(var t=[],_=0;_255&&(r&=255),t.push(String.fromCharCode(r))}return t.join("")}function AsciiToString(e){for(var t="";;){var _=HEAPU8[e++|0];if(!_)return t;t+=String.fromCharCode(_)}}function stringToAscii(e,t){return writeAsciiToMemory(e,t,!1)}Module.ASSERTIONS=ASSERTIONS,Module.writeI53ToI64Clamped=writeI53ToI64Clamped,Module.writeI53ToI64Signaling=writeI53ToI64Signaling,Module.writeI53ToU64Clamped=writeI53ToU64Clamped,Module.writeI53ToU64Signaling=writeI53ToU64Signaling,Module.readI53FromU64=readI53FromU64,Module.convertI32PairToI53Checked=convertI32PairToI53Checked,Module.getCFunc=getCFunc,Module.ccall=ccall,Module.cwrap=cwrap,Module.removeFunction=removeFunction,Module._emscripten_math_cbrt=_emscripten_math_cbrt,Module._emscripten_math_pow=_emscripten_math_pow,Module._emscripten_math_random=_emscripten_math_random,Module._emscripten_math_sign=_emscripten_math_sign,Module._emscripten_math_sqrt=_emscripten_math_sqrt,Module._emscripten_math_exp=_emscripten_math_exp,Module._emscripten_math_expm1=_emscripten_math_expm1,Module._emscripten_math_fmod=_emscripten_math_fmod,Module._emscripten_math_log=_emscripten_math_log,Module._emscripten_math_log1p=_emscripten_math_log1p,Module._emscripten_math_log10=_emscripten_math_log10,Module._emscripten_math_log2=_emscripten_math_log2,Module._emscripten_math_round=_emscripten_math_round,Module._emscripten_math_acos=_emscripten_math_acos,Module._emscripten_math_acosh=_emscripten_math_acosh,Module._emscripten_math_asin=_emscripten_math_asin,Module._emscripten_math_asinh=_emscripten_math_asinh,Module._emscripten_math_atan=_emscripten_math_atan,Module._emscripten_math_atanh=_emscripten_math_atanh,Module._emscripten_math_atan2=_emscripten_math_atan2,Module._emscripten_math_cos=_emscripten_math_cos,Module._emscripten_math_cosh=_emscripten_math_cosh,Module._emscripten_math_hypot=_emscripten_math_hypot,_emscripten_math_hypot.sig="iip",Module._emscripten_math_sin=_emscripten_math_sin,Module._emscripten_math_sinh=_emscripten_math_sinh,Module._emscripten_math_tan=_emscripten_math_tan,Module._emscripten_math_tanh=_emscripten_math_tanh,Module.intArrayToString=intArrayToString,Module.AsciiToString=AsciiToString,Module.stringToAscii=stringToAscii;var UTF16Decoder="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0;function UTF16ToString(e,t){for(var _=e,r=_>>1,n=r+t/2;!(r>=n)&&HEAPU16[r];)++r;if((_=r<<1)-e>32&&UTF16Decoder)return UTF16Decoder.decode(HEAPU8.subarray(e,_));for(var o="",l=0;!(l>=t/2);++l){var i=HEAP16[e+2*l>>1];if(0==i)break;o+=String.fromCharCode(i)}return o}function stringToUTF16(e,t,_){if(void 0===_&&(_=2147483647),_<2)return 0;for(var r=t,n=(_-=2)<2*e.length?_/2:e.length,o=0;o>1]=l,t+=2}return HEAP16[t>>1]=0,t-r}function lengthBytesUTF16(e){return 2*e.length}function UTF32ToString(e,t){for(var _=0,r="";!(_>=t/4);){var n=HEAP32[e+4*_>>2];if(0==n)break;if(++_,n>=65536){var o=n-65536;r+=String.fromCharCode(55296|o>>10,56320|1023&o)}else r+=String.fromCharCode(n)}return r}function stringToUTF32(e,t,_){if(void 0===_&&(_=2147483647),_<4)return 0;for(var r=t,n=r+_-4,o=0;o=55296&&l<=57343)l=65536+((1023&l)<<10)|1023&e.charCodeAt(++o);if(HEAP32[t>>2]=l,(t+=4)+4>n)break}return HEAP32[t>>2]=0,t-r}function lengthBytesUTF32(e){for(var t=0,_=0;_=55296&&r<=57343&&++_,t+=4}return t}function writeStringToMemory(e,t,_){var r,n;warnOnce("writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!"),_&&(n=t+lengthBytesUTF8(e),r=HEAP8[n]),stringToUTF8(e,t,1/0),_&&(HEAP8[n]=r)}function ___syscall_rename(e,t){try{return e=SYSCALLS.getStr(e),t=SYSCALLS.getStr(t),FS.rename(e,t),0}catch(e){if(void 0===FS||"ErrnoError"!==e.name)throw e;return-e.errno}}Module.UTF16Decoder=UTF16Decoder,Module.UTF16ToString=UTF16ToString,Module.stringToUTF16=stringToUTF16,Module.lengthBytesUTF16=lengthBytesUTF16,Module.UTF32ToString=UTF32ToString,Module.stringToUTF32=stringToUTF32,Module.lengthBytesUTF32=lengthBytesUTF32,Module.writeStringToMemory=writeStringToMemory,Module.___syscall_rename=___syscall_rename,___syscall_rename.sig="ipp";var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var e=JSEvents.eventHandlers.length-1;e>=0;--e)JSEvents._removeHandler(e);JSEvents.eventHandlers=[],JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){JSEvents.removeEventListenersRegistered||(__ATEXIT__.push(JSEvents.removeAllEventListeners),JSEvents.removeEventListenersRegistered=!0)},deferredCalls:[],deferCall:function(e,t,_){function r(e,t){if(e.length!=t.length)return!1;for(var _ in e)if(e[_]!=t[_])return!1;return!0}for(var n in JSEvents.deferredCalls){var o=JSEvents.deferredCalls[n];if(o.targetFunction==e&&r(o.argsList,_))return}JSEvents.deferredCalls.push({targetFunction:e,precedence:t,argsList:_}),JSEvents.deferredCalls.sort((function(e,t){return e.precedence2?UTF8ToString(e):e}Module.JSEvents=JSEvents,Module.maybeCStringToJsString=maybeCStringToJsString;var specialHTMLTargets=[0,"undefined"!=typeof document?document:0,"undefined"!=typeof window?window:0];function findEventTarget(e){return e=maybeCStringToJsString(e),specialHTMLTargets[e]||("undefined"!=typeof document?document.querySelector(e):void 0)}function registerKeyEventCallback(e,t,_,r,n,o,l){JSEvents.keyEvent||(JSEvents.keyEvent=_malloc(176));var i={target:findEventTarget(e),allowsDeferredCalls:!0,eventTypeString:o,callbackfunc:r,handlerFunc:function(e){var _=JSEvents.keyEvent;HEAPF64[_>>3]=e.timeStamp;var o=_>>2;HEAP32[o+2]=e.location,HEAP32[o+3]=e.ctrlKey,HEAP32[o+4]=e.shiftKey,HEAP32[o+5]=e.altKey,HEAP32[o+6]=e.metaKey,HEAP32[o+7]=e.repeat,HEAP32[o+8]=e.charCode,HEAP32[o+9]=e.keyCode,HEAP32[o+10]=e.which,stringToUTF8(e.key||"",_+44,32),stringToUTF8(e.code||"",_+76,32),stringToUTF8(e.char||"",_+108,32),stringToUTF8(e.locale||"",_+140,32),getWasmTableEntry(r)(n,_,t)&&e.preventDefault()},useCapture:_};JSEvents.registerOrRemoveHandler(i)}function findCanvasEventTarget(e){return findEventTarget(e)}function _emscripten_set_keypress_callback_on_thread(e,t,_,r,n){return registerKeyEventCallback(e,t,_,r,1,"keypress",n),0}function _emscripten_set_keydown_callback_on_thread(e,t,_,r,n){return registerKeyEventCallback(e,t,_,r,2,"keydown",n),0}function _emscripten_set_keyup_callback_on_thread(e,t,_,r,n){return registerKeyEventCallback(e,t,_,r,3,"keyup",n),0}function getBoundingClientRect(e){return specialHTMLTargets.indexOf(e)<0?e.getBoundingClientRect():{left:0,top:0}}function fillMouseEventData(e,t,_){HEAPF64[e>>3]=t.timeStamp;var r=e>>2;HEAP32[r+2]=t.screenX,HEAP32[r+3]=t.screenY,HEAP32[r+4]=t.clientX,HEAP32[r+5]=t.clientY,HEAP32[r+6]=t.ctrlKey,HEAP32[r+7]=t.shiftKey,HEAP32[r+8]=t.altKey,HEAP32[r+9]=t.metaKey,HEAP16[2*r+20]=t.button,HEAP16[2*r+21]=t.buttons,HEAP32[r+11]=t.movementX,HEAP32[r+12]=t.movementY;var n=getBoundingClientRect(_);HEAP32[r+13]=t.clientX-n.left,HEAP32[r+14]=t.clientY-n.top}function registerMouseEventCallback(e,t,_,r,n,o,l){JSEvents.mouseEvent||(JSEvents.mouseEvent=_malloc(72));var i={target:e=findEventTarget(e),allowsDeferredCalls:"mousemove"!=o&&"mouseenter"!=o&&"mouseleave"!=o,eventTypeString:o,callbackfunc:r,handlerFunc:function(_=event){fillMouseEventData(JSEvents.mouseEvent,_,e),getWasmTableEntry(r)(n,JSEvents.mouseEvent,t)&&_.preventDefault()},useCapture:_};JSEvents.registerOrRemoveHandler(i)}function _emscripten_set_click_callback_on_thread(e,t,_,r,n){return registerMouseEventCallback(e,t,_,r,4,"click",n),0}function _emscripten_set_mousedown_callback_on_thread(e,t,_,r,n){return registerMouseEventCallback(e,t,_,r,5,"mousedown",n),0}function _emscripten_set_mouseup_callback_on_thread(e,t,_,r,n){return registerMouseEventCallback(e,t,_,r,6,"mouseup",n),0}function _emscripten_set_dblclick_callback_on_thread(e,t,_,r,n){return registerMouseEventCallback(e,t,_,r,7,"dblclick",n),0}function _emscripten_set_mousemove_callback_on_thread(e,t,_,r,n){return registerMouseEventCallback(e,t,_,r,8,"mousemove",n),0}function _emscripten_set_mouseenter_callback_on_thread(e,t,_,r,n){return registerMouseEventCallback(e,t,_,r,33,"mouseenter",n),0}function _emscripten_set_mouseleave_callback_on_thread(e,t,_,r,n){return registerMouseEventCallback(e,t,_,r,34,"mouseleave",n),0}function _emscripten_set_mouseover_callback_on_thread(e,t,_,r,n){return registerMouseEventCallback(e,t,_,r,35,"mouseover",n),0}function _emscripten_set_mouseout_callback_on_thread(e,t,_,r,n){return registerMouseEventCallback(e,t,_,r,36,"mouseout",n),0}function _emscripten_get_mouse_status(e){return JSEvents.mouseEvent?(HEAP8.set(HEAP8.subarray(JSEvents.mouseEvent,JSEvents.mouseEvent+72),e),0):-7}function registerWheelEventCallback(e,t,_,r,n,o,l){JSEvents.wheelEvent||(JSEvents.wheelEvent=_malloc(104));var i={target:e,allowsDeferredCalls:!0,eventTypeString:o,callbackfunc:r,handlerFunc:function(_=event){var o=JSEvents.wheelEvent;fillMouseEventData(o,_,e),HEAPF64[o+72>>3]=_.deltaX,HEAPF64[o+80>>3]=_.deltaY,HEAPF64[o+88>>3]=_.deltaZ,HEAP32[o+96>>2]=_.deltaMode,getWasmTableEntry(r)(n,o,t)&&_.preventDefault()},useCapture:_};JSEvents.registerOrRemoveHandler(i)}function _emscripten_set_wheel_callback_on_thread(e,t,_,r,n){return void 0!==(e=findEventTarget(e)).onwheel?(registerWheelEventCallback(e,t,_,r,9,"wheel",n),0):-1}function registerUiEventCallback(e,t,_,r,n,o,l){JSEvents.uiEvent||(JSEvents.uiEvent=_malloc(36));var i={target:e=findEventTarget(e),eventTypeString:o,callbackfunc:r,handlerFunc:function(_=event){if(_.target==e){var o=document.body;if(o){var l=JSEvents.uiEvent;HEAP32[l>>2]=_.detail,HEAP32[l+4>>2]=o.clientWidth,HEAP32[l+8>>2]=o.clientHeight,HEAP32[l+12>>2]=innerWidth,HEAP32[l+16>>2]=innerHeight,HEAP32[l+20>>2]=outerWidth,HEAP32[l+24>>2]=outerHeight,HEAP32[l+28>>2]=pageXOffset,HEAP32[l+32>>2]=pageYOffset,getWasmTableEntry(r)(n,l,t)&&_.preventDefault()}}},useCapture:_};JSEvents.registerOrRemoveHandler(i)}function _emscripten_set_resize_callback_on_thread(e,t,_,r,n){return registerUiEventCallback(e,t,_,r,10,"resize",n),0}function _emscripten_set_scroll_callback_on_thread(e,t,_,r,n){return registerUiEventCallback(e,t,_,r,11,"scroll",n),0}function registerFocusEventCallback(e,t,_,r,n,o,l){JSEvents.focusEvent||(JSEvents.focusEvent=_malloc(256));var i={target:findEventTarget(e),eventTypeString:o,callbackfunc:r,handlerFunc:function(e=event){var _=JSEvents.getNodeNameForTarget(e.target),o=e.target.id?e.target.id:"",l=JSEvents.focusEvent;stringToUTF8(_,l+0,128),stringToUTF8(o,l+128,128),getWasmTableEntry(r)(n,l,t)&&e.preventDefault()},useCapture:_};JSEvents.registerOrRemoveHandler(i)}function _emscripten_set_blur_callback_on_thread(e,t,_,r,n){return registerFocusEventCallback(e,t,_,r,12,"blur",n),0}function _emscripten_set_focus_callback_on_thread(e,t,_,r,n){return registerFocusEventCallback(e,t,_,r,13,"focus",n),0}function _emscripten_set_focusin_callback_on_thread(e,t,_,r,n){return registerFocusEventCallback(e,t,_,r,14,"focusin",n),0}function _emscripten_set_focusout_callback_on_thread(e,t,_,r,n){return registerFocusEventCallback(e,t,_,r,15,"focusout",n),0}function fillDeviceOrientationEventData(e,t,_){HEAPF64[e>>3]=t.alpha,HEAPF64[e+8>>3]=t.beta,HEAPF64[e+16>>3]=t.gamma,HEAP32[e+24>>2]=t.absolute}function registerDeviceOrientationEventCallback(e,t,_,r,n,o,l){JSEvents.deviceOrientationEvent||(JSEvents.deviceOrientationEvent=_malloc(32));var i={target:findEventTarget(e),eventTypeString:o,callbackfunc:r,handlerFunc:function(_=event){fillDeviceOrientationEventData(JSEvents.deviceOrientationEvent,_,e),getWasmTableEntry(r)(n,JSEvents.deviceOrientationEvent,t)&&_.preventDefault()},useCapture:_};JSEvents.registerOrRemoveHandler(i)}function _emscripten_set_deviceorientation_callback_on_thread(e,t,_,r){return registerDeviceOrientationEventCallback(2,e,t,_,16,"deviceorientation",r),0}function _emscripten_get_deviceorientation_status(e){return JSEvents.deviceOrientationEvent?(HEAP32.set(HEAP32.subarray(JSEvents.deviceOrientationEvent,32),e),0):-7}function fillDeviceMotionEventData(e,t,_){var r=t.acceleration;var n=t.accelerationIncludingGravity;var o=t.rotationRate;r=r||{},n=n||{},o=o||{},HEAPF64[e>>3]=r.x,HEAPF64[e+8>>3]=r.y,HEAPF64[e+16>>3]=r.z,HEAPF64[e+24>>3]=n.x,HEAPF64[e+32>>3]=n.y,HEAPF64[e+40>>3]=n.z,HEAPF64[e+48>>3]=o.alpha,HEAPF64[e+56>>3]=o.beta,HEAPF64[e+64>>3]=o.gamma}function registerDeviceMotionEventCallback(e,t,_,r,n,o,l){JSEvents.deviceMotionEvent||(JSEvents.deviceMotionEvent=_malloc(80));var i={target:findEventTarget(e),eventTypeString:o,callbackfunc:r,handlerFunc:function(_=event){fillDeviceMotionEventData(JSEvents.deviceMotionEvent,_,e),getWasmTableEntry(r)(n,JSEvents.deviceMotionEvent,t)&&_.preventDefault()},useCapture:_};JSEvents.registerOrRemoveHandler(i)}function _emscripten_set_devicemotion_callback_on_thread(e,t,_,r){return registerDeviceMotionEventCallback(2,e,t,_,17,"devicemotion",r),0}function _emscripten_get_devicemotion_status(e){return JSEvents.deviceMotionEvent?(HEAP32.set(HEAP32.subarray(JSEvents.deviceMotionEvent,80),e),0):-7}function screenOrientation(){if(screen)return screen.orientation||screen.mozOrientation||screen.webkitOrientation||screen.msOrientation}function fillOrientationChangeEventData(e){var t=screenOrientation(),_=["portrait-primary","portrait-secondary","landscape-primary","landscape-secondary"].indexOf(t);-1==_&&(_=["portrait","portrait","landscape","landscape"].indexOf(t)),HEAP32[e>>2]=1<<_,HEAP32[e+4>>2]=_}function registerOrientationChangeEventCallback(e,t,_,r,n,o,l){JSEvents.orientationChangeEvent||(JSEvents.orientationChangeEvent=_malloc(8));"orientationchange"==o&&void 0!==screen.mozOrientation&&(o="mozorientationchange");var i={target:e,eventTypeString:o,callbackfunc:r,handlerFunc:function(e=event){var _=JSEvents.orientationChangeEvent;fillOrientationChangeEventData(_),getWasmTableEntry(r)(n,_,t)&&e.preventDefault()},useCapture:_};JSEvents.registerOrRemoveHandler(i)}function _emscripten_set_orientationchange_callback_on_thread(e,t,_,r){return screen&&screen.addEventListener?(registerOrientationChangeEventCallback(screen,e,t,_,18,"orientationchange",r),0):-1}function _emscripten_get_orientation_status(e){return screenOrientation()||"undefined"!=typeof orientation?(fillOrientationChangeEventData(e),0):-1}function _emscripten_lock_orientation(e){var t,_=[];if(1&e&&_.push("portrait-primary"),2&e&&_.push("portrait-secondary"),4&e&&_.push("landscape-primary"),8&e&&_.push("landscape-secondary"),screen.lockOrientation)t=screen.lockOrientation(_);else if(screen.mozLockOrientation)t=screen.mozLockOrientation(_);else if(screen.webkitLockOrientation)t=screen.webkitLockOrientation(_);else{if(!screen.msLockOrientation)return-1;t=screen.msLockOrientation(_)}return t?0:-6}function _emscripten_unlock_orientation(){if(screen.unlockOrientation)screen.unlockOrientation();else if(screen.mozUnlockOrientation)screen.mozUnlockOrientation();else if(screen.webkitUnlockOrientation)screen.webkitUnlockOrientation();else{if(!screen.msUnlockOrientation)return-1;screen.msUnlockOrientation()}return 0}function fillFullscreenChangeEventData(e){var t=document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.msFullscreenElement,_=!!t;HEAP32[e>>2]=_,HEAP32[e+4>>2]=JSEvents.fullscreenEnabled();var r=_?t:JSEvents.previousFullscreenElement,n=JSEvents.getNodeNameForTarget(r),o=r&&r.id?r.id:"";stringToUTF8(n,e+8,128),stringToUTF8(o,e+136,128),HEAP32[e+264>>2]=r?r.clientWidth:0,HEAP32[e+268>>2]=r?r.clientHeight:0,HEAP32[e+272>>2]=screen.width,HEAP32[e+276>>2]=screen.height,_&&(JSEvents.previousFullscreenElement=t)}function registerFullscreenChangeEventCallback(e,t,_,r,n,o,l){JSEvents.fullscreenChangeEvent||(JSEvents.fullscreenChangeEvent=_malloc(280));var i={target:e,eventTypeString:o,callbackfunc:r,handlerFunc:function(e=event){var _=JSEvents.fullscreenChangeEvent;fillFullscreenChangeEventData(_),getWasmTableEntry(r)(n,_,t)&&e.preventDefault()},useCapture:_};JSEvents.registerOrRemoveHandler(i)}function _emscripten_set_fullscreenchange_callback_on_thread(e,t,_,r,n){return JSEvents.fullscreenEnabled()?(e=findEventTarget(e))?(registerFullscreenChangeEventCallback(e,t,_,r,19,"fullscreenchange",n),registerFullscreenChangeEventCallback(e,t,_,r,19,"webkitfullscreenchange",n),0):-4:-1}function _emscripten_get_fullscreen_status(e){return JSEvents.fullscreenEnabled()?(fillFullscreenChangeEventData(e),0):-1}function _emscripten_get_canvas_element_size(e,t,_){var r=findCanvasEventTarget(e);if(!r)return-4;HEAP32[t>>2]=r.width,HEAP32[_>>2]=r.height}function getCanvasElementSize(e){return withStackSave((function(){var t=stackAlloc(8),_=t+4,r=stackAlloc(e.id.length+1);stringToUTF8(e.id,r,e.id.length+1);_emscripten_get_canvas_element_size(r,t,_);return[HEAP32[t>>2],HEAP32[_>>2]]}))}function _emscripten_set_canvas_element_size(e,t,_){var r=findCanvasEventTarget(e);return r?(r.width=t,r.height=_,0):-4}function setCanvasElementSize(e,t,_){e.controlTransferredOffscreen?withStackSave((function(){var r=stackAlloc(e.id.length+1);stringToUTF8(e.id,r,e.id.length+1),_emscripten_set_canvas_element_size(r,t,_)})):(e.width=t,e.height=_)}function registerRestoreOldStyle(e){var t=getCanvasElementSize(e),_=t[0],r=t[1],n=e.style.width,o=e.style.height,l=e.style.backgroundColor,i=document.body.style.backgroundColor,a=e.style.paddingLeft,u=e.style.paddingRight,s=e.style.paddingTop,c=e.style.paddingBottom,d=e.style.marginLeft,p=e.style.marginRight,y=e.style.marginTop,m=e.style.marginBottom,f=document.body.style.margin,M=document.documentElement.style.overflow,g=document.body.scroll,P=e.style.imageRendering;function h(){document.fullscreenElement||document.webkitFullscreenElement||(document.removeEventListener("fullscreenchange",h),document.removeEventListener("webkitfullscreenchange",h),setCanvasElementSize(e,_,r),e.style.width=n,e.style.height=o,e.style.backgroundColor=l,i||(document.body.style.backgroundColor="white"),document.body.style.backgroundColor=i,e.style.paddingLeft=a,e.style.paddingRight=u,e.style.paddingTop=s,e.style.paddingBottom=c,e.style.marginLeft=d,e.style.marginRight=p,e.style.marginTop=y,e.style.marginBottom=m,document.body.style.margin=f,document.documentElement.style.overflow=M,document.body.scroll=g,e.style.imageRendering=P,e.GLctxObject&&e.GLctxObject.GLctx.viewport(0,0,_,r),currentFullscreenStrategy.canvasResizedCallback&&getWasmTableEntry(currentFullscreenStrategy.canvasResizedCallback)(37,0,currentFullscreenStrategy.canvasResizedCallbackUserData))}return document.addEventListener("fullscreenchange",h),document.addEventListener("webkitfullscreenchange",h),h}function setLetterbox(e,t,_){e.style.paddingLeft=e.style.paddingRight=_+"px",e.style.paddingTop=e.style.paddingBottom=t+"px"}function JSEvents_resizeCanvasForFullscreen(e,t){var _=registerRestoreOldStyle(e),r=t.softFullscreen?innerWidth:screen.width,n=t.softFullscreen?innerHeight:screen.height,o=getBoundingClientRect(e),l=o.width,i=o.height,a=getCanvasElementSize(e),u=a[0],s=a[1];if(3==t.scaleMode)setLetterbox(e,(n-i)/2,(r-l)/2),r=l,n=i;else if(2==t.scaleMode)if(r*sd*u&&(a=u*d/p|0),e=(i-u)/2|0),n&&(setCanvasElementSize(s,a,u),s.GLctxObject&&s.GLctxObject.GLctx.viewport(0,0,a,u)),_&&(e/=t,a/=t,u/=t,a=Math.round(1e4*a)/1e4,u=Math.round(1e4*u)/1e4,e=Math.round(1e4*e)/1e4),o)?setLetterbox(s,(innerHeight-jstoi_q(s.style.height))/2,(innerWidth-jstoi_q(s.style.width))/2):(s.style.width=a+"px",s.style.height=u+"px",setLetterbox(s,e,(innerWidth-a)/2));!o&¤tFullscreenStrategy.canvasResizedCallback&&getWasmTableEntry(currentFullscreenStrategy.canvasResizedCallback)(37,0,currentFullscreenStrategy.canvasResizedCallbackUserData)}function doRequestFullscreen(e,t){return JSEvents.fullscreenEnabled()?(e=findEventTarget(e))?e.requestFullscreen||e.webkitRequestFullscreen?JSEvents.canPerformEventHandlerRequests()?JSEvents_requestFullscreen(e,t):t.deferUntilInEventHandler?(JSEvents.deferCall(JSEvents_requestFullscreen,1,[e,t]),1):-2:-3:-4:-1}function _emscripten_request_fullscreen(e,t){return doRequestFullscreen(e,{scaleMode:0,canvasResolutionScaleMode:0,filteringMode:0,deferUntilInEventHandler:t,canvasResizedCallbackTargetThread:2})}function _emscripten_request_fullscreen_strategy(e,t,_){return doRequestFullscreen(e,{scaleMode:HEAP32[_>>2],canvasResolutionScaleMode:HEAP32[_+4>>2],filteringMode:HEAP32[_+8>>2],deferUntilInEventHandler:t,canvasResizedCallback:HEAP32[_+12>>2],canvasResizedCallbackUserData:HEAP32[_+16>>2]})}function _emscripten_enter_soft_fullscreen(e,t){if(!(e=findEventTarget(e)))return-4;var _={scaleMode:HEAP32[t>>2],canvasResolutionScaleMode:HEAP32[t+4>>2],filteringMode:HEAP32[t+8>>2],canvasResizedCallback:HEAP32[t+12>>2],canvasResizedCallbackUserData:HEAP32[t+16>>2],target:e,softFullscreen:!0},r=JSEvents_resizeCanvasForFullscreen(e,_);document.documentElement.style.overflow="hidden",document.body.scroll="no",document.body.style.margin="0px";var n=hideEverythingExceptGivenElement(e);return restoreOldWindowedStyle=function(){r(),restoreHiddenElements(n),removeEventListener("resize",softFullscreenResizeWebGLRenderTarget),_.canvasResizedCallback&&getWasmTableEntry(_.canvasResizedCallback)(37,0,_.canvasResizedCallbackUserData),currentFullscreenStrategy=0},currentFullscreenStrategy=_,addEventListener("resize",softFullscreenResizeWebGLRenderTarget),_.canvasResizedCallback&&getWasmTableEntry(_.canvasResizedCallback)(37,0,_.canvasResizedCallbackUserData),0}function _emscripten_exit_soft_fullscreen(){return restoreOldWindowedStyle&&restoreOldWindowedStyle(),restoreOldWindowedStyle=null,0}function _emscripten_exit_fullscreen(){if(!JSEvents.fullscreenEnabled())return-1;JSEvents.removeDeferredCalls(JSEvents_requestFullscreen);var e=specialHTMLTargets[1];if(e.exitFullscreen)e.fullscreenElement&&e.exitFullscreen();else{if(!e.webkitExitFullscreen)return-1;e.webkitFullscreenElement&&e.webkitExitFullscreen()}return 0}function fillPointerlockChangeEventData(e){var t=document.pointerLockElement||document.mozPointerLockElement||document.webkitPointerLockElement||document.msPointerLockElement,_=!!t;HEAP32[e>>2]=_;var r=JSEvents.getNodeNameForTarget(t),n=t&&t.id?t.id:"";stringToUTF8(r,e+4,128),stringToUTF8(n,e+132,128)}function registerPointerlockChangeEventCallback(e,t,_,r,n,o,l){JSEvents.pointerlockChangeEvent||(JSEvents.pointerlockChangeEvent=_malloc(260));var i={target:e,eventTypeString:o,callbackfunc:r,handlerFunc:function(e=event){var _=JSEvents.pointerlockChangeEvent;fillPointerlockChangeEventData(_),getWasmTableEntry(r)(n,_,t)&&e.preventDefault()},useCapture:_};JSEvents.registerOrRemoveHandler(i)}function _emscripten_set_pointerlockchange_callback_on_thread(e,t,_,r,n){return document&&document.body&&(document.body.requestPointerLock||document.body.mozRequestPointerLock||document.body.webkitRequestPointerLock||document.body.msRequestPointerLock)?(e=findEventTarget(e))?(registerPointerlockChangeEventCallback(e,t,_,r,20,"pointerlockchange",n),registerPointerlockChangeEventCallback(e,t,_,r,20,"mozpointerlockchange",n),registerPointerlockChangeEventCallback(e,t,_,r,20,"webkitpointerlockchange",n),registerPointerlockChangeEventCallback(e,t,_,r,20,"mspointerlockchange",n),0):-4:-1}function registerPointerlockErrorEventCallback(e,t,_,r,n,o,l){var i={target:e,eventTypeString:o,callbackfunc:r,handlerFunc:function(e=event){getWasmTableEntry(r)(n,0,t)&&e.preventDefault()},useCapture:_};JSEvents.registerOrRemoveHandler(i)}function _emscripten_set_pointerlockerror_callback_on_thread(e,t,_,r,n){return document&&(document.body.requestPointerLock||document.body.mozRequestPointerLock||document.body.webkitRequestPointerLock||document.body.msRequestPointerLock)?(e=findEventTarget(e))?(registerPointerlockErrorEventCallback(e,t,_,r,38,"pointerlockerror",n),registerPointerlockErrorEventCallback(e,t,_,r,38,"mozpointerlockerror",n),registerPointerlockErrorEventCallback(e,t,_,r,38,"webkitpointerlockerror",n),registerPointerlockErrorEventCallback(e,t,_,r,38,"mspointerlockerror",n),0):-4:-1}function _emscripten_get_pointerlock_status(e){return e&&fillPointerlockChangeEventData(e),document.body&&(document.body.requestPointerLock||document.body.mozRequestPointerLock||document.body.webkitRequestPointerLock||document.body.msRequestPointerLock)?0:-1}function requestPointerLock(e){return e.requestPointerLock?(e.requestPointerLock(),0):document.body.requestPointerLock?-3:-1}function _emscripten_request_pointerlock(e,t){return(e=findEventTarget(e))?e.requestPointerLock?JSEvents.canPerformEventHandlerRequests()?requestPointerLock(e):t?(JSEvents.deferCall(requestPointerLock,2,[e]),1):-2:-1:-4}function _emscripten_exit_pointerlock(){return JSEvents.removeDeferredCalls(requestPointerLock),document.exitPointerLock?(document.exitPointerLock(),0):-1}function _emscripten_vibrate(e){return navigator.vibrate?(navigator.vibrate(e),0):-1}function _emscripten_vibrate_pattern(e,t){if(!navigator.vibrate)return-1;for(var _=[],r=0;r>2];_.push(n)}return navigator.vibrate(_),0}function fillVisibilityChangeEventData(e){var t=["hidden","visible","prerender","unloaded"].indexOf(document.visibilityState);HEAP32[e>>2]=document.hidden,HEAP32[e+4>>2]=t}function registerVisibilityChangeEventCallback(e,t,_,r,n,o,l){JSEvents.visibilityChangeEvent||(JSEvents.visibilityChangeEvent=_malloc(8));var i={target:e,eventTypeString:o,callbackfunc:r,handlerFunc:function(e=event){var _=JSEvents.visibilityChangeEvent;fillVisibilityChangeEventData(_),getWasmTableEntry(r)(n,_,t)&&e.preventDefault()},useCapture:_};JSEvents.registerOrRemoveHandler(i)}function _emscripten_set_visibilitychange_callback_on_thread(e,t,_,r){return specialHTMLTargets[1]?(registerVisibilityChangeEventCallback(specialHTMLTargets[1],e,t,_,21,"visibilitychange",r),0):-4}function _emscripten_get_visibility_status(e){return void 0===document.visibilityState&&void 0===document.hidden?-1:(fillVisibilityChangeEventData(e),0)}function registerTouchEventCallback(e,t,_,r,n,o,l){JSEvents.touchEvent||(JSEvents.touchEvent=_malloc(1696));var i={target:e=findEventTarget(e),allowsDeferredCalls:"touchstart"==o||"touchend"==o,eventTypeString:o,callbackfunc:r,handlerFunc:function(_){for(var o,l={},i=_.touches,a=0;a>3]=_.timeStamp;var s=u>>2;HEAP32[s+3]=_.ctrlKey,HEAP32[s+4]=_.shiftKey,HEAP32[s+5]=_.altKey,HEAP32[s+6]=_.metaKey,s+=7;var c=getBoundingClientRect(e),d=0;for(var a in l)if(o=l[a],HEAP32[s+0]=o.identifier,HEAP32[s+1]=o.screenX,HEAP32[s+2]=o.screenY,HEAP32[s+3]=o.clientX,HEAP32[s+4]=o.clientY,HEAP32[s+5]=o.pageX,HEAP32[s+6]=o.pageY,HEAP32[s+7]=o.isChanged,HEAP32[s+8]=o.onTarget,HEAP32[s+9]=o.clientX-c.left,HEAP32[s+10]=o.clientY-c.top,s+=13,++d>31)break;HEAP32[u+8>>2]=d,getWasmTableEntry(r)(n,u,t)&&_.preventDefault()},useCapture:_};JSEvents.registerOrRemoveHandler(i)}function _emscripten_set_touchstart_callback_on_thread(e,t,_,r,n){return registerTouchEventCallback(e,t,_,r,22,"touchstart",n),0}function _emscripten_set_touchend_callback_on_thread(e,t,_,r,n){return registerTouchEventCallback(e,t,_,r,23,"touchend",n),0}function _emscripten_set_touchmove_callback_on_thread(e,t,_,r,n){return registerTouchEventCallback(e,t,_,r,24,"touchmove",n),0}function _emscripten_set_touchcancel_callback_on_thread(e,t,_,r,n){return registerTouchEventCallback(e,t,_,r,25,"touchcancel",n),0}function fillGamepadEventData(e,t){HEAPF64[e>>3]=t.timestamp;for(var _=0;_>3]=t.axes[_];for(_=0;_>3]=t.buttons[_].value:HEAPF64[e+8*_+528>>3]=t.buttons[_];for(_=0;_>2]=t.buttons[_].pressed:HEAP32[e+4*_+1040>>2]=1==t.buttons[_];HEAP32[e+1296>>2]=t.connected,HEAP32[e+1300>>2]=t.index,HEAP32[e+8>>2]=t.axes.length,HEAP32[e+12>>2]=t.buttons.length,stringToUTF8(t.id,e+1304,64),stringToUTF8(t.mapping,e+1368,64)}function registerGamepadEventCallback(e,t,_,r,n,o,l){JSEvents.gamepadEvent||(JSEvents.gamepadEvent=_malloc(1432));var i={target:findEventTarget(e),allowsDeferredCalls:!0,eventTypeString:o,callbackfunc:r,handlerFunc:function(e=event){var _=JSEvents.gamepadEvent;fillGamepadEventData(_,e.gamepad),getWasmTableEntry(r)(n,_,t)&&e.preventDefault()},useCapture:_};JSEvents.registerOrRemoveHandler(i)}function _emscripten_set_gamepadconnected_callback_on_thread(e,t,_,r){return navigator.getGamepads||navigator.webkitGetGamepads?(registerGamepadEventCallback(2,e,t,_,26,"gamepadconnected",r),0):-1}function _emscripten_set_gamepaddisconnected_callback_on_thread(e,t,_,r){return navigator.getGamepads||navigator.webkitGetGamepads?(registerGamepadEventCallback(2,e,t,_,27,"gamepaddisconnected",r),0):-1}function _emscripten_sample_gamepad_data(){return(JSEvents.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads():null)?0:-1}function _emscripten_get_num_gamepads(){return JSEvents.lastGamepadState.length}function _emscripten_get_gamepad_status(e,t){return e<0||e>=JSEvents.lastGamepadState.length?-5:JSEvents.lastGamepadState[e]?(fillGamepadEventData(t,JSEvents.lastGamepadState[e]),0):-7}function registerBeforeUnloadEventCallback(e,t,_,r,n,o){var l={target:findEventTarget(e),eventTypeString:o,callbackfunc:r,handlerFunc:function(e=event){var _=getWasmTableEntry(r)(n,0,t);if(_&&(_=UTF8ToString(_)),_)return e.preventDefault(),e.returnValue=_,_},useCapture:_};JSEvents.registerOrRemoveHandler(l)}function _emscripten_set_beforeunload_callback_on_thread(e,t,_){return"undefined"==typeof onbeforeunload?-1:1!==_?-5:(registerBeforeUnloadEventCallback(2,e,!0,t,28,"beforeunload"),0)}function fillBatteryEventData(e,t){HEAPF64[e>>3]=t.chargingTime,HEAPF64[e+8>>3]=t.dischargingTime,HEAPF64[e+16>>3]=t.level,HEAP32[e+24>>2]=t.charging}function battery(){return navigator.battery||navigator.mozBattery||navigator.webkitBattery}function registerBatteryEventCallback(e,t,_,r,n,o,l){JSEvents.batteryEvent||(JSEvents.batteryEvent=_malloc(32));var i={target:findEventTarget(e),eventTypeString:o,callbackfunc:r,handlerFunc:function(e=event){var _=JSEvents.batteryEvent;fillBatteryEventData(_,battery()),getWasmTableEntry(r)(n,_,t)&&e.preventDefault()},useCapture:_};JSEvents.registerOrRemoveHandler(i)}function _emscripten_set_batterychargingchange_callback_on_thread(e,t,_){return battery()?(registerBatteryEventCallback(battery(),e,!0,t,29,"chargingchange",_),0):-1}function _emscripten_set_batterylevelchange_callback_on_thread(e,t,_){return battery()?(registerBatteryEventCallback(battery(),e,!0,t,30,"levelchange",_),0):-1}function _emscripten_get_battery_status(e){return battery()?(fillBatteryEventData(e,battery()),0):-1}function _emscripten_set_element_css_size(e,t,_){return(e=findEventTarget(e))?(e.style.width=t+"px",e.style.height=_+"px",0):-4}function _emscripten_get_element_css_size(e,t,_){if(!(e=findEventTarget(e)))return-4;var r=getBoundingClientRect(e);return HEAPF64[t>>3]=r.width,HEAPF64[_>>3]=r.height,0}function _emscripten_html5_remove_all_event_listeners(){JSEvents.removeAllEventListeners()}function _emscripten_request_animation_frame(e,t){return requestAnimationFrame((function(_){getWasmTableEntry(e)(_,t)}))}function _emscripten_cancel_animation_frame(e){cancelAnimationFrame(e)}function _emscripten_request_animation_frame_loop(e,t){return requestAnimationFrame((function _(r){getWasmTableEntry(e)(r,t)&&requestAnimationFrame(_)}))}function _emscripten_performance_now(){return performance.now()}function _emscripten_get_device_pixel_ratio(){return"number"==typeof devicePixelRatio&&devicePixelRatio||1}function checkWasiClock(e){return 0==e||1==e||2==e||3==e}function _clock_time_get(e,t,_){if(!checkWasiClock(e))return 28;var r;if(0===e)r=Date.now();else{if(!nowIsMonotonic)return 52;r=_emscripten_get_now()}var n=Math.round(1e3*r*1e3);return HEAP32[_>>2]=n>>>0,HEAP32[_+4>>2]=n/Math.pow(2,32)>>>0,0}function _clock_res_get(e,t){if(!checkWasiClock(e))return 28;var _;if(0===e)_=1e6;else{if(!nowIsMonotonic)return 52;_=_emscripten_get_now_res()}return HEAP32[t>>2]=_>>>0,HEAP32[t+4>>2]=_/Math.pow(2,32)>>>0,0}function __dlsym_catchup_js(e,t){var _=LDSO.loadedLibsByHandle[e].module,r=_[Object.keys(_)[t]];return addFunction(r,r.sig)}function createDyncallWrapper(e){var t=[];t.push([0,97,115,109,1,0,0,0]);var _=[3];generateFuncType([e[0].replace("j","i"),"i",e.slice(1).replace(/j/g,"ii")].join(""),_),generateFuncType(e,_),generateFuncType("vi",_);var r=[1];uleb128Encode(_.length,r),r.push.apply(r,_),t.push(r);t.push([2,15,2,1,101,1,116,1,112,0,0,1,101,1,114,0,2]);t.push([3,2,1,0]);t.push([7,5,1,1,102,0,1]);var n=[];function o(e){n.push(32),uleb128Encode(e,n)}"j"===e[0]?n=[1,1,126]:n.push(0);for(var l=1,i=1;i{setImmediateWrapped.mapping[t]=void 0,e()})),t}function clearImmediateWrapped(e){clearImmediate(setImmediateWrapped.mapping[e]),setImmediateWrapped.mapping[e]=void 0}function polyfillSetImmediate(){}function _emscripten_set_immediate(e,t){return polyfillSetImmediate(),emSetImmediate((function(){callUserCallback((function(){getWasmTableEntry(e)(t)}))}))}function _emscripten_clear_immediate(e){emClearImmediate(e)}function _emscripten_set_immediate_loop(e,t){polyfillSetImmediate(),emSetImmediate((function _(){callUserCallback((function(){getWasmTableEntry(e)(t)&&emSetImmediate(_)}))}))}function _emscripten_set_timeout(e,t,_){return safeSetTimeout((()=>getWasmTableEntry(e)(_)),t)}function _emscripten_clear_timeout(e){clearTimeout(e)}function _emscripten_set_timeout_loop(e,t,_){return setTimeout((function r(){var n=performance.now(),o=n+t;callUserCallback((function(){getWasmTableEntry(e)(n,_)&&setTimeout(r,o-performance.now())}))}),0)}function _emscripten_set_interval(e,t,_){return setInterval((function(){callUserCallback((function(){getWasmTableEntry(e)(_)}))}),t)}function _emscripten_clear_interval(e){clearInterval(e)}function makePromiseCallback(e,t){return _=>{var r=stackSave(),n=stackAlloc(POINTER_SIZE);HEAPU32[n>>2]=0;try{var o=getWasmTableEntry(e)(n,t,_),l=HEAPU32[n>>2]}catch(e){if("number"!=typeof e)throw 0;throw e}finally{stackRestore(r)}switch(o){case 0:return l;case 1:return getPromise(l);case 2:var i=getPromise(l);return _emscripten_promise_destroy(l),i;case 3:throw l}}}function _emscripten_promise_then(e,t,_,r){var n=getPromise(e);return promiseMap.allocate({promise:n.then(makePromiseCallback(t,r),makePromiseCallback(_,r))})}function _emscripten_promise_all(e,t,_){for(var r=[],n=0;n<_;n++){var o=HEAP32[e+4*n>>2];r[n]=getPromise(o)}o=promiseMap.allocate({promise:Promise.all(r).then((e=>{if(t)for(var r=0;r<_;r++){var n=e[r];HEAPU32[t+4*r>>2]=n}return t}))});return o}function _llvm_eh_typeid_for(e){return e}function ___cxa_get_exception_ptr(e){return new ExceptionInfo(e).get_exception_ptr()}function ___cxa_call_unexpected(e){throw err("Unexpected exception thrown, this is not properly supported - aborting"),ABORT=!0,e}function _emscripten_set_main_loop_timing(e,t){if(Browser.mainLoop.timingMode=e,Browser.mainLoop.timingValue=t,!Browser.mainLoop.func)return 1;if(Browser.mainLoop.running||(Browser.mainLoop.running=!0),0==e)Browser.mainLoop.scheduler=function(){var e=0|Math.max(0,Browser.mainLoop.tickStartTime+t-_emscripten_get_now());setTimeout(Browser.mainLoop.runner,e)},Browser.mainLoop.method="timeout";else if(1==e)Browser.mainLoop.scheduler=function(){Browser.requestAnimationFrame(Browser.mainLoop.runner)},Browser.mainLoop.method="rAF";else if(2==e){if("undefined"==typeof setImmediate){var _=[],r="setimmediate";addEventListener("message",(e=>{e.data!==r&&e.data.target!==r||(e.stopPropagation(),_.shift()())}),!0),setImmediate=function(e){_.push(e),ENVIRONMENT_IS_WORKER?(void 0===Module.setImmediates&&(Module.setImmediates=[]),Module.setImmediates.push(e),postMessage({target:r})):postMessage(r,"*")}}Browser.mainLoop.scheduler=function(){setImmediate(Browser.mainLoop.runner)},Browser.mainLoop.method="immediate"}return 0}function setMainLoop(e,t,_,r,n){assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters."),Browser.mainLoop.func=e,Browser.mainLoop.arg=r;var o=Browser.mainLoop.currentlyRunningMainloop;function l(){return!(o0){var t=Date.now(),_=Browser.mainLoop.queue.shift();if(_.func(_.arg),Browser.mainLoop.remainingBlockers){var r=Browser.mainLoop.remainingBlockers,n=r%1==0?r-1:Math.floor(r);_.counted?Browser.mainLoop.remainingBlockers=n:(n+=.5,Browser.mainLoop.remainingBlockers=(8*r+n)/9)}if(out('main loop blocker "'+_.name+'" took '+(Date.now()-t)+" ms"),Browser.mainLoop.updateStatus(),!l())return;setTimeout(Browser.mainLoop.runner,0)}else l()&&(Browser.mainLoop.currentFrameNumber=Browser.mainLoop.currentFrameNumber+1|0,1==Browser.mainLoop.timingMode&&Browser.mainLoop.timingValue>1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0?Browser.mainLoop.scheduler():(0==Browser.mainLoop.timingMode&&(Browser.mainLoop.tickStartTime=_emscripten_get_now()),Browser.mainLoop.runIter(e),l()&&("object"==typeof SDL&&SDL.audio&&SDL.audio.queueNewAudioData&&SDL.audio.queueNewAudioData(),Browser.mainLoop.scheduler())))},n||(t&&t>0?_emscripten_set_main_loop_timing(0,1e3/t):_emscripten_set_main_loop_timing(1,1),Browser.mainLoop.scheduler()),_)throw"unwind"}Module.restoreOldWindowedStyle=restoreOldWindowedStyle,Module.softFullscreenResizeWebGLRenderTarget=softFullscreenResizeWebGLRenderTarget,Module.doRequestFullscreen=doRequestFullscreen,Module._emscripten_request_fullscreen=_emscripten_request_fullscreen,_emscripten_request_fullscreen.sig="iii",Module._emscripten_request_fullscreen_strategy=_emscripten_request_fullscreen_strategy,_emscripten_request_fullscreen_strategy.sig="iiii",Module._emscripten_enter_soft_fullscreen=_emscripten_enter_soft_fullscreen,_emscripten_enter_soft_fullscreen.sig="iii",Module._emscripten_exit_soft_fullscreen=_emscripten_exit_soft_fullscreen,_emscripten_exit_soft_fullscreen.sig="i",Module._emscripten_exit_fullscreen=_emscripten_exit_fullscreen,_emscripten_exit_fullscreen.sig="i",Module.fillPointerlockChangeEventData=fillPointerlockChangeEventData,Module.registerPointerlockChangeEventCallback=registerPointerlockChangeEventCallback,Module._emscripten_set_pointerlockchange_callback_on_thread=_emscripten_set_pointerlockchange_callback_on_thread,_emscripten_set_pointerlockchange_callback_on_thread.sig="iiiiii",Module.registerPointerlockErrorEventCallback=registerPointerlockErrorEventCallback,Module._emscripten_set_pointerlockerror_callback_on_thread=_emscripten_set_pointerlockerror_callback_on_thread,_emscripten_set_pointerlockerror_callback_on_thread.sig="iiiiii",Module._emscripten_get_pointerlock_status=_emscripten_get_pointerlock_status,_emscripten_get_pointerlock_status.sig="ii",Module.requestPointerLock=requestPointerLock,Module._emscripten_request_pointerlock=_emscripten_request_pointerlock,_emscripten_request_pointerlock.sig="iii",Module._emscripten_exit_pointerlock=_emscripten_exit_pointerlock,_emscripten_exit_pointerlock.sig="i",Module._emscripten_vibrate=_emscripten_vibrate,_emscripten_vibrate.sig="ii",Module._emscripten_vibrate_pattern=_emscripten_vibrate_pattern,_emscripten_vibrate_pattern.sig="iii",Module.fillVisibilityChangeEventData=fillVisibilityChangeEventData,Module.registerVisibilityChangeEventCallback=registerVisibilityChangeEventCallback,Module._emscripten_set_visibilitychange_callback_on_thread=_emscripten_set_visibilitychange_callback_on_thread,_emscripten_set_visibilitychange_callback_on_thread.sig="iiiii",Module._emscripten_get_visibility_status=_emscripten_get_visibility_status,_emscripten_get_visibility_status.sig="ii",Module.registerTouchEventCallback=registerTouchEventCallback,Module._emscripten_set_touchstart_callback_on_thread=_emscripten_set_touchstart_callback_on_thread,_emscripten_set_touchstart_callback_on_thread.sig="iiiiii",Module._emscripten_set_touchend_callback_on_thread=_emscripten_set_touchend_callback_on_thread,_emscripten_set_touchend_callback_on_thread.sig="iiiiii",Module._emscripten_set_touchmove_callback_on_thread=_emscripten_set_touchmove_callback_on_thread,_emscripten_set_touchmove_callback_on_thread.sig="iiiiii",Module._emscripten_set_touchcancel_callback_on_thread=_emscripten_set_touchcancel_callback_on_thread,_emscripten_set_touchcancel_callback_on_thread.sig="iiiiii",Module.fillGamepadEventData=fillGamepadEventData,Module.registerGamepadEventCallback=registerGamepadEventCallback,Module._emscripten_set_gamepadconnected_callback_on_thread=_emscripten_set_gamepadconnected_callback_on_thread,_emscripten_set_gamepadconnected_callback_on_thread.sig="iiiii",Module._emscripten_set_gamepaddisconnected_callback_on_thread=_emscripten_set_gamepaddisconnected_callback_on_thread,_emscripten_set_gamepaddisconnected_callback_on_thread.sig="iiiii",Module._emscripten_sample_gamepad_data=_emscripten_sample_gamepad_data,_emscripten_sample_gamepad_data.sig="i",Module._emscripten_get_num_gamepads=_emscripten_get_num_gamepads,_emscripten_get_num_gamepads.sig="i",Module._emscripten_get_gamepad_status=_emscripten_get_gamepad_status,_emscripten_get_gamepad_status.sig="iii",Module.registerBeforeUnloadEventCallback=registerBeforeUnloadEventCallback,Module._emscripten_set_beforeunload_callback_on_thread=_emscripten_set_beforeunload_callback_on_thread,_emscripten_set_beforeunload_callback_on_thread.sig="iii",Module.fillBatteryEventData=fillBatteryEventData,Module.battery=battery,Module.registerBatteryEventCallback=registerBatteryEventCallback,Module._emscripten_set_batterychargingchange_callback_on_thread=_emscripten_set_batterychargingchange_callback_on_thread,_emscripten_set_batterychargingchange_callback_on_thread.sig="iii",Module._emscripten_set_batterylevelchange_callback_on_thread=_emscripten_set_batterylevelchange_callback_on_thread,_emscripten_set_batterylevelchange_callback_on_thread.sig="iii",Module._emscripten_get_battery_status=_emscripten_get_battery_status,_emscripten_get_battery_status.sig="ii",Module._emscripten_set_element_css_size=_emscripten_set_element_css_size,_emscripten_set_element_css_size.sig="iiii",Module._emscripten_get_element_css_size=_emscripten_get_element_css_size,_emscripten_get_element_css_size.sig="iiii",Module._emscripten_html5_remove_all_event_listeners=_emscripten_html5_remove_all_event_listeners,_emscripten_html5_remove_all_event_listeners.sig="v",Module._emscripten_request_animation_frame=_emscripten_request_animation_frame,Module._emscripten_cancel_animation_frame=_emscripten_cancel_animation_frame,Module._emscripten_request_animation_frame_loop=_emscripten_request_animation_frame_loop,Module._emscripten_performance_now=_emscripten_performance_now,Module._emscripten_get_device_pixel_ratio=_emscripten_get_device_pixel_ratio,_emscripten_get_device_pixel_ratio.sig="d",Module.checkWasiClock=checkWasiClock,Module._clock_time_get=_clock_time_get,_clock_time_get.sig="iijp",Module._clock_res_get=_clock_res_get,_clock_res_get.sig="iip",Module.__dlsym_catchup_js=__dlsym_catchup_js,__dlsym_catchup_js.sig="ppp",Module.createDyncallWrapper=createDyncallWrapper,Module._emscripten_unwind_to_js_event_loop=_emscripten_unwind_to_js_event_loop,Module.setImmediateWrapped=setImmediateWrapped,Module.clearImmediateWrapped=clearImmediateWrapped,Module.polyfillSetImmediate=polyfillSetImmediate,Module._emscripten_set_immediate=_emscripten_set_immediate,_emscripten_set_immediate.sig="ipp",Module._emscripten_clear_immediate=_emscripten_clear_immediate,_emscripten_clear_immediate.sig="vi",Module._emscripten_set_immediate_loop=_emscripten_set_immediate_loop,_emscripten_set_immediate_loop.sig="ipp",Module._emscripten_set_timeout=_emscripten_set_timeout,_emscripten_set_timeout.sig="ipdp",Module._emscripten_clear_timeout=_emscripten_clear_timeout,_emscripten_clear_timeout.sig="vi",Module._emscripten_set_timeout_loop=_emscripten_set_timeout_loop,_emscripten_set_timeout_loop.sig="vpdp",Module._emscripten_set_interval=_emscripten_set_interval,_emscripten_set_interval.sig="ipdp",Module._emscripten_clear_interval=_emscripten_clear_interval,_emscripten_clear_interval.sig="vi",Module.makePromiseCallback=makePromiseCallback,Module._emscripten_promise_then=_emscripten_promise_then,_emscripten_promise_then.sig="ppppp",Module._emscripten_promise_all=_emscripten_promise_all,_emscripten_promise_all.sig="pppp",Module._llvm_eh_typeid_for=_llvm_eh_typeid_for,_llvm_eh_typeid_for.sig="ip",Module.___cxa_get_exception_ptr=___cxa_get_exception_ptr,___cxa_get_exception_ptr.sig="pp",Module.___cxa_call_unexpected=___cxa_call_unexpected,Module._emscripten_set_main_loop_timing=_emscripten_set_main_loop_timing,_emscripten_set_main_loop_timing.sig="iii",Module.setMainLoop=setMainLoop;var Browser={mainLoop:{running:!1,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Browser.mainLoop.scheduler=null,Browser.mainLoop.currentlyRunningMainloop++},resume:function(){Browser.mainLoop.currentlyRunningMainloop++;var e=Browser.mainLoop.timingMode,t=Browser.mainLoop.timingValue,_=Browser.mainLoop.func;Browser.mainLoop.func=null,setMainLoop(_,0,!1,Browser.mainLoop.arg,!0),_emscripten_set_main_loop_timing(e,t),Browser.mainLoop.scheduler()},updateStatus:function(){if(Module.setStatus){var e=Module.statusMessage||"Please wait...",t=Browser.mainLoop.remainingBlockers,_=Browser.mainLoop.expectedBlockers;t?t<_?Module.setStatus(e+" ("+(_-t)+"/"+_+")"):Module.setStatus(e):Module.setStatus("")}},runIter:function(e){if(!ABORT){if(Module.preMainLoop)if(!1===Module.preMainLoop())return;callUserCallback(e),Module.postMainLoop&&Module.postMainLoop()}}},isFullscreen:!1,pointerLock:!1,moduleContextCreatedCallbacks:[],workers:[],init:function(){if(Module.preloadPlugins||(Module.preloadPlugins=[]),!Browser.initted){Browser.initted=!0;try{new Blob,Browser.hasBlobConstructor=!0}catch(e){Browser.hasBlobConstructor=!1,err("warning: no blob constructor, cannot create blobs with mimetypes")}Browser.BlobBuilder="undefined"!=typeof MozBlobBuilder?MozBlobBuilder:"undefined"!=typeof WebKitBlobBuilder?WebKitBlobBuilder:Browser.hasBlobConstructor?null:err("warning: no BlobBuilder"),Browser.URLObject="undefined"!=typeof window?window.URL?window.URL:window.webkitURL:void 0,Module.noImageDecoding||void 0!==Browser.URLObject||(err("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available."),Module.noImageDecoding=!0);var e={canHandle:function(e){return!Module.noImageDecoding&&/\.(jpg|jpeg|png|bmp)$/i.test(e)},handle:function(e,t,_,r){var n=null;if(Browser.hasBlobConstructor)try{(n=new Blob([e],{type:Browser.getMimetype(t)})).size!==e.length&&(n=new Blob([new Uint8Array(e).buffer],{type:Browser.getMimetype(t)}))}catch(e){warnOnce("Blob constructor present but fails: "+e+"; falling back to blob builder")}if(!n){var o=new Browser.BlobBuilder;o.append(new Uint8Array(e).buffer),n=o.getBlob()}var l=Browser.URLObject.createObjectURL(n),i=new Image;i.onload=()=>{assert(i.complete,"Image "+t+" could not be decoded");var r=document.createElement("canvas");r.width=i.width,r.height=i.height,r.getContext("2d").drawImage(i,0,0),preloadedImages[t]=r,Browser.URLObject.revokeObjectURL(l),_&&_(e)},i.onerror=e=>{out("Image "+l+" could not be decoded"),r&&r()},i.src=l}};Module.preloadPlugins.push(e);var t={canHandle:function(e){return!Module.noAudioDecoding&&e.substr(-4)in{".ogg":1,".wav":1,".mp3":1}},handle:function(e,t,_,r){var n=!1;function o(r){n||(n=!0,preloadedAudios[t]=r,_&&_(e))}function l(){n||(n=!0,preloadedAudios[t]=new Audio,r&&r())}if(!Browser.hasBlobConstructor)return l();try{var i=new Blob([e],{type:Browser.getMimetype(t)})}catch(e){return l()}var a=Browser.URLObject.createObjectURL(i),u=new Audio;u.addEventListener("canplaythrough",(()=>o(u)),!1),u.onerror=function(_){n||(err("warning: browser could not fully decode audio "+t+", trying slower base64 approach"),u.src="data:audio/x-"+t.substr(-3)+";base64,"+function(e){for(var t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",_="",r=0,n=0,o=0;o=6;){var l=r>>n-6&63;n-=6,_+=t[l]}return 2==n?(_+=t[(3&r)<<4],_+="=="):4==n&&(_+=t[(15&r)<<2],_+="="),_}(e),o(u))},u.src=a,safeSetTimeout((function(){o(u)}),1e4)}};Module.preloadPlugins.push(t);var _={asyncWasmLoadPromise:new Promise((function(e,t){return e()})),canHandle:function(e){return!Module.noWasmDecoding&&e.endsWith(".so")},handle:function(e,t,r,n){_.asyncWasmLoadPromise=_.asyncWasmLoadPromise.then((()=>loadWebAssemblyModule(e,{loadAsync:!0,nodelete:!0}))).then((e=>{preloadedWasm[t]=e,r()}),(e=>{console.warn("Couldn't instantiate wasm: "+t+" '"+e+"'"),n()}))}};Module.preloadPlugins.push(_);var r=Module.canvas;r&&(r.requestPointerLock=r.requestPointerLock||r.mozRequestPointerLock||r.webkitRequestPointerLock||r.msRequestPointerLock||(()=>{}),r.exitPointerLock=document.exitPointerLock||document.mozExitPointerLock||document.webkitExitPointerLock||document.msExitPointerLock||(()=>{}),r.exitPointerLock=r.exitPointerLock.bind(document),document.addEventListener("pointerlockchange",n,!1),document.addEventListener("mozpointerlockchange",n,!1),document.addEventListener("webkitpointerlockchange",n,!1),document.addEventListener("mspointerlockchange",n,!1),Module.elementPointerLock&&r.addEventListener("click",(e=>{!Browser.pointerLock&&Module.canvas.requestPointerLock&&(Module.canvas.requestPointerLock(),e.preventDefault())}),!1))}function n(){Browser.pointerLock=document.pointerLockElement===Module.canvas||document.mozPointerLockElement===Module.canvas||document.webkitPointerLockElement===Module.canvas||document.msPointerLockElement===Module.canvas}},handledByPreloadPlugin:function(e,t,_,r){Browser.init();var n=!1;return Module.preloadPlugins.forEach((function(o){n||o.canHandle(t)&&(o.handle(e,t,_,r),n=!0)})),n},createContext:function(e,t,_,r){if(t&&Module.ctx&&e==Module.canvas)return Module.ctx;var n,o;if(t){var l={antialias:!1,alpha:!1,majorVersion:1};if(r)for(var i in r)l[i]=r[i];void 0!==GL&&(o=GL.createContext(e,l))&&(n=GL.getContext(o).GLctx)}else n=e.getContext("2d");return n?(_&&(t||assert(void 0===GLctx,"cannot set in module if GLctx is used, but we are a non-GL context that would replace it"),Module.ctx=n,t&&GL.makeContextCurrent(o),Module.useWebGL=t,Browser.moduleContextCreatedCallbacks.forEach((function(e){e()})),Browser.init()),n):null},destroyContext:function(e,t,_){},fullscreenHandlersInstalled:!1,lockPointer:void 0,resizeCanvas:void 0,requestFullscreen:function(e,t){Browser.lockPointer=e,Browser.resizeCanvas=t,void 0===Browser.lockPointer&&(Browser.lockPointer=!0),void 0===Browser.resizeCanvas&&(Browser.resizeCanvas=!1);var _=Module.canvas;function r(){Browser.isFullscreen=!1;var e=_.parentNode;(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===e?(_.exitFullscreen=Browser.exitFullscreen,Browser.lockPointer&&_.requestPointerLock(),Browser.isFullscreen=!0,Browser.resizeCanvas?Browser.setFullscreenCanvasSize():Browser.updateCanvasDimensions(_)):(e.parentNode.insertBefore(_,e),e.parentNode.removeChild(e),Browser.resizeCanvas?Browser.setWindowedCanvasSize():Browser.updateCanvasDimensions(_)),Module.onFullScreen&&Module.onFullScreen(Browser.isFullscreen),Module.onFullscreen&&Module.onFullscreen(Browser.isFullscreen)}Browser.fullscreenHandlersInstalled||(Browser.fullscreenHandlersInstalled=!0,document.addEventListener("fullscreenchange",r,!1),document.addEventListener("mozfullscreenchange",r,!1),document.addEventListener("webkitfullscreenchange",r,!1),document.addEventListener("MSFullscreenChange",r,!1));var n=document.createElement("div");_.parentNode.insertBefore(n,_),n.appendChild(_),n.requestFullscreen=n.requestFullscreen||n.mozRequestFullScreen||n.msRequestFullscreen||(n.webkitRequestFullscreen?()=>n.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT):null)||(n.webkitRequestFullScreen?()=>n.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT):null),n.requestFullscreen()},exitFullscreen:function(){return!!Browser.isFullscreen&&((document.exitFullscreen||document.cancelFullScreen||document.mozCancelFullScreen||document.msExitFullscreen||document.webkitCancelFullScreen||function(){}).apply(document,[]),!0)},nextRAF:0,fakeRequestAnimationFrame:function(e){var t=Date.now();if(0===Browser.nextRAF)Browser.nextRAF=t+1e3/60;else for(;t+2>=Browser.nextRAF;)Browser.nextRAF+=1e3/60;var _=Math.max(Browser.nextRAF-t,0);setTimeout(e,_)},requestAnimationFrame:function(e){"function"!=typeof requestAnimationFrame?(0,Browser.fakeRequestAnimationFrame)(e):requestAnimationFrame(e)},safeSetTimeout:function(e,t){return safeSetTimeout(e,t)},safeRequestAnimationFrame:function(e){return Browser.requestAnimationFrame((function(){callUserCallback(e)}))},getMimetype:function(e){return{jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",bmp:"image/bmp",ogg:"audio/ogg",wav:"audio/wav",mp3:"audio/mpeg"}[e.substr(e.lastIndexOf(".")+1)]},getUserMedia:function(e){window.getUserMedia||(window.getUserMedia=navigator.getUserMedia||navigator.mozGetUserMedia),window.getUserMedia(e)},getMovementX:function(e){return e.movementX||e.mozMovementX||e.webkitMovementX||0},getMovementY:function(e){return e.movementY||e.mozMovementY||e.webkitMovementY||0},getMouseWheelDelta:function(e){var t=0;switch(e.type){case"DOMMouseScroll":t=e.detail/3;break;case"mousewheel":t=e.wheelDelta/120;break;case"wheel":switch(t=e.deltaY,e.deltaMode){case 0:t/=100;break;case 1:t/=3;break;case 2:t*=80;break;default:throw"unrecognized mouse wheel delta mode: "+e.deltaMode}break;default:throw"unrecognized mouse wheel event: "+e.type}return t},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(e){if(Browser.pointerLock)"mousemove"!=e.type&&"mozMovementX"in e?Browser.mouseMovementX=Browser.mouseMovementY=0:(Browser.mouseMovementX=Browser.getMovementX(e),Browser.mouseMovementY=Browser.getMovementY(e)),"undefined"!=typeof SDL?(Browser.mouseX=SDL.mouseX+Browser.mouseMovementX,Browser.mouseY=SDL.mouseY+Browser.mouseMovementY):(Browser.mouseX+=Browser.mouseMovementX,Browser.mouseY+=Browser.mouseMovementY);else{var t=Module.canvas.getBoundingClientRect(),_=Module.canvas.width,r=Module.canvas.height,n=void 0!==window.scrollX?window.scrollX:window.pageXOffset,o=void 0!==window.scrollY?window.scrollY:window.pageYOffset;if("touchstart"===e.type||"touchend"===e.type||"touchmove"===e.type){var l=e.touch;if(void 0===l)return;var i=l.pageX-(n+t.left),a=l.pageY-(o+t.top),u={x:i*=_/t.width,y:a*=r/t.height};if("touchstart"===e.type)Browser.lastTouches[l.identifier]=u,Browser.touches[l.identifier]=u;else if("touchend"===e.type||"touchmove"===e.type){var s=Browser.touches[l.identifier];s||(s=u),Browser.lastTouches[l.identifier]=s,Browser.touches[l.identifier]=u}return}var c=e.pageX-(n+t.left),d=e.pageY-(o+t.top);c*=_/t.width,d*=r/t.height,Browser.mouseMovementX=c-Browser.mouseX,Browser.mouseMovementY=d-Browser.mouseY,Browser.mouseX=c,Browser.mouseY=d}},resizeListeners:[],updateResizeListeners:function(){var e=Module.canvas;Browser.resizeListeners.forEach((function(t){t(e.width,e.height)}))},setCanvasSize:function(e,t,_){var r=Module.canvas;Browser.updateCanvasDimensions(r,e,t),_||Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if("undefined"!=typeof SDL){var e=HEAPU32[SDL.screen>>2];e|=8388608,HEAP32[SDL.screen>>2]=e}Browser.updateCanvasDimensions(Module.canvas),Browser.updateResizeListeners()},setWindowedCanvasSize:function(){if("undefined"!=typeof SDL){var e=HEAPU32[SDL.screen>>2];e&=-8388609,HEAP32[SDL.screen>>2]=e}Browser.updateCanvasDimensions(Module.canvas),Browser.updateResizeListeners()},updateCanvasDimensions:function(e,t,_){t&&_?(e.widthNative=t,e.heightNative=_):(t=e.widthNative,_=e.heightNative);var r=t,n=_;if(Module.forcedAspectRatio&&Module.forcedAspectRatio>0&&(r/n{t&&getWasmTableEntry(t)(e)}),(()=>{_&&getWasmTableEntry(_)(e)}),!0),0):-1}function _emscripten_run_preload_plugins_data(e,t,_,r,n,o){var l=UTF8ToString(_);Browser.asyncPrepareDataCounter||(Browser.asyncPrepareDataCounter=0);var i="prepare_data_"+Browser.asyncPrepareDataCounter+++"."+l,a=lengthBytesUTF8(i),u=_malloc(a+1);stringToUTF8(i,u,a+1),FS.createPreloadedFile("/",i,HEAPU8.subarray(e,e+t),!0,!0,(()=>{n&&getWasmTableEntry(n)(r,u)}),(()=>{o&&getWasmTableEntry(o)(r)}),!0)}function _emscripten_async_run_script(e,t){safeSetTimeout((function(){_emscripten_run_script(e)}),t)}function _emscripten_async_load_script(e,t,_){t=getWasmTableEntry(t),_=getWasmTableEntry(_),assert(0===runDependencies,"async_load_script must be run when no other dependencies are active");var r=document.createElement("script");r.onload=function(){t&&(runDependencies>0?dependenciesFulfilled=t:t())},r.onerror=()=>{_&&_()},r.src=UTF8ToString(e),document.body.appendChild(r)}function _emscripten_get_main_loop_timing(e,t){e&&(HEAP32[e>>2]=Browser.mainLoop.timingMode),t&&(HEAP32[t>>2]=Browser.mainLoop.timingValue)}function _emscripten_set_main_loop(e,t,_){setMainLoop(getWasmTableEntry(e),t,_)}function _emscripten_set_main_loop_arg(e,t,_,r){setMainLoop((()=>getWasmTableEntry(e)(t)),_,r,t)}function _emscripten_cancel_main_loop(){Browser.mainLoop.pause(),Browser.mainLoop.func=null}function _emscripten_pause_main_loop(){Browser.mainLoop.pause()}function _emscripten_resume_main_loop(){Browser.mainLoop.resume()}function __emscripten_push_main_loop_blocker(e,t,_){Browser.mainLoop.queue.push({func:function(){getWasmTableEntry(e)(t)},name:UTF8ToString(_),counted:!0}),Browser.mainLoop.updateStatus()}function __emscripten_push_uncounted_main_loop_blocker(e,t,_){Browser.mainLoop.queue.push({func:function(){getWasmTableEntry(e)(t)},name:UTF8ToString(_),counted:!1}),Browser.mainLoop.updateStatus()}function _emscripten_set_main_loop_expected_blockers(e){Browser.mainLoop.expectedBlockers=e,Browser.mainLoop.remainingBlockers=e,Browser.mainLoop.updateStatus()}function _emscripten_async_call(e,t,_){function r(){getWasmTableEntry(e)(t)}_>=0||ENVIRONMENT_IS_NODE?safeSetTimeout(r,_):Browser.safeRequestAnimationFrame(r)}function _emscripten_get_window_title(){return _emscripten_get_window_title.buffer||(_emscripten_get_window_title.buffer=_malloc(256)),stringToUTF8(document.title,_emscripten_get_window_title.buffer,256),_emscripten_get_window_title.buffer}function _emscripten_set_window_title(e){setWindowTitle(UTF8ToString(e))}function _emscripten_get_screen_size(e,t){HEAP32[e>>2]=screen.width,HEAP32[t>>2]=screen.height}function _emscripten_hide_mouse(){for(var e=document.styleSheets[0],t=e.cssRules,_=0;_>2]=r.width,HEAP32[t>>2]=r.height,HEAP32[_>>2]=Browser.isFullscreen?1:0}function _emscripten_create_worker(e){e=UTF8ToString(e);var t=Browser.workers.length,_={worker:new Worker(e),callbacks:[],awaited:0,buffer:0,bufferSize:0};return _.worker.onmessage=function(e){if(!ABORT){var _=Browser.workers[t];if(_){var r=e.data.callbackId,n=_.callbacks[r];if(n){e.data.finalResponse&&(_.awaited--,_.callbacks[r]=null);var o=e.data.data;o?(o.byteLength||(o=new Uint8Array(o)),(!_.buffer||_.bufferSize>2]=r.width,HEAP32[_>>2]=r.height,o}return 0}function _emscripten_get_preloaded_image_data_from_FILE(e,t,_){var r=_fileno(e),n=FS.getStream(r);return n?_emscripten_get_preloaded_image_data(n.path,t,_):0}Module.Browser=Browser,Module._emscripten_run_preload_plugins=_emscripten_run_preload_plugins,_emscripten_run_preload_plugins.sig="iiii",Module._emscripten_run_preload_plugins_data=_emscripten_run_preload_plugins_data,_emscripten_run_preload_plugins_data.sig="viiiiii",Module._emscripten_async_run_script=_emscripten_async_run_script,Module._emscripten_async_load_script=_emscripten_async_load_script,Module._emscripten_get_main_loop_timing=_emscripten_get_main_loop_timing,_emscripten_get_main_loop_timing.sig="vii",Module._emscripten_set_main_loop=_emscripten_set_main_loop,_emscripten_set_main_loop.sig="viii",Module._emscripten_set_main_loop_arg=_emscripten_set_main_loop_arg,_emscripten_set_main_loop_arg.sig="viiii",Module._emscripten_cancel_main_loop=_emscripten_cancel_main_loop,_emscripten_cancel_main_loop.sig="v",Module._emscripten_pause_main_loop=_emscripten_pause_main_loop,_emscripten_pause_main_loop.sig="v",Module._emscripten_resume_main_loop=_emscripten_resume_main_loop,_emscripten_resume_main_loop.sig="v",Module.__emscripten_push_main_loop_blocker=__emscripten_push_main_loop_blocker,Module.__emscripten_push_uncounted_main_loop_blocker=__emscripten_push_uncounted_main_loop_blocker,Module._emscripten_set_main_loop_expected_blockers=_emscripten_set_main_loop_expected_blockers,_emscripten_set_main_loop_expected_blockers.sig="vi",Module._emscripten_async_call=_emscripten_async_call,_emscripten_async_call.sig="vppi",Module._emscripten_get_window_title=_emscripten_get_window_title,_emscripten_get_window_title.sig="iv",Module._emscripten_set_window_title=_emscripten_set_window_title,_emscripten_set_window_title.sig="vi",Module._emscripten_get_screen_size=_emscripten_get_screen_size,_emscripten_get_screen_size.sig="vii",Module._emscripten_hide_mouse=_emscripten_hide_mouse,_emscripten_hide_mouse.sig="v",Module._emscripten_set_canvas_size=_emscripten_set_canvas_size,_emscripten_set_canvas_size.sig="vii",Module._emscripten_get_canvas_size=_emscripten_get_canvas_size,_emscripten_get_canvas_size.sig="viii",Module._emscripten_create_worker=_emscripten_create_worker,_emscripten_create_worker.sig="ii",Module._emscripten_destroy_worker=_emscripten_destroy_worker,_emscripten_destroy_worker.sig="vi",Module._emscripten_call_worker=_emscripten_call_worker,_emscripten_call_worker.sig="viiiiii",Module._emscripten_get_worker_queue_size=_emscripten_get_worker_queue_size,_emscripten_get_worker_queue_size.sig="i",Module._emscripten_get_preloaded_image_data=_emscripten_get_preloaded_image_data,_emscripten_get_preloaded_image_data.sig="iiii",Module._emscripten_get_preloaded_image_data_from_FILE=_emscripten_get_preloaded_image_data_from_FILE,_emscripten_get_preloaded_image_data_from_FILE.sig="iiii";var wget={wgetRequests:{},nextWgetRequestHandle:0,getNextWgetRequestHandle:function(){var e=wget.nextWgetRequestHandle;return wget.nextWgetRequestHandle++,e}};function _emscripten_async_wget(e,t,_,r){var n=UTF8ToString(e),o=UTF8ToString(t);function l(e){e&&callUserCallback((function(){withStackSave((function(){getWasmTableEntry(e)(allocateUTF8OnStack(o))}))}))}o=PATH_FS.resolve(o);var i=PATH.dirname(o);FS.createPreloadedFile(i,PATH.basename(o),n,!0,!0,(function(){l(_)}),(function(){l(r)}),!1,!1,(function(){try{FS.unlink(o)}catch(e){}FS.mkdirTree(i)}))}function _emscripten_async_wget_data(e,t,_,r){asyncLoad(UTF8ToString(e),(function(e){callUserCallback((function(){var r=_malloc(e.length);HEAPU8.set(e,r),getWasmTableEntry(_)(t,r,e.length),_free(r)}))}),(function(){r&&callUserCallback((function(){getWasmTableEntry(r)(t)}))}),!0)}function _emscripten_async_wget2(e,t,_,r,n,o,l,i){var a=UTF8ToString(e),u=UTF8ToString(t);u=PATH_FS.resolve(u);var s=UTF8ToString(_),c=UTF8ToString(r),d=u.lastIndexOf("/"),p=new XMLHttpRequest;p.open(s,a,!0),p.responseType="arraybuffer";var y=wget.getNextWgetRequestHandle(),m=PATH.dirname(u);return p.onload=function(e){if(p.status>=200&&p.status<300){try{FS.unlink(u)}catch(e){}FS.mkdirTree(m),FS.createDataFile(u.substr(0,d),u.substr(d+1),new Uint8Array(p.response),!0,!0,!1),o&&withStackSave((function(){getWasmTableEntry(o)(y,n,allocateUTF8OnStack(u))}))}else l&&getWasmTableEntry(l)(y,n,p.status);delete wget.wgetRequests[y]},p.onerror=function(e){l&&getWasmTableEntry(l)(y,n,p.status),delete wget.wgetRequests[y]},p.onprogress=function(e){if(e.lengthComputable||void 0===e.lengthComputable&&0!=e.total){var t=e.loaded/e.total*100;i&&getWasmTableEntry(i)(y,n,t)}},p.onabort=function(e){delete wget.wgetRequests[y]},"POST"==s?(p.setRequestHeader("Content-type","application/x-www-form-urlencoded"),p.send(c)):p.send(null),wget.wgetRequests[y]=p,y}function _emscripten_async_wget2_data(e,t,_,r,n,o,l,i){var a=UTF8ToString(e),u=UTF8ToString(t),s=UTF8ToString(_),c=new XMLHttpRequest;c.open(u,a,!0),c.responseType="arraybuffer";var d=wget.getNextWgetRequestHandle();function p(){if(l){var e=0;if(c.statusText){var t=lengthBytesUTF8(c.statusText)+1;e=stackAlloc(t),stringToUTF8(c.statusText,e,t)}getWasmTableEntry(l)(d,r,c.status,e)}}return c.onload=function(e){if(c.status>=200&&c.status<300||0===c.status&&"http"!=a.substr(0,4).toLowerCase()){var t=new Uint8Array(c.response),_=_malloc(t.length);HEAPU8.set(t,_),o&&getWasmTableEntry(o)(d,r,_,t.length),n&&_free(_)}else p();delete wget.wgetRequests[d]},c.onerror=function(e){p(),delete wget.wgetRequests[d]},c.onprogress=function(e){i&&getWasmTableEntry(i)(d,r,e.loaded,e.lengthComputable||void 0===e.lengthComputable?e.total:0)},c.onabort=function(e){delete wget.wgetRequests[d]},"POST"==u?(c.setRequestHeader("Content-type","application/x-www-form-urlencoded"),c.send(s)):c.send(null),wget.wgetRequests[d]=c,d}function _emscripten_async_wget2_abort(e){var t=wget.wgetRequests[e];t&&t.abort()}function _setNetworkCallback(e,t,_){Module.websocket.on(e,_?function(r){try{"error"===e?withStackSave((function(){var e=allocateUTF8OnStack(r[2]);getWasmTableEntry(_)(r[0],r[1],e,t)})):getWasmTableEntry(_)(r,t)}catch(e){if(!(e instanceof ExitStatus))throw e&&"object"==typeof e&&e.stack&&err("exception thrown: "+[e,e.stack]),e}}:null)}function _emscripten_set_socket_error_callback(e,t){_setNetworkCallback("error",e,t)}function _emscripten_set_socket_open_callback(e,t){_setNetworkCallback("open",e,t)}function _emscripten_set_socket_listen_callback(e,t){_setNetworkCallback("listen",e,t)}function _emscripten_set_socket_connection_callback(e,t){_setNetworkCallback("connection",e,t)}function _emscripten_set_socket_message_callback(e,t){_setNetworkCallback("message",e,t)}function _emscripten_set_socket_close_callback(e,t){_setNetworkCallback("close",e,t)}Module.wget=wget,Module._emscripten_async_wget=_emscripten_async_wget,_emscripten_async_wget.sig="viiii",Module._emscripten_async_wget_data=_emscripten_async_wget_data,_emscripten_async_wget_data.sig="viiii",Module._emscripten_async_wget2=_emscripten_async_wget2,_emscripten_async_wget2.sig="iiiiiiiii",Module._emscripten_async_wget2_data=_emscripten_async_wget2_data,_emscripten_async_wget2_data.sig="iiiiiiiii",Module._emscripten_async_wget2_abort=_emscripten_async_wget2_abort,_emscripten_async_wget2_abort.sig="vi",Module._setNetworkCallback=_setNetworkCallback,Module._emscripten_set_socket_error_callback=_emscripten_set_socket_error_callback,Module._emscripten_set_socket_open_callback=_emscripten_set_socket_open_callback,Module._emscripten_set_socket_listen_callback=_emscripten_set_socket_listen_callback,Module._emscripten_set_socket_connection_callback=_emscripten_set_socket_connection_callback,Module._emscripten_set_socket_message_callback=_emscripten_set_socket_message_callback,Module._emscripten_set_socket_close_callback=_emscripten_set_socket_close_callback;var ALLOC_NORMAL=0;Module.ALLOC_NORMAL=ALLOC_NORMAL;var ALLOC_STACK=1;function allocate(e,t){var _;return _=t==ALLOC_STACK?stackAlloc(e.length):_malloc(e.length),e.subarray||e.slice||(e=new Uint8Array(e)),HEAPU8.set(e,_),_}function _emscripten_is_main_browser_thread(){return!ENVIRONMENT_IS_WORKER}Module.ALLOC_STACK=ALLOC_STACK,Module.allocate=allocate,Module._emscripten_is_main_browser_thread=_emscripten_is_main_browser_thread;var WS={sockets:[null],socketEvent:null};function _emscripten_websocket_get_ready_state(e,t){var _=WS.sockets[e];return _?(HEAP16[t>>1]=_.readyState,0):-3}function _emscripten_websocket_get_buffered_amount(e,t){var _=WS.sockets[e];return _?(tempI64=[_.bufferedAmount>>>0,(tempDouble=_.bufferedAmount,+Math.abs(tempDouble)>=1?tempDouble>0?(0|Math.min(+Math.floor(tempDouble/4294967296),4294967295))>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[t>>2]=tempI64[0],HEAP32[t+4>>2]=tempI64[1],0):-3}function _emscripten_websocket_get_extensions(e,t,_){var r=WS.sockets[e];return r?t?(stringToUTF8(r.extensions,t,_),0):-5:-3}function _emscripten_websocket_get_extensions_length(e,t){var _=WS.sockets[e];return _?t?(HEAP32[t>>2]=lengthBytesUTF8(_.extensions)+1,0):-5:-3}function _emscripten_websocket_get_protocol(e,t,_){var r=WS.sockets[e];return r?t?(stringToUTF8(r.protocol,t,_),0):-5:-3}function _emscripten_websocket_get_protocol_length(e,t){var _=WS.sockets[e];return _?t?(HEAP32[t>>2]=lengthBytesUTF8(_.protocol)+1,0):-5:-3}function _emscripten_websocket_get_url(e,t,_){var r=WS.sockets[e];return r?t?(stringToUTF8(r.url,t,_),0):-5:-3}function _emscripten_websocket_get_url_length(e,t){var _=WS.sockets[e];return _?t?(HEAP32[t>>2]=lengthBytesUTF8(_.url)+1,0):-5:-3}function _emscripten_websocket_set_onopen_callback_on_thread(e,t,_,r){WS.socketEvent||(WS.socketEvent=_malloc(1024));var n=WS.sockets[e];return n?(n.onopen=function(r){HEAPU32[WS.socketEvent>>2]=e,getWasmTableEntry(_)(0,WS.socketEvent,t)},0):-3}function _emscripten_websocket_set_onerror_callback_on_thread(e,t,_,r){WS.socketEvent||(WS.socketEvent=_malloc(1024));var n=WS.sockets[e];return n?(n.onerror=function(r){HEAPU32[WS.socketEvent>>2]=e,getWasmTableEntry(_)(0,WS.socketEvent,t)},0):-3}function _emscripten_websocket_set_onclose_callback_on_thread(e,t,_,r){WS.socketEvent||(WS.socketEvent=_malloc(1024));var n=WS.sockets[e];return n?(n.onclose=function(r){HEAPU32[WS.socketEvent>>2]=e,HEAPU32[WS.socketEvent+4>>2]=r.wasClean,HEAPU32[WS.socketEvent+8>>2]=r.code,stringToUTF8(r.reason,WS.socketEvent+10,512),getWasmTableEntry(_)(0,WS.socketEvent,t)},0):-3}function _emscripten_websocket_set_onmessage_callback_on_thread(e,t,_,r){WS.socketEvent||(WS.socketEvent=_malloc(1024));var n=WS.sockets[e];return n?(n.onmessage=function(r){if(HEAPU32[WS.socketEvent>>2]=e,"string"==typeof r.data){var n=lengthBytesUTF8(r.data)+1,o=_malloc(n);stringToUTF8(r.data,o,n),HEAPU32[WS.socketEvent+12>>2]=1}else{n=r.data.byteLength,o=_malloc(n);HEAP8.set(new Uint8Array(r.data),o),HEAPU32[WS.socketEvent+12>>2]=0}HEAPU32[WS.socketEvent+4>>2]=o,HEAPU32[WS.socketEvent+8>>2]=n,getWasmTableEntry(_)(0,WS.socketEvent,t),_free(o)},0):-3}function _emscripten_websocket_new(e){if("undefined"==typeof WebSocket)return-1;if(!e)return-5;var t=e>>2,_=UTF8ToString(HEAP32[t]),r=HEAP32[t+1],n=r?new WebSocket(_,UTF8ToString(r).split(",")):new WebSocket(_);n.binaryType="arraybuffer";var o=WS.sockets.length;return WS.sockets[o]=n,o}function _emscripten_websocket_send_utf8_text(e,t){var _=WS.sockets[e];if(!_)return-3;var r=UTF8ToString(t);return _.send(r),0}function _emscripten_websocket_send_binary(e,t,_){var r=WS.sockets[e];return r?(r.send(HEAPU8.subarray(t,t+_)),0):-3}function _emscripten_websocket_close(e,t,_){var r=WS.sockets[e];if(!r)return-3;_&&UTF8ToString(_);return _?r.close(t||void 0,UTF8ToString(_)):t?r.close(t):r.close(),0}function _emscripten_websocket_delete(e){var t=WS.sockets[e];return t?(t.onopen=t.onerror=t.onclose=t.onmessage=null,delete WS.sockets[e],0):-3}function _emscripten_websocket_is_supported(){return"undefined"!=typeof WebSocket}function _emscripten_websocket_deinitialize(){for(var e in WS.sockets){var t=WS.sockets[e];t&&(t.close(),_emscripten_websocket_delete(e))}WS.sockets=[]}function _emscripten_webgl_enable_ANGLE_instanced_arrays(e){return __webgl_enable_ANGLE_instanced_arrays(GL.contexts[e].GLctx)}function _emscripten_webgl_enable_OES_vertex_array_object(e){return __webgl_enable_OES_vertex_array_object(GL.contexts[e].GLctx)}function _emscripten_webgl_enable_WEBGL_draw_buffers(e){return __webgl_enable_WEBGL_draw_buffers(GL.contexts[e].GLctx)}function _emscripten_webgl_enable_WEBGL_multi_draw(e){return __webgl_enable_WEBGL_multi_draw(GL.contexts[e].GLctx)}function _glPixelStorei(e,t){3317==e&&(GL.unpackAlignment=t),GLctx.pixelStorei(e,t)}function _glGetString(e){var t=GL.stringCache[e];if(!t){switch(e){case 7939:var _=GLctx.getSupportedExtensions()||[];t=stringToNewUTF8((_=_.concat(_.map((function(e){return"GL_"+e})))).join(" "));break;case 7936:case 7937:case 37445:case 37446:var r=GLctx.getParameter(e);r||GL.recordError(1280),t=r&&stringToNewUTF8(r);break;case 7938:var n=GLctx.getParameter(7938);t=stringToNewUTF8(n="OpenGL ES 2.0 ("+n+")");break;case 35724:var o=GLctx.getParameter(35724),l=o.match(/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/);null!==l&&(3==l[1].length&&(l[1]=l[1]+"0"),o="OpenGL ES GLSL ES "+l[1]+" ("+o+")"),t=stringToNewUTF8(o);break;default:GL.recordError(1280)}GL.stringCache[e]=t}return t}function _glGetIntegerv(e,t){emscriptenWebGLGet(e,t,0)}function _glGetFloatv(e,t){emscriptenWebGLGet(e,t,2)}function _glGetBooleanv(e,t){emscriptenWebGLGet(e,t,4)}function _glDeleteTextures(e,t){for(var _=0;_>2],n=GL.textures[r];n&&(GLctx.deleteTexture(n),n.name=0,GL.textures[r]=null)}}function _glCompressedTexImage2D(e,t,_,r,n,o,l,i){GLctx.compressedTexImage2D(e,t,_,r,n,o,i?HEAPU8.subarray(i,i+l):null)}function _glCompressedTexSubImage2D(e,t,_,r,n,o,l,i,a){GLctx.compressedTexSubImage2D(e,t,_,r,n,o,l,a?HEAPU8.subarray(a,a+i):null)}function _glTexImage2D(e,t,_,r,n,o,l,i,a){GLctx.texImage2D(e,t,_,r,n,o,l,i,a?emscriptenWebGLGetTexPixelData(i,l,r,n,a,_):null)}function _glTexSubImage2D(e,t,_,r,n,o,l,i,a){var u=null;a&&(u=emscriptenWebGLGetTexPixelData(i,l,n,o,a,0)),GLctx.texSubImage2D(e,t,_,r,n,o,l,i,u)}function _glReadPixels(e,t,_,r,n,o,l){var i=emscriptenWebGLGetTexPixelData(o,n,_,r,l,n);i?GLctx.readPixels(e,t,_,r,n,o,i):GL.recordError(1280)}function _glBindTexture(e,t){GLctx.bindTexture(e,GL.textures[t])}function _glGetTexParameterfv(e,t,_){_?HEAPF32[_>>2]=GLctx.getTexParameter(e,t):GL.recordError(1281)}function _glGetTexParameteriv(e,t,_){_?HEAP32[_>>2]=GLctx.getTexParameter(e,t):GL.recordError(1281)}function _glTexParameterfv(e,t,_){var r=HEAPF32[_>>2];GLctx.texParameterf(e,t,r)}function _glTexParameteriv(e,t,_){var r=HEAP32[_>>2];GLctx.texParameteri(e,t,r)}function _glIsTexture(e){var t=GL.textures[e];return t?GLctx.isTexture(t):0}function _glGenBuffers(e,t){__glGenObject(e,t,"createBuffer",GL.buffers)}function _glGenTextures(e,t){__glGenObject(e,t,"createTexture",GL.textures)}function _glDeleteBuffers(e,t){for(var _=0;_>2],n=GL.buffers[r];n&&(GLctx.deleteBuffer(n),n.name=0,GL.buffers[r]=null)}}function _glGetBufferParameteriv(e,t,_){_?HEAP32[_>>2]=GLctx.getBufferParameter(e,t):GL.recordError(1281)}function _glBufferData(e,t,_,r){GLctx.bufferData(e,_?HEAPU8.subarray(_,_+t):t,r)}function _glBufferSubData(e,t,_,r){GLctx.bufferSubData(e,t,HEAPU8.subarray(r,r+_))}function _glGenQueriesEXT(e,t){for(var _=0;_>2]=0;return}var n=GL.getNewId(GL.queries);r.name=n,GL.queries[n]=r,HEAP32[t+4*_>>2]=n}}function _glDeleteQueriesEXT(e,t){for(var _=0;_>2],n=GL.queries[r];n&&(GLctx.disjointTimerQueryExt.deleteQueryEXT(n),GL.queries[r]=null)}}function _glIsQueryEXT(e){var t=GL.queries[e];return t?GLctx.disjointTimerQueryExt.isQueryEXT(t):0}function _glBeginQueryEXT(e,t){GLctx.disjointTimerQueryExt.beginQueryEXT(e,GL.queries[t])}function _glEndQueryEXT(e){GLctx.disjointTimerQueryExt.endQueryEXT(e)}function _glQueryCounterEXT(e,t){GLctx.disjointTimerQueryExt.queryCounterEXT(GL.queries[e],t)}function _glGetQueryivEXT(e,t,_){_?HEAP32[_>>2]=GLctx.disjointTimerQueryExt.getQueryEXT(e,t):GL.recordError(1281)}function _glGetQueryObjectivEXT(e,t,_){if(_){var r,n=GL.queries[e],o=GLctx.disjointTimerQueryExt.getQueryObjectEXT(n,t);r="boolean"==typeof o?o?1:0:o,HEAP32[_>>2]=r}else GL.recordError(1281)}function _glGetQueryObjectuivEXT(e,t,_){if(_){var r,n=GL.queries[e],o=GLctx.disjointTimerQueryExt.getQueryObjectEXT(n,t);r="boolean"==typeof o?o?1:0:o,HEAP32[_>>2]=r}else GL.recordError(1281)}function _glGetQueryObjecti64vEXT(e,t,_){if(_){var r,n=GL.queries[e];writeI53ToI64(_,"boolean"==typeof(r=GLctx.disjointTimerQueryExt.getQueryObjectEXT(n,t))?r?1:0:r)}else GL.recordError(1281)}function _glGetQueryObjectui64vEXT(e,t,_){if(_){var r,n=GL.queries[e];writeI53ToI64(_,"boolean"==typeof(r=GLctx.disjointTimerQueryExt.getQueryObjectEXT(n,t))?r?1:0:r)}else GL.recordError(1281)}function _glIsBuffer(e){var t=GL.buffers[e];return t?GLctx.isBuffer(t):0}function _glGenRenderbuffers(e,t){__glGenObject(e,t,"createRenderbuffer",GL.renderbuffers)}function _glDeleteRenderbuffers(e,t){for(var _=0;_>2],n=GL.renderbuffers[r];n&&(GLctx.deleteRenderbuffer(n),n.name=0,GL.renderbuffers[r]=null)}}function _glBindRenderbuffer(e,t){GLctx.bindRenderbuffer(e,GL.renderbuffers[t])}function _glGetRenderbufferParameteriv(e,t,_){_?HEAP32[_>>2]=GLctx.getRenderbufferParameter(e,t):GL.recordError(1281)}function _glIsRenderbuffer(e){var t=GL.renderbuffers[e];return t?GLctx.isRenderbuffer(t):0}function _glGetUniformfv(e,t,_){emscriptenWebGLGetUniform(e,t,_,2)}function _glGetUniformiv(e,t,_){emscriptenWebGLGetUniform(e,t,_,0)}function _glGetUniformLocation(e,t){if(t=UTF8ToString(t),e=GL.programs[e]){webglPrepareUniformLocationsBeforeFirstUse(e);var _=e.uniformLocsById,r=0,n=t,o=webglGetLeftBracePos(t);o>0&&(r=jstoi_q(t.slice(o+1))>>>0,n=t.slice(0,o));var l=e.uniformSizeAndIdsByName[n];if(l&&r>2]=GLctx.getVertexAttribOffset(e,t):GL.recordError(1281)}function _glUniform1f(e,t){GLctx.uniform1f(webglGetUniformLocation(e),t)}function _glUniform2f(e,t,_){GLctx.uniform2f(webglGetUniformLocation(e),t,_)}function _glUniform3f(e,t,_,r){GLctx.uniform3f(webglGetUniformLocation(e),t,_,r)}function _glUniform4f(e,t,_,r,n){GLctx.uniform4f(webglGetUniformLocation(e),t,_,r,n)}function _glUniform1i(e,t){GLctx.uniform1i(webglGetUniformLocation(e),t)}function _glUniform2i(e,t,_){GLctx.uniform2i(webglGetUniformLocation(e),t,_)}function _glUniform3i(e,t,_,r){GLctx.uniform3i(webglGetUniformLocation(e),t,_,r)}function _glUniform4i(e,t,_,r,n){GLctx.uniform4i(webglGetUniformLocation(e),t,_,r,n)}function _glUniform1iv(e,t,_){if(t<=288)for(var r=__miniTempWebGLIntBuffers[t-1],n=0;n>2];else r=HEAP32.subarray(_>>2,_+4*t>>2);GLctx.uniform1iv(webglGetUniformLocation(e),r)}function _glUniform2iv(e,t,_){if(t<=144)for(var r=__miniTempWebGLIntBuffers[2*t-1],n=0;n<2*t;n+=2)r[n]=HEAP32[_+4*n>>2],r[n+1]=HEAP32[_+(4*n+4)>>2];else r=HEAP32.subarray(_>>2,_+8*t>>2);GLctx.uniform2iv(webglGetUniformLocation(e),r)}function _glUniform3iv(e,t,_){if(t<=96)for(var r=__miniTempWebGLIntBuffers[3*t-1],n=0;n<3*t;n+=3)r[n]=HEAP32[_+4*n>>2],r[n+1]=HEAP32[_+(4*n+4)>>2],r[n+2]=HEAP32[_+(4*n+8)>>2];else r=HEAP32.subarray(_>>2,_+12*t>>2);GLctx.uniform3iv(webglGetUniformLocation(e),r)}function _glUniform4iv(e,t,_){if(t<=72)for(var r=__miniTempWebGLIntBuffers[4*t-1],n=0;n<4*t;n+=4)r[n]=HEAP32[_+4*n>>2],r[n+1]=HEAP32[_+(4*n+4)>>2],r[n+2]=HEAP32[_+(4*n+8)>>2],r[n+3]=HEAP32[_+(4*n+12)>>2];else r=HEAP32.subarray(_>>2,_+16*t>>2);GLctx.uniform4iv(webglGetUniformLocation(e),r)}function _glUniform1fv(e,t,_){if(t<=288)for(var r=miniTempWebGLFloatBuffers[t-1],n=0;n>2];else r=HEAPF32.subarray(_>>2,_+4*t>>2);GLctx.uniform1fv(webglGetUniformLocation(e),r)}function _glUniform2fv(e,t,_){if(t<=144)for(var r=miniTempWebGLFloatBuffers[2*t-1],n=0;n<2*t;n+=2)r[n]=HEAPF32[_+4*n>>2],r[n+1]=HEAPF32[_+(4*n+4)>>2];else r=HEAPF32.subarray(_>>2,_+8*t>>2);GLctx.uniform2fv(webglGetUniformLocation(e),r)}function _glUniform3fv(e,t,_){if(t<=96)for(var r=miniTempWebGLFloatBuffers[3*t-1],n=0;n<3*t;n+=3)r[n]=HEAPF32[_+4*n>>2],r[n+1]=HEAPF32[_+(4*n+4)>>2],r[n+2]=HEAPF32[_+(4*n+8)>>2];else r=HEAPF32.subarray(_>>2,_+12*t>>2);GLctx.uniform3fv(webglGetUniformLocation(e),r)}function _glUniform4fv(e,t,_){if(t<=72){var r=miniTempWebGLFloatBuffers[4*t-1],n=HEAPF32;_>>=2;for(var o=0;o<4*t;o+=4){var l=_+o;r[o]=n[l],r[o+1]=n[l+1],r[o+2]=n[l+2],r[o+3]=n[l+3]}}else r=HEAPF32.subarray(_>>2,_+16*t>>2);GLctx.uniform4fv(webglGetUniformLocation(e),r)}function _glUniformMatrix2fv(e,t,_,r){if(t<=72)for(var n=miniTempWebGLFloatBuffers[4*t-1],o=0;o<4*t;o+=4)n[o]=HEAPF32[r+4*o>>2],n[o+1]=HEAPF32[r+(4*o+4)>>2],n[o+2]=HEAPF32[r+(4*o+8)>>2],n[o+3]=HEAPF32[r+(4*o+12)>>2];else n=HEAPF32.subarray(r>>2,r+16*t>>2);GLctx.uniformMatrix2fv(webglGetUniformLocation(e),!!_,n)}function _glUniformMatrix3fv(e,t,_,r){if(t<=32)for(var n=miniTempWebGLFloatBuffers[9*t-1],o=0;o<9*t;o+=9)n[o]=HEAPF32[r+4*o>>2],n[o+1]=HEAPF32[r+(4*o+4)>>2],n[o+2]=HEAPF32[r+(4*o+8)>>2],n[o+3]=HEAPF32[r+(4*o+12)>>2],n[o+4]=HEAPF32[r+(4*o+16)>>2],n[o+5]=HEAPF32[r+(4*o+20)>>2],n[o+6]=HEAPF32[r+(4*o+24)>>2],n[o+7]=HEAPF32[r+(4*o+28)>>2],n[o+8]=HEAPF32[r+(4*o+32)>>2];else n=HEAPF32.subarray(r>>2,r+36*t>>2);GLctx.uniformMatrix3fv(webglGetUniformLocation(e),!!_,n)}function _glUniformMatrix4fv(e,t,_,r){if(t<=18){var n=miniTempWebGLFloatBuffers[16*t-1],o=HEAPF32;r>>=2;for(var l=0;l<16*t;l+=16){var i=r+l;n[l]=o[i],n[l+1]=o[i+1],n[l+2]=o[i+2],n[l+3]=o[i+3],n[l+4]=o[i+4],n[l+5]=o[i+5],n[l+6]=o[i+6],n[l+7]=o[i+7],n[l+8]=o[i+8],n[l+9]=o[i+9],n[l+10]=o[i+10],n[l+11]=o[i+11],n[l+12]=o[i+12],n[l+13]=o[i+13],n[l+14]=o[i+14],n[l+15]=o[i+15]}}else n=HEAPF32.subarray(r>>2,r+64*t>>2);GLctx.uniformMatrix4fv(webglGetUniformLocation(e),!!_,n)}function _glBindBuffer(e,t){GLctx.bindBuffer(e,GL.buffers[t])}function _glVertexAttrib1fv(e,t){GLctx.vertexAttrib1f(e,HEAPF32[t>>2])}function _glVertexAttrib2fv(e,t){GLctx.vertexAttrib2f(e,HEAPF32[t>>2],HEAPF32[t+4>>2])}function _glVertexAttrib3fv(e,t){GLctx.vertexAttrib3f(e,HEAPF32[t>>2],HEAPF32[t+4>>2],HEAPF32[t+8>>2])}function _glVertexAttrib4fv(e,t){GLctx.vertexAttrib4f(e,HEAPF32[t>>2],HEAPF32[t+4>>2],HEAPF32[t+8>>2],HEAPF32[t+12>>2])}function _glGetAttribLocation(e,t){return GLctx.getAttribLocation(GL.programs[e],UTF8ToString(t))}function _glGetActiveAttrib(e,t,_,r,n,o,l){__glGetActiveAttribOrUniform("getActiveAttrib",e,t,_,r,n,o,l)}function _glGetActiveUniform(e,t,_,r,n,o,l){__glGetActiveAttribOrUniform("getActiveUniform",e,t,_,r,n,o,l)}function _glCreateShader(e){var t=GL.getNewId(GL.shaders);return GL.shaders[t]=GLctx.createShader(e),t}function _glDeleteShader(e){if(e){var t=GL.shaders[e];t?(GLctx.deleteShader(t),GL.shaders[e]=null):GL.recordError(1281)}}function _glGetAttachedShaders(e,t,_,r){var n=GLctx.getAttachedShaders(GL.programs[e]),o=n.length;o>t&&(o=t),HEAP32[_>>2]=o;for(var l=0;l>2]=i}}function _glShaderSource(e,t,_,r){var n=GL.getSource(e,t,_,r);GLctx.shaderSource(GL.shaders[e],n)}function _glGetShaderSource(e,t,_,r){var n=GLctx.getShaderSource(GL.shaders[e]);if(n){var o=t>0&&r?stringToUTF8(n,r,t):0;_&&(HEAP32[_>>2]=o)}}function _glCompileShader(e){GLctx.compileShader(GL.shaders[e])}function _glGetShaderInfoLog(e,t,_,r){var n=GLctx.getShaderInfoLog(GL.shaders[e]);null===n&&(n="(unknown error)");var o=t>0&&r?stringToUTF8(n,r,t):0;_&&(HEAP32[_>>2]=o)}function _glGetShaderiv(e,t,_){if(_)if(35716==t){var r=GLctx.getShaderInfoLog(GL.shaders[e]);null===r&&(r="(unknown error)");var n=r?r.length+1:0;HEAP32[_>>2]=n}else if(35720==t){var o=GLctx.getShaderSource(GL.shaders[e]),l=o?o.length+1:0;HEAP32[_>>2]=l}else HEAP32[_>>2]=GLctx.getShaderParameter(GL.shaders[e],t);else GL.recordError(1281)}function _glGetProgramiv(e,t,_){if(_)if(e>=GL.counter)GL.recordError(1281);else if(e=GL.programs[e],35716==t){var r=GLctx.getProgramInfoLog(e);null===r&&(r="(unknown error)"),HEAP32[_>>2]=r.length+1}else if(35719==t){if(!e.maxUniformLength)for(var n=0;n>2]=e.maxUniformLength}else if(35722==t){if(!e.maxAttributeLength)for(n=0;n>2]=e.maxAttributeLength}else if(35381==t){if(!e.maxUniformBlockNameLength)for(n=0;n>2]=e.maxUniformBlockNameLength}else HEAP32[_>>2]=GLctx.getProgramParameter(e,t);else GL.recordError(1281)}function _glIsShader(e){var t=GL.shaders[e];return t?GLctx.isShader(t):0}function _glCreateProgram(){var e=GL.getNewId(GL.programs),t=GLctx.createProgram();return t.name=e,t.maxUniformLength=t.maxAttributeLength=t.maxUniformBlockNameLength=0,t.uniformIdCounter=1,GL.programs[e]=t,e}function _glDeleteProgram(e){if(e){var t=GL.programs[e];t?(GLctx.deleteProgram(t),t.name=0,GL.programs[e]=null):GL.recordError(1281)}}function _glAttachShader(e,t){GLctx.attachShader(GL.programs[e],GL.shaders[t])}function _glDetachShader(e,t){GLctx.detachShader(GL.programs[e],GL.shaders[t])}function _glGetShaderPrecisionFormat(e,t,_,r){var n=GLctx.getShaderPrecisionFormat(e,t);HEAP32[_>>2]=n.rangeMin,HEAP32[_+4>>2]=n.rangeMax,HEAP32[r>>2]=n.precision}function _glLinkProgram(e){e=GL.programs[e],GLctx.linkProgram(e),e.uniformLocsById=0,e.uniformSizeAndIdsByName={}}function _glGetProgramInfoLog(e,t,_,r){var n=GLctx.getProgramInfoLog(GL.programs[e]);null===n&&(n="(unknown error)");var o=t>0&&r?stringToUTF8(n,r,t):0;_&&(HEAP32[_>>2]=o)}function _glUseProgram(e){e=GL.programs[e],GLctx.useProgram(e),GLctx.currentProgram=e}function _glValidateProgram(e){GLctx.validateProgram(GL.programs[e])}function _glIsProgram(e){return(e=GL.programs[e])?GLctx.isProgram(e):0}function _glBindAttribLocation(e,t,_){GLctx.bindAttribLocation(GL.programs[e],t,UTF8ToString(_))}function _glBindFramebuffer(e,t){GLctx.bindFramebuffer(e,GL.framebuffers[t])}function _glGenFramebuffers(e,t){__glGenObject(e,t,"createFramebuffer",GL.framebuffers)}function _glDeleteFramebuffers(e,t){for(var _=0;_>2],n=GL.framebuffers[r];n&&(GLctx.deleteFramebuffer(n),n.name=0,GL.framebuffers[r]=null)}}function _glFramebufferRenderbuffer(e,t,_,r){GLctx.framebufferRenderbuffer(e,t,_,GL.renderbuffers[r])}function _glFramebufferTexture2D(e,t,_,r,n){GLctx.framebufferTexture2D(e,t,_,GL.textures[r],n)}function _glGetFramebufferAttachmentParameteriv(e,t,_,r){var n=GLctx.getFramebufferAttachmentParameter(e,t,_);(n instanceof WebGLRenderbuffer||n instanceof WebGLTexture)&&(n=0|n.name),HEAP32[r>>2]=n}function _glIsFramebuffer(e){var t=GL.framebuffers[e];return t?GLctx.isFramebuffer(t):0}function _glGenVertexArrays(e,t){__glGenObject(e,t,"createVertexArray",GL.vaos)}function _glDeleteVertexArrays(e,t){for(var _=0;_>2];GLctx.deleteVertexArray(GL.vaos[r]),GL.vaos[r]=null}}function _glBindVertexArray(e){GLctx.bindVertexArray(GL.vaos[e])}function _glIsVertexArray(e){var t=GL.vaos[e];return t?GLctx.isVertexArray(t):0}function _glVertexPointer(){throw"Legacy GL function (glVertexPointer) called. If you want legacy GL emulation, you need to compile with -sLEGACY_GL_EMULATION to enable legacy GL emulation."}function _glMatrixMode(){throw"Legacy GL function (glMatrixMode) called. If you want legacy GL emulation, you need to compile with -sLEGACY_GL_EMULATION to enable legacy GL emulation."}function _glBegin(){throw"Legacy GL function (glBegin) called. If you want legacy GL emulation, you need to compile with -sLEGACY_GL_EMULATION to enable legacy GL emulation."}function _glLoadIdentity(){throw"Legacy GL function (glLoadIdentity) called. If you want legacy GL emulation, you need to compile with -sLEGACY_GL_EMULATION to enable legacy GL emulation."}function _glGenVertexArraysOES(e,t){__glGenObject(e,t,"createVertexArray",GL.vaos)}function _glDeleteVertexArraysOES(e,t){for(var _=0;_>2];GLctx.deleteVertexArray(GL.vaos[r]),GL.vaos[r]=null}}function _glBindVertexArrayOES(e){GLctx.bindVertexArray(GL.vaos[e])}function _glIsVertexArrayOES(e){var t=GL.vaos[e];return t?GLctx.isVertexArray(t):0}function _glVertexAttribPointer(e,t,_,r,n,o){GLctx.vertexAttribPointer(e,t,_,!!r,n,o)}function _glEnableVertexAttribArray(e){GLctx.enableVertexAttribArray(e)}function _glDisableVertexAttribArray(e){GLctx.disableVertexAttribArray(e)}function _glDrawArrays(e,t,_){GLctx.drawArrays(e,t,_)}function _glDrawElements(e,t,_,r){GLctx.drawElements(e,t,_,r)}function _glShaderBinary(){GL.recordError(1280)}function _glReleaseShaderCompiler(){}function _glGetError(){var e=GLctx.getError()||GL.lastError;return GL.lastError=0,e}function _glVertexAttribDivisor(e,t){GLctx.vertexAttribDivisor(e,t)}function _glDrawArraysInstanced(e,t,_,r){GLctx.drawArraysInstanced(e,t,_,r)}function _glDrawElementsInstanced(e,t,_,r,n){GLctx.drawElementsInstanced(e,t,_,r,n)}function _glVertexAttribDivisorNV(e,t){GLctx.vertexAttribDivisor(e,t)}function _glDrawArraysInstancedNV(e,t,_,r){GLctx.drawArraysInstanced(e,t,_,r)}function _glDrawElementsInstancedNV(e,t,_,r,n){GLctx.drawElementsInstanced(e,t,_,r,n)}function _glVertexAttribDivisorEXT(e,t){GLctx.vertexAttribDivisor(e,t)}function _glDrawArraysInstancedEXT(e,t,_,r){GLctx.drawArraysInstanced(e,t,_,r)}function _glDrawElementsInstancedEXT(e,t,_,r,n){GLctx.drawElementsInstanced(e,t,_,r,n)}function _glVertexAttribDivisorARB(e,t){GLctx.vertexAttribDivisor(e,t)}function _glDrawArraysInstancedARB(e,t,_,r){GLctx.drawArraysInstanced(e,t,_,r)}function _glDrawElementsInstancedARB(e,t,_,r,n){GLctx.drawElementsInstanced(e,t,_,r,n)}function _glVertexAttribDivisorANGLE(e,t){GLctx.vertexAttribDivisor(e,t)}function _glDrawArraysInstancedANGLE(e,t,_,r){GLctx.drawArraysInstanced(e,t,_,r)}function _glDrawElementsInstancedANGLE(e,t,_,r,n){GLctx.drawElementsInstanced(e,t,_,r,n)}function _glDrawBuffers(e,t){for(var _=tempFixedLengthArray[e],r=0;r>2];GLctx.drawBuffers(_)}function _glDrawBuffersEXT(e,t){for(var _=tempFixedLengthArray[e],r=0;r>2];GLctx.drawBuffers(_)}function _glDrawBuffersWEBGL(e,t){for(var _=tempFixedLengthArray[e],r=0;r>2];GLctx.drawBuffers(_)}function _glColorMask(e,t,_,r){GLctx.colorMask(!!e,!!t,!!_,!!r)}function _glDepthMask(e){GLctx.depthMask(!!e)}function _glSampleCoverage(e,t){GLctx.sampleCoverage(e,!!t)}function _glMultiDrawArrays(e,t,_,r){GLctx.multiDrawWebgl.multiDrawArraysWEBGL(e,HEAP32,t>>2,HEAP32,_>>2,r)}function _glMultiDrawArraysANGLE(e,t,_,r){GLctx.multiDrawWebgl.multiDrawArraysWEBGL(e,HEAP32,t>>2,HEAP32,_>>2,r)}function _glMultiDrawArraysWEBGL(e,t,_,r){GLctx.multiDrawWebgl.multiDrawArraysWEBGL(e,HEAP32,t>>2,HEAP32,_>>2,r)}function _glMultiDrawArraysInstancedANGLE(e,t,_,r,n){GLctx.multiDrawWebgl.multiDrawArraysInstancedWEBGL(e,HEAP32,t>>2,HEAP32,_>>2,HEAP32,r>>2,n)}function _glMultiDrawArraysInstancedWEBGL(e,t,_,r,n){GLctx.multiDrawWebgl.multiDrawArraysInstancedWEBGL(e,HEAP32,t>>2,HEAP32,_>>2,HEAP32,r>>2,n)}function _glMultiDrawElements(e,t,_,r,n){GLctx.multiDrawWebgl.multiDrawElementsWEBGL(e,HEAP32,t>>2,_,HEAP32,r>>2,n)}function _glMultiDrawElementsANGLE(e,t,_,r,n){GLctx.multiDrawWebgl.multiDrawElementsWEBGL(e,HEAP32,t>>2,_,HEAP32,r>>2,n)}function _glMultiDrawElementsWEBGL(e,t,_,r,n){GLctx.multiDrawWebgl.multiDrawElementsWEBGL(e,HEAP32,t>>2,_,HEAP32,r>>2,n)}function _glMultiDrawElementsInstancedANGLE(e,t,_,r,n,o){GLctx.multiDrawWebgl.multiDrawElementsInstancedWEBGL(e,HEAP32,t>>2,_,HEAP32,r>>2,HEAP32,n>>2,o)}function _glMultiDrawElementsInstancedWEBGL(e,t,_,r,n,o){GLctx.multiDrawWebgl.multiDrawElementsInstancedWEBGL(e,HEAP32,t>>2,_,HEAP32,r>>2,HEAP32,n>>2,o)}function _glFinish(){GLctx.finish()}function _glFlush(){GLctx.flush()}function _glClearDepth(e){GLctx.clearDepth(e)}function _glClearDepthf(e){GLctx.clearDepth(e)}function _glDepthFunc(e){GLctx.depthFunc(e)}function _glEnable(e){GLctx.enable(e)}function _glDisable(e){GLctx.disable(e)}function _glFrontFace(e){GLctx.frontFace(e)}function _glCullFace(e){GLctx.cullFace(e)}function _glClear(e){GLctx.clear(e)}function _glLineWidth(e){GLctx.lineWidth(e)}function _glClearStencil(e){GLctx.clearStencil(e)}function _glStencilMask(e){GLctx.stencilMask(e)}function _glCheckFramebufferStatus(e){return GLctx.checkFramebufferStatus(e)}function _glGenerateMipmap(e){GLctx.generateMipmap(e)}function _glActiveTexture(e){GLctx.activeTexture(e)}function _glBlendEquation(e){GLctx.blendEquation(e)}function _glIsEnabled(e){return GLctx.isEnabled(e)}function _glBlendFunc(e,t){GLctx.blendFunc(e,t)}function _glBlendEquationSeparate(e,t){GLctx.blendEquationSeparate(e,t)}function _glDepthRange(e,t){GLctx.depthRange(e,t)}function _glDepthRangef(e,t){GLctx.depthRange(e,t)}function _glStencilMaskSeparate(e,t){GLctx.stencilMaskSeparate(e,t)}function _glHint(e,t){GLctx.hint(e,t)}function _glPolygonOffset(e,t){GLctx.polygonOffset(e,t)}function _glVertexAttrib1f(e,t){GLctx.vertexAttrib1f(e,t)}function _glTexParameteri(e,t,_){GLctx.texParameteri(e,t,_)}function _glTexParameterf(e,t,_){GLctx.texParameterf(e,t,_)}function _glVertexAttrib2f(e,t,_){GLctx.vertexAttrib2f(e,t,_)}function _glStencilFunc(e,t,_){GLctx.stencilFunc(e,t,_)}function _glStencilOp(e,t,_){GLctx.stencilOp(e,t,_)}function _glViewport(e,t,_,r){GLctx.viewport(e,t,_,r)}function _glClearColor(e,t,_,r){GLctx.clearColor(e,t,_,r)}function _glScissor(e,t,_,r){GLctx.scissor(e,t,_,r)}function _glVertexAttrib3f(e,t,_,r){GLctx.vertexAttrib3f(e,t,_,r)}function _glRenderbufferStorage(e,t,_,r){GLctx.renderbufferStorage(e,t,_,r)}function _glBlendFuncSeparate(e,t,_,r){GLctx.blendFuncSeparate(e,t,_,r)}function _glBlendColor(e,t,_,r){GLctx.blendColor(e,t,_,r)}function _glStencilFuncSeparate(e,t,_,r){GLctx.stencilFuncSeparate(e,t,_,r)}function _glStencilOpSeparate(e,t,_,r){GLctx.stencilOpSeparate(e,t,_,r)}function _glVertexAttrib4f(e,t,_,r,n){GLctx.vertexAttrib4f(e,t,_,r,n)}function _glCopyTexImage2D(e,t,_,r,n,o,l,i){GLctx.copyTexImage2D(e,t,_,r,n,o,l,i)}function _glCopyTexSubImage2D(e,t,_,r,n,o,l,i){GLctx.copyTexSubImage2D(e,t,_,r,n,o,l,i)}function _emscripten_glGenVertexArrays(e,t){__glGenObject(e,t,"createVertexArray",GL.vaos)}function _emscripten_glDeleteVertexArrays(e,t){for(var _=0;_>2];GLctx.deleteVertexArray(GL.vaos[r]),GL.vaos[r]=null}}function _emscripten_glBindVertexArray(e){GLctx.bindVertexArray(GL.vaos[e])}function _emscripten_glIsVertexArray(e){var t=GL.vaos[e];return t?GLctx.isVertexArray(t):0}function _emscripten_glVertexPointer(){throw"Legacy GL function (glVertexPointer) called. If you want legacy GL emulation, you need to compile with -sLEGACY_GL_EMULATION to enable legacy GL emulation."}function _emscripten_glMatrixMode(){throw"Legacy GL function (glMatrixMode) called. If you want legacy GL emulation, you need to compile with -sLEGACY_GL_EMULATION to enable legacy GL emulation."}function _emscripten_glBegin(){throw"Legacy GL function (glBegin) called. If you want legacy GL emulation, you need to compile with -sLEGACY_GL_EMULATION to enable legacy GL emulation."}function _emscripten_glLoadIdentity(){throw"Legacy GL function (glLoadIdentity) called. If you want legacy GL emulation, you need to compile with -sLEGACY_GL_EMULATION to enable legacy GL emulation."}function _emscripten_glVertexAttribDivisor(e,t){GLctx.vertexAttribDivisor(e,t)}function _emscripten_glDrawArraysInstanced(e,t,_,r){GLctx.drawArraysInstanced(e,t,_,r)}function _emscripten_glDrawElementsInstanced(e,t,_,r,n){GLctx.drawElementsInstanced(e,t,_,r,n)}function _emscripten_glVertexAttribDivisorNV(e,t){GLctx.vertexAttribDivisor(e,t)}function _emscripten_glDrawArraysInstancedNV(e,t,_,r){GLctx.drawArraysInstanced(e,t,_,r)}function _emscripten_glDrawElementsInstancedNV(e,t,_,r,n){GLctx.drawElementsInstanced(e,t,_,r,n)}function _emscripten_glVertexAttribDivisorEXT(e,t){GLctx.vertexAttribDivisor(e,t)}function _emscripten_glDrawArraysInstancedEXT(e,t,_,r){GLctx.drawArraysInstanced(e,t,_,r)}function _emscripten_glDrawElementsInstancedEXT(e,t,_,r,n){GLctx.drawElementsInstanced(e,t,_,r,n)}function _emscripten_glVertexAttribDivisorARB(e,t){GLctx.vertexAttribDivisor(e,t)}function _emscripten_glDrawArraysInstancedARB(e,t,_,r){GLctx.drawArraysInstanced(e,t,_,r)}function _emscripten_glDrawElementsInstancedARB(e,t,_,r,n){GLctx.drawElementsInstanced(e,t,_,r,n)}function _emscripten_glDrawBuffers(e,t){for(var _=tempFixedLengthArray[e],r=0;r>2];GLctx.drawBuffers(_)}function _emscripten_glDrawBuffersEXT(e,t){for(var _=tempFixedLengthArray[e],r=0;r>2];GLctx.drawBuffers(_)}function _emscripten_glMultiDrawArrays(e,t,_,r){GLctx.multiDrawWebgl.multiDrawArraysWEBGL(e,HEAP32,t>>2,HEAP32,_>>2,r)}function _emscripten_glMultiDrawArraysANGLE(e,t,_,r){GLctx.multiDrawWebgl.multiDrawArraysWEBGL(e,HEAP32,t>>2,HEAP32,_>>2,r)}function _emscripten_glMultiDrawArraysWEBGL(e,t,_,r){GLctx.multiDrawWebgl.multiDrawArraysWEBGL(e,HEAP32,t>>2,HEAP32,_>>2,r)}function _emscripten_glMultiDrawArraysInstancedANGLE(e,t,_,r,n){GLctx.multiDrawWebgl.multiDrawArraysInstancedWEBGL(e,HEAP32,t>>2,HEAP32,_>>2,HEAP32,r>>2,n)}function _emscripten_glMultiDrawArraysInstancedWEBGL(e,t,_,r,n){GLctx.multiDrawWebgl.multiDrawArraysInstancedWEBGL(e,HEAP32,t>>2,HEAP32,_>>2,HEAP32,r>>2,n)}function _emscripten_glMultiDrawElements(e,t,_,r,n){GLctx.multiDrawWebgl.multiDrawElementsWEBGL(e,HEAP32,t>>2,_,HEAP32,r>>2,n)}function _emscripten_glMultiDrawElementsANGLE(e,t,_,r,n){GLctx.multiDrawWebgl.multiDrawElementsWEBGL(e,HEAP32,t>>2,_,HEAP32,r>>2,n)}function _emscripten_glMultiDrawElementsWEBGL(e,t,_,r,n){GLctx.multiDrawWebgl.multiDrawElementsWEBGL(e,HEAP32,t>>2,_,HEAP32,r>>2,n)}function _emscripten_glMultiDrawElementsInstancedANGLE(e,t,_,r,n,o){GLctx.multiDrawWebgl.multiDrawElementsInstancedWEBGL(e,HEAP32,t>>2,_,HEAP32,r>>2,HEAP32,n>>2,o)}function _emscripten_glMultiDrawElementsInstancedWEBGL(e,t,_,r,n,o){GLctx.multiDrawWebgl.multiDrawElementsInstancedWEBGL(e,HEAP32,t>>2,_,HEAP32,r>>2,HEAP32,n>>2,o)}function _emscripten_glClearDepth(e){GLctx.clearDepth(e)}function _emscripten_glDepthRange(e,t){GLctx.depthRange(e,t)}function writeGLArray(e,t,_,r){for(var n=e.length,o=_>2)+i]=e[i];return n}function _emscripten_webgl_init_context_attributes(e){for(var t=e>>2,_=0;_<14;++_)HEAP32[t+_]=0;HEAP32[t+0]=HEAP32[t+1]=HEAP32[t+3]=HEAP32[t+4]=HEAP32[t+8]=HEAP32[t+10]=1}Module.WS=WS,Module._emscripten_websocket_get_ready_state=_emscripten_websocket_get_ready_state,_emscripten_websocket_get_ready_state.sig="iii",Module._emscripten_websocket_get_buffered_amount=_emscripten_websocket_get_buffered_amount,_emscripten_websocket_get_buffered_amount.sig="iii",Module._emscripten_websocket_get_extensions=_emscripten_websocket_get_extensions,_emscripten_websocket_get_extensions.sig="iiii",Module._emscripten_websocket_get_extensions_length=_emscripten_websocket_get_extensions_length,_emscripten_websocket_get_extensions_length.sig="iii",Module._emscripten_websocket_get_protocol=_emscripten_websocket_get_protocol,_emscripten_websocket_get_protocol.sig="iiii",Module._emscripten_websocket_get_protocol_length=_emscripten_websocket_get_protocol_length,_emscripten_websocket_get_protocol_length.sig="iii",Module._emscripten_websocket_get_url=_emscripten_websocket_get_url,_emscripten_websocket_get_url.sig="iiii",Module._emscripten_websocket_get_url_length=_emscripten_websocket_get_url_length,_emscripten_websocket_get_url_length.sig="iii",Module._emscripten_websocket_set_onopen_callback_on_thread=_emscripten_websocket_set_onopen_callback_on_thread,_emscripten_websocket_set_onopen_callback_on_thread.sig="iiiii",Module._emscripten_websocket_set_onerror_callback_on_thread=_emscripten_websocket_set_onerror_callback_on_thread,_emscripten_websocket_set_onerror_callback_on_thread.sig="iiiii",Module._emscripten_websocket_set_onclose_callback_on_thread=_emscripten_websocket_set_onclose_callback_on_thread,_emscripten_websocket_set_onclose_callback_on_thread.sig="iiiii",Module._emscripten_websocket_set_onmessage_callback_on_thread=_emscripten_websocket_set_onmessage_callback_on_thread,_emscripten_websocket_set_onmessage_callback_on_thread.sig="iiiii",Module._emscripten_websocket_new=_emscripten_websocket_new,_emscripten_websocket_new.sig="ii",Module._emscripten_websocket_send_utf8_text=_emscripten_websocket_send_utf8_text,_emscripten_websocket_send_utf8_text.sig="iii",Module._emscripten_websocket_send_binary=_emscripten_websocket_send_binary,_emscripten_websocket_send_binary.sig="iiii",Module._emscripten_websocket_close=_emscripten_websocket_close,_emscripten_websocket_close.sig="iiii",Module._emscripten_websocket_delete=_emscripten_websocket_delete,_emscripten_websocket_delete.sig="ii",Module._emscripten_websocket_is_supported=_emscripten_websocket_is_supported,_emscripten_websocket_is_supported.sig="i",Module._emscripten_websocket_deinitialize=_emscripten_websocket_deinitialize,_emscripten_websocket_deinitialize.sig="v",Module._emscripten_webgl_enable_ANGLE_instanced_arrays=_emscripten_webgl_enable_ANGLE_instanced_arrays,Module._emscripten_webgl_enable_OES_vertex_array_object=_emscripten_webgl_enable_OES_vertex_array_object,Module._emscripten_webgl_enable_WEBGL_draw_buffers=_emscripten_webgl_enable_WEBGL_draw_buffers,Module._emscripten_webgl_enable_WEBGL_multi_draw=_emscripten_webgl_enable_WEBGL_multi_draw,Module._glPixelStorei=_glPixelStorei,_glPixelStorei.sig="vii",Module._glGetString=_glGetString,_glGetString.sig="ii",Module._glGetIntegerv=_glGetIntegerv,_glGetIntegerv.sig="vii",Module._glGetFloatv=_glGetFloatv,_glGetFloatv.sig="vii",Module._glGetBooleanv=_glGetBooleanv,_glGetBooleanv.sig="vii",Module._glDeleteTextures=_glDeleteTextures,_glDeleteTextures.sig="vii",Module._glCompressedTexImage2D=_glCompressedTexImage2D,_glCompressedTexImage2D.sig="viiiiiiii",Module._glCompressedTexSubImage2D=_glCompressedTexSubImage2D,_glCompressedTexSubImage2D.sig="viiiiiiiii",Module._glTexImage2D=_glTexImage2D,_glTexImage2D.sig="viiiiiiiii",Module._glTexSubImage2D=_glTexSubImage2D,_glTexSubImage2D.sig="viiiiiiiii",Module._glReadPixels=_glReadPixels,_glReadPixels.sig="viiiiiii",Module._glBindTexture=_glBindTexture,_glBindTexture.sig="vii",Module._glGetTexParameterfv=_glGetTexParameterfv,_glGetTexParameterfv.sig="viii",Module._glGetTexParameteriv=_glGetTexParameteriv,_glGetTexParameteriv.sig="viii",Module._glTexParameterfv=_glTexParameterfv,_glTexParameterfv.sig="viii",Module._glTexParameteriv=_glTexParameteriv,_glTexParameteriv.sig="viii",Module._glIsTexture=_glIsTexture,_glIsTexture.sig="ii",Module._glGenBuffers=_glGenBuffers,_glGenBuffers.sig="vii",Module._glGenTextures=_glGenTextures,_glGenTextures.sig="vii",Module._glDeleteBuffers=_glDeleteBuffers,_glDeleteBuffers.sig="vii",Module._glGetBufferParameteriv=_glGetBufferParameteriv,_glGetBufferParameteriv.sig="viii",Module._glBufferData=_glBufferData,_glBufferData.sig="viiii",Module._glBufferSubData=_glBufferSubData,_glBufferSubData.sig="viiii",Module._glGenQueriesEXT=_glGenQueriesEXT,_glGenQueriesEXT.sig="vii",Module._glDeleteQueriesEXT=_glDeleteQueriesEXT,_glDeleteQueriesEXT.sig="vii",Module._glIsQueryEXT=_glIsQueryEXT,_glIsQueryEXT.sig="ii",Module._glBeginQueryEXT=_glBeginQueryEXT,_glBeginQueryEXT.sig="vii",Module._glEndQueryEXT=_glEndQueryEXT,_glEndQueryEXT.sig="vi",Module._glQueryCounterEXT=_glQueryCounterEXT,_glQueryCounterEXT.sig="vii",Module._glGetQueryivEXT=_glGetQueryivEXT,_glGetQueryivEXT.sig="viii",Module._glGetQueryObjectivEXT=_glGetQueryObjectivEXT,_glGetQueryObjectivEXT.sig="viii",Module._glGetQueryObjectuivEXT=_glGetQueryObjectuivEXT,_glGetQueryObjectuivEXT.sig="viii",Module._glGetQueryObjecti64vEXT=_glGetQueryObjecti64vEXT,_glGetQueryObjecti64vEXT.sig="viii",Module._glGetQueryObjectui64vEXT=_glGetQueryObjectui64vEXT,_glGetQueryObjectui64vEXT.sig="viii",Module._glIsBuffer=_glIsBuffer,_glIsBuffer.sig="ii",Module._glGenRenderbuffers=_glGenRenderbuffers,_glGenRenderbuffers.sig="vii",Module._glDeleteRenderbuffers=_glDeleteRenderbuffers,_glDeleteRenderbuffers.sig="vii",Module._glBindRenderbuffer=_glBindRenderbuffer,_glBindRenderbuffer.sig="vii",Module._glGetRenderbufferParameteriv=_glGetRenderbufferParameteriv,_glGetRenderbufferParameteriv.sig="viii",Module._glIsRenderbuffer=_glIsRenderbuffer,_glIsRenderbuffer.sig="ii",Module._glGetUniformfv=_glGetUniformfv,_glGetUniformfv.sig="viii",Module._glGetUniformiv=_glGetUniformiv,_glGetUniformiv.sig="viii",Module._glGetUniformLocation=_glGetUniformLocation,_glGetUniformLocation.sig="iii",Module._glGetVertexAttribfv=_glGetVertexAttribfv,_glGetVertexAttribfv.sig="viii",Module._glGetVertexAttribiv=_glGetVertexAttribiv,_glGetVertexAttribiv.sig="viii",Module._glGetVertexAttribPointerv=_glGetVertexAttribPointerv,_glGetVertexAttribPointerv.sig="viii",Module._glUniform1f=_glUniform1f,_glUniform1f.sig="vif",Module._glUniform2f=_glUniform2f,_glUniform2f.sig="viff",Module._glUniform3f=_glUniform3f,_glUniform3f.sig="vifff",Module._glUniform4f=_glUniform4f,_glUniform4f.sig="viffff",Module._glUniform1i=_glUniform1i,_glUniform1i.sig="vii",Module._glUniform2i=_glUniform2i,_glUniform2i.sig="viii",Module._glUniform3i=_glUniform3i,_glUniform3i.sig="viiii",Module._glUniform4i=_glUniform4i,_glUniform4i.sig="viiiii",Module._glUniform1iv=_glUniform1iv,_glUniform1iv.sig="viii",Module._glUniform2iv=_glUniform2iv,_glUniform2iv.sig="viii",Module._glUniform3iv=_glUniform3iv,_glUniform3iv.sig="viii",Module._glUniform4iv=_glUniform4iv,_glUniform4iv.sig="viii",Module._glUniform1fv=_glUniform1fv,_glUniform1fv.sig="viii",Module._glUniform2fv=_glUniform2fv,_glUniform2fv.sig="viii",Module._glUniform3fv=_glUniform3fv,_glUniform3fv.sig="viii",Module._glUniform4fv=_glUniform4fv,_glUniform4fv.sig="viii",Module._glUniformMatrix2fv=_glUniformMatrix2fv,_glUniformMatrix2fv.sig="viiii",Module._glUniformMatrix3fv=_glUniformMatrix3fv,_glUniformMatrix3fv.sig="viiii",Module._glUniformMatrix4fv=_glUniformMatrix4fv,_glUniformMatrix4fv.sig="viiii",Module._glBindBuffer=_glBindBuffer,_glBindBuffer.sig="vii",Module._glVertexAttrib1fv=_glVertexAttrib1fv,_glVertexAttrib1fv.sig="vii",Module._glVertexAttrib2fv=_glVertexAttrib2fv,_glVertexAttrib2fv.sig="vii",Module._glVertexAttrib3fv=_glVertexAttrib3fv,_glVertexAttrib3fv.sig="vii",Module._glVertexAttrib4fv=_glVertexAttrib4fv,_glVertexAttrib4fv.sig="vii",Module._glGetAttribLocation=_glGetAttribLocation,_glGetAttribLocation.sig="iii",Module._glGetActiveAttrib=_glGetActiveAttrib,_glGetActiveAttrib.sig="viiiiiii",Module._glGetActiveUniform=_glGetActiveUniform,_glGetActiveUniform.sig="viiiiiii",Module._glCreateShader=_glCreateShader,_glCreateShader.sig="ii",Module._glDeleteShader=_glDeleteShader,_glDeleteShader.sig="vi",Module._glGetAttachedShaders=_glGetAttachedShaders,_glGetAttachedShaders.sig="viiii",Module._glShaderSource=_glShaderSource,_glShaderSource.sig="viiii",Module._glGetShaderSource=_glGetShaderSource,_glGetShaderSource.sig="viiii",Module._glCompileShader=_glCompileShader,_glCompileShader.sig="vi",Module._glGetShaderInfoLog=_glGetShaderInfoLog,_glGetShaderInfoLog.sig="viiii",Module._glGetShaderiv=_glGetShaderiv,_glGetShaderiv.sig="viii",Module._glGetProgramiv=_glGetProgramiv,_glGetProgramiv.sig="viii",Module._glIsShader=_glIsShader,_glIsShader.sig="ii",Module._glCreateProgram=_glCreateProgram,_glCreateProgram.sig="i",Module._glDeleteProgram=_glDeleteProgram,_glDeleteProgram.sig="vi",Module._glAttachShader=_glAttachShader,_glAttachShader.sig="vii",Module._glDetachShader=_glDetachShader,_glDetachShader.sig="vii",Module._glGetShaderPrecisionFormat=_glGetShaderPrecisionFormat,_glGetShaderPrecisionFormat.sig="viiii",Module._glLinkProgram=_glLinkProgram,_glLinkProgram.sig="vi",Module._glGetProgramInfoLog=_glGetProgramInfoLog,_glGetProgramInfoLog.sig="viiii",Module._glUseProgram=_glUseProgram,_glUseProgram.sig="vi",Module._glValidateProgram=_glValidateProgram,_glValidateProgram.sig="vi",Module._glIsProgram=_glIsProgram,_glIsProgram.sig="ii",Module._glBindAttribLocation=_glBindAttribLocation,_glBindAttribLocation.sig="viii",Module._glBindFramebuffer=_glBindFramebuffer,_glBindFramebuffer.sig="vii",Module._glGenFramebuffers=_glGenFramebuffers,_glGenFramebuffers.sig="vii",Module._glDeleteFramebuffers=_glDeleteFramebuffers,_glDeleteFramebuffers.sig="vii",Module._glFramebufferRenderbuffer=_glFramebufferRenderbuffer,_glFramebufferRenderbuffer.sig="viiii",Module._glFramebufferTexture2D=_glFramebufferTexture2D,_glFramebufferTexture2D.sig="viiiii",Module._glGetFramebufferAttachmentParameteriv=_glGetFramebufferAttachmentParameteriv,_glGetFramebufferAttachmentParameteriv.sig="viiii",Module._glIsFramebuffer=_glIsFramebuffer,_glIsFramebuffer.sig="ii",Module._glGenVertexArrays=_glGenVertexArrays,_glGenVertexArrays.sig="vii",Module._glDeleteVertexArrays=_glDeleteVertexArrays,_glDeleteVertexArrays.sig="vii",Module._glBindVertexArray=_glBindVertexArray,_glBindVertexArray.sig="vi",Module._glIsVertexArray=_glIsVertexArray,_glIsVertexArray.sig="ii",Module._glVertexPointer=_glVertexPointer,Module._glMatrixMode=_glMatrixMode,Module._glBegin=_glBegin,Module._glLoadIdentity=_glLoadIdentity,Module._glGenVertexArraysOES=_glGenVertexArraysOES,_glGenVertexArraysOES.sig="vii",Module._glDeleteVertexArraysOES=_glDeleteVertexArraysOES,_glDeleteVertexArraysOES.sig="vii",Module._glBindVertexArrayOES=_glBindVertexArrayOES,_glBindVertexArrayOES.sig="vi",Module._glIsVertexArrayOES=_glIsVertexArrayOES,_glIsVertexArrayOES.sig="ii",Module._glVertexAttribPointer=_glVertexAttribPointer,_glVertexAttribPointer.sig="viiiiii",Module._glEnableVertexAttribArray=_glEnableVertexAttribArray,_glEnableVertexAttribArray.sig="vi",Module._glDisableVertexAttribArray=_glDisableVertexAttribArray,_glDisableVertexAttribArray.sig="vi",Module._glDrawArrays=_glDrawArrays,_glDrawArrays.sig="viii",Module._glDrawElements=_glDrawElements,_glDrawElements.sig="viiii",Module._glShaderBinary=_glShaderBinary,_glShaderBinary.sig="v",Module._glReleaseShaderCompiler=_glReleaseShaderCompiler,_glReleaseShaderCompiler.sig="v",Module._glGetError=_glGetError,_glGetError.sig="i",Module._glVertexAttribDivisor=_glVertexAttribDivisor,_glVertexAttribDivisor.sig="vii",Module._glDrawArraysInstanced=_glDrawArraysInstanced,_glDrawArraysInstanced.sig="viiii",Module._glDrawElementsInstanced=_glDrawElementsInstanced,_glDrawElementsInstanced.sig="viiiii",Module._glVertexAttribDivisorNV=_glVertexAttribDivisorNV,_glVertexAttribDivisorNV.sig="vii",Module._glDrawArraysInstancedNV=_glDrawArraysInstancedNV,_glDrawArraysInstancedNV.sig="viiii",Module._glDrawElementsInstancedNV=_glDrawElementsInstancedNV,_glDrawElementsInstancedNV.sig="viiiii",Module._glVertexAttribDivisorEXT=_glVertexAttribDivisorEXT,_glVertexAttribDivisorEXT.sig="vii",Module._glDrawArraysInstancedEXT=_glDrawArraysInstancedEXT,_glDrawArraysInstancedEXT.sig="viiii",Module._glDrawElementsInstancedEXT=_glDrawElementsInstancedEXT,_glDrawElementsInstancedEXT.sig="viiiii",Module._glVertexAttribDivisorARB=_glVertexAttribDivisorARB,_glVertexAttribDivisorARB.sig="vii",Module._glDrawArraysInstancedARB=_glDrawArraysInstancedARB,_glDrawArraysInstancedARB.sig="viiii",Module._glDrawElementsInstancedARB=_glDrawElementsInstancedARB,_glDrawElementsInstancedARB.sig="viiiii",Module._glVertexAttribDivisorANGLE=_glVertexAttribDivisorANGLE,_glVertexAttribDivisorANGLE.sig="vii",Module._glDrawArraysInstancedANGLE=_glDrawArraysInstancedANGLE,_glDrawArraysInstancedANGLE.sig="viiii",Module._glDrawElementsInstancedANGLE=_glDrawElementsInstancedANGLE,_glDrawElementsInstancedANGLE.sig="viiiii",Module._glDrawBuffers=_glDrawBuffers,_glDrawBuffers.sig="vii",Module._glDrawBuffersEXT=_glDrawBuffersEXT,_glDrawBuffersEXT.sig="vii",Module._glDrawBuffersWEBGL=_glDrawBuffersWEBGL,_glDrawBuffersWEBGL.sig="vii",Module._glColorMask=_glColorMask,_glColorMask.sig="viiii",Module._glDepthMask=_glDepthMask,_glDepthMask.sig="vi",Module._glSampleCoverage=_glSampleCoverage,_glSampleCoverage.sig="vii",Module._glMultiDrawArrays=_glMultiDrawArrays,_glMultiDrawArrays.sig="viiii",Module._glMultiDrawArraysANGLE=_glMultiDrawArraysANGLE,_glMultiDrawArraysANGLE.sig="viiii",Module._glMultiDrawArraysWEBGL=_glMultiDrawArraysWEBGL,_glMultiDrawArraysWEBGL.sig="viiii",Module._glMultiDrawArraysInstancedANGLE=_glMultiDrawArraysInstancedANGLE,_glMultiDrawArraysInstancedANGLE.sig="viiiii",Module._glMultiDrawArraysInstancedWEBGL=_glMultiDrawArraysInstancedWEBGL,_glMultiDrawArraysInstancedWEBGL.sig="viiiii",Module._glMultiDrawElements=_glMultiDrawElements,_glMultiDrawElements.sig="viiiii",Module._glMultiDrawElementsANGLE=_glMultiDrawElementsANGLE,_glMultiDrawElementsANGLE.sig="viiiii",Module._glMultiDrawElementsWEBGL=_glMultiDrawElementsWEBGL,_glMultiDrawElementsWEBGL.sig="viiiii",Module._glMultiDrawElementsInstancedANGLE=_glMultiDrawElementsInstancedANGLE,_glMultiDrawElementsInstancedANGLE.sig="viiiiii",Module._glMultiDrawElementsInstancedWEBGL=_glMultiDrawElementsInstancedWEBGL,_glMultiDrawElementsInstancedWEBGL.sig="viiiiii",Module._glFinish=_glFinish,_glFinish.sig="v",Module._glFlush=_glFlush,_glFlush.sig="v",Module._glClearDepth=_glClearDepth,_glClearDepth.sig="vi",Module._glClearDepthf=_glClearDepthf,_glClearDepthf.sig="vf",Module._glDepthFunc=_glDepthFunc,_glDepthFunc.sig="vi",Module._glEnable=_glEnable,_glEnable.sig="vi",Module._glDisable=_glDisable,_glDisable.sig="vi",Module._glFrontFace=_glFrontFace,_glFrontFace.sig="vi",Module._glCullFace=_glCullFace,_glCullFace.sig="vi",Module._glClear=_glClear,_glClear.sig="vi",Module._glLineWidth=_glLineWidth,_glLineWidth.sig="vf",Module._glClearStencil=_glClearStencil,_glClearStencil.sig="vi",Module._glStencilMask=_glStencilMask,_glStencilMask.sig="vi",Module._glCheckFramebufferStatus=_glCheckFramebufferStatus,_glCheckFramebufferStatus.sig="ii",Module._glGenerateMipmap=_glGenerateMipmap,_glGenerateMipmap.sig="vi",Module._glActiveTexture=_glActiveTexture,_glActiveTexture.sig="vi",Module._glBlendEquation=_glBlendEquation,_glBlendEquation.sig="vi",Module._glIsEnabled=_glIsEnabled,_glIsEnabled.sig="ii",Module._glBlendFunc=_glBlendFunc,_glBlendFunc.sig="vii",Module._glBlendEquationSeparate=_glBlendEquationSeparate,_glBlendEquationSeparate.sig="vii",Module._glDepthRange=_glDepthRange,_glDepthRange.sig="vii",Module._glDepthRangef=_glDepthRangef,_glDepthRangef.sig="vii",Module._glStencilMaskSeparate=_glStencilMaskSeparate,_glStencilMaskSeparate.sig="vii",Module._glHint=_glHint,_glHint.sig="vii",Module._glPolygonOffset=_glPolygonOffset,_glPolygonOffset.sig="vff",Module._glVertexAttrib1f=_glVertexAttrib1f,_glVertexAttrib1f.sig="vif",Module._glTexParameteri=_glTexParameteri,_glTexParameteri.sig="viii",Module._glTexParameterf=_glTexParameterf,_glTexParameterf.sig="viii",Module._glVertexAttrib2f=_glVertexAttrib2f,_glVertexAttrib2f.sig="viff",Module._glStencilFunc=_glStencilFunc,_glStencilFunc.sig="viii",Module._glStencilOp=_glStencilOp,_glStencilOp.sig="viii",Module._glViewport=_glViewport,_glViewport.sig="viiii",Module._glClearColor=_glClearColor,_glClearColor.sig="vffff",Module._glScissor=_glScissor,_glScissor.sig="viiii",Module._glVertexAttrib3f=_glVertexAttrib3f,_glVertexAttrib3f.sig="vifff",Module._glRenderbufferStorage=_glRenderbufferStorage,_glRenderbufferStorage.sig="viiii",Module._glBlendFuncSeparate=_glBlendFuncSeparate,_glBlendFuncSeparate.sig="viiii",Module._glBlendColor=_glBlendColor,_glBlendColor.sig="vffff",Module._glStencilFuncSeparate=_glStencilFuncSeparate,_glStencilFuncSeparate.sig="viiii",Module._glStencilOpSeparate=_glStencilOpSeparate,_glStencilOpSeparate.sig="viiii",Module._glVertexAttrib4f=_glVertexAttrib4f,_glVertexAttrib4f.sig="viffff",Module._glCopyTexImage2D=_glCopyTexImage2D,_glCopyTexImage2D.sig="viiiiiiii",Module._glCopyTexSubImage2D=_glCopyTexSubImage2D,_glCopyTexSubImage2D.sig="viiiiiiii",Module._emscripten_glGenVertexArrays=_emscripten_glGenVertexArrays,_emscripten_glGenVertexArrays.sig="vii",Module._emscripten_glDeleteVertexArrays=_emscripten_glDeleteVertexArrays,_emscripten_glDeleteVertexArrays.sig="vii",Module._emscripten_glBindVertexArray=_emscripten_glBindVertexArray,_emscripten_glBindVertexArray.sig="vi",Module._emscripten_glIsVertexArray=_emscripten_glIsVertexArray,_emscripten_glIsVertexArray.sig="ii",Module._emscripten_glVertexPointer=_emscripten_glVertexPointer,Module._emscripten_glMatrixMode=_emscripten_glMatrixMode,Module._emscripten_glBegin=_emscripten_glBegin,Module._emscripten_glLoadIdentity=_emscripten_glLoadIdentity,Module._emscripten_glVertexAttribDivisor=_emscripten_glVertexAttribDivisor,_emscripten_glVertexAttribDivisor.sig="vii",Module._emscripten_glDrawArraysInstanced=_emscripten_glDrawArraysInstanced,_emscripten_glDrawArraysInstanced.sig="viiii",Module._emscripten_glDrawElementsInstanced=_emscripten_glDrawElementsInstanced,_emscripten_glDrawElementsInstanced.sig="viiiii",Module._emscripten_glVertexAttribDivisorNV=_emscripten_glVertexAttribDivisorNV,_emscripten_glVertexAttribDivisorNV.sig="vii",Module._emscripten_glDrawArraysInstancedNV=_emscripten_glDrawArraysInstancedNV,_emscripten_glDrawArraysInstancedNV.sig="viiii",Module._emscripten_glDrawElementsInstancedNV=_emscripten_glDrawElementsInstancedNV,_emscripten_glDrawElementsInstancedNV.sig="viiiii",Module._emscripten_glVertexAttribDivisorEXT=_emscripten_glVertexAttribDivisorEXT,_emscripten_glVertexAttribDivisorEXT.sig="vii",Module._emscripten_glDrawArraysInstancedEXT=_emscripten_glDrawArraysInstancedEXT,_emscripten_glDrawArraysInstancedEXT.sig="viiii",Module._emscripten_glDrawElementsInstancedEXT=_emscripten_glDrawElementsInstancedEXT,_emscripten_glDrawElementsInstancedEXT.sig="viiiii",Module._emscripten_glVertexAttribDivisorARB=_emscripten_glVertexAttribDivisorARB,_emscripten_glVertexAttribDivisorARB.sig="vii",Module._emscripten_glDrawArraysInstancedARB=_emscripten_glDrawArraysInstancedARB,_emscripten_glDrawArraysInstancedARB.sig="viiii",Module._emscripten_glDrawElementsInstancedARB=_emscripten_glDrawElementsInstancedARB,_emscripten_glDrawElementsInstancedARB.sig="viiiii",Module._emscripten_glDrawBuffers=_emscripten_glDrawBuffers,_emscripten_glDrawBuffers.sig="vii",Module._emscripten_glDrawBuffersEXT=_emscripten_glDrawBuffersEXT,_emscripten_glDrawBuffersEXT.sig="vii",Module._emscripten_glMultiDrawArrays=_emscripten_glMultiDrawArrays,_emscripten_glMultiDrawArrays.sig="viiii",Module._emscripten_glMultiDrawArraysANGLE=_emscripten_glMultiDrawArraysANGLE,_emscripten_glMultiDrawArraysANGLE.sig="viiii",Module._emscripten_glMultiDrawArraysWEBGL=_emscripten_glMultiDrawArraysWEBGL,_emscripten_glMultiDrawArraysWEBGL.sig="viiii",Module._emscripten_glMultiDrawArraysInstancedANGLE=_emscripten_glMultiDrawArraysInstancedANGLE,_emscripten_glMultiDrawArraysInstancedANGLE.sig="viiiii",Module._emscripten_glMultiDrawArraysInstancedWEBGL=_emscripten_glMultiDrawArraysInstancedWEBGL,_emscripten_glMultiDrawArraysInstancedWEBGL.sig="viiiii",Module._emscripten_glMultiDrawElements=_emscripten_glMultiDrawElements,_emscripten_glMultiDrawElements.sig="viiiii",Module._emscripten_glMultiDrawElementsANGLE=_emscripten_glMultiDrawElementsANGLE,_emscripten_glMultiDrawElementsANGLE.sig="viiiii",Module._emscripten_glMultiDrawElementsWEBGL=_emscripten_glMultiDrawElementsWEBGL,_emscripten_glMultiDrawElementsWEBGL.sig="viiiii",Module._emscripten_glMultiDrawElementsInstancedANGLE=_emscripten_glMultiDrawElementsInstancedANGLE,_emscripten_glMultiDrawElementsInstancedANGLE.sig="viiiiii",Module._emscripten_glMultiDrawElementsInstancedWEBGL=_emscripten_glMultiDrawElementsInstancedWEBGL,_emscripten_glMultiDrawElementsInstancedWEBGL.sig="viiiiii",Module._emscripten_glClearDepth=_emscripten_glClearDepth,_emscripten_glClearDepth.sig="vi",Module._emscripten_glDepthRange=_emscripten_glDepthRange,_emscripten_glDepthRange.sig="vii",Module.writeGLArray=writeGLArray,Module._emscripten_webgl_init_context_attributes=_emscripten_webgl_init_context_attributes;var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(e,t){var _=t>>2,r=HEAP32[_+6],n={alpha:!!HEAP32[_+0],depth:!!HEAP32[_+1],stencil:!!HEAP32[_+2],antialias:!!HEAP32[_+3],premultipliedAlpha:!!HEAP32[_+4],preserveDrawingBuffer:!!HEAP32[_+5],powerPreference:__emscripten_webgl_power_preferences[r],failIfMajorPerformanceCaveat:!!HEAP32[_+7],majorVersion:HEAP32[_+8],minorVersion:HEAP32[_+9],enableExtensionsByDefault:HEAP32[_+10],explicitSwapControl:HEAP32[_+11],proxyContextToMainThread:HEAP32[_+12],renderViaOffscreenBackBuffer:HEAP32[_+13]},o=findCanvasEventTarget(e);return o?n.explicitSwapControl?0:GL.createContext(o,n):0}Module.__emscripten_webgl_power_preferences=__emscripten_webgl_power_preferences,Module._emscripten_webgl_do_create_context=_emscripten_webgl_do_create_context,_emscripten_webgl_do_create_context.sig="iii";var _emscripten_webgl_create_context=_emscripten_webgl_do_create_context;function _emscripten_webgl_do_get_current_context(){return GL.currentContext?GL.currentContext.handle:0}Module._emscripten_webgl_create_context=_emscripten_webgl_create_context,_emscripten_webgl_create_context.sig="iii",Module._emscripten_webgl_do_get_current_context=_emscripten_webgl_do_get_current_context;var _emscripten_webgl_get_current_context=_emscripten_webgl_do_get_current_context;function _emscripten_webgl_do_commit_frame(){return GL.currentContext&&GL.currentContext.GLctx&&GL.currentContext.attributes.explicitSwapControl?0:-3}Module._emscripten_webgl_get_current_context=_emscripten_webgl_get_current_context,_emscripten_webgl_get_current_context.sig="i",Module._emscripten_webgl_do_commit_frame=_emscripten_webgl_do_commit_frame,_emscripten_webgl_do_commit_frame.sig="i";var _emscripten_webgl_commit_frame=_emscripten_webgl_do_commit_frame;function _emscripten_webgl_make_context_current(e){return GL.makeContextCurrent(e)?0:-5}function _emscripten_webgl_get_drawing_buffer_size(e,t,_){var r=GL.getContext(e);return r&&r.GLctx&&t&&_?(HEAP32[t>>2]=r.GLctx.drawingBufferWidth,HEAP32[_>>2]=r.GLctx.drawingBufferHeight,0):-5}function _emscripten_webgl_get_context_attributes(e,t){if(!t)return-5;if(!(e=GL.contexts[e]))return-3;var _=e.GLctx;if(!_)return-3;_=_.getContextAttributes(),HEAP32[t>>2]=_.alpha,HEAP32[t+4>>2]=_.depth,HEAP32[t+8>>2]=_.stencil,HEAP32[t+12>>2]=_.antialias,HEAP32[t+16>>2]=_.premultipliedAlpha,HEAP32[t+20>>2]=_.preserveDrawingBuffer;var r=_.powerPreference&&__emscripten_webgl_power_preferences.indexOf(_.powerPreference);return HEAP32[t+24>>2]=r,HEAP32[t+28>>2]=_.failIfMajorPerformanceCaveat,HEAP32[t+32>>2]=e.version,HEAP32[t+36>>2]=0,HEAP32[t+40>>2]=e.attributes.enableExtensionsByDefault,0}function _emscripten_webgl_destroy_context(e){GL.currentContext==e&&(GL.currentContext=0),GL.deleteContext(e)}function _emscripten_webgl_enable_extension(e,t){var _=GL.getContext(e),r=UTF8ToString(t);return r.startsWith("GL_")&&(r=r.substr(3)),"ANGLE_instanced_arrays"==r&&__webgl_enable_ANGLE_instanced_arrays(GLctx),"OES_vertex_array_object"==r&&__webgl_enable_OES_vertex_array_object(GLctx),"WEBGL_draw_buffers"==r&&__webgl_enable_WEBGL_draw_buffers(GLctx),"WEBGL_multi_draw"==r&&__webgl_enable_WEBGL_multi_draw(GLctx),!!_.GLctx.getExtension(r)}function _emscripten_supports_offscreencanvas(){return 0}function __registerWebGlEventCallback(e,t,_,r,n,o,l){var i={target:findEventTarget(e),eventTypeString:o,callbackfunc:r,handlerFunc:function(e=event){getWasmTableEntry(r)(n,0,t)&&e.preventDefault()},useCapture:_};JSEvents.registerOrRemoveHandler(i)}function _emscripten_set_webglcontextlost_callback_on_thread(e,t,_,r,n){return __registerWebGlEventCallback(e,t,_,r,31,"webglcontextlost",n),0}function _emscripten_set_webglcontextrestored_callback_on_thread(e,t,_,r,n){return __registerWebGlEventCallback(e,t,_,r,32,"webglcontextrestored",n),0}function _emscripten_is_webgl_context_lost(e){return!GL.contexts[e]||GL.contexts[e].GLctx.isContextLost()}function _emscripten_webgl_get_supported_extensions(){return stringToNewUTF8(GLctx.getSupportedExtensions().join(" "))}function _emscripten_webgl_get_program_parameter_d(e,t){return GLctx.getProgramParameter(GL.programs[e],t)}function _emscripten_webgl_get_program_info_log_utf8(e){return stringToNewUTF8(GLctx.getProgramInfoLog(GL.programs[e]))}function _emscripten_webgl_get_shader_parameter_d(e,t){return GLctx.getShaderParameter(GL.shaders[e],t)}function _emscripten_webgl_get_shader_info_log_utf8(e){return stringToNewUTF8(GLctx.getShaderInfoLog(GL.shaders[e]))}function _emscripten_webgl_get_shader_source_utf8(e){return stringToNewUTF8(GLctx.getShaderSource(GL.shaders[e]))}function _emscripten_webgl_get_vertex_attrib_d(e,t){return GLctx.getVertexAttrib(e,t)}function _emscripten_webgl_get_vertex_attrib_o(e,t){var _=GLctx.getVertexAttrib(e,t);return _&&_.name}function _emscripten_webgl_get_vertex_attrib_v(e,t,_,r,n){return writeGLArray(GLctx.getVertexAttrib(e,t),_,r,n)}function _emscripten_webgl_get_uniform_d(e,t){return GLctx.getUniform(GL.programs[e],webglGetUniformLocation(t))}function _emscripten_webgl_get_uniform_v(e,t,_,r,n){return writeGLArray(GLctx.getUniform(GL.programs[e],webglGetUniformLocation(t)),_,r,n)}function _emscripten_webgl_get_parameter_v(e,t,_,r){return writeGLArray(GLctx.getParameter(e),t,_,r)}function _emscripten_webgl_get_parameter_d(e){return GLctx.getParameter(e)}function _emscripten_webgl_get_parameter_o(e){var t=GLctx.getParameter(e);return t&&t.name}function _emscripten_webgl_get_parameter_utf8(e){return stringToNewUTF8(GLctx.getParameter(e))}function _emscripten_webgl_get_parameter_i64v(e,t){writeI53ToI64(t,GLctx.getParameter(e))}Module._emscripten_webgl_commit_frame=_emscripten_webgl_commit_frame,_emscripten_webgl_commit_frame.sig="i",Module._emscripten_webgl_make_context_current=_emscripten_webgl_make_context_current,_emscripten_webgl_make_context_current.sig="ii",Module._emscripten_webgl_get_drawing_buffer_size=_emscripten_webgl_get_drawing_buffer_size,_emscripten_webgl_get_drawing_buffer_size.sig="iiii",Module._emscripten_webgl_get_context_attributes=_emscripten_webgl_get_context_attributes,_emscripten_webgl_get_context_attributes.sig="iii",Module._emscripten_webgl_destroy_context=_emscripten_webgl_destroy_context,_emscripten_webgl_destroy_context.sig="vi",Module._emscripten_webgl_enable_extension=_emscripten_webgl_enable_extension,_emscripten_webgl_enable_extension.sig="iii",Module._emscripten_supports_offscreencanvas=_emscripten_supports_offscreencanvas,Module.__registerWebGlEventCallback=__registerWebGlEventCallback,Module._emscripten_set_webglcontextlost_callback_on_thread=_emscripten_set_webglcontextlost_callback_on_thread,_emscripten_set_webglcontextlost_callback_on_thread.sig="iiiiii",Module._emscripten_set_webglcontextrestored_callback_on_thread=_emscripten_set_webglcontextrestored_callback_on_thread,_emscripten_set_webglcontextrestored_callback_on_thread.sig="iiiiii",Module._emscripten_is_webgl_context_lost=_emscripten_is_webgl_context_lost,_emscripten_is_webgl_context_lost.sig="ii",Module._emscripten_webgl_get_supported_extensions=_emscripten_webgl_get_supported_extensions,_emscripten_webgl_get_supported_extensions.sig="i",Module._emscripten_webgl_get_program_parameter_d=_emscripten_webgl_get_program_parameter_d,_emscripten_webgl_get_program_parameter_d.sig="fii",Module._emscripten_webgl_get_program_info_log_utf8=_emscripten_webgl_get_program_info_log_utf8,_emscripten_webgl_get_program_info_log_utf8.sig="ii",Module._emscripten_webgl_get_shader_parameter_d=_emscripten_webgl_get_shader_parameter_d,_emscripten_webgl_get_shader_parameter_d.sig="fii",Module._emscripten_webgl_get_shader_info_log_utf8=_emscripten_webgl_get_shader_info_log_utf8,_emscripten_webgl_get_shader_info_log_utf8.sig="ii",Module._emscripten_webgl_get_shader_source_utf8=_emscripten_webgl_get_shader_source_utf8,_emscripten_webgl_get_shader_source_utf8.sig="ii",Module._emscripten_webgl_get_vertex_attrib_d=_emscripten_webgl_get_vertex_attrib_d,_emscripten_webgl_get_vertex_attrib_d.sig="iii",Module._emscripten_webgl_get_vertex_attrib_o=_emscripten_webgl_get_vertex_attrib_o,_emscripten_webgl_get_vertex_attrib_o.sig="iii",Module._emscripten_webgl_get_vertex_attrib_v=_emscripten_webgl_get_vertex_attrib_v,_emscripten_webgl_get_vertex_attrib_v.sig="iiiiii",Module._emscripten_webgl_get_uniform_d=_emscripten_webgl_get_uniform_d,_emscripten_webgl_get_uniform_d.sig="fii",Module._emscripten_webgl_get_uniform_v=_emscripten_webgl_get_uniform_v,_emscripten_webgl_get_uniform_v.sig="iiiiii",Module._emscripten_webgl_get_parameter_v=_emscripten_webgl_get_parameter_v,_emscripten_webgl_get_parameter_v.sig="iiiii",Module._emscripten_webgl_get_parameter_d=_emscripten_webgl_get_parameter_d,_emscripten_webgl_get_parameter_d.sig="fi",Module._emscripten_webgl_get_parameter_o=_emscripten_webgl_get_parameter_o,_emscripten_webgl_get_parameter_o.sig="ii",Module._emscripten_webgl_get_parameter_utf8=_emscripten_webgl_get_parameter_utf8,_emscripten_webgl_get_parameter_utf8.sig="ii",Module._emscripten_webgl_get_parameter_i64v=_emscripten_webgl_get_parameter_i64v,_emscripten_webgl_get_parameter_i64v.sig="vii";var EGL={errorCode:12288,defaultDisplayInitialized:!1,currentContext:0,currentReadSurface:0,currentDrawSurface:0,contextAttributes:{alpha:!1,depth:!1,stencil:!1,antialias:!1},stringCache:{},setErrorCode:function(e){EGL.errorCode=e},chooseConfig:function(e,t,_,r,n){if(62e3!=e)return EGL.setErrorCode(12296),0;if(t)for(;;){var o=HEAP32[t>>2];if(12321==o){var l=HEAP32[t+4>>2];EGL.contextAttributes.alpha=l>0}else if(12325==o){var i=HEAP32[t+4>>2];EGL.contextAttributes.depth=i>0}else if(12326==o){var a=HEAP32[t+4>>2];EGL.contextAttributes.stencil=a>0}else if(12337==o){var u=HEAP32[t+4>>2];EGL.contextAttributes.antialias=u>0}else if(12338==o){u=HEAP32[t+4>>2];EGL.contextAttributes.antialias=1==u}else if(12544==o){var s=HEAP32[t+4>>2];EGL.contextAttributes.lowLatency=12547!=s}else if(12344==o)break;t+=8}return _&&r||n?(n&&(HEAP32[n>>2]=1),_&&r>0&&(HEAP32[_>>2]=62002),EGL.setErrorCode(12288),1):(EGL.setErrorCode(12300),0)}};function _eglGetDisplay(e){return EGL.setErrorCode(12288),62e3}function _eglInitialize(e,t,_){return 62e3!=e?(EGL.setErrorCode(12296),0):(t&&(HEAP32[t>>2]=1),_&&(HEAP32[_>>2]=4),EGL.defaultDisplayInitialized=!0,EGL.setErrorCode(12288),1)}function _eglTerminate(e){return 62e3!=e?(EGL.setErrorCode(12296),0):(EGL.currentContext=0,EGL.currentReadSurface=0,EGL.currentDrawSurface=0,EGL.defaultDisplayInitialized=!1,EGL.setErrorCode(12288),1)}function _eglGetConfigs(e,t,_,r){return EGL.chooseConfig(e,0,t,_,r)}function _eglChooseConfig(e,t,_,r,n){return EGL.chooseConfig(e,t,_,r,n)}function _eglGetConfigAttrib(e,t,_,r){if(62e3!=e)return EGL.setErrorCode(12296),0;if(62002!=t)return EGL.setErrorCode(12293),0;if(!r)return EGL.setErrorCode(12300),0;switch(EGL.setErrorCode(12288),_){case 12320:return HEAP32[r>>2]=EGL.contextAttributes.alpha?32:24,1;case 12321:return HEAP32[r>>2]=EGL.contextAttributes.alpha?8:0,1;case 12322:case 12323:case 12324:return HEAP32[r>>2]=8,1;case 12325:return HEAP32[r>>2]=EGL.contextAttributes.depth?24:0,1;case 12326:return HEAP32[r>>2]=EGL.contextAttributes.stencil?8:0,1;case 12327:case 12335:case 12340:return HEAP32[r>>2]=12344,1;case 12328:return HEAP32[r>>2]=62002,1;case 12329:case 12333:case 12334:case 12345:case 12346:case 12347:case 12349:case 12350:case 12354:return HEAP32[r>>2]=0,1;case 12330:case 12332:return HEAP32[r>>2]=4096,1;case 12331:return HEAP32[r>>2]=16777216,1;case 12337:return HEAP32[r>>2]=EGL.contextAttributes.antialias?4:0,1;case 12338:return HEAP32[r>>2]=EGL.contextAttributes.antialias?1:0,1;case 12339:case 12352:return HEAP32[r>>2]=4,1;case 12341:case 12342:case 12343:return HEAP32[r>>2]=-1,1;case 12348:return HEAP32[r>>2]=1,1;case 12351:return HEAP32[r>>2]=12430,1;default:return EGL.setErrorCode(12292),0}}function _eglCreateWindowSurface(e,t,_,r){return 62e3!=e?(EGL.setErrorCode(12296),0):62002!=t?(EGL.setErrorCode(12293),0):(EGL.setErrorCode(12288),62006)}function _eglDestroySurface(e,t){return 62e3!=e?(EGL.setErrorCode(12296),0):62006!=t?(EGL.setErrorCode(12301),1):(EGL.currentReadSurface==t&&(EGL.currentReadSurface=0),EGL.currentDrawSurface==t&&(EGL.currentDrawSurface=0),EGL.setErrorCode(12288),1)}function _eglCreateContext(e,t,_,r){if(62e3!=e)return EGL.setErrorCode(12296),0;for(var n=1;;){var o=HEAP32[r>>2];if(12440!=o){if(12344==o)break;return EGL.setErrorCode(12292),0}n=HEAP32[r+4>>2],r+=8}return 2!=n?(EGL.setErrorCode(12293),0):(EGL.contextAttributes.majorVersion=n-1,EGL.contextAttributes.minorVersion=0,EGL.context=GL.createContext(Module.canvas,EGL.contextAttributes),0!=EGL.context?(EGL.setErrorCode(12288),GL.makeContextCurrent(EGL.context),Module.useWebGL=!0,Browser.moduleContextCreatedCallbacks.forEach((function(e){e()})),GL.makeContextCurrent(null),62004):(EGL.setErrorCode(12297),0))}function _eglDestroyContext(e,t){return 62e3!=e?(EGL.setErrorCode(12296),0):62004!=t?(EGL.setErrorCode(12294),0):(GL.deleteContext(EGL.context),EGL.setErrorCode(12288),EGL.currentContext==t&&(EGL.currentContext=0),1)}function _eglQuerySurface(e,t,_,r){if(62e3!=e)return EGL.setErrorCode(12296),0;if(62006!=t)return EGL.setErrorCode(12301),0;if(!r)return EGL.setErrorCode(12300),0;switch(EGL.setErrorCode(12288),_){case 12328:return HEAP32[r>>2]=62002,1;case 12376:case 12416:case 12417:case 12418:case 12419:return 1;case 12375:return HEAP32[r>>2]=Module.canvas.width,1;case 12374:return HEAP32[r>>2]=Module.canvas.height,1;case 12432:case 12433:case 12434:return HEAP32[r>>2]=-1,1;case 12422:return HEAP32[r>>2]=12420,1;case 12441:return HEAP32[r>>2]=12442,1;case 12435:return HEAP32[r>>2]=12437,1;default:return EGL.setErrorCode(12292),0}}function _eglQueryContext(e,t,_,r){if(62e3!=e)return EGL.setErrorCode(12296),0;if(62004!=t)return EGL.setErrorCode(12294),0;if(!r)return EGL.setErrorCode(12300),0;switch(EGL.setErrorCode(12288),_){case 12328:return HEAP32[r>>2]=62002,1;case 12439:return HEAP32[r>>2]=12448,1;case 12440:return HEAP32[r>>2]=EGL.contextAttributes.majorVersion+1,1;case 12422:return HEAP32[r>>2]=12420,1;default:return EGL.setErrorCode(12292),0}}function _eglGetError(){return EGL.errorCode}function _eglQueryString(e,t){if(62e3!=e)return EGL.setErrorCode(12296),0;if(EGL.setErrorCode(12288),EGL.stringCache[t])return EGL.stringCache[t];var _;switch(t){case 12371:_=allocateUTF8("Emscripten");break;case 12372:_=allocateUTF8("1.4 Emscripten EGL");break;case 12373:_=allocateUTF8("");break;case 12429:_=allocateUTF8("OpenGL_ES");break;default:return EGL.setErrorCode(12300),0}return EGL.stringCache[t]=_,_}function _eglBindAPI(e){return 12448==e?(EGL.setErrorCode(12288),1):(EGL.setErrorCode(12300),0)}function _eglQueryAPI(){return EGL.setErrorCode(12288),12448}function _eglWaitClient(){return EGL.setErrorCode(12288),1}function _eglWaitNative(e){return EGL.setErrorCode(12288),1}Module.EGL=EGL,Module._eglGetDisplay=_eglGetDisplay,_eglGetDisplay.sig="ii",Module._eglInitialize=_eglInitialize,_eglInitialize.sig="iiii",Module._eglTerminate=_eglTerminate,_eglTerminate.sig="ii",Module._eglGetConfigs=_eglGetConfigs,_eglGetConfigs.sig="iiiii",Module._eglChooseConfig=_eglChooseConfig,_eglChooseConfig.sig="iiiiii",Module._eglGetConfigAttrib=_eglGetConfigAttrib,_eglGetConfigAttrib.sig="iiiii",Module._eglCreateWindowSurface=_eglCreateWindowSurface,_eglCreateWindowSurface.sig="iiiii",Module._eglDestroySurface=_eglDestroySurface,_eglDestroySurface.sig="iii",Module._eglCreateContext=_eglCreateContext,_eglCreateContext.sig="iiiii",Module._eglDestroyContext=_eglDestroyContext,_eglDestroyContext.sig="iii",Module._eglQuerySurface=_eglQuerySurface,_eglQuerySurface.sig="iiiii",Module._eglQueryContext=_eglQueryContext,_eglQueryContext.sig="iiiii",Module._eglGetError=_eglGetError,_eglGetError.sig="i",Module._eglQueryString=_eglQueryString,_eglQueryString.sig="iii",Module._eglBindAPI=_eglBindAPI,_eglBindAPI.sig="ii",Module._eglQueryAPI=_eglQueryAPI,_eglQueryAPI.sig="i",Module._eglWaitClient=_eglWaitClient,_eglWaitClient.sig="i",Module._eglWaitNative=_eglWaitNative,_eglWaitNative.sig="ii";var _eglWaitGL=_eglWaitClient;function _eglSwapInterval(e,t){return 62e3!=e?(EGL.setErrorCode(12296),0):(0==t?_emscripten_set_main_loop_timing(0,0):_emscripten_set_main_loop_timing(1,t),EGL.setErrorCode(12288),1)}function _eglMakeCurrent(e,t,_,r){return 62e3!=e?(EGL.setErrorCode(12296),0):0!=r&&62004!=r?(EGL.setErrorCode(12294),0):0!=_&&62006!=_||0!=t&&62006!=t?(EGL.setErrorCode(12301),0):(GL.makeContextCurrent(r?EGL.context:null),EGL.currentContext=r,EGL.currentDrawSurface=t,EGL.currentReadSurface=_,EGL.setErrorCode(12288),1)}function _eglGetCurrentContext(){return EGL.currentContext}function _eglGetCurrentSurface(e){return 12378==e?EGL.currentReadSurface:12377==e?EGL.currentDrawSurface:(EGL.setErrorCode(12300),0)}function _eglGetCurrentDisplay(){return EGL.currentContext?62e3:0}function _eglSwapBuffers(){if(EGL.defaultDisplayInitialized)if(Module.ctx){if(!Module.ctx.isContextLost())return EGL.setErrorCode(12288),1;EGL.setErrorCode(12302)}else EGL.setErrorCode(12290);else EGL.setErrorCode(12289);return 0}function _eglReleaseThread(){return EGL.currentContext=0,EGL.currentReadSurface=0,EGL.currentDrawSurface=0,EGL.setErrorCode(12288),1}Module._eglWaitGL=_eglWaitGL,Module._eglSwapInterval=_eglSwapInterval,_eglSwapInterval.sig="iii",Module._eglMakeCurrent=_eglMakeCurrent,_eglMakeCurrent.sig="iiiii",Module._eglGetCurrentContext=_eglGetCurrentContext,_eglGetCurrentContext.sig="i",Module._eglGetCurrentSurface=_eglGetCurrentSurface,_eglGetCurrentSurface.sig="ii",Module._eglGetCurrentDisplay=_eglGetCurrentDisplay,_eglGetCurrentDisplay.sig="i",Module._eglSwapBuffers=_eglSwapBuffers,_eglSwapBuffers.sig="iii",Module._eglReleaseThread=_eglReleaseThread,_eglReleaseThread.sig="i";var FSNode=function(e,t,_,r){e||(e=this),this.parent=e,this.mount=e.mount,this.mounted=null,this.id=FS.nextInode++,this.name=t,this.mode=_,this.node_ops={},this.stream_ops={},this.rdev=r},readMode=365,writeMode=146,GLctx;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(e){e?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(e){e?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}}),FS.FSNode=FSNode,FS.staticInit(),Module.FS_createPath=FS.createPath,Module.FS_createDataFile=FS.createDataFile,Module.FS_createPreloadedFile=FS.createPreloadedFile,Module.FS_unlink=FS.unlink,Module.FS_createLazyFile=FS.createLazyFile,Module.FS_createDevice=FS.createDevice,ENVIRONMENT_IS_NODE&&NODEFS.staticInit(),ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};for(var i=0;i<32;++i)tempFixedLengthArray.push(new Array(i));for(var miniTempWebGLFloatBuffersStorage=new Float32Array(288),i=0;i<288;++i)miniTempWebGLFloatBuffers[i]=miniTempWebGLFloatBuffersStorage.subarray(0,i+1);for(var __miniTempWebGLIntBuffersStorage=new Int32Array(288),i=0,emSetImmediate,emClearImmediate;i<288;++i)__miniTempWebGLIntBuffers[i]=__miniTempWebGLIntBuffersStorage.subarray(0,i+1);if("undefined"!=typeof setImmediate)emSetImmediate=setImmediateWrapped,emClearImmediate=clearImmediateWrapped;else if("function"==typeof addEventListener){var __setImmediate_id_counter=0,__setImmediate_queue=[],__setImmediate_message_id="_si",__setImmediate_cb=e=>{e.data===__setImmediate_message_id&&(e.stopPropagation(),__setImmediate_queue.shift()(),++__setImmediate_id_counter)};addEventListener("message",__setImmediate_cb,!0),emSetImmediate=e=>(postMessage(__setImmediate_message_id,"*"),__setImmediate_id_counter+__setImmediate_queue.push(e)-1),emClearImmediate=e=>{var t=e-__setImmediate_id_counter;t>=0&&t<__setImmediate_queue.length&&(__setImmediate_queue[t]=()=>{})}}Module.requestFullscreen=function(e,t){Browser.requestFullscreen(e,t)},Module.requestAnimationFrame=function(e){Browser.requestAnimationFrame(e)},Module.setCanvasSize=function(e,t,_){Browser.setCanvasSize(e,t,_)},Module.pauseMainLoop=function(){Browser.mainLoop.pause()},Module.resumeMainLoop=function(){Browser.mainLoop.resume()},Module.getUserMedia=function(){Browser.getUserMedia()},Module.createContext=function(e,t,_,r){return Browser.createContext(e,t,_,r)};var preloadedWasm={},preloadedImages={},preloadedAudios={},decodeBase64="function"==typeof atob?atob:function(e){var t,_,r,n,o,l,i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",a="",u=0;e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{t=i.indexOf(e.charAt(u++))<<2|(n=i.indexOf(e.charAt(u++)))>>4,_=(15&n)<<4|(o=i.indexOf(e.charAt(u++)))>>2,r=(3&o)<<6|(l=i.indexOf(e.charAt(u++))),a+=String.fromCharCode(t),64!==o&&(a+=String.fromCharCode(_)),64!==l&&(a+=String.fromCharCode(r))}while(u>2;e.forEach((e=>{HEAP32[n++]=allocateUTF8OnStack(e)})),HEAP32[n]=0;try{var o=t(_,r);return exitJS(o,!0),o}catch(e){return handleException(e)}}}Module.addRunDependency=addRunDependency,Module.removeRunDependency=removeRunDependency,Module.FS_createPath=FS.createPath,Module.FS_createDataFile=FS.createDataFile,Module.FS_createPreloadedFile=FS.createPreloadedFile,Module.FS_createLazyFile=FS.createLazyFile,Module.FS_createDevice=FS.createDevice,Module.FS_unlink=FS.unlink,Module.stackAlloc=stackAlloc,Module.stackSave=stackSave,Module.stackRestore=stackRestore,Module.LZ4=LZ4,dependenciesFulfilled=function e(){calledRun||run(),calledRun||(dependenciesFulfilled=e)};var dylibsLoaded=!1;function run(e=arguments_){function t(){calledRun||(calledRun=!0,Module.calledRun=!0,ABORT||(initRuntime(),preMain(),readyPromiseResolve(Module),Module.onRuntimeInitialized&&Module.onRuntimeInitialized(),shouldRunNow&&callMain(e),postRun()))}runDependencies>0||!dylibsLoaded&&(preloadDylibs(),dylibsLoaded=!0,runDependencies>0)||(preRun(),runDependencies>0||(Module.setStatus?(Module.setStatus("Running..."),setTimeout((function(){setTimeout((function(){Module.setStatus("")}),1),t()}),1)):t()))}if(LDSO.init(),Module.preInit)for("function"==typeof Module.preInit&&(Module.preInit=[Module.preInit]);Module.preInit.length>0;)Module.preInit.pop()();var shouldRunNow=!0;return Module.noInitialRun&&(shouldRunNow=!1),run(),_createPyodideModule.ready}})();globalThis._createPyodideModule=_createPyodideModule; \ No newline at end of file diff --git a/boards/default/python_pyodide/deps/0.62.21/python3/pyodide/pyodide.js b/boards/default/python_pyodide/deps/0.62.21/python3/pyodide/pyodide.js index 37b35898..ca65fb0f 100644 --- a/boards/default/python_pyodide/deps/0.62.21/python3/pyodide/pyodide.js +++ b/boards/default/python_pyodide/deps/0.62.21/python3/pyodide/pyodide.js @@ -1,2 +1 @@ -!function(global,factory){"object"==typeof exports&&"undefined"!=typeof module?factory(exports):"function"==typeof define&&define.amd?define(["exports"],factory):factory((global="undefined"!=typeof globalThis?globalThis:global||self).loadPyodide={})}(this,(function(exports){"use strict";"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;var errorStackParser={exports:{}},stackframe={exports:{}};!function(module,exports){module.exports=function(){function _isNumber(n){return!isNaN(parseFloat(n))&&isFinite(n)}function _capitalize(str){return str.charAt(0).toUpperCase()+str.substring(1)}function _getter(p){return function(){return this[p]}}var booleanProps=["isConstructor","isEval","isNative","isToplevel"],numericProps=["columnNumber","lineNumber"],stringProps=["fileName","functionName","source"],arrayProps=["args"],objectProps=["evalOrigin"],props=booleanProps.concat(numericProps,stringProps,arrayProps,objectProps);function StackFrame(obj){if(obj)for(var i=0;i-1&&(line=line.replace(/eval code/g,"eval").replace(/(\(eval at [^()]*)|(,.*$)/g,""));var sanitizedLine=line.replace(/^\s+/,"").replace(/\(eval code/g,"(").replace(/^.*?\s+/,""),location=sanitizedLine.match(/ (\(.+\)$)/);sanitizedLine=location?sanitizedLine.replace(location[0],""):sanitizedLine;var locationParts=this.extractLocation(location?location[1]:sanitizedLine),functionName=location&&sanitizedLine||void 0,fileName=["eval",""].indexOf(locationParts[0])>-1?void 0:locationParts[0];return new StackFrame({functionName:functionName,fileName:fileName,lineNumber:locationParts[1],columnNumber:locationParts[2],source:line})}),this)},parseFFOrSafari:function(error){return error.stack.split("\n").filter((function(line){return!line.match(SAFARI_NATIVE_CODE_REGEXP)}),this).map((function(line){if(line.indexOf(" > eval")>-1&&(line=line.replace(/ line (\d+)(?: > eval line \d+)* > eval:\d+:\d+/g,":$1")),-1===line.indexOf("@")&&-1===line.indexOf(":"))return new StackFrame({functionName:line});var functionNameRegex=/((.*".+"[^@]*)?[^@]*)(?:@)/,matches=line.match(functionNameRegex),functionName=matches&&matches[1]?matches[1]:void 0,locationParts=this.extractLocation(line.replace(functionNameRegex,""));return new StackFrame({functionName:functionName,fileName:locationParts[0],lineNumber:locationParts[1],columnNumber:locationParts[2],source:line})}),this)},parseOpera:function(e){return!e.stacktrace||e.message.indexOf("\n")>-1&&e.message.split("\n").length>e.stacktrace.split("\n").length?this.parseOpera9(e):e.stack?this.parseOpera11(e):this.parseOpera10(e)},parseOpera9:function(e){for(var lineRE=/Line (\d+).*script (?:in )?(\S+)/i,lines=e.message.split("\n"),result=[],i=2,len=lines.length;i/,"$2").replace(/\([^)]*\)/g,"")||void 0;functionCall.match(/\(([^)]*)\)/)&&(argsRaw=functionCall.replace(/^[^(]+\(([^)]*)\)$/,"$1"));var args=void 0===argsRaw||"[arguments not available]"===argsRaw?void 0:argsRaw.split(",");return new StackFrame({functionName:functionName,args:args,fileName:locationParts[0],lineNumber:locationParts[1],columnNumber:locationParts[2],source:line})}),this)}})}(errorStackParser);var ErrorStackParser=errorStackParser.exports;const IN_NODE=false;let nodeUrlMod,nodeFetch,nodePath,nodeVmMod,nodeFsPromisesMod,resolvePath,pathSep,loadBinaryFile,loadScript;if(resolvePath=IN_NODE?function(path,base){return nodePath.resolve(base||".",path)}:function(path,base){return void 0===base&&(base=location),new URL(path,base).toString()},IN_NODE||(pathSep="/"),loadBinaryFile=IN_NODE?async function(path,_file_sub_resource_hash){if(path.startsWith("file://")&&(path=path.slice("file://".length)),path.includes("://")){let response=await nodeFetch(path);if(!response.ok)throw new Error(`Failed to load '${path}': request failed.`);return new Uint8Array(await response.arrayBuffer())}{const data=await nodeFsPromisesMod.readFile(path);return new Uint8Array(data.buffer,data.byteOffset,data.byteLength)}}:async function(path,subResourceHash){const url=new URL(path,location);let options=subResourceHash?{integrity:subResourceHash}:{},response=await fetch(url,options);if(!response.ok)throw new Error(`Failed to load '${url}': request failed.`);return new Uint8Array(await response.arrayBuffer())},globalThis.document)loadScript=async url=>await import(/* webpackIgnore: true */url);else if(globalThis.importScripts)loadScript=async url=>{try{globalThis.importScripts(url)}catch(e){if(!(e instanceof TypeError))throw e;await import(/* webpackIgnore: true */url)}};else{if(!IN_NODE)throw new Error("Cannot determine runtime environment");loadScript=async function(url){url.startsWith("file://")&&(url=url.slice("file://".length));url.includes("://")?nodeVmMod.runInThisContext(await(await nodeFetch(url)).text()):await import(/* webpackIgnore: true */nodeUrlMod.pathToFileURL(url).href)}}function __values(o){var s="function"==typeof Symbol&&Symbol.iterator,m=s&&o[s],i=0;if(m)return m.call(o);if(o&&"number"==typeof o.length)return{next:function(){return o&&i>=o.length&&(o=void 0),{value:o&&o[i++],done:!o}}};throw new TypeError(s?"Object is not iterable.":"Symbol.iterator is not defined.")}function __asyncValues(o){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var i,m=o[Symbol.asyncIterator];return m?m.call(o):(o=__values(o),i={},verb("next"),verb("throw"),verb("return"),i[Symbol.asyncIterator]=function(){return this},i);function verb(n){i[n]=o[n]&&function(v){return new Promise((function(resolve,reject){(function(resolve,reject,d,v){Promise.resolve(v).then((function(v){resolve({value:v,done:d})}),reject)})(resolve,reject,(v=o[n](v)).done,v.value)}))}}}const getFsHandles=async dirHandle=>{const handles=[];await async function collect(curDirHandle){var e_1,_a;try{for(var _c,_b=__asyncValues(curDirHandle.values());!(_c=await _b.next()).done;){const entry=_c.value;handles.push(entry),"directory"===entry.kind&&await collect(entry)}}catch(e_1_1){e_1={error:e_1_1}}finally{try{_c&&!_c.done&&(_a=_b.return)&&await _a.call(_b)}finally{if(e_1)throw e_1.error}}}(dirHandle);const result=new Map;result.set(".",dirHandle);for(const handle of handles){const relativePath=(await dirHandle.resolve(handle)).join("/");result.set(relativePath,handle)}return result};function initializeFileSystem(Module,config){let stdLibURL;stdLibURL=null!=config.stdLibURL?config.stdLibURL:config.indexURL+"python_stdlib.zip",function(Module,stdlibURL){const stdlibPromise=loadBinaryFile(stdlibURL);Module.preRun.push((()=>{const pymajor=Module._py_version_major(),pyminor=Module._py_version_minor();Module.FS.mkdirTree("/lib"),Module.FS.mkdirTree(`/lib/python${pymajor}.${pyminor}/site-packages`),Module.addRunDependency("install-stdlib"),stdlibPromise.then((stdlib=>{Module.FS.writeFile(`/lib/python${pymajor}${pyminor}.zip`,stdlib)})).catch((e=>{console.error("Error occurred while installing the standard library:"),console.error(e)})).finally((()=>{Module.removeRunDependency("install-stdlib")}))}))}(Module,stdLibURL),function(Module,path){Module.preRun.push((function(){try{Module.FS.mkdirTree(path)}catch(e){console.error(`Error occurred while making a home directory '${path}':`),console.error(e),console.error("Using '/' for a home directory instead"),path="/"}Module.ENV.HOME=path,Module.FS.chdir(path)}))}(Module,config.homedir),function(Module,mounts){Module.preRun.push((()=>{for(const mount of mounts)Module.FS.mkdirTree(mount),Module.FS.mount(Module.FS.filesystems.NODEFS,{root:mount},mount)}))}(Module,config._node_mounts),Module.preRun.push((()=>function(module){const FS=module.FS,MEMFS=module.FS.filesystems.MEMFS,PATH=module.PATH,nativeFSAsync={DIR_MODE:16895,FILE_MODE:33279,mount:function(mount){if(!mount.opts.fileSystemHandle)throw new Error("opts.fileSystemHandle is required");return MEMFS.mount.apply(null,arguments)},syncfs:async(mount,populate,callback)=>{try{const local=nativeFSAsync.getLocalSet(mount),remote=await nativeFSAsync.getRemoteSet(mount),src=populate?remote:local,dst=populate?local:remote;await nativeFSAsync.reconcile(mount,src,dst),callback(null)}catch(e){callback(e)}},getLocalSet:mount=>{let entries=Object.create(null);function isRealDir(p){return"."!==p&&".."!==p}function toAbsolute(root){return p=>PATH.join2(root,p)}let check=FS.readdir(mount.mountpoint).filter(isRealDir).map(toAbsolute(mount.mountpoint));for(;check.length;){let path=check.pop(),stat=FS.stat(path);FS.isDir(stat.mode)&&check.push.apply(check,FS.readdir(path).filter(isRealDir).map(toAbsolute(path))),entries[path]={timestamp:stat.mtime,mode:stat.mode}}return{type:"local",entries:entries}},getRemoteSet:async mount=>{const entries=Object.create(null),handles=await getFsHandles(mount.opts.fileSystemHandle);for(const[path,handle]of handles)"."!==path&&(entries[PATH.join2(mount.mountpoint,path)]={timestamp:"file"===handle.kind?(await handle.getFile()).lastModifiedDate:new Date,mode:"file"===handle.kind?nativeFSAsync.FILE_MODE:nativeFSAsync.DIR_MODE});return{type:"remote",entries:entries,handles:handles}},loadLocalEntry:path=>{const node=FS.lookupPath(path).node,stat=FS.stat(path);if(FS.isDir(stat.mode))return{timestamp:stat.mtime,mode:stat.mode};if(FS.isFile(stat.mode))return node.contents=MEMFS.getFileDataAsTypedArray(node),{timestamp:stat.mtime,mode:stat.mode,contents:node.contents};throw new Error("node type not supported")},storeLocalEntry:(path,entry)=>{if(FS.isDir(entry.mode))FS.mkdirTree(path,entry.mode);else{if(!FS.isFile(entry.mode))throw new Error("node type not supported");FS.writeFile(path,entry.contents,{canOwn:!0})}FS.chmod(path,entry.mode),FS.utime(path,entry.timestamp,entry.timestamp)},removeLocalEntry:path=>{var stat=FS.stat(path);FS.isDir(stat.mode)?FS.rmdir(path):FS.isFile(stat.mode)&&FS.unlink(path)},loadRemoteEntry:async handle=>{if("file"===handle.kind){const file=await handle.getFile();return{contents:new Uint8Array(await file.arrayBuffer()),mode:nativeFSAsync.FILE_MODE,timestamp:file.lastModifiedDate}}if("directory"===handle.kind)return{mode:nativeFSAsync.DIR_MODE,timestamp:new Date};throw new Error("unknown kind: "+handle.kind)},storeRemoteEntry:async(handles,path,entry)=>{const parentDirHandle=handles.get(PATH.dirname(path)),handle=FS.isFile(entry.mode)?await parentDirHandle.getFileHandle(PATH.basename(path),{create:!0}):await parentDirHandle.getDirectoryHandle(PATH.basename(path),{create:!0});if("file"===handle.kind){const writable=await handle.createWritable();await writable.write(entry.contents),await writable.close()}handles.set(path,handle)},removeRemoteEntry:async(handles,path)=>{const parentDirHandle=handles.get(PATH.dirname(path));await parentDirHandle.removeEntry(PATH.basename(path)),handles.delete(path)},reconcile:async(mount,src,dst)=>{let total=0;const create=[];Object.keys(src.entries).forEach((function(key){const e=src.entries[key],e2=dst.entries[key];(!e2||FS.isFile(e.mode)&&e.timestamp.getTime()>e2.timestamp.getTime())&&(create.push(key),total++)})),create.sort();const remove=[];if(Object.keys(dst.entries).forEach((function(key){src.entries[key]||(remove.push(key),total++)})),remove.sort().reverse(),!total)return;const handles="remote"===src.type?src.handles:dst.handles;for(const path of create){const relPath=PATH.normalize(path.replace(mount.mountpoint,"/")).substring(1);if("local"===dst.type){const handle=handles.get(relPath),entry=await nativeFSAsync.loadRemoteEntry(handle);nativeFSAsync.storeLocalEntry(path,entry)}else{const entry=nativeFSAsync.loadLocalEntry(path);await nativeFSAsync.storeRemoteEntry(handles,relPath,entry)}}for(const path of remove)if("local"===dst.type)nativeFSAsync.removeLocalEntry(path);else{const relPath=PATH.normalize(path.replace(mount.mountpoint,"/")).substring(1);await nativeFSAsync.removeRemoteEntry(handles,relPath)}}};module.FS.filesystems.NATIVEFS_ASYNC=nativeFSAsync}(Module)))}function finalizeBootstrap(API,config){API.runPythonInternal_dict=API._pyodide._base.eval_code("{}"),API.importlib=API.runPythonInternal("import importlib; importlib");let import_module=API.importlib.import_module;API.sys=import_module("sys"),API.sys.path.insert(0,config.homedir),API.os=import_module("os");let globals=API.runPythonInternal("import __main__; __main__.__dict__"),builtins=API.runPythonInternal("import builtins; builtins.__dict__");var builtins_dict;API.globals=(builtins_dict=builtins,new Proxy(globals,{get:(target,symbol)=>"get"===symbol?key=>{let result=target.get(key);return void 0===result&&(result=builtins_dict.get(key)),result}:"has"===symbol?key=>target.has(key)||builtins_dict.has(key):Reflect.get(target,symbol)}));let importhook=API._pyodide._importhook;importhook.register_js_finder(),importhook.register_js_module("js",config.jsglobals);let pyodide=API.makePublicAPI();return importhook.register_js_module("pyodide_js",pyodide),API.pyodide_py=import_module("pyodide"),API.pyodide_code=import_module("pyodide.code"),API.pyodide_ffi=import_module("pyodide.ffi"),API.package_loader=import_module("pyodide._package_loader"),API.sitepackages=API.package_loader.SITE_PACKAGES.__str__(),API.dsodir=API.package_loader.DSO_DIR.__str__(),API.defaultLdLibraryPath=[API.dsodir,API.sitepackages],API.os.environ.__setitem__("LD_LIBRARY_PATH",API.defaultLdLibraryPath.join(":")),pyodide.pyodide_py=API.pyodide_py,pyodide.globals=API.globals,pyodide}async function loadPyodide(options={}){await async function(){if(!IN_NODE)return;if(nodeUrlMod=(await import("url")).default,nodeFsPromisesMod=await import("fs/promises"),nodeFetch=globalThis.fetch?fetch:(await import("node-fetch")).default,nodeVmMod=(await import("vm")).default,nodePath=await import("path"),pathSep=nodePath.sep,"undefined"!=typeof require)return;const node_modules={fs:await import("fs"),crypto:await import("crypto"),ws:await import("ws"),child_process:await import("child_process")};globalThis.require=function(mod){return node_modules[mod]}}();let indexURL=options.indexURL||function(){let err;try{throw new Error}catch(e){err=e}let fileName=ErrorStackParser.parse(err)[0].fileName;const indexOfLastSlash=fileName.lastIndexOf(pathSep);if(-1===indexOfLastSlash)throw new Error("Could not extract indexURL path from pyodide module location");return fileName.slice(0,indexOfLastSlash)}();indexURL=resolvePath(indexURL),indexURL.endsWith("/")||(indexURL+="/"),options.indexURL=indexURL;const default_config={fullStdLib:!1,jsglobals:globalThis,stdin:globalThis.prompt?globalThis.prompt:void 0,homedir:"/home/pyodide",lockFileURL:indexURL+"repodata.json",args:[],_node_mounts:[]},config=Object.assign(default_config,options),Module=function(){let Module={noImageDecoding:!0,noAudioDecoding:!0,noWasmDecoding:!1,preRun:[],quit:(status,toThrow)=>{throw Module.exited={status:status,toThrow:toThrow},toThrow}};return Module}();Module.print=config.stdout,Module.printErr=config.stderr,Module.arguments=config.args;const API={config:config};Module.API=API,initializeFileSystem(Module,config);const moduleLoaded=new Promise((r=>Module.postRun=r));if(Module.locateFile=path=>config.indexURL+path,"function"!=typeof _createPyodideModule){const scriptSrc=`${config.indexURL}pyodide.asm.js`;await loadScript(scriptSrc)}if(await _createPyodideModule(Module),await moduleLoaded,Module.exited)throw Module.exited.toThrow;if("0.23.2"!==API.version)throw new Error(`Pyodide version does not match: '0.23.2' <==> '${API.version}'. If you updated the Pyodide version, make sure you also updated the 'indexURL' parameter passed to loadPyodide.`);Module.locateFile=path=>{throw new Error("Didn't expect to load any more file_packager files!")};let[err,captured_stderr]=API.rawRun("import _pyodide_core");err&&Module.API.fatal_loading_error("Failed to import _pyodide_core\n",captured_stderr);const pyodide=finalizeBootstrap(API,config);if(pyodide.version.includes("dev")||API.setCdnUrl(`https://cdn.jsdelivr.net/pyodide/v${pyodide.version}/full/`),await API.packageIndexReady,API._pyodide._importhook.register_module_not_found_hook(API._import_name_to_package_name,API.repodata_unvendored_stdlibs_and_test),"0.23.2"!==API.repodata_info.version)throw new Error("Lock file version doesn't match Pyodide version");return API.package_loader.init_loaded_packages(),config.fullStdLib&&await pyodide.loadPackage(API.repodata_unvendored_stdlibs),API.initializeStreams(config.stdin,config.stdout,config.stderr),pyodide}globalThis.loadPyodide=loadPyodide,exports.loadPyodide=loadPyodide,exports.version="0.23.2",Object.defineProperty(exports,"__esModule",{value:!0})})); -//# sourceMappingURL=pyodide.js.map +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).loadPyodide={})}(this,(function(e){"use strict";"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;var t={exports:{}},r={exports:{}};!function(e){e.exports=function(){function e(e){return e.charAt(0).toUpperCase()+e.substring(1)}function t(e){return function(){return this[e]}}var r=["isConstructor","isEval","isNative","isToplevel"],n=["columnNumber","lineNumber"],o=["fileName","functionName","source"],i=r.concat(n,o,["args"],["evalOrigin"]);function a(t){if(t)for(var r=0;r-1&&(e=e.replace(/eval code/g,"eval").replace(/(\(eval at [^()]*)|(,.*$)/g,""));var r=e.replace(/^\s+/,"").replace(/\(eval code/g,"(").replace(/^.*?\s+/,""),n=r.match(/ (\(.+\)$)/);r=n?r.replace(n[0],""):r;var o=this.extractLocation(n?n[1]:r),i=n&&r||void 0,a=["eval",""].indexOf(o[0])>-1?void 0:o[0];return new t({functionName:i,fileName:a,lineNumber:o[1],columnNumber:o[2],source:e})}),this)},parseFFOrSafari:function(e){return e.stack.split("\n").filter((function(e){return!e.match(i)}),this).map((function(e){if(e.indexOf(" > eval")>-1&&(e=e.replace(/ line (\d+)(?: > eval line \d+)* > eval:\d+:\d+/g,":$1")),-1===e.indexOf("@")&&-1===e.indexOf(":"))return new t({functionName:e});var r=/((.*".+"[^@]*)?[^@]*)(?:@)/,n=e.match(r),o=n&&n[1]?n[1]:void 0,i=this.extractLocation(e.replace(r,""));return new t({functionName:o,fileName:i[0],lineNumber:i[1],columnNumber:i[2],source:e})}),this)},parseOpera:function(e){return!e.stacktrace||e.message.indexOf("\n")>-1&&e.message.split("\n").length>e.stacktrace.split("\n").length?this.parseOpera9(e):e.stack?this.parseOpera11(e):this.parseOpera10(e)},parseOpera9:function(e){for(var r=/Line (\d+).*script (?:in )?(\S+)/i,n=e.message.split("\n"),o=[],i=2,a=n.length;i/,"$2").replace(/\([^)]*\)/g,"")||void 0;i.match(/\(([^)]*)\)/)&&(r=i.replace(/^[^(]+\(([^)]*)\)$/,"$1"));var s=void 0===r||"[arguments not available]"===r?void 0:r.split(",");return new t({functionName:a,args:s,fileName:o[0],lineNumber:o[1],columnNumber:o[2],source:e})}),this)}})}(t);var n=t.exports;let o,i,a,s;if(o=function(e,t){return void 0===t&&(t=location),new URL(e,t).toString()},i="/",a=async function(e,t){const r=new URL(e,location);let n=t?{integrity:t}:{},o=await fetch(r,n);if(!o.ok)throw new Error(`Failed to load '${r}': request failed.`);return new Uint8Array(await o.arrayBuffer())},globalThis.document)s=async e=>await import(e);else{if(!globalThis.importScripts)throw new Error("Cannot determine runtime environment");s=async e=>{try{globalThis.importScripts(e)}catch(t){if(!(t instanceof TypeError))throw t;await import(e)}}}function l(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,r=e[Symbol.asyncIterator];return r?r.call(e):(e=function(e){var t="function"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}(e),t={},n("next"),n("throw"),n("return"),t[Symbol.asyncIterator]=function(){return this},t);function n(r){t[r]=e[r]&&function(t){return new Promise((function(n,o){!function(e,t,r,n){Promise.resolve(n).then((function(t){e({value:t,done:r})}),t)}(n,o,(t=e[r](t)).done,t.value)}))}}}const c=async e=>{const t=[];await async function e(r){var n,o;try{for(var i,a=l(r.values());!(i=await a.next()).done;){const r=i.value;t.push(r),"directory"===r.kind&&await e(r)}}catch(e){n={error:e}}finally{try{i&&!i.done&&(o=a.return)&&await o.call(a)}finally{if(n)throw n.error}}}(e);const r=new Map;r.set(".",e);for(const n of t){const t=(await e.resolve(n)).join("/");r.set(t,n)}return r};async function d(e={}){await async function(){}();let t=e.indexURL||function(){let e;try{throw new Error}catch(t){e=t}let t=n.parse(e)[0].fileName;const r=t.lastIndexOf(i);if(-1===r)throw new Error("Could not extract indexURL path from pyodide module location");return t.slice(0,r)}();t=o(t),t.endsWith("/")||(t+="/"),e.indexURL=t;const r={fullStdLib:!1,jsglobals:globalThis,stdin:globalThis.prompt?globalThis.prompt:void 0,homedir:"/home/pyodide",lockFileURL:t+"repodata.json",args:[],_node_mounts:[]},l=Object.assign(r,e),d=function(){let e={noImageDecoding:!0,noAudioDecoding:!0,noWasmDecoding:!1,preRun:[],quit:(t,r)=>{throw e.exited={status:t,toThrow:r},r}};return e}();d.print=l.stdout,d.printErr=l.stderr,d.arguments=l.args;const u={config:l};d.API=u,function(e,t){let r;r=null!=t.stdLibURL?t.stdLibURL:t.indexURL+"python_stdlib.zip",function(e,t){const r=a(t);e.preRun.push((()=>{const t=e._py_version_major(),n=e._py_version_minor();e.FS.mkdirTree("/lib"),e.FS.mkdirTree(`/lib/python${t}.${n}/site-packages`),e.addRunDependency("install-stdlib"),r.then((r=>{e.FS.writeFile(`/lib/python${t}${n}.zip`,r)})).catch((e=>{console.error("Error occurred while installing the standard library:"),console.error(e)})).finally((()=>{e.removeRunDependency("install-stdlib")}))}))}(e,r),function(e,t){e.preRun.push((function(){try{e.FS.mkdirTree(t)}catch(e){console.error(`Error occurred while making a home directory '${t}':`),console.error(e),console.error("Using '/' for a home directory instead"),t="/"}e.ENV.HOME=t,e.FS.chdir(t)}))}(e,t.homedir),function(e,t){e.preRun.push((()=>{for(const r of t)e.FS.mkdirTree(r),e.FS.mount(e.FS.filesystems.NODEFS,{root:r},r)}))}(e,t._node_mounts),e.preRun.push((()=>function(e){const t=e.FS,r=e.FS.filesystems.MEMFS,n=e.PATH,o={DIR_MODE:16895,FILE_MODE:33279,mount:function(e){if(!e.opts.fileSystemHandle)throw new Error("opts.fileSystemHandle is required");return r.mount.apply(null,arguments)},syncfs:async(e,t,r)=>{try{const n=o.getLocalSet(e),i=await o.getRemoteSet(e),a=t?i:n,s=t?n:i;await o.reconcile(e,a,s),r(null)}catch(e){r(e)}},getLocalSet:e=>{let r=Object.create(null);function o(e){return"."!==e&&".."!==e}function i(e){return t=>n.join2(e,t)}let a=t.readdir(e.mountpoint).filter(o).map(i(e.mountpoint));for(;a.length;){let e=a.pop(),n=t.stat(e);t.isDir(n.mode)&&a.push.apply(a,t.readdir(e).filter(o).map(i(e))),r[e]={timestamp:n.mtime,mode:n.mode}}return{type:"local",entries:r}},getRemoteSet:async e=>{const t=Object.create(null),r=await c(e.opts.fileSystemHandle);for(const[i,a]of r)"."!==i&&(t[n.join2(e.mountpoint,i)]={timestamp:"file"===a.kind?(await a.getFile()).lastModifiedDate:new Date,mode:"file"===a.kind?o.FILE_MODE:o.DIR_MODE});return{type:"remote",entries:t,handles:r}},loadLocalEntry:e=>{const n=t.lookupPath(e).node,o=t.stat(e);if(t.isDir(o.mode))return{timestamp:o.mtime,mode:o.mode};if(t.isFile(o.mode))return n.contents=r.getFileDataAsTypedArray(n),{timestamp:o.mtime,mode:o.mode,contents:n.contents};throw new Error("node type not supported")},storeLocalEntry:(e,r)=>{if(t.isDir(r.mode))t.mkdirTree(e,r.mode);else{if(!t.isFile(r.mode))throw new Error("node type not supported");t.writeFile(e,r.contents,{canOwn:!0})}t.chmod(e,r.mode),t.utime(e,r.timestamp,r.timestamp)},removeLocalEntry:e=>{var r=t.stat(e);t.isDir(r.mode)?t.rmdir(e):t.isFile(r.mode)&&t.unlink(e)},loadRemoteEntry:async e=>{if("file"===e.kind){const t=await e.getFile();return{contents:new Uint8Array(await t.arrayBuffer()),mode:o.FILE_MODE,timestamp:t.lastModifiedDate}}if("directory"===e.kind)return{mode:o.DIR_MODE,timestamp:new Date};throw new Error("unknown kind: "+e.kind)},storeRemoteEntry:async(e,r,o)=>{const i=e.get(n.dirname(r)),a=t.isFile(o.mode)?await i.getFileHandle(n.basename(r),{create:!0}):await i.getDirectoryHandle(n.basename(r),{create:!0});if("file"===a.kind){const e=await a.createWritable();await e.write(o.contents),await e.close()}e.set(r,a)},removeRemoteEntry:async(e,t)=>{const r=e.get(n.dirname(t));await r.removeEntry(n.basename(t)),e.delete(t)},reconcile:async(e,r,i)=>{let a=0;const s=[];Object.keys(r.entries).forEach((function(e){const n=r.entries[e],o=i.entries[e];(!o||t.isFile(n.mode)&&n.timestamp.getTime()>o.timestamp.getTime())&&(s.push(e),a++)})),s.sort();const l=[];if(Object.keys(i.entries).forEach((function(e){r.entries[e]||(l.push(e),a++)})),l.sort().reverse(),!a)return;const c="remote"===r.type?r.handles:i.handles;for(const t of s){const r=n.normalize(t.replace(e.mountpoint,"/")).substring(1);if("local"===i.type){const e=c.get(r),n=await o.loadRemoteEntry(e);o.storeLocalEntry(t,n)}else{const e=o.loadLocalEntry(t);await o.storeRemoteEntry(c,r,e)}}for(const t of l)if("local"===i.type)o.removeLocalEntry(t);else{const r=n.normalize(t.replace(e.mountpoint,"/")).substring(1);await o.removeRemoteEntry(c,r)}}};e.FS.filesystems.NATIVEFS_ASYNC=o}(e)))}(d,l);const p=new Promise((e=>d.postRun=e));if(d.locateFile=e=>l.indexURL+e,"function"!=typeof _createPyodideModule){const e=`${l.indexURL}pyodide.asm.js`;await s(e)}if(await _createPyodideModule(d),await p,d.exited)throw d.exited.toThrow;if("0.23.2"!==u.version)throw new Error(`Pyodide version does not match: '0.23.2' <==> '${u.version}'. If you updated the Pyodide version, make sure you also updated the 'indexURL' parameter passed to loadPyodide.`);d.locateFile=e=>{throw new Error("Didn't expect to load any more file_packager files!")};let[f,m]=u.rawRun("import _pyodide_core");f&&d.API.fatal_loading_error("Failed to import _pyodide_core\n",m);const y=function(e,t){e.runPythonInternal_dict=e._pyodide._base.eval_code("{}"),e.importlib=e.runPythonInternal("import importlib; importlib");let r=e.importlib.import_module;e.sys=r("sys"),e.sys.path.insert(0,t.homedir),e.os=r("os");let n=e.runPythonInternal("import __main__; __main__.__dict__"),o=e.runPythonInternal("import builtins; builtins.__dict__");var i;e.globals=(i=o,new Proxy(n,{get:(e,t)=>"get"===t?t=>{let r=e.get(t);return void 0===r&&(r=i.get(t)),r}:"has"===t?t=>e.has(t)||i.has(t):Reflect.get(e,t)}));let a=e._pyodide._importhook;a.register_js_finder(),a.register_js_module("js",t.jsglobals);let s=e.makePublicAPI();return a.register_js_module("pyodide_js",s),e.pyodide_py=r("pyodide"),e.pyodide_code=r("pyodide.code"),e.pyodide_ffi=r("pyodide.ffi"),e.package_loader=r("pyodide._package_loader"),e.sitepackages=e.package_loader.SITE_PACKAGES.__str__(),e.dsodir=e.package_loader.DSO_DIR.__str__(),e.defaultLdLibraryPath=[e.dsodir,e.sitepackages],e.os.environ.__setitem__("LD_LIBRARY_PATH",e.defaultLdLibraryPath.join(":")),s.pyodide_py=e.pyodide_py,s.globals=e.globals,s}(u,l);if(y.version.includes("dev")||u.setCdnUrl(`https://cdn.jsdelivr.net/pyodide/v${y.version}/full/`),await u.packageIndexReady,u._pyodide._importhook.register_module_not_found_hook(u._import_name_to_package_name,u.repodata_unvendored_stdlibs_and_test),"0.23.2"!==u.repodata_info.version)throw new Error("Lock file version doesn't match Pyodide version");return u.package_loader.init_loaded_packages(),l.fullStdLib&&await y.loadPackage(u.repodata_unvendored_stdlibs),u.initializeStreams(l.stdin,l.stdout,l.stderr),y}globalThis.loadPyodide=d,e.loadPyodide=d,e.version="0.23.2",Object.defineProperty(e,"__esModule",{value:!0})})); \ No newline at end of file diff --git a/boards/default/python_pyodide/index.xml b/boards/default/python_pyodide/index.xml index b94b8c3c..cf346273 100644 --- a/boards/default/python_pyodide/index.xml +++ b/boards/default/python_pyodide/index.xml @@ -1 +1 @@ -promptHelloHelloHello,HelloMixly2100,1,2,3051iDIVIDE10Exception as eetestThreadtestThreadWHILETRUEHello Mixly from Thread!1090x151100a10.998124.821100101010001100501100110000x2x0,1,2,30,1,2,30,1,2,3xMixlyHelloMixly65axMixlyMixly0Mixly02MixlyMixlyHello,mixlyHello,mixly50*Hello,mixlyl--mylistHello,mixlymixlymixpyI love mixly!I love mixlyRandom No. is {}int1100input('1+2*3')dirmylist1,2,3,4,5mylist0mylist02mylist00mylist0101mylistmylist2mylistmylist0mylist00mylist00mylist0mylist0mylist0mylistmylistmylistx0,1,2,30,1,2,3mytup1,2,3,4,5mytup0mytup02mytupmytupmytupmytup0mytupmytup1mytup2xmydictmydictkeymydictkey0mydictkey0mydictkeymydictkeymydictkey0mydictmydictmydictmydictxmydict{"name":"Mixly","color":"green"}s11,2,3,4,5s1s1s1s2s1s2s10s1Mixlys1s2xreadme.txtffilename.txtfffilename.txtfMixlyfff0fffpathpathfilename.txtsrcname.txtdstname.txtfilename.txtpathff0reponsehttps://mixio.mixly.cnreponsehttps://mixio.mixly.cnreponsemixio.mixly.cnmixio.mixly.cnA1B2C3mixio.mixly.cnusernamepasswordMyProjecttopicmsgtopicmethodtopicmethodEQmsg1content"long""lat""message"012content"key1""key2""key3"012tina20tina90tina0tina2020tina50tinatinatinatinatinatina5tinatina225tina5#ff0000#FF0000tina#ff0000#FF0000tina#ff0000#FF0000tina#ff0000#FF0000#ff0000#FF0000tina#FF0000tina#FF0000tina#FF0000tina50tina50360tinascreenkeyfuncUpkeyfunctina100tina90screenclickfuncclickfunctinax20y20screentimerfunc3000timerfunctina100tina90screenscreenturtle.epstina10tinaMixly!tinaMixly!Arial8NUMInput a number:100100Input your nameWhat's your name?d:\\1.wav3d:\\1.jpgqclientEnter Your API_KEYEnter Your SECRET_KEYclient今天天气真好clientclientclientC:/mixly.jpgC:/mixpy.jpgclientclient我爱米思齐client米思齐米思皮client米思齐团队米思齐团队由一群具有共同理想的学生和老师组成,他们始终致力于为开展更好的创客教育而努力。client米思齐团队由一群具有共同理想的学生和老师组成,他们始终致力于为开展更好的创客教育而努力。20df1data.csvx1.55.50.50,1,2,3xmylistmylist0,1,2,3mydictmydict'a','b','c','d'mydict'ABCD''a','b','c','d'ser1ser10df1tagser1ser11,2,3,45,6,7,81,2,3,45,6,7,820,20,20,20tag1,2,3,45,6,7,8tag1,2,3,45,6,7,80.5tag0.25,0.35,0.1,0.3'a','b','c','d'0.2,0,0,011,21,31,41,51,61,71,81,910,20,40,60,80,100211Titleaxis1,2,3,41,2,3,415581.pngimg1.jpgfacehaarcascade_frontalface_default.xmlfaceRectsimgface1.15faceRectsimgface1.15100100200200Mixlyimg2.jpgimg0img001001003imgMixly020043 \ No newline at end of file +promptHelloHelloHello,HelloMixly2100,1,2,3051iDIVIDE10Exception as eetestThreadtestThreadWHILETRUEHello Mixly from Thread!1090x151100a10.998124.821100101010001100501100110000x2x0,1,2,30,1,2,30,1,2,3xMixlyHelloMixly65axMixlyMixly0Mixly02MixlyMixlyHello,mixlyHello,mixly50*Hello,mixlyl--mylistHello,mixlymixlymixpyI love mixly!I love mixlyRandom No. is {}int1100input('1+2*3')dirmylist1,2,3,4,5mylist0mylist02mylist00mylist0101mylistmylist2mylistmylist0mylist00mylist00mylist0mylist0mylist0mylistmylistmylistx0,1,2,30,1,2,3mytup1,2,3,4,5mytup0mytup02mytupmytupmytupmytup0mytupmytup1mytup2xmydictmydictkeymydictkey0mydictkey0mydictkeymydictkeymydictkey0mydictmydictmydictmydictxmydict{"name":"Mixly","color":"green"}s11,2,3,4,5s1s1s1s2s1s2s10s1Mixlys1s2xreadme.txtffilename.txtfffilename.txtfMixlyfff0fffpathpathfilename.txtsrcname.txtdstname.txtfilename.txtpathff0reponsehttps://mixio.mixly.cnreponsehttps://mixio.mixly.cnreponsemixio.mixly.cnmixio.mixly.cnA1B2C3mixio.mixly.cnusernamepasswordMyProjecttopicmsgtopicmethodtopicmethodEQmsg1content"long""lat""message"012content"key1""key2""key3"012tina20tina90tina0tina2020tina50tinatinatinatinatinatina5tinatina225tina5#ff0000#FF0000tina#ff0000#FF0000tina#ff0000#FF0000tina#ff0000#FF0000#ff0000#FF0000tina#FF0000tina#FF0000tina#FF0000tina50tina50360tinascreenkeyfuncUpkeyfunctina100tina90screenclickfuncclickfunctinax20y20screentimerfunc3000timerfunctina100tina90screenscreenturtle.epstina10tinaMixly!tinaMixly!Arial8NUMInput a number:100100Input your nameWhat's your name?d:\\1.wav3d:\\1.jpgqclientEnter Your API_KEYEnter Your SECRET_KEYclient今天天气真好clientclientclientC:/mixly.jpgC:/mixpy.jpgclientclient我爱米思齐client米思齐米思皮client米思齐团队米思齐团队由一群具有共同理想的学生和老师组成,他们始终致力于为开展更好的创客教育而努力。client米思齐团队由一群具有共同理想的学生和老师组成,他们始终致力于为开展更好的创客教育而努力。20df1data.csvx1.55.50.50,1,2,3xmylistmylist0,1,2,3mydictmydict'a','b','c','d'mydict'ABCD''a','b','c','d'ser1ser10df1tagser1ser11,2,3,45,6,7,81,2,3,45,6,7,820,20,20,20tag1,2,3,45,6,7,8tag1,2,3,45,6,7,80.5tag0.25,0.35,0.1,0.3'a','b','c','d'0.2,0,0,011,21,31,41,51,61,71,81,910,20,40,60,80,100211Titleaxis1,2,3,41,2,3,415581.pngimg1.jpgfacehaarcascade_frontalface_default.xmlfaceRectsimgface1.15faceRectsimgface1.15100100200200Mixlyimg2.jpgimg0img001001003imgMixly020043 \ No newline at end of file diff --git a/boards/default/python_pyodide/main.bundle.js b/boards/default/python_pyodide/main.bundle.js index 2817774e..7730c72f 100644 --- a/boards/default/python_pyodide/main.bundle.js +++ b/boards/default/python_pyodide/main.bundle.js @@ -1,4 +1,4 @@ -(()=>{"use strict";var __webpack_modules__={936:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{cv_destroy_all:()=>cv_destroy_all,cv_face_classifier:()=>cv_face_classifier,cv_face_detect:()=>cv_face_detect,cv_face_detect_all:()=>cv_face_detect_all,cv_line_rect:()=>cv_line_rect,cv_read_image:()=>cv_read_image,cv_show_image:()=>cv_show_image,cv_text:()=>cv_text,cv_waitkey:()=>cv_waitkey,cv_write_image:()=>cv_write_image});const cv_read_image=function(e,t){return t.definitions_.import_cv2="import cv2",["cv2.imread("+t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+")",t.ORDER_ATOMIC]},cv_show_image=function(e,t){return t.definitions_.import_cv2="import cv2","cv2.imshow("+t.valueToCode(this,"data",t.ORDER_ATOMIC)+","+t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+")\n"},cv_write_image=function(e,t){return t.definitions_.import_cv2="import cv2","cv2.imwrite("+t.valueToCode(this,"data",t.ORDER_ATOMIC)+","+t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+")\n"},cv_waitkey=function(e,t){return t.definitions_.import_cv2="import cv2","cv2.waitKey("+t.valueToCode(this,"data",t.ORDER_ATOMIC)+")\n"},cv_destroy_all=function(e,t){t.definitions_.import_cv2="import cv2";return"cv2.destroyAllWindows()\n"},cv_line_rect=function(_,generator){generator.definitions_.import_cv2="import cv2";var file=generator.valueToCode(this,"FILE",generator.ORDER_ATOMIC),x1=generator.valueToCode(this,"x1",generator.ORDER_ATOMIC),y1=generator.valueToCode(this,"y1",generator.ORDER_ATOMIC),x2=generator.valueToCode(this,"x2",generator.ORDER_ATOMIC),y2=generator.valueToCode(this,"y2",generator.ORDER_ATOMIC),thick=generator.valueToCode(this,"thick",generator.ORDER_ATOMIC),color=this.getFieldValue("FIELDNAME"),color1=eval("0x"+color[1]+color[2]),color2=eval("0x"+color[3]+color[4]),color3=eval("0x"+color[5]+color[6]),direction=this.getFieldValue("DIR"),code="cv2."+direction+"("+file+",("+x1+","+y1+"),("+x2+","+y2+"),("+color3+","+color2+","+color1+"),"+thick+")\n";return code},cv_text=function(_,generator){generator.definitions_.import_cv2="import cv2";var file=generator.valueToCode(this,"FILE",generator.ORDER_ATOMIC),x1=generator.valueToCode(this,"x1",generator.ORDER_ATOMIC),y1=generator.valueToCode(this,"y1",generator.ORDER_ATOMIC),data=generator.valueToCode(this,"data",generator.ORDER_ATOMIC),size=generator.valueToCode(this,"size",generator.ORDER_ATOMIC),thick=generator.valueToCode(this,"thick",generator.ORDER_ATOMIC),color=this.getFieldValue("FIELDNAME"),color1=eval("0x"+color[1]+color[2]),color2=eval("0x"+color[3]+color[4]),color3=eval("0x"+color[5]+color[6]),font=this.getFieldValue("font"),code="cv2.putText("+file+","+data+",("+x1+","+y1+"),cv2.FONT_HERSHEY_"+font+","+size+",("+color3+","+color2+","+color1+"),"+thick+")\n";return code},cv_face_classifier=function(e,t){return t.definitions_.import_cv2="import cv2",["cv2.CascadeClassifier("+t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+")",t.ORDER_ATOMIC]},cv_face_detect=function(e,t){t.definitions_.import_cv2="import cv2";var n=t.valueToCode(this,"FILE",t.ORDER_ATOMIC);return[t.valueToCode(this,"FACE",t.ORDER_ATOMIC)+".detectMultiScale("+n+",scaleFactor="+t.valueToCode(this,"SCALE",t.ORDER_ATOMIC)+",minNeighbors="+t.valueToCode(this,"NEIGHBOR",t.ORDER_ATOMIC)+")",t.ORDER_ATOMIC]},cv_face_detect_all=function(e,t){t.definitions_.import_cv2="import cv2";var n=t.valueToCode(this,"FILE",t.ORDER_ATOMIC);return[t.valueToCode(this,"FACE",t.ORDER_ATOMIC)+".detectMultiScale("+n+",scaleFactor="+t.valueToCode(this,"SCALE",t.ORDER_ATOMIC)+",minNeighbors="+t.valueToCode(this,"NEIGHBOR",t.ORDER_ATOMIC)+",minSize=("+t.valueToCode(this,"x1",t.ORDER_ATOMIC)+","+t.valueToCode(this,"y1",t.ORDER_ATOMIC)+"),maxSize=("+t.valueToCode(this,"x2",t.ORDER_ATOMIC)+","+t.valueToCode(this,"y2",t.ORDER_ATOMIC)+"))",t.ORDER_ATOMIC]}},9610:(e,t,n)=>{n.d(t,{D:()=>a});var a=function(){function e(e){var t=this;void 0===e&&(e=!1),this.ignoreMultipleSettles=e,this.isSettled=!1,this.promise=new Promise((function(e,n){t.resolveCallback=e,t.rejectCallback=n}))}return e.prototype.markAsSettled=function(){var e=this.isSettled;if(e&&!this.ignoreMultipleSettles)throw new Error("PromiseDelegate is already settled!");return this.isSettled=!0,!e},Object.defineProperty(e.prototype,"settled",{get:function(){return this.isSettled},enumerable:!1,configurable:!0}),e.prototype.resolve=function(e){this.markAsSettled()&&this.resolveCallback(e)},e.prototype.reject=function(e){this.markAsSettled()&&this.rejectCallback(e)},e}()},6944:e=>{e.exports=path}},__webpack_module_cache__={},leafPrototypes,getProto,inProgress,dataWebpackPrefix;function __webpack_require__(e){var t=__webpack_module_cache__[e];if(void 0!==t)return t.exports;var n=__webpack_module_cache__[e]={id:e,loaded:!1,exports:{}};return __webpack_modules__[e].call(n.exports,n,n.exports,__webpack_require__),n.loaded=!0,n.exports}__webpack_require__.m=__webpack_modules__,__webpack_require__.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return __webpack_require__.d(t,{a:t}),t},getProto=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,__webpack_require__.t=function(e,t){if(1&t&&(e=this(e)),8&t)return e;if("object"==typeof e&&e){if(4&t&&e.__esModule)return e;if(16&t&&"function"==typeof e.then)return e}var n=Object.create(null);__webpack_require__.r(n);var a={};leafPrototypes=leafPrototypes||[null,getProto({}),getProto([]),getProto(getProto)];for(var _=2&t&&e;"object"==typeof _&&!~leafPrototypes.indexOf(_);_=getProto(_))Object.getOwnPropertyNames(_).forEach((t=>a[t]=()=>e[t]));return a.default=()=>e,__webpack_require__.d(n,a),n},__webpack_require__.d=(e,t)=>{for(var n in t)__webpack_require__.o(t,n)&&!__webpack_require__.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},__webpack_require__.f={},__webpack_require__.e=e=>Promise.all(Object.keys(__webpack_require__.f).reduce(((t,n)=>(__webpack_require__.f[n](e,t),t)),[])),__webpack_require__.u=e=>e+".bundle.js",__webpack_require__.miniCssF=e=>"styles/"+e+"."+__webpack_require__.h().slice(0,8)+".css",__webpack_require__.h=()=>"ba1aee9d350446509301",__webpack_require__.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),inProgress={},dataWebpackPrefix="@mixly/python-pyodide:",__webpack_require__.l=(e,t,n,a)=>{if(inProgress[e])inProgress[e].push(t);else{var _,l;if(void 0!==n)for(var s=document.getElementsByTagName("script"),i=0;i{_.onerror=_.onload=null,clearTimeout(p);var a=inProgress[e];if(delete inProgress[e],_.parentNode&&_.parentNode.removeChild(_),a&&a.forEach((e=>e(n))),t)return t(n)},p=setTimeout(r.bind(null,void 0,{type:"timeout",target:_}),12e4);_.onerror=r.bind(null,_.onerror),_.onload=r.bind(null,_.onload),l&&document.head.appendChild(_)}},__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},__webpack_require__.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),(()=>{var e;__webpack_require__.g.importScripts&&(e=__webpack_require__.g.location+"");var t=__webpack_require__.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var n=t.getElementsByTagName("script");if(n.length)for(var a=n.length-1;a>-1&&(!e||!/^http(s?):/.test(e));)e=n[a--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),__webpack_require__.p=e})(),(()=>{if("undefined"!=typeof document){var e=e=>new Promise(((t,n)=>{var a=__webpack_require__.miniCssF(e),_=__webpack_require__.p+a;if(((e,t)=>{for(var n=document.getElementsByTagName("link"),a=0;a{var l=document.createElement("link");l.rel="stylesheet",l.type="text/css",__webpack_require__.nc&&(l.nonce=__webpack_require__.nc),l.onerror=l.onload=n=>{if(l.onerror=l.onload=null,"load"===n.type)a();else{var s=n&&n.type,i=n&&n.target&&n.target.href||t,o=new Error("Loading CSS chunk "+e+" failed.\n("+s+": "+i+")");o.name="ChunkLoadError",o.code="CSS_CHUNK_LOAD_FAILED",o.type=s,o.request=i,l.parentNode&&l.parentNode.removeChild(l),_(o)}},l.href=t,n?n.parentNode.insertBefore(l,n.nextSibling):document.head.appendChild(l)})(e,_,null,t,n)})),t={792:0};__webpack_require__.f.miniCss=(n,a)=>{t[n]?a.push(t[n]):0!==t[n]&&{317:1}[n]&&a.push(t[n]=e(n).then((()=>{t[n]=0}),(e=>{throw delete t[n],e})))}}})(),(()=>{var e={792:0};__webpack_require__.f.j=(t,n)=>{var a=__webpack_require__.o(e,t)?e[t]:void 0;if(0!==a)if(a)n.push(a[2]);else{var _=new Promise(((n,_)=>a=e[t]=[n,_]));n.push(a[2]=_);var l=__webpack_require__.p+__webpack_require__.u(t),s=new Error;__webpack_require__.l(l,(n=>{if(__webpack_require__.o(e,t)&&(0!==(a=e[t])&&(e[t]=void 0),a)){var _=n&&("load"===n.type?"missing":n.type),l=n&&n.target&&n.target.src;s.message="Loading chunk "+t+" failed.\n("+_+": "+l+")",s.name="ChunkLoadError",s.type=_,s.request=l,a[1](s)}}),"chunk-"+t,t)}};var t=(t,n)=>{var a,_,[l,s,i]=n,o=0;if(l.some((t=>0!==e[t]))){for(a in s)__webpack_require__.o(s,a)&&(__webpack_require__.m[a]=s[a]);if(i)i(__webpack_require__)}for(t&&t(n);ocontrols_type,controls_typeLists:()=>controls_typeLists,variables_change:()=>variables_change,variables_get:()=>variables_get,variables_global:()=>variables_global,variables_set:()=>variables_set});var control_namespaceObject={};__webpack_require__.r(control_namespaceObject),__webpack_require__.d(control_namespaceObject,{base_setup:()=>base_setup,controls_delay:()=>controls_delay,controls_end_program:()=>controls_end_program,controls_except:()=>controls_except,controls_finally:()=>controls_finally,controls_flow_statements:()=>controls_flow_statements,controls_for:()=>controls_for,controls_forEach:()=>controls_forEach,controls_for_range:()=>controls_for_range,controls_if:()=>controls_if,controls_if_else:()=>controls_if_else,controls_if_elseif:()=>controls_if_elseif,controls_if_if:()=>controls_if_if,controls_lambda:()=>controls_lambda,controls_main:()=>controls_main,controls_pass:()=>controls_pass,controls_range:()=>controls_range,controls_repeat_ext:()=>controls_repeat_ext,controls_thread:()=>controls_thread,controls_try:()=>controls_try,controls_try_finally:()=>controls_try_finally,controls_whileUntil:()=>controls_whileUntil,do_while:()=>do_while,garbage_collection:()=>garbage_collection,get_mem_alloc:()=>get_mem_alloc,get_mem_free:()=>get_mem_free});var math_namespaceObject={};__webpack_require__.r(math_namespaceObject),__webpack_require__.d(math_namespaceObject,{base_map:()=>base_map,math_arithmetic:()=>math_arithmetic,math_bit:()=>math_bit,math_constant:()=>math_constant,math_constant_mp:()=>math_constant_mp,math_constrain:()=>math_constrain,math_dec:()=>math_dec,math_indexer_number:()=>math_indexer_number,math_map:()=>math_map,math_max_min:()=>math_max_min,math_number:()=>math_number,math_number_base_conversion:()=>math_number_base_conversion,math_random:()=>math_random,math_random_seed:()=>math_random_seed,math_round:()=>math_round,math_selfcalcu:()=>math_selfcalcu,math_to_int:()=>math_to_int,math_trig:()=>math_trig,text_to_number:()=>text_to_number,text_to_number_skulpt:()=>text_to_number_skulpt});var text_namespaceObject={};__webpack_require__.r(text_namespaceObject),__webpack_require__.d(text_namespaceObject,{ascii_to_char:()=>ascii_to_char,char_to_ascii:()=>char_to_ascii,number_to_text:()=>number_to_text,os_system:()=>os_system,text:()=>text_text,text_capital:()=>text_capital,text_center:()=>text_center,text_char:()=>text_char,text_char_at:()=>text_char_at,text_char_at2:()=>text_char_at2,text_char_at3:()=>text_char_at3,text_compareTo:()=>text_compareTo,text_compare_to:()=>text_compare_to,text_create_with_container:()=>text_create_with_container,text_create_with_item:()=>text_create_with_item,text_encode:()=>text_encode,text_equals_starts_ends:()=>text_equals_starts_ends,text_eval:()=>text_eval,text_find:()=>text_find,text_format:()=>text_format,text_format_noreturn:()=>text_format_noreturn,text_join:()=>text_join,text_join_seq:()=>text_join_seq,text_length:()=>text_length,text_random_char:()=>text_random_char,text_replace:()=>text_replace,text_split:()=>text_split,text_strip:()=>text_strip,text_substring:()=>text_substring,text_substring2:()=>text_substring2,text_substring3:()=>text_substring3,text_textarea:()=>text_textarea});var lists_namespaceObject={};__webpack_require__.r(lists_namespaceObject),__webpack_require__.d(lists_namespaceObject,{list_many_input:()=>list_many_input,list_tolist:()=>list_tolist,list_tolist2:()=>list_tolist2,list_trig:()=>list_trig,lists_2d_get_col_row_data:()=>lists_2d_get_col_row_data,lists_2d_get_data_with_col_row:()=>lists_2d_get_data_with_col_row,lists_append_extend:()=>lists_append_extend,lists_change_to:()=>lists_change_to,lists_change_to_general:()=>lists_change_to_general,lists_clear:()=>lists_clear,lists_create_with:()=>lists_create_with,lists_create_with2:()=>lists_create_with2,lists_create_with_container:()=>lists_create_with_container,lists_create_with_item:()=>lists_create_with_item,lists_create_with_noreturn:()=>lists_create_with_noreturn,lists_create_with_text:()=>lists_create_with_text,lists_create_with_text2:()=>lists_create_with_text2,lists_del_general:()=>lists_del_general,lists_find:()=>lists_find,lists_getIndex3:()=>lists_getIndex3,lists_getSublist3:()=>lists_getSublist3,lists_get_index:()=>lists_get_index,lists_get_random_item:()=>lists_get_random_item,lists_get_random_sublist:()=>lists_get_random_sublist,lists_get_sublist:()=>lists_get_sublist,lists_insert_value:()=>lists_insert_value,lists_insert_value2:()=>lists_insert_value2,lists_pop:()=>lists_pop,lists_remove_at:()=>lists_remove_at,lists_remove_at2:()=>lists_remove_at2,lists_reverse:()=>lists_reverse,lists_setIndex3:()=>lists_setIndex3,lists_set_index:()=>lists_set_index,lists_sort:()=>lists_sort,lists_zip:()=>lists_zip,lists_zip_container:()=>lists_zip_container,lists_zip_item:()=>lists_zip_item});var dicts_namespaceObject={};__webpack_require__.r(dicts_namespaceObject),__webpack_require__.d(dicts_namespaceObject,{dicts_add_change_del:()=>dicts_add_change_del,dicts_add_or_change:()=>dicts_add_or_change,dicts_clear:()=>dicts_clear,dicts_create_with:()=>dicts_create_with,dicts_create_with_container:()=>dicts_create_with_container,dicts_create_with_item:()=>dicts_create_with_item,dicts_create_with_noreturn:()=>dicts_create_with_noreturn,dicts_deldict:()=>dicts_deldict,dicts_delete:()=>dicts_delete,dicts_get:()=>dicts_get,dicts_get_default:()=>dicts_get_default,dicts_items:()=>dicts_items,dicts_keys:()=>dicts_keys,dicts_length:()=>dicts_length,dicts_pop:()=>dicts_pop,dicts_setdefault:()=>dicts_setdefault,dicts_to_json:()=>dicts_to_json,dicts_todict:()=>dicts_todict,dicts_update:()=>dicts_update,dicts_values:()=>dicts_values,json_to_dicts:()=>json_to_dicts});var logic_namespaceObject={};__webpack_require__.r(logic_namespaceObject),__webpack_require__.d(logic_namespaceObject,{logic_boolean:()=>logic_boolean,logic_compare:()=>logic_compare,logic_compare_continous:()=>logic_compare_continous,logic_is:()=>logic_is,logic_is_in:()=>logic_is_in,logic_negate:()=>logic_negate,logic_null:()=>logic_null,logic_operation:()=>logic_operation,logic_tobool:()=>logic_tobool,logic_true_or_false:()=>logic_true_or_false});var storage_namespaceObject={};__webpack_require__.r(storage_namespaceObject),__webpack_require__.d(storage_namespaceObject,{sdcard_mount:()=>sdcard_mount,sdcard_use_spi_init:()=>sdcard_use_spi_init,storage_can_write_ornot:()=>storage_can_write_ornot,storage_change_dir:()=>storage_change_dir,storage_close_file:()=>storage_close_file,storage_delete_file:()=>storage_delete_file,storage_file_seek:()=>storage_file_seek,storage_file_tell:()=>storage_file_tell,storage_file_write:()=>storage_file_write,storage_fileopen:()=>storage_fileopen,storage_fileopen_new:()=>storage_fileopen_new,storage_fileopen_new_encoding:()=>storage_fileopen_new_encoding,storage_get_a_line:()=>storage_get_a_line,storage_get_contents:()=>storage_get_contents,storage_get_contents_without_para:()=>storage_get_contents_without_para,storage_get_current_dir:()=>storage_get_current_dir,storage_get_file_size:()=>storage_get_file_size,storage_get_filename:()=>storage_get_filename,storage_is_file:()=>storage_is_file,storage_list_all_files:()=>storage_list_all_files,storage_make_dir:()=>storage_make_dir,storage_open_file_with_os:()=>storage_open_file_with_os,storage_rename:()=>storage_rename});var blocks_procedures_namespaceObject={};__webpack_require__.r(blocks_procedures_namespaceObject),__webpack_require__.d(blocks_procedures_namespaceObject,{procedures_callnoreturn:()=>procedures_callnoreturn,procedures_callreturn:()=>procedures_callreturn,procedures_defnoreturn:()=>procedures_defnoreturn,procedures_defreturn:()=>procedures_defreturn,procedures_ifreturn:()=>procedures_ifreturn,procedures_mutatorarg:()=>procedures_mutatorarg,procedures_mutatorcontainer:()=>procedures_mutatorcontainer,procedures_return:()=>procedures_return});var tuple_namespaceObject={};__webpack_require__.r(tuple_namespaceObject),__webpack_require__.d(tuple_namespaceObject,{tuple_change_to:()=>tuple_change_to,tuple_create_with:()=>tuple_create_with,tuple_create_with_container:()=>tuple_create_with_container,tuple_create_with_item:()=>tuple_create_with_item,tuple_create_with_noreturn:()=>tuple_create_with_noreturn,tuple_create_with_text2:()=>tuple_create_with_text2,tuple_create_with_text_return:()=>tuple_create_with_text_return,tuple_del:()=>tuple_del,tuple_find:()=>tuple_find,tuple_getIndex:()=>tuple_getIndex,tuple_getSublist:()=>tuple_getSublist,tuple_get_random_item:()=>tuple_get_random_item,tuple_get_sublist:()=>tuple_get_sublist,tuple_join:()=>tuple_join,tuple_length:()=>tuple_length,tuple_max:()=>tuple_max,tuple_totuple:()=>tuple_totuple,tuple_trig:()=>tuple_trig});var set_namespaceObject={};__webpack_require__.r(set_namespaceObject),__webpack_require__.d(set_namespaceObject,{set_add_discard:()=>set_add_discard,set_clear:()=>set_clear,set_create_with:()=>set_create_with,set_create_with_container:()=>set_create_with_container,set_create_with_item:()=>set_create_with_item,set_create_with_text_return:()=>set_create_with_text_return,set_length:()=>set_length,set_operate:()=>set_operate,set_operate_update:()=>set_operate_update,set_pop:()=>set_pop,set_sub:()=>set_sub,set_toset:()=>set_toset,set_update:()=>set_update});var html_namespaceObject={};__webpack_require__.r(html_namespaceObject),__webpack_require__.d(html_namespaceObject,{html_content:()=>html_content,html_content_more:()=>html_content_more,html_document:()=>html_document,html_form:()=>html_form,html_head_body:()=>html_head_body,html_style:()=>html_style,html_style_color:()=>html_style_color,html_style_content:()=>html_style_content,html_text:()=>html_text,html_title:()=>html_title});var utility_namespaceObject={};__webpack_require__.r(utility_namespaceObject),__webpack_require__.d(utility_namespaceObject,{attribute_access:()=>attribute_access,function_call:()=>function_call,function_call_container:()=>function_call_container,function_call_item:()=>function_call_item,raw_block:()=>raw_block,raw_empty:()=>raw_empty,raw_expression:()=>raw_expression,raw_table:()=>raw_table,text_comment:()=>text_comment,text_print_multiple:()=>text_print_multiple,text_print_multiple_container:()=>text_print_multiple_container,text_print_multiple_item:()=>text_print_multiple_item,type_check:()=>type_check});var generators_variables_namespaceObject={};__webpack_require__.r(generators_variables_namespaceObject),__webpack_require__.d(generators_variables_namespaceObject,{controls_type:()=>variables_controls_type,controls_typeLists:()=>variables_controls_typeLists,variables_change:()=>variables_variables_change,variables_get:()=>variables_variables_get,variables_global:()=>variables_variables_global,variables_set:()=>variables_variables_set});var generators_control_namespaceObject={};__webpack_require__.r(generators_control_namespaceObject),__webpack_require__.d(generators_control_namespaceObject,{Panic_with_status_code:()=>Panic_with_status_code,base_setup:()=>control_base_setup,controls_delay:()=>control_controls_delay,controls_flow_statements:()=>control_controls_flow_statements,controls_for:()=>control_controls_for,controls_forEach:()=>control_controls_forEach,controls_for_range:()=>control_controls_for_range,controls_if:()=>control_controls_if,controls_interrupts:()=>controls_interrupts,controls_lambda:()=>control_controls_lambda,controls_main:()=>control_controls_main,controls_millis:()=>controls_millis,controls_nointerrupts:()=>controls_nointerrupts,controls_pass:()=>control_controls_pass,controls_range:()=>control_controls_range,controls_repeat:()=>controls_repeat,controls_repeat_ext:()=>control_controls_repeat_ext,controls_thread:()=>control_controls_thread,controls_try_finally:()=>control_controls_try_finally,controls_whileUntil:()=>control_controls_whileUntil,do_while:()=>control_do_while,garbage_collection:()=>control_garbage_collection,get_mem_alloc:()=>control_get_mem_alloc,get_mem_free:()=>control_get_mem_free,reset:()=>control_reset,time_sleep:()=>time_sleep});var generators_math_namespaceObject={};__webpack_require__.r(generators_math_namespaceObject),__webpack_require__.d(generators_math_namespaceObject,{base_map:()=>math_base_map,math_arithmetic:()=>math_math_arithmetic,math_bit:()=>math_math_bit,math_constant:()=>math_math_constant,math_constant_mp:()=>math_math_constant_mp,math_constrain:()=>math_math_constrain,math_dec:()=>math_math_dec,math_indexer_number:()=>math_math_indexer_number,math_map:()=>math_math_map,math_max_min:()=>math_math_max_min,math_number:()=>math_math_number,math_number_base_conversion:()=>math_math_number_base_conversion,math_random:()=>math_math_random,math_random_seed:()=>math_math_random_seed,math_round:()=>math_math_round,math_selfcalcu:()=>math_math_selfcalcu,math_single:()=>math_single,math_to_int:()=>math_math_to_int,math_trig:()=>math_math_trig,text_to_number:()=>math_text_to_number,text_to_number_skulpt:()=>math_text_to_number_skulpt});var generators_text_namespaceObject={};__webpack_require__.r(generators_text_namespaceObject),__webpack_require__.d(generators_text_namespaceObject,{ascii_to_char:()=>text_ascii_to_char,char_to_ascii:()=>text_char_to_ascii,number_to_text:()=>text_number_to_text,os_system:()=>text_os_system,text:()=>generators_text_text,text_capital:()=>text_text_capital,text_center:()=>text_text_center,text_char:()=>text_text_char,text_char_at:()=>text_text_char_at,text_char_at2:()=>text_text_char_at2,text_char_at3:()=>text_text_char_at3,text_compareTo:()=>text_text_compareTo,text_compare_to:()=>text_text_compare_to,text_encode:()=>text_text_encode,text_equals_starts_ends:()=>text_text_equals_starts_ends,text_eval:()=>text_text_eval,text_find:()=>text_text_find,text_format:()=>text_text_format,text_format_noreturn:()=>text_text_format_noreturn,text_join:()=>text_text_join,text_join_seq:()=>text_text_join_seq,text_length:()=>text_text_length,text_random_char:()=>text_text_random_char,text_replace:()=>text_text_replace,text_split:()=>text_text_split,text_strip:()=>text_text_strip,text_substring:()=>text_text_substring,text_substring2:()=>text_text_substring2,text_substring3:()=>text_text_substring3,text_textarea:()=>text_text_textarea});var generators_lists_namespaceObject={};__webpack_require__.r(generators_lists_namespaceObject),__webpack_require__.d(generators_lists_namespaceObject,{list_many_input:()=>lists_list_many_input,list_tolist:()=>lists_list_tolist,list_tolist2:()=>lists_list_tolist2,list_trig:()=>lists_list_trig,lists_2d_get_col_row_data:()=>lists_lists_2d_get_col_row_data,lists_2d_get_data_with_col_row:()=>lists_lists_2d_get_data_with_col_row,lists_append_extend:()=>lists_lists_append_extend,lists_change_to:()=>lists_lists_change_to,lists_change_to_general:()=>lists_lists_change_to_general,lists_clear:()=>lists_lists_clear,lists_create_with:()=>lists_lists_create_with,lists_create_with2:()=>lists_lists_create_with2,lists_create_with_noreturn:()=>lists_lists_create_with_noreturn,lists_create_with_text:()=>lists_lists_create_with_text,lists_create_with_text2:()=>lists_lists_create_with_text2,lists_del_general:()=>lists_lists_del_general,lists_find:()=>lists_lists_find,lists_getIndex3:()=>lists_lists_getIndex3,lists_getSublist3:()=>lists_lists_getSublist3,lists_get_index:()=>lists_lists_get_index,lists_get_random_item:()=>lists_lists_get_random_item,lists_get_random_sublist:()=>lists_lists_get_random_sublist,lists_get_sublist:()=>lists_lists_get_sublist,lists_insert_value:()=>lists_lists_insert_value,lists_insert_value2:()=>lists_lists_insert_value2,lists_pop:()=>lists_lists_pop,lists_remove_at:()=>lists_lists_remove_at,lists_remove_at2:()=>lists_lists_remove_at2,lists_reverse:()=>lists_lists_reverse,lists_setIndex3:()=>lists_lists_setIndex3,lists_set_index:()=>lists_lists_set_index,lists_sort:()=>lists_lists_sort,lists_zip:()=>lists_lists_zip});var generators_dicts_namespaceObject={};__webpack_require__.r(generators_dicts_namespaceObject),__webpack_require__.d(generators_dicts_namespaceObject,{dicts_add_change_del:()=>dicts_dicts_add_change_del,dicts_add_or_change:()=>dicts_dicts_add_or_change,dicts_clear:()=>dicts_dicts_clear,dicts_create_with:()=>dicts_dicts_create_with,dicts_create_with_noreturn:()=>dicts_dicts_create_with_noreturn,dicts_deldict:()=>dicts_dicts_deldict,dicts_delete:()=>dicts_dicts_delete,dicts_get:()=>dicts_dicts_get,dicts_get_default:()=>dicts_dicts_get_default,dicts_items:()=>dicts_dicts_items,dicts_keys:()=>dicts_dicts_keys,dicts_length:()=>dicts_dicts_length,dicts_pop:()=>dicts_dicts_pop,dicts_setdefault:()=>dicts_dicts_setdefault,dicts_to_json:()=>dicts_dicts_to_json,dicts_todict:()=>dicts_dicts_todict,dicts_update:()=>dicts_dicts_update,dicts_values:()=>dicts_dicts_values,json_to_dicts:()=>dicts_json_to_dicts});var generators_logic_namespaceObject={};__webpack_require__.r(generators_logic_namespaceObject),__webpack_require__.d(generators_logic_namespaceObject,{logic_boolean:()=>logic_logic_boolean,logic_compare:()=>logic_logic_compare,logic_compare_continous:()=>logic_logic_compare_continous,logic_is:()=>logic_logic_is,logic_is_in:()=>logic_logic_is_in,logic_negate:()=>logic_logic_negate,logic_null:()=>logic_logic_null,logic_operation:()=>logic_logic_operation,logic_tobool:()=>logic_logic_tobool,logic_true_or_false:()=>logic_logic_true_or_false});var generators_storage_namespaceObject={};__webpack_require__.r(generators_storage_namespaceObject),__webpack_require__.d(generators_storage_namespaceObject,{sdcard_mount:()=>storage_sdcard_mount,sdcard_use_spi_init:()=>storage_sdcard_use_spi_init,storage_can_write_ornot:()=>storage_storage_can_write_ornot,storage_change_dir:()=>storage_storage_change_dir,storage_close_file:()=>storage_storage_close_file,storage_delete_file:()=>storage_storage_delete_file,storage_file_seek:()=>storage_storage_file_seek,storage_file_tell:()=>storage_storage_file_tell,storage_file_write:()=>storage_storage_file_write,storage_fileopen:()=>storage_storage_fileopen,storage_fileopen_new:()=>storage_storage_fileopen_new,storage_fileopen_new_encoding:()=>storage_storage_fileopen_new_encoding,storage_get_a_line:()=>storage_storage_get_a_line,storage_get_contents:()=>storage_storage_get_contents,storage_get_contents_without_para:()=>storage_storage_get_contents_without_para,storage_get_current_dir:()=>storage_storage_get_current_dir,storage_get_file_size:()=>storage_storage_get_file_size,storage_get_filename:()=>storage_storage_get_filename,storage_is_file:()=>storage_storage_is_file,storage_list_all_files:()=>storage_storage_list_all_files,storage_make_dir:()=>storage_storage_make_dir,storage_open_file_with_os:()=>storage_storage_open_file_with_os,storage_rename:()=>storage_storage_rename});var generators_procedures_namespaceObject={};__webpack_require__.r(generators_procedures_namespaceObject),__webpack_require__.d(generators_procedures_namespaceObject,{procedures_callnoreturn:()=>procedures_procedures_callnoreturn,procedures_callreturn:()=>procedures_procedures_callreturn,procedures_defnoreturn:()=>procedures_procedures_defnoreturn,procedures_defreturn:()=>procedures_procedures_defreturn,procedures_ifreturn:()=>procedures_procedures_ifreturn,procedures_return:()=>procedures_procedures_return});var generators_tuple_namespaceObject={};__webpack_require__.r(generators_tuple_namespaceObject),__webpack_require__.d(generators_tuple_namespaceObject,{tuple_change_to:()=>tuple_tuple_change_to,tuple_create_with:()=>tuple_tuple_create_with,tuple_create_with_noreturn:()=>tuple_tuple_create_with_noreturn,tuple_create_with_text2:()=>tuple_tuple_create_with_text2,tuple_create_with_text_return:()=>tuple_tuple_create_with_text_return,tuple_del:()=>tuple_tuple_del,tuple_find:()=>tuple_tuple_find,tuple_getIndex:()=>tuple_tuple_getIndex,tuple_getSublist:()=>tuple_tuple_getSublist,tuple_get_random_item:()=>tuple_tuple_get_random_item,tuple_get_sublist:()=>tuple_tuple_get_sublist,tuple_join:()=>tuple_tuple_join,tuple_length:()=>tuple_tuple_length,tuple_max:()=>tuple_tuple_max,tuple_totuple:()=>tuple_tuple_totuple,tuple_trig:()=>tuple_tuple_trig});var generators_set_namespaceObject={};__webpack_require__.r(generators_set_namespaceObject),__webpack_require__.d(generators_set_namespaceObject,{set_add_discard:()=>set_set_add_discard,set_clear:()=>set_set_clear,set_create_with:()=>set_set_create_with,set_create_with_text_return:()=>set_set_create_with_text_return,set_length:()=>set_set_length,set_operate:()=>set_set_operate,set_operate_update:()=>set_set_operate_update,set_pop:()=>set_set_pop,set_sub:()=>set_set_sub,set_toset:()=>set_set_toset,set_update:()=>set_set_update});var generators_html_namespaceObject={};__webpack_require__.r(generators_html_namespaceObject),__webpack_require__.d(generators_html_namespaceObject,{html_content:()=>html_html_content,html_content_more:()=>html_html_content_more,html_document:()=>html_html_document,html_form:()=>html_html_form,html_head_body:()=>html_html_head_body,html_style:()=>html_html_style,html_style_content:()=>html_html_style_content,html_text:()=>html_html_text,html_title:()=>html_html_title});var generators_utility_namespaceObject={};__webpack_require__.r(generators_utility_namespaceObject),__webpack_require__.d(generators_utility_namespaceObject,{attribute_access:()=>utility_attribute_access,function_call:()=>utility_function_call,raw_block:()=>utility_raw_block,raw_empty:()=>utility_raw_empty,raw_expression:()=>utility_raw_expression,raw_table:()=>utility_raw_table,type_check:()=>utility_type_check});var ai_namespaceObject={};__webpack_require__.r(ai_namespaceObject),__webpack_require__.d(ai_namespaceObject,{AI_ChooseAndGet:()=>AI_ChooseAndGet,AI_Face_match:()=>AI_Face_match,AI_ImageClassify:()=>AI_ImageClassify,AI_ImageClassify_Func:()=>AI_ImageClassify_Func,AI_Nlp:()=>AI_Nlp,AI_Nlp_Func:()=>AI_Nlp_Func,AI_Nlp_Func_sim:()=>AI_Nlp_Func_sim,AI_Nlp_Sim:()=>AI_Nlp_Sim,AI_Nlp_Topic:()=>AI_Nlp_Topic,AI_Nlp_newsSummary:()=>AI_Nlp_newsSummary,AI_Ocr:()=>AI_Ocr,AI_Ocr_Func:()=>AI_Ocr_Func,AI_Speech_asr:()=>AI_Speech_asr,AI_Speech_synthesis:()=>AI_Speech_synthesis,AI_audio:()=>AI_audio,AI_client:()=>AI_client,AI_photo:()=>AI_photo,AI_result:()=>AI_result});var algorithm_namespaceObject={};__webpack_require__.r(algorithm_namespaceObject),__webpack_require__.d(algorithm_namespaceObject,{algorithm_add_path:()=>algorithm_add_path,algorithm_add_school:()=>algorithm_add_school,algorithm_all_books:()=>algorithm_all_books,algorithm_all_books_sequence:()=>algorithm_all_books_sequence,algorithm_book_scale:()=>algorithm_book_scale,algorithm_check_feet:()=>algorithm_check_feet,algorithm_chick_calculate:()=>algorithm_chick_calculate,algorithm_color_seclet:()=>algorithm_color_seclet,algorithm_current_school:()=>algorithm_current_school,algorithm_del_path:()=>algorithm_del_path,algorithm_delete_book:()=>algorithm_delete_book,algorithm_delete_books:()=>algorithm_delete_books,algorithm_delete_books2:()=>algorithm_delete_books2,algorithm_divide_books:()=>algorithm_divide_books,algorithm_find_path:()=>algorithm_find_path,algorithm_first_book:()=>algorithm_first_book,algorithm_fz_calc:()=>algorithm_fz_calc,algorithm_fz_calc_first_min:()=>algorithm_fz_calc_first_min,algorithm_fz_compare:()=>algorithm_fz_compare,algorithm_fz_move:()=>algorithm_fz_move,algorithm_fz_set_min:()=>algorithm_fz_set_min,algorithm_get_book_num:()=>algorithm_get_book_num,algorithm_get_current_location:()=>algorithm_get_current_location,algorithm_get_half_books:()=>algorithm_get_half_books,algorithm_hxdb_add:()=>algorithm_hxdb_add,algorithm_hxdb_init_soldier:()=>algorithm_hxdb_init_soldier,algorithm_hxdb_last_line:()=>algorithm_hxdb_last_line,algorithm_hxdb_result:()=>algorithm_hxdb_result,algorithm_hxdb_stand_in_line:()=>algorithm_hxdb_stand_in_line,algorithm_init_fzsf:()=>algorithm_init_fzsf,algorithm_init_hxdb:()=>algorithm_init_hxdb,algorithm_init_jttl:()=>algorithm_init_jttl,algorithm_move_recent:()=>algorithm_move_recent,algorithm_new_path:()=>algorithm_new_path,algorithm_next_book:()=>algorithm_next_book,algorithm_no_left:()=>algorithm_no_left,algorithm_no_path:()=>algorithm_no_path,algorithm_no_ring2:()=>algorithm_no_ring2,algorithm_not_home:()=>algorithm_not_home,algorithm_not_school:()=>algorithm_not_school,algorithm_number_add:()=>algorithm_number_add,algorithm_number_zero:()=>algorithm_number_zero,algorithm_prepare:()=>algorithm_prepare,algorithm_prepare2:()=>algorithm_prepare2,algorithm_prepare_2_1:()=>algorithm_prepare_2_1,algorithm_prepare_2_2:()=>algorithm_prepare_2_2,algorithm_print_book2:()=>algorithm_print_book2,algorithm_print_divide:()=>algorithm_print_divide,algorithm_print_jttl_answer:()=>algorithm_print_jttl_answer,algorithm_print_number:()=>algorithm_print_number,algorithm_print_path:()=>algorithm_print_path,algorithm_print_path2:()=>algorithm_print_path2,algorithm_print_sequence:()=>algorithm_print_sequence,algorithm_rabbit_add:()=>algorithm_rabbit_add,algorithm_rabbit_number_in_range:()=>algorithm_rabbit_number_in_range,algorithm_rabbit_zero:()=>algorithm_rabbit_zero,algorithm_return_path:()=>algorithm_return_path,algorithm_set_path:()=>algorithm_set_path,algorithm_two_left:()=>algorithm_two_left,algorithm_void_path:()=>algorithm_void_path,algorithm_yes_ring2:()=>algorithm_yes_ring2,hanoi_init:()=>hanoi_init,hanoi_init_offline:()=>hanoi_init_offline,hanoi_move:()=>hanoi_move});var communicate_namespaceObject={};__webpack_require__.r(communicate_namespaceObject),__webpack_require__.d(communicate_namespaceObject,{requests_attribute:()=>requests_attribute,requests_get:()=>requests_get,requests_get_old:()=>requests_get_old,requests_method:()=>requests_method,requests_post:()=>requests_post});var cv_namespaceObject={};__webpack_require__.r(cv_namespaceObject),__webpack_require__.d(cv_namespaceObject,{cv_destroy_all:()=>cv_destroy_all,cv_face_classifier:()=>cv_face_classifier,cv_face_detect:()=>cv_face_detect,cv_face_detect_all:()=>cv_face_detect_all,cv_line_rect:()=>cv_line_rect,cv_read_image:()=>cv_read_image,cv_show_image:()=>cv_show_image,cv_text:()=>cv_text,cv_waitkey:()=>cv_waitkey,cv_write_image:()=>cv_write_image});var data_namespaceObject={};__webpack_require__.r(data_namespaceObject),__webpack_require__.d(data_namespaceObject,{array_create:()=>array_create,array_toarray:()=>array_toarray,dataframe_create:()=>dataframe_create,dataframe_create_from_index:()=>dataframe_create_from_index,dataframe_create_from_one_index:()=>dataframe_create_from_one_index,dataframe_fillna:()=>dataframe_fillna,dataframe_get:()=>dataframe_get,dataframe_info:()=>dataframe_info,dataframe_median:()=>dataframe_median,matrix_multiplication:()=>matrix_multiplication,matrix_transpose:()=>matrix_transpose,numpy_argmin_template_match:()=>numpy_argmin_template_match,numpy_astype:()=>numpy_astype,numpy_c_:()=>numpy_c_,numpy_dot:()=>numpy_dot,numpy_linalg_det:()=>numpy_linalg_det,numpy_linalg_inv:()=>numpy_linalg_inv,numpy_max:()=>numpy_max,numpy_mean:()=>numpy_mean,numpy_mean_digit:()=>numpy_mean_digit,numpy_min:()=>numpy_min,numpy_ones:()=>numpy_ones,numpy_random_random:()=>numpy_random_random,numpy_reshape:()=>numpy_reshape,numpy_shape:()=>numpy_shape,numpy_size:()=>numpy_size,numpy_square:()=>numpy_square,numpy_std:()=>numpy_std,numpy_sum:()=>numpy_sum,numpy_trig:()=>numpy_trig,pandas_drop_columns:()=>pandas_drop_columns,pandas_dropna:()=>pandas_dropna,pandas_readcsv:()=>pandas_readcsv,pl_axes:()=>pl_axes,pl_bar:()=>pl_bar,pl_hist:()=>pl_hist,pl_label:()=>pl_label,pl_legend:()=>pl_legend,pl_pie:()=>pl_pie,pl_plot:()=>pl_plot,pl_plot_bar:()=>pl_plot_bar,pl_plot_easy:()=>pl_plot_easy,pl_plot_scatter:()=>pl_plot_scatter,pl_plot_xy:()=>pl_plot_xy,pl_savefig:()=>pl_savefig,pl_show:()=>pl_show,pl_subplot:()=>pl_subplot,pl_text:()=>pl_text,pl_ticks:()=>pl_ticks,pl_title:()=>pl_title,plot_axes:()=>plot_axes,plot_bar:()=>plot_bar,plot_hist:()=>plot_hist,plot_label:()=>plot_label,plot_legend:()=>plot_legend,plot_pie:()=>plot_pie,plot_plot:()=>plot_plot,plot_plot_bar:()=>plot_plot_bar,plot_plot_easy:()=>plot_plot_easy,plot_plot_scatter:()=>plot_plot_scatter,plot_plot_xy:()=>plot_plot_xy,plot_savefig:()=>plot_savefig,plot_show:()=>plot_show,plot_subplot:()=>plot_subplot,plot_text:()=>plot_text,plot_ticks:()=>plot_ticks,plot_title:()=>plot_title,py_sum:()=>py_sum,pylab_imshow:()=>pylab_imshow,series_create:()=>series_create,series_create_from_index:()=>series_create_from_index,series_create_from_text:()=>series_create_from_text,series_get_num:()=>series_get_num,series_index_value:()=>series_index_value});var datastructure_namespaceObject={};__webpack_require__.r(datastructure_namespaceObject),__webpack_require__.d(datastructure_namespaceObject,{ds_add_node_by_attr:()=>ds_add_node_by_attr,ds_add_node_by_name:()=>ds_add_node_by_name,ds_create_linkedlist:()=>ds_create_linkedlist,ds_create_linkedlist_container:()=>ds_create_linkedlist_container,ds_create_linkedlist_item:()=>ds_create_linkedlist_item,ds_create_node:()=>ds_create_node,ds_del_node_by_attr:()=>ds_del_node_by_attr,ds_del_node_by_name:()=>ds_del_node_by_name,ds_get_node_attr:()=>ds_get_node_attr,ds_reverse_linkedlist:()=>ds_reverse_linkedlist,ds_set_node_attr:()=>ds_set_node_attr});var factory_namespaceObject={};__webpack_require__.r(factory_namespaceObject),__webpack_require__.d(factory_namespaceObject,{factory_block:()=>factory_block,factory_block_return:()=>factory_block_return,factory_block_return_with_textarea:()=>factory_block_return_with_textarea,factory_block_with_textarea:()=>factory_block_with_textarea,factory_callMethod_noreturn:()=>factory_callMethod_noreturn,factory_callMethod_return:()=>factory_callMethod_return,factory_create_with_container:()=>factory_create_with_container,factory_create_with_item:()=>factory_create_with_item,factory_declare:()=>factory_declare,factory_from_import:()=>factory_from_import,factory_function_noreturn:()=>factory_function_noreturn,factory_function_return:()=>factory_function_return,factory_import:()=>factory_import});var hardware_namespaceObject={};__webpack_require__.r(hardware_namespaceObject),__webpack_require__.d(hardware_namespaceObject,{hardware_arduino_analog_read:()=>hardware_arduino_analog_read,hardware_arduino_analog_write:()=>hardware_arduino_analog_write,hardware_arduino_digital_read:()=>hardware_arduino_digital_read,hardware_arduino_digital_write:()=>hardware_arduino_digital_write,hardware_arduino_start:()=>hardware_arduino_start,inout_highlow:()=>inout_highlow});var inout_namespaceObject={};__webpack_require__.r(inout_namespaceObject),__webpack_require__.d(inout_namespaceObject,{inout_input:()=>inout_input,inout_print:()=>inout_print,inout_print_container:()=>inout_print_container,inout_print_end:()=>inout_print_end,inout_print_inline:()=>inout_print_inline,inout_print_item:()=>inout_print_item,inout_print_many:()=>inout_print_many,inout_type_input:()=>inout_type_input,pyinout_type_input:()=>pyinout_type_input});var iot_namespaceObject={};__webpack_require__.r(iot_namespaceObject),__webpack_require__.d(iot_namespaceObject,{IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE:()=>IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE,IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE:()=>IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE,IOT_EMQX_PING:()=>IOT_EMQX_PING,IOT_FORMATTING:()=>IOT_FORMATTING,IOT_FORMAT_STRING:()=>IOT_FORMAT_STRING,IOT_MIXIO_NTP:()=>IOT_MIXIO_NTP,IOT_MIXIO_PUBLISH:()=>IOT_MIXIO_PUBLISH,IOT_MIXIO_SUBSCRIBE:()=>IOT_MIXIO_SUBSCRIBE,IOT_MIXIO_UNSUBSCRIBE:()=>IOT_MIXIO_UNSUBSCRIBE,iot_checkonenet:()=>iot_checkonenet,iot_client_onboard:()=>iot_client_onboard,iot_create_with_item:()=>iot_create_with_item,iot_http_client:()=>iot_http_client,iot_http_data:()=>iot_http_data,iot_mixio_check:()=>iot_mixio_check,iot_mixio_connect:()=>iot_mixio_connect,iot_mixio_connect_only:()=>iot_mixio_connect_only,iot_mixio_disconnect:()=>iot_mixio_disconnect,iot_mixio_format_msg:()=>iot_mixio_format_msg,iot_mixio_format_topic:()=>iot_mixio_format_topic,iot_mixly_key:()=>iot_mixly_key,iot_mixly_key_py:()=>iot_mixly_key_py,iot_mqtt_client:()=>iot_mqtt_client,iot_mqtt_data:()=>iot_mqtt_data,iot_onenet_check:()=>iot_onenet_check,iot_onenet_connect:()=>iot_onenet_connect,iot_onenet_disconnect:()=>iot_onenet_disconnect,iot_onenet_publish:()=>iot_onenet_publish,iot_onenet_publish_dict:()=>iot_onenet_publish_dict,iot_onenetconnect:()=>iot_onenetconnect,iot_onenetdisconnect:()=>iot_onenetdisconnect,iot_publish:()=>iot_publish,iot_publish_container:()=>iot_publish_container,iot_publish_item:()=>iot_publish_item});var pins_namespaceObject={};__webpack_require__.r(pins_namespaceObject),__webpack_require__.d(pins_namespaceObject,{pins_analog_read:()=>pins_analog_read,pins_analog_write:()=>pins_analog_write,pins_digital_read:()=>pins_digital_read,pins_digital_write:()=>pins_digital_write});var serial_namespaceObject={};__webpack_require__.r(serial_namespaceObject),__webpack_require__.d(serial_namespaceObject,{serial_close:()=>serial_close,serial_open:()=>serial_open,serial_read_b:()=>serial_read_b,serial_write:()=>serial_write});var sklearn_namespaceObject={};__webpack_require__.r(sklearn_namespaceObject),__webpack_require__.d(sklearn_namespaceObject,{sklearn_DecisionTreeClassifier_Regressor:()=>sklearn_DecisionTreeClassifier_Regressor,sklearn_GaussianNB:()=>sklearn_GaussianNB,sklearn_KMeans:()=>sklearn_KMeans,sklearn_KNeighborsClassifier_Regressor:()=>sklearn_KNeighborsClassifier_Regressor,sklearn_LinearRegression:()=>sklearn_LinearRegression,sklearn_RandomForestClassifier_Regressor:()=>sklearn_RandomForestClassifier_Regressor,sklearn_Ridge:()=>sklearn_Ridge,sklearn_cluster_centers_labels_inertia:()=>sklearn_cluster_centers_labels_inertia,sklearn_coef_intercept:()=>sklearn_coef_intercept,sklearn_data_target:()=>sklearn_data_target,sklearn_fit:()=>sklearn_fit,sklearn_fit_no_target:()=>sklearn_fit_no_target,sklearn_load:()=>sklearn_load,sklearn_make_blobs:()=>sklearn_make_blobs,sklearn_make_classification:()=>sklearn_make_classification,sklearn_make_regression:()=>sklearn_make_regression,sklearn_predict:()=>sklearn_predict,sklearn_save_load_model:()=>sklearn_save_load_model,sklearn_score:()=>sklearn_score,sklearn_score_no_target:()=>sklearn_score_no_target,sklearn_train_test_split:()=>sklearn_train_test_split,sklearn_train_test_split_no_target:()=>sklearn_train_test_split_no_target});var system_namespaceObject={};__webpack_require__.r(system_namespaceObject),__webpack_require__.d(system_namespaceObject,{Panic_with_status_code:()=>system_Panic_with_status_code,base_delay:()=>base_delay,controls_millis:()=>system_controls_millis,controls_mstimer2:()=>controls_mstimer2,controls_mstimer2_start:()=>controls_mstimer2_start,controls_mstimer2_stop:()=>controls_mstimer2_stop,reset:()=>system_reset,time_localtime:()=>time_localtime,time_sleep:()=>system_time_sleep});var turtle_namespaceObject={};__webpack_require__.r(turtle_namespaceObject),__webpack_require__.d(turtle_namespaceObject,{turtle_bgcolor:()=>turtle_bgcolor,turtle_bgcolor_hex:()=>turtle_bgcolor_hex,turtle_bgcolor_hex_new:()=>turtle_bgcolor_hex_new,turtle_circle:()=>turtle_circle,turtle_circle_advanced:()=>turtle_circle_advanced,turtle_clear:()=>turtle_clear,turtle_clone:()=>turtle_clone,turtle_color:()=>turtle_color,turtle_color_hex:()=>turtle_color_hex,turtle_color_seclet:()=>turtle_color_seclet,turtle_create:()=>turtle_create,turtle_done:()=>turtle_done,turtle_exitonclick:()=>turtle_exitonclick,turtle_fill:()=>turtle_fill,turtle_fillcolor:()=>turtle_fillcolor,turtle_fillcolor_hex:()=>turtle_fillcolor_hex,turtle_fillcolor_hex_new:()=>turtle_fillcolor_hex_new,turtle_getscreen:()=>turtle_getscreen,turtle_goto:()=>turtle_goto,turtle_listen:()=>turtle_listen,turtle_move:()=>turtle_move,turtle_numinput:()=>turtle_numinput,turtle_onclick:()=>turtle_onclick,turtle_onkey:()=>turtle_onkey,turtle_ontimer:()=>turtle_ontimer,turtle_pencolor:()=>turtle_pencolor,turtle_pencolor_hex:()=>turtle_pencolor_hex,turtle_pencolor_hex_new:()=>turtle_pencolor_hex_new,turtle_penup:()=>turtle_penup,turtle_pos_shape:()=>turtle_pos_shape,turtle_rotate:()=>turtle_rotate,turtle_screen_delay:()=>turtle_screen_delay,turtle_screen_savefig:()=>turtle_screen_savefig,turtle_setheading:()=>turtle_setheading,turtle_setxy:()=>turtle_setxy,turtle_shape:()=>turtle_shape,turtle_shapesize:()=>turtle_shapesize,turtle_size:()=>turtle_size,turtle_size_speed:()=>turtle_size_speed,turtle_speed:()=>turtle_speed,turtle_textinput:()=>turtle_textinput,turtle_visible:()=>turtle_visible,turtle_write:()=>turtle_write,turtle_write_format:()=>turtle_write_format,turtle_write_format_skulpt:()=>turtle_write_format_skulpt});var generators_ai_namespaceObject={};__webpack_require__.r(generators_ai_namespaceObject),__webpack_require__.d(generators_ai_namespaceObject,{AI_ChooseAndGet:()=>ai_AI_ChooseAndGet,AI_Face_match:()=>ai_AI_Face_match,AI_ImageClassify:()=>ai_AI_ImageClassify,AI_ImageClassify_Func:()=>ai_AI_ImageClassify_Func,AI_Nlp:()=>ai_AI_Nlp,AI_Nlp_Func:()=>ai_AI_Nlp_Func,AI_Nlp_Func_sim:()=>ai_AI_Nlp_Func_sim,AI_Nlp_Sim:()=>ai_AI_Nlp_Sim,AI_Nlp_Topic:()=>ai_AI_Nlp_Topic,AI_Nlp_newsSummary:()=>ai_AI_Nlp_newsSummary,AI_Ocr:()=>ai_AI_Ocr,AI_Ocr_Func:()=>ai_AI_Ocr_Func,AI_Speech_asr:()=>ai_AI_Speech_asr,AI_Speech_synthesis:()=>ai_AI_Speech_synthesis,AI_audio:()=>ai_AI_audio,AI_client:()=>ai_AI_client,AI_photo:()=>ai_AI_photo,AI_result:()=>ai_AI_result});var generators_algorithm_namespaceObject={};__webpack_require__.r(generators_algorithm_namespaceObject),__webpack_require__.d(generators_algorithm_namespaceObject,{algorithm_add_path:()=>algorithm_algorithm_add_path,algorithm_add_school:()=>algorithm_algorithm_add_school,algorithm_all_books:()=>algorithm_algorithm_all_books,algorithm_all_books_sequence:()=>algorithm_algorithm_all_books_sequence,algorithm_book_scale:()=>algorithm_algorithm_book_scale,algorithm_check_feet:()=>algorithm_algorithm_check_feet,algorithm_chick_calculate:()=>algorithm_algorithm_chick_calculate,algorithm_color_seclet:()=>algorithm_algorithm_color_seclet,algorithm_current_school:()=>algorithm_algorithm_current_school,algorithm_del_path:()=>algorithm_algorithm_del_path,algorithm_delete_book:()=>algorithm_algorithm_delete_book,algorithm_divide_books:()=>algorithm_algorithm_divide_books,algorithm_find_path:()=>algorithm_algorithm_find_path,algorithm_first_book:()=>algorithm_algorithm_first_book,algorithm_fz_calc:()=>algorithm_algorithm_fz_calc,algorithm_fz_compare:()=>algorithm_algorithm_fz_compare,algorithm_fz_move:()=>algorithm_algorithm_fz_move,algorithm_fz_set_min:()=>algorithm_algorithm_fz_set_min,algorithm_get_current_location:()=>algorithm_algorithm_get_current_location,algorithm_get_half_books:()=>algorithm_algorithm_get_half_books,algorithm_hxdb_add:()=>algorithm_algorithm_hxdb_add,algorithm_hxdb_init_soldier:()=>algorithm_algorithm_hxdb_init_soldier,algorithm_hxdb_last_line:()=>algorithm_algorithm_hxdb_last_line,algorithm_hxdb_result:()=>algorithm_algorithm_hxdb_result,algorithm_hxdb_stand_in_line:()=>algorithm_algorithm_hxdb_stand_in_line,algorithm_init_fzsf:()=>algorithm_algorithm_init_fzsf,algorithm_init_hxdb:()=>algorithm_algorithm_init_hxdb,algorithm_init_jttl:()=>algorithm_algorithm_init_jttl,algorithm_move_recent:()=>algorithm_algorithm_move_recent,algorithm_new_path:()=>algorithm_algorithm_new_path,algorithm_next_book:()=>algorithm_algorithm_next_book,algorithm_no_left:()=>algorithm_algorithm_no_left,algorithm_no_path:()=>algorithm_algorithm_no_path,algorithm_no_ring2:()=>algorithm_algorithm_no_ring2,algorithm_not_home:()=>algorithm_algorithm_not_home,algorithm_not_school:()=>algorithm_algorithm_not_school,algorithm_number_add:()=>algorithm_algorithm_number_add,algorithm_number_zero:()=>algorithm_algorithm_number_zero,algorithm_prepare:()=>algorithm_algorithm_prepare,algorithm_prepare2:()=>algorithm_algorithm_prepare2,algorithm_prepare_2_1:()=>algorithm_algorithm_prepare_2_1,algorithm_prepare_2_2:()=>algorithm_algorithm_prepare_2_2,algorithm_print_book2:()=>algorithm_algorithm_print_book2,algorithm_print_jttl_answer:()=>algorithm_algorithm_print_jttl_answer,algorithm_print_number:()=>algorithm_algorithm_print_number,algorithm_print_path:()=>algorithm_algorithm_print_path,algorithm_print_path2:()=>algorithm_algorithm_print_path2,algorithm_rabbit_add:()=>algorithm_algorithm_rabbit_add,algorithm_rabbit_number_in_range:()=>algorithm_algorithm_rabbit_number_in_range,algorithm_rabbit_zero:()=>algorithm_algorithm_rabbit_zero,algorithm_return_path:()=>algorithm_algorithm_return_path,algorithm_set_path:()=>algorithm_algorithm_set_path,algorithm_two_left:()=>algorithm_algorithm_two_left,algorithm_void_path:()=>algorithm_algorithm_void_path,algorithm_yes_ring2:()=>algorithm_algorithm_yes_ring2,hanoi_init:()=>algorithm_hanoi_init,hanoi_init_offline:()=>algorithm_hanoi_init_offline,hanoi_move:()=>algorithm_hanoi_move});var generators_communicate_namespaceObject={};__webpack_require__.r(generators_communicate_namespaceObject),__webpack_require__.d(generators_communicate_namespaceObject,{requests_attribute:()=>communicate_requests_attribute,requests_get:()=>communicate_requests_get,requests_get_old:()=>communicate_requests_get_old,requests_method:()=>communicate_requests_method,requests_post:()=>communicate_requests_post});var generators_data_namespaceObject={};__webpack_require__.r(generators_data_namespaceObject),__webpack_require__.d(generators_data_namespaceObject,{array_create:()=>data_array_create,array_toarray:()=>data_array_toarray,dataframe_create:()=>data_dataframe_create,dataframe_create_from_index:()=>data_dataframe_create_from_index,dataframe_create_from_one_index:()=>data_dataframe_create_from_one_index,dataframe_fillna:()=>data_dataframe_fillna,dataframe_get:()=>data_dataframe_get,dataframe_info:()=>data_dataframe_info,dataframe_median:()=>data_dataframe_median,matrix_multiplication:()=>data_matrix_multiplication,matrix_transpose:()=>data_matrix_transpose,numpy_argmin_template_match:()=>data_numpy_argmin_template_match,numpy_astype:()=>data_numpy_astype,numpy_c_:()=>data_numpy_c_,numpy_dot:()=>data_numpy_dot,numpy_linalg_det:()=>data_numpy_linalg_det,numpy_linalg_inv:()=>data_numpy_linalg_inv,numpy_max:()=>data_numpy_max,numpy_mean:()=>data_numpy_mean,numpy_mean_digit:()=>data_numpy_mean_digit,numpy_min:()=>data_numpy_min,numpy_ones:()=>data_numpy_ones,numpy_random_random:()=>data_numpy_random_random,numpy_reshape:()=>data_numpy_reshape,numpy_shape:()=>data_numpy_shape,numpy_size:()=>data_numpy_size,numpy_square:()=>data_numpy_square,numpy_std:()=>data_numpy_std,numpy_sum:()=>data_numpy_sum,numpy_trig:()=>data_numpy_trig,pandas_drop_columns:()=>data_pandas_drop_columns,pandas_dropna:()=>data_pandas_dropna,pandas_readcsv:()=>data_pandas_readcsv,pl_axes:()=>data_pl_axes,pl_bar:()=>data_pl_bar,pl_hist:()=>data_pl_hist,pl_label:()=>data_pl_label,pl_legend:()=>data_pl_legend,pl_pie:()=>data_pl_pie,pl_plot:()=>data_pl_plot,pl_plot_bar:()=>data_pl_plot_bar,pl_plot_easy:()=>data_pl_plot_easy,pl_plot_scatter:()=>data_pl_plot_scatter,pl_plot_xy:()=>data_pl_plot_xy,pl_savefig:()=>data_pl_savefig,pl_show:()=>data_pl_show,pl_subplot:()=>data_pl_subplot,pl_text:()=>data_pl_text,pl_ticks:()=>data_pl_ticks,pl_title:()=>data_pl_title,plot_axes:()=>data_plot_axes,plot_bar:()=>data_plot_bar,plot_hist:()=>data_plot_hist,plot_label:()=>data_plot_label,plot_legend:()=>data_plot_legend,plot_pie:()=>data_plot_pie,plot_plot:()=>data_plot_plot,plot_plot_bar:()=>data_plot_plot_bar,plot_plot_easy:()=>data_plot_plot_easy,plot_plot_scatter:()=>data_plot_plot_scatter,plot_plot_xy:()=>data_plot_plot_xy,plot_savefig:()=>data_plot_savefig,plot_show:()=>data_plot_show,plot_subplot:()=>data_plot_subplot,plot_text:()=>data_plot_text,plot_ticks:()=>data_plot_ticks,plot_title:()=>data_plot_title,py_sum:()=>data_py_sum,pylab_imshow:()=>data_pylab_imshow,series_create:()=>data_series_create,series_create_from_index:()=>data_series_create_from_index,series_create_from_text:()=>data_series_create_from_text,series_get_num:()=>data_series_get_num,series_index_value:()=>data_series_index_value});var generators_datastructure_namespaceObject={};__webpack_require__.r(generators_datastructure_namespaceObject),__webpack_require__.d(generators_datastructure_namespaceObject,{ds_add_node_by_attr:()=>datastructure_ds_add_node_by_attr,ds_add_node_by_name:()=>datastructure_ds_add_node_by_name,ds_create_linkedlist:()=>datastructure_ds_create_linkedlist,ds_create_node:()=>datastructure_ds_create_node,ds_del_node_by_attr:()=>datastructure_ds_del_node_by_attr,ds_del_node_by_name:()=>datastructure_ds_del_node_by_name,ds_get_node_attr:()=>datastructure_ds_get_node_attr,ds_reverse_linkedlist:()=>datastructure_ds_reverse_linkedlist,ds_set_node_attr:()=>datastructure_ds_set_node_attr});var generators_factory_namespaceObject={};__webpack_require__.r(generators_factory_namespaceObject),__webpack_require__.d(generators_factory_namespaceObject,{factory_block:()=>factory_factory_block,factory_block_return:()=>factory_factory_block_return,factory_block_return_with_textarea:()=>factory_factory_block_return_with_textarea,factory_block_with_textarea:()=>factory_factory_block_with_textarea,factory_callMethod_noreturn:()=>factory_factory_callMethod_noreturn,factory_callMethod_return:()=>factory_factory_callMethod_return,factory_declare:()=>factory_factory_declare,factory_from_import:()=>factory_factory_from_import,factory_function_noreturn:()=>factory_factory_function_noreturn,factory_function_return:()=>factory_factory_function_return,factory_import:()=>factory_factory_import});var generators_hardware_namespaceObject={};__webpack_require__.r(generators_hardware_namespaceObject),__webpack_require__.d(generators_hardware_namespaceObject,{hardware_arduino_analog_read:()=>hardware_hardware_arduino_analog_read,hardware_arduino_analog_write:()=>hardware_hardware_arduino_analog_write,hardware_arduino_digital_read:()=>hardware_hardware_arduino_digital_read,hardware_arduino_digital_write:()=>hardware_hardware_arduino_digital_write,hardware_arduino_start:()=>hardware_hardware_arduino_start,inout_highlow:()=>hardware_inout_highlow});var generators_inout_namespaceObject={};__webpack_require__.r(generators_inout_namespaceObject),__webpack_require__.d(generators_inout_namespaceObject,{inout_input:()=>inout_inout_input,inout_print:()=>inout_inout_print,inout_print_end:()=>inout_inout_print_end,inout_print_inline:()=>inout_inout_print_inline,inout_print_many:()=>inout_inout_print_many,inout_type_input:()=>inout_inout_type_input,pyinout_type_input:()=>inout_pyinout_type_input});var generators_iot_namespaceObject={};__webpack_require__.r(generators_iot_namespaceObject),__webpack_require__.d(generators_iot_namespaceObject,{IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE:()=>iot_IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE,IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE:()=>iot_IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE,IOT_EMQX_PING:()=>iot_IOT_EMQX_PING,IOT_FORMATTING:()=>iot_IOT_FORMATTING,IOT_FORMAT_STRING:()=>iot_IOT_FORMAT_STRING,IOT_MIXIO_NTP:()=>iot_IOT_MIXIO_NTP,IOT_MIXIO_PUBLISH:()=>iot_IOT_MIXIO_PUBLISH,IOT_MIXIO_SUBSCRIBE:()=>iot_IOT_MIXIO_SUBSCRIBE,IOT_MIXIO_UNSUBSCRIBE:()=>iot_IOT_MIXIO_UNSUBSCRIBE,iot_mixio_check:()=>iot_iot_mixio_check,iot_mixio_connect:()=>iot_iot_mixio_connect,iot_mixio_connect_only:()=>iot_iot_mixio_connect_only,iot_mixio_disconnect:()=>iot_iot_mixio_disconnect,iot_mixio_format_msg:()=>iot_iot_mixio_format_msg,iot_mixio_format_topic:()=>iot_iot_mixio_format_topic,iot_mixly_key:()=>iot_iot_mixly_key,iot_mixly_key_py:()=>iot_iot_mixly_key_py});var generators_pins_namespaceObject={};__webpack_require__.r(generators_pins_namespaceObject),__webpack_require__.d(generators_pins_namespaceObject,{pins_analog_read:()=>pins_pins_analog_read,pins_analog_write:()=>pins_pins_analog_write,pins_digital:()=>pins_digital,pins_digital_read:()=>pins_pins_digital_read,pins_digital_write:()=>pins_pins_digital_write});var generators_serial_namespaceObject={};__webpack_require__.r(generators_serial_namespaceObject),__webpack_require__.d(generators_serial_namespaceObject,{serial_close:()=>serial_serial_close,serial_open:()=>serial_serial_open,serial_read_b:()=>serial_serial_read_b,serial_write:()=>serial_serial_write});var generators_sklearn_namespaceObject={};__webpack_require__.r(generators_sklearn_namespaceObject),__webpack_require__.d(generators_sklearn_namespaceObject,{sklearn_DecisionTreeClassifier_Regressor:()=>sklearn_sklearn_DecisionTreeClassifier_Regressor,sklearn_GaussianNB:()=>sklearn_sklearn_GaussianNB,sklearn_KMeans:()=>sklearn_sklearn_KMeans,sklearn_KNeighborsClassifier_Regressor:()=>sklearn_sklearn_KNeighborsClassifier_Regressor,sklearn_LinearRegression:()=>sklearn_sklearn_LinearRegression,sklearn_RandomForestClassifier_Regressor:()=>sklearn_sklearn_RandomForestClassifier_Regressor,sklearn_Ridge:()=>sklearn_sklearn_Ridge,sklearn_cluster_centers_labels_inertia:()=>sklearn_sklearn_cluster_centers_labels_inertia,sklearn_coef_intercept:()=>sklearn_sklearn_coef_intercept,sklearn_data_target:()=>sklearn_sklearn_data_target,sklearn_fit:()=>sklearn_sklearn_fit,sklearn_fit_no_target:()=>sklearn_sklearn_fit_no_target,sklearn_load:()=>sklearn_sklearn_load,sklearn_make_blobs:()=>sklearn_sklearn_make_blobs,sklearn_make_classification:()=>sklearn_sklearn_make_classification,sklearn_make_regression:()=>sklearn_sklearn_make_regression,sklearn_predict:()=>sklearn_sklearn_predict,sklearn_save_load_model:()=>sklearn_sklearn_save_load_model,sklearn_score:()=>sklearn_sklearn_score,sklearn_score_no_target:()=>sklearn_sklearn_score_no_target,sklearn_train_test_split:()=>sklearn_sklearn_train_test_split,sklearn_train_test_split_no_target:()=>sklearn_sklearn_train_test_split_no_target});var generators_system_namespaceObject={};__webpack_require__.r(generators_system_namespaceObject),__webpack_require__.d(generators_system_namespaceObject,{controls_end_program:()=>system_controls_end_program,controls_millis:()=>generators_system_controls_millis,time_localtime:()=>system_time_localtime});var generators_turtle_namespaceObject={};__webpack_require__.r(generators_turtle_namespaceObject),__webpack_require__.d(generators_turtle_namespaceObject,{turtle_bgcolor:()=>turtle_turtle_bgcolor,turtle_bgcolor_hex:()=>turtle_turtle_bgcolor_hex,turtle_bgcolor_hex_new:()=>turtle_turtle_bgcolor_hex_new,turtle_circle:()=>turtle_turtle_circle,turtle_circle_advanced:()=>turtle_turtle_circle_advanced,turtle_clear:()=>turtle_turtle_clear,turtle_clone:()=>turtle_turtle_clone,turtle_color:()=>turtle_turtle_color,turtle_color_hex:()=>turtle_turtle_color_hex,turtle_color_seclet:()=>turtle_turtle_color_seclet,turtle_create:()=>turtle_turtle_create,turtle_done:()=>turtle_turtle_done,turtle_exitonclick:()=>turtle_turtle_exitonclick,turtle_fill:()=>turtle_turtle_fill,turtle_fillcolor:()=>turtle_turtle_fillcolor,turtle_fillcolor_hex:()=>turtle_turtle_fillcolor_hex,turtle_fillcolor_hex_new:()=>turtle_turtle_fillcolor_hex_new,turtle_getscreen:()=>turtle_turtle_getscreen,turtle_goto:()=>turtle_turtle_goto,turtle_listen:()=>turtle_turtle_listen,turtle_move:()=>turtle_turtle_move,turtle_numinput:()=>turtle_turtle_numinput,turtle_onclick:()=>turtle_turtle_onclick,turtle_onkey:()=>turtle_turtle_onkey,turtle_ontimer:()=>turtle_turtle_ontimer,turtle_pencolor:()=>turtle_turtle_pencolor,turtle_pencolor_hex:()=>turtle_turtle_pencolor_hex,turtle_pencolor_hex_new:()=>turtle_turtle_pencolor_hex_new,turtle_penup:()=>turtle_turtle_penup,turtle_pos_shape:()=>turtle_turtle_pos_shape,turtle_rotate:()=>turtle_turtle_rotate,turtle_screen_delay:()=>turtle_turtle_screen_delay,turtle_screen_savefig:()=>turtle_turtle_screen_savefig,turtle_setheading:()=>turtle_turtle_setheading,turtle_setxy:()=>turtle_turtle_setxy,turtle_shape:()=>turtle_turtle_shape,turtle_shapesize:()=>turtle_turtle_shapesize,turtle_size:()=>turtle_turtle_size,turtle_size_speed:()=>turtle_turtle_size_speed,turtle_speed:()=>turtle_turtle_speed,turtle_textinput:()=>turtle_turtle_textinput,turtle_visible:()=>turtle_turtle_visible,turtle_write:()=>turtle_turtle_write,turtle_write_format:()=>turtle_turtle_write_format,turtle_write_format_skulpt:()=>turtle_turtle_write_format_skulpt});const external_Blockly_namespaceObject=Blockly,ZhHansMsg={PYTHON_PYODIDE_IMAGE:"图像"},ZhHansCatgories={},ZhHantMsg={PYTHON_PYODIDE_IMAGE:"影像"},ZhHantCatgories={},EnMsg={PYTHON_PYODIDE_IMAGE:"Image"},EnCatgories={};Object.assign(external_Blockly_namespaceObject.Lang.ZhHans,ZhHansMsg),Object.assign(external_Blockly_namespaceObject.Lang.ZhHant,ZhHantMsg),Object.assign(external_Blockly_namespaceObject.Lang.En,EnMsg),Object.assign(external_Blockly_namespaceObject.Lang.ZhHans.MSG,ZhHansCatgories),Object.assign(external_Blockly_namespaceObject.Lang.ZhHant.MSG,ZhHantCatgories),Object.assign(external_Blockly_namespaceObject.Lang.En.MSG,EnCatgories);const external_Mixly_namespaceObject=Mixly,Variables={NAME_TYPE:"VARIABLE",allVariables:function(e){var t;if(e.getDescendants)t=e.getDescendants();else{if(!e.getAllBlocks)throw"Not Block or Workspace: "+e;t=e.getAllBlocks()}for(var n=Object.create(null),a=0;a1&&(s+=a)):n=s}else n="i";return n}},variables=Variables; +(()=>{"use strict";var __webpack_modules__={936:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{cv_destroy_all:()=>cv_destroy_all,cv_face_classifier:()=>cv_face_classifier,cv_face_detect:()=>cv_face_detect,cv_face_detect_all:()=>cv_face_detect_all,cv_line_rect:()=>cv_line_rect,cv_read_image:()=>cv_read_image,cv_show_image:()=>cv_show_image,cv_text:()=>cv_text,cv_waitkey:()=>cv_waitkey,cv_write_image:()=>cv_write_image});const cv_read_image=function(e,t){return t.definitions_.import_cv2="import cv2",["cv2.imread("+t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+")",t.ORDER_ATOMIC]},cv_show_image=function(e,t){return t.definitions_.import_cv2="import cv2","cv2.imshow("+t.valueToCode(this,"data",t.ORDER_ATOMIC)+","+t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+")\n"},cv_write_image=function(e,t){return t.definitions_.import_cv2="import cv2","cv2.imwrite("+t.valueToCode(this,"data",t.ORDER_ATOMIC)+","+t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+")\n"},cv_waitkey=function(e,t){return t.definitions_.import_cv2="import cv2","cv2.waitKey("+t.valueToCode(this,"data",t.ORDER_ATOMIC)+")\n"},cv_destroy_all=function(e,t){t.definitions_.import_cv2="import cv2";return"cv2.destroyAllWindows()\n"},cv_line_rect=function(_,generator){generator.definitions_.import_cv2="import cv2";var file=generator.valueToCode(this,"FILE",generator.ORDER_ATOMIC),x1=generator.valueToCode(this,"x1",generator.ORDER_ATOMIC),y1=generator.valueToCode(this,"y1",generator.ORDER_ATOMIC),x2=generator.valueToCode(this,"x2",generator.ORDER_ATOMIC),y2=generator.valueToCode(this,"y2",generator.ORDER_ATOMIC),thick=generator.valueToCode(this,"thick",generator.ORDER_ATOMIC),color=this.getFieldValue("FIELDNAME"),color1=eval("0x"+color[1]+color[2]),color2=eval("0x"+color[3]+color[4]),color3=eval("0x"+color[5]+color[6]),direction=this.getFieldValue("DIR"),code="cv2."+direction+"("+file+",("+x1+","+y1+"),("+x2+","+y2+"),("+color3+","+color2+","+color1+"),"+thick+")\n";return code},cv_text=function(_,generator){generator.definitions_.import_cv2="import cv2";var file=generator.valueToCode(this,"FILE",generator.ORDER_ATOMIC),x1=generator.valueToCode(this,"x1",generator.ORDER_ATOMIC),y1=generator.valueToCode(this,"y1",generator.ORDER_ATOMIC),data=generator.valueToCode(this,"data",generator.ORDER_ATOMIC),size=generator.valueToCode(this,"size",generator.ORDER_ATOMIC),thick=generator.valueToCode(this,"thick",generator.ORDER_ATOMIC),color=this.getFieldValue("FIELDNAME"),color1=eval("0x"+color[1]+color[2]),color2=eval("0x"+color[3]+color[4]),color3=eval("0x"+color[5]+color[6]),font=this.getFieldValue("font"),code="cv2.putText("+file+","+data+",("+x1+","+y1+"),cv2.FONT_HERSHEY_"+font+","+size+",("+color3+","+color2+","+color1+"),"+thick+")\n";return code},cv_face_classifier=function(e,t){return t.definitions_.import_cv2="import cv2",["cv2.CascadeClassifier("+t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+")",t.ORDER_ATOMIC]},cv_face_detect=function(e,t){t.definitions_.import_cv2="import cv2";var n=t.valueToCode(this,"FILE",t.ORDER_ATOMIC);return[t.valueToCode(this,"FACE",t.ORDER_ATOMIC)+".detectMultiScale("+n+",scaleFactor="+t.valueToCode(this,"SCALE",t.ORDER_ATOMIC)+",minNeighbors="+t.valueToCode(this,"NEIGHBOR",t.ORDER_ATOMIC)+")",t.ORDER_ATOMIC]},cv_face_detect_all=function(e,t){t.definitions_.import_cv2="import cv2";var n=t.valueToCode(this,"FILE",t.ORDER_ATOMIC);return[t.valueToCode(this,"FACE",t.ORDER_ATOMIC)+".detectMultiScale("+n+",scaleFactor="+t.valueToCode(this,"SCALE",t.ORDER_ATOMIC)+",minNeighbors="+t.valueToCode(this,"NEIGHBOR",t.ORDER_ATOMIC)+",minSize=("+t.valueToCode(this,"x1",t.ORDER_ATOMIC)+","+t.valueToCode(this,"y1",t.ORDER_ATOMIC)+"),maxSize=("+t.valueToCode(this,"x2",t.ORDER_ATOMIC)+","+t.valueToCode(this,"y2",t.ORDER_ATOMIC)+"))",t.ORDER_ATOMIC]}},9610:(e,t,n)=>{n.d(t,{D:()=>a});var a=function(){function e(e){var t=this;void 0===e&&(e=!1),this.ignoreMultipleSettles=e,this.isSettled=!1,this.promise=new Promise((function(e,n){t.resolveCallback=e,t.rejectCallback=n}))}return e.prototype.markAsSettled=function(){var e=this.isSettled;if(e&&!this.ignoreMultipleSettles)throw new Error("PromiseDelegate is already settled!");return this.isSettled=!0,!e},Object.defineProperty(e.prototype,"settled",{get:function(){return this.isSettled},enumerable:!1,configurable:!0}),e.prototype.resolve=function(e){this.markAsSettled()&&this.resolveCallback(e)},e.prototype.reject=function(e){this.markAsSettled()&&this.rejectCallback(e)},e}()},6944:e=>{e.exports=path}},__webpack_module_cache__={},leafPrototypes,getProto,inProgress,dataWebpackPrefix;function __webpack_require__(e){var t=__webpack_module_cache__[e];if(void 0!==t)return t.exports;var n=__webpack_module_cache__[e]={id:e,loaded:!1,exports:{}};return __webpack_modules__[e].call(n.exports,n,n.exports,__webpack_require__),n.loaded=!0,n.exports}__webpack_require__.m=__webpack_modules__,__webpack_require__.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return __webpack_require__.d(t,{a:t}),t},getProto=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,__webpack_require__.t=function(e,t){if(1&t&&(e=this(e)),8&t)return e;if("object"==typeof e&&e){if(4&t&&e.__esModule)return e;if(16&t&&"function"==typeof e.then)return e}var n=Object.create(null);__webpack_require__.r(n);var a={};leafPrototypes=leafPrototypes||[null,getProto({}),getProto([]),getProto(getProto)];for(var _=2&t&&e;"object"==typeof _&&!~leafPrototypes.indexOf(_);_=getProto(_))Object.getOwnPropertyNames(_).forEach((t=>a[t]=()=>e[t]));return a.default=()=>e,__webpack_require__.d(n,a),n},__webpack_require__.d=(e,t)=>{for(var n in t)__webpack_require__.o(t,n)&&!__webpack_require__.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},__webpack_require__.f={},__webpack_require__.e=e=>Promise.all(Object.keys(__webpack_require__.f).reduce(((t,n)=>(__webpack_require__.f[n](e,t),t)),[])),__webpack_require__.u=e=>e+".bundle.js",__webpack_require__.miniCssF=e=>"styles/"+e+"."+__webpack_require__.h().slice(0,8)+".css",__webpack_require__.h=()=>"d64c03533f658f5d6886",__webpack_require__.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),inProgress={},dataWebpackPrefix="@mixly/python-pyodide:",__webpack_require__.l=(e,t,n,a)=>{if(inProgress[e])inProgress[e].push(t);else{var _,l;if(void 0!==n)for(var s=document.getElementsByTagName("script"),i=0;i{_.onerror=_.onload=null,clearTimeout(p);var a=inProgress[e];if(delete inProgress[e],_.parentNode&&_.parentNode.removeChild(_),a&&a.forEach((e=>e(n))),t)return t(n)},p=setTimeout(r.bind(null,void 0,{type:"timeout",target:_}),12e4);_.onerror=r.bind(null,_.onerror),_.onload=r.bind(null,_.onload),l&&document.head.appendChild(_)}},__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},__webpack_require__.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),(()=>{var e;__webpack_require__.g.importScripts&&(e=__webpack_require__.g.location+"");var t=__webpack_require__.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var n=t.getElementsByTagName("script");if(n.length)for(var a=n.length-1;a>-1&&(!e||!/^http(s?):/.test(e));)e=n[a--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),__webpack_require__.p=e})(),(()=>{if("undefined"!=typeof document){var e=e=>new Promise(((t,n)=>{var a=__webpack_require__.miniCssF(e),_=__webpack_require__.p+a;if(((e,t)=>{for(var n=document.getElementsByTagName("link"),a=0;a{var l=document.createElement("link");l.rel="stylesheet",l.type="text/css",__webpack_require__.nc&&(l.nonce=__webpack_require__.nc),l.onerror=l.onload=n=>{if(l.onerror=l.onload=null,"load"===n.type)a();else{var s=n&&n.type,i=n&&n.target&&n.target.href||t,o=new Error("Loading CSS chunk "+e+" failed.\n("+s+": "+i+")");o.name="ChunkLoadError",o.code="CSS_CHUNK_LOAD_FAILED",o.type=s,o.request=i,l.parentNode&&l.parentNode.removeChild(l),_(o)}},l.href=t,n?n.parentNode.insertBefore(l,n.nextSibling):document.head.appendChild(l)})(e,_,null,t,n)})),t={792:0};__webpack_require__.f.miniCss=(n,a)=>{t[n]?a.push(t[n]):0!==t[n]&&{317:1}[n]&&a.push(t[n]=e(n).then((()=>{t[n]=0}),(e=>{throw delete t[n],e})))}}})(),(()=>{var e={792:0};__webpack_require__.f.j=(t,n)=>{var a=__webpack_require__.o(e,t)?e[t]:void 0;if(0!==a)if(a)n.push(a[2]);else{var _=new Promise(((n,_)=>a=e[t]=[n,_]));n.push(a[2]=_);var l=__webpack_require__.p+__webpack_require__.u(t),s=new Error;__webpack_require__.l(l,(n=>{if(__webpack_require__.o(e,t)&&(0!==(a=e[t])&&(e[t]=void 0),a)){var _=n&&("load"===n.type?"missing":n.type),l=n&&n.target&&n.target.src;s.message="Loading chunk "+t+" failed.\n("+_+": "+l+")",s.name="ChunkLoadError",s.type=_,s.request=l,a[1](s)}}),"chunk-"+t,t)}};var t=(t,n)=>{var a,_,[l,s,i]=n,o=0;if(l.some((t=>0!==e[t]))){for(a in s)__webpack_require__.o(s,a)&&(__webpack_require__.m[a]=s[a]);if(i)i(__webpack_require__)}for(t&&t(n);ocontrols_type,controls_typeLists:()=>controls_typeLists,variables_change:()=>variables_change,variables_get:()=>variables_get,variables_global:()=>variables_global,variables_set:()=>variables_set});var control_namespaceObject={};__webpack_require__.r(control_namespaceObject),__webpack_require__.d(control_namespaceObject,{base_setup:()=>base_setup,controls_delay:()=>controls_delay,controls_end_program:()=>controls_end_program,controls_except:()=>controls_except,controls_finally:()=>controls_finally,controls_flow_statements:()=>controls_flow_statements,controls_for:()=>controls_for,controls_forEach:()=>controls_forEach,controls_for_range:()=>controls_for_range,controls_if:()=>controls_if,controls_if_else:()=>controls_if_else,controls_if_elseif:()=>controls_if_elseif,controls_if_if:()=>controls_if_if,controls_lambda:()=>controls_lambda,controls_main:()=>controls_main,controls_pass:()=>controls_pass,controls_range:()=>controls_range,controls_repeat_ext:()=>controls_repeat_ext,controls_thread:()=>controls_thread,controls_try:()=>controls_try,controls_try_finally:()=>controls_try_finally,controls_whileUntil:()=>controls_whileUntil,do_while:()=>do_while,garbage_collection:()=>garbage_collection,get_mem_alloc:()=>get_mem_alloc,get_mem_free:()=>get_mem_free});var math_namespaceObject={};__webpack_require__.r(math_namespaceObject),__webpack_require__.d(math_namespaceObject,{base_map:()=>base_map,math_arithmetic:()=>math_arithmetic,math_bit:()=>math_bit,math_constant:()=>math_constant,math_constant_mp:()=>math_constant_mp,math_constrain:()=>math_constrain,math_dec:()=>math_dec,math_indexer_number:()=>math_indexer_number,math_map:()=>math_map,math_max_min:()=>math_max_min,math_number:()=>math_number,math_number_base_conversion:()=>math_number_base_conversion,math_random:()=>math_random,math_random_seed:()=>math_random_seed,math_round:()=>math_round,math_selfcalcu:()=>math_selfcalcu,math_to_int:()=>math_to_int,math_trig:()=>math_trig,text_to_number:()=>text_to_number,text_to_number_skulpt:()=>text_to_number_skulpt});var text_namespaceObject={};__webpack_require__.r(text_namespaceObject),__webpack_require__.d(text_namespaceObject,{ascii_to_char:()=>ascii_to_char,char_to_ascii:()=>char_to_ascii,number_to_text:()=>number_to_text,os_system:()=>os_system,text:()=>text_text,text_capital:()=>text_capital,text_center:()=>text_center,text_char:()=>text_char,text_char_at:()=>text_char_at,text_char_at2:()=>text_char_at2,text_char_at3:()=>text_char_at3,text_compareTo:()=>text_compareTo,text_compare_to:()=>text_compare_to,text_create_with_container:()=>text_create_with_container,text_create_with_item:()=>text_create_with_item,text_encode:()=>text_encode,text_equals_starts_ends:()=>text_equals_starts_ends,text_eval:()=>text_eval,text_find:()=>text_find,text_format:()=>text_format,text_format_noreturn:()=>text_format_noreturn,text_join:()=>text_join,text_join_seq:()=>text_join_seq,text_length:()=>text_length,text_random_char:()=>text_random_char,text_replace:()=>text_replace,text_split:()=>text_split,text_strip:()=>text_strip,text_substring:()=>text_substring,text_substring2:()=>text_substring2,text_substring3:()=>text_substring3,text_textarea:()=>text_textarea});var lists_namespaceObject={};__webpack_require__.r(lists_namespaceObject),__webpack_require__.d(lists_namespaceObject,{list_many_input:()=>list_many_input,list_tolist:()=>list_tolist,list_tolist2:()=>list_tolist2,list_trig:()=>list_trig,lists_2d_get_col_row_data:()=>lists_2d_get_col_row_data,lists_2d_get_data_with_col_row:()=>lists_2d_get_data_with_col_row,lists_append_extend:()=>lists_append_extend,lists_change_to:()=>lists_change_to,lists_change_to_general:()=>lists_change_to_general,lists_clear:()=>lists_clear,lists_create_with:()=>lists_create_with,lists_create_with2:()=>lists_create_with2,lists_create_with_container:()=>lists_create_with_container,lists_create_with_item:()=>lists_create_with_item,lists_create_with_noreturn:()=>lists_create_with_noreturn,lists_create_with_text:()=>lists_create_with_text,lists_create_with_text2:()=>lists_create_with_text2,lists_del_general:()=>lists_del_general,lists_find:()=>lists_find,lists_getIndex3:()=>lists_getIndex3,lists_getSublist3:()=>lists_getSublist3,lists_get_index:()=>lists_get_index,lists_get_random_item:()=>lists_get_random_item,lists_get_random_sublist:()=>lists_get_random_sublist,lists_get_sublist:()=>lists_get_sublist,lists_insert_value:()=>lists_insert_value,lists_insert_value2:()=>lists_insert_value2,lists_pop:()=>lists_pop,lists_remove_at:()=>lists_remove_at,lists_remove_at2:()=>lists_remove_at2,lists_reverse:()=>lists_reverse,lists_setIndex3:()=>lists_setIndex3,lists_set_index:()=>lists_set_index,lists_sort:()=>lists_sort,lists_zip:()=>lists_zip,lists_zip_container:()=>lists_zip_container,lists_zip_item:()=>lists_zip_item});var dicts_namespaceObject={};__webpack_require__.r(dicts_namespaceObject),__webpack_require__.d(dicts_namespaceObject,{dicts_add_change_del:()=>dicts_add_change_del,dicts_add_or_change:()=>dicts_add_or_change,dicts_clear:()=>dicts_clear,dicts_create_with:()=>dicts_create_with,dicts_create_with_container:()=>dicts_create_with_container,dicts_create_with_item:()=>dicts_create_with_item,dicts_create_with_noreturn:()=>dicts_create_with_noreturn,dicts_deldict:()=>dicts_deldict,dicts_delete:()=>dicts_delete,dicts_get:()=>dicts_get,dicts_get_default:()=>dicts_get_default,dicts_items:()=>dicts_items,dicts_keys:()=>dicts_keys,dicts_length:()=>dicts_length,dicts_pop:()=>dicts_pop,dicts_setdefault:()=>dicts_setdefault,dicts_to_json:()=>dicts_to_json,dicts_todict:()=>dicts_todict,dicts_update:()=>dicts_update,dicts_values:()=>dicts_values,json_to_dicts:()=>json_to_dicts});var logic_namespaceObject={};__webpack_require__.r(logic_namespaceObject),__webpack_require__.d(logic_namespaceObject,{logic_boolean:()=>logic_boolean,logic_compare:()=>logic_compare,logic_compare_continous:()=>logic_compare_continous,logic_is:()=>logic_is,logic_is_in:()=>logic_is_in,logic_negate:()=>logic_negate,logic_null:()=>logic_null,logic_operation:()=>logic_operation,logic_tobool:()=>logic_tobool,logic_true_or_false:()=>logic_true_or_false});var storage_namespaceObject={};__webpack_require__.r(storage_namespaceObject),__webpack_require__.d(storage_namespaceObject,{sdcard_mount:()=>sdcard_mount,sdcard_use_spi_init:()=>sdcard_use_spi_init,storage_can_write_ornot:()=>storage_can_write_ornot,storage_change_dir:()=>storage_change_dir,storage_close_file:()=>storage_close_file,storage_delete_file:()=>storage_delete_file,storage_file_seek:()=>storage_file_seek,storage_file_tell:()=>storage_file_tell,storage_file_write:()=>storage_file_write,storage_fileopen:()=>storage_fileopen,storage_fileopen_new:()=>storage_fileopen_new,storage_fileopen_new_encoding:()=>storage_fileopen_new_encoding,storage_get_a_line:()=>storage_get_a_line,storage_get_contents:()=>storage_get_contents,storage_get_contents_without_para:()=>storage_get_contents_without_para,storage_get_current_dir:()=>storage_get_current_dir,storage_get_file_size:()=>storage_get_file_size,storage_get_filename:()=>storage_get_filename,storage_is_file:()=>storage_is_file,storage_list_all_files:()=>storage_list_all_files,storage_make_dir:()=>storage_make_dir,storage_open_file_with_os:()=>storage_open_file_with_os,storage_rename:()=>storage_rename});var blocks_procedures_namespaceObject={};__webpack_require__.r(blocks_procedures_namespaceObject),__webpack_require__.d(blocks_procedures_namespaceObject,{procedures_callnoreturn:()=>procedures_callnoreturn,procedures_callreturn:()=>procedures_callreturn,procedures_defnoreturn:()=>procedures_defnoreturn,procedures_defreturn:()=>procedures_defreturn,procedures_ifreturn:()=>procedures_ifreturn,procedures_mutatorarg:()=>procedures_mutatorarg,procedures_mutatorcontainer:()=>procedures_mutatorcontainer,procedures_return:()=>procedures_return});var tuple_namespaceObject={};__webpack_require__.r(tuple_namespaceObject),__webpack_require__.d(tuple_namespaceObject,{tuple_change_to:()=>tuple_change_to,tuple_create_with:()=>tuple_create_with,tuple_create_with_container:()=>tuple_create_with_container,tuple_create_with_item:()=>tuple_create_with_item,tuple_create_with_noreturn:()=>tuple_create_with_noreturn,tuple_create_with_text2:()=>tuple_create_with_text2,tuple_create_with_text_return:()=>tuple_create_with_text_return,tuple_del:()=>tuple_del,tuple_find:()=>tuple_find,tuple_getIndex:()=>tuple_getIndex,tuple_getSublist:()=>tuple_getSublist,tuple_get_random_item:()=>tuple_get_random_item,tuple_get_sublist:()=>tuple_get_sublist,tuple_join:()=>tuple_join,tuple_length:()=>tuple_length,tuple_max:()=>tuple_max,tuple_totuple:()=>tuple_totuple,tuple_trig:()=>tuple_trig});var set_namespaceObject={};__webpack_require__.r(set_namespaceObject),__webpack_require__.d(set_namespaceObject,{set_add_discard:()=>set_add_discard,set_clear:()=>set_clear,set_create_with:()=>set_create_with,set_create_with_container:()=>set_create_with_container,set_create_with_item:()=>set_create_with_item,set_create_with_text_return:()=>set_create_with_text_return,set_length:()=>set_length,set_operate:()=>set_operate,set_operate_update:()=>set_operate_update,set_pop:()=>set_pop,set_sub:()=>set_sub,set_toset:()=>set_toset,set_update:()=>set_update});var html_namespaceObject={};__webpack_require__.r(html_namespaceObject),__webpack_require__.d(html_namespaceObject,{html_content:()=>html_content,html_content_more:()=>html_content_more,html_document:()=>html_document,html_form:()=>html_form,html_head_body:()=>html_head_body,html_style:()=>html_style,html_style_color:()=>html_style_color,html_style_content:()=>html_style_content,html_text:()=>html_text,html_title:()=>html_title});var utility_namespaceObject={};__webpack_require__.r(utility_namespaceObject),__webpack_require__.d(utility_namespaceObject,{attribute_access:()=>attribute_access,function_call:()=>function_call,function_call_container:()=>function_call_container,function_call_item:()=>function_call_item,raw_block:()=>raw_block,raw_empty:()=>raw_empty,raw_expression:()=>raw_expression,raw_table:()=>raw_table,text_comment:()=>text_comment,text_print_multiple:()=>text_print_multiple,text_print_multiple_container:()=>text_print_multiple_container,text_print_multiple_item:()=>text_print_multiple_item,type_check:()=>type_check});var generators_variables_namespaceObject={};__webpack_require__.r(generators_variables_namespaceObject),__webpack_require__.d(generators_variables_namespaceObject,{controls_type:()=>variables_controls_type,controls_typeLists:()=>variables_controls_typeLists,variables_change:()=>variables_variables_change,variables_get:()=>variables_variables_get,variables_global:()=>variables_variables_global,variables_set:()=>variables_variables_set});var generators_control_namespaceObject={};__webpack_require__.r(generators_control_namespaceObject),__webpack_require__.d(generators_control_namespaceObject,{Panic_with_status_code:()=>Panic_with_status_code,base_setup:()=>control_base_setup,controls_delay:()=>control_controls_delay,controls_flow_statements:()=>control_controls_flow_statements,controls_for:()=>control_controls_for,controls_forEach:()=>control_controls_forEach,controls_for_range:()=>control_controls_for_range,controls_if:()=>control_controls_if,controls_interrupts:()=>controls_interrupts,controls_lambda:()=>control_controls_lambda,controls_main:()=>control_controls_main,controls_millis:()=>controls_millis,controls_nointerrupts:()=>controls_nointerrupts,controls_pass:()=>control_controls_pass,controls_range:()=>control_controls_range,controls_repeat:()=>controls_repeat,controls_repeat_ext:()=>control_controls_repeat_ext,controls_thread:()=>control_controls_thread,controls_try_finally:()=>control_controls_try_finally,controls_whileUntil:()=>control_controls_whileUntil,do_while:()=>control_do_while,garbage_collection:()=>control_garbage_collection,get_mem_alloc:()=>control_get_mem_alloc,get_mem_free:()=>control_get_mem_free,reset:()=>control_reset,time_sleep:()=>time_sleep});var generators_math_namespaceObject={};__webpack_require__.r(generators_math_namespaceObject),__webpack_require__.d(generators_math_namespaceObject,{base_map:()=>math_base_map,math_arithmetic:()=>math_math_arithmetic,math_bit:()=>math_math_bit,math_constant:()=>math_math_constant,math_constant_mp:()=>math_math_constant_mp,math_constrain:()=>math_math_constrain,math_dec:()=>math_math_dec,math_indexer_number:()=>math_math_indexer_number,math_map:()=>math_math_map,math_max_min:()=>math_math_max_min,math_number:()=>math_math_number,math_number_base_conversion:()=>math_math_number_base_conversion,math_random:()=>math_math_random,math_random_seed:()=>math_math_random_seed,math_round:()=>math_math_round,math_selfcalcu:()=>math_math_selfcalcu,math_single:()=>math_single,math_to_int:()=>math_math_to_int,math_trig:()=>math_math_trig,text_to_number:()=>math_text_to_number,text_to_number_skulpt:()=>math_text_to_number_skulpt});var generators_text_namespaceObject={};__webpack_require__.r(generators_text_namespaceObject),__webpack_require__.d(generators_text_namespaceObject,{ascii_to_char:()=>text_ascii_to_char,char_to_ascii:()=>text_char_to_ascii,number_to_text:()=>text_number_to_text,os_system:()=>text_os_system,text:()=>generators_text_text,text_capital:()=>text_text_capital,text_center:()=>text_text_center,text_char:()=>text_text_char,text_char_at:()=>text_text_char_at,text_char_at2:()=>text_text_char_at2,text_char_at3:()=>text_text_char_at3,text_compareTo:()=>text_text_compareTo,text_compare_to:()=>text_text_compare_to,text_encode:()=>text_text_encode,text_equals_starts_ends:()=>text_text_equals_starts_ends,text_eval:()=>text_text_eval,text_find:()=>text_text_find,text_format:()=>text_text_format,text_format_noreturn:()=>text_text_format_noreturn,text_join:()=>text_text_join,text_join_seq:()=>text_text_join_seq,text_length:()=>text_text_length,text_random_char:()=>text_text_random_char,text_replace:()=>text_text_replace,text_split:()=>text_text_split,text_strip:()=>text_text_strip,text_substring:()=>text_text_substring,text_substring2:()=>text_text_substring2,text_substring3:()=>text_text_substring3,text_textarea:()=>text_text_textarea});var generators_lists_namespaceObject={};__webpack_require__.r(generators_lists_namespaceObject),__webpack_require__.d(generators_lists_namespaceObject,{list_many_input:()=>lists_list_many_input,list_tolist:()=>lists_list_tolist,list_tolist2:()=>lists_list_tolist2,list_trig:()=>lists_list_trig,lists_2d_get_col_row_data:()=>lists_lists_2d_get_col_row_data,lists_2d_get_data_with_col_row:()=>lists_lists_2d_get_data_with_col_row,lists_append_extend:()=>lists_lists_append_extend,lists_change_to:()=>lists_lists_change_to,lists_change_to_general:()=>lists_lists_change_to_general,lists_clear:()=>lists_lists_clear,lists_create_with:()=>lists_lists_create_with,lists_create_with2:()=>lists_lists_create_with2,lists_create_with_noreturn:()=>lists_lists_create_with_noreturn,lists_create_with_text:()=>lists_lists_create_with_text,lists_create_with_text2:()=>lists_lists_create_with_text2,lists_del_general:()=>lists_lists_del_general,lists_find:()=>lists_lists_find,lists_getIndex3:()=>lists_lists_getIndex3,lists_getSublist3:()=>lists_lists_getSublist3,lists_get_index:()=>lists_lists_get_index,lists_get_random_item:()=>lists_lists_get_random_item,lists_get_random_sublist:()=>lists_lists_get_random_sublist,lists_get_sublist:()=>lists_lists_get_sublist,lists_insert_value:()=>lists_lists_insert_value,lists_insert_value2:()=>lists_lists_insert_value2,lists_pop:()=>lists_lists_pop,lists_remove_at:()=>lists_lists_remove_at,lists_remove_at2:()=>lists_lists_remove_at2,lists_reverse:()=>lists_lists_reverse,lists_setIndex3:()=>lists_lists_setIndex3,lists_set_index:()=>lists_lists_set_index,lists_sort:()=>lists_lists_sort,lists_zip:()=>lists_lists_zip});var generators_dicts_namespaceObject={};__webpack_require__.r(generators_dicts_namespaceObject),__webpack_require__.d(generators_dicts_namespaceObject,{dicts_add_change_del:()=>dicts_dicts_add_change_del,dicts_add_or_change:()=>dicts_dicts_add_or_change,dicts_clear:()=>dicts_dicts_clear,dicts_create_with:()=>dicts_dicts_create_with,dicts_create_with_noreturn:()=>dicts_dicts_create_with_noreturn,dicts_deldict:()=>dicts_dicts_deldict,dicts_delete:()=>dicts_dicts_delete,dicts_get:()=>dicts_dicts_get,dicts_get_default:()=>dicts_dicts_get_default,dicts_items:()=>dicts_dicts_items,dicts_keys:()=>dicts_dicts_keys,dicts_length:()=>dicts_dicts_length,dicts_pop:()=>dicts_dicts_pop,dicts_setdefault:()=>dicts_dicts_setdefault,dicts_to_json:()=>dicts_dicts_to_json,dicts_todict:()=>dicts_dicts_todict,dicts_update:()=>dicts_dicts_update,dicts_values:()=>dicts_dicts_values,json_to_dicts:()=>dicts_json_to_dicts});var generators_logic_namespaceObject={};__webpack_require__.r(generators_logic_namespaceObject),__webpack_require__.d(generators_logic_namespaceObject,{logic_boolean:()=>logic_logic_boolean,logic_compare:()=>logic_logic_compare,logic_compare_continous:()=>logic_logic_compare_continous,logic_is:()=>logic_logic_is,logic_is_in:()=>logic_logic_is_in,logic_negate:()=>logic_logic_negate,logic_null:()=>logic_logic_null,logic_operation:()=>logic_logic_operation,logic_tobool:()=>logic_logic_tobool,logic_true_or_false:()=>logic_logic_true_or_false});var generators_storage_namespaceObject={};__webpack_require__.r(generators_storage_namespaceObject),__webpack_require__.d(generators_storage_namespaceObject,{sdcard_mount:()=>storage_sdcard_mount,sdcard_use_spi_init:()=>storage_sdcard_use_spi_init,storage_can_write_ornot:()=>storage_storage_can_write_ornot,storage_change_dir:()=>storage_storage_change_dir,storage_close_file:()=>storage_storage_close_file,storage_delete_file:()=>storage_storage_delete_file,storage_file_seek:()=>storage_storage_file_seek,storage_file_tell:()=>storage_storage_file_tell,storage_file_write:()=>storage_storage_file_write,storage_fileopen:()=>storage_storage_fileopen,storage_fileopen_new:()=>storage_storage_fileopen_new,storage_fileopen_new_encoding:()=>storage_storage_fileopen_new_encoding,storage_get_a_line:()=>storage_storage_get_a_line,storage_get_contents:()=>storage_storage_get_contents,storage_get_contents_without_para:()=>storage_storage_get_contents_without_para,storage_get_current_dir:()=>storage_storage_get_current_dir,storage_get_file_size:()=>storage_storage_get_file_size,storage_get_filename:()=>storage_storage_get_filename,storage_is_file:()=>storage_storage_is_file,storage_list_all_files:()=>storage_storage_list_all_files,storage_make_dir:()=>storage_storage_make_dir,storage_open_file_with_os:()=>storage_storage_open_file_with_os,storage_rename:()=>storage_storage_rename});var generators_procedures_namespaceObject={};__webpack_require__.r(generators_procedures_namespaceObject),__webpack_require__.d(generators_procedures_namespaceObject,{procedures_callnoreturn:()=>procedures_procedures_callnoreturn,procedures_callreturn:()=>procedures_procedures_callreturn,procedures_defnoreturn:()=>procedures_procedures_defnoreturn,procedures_defreturn:()=>procedures_procedures_defreturn,procedures_ifreturn:()=>procedures_procedures_ifreturn,procedures_return:()=>procedures_procedures_return});var generators_tuple_namespaceObject={};__webpack_require__.r(generators_tuple_namespaceObject),__webpack_require__.d(generators_tuple_namespaceObject,{tuple_change_to:()=>tuple_tuple_change_to,tuple_create_with:()=>tuple_tuple_create_with,tuple_create_with_noreturn:()=>tuple_tuple_create_with_noreturn,tuple_create_with_text2:()=>tuple_tuple_create_with_text2,tuple_create_with_text_return:()=>tuple_tuple_create_with_text_return,tuple_del:()=>tuple_tuple_del,tuple_find:()=>tuple_tuple_find,tuple_getIndex:()=>tuple_tuple_getIndex,tuple_getSublist:()=>tuple_tuple_getSublist,tuple_get_random_item:()=>tuple_tuple_get_random_item,tuple_get_sublist:()=>tuple_tuple_get_sublist,tuple_join:()=>tuple_tuple_join,tuple_length:()=>tuple_tuple_length,tuple_max:()=>tuple_tuple_max,tuple_totuple:()=>tuple_tuple_totuple,tuple_trig:()=>tuple_tuple_trig});var generators_set_namespaceObject={};__webpack_require__.r(generators_set_namespaceObject),__webpack_require__.d(generators_set_namespaceObject,{set_add_discard:()=>set_set_add_discard,set_clear:()=>set_set_clear,set_create_with:()=>set_set_create_with,set_create_with_text_return:()=>set_set_create_with_text_return,set_length:()=>set_set_length,set_operate:()=>set_set_operate,set_operate_update:()=>set_set_operate_update,set_pop:()=>set_set_pop,set_sub:()=>set_set_sub,set_toset:()=>set_set_toset,set_update:()=>set_set_update});var generators_html_namespaceObject={};__webpack_require__.r(generators_html_namespaceObject),__webpack_require__.d(generators_html_namespaceObject,{html_content:()=>html_html_content,html_content_more:()=>html_html_content_more,html_document:()=>html_html_document,html_form:()=>html_html_form,html_head_body:()=>html_html_head_body,html_style:()=>html_html_style,html_style_content:()=>html_html_style_content,html_text:()=>html_html_text,html_title:()=>html_html_title});var generators_utility_namespaceObject={};__webpack_require__.r(generators_utility_namespaceObject),__webpack_require__.d(generators_utility_namespaceObject,{attribute_access:()=>utility_attribute_access,function_call:()=>utility_function_call,raw_block:()=>utility_raw_block,raw_empty:()=>utility_raw_empty,raw_expression:()=>utility_raw_expression,raw_table:()=>utility_raw_table,type_check:()=>utility_type_check});var ai_namespaceObject={};__webpack_require__.r(ai_namespaceObject),__webpack_require__.d(ai_namespaceObject,{AI_ChooseAndGet:()=>AI_ChooseAndGet,AI_Face_match:()=>AI_Face_match,AI_ImageClassify:()=>AI_ImageClassify,AI_ImageClassify_Func:()=>AI_ImageClassify_Func,AI_Nlp:()=>AI_Nlp,AI_Nlp_Func:()=>AI_Nlp_Func,AI_Nlp_Func_sim:()=>AI_Nlp_Func_sim,AI_Nlp_Sim:()=>AI_Nlp_Sim,AI_Nlp_Topic:()=>AI_Nlp_Topic,AI_Nlp_newsSummary:()=>AI_Nlp_newsSummary,AI_Ocr:()=>AI_Ocr,AI_Ocr_Func:()=>AI_Ocr_Func,AI_Speech_asr:()=>AI_Speech_asr,AI_Speech_synthesis:()=>AI_Speech_synthesis,AI_audio:()=>AI_audio,AI_client:()=>AI_client,AI_photo:()=>AI_photo,AI_result:()=>AI_result});var algorithm_namespaceObject={};__webpack_require__.r(algorithm_namespaceObject),__webpack_require__.d(algorithm_namespaceObject,{algorithm_add_path:()=>algorithm_add_path,algorithm_add_school:()=>algorithm_add_school,algorithm_all_books:()=>algorithm_all_books,algorithm_all_books_sequence:()=>algorithm_all_books_sequence,algorithm_book_scale:()=>algorithm_book_scale,algorithm_check_feet:()=>algorithm_check_feet,algorithm_chick_calculate:()=>algorithm_chick_calculate,algorithm_color_seclet:()=>algorithm_color_seclet,algorithm_current_school:()=>algorithm_current_school,algorithm_del_path:()=>algorithm_del_path,algorithm_delete_book:()=>algorithm_delete_book,algorithm_delete_books:()=>algorithm_delete_books,algorithm_delete_books2:()=>algorithm_delete_books2,algorithm_divide_books:()=>algorithm_divide_books,algorithm_find_path:()=>algorithm_find_path,algorithm_first_book:()=>algorithm_first_book,algorithm_fz_calc:()=>algorithm_fz_calc,algorithm_fz_calc_first_min:()=>algorithm_fz_calc_first_min,algorithm_fz_compare:()=>algorithm_fz_compare,algorithm_fz_move:()=>algorithm_fz_move,algorithm_fz_set_min:()=>algorithm_fz_set_min,algorithm_get_book_num:()=>algorithm_get_book_num,algorithm_get_current_location:()=>algorithm_get_current_location,algorithm_get_half_books:()=>algorithm_get_half_books,algorithm_hxdb_add:()=>algorithm_hxdb_add,algorithm_hxdb_init_soldier:()=>algorithm_hxdb_init_soldier,algorithm_hxdb_last_line:()=>algorithm_hxdb_last_line,algorithm_hxdb_result:()=>algorithm_hxdb_result,algorithm_hxdb_stand_in_line:()=>algorithm_hxdb_stand_in_line,algorithm_init_fzsf:()=>algorithm_init_fzsf,algorithm_init_hxdb:()=>algorithm_init_hxdb,algorithm_init_jttl:()=>algorithm_init_jttl,algorithm_move_recent:()=>algorithm_move_recent,algorithm_new_path:()=>algorithm_new_path,algorithm_next_book:()=>algorithm_next_book,algorithm_no_left:()=>algorithm_no_left,algorithm_no_path:()=>algorithm_no_path,algorithm_no_ring2:()=>algorithm_no_ring2,algorithm_not_home:()=>algorithm_not_home,algorithm_not_school:()=>algorithm_not_school,algorithm_number_add:()=>algorithm_number_add,algorithm_number_zero:()=>algorithm_number_zero,algorithm_prepare:()=>algorithm_prepare,algorithm_prepare2:()=>algorithm_prepare2,algorithm_prepare_2_1:()=>algorithm_prepare_2_1,algorithm_prepare_2_2:()=>algorithm_prepare_2_2,algorithm_print_book2:()=>algorithm_print_book2,algorithm_print_divide:()=>algorithm_print_divide,algorithm_print_jttl_answer:()=>algorithm_print_jttl_answer,algorithm_print_number:()=>algorithm_print_number,algorithm_print_path:()=>algorithm_print_path,algorithm_print_path2:()=>algorithm_print_path2,algorithm_print_sequence:()=>algorithm_print_sequence,algorithm_rabbit_add:()=>algorithm_rabbit_add,algorithm_rabbit_number_in_range:()=>algorithm_rabbit_number_in_range,algorithm_rabbit_zero:()=>algorithm_rabbit_zero,algorithm_return_path:()=>algorithm_return_path,algorithm_set_path:()=>algorithm_set_path,algorithm_two_left:()=>algorithm_two_left,algorithm_void_path:()=>algorithm_void_path,algorithm_yes_ring2:()=>algorithm_yes_ring2,hanoi_init:()=>hanoi_init,hanoi_init_offline:()=>hanoi_init_offline,hanoi_move:()=>hanoi_move});var communicate_namespaceObject={};__webpack_require__.r(communicate_namespaceObject),__webpack_require__.d(communicate_namespaceObject,{requests_attribute:()=>requests_attribute,requests_get:()=>requests_get,requests_get_old:()=>requests_get_old,requests_method:()=>requests_method,requests_post:()=>requests_post});var cv_namespaceObject={};__webpack_require__.r(cv_namespaceObject),__webpack_require__.d(cv_namespaceObject,{cv_destroy_all:()=>cv_destroy_all,cv_face_classifier:()=>cv_face_classifier,cv_face_detect:()=>cv_face_detect,cv_face_detect_all:()=>cv_face_detect_all,cv_line_rect:()=>cv_line_rect,cv_read_image:()=>cv_read_image,cv_show_image:()=>cv_show_image,cv_text:()=>cv_text,cv_waitkey:()=>cv_waitkey,cv_write_image:()=>cv_write_image});var data_namespaceObject={};__webpack_require__.r(data_namespaceObject),__webpack_require__.d(data_namespaceObject,{array_create:()=>array_create,array_toarray:()=>array_toarray,dataframe_create:()=>dataframe_create,dataframe_create_from_index:()=>dataframe_create_from_index,dataframe_create_from_one_index:()=>dataframe_create_from_one_index,dataframe_fillna:()=>dataframe_fillna,dataframe_get:()=>dataframe_get,dataframe_info:()=>dataframe_info,dataframe_median:()=>dataframe_median,matrix_multiplication:()=>matrix_multiplication,matrix_transpose:()=>matrix_transpose,numpy_argmin_template_match:()=>numpy_argmin_template_match,numpy_astype:()=>numpy_astype,numpy_c_:()=>numpy_c_,numpy_dot:()=>numpy_dot,numpy_linalg_det:()=>numpy_linalg_det,numpy_linalg_inv:()=>numpy_linalg_inv,numpy_max:()=>numpy_max,numpy_mean:()=>numpy_mean,numpy_mean_digit:()=>numpy_mean_digit,numpy_min:()=>numpy_min,numpy_ones:()=>numpy_ones,numpy_random_random:()=>numpy_random_random,numpy_reshape:()=>numpy_reshape,numpy_shape:()=>numpy_shape,numpy_size:()=>numpy_size,numpy_square:()=>numpy_square,numpy_std:()=>numpy_std,numpy_sum:()=>numpy_sum,numpy_trig:()=>numpy_trig,pandas_drop_columns:()=>pandas_drop_columns,pandas_dropna:()=>pandas_dropna,pandas_readcsv:()=>pandas_readcsv,pl_axes:()=>pl_axes,pl_bar:()=>pl_bar,pl_hist:()=>pl_hist,pl_label:()=>pl_label,pl_legend:()=>pl_legend,pl_pie:()=>pl_pie,pl_plot:()=>pl_plot,pl_plot_bar:()=>pl_plot_bar,pl_plot_easy:()=>pl_plot_easy,pl_plot_scatter:()=>pl_plot_scatter,pl_plot_xy:()=>pl_plot_xy,pl_savefig:()=>pl_savefig,pl_show:()=>pl_show,pl_subplot:()=>pl_subplot,pl_text:()=>pl_text,pl_ticks:()=>pl_ticks,pl_title:()=>pl_title,plot_axes:()=>plot_axes,plot_bar:()=>plot_bar,plot_hist:()=>plot_hist,plot_label:()=>plot_label,plot_legend:()=>plot_legend,plot_pie:()=>plot_pie,plot_plot:()=>plot_plot,plot_plot_bar:()=>plot_plot_bar,plot_plot_easy:()=>plot_plot_easy,plot_plot_scatter:()=>plot_plot_scatter,plot_plot_xy:()=>plot_plot_xy,plot_savefig:()=>plot_savefig,plot_show:()=>plot_show,plot_subplot:()=>plot_subplot,plot_text:()=>plot_text,plot_ticks:()=>plot_ticks,plot_title:()=>plot_title,py_sum:()=>py_sum,pylab_imshow:()=>pylab_imshow,series_create:()=>series_create,series_create_from_index:()=>series_create_from_index,series_create_from_text:()=>series_create_from_text,series_get_num:()=>series_get_num,series_index_value:()=>series_index_value});var datastructure_namespaceObject={};__webpack_require__.r(datastructure_namespaceObject),__webpack_require__.d(datastructure_namespaceObject,{ds_add_node_by_attr:()=>ds_add_node_by_attr,ds_add_node_by_name:()=>ds_add_node_by_name,ds_create_linkedlist:()=>ds_create_linkedlist,ds_create_linkedlist_container:()=>ds_create_linkedlist_container,ds_create_linkedlist_item:()=>ds_create_linkedlist_item,ds_create_node:()=>ds_create_node,ds_del_node_by_attr:()=>ds_del_node_by_attr,ds_del_node_by_name:()=>ds_del_node_by_name,ds_get_node_attr:()=>ds_get_node_attr,ds_reverse_linkedlist:()=>ds_reverse_linkedlist,ds_set_node_attr:()=>ds_set_node_attr});var factory_namespaceObject={};__webpack_require__.r(factory_namespaceObject),__webpack_require__.d(factory_namespaceObject,{factory_block:()=>factory_block,factory_block_return:()=>factory_block_return,factory_block_return_with_textarea:()=>factory_block_return_with_textarea,factory_block_with_textarea:()=>factory_block_with_textarea,factory_callMethod_noreturn:()=>factory_callMethod_noreturn,factory_callMethod_return:()=>factory_callMethod_return,factory_create_with_container:()=>factory_create_with_container,factory_create_with_item:()=>factory_create_with_item,factory_declare:()=>factory_declare,factory_from_import:()=>factory_from_import,factory_function_noreturn:()=>factory_function_noreturn,factory_function_return:()=>factory_function_return,factory_import:()=>factory_import});var hardware_namespaceObject={};__webpack_require__.r(hardware_namespaceObject),__webpack_require__.d(hardware_namespaceObject,{hardware_arduino_analog_read:()=>hardware_arduino_analog_read,hardware_arduino_analog_write:()=>hardware_arduino_analog_write,hardware_arduino_digital_read:()=>hardware_arduino_digital_read,hardware_arduino_digital_write:()=>hardware_arduino_digital_write,hardware_arduino_start:()=>hardware_arduino_start,inout_highlow:()=>inout_highlow});var inout_namespaceObject={};__webpack_require__.r(inout_namespaceObject),__webpack_require__.d(inout_namespaceObject,{inout_input:()=>inout_input,inout_print:()=>inout_print,inout_print_container:()=>inout_print_container,inout_print_end:()=>inout_print_end,inout_print_inline:()=>inout_print_inline,inout_print_item:()=>inout_print_item,inout_print_many:()=>inout_print_many,inout_type_input:()=>inout_type_input,pyinout_type_input:()=>pyinout_type_input});var iot_namespaceObject={};__webpack_require__.r(iot_namespaceObject),__webpack_require__.d(iot_namespaceObject,{IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE:()=>IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE,IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE:()=>IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE,IOT_EMQX_PING:()=>IOT_EMQX_PING,IOT_FORMATTING:()=>IOT_FORMATTING,IOT_FORMAT_STRING:()=>IOT_FORMAT_STRING,IOT_MIXIO_NTP:()=>IOT_MIXIO_NTP,IOT_MIXIO_PUBLISH:()=>IOT_MIXIO_PUBLISH,IOT_MIXIO_SUBSCRIBE:()=>IOT_MIXIO_SUBSCRIBE,IOT_MIXIO_UNSUBSCRIBE:()=>IOT_MIXIO_UNSUBSCRIBE,iot_checkonenet:()=>iot_checkonenet,iot_client_onboard:()=>iot_client_onboard,iot_create_with_item:()=>iot_create_with_item,iot_http_client:()=>iot_http_client,iot_http_data:()=>iot_http_data,iot_mixio_check:()=>iot_mixio_check,iot_mixio_connect:()=>iot_mixio_connect,iot_mixio_connect_only:()=>iot_mixio_connect_only,iot_mixio_disconnect:()=>iot_mixio_disconnect,iot_mixio_format_msg:()=>iot_mixio_format_msg,iot_mixio_format_topic:()=>iot_mixio_format_topic,iot_mixly_key:()=>iot_mixly_key,iot_mixly_key_py:()=>iot_mixly_key_py,iot_mqtt_client:()=>iot_mqtt_client,iot_mqtt_data:()=>iot_mqtt_data,iot_onenet_check:()=>iot_onenet_check,iot_onenet_connect:()=>iot_onenet_connect,iot_onenet_disconnect:()=>iot_onenet_disconnect,iot_onenet_publish:()=>iot_onenet_publish,iot_onenet_publish_dict:()=>iot_onenet_publish_dict,iot_onenetconnect:()=>iot_onenetconnect,iot_onenetdisconnect:()=>iot_onenetdisconnect,iot_publish:()=>iot_publish,iot_publish_container:()=>iot_publish_container,iot_publish_item:()=>iot_publish_item});var pins_namespaceObject={};__webpack_require__.r(pins_namespaceObject),__webpack_require__.d(pins_namespaceObject,{pins_analog_read:()=>pins_analog_read,pins_analog_write:()=>pins_analog_write,pins_digital_read:()=>pins_digital_read,pins_digital_write:()=>pins_digital_write});var serial_namespaceObject={};__webpack_require__.r(serial_namespaceObject),__webpack_require__.d(serial_namespaceObject,{serial_close:()=>serial_close,serial_open:()=>serial_open,serial_read_b:()=>serial_read_b,serial_write:()=>serial_write});var sklearn_namespaceObject={};__webpack_require__.r(sklearn_namespaceObject),__webpack_require__.d(sklearn_namespaceObject,{sklearn_DecisionTreeClassifier_Regressor:()=>sklearn_DecisionTreeClassifier_Regressor,sklearn_GaussianNB:()=>sklearn_GaussianNB,sklearn_KMeans:()=>sklearn_KMeans,sklearn_KNeighborsClassifier_Regressor:()=>sklearn_KNeighborsClassifier_Regressor,sklearn_LinearRegression:()=>sklearn_LinearRegression,sklearn_RandomForestClassifier_Regressor:()=>sklearn_RandomForestClassifier_Regressor,sklearn_Ridge:()=>sklearn_Ridge,sklearn_cluster_centers_labels_inertia:()=>sklearn_cluster_centers_labels_inertia,sklearn_coef_intercept:()=>sklearn_coef_intercept,sklearn_data_target:()=>sklearn_data_target,sklearn_fit:()=>sklearn_fit,sklearn_fit_no_target:()=>sklearn_fit_no_target,sklearn_load:()=>sklearn_load,sklearn_make_blobs:()=>sklearn_make_blobs,sklearn_make_classification:()=>sklearn_make_classification,sklearn_make_regression:()=>sklearn_make_regression,sklearn_predict:()=>sklearn_predict,sklearn_save_load_model:()=>sklearn_save_load_model,sklearn_score:()=>sklearn_score,sklearn_score_no_target:()=>sklearn_score_no_target,sklearn_train_test_split:()=>sklearn_train_test_split,sklearn_train_test_split_no_target:()=>sklearn_train_test_split_no_target});var system_namespaceObject={};__webpack_require__.r(system_namespaceObject),__webpack_require__.d(system_namespaceObject,{Panic_with_status_code:()=>system_Panic_with_status_code,base_delay:()=>base_delay,controls_millis:()=>system_controls_millis,controls_mstimer2:()=>controls_mstimer2,controls_mstimer2_start:()=>controls_mstimer2_start,controls_mstimer2_stop:()=>controls_mstimer2_stop,reset:()=>system_reset,time_localtime:()=>time_localtime,time_sleep:()=>system_time_sleep});var turtle_namespaceObject={};__webpack_require__.r(turtle_namespaceObject),__webpack_require__.d(turtle_namespaceObject,{turtle_bgcolor:()=>turtle_bgcolor,turtle_bgcolor_hex:()=>turtle_bgcolor_hex,turtle_bgcolor_hex_new:()=>turtle_bgcolor_hex_new,turtle_circle:()=>turtle_circle,turtle_circle_advanced:()=>turtle_circle_advanced,turtle_clear:()=>turtle_clear,turtle_clone:()=>turtle_clone,turtle_color:()=>turtle_color,turtle_color_hex:()=>turtle_color_hex,turtle_color_seclet:()=>turtle_color_seclet,turtle_create:()=>turtle_create,turtle_done:()=>turtle_done,turtle_exitonclick:()=>turtle_exitonclick,turtle_fill:()=>turtle_fill,turtle_fillcolor:()=>turtle_fillcolor,turtle_fillcolor_hex:()=>turtle_fillcolor_hex,turtle_fillcolor_hex_new:()=>turtle_fillcolor_hex_new,turtle_getscreen:()=>turtle_getscreen,turtle_goto:()=>turtle_goto,turtle_listen:()=>turtle_listen,turtle_move:()=>turtle_move,turtle_numinput:()=>turtle_numinput,turtle_onclick:()=>turtle_onclick,turtle_onkey:()=>turtle_onkey,turtle_ontimer:()=>turtle_ontimer,turtle_pencolor:()=>turtle_pencolor,turtle_pencolor_hex:()=>turtle_pencolor_hex,turtle_pencolor_hex_new:()=>turtle_pencolor_hex_new,turtle_penup:()=>turtle_penup,turtle_pos_shape:()=>turtle_pos_shape,turtle_rotate:()=>turtle_rotate,turtle_screen_delay:()=>turtle_screen_delay,turtle_screen_savefig:()=>turtle_screen_savefig,turtle_setheading:()=>turtle_setheading,turtle_setxy:()=>turtle_setxy,turtle_shape:()=>turtle_shape,turtle_shapesize:()=>turtle_shapesize,turtle_size:()=>turtle_size,turtle_size_speed:()=>turtle_size_speed,turtle_speed:()=>turtle_speed,turtle_textinput:()=>turtle_textinput,turtle_visible:()=>turtle_visible,turtle_write:()=>turtle_write,turtle_write_format:()=>turtle_write_format,turtle_write_format_skulpt:()=>turtle_write_format_skulpt});var generators_ai_namespaceObject={};__webpack_require__.r(generators_ai_namespaceObject),__webpack_require__.d(generators_ai_namespaceObject,{AI_ChooseAndGet:()=>ai_AI_ChooseAndGet,AI_Face_match:()=>ai_AI_Face_match,AI_ImageClassify:()=>ai_AI_ImageClassify,AI_ImageClassify_Func:()=>ai_AI_ImageClassify_Func,AI_Nlp:()=>ai_AI_Nlp,AI_Nlp_Func:()=>ai_AI_Nlp_Func,AI_Nlp_Func_sim:()=>ai_AI_Nlp_Func_sim,AI_Nlp_Sim:()=>ai_AI_Nlp_Sim,AI_Nlp_Topic:()=>ai_AI_Nlp_Topic,AI_Nlp_newsSummary:()=>ai_AI_Nlp_newsSummary,AI_Ocr:()=>ai_AI_Ocr,AI_Ocr_Func:()=>ai_AI_Ocr_Func,AI_Speech_asr:()=>ai_AI_Speech_asr,AI_Speech_synthesis:()=>ai_AI_Speech_synthesis,AI_audio:()=>ai_AI_audio,AI_client:()=>ai_AI_client,AI_photo:()=>ai_AI_photo,AI_result:()=>ai_AI_result});var generators_algorithm_namespaceObject={};__webpack_require__.r(generators_algorithm_namespaceObject),__webpack_require__.d(generators_algorithm_namespaceObject,{algorithm_add_path:()=>algorithm_algorithm_add_path,algorithm_add_school:()=>algorithm_algorithm_add_school,algorithm_all_books:()=>algorithm_algorithm_all_books,algorithm_all_books_sequence:()=>algorithm_algorithm_all_books_sequence,algorithm_book_scale:()=>algorithm_algorithm_book_scale,algorithm_check_feet:()=>algorithm_algorithm_check_feet,algorithm_chick_calculate:()=>algorithm_algorithm_chick_calculate,algorithm_color_seclet:()=>algorithm_algorithm_color_seclet,algorithm_current_school:()=>algorithm_algorithm_current_school,algorithm_del_path:()=>algorithm_algorithm_del_path,algorithm_delete_book:()=>algorithm_algorithm_delete_book,algorithm_divide_books:()=>algorithm_algorithm_divide_books,algorithm_find_path:()=>algorithm_algorithm_find_path,algorithm_first_book:()=>algorithm_algorithm_first_book,algorithm_fz_calc:()=>algorithm_algorithm_fz_calc,algorithm_fz_compare:()=>algorithm_algorithm_fz_compare,algorithm_fz_move:()=>algorithm_algorithm_fz_move,algorithm_fz_set_min:()=>algorithm_algorithm_fz_set_min,algorithm_get_current_location:()=>algorithm_algorithm_get_current_location,algorithm_get_half_books:()=>algorithm_algorithm_get_half_books,algorithm_hxdb_add:()=>algorithm_algorithm_hxdb_add,algorithm_hxdb_init_soldier:()=>algorithm_algorithm_hxdb_init_soldier,algorithm_hxdb_last_line:()=>algorithm_algorithm_hxdb_last_line,algorithm_hxdb_result:()=>algorithm_algorithm_hxdb_result,algorithm_hxdb_stand_in_line:()=>algorithm_algorithm_hxdb_stand_in_line,algorithm_init_fzsf:()=>algorithm_algorithm_init_fzsf,algorithm_init_hxdb:()=>algorithm_algorithm_init_hxdb,algorithm_init_jttl:()=>algorithm_algorithm_init_jttl,algorithm_move_recent:()=>algorithm_algorithm_move_recent,algorithm_new_path:()=>algorithm_algorithm_new_path,algorithm_next_book:()=>algorithm_algorithm_next_book,algorithm_no_left:()=>algorithm_algorithm_no_left,algorithm_no_path:()=>algorithm_algorithm_no_path,algorithm_no_ring2:()=>algorithm_algorithm_no_ring2,algorithm_not_home:()=>algorithm_algorithm_not_home,algorithm_not_school:()=>algorithm_algorithm_not_school,algorithm_number_add:()=>algorithm_algorithm_number_add,algorithm_number_zero:()=>algorithm_algorithm_number_zero,algorithm_prepare:()=>algorithm_algorithm_prepare,algorithm_prepare2:()=>algorithm_algorithm_prepare2,algorithm_prepare_2_1:()=>algorithm_algorithm_prepare_2_1,algorithm_prepare_2_2:()=>algorithm_algorithm_prepare_2_2,algorithm_print_book2:()=>algorithm_algorithm_print_book2,algorithm_print_jttl_answer:()=>algorithm_algorithm_print_jttl_answer,algorithm_print_number:()=>algorithm_algorithm_print_number,algorithm_print_path:()=>algorithm_algorithm_print_path,algorithm_print_path2:()=>algorithm_algorithm_print_path2,algorithm_rabbit_add:()=>algorithm_algorithm_rabbit_add,algorithm_rabbit_number_in_range:()=>algorithm_algorithm_rabbit_number_in_range,algorithm_rabbit_zero:()=>algorithm_algorithm_rabbit_zero,algorithm_return_path:()=>algorithm_algorithm_return_path,algorithm_set_path:()=>algorithm_algorithm_set_path,algorithm_two_left:()=>algorithm_algorithm_two_left,algorithm_void_path:()=>algorithm_algorithm_void_path,algorithm_yes_ring2:()=>algorithm_algorithm_yes_ring2,hanoi_init:()=>algorithm_hanoi_init,hanoi_init_offline:()=>algorithm_hanoi_init_offline,hanoi_move:()=>algorithm_hanoi_move});var generators_communicate_namespaceObject={};__webpack_require__.r(generators_communicate_namespaceObject),__webpack_require__.d(generators_communicate_namespaceObject,{requests_attribute:()=>communicate_requests_attribute,requests_get:()=>communicate_requests_get,requests_get_old:()=>communicate_requests_get_old,requests_method:()=>communicate_requests_method,requests_post:()=>communicate_requests_post});var generators_data_namespaceObject={};__webpack_require__.r(generators_data_namespaceObject),__webpack_require__.d(generators_data_namespaceObject,{array_create:()=>data_array_create,array_toarray:()=>data_array_toarray,dataframe_create:()=>data_dataframe_create,dataframe_create_from_index:()=>data_dataframe_create_from_index,dataframe_create_from_one_index:()=>data_dataframe_create_from_one_index,dataframe_fillna:()=>data_dataframe_fillna,dataframe_get:()=>data_dataframe_get,dataframe_info:()=>data_dataframe_info,dataframe_median:()=>data_dataframe_median,matrix_multiplication:()=>data_matrix_multiplication,matrix_transpose:()=>data_matrix_transpose,numpy_argmin_template_match:()=>data_numpy_argmin_template_match,numpy_astype:()=>data_numpy_astype,numpy_c_:()=>data_numpy_c_,numpy_dot:()=>data_numpy_dot,numpy_linalg_det:()=>data_numpy_linalg_det,numpy_linalg_inv:()=>data_numpy_linalg_inv,numpy_max:()=>data_numpy_max,numpy_mean:()=>data_numpy_mean,numpy_mean_digit:()=>data_numpy_mean_digit,numpy_min:()=>data_numpy_min,numpy_ones:()=>data_numpy_ones,numpy_random_random:()=>data_numpy_random_random,numpy_reshape:()=>data_numpy_reshape,numpy_shape:()=>data_numpy_shape,numpy_size:()=>data_numpy_size,numpy_square:()=>data_numpy_square,numpy_std:()=>data_numpy_std,numpy_sum:()=>data_numpy_sum,numpy_trig:()=>data_numpy_trig,pandas_drop_columns:()=>data_pandas_drop_columns,pandas_dropna:()=>data_pandas_dropna,pandas_readcsv:()=>data_pandas_readcsv,pl_axes:()=>data_pl_axes,pl_bar:()=>data_pl_bar,pl_hist:()=>data_pl_hist,pl_label:()=>data_pl_label,pl_legend:()=>data_pl_legend,pl_pie:()=>data_pl_pie,pl_plot:()=>data_pl_plot,pl_plot_bar:()=>data_pl_plot_bar,pl_plot_easy:()=>data_pl_plot_easy,pl_plot_scatter:()=>data_pl_plot_scatter,pl_plot_xy:()=>data_pl_plot_xy,pl_savefig:()=>data_pl_savefig,pl_show:()=>data_pl_show,pl_subplot:()=>data_pl_subplot,pl_text:()=>data_pl_text,pl_ticks:()=>data_pl_ticks,pl_title:()=>data_pl_title,plot_axes:()=>data_plot_axes,plot_bar:()=>data_plot_bar,plot_hist:()=>data_plot_hist,plot_label:()=>data_plot_label,plot_legend:()=>data_plot_legend,plot_pie:()=>data_plot_pie,plot_plot:()=>data_plot_plot,plot_plot_bar:()=>data_plot_plot_bar,plot_plot_easy:()=>data_plot_plot_easy,plot_plot_scatter:()=>data_plot_plot_scatter,plot_plot_xy:()=>data_plot_plot_xy,plot_savefig:()=>data_plot_savefig,plot_show:()=>data_plot_show,plot_subplot:()=>data_plot_subplot,plot_text:()=>data_plot_text,plot_ticks:()=>data_plot_ticks,plot_title:()=>data_plot_title,py_sum:()=>data_py_sum,pylab_imshow:()=>data_pylab_imshow,series_create:()=>data_series_create,series_create_from_index:()=>data_series_create_from_index,series_create_from_text:()=>data_series_create_from_text,series_get_num:()=>data_series_get_num,series_index_value:()=>data_series_index_value});var generators_datastructure_namespaceObject={};__webpack_require__.r(generators_datastructure_namespaceObject),__webpack_require__.d(generators_datastructure_namespaceObject,{ds_add_node_by_attr:()=>datastructure_ds_add_node_by_attr,ds_add_node_by_name:()=>datastructure_ds_add_node_by_name,ds_create_linkedlist:()=>datastructure_ds_create_linkedlist,ds_create_node:()=>datastructure_ds_create_node,ds_del_node_by_attr:()=>datastructure_ds_del_node_by_attr,ds_del_node_by_name:()=>datastructure_ds_del_node_by_name,ds_get_node_attr:()=>datastructure_ds_get_node_attr,ds_reverse_linkedlist:()=>datastructure_ds_reverse_linkedlist,ds_set_node_attr:()=>datastructure_ds_set_node_attr});var generators_factory_namespaceObject={};__webpack_require__.r(generators_factory_namespaceObject),__webpack_require__.d(generators_factory_namespaceObject,{factory_block:()=>factory_factory_block,factory_block_return:()=>factory_factory_block_return,factory_block_return_with_textarea:()=>factory_factory_block_return_with_textarea,factory_block_with_textarea:()=>factory_factory_block_with_textarea,factory_callMethod_noreturn:()=>factory_factory_callMethod_noreturn,factory_callMethod_return:()=>factory_factory_callMethod_return,factory_declare:()=>factory_factory_declare,factory_from_import:()=>factory_factory_from_import,factory_function_noreturn:()=>factory_factory_function_noreturn,factory_function_return:()=>factory_factory_function_return,factory_import:()=>factory_factory_import});var generators_hardware_namespaceObject={};__webpack_require__.r(generators_hardware_namespaceObject),__webpack_require__.d(generators_hardware_namespaceObject,{hardware_arduino_analog_read:()=>hardware_hardware_arduino_analog_read,hardware_arduino_analog_write:()=>hardware_hardware_arduino_analog_write,hardware_arduino_digital_read:()=>hardware_hardware_arduino_digital_read,hardware_arduino_digital_write:()=>hardware_hardware_arduino_digital_write,hardware_arduino_start:()=>hardware_hardware_arduino_start,inout_highlow:()=>hardware_inout_highlow});var generators_inout_namespaceObject={};__webpack_require__.r(generators_inout_namespaceObject),__webpack_require__.d(generators_inout_namespaceObject,{inout_input:()=>inout_inout_input,inout_print:()=>inout_inout_print,inout_print_end:()=>inout_inout_print_end,inout_print_inline:()=>inout_inout_print_inline,inout_print_many:()=>inout_inout_print_many,inout_type_input:()=>inout_inout_type_input,pyinout_type_input:()=>inout_pyinout_type_input});var generators_iot_namespaceObject={};__webpack_require__.r(generators_iot_namespaceObject),__webpack_require__.d(generators_iot_namespaceObject,{IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE:()=>iot_IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE,IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE:()=>iot_IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE,IOT_EMQX_PING:()=>iot_IOT_EMQX_PING,IOT_FORMATTING:()=>iot_IOT_FORMATTING,IOT_FORMAT_STRING:()=>iot_IOT_FORMAT_STRING,IOT_MIXIO_NTP:()=>iot_IOT_MIXIO_NTP,IOT_MIXIO_PUBLISH:()=>iot_IOT_MIXIO_PUBLISH,IOT_MIXIO_SUBSCRIBE:()=>iot_IOT_MIXIO_SUBSCRIBE,IOT_MIXIO_UNSUBSCRIBE:()=>iot_IOT_MIXIO_UNSUBSCRIBE,iot_mixio_check:()=>iot_iot_mixio_check,iot_mixio_connect:()=>iot_iot_mixio_connect,iot_mixio_connect_only:()=>iot_iot_mixio_connect_only,iot_mixio_disconnect:()=>iot_iot_mixio_disconnect,iot_mixio_format_msg:()=>iot_iot_mixio_format_msg,iot_mixio_format_topic:()=>iot_iot_mixio_format_topic,iot_mixly_key:()=>iot_iot_mixly_key,iot_mixly_key_py:()=>iot_iot_mixly_key_py});var generators_pins_namespaceObject={};__webpack_require__.r(generators_pins_namespaceObject),__webpack_require__.d(generators_pins_namespaceObject,{pins_analog_read:()=>pins_pins_analog_read,pins_analog_write:()=>pins_pins_analog_write,pins_digital:()=>pins_digital,pins_digital_read:()=>pins_pins_digital_read,pins_digital_write:()=>pins_pins_digital_write});var generators_serial_namespaceObject={};__webpack_require__.r(generators_serial_namespaceObject),__webpack_require__.d(generators_serial_namespaceObject,{serial_close:()=>serial_serial_close,serial_open:()=>serial_serial_open,serial_read_b:()=>serial_serial_read_b,serial_write:()=>serial_serial_write});var generators_sklearn_namespaceObject={};__webpack_require__.r(generators_sklearn_namespaceObject),__webpack_require__.d(generators_sklearn_namespaceObject,{sklearn_DecisionTreeClassifier_Regressor:()=>sklearn_sklearn_DecisionTreeClassifier_Regressor,sklearn_GaussianNB:()=>sklearn_sklearn_GaussianNB,sklearn_KMeans:()=>sklearn_sklearn_KMeans,sklearn_KNeighborsClassifier_Regressor:()=>sklearn_sklearn_KNeighborsClassifier_Regressor,sklearn_LinearRegression:()=>sklearn_sklearn_LinearRegression,sklearn_RandomForestClassifier_Regressor:()=>sklearn_sklearn_RandomForestClassifier_Regressor,sklearn_Ridge:()=>sklearn_sklearn_Ridge,sklearn_cluster_centers_labels_inertia:()=>sklearn_sklearn_cluster_centers_labels_inertia,sklearn_coef_intercept:()=>sklearn_sklearn_coef_intercept,sklearn_data_target:()=>sklearn_sklearn_data_target,sklearn_fit:()=>sklearn_sklearn_fit,sklearn_fit_no_target:()=>sklearn_sklearn_fit_no_target,sklearn_load:()=>sklearn_sklearn_load,sklearn_make_blobs:()=>sklearn_sklearn_make_blobs,sklearn_make_classification:()=>sklearn_sklearn_make_classification,sklearn_make_regression:()=>sklearn_sklearn_make_regression,sklearn_predict:()=>sklearn_sklearn_predict,sklearn_save_load_model:()=>sklearn_sklearn_save_load_model,sklearn_score:()=>sklearn_sklearn_score,sklearn_score_no_target:()=>sklearn_sklearn_score_no_target,sklearn_train_test_split:()=>sklearn_sklearn_train_test_split,sklearn_train_test_split_no_target:()=>sklearn_sklearn_train_test_split_no_target});var generators_system_namespaceObject={};__webpack_require__.r(generators_system_namespaceObject),__webpack_require__.d(generators_system_namespaceObject,{controls_end_program:()=>system_controls_end_program,controls_millis:()=>generators_system_controls_millis,time_localtime:()=>system_time_localtime});var generators_turtle_namespaceObject={};__webpack_require__.r(generators_turtle_namespaceObject),__webpack_require__.d(generators_turtle_namespaceObject,{turtle_bgcolor:()=>turtle_turtle_bgcolor,turtle_bgcolor_hex:()=>turtle_turtle_bgcolor_hex,turtle_bgcolor_hex_new:()=>turtle_turtle_bgcolor_hex_new,turtle_circle:()=>turtle_turtle_circle,turtle_circle_advanced:()=>turtle_turtle_circle_advanced,turtle_clear:()=>turtle_turtle_clear,turtle_clone:()=>turtle_turtle_clone,turtle_color:()=>turtle_turtle_color,turtle_color_hex:()=>turtle_turtle_color_hex,turtle_color_seclet:()=>turtle_turtle_color_seclet,turtle_create:()=>turtle_turtle_create,turtle_done:()=>turtle_turtle_done,turtle_exitonclick:()=>turtle_turtle_exitonclick,turtle_fill:()=>turtle_turtle_fill,turtle_fillcolor:()=>turtle_turtle_fillcolor,turtle_fillcolor_hex:()=>turtle_turtle_fillcolor_hex,turtle_fillcolor_hex_new:()=>turtle_turtle_fillcolor_hex_new,turtle_getscreen:()=>turtle_turtle_getscreen,turtle_goto:()=>turtle_turtle_goto,turtle_listen:()=>turtle_turtle_listen,turtle_move:()=>turtle_turtle_move,turtle_numinput:()=>turtle_turtle_numinput,turtle_onclick:()=>turtle_turtle_onclick,turtle_onkey:()=>turtle_turtle_onkey,turtle_ontimer:()=>turtle_turtle_ontimer,turtle_pencolor:()=>turtle_turtle_pencolor,turtle_pencolor_hex:()=>turtle_turtle_pencolor_hex,turtle_pencolor_hex_new:()=>turtle_turtle_pencolor_hex_new,turtle_penup:()=>turtle_turtle_penup,turtle_pos_shape:()=>turtle_turtle_pos_shape,turtle_rotate:()=>turtle_turtle_rotate,turtle_screen_delay:()=>turtle_turtle_screen_delay,turtle_screen_savefig:()=>turtle_turtle_screen_savefig,turtle_setheading:()=>turtle_turtle_setheading,turtle_setxy:()=>turtle_turtle_setxy,turtle_shape:()=>turtle_turtle_shape,turtle_shapesize:()=>turtle_turtle_shapesize,turtle_size:()=>turtle_turtle_size,turtle_size_speed:()=>turtle_turtle_size_speed,turtle_speed:()=>turtle_turtle_speed,turtle_textinput:()=>turtle_turtle_textinput,turtle_visible:()=>turtle_turtle_visible,turtle_write:()=>turtle_turtle_write,turtle_write_format:()=>turtle_turtle_write_format,turtle_write_format_skulpt:()=>turtle_turtle_write_format_skulpt});const external_Blockly_namespaceObject=Blockly,ZhHansMsg={PYTHON_PYODIDE_IMAGE:"图像"},ZhHansCatgories={},ZhHantMsg={PYTHON_PYODIDE_IMAGE:"影像"},ZhHantCatgories={},EnMsg={PYTHON_PYODIDE_IMAGE:"Image"},EnCatgories={};Object.assign(external_Blockly_namespaceObject.Lang.ZhHans,ZhHansMsg),Object.assign(external_Blockly_namespaceObject.Lang.ZhHant,ZhHantMsg),Object.assign(external_Blockly_namespaceObject.Lang.En,EnMsg),Object.assign(external_Blockly_namespaceObject.Lang.ZhHans.MSG,ZhHansCatgories),Object.assign(external_Blockly_namespaceObject.Lang.ZhHant.MSG,ZhHantCatgories),Object.assign(external_Blockly_namespaceObject.Lang.En.MSG,EnCatgories);const external_Mixly_namespaceObject=Mixly,Variables={NAME_TYPE:"VARIABLE",allVariables:function(e){var t;if(e.getDescendants)t=e.getDescendants();else{if(!e.getAllBlocks)throw"Not Block or Workspace: "+e;t=e.getAllBlocks()}for(var n=Object.create(null),a=0;a1&&(s+=a)):n=s}else n="i";return n}},variables=Variables; /** * @license * Visual Blocks Editor @@ -18,4 +18,4 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -class Names{constructor(e,t){if(this.variablePrefix_=t||"",this.reservedDict_=Object.create(null),e)for(var n=e.split(","),a=0;a0;_--)t.getInputTargetBlock("IF"+_)&&t.getInputTargetBlock("IF"+_).previousConnection?n[_]=t.getInputTargetBlock("IF"+_).previousConnection:n[_]=null,this.removeInput("IF"+_),t.getInputTargetBlock("DO"+_)&&t.getInputTargetBlock("DO"+_).previousConnection?a[_]=t.getInputTargetBlock("DO"+_).previousConnection:a[_]=null,this.removeInput("DO"+_);this.elseifCount_=parseInt(e.getAttribute("elseif"),10),this.elseCount_=parseInt(e.getAttribute("else"),10);for(_=1;_<=this.elseifCount_;_++)this.appendValueInput("IF"+_).setCheck([Boolean,Number]).appendField(external_Blockly_namespaceObject.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+_).appendField(external_Blockly_namespaceObject.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(external_Blockly_namespaceObject.Msg.CONTROLS_IF_MSG_ELSE);for(_=n.length-2;_>0;_--)n[_]&&n[_].reconnect(this,"IF"+_);for(_=a.length-2;_>0;_--)a[_]&&a[_].reconnect(this,"DO"+_)},decompose:function(e){var t=e.newBlock("controls_if_if");t.initSvg();for(var n=t.getInput("STACK").connection,a=1;a<=this.elseifCount_;a++){var _=e.newBlock("controls_if_elseif");_.initSvg(),n.connect(_.previousConnection),n=_.nextConnection}if(this.elseCount_){var l=e.newBlock("controls_if_else");l.initSvg(),n.connect(l.previousConnection)}return t},compose:function(e){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var t=this.elseifCount_;t>0;t--)this.removeInput("IF"+t),this.removeInput("DO"+t);this.elseifCount_=0;for(var n=e.getInputTargetBlock("STACK"),a=[null],_=[null],l=null;n;){switch(n.type){case"controls_if_elseif":this.elseifCount_++,a.push(n.valueConnection_),_.push(n.statementConnection_);break;case"controls_if_else":this.elseCount_++,l=n.statementConnection_;break;default:throw Error("Unknown block type: "+n.type)}n=n.nextConnection&&n.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(a,_,l)},saveConnections:function(e){for(var t=e.getInputTargetBlock("STACK"),n=1;t;){switch(t.type){case"controls_if_elseif":var a=this.getInput("IF"+n),_=this.getInput("DO"+n);t.valueConnection_=a&&a.connection.targetConnection,t.statementConnection_=_&&_.connection.targetConnection,n++;break;case"controls_if_else":_=this.getInput("ELSE");t.statementConnection_=_&&_.connection.targetConnection;break;default:throw"Unknown block type."}t=t.nextConnection&&t.nextConnection.targetBlock()}},rebuildShape_:function(){var e=[null],t=[null],n=null;this.getInput("ELSE")&&(n=this.getInput("ELSE").connection.targetConnection);for(var a=1;this.getInput("IF"+a);){var _=this.getInput("IF"+a),l=this.getInput("DO"+a);console.log(_.connection.targetConnection),e.push(_.connection.targetConnection),t.push(l.connection.targetConnection),a++}this.updateShape_(),this.reconnectChildBlocks_(e,t,n)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var e=1;this.getInput("IF"+e);)this.removeInput("IF"+e),this.removeInput("DO"+e),e++;for(e=1;e<=this.elseifCount_;e++)this.appendValueInput("IF"+e).setCheck([Number,Boolean]).appendField(external_Blockly_namespaceObject.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+e).appendField(external_Blockly_namespaceObject.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(external_Blockly_namespaceObject.Msg.CONTROLS_IF_MSG_ELSE)},reconnectChildBlocks_:function(e,t,n){for(var a=1;a<=this.elseifCount_;a++)e[a]&&e[a].reconnect(this,"IF"+a),t[a]&&t[a].reconnect(this,"DO"+a);n&&n.reconnect(this,"ELSE")}},controls_range={init:function(){this.setColour(LOOPS_HUE),this.appendValueInput("FROM").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.PYTHON_RANGE).appendField(external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.PYTHON_RANGE_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},controls_forEach={init:function(){this.setColour(LOOPS_HUE),this.appendValueInput("LIST").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.CONTROLS_FOREACH_INPUT),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.CONTROLS_FOREACH_INPUT_ITEM),this.appendStatementInput("DO").appendField(external_Blockly_namespaceObject.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip((function(){return external_Blockly_namespaceObject.Msg.CONTROLS_FOR_TOOLTIP.replace("“%1”","")}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},controls_whileUntil={init:function(){this.setColour(LOOPS_HUE),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_CURRENT).appendField(new external_Blockly_namespaceObject.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(external_Blockly_namespaceObject.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT+external_Blockly_namespaceObject.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("MODE");return{WHILE:external_Blockly_namespaceObject.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:external_Blockly_namespaceObject.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[t]}))}},controls_try_finally={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TRY),this.appendStatementInput("try"),this.appendValueInput("IF1").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO1").appendField(""),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new external_Blockly_namespaceObject.icons.MutatorIcon(["controls_except","controls_finally"],this)),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_CONTROL_TRY_TOOLTIP),this.elseifCount_=1,this.elseCount_=0},mutationToDom:function(){if(!this.elseifCount_&&!this.elseCount_)return null;var e=document.createElement("mutation");return this.elseifCount_&&e.setAttribute("elseif",this.elseifCount_),this.elseCount_&&e.setAttribute("else",1),e},domToMutation:function(e){var t=this,n=[],a=[];this.elseCount_&&this.removeInput("ELSE");for(var _=this.elseifCount_;_>0;_--)t.getInputTargetBlock("IF"+_)&&t.getInputTargetBlock("IF"+_).previousConnection?n[_]=t.getInputTargetBlock("IF"+_).previousConnection:n[_]=null,this.removeInput("IF"+_),t.getInputTargetBlock("DO"+_)&&t.getInputTargetBlock("DO"+_).previousConnection?a[_]=t.getInputTargetBlock("DO"+_).previousConnection:a[_]=null,this.removeInput("DO"+_);this.elseifCount_=parseInt(e.getAttribute("elseif"),10),this.elseCount_=parseInt(e.getAttribute("else"),10);for(_=1;_<=this.elseifCount_;_++)this.appendValueInput("IF"+_).setCheck([Boolean,Number]).appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+_).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_FINALLY);for(_=n.length-2;_>0;_--)n[_]&&n[_].reconnect(this,"IF"+_);for(_=a.length-2;_>0;_--)a[_]&&a[_].reconnect(this,"DO"+_)},decompose:function(e){var t=e.newBlock("controls_try");t.initSvg();for(var n=t.getInput("STACK").connection,a=1;a<=this.elseifCount_;a++){var _=e.newBlock("controls_except");_.initSvg(),n.connect(_.previousConnection),n=_.nextConnection}if(this.elseCount_){var l=e.newBlock("controls_finally");l.initSvg(),n.connect(l.previousConnection)}return t},compose:function(e){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var t=this.elseifCount_;t>0;t--)this.removeInput("IF"+t),this.removeInput("DO"+t);this.elseifCount_=0;for(var n=e.getInputTargetBlock("STACK"),a=[null],_=[null],l=null;n;){switch(n.type){case"controls_except":this.elseifCount_++,a.push(n.valueConnection_),_.push(n.statementConnection_);break;case"controls_finally":this.elseCount_++,l=n.statementConnection_;break;default:throw Error("Unknown block type: "+n.type)}n=n.nextConnection&&n.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(a,_,l)},saveConnections:function(e){for(var t=e.getInputTargetBlock("STACK"),n=1;t;){switch(t.type){case"controls_except":var a=this.getInput("IF"+n),_=this.getInput("DO"+n);t.valueConnection_=a&&a.connection.targetConnection,t.statementConnection_=_&&_.connection.targetConnection,n++;break;case"controls_finally":_=this.getInput("ELSE");t.statementConnection_=_&&_.connection.targetConnection;break;default:throw"Unknown block type."}t=t.nextConnection&&t.nextConnection.targetBlock()}},rebuildShape_:function(){var e=[null],t=[null],n=null;this.getInput("ELSE")&&(n=this.getInput("ELSE").connection.targetConnection);for(var a=1;this.getInput("IF"+a);){var _=this.getInput("IF"+a),l=this.getInput("DO"+a);console.log(_.connection.targetConnection),e.push(_.connection.targetConnection),t.push(l.connection.targetConnection),a++}this.updateShape_(),this.reconnectChildBlocks_(e,t,n)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var e=1;this.getInput("IF"+e);)this.removeInput("IF"+e),this.removeInput("DO"+e),e++;for(e=1;e<=this.elseifCount_;e++)this.appendValueInput("IF"+e).setCheck([Number,Boolean]).appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+e).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_FINALLY)},reconnectChildBlocks_:function(e,t,n){for(var a=1;a<=this.elseifCount_;a++)e[a]&&e[a].reconnect(this,"IF"+a),t[a]&&t[a].reconnect(this,"DO"+a);n&&n.reconnect(this,"ELSE")}},controls_flow_statements={init:function(){this.setColour(LOOPS_HUE);var e=new external_Blockly_namespaceObject.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(e,"FLOW").appendField(external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_FLOW_STATEMENTS_TOOLTIP);var t=this;this.setTooltip((function(){var e=t.getFieldValue("FLOW");return{BREAK:external_Blockly_namespaceObject.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:external_Blockly_namespaceObject.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[e]}))},onchange:function(){if(this.workspace){var e=!1,t=this;do{if("controls_repeat"==t.type||"controls_for"==t.type||"controls_forEach"==t.type||"controls_repeat_ext"==t.type||"controls_whileUntil"==t.type||"do_while"==t.type){e=!0;break}t=t.getSurroundParent()}while(t);e?this.setWarningText(null):this.setWarningText(external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}},controls_for={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new external_Blockly_namespaceObject.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(external_Blockly_namespaceObject.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var e=this;this.setTooltip((function(){return external_Blockly_namespaceObject.Msg.CONTROLS_FOR_TOOLTIP.replace("%1",e.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},controls_for_range={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new external_Blockly_namespaceObject.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(external_Blockly_namespaceObject.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var e=this;this.setTooltip((function(){return external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_FOR_RANGE_TOOLTIP.replace("%1",e.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}};controls_whileUntil.OPERATORS=[[external_Blockly_namespaceObject.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[external_Blockly_namespaceObject.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]],controls_flow_statements.OPERATORS=[[external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const controls_if_if={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.CONTROLS_IF_IF_TITLE_IF),this.appendStatementInput("STACK"),this.setTooltip(external_Blockly_namespaceObject.Msg.CONTROLS_IF_IF_TOOLTIP),this.contextMenu=!1}},controls_if_elseif={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.CONTROLS_IF_ELSEIF_TOOLTIP),this.contextMenu=!1}},controls_if_else={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.CONTROLS_IF_ELSE_TITLE_ELSE),this.setPreviousStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.CONTROLS_IF_ELSE_TOOLTIP),this.contextMenu=!1}},controls_try={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField("try"),this.appendStatementInput("STACK"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.contextMenu=!1}},controls_except={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_EXCEPT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.contextMenu=!1,this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_CONTROL_EXCEPT_TOOLTIP)}},controls_finally={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_FINALLY),this.setPreviousStatement(!0),this.contextMenu=!1,this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_CONTROL_FINALLY_TOOLTIP)}},controls_repeat_ext={init:function(){this.jsonInit({message0:external_Blockly_namespaceObject.Msg.CONTROLS_REPEAT_TITLE,args0:[{type:"input_value",name:"TIMES"}],previousStatement:null,nextStatement:null,colour:LOOPS_HUE,tooltip:external_Blockly_namespaceObject.Msg.CONTROLS_REPEAT_TOOLTIP,helpUrl:external_Blockly_namespaceObject.Msg.CONTROLS_REPEAT_HELPURL}),this.appendStatementInput("DO")}},controls_lambda={init:function(){this.setColour(LOOPS_HUE),this.appendValueInput("BOOL").appendField("lambda"),this.appendStatementInput("DO").appendField(external_Blockly_namespaceObject.Msg.MIXLY_STAT),this.setOutput(!0)}},controls_pass={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_PASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_PASS_TOOLTIP)}},controls_thread={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_THREAD_START),this.appendValueInput("callback").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_THREAD_TOOLTIP)}},do_while={init:function(){this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.CONTROLS_REPEAT_TITLE_REPEAT+external_Blockly_namespaceObject.Msg.MIXLY_DO),this.appendStatementInput("input_data").setCheck(null),this.appendValueInput("select_data").setCheck(null).appendField(external_Blockly_namespaceObject.Msg.CONTROLS_OPERATOR_UNTIL).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"true"],[external_Blockly_namespaceObject.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"false"]]),"type"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(LOOPS_HUE),this.setTooltip("do-while loop"),this.setHelpUrl("")}},garbage_collection={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_OP_GARBAGE_COLLECT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},get_mem_alloc={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_GET_MEM_ALLOC),this.setOutput(!0)}},get_mem_free={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_GET_MEM_FREE),this.setOutput(!0)}},MATH_HUE=230;external_Blockly_namespaceObject.FieldTextInput.math_number_validator=function(e){return String(e)},external_Blockly_namespaceObject.FieldTextInput.math_number_validator_include_blank=function(e){if(""===e)return"";return/^-?(0X|0x|0O|0o|0B|0b)?[a-fA-F0-9]{1,}(\.[a-fA-F0-9]+)?$/.test(e)?String(e):null};const math_number={init:function(){this.setColour(MATH_HUE),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldTextInput("0",external_Blockly_namespaceObject.FieldTextInput.math_number_validator),"NUM"),this.setOutput(!0,Number),this.setTooltip(external_Blockly_namespaceObject.Msg.MATH_NUMBER_TOOLTIP)}},math_constant={init:function(){this.setColour(MATH_HUE);this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new external_Blockly_namespaceObject.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("CONSTANT");return{pi:external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_TOOLTIP,e:external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_TOOLTIP}[t]}))}},math_constant_mp={init:function(){this.setColour(MATH_HUE);this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new external_Blockly_namespaceObject.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("CONSTANT");return{pi:external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_MP_TOOLTIP,e:external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_MP_TOOLTIP}[t]}))}},math_arithmetic={init:function(){this.setColour(MATH_HUE),this.setOutput(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new external_Blockly_namespaceObject.FieldDropdown([["+","ADD"],["-","MINUS"],["×","MULTIPLY"],["÷","DIVIDE"],["%","QUYU"],["//","ZHENGCHU"],["**","POWER"]]),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{ADD:external_Blockly_namespaceObject.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:external_Blockly_namespaceObject.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:external_Blockly_namespaceObject.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:external_Blockly_namespaceObject.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:external_Blockly_namespaceObject.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:external_Blockly_namespaceObject.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:external_Blockly_namespaceObject.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[t]}))}},math_selfcalcu={init:function(){this.setColour(MATH_HUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new external_Blockly_namespaceObject.FieldDropdown([["+=","ADD"],["-=","MINUS"],["×=","MULTIPLY"],["÷=","DIVIDE"],["%=","QUYU"],["//=","ZHENGCHU"],["**=","POWER"]]),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{ADD:external_Blockly_namespaceObject.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:external_Blockly_namespaceObject.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:external_Blockly_namespaceObject.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:external_Blockly_namespaceObject.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:external_Blockly_namespaceObject.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:external_Blockly_namespaceObject.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:external_Blockly_namespaceObject.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[t]}))}},math_bit={init:function(){this.setColour(MATH_HUE),this.setOutput(!0,Number),this.appendValueInput("A").setCheck(Number),this.appendValueInput("B").setCheck(Number).appendField(new external_Blockly_namespaceObject.FieldDropdown([["&","&"],["|","|"],[">>",">>"],["<<","<<"]]),"OP"),this.setInputsInline(!0),this.setTooltip("位运算")}},math_trig={init:function(){this.setColour(MATH_HUE),this.setOutput(!0,Number),this.appendValueInput("NUM").setCheck(Number).appendField(new external_Blockly_namespaceObject.FieldDropdown([["sin","SIN"],["cos","COS"],["tan","TAN"],["asin","ASIN"],["acos","ACOS"],["atan","ATAN"],["-","-"],["ln","LN"],["log10","LOG10"],["e^","EXP"],["10^","POW10"]]),"OP");var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{SIN:external_Blockly_namespaceObject.Msg.MATH_TRIG_TOOLTIP_SIN,COS:external_Blockly_namespaceObject.Msg.MATH_TRIG_TOOLTIP_COS,TAN:external_Blockly_namespaceObject.Msg.MATH_TRIG_TOOLTIP_TAN,ASIN:external_Blockly_namespaceObject.Msg.MATH_TRIG_TOOLTIP_ASIN,ACOS:external_Blockly_namespaceObject.Msg.MATH_TRIG_TOOLTIP_ACOS,ATAN:external_Blockly_namespaceObject.Msg.MATH_TRIG_TOOLTIP_ATAN,LN:external_Blockly_namespaceObject.Msg.MATH_SINGLE_TOOLTIP_LN}[t]}))}},math_dec={init:function(){var e=[[external_Blockly_namespaceObject.Msg.MATH_BIN,"bin"],[external_Blockly_namespaceObject.Msg.MATH_OCT,"oct"],[external_Blockly_namespaceObject.Msg.MATH_HEX,"hex"]];this.setColour(MATH_HUE),this.setOutput(!0,String),this.appendValueInput("NUM").setCheck(Number).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"OP");var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{bin:external_Blockly_namespaceObject.Msg.MATH_DEC_TOOLTIP_BIN,oct:external_Blockly_namespaceObject.Msg.MATH_DEC_TOOLTIP_OCT,hex:external_Blockly_namespaceObject.Msg.MATH_DEC_TOOLTIP_HEX}[e]}))}},math_to_int={init:function(){var e=[[external_Blockly_namespaceObject.Msg.LANG_MATH_TO_ROUND,"round"],[external_Blockly_namespaceObject.Msg.LANG_MATH_TO_CEIL,"ceil"],[external_Blockly_namespaceObject.Msg.LANG_MATH_TO_FLOOR,"floor"],[external_Blockly_namespaceObject.Msg.MATH_ABS,"fabs"],[external_Blockly_namespaceObject.Msg.MATH_SQRT,"sqrt"]];this.setColour(MATH_HUE),this.appendValueInput("A").setCheck(Number).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"OP"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{sqrt:external_Blockly_namespaceObject.Msg.MATH_SINGLE_TOOLTIP_ROOT,fabs:external_Blockly_namespaceObject.Msg.MATH_SINGLE_TOOLTIP_ABS,sq:external_Blockly_namespaceObject.Msg.MATH_SINGLE_TOOLTIP_SQ,round:external_Blockly_namespaceObject.Msg.MATH_SINGLE_TOOLTIP_ROUND,ceil:external_Blockly_namespaceObject.Msg.MATH_SINGLE_TOOLTIP_CEIL,floor:external_Blockly_namespaceObject.Msg.MATH_SINGLE_TOOLTIP_FLOOR}[e]}))}},math_max_min={init:function(){var e=[[external_Blockly_namespaceObject.Msg.MIXLY_MAX,"max"],[external_Blockly_namespaceObject.Msg.MIXLY_MIN,"min"]];this.setColour(MATH_HUE),this.appendValueInput("A").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"OP").appendField("("),this.appendValueInput("B").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(","),this.appendDummyInput("").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(")"),this.setInputsInline(!0),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{max:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_MATH_MAX,min:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_MATH_MIN}[e]}))}},math_number_base_conversion={init:function(){var e=[[external_Blockly_namespaceObject.Msg.MATH_TWO,"two"],[external_Blockly_namespaceObject.Msg.MATH_EIGHT,"eight"],[external_Blockly_namespaceObject.Msg.MATH_TEN,"ten"],[external_Blockly_namespaceObject.Msg.MATH_SIXTEEN,"sixteen"]];this.setColour(MATH_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MATH_BA),this.appendValueInput("NUM").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"OP").appendField(external_Blockly_namespaceObject.Msg.MATH_JinZhi).setCheck(Number),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MATH_ZHW).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"OP2").appendField(external_Blockly_namespaceObject.Msg.MATH_JinZhi),this.setFieldValue("ten","OP2"),this.setOutput(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP"),n={two:external_Blockly_namespaceObject.Msg.MATH_Before_two,eight:external_Blockly_namespaceObject.Msg.MATH_Before_eight,ten:external_Blockly_namespaceObject.Msg.MATH_Before_ten,sixteen:external_Blockly_namespaceObject.Msg.MATH_Before_sixteen},a=t.getFieldValue("OP2"),_={two:external_Blockly_namespaceObject.Msg.MATH_Behind_two,eight:external_Blockly_namespaceObject.Msg.MATH_Behind_eight,ten:external_Blockly_namespaceObject.Msg.MATH_Behind_ten,sixteen:external_Blockly_namespaceObject.Msg.MATH_Behind_sixteen};return n[e]+_[a]}))}},math_random={init:function(){var e=[[external_Blockly_namespaceObject.Msg.LANG_MATH_INT,"int"],[external_Blockly_namespaceObject.Msg.LANG_MATH_FLOAT,"float"]];this.setColour(MATH_HUE),this.setOutput(!0,Number),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_RANDOM).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"TYPE"),this.appendValueInput("FROM").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.LANG_MATH_RANDOM_INT_INPUT_TO),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("TYPE"),n={int:external_Blockly_namespaceObject.Msg.LANG_MATH_INT,float:external_Blockly_namespaceObject.Msg.LANG_MATH_FLOAT_RANDOM};return external_Blockly_namespaceObject.Msg.MATH_RANDOM_INT_TOOLTIP+n[e]}))}},math_constrain={init:function(){this.setColour(MATH_HUE),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.LANG_MATH_CONSTRAIN_INPUT_CONSTRAIN),this.appendValueInput("LOW").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.LANG_MATH_CONSTRAIN_INPUT_LOW),this.appendValueInput("HIGH").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.LANG_MATH_CONSTRAIN_INPUT_HIGH),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MATH_CONSTRAIN_TOOLTIP)}},math_map={init:function(){this.setColour(MATH_HUE),this.appendValueInput("NUM",Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MAP).setCheck(Number),this.appendValueInput("fromLow",Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MAP_FROM).setCheck(Number),this.appendValueInput("fromHigh",Number).appendField(",").setCheck(Number),this.appendValueInput("toLow",Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MAP_TO).setCheck(Number),this.appendValueInput("toHigh",Number).appendField(",").setCheck(Number),this.appendDummyInput("").appendField("]"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_MATH_MAP)}},math_indexer_number={init:function(){this.setColour(MATH_HUE),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldTextInput("0",external_Blockly_namespaceObject.FieldTextInput.math_number_validator_include_blank),"NUM"),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MATH_NUMBER_TOOLTIP)}},math_random_seed={init:function(){this.setColour(MATH_HUE),this.appendValueInput("NUM").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.LANG_MATH_RANDOM_SEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_MATH_RANDOM_SEED)}},math_round={init:function(){this.setColour(MATH_HUE),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number),this.appendValueInput("VAR").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MATH_ROUND).appendField(external_Blockly_namespaceObject.Msg.TEXT_KEEP),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.TEXT_DECIMAL),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MATH_ROUND_NEW_TOOLTIP)}},text_to_number={init:function(){var e=[[external_Blockly_namespaceObject.Msg.MIXLY_TO_INT,"int"],[external_Blockly_namespaceObject.Msg.MIXLY_TO_FLOAT,"float"],[external_Blockly_namespaceObject.Msg.MIXLY_TO_BITES,"b"]];this.setColour(MATH_HUE),this.appendValueInput("VAR").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"TOWHAT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("TOWHAT");return{int:external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TOOLTIP_TOINT,float:external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TOOLTIP_TOFLOAT,b:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TEXT_TOBYTE}[e]}))}},text_to_number_skulpt={init:function(){var e=[[external_Blockly_namespaceObject.Msg.MIXLY_TO_INT,"int"],[external_Blockly_namespaceObject.Msg.MIXLY_TO_FLOAT,"float"]];this.setColour(MATH_HUE),this.appendValueInput("VAR").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"TOWHAT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("TOWHAT");return{int:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TEXT_TOINT,float:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TEXT_TOFLOAT}[e]}))}},base_map=math_map,TEXTS_HUE=160,text_text={init:function(){this.setColour(TEXTS_HUE),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new external_Blockly_namespaceObject.FieldTextInput(""),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,String),this.setTooltip(external_Blockly_namespaceObject.Msg.TEXT_TEXT_TOOLTIP)},newQuote_:function(e){if(e==this.RTL)var t="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAqUlEQVQI1z3KvUpCcRiA8ef9E4JNHhI0aFEacm1o0BsI0Slx8wa8gLauoDnoBhq7DcfWhggONDmJJgqCPA7neJ7p934EOOKOnM8Q7PDElo/4x4lFb2DmuUjcUzS3URnGib9qaPNbuXvBO3sGPHJDRG6fGVdMSeWDP2q99FQdFrz26Gu5Tq7dFMzUvbXy8KXeAj57cOklgA+u1B5AoslLtGIHQMaCVnwDnADZIFIrXsoXrgAAAABJRU5ErkJggg==";else t="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAn0lEQVQI1z3OMa5BURSF4f/cQhAKjUQhuQmFNwGJEUi0RKN5rU7FHKhpjEH3TEMtkdBSCY1EIv8r7nFX9e29V7EBAOvu7RPjwmWGH/VuF8CyN9/OAdvqIXYLvtRaNjx9mMTDyo+NjAN1HNcl9ZQ5oQMM3dgDUqDo1l8DzvwmtZN7mnD+PkmLa+4mhrxVA9fRowBWmVBhFy5gYEjKMfz9AylsaRRgGzvZAAAAAElFTkSuQmCC";return new external_Blockly_namespaceObject.FieldImage(t,12,12,'"')}},text_textarea={init:function(){this.setColour(TEXTS_HUE),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new external_Blockly_namespaceObject.FieldMultilineInput("Hello\nMixly"),"VALUE").appendField(this.newQuote_(!1)),this.setOutput(!0,String),this.setTooltip(external_Blockly_namespaceObject.Msg.TEXT_LINES_TOOLTIP)},newQuote_:function(e){if(e==this.RTL)var t="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAqUlEQVQI1z3KvUpCcRiA8ef9E4JNHhI0aFEacm1o0BsI0Slx8wa8gLauoDnoBhq7DcfWhggONDmJJgqCPA7neJ7p934EOOKOnM8Q7PDElo/4x4lFb2DmuUjcUzS3URnGib9qaPNbuXvBO3sGPHJDRG6fGVdMSeWDP2q99FQdFrz26Gu5Tq7dFMzUvbXy8KXeAj57cOklgA+u1B5AoslLtGIHQMaCVnwDnADZIFIrXsoXrgAAAABJRU5ErkJggg==";else t="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAn0lEQVQI1z3OMa5BURSF4f/cQhAKjUQhuQmFNwGJEUi0RKN5rU7FHKhpjEH3TEMtkdBSCY1EIv8r7nFX9e29V7EBAOvu7RPjwmWGH/VuF8CyN9/OAdvqIXYLvtRaNjx9mMTDyo+NjAN1HNcl9ZQ5oQMM3dgDUqDo1l8DzvwmtZN7mnD+PkmLa+4mhrxVA9fRowBWmVBhFy5gYEjKMfz9AylsaRRgGzvZAAAAAElFTkSuQmCC";return new external_Blockly_namespaceObject.FieldImage(t,12,12,'"')}};external_Blockly_namespaceObject.FieldTextInput.char_validator=function(e){if(e.length>1&&"\\"===e.charAt(0)){var t=e.charAt(1);if("0"===t||"b"===t||"f"===t||"n"===t||"r"===t||"t"===t||"\\"===t||"'"===t)return String(e).substring(0,2);if("x"===t&&"0"===e.charAt(2)&&"B"===e.charAt(3))return String(e).substring(0,4)}return String(e).substring(0,1)};const text_char={init:function(){this.setColour(TEXTS_HUE),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new external_Blockly_namespaceObject.FieldTextInput("",external_Blockly_namespaceObject.FieldTextInput.char_validator),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,Number),this.setTooltip(external_Blockly_namespaceObject.Msg.TEXT_CHAR_TOOLTIP)},newQuote_:function(e){if(1==e)var t="../../media/quote2.png";else t="../../media/quote3.png";return new external_Blockly_namespaceObject.FieldImage(t,7,12,'"')}},text_join={init:function(){this.setColour(TEXTS_HUE),this.appendValueInput("A").setCheck([String,Number]),this.appendValueInput("B").setCheck([String,Number]).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TEXT_JOIN),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TEXT_JOIN)}},ascii_to_char={init:function(){this.setColour(TEXTS_HUE),this.appendValueInput("VAR").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TOCHAR),this.setOutput(!0,String),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TEXT_TOCHAR)}},char_to_ascii={init:function(){this.setColour(TEXTS_HUE),this.appendValueInput("VAR").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TOASCII),this.setOutput(!0,Number),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TEXT_TOASCII)}},number_to_text={init:function(){this.setColour(TEXTS_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TOSTRING),this.setOutput(!0,String),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TOOLTIP_TOTEXT)}},text_length={init:function(){this.setColour(TEXTS_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_LENGTH),this.setOutput(!0,Number),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TEXT_LENGTH)}},text_char_at2={init:function(){this.WHERE_OPTIONS=[[external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[external_Blockly_namespaceObject.Msg.TEXT_GET_INDEX_RANDOM+1+external_Blockly_namespaceObject.Msg.TEXT_CHARAT2,"RANDOM"]],this.setHelpUrl(external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(TEXTS_HUE),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_GET,"MODE"),external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_TAIL&&this.appendDummyInput("TAIL").appendField(external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_TAIL),this.setInputsInline(!0),this.setOutput(!0),this.updateAt_(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("MODE"),n=e.getFieldValue("WHERE"),a="";switch(t+" "+n){case"GET FROM_START":case"GET FROM_END":a=external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM;break;case"GET RANDOM":a=external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM;break;case"GET_REMOVE FROM_START":case"GET_REMOVE FROM_END":a=external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM;break;case"GET_REMOVE RANDOM":a=external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM}return"FROM_START"!=n&&"FROM_END"!=n||(a+=" "+external_Blockly_namespaceObject.Msg.LISTS_INDEX_FROM_START_TOOLTIP.replace("%1",external_Blockly_namespaceObject.Msg.ONE_BASED_INDEXING?"#1":"#0")),a}));var t=this;this.setTooltip((function(){var e=t.getFieldValue("WHERE"),n={FROM_START:external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_FROM_START,FROM_END:external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_FROM_END,RANDOM:external_Blockly_namespaceObject.Msg.TEXT_GET_INDEX_RANDOM};return external_Blockly_namespaceObject.Msg.PROCEDURES_DEFRETURN_RETURN+external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_TYPE_STRING+n[e]+"n"+external_Blockly_namespaceObject.Msg.TEXT_CHARAT2}))},mutationToDom:function(){var e=document.createElement("mutation");e.setAttribute("statement",!this.outputConnection);var t=this.getInput("AT").type==external_Blockly_namespaceObject.INPUT_VALUE;return e.setAttribute("at",t),e},domToMutation:function(e){var t="true"==e.getAttribute("statement");this.updateStatement_(t),e="false"!=e.getAttribute("at"),this.updateAt_(e)},updateStatement_:function(e){e!=!this.outputConnection&&(this.unplug(!0,!0),e?(this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)):(this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)))},updateAt_:function(e){this.removeInput("AT"),this.removeInput("ORDINAL",!0),e?(this.appendValueInput("AT").setCheck(Number),external_Blockly_namespaceObject.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL").appendField(external_Blockly_namespaceObject.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT");var t=new external_Blockly_namespaceObject.FieldDropdown(this.WHERE_OPTIONS,(function(t){var n="FROM_START"==t||"FROM_END"==t;if(n!=e){var a=this.sourceBlock_;return a.updateAt_(n),a.setFieldValue(t,"WHERE"),null}}));this.getInput("AT").appendField(t,"WHERE"),external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_TAIL&&this.moveInputBefore("TAIL",null)}},text_char_at={init:function(){this.setHelpUrl(external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(TEXTS_HUE),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_GET+" "+external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_FROM_START),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.TEXT_CHARAT2),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.PROCEDURES_DEFRETURN_RETURN+external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_TYPE_STRING+external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_FROM_START+"n"+external_Blockly_namespaceObject.Msg.TEXT_CHARAT2)}},text_random_char={init:function(){this.setHelpUrl(external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(TEXTS_HUE),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.TEXT_RANDOM_CHAR),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.TEXT_RANDOM_CHAR_TOOLTIP)}},text_substring2={init:function(){this.WHERE_OPTIONS_1=[[external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[external_Blockly_namespaceObject.Msg.LISTS_GET_SUBLIST_START_FIRST,"FIRST"]],this.WHERE_OPTIONS_2=[[external_Blockly_namespaceObject.Msg.LISTS_GET_SUBLIST_END_FROM_START,"FROM_START"],[external_Blockly_namespaceObject.Msg.LISTS_GET_SUBLIST_END_FROM_END,"FROM_END"],[external_Blockly_namespaceObject.Msg.LISTS_GET_SUBLIST_END_LAST,"LAST"]],this.setHelpUrl(external_Blockly_namespaceObject.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(TEXTS_HUE),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput("AT1"),this.appendDummyInput("AT2"),this.setInputsInline(!0),this.setOutput(!0,"List"),this.updateAt_(1,!0),this.updateAt_(2,!0),this.setTooltip(external_Blockly_namespaceObject.Msg._GET_TEXT_SUBLIST_TOOLTIP)},mutationToDom:function(){var e=document.createElement("mutation"),t=this.getInput("AT1").type==external_Blockly_namespaceObject.INPUT_VALUE;e.setAttribute("at1",t);var n=this.getInput("AT2").type==external_Blockly_namespaceObject.INPUT_VALUE;return e.setAttribute("at2",n),e},domToMutation:function(e){var t="true"==e.getAttribute("at1"),n="true"==e.getAttribute("at2");this.updateAt_(1,t),this.updateAt_(2,n)},updateAt_:function(e,t){this.removeInput("AT"+e),this.removeInput("ORDINAL"+e,!0),t?(this.appendValueInput("AT"+e).setCheck(Number),external_Blockly_namespaceObject.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL"+e).appendField(external_Blockly_namespaceObject.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT"+e);var n=new external_Blockly_namespaceObject.FieldDropdown(this["WHERE_OPTIONS_"+e],(function(n){var a="FROM_START"==n||"FROM_END"==n;if(a!=t){var _=this.sourceBlock_;return _.updateAt_(e,a),_.setFieldValue(n,"WHERE"+e),null}}));this.getInput("AT"+e).appendField(n,"WHERE"+e),1==e&&(this.moveInputBefore("AT1","AT2"),this.getInput("ORDINAL1")&&this.moveInputBefore("ORDINAL1","AT2"))}},text_substring={init:function(){this.setHelpUrl(external_Blockly_namespaceObject.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(TEXTS_HUE),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT1").appendField(external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_GET+" "+external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_FROM_START),this.appendValueInput("AT2").appendField(external_Blockly_namespaceObject.Msg.LISTS_GET_SUBLIST_END_FROM_START),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.TEXT_CHARAT2),this.setInputsInline(!0),this.setOutput(!0,["List",String]),this.setTooltip(external_Blockly_namespaceObject.Msg._GET_TEXT_SUBLIST_TOOLTIP)}},text_equals_starts_ends={init:function(){var e=[[external_Blockly_namespaceObject.Msg.MIXLY_EQUALS,"==="],[external_Blockly_namespaceObject.Msg.MIXLY_STARTSWITH,"startswith"],[external_Blockly_namespaceObject.Msg.MIXLY_ENDSWITH,"endswith"]];this.setColour(TEXTS_HUE),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DOWHAT").setCheck(String),this.setOutput(!0,[Boolean,Number]),this.setInputsInline(!0)}},text_compare_to={init:function(){this.setColour(TEXTS_HUE),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(external_Blockly_namespaceObject.Msg.MIXLY_COMPARETO).setCheck(String),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_COMPARETO_HELP)}},text_capital={init:function(){var e=[[external_Blockly_namespaceObject.Msg.TEXT_UPPER,"upper"],[external_Blockly_namespaceObject.Msg.TEXT_TITLE,"title"],[external_Blockly_namespaceObject.Msg.TEXT_CAPITALIZE,"capitalize"],[external_Blockly_namespaceObject.Msg.TEXT_SWAPCASE,"swapcase"],[external_Blockly_namespaceObject.Msg.TEXT_LOWER,"lower"]];this.setColour(TEXTS_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"CAPITAL").setCheck(String),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CAPITAL");return{upper:external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TEXT_UPPER_TOOLTIP,title:external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TEXT_TITLE_TOOLTIP,swapcase:external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TEXT_SWAPCASE_TOOLTIP,capitalize:external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TEXT_CAPITALIZE_TOOLTIP,lower:external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TEXT_LOWER_TOOLTIP}[e]}))}},text_center={init:function(){var e=[[external_Blockly_namespaceObject.Msg.TEXT_LJUST,"ljust"],[external_Blockly_namespaceObject.Msg.TEXT_CENTER,"center"],[external_Blockly_namespaceObject.Msg.TEXT_RJUST,"rjust"]];this.setColour(TEXTS_HUE),this.appendValueInput("VAR").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"CENTER").setCheck(String),this.appendValueInput("WID").appendField(external_Blockly_namespaceObject.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("Symbol").appendField(external_Blockly_namespaceObject.Msg.MIXLY_RECT_Fill).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TEXT_CENTER_TOOLTIP)}},text_find={init:function(){this.setColour(TEXTS_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).setCheck(String),this.appendValueInput("STR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MID+external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER).setCheck(String),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_LIST_INDEX),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TEXT_FIND_TOOLTIP)}},text_join_seq={init:function(){this.setColour(TEXTS_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_USE_STR).setCheck(String),this.appendValueInput("LIST").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_SEQ).setCheck("List","Tuple","Set","Dict"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_GET_STR),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_TOOLTIP)}},text_replace={init:function(){this.setColour(TEXTS_HUE),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("STR1").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_REPLACE).setCheck(String),this.appendValueInput("STR2").appendField(external_Blockly_namespaceObject.Msg.LISTS_SET_INDEX_INPUT_TO).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TEXT_REPLACE_TOOLTIP)}},text_split={init:function(){this.setColour(TEXTS_HUE),this.appendValueInput("VAR"),this.appendValueInput("VAL").appendField(external_Blockly_namespaceObject.Msg.LIST_SPLIT_AS),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.LIST_SPLIT),this.setOutput(!0,"List"),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TEXT_SPLIT_TOOLTIP),this.setInputsInline(!0)}},text_strip={init:function(){var e=[[external_Blockly_namespaceObject.Msg.TEXT_TRIM_BOTH,"strip"],[external_Blockly_namespaceObject.Msg.TEXT_TRIM_LEFT,"lstrip"],[external_Blockly_namespaceObject.Msg.TEXT_TRIM_RIGHT,"rstrip"]];this.setColour(TEXTS_HUE),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.TEXT_STRIM),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"TOWHAT"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.TEXT_BLANK),this.setOutput(!0,String),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("TOWHAT");return{strip:external_Blockly_namespaceObject.Msg.TEXT_TRIM_BOTH_TOOLTIP,lstrip:external_Blockly_namespaceObject.Msg.TEXT_TRIM_LEFT_TOOLTIP,rstrip:external_Blockly_namespaceObject.Msg.TEXT_TRIM_RIGHT_TOOLTIP}[e]}))}},text_format={init:function(){this.setColour(TEXTS_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_FORMAT),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldTextInput("str"),"VAR"),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new external_Blockly_namespaceObject.icons.MutatorIcon(["text_create_with_item"],this)),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TEXT_FORMAT_TOOLTIP)},mutationToDom:function(){var e=document.createElement("mutation");return e.setAttribute("items",this.itemCount_),e},domToMutation:function(e){this.itemCount_=parseInt(e.getAttribute("items"),10),this.updateShape_()},decompose:function(e){var t=e.newBlock("text_create_with_container");t.initSvg();for(var n=t.getInput("STACK").connection,a=0;at?e[t]:0==t?'"key"':'"key'+(t+1)+'"'),"KEY"+t).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},dicts_create_with_container={init:function(){this.setColour(DICTS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},dicts_create_with_item={init:function(){this.setColour(DICTS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},dicts_keys={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DICT_KEYS),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_KEYS_TOOLTIP),this.setOutput(!0,"List")}},dicts_get={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(external_Blockly_namespaceObject.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DICTS_ADD_VALUE),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_GET_TOOLTIP)}},dicts_get_default={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(external_Blockly_namespaceObject.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DICTS_ADD_VALUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.DICTS_DEFAULT_VALUE),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_GET_DEFAULT_TOOLTIP)}},dicts_add_or_change={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(external_Blockly_namespaceObject.Msg.DICTS_ADD),this.appendDummyInput(),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.DICTS_ADD_VALUE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_ADD_OR_CHANGE_TOOLTIP)}},dicts_delete={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(external_Blockly_namespaceObject.Msg.DICTS_DELETE_IN),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DICTS_DELETE_VALUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_DELETE_TOOLTIP)}},dicts_update={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT2").setCheck("Dict").appendField(external_Blockly_namespaceObject.Msg.MAKE_DICT),this.appendValueInput("DICT").setCheck("Dict").appendField(external_Blockly_namespaceObject.Msg.DICT_UPDATE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MID),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_UPDATE_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},dicts_clear={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DICT_CLEAR),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_CLEAR_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},dicts_items={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DICT_ITEMS),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_ITEMS_TOOLTIP),this.setOutput(!0,"List")}},dicts_values={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DICT_VALUES),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_VALUES_TOOLTIP),this.setOutput(!0,"List")}},dicts_length={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_LENGTH),this.setTooltip(external_Blockly_namespaceObject.Msg.DICT_LENGTH_TOOLTIP),this.setOutput(!0,Number)}},dicts_deldict={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DICT_DELDICT),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_DEL_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},dicts_add_change_del={init:function(){this.MODE=[[external_Blockly_namespaceObject.Msg.DICTS_ADD_OR_CHANGE,"INSERT"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_DELETE_VAR,"DELETE"]],this.setHelpUrl(external_Blockly_namespaceObject.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("AT2"),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).appendField(external_Blockly_namespaceObject.Msg.DICTS_ADD_VALUE),this.updateAt_(!0),this.setInputsInline(!0),this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t="";switch(e.getFieldValue("WHERE")){case"INSERT":t=external_Blockly_namespaceObject.Msg.DICTS_ADD_TOOLTIP;break;case"DELETE":t=external_Blockly_namespaceObject.Msg.DICTS_DELETE_TOOLTIP}return t}))},mutationToDom:function(){var e=document.createElement("mutation"),t=this.getInput("AT2").type==external_Blockly_namespaceObject.INPUT_VALUE;return e.setAttribute("at2",t),e},domToMutation:function(e){var t="true"==e.getAttribute("at2");this.updateAt_(t)},updateAt_:function(e){this.removeInput("AT2"),this.removeInput("ORDINAL",!0),e?this.appendValueInput("AT2").setCheck(Number):this.appendDummyInput("AT2");var t=new external_Blockly_namespaceObject.FieldDropdown(this.MODE,(function(t){var n="INSERT"==t;if(n!=e){var a=this.sourceBlock_;return a.updateAt_(n),a.setFieldValue(t,"WHERE"),null}}));this.getInput("AT2").appendField(t,"WHERE")}},dicts_pop={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_DICT_POP),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DICTS_ADD_VALUE),this.setTooltip(external_Blockly_namespaceObject.Msg.DICT_POP_TOOLTIP),this.setInputsInline(!0),this.setOutput(!0)}},dicts_setdefault={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(external_Blockly_namespaceObject.Msg.DICTS_SET_DEFAULT),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DICTS_DEFAULT_VALUE),this.appendValueInput("VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_SETDEFAULT_TOOLTIP)}},dicts_create_with_noreturn={init:function(){this.setColour(DICTS_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldLabel(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_TYPE_DICT),"TIP").appendField(" "),this.itemCount_=3,this.updateShape_(),this.setOutput(!0,"Dict"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setMutator(new external_Blockly_namespaceObject.icons.MutatorIcon(["dicts_create_with_item"],this)),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_CREATE_WITH_TOOLTIP)},mutationToDom:function(){var e=document.createElement("mutation");return e.setAttribute("items",this.itemCount_),e},domToMutation:function(e){this.itemCount_=parseInt(e.getAttribute("items"),10),this.updateShape_()},decompose:function(e){var t=e.newBlock("dicts_create_with_container");t.initSvg();for(var n=t.getInput("STACK").connection,a=0;at?e[t]:0==t?'"key"':'"key'+(t+1)+'"'),"KEY"+t).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},dicts_todict={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TODICT),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TOOLTIP_TODICT)}},dicts_to_json={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TO_JSON),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0,Number)}},json_to_dicts={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_CONVERT_TO_JSON),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0,Number)}},LOGIC_HUE=210,logic_compare={init:function(){var e=external_Blockly_namespaceObject.RTL?[["=","EQ"],["≠","NEQ"],[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["=","EQ"],["≠","NEQ"],["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(LOGIC_HUE),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{EQ:external_Blockly_namespaceObject.Msg.LOGIC_COMPARE_TOOLTIP_EQ,NEQ:external_Blockly_namespaceObject.Msg.LOGIC_COMPARE_TOOLTIP_NEQ,LT:external_Blockly_namespaceObject.Msg.LOGIC_COMPARE_TOOLTIP_LT,LTE:external_Blockly_namespaceObject.Msg.LOGIC_COMPARE_TOOLTIP_LTE,GT:external_Blockly_namespaceObject.Msg.LOGIC_COMPARE_TOOLTIP_GT,GTE:external_Blockly_namespaceObject.Msg.LOGIC_COMPARE_TOOLTIP_GTE}[e]})),this.prevBlocks_=[null,null]}},logic_compare_continous={init:function(){var e=external_Blockly_namespaceObject.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]],t=external_Blockly_namespaceObject.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(LOGIC_HUE),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"OP1"),this.appendValueInput("C").appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"OP2"),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_LOGIC_COMPARE_CONTINOUS_TOOLTIP)}},logic_operation={init:function(){var e=[[external_Blockly_namespaceObject.Msg.LOGIC_OPERATION_AND,"AND"],[external_Blockly_namespaceObject.Msg.LOGIC_OPERATION_OR,"OR"],[external_Blockly_namespaceObject.Msg.LOGIC_OPERATION_NOR,"NOR"],[external_Blockly_namespaceObject.Msg.LOGIC_OPERATION_XOR,"XOR"]];this.setColour(LOGIC_HUE),this.setOutput(!0,Boolean),this.appendValueInput("A").setCheck([Boolean,Number]),this.appendValueInput("B").setCheck([Boolean,Number]).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{AND:external_Blockly_namespaceObject.Msg.LOGIC_OPERATION_TOOLTIP_AND,OR:external_Blockly_namespaceObject.Msg.LOGIC_OPERATION_TOOLTIP_OR,NOR:external_Blockly_namespaceObject.Msg.LOGIC_OPERATION_TOOLTIP_NOR,XOR:external_Blockly_namespaceObject.Msg.LOGIC_OPERATION_TOOLTIP_XOR}[e]}))}},logic_negate={init:function(){this.setColour(LOGIC_HUE),this.setOutput(!0,Boolean),this.appendValueInput("BOOL").setCheck([Number,Boolean]).appendField(external_Blockly_namespaceObject.Msg.LOGIC_NEGATE_TITLE),this.setTooltip(external_Blockly_namespaceObject.Msg.LOGIC_NEGATE_TOOLTIP)}},logic_boolean={init:function(){var e=[[external_Blockly_namespaceObject.Msg.LOGIC_BOOLEAN_TRUE,"TRUE"],[external_Blockly_namespaceObject.Msg.LOGIC_BOOLEAN_FALSE,"FALSE"]];this.setColour(LOGIC_HUE),this.setOutput(!0,Boolean),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"BOOL"),this.setTooltip(external_Blockly_namespaceObject.Msg.LOGIC_BOOLEAN_TOOLTIP)}},logic_null={init:function(){this.setColour(LOGIC_HUE),this.setOutput(!0),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.LOGIC_NULL),this.setTooltip(external_Blockly_namespaceObject.Msg.LOGIC_NULL_TOOLTIP)}},logic_true_or_false={init:function(){this.setColour(LOGIC_HUE),this.appendValueInput("A"),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.LOGIC_TERNARY_IF_TRUE),this.appendValueInput("C").appendField(external_Blockly_namespaceObject.Msg.LOGIC_TERNARY_IF_FALSE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_LOGIT_TRUEORFALSE)}},logic_is_in={init:function(){var e=[[external_Blockly_namespaceObject.Msg.TEXT_APPEND_TO,"in"],[external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_LOGIC_IS_NOT_IN,"not in"]];this.setColour(LOGIC_HUE),this.appendValueInput("A"),this.appendValueInput("B").setCheck([String,"List"]).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"BOOL"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MICROBIT_LOGIC_IS_IN),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.IN)}},logic_is={init:function(){var e=[[external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_LOGIC_IS,"is"],[external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_LOGIC_IS_NOT,"is not"]];this.setColour(LOGIC_HUE),this.appendValueInput("A"),this.appendValueInput("B").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"BOOL"),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_LOGIC_IS_TOOLTIP)}},logic_tobool={init:function(){this.setColour(LOGIC_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TOBOOL),this.setOutput(!0,Boolean),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TOOLTIP_TOBOOL)}},STORAGE_HUE=0,storage_open_file_with_os={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("fn").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_STORAGE_OPEN_FILE_WITH_OS+"(For Windows)"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},storage_fileopen={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILENAME").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_AS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("MODE"),n=external_Blockly_namespaceObject.Msg.MIXLY_USE,a=external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,_=external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,l=external_Blockly_namespaceObject.Msg.MIXLY_BELONG;return n+{r:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[t]+l+a+_}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},storage_fileopen_new={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILENAME").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("MODE"),n=external_Blockly_namespaceObject.Msg.MIXLY_USE,a=external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,_=external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,l=external_Blockly_namespaceObject.Msg.MIXLY_BELONG,s=external_Blockly_namespaceObject.Msg.PY_STORAGE_FILE_OBJECT;return n+{r:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[t]+l+a+_+s}))}},storage_fileopen_new_encoding={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILENAME").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE);this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXPY_TEXT_ENCODE).appendField(new external_Blockly_namespaceObject.FieldDropdown([["ANSI","ANSI"],["gbk","gbk"],["utf-8","utf-8"]]),"CODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("MODE"),n=external_Blockly_namespaceObject.Msg.MIXLY_USE,a=external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,_=external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,l=external_Blockly_namespaceObject.Msg.MIXLY_BELONG,s=external_Blockly_namespaceObject.Msg.PY_STORAGE_FILE_OBJECT;return n+{r:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[t]+l+a+_+s}))}},storage_file_write={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("data").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE+external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_TYPE_STRING+external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE)}},storage_get_contents_without_para={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILE").setCheck("Variable").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"read"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE,"readline"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES,"readlines"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String)}},storage_get_contents={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILE").setCheck("Variable").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,"read"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,"readline"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE,"readlines"]]),"MODE"),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("MODE"),n=external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE,a=external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER;return n+{read:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,readline:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,readlines:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE}[t]+"x"+a}))}},storage_get_a_line={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.setNextStatement(!0),this.appendValueInput("SIZE").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(external_Blockly_namespaceObject.Msg.MICROBIT_PYTHON_TYPE)}},storage_can_write_ornot={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.HTML_FILE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT1)}},storage_get_filename={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FILENAME),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILENAME)}},storage_close_file={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE)}},storage_list_all_files={init:function(){this.setColour(STORAGE_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES)}};external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE;const storage_delete_file={init:function(){this.setColour(STORAGE_HUE),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE,"remove"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_DIRS,"removedirs"]]),"MODE"),this.appendValueInput("FILE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE)}},storage_get_file_size={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILE").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE+external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE)}},storage_file_tell={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILE").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_RETURN_FILE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_PRESENT_LOCATION),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_TELL)}},storage_file_seek={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILE").setCheck("Variable").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,"start"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,"current"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END,"end"]]),"MODE"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("MODE"),n=external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION+external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION,a=external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER,_=external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET;return n+" "+{start:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,current:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,end:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END}[t]+_+"x"+a}))}},storage_get_current_dir={init:function(){this.setColour(STORAGE_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR)}},storage_make_dir={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("PATH").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_ESP32_SET),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,"mkdir"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_MAKEDIRS,"makedirs"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1);var e=this;this.setTooltip((function(){var t=e.getFieldValue("MODE");return external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH+"x"+external_Blockly_namespaceObject.Msg.MIXLY_ESP32_SET+{mkdir:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,makedirs:external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[t]}))}},storage_rename={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILE").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME),this.appendValueInput("NEWFILE").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_AS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME)}},storage_change_dir={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILE").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR)}},storage_is_file={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILE").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.HTML_FILE,"isfile"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_DIR,"isdir"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean);let e=this;this.setTooltip((function(){var t=e.getFieldValue("MODE");return external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH+"x"+external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT+{isfile:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,isdir:external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[t]}))}},sdcard_use_spi_init={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("SPISUB").appendField(external_Blockly_namespaceObject.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_SETUP+external_Blockly_namespaceObject.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(external_Blockly_namespaceObject.Msg.MIXLY_SD_CARD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},sdcard_mount={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_SD_CARD),this.appendValueInput("DIR").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_SDCARD_MOUNT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip()}},Procedures={};Procedures.NAME_TYPE=external_Blockly_namespaceObject.PROCEDURE_CATEGORY_NAME,Procedures.allProcedures=function(e){for(var t=e.getAllBlocks(!1),n=[],a=[],_=0;_"),this.appendValueInput("style").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_ATTR).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendStatementInput("DO").appendField(""),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},html_style={init:function(){this.setColour(HTML_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.HTML_STYLE),this.appendStatementInput("STYLE"),this.setOutput(!0)}},html_form={init:function(){this.setColour(HTML_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.HTML_FORM_CONTENT).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.HTML_TEXT,"text"],[external_Blockly_namespaceObject.Msg.HTML_EMAIL,"email"],[external_Blockly_namespaceObject.Msg.HTML_NUMBER,"number"],[external_Blockly_namespaceObject.Msg.HTML_PASSWORD,"password"],[external_Blockly_namespaceObject.Msg.HTML_CHECKBOX,"checkbox"],[external_Blockly_namespaceObject.Msg.HTML_RADIOBUTTON,"radiobutton"],[external_Blockly_namespaceObject.Msg.HTML_BUTTON,"button"],[external_Blockly_namespaceObject.Msg.HTML_COLOUR,"colour"],[external_Blockly_namespaceObject.Msg.HTML_DATE,"date"],[external_Blockly_namespaceObject.Msg.HTML_LOCALTIME,"local time"],[external_Blockly_namespaceObject.Msg.HTML_FILE,"file"],[external_Blockly_namespaceObject.Msg.HTML_HIDDEN,"hidden"],[external_Blockly_namespaceObject.Msg.HTML_IMAGE,"image"],[external_Blockly_namespaceObject.Msg.HTML_MONTH,"month"],[external_Blockly_namespaceObject.Msg.HTML_RANGE,"range"],[external_Blockly_namespaceObject.Msg.HTML_RESET,"reset"],[external_Blockly_namespaceObject.Msg.HTML_SEARCH,"search"],[external_Blockly_namespaceObject.Msg.HTML_SUBMIT,"submit"],[external_Blockly_namespaceObject.Msg.HTML_TELEPHONENUMBER,"telephone number"],[external_Blockly_namespaceObject.Msg.HTML_TIME,"time"],[external_Blockly_namespaceObject.Msg.HTML_URL,"url"],[external_Blockly_namespaceObject.Msg.HTML_WEEK,"week"]]),"LEVEL"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.HTML_NAME).appendField(new external_Blockly_namespaceObject.FieldTextInput("car"),"NAME"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.HTML_VALUE).appendField(new external_Blockly_namespaceObject.FieldTextInput("go"),"VALUE"),this.appendValueInput("style").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_ATTR).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},html_style_content={init:function(){this.setColour(HTML_HUE),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldTextInput("property"),"KEY").appendField(":").appendField(new external_Blockly_namespaceObject.FieldTextInput("value"),"VALUE"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},html_style_color={init:function(){this.setColour(HTML_HUE),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldTextInput("property"),"KEY").appendField(":").appendField(new external_Blockly_namespaceObject.FieldColour("#ff0000"),"RGB_LED_COLOR"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},html_text={init:function(){this.setColour(HTML_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.HTML_TEXT).appendField(new external_Blockly_namespaceObject.FieldTextInput("text"),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},UTILITY_HUE=160,raw_table={init:function(){this.setColour(UTILITY_HUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Tabular Abstraction:"),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldTable(""),"TEXT")}},raw_block={init:function(){this.setColour(UTILITY_HUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Code Block:"),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldMultilineInput(""),"TEXT")}},raw_expression={init:function(){this.setColour(UTILITY_HUE),this.appendDummyInput().appendField("Code Expression:"),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldMultilineInput(""),"TEXT"),this.setOutput(!0)}},raw_empty={init:function(){this.setColour(UTILITY_HUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("VALUE").appendField(""),this.setInputsInline(!1)}},text_comment={init:function(){this.setColour(UTILITY_HUE),this.appendDummyInput().appendTitle("Comment:").appendTitle(new external_Blockly_namespaceObject.FieldTextInput(""),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("This comment will be ignored by Python")}},type_check={init:function(){this.setColour(UTILITY_HUE),this.appendValueInput("VALUE").appendField(external_Blockly_namespaceObject.Msg.TYPE_CHECK),this.setInputsInline(!1),this.setOutput(!0,"Type")}},text_print_multiple={init:function(){this.setColour(UTILITY_HUE),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new external_Blockly_namespaceObject.icons.MutatorIcon(["text_print_multiple_item"],this)),this.setTooltip(external_Blockly_namespaceObject.Msg.TEXT_PRINT_TOOLTIP)},mutationToDom:function(){var e=document.createElement("mutation");return e.setAttribute("items",this.itemCount_),e},domToMutation:function(e){this.itemCount_=parseInt(e.getAttribute("items"),10),this.updateShape_()},decompose:function(e){var t=external_Blockly_namespaceObject.Block.obtain(e,"text_print_multiple_container");t.initSvg();for(var n=t.getInput("STACK").connection,a=0;a= stop:"," yield start"," start -= abs(step)"])};if(e=function(e,t,n){return"("+e+" <= "+t+") and "+o()+"("+e+", "+t+", "+n+") or "+r()+"("+e+", "+t+", "+n+")"},external_Blockly_namespaceObject.isNumber(a)&&external_Blockly_namespaceObject.isNumber(_)&&external_Blockly_namespaceObject.isNumber(l))a=parseFloat(a),_=parseFloat(_),l=Math.abs(parseFloat(l)),0==a%1&&0==_%1&&0==l%1?(a<=_?(_++,e=0==a&&1==l?_:a+", "+_,1!=l&&(e+=", "+l)):e=a+", "+--_+", -"+l,e="range("+e+")"):(e=a<_?o():r(),e+="("+a+", "+_+", "+l+")");else{var p=function(e,a){if(external_Blockly_namespaceObject.isNumber(e))e=parseFloat(e);else{var _=t.variableDB_.getDistinctName(n+a,external_Blockly_namespaceObject.Variables.NAME_TYPE);i+=_+" = "+e+"\n",e=_}return e};a=p(a,"_start"),_=p(_,"_end");p(l,"_inc"),e="number"==typeof a&&"number"==typeof _?a<_?o(0,_):r(0,_):e(a,_,l)}return i+="for "+n+" in "+e+":\n"+s},control_controls_for_range=function(e,t){var n=t.variableDB_.getName(e.getFieldValue("VAR"),external_Blockly_namespaceObject.Variables.NAME_TYPE),a=t.valueToCode(e,"FROM",t.ORDER_NONE)||"0",_=t.valueToCode(e,"TO",t.ORDER_NONE)||"0",l=t.valueToCode(e,"STEP",t.ORDER_NONE)||"1",s=t.statementToCode(e,"DO"),i=t.addLoopTrap(s,e.id)||t.PASS;return t.setups_.mixly_range="def mixly_range(start, stop, step):\n for i in range(start, stop + 1, step):\n yield i\n\n","for "+n+" in mixly_range("+a+", "+_+", "+l+"):\n"+i},control_controls_whileUntil=function(e,t){var n="UNTIL"==e.getFieldValue("MODE"),a=t.valueToCode(e,"BOOL",t.ORDER_NONE)||"False",_=t.statementToCode(e,"DO");return n&&(a="not "+a),"while "+a+":\n"+(_=t.addLoopTrap(_,e.id)||t.PASS)},control_controls_flow_statements=function(e){switch(e.getFieldValue("FLOW")){case"BREAK":return"break\n";case"CONTINUE":return"continue\n"}throw"Unknown flow statement."},control_controls_delay=function(e,t){return"sleep("+(t.valueToCode(this,"DELAY_TIME",t.ORDER_ATOMIC)||"1000")+")\n"},Panic_with_status_code=function(e,t){return"panic("+(t.valueToCode(this,"STATUS_CODE",t.ORDER_ATOMIC)||"1000")+")\n"},controls_millis=function(e,t){t.definitions_.import_time="import time";return["time.time()",t.ORDER_ATOMIC]},control_reset=function(e,t){return t.definitions_.import_microbit="from microbit import *","reset()\n"},controls_interrupts=function(){return"interrupts();\n"},controls_nointerrupts=function(){return"noInterrupts();\n"},control_controls_forEach=function(e,t){var n=t.valueToCode(this,"VAR",t.ORDER_ATOMIC)||"''",a=t.valueToCode(e,"LIST",t.ORDER_RELATIONAL)||"[]",_=t.statementToCode(e,"DO");return"for "+n+" in "+a+":\n"+(_=t.addLoopTrap(_,e.id)||t.PASS)},control_controls_range=function(e,t){return["range("+(t.valueToCode(this,"FROM",t.ORDER_NONE)||"0")+", "+(t.valueToCode(this,"TO",t.ORDER_NONE)||"0")+", "+(t.valueToCode(this,"STEP",t.ORDER_NONE)||"1")+")",t.ORDER_ATOMIC]},control_controls_lambda=function(e,t){var n="lambda "+(t.valueToCode(e,"BOOL",t.ORDER_NONE)||"None")+": "+(t.statementToCode(e,"DO")||"pass");return[n=n.replace("\n","").replace(" ",""),t.ORDER_ATOMIC]},time_sleep=function(e,t){return t.definitions_.import_time="import time","time.sleep("+(t.valueToCode(this,"DELAY_TIME",t.ORDER_ATOMIC)||"1000")+")\n"},control_controls_pass=function(){return"pass\n"},control_controls_thread=function(e,t){t.definitions_.import__thread="import _thread";var n=t.valueToCode(this,"VAR",t.ORDER_NONE)||"None";return"_thread.start_new_thread("+t.variableDB_.getName(t.valueToCode(this,"callback",t.ORDER_NONE)||"None",external_Blockly_namespaceObject.Procedures.NAME_TYPE)+", "+n+")\n"},control_do_while=function(e,t){var n=t.valueToCode(this,"select_data",t.ORDER_NONE)||"False",a=t.statementToCode(this,"input_data");return a="true"==this.getFieldValue("type")?a+" if ("+n+"):\n break\n":a+" if not ("+n+"):\n break\n","while True:\n"+(a=t.addLoopTrap(a,this.id)||t.PASS)},control_controls_repeat_ext=function(e,t){var n=t.valueToCode(this,"TIMES",t.ORDER_ATOMIC),a=t.statementToCode(e,"DO");return"for _my_variable in range("+n+"):\n"+(a=t.addLoopTrap(a,e.id)||t.PASS)},control_garbage_collection=function(e,t){t.definitions_.import_gc="import gc";return"gc.collect()\n"},control_get_mem_alloc=function(e,t){t.definitions_.import_gc="import gc";return["gc.mem_alloc()\n",t.ORDER_ATOMIC]},control_get_mem_free=function(e,t){t.definitions_.import_gc="import gc";return["gc.mem_free()\n",t.ORDER_ATOMIC]},controls_repeat=control_controls_repeat_ext,math_math_number=function(e,t){var n=this.getFieldValue("NUM");return[n,n<0?t.ORDER_UNARY_PREFIX:t.ORDER_ATOMIC]},math_math_constant=function(e,t){return t.definitions_.import_math="import math",["math."+this.getFieldValue("CONSTANT"),t.ORDER_ATOMIC]},math_math_constant_mp=function(e,t){return t.definitions_.import_math="import math",["math."+this.getFieldValue("CONSTANT"),t.ORDER_ATOMIC]},math_math_bit=function(e,t){var n=this.getFieldValue("OP"),a=t.ORDER_ATOMIC;return["("+(t.valueToCode(this,"A",a)||"0")+n+(t.valueToCode(this,"B",a)||"0")+")",a]},math_math_arithmetic=function(e,t){var n=(a={ADD:[" + ",t.ORDER_ADDITIVE],MINUS:[" - ",t.ORDER_ADDITIVE],MULTIPLY:[" * ",t.ORDER_MULTIPLICATIVE],DIVIDE:[" / ",t.ORDER_MULTIPLICATIVE],QUYU:[" % ",t.ORDER_MULTIPLICATIVE],ZHENGCHU:[" // ",t.ORDER_MULTIPLICATIVE],POWER:[" ** ",t.ORDER_EXPONENTIATION]}[e.getFieldValue("OP")])[0],a=a[1];return[(t.valueToCode(e,"A",a)||"0")+n+(e=t.valueToCode(e,"B",a)||"0"),a]},math_math_selfcalcu=function(e,t){var n=t.valueToCode(this,"A",t.ORDER_RELATIONAL)||"0",a=t.valueToCode(this,"B",t.ORDER_RELATIONAL)||"0";switch(this.getFieldValue("OP")){case"ADD":var _="+=";break;case"MINUS":_="-=";break;case"MULTIPLY":_="*=";break;case"DIVIDE":_="/=";break;case"QUYU":_="%=";break;case"ZHENGCHU":_="//=";break;case"POWER":_="**="}return n+" "+_+" "+a+"\n"},math_single=function(e,t){var n,a=e.getFieldValue("OP");if("NEG"==a)return["-"+(n=t.valueToCode(e,"NUM",t.ORDER_UNARY_SIGN)||"0"),t.ORDER_UNARY_SIGN];switch(t.definitions_.import_math="import math",e="SIN"==a||"COS"==a||"TAN"==a?t.valueToCode(e,"NUM",t.ORDER_MULTIPLICATIVE)||"0":t.valueToCode(e,"NUM",t.ORDER_NONE)||"0",a){case"ABS":n="math.fabs("+e+")";break;case"ROOT":n="math.sqrt("+e+")";break;case"LN":n="math.log("+e+")";break;case"LOG10":n="math.log10("+e+")";break;case"EXP":n="math.exp("+e+")";break;case"POW10":n="math.pow(10,"+e+")";break;case"ROUND":n="round("+e+")";break;case"ROUNDUP":n="math.ceil("+e+")";break;case"ROUNDDOWN":n="math.floor("+e+")";break;case"SIN":n="math.sin("+e+")";break;case"COS":n="math.cos("+e+")";break;case"TAN":n="math.tan("+e+")";break;case"++":n="++("+e+")";break;case"--":n="--("+e+")";break;case"-":n="-("+e+")"}if(n)return[n,t.ORDER_EXPONENTIATION];switch(a){case"ASIN":n="math.degrees(math.asin("+e+"))";break;case"ACOS":n="math.degrees(math.acos("+e+"))";break;case"ATAN":n="math.degrees(math.atan("+e+"))"}return[n,t.ORDER_MULTIPLICATIVE]},math_math_trig=math_single,math_math_dec=function(e,t){var n=t.valueToCode(this,"NUM",t.ORDER_NONE)||"0";return[this.getFieldValue("OP")+"("+n+")",t.ORDER_ATOMIC]},math_math_to_int=function(e,t){var n=t.valueToCode(this,"A",t.ORDER_NONE)||"0",a=this.getFieldValue("OP"),_="";return"round"===a?_=a+"("+n+")":(_="math."+a+"("+n+")",t.definitions_.import_math="import math"),[_,t.ORDER_ATOMIC]},math_math_max_min=function(e,t){var n=t.valueToCode(this,"A",t.ORDER_NONE)||"0",a=t.valueToCode(this,"B",t.ORDER_NONE)||"0";return[this.getFieldValue("OP")+"("+n+", "+a+")",t.ORDER_ATOMIC]},math_math_random=function(e,t){t.definitions_.import_random="import random";var n=this.getFieldValue("TYPE"),a=t.valueToCode(this,"FROM",t.ORDER_NONE)||"0",_=t.valueToCode(this,"TO",t.ORDER_NONE)||"0";if("int"==n)var l="random.randint("+a+", "+_+")";else if("float"==n)l="random.uniform("+a+", "+_+")";return[l,t.ORDER_UNARY_POSTFIX]},math_math_map=function(e,t){var n=t.valueToCode(this,"NUM",t.ORDER_NONE),a=t.valueToCode(this,"fromLow",t.ORDER_ATOMIC),_=t.valueToCode(this,"fromHigh",t.ORDER_ATOMIC),l=t.valueToCode(this,"toLow",t.ORDER_ATOMIC),s=t.valueToCode(this,"toHigh",t.ORDER_ATOMIC);return t.definitions_.import_mixpy_math_map="from mixpy import math_map",["math_map("+n+", "+a+", "+_+", "+l+", "+s+")",t.ORDER_NONE]},math_math_constrain=function(e,t){return["min(max("+(t.valueToCode(this,"VALUE",t.ORDER_NONE)||"0")+", "+(t.valueToCode(this,"LOW",t.ORDER_NONE)||"0")+"), "+(t.valueToCode(this,"HIGH",t.ORDER_NONE)||"0")+")",t.ORDER_UNARY_POSTFIX]},math_math_number_base_conversion=function(e,t){var n=e.getFieldValue("OP"),a=t.valueToCode(this,"NUM",t.ORDER_NONE)||"0",_=e.getFieldValue("OP2");t.definitions_.import_math="import math";var l="",s="10";if("two"==n?s="2":"eight"==n?s="8":"ten"==n?s="10":"sixteen"==n&&(s="16"),"two"==_?l="bin":"eight"==_?l="oct":"ten"==_?l="":"sixteen"==_&&(l="hex"),""==l)var i="int(str("+a+"), "+s+")";else i=l+"(int(str("+a+"), "+s+"))";return[i,t.ORDER_ATOMIC]},math_math_random_seed=function(e,t){return t.definitions_.import_random="import random","random.seed("+(t.valueToCode(this,"NUM",t.ORDER_NONE)||"0")+");\n"},math_math_indexer_number=function(e,t){var n=this.getFieldValue("NUM");return[n,n<0?t.ORDER_UNARY_PREFIX:t.ORDER_ATOMIC]},math_math_round=function(e,t){return["round("+(t.valueToCode(this,"VALUE",t.ORDER_NONE)||"0")+", "+(t.valueToCode(this,"VAR",t.ORDER_NONE)||"0")+")",t.ORDER_ATOMIC]},math_text_to_number=function(e,t){var n=this.getFieldValue("TOWHAT"),a=t.valueToCode(this,"VAR",t.ORDER_ATOMIC);return"b"==n?[a+'.encode("utf-8")',t.ORDER_ATOMIC]:[n+"("+a+")",t.ORDER_ATOMIC]},math_text_to_number_skulpt=function(e,t){var n=this.getFieldValue("TOWHAT"),a=t.valueToCode(this,"VAR",t.ORDER_ATOMIC);return"b"==n?[a+'.encode("utf-8")',t.ORDER_ATOMIC]:[n+"("+a+")",t.ORDER_ATOMIC]},math_base_map=math_math_map,generators_text_text=function(e,t){return[t.quote_(this.getFieldValue("TEXT")),t.ORDER_ATOMIC]},text_text_textarea=function(e,t){return['"""'+this.getFieldValue("VALUE")+'"""',t.ORDER_ATOMIC]},text_text_char=function(e,t){return["'"+this.getFieldValue("TEXT")+"'",t.ORDER_ATOMIC]},text_text_join=function(e,t){return[t.valueToCode(this,"A",t.ORDER_ATOMIC)+" + "+t.valueToCode(this,"B",t.ORDER_ATOMIC),t.ORDER_ADDITIVE]},text_ascii_to_char=function(e,t){return["chr("+(t.valueToCode(this,"VAR",t.ORDER_ATOMIC)||"0")+")",t.ORDER_ATOMIC]},text_char_to_ascii=function(e,t){return["ord("+(t.valueToCode(this,"VAR",t.ORDER_ATOMIC)||"a")+")",t.ORDER_ATOMIC]},text_number_to_text=function(e,t){return["str("+(t.valueToCode(this,"VAR",t.ORDER_ATOMIC)||"0")+")",t.ORDER_ATOMIC]},text_text_length=function(e,t){return["len("+(t.valueToCode(this,"VAR",t.ORDER_ATOMIC)||'""')+")",t.ORDER_ATOMIC]},text_text_char_at2=function(e,t){var n=e.getFieldValue("WHERE")||"FROM_START",a=t.valueToCode(this,"VAR",t.ORDER_ATOMIC)||'""';switch(n){case"FROM_START":return[a+"["+(e=t.getAdjustedInt(e,"AT"))+"]",t.ORDER_ATOMIC];case"FROM_END":return[a+"["+(e=t.getAdjustedInt(e,"AT",1,!0))+"]",t.ORDER_ATOMIC];case"RANDOM":return t.definitions_.import_random="import random",["random.choice("+a+")",t.ORDER_FUNCTION_CALL]}throw"Unhandled combination (lists_getIndex)."},text_text_char_at=function(e,t){return[(t.valueToCode(this,"VAR",t.ORDER_ATOMIC)||'""')+"["+(t.valueToCode(this,"AT",t.ORDER_ATOMIC)||0)+"]",t.ORDER_ATOMIC]},text_text_random_char=function(e,t){var n=t.valueToCode(this,"VAR",t.ORDER_ATOMIC)||'""';return t.definitions_.import_random="import random",["random.choice("+n+")",t.ORDER_FUNCTION_CALL]},text_text_equals_starts_ends=function(e,t){var n=t.valueToCode(this,"STR1",t.ORDER_ATOMIC)||'""',a=t.valueToCode(this,"STR2",t.ORDER_ATOMIC)||'""',_=this.getFieldValue("DOWHAT");return"==="===_?[n+" == "+a,t.ORDER_ATOMIC]:[n+"."+_+"("+a+")",t.ORDER_ATOMIC]},text_text_compare_to=function(e,t){return["cmp("+(t.valueToCode(this,"STR1",t.ORDER_ATOMIC)||'""')+","+(t.valueToCode(this,"STR2",t.ORDER_ATOMIC)||'""')+")",t.ORDER_ATOMIC]},text_text_substring2=function(e,t){var n=t.valueToCode(this,"VAR",t.ORDER_ATOMIC)||'""',a=e.getFieldValue("WHERE1"),_=e.getFieldValue("WHERE2");switch(a){case"FROM_START":"0"==(l=t.getAdjustedInt(e,"AT1"))&&(l="");break;case"FROM_END":var l=t.getAdjustedInt(e,"AT1",0,!0);break;case"FIRST":l="0";break;default:throw"Unhandled option (lists_getSublist)"}switch(_){case"FROM_START":var s=t.getAdjustedInt(e,"AT2");break;case"FROM_END":s=t.getAdjustedInt(e,"AT2",0,!0);external_Blockly_namespaceObject.isNumber(String(s))?"0"==s&&(s=""):(t.definitions_.import_sys="import sys",s+=" or sys.maxsize");break;case"LAST":s="-1";break;default:throw"Unhandled option (lists_getSublist)"}return[n+"["+l+" : "+s+"]",t.ORDER_ATOMIC]},text_text_substring=function(e,t){return[(t.valueToCode(this,"VAR",t.ORDER_ATOMIC)||'""')+"["+t.valueToCode(this,"AT1",t.ORDER_ATOMIC)+" : "+t.valueToCode(this,"AT2",t.ORDER_ATOMIC)+"]",t.ORDER_ATOMIC]},text_text_capital=function(e,t){var n=this.getFieldValue("CAPITAL");return[t.valueToCode(this,"VAR",t.ORDER_ATOMIC)+"."+n+"()",t.ORDER_ATOMIC]},text_text_center=function(e,t){var n=this.getFieldValue("CENTER");return[t.valueToCode(this,"VAR",t.ORDER_ATOMIC)+"."+n+"("+t.valueToCode(this,"WID",t.ORDER_ATOMIC)+","+t.valueToCode(this,"Symbol",t.ORDER_ATOMIC)+")",t.ORDER_ATOMIC]},text_text_find=function(e,t){return[t.valueToCode(this,"VAR",t.ORDER_ATOMIC)+".find("+t.valueToCode(this,"STR",t.ORDER_ATOMIC)+")",t.ORDER_ATOMIC]},text_text_join_seq=function(e,t){return[t.valueToCode(this,"VAR",t.ORDER_ATOMIC)+".join("+(t.valueToCode(this,"LIST",t.ORDER_ASSIGNMENT)||"0")+")",t.ORDER_ATOMIC]},text_text_replace=function(e,t){return[t.valueToCode(this,"VAR",t.ORDER_ATOMIC)+".replace("+t.valueToCode(this,"STR1",t.ORDER_ATOMIC)+","+t.valueToCode(this,"STR2",t.ORDER_ATOMIC)+")",t.ORDER_ATOMIC]},text_text_split=function(e,t){return[(t.valueToCode(this,"VAR",t.ORDER_ATOMIC)||'""')+".split("+(t.valueToCode(this,"VAL",t.ORDER_ATOMIC)||'""')+")",t.ORDER_ATOMIC]},text_text_strip=function(e,t){var n=this.getFieldValue("TOWHAT");return[t.valueToCode(this,"VAR",t.ORDER_ATOMIC)+"."+n+"()",t.ORDER_ATOMIC]},text_text_format=function(e,t){for(var n=this.getFieldValue("VAR"),a=new Array(this.itemCount_),_=0;_",GTE:">="};const logic_logic_operation=function(e,t){var n=this.getFieldValue("OP"),a="&&"==n?t.ORDER_LOGICAL_AND:t.ORDER_LOGICAL_OR,_=t.valueToCode(this,"A",a)||"False",l=t.valueToCode(this,"B",a)||"False";if("AND"==n)var s=_+" and "+l;else if("OR"==n)s=_+" or "+l;else if("NOR"==n)s="not("+_+"^"+l+")";else s=_+"^"+l;return[s,a]},logic_logic_negate=function(e,t){var n=t.ORDER_UNARY_PREFIX;return["not "+(t.valueToCode(this,"BOOL",n)||"False"),n]},logic_logic_boolean=function(e,t){return["TRUE"==this.getFieldValue("BOOL")?"True":"False",t.ORDER_ATOMIC]},logic_logic_null=function(e,t){return["None",t.ORDER_ATOMIC]},logic_logic_true_or_false=function(e,t){var n=t.valueToCode(this,"A",t.ORDER_ATOMIC)||"False";return["("+(t.valueToCode(this,"B",t.ORDER_ATOMIC)||"False")+" if "+n+" else "+(t.valueToCode(this,"C",t.ORDER_ATOMIC)||"False")+")",t.ORDER_ATOMIC]},logic_logic_is_in=function(e,t){var n=t.valueToCode(this,"A",t.ORDER_ATOMIC)||"''",a=t.valueToCode(this,"B",t.ORDER_ATOMIC)||"''";return[n+" "+this.getFieldValue("BOOL")+" "+a,t.ORDER_ATOMIC]},logic_logic_is=function(e,t){var n=t.valueToCode(this,"A",t.ORDER_ATOMIC)||"''",a=t.valueToCode(this,"B",t.ORDER_ATOMIC)||"''";return[n+" "+this.getFieldValue("BOOL")+" "+a,t.ORDER_ATOMIC]},logic_logic_tobool=function(e,t){return["bool("+(t.valueToCode(this,"VAR",t.ORDER_ATOMIC)||"0")+")",t.ORDER_ATOMIC]},storage_storage_open_file_with_os=function(e,t){return t.definitions_.import_os="import os","os.startfile("+t.valueToCode(this,"fn",t.ORDER_ATOMIC)+")\n"},storage_storage_fileopen=function(e,t){return t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+" = open("+t.valueToCode(this,"FILENAME",t.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')\n"},storage_storage_fileopen_new=function(e,t){return["open("+t.valueToCode(this,"FILENAME",t.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')",t.ORDER_ATOMIC]},storage_storage_fileopen_new_encoding=function(e,t){return["open("+t.valueToCode(this,"FILENAME",t.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"', encoding=\""+this.getFieldValue("CODE")+'")',t.ORDER_ATOMIC]},storage_storage_file_write=function(e,t){var n=t.valueToCode(this,"data",t.ORDER_ATOMIC);return t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+".write("+n+")\n"},storage_storage_get_contents_without_para=function(e,t){var n=this.getFieldValue("MODE");return[t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+"."+n+"()",t.ORDER_ATOMIC]},storage_storage_get_contents=function(e,t){var n=this.getFieldValue("MODE");return[t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+"."+n+"("+t.valueToCode(this,"SIZE",t.ORDER_ATOMIC)+")",t.ORDER_ATOMIC]},storage_storage_get_a_line=function(e,t){return[t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+".readline("+t.valueToCode(this,"SIZE",t.ORDER_ATOMIC)+")",t.ORDER_ATOMIC]},storage_storage_can_write_ornot=function(e,t){return[t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+".writable()",t.ORDER_ATOMIC]},storage_storage_get_filename=function(e,t){return[t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+".name()",t.ORDER_ATOMIC]},storage_storage_close_file=function(e,t){return t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+".close()\n"},storage_storage_list_all_files=function(e,t){t.definitions_.import_os="import os";return["os.listdir()",t.ORDER_ATOMIC]},storage_storage_delete_file=function(e,t){return t.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+")\n"},storage_storage_get_file_size=function(e,t){return t.definitions_.import_os="import os",["os.path.getsize("+t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+")",t.ORDER_ATOMIC]},storage_storage_file_tell=function(e,t){return[t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+".tell()",t.ORDER_ATOMIC]},storage_storage_file_seek=function(e,t){var n=this.getFieldValue("MODE"),a=0;return a="start"==n?0:"current"==n?1:2,t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+".seek("+t.valueToCode(this,"SIZE",t.ORDER_ATOMIC)+","+a+")\n"},storage_storage_change_dir=function(e,t){return t.definitions_.import_os="import os","os.chdir("+t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+")\n"},storage_storage_get_current_dir=function(e,t){t.definitions_.import_os="import os";return["os.getcwd()",t.ORDER_ATOMIC]},storage_storage_make_dir=function(e,t){return t.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+t.valueToCode(this,"PATH",t.ORDER_ATOMIC)+")\n"},storage_storage_rename=function(e,t){return t.definitions_.import_os="import os","os.rename("+t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+","+t.valueToCode(this,"NEWFILE",t.ORDER_ATOMIC)+")\n"},storage_storage_is_file=function(e,t){t.definitions_.import_os="import os";var n=t.valueToCode(this,"FILE",t.ORDER_ATOMIC);return["os."+this.getFieldValue("MODE")+"("+n+")",t.ORDER_ATOMIC]},storage_sdcard_use_spi_init=function(e,t){return t.definitions_.import_os="import os",t.definitions_.import_sdcard="import sdcard",t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+" = sdcard.SDCard("+t.valueToCode(this,"SPISUB",t.ORDER_ATOMIC)+","+t.valueToCode(this,"PINSUB",t.ORDER_ATOMIC)+")\n"},storage_sdcard_mount=function(e,t){return t.definitions_.import_os="import os",t.definitions_.import_sdcard="import sdcard","os.mount("+t.valueToCode(this,"VAR",t.ORDER_ATOMIC)+","+t.valueToCode(this,"DIR",t.ORDER_ATOMIC)+")\n"},procedures_procedures_defreturn=function(e,t){var n=t.variableDB_.getName(this.getFieldValue("NAME"),external_Blockly_namespaceObject.Procedures.NAME_TYPE),a=t.statementToCode(this,"STACK")||" pass\n";t.INFINITE_LOOP_TRAP&&(a=t.INFINITE_LOOP_TRAP.replace(/%1/g,"'"+this.id+"'")+a);var _=t.valueToCode(this,"RETURN",t.ORDER_NONE)||"";_&&(_=" return "+_+"\n");for(var l=[],s=0;s\n\n\n\t\n"+t.statementToCode(this,"HEAD")+"\n\n"+t.statementToCode(this,"BODY")+"\n\n'''",t.ORDER_ATOMIC]},html_html_title=function(e,t){var n=t.statementToCode(this,"DO"),a=this.getFieldValue("LEVEL");return"\n"+n+"\n"},html_html_head_body=function(e,t){var n=t.statementToCode(this,"DO"),a=this.getFieldValue("LEVEL");if("head"==a)var _="<"+a+'>\n\t\n'+n+"\n";else _="<"+a+">\n"+n+"\n";return _},html_html_content=function(e,t){var n=t.statementToCode(this,"DO"),a=this.getFieldValue("LEVEL");return"<"+a+">\n"+n+"\n"},html_html_content_more=function(e,t){var n=t.statementToCode(this,"DO"),a=t.valueToCode(this,"style"),_=this.getFieldValue("LEVEL");return"<"+_+" "+a+" >\n"+n+"\n"},html_html_style=function(e,t){return['style="'+t.statementToCode(this,"STYLE")+'"',t.ORDER_ATOMIC]},html_html_form=function(e,t){return'"},html_html_style_content=function(){return this.getFieldValue("KEY")+":"+this.getFieldValue("VALUE")+";"},html_html_text=function(){return this.getFieldValue("TEXT")+"\n"},utility_raw_block=function(e){return e.getFieldValue("TEXT")+"\n"},utility_raw_expression=function(e,t){return[e.getFieldValue("TEXT"),t.ORDER_ATOMIC]},utility_raw_empty=function(e,t){return(t.valueToCode(e,"VALUE",t.ORDER_ATOMIC)||"")+"\n"},utility_raw_table=function(){return""},utility_type_check=function(e,t){return["type("+(t.valueToCode(e,"VALUE",t.ORDER_MEMBER)||"___")+")",t.ORDER_ATOMIC]},utility_function_call=function(e,t){for(var n=e.getFieldValue("NAME"),a=e.hasReturn_,_=new Array(e.itemCount_),l=0;l0?t.join("\n")+"\n"+a.join("\n")+"\n"+_.join("")+"\n"+e+"while True:\n"+l.join("")+s.join("\n"):t.join("\n")+"\n"+a.join("\n")+"\n"+_.join("")+"\n"+e+s.join("\n")},Python.scrubNakedValue=function(e){return e+"\n"},Python.quote_=function(e){var t="'";return-1!==(e=e.replace(/\\/g,"\\\\").replace(/\n/g,"\\\n")).indexOf("'")&&(-1===e.indexOf('"')?t='"':e=e.replace(/'/g,"\\'")),t+e+t},Python.multiline_quote_=function(e){return"'''"+(e=e.replace(/'''/g,"\\'\\'\\'"))+"'''"},Python.scrub_=function(e,t,n){var a="";if(!e.outputConnection||!e.outputConnection.targetConnection){(l=e.getCommentText())&&(l=external_Blockly_namespaceObject.utils.string.wrap(l,Python.COMMENT_WRAP-3),a+=Python.prefixLines(l+"\n","# "));for(var _=0;_0?"int("+i+" + "+_+")":_<0?"int("+i+" - "+-_+")":"int("+i+")",a&&(i="-"+i)),i};const AI_HUE=205,AI_ChooseAndGet={init:function(){this.setColour(AI_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_CHOOSE_AND_GET).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_CHOOSE_AND_GET_ONE_FILE_NAME,"getOneFile"],[external_Blockly_namespaceObject.Msg.MIXLY_CHOOSE_AND_GET_MANY_FILE_NAMES,"getManyFiles"],[external_Blockly_namespaceObject.Msg.MIXLY_CHOOSE_AND_GET_DIR,"getDirectory"]]),"TYPE"),this.setInputsInline(!0),this.setOutput(!0)}},AI_client={init:function(){this.setColour(AI_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_SETUP).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify,"AipImageClassify"],[external_Blockly_namespaceObject.Msg.MIXLY_AipSpeech,"AipSpeech"],[external_Blockly_namespaceObject.Msg.MIXLY_AipImageCensor,"AipImageCensor"],[external_Blockly_namespaceObject.Msg.MIXLY_AipFace,"AipFace"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr,"AipOcr"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp,"AipNlp"]]),"CTYPE"),this.appendValueInput("SUB").appendField(external_Blockly_namespaceObject.Msg.MIXLY_Client).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("API_KEY").appendField("API_KEY").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("SECRET_KEY").appendField("SECRET_KEY").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},AI_Speech_synthesis={init:function(){this.setColour(AI_HUE),this.appendValueInput("SUB").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipSpeech_synthesis).appendField(external_Blockly_namespaceObject.Msg.MIXLY_Client).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("STR").appendField(external_Blockly_namespaceObject.Msg.OLED_STRING).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_ATTR).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_AipSpeech_synthesis_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},AI_Speech_asr={init:function(){this.setColour(AI_HUE),this.appendValueInput("SUB").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipSpeech_asr).appendField(external_Blockly_namespaceObject.Msg.MIXLY_Client).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipSpeech_File).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_ATTR).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_AipSpeech_ASR_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},AI_ImageClassify={init:function(){this.setColour(AI_HUE),this.appendValueInput("SUB").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify).appendField(external_Blockly_namespaceObject.Msg.MIXLY_Client).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("FUNC").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_FUNC).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("ADDR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify_Image).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_ATTR).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify_advancedGeneral_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},AI_ImageClassify_Func={init:function(){this.setColour(AI_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify_advancedGeneral,"advancedGeneral"],[external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify_dishDetect,"dishDetect"],[external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify_carDetect,"carDetect"],[external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify_animalDetect,"animalDetect"],[external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify_plantDetect,"plantDetect"],[external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify_logoSearch,"logoSearch"]]),"TYPE"),this.setOutput(!0)}},AI_Face_match={init:function(){this.setColour(AI_HUE),this.appendValueInput("SUB").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipFace_match).appendField(external_Blockly_namespaceObject.Msg.MIXLY_Client).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify_Image+"1"+external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify_Image+"2"+external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_ATTR).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_AipFace_match_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},AI_Ocr={init:function(){this.setColour(AI_HUE),this.appendValueInput("SUB").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipOcr).appendField(external_Blockly_namespaceObject.Msg.MIXLY_Client).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("FUNC").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_FUNC).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("ADDR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify_Image).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_ATTR).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},AI_Ocr_Func={init:function(){this.setColour(AI_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_basicGeneral,"basicGeneral"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_webImage,"webImage"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_idcard,"idcard"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_bankcard,"bankcard"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_drivingLicense,"drivingLicense"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_vehicleLicense,"vehicleLicense"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_licensePlate,"licensePlate"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_businessLicense,"businessLicense"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_receipt,"receipt"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_trainTicket,"trainTicket"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_taxiReceipt,"taxiReceipt"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_form,"tableRecognition"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_vatInvoice,"vatInvoice"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_passport,"passport"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_handwriting,"handwriting"]]),"TYPE"),this.setOutput(!0)}},AI_Nlp={init:function(){this.setColour(AI_HUE),this.appendValueInput("SUB").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipNlp).appendField(external_Blockly_namespaceObject.Msg.MIXLY_Client).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("FUNC").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_FUNC).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("STR").appendField(external_Blockly_namespaceObject.Msg.OLED_STRING).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_ATTR).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},AI_Nlp_Sim={init:function(){this.setColour(AI_HUE),this.appendValueInput("SUB").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_Sim).appendField(external_Blockly_namespaceObject.Msg.MIXLY_Client).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("FUNC").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_FUNC).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("STR1").appendField(external_Blockly_namespaceObject.Msg.OLED_STRING+"1").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("STR2").appendField(external_Blockly_namespaceObject.Msg.OLED_STRING+"2").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_ATTR).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_Sim_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},AI_Nlp_Func={init:function(){this.setColour(AI_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_lexer,"lexer"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_depParser,"depParser"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_wordEmbedding,"wordEmbedding"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_dnnlm,"dnnlm"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_commentTag,"commentTag"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_sentimentClassify,"sentimentClassify"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_keyword,"keyword"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_topic,"topic"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_ecnet,"ecnet"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_emotion,"emotion"]]),"TYPE"),this.setOutput(!0)}},AI_Nlp_Func_sim={init:function(){this.setColour(AI_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_wordSimEmbedding,"wordSimEmbedding"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_simnet,"simnet"]]),"TYPE"),this.setOutput(!0)}},AI_Nlp_Topic={init:function(){this.setColour(AI_HUE),this.appendValueInput("SUB").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_topic).appendField(external_Blockly_namespaceObject.Msg.MIXLY_Client).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("STR1").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_Topic_Title).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("STR2").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_Topic_Content).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_Topic_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},AI_Nlp_newsSummary={init:function(){this.setColour(AI_HUE),this.appendValueInput("SUB").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_summary).appendField(external_Blockly_namespaceObject.Msg.MIXLY_Client).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("STR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_Topic_Content).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("LEN").appendField(external_Blockly_namespaceObject.Msg.MIXLY_LIST_LEN).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_ATTR).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_Summary_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},AI_audio={init:function(){this.setColour(AI_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXPY_AI_AUDIO),this.appendValueInput("TIME").appendField(external_Blockly_namespaceObject.Msg.MIXPY_AI_AUDIO_TIME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXPY_AI_AUDIO_TOOLTIP)}},AI_photo={init:function(){this.setColour(AI_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXPY_AI_PHOTO),this.appendValueInput("BUT").appendField(external_Blockly_namespaceObject.Msg.MIXPY_AI_PHOTO_BUTTON),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXPY_AI_PHOTO_TOOLTIP)}},AI_result={init:function(){this.setColour(AI_HUE),this.appendValueInput("AI").appendField(external_Blockly_namespaceObject.Msg.MIXPY_AI_RESULT).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify,"Image"],[external_Blockly_namespaceObject.Msg.MIXLY_AipSpeech_asr,"Speech"],[external_Blockly_namespaceObject.Msg.MIXLY_AipFace_match,"Face"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr,"Ocr"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_simnet,"OcrSimilarity"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_sentimentClassify,"Emotion"]]),"CTYPE"),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.LOGIC_NEGATE_TOOLTIP)}},ALGORITHM_HUE="#526FC3",algorithm_prepare={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_PREPARE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_add_school={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_ADD_SCHOOL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_find_path={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_FIND_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_new_path={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_NEW_PATH),this.setOutput(!0)}},algorithm_set_path={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_SET_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_add_path={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_ADD_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_del_path={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_DEL_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_return_path={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_RETURN_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_no_left={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_NO_LEFT),this.setOutput(!0)}},algorithm_print_path={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_PRINT_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_prepare2={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_PREPARE2),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_current_school={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_CURRENT_SCHOOL),this.setOutput(!0)}},algorithm_no_path={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_NO_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_prepare_2_1={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_PREPARE_2_1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_prepare_2_2={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_PREPARE_2_2),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_move_recent={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_MOVE_RECENT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_not_home={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_NOT_HOME),this.setOutput(!0)}},algorithm_not_school={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_NOT_SCHOOL),this.setOutput(!0)}},algorithm_print_path2={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_PRINT_PATH2),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},hanoi_init={init:function(){this.appendDummyInput().appendField("准备").appendField(new external_Blockly_namespaceObject.FieldNumber(3,0,100,1),"NUM").appendField("层汉诺塔"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},hanoi_move={init:function(){this.appendDummyInput().appendField("移动圆盘从"),this.appendValueInput("FROM_NUM").setCheck(null).appendField("柱"),this.appendDummyInput().appendField("到"),this.appendValueInput("TO_NUM").setCheck(null).appendField("柱"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_all_books={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_ALL_BOOKS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_all_books_sequence={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_ALL_BOOKS2),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_first_book={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_FIRST_BOOK),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_no_ring2={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_NO_RING),this.setOutput(!0)}},algorithm_yes_ring2={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_YES_RING),this.setOutput(!0)}},algorithm_next_book={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_NEXT_BOOK),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_two_left={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_TWO_LEFT),this.setOutput(!0)}},algorithm_divide_books={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_DIVIDE_BOOKS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_get_half_books={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_GET_HALF_BOOKS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_delete_book={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_DELETE_BOOK),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_delete_books={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_DELETE_BOOKS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_delete_books2={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_DELETE_BOOKS2),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_print_book2={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_PRINT_BOOK),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_book_scale={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("设置待查书总数 N=").appendField(new external_Blockly_namespaceObject.FieldDropdown([["5","5"],["10","10"],["20","20"],["50","50"]]),"NUM"),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_number_zero={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_NUMBER_ZERO),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_number_add={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_NUMBER_ADD),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_print_number={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_PRINT_NUMBER),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_get_book_num={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField("n"+external_Blockly_namespaceObject.Msg.MIXLY_VALUE2).appendField(new external_Blockly_namespaceObject.FieldTextInput("50"),"NUM"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_print_sequence={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_PRINT_SEQUENCE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_print_divide={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_PRINT_DIVIDE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_init_jttl={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("初始化鸡兔同笼问题:"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("有若干只鸡、兔在同一个笼子里。"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("从上面数鸡兔有10个头,"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("从下面数鸡兔有32只脚。"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("问笼中有多少只鸡和多少只兔?"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_rabbit_zero={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("假设兔子的数量为0只"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_rabbit_number_in_range={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("兔子的数量在范围之内"),this.setOutput(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_chick_calculate={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("根据(头数-兔子数)计算出鸡的数量"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_check_feet={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("计算得到脚的数量正确"),this.setOutput(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_print_jttl_answer={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("输出鸡、兔的数量"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_rabbit_add={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("假设兔子数量要更多一只"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_init_fzsf={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("加载路线图"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_fz_calc={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("计算").appendField(new external_Blockly_namespaceObject.FieldDropdown([["S1","1"],["S2","2"],["S3","3"],["S4","4"]]),"PATHNAME").appendField("长度"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_fz_calc_first_min={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("设置S1为Smin"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_fz_compare={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField(new external_Blockly_namespaceObject.FieldDropdown([["S1","1"],["S2","2"],["S3","3"],["S4","4"]]),"PATHNAME").appendField("的长度比").appendField(new external_Blockly_namespaceObject.FieldDropdown([["S1","1"],["S2","2"],["S3","3"],["S4","4"]]),"PATHNAME2").appendField("短"),this.setOutput(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_fz_set_min={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("设置").appendField(new external_Blockly_namespaceObject.FieldDropdown([["S1","1"],["S2","2"],["S3","3"],["S4","4"]]),"PATHNAME").appendField("为Smin"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_fz_move={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("按照Smin移动"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_init_hxdb={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("初始化韩信点兵问题:"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("有未知数量的若干士兵。"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("若3人一排列队,多1人;"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("若5人一排列队,多2人;"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("若7人一排列队,多2人;"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("问士兵的数量最少是多少人?"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_hxdb_init_soldier={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("初始化士兵为").appendField(new external_Blockly_namespaceObject.FieldTextInput("7"),"NUM").appendField("个"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_hxdb_stand_in_line={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("使士兵").appendField(new external_Blockly_namespaceObject.FieldDropdown([["3","3"],["5","5"],["7","7"]]),"NUM").appendField("人一排列队"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_hxdb_last_line={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("剩余").appendField(new external_Blockly_namespaceObject.FieldTextInput("1"),"NUM").appendField("个士兵"),this.setOutput(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_hxdb_add={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("增加1个士兵"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_hxdb_result={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("输出士兵数量"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},hanoi_init_offline={init:function(){this.appendDummyInput().appendField("准备").appendField(new external_Blockly_namespaceObject.FieldNumber(3,0,100,1),"NUM").appendField("层汉诺塔"),this.appendValueInput("VAR").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setInputsInline(!0),this.setTooltip(""),this.setHelpUrl("")}},algorithm_get_current_location={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_GET_CURRENT_LOCATION),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_void_path={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_VOID_PATH),this.setOutput(!0)}},algorithm_color_seclet={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput("").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(new external_Blockly_namespaceObject.FieldColour("ff0000"),"COLOR"),this.setInputsInline(!0),this.setOutput(!0,String)}},COMMUNICATE_HUE="#3288dd",requests_get_old={init:function(){this.setColour(COMMUNICATE_HUE),this.appendValueInput("DOMAIN").appendField(external_Blockly_namespaceObject.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_REQUESTS_GET).appendField(new external_Blockly_namespaceObject.FieldTextInput("response"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.blockpy_REQUESTS_GET_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},requests_get={init:function(){this.setColour(COMMUNICATE_HUE),this.appendValueInput("URL").appendField(external_Blockly_namespaceObject.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_CONDUCT).appendField(new external_Blockly_namespaceObject.FieldDropdown([["get","get"],["head","head"],["delete","delete"]]),"TYPE").appendField(external_Blockly_namespaceObject.Msg.blockpy_REQUESTS).appendField(external_Blockly_namespaceObject.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},requests_post={init:function(){this.setColour(COMMUNICATE_HUE),this.appendValueInput("URL").appendField(external_Blockly_namespaceObject.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_CONDUCT).appendField(new external_Blockly_namespaceObject.FieldDropdown([["post","post"],["put","put"],["patch","patch"]]),"TYPE").appendField(external_Blockly_namespaceObject.Msg.blockpy_REQUESTS),this.appendValueInput("data").appendField(external_Blockly_namespaceObject.Msg.blockpy_REQUESTS+external_Blockly_namespaceObject.Msg.OLED_STRING),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},requests_attribute={init:function(){this.appendValueInput("VAL");var e=[[external_Blockly_namespaceObject.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[external_Blockly_namespaceObject.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[external_Blockly_namespaceObject.Msg.blockpy_REQUESTS_GET_ATTR_COOKIES,"cookies"],[external_Blockly_namespaceObject.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"],[external_Blockly_namespaceObject.Msg.MIXPY_TEXT_ENCODE,"encoding"]];this.setColour(COMMUNICATE_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_GET).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String)}},requests_method={init:function(){this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.DISPLAY_IMAGE_LET2).setCheck(String);this.setColour(COMMUNICATE_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_CONDUCT).appendField(new external_Blockly_namespaceObject.FieldDropdown([["post","post"],["put","put"],["delete","delete"],["head","head"],["option","option"]]),"DIR"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_REQUESTS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{forward:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_FORWARD,backward:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_BACKWARD}[t]}))}},CV_HUE="f0a559",cv_read_image={init:function(){this.setColour(CV_HUE),this.appendValueInput("FILE").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_IMREAD),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)}},cv_show_image={init:function(){this.setColour(CV_HUE),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.OLED_BITMAP),this.appendValueInput("data").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_Topic_Title),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},cv_write_image={init:function(){this.setColour(CV_HUE),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_IMWRITE),this.appendValueInput("data").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.HTML_NAME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},cv_waitkey={init:function(){this.setColour(CV_HUE),this.appendValueInput("data").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_DELAY),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MILLIS+external_Blockly_namespaceObject.Msg.MIXLY_CV_OR_PRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_CV_WAITKEY_TOOLTIP)}},cv_destroy_all={init:function(){this.setColour(CV_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_DESTROY_ALL),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},cv_line_rect={init:function(){this.setColour(CV_HUE),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_IMAGE);var e=[[external_Blockly_namespaceObject.Msg.MIXLY_CV_RECT,"rectangle"],[external_Blockly_namespaceObject.Msg.MIXLY_CV_LINE,"line"]];this.appendValueInput("x1").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_DISPLAY_DRAW).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_DRAWLINE_BEGIN+"(x1"),this.appendValueInput("y1").setCheck(Number).appendField(",y1"),this.appendValueInput("x2").setCheck(Number).appendField(") "+external_Blockly_namespaceObject.Msg.MIXLY_CV_DRAWLINE_END+"(x2"),this.appendValueInput("y2").setCheck(Number).appendField(",y2"),this.appendDummyInput().appendField(") "+external_Blockly_namespaceObject.Msg.MIXLY_CV_DRAWLINE_COLOR).appendField(new external_Blockly_namespaceObject.FieldColour("#ff0000"),"FIELDNAME"),this.appendValueInput("thick").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_DRAWLINE_THICKNESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_CV_DRAWLINE_RECT_TOOLTIP)}},cv_text={init:function(){this.setColour(CV_HUE),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_IMAGE);this.appendValueInput("data").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_DRAWTEXT),this.appendValueInput("x1").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_DRAWLINE_BEGIN+"(x1"),this.appendValueInput("y1").setCheck(Number).appendField(",y1"),this.appendDummyInput().appendField(") "+external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_NAME).appendField(new external_Blockly_namespaceObject.FieldDropdown([["SIMPLEX","SIMPLEX"],["PLAIN","PLAIN"],["DUPLEX","DUPLEX"],["COMPLEX","COMPLEX"],["COMPLEX_SMALL","COMPLEX_SMALL"],["TRIPLEX","TRIPLEX"],["SCRIPT_SIMPLEX","SCRIPT_SIMPLEX"],["SCRIPT_COMPLEX","SCRIPT_COMPLEX"]]),"font"),this.appendValueInput("size").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendDummyInput().appendField(") "+external_Blockly_namespaceObject.Msg.MIXLY_CV_DRAWLINE_COLOR).appendField(new external_Blockly_namespaceObject.FieldColour("#ff0000"),"FIELDNAME"),this.appendValueInput("thick").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_DRAWLINE_THICKNESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_CV_DRAWLINE_RECT_TOOLTIP)}},cv_face_classifier={init:function(){this.setColour(CV_HUE),this.appendValueInput("FILE").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_FACE_CLASSIFIER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)}},cv_face_detect={init:function(){this.setColour(CV_HUE),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_IMAGE),this.appendValueInput("FACE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_FACE_DETECT),this.appendValueInput("SCALE").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_FACE_DETECT_SCALE),this.appendValueInput("NEIGHBOR").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_FACE_DETECT_NEIGHBOR),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)}},cv_face_detect_all={init:function(){this.setColour(CV_HUE),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_IMAGE),this.appendValueInput("FACE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_FACE_DETECT),this.appendValueInput("SCALE").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_FACE_DETECT_SCALE),this.appendValueInput("NEIGHBOR").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_FACE_DETECT_NEIGHBOR),this.appendValueInput("x1").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_FACE_DETECT_RANGE).appendField(external_Blockly_namespaceObject.Msg.blockpy_TUPLE_MIN),this.appendValueInput("y1").setCheck(Number).appendField("×"),this.appendValueInput("x2").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.blockpy_TUPLE_MAX),this.appendValueInput("y2").setCheck(Number).appendField("×"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)}},DATA_HUE=170,series_create={init:function(){this.setColour(DATA_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_series_create).appendField(new external_Blockly_namespaceObject.FieldTextInput("ser1"),"VAR"),this.appendValueInput("SER").appendField(external_Blockly_namespaceObject.Msg.blockpy_series_via),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.blockpy_series_create_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},series_create_from_index={init:function(){this.setColour(DATA_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_series_create).appendField(new external_Blockly_namespaceObject.FieldTextInput("ser1"),"VAR"),this.appendValueInput("SER").appendField(external_Blockly_namespaceObject.Msg.blockpy_series_via),this.appendValueInput("INDEX").setCheck([String,"List"]).appendField(external_Blockly_namespaceObject.Msg.blockpy_series_set_index),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.blockpy_series_create_index_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},dataframe_create={init:function(){this.setColour(DATA_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_dataframe_create).appendField(new external_Blockly_namespaceObject.FieldTextInput("df1"),"VAR"),this.appendValueInput("SER").appendField(external_Blockly_namespaceObject.Msg.blockpy_series_via),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.blockpy_dataframe_create_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},dataframe_create_from_one_index={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.DATAFRAME_RAW,"index"],[external_Blockly_namespaceObject.Msg.DATAFRAME_COLUMN,"columns"]];this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_dataframe_create).appendField(new external_Blockly_namespaceObject.FieldTextInput("df1"),"VAR"),this.appendValueInput("SER").appendField(external_Blockly_namespaceObject.Msg.blockpy_series_via),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"COLUMN_RAW"),this.appendValueInput("INDEX").setCheck([String,"List"]).appendField(external_Blockly_namespaceObject.Msg.blockpy_series_set_index),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.blockpy_dataframe_create_index_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},dataframe_create_from_index={init:function(){this.setColour(DATA_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_dataframe_create).appendField(new external_Blockly_namespaceObject.FieldTextInput("df1"),"VAR"),this.appendValueInput("SER").appendField(external_Blockly_namespaceObject.Msg.blockpy_series_via),this.appendValueInput("INDEX_COLUMN").setCheck([String,"List"]).appendField(external_Blockly_namespaceObject.Msg.blockpy_dataframe_set_index_column),this.appendValueInput("INDEX_RAW").setCheck([String,"List"]).appendField(external_Blockly_namespaceObject.Msg.blockpy_dataframe_set_index_raw),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.blockpy_dataframe_create_index_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},series_create_from_text={init:function(){this.setColour(DATA_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldTextInput("ser1"),"VAR").appendField(" = [").appendField(new external_Blockly_namespaceObject.FieldTextInput("1,2,3"),"TEXT").appendField("]"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_SERIES_CREATE_FROM_TEXT)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},series_index_value={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.SERIES_INDEX,"index"],[external_Blockly_namespaceObject.Msg.HTML_VALUE,"value"]];this.appendValueInput("SERIES").setCheck("Series"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.SERIES_INDEX_VALUE).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"INDEX_VALUE"),this.setOutput(!0,"List");var t=this;this.setTooltip((function(){var e=t.getFieldValue("INDEX_VALUE");return{index:external_Blockly_namespaceObject.Msg.SERIES_INDEX_TOOLTIP,value:external_Blockly_namespaceObject.Msg.HTML_VALUE_TOOLTIP}[e]}))}},series_get_num={init:function(){this.setColour(DATA_HUE),this.setOutput(!0),this.appendValueInput("SER").setCheck("Series"),this.appendValueInput("AT").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.LANG_LISTS_GET_INDEX1),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.LANG_LISTS_GET_INDEX2),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.TUPLE_GET_INDEX_TOOLTIP)}},pl_plot_easy={init:function(){this.setColour(DATA_HUE),this.appendValueInput("SER").setCheck("Series").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},pl_plot={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_SOLID,"-"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_DOTTED,"--"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_CHAIN,"-."],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_POINT_DOTTED,":"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,""]],t=[[external_Blockly_namespaceObject.Msg.COLOUR_RGB_BLUE,"b"],[external_Blockly_namespaceObject.Msg.COLOUR_RGB_GREEN,"g"],[external_Blockly_namespaceObject.Msg.COLOUR_RGB_RED,"r"],[external_Blockly_namespaceObject.Msg.COLOUR_CYAN,"c"],[external_Blockly_namespaceObject.Msg.COLOUR_MAGENTA,"m"],[external_Blockly_namespaceObject.Msg.COLOUR_YELLOW,"y"],[external_Blockly_namespaceObject.Msg.COLOUR_BLACK,"k"],[external_Blockly_namespaceObject.Msg.COLOUR_WHITE,"w"]],n=[[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN,"v"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP,"^"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT,"<"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT,">"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("SER").setCheck("Series").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new external_Blockly_namespaceObject.FieldDropdown(n),"DOT"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"LINE"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.HTML_COLOUR).appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"COLOR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},pl_show={init:function(){this.setColour(DATA_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_SHOW),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},pl_axes={init:function(){this.setColour(DATA_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_AXES),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},pl_legend={init:function(){this.setColour(DATA_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_LEGEND),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},pl_title={init:function(){this.setColour(DATA_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_TITLE),this.appendValueInput("TITLE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},pl_label={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.PYLAB_LABEL_X,"x"],[external_Blockly_namespaceObject.Msg.PYLAB_LABEL_Y,"y"]];this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_SET_LABEL).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR"),this.appendValueInput("LABEL").appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_LABEL).setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},array_create={init:function(){this.setColour(DATA_HUE),this.appendValueInput("FROM").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MIXLY_SPLITBYDOU).appendField(external_Blockly_namespaceObject.Msg.MIXPY_DATA_ARRAY_CREATE_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MIXPY_DATA_ARRAY_CREATE_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MIXLY_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},pl_plot_bar={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_BAR_PLOT,"plot"],[external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_BAR_BAR,"bar"]];this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_DISPLAY_DRAW).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR"),this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_Y),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{plot:external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP,bar:external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_BAR_EASY_TOOLTIP}[e]}))}},pl_plot_scatter={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.COLOUR_RGB_BLUE,"b"],[external_Blockly_namespaceObject.Msg.COLOUR_RGB_GREEN,"g"],[external_Blockly_namespaceObject.Msg.COLOUR_RGB_RED,"r"],[external_Blockly_namespaceObject.Msg.COLOUR_CYAN,"c"],[external_Blockly_namespaceObject.Msg.COLOUR_MAGENTA,"m"],[external_Blockly_namespaceObject.Msg.COLOUR_YELLOW,"y"],[external_Blockly_namespaceObject.Msg.COLOUR_BLACK,"k"],[external_Blockly_namespaceObject.Msg.COLOUR_WHITE,"w"]],t=[[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN,"v"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP,"^"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT,"<"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT,">"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_SCATTER).appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_Y),this.appendValueInput("S").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_NUMBER),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"DOT"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.HTML_COLOUR).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("")}},pl_plot_xy={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_SOLID,"-"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_DOTTED,"--"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_CHAIN,"-."],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_POINT_DOTTED,":"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,""]],t=[[external_Blockly_namespaceObject.Msg.COLOUR_RGB_BLUE,"b"],[external_Blockly_namespaceObject.Msg.COLOUR_RGB_GREEN,"g"],[external_Blockly_namespaceObject.Msg.COLOUR_RGB_RED,"r"],[external_Blockly_namespaceObject.Msg.COLOUR_CYAN,"c"],[external_Blockly_namespaceObject.Msg.COLOUR_MAGENTA,"m"],[external_Blockly_namespaceObject.Msg.COLOUR_YELLOW,"y"],[external_Blockly_namespaceObject.Msg.COLOUR_BLACK,"k"],[external_Blockly_namespaceObject.Msg.COLOUR_WHITE,"w"]],n=[[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN,"v"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP,"^"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT,"<"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT,">"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_XY).appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_Y),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new external_Blockly_namespaceObject.FieldDropdown(n),"DOT"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"LINE"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.HTML_COLOUR).appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},pl_bar={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_ALIGN_CENTER,"center"],[external_Blockly_namespaceObject.Msg.AILGN_EDGE,"edge"]];this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_BAR).appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_Y),this.appendValueInput("WIDTH").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_WIDTH),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_BAR_ALIGN).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"ALIGN"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.HTML_COLOUR).appendField(new external_Blockly_namespaceObject.FieldColour("#0000ff"),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},pl_pie={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.mixpy_PL_PIE_SHADOW_N,"False"],[external_Blockly_namespaceObject.Msg.mixpy_PL_PIE_SHADOW_Y,"True"]],t=[[external_Blockly_namespaceObject.Msg.mixpy_PL_PIE_SHADOW_N,"None"],[external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE_AUTOPCT_Z,"%.0f%%"],[external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE_AUTOPCT_O,"%.1f%%"],[external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE_AUTOPCT_T,"%.2f%%"]];this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE).appendField(external_Blockly_namespaceObject.Msg.COLOUR_BLEND_RATIO),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TAG),this.appendValueInput("EXPLODE").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE_EXPLODE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE_AUTOPCT).appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"autopct"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE_SHADOW).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"SHADOW"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},pl_hist={init:function(){this.setColour(DATA_HUE),this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_HIST).appendField(external_Blockly_namespaceObject.Msg.MIXLY_SD_DATA),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},pl_ticks={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.PYLAB_LABEL_X,"x"],[external_Blockly_namespaceObject.Msg.PYLAB_LABEL_Y,"y"]];this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_SETTING).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR"),this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_I2C_VALUE),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TOOLTIP)}},numpy_trig={init:function(){var e=[["sin","sin"],["cos","cos"],["tan","tan"],["arcsin","arcsin"],["arccos","arccos"],["arctan","arctan"],[external_Blockly_namespaceObject.Msg.LANG_MATH_TO_ROUND,"round"],[external_Blockly_namespaceObject.Msg.LANG_MATH_TO_CEIL,"ceil"],[external_Blockly_namespaceObject.Msg.LANG_MATH_TO_FLOOR,"floor"]];this.setColour(DATA_HUE),this.setOutput(!0),this.setInputsInline(!0),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.mixpy_NUMPY_TRIG),this.appendValueInput("NUM").setCheck(Number).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"OP"),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_NUMPY_TRIG_TOOLTIP)}},pl_subplot={init:function(){this.setColour(DATA_HUE),this.appendValueInput("VET").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.mixpy_SUBPLOT).appendField(external_Blockly_namespaceObject.Msg.mixpy_SUBPLOT_VERTICLE),this.appendValueInput("HOR").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.mixpy_SUBPLOT_HORIZEN),this.appendValueInput("NUM").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.mixpy_SUBPLOT_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},pandas_readcsv={init:function(){this.setColour(DATA_HUE),this.appendValueInput("FILENAME").appendField(external_Blockly_namespaceObject.Msg.MIXPY_PANDAS_READ_CSV),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.mixpy_PANDAS_READCSV_HEADER_Y,"0"],[external_Blockly_namespaceObject.Msg.mixpy_PANDAS_READCSV_HEADER_N,"None"]]),"MODE"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.mixpy_PANDAS_READCSV_TITLE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PANDAS_READCSV_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},dataframe_get={init:function(){this.setColour(DATA_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(external_Blockly_namespaceObject.Msg.mixpy_DATAFRAME_GET),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.mixpy_DATAFRAME_GET_INDEX).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.DATAFRAME_COLUMN,"column"],[external_Blockly_namespaceObject.Msg.DATAFRAME_RAW,"raw"]]),"MODE"),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_DATAFRAME_GET_TOOLTIP)}},pl_savefig={init:function(){this.setColour(DATA_HUE),this.appendValueInput("FILE").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_SAVEFIG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PL_SAVEFIG_TOOLTIP)}},pl_text={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.TEXT_TRIM_LEFT,"right"],[external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_CENTER,"center"],[external_Blockly_namespaceObject.Msg.TEXT_TRIM_RIGHT,"left"]],t=[[external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_TOP,"bottom"],[external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_CENTER,"center"],[external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_BOTTOM,"top"]];this.appendValueInput("VET").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_SETTING).appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_X),this.appendValueInput("HOR").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_Y),this.appendValueInput("NUM").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_TAG),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_HOR).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"HALIGN"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_VER).appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"VALIGN"),this.appendValueInput("FONTNUM").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_TOOLTIP)}},array_toarray={init:function(){this.setColour(DATA_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TOARRAY),this.setOutput(!0,"List"),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TOOLTIP_TOARRAY)}},plot_plot_easy={init:function(){this.setColour(DATA_HUE),this.appendValueInput("SER").setCheck("Series").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},plot_plot={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_SOLID,"-"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_DOTTED,"--"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_CHAIN,"-."],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_POINT_DOTTED,":"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,""]],t=[[external_Blockly_namespaceObject.Msg.COLOUR_RGB_BLUE,"b"],[external_Blockly_namespaceObject.Msg.COLOUR_RGB_GREEN,"g"],[external_Blockly_namespaceObject.Msg.COLOUR_RGB_RED,"r"],[external_Blockly_namespaceObject.Msg.COLOUR_CYAN,"c"],[external_Blockly_namespaceObject.Msg.COLOUR_MAGENTA,"m"],[external_Blockly_namespaceObject.Msg.COLOUR_YELLOW,"y"],[external_Blockly_namespaceObject.Msg.COLOUR_BLACK,"k"],[external_Blockly_namespaceObject.Msg.COLOUR_WHITE,"w"]],n=[[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN,"v"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP,"^"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT,"<"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT,">"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("SER").setCheck("Series").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new external_Blockly_namespaceObject.FieldDropdown(n),"DOT"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"LINE"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.HTML_COLOUR).appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"COLOR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},plot_show={init:function(){this.setColour(DATA_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_SHOW),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},plot_axes={init:function(){this.setColour(DATA_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_AXES),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},plot_legend={init:function(){this.setColour(DATA_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_LEGEND),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},plot_title={init:function(){this.setColour(DATA_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_TITLE),this.appendValueInput("TITLE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},plot_label={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.PYLAB_LABEL_X,"x"],[external_Blockly_namespaceObject.Msg.PYLAB_LABEL_Y,"y"]];this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_SET_LABEL).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR"),this.appendValueInput("LABEL").appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_LABEL).setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},plot_plot_bar={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_BAR_PLOT,"plot"],[external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_BAR_BAR,"bar"]];this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_DISPLAY_DRAW).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR"),this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_Y),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{plot:external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP,bar:external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_BAR_EASY_TOOLTIP}[e]}))}},plot_plot_scatter={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.COLOUR_RGB_BLUE,"b"],[external_Blockly_namespaceObject.Msg.COLOUR_RGB_GREEN,"g"],[external_Blockly_namespaceObject.Msg.COLOUR_RGB_RED,"r"],[external_Blockly_namespaceObject.Msg.COLOUR_CYAN,"c"],[external_Blockly_namespaceObject.Msg.COLOUR_MAGENTA,"m"],[external_Blockly_namespaceObject.Msg.COLOUR_YELLOW,"y"],[external_Blockly_namespaceObject.Msg.COLOUR_BLACK,"k"],[external_Blockly_namespaceObject.Msg.COLOUR_WHITE,"w"]],t=[[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN,"v"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP,"^"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT,"<"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT,">"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_SCATTER).appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_Y),this.appendValueInput("S").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_NUMBER),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"DOT"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.HTML_COLOUR).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("")}},plot_plot_xy={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_SOLID,"-"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_DOTTED,"--"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_CHAIN,"-."],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_POINT_DOTTED,":"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,""]],t=[[external_Blockly_namespaceObject.Msg.COLOUR_RGB_BLUE,"b"],[external_Blockly_namespaceObject.Msg.COLOUR_RGB_GREEN,"g"],[external_Blockly_namespaceObject.Msg.COLOUR_RGB_RED,"r"],[external_Blockly_namespaceObject.Msg.COLOUR_CYAN,"c"],[external_Blockly_namespaceObject.Msg.COLOUR_MAGENTA,"m"],[external_Blockly_namespaceObject.Msg.COLOUR_YELLOW,"y"],[external_Blockly_namespaceObject.Msg.COLOUR_BLACK,"k"],[external_Blockly_namespaceObject.Msg.COLOUR_WHITE,"w"]],n=[[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN,"v"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP,"^"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT,"<"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT,">"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_XY).appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_Y),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new external_Blockly_namespaceObject.FieldDropdown(n),"DOT"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"LINE"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.HTML_COLOUR).appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},plot_bar={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_ALIGN_CENTER,"center"],[external_Blockly_namespaceObject.Msg.AILGN_EDGE,"edge"]];this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_BAR).appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_Y),this.appendValueInput("WIDTH").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_WIDTH),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_BAR_ALIGN).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"ALIGN"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.HTML_COLOUR).appendField(new external_Blockly_namespaceObject.FieldColour("#0000ff"),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},plot_pie={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.mixpy_PL_PIE_SHADOW_N,"False"],[external_Blockly_namespaceObject.Msg.mixpy_PL_PIE_SHADOW_Y,"True"]],t=[[external_Blockly_namespaceObject.Msg.mixpy_PL_PIE_SHADOW_N,"None"],[external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE_AUTOPCT_Z,"%.0f%%"],[external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE_AUTOPCT_O,"%.1f%%"],[external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE_AUTOPCT_T,"%.2f%%"]];this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE).appendField(external_Blockly_namespaceObject.Msg.COLOUR_BLEND_RATIO),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TAG),this.appendValueInput("EXPLODE").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE_EXPLODE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE_AUTOPCT).appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"autopct"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE_SHADOW).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"SHADOW"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},plot_hist={init:function(){this.setColour(DATA_HUE),this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_HIST).appendField(external_Blockly_namespaceObject.Msg.MIXLY_SD_DATA),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},plot_ticks={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.PYLAB_LABEL_X,"x"],[external_Blockly_namespaceObject.Msg.PYLAB_LABEL_Y,"y"]];this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_SETTING).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR"),this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_I2C_VALUE),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TOOLTIP)}},plot_subplot={init:function(){this.setColour(DATA_HUE),this.appendValueInput("VET").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.mixpy_SUBPLOT).appendField(external_Blockly_namespaceObject.Msg.mixpy_SUBPLOT_VERTICLE),this.appendValueInput("HOR").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.mixpy_SUBPLOT_HORIZEN),this.appendValueInput("NUM").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.mixpy_SUBPLOT_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},plot_savefig={init:function(){this.setColour(DATA_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_SAVEFIG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PL_SAVEFIG_TOOLTIP)}},plot_text={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.TEXT_TRIM_LEFT,"right"],[external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_CENTER,"center"],[external_Blockly_namespaceObject.Msg.TEXT_TRIM_RIGHT,"left"]],t=[[external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_TOP,"bottom"],[external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_CENTER,"center"],[external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_BOTTOM,"top"]];this.appendValueInput("VET").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_SETTING).appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_X),this.appendValueInput("HOR").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_Y),this.appendValueInput("NUM").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_TAG),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_HOR).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"HALIGN"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_VER).appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"VALIGN"),this.appendValueInput("FONTNUM").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_TOOLTIP)}},numpy_shape={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("获取维度"),this.setOutput(!0),this.setTooltip("Returns the shape of the array.")}},numpy_reshape={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("变形"),this.appendValueInput("DIMENSIONS").appendField("后维度为"),this.setOutput(!0),this.setTooltip("Reshapes the array to the specified dimensions.")}},numpy_astype={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("把"),this.appendDummyInput().appendField("转换为").appendField(new external_Blockly_namespaceObject.FieldDropdown([["uint8","numpy.uint8"],["int32","numpy.int32"],["float32","numpy.float32"],["float64","numpy.float64"]]),"TYPE"),this.setOutput(!0),this.setTooltip("Converts array to specified type.")}},pylab_imshow={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("展示图像"),this.appendDummyInput().appendField("颜色").appendField(new external_Blockly_namespaceObject.FieldDropdown([["gray","gray"],["viridis","viridis"],["plasma","plasma"],["inferno","inferno"],["magma","magma"],["cividis","cividis"],["hot","hot"],["cool","cool"],["spring","spring"],["summer","summer"],["autumn","autumn"],["winter","winter"],["jet","jet"]]),"COLORMAP"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("Displays an image with the specified colormap.")}},numpy_mean_digit={init:function(){this.setColour(DATA_HUE),this.appendValueInput("X").appendField("从数据集"),this.appendValueInput("Y").appendField("获取平均图像,标签"),this.appendValueInput("DIGIT").appendField("为"),this.setOutput(!0),this.setTooltip("Computes the mean of X where y equals the specified digit.")}},numpy_argmin_template_match={init:function(){this.setColour(DATA_HUE),this.appendValueInput("IMAGE").appendField("获取模板匹配结果,图片:"),this.appendValueInput("TEMPLATES").appendField("模板:"),this.setOutput(!0),this.setTooltip("Finds the index of the template that minimizes the sum of absolute differences with the image.")}},numpy_mean={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("获取平均值"),this.appendDummyInput().appendField("沿着axis").appendField(new external_Blockly_namespaceObject.FieldDropdown([["None","NONE"],["0","0"],["1","1"]]),"AXIS"),this.setOutput(!0),this.setTooltip("Computes the mean of the array along the specified axis.")}},numpy_std={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("获取标准差"),this.appendDummyInput().appendField("沿着axis").appendField(new external_Blockly_namespaceObject.FieldDropdown([["None","NONE"],["0","0"],["1","1"]]),"AXIS"),this.setOutput(!0),this.setTooltip("Computes the standard deviation of the array along the specified axis.")}},pandas_dropna={init:function(){this.setColour(DATA_HUE),this.appendValueInput("DF").appendField("丢弃缺省值"),this.setOutput(!0),this.setTooltip("Drops rows with NaN values from the dataframe.")}},pandas_drop_columns={init:function(){this.setColour(DATA_HUE),this.appendValueInput("DATAFRAME").appendField("从数据集"),this.appendValueInput("COLUMNS").appendField("中删除列"),this.appendDummyInput().appendField("沿着axis").appendField(new external_Blockly_namespaceObject.FieldDropdown([["行","0"],["列","1"]]),"AXIS"),this.setOutput(!0),this.setTooltip("Drops columns from dataframe.")}},numpy_ones={init:function(){this.setColour(DATA_HUE),this.appendValueInput("NUM").appendField("生成单位行向量"),this.setOutput(!0),this.setTooltip("Creates an array of ones with the specified length.")}},numpy_c_={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY1").appendField("列拼接:数组1"),this.appendValueInput("ARRAY2").appendField("数组2"),this.setOutput(!0),this.setTooltip("Concatenates two arrays along the second axis using numpy.c_.")}},numpy_linalg_det={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("获取行列式"),this.setOutput(!0),this.setTooltip("Computes the determinant of an array using numpy.linalg.det.")}},matrix_transpose={init:function(){this.setColour(DATA_HUE),this.appendValueInput("MATRIX").appendField("获取转置"),this.setOutput(!0),this.setTooltip("Computes the transpose of the given matrix.")}},matrix_multiplication={init:function(){this.setColour(DATA_HUE),this.appendValueInput("MATRIX1"),this.appendValueInput("MATRIX2").appendField("@"),this.setOutput(!0),this.setTooltip("Multiplies two matrices.")}},numpy_linalg_inv={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("获取逆矩阵"),this.setOutput(!0),this.setTooltip("Computes the inverse of the given matrix using numpy.linalg.inv.")}},dataframe_median={init:function(){this.setColour(DATA_HUE),this.appendValueInput("DATAFRAME").appendField("获取中位数"),this.setOutput(!0),this.setTooltip("Computes the median of the given dataframe.")}},dataframe_fillna={init:function(){this.setColour(DATA_HUE),this.appendValueInput("DATAFRAME").appendField("填充缺失值"),this.appendValueInput("VALUE").appendField("填充值"),this.appendDummyInput().appendField("是否修改原数据").appendField(new external_Blockly_namespaceObject.FieldDropdown([["True","True"],["False","False"]]),"INPLACE"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("Fills NaN values in the dataframe with the specified value.")}},dataframe_info={init:function(){this.setColour(DATA_HUE),this.appendValueInput("DATAFRAME").appendField("获取DataFrame信息"),this.setOutput(!0),this.setTooltip("Displays information about the DataFrame.")}},numpy_min={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("获取最小值"),this.appendDummyInput().appendField("沿着axis").appendField(new external_Blockly_namespaceObject.FieldDropdown([["None","None"],["行","0"],["列","1"]]),"AXIS"),this.setOutput(!0),this.setTooltip("Returns the minimum value along the specified axis.")}},numpy_max={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("获取最大值"),this.appendDummyInput().appendField("沿着axis").appendField(new external_Blockly_namespaceObject.FieldDropdown([["None","None"],["行","0"],["列","1"]]),"AXIS"),this.setOutput(!0),this.setTooltip("Returns the maximum value along the specified axis.")}},numpy_size={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("获取数组大小"),this.setOutput(!0),this.setTooltip("Returns the size of the array.")}},numpy_dot={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY1").appendField("点乘数组1"),this.appendValueInput("ARRAY2").appendField("点乘数组2"),this.setOutput(!0),this.setTooltip("Returns the dot product of two arrays.")}},numpy_square={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("获取平方数组"),this.setOutput(!0),this.setTooltip("Returns the element-wise square of the array.")}},numpy_sum={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("获取数组元素和"),this.setOutput(!0),this.setTooltip("Returns the sum of the array.")}},numpy_random_random={init:function(){this.setColour(DATA_HUE),this.appendValueInput("SIZE").appendField("生成随机数组"),this.setOutput(!0),this.setTooltip("Returns a random array of the specified size.")}},py_sum={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("Python求和"),this.setOutput(!0),this.setTooltip("Returns the sum of the iterable.")}},DS_HUE=80,ds_create_linkedlist={init:function(){this.setColour(DS_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldLabel(external_Blockly_namespaceObject.Msg.DS_CREATE_LINKEDLIST_NEW)),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldLabel(external_Blockly_namespaceObject.Msg.DS_CREATE_LINKEDLIST_HEAD)).appendField(new external_Blockly_namespaceObject.FieldTextInput("head"),"VAR"),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldLabel(external_Blockly_namespaceObject.Msg.DS_CREATE_LINKEDLIST_TYPE)).appendField(new external_Blockly_namespaceObject.FieldTextInput("tag"),"TYPE"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.DS_CREATE_LINKEDLIST_ATTRIBUTE),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new external_Blockly_namespaceObject.icons.MutatorIcon(["ds_create_linkedlist_item"],this)),this.setTooltip(external_Blockly_namespaceObject.Msg.DS_CREATE_LINKEDLIST_TOOLTIP)},mutationToDom:function(){var e=document.createElement("mutation");return e.setAttribute("items",this.itemCount_),e},domToMutation:function(e){this.itemCount_=parseInt(e.getAttribute("items"),10),this.updateShape_()},decompose:function(e){var t=e.newBlock("ds_create_linkedlist_container");t.initSvg();for(var n=t.getInput("STACK").connection,a=0;at?e[t]:"name"),"KEY"+t).appendField("=")},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},ds_create_linkedlist_container={init:function(){this.setColour(DS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.DS_CREATE_LINKEDLIST_CONTAINER_TITLE),this.appendStatementInput("STACK"),this.setTooltip(external_Blockly_namespaceObject.Msg.DS_CREATE_LINKEDLIST_CONTAINER_TOOLTIP),this.contextMenu=!1}},ds_create_linkedlist_item={init:function(){this.setColour(DS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.DS_CREATE_LINKEDLIST_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DS_CREATE_LINKEDLIST_ITEM_TOOLTIP),this.contextMenu=!1}},ds_create_node={init:function(){this.setColour(DS_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_CREATE_NODE_USE).appendField(new external_Blockly_namespaceObject.FieldTextInput("tag"),"TYPE"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_CREATE_NODE_NEW),this.appendValueInput("NODE"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DS_CREATE_NODE_TOOLTIP)}},ds_get_node_attr={init:function(){this.setColour(DS_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_GET_NODE_ATTR_NODE),this.appendValueInput("NODE"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_ATTR).appendField(new external_Blockly_namespaceObject.FieldTextInput("name"),"TYPE"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DICTS_ADD_VALUE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DS_GET_NODE_ATTR_TOOLTIP)}},ds_set_node_attr={init:function(){this.setColour(DS_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_SET_NODE_ATTR_NODE),this.appendValueInput("NODE"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_ATTR).appendField(new external_Blockly_namespaceObject.FieldTextInput("name"),"TYPE"),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.DS_SET_NODE_ATTR_SET),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DS_SET_NODE_ATTR_TOOLTIP)}},ds_add_node_by_name={init:function(){this.setColour(DS_HUE),this.appendValueInput("NODE").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_HEAD_NODE);var e=[[external_Blockly_namespaceObject.Msg.DS_ADD_NODE_BEFORE,"before"],[external_Blockly_namespaceObject.Msg.DS_ADD_NODE_AFTER,"after"]];this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_LINKEDLIST),this.appendValueInput("NODE2").appendField(external_Blockly_namespaceObject.Msg.DS_SET_NODE_ATTR_NODE),this.appendValueInput("NODE3").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_TOOLTIP)}},ds_add_node_by_attr={init:function(){this.setColour(DS_HUE),this.appendValueInput("NODE").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_HEAD_NODE);var e=[[external_Blockly_namespaceObject.Msg.DS_ADD_NODE_BEFORE,"before"],[external_Blockly_namespaceObject.Msg.DS_ADD_NODE_AFTER,"after"]];this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_LINKEDLIST),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_CREATE_LINKEDLIST_ITEM_TITLE).appendField(new external_Blockly_namespaceObject.FieldTextInput("name"),"TYPE"),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AS),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_ATTR),this.appendValueInput("NODE3").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_TOOLTIP)}},ds_del_node_by_name={init:function(){this.setColour(DS_HUE),this.appendValueInput("NODE").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_HEAD_NODE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_LINKEDLIST),this.appendValueInput("NODE2").appendField(external_Blockly_namespaceObject.Msg.DS_DEL_NODE_NAME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DS_DEL_NODE_TOOLTIP)}},ds_del_node_by_attr={init:function(){this.setColour(DS_HUE),this.appendValueInput("NODE").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_HEAD_NODE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_LINKEDLIST),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_DEL_NODE_ATTR).appendField(new external_Blockly_namespaceObject.FieldTextInput("name"),"TYPE"),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AS),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_ATTR),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DS_DEL_NODE_TOOLTIP)}},ds_reverse_linkedlist={init:function(){this.setColour(DS_HUE),this.appendValueInput("NODE").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_HEAD_NODE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_REVERSE_LINKEDLIST),this.appendValueInput("NODE2").appendField(external_Blockly_namespaceObject.Msg.DS_REVERSE_LINKEDLIST_NEW_HEAD),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DS_DEL_NODE_TOOLTIP)}},FACTORY_HUE="#777777",factory_from_import={init:function(){this.setColour(FACTORY_HUE),this.appendDummyInput("").appendField("from ").appendField(new external_Blockly_namespaceObject.FieldTextInput("ESP32"),"path").appendField(" import ").appendField(new external_Blockly_namespaceObject.FieldTextInput("*"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},factory_import={init:function(){this.setColour(FACTORY_HUE),this.appendDummyInput("").appendField("import ").appendField(new external_Blockly_namespaceObject.FieldTextInput("module"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},factory_function_noreturn={init:function(){this.setColour(FACTORY_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldTextInput("my_function"),"NAME"),this.itemCount_=1,this.arguments_=["x"],this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new external_Blockly_namespaceObject.icons.MutatorIcon(["factory_create_with_item"],this))},mutationToDom:function(){var e=document.createElement("mutation");e.setAttribute("items",this.itemCount_);for(var t=0;tt?e[t]:'"key'+(t+1)+'"'),"KEY"+t).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},iot_publish_container={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},iot_publish_item={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},iot_create_with_item={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},iot_mixio_connect={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_SERVER).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_WIFI_USERNAME).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_IOT_PASSWORD).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("PROJECT").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_PROJECT).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},IOT_MIXIO_PUBLISH={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(external_Blockly_namespaceObject.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_ESP32_IOT_EMQX_PUBLISH_TOOLTIP)}},IOT_MIXIO_SUBSCRIBE={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_SUBSCRIBE+external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_MSG).appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_ESP32_IOT_EMQX_SUBSCRIBE_TOOLTIP)}},IOT_MIXIO_UNSUBSCRIBE={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(external_Blockly_namespaceObject.Msg.MSG.stop+external_Blockly_namespaceObject.Msg.MIXLY_EMQX_SUBSCRIBE).appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_ESP32_IOT_EMQX_SUBSCRIBE_TOOLTIP)}},iot_mixio_disconnect={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_ESP32_DISCONNECT_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},iot_mixio_connect_only={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_CONNECT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},iot_mixio_check={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_ESP32_CHECK_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},iot_mixio_format_topic={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(external_Blockly_namespaceObject.MQTT_Topic),this.setInputsInline(!0),this.setOutput(!0)}},iot_mixio_format_msg={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_PUBLISH_MSG),this.setInputsInline(!0),this.setOutput(!0)}},IOT_FORMATTING={init:function(){this.setColour(IOT_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_ESP32_IOT_MAP_FORMATING),this.setOutput(!0)}},IOT_FORMAT_STRING={init:function(){this.setColour(IOT_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_FORMAT+"(Json)"),this.setOutput(!0)}},IOT_EMQX_PING={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_PING),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_ESP32_IOT_EMQX_PING_TOOLTIP)}},IOT_MIXIO_NTP={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("MixIO").appendField(external_Blockly_namespaceObject.Msg.MIXLY_GET_NTP),this.appendValueInput("addr").appendField(external_Blockly_namespaceObject.blynk_SERVER_ADD),this.setInputsInline(!0),this.setOutput(!0)}},IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_SERVER).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(external_Blockly_namespaceObject.Msg.CONTROLS_FOR_INPUT_WITH+external_Blockly_namespaceObject.Msg.MIXLY_MIXIO_SHARE_KEY).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_SERVER).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(external_Blockly_namespaceObject.Msg.CONTROLS_FOR_INPUT_WITH+"Mixly Key").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},iot_mixly_key_py={init:function(){this.VISITOR_ID=external_Mixly_namespaceObject.Config.BOARD.visitorId.str32.substring(0,8).toUpperCase(),this.setColour(IOT_HUE),this.appendDummyInput("").appendField(this.newQuote_(!0)).appendField(new external_Blockly_namespaceObject.FieldTextInput(this.visitorId),"VISITOR_ID").appendField(this.newQuote_(!1)),this.setOutput(!0,null)},onchange:function(){const e=this.getFieldValue("VISITOR_ID");this.VISITOR_ID!==e&&this.setFieldValue(this.VISITOR_ID,"VISITOR_ID")},newQuote_:function(e){if(e==this.RTL)var t="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAqUlEQVQI1z3KvUpCcRiA8ef9E4JNHhI0aFEacm1o0BsI0Slx8wa8gLauoDnoBhq7DcfWhggONDmJJgqCPA7neJ7p934EOOKOnM8Q7PDElo/4x4lFb2DmuUjcUzS3URnGib9qaPNbuXvBO3sGPHJDRG6fGVdMSeWDP2q99FQdFrz26Gu5Tq7dFMzUvbXy8KXeAj57cOklgA+u1B5AoslLtGIHQMaCVnwDnADZIFIrXsoXrgAAAABJRU5ErkJggg==";else t="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAn0lEQVQI1z3OMa5BURSF4f/cQhAKjUQhuQmFNwGJEUi0RKN5rU7FHKhpjEH3TEMtkdBSCY1EIv8r7nFX9e29V7EBAOvu7RPjwmWGH/VuF8CyN9/OAdvqIXYLvtRaNjx9mMTDyo+NjAN1HNcl9ZQ5oQMM3dgDUqDo1l8DzvwmtZN7mnD+PkmLa+4mhrxVA9fRowBWmVBhFy5gYEjKMfz9AylsaRRgGzvZAAAAAElFTkSuQmCC";return new external_Blockly_namespaceObject.FieldImage(t,12,12,'"')}},iot_mixly_key={init:function(){this.VISITOR_ID=external_Mixly_namespaceObject.Config.BOARD.visitorId.str32.substring(0,8).toUpperCase(),this.setColour(IOT_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldTextInput(this.visitorId),"VISITOR_ID"),this.setOutput(!0,null)},onchange:function(){const e=this.getFieldValue("VISITOR_ID");this.VISITOR_ID!==e&&this.setFieldValue(this.VISITOR_ID,"VISITOR_ID")}},iot_client_onboard={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("MixIO").appendField(external_Blockly_namespaceObject.Msg.MSG.catEthernet_clinet),this.setOutput(!0),this.setInputsInline(!0)}},iot_http_client={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("HTTP"+external_Blockly_namespaceObject.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(external_Blockly_namespaceObject.Msg.DISPLAY_IMAGE_LET2),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_REQUESTS_GET).appendField(external_Blockly_namespaceObject.Msg.MIXLY_GET_CURRENT_TIME).appendField(external_Blockly_namespaceObject.Msg.MIXLY_OPEN_DEBUG).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},iot_http_data={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("HTTP"+external_Blockly_namespaceObject.Msg.MIXLY_Client).appendField(external_Blockly_namespaceObject.Msg.MIXLY_GET).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_REQUESTS_LEN,"client_len"],[external_Blockly_namespaceObject.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[external_Blockly_namespaceObject.Msg.MIXLY_REQUESTS_MESSAGE,"text"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},iot_mqtt_client={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("MQTT"+external_Blockly_namespaceObject.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(external_Blockly_namespaceObject.Msg.MIXLY_CONNECTTO),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_INIT_SUBSCRIBE).appendField(external_Blockly_namespaceObject.MQTT_Topic).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_GET_CURRENT_TIME,""]]),"key").appendField(external_Blockly_namespaceObject.Msg.MIXLY_OPEN_DEBUG).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},iot_mqtt_data={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("MQTT"+external_Blockly_namespaceObject.Msg.MIXLY_Client).appendField(external_Blockly_namespaceObject.Msg.MIXLY_GET).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_REQUESTS_LEN,"client_len"],[external_Blockly_namespaceObject.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[external_Blockly_namespaceObject.Msg.MIXLY_REQUESTS_MESSAGE,"time_msg()"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},iot_onenetconnect=iot_onenet_connect,iot_onenetdisconnect=iot_onenet_disconnect,iot_checkonenet=iot_onenet_check,iot_publish=iot_onenet_publish,PINS_HUE=230,pins_digital_write={init:function(){this.setColour(PINS_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown(external_Mixly_namespaceObject.Profile.default.digital_write),"PIN"),this.setOutput(!0)}},pins_digital_read={init:function(){this.setColour(PINS_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown(external_Mixly_namespaceObject.Profile.default.digital_read),"PIN"),this.setOutput(!0)}},pins_analog_write={init:function(){this.setColour(PINS_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown(external_Mixly_namespaceObject.Profile.default.analog_write),"PIN"),this.setOutput(!0)}},pins_analog_read={init:function(){this.setColour(PINS_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown(external_Mixly_namespaceObject.Profile.default.analog_read),"PIN"),this.setOutput(!0)}},SERIAL_HUE=40,serial_open={init:function(){this.setColour(SERIAL_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldLabel(external_Blockly_namespaceObject.Msg.MIXPY_SERIAL_OPEN)).appendField(new external_Blockly_namespaceObject.FieldTextInput("ser"),"SER"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_SERIAL_BEGIN).appendField(new external_Blockly_namespaceObject.FieldDropdown([["115200","115200"],["256000","256000"],["128000","128000"],["57600","57600"],["56000","56000"],["43000","43000"],["38400","38400"],["28800","28800"],["19200","19200"],["9600","9600"],["4800","4800"],["2400","2400"],["1200","1200"],["600","600"],["300","300"],["110","110"]]),"BPS"),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXPY_SERIAL_OPEN_TIMEOUT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXPY_SERIAL_OPEN_TOOLTIP)}},serial_write={init:function(){this.setColour(SERIAL_HUE),this.appendValueInput("SER"),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXPY_SERIAL_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXPY_SERIAL_WRITE_TOOLTIP)}},serial_read_b={init:function(){this.setColour(SERIAL_HUE),this.appendValueInput("SER"),this.appendValueInput("VAR").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXPY_SERIAL_READ),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXPY_SERIAL_READ_TOOLTIP)}},serial_close={init:function(){this.setColour(SERIAL_HUE),this.appendValueInput("SER"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXPY_SERIAL_CLOSE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXPY_SERIAL_CLOSE_TOOLTIP)}},SKLEARN_HUE=80,sklearn_make_classification={init:function(){this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.SKLEARN_CLASSIFICATION_GENERATION),this.appendValueInput("n_samples").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_SAMPLES),this.appendValueInput("n_features").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_FEATURES),this.appendValueInput("n_informative").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_EFFECTIVE_FEATURES),this.appendValueInput("n_redundant").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_REDUNDANT_FEATURES),this.appendValueInput("n_repeated").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_REPEATED_FEATURES),this.appendValueInput("n_classes").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_CLASSES),this.appendValueInput("n_clusters_per_class").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_CLUSTERS_PER_CLASSES),this.appendValueInput("random_state").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setOutput(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_make_regression={init:function(){this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.SKLEARN_REGRESSION_GENERATION),this.appendValueInput("n_samples").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_SAMPLES),this.appendValueInput("n_features").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_FEATURES),this.appendValueInput("n_informative").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_EFFECTIVE_FEATURES),this.appendValueInput("n_targets").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_LABELS),this.appendValueInput("bias").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.DEVIATION),this.appendValueInput("noise").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NOISE),this.appendValueInput("random_state").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setOutput(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_make_blobs={init:function(){this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.SKLEARN_CLUSTERING_GENERATION),this.appendValueInput("n_samples").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_SAMPLES),this.appendValueInput("n_features").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_FEATURES),this.appendValueInput("centers").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_CLUSTERS),this.appendValueInput("cluster_std").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.STANDARD_DEVIATION_OF_CLUSTER),this.appendValueInput("center_box").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.CLUSTER_BOUNDING_BOX),this.appendValueInput("shuffle").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SHUFFLE_SAMPLES),this.appendValueInput("random_state").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setOutput(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_load={init:function(){var e=[[external_Blockly_namespaceObject.Msg.SKLEARN_LOAD_IRIS,"load_iris"],[external_Blockly_namespaceObject.Msg.SKLEARN_LOAD_BOSTON,"load_boston"],[external_Blockly_namespaceObject.Msg.SKLEARN_LOAD_DIABETES,"load_diabetes"],[external_Blockly_namespaceObject.Msg.SKLEARN_LOAD_BREAST_CANCER,"load_breast_cancer"],[external_Blockly_namespaceObject.Msg.SKLEARN_LOAD_LINNERUD,"load_linnerud"],[external_Blockly_namespaceObject.Msg.SKLEARN_LOAD_DIGITS,"load_digits"]];this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.LOAD).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"type").appendField(new external_Blockly_namespaceObject.FieldTextInput("iris"),"name"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")},getVars:function(){return[this.getFieldValue("name")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("name"))&&this.setTitleValue(t,"name")}},sklearn_data_target={init:function(){this.appendValueInput("name").setCheck(null).appendField("sklearn "+external_Blockly_namespaceObject.Msg.DATA_SET),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MIXLY_GET).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.EIGENVALUES,"data"],[external_Blockly_namespaceObject.Msg.LABEL_VALUE,"target"],[external_Blockly_namespaceObject.Msg.FEATURE,"feature_names"],[external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TAG,"target_names"]]),"type"),this.setOutput(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_train_test_split={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.DATA_SEGMENTATION),this.appendValueInput("train_data").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.EIGENVALUES),this.appendValueInput("train_target").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.LABEL_VALUE),this.appendValueInput("test_size").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.TEST_SET_PROPORTION),this.appendValueInput("rondom_state").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setOutput(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_train_test_split_no_target={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.DATA_SEGMENTATION),this.appendValueInput("train_data").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.EIGENVALUES),this.appendValueInput("test_size").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.TEST_SET_PROPORTION),this.appendValueInput("rondom_state").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setOutput(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_LinearRegression={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.SKLEARN_LINEARREGRESSION_INIT),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("fit_intercept").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_CALCULATE_MODEL_INTERRUPT),this.appendValueInput("normalize").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_REGRESSION_NORMIALIZATION),this.appendValueInput("n_jobs").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_THREADS),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_Ridge={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.SKLEARN_RIDGE_INIT),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("alpha").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_REGULA_INTENSITY),this.appendValueInput("fit_intercept").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_CALCULATE_MODEL_INTERRUPT),this.appendValueInput("normalize").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_REGRESSION_NORMIALIZATION),this.appendValueInput("max_iter").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_MAX_ITER),this.appendValueInput("random_state").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_DecisionTreeClassifier_Regressor={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.SKLEARN_DECISIONTREE_INIT).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.SKLEARN_CLASSIFICATION_ALGORITHM,"DecisionTreeClassifier"],[external_Blockly_namespaceObject.Msg.SKLEARN_REGRESSION_ALGORITHM,"DecisionTreeRegressor"]]),"type"),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("max_depth").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_MAXIMUM_TREE_DEPTH),this.appendValueInput("random_state").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_RandomForestClassifier_Regressor={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.SKLEARN_RANDOMFOREST_INIT).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.SKLEARN_CLASSIFICATION_ALGORITHM,"RandomForestClassifier"],[external_Blockly_namespaceObject.Msg.SKLEARN_REGRESSION_ALGORITHM,"RandomForestRegressor"]]),"type"),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("n_estimators").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_TREES),this.appendValueInput("max_depth").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_MAXIMUM_TREE_DEPTH),this.appendValueInput("n_jobs").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_THREADS),this.appendValueInput("random_state").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_KNeighborsClassifier_Regressor={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.SKLEARN_KNN_INIT).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.SKLEARN_CLASSIFICATION_ALGORITHM,"KNeighborsClassifier"],[external_Blockly_namespaceObject.Msg.SKLEARN_REGRESSION_ALGORITHM,"KNeighborsRegressor"]]),"type"),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("K").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField("K"),this.appendValueInput("n_jobs").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_THREADS),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_GaussianNB={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.SKLEARN_GAUSSINNB_INIT),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_KMeans={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.SKLEARN_KMEANS_INIT),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("n_clusters").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_CLUSTERS_JUST),this.appendValueInput("max_iter").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_MAX_ITER),this.appendValueInput("random_state").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.RANDOM_SEED),this.appendValueInput("n_jobs").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_THREADS),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_fit={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.TRAINING_MODEL),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("train_data").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.EIGENVALUES),this.appendValueInput("train_target").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.LABEL_VALUE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_fit_no_target={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.TRAINING_MODEL),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("train_data").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.EIGENVALUES),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_predict={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.MODEL_PRODICTION),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("train_data").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.EIGENVALUES),this.setInputsInline(!0),this.setOutput(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_score={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.CALCULATE_THE_SCORE),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("train_data").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.EIGENVALUES),this.appendValueInput("train_target").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.LABEL_VALUE),this.setInputsInline(!0),this.setOutput(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_score_no_target={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.CALCULATE_THE_SCORE),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("train_data").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.EIGENVALUES),this.setInputsInline(!0),this.setOutput(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_coef_intercept={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.SKLEARN_GENERALIZED_LINEAR_REGRESSION),this.appendValueInput("model_name").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).setCheck(null).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MIXLY_GET).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.SKLEARN_COEF,"coef_"],[external_Blockly_namespaceObject.Msg.SKLEARN_INTERCEPT,"intercept_"]]),"type"),this.setOutput(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_cluster_centers_labels_inertia={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.SKLEARN_CLUSTERING),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_GET).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.SKLEARN_CLUSTER_CENTER,"cluster_centers_"],[external_Blockly_namespaceObject.Msg.SKLEARN_LABELS_AFTER_CLUSTERING,"labels_"],[external_Blockly_namespaceObject.Msg.SKLEARN_CLUSTERING_SUM_OF_SQUARED_DISTANCES,"inertia_"]]),"type"),this.setInputsInline(!0),this.setOutput(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_save_load_model={init:function(){this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField("sklearn").appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.SKLEARN_SAVE_MODEL,"dump"],[external_Blockly_namespaceObject.Msg.SKLEARN_LOAD_MODEL,"load"]]),"type").appendField(" "+external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("address").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},SYSTEM_HUE=120,base_delay={init:function(){this.setColour(SYSTEM_HUE),this.appendValueInput("DELAY_TIME",Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_DELAY+"("+external_Blockly_namespaceObject.Msg.MIXLY_MILLIS+")").setCheck(Number),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_CONTROL_DELAY)}},system_controls_millis={init:function(){this.setColour(SYSTEM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_time_time),this.setOutput(!0,Number),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_CONTROL_MILLIS)}},time_localtime={init:function(){this.setColour(SYSTEM_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_SYSTEM_TIME_LOCALTIME),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_ALL,"all"],[external_Blockly_namespaceObject.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_YEAR,"0"],[external_Blockly_namespaceObject.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_MONTH,"1"],[external_Blockly_namespaceObject.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_DATE,"2"],[external_Blockly_namespaceObject.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_HOUR,"3"],[external_Blockly_namespaceObject.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_MINUTE,"4"],[external_Blockly_namespaceObject.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_SECOND,"5"],[external_Blockly_namespaceObject.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_INWEEK,"6"],[external_Blockly_namespaceObject.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_INYEAR,"7"],[external_Blockly_namespaceObject.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_DST,"8"]]),"op"),this.setOutput(!0),this.setInputsInline(!0)}},system_Panic_with_status_code={init:function(){this.setColour(SYSTEM_HUE),this.appendValueInput("STATUS_CODE",Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_Panic_with_status_code).setCheck(Number),this.setPreviousStatement(!0,null),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_CONTROL_DELAY)}},system_reset={init:function(){this.setColour(SYSTEM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_Reset_micro),this.setPreviousStatement(!0)}},controls_mstimer2={init:function(){this.setColour(SYSTEM_HUE),this.appendValueInput("TIME").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField("MsTimer2").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MSTIMER2_EVERY),this.appendDummyInput().appendField("ms"),this.appendStatementInput("DO").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MSTIMER2_DO),this.setPreviousStatement(!0),this.setNextStatement(!0)}},controls_mstimer2_start={init:function(){this.setColour(SYSTEM_HUE),this.appendDummyInput().appendField("MsTimer2").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MSTIMER2_START),this.setPreviousStatement(!0),this.setNextStatement(!0)}},controls_mstimer2_stop={init:function(){this.setColour(SYSTEM_HUE),this.appendDummyInput().appendField("MsTimer2").appendField(external_Blockly_namespaceObject.Msg.MIXLY_STOP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},system_time_sleep={init:function(){this.setColour(SYSTEM_HUE),this.appendValueInput("DELAY_TIME",Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_DELAY).setCheck(Number),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_SECOND),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_CONTROL_DELAY)}},TURTLE_HUE=180,turtle_create={init:function(){this.setColour(TURTLE_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_create).appendField(new external_Blockly_namespaceObject.FieldTextInput("tina"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.blockpy_turtle_create_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},turtle_done={init:function(){this.setColour(TURTLE_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_TURTLE_DONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_exitonclick={init:function(){this.setColour(TURTLE_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TURTLE_EXITONCLICK),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_move={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var e=[[external_Blockly_namespaceObject.Msg.blockpy_forward,"forward"],[external_Blockly_namespaceObject.Msg.blockpy_backward,"backward"]];this.setColour(TURTLE_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_MOVE_BY).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_MOVE_BY_num),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{forward:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_FORWARD,backward:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_BACKWARD}[e]}))}},turtle_rotate={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var e=[[external_Blockly_namespaceObject.Msg.blockpy_left,"left"],[external_Blockly_namespaceObject.Msg.blockpy_right,"right"]];this.setColour(TURTLE_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_rotate).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{left:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_LEFT,right:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_RIGHT}[e]}))}},turtle_setheading={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("TUR").setCheck("Turtle"),this.appendValueInput("data").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.blockpy_setheading),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_setheading_degree),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_screen_delay={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("TUR").setCheck("Turtle"),this.appendValueInput("data").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_SCREEN_DELAY),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MILLIS),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_SCREEN_DELAY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_goto={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("TUR").setCheck("Turtle"),this.appendValueInput("data").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_goto),this.appendValueInput("val").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_goto_y),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_goto_position),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_setxy={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var e=[[external_Blockly_namespaceObject.Msg.PYLAB_LABEL_X,"x"],[external_Blockly_namespaceObject.Msg.PYLAB_LABEL_Y,"y"]];this.setColour(TURTLE_HUE),this.appendValueInput("VAR").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TURTLE_SETXY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TURTLE_SETXY_TOOLTIP)}},turtle_pos_shape={init:function(){this.setColour(TURTLE_HUE);var e=[[external_Blockly_namespaceObject.Msg.TURTLE_POS,"pos"],[external_Blockly_namespaceObject.Msg.TURTLE_SHAPE,"shape"],[external_Blockly_namespaceObject.Msg.TURTLE_HEADING,"heading"],[external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TURTLE_WIDTH,"width"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_GET_SHAPESIZE,"shapesize"],[external_Blockly_namespaceObject.Msg.MIXLY_SPEED,"speed"]];this.appendValueInput("TUR").setCheck("Turtle"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.TURTLE_POS_SHAPE).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR");var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{pos:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_POS,shape:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_SHAPE,heading:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_HEADING,width:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_WIDTH,speed:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_GET_SPEED,shapesize:external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_GET_SHAPESIZE_TOOLTIP}[e]})),this.setOutput(!0),this.setInputsInline(!0)}},turtle_clear={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var e=[[external_Blockly_namespaceObject.Msg.MIXLY_LCD_STAT_CLEAR,"clear"],[external_Blockly_namespaceObject.Msg.blockpy_turtle_reset,"reset"],[external_Blockly_namespaceObject.Msg.blockpy_turtle_home,"home"]];this.setColour(TURTLE_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{clear:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_CLEAR,reset:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_RESET,home:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_HOME}[e]}))}},turtle_penup={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var e=[[external_Blockly_namespaceObject.Msg.blockpy_turtle_penup,"penup"],[external_Blockly_namespaceObject.Msg.blockpy_turtle_pendown,"pendown"]];this.setColour(TURTLE_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{penup:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_PENUP,pendown:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_PENDOWN}[e]}))}},turtle_fill={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var e=[[external_Blockly_namespaceObject.Msg.blockpy_turtle_beginfill,"begin"],[external_Blockly_namespaceObject.Msg.blockpy_turtle_endfill,"end"]];this.setColour(TURTLE_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{begin:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_BEGINFILL,end:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_ENDFILL}[e]}))}},turtle_size_speed={init:function(){this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldTextInput("tina"),"TUR");var e=[[external_Blockly_namespaceObject.Msg.blockpy_turtle_size,"pensize"],[external_Blockly_namespaceObject.Msg.MIXLY_SPEED,"speed"]];this.setColour(TURTLE_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_set).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR").appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_set_num),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{pensize:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_SIZE,speed:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_SPEED}[e]}))}},turtle_size={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("TUR").setCheck("Turtle"),this.appendValueInput("data").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_set_size),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_SIZE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_speed={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("TUR").setCheck("Turtle"),this.appendValueInput("data").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_set_speed),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_SPEED),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_circle={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var e=[[external_Blockly_namespaceObject.Msg.blockpy_turtle_circle,"circle"],[external_Blockly_namespaceObject.Msg.blockpy_turtle_dot,"dot"]];this.setColour(TURTLE_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_draw).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR").appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_radius),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{circle:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_CIRCLE,dot:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_DOT}[e]}))}},turtle_circle_advanced={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_radius),this.appendValueInput("data").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_angle),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_CIRCLE)}},turtle_visible={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var e=[[external_Blockly_namespaceObject.Msg.blockpy_turtle_hide,"hideturtle"],[external_Blockly_namespaceObject.Msg.blockpy_turtle_show,"showturtle"]];this.setColour(TURTLE_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{hideturtle:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_HIDE,showturtle:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_SHOW}[e]}))}},turtle_bgcolor={init:function(){this.setColour(TURTLE_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_bgcolor).appendField(new external_Blockly_namespaceObject.FieldColour("#ff0000"),"FIELDNAME"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_pencolor={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_pencolor).appendField(new external_Blockly_namespaceObject.FieldColour("#ff0000"),"FIELDNAME"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_fillcolor={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_fillcolor).appendField(new external_Blockly_namespaceObject.FieldColour("#ff0000"),"FIELDNAME"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_clone={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("TUR").setCheck("Turtle"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.TURTLE_CLONE),this.setTooltip(external_Blockly_namespaceObject.Msg.TURTLE_CLONE_TOOLTIP),this.setOutput(!0)}},turtle_bgcolor_hex_new={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("VAR").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_bgcolor),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_pencolor_hex_new={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendValueInput("VAR").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_pencolor),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_fillcolor_hex_new={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendValueInput("VAR").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_fillcolor),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_color={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_pencolor).appendField(new external_Blockly_namespaceObject.FieldColour("#ff0000"),"FIELDNAME"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_fillcolor).appendField(new external_Blockly_namespaceObject.FieldColour("#ff0000"),"FIELDNAME2"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_color_hex={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendValueInput("VAR1").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_pencolor),this.appendValueInput("VAR2").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_fillcolor),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_bgcolor_hex={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("VAR").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_bgcolor_hex),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_pencolor_hex={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendValueInput("VAR").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_pencolor_hex),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_fillcolor_hex={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendValueInput("VAR").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_fillcolor_hex),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_shape={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var e=[[external_Blockly_namespaceObject.Msg.blockpy_turtle_shape_arrow,"arrow"],[external_Blockly_namespaceObject.Msg.blockpy_turtle_shape_turtle,"turtle"],[external_Blockly_namespaceObject.Msg.blockpy_turtle_shape_circle,"circle"],[external_Blockly_namespaceObject.Msg.blockpy_turtle_shape_square,"square"],[external_Blockly_namespaceObject.Msg.blockpy_turtle_shape_triangle,"triangle"],[external_Blockly_namespaceObject.Msg.blockpy_turtle_shape_classic,"classic"]];this.setColour(TURTLE_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_shape).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.TURTLE_SHAPE_TOOLTIP)}},turtle_shapesize={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_SHAPESIZE),this.appendValueInput("WID").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_SHAPESIZE_WID),this.appendValueInput("LEN").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_SHAPESIZE_LEN),this.appendValueInput("OUTLINE").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_SHAPESIZE_OUTLINE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_SHAPESIZE)}},turtle_numinput={init:function(){this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TURTLE_NUMINPUT),this.setColour(TURTLE_HUE),this.appendValueInput("TITLE").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TURTLE_TEXTINPUT_TITLE),this.appendValueInput("PROMPT").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TURTLE_TEXTINPUT_PROMPT),this.appendValueInput("DEFAULT").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.DICTS_DEFAULT_VALUE),this.appendValueInput("MIN").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MATH_ONLIST_OPERATOR_MIN),this.appendValueInput("MAX").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MATH_ONLIST_OPERATOR_MAX),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(external_Blockly_namespaceObject.Msg.TURTLE_NUMINPUT_TOOLTIP)}},turtle_textinput={init:function(){this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TURTLE_TEXTINPUT),this.setColour(TURTLE_HUE),this.appendValueInput("TITLE").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TURTLE_TEXTINPUT_TITLE),this.appendValueInput("PROMPT").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TURTLE_TEXTINPUT_PROMPT),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(external_Blockly_namespaceObject.Msg.TURTLE_TEXTINPUT_TOOLTIP)}},turtle_write={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendValueInput("VAR").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_write),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.TURTLE_WRITE_TOOLTIP)}},turtle_write_format={init:function(){var e=[[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"]],t=[[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_ALIGN_LEFT,"left"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_ALIGN_CENTER,"center"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_ALIGN_RIGHT,"right"]],n=[[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE_NORMAL,"normal"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE_BOLD,"bold"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE_ITALIC,"italic"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE_BOLD_ITALIC,'bold","italic']];this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendValueInput("VAR").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_write),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_MOVE).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"MOVE"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_ALIGN).appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"ALIGN"),this.appendValueInput("FONTNAME").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_NAME),this.appendValueInput("FONTNUM").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE).appendField(new external_Blockly_namespaceObject.FieldDropdown(n),"FONTTYPE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.TURTLE_WRITE_TOOLTIP)}},turtle_write_format_skulpt={init:function(){var e=[[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"]],t=[[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_ALIGN_LEFT,"left"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_ALIGN_CENTER,"center"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_ALIGN_RIGHT,"right"]],n=[[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE_NORMAL,"normal"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE_BOLD,"bold"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE_ITALIC,"italic"]];this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendValueInput("VAR").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_write),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_MOVE).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"MOVE"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_ALIGN).appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"ALIGN"),this.appendValueInput("FONTNAME").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_NAME),this.appendValueInput("FONTNUM").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE).appendField(new external_Blockly_namespaceObject.FieldDropdown(n),"FONTTYPE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.TURTLE_WRITE_TOOLTIP)}},turtle_color_seclet={init:function(){this.setColour(TURTLE_HUE),this.appendDummyInput("").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(new external_Blockly_namespaceObject.FieldColour("ff0000"),"COLOR"),this.setInputsInline(!0),this.setOutput(!0,String)}},turtle_getscreen={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("TUR").setCheck("Turtle"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_GETSCREEN).appendField(new external_Blockly_namespaceObject.FieldTextInput("screen"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_GETSCREEN_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},turtle_onkey={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("TUR"),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_EVENT_ONKEY),this.appendValueInput("callback").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_EVENT_ONKEY_TOOLTIP)}},turtle_onclick={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("TUR"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_EVENT_ONCLICK),this.appendValueInput("callback").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_EVENT_ONCLICK_TOOLTIP)}},turtle_ontimer={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("TUR"),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_EVENT_ONTIMER),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_mSecond),this.appendValueInput("callback").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_EVENT_ONTIMER_TOOLTIP)}},turtle_listen={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("TUR"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_SCREEN_LISTEN),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_screen_savefig={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("TUR"),this.appendValueInput("FILE").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_SAVEFIG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_TURTLE_SAVEFIG_TOOLTIP)}},ai_AI_ChooseAndGet=function(e,t){var n=this.getFieldValue("TYPE");return t.definitions_.import_FileDialog="import FileDialog",["FileDialog."+n+"()",t.ORDER_ATOMIC]},ai_AI_client=function(e,t){var n=this.getFieldValue("CTYPE");return t.definitions_.import_aip="import aip",t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+" = aip."+n+"("+t.valueToCode(this,"API_KEY",t.ORDER_ATOMIC)+", "+t.valueToCode(this,"SECRET_KEY",t.ORDER_ATOMIC)+")\n"},ai_AI_Speech_synthesis=function(e,t){return t.definitions_.import_aip="import aip",[t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".synthesis("+t.valueToCode(this,"STR",t.ORDER_ATOMIC)+", options="+(t.valueToCode(this,"ATTR",t.ORDER_ATOMIC)||"{}")+")",t.ORDER_ATOMIC]},ai_AI_Speech_asr=function(e,t){return t.definitions_.import_aip="import aip",[t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".asr("+(t.valueToCode(this,"FILE",t.ORDER_ATOMIC)||'""')+", options="+(t.valueToCode(this,"ATTR",t.ORDER_ATOMIC)||"{}")+")",t.ORDER_ATOMIC]},ai_AI_ImageClassify=function(e,t){t.definitions_.import_aip="import aip";var n=t.valueToCode(this,"SUB",t.ORDER_ATOMIC),a=t.valueToCode(this,"ADDR",t.ORDER_ATOMIC);return[n+"."+t.valueToCode(this,"FUNC",t.ORDER_ATOMIC)+"("+a+", options="+(t.valueToCode(this,"ATTR",t.ORDER_ATOMIC)||"{}")+")",t.ORDER_ATOMIC]},ai_AI_Face_match=function(e,t){return t.definitions_.import_aip="import aip",[t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".match("+t.valueToCode(this,"VAR",t.ORDER_ATOMIC)+","+t.valueToCode(this,"VAR2",t.ORDER_ATOMIC)+", options="+(t.valueToCode(this,"ATTR",t.ORDER_ATOMIC)||"{}")+")",t.ORDER_ATOMIC]},ai_AI_Ocr=function(e,t){t.definitions_.import_aip="import aip";var n=t.valueToCode(this,"SUB",t.ORDER_ATOMIC),a=t.valueToCode(this,"ADDR",t.ORDER_ATOMIC);return[n+"."+t.valueToCode(this,"FUNC",t.ORDER_ATOMIC)+"("+a+", options="+(t.valueToCode(this,"ATTR",t.ORDER_ATOMIC)||"{}")+")",t.ORDER_ATOMIC]},ai_AI_Nlp=function(e,t){t.definitions_.import_aip="import aip";var n=t.valueToCode(this,"SUB",t.ORDER_ATOMIC),a=t.valueToCode(this,"STR",t.ORDER_ATOMIC);return[n+"."+t.valueToCode(this,"FUNC",t.ORDER_ATOMIC)+"("+a+", options="+(t.valueToCode(this,"ATTR",t.ORDER_ATOMIC)||"{}")+")",t.ORDER_ATOMIC]},ai_AI_Nlp_Sim=function(e,t){t.definitions_.import_aip="import aip";var n=t.valueToCode(this,"SUB",t.ORDER_ATOMIC),a=t.valueToCode(this,"STR1",t.ORDER_ATOMIC),_=t.valueToCode(this,"STR2",t.ORDER_ATOMIC);return[n+"."+t.valueToCode(this,"FUNC",t.ORDER_ATOMIC)+"("+a+","+_+", options="+(t.valueToCode(this,"ATTR",t.ORDER_ATOMIC)||"{}")+")",t.ORDER_ATOMIC]},ai_AI_Nlp_Topic=function(e,t){return t.definitions_.import_aip="import aip",[t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".topic("+t.valueToCode(this,"STR1",t.ORDER_ATOMIC)+","+t.valueToCode(this,"STR2",t.ORDER_ATOMIC)+")",t.ORDER_ATOMIC]},ai_AI_Nlp_newsSummary=function(e,t){return t.definitions_.import_aip="import aip",[t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".newsSummary("+t.valueToCode(this,"STR",t.ORDER_ATOMIC)+","+t.valueToCode(this,"LEN",t.ORDER_ATOMIC)+", options="+(t.valueToCode(this,"ATTR",t.ORDER_ATOMIC)||"{}")+")",t.ORDER_ATOMIC]},ai_AI_ImageClassify_Func=function(e,t){return[this.getFieldValue("TYPE"),t.ORDER_ATOMIC]},ai_AI_Ocr_Func=function(e,t){return[this.getFieldValue("TYPE"),t.ORDER_ATOMIC]},ai_AI_Nlp_Func=function(e,t){return[this.getFieldValue("TYPE"),t.ORDER_ATOMIC]},ai_AI_Nlp_Func_sim=function(e,t){return[this.getFieldValue("TYPE"),t.ORDER_ATOMIC]},ai_AI_audio=function(e,t){return t.definitions_.import_audio="import audio","audio.audio_record("+(t.valueToCode(this,"VAR",t.ORDER_ATOMIC)||'""')+","+(t.valueToCode(this,"TIME",t.ORDER_ATOMIC)||"0")+")\n"},ai_AI_photo=function(e,t){return t.definitions_.import_audio="import cam","cam.photo_capture("+(t.valueToCode(this,"VAR",t.ORDER_ATOMIC)||'""')+","+(t.valueToCode(this,"BUT",t.ORDER_ATOMIC)||'""')+")\n"},ai_AI_result=function(e,t){var n=t.valueToCode(this,"AI",t.ORDER_ASSIGNMENT)||"0",a=this.getFieldValue("CTYPE");if("Image"==a)var _=n+'["result"][0]["keyword"]';if("Speech"==a)_=n+'["result"][0]';if("Face"==a||"OcrSimilarity"==a)_=n+'["score"]';if("Ocr"==a)_=n+'["words_result"]';return[_,t.ORDER_ATOMIC]},algorithm_algorithm_prepare=function(e,t){t.definitions_.import_sprite="import sprite";return"g = [[0,0,0,0,0,0,0,0,0,0], [0,0,0,1,0,0,0,0,0,0], [0,0,0,1,0,0,1,0,0,0], [0,1,1,0,1,1,0,0,0,0], [0,0,0,1,0,0,0,1,0,0], [0,0,0,1,0,0,1,1,0,0], [0,0,1,0,0,1,0,1,0,0], [0,0,0,0,1,1,1,0,0,0]]\nmark = [[0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0]]\nvis = [0,1,0,0,0,0,0,0,0]\nposition = [[0, 0], [200, 200], [250, 60], [320, 200], [280, 380], [470, 250], [670, 90], [650, 340]]\nsprite.clearAllSprites()\nsprite.createBackground('map_xuexiao')\n\nhouse = [ sprite.Sprite('mark', 150, 380),\n sprite.Sprite('School', 115, 195),\n sprite.Sprite('House25', 264, 67),\n sprite.Sprite('House36', 320, 200),\n sprite.Sprite('House47', 290, 371),\n sprite.Sprite('House25', 479, 233),\n sprite.Sprite('House36', 674, 96),\n sprite.Sprite('House47', 642, 318)\n]\nfor i in house:\n i.hide()\n"},algorithm_algorithm_add_school=function(){return"path = [1]\ncar = sprite.Sprite('car', position[1][0], position[1][1])\nhouse[1].show()\ncar.nowPos = 1\ndef drive(n):\n if g[car.nowPos][n]==1:\n car.slideTo(position[n][0], position[n][1], 1)\n car.nowPos = n\n else:\n print('移动失败!程序有误!')\n exit()\n"},algorithm_algorithm_find_path=function(e,t){t.definitions_.import_random="import random";return"f = path[(len(path) - 1)]\nflag = 0\nfor _my_variable in [6,5,4,3,2,1,0]:\n if vis[_my_variable+1] == 0 and g[f][_my_variable+1] == 1:\n if mark[f][_my_variable+1] == 0:\n flag = 1\n break\n"},algorithm_algorithm_new_path=function(e,t){return["flag == 1",t.ORDER_ATOMIC]},algorithm_algorithm_set_path=function(){return"mark[f][_my_variable+1] = 1\nvis[_my_variable+1] = 1\n"},algorithm_algorithm_add_path=function(){return"path.append(_my_variable+1)\ndrive(path[len(path) - 1])\nhouse[_my_variable+1].show()\n"},algorithm_algorithm_del_path=function(e,t){t.definitions_.import_time="import time";return"del path[len(path) - 1]\nhouse[0].show()\ntime.sleep(0.5)\nhouse[0].hide()\n"},algorithm_algorithm_return_path=function(){var e="for i in range(7):\n mark[f][i+1] = 0\n vis[f] = 0\n";return e="house[f].hide()\ndrive(path[len(path) - 1])\n"+e},algorithm_algorithm_no_left=function(e,t){return["len(path) == 7",t.ORDER_ATOMIC]},algorithm_algorithm_print_path=function(){return'name = ["","学校","小智家","小欣家","小思家","小科家","贝贝家","乐乐家"]\nres = ""\nfor i in path:\n res = res + name[i] + "-"\nprint(res[:-1])\n'},algorithm_algorithm_prepare2=function(e,t){t.definitions_.import_sprite="import sprite";return"g = [[0,0,0,0,0,0,0,0,0,0], [0,0,0,1,0,0,0,0,0,0], [0,0,0,1,0,0,1,0,0,0], [0,1,1,0,1,0,0,0,0,0], [0,0,0,1,0,0,0,1,0,0], [0,0,0,1,0,0,0,1,0,0], [0,0,1,0,0,0,0,1,0,0], [0,0,0,0,1,1,1,0,0,0]]\nmark = [[0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0]]\nvis = [0,1,0,0,0,0,0,0,0]\nposition = [[0, 0], [200, 200], [250, 60], [320, 200], [280, 380], [470, 250], [670, 90], [650, 340]]\nsprite.clearAllSprites()\nsprite.createBackground('map_xuexiao')\n\nhouse = [ sprite.Sprite('mark', 150, 380),\n sprite.Sprite('School', 115, 195),\n sprite.Sprite('House25', 264, 67),\n sprite.Sprite('House36', 320, 200),\n sprite.Sprite('House47', 290, 371),\n sprite.Sprite('House25', 479, 233),\n sprite.Sprite('House36', 674, 96),\n sprite.Sprite('House47', 642, 318)\n]\nbarricade = sprite.Sprite('barricade', 570, 170)\nbarricade.enlargeTo(100)\nfor i in house:\n i.hide()\n"},algorithm_algorithm_current_school=function(e,t){return["f == 1",t.ORDER_ATOMIC]},algorithm_algorithm_no_path=function(){return"print('没有符合条件的路线')\n"},algorithm_algorithm_prepare_2_1=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return'g = [[10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000],[10000,10000,500,300,10000,10000,10000,10000,10000,10000,10000],[10000,500,10000,10000,100,10000,10000,10000,10000,10000,10000],[10000,300,10000,10000,400,300,10000,10000,10000,10000,10000],[10000,10000,100,400,10000,10000,200,10000,10000,10000,10000],[10000,10000,10000,300,10000,10000,100,200,10000,10000,10000],[10000,10000,10000,10000,200,100,10000,10000,100,10000,10000],[10000,10000,10000,10000,10000,200,10000,10000,100,10000,10000],[10000,10000,10000,10000,10000,10000,100,100,10000,10000,10000]]\nnow=1\nlast=1\npath=[]\npath.append(1)\nname = ["","小思家","银行","邮局","餐厅","书店","医院","超市","小科家"]\nposition = [[0, 0], [60, 320], [510, 390], [240, 200], [750, 330], [410, 90], [540, 190], [550, 30], [720, 120]]\nsprite.clearAllSprites()\nsprite.createBackground(\'map_si_ke\')\nstu = sprite.Sprite(\'girl\', 60, 320)\nstu.enlargeTo(100)\ntime.sleep(1)\n\n'},algorithm_algorithm_prepare_2_2=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return'g =[[10000,10000,10000,10000,10000,10000,10000],[10000,10000,300,500,10000,10000,10000],[10000,300,10000,10000,300,700,10000],[10000,500,10000,10000,10000,100,10000],[10000,10000,300,10000,10000,10000,200],[10000,10000,700,100,10000,10000,100],[10000,10000,10000,10000,200,100,10000]]\nnow=1\nlast=1\npath=[]\npath.append(1)\nname = ["","小智家","邮局","银行","书店","餐厅","学校"]\nposition = [[0, 0], [70, 340], [70, 90], [550, 310], [420, 70], [730, 250], [650, 130]]\nsprite.clearAllSprites()\nsprite.createBackground(\'map_zhi_xue\')\nstu = sprite.Sprite(\'boy\', 70, 340)\nstu.enlargeTo(100)\ntime.sleep(1)\n\n'},algorithm_algorithm_move_recent=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return'tmp=10000\nfor i in range(0, len(g), 1):\n if g[now][i]6:\n print("路线错乱!程序有误!")\n exit()\n'},algorithm_algorithm_not_home=function(e,t){return["name[now] != '小科家'",t.ORDER_ATOMIC]},algorithm_algorithm_not_school=function(e,t){return["name[now] != '学校'",t.ORDER_ATOMIC]},algorithm_algorithm_print_path2=function(){return'res = ""\nfor i in path:\n res = res + name[i] + "→"\nprint(res[:-1])\n'},algorithm_hanoi_init=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";var n=this.getFieldValue("NUM");if(n>=7)var a="print('层数过高!不得高于6层!')\nexit()\n";else a="sprite.clearAllSprites()\n_Hanoicolor = ['blue', 'red', 'yellow', 'green', 'purple', 'black']\n_Hanoi = [[], [], []]\nA = 0\nB = 1\nC = 2\n_n = "+n+"\n_HanoiColumn = [\n sprite.Sprite('HanoiColumn', 200, 320),\n sprite.Sprite('HanoiColumn', 400, 320),\n sprite.Sprite('HanoiColumn', 600, 320)\n]\n_HanoiColumnNumber = [\n sprite.Text('A', 190, 120),\n sprite.Text('B', 390, 120),\n sprite.Text('C', 590, 120)\n]\n_HanoiBlock = []\nfor i in range(0, _n, 1):\n _HanoiBlock.append(sprite.Sprite(_Hanoicolor[i], 200, 400-(_n-i-1)*27))\n _HanoiBlock[i].setScale(25, 30*i+30)\n _Hanoi[0].insert(0, _HanoiBlock[i])\n_steptext = sprite.Text('步数:0', 30, 30)\n_steps = {'steps' : 0}\ntime.sleep(1)\n";return a},algorithm_hanoi_move=function(e,t){var n=t.valueToCode(this,"FROM_NUM",t.ORDER_ATOMIC)||"0",a=t.valueToCode(this,"TO_NUM",t.ORDER_ATOMIC)||"0";return`if len(_Hanoi[${n}])>0 :\n _HanoiBlockMoved = _Hanoi[${n}].pop()\n if len(_Hanoi[${a}]) > 0 :\n _HanoiBlockSuppressed = _Hanoi[${a}].pop()\n if _HanoiBlock.index(_HanoiBlockMoved) > _HanoiBlock.index(_HanoiBlockSuppressed):\n print('非法移动!程序有误!')\n exit()\n else:\n _Hanoi[${a}].append(_HanoiBlockSuppressed)\n _HanoiBlockMoved.slideTo(${n}*200+200, 180, 0.2)\n _HanoiBlockMoved.slideTo(${a}*200+200, 180, 0.5)\n _HanoiBlockMoved.slideTo(${a}*200+200, 400-len(_Hanoi[${a}])*27, 0.2)\n _Hanoi[${a}].append(_HanoiBlockMoved)\n _steps['steps'] += 1\n _steptext.changeText('步数:'+str(_steps['steps']))\nelse :\n print('非法移动!程序有误!')\n exit()\n`},algorithm_algorithm_all_books_sequence=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"if 'mode' not in globals() or mode == 0:\n sprite.clearAllSprites()\n ring=[0,0,0,0,0,0,0,0,0,0]\n mode=1\n n=5\n ring[5]=1\n name=['小王子','海底两万里','荷花镇的早市','孔子的故事','夏洛的网','草房子','月下看猫头鹰','会唱歌的咖啡磨','父与子','城南旧事']\n Books = []\n for i in range(1, 11, 1):\n Books.append(sprite.Sprite('books/book'+str(i), (130*i-650) if i>5 else 130*i, 320 if i>5 else 120))\nelse:\n mode=2\n n=len(ring)-1\nring[n]=1\ntime.sleep(1)\n"},algorithm_algorithm_all_books=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"if 'mode' not in globals() or mode == 0:\n sprite.clearAllSprites()\n ring=[0,0,0,0,0,0,0,0,0,0]\n mode=2\n n=5\n name=['小王子','海底两万里','荷花镇的早市','孔子的故事','夏洛的网','草房子','月下看猫头鹰','会唱歌的咖啡磨','父与子','城南旧事']\n Books = []\n for i in range(1, 11, 1):\n Books.append(sprite.Sprite('books/book'+str(i), (130*i-650) if i>5 else 130*i, 320 if i>5 else 120))\nelse:\n mode=1\n n=len(ring)-1\nring[n]=n\nlist=ring\ntemp=Books\ntime.sleep(1)\n"},algorithm_algorithm_first_book=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"res=0\nflag=ring[res]\nBooks[res].filterBrighter()\ntime.sleep(0.1)\nBooks[res].filterOrigin()\n"},algorithm_algorithm_no_ring2=function(e,t){return["(('mode' not in globals())or(mode==1 and flag==0)or(mode==2 and not any(value > 0 for value in qian))or(mode==0))",t.ORDER_ATOMIC]},algorithm_algorithm_yes_ring2=function(e,t){return["(('mode' in globals())and((mode==1 and flag!=0)or(mode==2 and any(value > 0 for value in qian))))",t.ORDER_ATOMIC]},algorithm_algorithm_next_book=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";var n="res+=1\nflag=ring[res]\n";return n="Books[res].filterGray()\ntime.sleep(0.3)\n"+(n+="Books[res].filterBrighter()\ntime.sleep(0.1)\nBooks[res].filterOrigin()\n")},algorithm_algorithm_two_left=function(e,t){return["len(list)>=2",t.ORDER_ATOMIC]},algorithm_algorithm_divide_books=function(){return"mid = int(len(list)/2)\nqian = list[0:mid]\nhou = list[mid:]\nqiantemp = temp[0:mid]\nhoutemp = temp[mid:]\n"},algorithm_algorithm_get_half_books=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"quchu = qian\nlist = hou\nquchutemp = qiantemp\ntemp = houtemp\nfor i in qiantemp:\n i.filterBrighter()\ntime.sleep(0.5)\nfor i in qiantemp:\n i.filterGray()\ntime.sleep(0.5)\n"},algorithm_algorithm_delete_book=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"list = quchu\ntemp = quchutemp\nfor i in qiantemp:\n i.filterBrighter()\ntime.sleep(0.5)\nfor i in qiantemp:\n i.filterOrigin()\nfor i in houtemp:\n\ti.filterBrighter()\ntime.sleep(0.5)\nfor i in houtemp:\n i.filterGray()\ntime.sleep(0.5)\n"},algorithm_algorithm_print_book2=function(){return"if 'list' in globals():\n res = list[0]\nBooks[res].filterBrighter()\nprint('未消磁的书籍是第'+str(res+1)+'本《'+name[res%10]+'》。')\nif res!=n:\n print('答案错误!请检查程序!')\nmode=0\n"},algorithm_algorithm_book_scale=function(e,t){var n=this.getFieldValue("NUM");return t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite",`sprite.clearAllSprites()\nring = []\nname = ['小王子','海底两万里','荷花镇的早市','孔子的故事','夏洛的网','草房子','月下看猫头鹰','会唱歌的咖啡磨','父与子','城南旧事']\nBooks = []\nfor i in range(${n}):\n ring.append(0)\nfor i in range(1, ${n}+1, 1):\n Books.append(sprite.Sprite('books/book'+str(i%10 if i%10!=0 else 10), ${{5:"130*i, 120",10:"(130*i-650) if i>5 else 130*i, 320 if i>5 else 120",20:"(65*i-650)+30 if i>10 else 65*i+30, 320 if i>10 else 120",50:"(26*i-650)+50 if i>25 else 26*i+50, 320 if i>25 else 120"}[n]}))\ntime.sleep(1)\nmode=3\n`},algorithm_algorithm_number_zero=function(e,t){t.definitions_.import_sprite="import sprite";return"cnt=0\ncntText = sprite.Text('计数器:0', 30, 200)\n"},algorithm_algorithm_number_add=function(e,t){t.definitions_.import_sprite="import sprite";return"cnt+=1\ncntText.changeText('计数器:'+str(cnt))\n"},algorithm_algorithm_print_number=function(e,t){t.definitions_.import_sprite="import sprite";return"print('计数器大小:'+str(cnt))\n"},algorithm_algorithm_init_jttl=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"sprite.clearAllSprites()\n_head = 10\n_foot = 32\n_footText = sprite.Text('脚的数量:', 20, 10)\n_sprite = []\n"},algorithm_algorithm_rabbit_zero=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"_rabbit = 0\ntime.sleep(1)\n"},algorithm_algorithm_rabbit_number_in_range=function(e,t){return["_rabbit < _head",t.ORDER_ATOMIC]},algorithm_algorithm_chick_calculate=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"_chick = _head - _rabbit\nfor i in range(0, _chick, 1):\n _sprite.append(sprite.Sprite('jttl/chick', len(_sprite)*130+130 if len(_sprite)<5 else len(_sprite)*130+130-650, 120 if len(_sprite)<5 else 320))\n\ntime.sleep(0.5)\n_footText.changeText('脚的数量:'+str(_rabbit*4 + _chick*2))\ntime.sleep(1)\n"},algorithm_algorithm_check_feet=function(e,t){return["_rabbit*4 + _chick*2 == _foot",t.ORDER_ATOMIC]},algorithm_algorithm_print_jttl_answer=function(e,t){t.definitions_.import_sprite="import sprite";return"print('鸡的数量:'+str(_chick)+'只;\\n兔的数量:'+str(_rabbit)+'只。')\n"},algorithm_algorithm_rabbit_add=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"_rabbit += 1\nsprite.clearAllSprites()\n_sprite = []\n_footText = sprite.Text('脚的数量:', 20, 10)\nfor i in range(0, _rabbit, 1):\n _sprite.append(sprite.Sprite('jttl/rabbit', len(_sprite)*130+130 if len(_sprite)<5 else len(_sprite)*130+130-650, 120 if len(_sprite)<5 else 320))\ntime.sleep(0.5)\n"},algorithm_algorithm_init_fzsf=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"sprite.clearAllSprites()\nsprite.createBackground('/fzsf/map_ck_xxjsjs')\n_S1 = sprite.Sprite('/fzsf/S1',400,225,'S1')\n_S2 = sprite.Sprite('/fzsf/S2',400,225,'S2')\n_S3 = sprite.Sprite('/fzsf/S3',400,225,'S3')\n_S4 = sprite.Sprite('/fzsf/S4',400,225,'S4')\n_S1.hide()\n_S2.hide()\n_S3.hide()\n_S4.hide()\n_text_1 = sprite.Text('S1:',0,0,'text')\n_text_2 = sprite.Text('S2:',0,30,'text2')\n_text_3 = sprite.Text('S3:',0,60,'text3')\n_text_4 = sprite.Text('S4:',0,90,'text4')\n_position = [[60, 270], [240, 50], [260, 380], [440, 190], [730, 60], [700, 400]]\n_Llen = [0, 170, 230, 100, 150, 10, 30, 50]\n_Slen = [0, 0, 0, 0, 0]\n_tag = [0, [0, 1, 3], [0, 2, 3], [3, 4, 5], [3, 5]]\nbear = sprite.Sprite('mixbear',60,270,'bear')\nbear.enlargeTo(80)\n_pos = 0\ntime.sleep(1)\n"},algorithm_algorithm_fz_calc=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";var n=this.getFieldValue("PATHNAME");const a=[0,[1,3],[2,4],[5,7],[6]];var _="";return _+=`_S${n}.show()\ntime.sleep(1)\n`,_+=4!=n?`_Slen[${n}] = _Llen[${a[n][0]}] + _Llen[${a[n][1]}]\n_text_${n}.changeText('S${n}:'+str(_Slen[${n}])+'m')\ntime.sleep(1)\n_S${n}.hide()\ntime.sleep(1)\n`:"_Slen[4] = _Llen[6]\n_text_4.changeText('S4:'+str(_Slen[4])+'m')\ntime.sleep(1)\n_S4.hide()\ntime.sleep(1)\n"},algorithm_algorithm_fz_compare=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";var n="";return[n+=`_Slen[${this.getFieldValue("PATHNAME")}] < _Slen[${this.getFieldValue("PATHNAME2")}]`,t.ORDER_ATOMIC]},algorithm_algorithm_fz_set_min=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";var n=this.getFieldValue("PATHNAME"),a="";return a+=`\n_S1.hide()\n_S2.hide()\n_S3.hide()\n_S4.hide()\n_Smin = ${n}\n_S${n}.show()\ntime.sleep(0.5)\n_S${n}.hide()\ntime.sleep(0.5)\n_S${n}.show()\ntime.sleep(1)\n`},algorithm_algorithm_fz_move=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"if(_pos == _tag[_Smin][0]):\n for i in range(1, len(_tag[_Smin]), 1):\n bear.slideTo(_position[_tag[_Smin][i]][0], _position[_tag[_Smin][i]][1], 1)\n _pos = _tag[_Smin][len(_tag[_Smin])-1]\nelse:\n print('移动错误!程序有误!')\n exit()\n_S1.hide()\n_S2.hide()\n_S3.hide()\n_S4.hide()\nif(_pos == 5):\n print('成功抵达信息科技教室!')\n"},algorithm_algorithm_init_hxdb=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"sprite.clearAllSprites()\nsprite.createBackground('/hxdb/hxdbbg')\n_soldier = []\n_num = sprite.Text('目前士兵数量:0',0,0,'num')\n_last = sprite.Text('剩余:0',500,0,'last')\n_line = 3\n"},algorithm_algorithm_hxdb_init_soldier=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";var n="";return n+=`for i in range(0, ${this.getFieldValue("NUM")}, 1):\n _soldier.append(sprite.Sprite('/hxdb/soldier', 30 + (len(_soldier)%_line)*50 + (len(_soldier)//(4*_line))*(_line+1)*50 +(len(_soldier)%3-2), 80+(len(_soldier)//_line)*100-(len(_soldier)//(4*_line))*4*100+(len(_soldier)%2)))\n_num.changeText('目前士兵数量:'+str(len(_soldier)))\n`},algorithm_algorithm_hxdb_stand_in_line=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";var n=this.getFieldValue("NUM");return`for i in range(0, len(_soldier), 1):\n _soldier[i].slideTo(30 + (i%${n})*50 + (i//(4*${n}))*(${n}+1)*50 +(i%3-2), 80+(i//${n})*100-(i//(4*${n}))*4*100+(i%2), 0.05)\n_line = ${n}\n_last.changeText('剩余:'+str(len(_soldier)%_line))\ntime.sleep(2)\n`},algorithm_algorithm_hxdb_last_line=function(e,t){return t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite",[`len(_soldier)%_line == ${this.getFieldValue("NUM")}`,t.ORDER_ATOMIC]},algorithm_algorithm_hxdb_add=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"_num.changeText('目前士兵数量:'+str(len(_soldier)+1))\n_last.changeText('剩余:')\ntime.sleep(0.5)\n_soldier.append(sprite.Sprite('/hxdb/soldier', 30 + (len(_soldier)%_line)*50 + (len(_soldier)//(4*_line))*(_line+1)*50 +(len(_soldier)%3-2), 80+(len(_soldier)//_line)*100-(len(_soldier)//(4*_line))*4*100+(len(_soldier)%2)))\ntime.sleep(1)\n"},algorithm_algorithm_hxdb_result=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"print('符合要求的士兵数量为:'+str(len(_soldier)))\n"},algorithm_hanoi_init_offline=function(e,t){t.definitions_.import_turtle="import turtle",t.definitions_.import_time="import time",t.definitions_.import_math="import math";var n=t.valueToCode(this,"VAR",t.ORDER_ATOMIC),a=this.getFieldValue("NUM");return t.setups_.init_Hanoi="\ndef init_Hanoi():\n pen = turtle.Turtle()\n pen.hideturtle()\n pen.speed(0)\n for i in range(0, 3, 1):\n pen.penup()\n pen.setheading(0)\n pen.goto(150 * i - 200,-100)\n pen.pendown()\n pen.pensize(5)\n pen.forward(100)\n pen.goto(150 * i - 150,-100)\n pen.setheading(90)\n pen.forward(200)",t.setups_.begin="\ndef begin(): \n s = turtle.Turtle()\n s.hideturtle()\n s.penup()\n s.speed(0)\n s.goto(0,-150)\n s.write('3')\n time.sleep(1)\n s.clear()\n s.write('2')\n time.sleep(1)\n s.clear()\n s.write('1')\n time.sleep(1)\n s.clear()\n s.write('Start!')\n time.sleep(1)\n s.clear()\n",t.setups_.move="\ndef move(x, y):\n try:\n t = tower[x].pop(-1)\n a = tower_num[x].pop(-1)\n if tower_num[y]!=[]:\n b = tower_num[y][-1]\n if a{document.removeEventListener("DOMContentLoaded",e),this._pageLoad.resolve()};document.addEventListener("DOMContentLoaded",e)}else this._pageLoad.resolve();(async()=>{switch(n){case"python":case"python3":case"python3.11":const{KernelPython3:t}=await __webpack_require__.e(211).then(__webpack_require__.bind(__webpack_require__,211));this._kernel=new t(e);break;case"python3-old":case"python3.8":const{KernelPython3Old:a}=await __webpack_require__.e(195).then(__webpack_require__.bind(__webpack_require__,5195));this._kernel=new a(e);break;case"js":case"javascript":const{KernelJavaScript:_}=await __webpack_require__.e(97).then(__webpack_require__.bind(__webpack_require__,4097));this._kernel=new _(e);break;case"sql":const{KernelSQL:l}=await Promise.all([__webpack_require__.e(960),__webpack_require__.e(837)]).then(__webpack_require__.bind(__webpack_require__,592));this._kernel=new l(e);break;case"ocaml":const{KernelOCaml:s}=await __webpack_require__.e(38).then(__webpack_require__.bind(__webpack_require__,38));this._kernel=new s(e);break;default:return window.console.error(`Kernel '${n}' not supported.`),void this._kernelAvailable.reject()}window.Basthon=this._kernel,this._kernelAvailable.resolve(this._kernel)})()}async pageLoad(){await this._pageLoad.promise}async kernelAvailable(){return await this._kernelAvailable.promise}async kernelLoaded(){const e=await this.kernelAvailable();return await e.loaded(),e}get kernel(){return this._kernel}get kernelSafe(){var e;return(null===(e=this.kernel)||void 0===e?void 0:e.ready)?this.kernel:null}async showLoader(e,t=!1,n=!0){this.kernelAvailable().then((()=>{var e;return null===(e=this.kernel)||void 0===e?void 0:e.init()})),__webpack_require__.e(317).then(__webpack_require__.bind(__webpack_require__,1317));const a="basthon-loader-"+(t?"full":"foot"),_=document.createElement("div");_.id=this._loaderId,_.classList.add("darklighted"),_.classList.add("basthon-loader-root"),_.classList.add(a);const l=document.createElement("div");l.classList.add("basthon-loader-container"),l.classList.add(a),_.appendChild(l);const s=document.createElement("div");s.classList.add("basthon-loader-spinner"),s.classList.add(a),s.innerHTML="",l.appendChild(s);const i=document.createElement("div");i.classList.add("basthon-loader-break"),i.classList.add(a),l.appendChild(i);const o=document.createElement("div");o.classList.add("basthon-loader-text"),o.classList.add(a),o.innerHTML=e,l.appendChild(o),this._loaderTextElem=o;const r=document.createElement("div");r.classList.add("basthon-loader-text"),r.classList.add(a),r.style.display="none",l.appendChild(r),this._loaderTextError=r,await this.pageLoad(),document.body.appendChild(_),this._rootLoader=_;try{await this.kernelLoaded()}catch(e){const t=this.browser();this.setErrorText(`Erreur de chargement de Basthon !!!
Vérifiez que votre navigateur est à jour.
Version détectée : ${t.name} ${t.version}.`);for(const e of document.body.querySelectorAll(".basthon-loader-foot"))e.classList.remove("basthon-loader-foot"),e.classList.add("basthon-loader-full");return s.classList.remove("basthon-loader-spinner"),s.classList.add("basthon-loader-error"),void(this._doNotHideLoader=!0)}this._doNotHideLoader=!1,n&&this.hideLoader()}setLoaderText(e){null!=this._loaderTextElem&&(this._loaderTextElem.innerHTML=e)}setErrorText(e){null!=this._loaderTextElem&&(this._loaderTextElem.style.display="none"),null!=this._loaderTextError&&(this._loaderTextError.style.display="",this._loaderTextError.innerHTML=e)}hideLoader(){if(this._doNotHideLoader)return;const e=this._rootLoader;null!=e&&(e.classList.add("basthon-loader-hide"),window.setTimeout((()=>{this._rootLoader=void 0,e.remove()}),1100))}browser(){var e,t=navigator.userAgent,n=t.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i)||[];return/trident/i.test(n[1])?{name:"IE",version:(e=/\brv[ :]+(\d+)/g.exec(t)||[])[1]||""}:"Chrome"===n[1]&&null!=(e=t.match(/\bOPR|Edge\/(\d+)/))?{name:"Opera",version:e[1]}:(n=n[2]?[n[1],n[2]]:[navigator.appName,navigator.appVersion,"-?"],null!=(e=t.match(/version\/(\d+)/i))&&n.splice(1,1,e[1]),{name:n[0],version:n[1]})}}const external_$_namespaceObject=$;var external_$_default=__webpack_require__.n(external_$_namespaceObject);const statusbar_image_namespaceObject='\r\n
\r\n\r\n
';class StatusBarImage extends external_Mixly_namespaceObject.PageBase{static{external_Mixly_namespaceObject.HTMLTemplate.add("html/statusbar/statusbar-image.html",new external_Mixly_namespaceObject.HTMLTemplate(statusbar_image_namespaceObject)),this.init=function(){external_Mixly_namespaceObject.StatusBarsManager.typesRegistry.register(["images"],StatusBarImage);const e=external_Mixly_namespaceObject.Workspace.getMain().getStatusBarsManager();e.add("images","images",external_Blockly_namespaceObject.Msg.PYTHON_PYODIDE_IMAGE),e.changeTo("output")}}constructor(){super();const e=external_$_default()(external_Mixly_namespaceObject.HTMLTemplate.get("html/statusbar/statusbar-image.html").render());this.setContent(e)}init(){super.init(),this.hideCloseBtn()}clean(){this.getContent().empty()}display(e){const t=this.getContent(),n=function(e){e.style.width="auto",e.style.height="auto",e.style.maxWidth="100%",e.style.maxHeight="100%"};this.clean();let a=e.content,_=null,l=null;switch(e.display_type){case"p5":a.style.width="100%",a.style.height="100%",a.style.display="flex",a.style.justifyContent="center",a.style.alignItems="center",new MutationObserver((function(e){e.forEach((e=>e.addedNodes.forEach((e=>{const t=e;null!=t.tagName&&["canvas","video"].includes(t.tagName.toLowerCase())&&n(t)}))))})).observe(a,{childList:!0}),a.querySelectorAll("canvas,video").forEach(n),t.append(a);break;case"matplotlib":_=a.querySelector("canvas"),_&&(a=_),a.style.width="",a.style.height="",a.style.maxWidth="100%",a.style.maxHeight="100%",t.append(a);break;case"ocaml-canvas":a.style.width="",a.style.height="",a.style.maxWidth="100%",a.style.maxHeight="100%",t.append(a);break;case"turtle":a.setAttribute("width","100%"),a.setAttribute("height","100%"),t.append(a.outerHTML);break;case"sympy":t.append(e.content),void 0===window.MathJax?(console.log("Loading MathJax (Sympy expression needs it)."),function(){let e=document.createElement("script");e.type="text/javascript",e.src="https://cdn.jsdelivr.net/npm/mathjax@3.0.5/es5/tex-mml-chtml.js",document.getElementsByTagName("head")[0].appendChild(e)}()):window.MathJax.typeset();break;case"multiple":for(let n of["image/svg+xml","image/png","text/html","text/plain"])if(n in e.content){let a=e.content[n];"image/png"===n&&(a=''),t.append(a);break}break;case"tutor":if(t.append(external_$_default()(e.content.replace("overflow-y%3A%20hidden%3B",""))),l=this.getContent()[0].getElementsByTagName("iframe")[0],null==l)return;l.style.maxHeight=l.style.minHeight="100%",new IntersectionObserver(((e,t)=>{const n=e[0];n&&!n.isIntersecting||(l.contentWindow?.postMessage({type:"redraw"},"*"),t.disconnect())})).observe(l);break;default:console.error(`Not supported node type '${e.display_type}' in eval.display result processing.`)}}}const statusbar_image=StatusBarImage;class PythonShell{static{this.pythonShell=null,this.init=async function(){statusbar_image.init();const e=external_path_.relative(external_Mixly_namespaceObject.Env.indexDirPath,external_Mixly_namespaceObject.Env.boardDirPath),t=new KernelLoader({rootPath:external_path_.join(e,"deps"),language:"python3"}),n=await t.kernelAvailable();n&&(await n.init(),await n.loaded(),this.loader=t,this.kernel=n,this.pythonShell=new PythonShell,this.pyodide=window.pyodide,this.interruptBuffer=new Uint8Array(new ArrayBuffer(1)),this.pyodide.setInterruptBuffer(this.interruptBuffer))},this.run=function(){const e=external_Mixly_namespaceObject.Workspace.getMain().getEditorsManager().getActive().getCode();return this.pythonShell.run(e)},this.stop=function(){return this.pythonShell.stop()}}#e=null;#t=null;#n=null;#a={row:0,column:0};#_="";#l=null;#s=null;#i=!1;#o=!1;#r=null;#p=()=>this.#c();#u=[{name:"REPL-Enter",bindKey:"Enter",exec:e=>{if(e.getSession().selection.getCursor().row===this.#a.row){const e=this.#e.getEndPos();let t=this.#e.getValueRange(this.#a,e);t=t.replace(this.#_,""),this.#l?.(t),this.#l=null,this.#s=null,this.#e.addValue("\n"),this.#m()}return!1}},{name:"REPL-ChangeEditor",bindKey:"Delete|Ctrl-X|Backspace",exec:e=>{const t=e.getSession().selection.getCursor();return t.row{this.#o=!1,this.#e.addValue(`\n==${external_Mixly_namespaceObject.Msg.Lang["shell.finish"]}==`)})),this.#r.addEventListener("eval.output",(e=>{this.#e.addValue(e.content)})),this.#r.addEventListener("eval.error",(()=>{this.#o=!1,this.#e.addValue(`\n==${external_Mixly_namespaceObject.Msg.Lang["shell.finish"]}==`)})),this.#r.addEventListener("eval.input",(e=>{const t=String(e?.content?.prompt);this.#e.addValue(t),this.#_=t,this.#l=e.resolve,this.#s=e.reject,this.#O()})),this.#r.addEventListener("eval.display",(e=>{this.#n.changeTo("images"),this.#t.display(e)}))}#c(){const e=this.#e.getEditor(),t=e.getSession().selection.getCursor();e.setReadOnly(t.row{this.#n.changeTo("output"),this.#n.show(),this.#e.setValue(`${external_Mixly_namespaceObject.Msg.Lang["shell.running"]}...\n`),this.#o=!0,this.#r.dispatchEvent("eval.request",{code:e,interactive:!1})})).catch(external_Mixly_namespaceObject.Debug.error)}async stop(){if(this.#i&&this.#m(),this.#o){const e=5;PythonShell.interruptBuffer[0]=2;const t=Number(new Date);for(;Number(new Date)-t<1e3*e&&this.#o;)PythonShell.interruptBuffer[0]=2,await this.sleep(100);this.#o=!1}}sleep(e){return new Promise((t=>setTimeout(t,e)))}}const python_shell=PythonShell,NavExt={init:async function(){const e=external_Mixly_namespaceObject.app.getNav();e.register({icon:"icon-play-circled",title:"",id:"python-run-btn",displayText:external_Blockly_namespaceObject.Msg.MSG.run,preconditionFn:()=>!0,callback:()=>{python_shell.run()},scopeType:external_Mixly_namespaceObject.Nav.Scope.LEFT,weight:4}),e.register({icon:"icon-cancel",title:"",id:"python-stop-btn",displayText:external_Blockly_namespaceObject.Msg.MSG.stop,preconditionFn:()=>!0,callback:()=>{python_shell.stop()},scopeType:external_Mixly_namespaceObject.Nav.Scope.LEFT,weight:5}),await python_shell.init()}},nav_ext=NavExt;nav_ext.init(),Object.assign(external_Blockly_namespaceObject.Variables,variables),Object.assign(external_Blockly_namespaceObject.Procedures,procedures),external_Blockly_namespaceObject.Python=Python,external_Blockly_namespaceObject.generator=Python,external_Mixly_namespaceObject.Profile.default={},Object.assign(external_Blockly_namespaceObject.Blocks,blocks_variables_namespaceObject,control_namespaceObject,math_namespaceObject,text_namespaceObject,lists_namespaceObject,dicts_namespaceObject,logic_namespaceObject,storage_namespaceObject,blocks_procedures_namespaceObject,tuple_namespaceObject,set_namespaceObject,html_namespaceObject,utility_namespaceObject,ai_namespaceObject,algorithm_namespaceObject,communicate_namespaceObject,cv_namespaceObject,data_namespaceObject,datastructure_namespaceObject,factory_namespaceObject,hardware_namespaceObject,inout_namespaceObject,iot_namespaceObject,pins_namespaceObject,serial_namespaceObject,sklearn_namespaceObject,system_namespaceObject,turtle_namespaceObject),Object.assign(external_Blockly_namespaceObject.Python.forBlock,generators_variables_namespaceObject,generators_control_namespaceObject,generators_math_namespaceObject,generators_text_namespaceObject,generators_lists_namespaceObject,generators_dicts_namespaceObject,generators_logic_namespaceObject,generators_storage_namespaceObject,generators_procedures_namespaceObject,generators_tuple_namespaceObject,generators_set_namespaceObject,generators_html_namespaceObject,generators_utility_namespaceObject,generators_ai_namespaceObject,generators_algorithm_namespaceObject,generators_communicate_namespaceObject,cv,generators_data_namespaceObject,generators_datastructure_namespaceObject,generators_factory_namespaceObject,generators_hardware_namespaceObject,generators_inout_namespaceObject,generators_iot_namespaceObject,generators_pins_namespaceObject,generators_serial_namespaceObject,generators_sklearn_namespaceObject,generators_system_namespaceObject,generators_turtle_namespaceObject)})(); \ No newline at end of file +class Names{constructor(e,t){if(this.variablePrefix_=t||"",this.reservedDict_=Object.create(null),e)for(var n=e.split(","),a=0;a0;_--)t.getInputTargetBlock("IF"+_)&&t.getInputTargetBlock("IF"+_).previousConnection?n[_]=t.getInputTargetBlock("IF"+_).previousConnection:n[_]=null,this.removeInput("IF"+_),t.getInputTargetBlock("DO"+_)&&t.getInputTargetBlock("DO"+_).previousConnection?a[_]=t.getInputTargetBlock("DO"+_).previousConnection:a[_]=null,this.removeInput("DO"+_);this.elseifCount_=parseInt(e.getAttribute("elseif"),10),this.elseCount_=parseInt(e.getAttribute("else"),10);for(_=1;_<=this.elseifCount_;_++)this.appendValueInput("IF"+_).setCheck([Boolean,Number]).appendField(external_Blockly_namespaceObject.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+_).appendField(external_Blockly_namespaceObject.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(external_Blockly_namespaceObject.Msg.CONTROLS_IF_MSG_ELSE);for(_=n.length-2;_>0;_--)n[_]&&n[_].reconnect(this,"IF"+_);for(_=a.length-2;_>0;_--)a[_]&&a[_].reconnect(this,"DO"+_)},decompose:function(e){var t=e.newBlock("controls_if_if");t.initSvg();for(var n=t.getInput("STACK").connection,a=1;a<=this.elseifCount_;a++){var _=e.newBlock("controls_if_elseif");_.initSvg(),n.connect(_.previousConnection),n=_.nextConnection}if(this.elseCount_){var l=e.newBlock("controls_if_else");l.initSvg(),n.connect(l.previousConnection)}return t},compose:function(e){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var t=this.elseifCount_;t>0;t--)this.removeInput("IF"+t),this.removeInput("DO"+t);this.elseifCount_=0;for(var n=e.getInputTargetBlock("STACK"),a=[null],_=[null],l=null;n;){switch(n.type){case"controls_if_elseif":this.elseifCount_++,a.push(n.valueConnection_),_.push(n.statementConnection_);break;case"controls_if_else":this.elseCount_++,l=n.statementConnection_;break;default:throw Error("Unknown block type: "+n.type)}n=n.nextConnection&&n.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(a,_,l)},saveConnections:function(e){for(var t=e.getInputTargetBlock("STACK"),n=1;t;){switch(t.type){case"controls_if_elseif":var a=this.getInput("IF"+n),_=this.getInput("DO"+n);t.valueConnection_=a&&a.connection.targetConnection,t.statementConnection_=_&&_.connection.targetConnection,n++;break;case"controls_if_else":_=this.getInput("ELSE");t.statementConnection_=_&&_.connection.targetConnection;break;default:throw"Unknown block type."}t=t.nextConnection&&t.nextConnection.targetBlock()}},rebuildShape_:function(){var e=[null],t=[null],n=null;this.getInput("ELSE")&&(n=this.getInput("ELSE").connection.targetConnection);for(var a=1;this.getInput("IF"+a);){var _=this.getInput("IF"+a),l=this.getInput("DO"+a);console.log(_.connection.targetConnection),e.push(_.connection.targetConnection),t.push(l.connection.targetConnection),a++}this.updateShape_(),this.reconnectChildBlocks_(e,t,n)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var e=1;this.getInput("IF"+e);)this.removeInput("IF"+e),this.removeInput("DO"+e),e++;for(e=1;e<=this.elseifCount_;e++)this.appendValueInput("IF"+e).setCheck([Number,Boolean]).appendField(external_Blockly_namespaceObject.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+e).appendField(external_Blockly_namespaceObject.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(external_Blockly_namespaceObject.Msg.CONTROLS_IF_MSG_ELSE)},reconnectChildBlocks_:function(e,t,n){for(var a=1;a<=this.elseifCount_;a++)e[a]&&e[a].reconnect(this,"IF"+a),t[a]&&t[a].reconnect(this,"DO"+a);n&&n.reconnect(this,"ELSE")}},controls_range={init:function(){this.setColour(LOOPS_HUE),this.appendValueInput("FROM").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.PYTHON_RANGE).appendField(external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.PYTHON_RANGE_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},controls_forEach={init:function(){this.setColour(LOOPS_HUE),this.appendValueInput("LIST").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.CONTROLS_FOREACH_INPUT),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.CONTROLS_FOREACH_INPUT_ITEM),this.appendStatementInput("DO").appendField(external_Blockly_namespaceObject.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip((function(){return external_Blockly_namespaceObject.Msg.CONTROLS_FOR_TOOLTIP.replace("“%1”","")}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},controls_whileUntil={init:function(){this.setColour(LOOPS_HUE),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_CURRENT).appendField(new external_Blockly_namespaceObject.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(external_Blockly_namespaceObject.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT+external_Blockly_namespaceObject.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("MODE");return{WHILE:external_Blockly_namespaceObject.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:external_Blockly_namespaceObject.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[t]}))}},controls_try_finally={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TRY),this.appendStatementInput("try"),this.appendValueInput("IF1").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO1").appendField(""),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new external_Blockly_namespaceObject.icons.MutatorIcon(["controls_except","controls_finally"],this)),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_CONTROL_TRY_TOOLTIP),this.elseifCount_=1,this.elseCount_=0},mutationToDom:function(){if(!this.elseifCount_&&!this.elseCount_)return null;var e=document.createElement("mutation");return this.elseifCount_&&e.setAttribute("elseif",this.elseifCount_),this.elseCount_&&e.setAttribute("else",1),e},domToMutation:function(e){var t=this,n=[],a=[];this.elseCount_&&this.removeInput("ELSE");for(var _=this.elseifCount_;_>0;_--)t.getInputTargetBlock("IF"+_)&&t.getInputTargetBlock("IF"+_).previousConnection?n[_]=t.getInputTargetBlock("IF"+_).previousConnection:n[_]=null,this.removeInput("IF"+_),t.getInputTargetBlock("DO"+_)&&t.getInputTargetBlock("DO"+_).previousConnection?a[_]=t.getInputTargetBlock("DO"+_).previousConnection:a[_]=null,this.removeInput("DO"+_);this.elseifCount_=parseInt(e.getAttribute("elseif"),10),this.elseCount_=parseInt(e.getAttribute("else"),10);for(_=1;_<=this.elseifCount_;_++)this.appendValueInput("IF"+_).setCheck([Boolean,Number]).appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+_).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_FINALLY);for(_=n.length-2;_>0;_--)n[_]&&n[_].reconnect(this,"IF"+_);for(_=a.length-2;_>0;_--)a[_]&&a[_].reconnect(this,"DO"+_)},decompose:function(e){var t=e.newBlock("controls_try");t.initSvg();for(var n=t.getInput("STACK").connection,a=1;a<=this.elseifCount_;a++){var _=e.newBlock("controls_except");_.initSvg(),n.connect(_.previousConnection),n=_.nextConnection}if(this.elseCount_){var l=e.newBlock("controls_finally");l.initSvg(),n.connect(l.previousConnection)}return t},compose:function(e){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var t=this.elseifCount_;t>0;t--)this.removeInput("IF"+t),this.removeInput("DO"+t);this.elseifCount_=0;for(var n=e.getInputTargetBlock("STACK"),a=[null],_=[null],l=null;n;){switch(n.type){case"controls_except":this.elseifCount_++,a.push(n.valueConnection_),_.push(n.statementConnection_);break;case"controls_finally":this.elseCount_++,l=n.statementConnection_;break;default:throw Error("Unknown block type: "+n.type)}n=n.nextConnection&&n.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(a,_,l)},saveConnections:function(e){for(var t=e.getInputTargetBlock("STACK"),n=1;t;){switch(t.type){case"controls_except":var a=this.getInput("IF"+n),_=this.getInput("DO"+n);t.valueConnection_=a&&a.connection.targetConnection,t.statementConnection_=_&&_.connection.targetConnection,n++;break;case"controls_finally":_=this.getInput("ELSE");t.statementConnection_=_&&_.connection.targetConnection;break;default:throw"Unknown block type."}t=t.nextConnection&&t.nextConnection.targetBlock()}},rebuildShape_:function(){var e=[null],t=[null],n=null;this.getInput("ELSE")&&(n=this.getInput("ELSE").connection.targetConnection);for(var a=1;this.getInput("IF"+a);){var _=this.getInput("IF"+a),l=this.getInput("DO"+a);console.log(_.connection.targetConnection),e.push(_.connection.targetConnection),t.push(l.connection.targetConnection),a++}this.updateShape_(),this.reconnectChildBlocks_(e,t,n)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var e=1;this.getInput("IF"+e);)this.removeInput("IF"+e),this.removeInput("DO"+e),e++;for(e=1;e<=this.elseifCount_;e++)this.appendValueInput("IF"+e).setCheck([Number,Boolean]).appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+e).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_FINALLY)},reconnectChildBlocks_:function(e,t,n){for(var a=1;a<=this.elseifCount_;a++)e[a]&&e[a].reconnect(this,"IF"+a),t[a]&&t[a].reconnect(this,"DO"+a);n&&n.reconnect(this,"ELSE")}},controls_flow_statements={init:function(){this.setColour(LOOPS_HUE);var e=new external_Blockly_namespaceObject.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(e,"FLOW").appendField(external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_FLOW_STATEMENTS_TOOLTIP);var t=this;this.setTooltip((function(){var e=t.getFieldValue("FLOW");return{BREAK:external_Blockly_namespaceObject.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:external_Blockly_namespaceObject.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[e]}))},onchange:function(){if(this.workspace){var e=!1,t=this;do{if("controls_repeat"==t.type||"controls_for"==t.type||"controls_forEach"==t.type||"controls_repeat_ext"==t.type||"controls_whileUntil"==t.type||"do_while"==t.type){e=!0;break}t=t.getSurroundParent()}while(t);e?this.setWarningText(null):this.setWarningText(external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}},controls_for={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new external_Blockly_namespaceObject.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(external_Blockly_namespaceObject.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var e=this;this.setTooltip((function(){return external_Blockly_namespaceObject.Msg.CONTROLS_FOR_TOOLTIP.replace("%1",e.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},controls_for_range={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new external_Blockly_namespaceObject.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(external_Blockly_namespaceObject.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var e=this;this.setTooltip((function(){return external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_FOR_RANGE_TOOLTIP.replace("%1",e.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}};controls_whileUntil.OPERATORS=[[external_Blockly_namespaceObject.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[external_Blockly_namespaceObject.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]],controls_flow_statements.OPERATORS=[[external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const controls_if_if={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.CONTROLS_IF_IF_TITLE_IF),this.appendStatementInput("STACK"),this.setTooltip(external_Blockly_namespaceObject.Msg.CONTROLS_IF_IF_TOOLTIP),this.contextMenu=!1}},controls_if_elseif={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.CONTROLS_IF_ELSEIF_TOOLTIP),this.contextMenu=!1}},controls_if_else={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.CONTROLS_IF_ELSE_TITLE_ELSE),this.setPreviousStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.CONTROLS_IF_ELSE_TOOLTIP),this.contextMenu=!1}},controls_try={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField("try"),this.appendStatementInput("STACK"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.contextMenu=!1}},controls_except={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_EXCEPT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.contextMenu=!1,this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_CONTROL_EXCEPT_TOOLTIP)}},controls_finally={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_FINALLY),this.setPreviousStatement(!0),this.contextMenu=!1,this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_CONTROL_FINALLY_TOOLTIP)}},controls_repeat_ext={init:function(){this.jsonInit({message0:external_Blockly_namespaceObject.Msg.CONTROLS_REPEAT_TITLE,args0:[{type:"input_value",name:"TIMES"}],previousStatement:null,nextStatement:null,colour:LOOPS_HUE,tooltip:external_Blockly_namespaceObject.Msg.CONTROLS_REPEAT_TOOLTIP,helpUrl:external_Blockly_namespaceObject.Msg.CONTROLS_REPEAT_HELPURL}),this.appendStatementInput("DO")}},controls_lambda={init:function(){this.setColour(LOOPS_HUE),this.appendValueInput("BOOL").appendField("lambda"),this.appendStatementInput("DO").appendField(external_Blockly_namespaceObject.Msg.MIXLY_STAT),this.setOutput(!0)}},controls_pass={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_PASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_PASS_TOOLTIP)}},controls_thread={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_THREAD_START),this.appendValueInput("callback").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_THREAD_TOOLTIP)}},do_while={init:function(){this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.CONTROLS_REPEAT_TITLE_REPEAT+external_Blockly_namespaceObject.Msg.MIXLY_DO),this.appendStatementInput("input_data").setCheck(null),this.appendValueInput("select_data").setCheck(null).appendField(external_Blockly_namespaceObject.Msg.CONTROLS_OPERATOR_UNTIL).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"true"],[external_Blockly_namespaceObject.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"false"]]),"type"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(LOOPS_HUE),this.setTooltip("do-while loop"),this.setHelpUrl("")}},garbage_collection={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_OP_GARBAGE_COLLECT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},get_mem_alloc={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_GET_MEM_ALLOC),this.setOutput(!0)}},get_mem_free={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_GET_MEM_FREE),this.setOutput(!0)}},MATH_HUE=230;external_Blockly_namespaceObject.FieldTextInput.math_number_validator=function(e){return String(e)},external_Blockly_namespaceObject.FieldTextInput.math_number_validator_include_blank=function(e){if(""===e)return"";return/^-?(0X|0x|0O|0o|0B|0b)?[a-fA-F0-9]{1,}(\.[a-fA-F0-9]+)?$/.test(e)?String(e):null};const math_number={init:function(){this.setColour(MATH_HUE),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldTextInput("0",external_Blockly_namespaceObject.FieldTextInput.math_number_validator),"NUM"),this.setOutput(!0,Number),this.setTooltip(external_Blockly_namespaceObject.Msg.MATH_NUMBER_TOOLTIP)}},math_constant={init:function(){this.setColour(MATH_HUE);this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new external_Blockly_namespaceObject.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("CONSTANT");return{pi:external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_TOOLTIP,e:external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_TOOLTIP}[t]}))}},math_constant_mp={init:function(){this.setColour(MATH_HUE);this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new external_Blockly_namespaceObject.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("CONSTANT");return{pi:external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_MP_TOOLTIP,e:external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_MP_TOOLTIP}[t]}))}},math_arithmetic={init:function(){this.setColour(MATH_HUE),this.setOutput(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new external_Blockly_namespaceObject.FieldDropdown([["+","ADD"],["-","MINUS"],["×","MULTIPLY"],["÷","DIVIDE"],["%","QUYU"],["//","ZHENGCHU"],["**","POWER"]]),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{ADD:external_Blockly_namespaceObject.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:external_Blockly_namespaceObject.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:external_Blockly_namespaceObject.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:external_Blockly_namespaceObject.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:external_Blockly_namespaceObject.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:external_Blockly_namespaceObject.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:external_Blockly_namespaceObject.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[t]}))}},math_selfcalcu={init:function(){this.setColour(MATH_HUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new external_Blockly_namespaceObject.FieldDropdown([["+=","ADD"],["-=","MINUS"],["×=","MULTIPLY"],["÷=","DIVIDE"],["%=","QUYU"],["//=","ZHENGCHU"],["**=","POWER"]]),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{ADD:external_Blockly_namespaceObject.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:external_Blockly_namespaceObject.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:external_Blockly_namespaceObject.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:external_Blockly_namespaceObject.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:external_Blockly_namespaceObject.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:external_Blockly_namespaceObject.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:external_Blockly_namespaceObject.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[t]}))}},math_bit={init:function(){this.setColour(MATH_HUE),this.setOutput(!0,Number),this.appendValueInput("A").setCheck(Number),this.appendValueInput("B").setCheck(Number).appendField(new external_Blockly_namespaceObject.FieldDropdown([["&","&"],["|","|"],[">>",">>"],["<<","<<"]]),"OP"),this.setInputsInline(!0),this.setTooltip("位运算")}},math_trig={init:function(){this.setColour(MATH_HUE),this.setOutput(!0,Number),this.appendValueInput("NUM").setCheck(Number).appendField(new external_Blockly_namespaceObject.FieldDropdown([["sin","SIN"],["cos","COS"],["tan","TAN"],["asin","ASIN"],["acos","ACOS"],["atan","ATAN"],["-","-"],["ln","LN"],["log10","LOG10"],["e^","EXP"],["10^","POW10"]]),"OP");var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{SIN:external_Blockly_namespaceObject.Msg.MATH_TRIG_TOOLTIP_SIN,COS:external_Blockly_namespaceObject.Msg.MATH_TRIG_TOOLTIP_COS,TAN:external_Blockly_namespaceObject.Msg.MATH_TRIG_TOOLTIP_TAN,ASIN:external_Blockly_namespaceObject.Msg.MATH_TRIG_TOOLTIP_ASIN,ACOS:external_Blockly_namespaceObject.Msg.MATH_TRIG_TOOLTIP_ACOS,ATAN:external_Blockly_namespaceObject.Msg.MATH_TRIG_TOOLTIP_ATAN,LN:external_Blockly_namespaceObject.Msg.MATH_SINGLE_TOOLTIP_LN}[t]}))}},math_dec={init:function(){var e=[[external_Blockly_namespaceObject.Msg.MATH_BIN,"bin"],[external_Blockly_namespaceObject.Msg.MATH_OCT,"oct"],[external_Blockly_namespaceObject.Msg.MATH_HEX,"hex"]];this.setColour(MATH_HUE),this.setOutput(!0,String),this.appendValueInput("NUM").setCheck(Number).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"OP");var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{bin:external_Blockly_namespaceObject.Msg.MATH_DEC_TOOLTIP_BIN,oct:external_Blockly_namespaceObject.Msg.MATH_DEC_TOOLTIP_OCT,hex:external_Blockly_namespaceObject.Msg.MATH_DEC_TOOLTIP_HEX}[e]}))}},math_to_int={init:function(){var e=[[external_Blockly_namespaceObject.Msg.LANG_MATH_TO_ROUND,"round"],[external_Blockly_namespaceObject.Msg.LANG_MATH_TO_CEIL,"ceil"],[external_Blockly_namespaceObject.Msg.LANG_MATH_TO_FLOOR,"floor"],[external_Blockly_namespaceObject.Msg.MATH_ABS,"fabs"],[external_Blockly_namespaceObject.Msg.MATH_SQRT,"sqrt"]];this.setColour(MATH_HUE),this.appendValueInput("A").setCheck(Number).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"OP"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{sqrt:external_Blockly_namespaceObject.Msg.MATH_SINGLE_TOOLTIP_ROOT,fabs:external_Blockly_namespaceObject.Msg.MATH_SINGLE_TOOLTIP_ABS,sq:external_Blockly_namespaceObject.Msg.MATH_SINGLE_TOOLTIP_SQ,round:external_Blockly_namespaceObject.Msg.MATH_SINGLE_TOOLTIP_ROUND,ceil:external_Blockly_namespaceObject.Msg.MATH_SINGLE_TOOLTIP_CEIL,floor:external_Blockly_namespaceObject.Msg.MATH_SINGLE_TOOLTIP_FLOOR}[e]}))}},math_max_min={init:function(){var e=[[external_Blockly_namespaceObject.Msg.MIXLY_MAX,"max"],[external_Blockly_namespaceObject.Msg.MIXLY_MIN,"min"]];this.setColour(MATH_HUE),this.appendValueInput("A").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"OP").appendField("("),this.appendValueInput("B").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(","),this.appendDummyInput("").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(")"),this.setInputsInline(!0),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{max:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_MATH_MAX,min:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_MATH_MIN}[e]}))}},math_number_base_conversion={init:function(){var e=[[external_Blockly_namespaceObject.Msg.MATH_TWO,"two"],[external_Blockly_namespaceObject.Msg.MATH_EIGHT,"eight"],[external_Blockly_namespaceObject.Msg.MATH_TEN,"ten"],[external_Blockly_namespaceObject.Msg.MATH_SIXTEEN,"sixteen"]];this.setColour(MATH_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MATH_BA),this.appendValueInput("NUM").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"OP").appendField(external_Blockly_namespaceObject.Msg.MATH_JinZhi).setCheck(Number),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MATH_ZHW).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"OP2").appendField(external_Blockly_namespaceObject.Msg.MATH_JinZhi),this.setFieldValue("ten","OP2"),this.setOutput(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP"),n={two:external_Blockly_namespaceObject.Msg.MATH_Before_two,eight:external_Blockly_namespaceObject.Msg.MATH_Before_eight,ten:external_Blockly_namespaceObject.Msg.MATH_Before_ten,sixteen:external_Blockly_namespaceObject.Msg.MATH_Before_sixteen},a=t.getFieldValue("OP2"),_={two:external_Blockly_namespaceObject.Msg.MATH_Behind_two,eight:external_Blockly_namespaceObject.Msg.MATH_Behind_eight,ten:external_Blockly_namespaceObject.Msg.MATH_Behind_ten,sixteen:external_Blockly_namespaceObject.Msg.MATH_Behind_sixteen};return n[e]+_[a]}))}},math_random={init:function(){var e=[[external_Blockly_namespaceObject.Msg.LANG_MATH_INT,"int"],[external_Blockly_namespaceObject.Msg.LANG_MATH_FLOAT,"float"]];this.setColour(MATH_HUE),this.setOutput(!0,Number),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_RANDOM).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"TYPE"),this.appendValueInput("FROM").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.LANG_MATH_RANDOM_INT_INPUT_TO),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("TYPE"),n={int:external_Blockly_namespaceObject.Msg.LANG_MATH_INT,float:external_Blockly_namespaceObject.Msg.LANG_MATH_FLOAT_RANDOM};return external_Blockly_namespaceObject.Msg.MATH_RANDOM_INT_TOOLTIP+n[e]}))}},math_constrain={init:function(){this.setColour(MATH_HUE),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.LANG_MATH_CONSTRAIN_INPUT_CONSTRAIN),this.appendValueInput("LOW").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.LANG_MATH_CONSTRAIN_INPUT_LOW),this.appendValueInput("HIGH").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.LANG_MATH_CONSTRAIN_INPUT_HIGH),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MATH_CONSTRAIN_TOOLTIP)}},math_map={init:function(){this.setColour(MATH_HUE),this.appendValueInput("NUM",Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MAP).setCheck(Number),this.appendValueInput("fromLow",Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MAP_FROM).setCheck(Number),this.appendValueInput("fromHigh",Number).appendField(",").setCheck(Number),this.appendValueInput("toLow",Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MAP_TO).setCheck(Number),this.appendValueInput("toHigh",Number).appendField(",").setCheck(Number),this.appendDummyInput("").appendField("]"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_MATH_MAP)}},math_indexer_number={init:function(){this.setColour(MATH_HUE),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldTextInput("0",external_Blockly_namespaceObject.FieldTextInput.math_number_validator_include_blank),"NUM"),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MATH_NUMBER_TOOLTIP)}},math_random_seed={init:function(){this.setColour(MATH_HUE),this.appendValueInput("NUM").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.LANG_MATH_RANDOM_SEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_MATH_RANDOM_SEED)}},math_round={init:function(){this.setColour(MATH_HUE),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number),this.appendValueInput("VAR").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MATH_ROUND).appendField(external_Blockly_namespaceObject.Msg.TEXT_KEEP),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.TEXT_DECIMAL),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MATH_ROUND_NEW_TOOLTIP)}},text_to_number={init:function(){var e=[[external_Blockly_namespaceObject.Msg.MIXLY_TO_INT,"int"],[external_Blockly_namespaceObject.Msg.MIXLY_TO_FLOAT,"float"],[external_Blockly_namespaceObject.Msg.MIXLY_TO_BITES,"b"]];this.setColour(MATH_HUE),this.appendValueInput("VAR").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"TOWHAT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("TOWHAT");return{int:external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TOOLTIP_TOINT,float:external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TOOLTIP_TOFLOAT,b:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TEXT_TOBYTE}[e]}))}},text_to_number_skulpt={init:function(){var e=[[external_Blockly_namespaceObject.Msg.MIXLY_TO_INT,"int"],[external_Blockly_namespaceObject.Msg.MIXLY_TO_FLOAT,"float"]];this.setColour(MATH_HUE),this.appendValueInput("VAR").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"TOWHAT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("TOWHAT");return{int:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TEXT_TOINT,float:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TEXT_TOFLOAT}[e]}))}},base_map=math_map,TEXTS_HUE=160,text_text={init:function(){this.setColour(TEXTS_HUE),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new external_Blockly_namespaceObject.FieldTextInput(""),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,String),this.setTooltip(external_Blockly_namespaceObject.Msg.TEXT_TEXT_TOOLTIP)},newQuote_:function(e){if(e==this.RTL)var t="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAqUlEQVQI1z3KvUpCcRiA8ef9E4JNHhI0aFEacm1o0BsI0Slx8wa8gLauoDnoBhq7DcfWhggONDmJJgqCPA7neJ7p934EOOKOnM8Q7PDElo/4x4lFb2DmuUjcUzS3URnGib9qaPNbuXvBO3sGPHJDRG6fGVdMSeWDP2q99FQdFrz26Gu5Tq7dFMzUvbXy8KXeAj57cOklgA+u1B5AoslLtGIHQMaCVnwDnADZIFIrXsoXrgAAAABJRU5ErkJggg==";else t="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAn0lEQVQI1z3OMa5BURSF4f/cQhAKjUQhuQmFNwGJEUi0RKN5rU7FHKhpjEH3TEMtkdBSCY1EIv8r7nFX9e29V7EBAOvu7RPjwmWGH/VuF8CyN9/OAdvqIXYLvtRaNjx9mMTDyo+NjAN1HNcl9ZQ5oQMM3dgDUqDo1l8DzvwmtZN7mnD+PkmLa+4mhrxVA9fRowBWmVBhFy5gYEjKMfz9AylsaRRgGzvZAAAAAElFTkSuQmCC";return new external_Blockly_namespaceObject.FieldImage(t,12,12,'"')}},text_textarea={init:function(){this.setColour(TEXTS_HUE),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new external_Blockly_namespaceObject.FieldMultilineInput("Hello\nMixly"),"VALUE").appendField(this.newQuote_(!1)),this.setOutput(!0,String),this.setTooltip(external_Blockly_namespaceObject.Msg.TEXT_LINES_TOOLTIP)},newQuote_:function(e){if(e==this.RTL)var t="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAqUlEQVQI1z3KvUpCcRiA8ef9E4JNHhI0aFEacm1o0BsI0Slx8wa8gLauoDnoBhq7DcfWhggONDmJJgqCPA7neJ7p934EOOKOnM8Q7PDElo/4x4lFb2DmuUjcUzS3URnGib9qaPNbuXvBO3sGPHJDRG6fGVdMSeWDP2q99FQdFrz26Gu5Tq7dFMzUvbXy8KXeAj57cOklgA+u1B5AoslLtGIHQMaCVnwDnADZIFIrXsoXrgAAAABJRU5ErkJggg==";else t="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAn0lEQVQI1z3OMa5BURSF4f/cQhAKjUQhuQmFNwGJEUi0RKN5rU7FHKhpjEH3TEMtkdBSCY1EIv8r7nFX9e29V7EBAOvu7RPjwmWGH/VuF8CyN9/OAdvqIXYLvtRaNjx9mMTDyo+NjAN1HNcl9ZQ5oQMM3dgDUqDo1l8DzvwmtZN7mnD+PkmLa+4mhrxVA9fRowBWmVBhFy5gYEjKMfz9AylsaRRgGzvZAAAAAElFTkSuQmCC";return new external_Blockly_namespaceObject.FieldImage(t,12,12,'"')}};external_Blockly_namespaceObject.FieldTextInput.char_validator=function(e){if(e.length>1&&"\\"===e.charAt(0)){var t=e.charAt(1);if("0"===t||"b"===t||"f"===t||"n"===t||"r"===t||"t"===t||"\\"===t||"'"===t)return String(e).substring(0,2);if("x"===t&&"0"===e.charAt(2)&&"B"===e.charAt(3))return String(e).substring(0,4)}return String(e).substring(0,1)};const text_char={init:function(){this.setColour(TEXTS_HUE),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new external_Blockly_namespaceObject.FieldTextInput("",external_Blockly_namespaceObject.FieldTextInput.char_validator),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,Number),this.setTooltip(external_Blockly_namespaceObject.Msg.TEXT_CHAR_TOOLTIP)},newQuote_:function(e){if(1==e)var t="../../media/quote2.png";else t="../../media/quote3.png";return new external_Blockly_namespaceObject.FieldImage(t,7,12,'"')}},text_join={init:function(){this.setColour(TEXTS_HUE),this.appendValueInput("A").setCheck([String,Number]),this.appendValueInput("B").setCheck([String,Number]).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TEXT_JOIN),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TEXT_JOIN)}},ascii_to_char={init:function(){this.setColour(TEXTS_HUE),this.appendValueInput("VAR").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TOCHAR),this.setOutput(!0,String),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TEXT_TOCHAR)}},char_to_ascii={init:function(){this.setColour(TEXTS_HUE),this.appendValueInput("VAR").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TOASCII),this.setOutput(!0,Number),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TEXT_TOASCII)}},number_to_text={init:function(){this.setColour(TEXTS_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TOSTRING),this.setOutput(!0,String),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TOOLTIP_TOTEXT)}},text_length={init:function(){this.setColour(TEXTS_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_LENGTH),this.setOutput(!0,Number),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TEXT_LENGTH)}},text_char_at2={init:function(){this.WHERE_OPTIONS=[[external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[external_Blockly_namespaceObject.Msg.TEXT_GET_INDEX_RANDOM+1+external_Blockly_namespaceObject.Msg.TEXT_CHARAT2,"RANDOM"]],this.setHelpUrl(external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(TEXTS_HUE),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_GET,"MODE"),external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_TAIL&&this.appendDummyInput("TAIL").appendField(external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_TAIL),this.setInputsInline(!0),this.setOutput(!0),this.updateAt_(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("MODE"),n=e.getFieldValue("WHERE"),a="";switch(t+" "+n){case"GET FROM_START":case"GET FROM_END":a=external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM;break;case"GET RANDOM":a=external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM;break;case"GET_REMOVE FROM_START":case"GET_REMOVE FROM_END":a=external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM;break;case"GET_REMOVE RANDOM":a=external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM}return"FROM_START"!=n&&"FROM_END"!=n||(a+=" "+external_Blockly_namespaceObject.Msg.LISTS_INDEX_FROM_START_TOOLTIP.replace("%1",external_Blockly_namespaceObject.Msg.ONE_BASED_INDEXING?"#1":"#0")),a}));var t=this;this.setTooltip((function(){var e=t.getFieldValue("WHERE"),n={FROM_START:external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_FROM_START,FROM_END:external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_FROM_END,RANDOM:external_Blockly_namespaceObject.Msg.TEXT_GET_INDEX_RANDOM};return external_Blockly_namespaceObject.Msg.PROCEDURES_DEFRETURN_RETURN+external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_TYPE_STRING+n[e]+"n"+external_Blockly_namespaceObject.Msg.TEXT_CHARAT2}))},mutationToDom:function(){var e=document.createElement("mutation");e.setAttribute("statement",!this.outputConnection);var t=this.getInput("AT").type==external_Blockly_namespaceObject.INPUT_VALUE;return e.setAttribute("at",t),e},domToMutation:function(e){var t="true"==e.getAttribute("statement");this.updateStatement_(t),e="false"!=e.getAttribute("at"),this.updateAt_(e)},updateStatement_:function(e){e!=!this.outputConnection&&(this.unplug(!0,!0),e?(this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)):(this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)))},updateAt_:function(e){this.removeInput("AT"),this.removeInput("ORDINAL",!0),e?(this.appendValueInput("AT").setCheck(Number),external_Blockly_namespaceObject.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL").appendField(external_Blockly_namespaceObject.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT");var t=new external_Blockly_namespaceObject.FieldDropdown(this.WHERE_OPTIONS,(function(t){var n="FROM_START"==t||"FROM_END"==t;if(n!=e){var a=this.sourceBlock_;return a.updateAt_(n),a.setFieldValue(t,"WHERE"),null}}));this.getInput("AT").appendField(t,"WHERE"),external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_TAIL&&this.moveInputBefore("TAIL",null)}},text_char_at={init:function(){this.setHelpUrl(external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(TEXTS_HUE),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_GET+" "+external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_FROM_START),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.TEXT_CHARAT2),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.PROCEDURES_DEFRETURN_RETURN+external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_TYPE_STRING+external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_FROM_START+"n"+external_Blockly_namespaceObject.Msg.TEXT_CHARAT2)}},text_random_char={init:function(){this.setHelpUrl(external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(TEXTS_HUE),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.TEXT_RANDOM_CHAR),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.TEXT_RANDOM_CHAR_TOOLTIP)}},text_substring2={init:function(){this.WHERE_OPTIONS_1=[[external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[external_Blockly_namespaceObject.Msg.LISTS_GET_SUBLIST_START_FIRST,"FIRST"]],this.WHERE_OPTIONS_2=[[external_Blockly_namespaceObject.Msg.LISTS_GET_SUBLIST_END_FROM_START,"FROM_START"],[external_Blockly_namespaceObject.Msg.LISTS_GET_SUBLIST_END_FROM_END,"FROM_END"],[external_Blockly_namespaceObject.Msg.LISTS_GET_SUBLIST_END_LAST,"LAST"]],this.setHelpUrl(external_Blockly_namespaceObject.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(TEXTS_HUE),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput("AT1"),this.appendDummyInput("AT2"),this.setInputsInline(!0),this.setOutput(!0,"List"),this.updateAt_(1,!0),this.updateAt_(2,!0),this.setTooltip(external_Blockly_namespaceObject.Msg._GET_TEXT_SUBLIST_TOOLTIP)},mutationToDom:function(){var e=document.createElement("mutation"),t=this.getInput("AT1").type==external_Blockly_namespaceObject.INPUT_VALUE;e.setAttribute("at1",t);var n=this.getInput("AT2").type==external_Blockly_namespaceObject.INPUT_VALUE;return e.setAttribute("at2",n),e},domToMutation:function(e){var t="true"==e.getAttribute("at1"),n="true"==e.getAttribute("at2");this.updateAt_(1,t),this.updateAt_(2,n)},updateAt_:function(e,t){this.removeInput("AT"+e),this.removeInput("ORDINAL"+e,!0),t?(this.appendValueInput("AT"+e).setCheck(Number),external_Blockly_namespaceObject.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL"+e).appendField(external_Blockly_namespaceObject.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT"+e);var n=new external_Blockly_namespaceObject.FieldDropdown(this["WHERE_OPTIONS_"+e],(function(n){var a="FROM_START"==n||"FROM_END"==n;if(a!=t){var _=this.sourceBlock_;return _.updateAt_(e,a),_.setFieldValue(n,"WHERE"+e),null}}));this.getInput("AT"+e).appendField(n,"WHERE"+e),1==e&&(this.moveInputBefore("AT1","AT2"),this.getInput("ORDINAL1")&&this.moveInputBefore("ORDINAL1","AT2"))}},text_substring={init:function(){this.setHelpUrl(external_Blockly_namespaceObject.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(TEXTS_HUE),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT1").appendField(external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_GET+" "+external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_FROM_START),this.appendValueInput("AT2").appendField(external_Blockly_namespaceObject.Msg.LISTS_GET_SUBLIST_END_FROM_START),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.TEXT_CHARAT2),this.setInputsInline(!0),this.setOutput(!0,["List",String]),this.setTooltip(external_Blockly_namespaceObject.Msg._GET_TEXT_SUBLIST_TOOLTIP)}},text_equals_starts_ends={init:function(){var e=[[external_Blockly_namespaceObject.Msg.MIXLY_EQUALS,"==="],[external_Blockly_namespaceObject.Msg.MIXLY_STARTSWITH,"startswith"],[external_Blockly_namespaceObject.Msg.MIXLY_ENDSWITH,"endswith"]];this.setColour(TEXTS_HUE),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DOWHAT").setCheck(String),this.setOutput(!0,[Boolean,Number]),this.setInputsInline(!0)}},text_compare_to={init:function(){this.setColour(TEXTS_HUE),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(external_Blockly_namespaceObject.Msg.MIXLY_COMPARETO).setCheck(String),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_COMPARETO_HELP)}},text_capital={init:function(){var e=[[external_Blockly_namespaceObject.Msg.TEXT_UPPER,"upper"],[external_Blockly_namespaceObject.Msg.TEXT_TITLE,"title"],[external_Blockly_namespaceObject.Msg.TEXT_CAPITALIZE,"capitalize"],[external_Blockly_namespaceObject.Msg.TEXT_SWAPCASE,"swapcase"],[external_Blockly_namespaceObject.Msg.TEXT_LOWER,"lower"]];this.setColour(TEXTS_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"CAPITAL").setCheck(String),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CAPITAL");return{upper:external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TEXT_UPPER_TOOLTIP,title:external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TEXT_TITLE_TOOLTIP,swapcase:external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TEXT_SWAPCASE_TOOLTIP,capitalize:external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TEXT_CAPITALIZE_TOOLTIP,lower:external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TEXT_LOWER_TOOLTIP}[e]}))}},text_center={init:function(){var e=[[external_Blockly_namespaceObject.Msg.TEXT_LJUST,"ljust"],[external_Blockly_namespaceObject.Msg.TEXT_CENTER,"center"],[external_Blockly_namespaceObject.Msg.TEXT_RJUST,"rjust"]];this.setColour(TEXTS_HUE),this.appendValueInput("VAR").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"CENTER").setCheck(String),this.appendValueInput("WID").appendField(external_Blockly_namespaceObject.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("Symbol").appendField(external_Blockly_namespaceObject.Msg.MIXLY_RECT_Fill).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TEXT_CENTER_TOOLTIP)}},text_find={init:function(){this.setColour(TEXTS_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).setCheck(String),this.appendValueInput("STR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MID+external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER).setCheck(String),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_LIST_INDEX),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TEXT_FIND_TOOLTIP)}},text_join_seq={init:function(){this.setColour(TEXTS_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_USE_STR).setCheck(String),this.appendValueInput("LIST").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_SEQ).setCheck("List","Tuple","Set","Dict"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_GET_STR),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_TOOLTIP)}},text_replace={init:function(){this.setColour(TEXTS_HUE),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("STR1").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_REPLACE).setCheck(String),this.appendValueInput("STR2").appendField(external_Blockly_namespaceObject.Msg.LISTS_SET_INDEX_INPUT_TO).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TEXT_REPLACE_TOOLTIP)}},text_split={init:function(){this.setColour(TEXTS_HUE),this.appendValueInput("VAR"),this.appendValueInput("VAL").appendField(external_Blockly_namespaceObject.Msg.LIST_SPLIT_AS),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.LIST_SPLIT),this.setOutput(!0,"List"),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TEXT_SPLIT_TOOLTIP),this.setInputsInline(!0)}},text_strip={init:function(){var e=[[external_Blockly_namespaceObject.Msg.TEXT_TRIM_BOTH,"strip"],[external_Blockly_namespaceObject.Msg.TEXT_TRIM_LEFT,"lstrip"],[external_Blockly_namespaceObject.Msg.TEXT_TRIM_RIGHT,"rstrip"]];this.setColour(TEXTS_HUE),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.TEXT_STRIM),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"TOWHAT"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.TEXT_BLANK),this.setOutput(!0,String),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("TOWHAT");return{strip:external_Blockly_namespaceObject.Msg.TEXT_TRIM_BOTH_TOOLTIP,lstrip:external_Blockly_namespaceObject.Msg.TEXT_TRIM_LEFT_TOOLTIP,rstrip:external_Blockly_namespaceObject.Msg.TEXT_TRIM_RIGHT_TOOLTIP}[e]}))}},text_format={init:function(){this.setColour(TEXTS_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_FORMAT),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldTextInput("str"),"VAR"),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new external_Blockly_namespaceObject.icons.MutatorIcon(["text_create_with_item"],this)),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TEXT_FORMAT_TOOLTIP)},mutationToDom:function(){var e=document.createElement("mutation");return e.setAttribute("items",this.itemCount_),e},domToMutation:function(e){this.itemCount_=parseInt(e.getAttribute("items"),10),this.updateShape_()},decompose:function(e){var t=e.newBlock("text_create_with_container");t.initSvg();for(var n=t.getInput("STACK").connection,a=0;at?e[t]:0==t?'"key"':'"key'+(t+1)+'"'),"KEY"+t).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},dicts_create_with_container={init:function(){this.setColour(DICTS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},dicts_create_with_item={init:function(){this.setColour(DICTS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},dicts_keys={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DICT_KEYS),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_KEYS_TOOLTIP),this.setOutput(!0,"List")}},dicts_get={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(external_Blockly_namespaceObject.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DICTS_ADD_VALUE),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_GET_TOOLTIP)}},dicts_get_default={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(external_Blockly_namespaceObject.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DICTS_ADD_VALUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.DICTS_DEFAULT_VALUE),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_GET_DEFAULT_TOOLTIP)}},dicts_add_or_change={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(external_Blockly_namespaceObject.Msg.DICTS_ADD),this.appendDummyInput(),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.DICTS_ADD_VALUE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_ADD_OR_CHANGE_TOOLTIP)}},dicts_delete={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(external_Blockly_namespaceObject.Msg.DICTS_DELETE_IN),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DICTS_DELETE_VALUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_DELETE_TOOLTIP)}},dicts_update={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT2").setCheck("Dict").appendField(external_Blockly_namespaceObject.Msg.MAKE_DICT),this.appendValueInput("DICT").setCheck("Dict").appendField(external_Blockly_namespaceObject.Msg.DICT_UPDATE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MID),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_UPDATE_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},dicts_clear={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DICT_CLEAR),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_CLEAR_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},dicts_items={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DICT_ITEMS),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_ITEMS_TOOLTIP),this.setOutput(!0,"List")}},dicts_values={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DICT_VALUES),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_VALUES_TOOLTIP),this.setOutput(!0,"List")}},dicts_length={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_LENGTH),this.setTooltip(external_Blockly_namespaceObject.Msg.DICT_LENGTH_TOOLTIP),this.setOutput(!0,Number)}},dicts_deldict={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DICT_DELDICT),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_DEL_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},dicts_add_change_del={init:function(){this.MODE=[[external_Blockly_namespaceObject.Msg.DICTS_ADD_OR_CHANGE,"INSERT"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_DELETE_VAR,"DELETE"]],this.setHelpUrl(external_Blockly_namespaceObject.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("AT2"),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).appendField(external_Blockly_namespaceObject.Msg.DICTS_ADD_VALUE),this.updateAt_(!0),this.setInputsInline(!0),this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t="";switch(e.getFieldValue("WHERE")){case"INSERT":t=external_Blockly_namespaceObject.Msg.DICTS_ADD_TOOLTIP;break;case"DELETE":t=external_Blockly_namespaceObject.Msg.DICTS_DELETE_TOOLTIP}return t}))},mutationToDom:function(){var e=document.createElement("mutation"),t=this.getInput("AT2").type==external_Blockly_namespaceObject.INPUT_VALUE;return e.setAttribute("at2",t),e},domToMutation:function(e){var t="true"==e.getAttribute("at2");this.updateAt_(t)},updateAt_:function(e){this.removeInput("AT2"),this.removeInput("ORDINAL",!0),e?this.appendValueInput("AT2").setCheck(Number):this.appendDummyInput("AT2");var t=new external_Blockly_namespaceObject.FieldDropdown(this.MODE,(function(t){var n="INSERT"==t;if(n!=e){var a=this.sourceBlock_;return a.updateAt_(n),a.setFieldValue(t,"WHERE"),null}}));this.getInput("AT2").appendField(t,"WHERE")}},dicts_pop={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_DICT_POP),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DICTS_ADD_VALUE),this.setTooltip(external_Blockly_namespaceObject.Msg.DICT_POP_TOOLTIP),this.setInputsInline(!0),this.setOutput(!0)}},dicts_setdefault={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(external_Blockly_namespaceObject.Msg.DICTS_SET_DEFAULT),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DICTS_DEFAULT_VALUE),this.appendValueInput("VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_SETDEFAULT_TOOLTIP)}},dicts_create_with_noreturn={init:function(){this.setColour(DICTS_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldLabel(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_TYPE_DICT),"TIP").appendField(" "),this.itemCount_=3,this.updateShape_(),this.setOutput(!0,"Dict"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setMutator(new external_Blockly_namespaceObject.icons.MutatorIcon(["dicts_create_with_item"],this)),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_CREATE_WITH_TOOLTIP)},mutationToDom:function(){var e=document.createElement("mutation");return e.setAttribute("items",this.itemCount_),e},domToMutation:function(e){this.itemCount_=parseInt(e.getAttribute("items"),10),this.updateShape_()},decompose:function(e){var t=e.newBlock("dicts_create_with_container");t.initSvg();for(var n=t.getInput("STACK").connection,a=0;at?e[t]:0==t?'"key"':'"key'+(t+1)+'"'),"KEY"+t).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},dicts_todict={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TODICT),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TOOLTIP_TODICT)}},dicts_to_json={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TO_JSON),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0,Number)}},json_to_dicts={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_CONVERT_TO_JSON),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0,Number)}},LOGIC_HUE=210,logic_compare={init:function(){var e=external_Blockly_namespaceObject.RTL?[["=","EQ"],["≠","NEQ"],[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["=","EQ"],["≠","NEQ"],["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(LOGIC_HUE),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{EQ:external_Blockly_namespaceObject.Msg.LOGIC_COMPARE_TOOLTIP_EQ,NEQ:external_Blockly_namespaceObject.Msg.LOGIC_COMPARE_TOOLTIP_NEQ,LT:external_Blockly_namespaceObject.Msg.LOGIC_COMPARE_TOOLTIP_LT,LTE:external_Blockly_namespaceObject.Msg.LOGIC_COMPARE_TOOLTIP_LTE,GT:external_Blockly_namespaceObject.Msg.LOGIC_COMPARE_TOOLTIP_GT,GTE:external_Blockly_namespaceObject.Msg.LOGIC_COMPARE_TOOLTIP_GTE}[e]})),this.prevBlocks_=[null,null]}},logic_compare_continous={init:function(){var e=external_Blockly_namespaceObject.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]],t=external_Blockly_namespaceObject.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(LOGIC_HUE),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"OP1"),this.appendValueInput("C").appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"OP2"),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_LOGIC_COMPARE_CONTINOUS_TOOLTIP)}},logic_operation={init:function(){var e=[[external_Blockly_namespaceObject.Msg.LOGIC_OPERATION_AND,"AND"],[external_Blockly_namespaceObject.Msg.LOGIC_OPERATION_OR,"OR"],[external_Blockly_namespaceObject.Msg.LOGIC_OPERATION_NOR,"NOR"],[external_Blockly_namespaceObject.Msg.LOGIC_OPERATION_XOR,"XOR"]];this.setColour(LOGIC_HUE),this.setOutput(!0,Boolean),this.appendValueInput("A").setCheck([Boolean,Number]),this.appendValueInput("B").setCheck([Boolean,Number]).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{AND:external_Blockly_namespaceObject.Msg.LOGIC_OPERATION_TOOLTIP_AND,OR:external_Blockly_namespaceObject.Msg.LOGIC_OPERATION_TOOLTIP_OR,NOR:external_Blockly_namespaceObject.Msg.LOGIC_OPERATION_TOOLTIP_NOR,XOR:external_Blockly_namespaceObject.Msg.LOGIC_OPERATION_TOOLTIP_XOR}[e]}))}},logic_negate={init:function(){this.setColour(LOGIC_HUE),this.setOutput(!0,Boolean),this.appendValueInput("BOOL").setCheck([Number,Boolean]).appendField(external_Blockly_namespaceObject.Msg.LOGIC_NEGATE_TITLE),this.setTooltip(external_Blockly_namespaceObject.Msg.LOGIC_NEGATE_TOOLTIP)}},logic_boolean={init:function(){var e=[[external_Blockly_namespaceObject.Msg.LOGIC_BOOLEAN_TRUE,"TRUE"],[external_Blockly_namespaceObject.Msg.LOGIC_BOOLEAN_FALSE,"FALSE"]];this.setColour(LOGIC_HUE),this.setOutput(!0,Boolean),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"BOOL"),this.setTooltip(external_Blockly_namespaceObject.Msg.LOGIC_BOOLEAN_TOOLTIP)}},logic_null={init:function(){this.setColour(LOGIC_HUE),this.setOutput(!0),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.LOGIC_NULL),this.setTooltip(external_Blockly_namespaceObject.Msg.LOGIC_NULL_TOOLTIP)}},logic_true_or_false={init:function(){this.setColour(LOGIC_HUE),this.appendValueInput("A"),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.LOGIC_TERNARY_IF_TRUE),this.appendValueInput("C").appendField(external_Blockly_namespaceObject.Msg.LOGIC_TERNARY_IF_FALSE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_LOGIT_TRUEORFALSE)}},logic_is_in={init:function(){var e=[[external_Blockly_namespaceObject.Msg.TEXT_APPEND_TO,"in"],[external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_LOGIC_IS_NOT_IN,"not in"]];this.setColour(LOGIC_HUE),this.appendValueInput("A"),this.appendValueInput("B").setCheck([String,"List"]).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"BOOL"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MICROBIT_LOGIC_IS_IN),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.IN)}},logic_is={init:function(){var e=[[external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_LOGIC_IS,"is"],[external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_LOGIC_IS_NOT,"is not"]];this.setColour(LOGIC_HUE),this.appendValueInput("A"),this.appendValueInput("B").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"BOOL"),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_LOGIC_IS_TOOLTIP)}},logic_tobool={init:function(){this.setColour(LOGIC_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TOBOOL),this.setOutput(!0,Boolean),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TOOLTIP_TOBOOL)}},STORAGE_HUE=0,storage_open_file_with_os={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("fn").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_STORAGE_OPEN_FILE_WITH_OS+"(For Windows)"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},storage_fileopen={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILENAME").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_AS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("MODE"),n=external_Blockly_namespaceObject.Msg.MIXLY_USE,a=external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,_=external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,l=external_Blockly_namespaceObject.Msg.MIXLY_BELONG;return n+{r:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[t]+l+a+_}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},storage_fileopen_new={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILENAME").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("MODE"),n=external_Blockly_namespaceObject.Msg.MIXLY_USE,a=external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,_=external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,l=external_Blockly_namespaceObject.Msg.MIXLY_BELONG,s=external_Blockly_namespaceObject.Msg.PY_STORAGE_FILE_OBJECT;return n+{r:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[t]+l+a+_+s}))}},storage_fileopen_new_encoding={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILENAME").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE);this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXPY_TEXT_ENCODE).appendField(new external_Blockly_namespaceObject.FieldDropdown([["ANSI","ANSI"],["gbk","gbk"],["utf-8","utf-8"]]),"CODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("MODE"),n=external_Blockly_namespaceObject.Msg.MIXLY_USE,a=external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,_=external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,l=external_Blockly_namespaceObject.Msg.MIXLY_BELONG,s=external_Blockly_namespaceObject.Msg.PY_STORAGE_FILE_OBJECT;return n+{r:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[t]+l+a+_+s}))}},storage_file_write={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("data").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE+external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_TYPE_STRING+external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE)}},storage_get_contents_without_para={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILE").setCheck("Variable").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"read"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE,"readline"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES,"readlines"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String)}},storage_get_contents={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILE").setCheck("Variable").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,"read"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,"readline"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE,"readlines"]]),"MODE"),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("MODE"),n=external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE,a=external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER;return n+{read:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,readline:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,readlines:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE}[t]+"x"+a}))}},storage_get_a_line={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.setNextStatement(!0),this.appendValueInput("SIZE").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(external_Blockly_namespaceObject.Msg.MICROBIT_PYTHON_TYPE)}},storage_can_write_ornot={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.HTML_FILE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT1)}},storage_get_filename={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FILENAME),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILENAME)}},storage_close_file={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE)}},storage_list_all_files={init:function(){this.setColour(STORAGE_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES)}};external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE;const storage_delete_file={init:function(){this.setColour(STORAGE_HUE),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE,"remove"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_DIRS,"removedirs"]]),"MODE"),this.appendValueInput("FILE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE)}},storage_get_file_size={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILE").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE+external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE)}},storage_file_tell={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILE").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_RETURN_FILE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_PRESENT_LOCATION),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_TELL)}},storage_file_seek={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILE").setCheck("Variable").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,"start"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,"current"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END,"end"]]),"MODE"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("MODE"),n=external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION+external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION,a=external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER,_=external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET;return n+" "+{start:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,current:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,end:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END}[t]+_+"x"+a}))}},storage_get_current_dir={init:function(){this.setColour(STORAGE_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR)}},storage_make_dir={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("PATH").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_ESP32_SET),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,"mkdir"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_MAKEDIRS,"makedirs"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1);var e=this;this.setTooltip((function(){var t=e.getFieldValue("MODE");return external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH+"x"+external_Blockly_namespaceObject.Msg.MIXLY_ESP32_SET+{mkdir:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,makedirs:external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[t]}))}},storage_rename={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILE").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME),this.appendValueInput("NEWFILE").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_AS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME)}},storage_change_dir={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILE").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR)}},storage_is_file={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILE").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.HTML_FILE,"isfile"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_DIR,"isdir"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean);let e=this;this.setTooltip((function(){var t=e.getFieldValue("MODE");return external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH+"x"+external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT+{isfile:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,isdir:external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[t]}))}},sdcard_use_spi_init={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("SPISUB").appendField(external_Blockly_namespaceObject.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_SETUP+external_Blockly_namespaceObject.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(external_Blockly_namespaceObject.Msg.MIXLY_SD_CARD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},sdcard_mount={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_SD_CARD),this.appendValueInput("DIR").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_SDCARD_MOUNT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip()}},Procedures={};Procedures.NAME_TYPE=external_Blockly_namespaceObject.PROCEDURE_CATEGORY_NAME,Procedures.allProcedures=function(e){for(var t=e.getAllBlocks(!1),n=[],a=[],_=0;_"),this.appendValueInput("style").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_ATTR).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendStatementInput("DO").appendField(""),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},html_style={init:function(){this.setColour(HTML_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.HTML_STYLE),this.appendStatementInput("STYLE"),this.setOutput(!0)}},html_form={init:function(){this.setColour(HTML_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.HTML_FORM_CONTENT).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.HTML_TEXT,"text"],[external_Blockly_namespaceObject.Msg.HTML_EMAIL,"email"],[external_Blockly_namespaceObject.Msg.HTML_NUMBER,"number"],[external_Blockly_namespaceObject.Msg.HTML_PASSWORD,"password"],[external_Blockly_namespaceObject.Msg.HTML_CHECKBOX,"checkbox"],[external_Blockly_namespaceObject.Msg.HTML_RADIOBUTTON,"radiobutton"],[external_Blockly_namespaceObject.Msg.HTML_BUTTON,"button"],[external_Blockly_namespaceObject.Msg.HTML_COLOUR,"colour"],[external_Blockly_namespaceObject.Msg.HTML_DATE,"date"],[external_Blockly_namespaceObject.Msg.HTML_LOCALTIME,"local time"],[external_Blockly_namespaceObject.Msg.HTML_FILE,"file"],[external_Blockly_namespaceObject.Msg.HTML_HIDDEN,"hidden"],[external_Blockly_namespaceObject.Msg.HTML_IMAGE,"image"],[external_Blockly_namespaceObject.Msg.HTML_MONTH,"month"],[external_Blockly_namespaceObject.Msg.HTML_RANGE,"range"],[external_Blockly_namespaceObject.Msg.HTML_RESET,"reset"],[external_Blockly_namespaceObject.Msg.HTML_SEARCH,"search"],[external_Blockly_namespaceObject.Msg.HTML_SUBMIT,"submit"],[external_Blockly_namespaceObject.Msg.HTML_TELEPHONENUMBER,"telephone number"],[external_Blockly_namespaceObject.Msg.HTML_TIME,"time"],[external_Blockly_namespaceObject.Msg.HTML_URL,"url"],[external_Blockly_namespaceObject.Msg.HTML_WEEK,"week"]]),"LEVEL"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.HTML_NAME).appendField(new external_Blockly_namespaceObject.FieldTextInput("car"),"NAME"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.HTML_VALUE).appendField(new external_Blockly_namespaceObject.FieldTextInput("go"),"VALUE"),this.appendValueInput("style").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_ATTR).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},html_style_content={init:function(){this.setColour(HTML_HUE),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldTextInput("property"),"KEY").appendField(":").appendField(new external_Blockly_namespaceObject.FieldTextInput("value"),"VALUE"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},html_style_color={init:function(){this.setColour(HTML_HUE),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldTextInput("property"),"KEY").appendField(":").appendField(new external_Blockly_namespaceObject.FieldColour("#ff0000"),"RGB_LED_COLOR"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},html_text={init:function(){this.setColour(HTML_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.HTML_TEXT).appendField(new external_Blockly_namespaceObject.FieldTextInput("text"),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},UTILITY_HUE=160,raw_table={init:function(){this.setColour(UTILITY_HUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Tabular Abstraction:"),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldTable(""),"TEXT")}},raw_block={init:function(){this.setColour(UTILITY_HUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Code Block:"),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldMultilineInput(""),"TEXT")}},raw_expression={init:function(){this.setColour(UTILITY_HUE),this.appendDummyInput().appendField("Code Expression:"),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldMultilineInput(""),"TEXT"),this.setOutput(!0)}},raw_empty={init:function(){this.setColour(UTILITY_HUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("VALUE").appendField(""),this.setInputsInline(!1)}},text_comment={init:function(){this.setColour(UTILITY_HUE),this.appendDummyInput().appendTitle("Comment:").appendTitle(new external_Blockly_namespaceObject.FieldTextInput(""),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("This comment will be ignored by Python")}},type_check={init:function(){this.setColour(UTILITY_HUE),this.appendValueInput("VALUE").appendField(external_Blockly_namespaceObject.Msg.TYPE_CHECK),this.setInputsInline(!1),this.setOutput(!0,"Type")}},text_print_multiple={init:function(){this.setColour(UTILITY_HUE),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new external_Blockly_namespaceObject.icons.MutatorIcon(["text_print_multiple_item"],this)),this.setTooltip(external_Blockly_namespaceObject.Msg.TEXT_PRINT_TOOLTIP)},mutationToDom:function(){var e=document.createElement("mutation");return e.setAttribute("items",this.itemCount_),e},domToMutation:function(e){this.itemCount_=parseInt(e.getAttribute("items"),10),this.updateShape_()},decompose:function(e){var t=external_Blockly_namespaceObject.Block.obtain(e,"text_print_multiple_container");t.initSvg();for(var n=t.getInput("STACK").connection,a=0;a= stop:"," yield start"," start -= abs(step)"])};if(e=function(e,t,n){return"("+e+" <= "+t+") and "+o()+"("+e+", "+t+", "+n+") or "+r()+"("+e+", "+t+", "+n+")"},external_Blockly_namespaceObject.isNumber(a)&&external_Blockly_namespaceObject.isNumber(_)&&external_Blockly_namespaceObject.isNumber(l))a=parseFloat(a),_=parseFloat(_),l=Math.abs(parseFloat(l)),0==a%1&&0==_%1&&0==l%1?(a<=_?(_++,e=0==a&&1==l?_:a+", "+_,1!=l&&(e+=", "+l)):e=a+", "+--_+", -"+l,e="range("+e+")"):(e=a<_?o():r(),e+="("+a+", "+_+", "+l+")");else{var p=function(e,a){if(external_Blockly_namespaceObject.isNumber(e))e=parseFloat(e);else{var _=t.variableDB_.getDistinctName(n+a,external_Blockly_namespaceObject.Variables.NAME_TYPE);i+=_+" = "+e+"\n",e=_}return e};a=p(a,"_start"),_=p(_,"_end");p(l,"_inc"),e="number"==typeof a&&"number"==typeof _?a<_?o(0,_):r(0,_):e(a,_,l)}return i+="for "+n+" in "+e+":\n"+s},control_controls_for_range=function(e,t){var n=t.variableDB_.getName(e.getFieldValue("VAR"),external_Blockly_namespaceObject.Variables.NAME_TYPE),a=t.valueToCode(e,"FROM",t.ORDER_NONE)||"0",_=t.valueToCode(e,"TO",t.ORDER_NONE)||"0",l=t.valueToCode(e,"STEP",t.ORDER_NONE)||"1",s=t.statementToCode(e,"DO"),i=t.addLoopTrap(s,e.id)||t.PASS;return t.setups_.mixly_range="def mixly_range(start, stop, step):\n for i in range(start, stop + 1, step):\n yield i\n\n","for "+n+" in mixly_range("+a+", "+_+", "+l+"):\n"+i},control_controls_whileUntil=function(e,t){var n="UNTIL"==e.getFieldValue("MODE"),a=t.valueToCode(e,"BOOL",t.ORDER_NONE)||"False",_=t.statementToCode(e,"DO");return n&&(a="not "+a),"while "+a+":\n"+(_=t.addLoopTrap(_,e.id)||t.PASS)},control_controls_flow_statements=function(e){switch(e.getFieldValue("FLOW")){case"BREAK":return"break\n";case"CONTINUE":return"continue\n"}throw"Unknown flow statement."},control_controls_delay=function(e,t){return"sleep("+(t.valueToCode(this,"DELAY_TIME",t.ORDER_ATOMIC)||"1000")+")\n"},Panic_with_status_code=function(e,t){return"panic("+(t.valueToCode(this,"STATUS_CODE",t.ORDER_ATOMIC)||"1000")+")\n"},controls_millis=function(e,t){t.definitions_.import_time="import time";return["time.time()",t.ORDER_ATOMIC]},control_reset=function(e,t){return t.definitions_.import_microbit="from microbit import *","reset()\n"},controls_interrupts=function(){return"interrupts();\n"},controls_nointerrupts=function(){return"noInterrupts();\n"},control_controls_forEach=function(e,t){var n=t.valueToCode(this,"VAR",t.ORDER_ATOMIC)||"''",a=t.valueToCode(e,"LIST",t.ORDER_RELATIONAL)||"[]",_=t.statementToCode(e,"DO");return"for "+n+" in "+a+":\n"+(_=t.addLoopTrap(_,e.id)||t.PASS)},control_controls_range=function(e,t){return["range("+(t.valueToCode(this,"FROM",t.ORDER_NONE)||"0")+", "+(t.valueToCode(this,"TO",t.ORDER_NONE)||"0")+", "+(t.valueToCode(this,"STEP",t.ORDER_NONE)||"1")+")",t.ORDER_ATOMIC]},control_controls_lambda=function(e,t){var n="lambda "+(t.valueToCode(e,"BOOL",t.ORDER_NONE)||"None")+": "+(t.statementToCode(e,"DO")||"pass");return[n=n.replace("\n","").replace(" ",""),t.ORDER_ATOMIC]},time_sleep=function(e,t){return t.definitions_.import_time="import time","time.sleep("+(t.valueToCode(this,"DELAY_TIME",t.ORDER_ATOMIC)||"1000")+")\n"},control_controls_pass=function(){return"pass\n"},control_controls_thread=function(e,t){t.definitions_.import__thread="import _thread";var n=t.valueToCode(this,"VAR",t.ORDER_NONE)||"None";return"_thread.start_new_thread("+t.variableDB_.getName(t.valueToCode(this,"callback",t.ORDER_NONE)||"None",external_Blockly_namespaceObject.Procedures.NAME_TYPE)+", "+n+")\n"},control_do_while=function(e,t){var n=t.valueToCode(this,"select_data",t.ORDER_NONE)||"False",a=t.statementToCode(this,"input_data");return a="true"==this.getFieldValue("type")?a+" if ("+n+"):\n break\n":a+" if not ("+n+"):\n break\n","while True:\n"+(a=t.addLoopTrap(a,this.id)||t.PASS)},control_controls_repeat_ext=function(e,t){var n=t.valueToCode(this,"TIMES",t.ORDER_ATOMIC),a=t.statementToCode(e,"DO");return"for _my_variable in range("+n+"):\n"+(a=t.addLoopTrap(a,e.id)||t.PASS)},control_garbage_collection=function(e,t){t.definitions_.import_gc="import gc";return"gc.collect()\n"},control_get_mem_alloc=function(e,t){t.definitions_.import_gc="import gc";return["gc.mem_alloc()\n",t.ORDER_ATOMIC]},control_get_mem_free=function(e,t){t.definitions_.import_gc="import gc";return["gc.mem_free()\n",t.ORDER_ATOMIC]},controls_repeat=control_controls_repeat_ext,math_math_number=function(e,t){var n=this.getFieldValue("NUM");return[n,n<0?t.ORDER_UNARY_PREFIX:t.ORDER_ATOMIC]},math_math_constant=function(e,t){return t.definitions_.import_math="import math",["math."+this.getFieldValue("CONSTANT"),t.ORDER_ATOMIC]},math_math_constant_mp=function(e,t){return t.definitions_.import_math="import math",["math."+this.getFieldValue("CONSTANT"),t.ORDER_ATOMIC]},math_math_bit=function(e,t){var n=this.getFieldValue("OP"),a=t.ORDER_ATOMIC;return["("+(t.valueToCode(this,"A",a)||"0")+n+(t.valueToCode(this,"B",a)||"0")+")",a]},math_math_arithmetic=function(e,t){var n=(a={ADD:[" + ",t.ORDER_ADDITIVE],MINUS:[" - ",t.ORDER_ADDITIVE],MULTIPLY:[" * ",t.ORDER_MULTIPLICATIVE],DIVIDE:[" / ",t.ORDER_MULTIPLICATIVE],QUYU:[" % ",t.ORDER_MULTIPLICATIVE],ZHENGCHU:[" // ",t.ORDER_MULTIPLICATIVE],POWER:[" ** ",t.ORDER_EXPONENTIATION]}[e.getFieldValue("OP")])[0],a=a[1];return[(t.valueToCode(e,"A",a)||"0")+n+(e=t.valueToCode(e,"B",a)||"0"),a]},math_math_selfcalcu=function(e,t){var n=t.valueToCode(this,"A",t.ORDER_RELATIONAL)||"0",a=t.valueToCode(this,"B",t.ORDER_RELATIONAL)||"0";switch(this.getFieldValue("OP")){case"ADD":var _="+=";break;case"MINUS":_="-=";break;case"MULTIPLY":_="*=";break;case"DIVIDE":_="/=";break;case"QUYU":_="%=";break;case"ZHENGCHU":_="//=";break;case"POWER":_="**="}return n+" "+_+" "+a+"\n"},math_single=function(e,t){var n,a=e.getFieldValue("OP");if("NEG"==a)return["-"+(n=t.valueToCode(e,"NUM",t.ORDER_UNARY_SIGN)||"0"),t.ORDER_UNARY_SIGN];switch(t.definitions_.import_math="import math",e="SIN"==a||"COS"==a||"TAN"==a?t.valueToCode(e,"NUM",t.ORDER_MULTIPLICATIVE)||"0":t.valueToCode(e,"NUM",t.ORDER_NONE)||"0",a){case"ABS":n="math.fabs("+e+")";break;case"ROOT":n="math.sqrt("+e+")";break;case"LN":n="math.log("+e+")";break;case"LOG10":n="math.log10("+e+")";break;case"EXP":n="math.exp("+e+")";break;case"POW10":n="math.pow(10,"+e+")";break;case"ROUND":n="round("+e+")";break;case"ROUNDUP":n="math.ceil("+e+")";break;case"ROUNDDOWN":n="math.floor("+e+")";break;case"SIN":n="math.sin("+e+")";break;case"COS":n="math.cos("+e+")";break;case"TAN":n="math.tan("+e+")";break;case"++":n="++("+e+")";break;case"--":n="--("+e+")";break;case"-":n="-("+e+")"}if(n)return[n,t.ORDER_EXPONENTIATION];switch(a){case"ASIN":n="math.degrees(math.asin("+e+"))";break;case"ACOS":n="math.degrees(math.acos("+e+"))";break;case"ATAN":n="math.degrees(math.atan("+e+"))"}return[n,t.ORDER_MULTIPLICATIVE]},math_math_trig=math_single,math_math_dec=function(e,t){var n=t.valueToCode(this,"NUM",t.ORDER_NONE)||"0";return[this.getFieldValue("OP")+"("+n+")",t.ORDER_ATOMIC]},math_math_to_int=function(e,t){var n=t.valueToCode(this,"A",t.ORDER_NONE)||"0",a=this.getFieldValue("OP"),_="";return"round"===a?_=a+"("+n+")":(_="math."+a+"("+n+")",t.definitions_.import_math="import math"),[_,t.ORDER_ATOMIC]},math_math_max_min=function(e,t){var n=t.valueToCode(this,"A",t.ORDER_NONE)||"0",a=t.valueToCode(this,"B",t.ORDER_NONE)||"0";return[this.getFieldValue("OP")+"("+n+", "+a+")",t.ORDER_ATOMIC]},math_math_random=function(e,t){t.definitions_.import_random="import random";var n=this.getFieldValue("TYPE"),a=t.valueToCode(this,"FROM",t.ORDER_NONE)||"0",_=t.valueToCode(this,"TO",t.ORDER_NONE)||"0";if("int"==n)var l="random.randint("+a+", "+_+")";else if("float"==n)l="random.uniform("+a+", "+_+")";return[l,t.ORDER_UNARY_POSTFIX]},math_math_map=function(e,t){var n=t.valueToCode(this,"NUM",t.ORDER_NONE),a=t.valueToCode(this,"fromLow",t.ORDER_ATOMIC),_=t.valueToCode(this,"fromHigh",t.ORDER_ATOMIC),l=t.valueToCode(this,"toLow",t.ORDER_ATOMIC),s=t.valueToCode(this,"toHigh",t.ORDER_ATOMIC);return t.definitions_.import_mixpy_math_map="from mixpy import math_map",["math_map("+n+", "+a+", "+_+", "+l+", "+s+")",t.ORDER_NONE]},math_math_constrain=function(e,t){return["min(max("+(t.valueToCode(this,"VALUE",t.ORDER_NONE)||"0")+", "+(t.valueToCode(this,"LOW",t.ORDER_NONE)||"0")+"), "+(t.valueToCode(this,"HIGH",t.ORDER_NONE)||"0")+")",t.ORDER_UNARY_POSTFIX]},math_math_number_base_conversion=function(e,t){var n=e.getFieldValue("OP"),a=t.valueToCode(this,"NUM",t.ORDER_NONE)||"0",_=e.getFieldValue("OP2");t.definitions_.import_math="import math";var l="",s="10";if("two"==n?s="2":"eight"==n?s="8":"ten"==n?s="10":"sixteen"==n&&(s="16"),"two"==_?l="bin":"eight"==_?l="oct":"ten"==_?l="":"sixteen"==_&&(l="hex"),""==l)var i="int(str("+a+"), "+s+")";else i=l+"(int(str("+a+"), "+s+"))";return[i,t.ORDER_ATOMIC]},math_math_random_seed=function(e,t){return t.definitions_.import_random="import random","random.seed("+(t.valueToCode(this,"NUM",t.ORDER_NONE)||"0")+");\n"},math_math_indexer_number=function(e,t){var n=this.getFieldValue("NUM");return[n,n<0?t.ORDER_UNARY_PREFIX:t.ORDER_ATOMIC]},math_math_round=function(e,t){return["round("+(t.valueToCode(this,"VALUE",t.ORDER_NONE)||"0")+", "+(t.valueToCode(this,"VAR",t.ORDER_NONE)||"0")+")",t.ORDER_ATOMIC]},math_text_to_number=function(e,t){var n=this.getFieldValue("TOWHAT"),a=t.valueToCode(this,"VAR",t.ORDER_ATOMIC);return"b"==n?[a+'.encode("utf-8")',t.ORDER_ATOMIC]:[n+"("+a+")",t.ORDER_ATOMIC]},math_text_to_number_skulpt=function(e,t){var n=this.getFieldValue("TOWHAT"),a=t.valueToCode(this,"VAR",t.ORDER_ATOMIC);return"b"==n?[a+'.encode("utf-8")',t.ORDER_ATOMIC]:[n+"("+a+")",t.ORDER_ATOMIC]},math_base_map=math_math_map,generators_text_text=function(e,t){return[t.quote_(this.getFieldValue("TEXT")),t.ORDER_ATOMIC]},text_text_textarea=function(e,t){return['"""'+this.getFieldValue("VALUE")+'"""',t.ORDER_ATOMIC]},text_text_char=function(e,t){return["'"+this.getFieldValue("TEXT")+"'",t.ORDER_ATOMIC]},text_text_join=function(e,t){return[t.valueToCode(this,"A",t.ORDER_ATOMIC)+" + "+t.valueToCode(this,"B",t.ORDER_ATOMIC),t.ORDER_ADDITIVE]},text_ascii_to_char=function(e,t){return["chr("+(t.valueToCode(this,"VAR",t.ORDER_ATOMIC)||"0")+")",t.ORDER_ATOMIC]},text_char_to_ascii=function(e,t){return["ord("+(t.valueToCode(this,"VAR",t.ORDER_ATOMIC)||"a")+")",t.ORDER_ATOMIC]},text_number_to_text=function(e,t){return["str("+(t.valueToCode(this,"VAR",t.ORDER_ATOMIC)||"0")+")",t.ORDER_ATOMIC]},text_text_length=function(e,t){return["len("+(t.valueToCode(this,"VAR",t.ORDER_ATOMIC)||'""')+")",t.ORDER_ATOMIC]},text_text_char_at2=function(e,t){var n=e.getFieldValue("WHERE")||"FROM_START",a=t.valueToCode(this,"VAR",t.ORDER_ATOMIC)||'""';switch(n){case"FROM_START":return[a+"["+(e=t.getAdjustedInt(e,"AT"))+"]",t.ORDER_ATOMIC];case"FROM_END":return[a+"["+(e=t.getAdjustedInt(e,"AT",1,!0))+"]",t.ORDER_ATOMIC];case"RANDOM":return t.definitions_.import_random="import random",["random.choice("+a+")",t.ORDER_FUNCTION_CALL]}throw"Unhandled combination (lists_getIndex)."},text_text_char_at=function(e,t){return[(t.valueToCode(this,"VAR",t.ORDER_ATOMIC)||'""')+"["+(t.valueToCode(this,"AT",t.ORDER_ATOMIC)||0)+"]",t.ORDER_ATOMIC]},text_text_random_char=function(e,t){var n=t.valueToCode(this,"VAR",t.ORDER_ATOMIC)||'""';return t.definitions_.import_random="import random",["random.choice("+n+")",t.ORDER_FUNCTION_CALL]},text_text_equals_starts_ends=function(e,t){var n=t.valueToCode(this,"STR1",t.ORDER_ATOMIC)||'""',a=t.valueToCode(this,"STR2",t.ORDER_ATOMIC)||'""',_=this.getFieldValue("DOWHAT");return"==="===_?[n+" == "+a,t.ORDER_ATOMIC]:[n+"."+_+"("+a+")",t.ORDER_ATOMIC]},text_text_compare_to=function(e,t){return["cmp("+(t.valueToCode(this,"STR1",t.ORDER_ATOMIC)||'""')+","+(t.valueToCode(this,"STR2",t.ORDER_ATOMIC)||'""')+")",t.ORDER_ATOMIC]},text_text_substring2=function(e,t){var n=t.valueToCode(this,"VAR",t.ORDER_ATOMIC)||'""',a=e.getFieldValue("WHERE1"),_=e.getFieldValue("WHERE2");switch(a){case"FROM_START":"0"==(l=t.getAdjustedInt(e,"AT1"))&&(l="");break;case"FROM_END":var l=t.getAdjustedInt(e,"AT1",0,!0);break;case"FIRST":l="0";break;default:throw"Unhandled option (lists_getSublist)"}switch(_){case"FROM_START":var s=t.getAdjustedInt(e,"AT2");break;case"FROM_END":s=t.getAdjustedInt(e,"AT2",0,!0);external_Blockly_namespaceObject.isNumber(String(s))?"0"==s&&(s=""):(t.definitions_.import_sys="import sys",s+=" or sys.maxsize");break;case"LAST":s="-1";break;default:throw"Unhandled option (lists_getSublist)"}return[n+"["+l+" : "+s+"]",t.ORDER_ATOMIC]},text_text_substring=function(e,t){return[(t.valueToCode(this,"VAR",t.ORDER_ATOMIC)||'""')+"["+t.valueToCode(this,"AT1",t.ORDER_ATOMIC)+" : "+t.valueToCode(this,"AT2",t.ORDER_ATOMIC)+"]",t.ORDER_ATOMIC]},text_text_capital=function(e,t){var n=this.getFieldValue("CAPITAL");return[t.valueToCode(this,"VAR",t.ORDER_ATOMIC)+"."+n+"()",t.ORDER_ATOMIC]},text_text_center=function(e,t){var n=this.getFieldValue("CENTER");return[t.valueToCode(this,"VAR",t.ORDER_ATOMIC)+"."+n+"("+t.valueToCode(this,"WID",t.ORDER_ATOMIC)+","+t.valueToCode(this,"Symbol",t.ORDER_ATOMIC)+")",t.ORDER_ATOMIC]},text_text_find=function(e,t){return[t.valueToCode(this,"VAR",t.ORDER_ATOMIC)+".find("+t.valueToCode(this,"STR",t.ORDER_ATOMIC)+")",t.ORDER_ATOMIC]},text_text_join_seq=function(e,t){return[t.valueToCode(this,"VAR",t.ORDER_ATOMIC)+".join("+(t.valueToCode(this,"LIST",t.ORDER_ASSIGNMENT)||"0")+")",t.ORDER_ATOMIC]},text_text_replace=function(e,t){return[t.valueToCode(this,"VAR",t.ORDER_ATOMIC)+".replace("+t.valueToCode(this,"STR1",t.ORDER_ATOMIC)+","+t.valueToCode(this,"STR2",t.ORDER_ATOMIC)+")",t.ORDER_ATOMIC]},text_text_split=function(e,t){return[(t.valueToCode(this,"VAR",t.ORDER_ATOMIC)||'""')+".split("+(t.valueToCode(this,"VAL",t.ORDER_ATOMIC)||'""')+")",t.ORDER_ATOMIC]},text_text_strip=function(e,t){var n=this.getFieldValue("TOWHAT");return[t.valueToCode(this,"VAR",t.ORDER_ATOMIC)+"."+n+"()",t.ORDER_ATOMIC]},text_text_format=function(e,t){for(var n=this.getFieldValue("VAR"),a=new Array(this.itemCount_),_=0;_",GTE:">="};const logic_logic_operation=function(e,t){var n=this.getFieldValue("OP"),a="&&"==n?t.ORDER_LOGICAL_AND:t.ORDER_LOGICAL_OR,_=t.valueToCode(this,"A",a)||"False",l=t.valueToCode(this,"B",a)||"False";if("AND"==n)var s=_+" and "+l;else if("OR"==n)s=_+" or "+l;else if("NOR"==n)s="not("+_+"^"+l+")";else s=_+"^"+l;return[s,a]},logic_logic_negate=function(e,t){var n=t.ORDER_UNARY_PREFIX;return["not "+(t.valueToCode(this,"BOOL",n)||"False"),n]},logic_logic_boolean=function(e,t){return["TRUE"==this.getFieldValue("BOOL")?"True":"False",t.ORDER_ATOMIC]},logic_logic_null=function(e,t){return["None",t.ORDER_ATOMIC]},logic_logic_true_or_false=function(e,t){var n=t.valueToCode(this,"A",t.ORDER_ATOMIC)||"False";return["("+(t.valueToCode(this,"B",t.ORDER_ATOMIC)||"False")+" if "+n+" else "+(t.valueToCode(this,"C",t.ORDER_ATOMIC)||"False")+")",t.ORDER_ATOMIC]},logic_logic_is_in=function(e,t){var n=t.valueToCode(this,"A",t.ORDER_ATOMIC)||"''",a=t.valueToCode(this,"B",t.ORDER_ATOMIC)||"''";return[n+" "+this.getFieldValue("BOOL")+" "+a,t.ORDER_ATOMIC]},logic_logic_is=function(e,t){var n=t.valueToCode(this,"A",t.ORDER_ATOMIC)||"''",a=t.valueToCode(this,"B",t.ORDER_ATOMIC)||"''";return[n+" "+this.getFieldValue("BOOL")+" "+a,t.ORDER_ATOMIC]},logic_logic_tobool=function(e,t){return["bool("+(t.valueToCode(this,"VAR",t.ORDER_ATOMIC)||"0")+")",t.ORDER_ATOMIC]},storage_storage_open_file_with_os=function(e,t){return t.definitions_.import_os="import os","os.startfile("+t.valueToCode(this,"fn",t.ORDER_ATOMIC)+")\n"},storage_storage_fileopen=function(e,t){return t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+" = open("+t.valueToCode(this,"FILENAME",t.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')\n"},storage_storage_fileopen_new=function(e,t){return["open("+t.valueToCode(this,"FILENAME",t.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')",t.ORDER_ATOMIC]},storage_storage_fileopen_new_encoding=function(e,t){return["open("+t.valueToCode(this,"FILENAME",t.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"', encoding=\""+this.getFieldValue("CODE")+'")',t.ORDER_ATOMIC]},storage_storage_file_write=function(e,t){var n=t.valueToCode(this,"data",t.ORDER_ATOMIC);return t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+".write("+n+")\n"},storage_storage_get_contents_without_para=function(e,t){var n=this.getFieldValue("MODE");return[t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+"."+n+"()",t.ORDER_ATOMIC]},storage_storage_get_contents=function(e,t){var n=this.getFieldValue("MODE");return[t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+"."+n+"("+t.valueToCode(this,"SIZE",t.ORDER_ATOMIC)+")",t.ORDER_ATOMIC]},storage_storage_get_a_line=function(e,t){return[t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+".readline("+t.valueToCode(this,"SIZE",t.ORDER_ATOMIC)+")",t.ORDER_ATOMIC]},storage_storage_can_write_ornot=function(e,t){return[t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+".writable()",t.ORDER_ATOMIC]},storage_storage_get_filename=function(e,t){return[t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+".name()",t.ORDER_ATOMIC]},storage_storage_close_file=function(e,t){return t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+".close()\n"},storage_storage_list_all_files=function(e,t){t.definitions_.import_os="import os";return["os.listdir()",t.ORDER_ATOMIC]},storage_storage_delete_file=function(e,t){return t.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+")\n"},storage_storage_get_file_size=function(e,t){return t.definitions_.import_os="import os",["os.path.getsize("+t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+")",t.ORDER_ATOMIC]},storage_storage_file_tell=function(e,t){return[t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+".tell()",t.ORDER_ATOMIC]},storage_storage_file_seek=function(e,t){var n=this.getFieldValue("MODE"),a=0;return a="start"==n?0:"current"==n?1:2,t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+".seek("+t.valueToCode(this,"SIZE",t.ORDER_ATOMIC)+","+a+")\n"},storage_storage_change_dir=function(e,t){return t.definitions_.import_os="import os","os.chdir("+t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+")\n"},storage_storage_get_current_dir=function(e,t){t.definitions_.import_os="import os";return["os.getcwd()",t.ORDER_ATOMIC]},storage_storage_make_dir=function(e,t){return t.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+t.valueToCode(this,"PATH",t.ORDER_ATOMIC)+")\n"},storage_storage_rename=function(e,t){return t.definitions_.import_os="import os","os.rename("+t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+","+t.valueToCode(this,"NEWFILE",t.ORDER_ATOMIC)+")\n"},storage_storage_is_file=function(e,t){t.definitions_.import_os="import os";var n=t.valueToCode(this,"FILE",t.ORDER_ATOMIC);return["os."+this.getFieldValue("MODE")+"("+n+")",t.ORDER_ATOMIC]},storage_sdcard_use_spi_init=function(e,t){return t.definitions_.import_os="import os",t.definitions_.import_sdcard="import sdcard",t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+" = sdcard.SDCard("+t.valueToCode(this,"SPISUB",t.ORDER_ATOMIC)+","+t.valueToCode(this,"PINSUB",t.ORDER_ATOMIC)+")\n"},storage_sdcard_mount=function(e,t){return t.definitions_.import_os="import os",t.definitions_.import_sdcard="import sdcard","os.mount("+t.valueToCode(this,"VAR",t.ORDER_ATOMIC)+","+t.valueToCode(this,"DIR",t.ORDER_ATOMIC)+")\n"},procedures_procedures_defreturn=function(e,t){var n=t.variableDB_.getName(this.getFieldValue("NAME"),external_Blockly_namespaceObject.Procedures.NAME_TYPE),a=t.statementToCode(this,"STACK")||" pass\n";t.INFINITE_LOOP_TRAP&&(a=t.INFINITE_LOOP_TRAP.replace(/%1/g,"'"+this.id+"'")+a);var _=t.valueToCode(this,"RETURN",t.ORDER_NONE)||"";_&&(_=" return "+_+"\n");for(var l=[],s=0;s\n\n\n\t\n"+t.statementToCode(this,"HEAD")+"\n\n"+t.statementToCode(this,"BODY")+"\n\n'''",t.ORDER_ATOMIC]},html_html_title=function(e,t){var n=t.statementToCode(this,"DO"),a=this.getFieldValue("LEVEL");return"\n"+n+"\n"},html_html_head_body=function(e,t){var n=t.statementToCode(this,"DO"),a=this.getFieldValue("LEVEL");if("head"==a)var _="<"+a+'>\n\t\n'+n+"\n";else _="<"+a+">\n"+n+"\n";return _},html_html_content=function(e,t){var n=t.statementToCode(this,"DO"),a=this.getFieldValue("LEVEL");return"<"+a+">\n"+n+"\n"},html_html_content_more=function(e,t){var n=t.statementToCode(this,"DO"),a=t.valueToCode(this,"style"),_=this.getFieldValue("LEVEL");return"<"+_+" "+a+" >\n"+n+"\n"},html_html_style=function(e,t){return['style="'+t.statementToCode(this,"STYLE")+'"',t.ORDER_ATOMIC]},html_html_form=function(e,t){return'"},html_html_style_content=function(){return this.getFieldValue("KEY")+":"+this.getFieldValue("VALUE")+";"},html_html_text=function(){return this.getFieldValue("TEXT")+"\n"},utility_raw_block=function(e){return e.getFieldValue("TEXT")+"\n"},utility_raw_expression=function(e,t){return[e.getFieldValue("TEXT"),t.ORDER_ATOMIC]},utility_raw_empty=function(e,t){return(t.valueToCode(e,"VALUE",t.ORDER_ATOMIC)||"")+"\n"},utility_raw_table=function(){return""},utility_type_check=function(e,t){return["type("+(t.valueToCode(e,"VALUE",t.ORDER_MEMBER)||"___")+")",t.ORDER_ATOMIC]},utility_function_call=function(e,t){for(var n=e.getFieldValue("NAME"),a=e.hasReturn_,_=new Array(e.itemCount_),l=0;l0?t.join("\n")+"\n"+a.join("\n")+"\n"+_.join("")+"\n"+e+"while True:\n"+l.join("")+s.join("\n"):t.join("\n")+"\n"+a.join("\n")+"\n"+_.join("")+"\n"+e+s.join("\n")},Python.scrubNakedValue=function(e){return e+"\n"},Python.quote_=function(e){var t="'";return-1!==(e=e.replace(/\\/g,"\\\\").replace(/\n/g,"\\\n")).indexOf("'")&&(-1===e.indexOf('"')?t='"':e=e.replace(/'/g,"\\'")),t+e+t},Python.multiline_quote_=function(e){return"'''"+(e=e.replace(/'''/g,"\\'\\'\\'"))+"'''"},Python.scrub_=function(e,t,n){var a="";if(!e.outputConnection||!e.outputConnection.targetConnection){(l=e.getCommentText())&&(l=external_Blockly_namespaceObject.utils.string.wrap(l,Python.COMMENT_WRAP-3),a+=Python.prefixLines(l+"\n","# "));for(var _=0;_0?"int("+i+" + "+_+")":_<0?"int("+i+" - "+-_+")":"int("+i+")",a&&(i="-"+i)),i};const AI_HUE=205,AI_ChooseAndGet={init:function(){this.setColour(AI_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_CHOOSE_AND_GET).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_CHOOSE_AND_GET_ONE_FILE_NAME,"getOneFile"],[external_Blockly_namespaceObject.Msg.MIXLY_CHOOSE_AND_GET_MANY_FILE_NAMES,"getManyFiles"],[external_Blockly_namespaceObject.Msg.MIXLY_CHOOSE_AND_GET_DIR,"getDirectory"]]),"TYPE"),this.setInputsInline(!0),this.setOutput(!0)}},AI_client={init:function(){this.setColour(AI_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_SETUP).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify,"AipImageClassify"],[external_Blockly_namespaceObject.Msg.MIXLY_AipSpeech,"AipSpeech"],[external_Blockly_namespaceObject.Msg.MIXLY_AipImageCensor,"AipImageCensor"],[external_Blockly_namespaceObject.Msg.MIXLY_AipFace,"AipFace"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr,"AipOcr"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp,"AipNlp"]]),"CTYPE"),this.appendValueInput("SUB").appendField(external_Blockly_namespaceObject.Msg.MIXLY_Client).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("API_KEY").appendField("API_KEY").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("SECRET_KEY").appendField("SECRET_KEY").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},AI_Speech_synthesis={init:function(){this.setColour(AI_HUE),this.appendValueInput("SUB").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipSpeech_synthesis).appendField(external_Blockly_namespaceObject.Msg.MIXLY_Client).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("STR").appendField(external_Blockly_namespaceObject.Msg.OLED_STRING).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_ATTR).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_AipSpeech_synthesis_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},AI_Speech_asr={init:function(){this.setColour(AI_HUE),this.appendValueInput("SUB").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipSpeech_asr).appendField(external_Blockly_namespaceObject.Msg.MIXLY_Client).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipSpeech_File).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_ATTR).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_AipSpeech_ASR_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},AI_ImageClassify={init:function(){this.setColour(AI_HUE),this.appendValueInput("SUB").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify).appendField(external_Blockly_namespaceObject.Msg.MIXLY_Client).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("FUNC").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_FUNC).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("ADDR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify_Image).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_ATTR).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify_advancedGeneral_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},AI_ImageClassify_Func={init:function(){this.setColour(AI_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify_advancedGeneral,"advancedGeneral"],[external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify_dishDetect,"dishDetect"],[external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify_carDetect,"carDetect"],[external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify_animalDetect,"animalDetect"],[external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify_plantDetect,"plantDetect"],[external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify_logoSearch,"logoSearch"]]),"TYPE"),this.setOutput(!0)}},AI_Face_match={init:function(){this.setColour(AI_HUE),this.appendValueInput("SUB").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipFace_match).appendField(external_Blockly_namespaceObject.Msg.MIXLY_Client).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify_Image+"1"+external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify_Image+"2"+external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_ATTR).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_AipFace_match_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},AI_Ocr={init:function(){this.setColour(AI_HUE),this.appendValueInput("SUB").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipOcr).appendField(external_Blockly_namespaceObject.Msg.MIXLY_Client).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("FUNC").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_FUNC).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("ADDR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify_Image).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_ATTR).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},AI_Ocr_Func={init:function(){this.setColour(AI_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_basicGeneral,"basicGeneral"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_webImage,"webImage"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_idcard,"idcard"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_bankcard,"bankcard"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_drivingLicense,"drivingLicense"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_vehicleLicense,"vehicleLicense"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_licensePlate,"licensePlate"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_businessLicense,"businessLicense"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_receipt,"receipt"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_trainTicket,"trainTicket"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_taxiReceipt,"taxiReceipt"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_form,"tableRecognition"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_vatInvoice,"vatInvoice"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_passport,"passport"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_handwriting,"handwriting"]]),"TYPE"),this.setOutput(!0)}},AI_Nlp={init:function(){this.setColour(AI_HUE),this.appendValueInput("SUB").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipNlp).appendField(external_Blockly_namespaceObject.Msg.MIXLY_Client).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("FUNC").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_FUNC).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("STR").appendField(external_Blockly_namespaceObject.Msg.OLED_STRING).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_ATTR).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},AI_Nlp_Sim={init:function(){this.setColour(AI_HUE),this.appendValueInput("SUB").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_Sim).appendField(external_Blockly_namespaceObject.Msg.MIXLY_Client).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("FUNC").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_FUNC).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("STR1").appendField(external_Blockly_namespaceObject.Msg.OLED_STRING+"1").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("STR2").appendField(external_Blockly_namespaceObject.Msg.OLED_STRING+"2").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_ATTR).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_Sim_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},AI_Nlp_Func={init:function(){this.setColour(AI_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_lexer,"lexer"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_depParser,"depParser"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_wordEmbedding,"wordEmbedding"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_dnnlm,"dnnlm"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_commentTag,"commentTag"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_sentimentClassify,"sentimentClassify"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_keyword,"keyword"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_topic,"topic"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_ecnet,"ecnet"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_emotion,"emotion"]]),"TYPE"),this.setOutput(!0)}},AI_Nlp_Func_sim={init:function(){this.setColour(AI_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_wordSimEmbedding,"wordSimEmbedding"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_simnet,"simnet"]]),"TYPE"),this.setOutput(!0)}},AI_Nlp_Topic={init:function(){this.setColour(AI_HUE),this.appendValueInput("SUB").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_topic).appendField(external_Blockly_namespaceObject.Msg.MIXLY_Client).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("STR1").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_Topic_Title).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("STR2").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_Topic_Content).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_Topic_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},AI_Nlp_newsSummary={init:function(){this.setColour(AI_HUE),this.appendValueInput("SUB").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_summary).appendField(external_Blockly_namespaceObject.Msg.MIXLY_Client).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("STR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_Topic_Content).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("LEN").appendField(external_Blockly_namespaceObject.Msg.MIXLY_LIST_LEN).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_ATTR).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_Summary_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},AI_audio={init:function(){this.setColour(AI_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXPY_AI_AUDIO),this.appendValueInput("TIME").appendField(external_Blockly_namespaceObject.Msg.MIXPY_AI_AUDIO_TIME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXPY_AI_AUDIO_TOOLTIP)}},AI_photo={init:function(){this.setColour(AI_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXPY_AI_PHOTO),this.appendValueInput("BUT").appendField(external_Blockly_namespaceObject.Msg.MIXPY_AI_PHOTO_BUTTON),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXPY_AI_PHOTO_TOOLTIP)}},AI_result={init:function(){this.setColour(AI_HUE),this.appendValueInput("AI").appendField(external_Blockly_namespaceObject.Msg.MIXPY_AI_RESULT).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify,"Image"],[external_Blockly_namespaceObject.Msg.MIXLY_AipSpeech_asr,"Speech"],[external_Blockly_namespaceObject.Msg.MIXLY_AipFace_match,"Face"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr,"Ocr"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_simnet,"OcrSimilarity"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_sentimentClassify,"Emotion"]]),"CTYPE"),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.LOGIC_NEGATE_TOOLTIP)}},ALGORITHM_HUE="#526FC3",algorithm_prepare={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_PREPARE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_add_school={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_ADD_SCHOOL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_find_path={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_FIND_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_new_path={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_NEW_PATH),this.setOutput(!0)}},algorithm_set_path={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_SET_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_add_path={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_ADD_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_del_path={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_DEL_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_return_path={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_RETURN_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_no_left={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_NO_LEFT),this.setOutput(!0)}},algorithm_print_path={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_PRINT_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_prepare2={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_PREPARE2),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_current_school={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_CURRENT_SCHOOL),this.setOutput(!0)}},algorithm_no_path={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_NO_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_prepare_2_1={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_PREPARE_2_1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_prepare_2_2={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_PREPARE_2_2),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_move_recent={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_MOVE_RECENT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_not_home={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_NOT_HOME),this.setOutput(!0)}},algorithm_not_school={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_NOT_SCHOOL),this.setOutput(!0)}},algorithm_print_path2={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_PRINT_PATH2),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},hanoi_init={init:function(){this.appendDummyInput().appendField("准备").appendField(new external_Blockly_namespaceObject.FieldNumber(3,0,100,1),"NUM").appendField("层汉诺塔"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},hanoi_move={init:function(){this.appendDummyInput().appendField("移动圆盘从"),this.appendValueInput("FROM_NUM").setCheck(null).appendField("柱"),this.appendDummyInput().appendField("到"),this.appendValueInput("TO_NUM").setCheck(null).appendField("柱"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_all_books={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_ALL_BOOKS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_all_books_sequence={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_ALL_BOOKS2),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_first_book={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_FIRST_BOOK),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_no_ring2={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_NO_RING),this.setOutput(!0)}},algorithm_yes_ring2={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_YES_RING),this.setOutput(!0)}},algorithm_next_book={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_NEXT_BOOK),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_two_left={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_TWO_LEFT),this.setOutput(!0)}},algorithm_divide_books={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_DIVIDE_BOOKS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_get_half_books={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_GET_HALF_BOOKS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_delete_book={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_DELETE_BOOK),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_delete_books={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_DELETE_BOOKS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_delete_books2={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_DELETE_BOOKS2),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_print_book2={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_PRINT_BOOK),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_book_scale={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("设置待查书总数 N=").appendField(new external_Blockly_namespaceObject.FieldDropdown([["5","5"],["10","10"],["20","20"],["50","50"]]),"NUM"),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_number_zero={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_NUMBER_ZERO),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_number_add={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_NUMBER_ADD),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_print_number={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_PRINT_NUMBER),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_get_book_num={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField("n"+external_Blockly_namespaceObject.Msg.MIXLY_VALUE2).appendField(new external_Blockly_namespaceObject.FieldTextInput("50"),"NUM"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_print_sequence={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_PRINT_SEQUENCE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_print_divide={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_PRINT_DIVIDE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_init_jttl={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("初始化鸡兔同笼问题:"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("有若干只鸡、兔在同一个笼子里。"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("从上面数鸡兔有10个头,"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("从下面数鸡兔有32只脚。"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("问笼中有多少只鸡和多少只兔?"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_rabbit_zero={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("假设兔子的数量为0只"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_rabbit_number_in_range={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("兔子的数量在范围之内"),this.setOutput(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_chick_calculate={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("根据(头数-兔子数)计算出鸡的数量"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_check_feet={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("计算得到脚的数量正确"),this.setOutput(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_print_jttl_answer={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("输出鸡、兔的数量"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_rabbit_add={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("假设兔子数量要更多一只"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_init_fzsf={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("加载路线图"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_fz_calc={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("计算").appendField(new external_Blockly_namespaceObject.FieldDropdown([["S1","1"],["S2","2"],["S3","3"],["S4","4"]]),"PATHNAME").appendField("长度"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_fz_calc_first_min={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("设置S1为Smin"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_fz_compare={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField(new external_Blockly_namespaceObject.FieldDropdown([["S1","1"],["S2","2"],["S3","3"],["S4","4"]]),"PATHNAME").appendField("的长度比").appendField(new external_Blockly_namespaceObject.FieldDropdown([["S1","1"],["S2","2"],["S3","3"],["S4","4"]]),"PATHNAME2").appendField("短"),this.setOutput(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_fz_set_min={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("设置").appendField(new external_Blockly_namespaceObject.FieldDropdown([["S1","1"],["S2","2"],["S3","3"],["S4","4"]]),"PATHNAME").appendField("为Smin"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_fz_move={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("按照Smin移动"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_init_hxdb={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("初始化韩信点兵问题:"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("有未知数量的若干士兵。"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("若3人一排列队,多1人;"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("若5人一排列队,多2人;"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("若7人一排列队,多2人;"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("问士兵的数量最少是多少人?"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_hxdb_init_soldier={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("初始化士兵为").appendField(new external_Blockly_namespaceObject.FieldTextInput("7"),"NUM").appendField("个"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_hxdb_stand_in_line={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("使士兵").appendField(new external_Blockly_namespaceObject.FieldDropdown([["3","3"],["5","5"],["7","7"]]),"NUM").appendField("人一排列队"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_hxdb_last_line={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("剩余").appendField(new external_Blockly_namespaceObject.FieldTextInput("1"),"NUM").appendField("个士兵"),this.setOutput(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_hxdb_add={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("增加1个士兵"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_hxdb_result={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("输出士兵数量"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},hanoi_init_offline={init:function(){this.appendDummyInput().appendField("准备").appendField(new external_Blockly_namespaceObject.FieldNumber(3,0,100,1),"NUM").appendField("层汉诺塔"),this.appendValueInput("VAR").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setInputsInline(!0),this.setTooltip(""),this.setHelpUrl("")}},algorithm_get_current_location={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_GET_CURRENT_LOCATION),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_void_path={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_VOID_PATH),this.setOutput(!0)}},algorithm_color_seclet={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput("").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(new external_Blockly_namespaceObject.FieldColour("ff0000"),"COLOR"),this.setInputsInline(!0),this.setOutput(!0,String)}},COMMUNICATE_HUE="#3288dd",requests_get_old={init:function(){this.setColour(COMMUNICATE_HUE),this.appendValueInput("DOMAIN").appendField(external_Blockly_namespaceObject.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_REQUESTS_GET).appendField(new external_Blockly_namespaceObject.FieldTextInput("response"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.blockpy_REQUESTS_GET_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},requests_get={init:function(){this.setColour(COMMUNICATE_HUE),this.appendValueInput("URL").appendField(external_Blockly_namespaceObject.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_CONDUCT).appendField(new external_Blockly_namespaceObject.FieldDropdown([["get","get"],["head","head"],["delete","delete"]]),"TYPE").appendField(external_Blockly_namespaceObject.Msg.blockpy_REQUESTS).appendField(external_Blockly_namespaceObject.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},requests_post={init:function(){this.setColour(COMMUNICATE_HUE),this.appendValueInput("URL").appendField(external_Blockly_namespaceObject.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_CONDUCT).appendField(new external_Blockly_namespaceObject.FieldDropdown([["post","post"],["put","put"],["patch","patch"]]),"TYPE").appendField(external_Blockly_namespaceObject.Msg.blockpy_REQUESTS),this.appendValueInput("data").appendField(external_Blockly_namespaceObject.Msg.blockpy_REQUESTS+external_Blockly_namespaceObject.Msg.OLED_STRING),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},requests_attribute={init:function(){this.appendValueInput("VAL");var e=[[external_Blockly_namespaceObject.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[external_Blockly_namespaceObject.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[external_Blockly_namespaceObject.Msg.blockpy_REQUESTS_GET_ATTR_COOKIES,"cookies"],[external_Blockly_namespaceObject.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"],[external_Blockly_namespaceObject.Msg.MIXPY_TEXT_ENCODE,"encoding"]];this.setColour(COMMUNICATE_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_GET).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String)}},requests_method={init:function(){this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.DISPLAY_IMAGE_LET2).setCheck(String);this.setColour(COMMUNICATE_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_CONDUCT).appendField(new external_Blockly_namespaceObject.FieldDropdown([["post","post"],["put","put"],["delete","delete"],["head","head"],["option","option"]]),"DIR"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_REQUESTS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{forward:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_FORWARD,backward:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_BACKWARD}[t]}))}},CV_HUE="f0a559",cv_read_image={init:function(){this.setColour(CV_HUE),this.appendValueInput("FILE").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_IMREAD),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)}},cv_show_image={init:function(){this.setColour(CV_HUE),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.OLED_BITMAP),this.appendValueInput("data").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_Topic_Title),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},cv_write_image={init:function(){this.setColour(CV_HUE),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_IMWRITE),this.appendValueInput("data").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.HTML_NAME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},cv_waitkey={init:function(){this.setColour(CV_HUE),this.appendValueInput("data").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_DELAY),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MILLIS+external_Blockly_namespaceObject.Msg.MIXLY_CV_OR_PRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_CV_WAITKEY_TOOLTIP)}},cv_destroy_all={init:function(){this.setColour(CV_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_DESTROY_ALL),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},cv_line_rect={init:function(){this.setColour(CV_HUE),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_IMAGE);var e=[[external_Blockly_namespaceObject.Msg.MIXLY_CV_RECT,"rectangle"],[external_Blockly_namespaceObject.Msg.MIXLY_CV_LINE,"line"]];this.appendValueInput("x1").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_DISPLAY_DRAW).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_DRAWLINE_BEGIN+"(x1"),this.appendValueInput("y1").setCheck(Number).appendField(",y1"),this.appendValueInput("x2").setCheck(Number).appendField(") "+external_Blockly_namespaceObject.Msg.MIXLY_CV_DRAWLINE_END+"(x2"),this.appendValueInput("y2").setCheck(Number).appendField(",y2"),this.appendDummyInput().appendField(") "+external_Blockly_namespaceObject.Msg.MIXLY_CV_DRAWLINE_COLOR).appendField(new external_Blockly_namespaceObject.FieldColour("#ff0000"),"FIELDNAME"),this.appendValueInput("thick").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_DRAWLINE_THICKNESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_CV_DRAWLINE_RECT_TOOLTIP)}},cv_text={init:function(){this.setColour(CV_HUE),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_IMAGE);this.appendValueInput("data").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_DRAWTEXT),this.appendValueInput("x1").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_DRAWLINE_BEGIN+"(x1"),this.appendValueInput("y1").setCheck(Number).appendField(",y1"),this.appendDummyInput().appendField(") "+external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_NAME).appendField(new external_Blockly_namespaceObject.FieldDropdown([["SIMPLEX","SIMPLEX"],["PLAIN","PLAIN"],["DUPLEX","DUPLEX"],["COMPLEX","COMPLEX"],["COMPLEX_SMALL","COMPLEX_SMALL"],["TRIPLEX","TRIPLEX"],["SCRIPT_SIMPLEX","SCRIPT_SIMPLEX"],["SCRIPT_COMPLEX","SCRIPT_COMPLEX"]]),"font"),this.appendValueInput("size").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendDummyInput().appendField(") "+external_Blockly_namespaceObject.Msg.MIXLY_CV_DRAWLINE_COLOR).appendField(new external_Blockly_namespaceObject.FieldColour("#ff0000"),"FIELDNAME"),this.appendValueInput("thick").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_DRAWLINE_THICKNESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_CV_DRAWLINE_RECT_TOOLTIP)}},cv_face_classifier={init:function(){this.setColour(CV_HUE),this.appendValueInput("FILE").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_FACE_CLASSIFIER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)}},cv_face_detect={init:function(){this.setColour(CV_HUE),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_IMAGE),this.appendValueInput("FACE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_FACE_DETECT),this.appendValueInput("SCALE").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_FACE_DETECT_SCALE),this.appendValueInput("NEIGHBOR").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_FACE_DETECT_NEIGHBOR),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)}},cv_face_detect_all={init:function(){this.setColour(CV_HUE),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_IMAGE),this.appendValueInput("FACE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_FACE_DETECT),this.appendValueInput("SCALE").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_FACE_DETECT_SCALE),this.appendValueInput("NEIGHBOR").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_FACE_DETECT_NEIGHBOR),this.appendValueInput("x1").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_FACE_DETECT_RANGE).appendField(external_Blockly_namespaceObject.Msg.blockpy_TUPLE_MIN),this.appendValueInput("y1").setCheck(Number).appendField("×"),this.appendValueInput("x2").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.blockpy_TUPLE_MAX),this.appendValueInput("y2").setCheck(Number).appendField("×"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)}},DATA_HUE=170,series_create={init:function(){this.setColour(DATA_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_series_create).appendField(new external_Blockly_namespaceObject.FieldTextInput("ser1"),"VAR"),this.appendValueInput("SER").appendField(external_Blockly_namespaceObject.Msg.blockpy_series_via),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.blockpy_series_create_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},series_create_from_index={init:function(){this.setColour(DATA_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_series_create).appendField(new external_Blockly_namespaceObject.FieldTextInput("ser1"),"VAR"),this.appendValueInput("SER").appendField(external_Blockly_namespaceObject.Msg.blockpy_series_via),this.appendValueInput("INDEX").setCheck([String,"List"]).appendField(external_Blockly_namespaceObject.Msg.blockpy_series_set_index),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.blockpy_series_create_index_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},dataframe_create={init:function(){this.setColour(DATA_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_dataframe_create).appendField(new external_Blockly_namespaceObject.FieldTextInput("df1"),"VAR"),this.appendValueInput("SER").appendField(external_Blockly_namespaceObject.Msg.blockpy_series_via),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.blockpy_dataframe_create_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},dataframe_create_from_one_index={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.DATAFRAME_RAW,"index"],[external_Blockly_namespaceObject.Msg.DATAFRAME_COLUMN,"columns"]];this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_dataframe_create).appendField(new external_Blockly_namespaceObject.FieldTextInput("df1"),"VAR"),this.appendValueInput("SER").appendField(external_Blockly_namespaceObject.Msg.blockpy_series_via),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"COLUMN_RAW"),this.appendValueInput("INDEX").setCheck([String,"List"]).appendField(external_Blockly_namespaceObject.Msg.blockpy_series_set_index),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.blockpy_dataframe_create_index_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},dataframe_create_from_index={init:function(){this.setColour(DATA_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_dataframe_create).appendField(new external_Blockly_namespaceObject.FieldTextInput("df1"),"VAR"),this.appendValueInput("SER").appendField(external_Blockly_namespaceObject.Msg.blockpy_series_via),this.appendValueInput("INDEX_COLUMN").setCheck([String,"List"]).appendField(external_Blockly_namespaceObject.Msg.blockpy_dataframe_set_index_column),this.appendValueInput("INDEX_RAW").setCheck([String,"List"]).appendField(external_Blockly_namespaceObject.Msg.blockpy_dataframe_set_index_raw),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.blockpy_dataframe_create_index_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},series_create_from_text={init:function(){this.setColour(DATA_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldTextInput("ser1"),"VAR").appendField(" = [").appendField(new external_Blockly_namespaceObject.FieldTextInput("1,2,3"),"TEXT").appendField("]"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_SERIES_CREATE_FROM_TEXT)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},series_index_value={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.SERIES_INDEX,"index"],[external_Blockly_namespaceObject.Msg.HTML_VALUE,"value"]];this.appendValueInput("SERIES").setCheck("Series"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.SERIES_INDEX_VALUE).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"INDEX_VALUE"),this.setOutput(!0,"List");var t=this;this.setTooltip((function(){var e=t.getFieldValue("INDEX_VALUE");return{index:external_Blockly_namespaceObject.Msg.SERIES_INDEX_TOOLTIP,value:external_Blockly_namespaceObject.Msg.HTML_VALUE_TOOLTIP}[e]}))}},series_get_num={init:function(){this.setColour(DATA_HUE),this.setOutput(!0),this.appendValueInput("SER").setCheck("Series"),this.appendValueInput("AT").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.LANG_LISTS_GET_INDEX1),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.LANG_LISTS_GET_INDEX2),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.TUPLE_GET_INDEX_TOOLTIP)}},pl_plot_easy={init:function(){this.setColour(DATA_HUE),this.appendValueInput("SER").setCheck("Series").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},pl_plot={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_SOLID,"-"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_DOTTED,"--"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_CHAIN,"-."],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_POINT_DOTTED,":"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,""]],t=[[external_Blockly_namespaceObject.Msg.COLOUR_RGB_BLUE,"b"],[external_Blockly_namespaceObject.Msg.COLOUR_RGB_GREEN,"g"],[external_Blockly_namespaceObject.Msg.COLOUR_RGB_RED,"r"],[external_Blockly_namespaceObject.Msg.COLOUR_CYAN,"c"],[external_Blockly_namespaceObject.Msg.COLOUR_MAGENTA,"m"],[external_Blockly_namespaceObject.Msg.COLOUR_YELLOW,"y"],[external_Blockly_namespaceObject.Msg.COLOUR_BLACK,"k"],[external_Blockly_namespaceObject.Msg.COLOUR_WHITE,"w"]],n=[[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN,"v"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP,"^"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT,"<"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT,">"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("SER").setCheck("Series").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new external_Blockly_namespaceObject.FieldDropdown(n),"DOT"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"LINE"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.HTML_COLOUR).appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"COLOR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},pl_show={init:function(){this.setColour(DATA_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_SHOW),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},pl_axes={init:function(){this.setColour(DATA_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_AXES),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},pl_legend={init:function(){this.setColour(DATA_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_LEGEND),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},pl_title={init:function(){this.setColour(DATA_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_TITLE),this.appendValueInput("TITLE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},pl_label={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.PYLAB_LABEL_X,"x"],[external_Blockly_namespaceObject.Msg.PYLAB_LABEL_Y,"y"]];this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_SET_LABEL).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR"),this.appendValueInput("LABEL").appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_LABEL).setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},array_create={init:function(){this.setColour(DATA_HUE),this.appendValueInput("FROM").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MIXLY_SPLITBYDOU).appendField(external_Blockly_namespaceObject.Msg.MIXPY_DATA_ARRAY_CREATE_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MIXPY_DATA_ARRAY_CREATE_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MIXLY_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},pl_plot_bar={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_BAR_PLOT,"plot"],[external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_BAR_BAR,"bar"]];this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_DISPLAY_DRAW).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR"),this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_Y),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{plot:external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP,bar:external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_BAR_EASY_TOOLTIP}[e]}))}},pl_plot_scatter={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.COLOUR_RGB_BLUE,"b"],[external_Blockly_namespaceObject.Msg.COLOUR_RGB_GREEN,"g"],[external_Blockly_namespaceObject.Msg.COLOUR_RGB_RED,"r"],[external_Blockly_namespaceObject.Msg.COLOUR_CYAN,"c"],[external_Blockly_namespaceObject.Msg.COLOUR_MAGENTA,"m"],[external_Blockly_namespaceObject.Msg.COLOUR_YELLOW,"y"],[external_Blockly_namespaceObject.Msg.COLOUR_BLACK,"k"],[external_Blockly_namespaceObject.Msg.COLOUR_WHITE,"w"]],t=[[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN,"v"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP,"^"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT,"<"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT,">"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_SCATTER).appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_Y),this.appendValueInput("S").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_NUMBER),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"DOT"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.HTML_COLOUR).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("")}},pl_plot_xy={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_SOLID,"-"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_DOTTED,"--"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_CHAIN,"-."],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_POINT_DOTTED,":"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,""]],t=[[external_Blockly_namespaceObject.Msg.COLOUR_RGB_BLUE,"b"],[external_Blockly_namespaceObject.Msg.COLOUR_RGB_GREEN,"g"],[external_Blockly_namespaceObject.Msg.COLOUR_RGB_RED,"r"],[external_Blockly_namespaceObject.Msg.COLOUR_CYAN,"c"],[external_Blockly_namespaceObject.Msg.COLOUR_MAGENTA,"m"],[external_Blockly_namespaceObject.Msg.COLOUR_YELLOW,"y"],[external_Blockly_namespaceObject.Msg.COLOUR_BLACK,"k"],[external_Blockly_namespaceObject.Msg.COLOUR_WHITE,"w"]],n=[[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN,"v"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP,"^"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT,"<"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT,">"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_XY).appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_Y),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new external_Blockly_namespaceObject.FieldDropdown(n),"DOT"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"LINE"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.HTML_COLOUR).appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},pl_bar={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_ALIGN_CENTER,"center"],[external_Blockly_namespaceObject.Msg.AILGN_EDGE,"edge"]];this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_BAR).appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_Y),this.appendValueInput("WIDTH").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_WIDTH),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_BAR_ALIGN).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"ALIGN"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.HTML_COLOUR).appendField(new external_Blockly_namespaceObject.FieldColour("#0000ff"),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},pl_pie={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.mixpy_PL_PIE_SHADOW_N,"False"],[external_Blockly_namespaceObject.Msg.mixpy_PL_PIE_SHADOW_Y,"True"]],t=[[external_Blockly_namespaceObject.Msg.mixpy_PL_PIE_SHADOW_N,"None"],[external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE_AUTOPCT_Z,"%.0f%%"],[external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE_AUTOPCT_O,"%.1f%%"],[external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE_AUTOPCT_T,"%.2f%%"]];this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE).appendField(external_Blockly_namespaceObject.Msg.COLOUR_BLEND_RATIO),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TAG),this.appendValueInput("EXPLODE").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE_EXPLODE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE_AUTOPCT).appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"autopct"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE_SHADOW).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"SHADOW"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},pl_hist={init:function(){this.setColour(DATA_HUE),this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_HIST).appendField(external_Blockly_namespaceObject.Msg.MIXLY_SD_DATA),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},pl_ticks={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.PYLAB_LABEL_X,"x"],[external_Blockly_namespaceObject.Msg.PYLAB_LABEL_Y,"y"]];this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_SETTING).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR"),this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_I2C_VALUE),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TOOLTIP)}},numpy_trig={init:function(){var e=[["sin","sin"],["cos","cos"],["tan","tan"],["arcsin","arcsin"],["arccos","arccos"],["arctan","arctan"],[external_Blockly_namespaceObject.Msg.LANG_MATH_TO_ROUND,"round"],[external_Blockly_namespaceObject.Msg.LANG_MATH_TO_CEIL,"ceil"],[external_Blockly_namespaceObject.Msg.LANG_MATH_TO_FLOOR,"floor"]];this.setColour(DATA_HUE),this.setOutput(!0),this.setInputsInline(!0),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.mixpy_NUMPY_TRIG),this.appendValueInput("NUM").setCheck(Number).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"OP"),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_NUMPY_TRIG_TOOLTIP)}},pl_subplot={init:function(){this.setColour(DATA_HUE),this.appendValueInput("VET").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.mixpy_SUBPLOT).appendField(external_Blockly_namespaceObject.Msg.mixpy_SUBPLOT_VERTICLE),this.appendValueInput("HOR").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.mixpy_SUBPLOT_HORIZEN),this.appendValueInput("NUM").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.mixpy_SUBPLOT_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},pandas_readcsv={init:function(){this.setColour(DATA_HUE),this.appendValueInput("FILENAME").appendField(external_Blockly_namespaceObject.Msg.MIXPY_PANDAS_READ_CSV),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.mixpy_PANDAS_READCSV_HEADER_Y,"0"],[external_Blockly_namespaceObject.Msg.mixpy_PANDAS_READCSV_HEADER_N,"None"]]),"MODE"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.mixpy_PANDAS_READCSV_TITLE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PANDAS_READCSV_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},dataframe_get={init:function(){this.setColour(DATA_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(external_Blockly_namespaceObject.Msg.mixpy_DATAFRAME_GET),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.mixpy_DATAFRAME_GET_INDEX).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.DATAFRAME_COLUMN,"column"],[external_Blockly_namespaceObject.Msg.DATAFRAME_RAW,"raw"]]),"MODE"),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_DATAFRAME_GET_TOOLTIP)}},pl_savefig={init:function(){this.setColour(DATA_HUE),this.appendValueInput("FILE").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_SAVEFIG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PL_SAVEFIG_TOOLTIP)}},pl_text={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.TEXT_TRIM_LEFT,"right"],[external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_CENTER,"center"],[external_Blockly_namespaceObject.Msg.TEXT_TRIM_RIGHT,"left"]],t=[[external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_TOP,"bottom"],[external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_CENTER,"center"],[external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_BOTTOM,"top"]];this.appendValueInput("VET").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_SETTING).appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_X),this.appendValueInput("HOR").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_Y),this.appendValueInput("NUM").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_TAG),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_HOR).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"HALIGN"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_VER).appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"VALIGN"),this.appendValueInput("FONTNUM").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_TOOLTIP)}},array_toarray={init:function(){this.setColour(DATA_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TOARRAY),this.setOutput(!0,"List"),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TOOLTIP_TOARRAY)}},plot_plot_easy={init:function(){this.setColour(DATA_HUE),this.appendValueInput("SER").setCheck("Series").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},plot_plot={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_SOLID,"-"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_DOTTED,"--"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_CHAIN,"-."],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_POINT_DOTTED,":"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,""]],t=[[external_Blockly_namespaceObject.Msg.COLOUR_RGB_BLUE,"b"],[external_Blockly_namespaceObject.Msg.COLOUR_RGB_GREEN,"g"],[external_Blockly_namespaceObject.Msg.COLOUR_RGB_RED,"r"],[external_Blockly_namespaceObject.Msg.COLOUR_CYAN,"c"],[external_Blockly_namespaceObject.Msg.COLOUR_MAGENTA,"m"],[external_Blockly_namespaceObject.Msg.COLOUR_YELLOW,"y"],[external_Blockly_namespaceObject.Msg.COLOUR_BLACK,"k"],[external_Blockly_namespaceObject.Msg.COLOUR_WHITE,"w"]],n=[[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN,"v"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP,"^"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT,"<"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT,">"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("SER").setCheck("Series").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new external_Blockly_namespaceObject.FieldDropdown(n),"DOT"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"LINE"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.HTML_COLOUR).appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"COLOR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},plot_show={init:function(){this.setColour(DATA_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_SHOW),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},plot_axes={init:function(){this.setColour(DATA_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_AXES),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},plot_legend={init:function(){this.setColour(DATA_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_LEGEND),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},plot_title={init:function(){this.setColour(DATA_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_TITLE),this.appendValueInput("TITLE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},plot_label={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.PYLAB_LABEL_X,"x"],[external_Blockly_namespaceObject.Msg.PYLAB_LABEL_Y,"y"]];this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_SET_LABEL).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR"),this.appendValueInput("LABEL").appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_LABEL).setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},plot_plot_bar={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_BAR_PLOT,"plot"],[external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_BAR_BAR,"bar"]];this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_DISPLAY_DRAW).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR"),this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_Y),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{plot:external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP,bar:external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_BAR_EASY_TOOLTIP}[e]}))}},plot_plot_scatter={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.COLOUR_RGB_BLUE,"b"],[external_Blockly_namespaceObject.Msg.COLOUR_RGB_GREEN,"g"],[external_Blockly_namespaceObject.Msg.COLOUR_RGB_RED,"r"],[external_Blockly_namespaceObject.Msg.COLOUR_CYAN,"c"],[external_Blockly_namespaceObject.Msg.COLOUR_MAGENTA,"m"],[external_Blockly_namespaceObject.Msg.COLOUR_YELLOW,"y"],[external_Blockly_namespaceObject.Msg.COLOUR_BLACK,"k"],[external_Blockly_namespaceObject.Msg.COLOUR_WHITE,"w"]],t=[[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN,"v"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP,"^"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT,"<"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT,">"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_SCATTER).appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_Y),this.appendValueInput("S").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_NUMBER),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"DOT"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.HTML_COLOUR).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("")}},plot_plot_xy={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_SOLID,"-"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_DOTTED,"--"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_CHAIN,"-."],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_POINT_DOTTED,":"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,""]],t=[[external_Blockly_namespaceObject.Msg.COLOUR_RGB_BLUE,"b"],[external_Blockly_namespaceObject.Msg.COLOUR_RGB_GREEN,"g"],[external_Blockly_namespaceObject.Msg.COLOUR_RGB_RED,"r"],[external_Blockly_namespaceObject.Msg.COLOUR_CYAN,"c"],[external_Blockly_namespaceObject.Msg.COLOUR_MAGENTA,"m"],[external_Blockly_namespaceObject.Msg.COLOUR_YELLOW,"y"],[external_Blockly_namespaceObject.Msg.COLOUR_BLACK,"k"],[external_Blockly_namespaceObject.Msg.COLOUR_WHITE,"w"]],n=[[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN,"v"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP,"^"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT,"<"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT,">"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_XY).appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_Y),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new external_Blockly_namespaceObject.FieldDropdown(n),"DOT"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"LINE"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.HTML_COLOUR).appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},plot_bar={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_ALIGN_CENTER,"center"],[external_Blockly_namespaceObject.Msg.AILGN_EDGE,"edge"]];this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_BAR).appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_Y),this.appendValueInput("WIDTH").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_WIDTH),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_BAR_ALIGN).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"ALIGN"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.HTML_COLOUR).appendField(new external_Blockly_namespaceObject.FieldColour("#0000ff"),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},plot_pie={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.mixpy_PL_PIE_SHADOW_N,"False"],[external_Blockly_namespaceObject.Msg.mixpy_PL_PIE_SHADOW_Y,"True"]],t=[[external_Blockly_namespaceObject.Msg.mixpy_PL_PIE_SHADOW_N,"None"],[external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE_AUTOPCT_Z,"%.0f%%"],[external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE_AUTOPCT_O,"%.1f%%"],[external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE_AUTOPCT_T,"%.2f%%"]];this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE).appendField(external_Blockly_namespaceObject.Msg.COLOUR_BLEND_RATIO),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TAG),this.appendValueInput("EXPLODE").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE_EXPLODE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE_AUTOPCT).appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"autopct"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE_SHADOW).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"SHADOW"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},plot_hist={init:function(){this.setColour(DATA_HUE),this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_HIST).appendField(external_Blockly_namespaceObject.Msg.MIXLY_SD_DATA),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},plot_ticks={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.PYLAB_LABEL_X,"x"],[external_Blockly_namespaceObject.Msg.PYLAB_LABEL_Y,"y"]];this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_SETTING).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR"),this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_I2C_VALUE),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TOOLTIP)}},plot_subplot={init:function(){this.setColour(DATA_HUE),this.appendValueInput("VET").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.mixpy_SUBPLOT).appendField(external_Blockly_namespaceObject.Msg.mixpy_SUBPLOT_VERTICLE),this.appendValueInput("HOR").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.mixpy_SUBPLOT_HORIZEN),this.appendValueInput("NUM").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.mixpy_SUBPLOT_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},plot_savefig={init:function(){this.setColour(DATA_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_SAVEFIG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PL_SAVEFIG_TOOLTIP)}},plot_text={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.TEXT_TRIM_LEFT,"right"],[external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_CENTER,"center"],[external_Blockly_namespaceObject.Msg.TEXT_TRIM_RIGHT,"left"]],t=[[external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_TOP,"bottom"],[external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_CENTER,"center"],[external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_BOTTOM,"top"]];this.appendValueInput("VET").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_SETTING).appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_X),this.appendValueInput("HOR").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_Y),this.appendValueInput("NUM").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_TAG),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_HOR).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"HALIGN"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_VER).appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"VALIGN"),this.appendValueInput("FONTNUM").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_TOOLTIP)}},numpy_shape={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("获取维度"),this.setOutput(!0),this.setTooltip("Returns the shape of the array.")}},numpy_reshape={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("变形"),this.appendValueInput("DIMENSIONS").appendField("后维度为"),this.setOutput(!0),this.setTooltip("Reshapes the array to the specified dimensions.")}},numpy_astype={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("把"),this.appendDummyInput().appendField("转换为").appendField(new external_Blockly_namespaceObject.FieldDropdown([["uint8","numpy.uint8"],["int32","numpy.int32"],["float32","numpy.float32"],["float64","numpy.float64"]]),"TYPE"),this.setOutput(!0),this.setTooltip("Converts array to specified type.")}},pylab_imshow={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("展示图像"),this.appendDummyInput().appendField("颜色").appendField(new external_Blockly_namespaceObject.FieldDropdown([["gray","gray"],["viridis","viridis"],["plasma","plasma"],["inferno","inferno"],["magma","magma"],["cividis","cividis"],["hot","hot"],["cool","cool"],["spring","spring"],["summer","summer"],["autumn","autumn"],["winter","winter"],["jet","jet"]]),"COLORMAP"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("Displays an image with the specified colormap.")}},numpy_mean_digit={init:function(){this.setColour(DATA_HUE),this.appendValueInput("X").appendField("从数据集"),this.appendValueInput("Y").appendField("获取平均图像,标签"),this.appendValueInput("DIGIT").appendField("为"),this.setOutput(!0),this.setTooltip("Computes the mean of X where y equals the specified digit.")}},numpy_argmin_template_match={init:function(){this.setColour(DATA_HUE),this.appendValueInput("IMAGE").appendField("获取模板匹配结果,图片:"),this.appendValueInput("TEMPLATES").appendField("模板:"),this.setOutput(!0),this.setTooltip("Finds the index of the template that minimizes the sum of absolute differences with the image.")}},numpy_mean={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("获取平均值"),this.appendDummyInput().appendField("沿着axis").appendField(new external_Blockly_namespaceObject.FieldDropdown([["None","NONE"],["0","0"],["1","1"]]),"AXIS"),this.setOutput(!0),this.setTooltip("Computes the mean of the array along the specified axis.")}},numpy_std={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("获取标准差"),this.appendDummyInput().appendField("沿着axis").appendField(new external_Blockly_namespaceObject.FieldDropdown([["None","NONE"],["0","0"],["1","1"]]),"AXIS"),this.setOutput(!0),this.setTooltip("Computes the standard deviation of the array along the specified axis.")}},pandas_dropna={init:function(){this.setColour(DATA_HUE),this.appendValueInput("DF").appendField("丢弃缺省值"),this.setOutput(!0),this.setTooltip("Drops rows with NaN values from the dataframe.")}},pandas_drop_columns={init:function(){this.setColour(DATA_HUE),this.appendValueInput("DATAFRAME").appendField("从数据集"),this.appendValueInput("COLUMNS").appendField("中删除列"),this.appendDummyInput().appendField("沿着axis").appendField(new external_Blockly_namespaceObject.FieldDropdown([["行","0"],["列","1"]]),"AXIS"),this.setOutput(!0),this.setTooltip("Drops columns from dataframe.")}},numpy_ones={init:function(){this.setColour(DATA_HUE),this.appendValueInput("NUM").appendField("生成单位行向量"),this.setOutput(!0),this.setTooltip("Creates an array of ones with the specified length.")}},numpy_c_={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY1").appendField("列拼接:数组1"),this.appendValueInput("ARRAY2").appendField("数组2"),this.setOutput(!0),this.setTooltip("Concatenates two arrays along the second axis using numpy.c_.")}},numpy_linalg_det={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("获取行列式"),this.setOutput(!0),this.setTooltip("Computes the determinant of an array using numpy.linalg.det.")}},matrix_transpose={init:function(){this.setColour(DATA_HUE),this.appendValueInput("MATRIX").appendField("获取转置"),this.setOutput(!0),this.setTooltip("Computes the transpose of the given matrix.")}},matrix_multiplication={init:function(){this.setColour(DATA_HUE),this.appendValueInput("MATRIX1"),this.appendValueInput("MATRIX2").appendField("@"),this.setOutput(!0),this.setTooltip("Multiplies two matrices.")}},numpy_linalg_inv={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("获取逆矩阵"),this.setOutput(!0),this.setTooltip("Computes the inverse of the given matrix using numpy.linalg.inv.")}},dataframe_median={init:function(){this.setColour(DATA_HUE),this.appendValueInput("DATAFRAME").appendField("获取中位数"),this.setOutput(!0),this.setTooltip("Computes the median of the given dataframe.")}},dataframe_fillna={init:function(){this.setColour(DATA_HUE),this.appendValueInput("DATAFRAME").appendField("填充缺失值"),this.appendValueInput("VALUE").appendField("填充值"),this.appendDummyInput().appendField("是否修改原数据").appendField(new external_Blockly_namespaceObject.FieldDropdown([["True","True"],["False","False"]]),"INPLACE"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("Fills NaN values in the dataframe with the specified value.")}},dataframe_info={init:function(){this.setColour(DATA_HUE),this.appendValueInput("DATAFRAME").appendField("获取DataFrame信息"),this.setOutput(!0),this.setTooltip("Displays information about the DataFrame.")}},numpy_min={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("获取最小值"),this.appendDummyInput().appendField("沿着axis").appendField(new external_Blockly_namespaceObject.FieldDropdown([["None","None"],["行","0"],["列","1"]]),"AXIS"),this.setOutput(!0),this.setTooltip("Returns the minimum value along the specified axis.")}},numpy_max={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("获取最大值"),this.appendDummyInput().appendField("沿着axis").appendField(new external_Blockly_namespaceObject.FieldDropdown([["None","None"],["行","0"],["列","1"]]),"AXIS"),this.setOutput(!0),this.setTooltip("Returns the maximum value along the specified axis.")}},numpy_size={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("获取数组大小"),this.setOutput(!0),this.setTooltip("Returns the size of the array.")}},numpy_dot={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY1").appendField("点乘数组1"),this.appendValueInput("ARRAY2").appendField("点乘数组2"),this.setOutput(!0),this.setTooltip("Returns the dot product of two arrays.")}},numpy_square={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("获取平方数组"),this.setOutput(!0),this.setTooltip("Returns the element-wise square of the array.")}},numpy_sum={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("获取数组元素和"),this.setOutput(!0),this.setTooltip("Returns the sum of the array.")}},numpy_random_random={init:function(){this.setColour(DATA_HUE),this.appendValueInput("SIZE").appendField("生成随机数组"),this.setOutput(!0),this.setTooltip("Returns a random array of the specified size.")}},py_sum={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("Python求和"),this.setOutput(!0),this.setTooltip("Returns the sum of the iterable.")}},DS_HUE=80,ds_create_linkedlist={init:function(){this.setColour(DS_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldLabel(external_Blockly_namespaceObject.Msg.DS_CREATE_LINKEDLIST_NEW)),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldLabel(external_Blockly_namespaceObject.Msg.DS_CREATE_LINKEDLIST_HEAD)).appendField(new external_Blockly_namespaceObject.FieldTextInput("head"),"VAR"),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldLabel(external_Blockly_namespaceObject.Msg.DS_CREATE_LINKEDLIST_TYPE)).appendField(new external_Blockly_namespaceObject.FieldTextInput("tag"),"TYPE"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.DS_CREATE_LINKEDLIST_ATTRIBUTE),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new external_Blockly_namespaceObject.icons.MutatorIcon(["ds_create_linkedlist_item"],this)),this.setTooltip(external_Blockly_namespaceObject.Msg.DS_CREATE_LINKEDLIST_TOOLTIP)},mutationToDom:function(){var e=document.createElement("mutation");return e.setAttribute("items",this.itemCount_),e},domToMutation:function(e){this.itemCount_=parseInt(e.getAttribute("items"),10),this.updateShape_()},decompose:function(e){var t=e.newBlock("ds_create_linkedlist_container");t.initSvg();for(var n=t.getInput("STACK").connection,a=0;at?e[t]:"name"),"KEY"+t).appendField("=")},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},ds_create_linkedlist_container={init:function(){this.setColour(DS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.DS_CREATE_LINKEDLIST_CONTAINER_TITLE),this.appendStatementInput("STACK"),this.setTooltip(external_Blockly_namespaceObject.Msg.DS_CREATE_LINKEDLIST_CONTAINER_TOOLTIP),this.contextMenu=!1}},ds_create_linkedlist_item={init:function(){this.setColour(DS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.DS_CREATE_LINKEDLIST_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DS_CREATE_LINKEDLIST_ITEM_TOOLTIP),this.contextMenu=!1}},ds_create_node={init:function(){this.setColour(DS_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_CREATE_NODE_USE).appendField(new external_Blockly_namespaceObject.FieldTextInput("tag"),"TYPE"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_CREATE_NODE_NEW),this.appendValueInput("NODE"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DS_CREATE_NODE_TOOLTIP)}},ds_get_node_attr={init:function(){this.setColour(DS_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_GET_NODE_ATTR_NODE),this.appendValueInput("NODE"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_ATTR).appendField(new external_Blockly_namespaceObject.FieldTextInput("name"),"TYPE"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DICTS_ADD_VALUE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DS_GET_NODE_ATTR_TOOLTIP)}},ds_set_node_attr={init:function(){this.setColour(DS_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_SET_NODE_ATTR_NODE),this.appendValueInput("NODE"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_ATTR).appendField(new external_Blockly_namespaceObject.FieldTextInput("name"),"TYPE"),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.DS_SET_NODE_ATTR_SET),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DS_SET_NODE_ATTR_TOOLTIP)}},ds_add_node_by_name={init:function(){this.setColour(DS_HUE),this.appendValueInput("NODE").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_HEAD_NODE);var e=[[external_Blockly_namespaceObject.Msg.DS_ADD_NODE_BEFORE,"before"],[external_Blockly_namespaceObject.Msg.DS_ADD_NODE_AFTER,"after"]];this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_LINKEDLIST),this.appendValueInput("NODE2").appendField(external_Blockly_namespaceObject.Msg.DS_SET_NODE_ATTR_NODE),this.appendValueInput("NODE3").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_TOOLTIP)}},ds_add_node_by_attr={init:function(){this.setColour(DS_HUE),this.appendValueInput("NODE").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_HEAD_NODE);var e=[[external_Blockly_namespaceObject.Msg.DS_ADD_NODE_BEFORE,"before"],[external_Blockly_namespaceObject.Msg.DS_ADD_NODE_AFTER,"after"]];this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_LINKEDLIST),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_CREATE_LINKEDLIST_ITEM_TITLE).appendField(new external_Blockly_namespaceObject.FieldTextInput("name"),"TYPE"),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AS),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_ATTR),this.appendValueInput("NODE3").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_TOOLTIP)}},ds_del_node_by_name={init:function(){this.setColour(DS_HUE),this.appendValueInput("NODE").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_HEAD_NODE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_LINKEDLIST),this.appendValueInput("NODE2").appendField(external_Blockly_namespaceObject.Msg.DS_DEL_NODE_NAME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DS_DEL_NODE_TOOLTIP)}},ds_del_node_by_attr={init:function(){this.setColour(DS_HUE),this.appendValueInput("NODE").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_HEAD_NODE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_LINKEDLIST),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_DEL_NODE_ATTR).appendField(new external_Blockly_namespaceObject.FieldTextInput("name"),"TYPE"),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AS),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_ATTR),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DS_DEL_NODE_TOOLTIP)}},ds_reverse_linkedlist={init:function(){this.setColour(DS_HUE),this.appendValueInput("NODE").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_HEAD_NODE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_REVERSE_LINKEDLIST),this.appendValueInput("NODE2").appendField(external_Blockly_namespaceObject.Msg.DS_REVERSE_LINKEDLIST_NEW_HEAD),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DS_DEL_NODE_TOOLTIP)}},FACTORY_HUE="#777777",factory_from_import={init:function(){this.setColour(FACTORY_HUE),this.appendDummyInput("").appendField("from ").appendField(new external_Blockly_namespaceObject.FieldTextInput("ESP32"),"path").appendField(" import ").appendField(new external_Blockly_namespaceObject.FieldTextInput("*"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},factory_import={init:function(){this.setColour(FACTORY_HUE),this.appendDummyInput("").appendField("import ").appendField(new external_Blockly_namespaceObject.FieldTextInput("module"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},factory_function_noreturn={init:function(){this.setColour(FACTORY_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldTextInput("my_function"),"NAME"),this.itemCount_=1,this.arguments_=["x"],this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new external_Blockly_namespaceObject.icons.MutatorIcon(["factory_create_with_item"],this))},mutationToDom:function(){var e=document.createElement("mutation");e.setAttribute("items",this.itemCount_);for(var t=0;tt?e[t]:'"key'+(t+1)+'"'),"KEY"+t).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},iot_publish_container={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},iot_publish_item={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},iot_create_with_item={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},iot_mixio_connect={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_SERVER).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_WIFI_USERNAME).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_IOT_PASSWORD).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("PROJECT").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_PROJECT).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},IOT_MIXIO_PUBLISH={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(external_Blockly_namespaceObject.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_ESP32_IOT_EMQX_PUBLISH_TOOLTIP)}},IOT_MIXIO_SUBSCRIBE={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_SUBSCRIBE+external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_MSG).appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_ESP32_IOT_EMQX_SUBSCRIBE_TOOLTIP)}},IOT_MIXIO_UNSUBSCRIBE={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(external_Blockly_namespaceObject.Msg.MSG.stop+external_Blockly_namespaceObject.Msg.MIXLY_EMQX_SUBSCRIBE).appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_ESP32_IOT_EMQX_SUBSCRIBE_TOOLTIP)}},iot_mixio_disconnect={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_ESP32_DISCONNECT_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},iot_mixio_connect_only={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_CONNECT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},iot_mixio_check={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_ESP32_CHECK_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},iot_mixio_format_topic={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(external_Blockly_namespaceObject.MQTT_Topic),this.setInputsInline(!0),this.setOutput(!0)}},iot_mixio_format_msg={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_PUBLISH_MSG),this.setInputsInline(!0),this.setOutput(!0)}},IOT_FORMATTING={init:function(){this.setColour(IOT_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_ESP32_IOT_MAP_FORMATING),this.setOutput(!0)}},IOT_FORMAT_STRING={init:function(){this.setColour(IOT_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_FORMAT+"(Json)"),this.setOutput(!0)}},IOT_EMQX_PING={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_PING),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_ESP32_IOT_EMQX_PING_TOOLTIP)}},IOT_MIXIO_NTP={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("MixIO").appendField(external_Blockly_namespaceObject.Msg.MIXLY_GET_NTP),this.appendValueInput("addr").appendField(external_Blockly_namespaceObject.blynk_SERVER_ADD),this.setInputsInline(!0),this.setOutput(!0)}},IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_SERVER).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(external_Blockly_namespaceObject.Msg.CONTROLS_FOR_INPUT_WITH+external_Blockly_namespaceObject.Msg.MIXLY_MIXIO_SHARE_KEY).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_SERVER).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(external_Blockly_namespaceObject.Msg.CONTROLS_FOR_INPUT_WITH+"Mixly Key").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},iot_mixly_key_py={init:function(){this.VISITOR_ID=external_Mixly_namespaceObject.Config.BOARD.visitorId.str32.substring(0,8).toUpperCase(),this.setColour(IOT_HUE),this.appendDummyInput("").appendField(this.newQuote_(!0)).appendField(new external_Blockly_namespaceObject.FieldTextInput(this.visitorId),"VISITOR_ID").appendField(this.newQuote_(!1)),this.setOutput(!0,null)},onchange:function(){const e=this.getFieldValue("VISITOR_ID");this.VISITOR_ID!==e&&this.setFieldValue(this.VISITOR_ID,"VISITOR_ID")},newQuote_:function(e){if(e==this.RTL)var t="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAqUlEQVQI1z3KvUpCcRiA8ef9E4JNHhI0aFEacm1o0BsI0Slx8wa8gLauoDnoBhq7DcfWhggONDmJJgqCPA7neJ7p934EOOKOnM8Q7PDElo/4x4lFb2DmuUjcUzS3URnGib9qaPNbuXvBO3sGPHJDRG6fGVdMSeWDP2q99FQdFrz26Gu5Tq7dFMzUvbXy8KXeAj57cOklgA+u1B5AoslLtGIHQMaCVnwDnADZIFIrXsoXrgAAAABJRU5ErkJggg==";else t="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAn0lEQVQI1z3OMa5BURSF4f/cQhAKjUQhuQmFNwGJEUi0RKN5rU7FHKhpjEH3TEMtkdBSCY1EIv8r7nFX9e29V7EBAOvu7RPjwmWGH/VuF8CyN9/OAdvqIXYLvtRaNjx9mMTDyo+NjAN1HNcl9ZQ5oQMM3dgDUqDo1l8DzvwmtZN7mnD+PkmLa+4mhrxVA9fRowBWmVBhFy5gYEjKMfz9AylsaRRgGzvZAAAAAElFTkSuQmCC";return new external_Blockly_namespaceObject.FieldImage(t,12,12,'"')}},iot_mixly_key={init:function(){this.VISITOR_ID=external_Mixly_namespaceObject.Config.BOARD.visitorId.str32.substring(0,8).toUpperCase(),this.setColour(IOT_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldTextInput(this.visitorId),"VISITOR_ID"),this.setOutput(!0,null)},onchange:function(){const e=this.getFieldValue("VISITOR_ID");this.VISITOR_ID!==e&&this.setFieldValue(this.VISITOR_ID,"VISITOR_ID")}},iot_client_onboard={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("MixIO").appendField(external_Blockly_namespaceObject.Msg.MSG.catEthernet_clinet),this.setOutput(!0),this.setInputsInline(!0)}},iot_http_client={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("HTTP"+external_Blockly_namespaceObject.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(external_Blockly_namespaceObject.Msg.DISPLAY_IMAGE_LET2),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_REQUESTS_GET).appendField(external_Blockly_namespaceObject.Msg.MIXLY_GET_CURRENT_TIME).appendField(external_Blockly_namespaceObject.Msg.MIXLY_OPEN_DEBUG).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},iot_http_data={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("HTTP"+external_Blockly_namespaceObject.Msg.MIXLY_Client).appendField(external_Blockly_namespaceObject.Msg.MIXLY_GET).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_REQUESTS_LEN,"client_len"],[external_Blockly_namespaceObject.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[external_Blockly_namespaceObject.Msg.MIXLY_REQUESTS_MESSAGE,"text"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},iot_mqtt_client={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("MQTT"+external_Blockly_namespaceObject.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(external_Blockly_namespaceObject.Msg.MIXLY_CONNECTTO),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_INIT_SUBSCRIBE).appendField(external_Blockly_namespaceObject.MQTT_Topic).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_GET_CURRENT_TIME,""]]),"key").appendField(external_Blockly_namespaceObject.Msg.MIXLY_OPEN_DEBUG).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},iot_mqtt_data={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("MQTT"+external_Blockly_namespaceObject.Msg.MIXLY_Client).appendField(external_Blockly_namespaceObject.Msg.MIXLY_GET).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_REQUESTS_LEN,"client_len"],[external_Blockly_namespaceObject.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[external_Blockly_namespaceObject.Msg.MIXLY_REQUESTS_MESSAGE,"time_msg()"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},iot_onenetconnect=iot_onenet_connect,iot_onenetdisconnect=iot_onenet_disconnect,iot_checkonenet=iot_onenet_check,iot_publish=iot_onenet_publish,PINS_HUE=230,pins_digital_write={init:function(){this.setColour(PINS_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown(external_Mixly_namespaceObject.Profile.default.digital_write),"PIN"),this.setOutput(!0)}},pins_digital_read={init:function(){this.setColour(PINS_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown(external_Mixly_namespaceObject.Profile.default.digital_read),"PIN"),this.setOutput(!0)}},pins_analog_write={init:function(){this.setColour(PINS_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown(external_Mixly_namespaceObject.Profile.default.analog_write),"PIN"),this.setOutput(!0)}},pins_analog_read={init:function(){this.setColour(PINS_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown(external_Mixly_namespaceObject.Profile.default.analog_read),"PIN"),this.setOutput(!0)}},SERIAL_HUE=40,serial_open={init:function(){this.setColour(SERIAL_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldLabel(external_Blockly_namespaceObject.Msg.MIXPY_SERIAL_OPEN)).appendField(new external_Blockly_namespaceObject.FieldTextInput("ser"),"SER"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_SERIAL_BEGIN).appendField(new external_Blockly_namespaceObject.FieldDropdown([["115200","115200"],["256000","256000"],["128000","128000"],["57600","57600"],["56000","56000"],["43000","43000"],["38400","38400"],["28800","28800"],["19200","19200"],["9600","9600"],["4800","4800"],["2400","2400"],["1200","1200"],["600","600"],["300","300"],["110","110"]]),"BPS"),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXPY_SERIAL_OPEN_TIMEOUT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXPY_SERIAL_OPEN_TOOLTIP)}},serial_write={init:function(){this.setColour(SERIAL_HUE),this.appendValueInput("SER"),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXPY_SERIAL_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXPY_SERIAL_WRITE_TOOLTIP)}},serial_read_b={init:function(){this.setColour(SERIAL_HUE),this.appendValueInput("SER"),this.appendValueInput("VAR").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXPY_SERIAL_READ),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXPY_SERIAL_READ_TOOLTIP)}},serial_close={init:function(){this.setColour(SERIAL_HUE),this.appendValueInput("SER"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXPY_SERIAL_CLOSE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXPY_SERIAL_CLOSE_TOOLTIP)}},SKLEARN_HUE=80,sklearn_make_classification={init:function(){this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.SKLEARN_CLASSIFICATION_GENERATION),this.appendValueInput("n_samples").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_SAMPLES),this.appendValueInput("n_features").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_FEATURES),this.appendValueInput("n_informative").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_EFFECTIVE_FEATURES),this.appendValueInput("n_redundant").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_REDUNDANT_FEATURES),this.appendValueInput("n_repeated").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_REPEATED_FEATURES),this.appendValueInput("n_classes").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_CLASSES),this.appendValueInput("n_clusters_per_class").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_CLUSTERS_PER_CLASSES),this.appendValueInput("random_state").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setOutput(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_make_regression={init:function(){this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.SKLEARN_REGRESSION_GENERATION),this.appendValueInput("n_samples").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_SAMPLES),this.appendValueInput("n_features").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_FEATURES),this.appendValueInput("n_informative").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_EFFECTIVE_FEATURES),this.appendValueInput("n_targets").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_LABELS),this.appendValueInput("bias").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.DEVIATION),this.appendValueInput("noise").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NOISE),this.appendValueInput("random_state").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setOutput(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_make_blobs={init:function(){this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.SKLEARN_CLUSTERING_GENERATION),this.appendValueInput("n_samples").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_SAMPLES),this.appendValueInput("n_features").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_FEATURES),this.appendValueInput("centers").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_CLUSTERS),this.appendValueInput("cluster_std").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.STANDARD_DEVIATION_OF_CLUSTER),this.appendValueInput("center_box").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.CLUSTER_BOUNDING_BOX),this.appendValueInput("shuffle").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SHUFFLE_SAMPLES),this.appendValueInput("random_state").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setOutput(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_load={init:function(){var e=[[external_Blockly_namespaceObject.Msg.SKLEARN_LOAD_IRIS,"load_iris"],[external_Blockly_namespaceObject.Msg.SKLEARN_LOAD_BOSTON,"load_boston"],[external_Blockly_namespaceObject.Msg.SKLEARN_LOAD_DIABETES,"load_diabetes"],[external_Blockly_namespaceObject.Msg.SKLEARN_LOAD_BREAST_CANCER,"load_breast_cancer"],[external_Blockly_namespaceObject.Msg.SKLEARN_LOAD_LINNERUD,"load_linnerud"],[external_Blockly_namespaceObject.Msg.SKLEARN_LOAD_DIGITS,"load_digits"]];this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.LOAD).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"type").appendField(new external_Blockly_namespaceObject.FieldTextInput("iris"),"name"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")},getVars:function(){return[this.getFieldValue("name")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("name"))&&this.setTitleValue(t,"name")}},sklearn_data_target={init:function(){this.appendValueInput("name").setCheck(null).appendField("sklearn "+external_Blockly_namespaceObject.Msg.DATA_SET),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MIXLY_GET).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.EIGENVALUES,"data"],[external_Blockly_namespaceObject.Msg.LABEL_VALUE,"target"],[external_Blockly_namespaceObject.Msg.FEATURE,"feature_names"],[external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TAG,"target_names"]]),"type"),this.setOutput(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_train_test_split={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.DATA_SEGMENTATION),this.appendValueInput("train_data").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.EIGENVALUES),this.appendValueInput("train_target").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.LABEL_VALUE),this.appendValueInput("test_size").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.TEST_SET_PROPORTION),this.appendValueInput("rondom_state").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setOutput(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_train_test_split_no_target={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.DATA_SEGMENTATION),this.appendValueInput("train_data").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.EIGENVALUES),this.appendValueInput("test_size").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.TEST_SET_PROPORTION),this.appendValueInput("rondom_state").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setOutput(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_LinearRegression={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.SKLEARN_LINEARREGRESSION_INIT),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("fit_intercept").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_CALCULATE_MODEL_INTERRUPT),this.appendValueInput("normalize").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_REGRESSION_NORMIALIZATION),this.appendValueInput("n_jobs").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_THREADS),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_Ridge={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.SKLEARN_RIDGE_INIT),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("alpha").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_REGULA_INTENSITY),this.appendValueInput("fit_intercept").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_CALCULATE_MODEL_INTERRUPT),this.appendValueInput("normalize").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_REGRESSION_NORMIALIZATION),this.appendValueInput("max_iter").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_MAX_ITER),this.appendValueInput("random_state").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_DecisionTreeClassifier_Regressor={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.SKLEARN_DECISIONTREE_INIT).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.SKLEARN_CLASSIFICATION_ALGORITHM,"DecisionTreeClassifier"],[external_Blockly_namespaceObject.Msg.SKLEARN_REGRESSION_ALGORITHM,"DecisionTreeRegressor"]]),"type"),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("max_depth").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_MAXIMUM_TREE_DEPTH),this.appendValueInput("random_state").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_RandomForestClassifier_Regressor={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.SKLEARN_RANDOMFOREST_INIT).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.SKLEARN_CLASSIFICATION_ALGORITHM,"RandomForestClassifier"],[external_Blockly_namespaceObject.Msg.SKLEARN_REGRESSION_ALGORITHM,"RandomForestRegressor"]]),"type"),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("n_estimators").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_TREES),this.appendValueInput("max_depth").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_MAXIMUM_TREE_DEPTH),this.appendValueInput("n_jobs").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_THREADS),this.appendValueInput("random_state").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_KNeighborsClassifier_Regressor={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.SKLEARN_KNN_INIT).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.SKLEARN_CLASSIFICATION_ALGORITHM,"KNeighborsClassifier"],[external_Blockly_namespaceObject.Msg.SKLEARN_REGRESSION_ALGORITHM,"KNeighborsRegressor"]]),"type"),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("K").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField("K"),this.appendValueInput("n_jobs").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_THREADS),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_GaussianNB={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.SKLEARN_GAUSSINNB_INIT),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_KMeans={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.SKLEARN_KMEANS_INIT),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("n_clusters").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_CLUSTERS_JUST),this.appendValueInput("max_iter").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_MAX_ITER),this.appendValueInput("random_state").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.RANDOM_SEED),this.appendValueInput("n_jobs").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_THREADS),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_fit={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.TRAINING_MODEL),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("train_data").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.EIGENVALUES),this.appendValueInput("train_target").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.LABEL_VALUE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_fit_no_target={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.TRAINING_MODEL),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("train_data").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.EIGENVALUES),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_predict={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.MODEL_PRODICTION),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("train_data").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.EIGENVALUES),this.setInputsInline(!0),this.setOutput(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_score={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.CALCULATE_THE_SCORE),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("train_data").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.EIGENVALUES),this.appendValueInput("train_target").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.LABEL_VALUE),this.setInputsInline(!0),this.setOutput(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_score_no_target={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.CALCULATE_THE_SCORE),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("train_data").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.EIGENVALUES),this.setInputsInline(!0),this.setOutput(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_coef_intercept={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.SKLEARN_GENERALIZED_LINEAR_REGRESSION),this.appendValueInput("model_name").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).setCheck(null).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MIXLY_GET).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.SKLEARN_COEF,"coef_"],[external_Blockly_namespaceObject.Msg.SKLEARN_INTERCEPT,"intercept_"]]),"type"),this.setOutput(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_cluster_centers_labels_inertia={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.SKLEARN_CLUSTERING),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_GET).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.SKLEARN_CLUSTER_CENTER,"cluster_centers_"],[external_Blockly_namespaceObject.Msg.SKLEARN_LABELS_AFTER_CLUSTERING,"labels_"],[external_Blockly_namespaceObject.Msg.SKLEARN_CLUSTERING_SUM_OF_SQUARED_DISTANCES,"inertia_"]]),"type"),this.setInputsInline(!0),this.setOutput(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_save_load_model={init:function(){this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField("sklearn").appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.SKLEARN_SAVE_MODEL,"dump"],[external_Blockly_namespaceObject.Msg.SKLEARN_LOAD_MODEL,"load"]]),"type").appendField(" "+external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("address").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},SYSTEM_HUE=120,base_delay={init:function(){this.setColour(SYSTEM_HUE),this.appendValueInput("DELAY_TIME",Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_DELAY+"("+external_Blockly_namespaceObject.Msg.MIXLY_MILLIS+")").setCheck(Number),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_CONTROL_DELAY)}},system_controls_millis={init:function(){this.setColour(SYSTEM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_time_time),this.setOutput(!0,Number),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_CONTROL_MILLIS)}},time_localtime={init:function(){this.setColour(SYSTEM_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_SYSTEM_TIME_LOCALTIME),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_ALL,"all"],[external_Blockly_namespaceObject.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_YEAR,"0"],[external_Blockly_namespaceObject.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_MONTH,"1"],[external_Blockly_namespaceObject.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_DATE,"2"],[external_Blockly_namespaceObject.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_HOUR,"3"],[external_Blockly_namespaceObject.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_MINUTE,"4"],[external_Blockly_namespaceObject.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_SECOND,"5"],[external_Blockly_namespaceObject.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_INWEEK,"6"],[external_Blockly_namespaceObject.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_INYEAR,"7"],[external_Blockly_namespaceObject.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_DST,"8"]]),"op"),this.setOutput(!0),this.setInputsInline(!0)}},system_Panic_with_status_code={init:function(){this.setColour(SYSTEM_HUE),this.appendValueInput("STATUS_CODE",Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_Panic_with_status_code).setCheck(Number),this.setPreviousStatement(!0,null),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_CONTROL_DELAY)}},system_reset={init:function(){this.setColour(SYSTEM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_Reset_micro),this.setPreviousStatement(!0)}},controls_mstimer2={init:function(){this.setColour(SYSTEM_HUE),this.appendValueInput("TIME").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField("MsTimer2").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MSTIMER2_EVERY),this.appendDummyInput().appendField("ms"),this.appendStatementInput("DO").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MSTIMER2_DO),this.setPreviousStatement(!0),this.setNextStatement(!0)}},controls_mstimer2_start={init:function(){this.setColour(SYSTEM_HUE),this.appendDummyInput().appendField("MsTimer2").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MSTIMER2_START),this.setPreviousStatement(!0),this.setNextStatement(!0)}},controls_mstimer2_stop={init:function(){this.setColour(SYSTEM_HUE),this.appendDummyInput().appendField("MsTimer2").appendField(external_Blockly_namespaceObject.Msg.MIXLY_STOP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},system_time_sleep={init:function(){this.setColour(SYSTEM_HUE),this.appendValueInput("DELAY_TIME",Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_DELAY).setCheck(Number),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_SECOND),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_CONTROL_DELAY)}},TURTLE_HUE=180,turtle_create={init:function(){this.setColour(TURTLE_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_create).appendField(new external_Blockly_namespaceObject.FieldTextInput("tina"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.blockpy_turtle_create_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},turtle_done={init:function(){this.setColour(TURTLE_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_TURTLE_DONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_exitonclick={init:function(){this.setColour(TURTLE_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TURTLE_EXITONCLICK),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_move={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var e=[[external_Blockly_namespaceObject.Msg.blockpy_forward,"forward"],[external_Blockly_namespaceObject.Msg.blockpy_backward,"backward"]];this.setColour(TURTLE_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_MOVE_BY).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_MOVE_BY_num),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{forward:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_FORWARD,backward:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_BACKWARD}[e]}))}},turtle_rotate={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var e=[[external_Blockly_namespaceObject.Msg.blockpy_left,"left"],[external_Blockly_namespaceObject.Msg.blockpy_right,"right"]];this.setColour(TURTLE_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_rotate).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{left:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_LEFT,right:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_RIGHT}[e]}))}},turtle_setheading={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("TUR").setCheck("Turtle"),this.appendValueInput("data").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.blockpy_setheading),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_setheading_degree),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_screen_delay={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("TUR").setCheck("Turtle"),this.appendValueInput("data").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_SCREEN_DELAY),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MILLIS),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_SCREEN_DELAY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_goto={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("TUR").setCheck("Turtle"),this.appendValueInput("data").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_goto),this.appendValueInput("val").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_goto_y),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_goto_position),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_setxy={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var e=[[external_Blockly_namespaceObject.Msg.PYLAB_LABEL_X,"x"],[external_Blockly_namespaceObject.Msg.PYLAB_LABEL_Y,"y"]];this.setColour(TURTLE_HUE),this.appendValueInput("VAR").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TURTLE_SETXY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TURTLE_SETXY_TOOLTIP)}},turtle_pos_shape={init:function(){this.setColour(TURTLE_HUE);var e=[[external_Blockly_namespaceObject.Msg.TURTLE_POS,"pos"],[external_Blockly_namespaceObject.Msg.TURTLE_SHAPE,"shape"],[external_Blockly_namespaceObject.Msg.TURTLE_HEADING,"heading"],[external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TURTLE_WIDTH,"width"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_GET_SHAPESIZE,"shapesize"],[external_Blockly_namespaceObject.Msg.MIXLY_SPEED,"speed"]];this.appendValueInput("TUR").setCheck("Turtle"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.TURTLE_POS_SHAPE).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR");var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{pos:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_POS,shape:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_SHAPE,heading:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_HEADING,width:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_WIDTH,speed:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_GET_SPEED,shapesize:external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_GET_SHAPESIZE_TOOLTIP}[e]})),this.setOutput(!0),this.setInputsInline(!0)}},turtle_clear={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var e=[[external_Blockly_namespaceObject.Msg.MIXLY_LCD_STAT_CLEAR,"clear"],[external_Blockly_namespaceObject.Msg.blockpy_turtle_reset,"reset"],[external_Blockly_namespaceObject.Msg.blockpy_turtle_home,"home"]];this.setColour(TURTLE_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{clear:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_CLEAR,reset:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_RESET,home:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_HOME}[e]}))}},turtle_penup={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var e=[[external_Blockly_namespaceObject.Msg.blockpy_turtle_penup,"penup"],[external_Blockly_namespaceObject.Msg.blockpy_turtle_pendown,"pendown"]];this.setColour(TURTLE_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{penup:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_PENUP,pendown:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_PENDOWN}[e]}))}},turtle_fill={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var e=[[external_Blockly_namespaceObject.Msg.blockpy_turtle_beginfill,"begin"],[external_Blockly_namespaceObject.Msg.blockpy_turtle_endfill,"end"]];this.setColour(TURTLE_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{begin:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_BEGINFILL,end:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_ENDFILL}[e]}))}},turtle_size_speed={init:function(){this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldTextInput("tina"),"TUR");var e=[[external_Blockly_namespaceObject.Msg.blockpy_turtle_size,"pensize"],[external_Blockly_namespaceObject.Msg.MIXLY_SPEED,"speed"]];this.setColour(TURTLE_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_set).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR").appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_set_num),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{pensize:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_SIZE,speed:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_SPEED}[e]}))}},turtle_size={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("TUR").setCheck("Turtle"),this.appendValueInput("data").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_set_size),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_SIZE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_speed={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("TUR").setCheck("Turtle"),this.appendValueInput("data").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_set_speed),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_SPEED),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_circle={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var e=[[external_Blockly_namespaceObject.Msg.blockpy_turtle_circle,"circle"],[external_Blockly_namespaceObject.Msg.blockpy_turtle_dot,"dot"]];this.setColour(TURTLE_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_draw).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR").appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_radius),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{circle:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_CIRCLE,dot:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_DOT}[e]}))}},turtle_circle_advanced={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_radius),this.appendValueInput("data").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_angle),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_CIRCLE)}},turtle_visible={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var e=[[external_Blockly_namespaceObject.Msg.blockpy_turtle_hide,"hideturtle"],[external_Blockly_namespaceObject.Msg.blockpy_turtle_show,"showturtle"]];this.setColour(TURTLE_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{hideturtle:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_HIDE,showturtle:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_SHOW}[e]}))}},turtle_bgcolor={init:function(){this.setColour(TURTLE_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_bgcolor).appendField(new external_Blockly_namespaceObject.FieldColour("#ff0000"),"FIELDNAME"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_pencolor={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_pencolor).appendField(new external_Blockly_namespaceObject.FieldColour("#ff0000"),"FIELDNAME"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_fillcolor={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_fillcolor).appendField(new external_Blockly_namespaceObject.FieldColour("#ff0000"),"FIELDNAME"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_clone={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("TUR").setCheck("Turtle"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.TURTLE_CLONE),this.setTooltip(external_Blockly_namespaceObject.Msg.TURTLE_CLONE_TOOLTIP),this.setOutput(!0)}},turtle_bgcolor_hex_new={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("VAR").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_bgcolor),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_pencolor_hex_new={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendValueInput("VAR").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_pencolor),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_fillcolor_hex_new={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendValueInput("VAR").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_fillcolor),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_color={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_pencolor).appendField(new external_Blockly_namespaceObject.FieldColour("#ff0000"),"FIELDNAME"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_fillcolor).appendField(new external_Blockly_namespaceObject.FieldColour("#ff0000"),"FIELDNAME2"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_color_hex={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendValueInput("VAR1").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_pencolor),this.appendValueInput("VAR2").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_fillcolor),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_bgcolor_hex={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("VAR").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_bgcolor_hex),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_pencolor_hex={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendValueInput("VAR").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_pencolor_hex),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_fillcolor_hex={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendValueInput("VAR").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_fillcolor_hex),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_shape={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var e=[[external_Blockly_namespaceObject.Msg.blockpy_turtle_shape_arrow,"arrow"],[external_Blockly_namespaceObject.Msg.blockpy_turtle_shape_turtle,"turtle"],[external_Blockly_namespaceObject.Msg.blockpy_turtle_shape_circle,"circle"],[external_Blockly_namespaceObject.Msg.blockpy_turtle_shape_square,"square"],[external_Blockly_namespaceObject.Msg.blockpy_turtle_shape_triangle,"triangle"],[external_Blockly_namespaceObject.Msg.blockpy_turtle_shape_classic,"classic"]];this.setColour(TURTLE_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_shape).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.TURTLE_SHAPE_TOOLTIP)}},turtle_shapesize={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_SHAPESIZE),this.appendValueInput("WID").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_SHAPESIZE_WID),this.appendValueInput("LEN").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_SHAPESIZE_LEN),this.appendValueInput("OUTLINE").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_SHAPESIZE_OUTLINE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_SHAPESIZE)}},turtle_numinput={init:function(){this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TURTLE_NUMINPUT),this.setColour(TURTLE_HUE),this.appendValueInput("TITLE").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TURTLE_TEXTINPUT_TITLE),this.appendValueInput("PROMPT").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TURTLE_TEXTINPUT_PROMPT),this.appendValueInput("DEFAULT").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.DICTS_DEFAULT_VALUE),this.appendValueInput("MIN").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MATH_ONLIST_OPERATOR_MIN),this.appendValueInput("MAX").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MATH_ONLIST_OPERATOR_MAX),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(external_Blockly_namespaceObject.Msg.TURTLE_NUMINPUT_TOOLTIP)}},turtle_textinput={init:function(){this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TURTLE_TEXTINPUT),this.setColour(TURTLE_HUE),this.appendValueInput("TITLE").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TURTLE_TEXTINPUT_TITLE),this.appendValueInput("PROMPT").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TURTLE_TEXTINPUT_PROMPT),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(external_Blockly_namespaceObject.Msg.TURTLE_TEXTINPUT_TOOLTIP)}},turtle_write={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendValueInput("VAR").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_write),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.TURTLE_WRITE_TOOLTIP)}},turtle_write_format={init:function(){var e=[[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"]],t=[[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_ALIGN_LEFT,"left"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_ALIGN_CENTER,"center"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_ALIGN_RIGHT,"right"]],n=[[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE_NORMAL,"normal"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE_BOLD,"bold"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE_ITALIC,"italic"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE_BOLD_ITALIC,'bold","italic']];this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendValueInput("VAR").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_write),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_MOVE).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"MOVE"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_ALIGN).appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"ALIGN"),this.appendValueInput("FONTNAME").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_NAME),this.appendValueInput("FONTNUM").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE).appendField(new external_Blockly_namespaceObject.FieldDropdown(n),"FONTTYPE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.TURTLE_WRITE_TOOLTIP)}},turtle_write_format_skulpt={init:function(){var e=[[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"]],t=[[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_ALIGN_LEFT,"left"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_ALIGN_CENTER,"center"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_ALIGN_RIGHT,"right"]],n=[[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE_NORMAL,"normal"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE_BOLD,"bold"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE_ITALIC,"italic"]];this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendValueInput("VAR").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_write),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_MOVE).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"MOVE"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_ALIGN).appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"ALIGN"),this.appendValueInput("FONTNAME").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_NAME),this.appendValueInput("FONTNUM").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE).appendField(new external_Blockly_namespaceObject.FieldDropdown(n),"FONTTYPE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.TURTLE_WRITE_TOOLTIP)}},turtle_color_seclet={init:function(){this.setColour(TURTLE_HUE),this.appendDummyInput("").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(new external_Blockly_namespaceObject.FieldColour("ff0000"),"COLOR"),this.setInputsInline(!0),this.setOutput(!0,String)}},turtle_getscreen={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("TUR").setCheck("Turtle"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_GETSCREEN).appendField(new external_Blockly_namespaceObject.FieldTextInput("screen"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_GETSCREEN_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},turtle_onkey={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("TUR"),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_EVENT_ONKEY),this.appendValueInput("callback").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_EVENT_ONKEY_TOOLTIP)}},turtle_onclick={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("TUR"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_EVENT_ONCLICK),this.appendValueInput("callback").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_EVENT_ONCLICK_TOOLTIP)}},turtle_ontimer={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("TUR"),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_EVENT_ONTIMER),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_mSecond),this.appendValueInput("callback").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_EVENT_ONTIMER_TOOLTIP)}},turtle_listen={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("TUR"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_SCREEN_LISTEN),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_screen_savefig={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("TUR"),this.appendValueInput("FILE").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_SAVEFIG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_TURTLE_SAVEFIG_TOOLTIP)}},ai_AI_ChooseAndGet=function(e,t){var n=this.getFieldValue("TYPE");return t.definitions_.import_FileDialog="import FileDialog",["FileDialog."+n+"()",t.ORDER_ATOMIC]},ai_AI_client=function(e,t){var n=this.getFieldValue("CTYPE");return t.definitions_.import_aip="import aip",t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+" = aip."+n+"("+t.valueToCode(this,"API_KEY",t.ORDER_ATOMIC)+", "+t.valueToCode(this,"SECRET_KEY",t.ORDER_ATOMIC)+")\n"},ai_AI_Speech_synthesis=function(e,t){return t.definitions_.import_aip="import aip",[t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".synthesis("+t.valueToCode(this,"STR",t.ORDER_ATOMIC)+", options="+(t.valueToCode(this,"ATTR",t.ORDER_ATOMIC)||"{}")+")",t.ORDER_ATOMIC]},ai_AI_Speech_asr=function(e,t){return t.definitions_.import_aip="import aip",[t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".asr("+(t.valueToCode(this,"FILE",t.ORDER_ATOMIC)||'""')+", options="+(t.valueToCode(this,"ATTR",t.ORDER_ATOMIC)||"{}")+")",t.ORDER_ATOMIC]},ai_AI_ImageClassify=function(e,t){t.definitions_.import_aip="import aip";var n=t.valueToCode(this,"SUB",t.ORDER_ATOMIC),a=t.valueToCode(this,"ADDR",t.ORDER_ATOMIC);return[n+"."+t.valueToCode(this,"FUNC",t.ORDER_ATOMIC)+"("+a+", options="+(t.valueToCode(this,"ATTR",t.ORDER_ATOMIC)||"{}")+")",t.ORDER_ATOMIC]},ai_AI_Face_match=function(e,t){return t.definitions_.import_aip="import aip",[t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".match("+t.valueToCode(this,"VAR",t.ORDER_ATOMIC)+","+t.valueToCode(this,"VAR2",t.ORDER_ATOMIC)+", options="+(t.valueToCode(this,"ATTR",t.ORDER_ATOMIC)||"{}")+")",t.ORDER_ATOMIC]},ai_AI_Ocr=function(e,t){t.definitions_.import_aip="import aip";var n=t.valueToCode(this,"SUB",t.ORDER_ATOMIC),a=t.valueToCode(this,"ADDR",t.ORDER_ATOMIC);return[n+"."+t.valueToCode(this,"FUNC",t.ORDER_ATOMIC)+"("+a+", options="+(t.valueToCode(this,"ATTR",t.ORDER_ATOMIC)||"{}")+")",t.ORDER_ATOMIC]},ai_AI_Nlp=function(e,t){t.definitions_.import_aip="import aip";var n=t.valueToCode(this,"SUB",t.ORDER_ATOMIC),a=t.valueToCode(this,"STR",t.ORDER_ATOMIC);return[n+"."+t.valueToCode(this,"FUNC",t.ORDER_ATOMIC)+"("+a+", options="+(t.valueToCode(this,"ATTR",t.ORDER_ATOMIC)||"{}")+")",t.ORDER_ATOMIC]},ai_AI_Nlp_Sim=function(e,t){t.definitions_.import_aip="import aip";var n=t.valueToCode(this,"SUB",t.ORDER_ATOMIC),a=t.valueToCode(this,"STR1",t.ORDER_ATOMIC),_=t.valueToCode(this,"STR2",t.ORDER_ATOMIC);return[n+"."+t.valueToCode(this,"FUNC",t.ORDER_ATOMIC)+"("+a+","+_+", options="+(t.valueToCode(this,"ATTR",t.ORDER_ATOMIC)||"{}")+")",t.ORDER_ATOMIC]},ai_AI_Nlp_Topic=function(e,t){return t.definitions_.import_aip="import aip",[t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".topic("+t.valueToCode(this,"STR1",t.ORDER_ATOMIC)+","+t.valueToCode(this,"STR2",t.ORDER_ATOMIC)+")",t.ORDER_ATOMIC]},ai_AI_Nlp_newsSummary=function(e,t){return t.definitions_.import_aip="import aip",[t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".newsSummary("+t.valueToCode(this,"STR",t.ORDER_ATOMIC)+","+t.valueToCode(this,"LEN",t.ORDER_ATOMIC)+", options="+(t.valueToCode(this,"ATTR",t.ORDER_ATOMIC)||"{}")+")",t.ORDER_ATOMIC]},ai_AI_ImageClassify_Func=function(e,t){return[this.getFieldValue("TYPE"),t.ORDER_ATOMIC]},ai_AI_Ocr_Func=function(e,t){return[this.getFieldValue("TYPE"),t.ORDER_ATOMIC]},ai_AI_Nlp_Func=function(e,t){return[this.getFieldValue("TYPE"),t.ORDER_ATOMIC]},ai_AI_Nlp_Func_sim=function(e,t){return[this.getFieldValue("TYPE"),t.ORDER_ATOMIC]},ai_AI_audio=function(e,t){return t.definitions_.import_audio="import audio","audio.audio_record("+(t.valueToCode(this,"VAR",t.ORDER_ATOMIC)||'""')+","+(t.valueToCode(this,"TIME",t.ORDER_ATOMIC)||"0")+")\n"},ai_AI_photo=function(e,t){return t.definitions_.import_audio="import cam","cam.photo_capture("+(t.valueToCode(this,"VAR",t.ORDER_ATOMIC)||'""')+","+(t.valueToCode(this,"BUT",t.ORDER_ATOMIC)||'""')+")\n"},ai_AI_result=function(e,t){var n=t.valueToCode(this,"AI",t.ORDER_ASSIGNMENT)||"0",a=this.getFieldValue("CTYPE");if("Image"==a)var _=n+'["result"][0]["keyword"]';if("Speech"==a)_=n+'["result"][0]';if("Face"==a||"OcrSimilarity"==a)_=n+'["score"]';if("Ocr"==a)_=n+'["words_result"]';return[_,t.ORDER_ATOMIC]},algorithm_algorithm_prepare=function(e,t){t.definitions_.import_sprite="import sprite";return"g = [[0,0,0,0,0,0,0,0,0,0], [0,0,0,1,0,0,0,0,0,0], [0,0,0,1,0,0,1,0,0,0], [0,1,1,0,1,1,0,0,0,0], [0,0,0,1,0,0,0,1,0,0], [0,0,0,1,0,0,1,1,0,0], [0,0,1,0,0,1,0,1,0,0], [0,0,0,0,1,1,1,0,0,0]]\nmark = [[0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0]]\nvis = [0,1,0,0,0,0,0,0,0]\nposition = [[0, 0], [200, 200], [250, 60], [320, 200], [280, 380], [470, 250], [670, 90], [650, 340]]\nsprite.clearAllSprites()\nsprite.createBackground('map_xuexiao')\n\nhouse = [ sprite.Sprite('mark', 150, 380),\n sprite.Sprite('School', 115, 195),\n sprite.Sprite('House25', 264, 67),\n sprite.Sprite('House36', 320, 200),\n sprite.Sprite('House47', 290, 371),\n sprite.Sprite('House25', 479, 233),\n sprite.Sprite('House36', 674, 96),\n sprite.Sprite('House47', 642, 318)\n]\nfor i in house:\n i.hide()\n"},algorithm_algorithm_add_school=function(){return"path = [1]\ncar = sprite.Sprite('car', position[1][0], position[1][1])\nhouse[1].show()\ncar.nowPos = 1\ndef drive(n):\n if g[car.nowPos][n]==1:\n car.slideTo(position[n][0], position[n][1], 1)\n car.nowPos = n\n else:\n print('移动失败!程序有误!')\n exit()\n"},algorithm_algorithm_find_path=function(e,t){t.definitions_.import_random="import random";return"f = path[(len(path) - 1)]\nflag = 0\nfor _my_variable in [6,5,4,3,2,1,0]:\n if vis[_my_variable+1] == 0 and g[f][_my_variable+1] == 1:\n if mark[f][_my_variable+1] == 0:\n flag = 1\n break\n"},algorithm_algorithm_new_path=function(e,t){return["flag == 1",t.ORDER_ATOMIC]},algorithm_algorithm_set_path=function(){return"mark[f][_my_variable+1] = 1\nvis[_my_variable+1] = 1\n"},algorithm_algorithm_add_path=function(){return"path.append(_my_variable+1)\ndrive(path[len(path) - 1])\nhouse[_my_variable+1].show()\n"},algorithm_algorithm_del_path=function(e,t){t.definitions_.import_time="import time";return"del path[len(path) - 1]\nhouse[0].show()\ntime.sleep(0.5)\nhouse[0].hide()\n"},algorithm_algorithm_return_path=function(){var e="for i in range(7):\n mark[f][i+1] = 0\n vis[f] = 0\n";return e="house[f].hide()\ndrive(path[len(path) - 1])\n"+e},algorithm_algorithm_no_left=function(e,t){return["len(path) == 7",t.ORDER_ATOMIC]},algorithm_algorithm_print_path=function(){return'name = ["","学校","小智家","小欣家","小思家","小科家","贝贝家","乐乐家"]\nres = ""\nfor i in path:\n res = res + name[i] + "-"\nprint(res[:-1])\n'},algorithm_algorithm_prepare2=function(e,t){t.definitions_.import_sprite="import sprite";return"g = [[0,0,0,0,0,0,0,0,0,0], [0,0,0,1,0,0,0,0,0,0], [0,0,0,1,0,0,1,0,0,0], [0,1,1,0,1,0,0,0,0,0], [0,0,0,1,0,0,0,1,0,0], [0,0,0,1,0,0,0,1,0,0], [0,0,1,0,0,0,0,1,0,0], [0,0,0,0,1,1,1,0,0,0]]\nmark = [[0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0]]\nvis = [0,1,0,0,0,0,0,0,0]\nposition = [[0, 0], [200, 200], [250, 60], [320, 200], [280, 380], [470, 250], [670, 90], [650, 340]]\nsprite.clearAllSprites()\nsprite.createBackground('map_xuexiao')\n\nhouse = [ sprite.Sprite('mark', 150, 380),\n sprite.Sprite('School', 115, 195),\n sprite.Sprite('House25', 264, 67),\n sprite.Sprite('House36', 320, 200),\n sprite.Sprite('House47', 290, 371),\n sprite.Sprite('House25', 479, 233),\n sprite.Sprite('House36', 674, 96),\n sprite.Sprite('House47', 642, 318)\n]\nbarricade = sprite.Sprite('barricade', 570, 170)\nbarricade.enlargeTo(100)\nfor i in house:\n i.hide()\n"},algorithm_algorithm_current_school=function(e,t){return["f == 1",t.ORDER_ATOMIC]},algorithm_algorithm_no_path=function(){return"print('没有符合条件的路线')\n"},algorithm_algorithm_prepare_2_1=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return'g = [[10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000],[10000,10000,500,300,10000,10000,10000,10000,10000,10000,10000],[10000,500,10000,10000,100,10000,10000,10000,10000,10000,10000],[10000,300,10000,10000,400,300,10000,10000,10000,10000,10000],[10000,10000,100,400,10000,10000,200,10000,10000,10000,10000],[10000,10000,10000,300,10000,10000,100,200,10000,10000,10000],[10000,10000,10000,10000,200,100,10000,10000,100,10000,10000],[10000,10000,10000,10000,10000,200,10000,10000,100,10000,10000],[10000,10000,10000,10000,10000,10000,100,100,10000,10000,10000]]\nnow=1\nlast=1\npath=[]\npath.append(1)\nname = ["","小思家","银行","邮局","餐厅","书店","医院","超市","小科家"]\nposition = [[0, 0], [60, 320], [510, 390], [240, 200], [750, 330], [410, 90], [540, 190], [550, 30], [720, 120]]\nsprite.clearAllSprites()\nsprite.createBackground(\'map_si_ke\')\nstu = sprite.Sprite(\'girl\', 60, 320)\nstu.enlargeTo(100)\ntime.sleep(1)\n\n'},algorithm_algorithm_prepare_2_2=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return'g =[[10000,10000,10000,10000,10000,10000,10000],[10000,10000,300,500,10000,10000,10000],[10000,300,10000,10000,300,700,10000],[10000,500,10000,10000,10000,100,10000],[10000,10000,300,10000,10000,10000,200],[10000,10000,700,100,10000,10000,100],[10000,10000,10000,10000,200,100,10000]]\nnow=1\nlast=1\npath=[]\npath.append(1)\nname = ["","小智家","邮局","银行","书店","餐厅","学校"]\nposition = [[0, 0], [70, 340], [70, 90], [550, 310], [420, 70], [730, 250], [650, 130]]\nsprite.clearAllSprites()\nsprite.createBackground(\'map_zhi_xue\')\nstu = sprite.Sprite(\'boy\', 70, 340)\nstu.enlargeTo(100)\ntime.sleep(1)\n\n'},algorithm_algorithm_move_recent=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return'tmp=10000\nfor i in range(0, len(g), 1):\n if g[now][i]6:\n print("路线错乱!程序有误!")\n exit()\n'},algorithm_algorithm_not_home=function(e,t){return["name[now] != '小科家'",t.ORDER_ATOMIC]},algorithm_algorithm_not_school=function(e,t){return["name[now] != '学校'",t.ORDER_ATOMIC]},algorithm_algorithm_print_path2=function(){return'res = ""\nfor i in path:\n res = res + name[i] + "→"\nprint(res[:-1])\n'},algorithm_hanoi_init=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";var n=this.getFieldValue("NUM");if(n>=7)var a="print('层数过高!不得高于6层!')\nexit()\n";else a="sprite.clearAllSprites()\n_Hanoicolor = ['blue', 'red', 'yellow', 'green', 'purple', 'black']\n_Hanoi = [[], [], []]\nA = 0\nB = 1\nC = 2\n_n = "+n+"\n_HanoiColumn = [\n sprite.Sprite('HanoiColumn', 200, 320),\n sprite.Sprite('HanoiColumn', 400, 320),\n sprite.Sprite('HanoiColumn', 600, 320)\n]\n_HanoiColumnNumber = [\n sprite.Text('A', 190, 120),\n sprite.Text('B', 390, 120),\n sprite.Text('C', 590, 120)\n]\n_HanoiBlock = []\nfor i in range(0, _n, 1):\n _HanoiBlock.append(sprite.Sprite(_Hanoicolor[i], 200, 400-(_n-i-1)*27))\n _HanoiBlock[i].setScale(25, 30*i+30)\n _Hanoi[0].insert(0, _HanoiBlock[i])\n_steptext = sprite.Text('步数:0', 30, 30)\n_steps = {'steps' : 0}\ntime.sleep(1)\n";return a},algorithm_hanoi_move=function(e,t){var n=t.valueToCode(this,"FROM_NUM",t.ORDER_ATOMIC)||"0",a=t.valueToCode(this,"TO_NUM",t.ORDER_ATOMIC)||"0";return`if len(_Hanoi[${n}])>0 :\n _HanoiBlockMoved = _Hanoi[${n}].pop()\n if len(_Hanoi[${a}]) > 0 :\n _HanoiBlockSuppressed = _Hanoi[${a}].pop()\n if _HanoiBlock.index(_HanoiBlockMoved) > _HanoiBlock.index(_HanoiBlockSuppressed):\n print('非法移动!程序有误!')\n exit()\n else:\n _Hanoi[${a}].append(_HanoiBlockSuppressed)\n _HanoiBlockMoved.slideTo(${n}*200+200, 180, 0.2)\n _HanoiBlockMoved.slideTo(${a}*200+200, 180, 0.5)\n _HanoiBlockMoved.slideTo(${a}*200+200, 400-len(_Hanoi[${a}])*27, 0.2)\n _Hanoi[${a}].append(_HanoiBlockMoved)\n _steps['steps'] += 1\n _steptext.changeText('步数:'+str(_steps['steps']))\nelse :\n print('非法移动!程序有误!')\n exit()\n`},algorithm_algorithm_all_books_sequence=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"if 'mode' not in globals() or mode == 0:\n sprite.clearAllSprites()\n ring=[0,0,0,0,0,0,0,0,0,0]\n mode=1\n n=5\n ring[5]=1\n name=['小王子','海底两万里','荷花镇的早市','孔子的故事','夏洛的网','草房子','月下看猫头鹰','会唱歌的咖啡磨','父与子','城南旧事']\n Books = []\n for i in range(1, 11, 1):\n Books.append(sprite.Sprite('books/book'+str(i), (130*i-650) if i>5 else 130*i, 320 if i>5 else 120))\nelse:\n mode=2\n n=len(ring)-1\nring[n]=1\ntime.sleep(1)\n"},algorithm_algorithm_all_books=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"if 'mode' not in globals() or mode == 0:\n sprite.clearAllSprites()\n ring=[0,0,0,0,0,0,0,0,0,0]\n mode=2\n n=5\n name=['小王子','海底两万里','荷花镇的早市','孔子的故事','夏洛的网','草房子','月下看猫头鹰','会唱歌的咖啡磨','父与子','城南旧事']\n Books = []\n for i in range(1, 11, 1):\n Books.append(sprite.Sprite('books/book'+str(i), (130*i-650) if i>5 else 130*i, 320 if i>5 else 120))\nelse:\n mode=1\n n=len(ring)-1\nring[n]=n\nlist=ring\ntemp=Books\ntime.sleep(1)\n"},algorithm_algorithm_first_book=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"res=0\nflag=ring[res]\nBooks[res].filterBrighter()\ntime.sleep(0.1)\nBooks[res].filterOrigin()\n"},algorithm_algorithm_no_ring2=function(e,t){return["(('mode' not in globals())or(mode==1 and flag==0)or(mode==2 and not any(value > 0 for value in qian))or(mode==0))",t.ORDER_ATOMIC]},algorithm_algorithm_yes_ring2=function(e,t){return["(('mode' in globals())and((mode==1 and flag!=0)or(mode==2 and any(value > 0 for value in qian))))",t.ORDER_ATOMIC]},algorithm_algorithm_next_book=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";var n="res+=1\nflag=ring[res]\n";return n="Books[res].filterGray()\ntime.sleep(0.3)\n"+(n+="Books[res].filterBrighter()\ntime.sleep(0.1)\nBooks[res].filterOrigin()\n")},algorithm_algorithm_two_left=function(e,t){return["len(list)>=2",t.ORDER_ATOMIC]},algorithm_algorithm_divide_books=function(){return"mid = int(len(list)/2)\nqian = list[0:mid]\nhou = list[mid:]\nqiantemp = temp[0:mid]\nhoutemp = temp[mid:]\n"},algorithm_algorithm_get_half_books=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"quchu = qian\nlist = hou\nquchutemp = qiantemp\ntemp = houtemp\nfor i in qiantemp:\n i.filterBrighter()\ntime.sleep(0.5)\nfor i in qiantemp:\n i.filterGray()\ntime.sleep(0.5)\n"},algorithm_algorithm_delete_book=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"list = quchu\ntemp = quchutemp\nfor i in qiantemp:\n i.filterBrighter()\ntime.sleep(0.5)\nfor i in qiantemp:\n i.filterOrigin()\nfor i in houtemp:\n\ti.filterBrighter()\ntime.sleep(0.5)\nfor i in houtemp:\n i.filterGray()\ntime.sleep(0.5)\n"},algorithm_algorithm_print_book2=function(){return"if 'list' in globals():\n res = list[0]\nBooks[res].filterBrighter()\nprint('未消磁的书籍是第'+str(res+1)+'本《'+name[res%10]+'》。')\nif res!=n:\n print('答案错误!请检查程序!')\nmode=0\n"},algorithm_algorithm_book_scale=function(e,t){var n=this.getFieldValue("NUM");return t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite",`sprite.clearAllSprites()\nring = []\nname = ['小王子','海底两万里','荷花镇的早市','孔子的故事','夏洛的网','草房子','月下看猫头鹰','会唱歌的咖啡磨','父与子','城南旧事']\nBooks = []\nfor i in range(${n}):\n ring.append(0)\nfor i in range(1, ${n}+1, 1):\n Books.append(sprite.Sprite('books/book'+str(i%10 if i%10!=0 else 10), ${{5:"130*i, 120",10:"(130*i-650) if i>5 else 130*i, 320 if i>5 else 120",20:"(65*i-650)+30 if i>10 else 65*i+30, 320 if i>10 else 120",50:"(26*i-650)+50 if i>25 else 26*i+50, 320 if i>25 else 120"}[n]}))\ntime.sleep(1)\nmode=3\n`},algorithm_algorithm_number_zero=function(e,t){t.definitions_.import_sprite="import sprite";return"cnt=0\ncntText = sprite.Text('计数器:0', 30, 200)\n"},algorithm_algorithm_number_add=function(e,t){t.definitions_.import_sprite="import sprite";return"cnt+=1\ncntText.changeText('计数器:'+str(cnt))\n"},algorithm_algorithm_print_number=function(e,t){t.definitions_.import_sprite="import sprite";return"print('计数器大小:'+str(cnt))\n"},algorithm_algorithm_init_jttl=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"sprite.clearAllSprites()\n_head = 10\n_foot = 32\n_footText = sprite.Text('脚的数量:', 20, 10)\n_sprite = []\n"},algorithm_algorithm_rabbit_zero=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"_rabbit = 0\ntime.sleep(1)\n"},algorithm_algorithm_rabbit_number_in_range=function(e,t){return["_rabbit < _head",t.ORDER_ATOMIC]},algorithm_algorithm_chick_calculate=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"_chick = _head - _rabbit\nfor i in range(0, _chick, 1):\n _sprite.append(sprite.Sprite('jttl/chick', len(_sprite)*130+130 if len(_sprite)<5 else len(_sprite)*130+130-650, 120 if len(_sprite)<5 else 320))\n\ntime.sleep(0.5)\n_footText.changeText('脚的数量:'+str(_rabbit*4 + _chick*2))\ntime.sleep(1)\n"},algorithm_algorithm_check_feet=function(e,t){return["_rabbit*4 + _chick*2 == _foot",t.ORDER_ATOMIC]},algorithm_algorithm_print_jttl_answer=function(e,t){t.definitions_.import_sprite="import sprite";return"print('鸡的数量:'+str(_chick)+'只;\\n兔的数量:'+str(_rabbit)+'只。')\n"},algorithm_algorithm_rabbit_add=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"_rabbit += 1\nsprite.clearAllSprites()\n_sprite = []\n_footText = sprite.Text('脚的数量:', 20, 10)\nfor i in range(0, _rabbit, 1):\n _sprite.append(sprite.Sprite('jttl/rabbit', len(_sprite)*130+130 if len(_sprite)<5 else len(_sprite)*130+130-650, 120 if len(_sprite)<5 else 320))\ntime.sleep(0.5)\n"},algorithm_algorithm_init_fzsf=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"sprite.clearAllSprites()\nsprite.createBackground('/fzsf/map_ck_xxjsjs')\n_S1 = sprite.Sprite('/fzsf/S1',400,225,'S1')\n_S2 = sprite.Sprite('/fzsf/S2',400,225,'S2')\n_S3 = sprite.Sprite('/fzsf/S3',400,225,'S3')\n_S4 = sprite.Sprite('/fzsf/S4',400,225,'S4')\n_S1.hide()\n_S2.hide()\n_S3.hide()\n_S4.hide()\n_text_1 = sprite.Text('S1:',0,0,'text')\n_text_2 = sprite.Text('S2:',0,30,'text2')\n_text_3 = sprite.Text('S3:',0,60,'text3')\n_text_4 = sprite.Text('S4:',0,90,'text4')\n_position = [[60, 270], [240, 50], [260, 380], [440, 190], [730, 60], [700, 400]]\n_Llen = [0, 170, 230, 100, 150, 10, 30, 50]\n_Slen = [0, 0, 0, 0, 0]\n_tag = [0, [0, 1, 3], [0, 2, 3], [3, 4, 5], [3, 5]]\nbear = sprite.Sprite('mixbear',60,270,'bear')\nbear.enlargeTo(80)\n_pos = 0\ntime.sleep(1)\n"},algorithm_algorithm_fz_calc=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";var n=this.getFieldValue("PATHNAME");const a=[0,[1,3],[2,4],[5,7],[6]];var _="";return _+=`_S${n}.show()\ntime.sleep(1)\n`,_+=4!=n?`_Slen[${n}] = _Llen[${a[n][0]}] + _Llen[${a[n][1]}]\n_text_${n}.changeText('S${n}:'+str(_Slen[${n}])+'m')\ntime.sleep(1)\n_S${n}.hide()\ntime.sleep(1)\n`:"_Slen[4] = _Llen[6]\n_text_4.changeText('S4:'+str(_Slen[4])+'m')\ntime.sleep(1)\n_S4.hide()\ntime.sleep(1)\n"},algorithm_algorithm_fz_compare=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";var n="";return[n+=`_Slen[${this.getFieldValue("PATHNAME")}] < _Slen[${this.getFieldValue("PATHNAME2")}]`,t.ORDER_ATOMIC]},algorithm_algorithm_fz_set_min=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";var n=this.getFieldValue("PATHNAME"),a="";return a+=`\n_S1.hide()\n_S2.hide()\n_S3.hide()\n_S4.hide()\n_Smin = ${n}\n_S${n}.show()\ntime.sleep(0.5)\n_S${n}.hide()\ntime.sleep(0.5)\n_S${n}.show()\ntime.sleep(1)\n`},algorithm_algorithm_fz_move=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"if(_pos == _tag[_Smin][0]):\n for i in range(1, len(_tag[_Smin]), 1):\n bear.slideTo(_position[_tag[_Smin][i]][0], _position[_tag[_Smin][i]][1], 1)\n _pos = _tag[_Smin][len(_tag[_Smin])-1]\nelse:\n print('移动错误!程序有误!')\n exit()\n_S1.hide()\n_S2.hide()\n_S3.hide()\n_S4.hide()\nif(_pos == 5):\n print('成功抵达信息科技教室!')\n"},algorithm_algorithm_init_hxdb=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"sprite.clearAllSprites()\nsprite.createBackground('/hxdb/hxdbbg')\n_soldier = []\n_num = sprite.Text('目前士兵数量:0',0,0,'num')\n_last = sprite.Text('剩余:0',500,0,'last')\n_line = 3\n"},algorithm_algorithm_hxdb_init_soldier=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";var n="";return n+=`for i in range(0, ${this.getFieldValue("NUM")}, 1):\n _soldier.append(sprite.Sprite('/hxdb/soldier', 30 + (len(_soldier)%_line)*50 + (len(_soldier)//(4*_line))*(_line+1)*50 +(len(_soldier)%3-2), 80+(len(_soldier)//_line)*100-(len(_soldier)//(4*_line))*4*100+(len(_soldier)%2)))\n_num.changeText('目前士兵数量:'+str(len(_soldier)))\n`},algorithm_algorithm_hxdb_stand_in_line=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";var n=this.getFieldValue("NUM");return`for i in range(0, len(_soldier), 1):\n _soldier[i].slideTo(30 + (i%${n})*50 + (i//(4*${n}))*(${n}+1)*50 +(i%3-2), 80+(i//${n})*100-(i//(4*${n}))*4*100+(i%2), 0.05)\n_line = ${n}\n_last.changeText('剩余:'+str(len(_soldier)%_line))\ntime.sleep(2)\n`},algorithm_algorithm_hxdb_last_line=function(e,t){return t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite",[`len(_soldier)%_line == ${this.getFieldValue("NUM")}`,t.ORDER_ATOMIC]},algorithm_algorithm_hxdb_add=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"_num.changeText('目前士兵数量:'+str(len(_soldier)+1))\n_last.changeText('剩余:')\ntime.sleep(0.5)\n_soldier.append(sprite.Sprite('/hxdb/soldier', 30 + (len(_soldier)%_line)*50 + (len(_soldier)//(4*_line))*(_line+1)*50 +(len(_soldier)%3-2), 80+(len(_soldier)//_line)*100-(len(_soldier)//(4*_line))*4*100+(len(_soldier)%2)))\ntime.sleep(1)\n"},algorithm_algorithm_hxdb_result=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"print('符合要求的士兵数量为:'+str(len(_soldier)))\n"},algorithm_hanoi_init_offline=function(e,t){t.definitions_.import_turtle="import turtle",t.definitions_.import_time="import time",t.definitions_.import_math="import math";var n=t.valueToCode(this,"VAR",t.ORDER_ATOMIC),a=this.getFieldValue("NUM");return t.setups_.init_Hanoi="\ndef init_Hanoi():\n pen = turtle.Turtle()\n pen.hideturtle()\n pen.speed(0)\n for i in range(0, 3, 1):\n pen.penup()\n pen.setheading(0)\n pen.goto(150 * i - 200,-100)\n pen.pendown()\n pen.pensize(5)\n pen.forward(100)\n pen.goto(150 * i - 150,-100)\n pen.setheading(90)\n pen.forward(200)",t.setups_.begin="\ndef begin(): \n s = turtle.Turtle()\n s.hideturtle()\n s.penup()\n s.speed(0)\n s.goto(0,-150)\n s.write('3')\n time.sleep(1)\n s.clear()\n s.write('2')\n time.sleep(1)\n s.clear()\n s.write('1')\n time.sleep(1)\n s.clear()\n s.write('Start!')\n time.sleep(1)\n s.clear()\n",t.setups_.move="\ndef move(x, y):\n try:\n t = tower[x].pop(-1)\n a = tower_num[x].pop(-1)\n if tower_num[y]!=[]:\n b = tower_num[y][-1]\n if a{document.removeEventListener("DOMContentLoaded",e),this._pageLoad.resolve()};document.addEventListener("DOMContentLoaded",e)}else this._pageLoad.resolve();(async()=>{switch(n){case"python":case"python3":case"python3.11":const{KernelPython3:t}=await __webpack_require__.e(211).then(__webpack_require__.bind(__webpack_require__,211));this._kernel=new t(e);break;case"python3-old":case"python3.8":const{KernelPython3Old:a}=await __webpack_require__.e(195).then(__webpack_require__.bind(__webpack_require__,5195));this._kernel=new a(e);break;case"js":case"javascript":const{KernelJavaScript:_}=await __webpack_require__.e(97).then(__webpack_require__.bind(__webpack_require__,4097));this._kernel=new _(e);break;case"sql":const{KernelSQL:l}=await Promise.all([__webpack_require__.e(960),__webpack_require__.e(837)]).then(__webpack_require__.bind(__webpack_require__,592));this._kernel=new l(e);break;case"ocaml":const{KernelOCaml:s}=await __webpack_require__.e(38).then(__webpack_require__.bind(__webpack_require__,38));this._kernel=new s(e);break;default:return window.console.error(`Kernel '${n}' not supported.`),void this._kernelAvailable.reject()}window.Basthon=this._kernel,this._kernelAvailable.resolve(this._kernel)})()}async pageLoad(){await this._pageLoad.promise}async kernelAvailable(){return await this._kernelAvailable.promise}async kernelLoaded(){const e=await this.kernelAvailable();return await e.loaded(),e}get kernel(){return this._kernel}get kernelSafe(){var e;return(null===(e=this.kernel)||void 0===e?void 0:e.ready)?this.kernel:null}async showLoader(e,t=!1,n=!0){this.kernelAvailable().then((()=>{var e;return null===(e=this.kernel)||void 0===e?void 0:e.init()})),__webpack_require__.e(317).then(__webpack_require__.bind(__webpack_require__,1317));const a="basthon-loader-"+(t?"full":"foot"),_=document.createElement("div");_.id=this._loaderId,_.classList.add("darklighted"),_.classList.add("basthon-loader-root"),_.classList.add(a);const l=document.createElement("div");l.classList.add("basthon-loader-container"),l.classList.add(a),_.appendChild(l);const s=document.createElement("div");s.classList.add("basthon-loader-spinner"),s.classList.add(a),s.innerHTML="",l.appendChild(s);const i=document.createElement("div");i.classList.add("basthon-loader-break"),i.classList.add(a),l.appendChild(i);const o=document.createElement("div");o.classList.add("basthon-loader-text"),o.classList.add(a),o.innerHTML=e,l.appendChild(o),this._loaderTextElem=o;const r=document.createElement("div");r.classList.add("basthon-loader-text"),r.classList.add(a),r.style.display="none",l.appendChild(r),this._loaderTextError=r,await this.pageLoad(),document.body.appendChild(_),this._rootLoader=_;try{await this.kernelLoaded()}catch(e){const t=this.browser();this.setErrorText(`Erreur de chargement de Basthon !!!
Vérifiez que votre navigateur est à jour.
Version détectée : ${t.name} ${t.version}.`);for(const e of document.body.querySelectorAll(".basthon-loader-foot"))e.classList.remove("basthon-loader-foot"),e.classList.add("basthon-loader-full");return s.classList.remove("basthon-loader-spinner"),s.classList.add("basthon-loader-error"),void(this._doNotHideLoader=!0)}this._doNotHideLoader=!1,n&&this.hideLoader()}setLoaderText(e){null!=this._loaderTextElem&&(this._loaderTextElem.innerHTML=e)}setErrorText(e){null!=this._loaderTextElem&&(this._loaderTextElem.style.display="none"),null!=this._loaderTextError&&(this._loaderTextError.style.display="",this._loaderTextError.innerHTML=e)}hideLoader(){if(this._doNotHideLoader)return;const e=this._rootLoader;null!=e&&(e.classList.add("basthon-loader-hide"),window.setTimeout((()=>{this._rootLoader=void 0,e.remove()}),1100))}browser(){var e,t=navigator.userAgent,n=t.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i)||[];return/trident/i.test(n[1])?{name:"IE",version:(e=/\brv[ :]+(\d+)/g.exec(t)||[])[1]||""}:"Chrome"===n[1]&&null!=(e=t.match(/\bOPR|Edge\/(\d+)/))?{name:"Opera",version:e[1]}:(n=n[2]?[n[1],n[2]]:[navigator.appName,navigator.appVersion,"-?"],null!=(e=t.match(/version\/(\d+)/i))&&n.splice(1,1,e[1]),{name:n[0],version:n[1]})}}const external_$_namespaceObject=$;var external_$_default=__webpack_require__.n(external_$_namespaceObject);const statusbar_image_namespaceObject='\r\n
\r\n\r\n
';class StatusBarImage extends external_Mixly_namespaceObject.PageBase{static{external_Mixly_namespaceObject.HTMLTemplate.add("html/statusbar/statusbar-image.html",new external_Mixly_namespaceObject.HTMLTemplate(statusbar_image_namespaceObject)),this.init=function(){external_Mixly_namespaceObject.StatusBarsManager.typesRegistry.register(["images"],StatusBarImage);const e=external_Mixly_namespaceObject.Workspace.getMain().getStatusBarsManager();e.add("images","images",external_Blockly_namespaceObject.Msg.PYTHON_PYODIDE_IMAGE),e.changeTo("output")}}constructor(){super();const e=external_$_default()(external_Mixly_namespaceObject.HTMLTemplate.get("html/statusbar/statusbar-image.html").render());this.setContent(e)}init(){super.init(),this.hideCloseBtn()}clean(){this.getContent().empty()}display(e){const t=this.getContent(),n=function(e){e.style.width="auto",e.style.height="auto",e.style.maxWidth="100%",e.style.maxHeight="100%"};this.clean();let a=e.content,_=null,l=null;switch(e.display_type){case"p5":a.style.width="100%",a.style.height="100%",a.style.display="flex",a.style.justifyContent="center",a.style.alignItems="center",new MutationObserver((function(e){e.forEach((e=>e.addedNodes.forEach((e=>{const t=e;null!=t.tagName&&["canvas","video"].includes(t.tagName.toLowerCase())&&n(t)}))))})).observe(a,{childList:!0}),a.querySelectorAll("canvas,video").forEach(n),t.append(a);break;case"matplotlib":_=a.querySelector("canvas"),_&&(a=_),a.style.width="",a.style.height="",a.style.maxWidth="100%",a.style.maxHeight="100%",t.append(a);break;case"ocaml-canvas":a.style.width="",a.style.height="",a.style.maxWidth="100%",a.style.maxHeight="100%",t.append(a);break;case"turtle":a.setAttribute("width","100%"),a.setAttribute("height","100%"),t.append(a.outerHTML);break;case"sympy":t.append(e.content),void 0===window.MathJax?(console.log("Loading MathJax (Sympy expression needs it)."),function(){let e=document.createElement("script");e.type="text/javascript",e.src="https://cdn.jsdelivr.net/npm/mathjax@3.0.5/es5/tex-mml-chtml.js",document.getElementsByTagName("head")[0].appendChild(e)}()):window.MathJax.typeset();break;case"multiple":for(let n of["image/svg+xml","image/png","text/html","text/plain"])if(n in e.content){let a=e.content[n];"image/png"===n&&(a=''),t.append(a);break}break;case"tutor":if(t.append(external_$_default()(e.content.replace("overflow-y%3A%20hidden%3B",""))),l=this.getContent()[0].getElementsByTagName("iframe")[0],null==l)return;l.style.maxHeight=l.style.minHeight="100%",new IntersectionObserver(((e,t)=>{const n=e[0];n&&!n.isIntersecting||(l.contentWindow?.postMessage({type:"redraw"},"*"),t.disconnect())})).observe(l);break;default:console.error(`Not supported node type '${e.display_type}' in eval.display result processing.`)}}}const statusbar_image=StatusBarImage;class PythonShell{static{this.pythonShell=null,this.init=async function(){statusbar_image.init();const e=external_path_.relative(external_Mixly_namespaceObject.Env.indexDirPath,external_Mixly_namespaceObject.Env.boardDirPath),t=new KernelLoader({rootPath:external_path_.join(e,"deps"),language:"python3"}),n=await t.kernelAvailable();n&&(await n.init(),await n.loaded(),this.loader=t,this.kernel=n,this.pythonShell=new PythonShell,this.pyodide=window.pyodide,this.interruptBuffer=new Uint8Array(new ArrayBuffer(1)),this.pyodide.setInterruptBuffer(this.interruptBuffer))},this.run=function(){const e=external_Mixly_namespaceObject.Workspace.getMain().getEditorsManager().getActive().getCode();return this.pythonShell.run(e)},this.stop=function(){return this.pythonShell.stop()}}#e=null;#t=null;#n=null;#a={row:0,column:0};#_="";#l=null;#s=null;#i=!1;#o=!1;#r=null;#p=()=>this.#c();#u=[{name:"REPL-Enter",bindKey:"Enter",exec:e=>{if(e.getSession().selection.getCursor().row===this.#a.row){const e=this.#e.getEndPos();let t=this.#e.getValueRange(this.#a,e);t=t.replace(this.#_,""),this.#l?.(t),this.#l=null,this.#s=null,this.#e.addValue("\n"),this.#m()}return!1}},{name:"REPL-ChangeEditor",bindKey:"Delete|Ctrl-X|Backspace",exec:e=>{const t=e.getSession().selection.getCursor();return t.row{this.#o=!1,this.#e.addValue(`\n==${external_Mixly_namespaceObject.Msg.Lang["shell.finish"]}==`)})),this.#r.addEventListener("eval.output",(e=>{this.#e.addValue(e.content)})),this.#r.addEventListener("eval.error",(()=>{this.#o=!1,this.#e.addValue(`\n==${external_Mixly_namespaceObject.Msg.Lang["shell.finish"]}==`)})),this.#r.addEventListener("eval.input",(e=>{const t=String(e?.content?.prompt);this.#e.addValue(t),this.#_=t,this.#l=e.resolve,this.#s=e.reject,this.#O()})),this.#r.addEventListener("eval.display",(e=>{this.#n.changeTo("images"),this.#t.display(e)}))}#c(){const e=this.#e.getEditor(),t=e.getSession().selection.getCursor();e.setReadOnly(t.row{-1!==e.indexOf("import turtle")&&(e+="\nturtle.done()\n"),this.#n.changeTo("output"),this.#n.show(),this.#e.setValue(`${external_Mixly_namespaceObject.Msg.Lang["shell.running"]}...\n`),this.#o=!0,this.#r.dispatchEvent("eval.request",{code:e,interactive:!1})})).catch(external_Mixly_namespaceObject.Debug.error)}async stop(){if(this.#i&&this.#m(),this.#o){const e=5;PythonShell.interruptBuffer[0]=2;const t=Number(new Date);for(;Number(new Date)-t<1e3*e&&this.#o;)PythonShell.interruptBuffer[0]=2,await this.sleep(100);this.#o=!1}}sleep(e){return new Promise((t=>setTimeout(t,e)))}}const python_shell=PythonShell,NavExt={init:async function(){const e=external_Mixly_namespaceObject.app.getNav();e.register({icon:"icon-play-circled",title:"",id:"python-run-btn",displayText:external_Blockly_namespaceObject.Msg.MSG.run,preconditionFn:()=>!0,callback:()=>{python_shell.run()},scopeType:external_Mixly_namespaceObject.Nav.Scope.LEFT,weight:4}),e.register({icon:"icon-cancel",title:"",id:"python-stop-btn",displayText:external_Blockly_namespaceObject.Msg.MSG.stop,preconditionFn:()=>!0,callback:()=>{python_shell.stop()},scopeType:external_Mixly_namespaceObject.Nav.Scope.LEFT,weight:5}),await python_shell.init()}},nav_ext=NavExt;nav_ext.init(),Object.assign(external_Blockly_namespaceObject.Variables,variables),Object.assign(external_Blockly_namespaceObject.Procedures,procedures),external_Blockly_namespaceObject.Python=Python,external_Blockly_namespaceObject.generator=Python,external_Mixly_namespaceObject.Profile.default={},Object.assign(external_Blockly_namespaceObject.Blocks,blocks_variables_namespaceObject,control_namespaceObject,math_namespaceObject,text_namespaceObject,lists_namespaceObject,dicts_namespaceObject,logic_namespaceObject,storage_namespaceObject,blocks_procedures_namespaceObject,tuple_namespaceObject,set_namespaceObject,html_namespaceObject,utility_namespaceObject,ai_namespaceObject,algorithm_namespaceObject,communicate_namespaceObject,cv_namespaceObject,data_namespaceObject,datastructure_namespaceObject,factory_namespaceObject,hardware_namespaceObject,inout_namespaceObject,iot_namespaceObject,pins_namespaceObject,serial_namespaceObject,sklearn_namespaceObject,system_namespaceObject,turtle_namespaceObject),Object.assign(external_Blockly_namespaceObject.Python.forBlock,generators_variables_namespaceObject,generators_control_namespaceObject,generators_math_namespaceObject,generators_text_namespaceObject,generators_lists_namespaceObject,generators_dicts_namespaceObject,generators_logic_namespaceObject,generators_storage_namespaceObject,generators_procedures_namespaceObject,generators_tuple_namespaceObject,generators_set_namespaceObject,generators_html_namespaceObject,generators_utility_namespaceObject,generators_ai_namespaceObject,generators_algorithm_namespaceObject,generators_communicate_namespaceObject,cv,generators_data_namespaceObject,generators_datastructure_namespaceObject,generators_factory_namespaceObject,generators_hardware_namespaceObject,generators_inout_namespaceObject,generators_iot_namespaceObject,generators_pins_namespaceObject,generators_serial_namespaceObject,generators_sklearn_namespaceObject,generators_system_namespaceObject,generators_turtle_namespaceObject)})(); \ No newline at end of file diff --git a/boards/default/python_pyodide/styles/317.ba1aee9d.css b/boards/default/python_pyodide/styles/317.d64c0353.css similarity index 100% rename from boards/default/python_pyodide/styles/317.ba1aee9d.css rename to boards/default/python_pyodide/styles/317.d64c0353.css diff --git a/boards/default/python_pyodide/styles/main.ba1aee9d.css b/boards/default/python_pyodide/styles/main.d64c0353.css similarity index 100% rename from boards/default/python_pyodide/styles/main.ba1aee9d.css rename to boards/default/python_pyodide/styles/main.d64c0353.css diff --git a/boards/default_src/python_pyodide/others/python-shell.js b/boards/default_src/python_pyodide/others/python-shell.js index 17e65687..9aedee22 100644 --- a/boards/default_src/python_pyodide/others/python-shell.js +++ b/boards/default_src/python_pyodide/others/python-shell.js @@ -172,6 +172,9 @@ class PythonShell { run(code) { this.stop() .then(() => { + if (code.indexOf('import turtle') !== -1) { + code += '\nturtle.done()\n'; + } this.#statusBarsManager_.changeTo('output'); this.#statusBarsManager_.show(); this.#statusBarTerminal_.setValue(`${Msg.Lang['shell.running']}...\n`);