From c9b625578b049ab3e67d83f0424880b01cceca0e Mon Sep 17 00:00:00 2001 From: Jonathan Pascoe Date: Tue, 22 Feb 2022 18:59:17 -0600 Subject: [PATCH 1/4] Added check and support for sources assigned EPSG 4978 --- package.json | 2 +- src/3d-tiles/translate.ts | 13 ++++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 8e4bab2..7db4ae4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ept-tools", - "version": "0.0.13", + "version": "0.0.14", "description": "Entwine Point Tiles utility library", "repository": "github:connormanning/ept-tools", "main": "lib/index.js", diff --git a/src/3d-tiles/translate.ts b/src/3d-tiles/translate.ts index f39f585..c531d16 100644 --- a/src/3d-tiles/translate.ts +++ b/src/3d-tiles/translate.ts @@ -15,6 +15,8 @@ type Translate = { cache?: Cache } +const targetEpsgCode = 4978 + /** * Generates a 3D-Tiles file translation of an EPT dataset at the virtual path * /ept-tileset/. So the virtual "tileset.json" for an EPT @@ -33,6 +35,15 @@ export async function translate({ filename, cache, options = {} }: Translate) { JsonSchema.validate(Ept.schema, await getJson(eptfilename))[0] const { bounds, dataType, schema, srs } = ept + + // If source is already projected to 4978 and does + // not include horizontal epsg code assign the missing + // srs properties to support downstream actions + if (srs?.wkt?.includes(`"EPSG","${targetEpsgCode}"`) && !srs.horizontal) { + srs.authority = 'EPSG' + srs.horizontal = targetEpsgCode.toString() + } + const codeString = Srs.horizontalCodeString(srs) if (!codeString) { throw new EptToolsError('Cannot translate to 3D Tiles without an SRS code') @@ -67,6 +78,6 @@ export async function translate({ filename, cache, options = {} }: Translate) { const view = await DataType.view(dataType, buffer, schema) const tileBounds = Bounds.stepTo(bounds, key) - const toEcef = Reproject.create(codeString, 'EPSG:4978') + const toEcef = Reproject.create(codeString, `EPSG:${targetEpsgCode}`) return Pnts.translate({ view, tileBounds, toEcef, options }) } From 14c9f2bfabb2b92e663696476c2437928a5b9705 Mon Sep 17 00:00:00 2001 From: Jonathan Pascoe Date: Sun, 13 Nov 2022 11:37:47 -0600 Subject: [PATCH 2/4] Updated pre-pub script --- package.json | 6 +++--- yarn.lock | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 7db4ae4..cf7b02f 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "dev": "ts-node -r tsconfig-paths/register src/app/index.ts", "lambda": "ncc build src/app/lambda.ts -o ./lambda && copyfiles -f src/lib/* lambda/lib/", "lambda-zip": "(cd lambda && zip -r ../ept-tools.zip .)", - "prepublish": "$npm_execpath build", + "prepublish": "$npm_execpath run build", "test": "jest" }, "dependencies": { @@ -52,8 +52,8 @@ "ts-jest": "^26.5.2", "ts-node": "^9.1.1", "tsconfig-paths": "^3.9.0", - "ttypescript": "^1.5.12", - "typescript": "^4.2.2" + "ttypescript": "1.5.12", + "typescript": "4.2.2" }, "husky": { "hooks": { diff --git a/yarn.lock b/yarn.lock index 65b3dcc..d61d1ec 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4707,7 +4707,7 @@ tsscmp@1.0.6: resolved "https://registry.yarnpkg.com/tsscmp/-/tsscmp-1.0.6.tgz#85b99583ac3589ec4bfef825b5000aa911d605eb" integrity sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA== -ttypescript@^1.5.12: +ttypescript@1.5.12: version "1.5.12" resolved "https://registry.yarnpkg.com/ttypescript/-/ttypescript-1.5.12.tgz#27a8356d7d4e719d0075a8feb4df14b52384f044" integrity sha512-1ojRyJvpnmgN9kIHmUnQPlEV1gq+VVsxVYjk/NfvMlHSmYxjK5hEvOOU2MQASrbekTUiUM7pR/nXeCc8bzvMOQ== @@ -4768,7 +4768,7 @@ typedarray-to-buffer@^3.1.5: dependencies: is-typedarray "^1.0.0" -typescript@^4.2.2: +typescript@4.2.2: version "4.2.2" resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.2.2.tgz#1450f020618f872db0ea17317d16d8da8ddb8c4c" integrity sha512-tbb+NVrLfnsJy3M59lsDgrzWIflR4d4TIUjz+heUnHZwdF7YsrMTKoRERiIvI2lvBG95dfpLxB21WZhys1bgaQ== From b6819f329c5e809d9f25d8d3340b7d08ce4f91d3 Mon Sep 17 00:00:00 2001 From: Jonathan Pascoe Date: Mon, 14 Nov 2022 10:52:39 -0600 Subject: [PATCH 3/4] Revert yarn --- package.json | 4 ++-- yarn.lock | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index cf7b02f..052a770 100644 --- a/package.json +++ b/package.json @@ -52,8 +52,8 @@ "ts-jest": "^26.5.2", "ts-node": "^9.1.1", "tsconfig-paths": "^3.9.0", - "ttypescript": "1.5.12", - "typescript": "4.2.2" + "ttypescript": "^1.5.13", + "typescript": "^4.2.2" }, "husky": { "hooks": { diff --git a/yarn.lock b/yarn.lock index d61d1ec..f9fe116 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4707,10 +4707,10 @@ tsscmp@1.0.6: resolved "https://registry.yarnpkg.com/tsscmp/-/tsscmp-1.0.6.tgz#85b99583ac3589ec4bfef825b5000aa911d605eb" integrity sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA== -ttypescript@1.5.12: - version "1.5.12" - resolved "https://registry.yarnpkg.com/ttypescript/-/ttypescript-1.5.12.tgz#27a8356d7d4e719d0075a8feb4df14b52384f044" - integrity sha512-1ojRyJvpnmgN9kIHmUnQPlEV1gq+VVsxVYjk/NfvMlHSmYxjK5hEvOOU2MQASrbekTUiUM7pR/nXeCc8bzvMOQ== +ttypescript@^1.5.13: + version "1.5.13" + resolved "https://registry.yarnpkg.com/ttypescript/-/ttypescript-1.5.13.tgz#c3bcb760599fe49157d30c5d5895a0023cbb7f30" + integrity sha512-KT/RBfGGlVJFqEI8cVvI3nMsmYcFvPSZh8bU0qX+pAwbi7/ABmYkzn7l/K8skw0xmYjVCoyaV6WLsBQxdadybQ== dependencies: resolve ">=1.9.0" @@ -4768,7 +4768,7 @@ typedarray-to-buffer@^3.1.5: dependencies: is-typedarray "^1.0.0" -typescript@4.2.2: +typescript@^4.2.2: version "4.2.2" resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.2.2.tgz#1450f020618f872db0ea17317d16d8da8ddb8c4c" integrity sha512-tbb+NVrLfnsJy3M59lsDgrzWIflR4d4TIUjz+heUnHZwdF7YsrMTKoRERiIvI2lvBG95dfpLxB21WZhys1bgaQ== From d3dba3cdb534bbe5ee90d67360e4c945a37b63d7 Mon Sep 17 00:00:00 2001 From: Jonathan Pascoe Date: Mon, 15 Jan 2024 11:07:49 -0600 Subject: [PATCH 4/4] Updated laz perf and ttypescript --- package.json | 1 + src/ept/data-type/laszip/index.ts | 29 +++++++++++-- src/lib/laz-perf.d.ts | 21 ---------- src/lib/laz-perf.js | 1 - src/lib/laz-perf.wasm | Bin 195655 -> 0 bytes yarn.lock | 67 +++++++++++++++++++----------- 6 files changed, 69 insertions(+), 50 deletions(-) delete mode 100644 src/lib/laz-perf.d.ts delete mode 100644 src/lib/laz-perf.js delete mode 100755 src/lib/laz-perf.wasm diff --git a/package.json b/package.json index 052a770..17f154b 100644 --- a/package.json +++ b/package.json @@ -23,6 +23,7 @@ "fs-extra": "^9.1.0", "koa": "^2.13.1", "koa-logger": "^3.2.1", + "laz-perf": "^0.0.6", "log-symbols": "^4.0.0", "node-fetch": "^2.6.1", "protopath": "^0.0.0", diff --git a/src/ept/data-type/laszip/index.ts b/src/ept/data-type/laszip/index.ts index 9151894..9dfb6a5 100644 --- a/src/ept/data-type/laszip/index.ts +++ b/src/ept/data-type/laszip/index.ts @@ -1,4 +1,6 @@ -import Module from 'lib/laz-perf' +import { createLazPerf, LazPerf } from 'laz-perf' +// import Module from 'lib/laz-perf' +// // import { createLazPerf, LazPerf } from 'lib/laz-perf' import { Schema } from 'ept' @@ -12,9 +14,27 @@ export const extension = 'laz' export const Laszip = { view } +// load laz-perf let isReady = false +let Module: LazPerf +createLazPerf().then((lazPerf: LazPerf) => { + isReady = true; + Module = lazPerf; +}) -Module.onRuntimeInitialized = () => isReady = true +function isDetached(ab: any) { + if (ab.byteLength != 0) { + // detached buffers will always have zero byteLength + return false; + } + try { + new Uint8Array(ab); + return false; + } catch { + // Uint8Array throws if using a detached buffer + return true; + } +} async function view(input: Buffer): Promise { const header = Header.parse(input) @@ -38,13 +58,14 @@ async function view(input: Buffer): Promise { const schema = Format.create(header) const corePointSize = Schema.pointSize(schema) const point = Buffer.from(Module.HEAPU8.buffer, dataPointer, corePointSize) - const length = corePointSize * pointCount const output = Buffer.alloc(length) for (let pos = 0; pos < length; pos += corePointSize) { // Decompress each point and copy it from the Module heap to our buffer. laszip.getPoint(dataPointer) - point.copy(output, pos, 0, corePointSize) + if (!isDetached(point)) { + point.copy(output, pos, 0, corePointSize) + } } return View.Readable.create(output, schema) diff --git a/src/lib/laz-perf.d.ts b/src/lib/laz-perf.d.ts deleted file mode 100644 index 9c44417..0000000 --- a/src/lib/laz-perf.d.ts +++ /dev/null @@ -1,21 +0,0 @@ -declare module 'lib/laz-perf' { - // Represents an offset into the HEAPU8. - type Pointer = number - - function onRuntimeInitialized(): void - - class LASZip { - constructor() - open(pointer: Pointer, length: number): void - delete(): void - getPoint(pointer: Pointer): void - } - - class HEAPU8 { - static buffer: ArrayBuffer - static set(buffer: ArrayBuffer, pointer: Pointer): void - } - - function _free(pointer: Pointer): void - function _malloc(length: number): Pointer -} diff --git a/src/lib/laz-perf.js b/src/lib/laz-perf.js deleted file mode 100644 index a58c0d1..0000000 --- a/src/lib/laz-perf.js +++ /dev/null @@ -1 +0,0 @@ -var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=typeof window==="object";var ENVIRONMENT_IS_WORKER=typeof importScripts==="function";var ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};readAsync=function readAsync(filename,onload,onerror){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);nodeFS["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);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status,toThrow){if(keepRuntimeAlive()){process["exitCode"]=status;throw 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(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heap[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,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&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var UTF16Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;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))}else{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}}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}function lengthBytesUTF16(str){return str.length*2}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}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}function lengthBytesUTF32(str){var len=0;for(var i=0;i=55296&&codeUnit<=57343)++i;len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||167772160;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeKeepaliveCounter=0;function keepRuntimeAlive(){return noExitRuntime||runtimeKeepaliveCounter>0}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile;wasmBinaryFile="laz-perf.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmMemory=Module["asm"]["u"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["w"];addOnInit(Module["asm"]["v"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function ___cxa_allocate_exception(size){return _malloc(size+16)+16}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-16;this.set_type=function(type){HEAP32[this.ptr+4>>2]=type};this.get_type=function(){return HEAP32[this.ptr+4>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+8>>2]=destructor};this.get_destructor=function(){return HEAP32[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_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}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}function __embind_register_bigint(primitiveType,name,size,minRange,maxRange){}function getShiftFromSize(size){switch(size){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+size)}}function embind_init_charCodes(){var codes=new Array(256);for(var i=0;i<256;++i){codes[i]=String.fromCharCode(i)}embind_charCodes=codes}var embind_charCodes=undefined;function readLatin1String(ptr){var ret="";var c=ptr;while(HEAPU8[c]){ret+=embind_charCodes[HEAPU8[c++]]}return ret}var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var char_0=48;var char_9=57;function makeLegalFunctionName(name){if(undefined===name){return"_unknown"}name=name.replace(/[^a-zA-Z0-9_]/g,"$");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return"_"+name}else{return name}}function createNamedFunction(name,body){name=makeLegalFunctionName(name);return new Function("body","return function "+name+"() {\n"+' "use strict";'+" return body.apply(this, arguments);\n"+"};\n")(body)}function extendError(baseErrorType,errorName){var errorClass=createNamedFunction(errorName,function(message){this.name=errorName;this.message=message;var stack=new Error(message).stack;if(stack!==undefined){this.stack=this.toString()+"\n"+stack.replace(/^Error(:[^\n]*)?\n/,"")}});errorClass.prototype=Object.create(baseErrorType.prototype);errorClass.prototype.constructor=errorClass;errorClass.prototype.toString=function(){if(this.message===undefined){return this.name}else{return this.name+": "+this.message}};return errorClass}var BindingError=undefined;function throwBindingError(message){throw new BindingError(message)}var InternalError=undefined;function throwInternalError(message){throw new InternalError(message)}function whenDependentTypesAreResolved(myTypes,dependentTypes,getTypeConverters){myTypes.forEach(function(type){typeDependencies[type]=dependentTypes});function onComplete(typeConverters){var myTypeConverters=getTypeConverters(typeConverters);if(myTypeConverters.length!==myTypes.length){throwInternalError("Mismatched type converter count")}for(var i=0;i>shift])},destructorFunction:null})}function ClassHandle_isAliasOf(other){if(!(this instanceof ClassHandle)){return false}if(!(other instanceof ClassHandle)){return false}var leftClass=this.$$.ptrType.registeredClass;var left=this.$$.ptr;var rightClass=other.$$.ptrType.registeredClass;var right=other.$$.ptr;while(leftClass.baseClass){left=leftClass.upcast(left);leftClass=leftClass.baseClass}while(rightClass.baseClass){right=rightClass.upcast(right);rightClass=rightClass.baseClass}return leftClass===rightClass&&left===right}function shallowCopyInternalPointer(o){return{count:o.count,deleteScheduled:o.deleteScheduled,preservePointerOnDelete:o.preservePointerOnDelete,ptr:o.ptr,ptrType:o.ptrType,smartPtr:o.smartPtr,smartPtrType:o.smartPtrType}}function throwInstanceAlreadyDeleted(obj){function getInstanceTypeName(handle){return handle.$$.ptrType.registeredClass.name}throwBindingError(getInstanceTypeName(obj)+" instance already deleted")}var finalizationGroup=false;function detachFinalizer(handle){}function runDestructor($$){if($$.smartPtr){$$.smartPtrType.rawDestructor($$.smartPtr)}else{$$.ptrType.registeredClass.rawDestructor($$.ptr)}}function releaseClassHandle($$){$$.count.value-=1;var toDelete=0===$$.count.value;if(toDelete){runDestructor($$)}}function attachFinalizer(handle){if("undefined"===typeof FinalizationGroup){attachFinalizer=function(handle){return handle};return handle}finalizationGroup=new FinalizationGroup(function(iter){for(var result=iter.next();!result.done;result=iter.next()){var $$=result.value;if(!$$.ptr){console.warn("object already deleted: "+$$.ptr)}else{releaseClassHandle($$)}}});attachFinalizer=function(handle){finalizationGroup.register(handle,handle.$$,handle.$$);return handle};detachFinalizer=function(handle){finalizationGroup.unregister(handle.$$)};return attachFinalizer(handle)}function ClassHandle_clone(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.preservePointerOnDelete){this.$$.count.value+=1;return this}else{var clone=attachFinalizer(Object.create(Object.getPrototypeOf(this),{$$:{value:shallowCopyInternalPointer(this.$$)}}));clone.$$.count.value+=1;clone.$$.deleteScheduled=false;return clone}}function ClassHandle_delete(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion")}detachFinalizer(this);releaseClassHandle(this.$$);if(!this.$$.preservePointerOnDelete){this.$$.smartPtr=undefined;this.$$.ptr=undefined}}function ClassHandle_isDeleted(){return!this.$$.ptr}var delayFunction=undefined;var deletionQueue=[];function flushPendingDeletes(){while(deletionQueue.length){var obj=deletionQueue.pop();obj.$$.deleteScheduled=false;obj["delete"]()}}function ClassHandle_deleteLater(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion")}deletionQueue.push(this);if(deletionQueue.length===1&&delayFunction){delayFunction(flushPendingDeletes)}this.$$.deleteScheduled=true;return this}function init_ClassHandle(){ClassHandle.prototype["isAliasOf"]=ClassHandle_isAliasOf;ClassHandle.prototype["clone"]=ClassHandle_clone;ClassHandle.prototype["delete"]=ClassHandle_delete;ClassHandle.prototype["isDeleted"]=ClassHandle_isDeleted;ClassHandle.prototype["deleteLater"]=ClassHandle_deleteLater}function ClassHandle(){}var registeredPointers={};function ensureOverloadTable(proto,methodName,humanName){if(undefined===proto[methodName].overloadTable){var prevFunc=proto[methodName];proto[methodName]=function(){if(!proto[methodName].overloadTable.hasOwnProperty(arguments.length)){throwBindingError("Function '"+humanName+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+proto[methodName].overloadTable+")!")}return proto[methodName].overloadTable[arguments.length].apply(this,arguments)};proto[methodName].overloadTable=[];proto[methodName].overloadTable[prevFunc.argCount]=prevFunc}}function exposePublicSymbol(name,value,numArguments){if(Module.hasOwnProperty(name)){if(undefined===numArguments||undefined!==Module[name].overloadTable&&undefined!==Module[name].overloadTable[numArguments]){throwBindingError("Cannot register public name '"+name+"' twice")}ensureOverloadTable(Module,name,name);if(Module.hasOwnProperty(numArguments)){throwBindingError("Cannot register multiple overloads of a function with the same number of arguments ("+numArguments+")!")}Module[name].overloadTable[numArguments]=value}else{Module[name]=value;if(undefined!==numArguments){Module[name].numArguments=numArguments}}}function RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast){this.name=name;this.constructor=constructor;this.instancePrototype=instancePrototype;this.rawDestructor=rawDestructor;this.baseClass=baseClass;this.getActualType=getActualType;this.upcast=upcast;this.downcast=downcast;this.pureVirtualFunctions=[]}function upcastPointer(ptr,ptrClass,desiredClass){while(ptrClass!==desiredClass){if(!ptrClass.upcast){throwBindingError("Expected null or instance of "+desiredClass.name+", got an instance of "+ptrClass.name)}ptr=ptrClass.upcast(ptr);ptrClass=ptrClass.baseClass}return ptr}function constNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError("null is not a valid "+this.name)}return 0}if(!handle.$$){throwBindingError('Cannot pass "'+_embind_repr(handle)+'" as a '+this.name)}if(!handle.$$.ptr){throwBindingError("Cannot pass deleted object as a pointer of type "+this.name)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function genericPointerToWireType(destructors,handle){var ptr;if(handle===null){if(this.isReference){throwBindingError("null is not a valid "+this.name)}if(this.isSmartPointer){ptr=this.rawConstructor();if(destructors!==null){destructors.push(this.rawDestructor,ptr)}return ptr}else{return 0}}if(!handle.$$){throwBindingError('Cannot pass "'+_embind_repr(handle)+'" as a '+this.name)}if(!handle.$$.ptr){throwBindingError("Cannot pass deleted object as a pointer of type "+this.name)}if(!this.isConst&&handle.$$.ptrType.isConst){throwBindingError("Cannot convert argument of type "+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+" to parameter type "+this.name)}var handleClass=handle.$$.ptrType.registeredClass;ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);if(this.isSmartPointer){if(undefined===handle.$$.smartPtr){throwBindingError("Passing raw pointer to smart pointer is illegal")}switch(this.sharingPolicy){case 0:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{throwBindingError("Cannot convert argument of type "+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+" to parameter type "+this.name)}break;case 1:ptr=handle.$$.smartPtr;break;case 2:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{var clonedHandle=handle["clone"]();ptr=this.rawShare(ptr,__emval_register(function(){clonedHandle["delete"]()}));if(destructors!==null){destructors.push(this.rawDestructor,ptr)}}break;default:throwBindingError("Unsupporting sharing policy")}}return ptr}function nonConstNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError("null is not a valid "+this.name)}return 0}if(!handle.$$){throwBindingError('Cannot pass "'+_embind_repr(handle)+'" as a '+this.name)}if(!handle.$$.ptr){throwBindingError("Cannot pass deleted object as a pointer of type "+this.name)}if(handle.$$.ptrType.isConst){throwBindingError("Cannot convert argument of type "+handle.$$.ptrType.name+" to parameter type "+this.name)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function simpleReadValueFromPointer(pointer){return this["fromWireType"](HEAPU32[pointer>>2])}function RegisteredPointer_getPointee(ptr){if(this.rawGetPointee){ptr=this.rawGetPointee(ptr)}return ptr}function RegisteredPointer_destructor(ptr){if(this.rawDestructor){this.rawDestructor(ptr)}}function RegisteredPointer_deleteObject(handle){if(handle!==null){handle["delete"]()}}function downcastPointer(ptr,ptrClass,desiredClass){if(ptrClass===desiredClass){return ptr}if(undefined===desiredClass.baseClass){return null}var rv=downcastPointer(ptr,ptrClass,desiredClass.baseClass);if(rv===null){return null}return desiredClass.downcast(rv)}function getInheritedInstanceCount(){return Object.keys(registeredInstances).length}function getLiveInheritedInstances(){var rv=[];for(var k in registeredInstances){if(registeredInstances.hasOwnProperty(k)){rv.push(registeredInstances[k])}}return rv}function setDelayFunction(fn){delayFunction=fn;if(deletionQueue.length&&delayFunction){delayFunction(flushPendingDeletes)}}function init_embind(){Module["getInheritedInstanceCount"]=getInheritedInstanceCount;Module["getLiveInheritedInstances"]=getLiveInheritedInstances;Module["flushPendingDeletes"]=flushPendingDeletes;Module["setDelayFunction"]=setDelayFunction}var registeredInstances={};function getBasestPointer(class_,ptr){if(ptr===undefined){throwBindingError("ptr should not be undefined")}while(class_.baseClass){ptr=class_.upcast(ptr);class_=class_.baseClass}return ptr}function getInheritedInstance(class_,ptr){ptr=getBasestPointer(class_,ptr);return registeredInstances[ptr]}function makeClassHandle(prototype,record){if(!record.ptrType||!record.ptr){throwInternalError("makeClassHandle requires ptr and ptrType")}var hasSmartPtrType=!!record.smartPtrType;var hasSmartPtr=!!record.smartPtr;if(hasSmartPtrType!==hasSmartPtr){throwInternalError("Both smartPtrType and smartPtr must be specified")}record.count={value:1};return attachFinalizer(Object.create(prototype,{$$:{value:record}}))}function RegisteredPointer_fromWireType(ptr){var rawPointer=this.getPointee(ptr);if(!rawPointer){this.destructor(ptr);return null}var registeredInstance=getInheritedInstance(this.registeredClass,rawPointer);if(undefined!==registeredInstance){if(0===registeredInstance.$$.count.value){registeredInstance.$$.ptr=rawPointer;registeredInstance.$$.smartPtr=ptr;return registeredInstance["clone"]()}else{var rv=registeredInstance["clone"]();this.destructor(ptr);return rv}}function makeDefaultHandle(){if(this.isSmartPointer){return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:rawPointer,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this,ptr:ptr})}}var actualType=this.registeredClass.getActualType(rawPointer);var registeredPointerRecord=registeredPointers[actualType];if(!registeredPointerRecord){return makeDefaultHandle.call(this)}var toType;if(this.isConst){toType=registeredPointerRecord.constPointerType}else{toType=registeredPointerRecord.pointerType}var dp=downcastPointer(rawPointer,this.registeredClass,toType.registeredClass);if(dp===null){return makeDefaultHandle.call(this)}if(this.isSmartPointer){return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp})}}function init_RegisteredPointer(){RegisteredPointer.prototype.getPointee=RegisteredPointer_getPointee;RegisteredPointer.prototype.destructor=RegisteredPointer_destructor;RegisteredPointer.prototype["argPackAdvance"]=8;RegisteredPointer.prototype["readValueFromPointer"]=simpleReadValueFromPointer;RegisteredPointer.prototype["deleteObject"]=RegisteredPointer_deleteObject;RegisteredPointer.prototype["fromWireType"]=RegisteredPointer_fromWireType}function RegisteredPointer(name,registeredClass,isReference,isConst,isSmartPointer,pointeeType,sharingPolicy,rawGetPointee,rawConstructor,rawShare,rawDestructor){this.name=name;this.registeredClass=registeredClass;this.isReference=isReference;this.isConst=isConst;this.isSmartPointer=isSmartPointer;this.pointeeType=pointeeType;this.sharingPolicy=sharingPolicy;this.rawGetPointee=rawGetPointee;this.rawConstructor=rawConstructor;this.rawShare=rawShare;this.rawDestructor=rawDestructor;if(!isSmartPointer&®isteredClass.baseClass===undefined){if(isConst){this["toWireType"]=constNoSmartPtrRawPointerToWireType;this.destructorFunction=null}else{this["toWireType"]=nonConstNoSmartPtrRawPointerToWireType;this.destructorFunction=null}}else{this["toWireType"]=genericPointerToWireType}}function replacePublicSymbol(name,value,numArguments){if(!Module.hasOwnProperty(name)){throwInternalError("Replacing nonexistant public symbol")}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}}function dynCallLegacy(sig,ptr,args){var f=Module["dynCall_"+sig];return args&&args.length?f.apply(null,[ptr].concat(args)):f.call(null,ptr)}function dynCall(sig,ptr,args){if(sig.includes("j")){return dynCallLegacy(sig,ptr,args)}return wasmTable.get(ptr).apply(null,args)}function getDynCaller(sig,ptr){var argCache=[];return function(){argCache.length=arguments.length;for(var i=0;i>2)+i])}return array}function runDestructors(destructors){while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}}function __embind_register_class_constructor(rawClassType,argCount,rawArgTypesAddr,invokerSignature,invoker,rawConstructor){assert(argCount>0);var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);invoker=embind__requireFunction(invokerSignature,invoker);whenDependentTypesAreResolved([],[rawClassType],function(classType){classType=classType[0];var humanName="constructor "+classType.name;if(undefined===classType.registeredClass.constructor_body){classType.registeredClass.constructor_body=[]}if(undefined!==classType.registeredClass.constructor_body[argCount-1]){throw new BindingError("Cannot register multiple constructors with identical number of parameters ("+(argCount-1)+") for class '"+classType.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!")}classType.registeredClass.constructor_body[argCount-1]=function unboundTypeHandler(){throwUnboundTypeError("Cannot construct "+classType.name+" due to unbound types",rawArgTypes)};whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){argTypes.splice(1,0,null);classType.registeredClass.constructor_body[argCount-1]=craftInvokerFunction(humanName,argTypes,null,invoker,rawConstructor);return[]});return[]})}function new_(constructor,argumentList){if(!(constructor instanceof Function)){throw new TypeError("new_ called with constructor type "+typeof constructor+" which is not a function")}var dummy=createNamedFunction(constructor.name||"unknownFunctionName",function(){});dummy.prototype=constructor.prototype;var obj=new dummy;var r=constructor.apply(obj,argumentList);return r instanceof Object?r:obj}function craftInvokerFunction(humanName,argTypes,classType,cppInvokerFunc,cppTargetFunc){var argCount=argTypes.length;if(argCount<2){throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!")}var isClassMethodFunc=argTypes[1]!==null&&classType!==null;var needsDestructorStack=false;for(var i=1;i0?", ":"")+argsListWired}invokerFnBody+=(returns?"var rv = ":"")+"invoker(fn"+(argsListWired.length>0?", ":"")+argsListWired+");\n";if(needsDestructorStack){invokerFnBody+="runDestructors(destructors);\n"}else{for(var i=isClassMethodFunc?1:2;i4&&0===--emval_handle_array[handle].refcount){emval_handle_array[handle]=undefined;emval_free_list.push(handle)}}function count_emval_handles(){var count=0;for(var i=5;i>2])};case 3:return function(pointer){return this["fromWireType"](HEAPF64[pointer>>3])};default:throw new TypeError("Unknown float type: "+name)}}function __embind_register_float(rawType,name,size){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(value){return value},"toWireType":function(destructors,value){if(typeof value!=="number"&&typeof value!=="boolean"){throw new TypeError('Cannot convert "'+_embind_repr(value)+'" to '+this.name)}return value},"argPackAdvance":8,"readValueFromPointer":floatReadValueFromPointer(name,shift),destructorFunction:null})}function integerReadValueFromPointer(name,shift,signed){switch(shift){case 0:return signed?function readS8FromPointer(pointer){return HEAP8[pointer]}:function readU8FromPointer(pointer){return HEAPU8[pointer]};case 1:return signed?function readS16FromPointer(pointer){return HEAP16[pointer>>1]}:function readU16FromPointer(pointer){return HEAPU16[pointer>>1]};case 2:return signed?function readS32FromPointer(pointer){return HEAP32[pointer>>2]}:function readU32FromPointer(pointer){return HEAPU32[pointer>>2]};default:throw new TypeError("Unknown integer type: "+name)}}function __embind_register_integer(primitiveType,name,size,minRange,maxRange){name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var shift=getShiftFromSize(size);var fromWireType=function(value){return value};if(minRange===0){var bitshift=32-8*size;fromWireType=function(value){return value<>>bitshift}}var isUnsignedType=name.includes("unsigned");registerType(primitiveType,{name:name,"fromWireType":fromWireType,"toWireType":function(destructors,value){if(typeof value!=="number"&&typeof value!=="boolean"){throw new TypeError('Cannot convert "'+_embind_repr(value)+'" to '+this.name)}if(valuemaxRange){throw new TypeError('Passing a number "'+_embind_repr(value)+'" from JS side to C/C++ side to an argument of type "'+name+'", which is outside the valid range ['+minRange+", "+maxRange+"]!")}return isUnsignedType?value>>>0:value|0},"argPackAdvance":8,"readValueFromPointer":integerReadValueFromPointer(name,shift,minRange!==0),destructorFunction:null})}function __embind_register_memory_view(rawType,dataTypeIndex,name){var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){handle=handle>>2;var heap=HEAPU32;var size=heap[handle];var data=heap[handle+1];return new TA(buffer,data,size)}name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":decodeMemoryView,"argPackAdvance":8,"readValueFromPointer":decodeMemoryView},{ignoreDuplicateRegistrations:true})}function __embind_register_std_string(rawType,name){name=readLatin1String(name);var stdStringIsUTF8=name==="std::string";registerType(rawType,{name:name,"fromWireType":function(value){var length=HEAPU32[value>>2];var str;if(stdStringIsUTF8){var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i;if(i==length||HEAPU8[currentBytePtr]==0){var maxRead=currentBytePtr-decodeStartPtr;var stringSegment=UTF8ToString(decodeStartPtr,maxRead);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+1}}}else{var a=new Array(length);for(var i=0;i>2]=length;if(stdStringIsUTF8&&valueIsOfTypeString){stringToUTF8(value,ptr+4,length+1)}else{if(valueIsOfTypeString){for(var i=0;i255){_free(ptr);throwBindingError("String has UTF-16 code units that do not fit in 8 bits")}HEAPU8[ptr+4+i]=charCode}}else{for(var i=0;i>2];var HEAP=getHeap();var str;var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i*charSize;if(i==length||HEAP[currentBytePtr>>shift]==0){var maxReadBytes=currentBytePtr-decodeStartPtr;var stringSegment=decodeString(decodeStartPtr,maxReadBytes);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+charSize}}_free(value);return str},"toWireType":function(destructors,value){if(!(typeof value==="string")){throwBindingError("Cannot pass non-string to C++ string type "+name)}var length=lengthBytesUTF(value);var ptr=_malloc(4+length+charSize);HEAPU32[ptr>>2]=length>>shift;encodeString(value,ptr+4,length+charSize);if(destructors!==null){destructors.push(_free,ptr)}return ptr},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:function(ptr){_free(ptr)}})}function __embind_register_void(rawType,name){name=readLatin1String(name);registerType(rawType,{isVoid:true,name:name,"argPackAdvance":0,"fromWireType":function(){return undefined},"toWireType":function(destructors,o){return undefined}})}function _abort(){abort()}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function abortOnCannotGrowMemory(requestedSize){abort("OOM")}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;abortOnCannotGrowMemory(requestedSize)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}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}var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _environ_get(__environ,environ_buf){var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}function _environ_sizes_get(penviron_count,penviron_buf_size){var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];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}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}else{return thisDate.getFullYear()}}else{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"}else{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 janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=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"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}embind_init_charCodes();BindingError=Module["BindingError"]=extendError(Error,"BindingError");InternalError=Module["InternalError"]=extendError(Error,"InternalError");init_ClassHandle();init_RegisteredPointer();init_embind();UnboundTypeError=Module["UnboundTypeError"]=extendError(Error,"UnboundTypeError");init_emval();function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"a":___cxa_allocate_exception,"d":___cxa_throw,"m":__embind_register_bigint,"k":__embind_register_bool,"t":__embind_register_class,"s":__embind_register_class_constructor,"e":__embind_register_class_function,"j":__embind_register_emval,"i":__embind_register_float,"c":__embind_register_integer,"b":__embind_register_memory_view,"g":__embind_register_std_string,"f":__embind_register_std_wstring,"l":__embind_register_void,"h":_abort,"n":_emscripten_memcpy_big,"o":_emscripten_resize_heap,"q":_environ_get,"r":_environ_sizes_get,"p":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["v"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["x"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["y"]).apply(null,arguments)};var ___getTypeName=Module["___getTypeName"]=function(){return(___getTypeName=Module["___getTypeName"]=Module["asm"]["z"]).apply(null,arguments)};var ___embind_register_native_and_builtin_types=Module["___embind_register_native_and_builtin_types"]=function(){return(___embind_register_native_and_builtin_types=Module["___embind_register_native_and_builtin_types"]=Module["asm"]["A"]).apply(null,arguments)};var dynCall_viijii=Module["dynCall_viijii"]=function(){return(dynCall_viijii=Module["dynCall_viijii"]=Module["asm"]["B"]).apply(null,arguments)};var dynCall_iiiiij=Module["dynCall_iiiiij"]=function(){return(dynCall_iiiiij=Module["dynCall_iiiiij"]=Module["asm"]["C"]).apply(null,arguments)};var dynCall_iiiiijj=Module["dynCall_iiiiijj"]=function(){return(dynCall_iiiiijj=Module["dynCall_iiiiijj"]=Module["asm"]["D"]).apply(null,arguments)};var dynCall_iiiiiijj=Module["dynCall_iiiiiijj"]=function(){return(dynCall_iiiiiijj=Module["dynCall_iiiiiijj"]=Module["asm"]["E"]).apply(null,arguments)};var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}run(); diff --git a/src/lib/laz-perf.wasm b/src/lib/laz-perf.wasm deleted file mode 100755 index d31f843732eebaabd780bb6b31a345e71c2247f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 195655 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.9.0, resolve@^1.10.0, resolve@^1.12.0, resolve@^1.18.1: +resolve@>=1.9.0: + version "1.22.8" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" + integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== + dependencies: + is-core-module "^2.13.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +resolve@^1.10.0, resolve@^1.12.0, resolve@^1.18.1: version "1.20.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== @@ -4546,6 +4560,11 @@ supports-hyperlinks@^2.0.0: has-flag "^4.0.0" supports-color "^7.0.0" +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + symbol-tree@^3.2.4: version "3.2.4" resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" @@ -4708,9 +4727,9 @@ tsscmp@1.0.6: integrity sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA== ttypescript@^1.5.13: - version "1.5.13" - resolved "https://registry.yarnpkg.com/ttypescript/-/ttypescript-1.5.13.tgz#c3bcb760599fe49157d30c5d5895a0023cbb7f30" - integrity sha512-KT/RBfGGlVJFqEI8cVvI3nMsmYcFvPSZh8bU0qX+pAwbi7/ABmYkzn7l/K8skw0xmYjVCoyaV6WLsBQxdadybQ== + version "1.5.15" + resolved "https://registry.yarnpkg.com/ttypescript/-/ttypescript-1.5.15.tgz#e45550ad69289d06d3bc3fd4a3c87e7c1ef3eba7" + integrity sha512-48ykDNHzFnPMnv4hYX1P8Q84TvCZyL1QlFxeuxsuZ48X2+ameBgPenvmCkHJtoOSxpoWTWi8NcgNrRnVDOmfSg== dependencies: resolve ">=1.9.0"