@kreuzberg/wasm 4.0.0-rc.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../node_modules/.pnpm/tesseract-wasm@0.11.0/node_modules/tesseract-wasm/dist/lib.js","../../typescript/ocr/tesseract-wasm-backend.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nconst proxyMarker = Symbol(\"Comlink.proxy\");\nconst createEndpoint = Symbol(\"Comlink.endpoint\");\nconst releaseProxy = Symbol(\"Comlink.releaseProxy\");\nconst finalizer = Symbol(\"Comlink.finalizer\");\nconst throwMarker = Symbol(\"Comlink.thrown\");\nconst isObject = (val) => (typeof val === \"object\" && val !== null) || typeof val === \"function\";\n/**\n * Internal transfer handle to handle objects marked to proxy.\n */\nconst proxyTransferHandler = {\n canHandle: (val) => isObject(val) && val[proxyMarker],\n serialize(obj) {\n const { port1, port2 } = new MessageChannel();\n expose(obj, port1);\n return [port2, [port2]];\n },\n deserialize(port) {\n port.start();\n return wrap(port);\n },\n};\n/**\n * Internal transfer handler to handle thrown exceptions.\n */\nconst throwTransferHandler = {\n canHandle: (value) => isObject(value) && throwMarker in value,\n serialize({ value }) {\n let serialized;\n if (value instanceof Error) {\n serialized = {\n isError: true,\n value: {\n message: value.message,\n name: value.name,\n stack: value.stack,\n },\n };\n }\n else {\n serialized = { isError: false, value };\n }\n return [serialized, []];\n },\n deserialize(serialized) {\n if (serialized.isError) {\n throw Object.assign(new Error(serialized.value.message), serialized.value);\n }\n throw serialized.value;\n },\n};\n/**\n * Allows customizing the serialization of certain values.\n */\nconst transferHandlers = new Map([\n [\"proxy\", proxyTransferHandler],\n [\"throw\", throwTransferHandler],\n]);\nfunction isAllowedOrigin(allowedOrigins, origin) {\n for (const allowedOrigin of allowedOrigins) {\n if (origin === allowedOrigin || allowedOrigin === \"*\") {\n return true;\n }\n if (allowedOrigin instanceof RegExp && allowedOrigin.test(origin)) {\n return true;\n }\n }\n return false;\n}\nfunction expose(obj, ep = globalThis, allowedOrigins = [\"*\"]) {\n ep.addEventListener(\"message\", function callback(ev) {\n if (!ev || !ev.data) {\n return;\n }\n if (!isAllowedOrigin(allowedOrigins, ev.origin)) {\n console.warn(`Invalid origin '${ev.origin}' for comlink proxy`);\n return;\n }\n const { id, type, path } = Object.assign({ path: [] }, ev.data);\n const argumentList = (ev.data.argumentList || []).map(fromWireValue);\n let returnValue;\n try {\n const parent = path.slice(0, -1).reduce((obj, prop) => obj[prop], obj);\n const rawValue = path.reduce((obj, prop) => obj[prop], obj);\n switch (type) {\n case \"GET\" /* MessageType.GET */:\n {\n returnValue = rawValue;\n }\n break;\n case \"SET\" /* MessageType.SET */:\n {\n parent[path.slice(-1)[0]] = fromWireValue(ev.data.value);\n returnValue = true;\n }\n break;\n case \"APPLY\" /* MessageType.APPLY */:\n {\n returnValue = rawValue.apply(parent, argumentList);\n }\n break;\n case \"CONSTRUCT\" /* MessageType.CONSTRUCT */:\n {\n const value = new rawValue(...argumentList);\n returnValue = proxy(value);\n }\n break;\n case \"ENDPOINT\" /* MessageType.ENDPOINT */:\n {\n const { port1, port2 } = new MessageChannel();\n expose(obj, port2);\n returnValue = transfer(port1, [port1]);\n }\n break;\n case \"RELEASE\" /* MessageType.RELEASE */:\n {\n returnValue = undefined;\n }\n break;\n default:\n return;\n }\n }\n catch (value) {\n returnValue = { value, [throwMarker]: 0 };\n }\n Promise.resolve(returnValue)\n .catch((value) => {\n return { value, [throwMarker]: 0 };\n })\n .then((returnValue) => {\n const [wireValue, transferables] = toWireValue(returnValue);\n ep.postMessage(Object.assign(Object.assign({}, wireValue), { id }), transferables);\n if (type === \"RELEASE\" /* MessageType.RELEASE */) {\n // detach and deactive after sending release response above.\n ep.removeEventListener(\"message\", callback);\n closeEndPoint(ep);\n if (finalizer in obj && typeof obj[finalizer] === \"function\") {\n obj[finalizer]();\n }\n }\n })\n .catch((error) => {\n // Send Serialization Error To Caller\n const [wireValue, transferables] = toWireValue({\n value: new TypeError(\"Unserializable return value\"),\n [throwMarker]: 0,\n });\n ep.postMessage(Object.assign(Object.assign({}, wireValue), { id }), transferables);\n });\n });\n if (ep.start) {\n ep.start();\n }\n}\nfunction isMessagePort(endpoint) {\n return endpoint.constructor.name === \"MessagePort\";\n}\nfunction closeEndPoint(endpoint) {\n if (isMessagePort(endpoint))\n endpoint.close();\n}\nfunction wrap(ep, target) {\n return createProxy(ep, [], target);\n}\nfunction throwIfProxyReleased(isReleased) {\n if (isReleased) {\n throw new Error(\"Proxy has been released and is not useable\");\n }\n}\nfunction releaseEndpoint(ep) {\n return requestResponseMessage(ep, {\n type: \"RELEASE\" /* MessageType.RELEASE */,\n }).then(() => {\n closeEndPoint(ep);\n });\n}\nconst proxyCounter = new WeakMap();\nconst proxyFinalizers = \"FinalizationRegistry\" in globalThis &&\n new FinalizationRegistry((ep) => {\n const newCount = (proxyCounter.get(ep) || 0) - 1;\n proxyCounter.set(ep, newCount);\n if (newCount === 0) {\n releaseEndpoint(ep);\n }\n });\nfunction registerProxy(proxy, ep) {\n const newCount = (proxyCounter.get(ep) || 0) + 1;\n proxyCounter.set(ep, newCount);\n if (proxyFinalizers) {\n proxyFinalizers.register(proxy, ep, proxy);\n }\n}\nfunction unregisterProxy(proxy) {\n if (proxyFinalizers) {\n proxyFinalizers.unregister(proxy);\n }\n}\nfunction createProxy(ep, path = [], target = function () { }) {\n let isProxyReleased = false;\n const proxy = new Proxy(target, {\n get(_target, prop) {\n throwIfProxyReleased(isProxyReleased);\n if (prop === releaseProxy) {\n return () => {\n unregisterProxy(proxy);\n releaseEndpoint(ep);\n isProxyReleased = true;\n };\n }\n if (prop === \"then\") {\n if (path.length === 0) {\n return { then: () => proxy };\n }\n const r = requestResponseMessage(ep, {\n type: \"GET\" /* MessageType.GET */,\n path: path.map((p) => p.toString()),\n }).then(fromWireValue);\n return r.then.bind(r);\n }\n return createProxy(ep, [...path, prop]);\n },\n set(_target, prop, rawValue) {\n throwIfProxyReleased(isProxyReleased);\n // FIXME: ES6 Proxy Handler `set` methods are supposed to return a\n // boolean. To show good will, we return true asynchronously ¯\\_(ツ)_/¯\n const [value, transferables] = toWireValue(rawValue);\n return requestResponseMessage(ep, {\n type: \"SET\" /* MessageType.SET */,\n path: [...path, prop].map((p) => p.toString()),\n value,\n }, transferables).then(fromWireValue);\n },\n apply(_target, _thisArg, rawArgumentList) {\n throwIfProxyReleased(isProxyReleased);\n const last = path[path.length - 1];\n if (last === createEndpoint) {\n return requestResponseMessage(ep, {\n type: \"ENDPOINT\" /* MessageType.ENDPOINT */,\n }).then(fromWireValue);\n }\n // We just pretend that `bind()` didn’t happen.\n if (last === \"bind\") {\n return createProxy(ep, path.slice(0, -1));\n }\n const [argumentList, transferables] = processArguments(rawArgumentList);\n return requestResponseMessage(ep, {\n type: \"APPLY\" /* MessageType.APPLY */,\n path: path.map((p) => p.toString()),\n argumentList,\n }, transferables).then(fromWireValue);\n },\n construct(_target, rawArgumentList) {\n throwIfProxyReleased(isProxyReleased);\n const [argumentList, transferables] = processArguments(rawArgumentList);\n return requestResponseMessage(ep, {\n type: \"CONSTRUCT\" /* MessageType.CONSTRUCT */,\n path: path.map((p) => p.toString()),\n argumentList,\n }, transferables).then(fromWireValue);\n },\n });\n registerProxy(proxy, ep);\n return proxy;\n}\nfunction myFlat(arr) {\n return Array.prototype.concat.apply([], arr);\n}\nfunction processArguments(argumentList) {\n const processed = argumentList.map(toWireValue);\n return [processed.map((v) => v[0]), myFlat(processed.map((v) => v[1]))];\n}\nconst transferCache = new WeakMap();\nfunction transfer(obj, transfers) {\n transferCache.set(obj, transfers);\n return obj;\n}\nfunction proxy(obj) {\n return Object.assign(obj, { [proxyMarker]: true });\n}\nfunction toWireValue(value) {\n for (const [name, handler] of transferHandlers) {\n if (handler.canHandle(value)) {\n const [serializedValue, transferables] = handler.serialize(value);\n return [\n {\n type: \"HANDLER\" /* WireValueType.HANDLER */,\n name,\n value: serializedValue,\n },\n transferables,\n ];\n }\n }\n return [\n {\n type: \"RAW\" /* WireValueType.RAW */,\n value,\n },\n transferCache.get(value) || [],\n ];\n}\nfunction fromWireValue(value) {\n switch (value.type) {\n case \"HANDLER\" /* WireValueType.HANDLER */:\n return transferHandlers.get(value.name).deserialize(value.value);\n case \"RAW\" /* WireValueType.RAW */:\n return value.value;\n }\n}\nfunction requestResponseMessage(ep, msg, transfers) {\n return new Promise((resolve) => {\n const id = generateUUID();\n ep.addEventListener(\"message\", function l(ev) {\n if (!ev.data || !ev.data.id || ev.data.id !== id) {\n return;\n }\n ep.removeEventListener(\"message\", l);\n resolve(ev.data);\n });\n if (ep.start) {\n ep.start();\n }\n ep.postMessage(Object.assign({ id }, msg), transfers);\n });\n}\nfunction generateUUID() {\n return new Array(4)\n .fill(0)\n .map(() => Math.floor(Math.random() * Number.MAX_SAFE_INTEGER).toString(16))\n .join(\"-\");\n}\n\n/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nfunction nodeEndpoint(nep) {\n const listeners = new WeakMap();\n return {\n postMessage: nep.postMessage.bind(nep),\n addEventListener: (_, eh) => {\n const l = (data) => {\n if (\"handleEvent\" in eh) {\n eh.handleEvent({ data });\n }\n else {\n eh({ data });\n }\n };\n nep.on(\"message\", l);\n listeners.set(eh, l);\n },\n removeEventListener: (_, eh) => {\n const l = listeners.get(eh);\n if (!l) {\n return;\n }\n nep.off(\"message\", l);\n listeners.delete(eh);\n },\n start: nep.start && nep.start.bind(nep),\n };\n}\n\n/**\n * Extract the pixel data from an ImageBitmap.\n */\nfunction imageDataFromBitmap(bitmap) {\n let canvas;\n if (typeof OffscreenCanvas !== \"undefined\") {\n // @ts-expect-error - OffscreenCanvas API is missing\n canvas = new OffscreenCanvas(bitmap.width, bitmap.height);\n }\n else if (typeof HTMLCanvasElement !== \"undefined\") {\n const canvasEl = document.createElement(\"canvas\");\n canvasEl.width = bitmap.width;\n canvasEl.height = bitmap.height;\n canvas = canvasEl;\n }\n else {\n throw new Error(\"No canvas implementation available\");\n }\n const context = canvas.getContext(\"2d\");\n context.drawImage(bitmap, 0, 0, bitmap.width, bitmap.height);\n return context.getImageData(0, 0, bitmap.width, bitmap.height);\n}\n\nfunction defaultWorkerURL() {\n return new URL(\"./tesseract-worker.js\", import.meta.url).href;\n}\nfunction createWebWorker(url) {\n return new Worker(url);\n}\n/**\n * High-level async API for performing document image layout analysis and\n * OCR.\n *\n * In the browser, this class can be constructed directly. In Node, use the\n * `createOCRClient` helper from `node-worker.js`.\n */\nclass OCRClient {\n /**\n * Initialize an OCR engine.\n *\n * This will start a Worker in which the OCR operations will actually be\n * performed.\n *\n */\n constructor({ createWorker = createWebWorker, wasmBinary, workerURL = defaultWorkerURL(), } = {}) {\n const worker = createWorker(workerURL);\n this._worker = worker;\n this._progressListeners = [];\n const endpoint = \"addEventListener\" in worker ? worker : nodeEndpoint(worker);\n const remote = wrap(endpoint);\n // Create a channel for the worker to send us progress updates during\n // operations. We use a separate channel instead of following comlink's\n // recommended recipe for callback arguments for two reasons:\n //\n // 1. If using `comlink.proxy(callback)`, event listeners get added to the\n // MessagePort each time the callback is invoked and removed when the\n // MessagePort receives a \"message\" response. If the callback is triggered\n // many times in one event loop turn, this will trigger warnings from\n // Node about having too many listeners. It is also quite inefficient.\n //\n // 2. Firefox has an issue where messages sent on a newly received port are\n // not dispatched until the next event loop turn. This means that we\n // need to send the port to the worker ahead of time.\n // I think https://bugzilla.mozilla.org/show_bug.cgi?id=1752287 is\n // relevant.\n const { port1, port2 } = new MessageChannel();\n this._progressChannel = port1;\n this._progressChannel.onmessage = (e) => {\n // We ought to have some mechanism to dispatch an update only to\n // applicable listeners. In typical usage there will only be one expensive\n // operation happening at a time for an OCRClient instance (OCR of the\n // currently loaded image), so we can get away with just notifying all\n // registered listeners.\n const { progress } = e.data;\n for (let listener of this._progressListeners) {\n listener(progress);\n }\n };\n this._ocrEngine = remote.createOCREngine({\n wasmBinary,\n }, transfer(port2, [port2]));\n }\n async destroy() {\n this._worker.terminate();\n this._progressChannel.close();\n }\n /**\n * Load a trained model for a specific language. This can be specified either\n * as a URL to fetch or a buffer containing an already-loaded model.\n */\n async loadModel(model) {\n const engine = await this._ocrEngine;\n if (typeof model === \"string\") {\n const response = await fetch(model);\n model = await response.arrayBuffer();\n }\n return engine.loadModel(model);\n }\n /**\n * Load an image into the OCR engine for processing.\n */\n async loadImage(image) {\n // Convert ImageBitmap to ImageData. In browsers that don't support\n // OffscreenCanvas (Firefox and Safari as of 2022-06) we have to do this\n // on the main thread using a canvas. In Chrome, we still do this on the\n // main thread but using OffscreenCanvas, to work around an issue with\n // rotation information being lost. See\n // https://bugs.chromium.org/p/chromium/issues/detail?id=1332947.\n if (typeof ImageBitmap !== \"undefined\" && image instanceof ImageBitmap) {\n image = imageDataFromBitmap(image);\n }\n const engine = await this._ocrEngine;\n return engine.loadImage(image);\n }\n /**\n * Clear the current image and text recognition results.\n *\n * This will clear the loaded image data internally, but keep the text\n * recognition model loaded.\n *\n * At present there is no way to shrink WebAssembly memory, so this will not\n * return the memory used by the image to the OS/browser. To release memory,\n * the web worker needs to be shut down via {@link destroy}.\n */\n async clearImage() {\n const engine = await this._ocrEngine;\n return engine.clearImage();\n }\n /**\n * Perform layout analysis on the current image, if not already done, and\n * return bounding boxes for a given unit of text.\n *\n * This operation is relatively cheap compared to text recognition, so can\n * provide much faster results if only the location of lines/words etc. on\n * the page is required, not the text content.\n */\n async getBoundingBoxes(unit) {\n const engine = await this._ocrEngine;\n return engine.getBoundingBoxes(unit);\n }\n /**\n * Perform layout analysis and text recognition on the current image, if\n * not already done, and return bounding boxes and text content for a given\n * unit of text.\n */\n async getTextBoxes(unit, onProgress) {\n const engine = await this._ocrEngine;\n if (onProgress) {\n this._addProgressListener(onProgress);\n }\n try {\n return await engine.getTextBoxes(unit);\n }\n finally {\n if (onProgress) {\n this._removeProgressListener(onProgress);\n }\n }\n }\n /**\n * Perform layout analysis and text recognition on the current image, if\n * not already done, and return the image's text as a string.\n */\n async getText(onProgress) {\n const engine = await this._ocrEngine;\n if (onProgress) {\n this._addProgressListener(onProgress);\n }\n try {\n return await engine.getText();\n }\n finally {\n if (onProgress) {\n this._removeProgressListener(onProgress);\n }\n }\n }\n /**\n * Perform layout analysis and text recognition on the current image, if\n * not already done, and return the image's text in hOCR format (see\n * https://en.wikipedia.org/wiki/HOCR).\n */\n async getHOCR(onProgress) {\n const engine = await this._ocrEngine;\n if (onProgress) {\n this._addProgressListener(onProgress);\n }\n try {\n return await engine.getHOCR();\n }\n finally {\n if (onProgress) {\n this._removeProgressListener(onProgress);\n }\n }\n }\n /**\n * Attempt to determine the orientation of the image.\n *\n * This currently uses a simplistic algorithm [1] which is designed for\n * non-uppercase Latin text. It will likely perform badly for other scripts or\n * if the text is all uppercase.\n *\n * [1] See http://www.leptonica.org/papers/skew-measurement.pdf\n */\n async getOrientation() {\n const engine = await this._ocrEngine;\n return engine.getOrientation();\n }\n _addProgressListener(listener) {\n this._progressListeners.push(listener);\n }\n _removeProgressListener(listener) {\n this._progressListeners = this._progressListeners.filter((l) => l !== listener);\n }\n}\n\nvar Module = (() => {\n var _scriptDir = import.meta.url;\n \n return (\nfunction(Module = {}) {\n\nvar Module=typeof Module!=\"undefined\"?Module:{};var readyPromiseResolve,readyPromiseReject;Module[\"ready\"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject;});var moduleOverrides=Object.assign({},Module);var thisProgram=\"./this.program\";var ENVIRONMENT_IS_WEB=true;var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var readBinary;{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=\"\";}}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\"])Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])Module[\"quit\"];var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];Module[\"noExitRuntime\"]||true;if(typeof WebAssembly!=\"object\"){abort(\"no native wasm support detected\");}var wasmMemory;var ABORT=false;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<endPtr){var u0=heapOrArray[idx++];if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heapOrArray[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heapOrArray[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2;}else {u0=(u0&7)<<18|u1<<12|u2<<6|heapOrArray[idx++]&63;}if(u0<65536){str+=String.fromCharCode(u0);}else {var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023);}}return str}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<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023;}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u;}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63;}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63;}else {if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63;}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i<str.length;++i){var c=str.charCodeAt(i);if(c<=127){len++;}else if(c<=2047){len+=2;}else if(c>=55296&&c<=57343){len+=4;++i;}else {len+=3;}}return len}var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateMemoryViews(){var b=wasmMemory.buffer;Module[\"HEAP8\"]=HEAP8=new Int8Array(b);Module[\"HEAP16\"]=HEAP16=new Int16Array(b);Module[\"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);}var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];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(){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 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(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback();}}}function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what);}what=\"Aborted(\"+what+\")\";err(what);ABORT=true;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)}var wasmBinaryFile;if(Module[\"locateFile\"]){wasmBinaryFile=\"tesseract-core.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile);}}else {wasmBinaryFile=new URL(\"tesseract-core.wasm\",import.meta.url).href;}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary);throw \"both async and sync fetching of the wasm failed\"}catch(err){abort(err);}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB)){if(typeof fetch==\"function\"){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw \"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary(wasmBinaryFile)})}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={\"a\":wasmImports};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmMemory=Module[\"asm\"][\"U\"];updateMemoryViews();wasmTable=Module[\"asm\"][\"X\"];addOnInit(Module[\"asm\"][\"V\"]);removeRunDependency();}addRunDependency();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)&&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);readyPromiseReject(e);}}instantiateAsync().catch(readyPromiseReject);return {}}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){callbacks.shift()(Module);}}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};}function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);throw ptr}function ___syscall_fcntl64(fd,cmd,varargs){return 0}function ___syscall_getcwd(buf,size){}function ___syscall_ioctl(fd,op,varargs){return 0}function ___syscall_openat(dirfd,path,flags,varargs){}function ___syscall_rmdir(path){}function ___syscall_unlinkat(dirfd,path,flags){}var structRegistrations={};function runDestructors(destructors){while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr);}}function simpleReadValueFromPointer(pointer){return this[\"fromWireType\"](HEAP32[pointer>>2])}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}return name}function createNamedFunction(name,body){name=makeLegalFunctionName(name);return function(){return body.apply(this,arguments)}}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 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<myTypes.length;++i){registerType(myTypes[i],myTypeConverters[i]);}}var typeConverters=new Array(dependentTypes.length);var unregisteredTypes=[];var registered=0;dependentTypes.forEach((dt,i)=>{if(registeredTypes.hasOwnProperty(dt)){typeConverters[i]=registeredTypes[dt];}else {unregisteredTypes.push(dt);if(!awaitingDependencies.hasOwnProperty(dt)){awaitingDependencies[dt]=[];}awaitingDependencies[dt].push(()=>{typeConverters[i]=registeredTypes[dt];++registered;if(registered===unregisteredTypes.length){onComplete(typeConverters);}});}});if(0===unregisteredTypes.length){onComplete(typeConverters);}}function __embind_finalize_value_object(structType){var reg=structRegistrations[structType];delete structRegistrations[structType];var rawConstructor=reg.rawConstructor;var rawDestructor=reg.rawDestructor;var fieldRecords=reg.fields;var fieldTypes=fieldRecords.map(field=>field.getterReturnType).concat(fieldRecords.map(field=>field.setterArgumentType));whenDependentTypesAreResolved([structType],fieldTypes,fieldTypes=>{var fields={};fieldRecords.forEach((field,i)=>{var fieldName=field.fieldName;var getterReturnType=fieldTypes[i];var getter=field.getter;var getterContext=field.getterContext;var setterArgumentType=fieldTypes[i+fieldRecords.length];var setter=field.setter;var setterContext=field.setterContext;fields[fieldName]={read:ptr=>{return getterReturnType[\"fromWireType\"](getter(getterContext,ptr))},write:(ptr,o)=>{var destructors=[];setter(setterContext,ptr,setterArgumentType[\"toWireType\"](destructors,o));runDestructors(destructors);}};});return [{name:reg.name,\"fromWireType\":function(ptr){var rv={};for(var i in fields){rv[i]=fields[i].read(ptr);}rawDestructor(ptr);return rv},\"toWireType\":function(destructors,o){for(var fieldName in fields){if(!(fieldName in o)){throw new TypeError('Missing field: \"'+fieldName+'\"')}}var ptr=rawConstructor();for(fieldName in fields){fields[fieldName].write(ptr,o[fieldName]);}if(destructors!==null){destructors.push(rawDestructor,ptr);}return ptr},\"argPackAdvance\":8,\"readValueFromPointer\":simpleReadValueFromPointer,destructorFunction:rawDestructor}]});}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 BindingError=undefined;function throwBindingError(message){throw new BindingError(message)}function registerType(rawType,registeredInstance,options={}){if(!(\"argPackAdvance\"in registeredInstance)){throw new TypeError(\"registerType registeredInstance requires argPackAdvance\")}var name=registeredInstance.name;if(!rawType){throwBindingError('type \"'+name+'\" must have a positive integer typeid pointer');}if(registeredTypes.hasOwnProperty(rawType)){if(options.ignoreDuplicateRegistrations){return}else {throwBindingError(\"Cannot register type '\"+name+\"' twice\");}}registeredTypes[rawType]=registeredInstance;delete typeDependencies[rawType];if(awaitingDependencies.hasOwnProperty(rawType)){var callbacks=awaitingDependencies[rawType];delete awaitingDependencies[rawType];callbacks.forEach(cb=>cb());}}function __embind_register_bool(rawType,name,size,trueValue,falseValue){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,\"fromWireType\":function(wt){return !!wt},\"toWireType\":function(destructors,o){return o?trueValue:falseValue},\"argPackAdvance\":8,\"readValueFromPointer\":function(pointer){var heap;if(size===1){heap=HEAP8;}else if(size===2){heap=HEAP16;}else if(size===4){heap=HEAP32;}else {throw new TypeError(\"Unknown boolean type size: \"+name)}return this[\"fromWireType\"](heap[pointer>>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 finalizationRegistry=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 downcastPointer(ptr,ptrClass,desiredClass){if(ptrClass===desiredClass){return ptr}if(undefined===desiredClass.baseClass){return null}var rv=downcastPointer(ptr,ptrClass,desiredClass.baseClass);if(rv===null){return null}return desiredClass.downcast(rv)}var registeredPointers={};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}var deletionQueue=[];function flushPendingDeletes(){while(deletionQueue.length){var obj=deletionQueue.pop();obj.$$.deleteScheduled=false;obj[\"delete\"]();}}var delayFunction=undefined;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 attachFinalizer(handle){if(\"undefined\"===typeof FinalizationRegistry){attachFinalizer=handle=>handle;return handle}finalizationRegistry=new FinalizationRegistry(info=>{releaseClassHandle(info.$$);});attachFinalizer=handle=>{var $$=handle.$$;var hasSmartPtr=!!$$.smartPtr;if(hasSmartPtr){var info={$$:$$};finalizationRegistry.register(handle,info,handle);}return handle};detachFinalizer=handle=>finalizationRegistry.unregister(handle);return attachFinalizer(handle)}function ClassHandle_clone(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this);}if(this.$$.preservePointerOnDelete){this.$$.count.value+=1;return this}else {var clone=attachFinalizer(Object.create(Object.getPrototypeOf(this),{$$:{value:shallowCopyInternalPointer(this.$$)}}));clone.$$.count.value+=1;clone.$$.deleteScheduled=false;return clone}}function ClassHandle_delete(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this);}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError(\"Object already scheduled for deletion\");}detachFinalizer(this);releaseClassHandle(this.$$);if(!this.$$.preservePointerOnDelete){this.$$.smartPtr=undefined;this.$$.ptr=undefined;}}function ClassHandle_isDeleted(){return !this.$$.ptr}function ClassHandle_deleteLater(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this);}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError(\"Object already scheduled for deletion\");}deletionQueue.push(this);if(deletionQueue.length===1&&delayFunction){delayFunction(flushPendingDeletes);}this.$$.deleteScheduled=true;return this}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(){}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 \"'+embindRepr(handle)+'\" as a '+this.name);}if(!handle.$$.ptr){throwBindingError(\"Cannot pass deleted object as a pointer of type \"+this.name);}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function genericPointerToWireType(destructors,handle){var ptr;if(handle===null){if(this.isReference){throwBindingError(\"null is not a valid \"+this.name);}if(this.isSmartPointer){ptr=this.rawConstructor();if(destructors!==null){destructors.push(this.rawDestructor,ptr);}return ptr}else {return 0}}if(!handle.$$){throwBindingError('Cannot pass \"'+embindRepr(handle)+'\" as a '+this.name);}if(!handle.$$.ptr){throwBindingError(\"Cannot pass deleted object as a pointer of type \"+this.name);}if(!this.isConst&&handle.$$.ptrType.isConst){throwBindingError(\"Cannot convert argument of type \"+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+\" to parameter type \"+this.name);}var handleClass=handle.$$.ptrType.registeredClass;ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);if(this.isSmartPointer){if(undefined===handle.$$.smartPtr){throwBindingError(\"Passing raw pointer to smart pointer is illegal\");}switch(this.sharingPolicy){case 0:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr;}else {throwBindingError(\"Cannot convert argument of type \"+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+\" to parameter type \"+this.name);}break;case 1:ptr=handle.$$.smartPtr;break;case 2:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr;}else {var clonedHandle=handle[\"clone\"]();ptr=this.rawShare(ptr,Emval.toHandle(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 \"'+embindRepr(handle)+'\" as a '+this.name);}if(!handle.$$.ptr){throwBindingError(\"Cannot pass deleted object as a pointer of type \"+this.name);}if(handle.$$.ptrType.isConst){throwBindingError(\"Cannot convert argument of type \"+handle.$$.ptrType.name+\" to parameter type \"+this.name);}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function 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 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&&registeredClass.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 getWasmTableEntry(funcPtr){return wasmTable.get(funcPtr)}function dynCall(sig,ptr,args){if(sig.includes(\"j\")){return dynCallLegacy(sig,ptr,args)}var rtn=getWasmTableEntry(ptr).apply(null,args);return rtn}function getDynCaller(sig,ptr){var argCache=[];return function(){argCache.length=0;Object.assign(argCache,arguments);return dynCall(sig,ptr,argCache)}}function embind__requireFunction(signature,rawFunction){signature=readLatin1String(signature);function makeDynCaller(){if(signature.includes(\"j\")){return getDynCaller(signature,rawFunction)}return getWasmTableEntry(rawFunction)}var fp=makeDynCaller();if(typeof fp!=\"function\"){throwBindingError(\"unknown function pointer with signature \"+signature+\": \"+rawFunction);}return fp}var UnboundTypeError=undefined;function getTypeName(type){var ptr=___getTypeName(type);var rv=readLatin1String(ptr);_free(ptr);return rv}function throwUnboundTypeError(message,types){var unboundTypes=[];var seen={};function visit(type){if(seen[type]){return}if(registeredTypes[type]){return}if(typeDependencies[type]){typeDependencies[type].forEach(visit);return}unboundTypes.push(type);seen[type]=true;}types.forEach(visit);throw new UnboundTypeError(message+\": \"+unboundTypes.map(getTypeName).join([\", \"]))}function __embind_register_class(rawType,rawPointerType,rawConstPointerType,baseClassRawType,getActualTypeSignature,getActualType,upcastSignature,upcast,downcastSignature,downcast,name,destructorSignature,rawDestructor){name=readLatin1String(name);getActualType=embind__requireFunction(getActualTypeSignature,getActualType);if(upcast){upcast=embind__requireFunction(upcastSignature,upcast);}if(downcast){downcast=embind__requireFunction(downcastSignature,downcast);}rawDestructor=embind__requireFunction(destructorSignature,rawDestructor);var legalFunctionName=makeLegalFunctionName(name);exposePublicSymbol(legalFunctionName,function(){throwUnboundTypeError(\"Cannot construct \"+name+\" due to unbound types\",[baseClassRawType]);});whenDependentTypesAreResolved([rawType,rawPointerType,rawConstPointerType],baseClassRawType?[baseClassRawType]:[],function(base){base=base[0];var baseClass;var basePrototype;if(baseClassRawType){baseClass=base.registeredClass;basePrototype=baseClass.instancePrototype;}else {basePrototype=ClassHandle.prototype;}var constructor=createNamedFunction(legalFunctionName,function(){if(Object.getPrototypeOf(this)!==instancePrototype){throw new BindingError(\"Use 'new' to construct \"+name)}if(undefined===registeredClass.constructor_body){throw new BindingError(name+\" has no accessible constructor\")}var body=registeredClass.constructor_body[arguments.length];if(undefined===body){throw new BindingError(\"Tried to invoke ctor of \"+name+\" with invalid number of parameters (\"+arguments.length+\") - expected (\"+Object.keys(registeredClass.constructor_body).toString()+\") parameters instead!\")}return body.apply(this,arguments)});var instancePrototype=Object.create(basePrototype,{constructor:{value:constructor}});constructor.prototype=instancePrototype;var registeredClass=new RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast);var referenceConverter=new RegisteredPointer(name,registeredClass,true,false,false);var pointerConverter=new RegisteredPointer(name+\"*\",registeredClass,false,false,false);var constPointerConverter=new RegisteredPointer(name+\" const*\",registeredClass,false,true,false);registeredPointers[rawType]={pointerType:pointerConverter,constPointerType:constPointerConverter};replacePublicSymbol(legalFunctionName,constructor);return [referenceConverter,pointerConverter,constPointerConverter]});}function heap32VectorToArray(count,firstElement){var array=[];for(var i=0;i<count;i++){array.push(HEAPU32[firstElement+i*4>>2]);}return array}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;i<argTypes.length;++i){if(argTypes[i]!==null&&argTypes[i].destructorFunction===undefined){needsDestructorStack=true;break}}var returns=argTypes[0].name!==\"void\";var expectedArgCount=argCount-2;var argsWired=new Array(expectedArgCount);var invokerFuncArgs=[];var destructors=[];return function(){if(arguments.length!==expectedArgCount){throwBindingError(\"function \"+humanName+\" called with \"+arguments.length+\" arguments, expected \"+expectedArgCount+\" args!\");}destructors.length=0;var thisWired;invokerFuncArgs.length=isClassMethodFunc?2:1;invokerFuncArgs[0]=cppTargetFunc;if(isClassMethodFunc){thisWired=argTypes[1][\"toWireType\"](destructors,this);invokerFuncArgs[1]=thisWired;}for(var i=0;i<expectedArgCount;++i){argsWired[i]=argTypes[i+2][\"toWireType\"](destructors,arguments[i]);invokerFuncArgs.push(argsWired[i]);}var rv=cppInvokerFunc.apply(null,invokerFuncArgs);function onDone(rv){if(needsDestructorStack){runDestructors(destructors);}else {for(var i=isClassMethodFunc?1:2;i<argTypes.length;i++){var param=i===1?thisWired:argsWired[i-2];if(argTypes[i].destructorFunction!==null){argTypes[i].destructorFunction(param);}}}if(returns){return argTypes[0][\"fromWireType\"](rv)}}return onDone(rv)}}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]=()=>{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 __embind_register_class_function(rawClassType,methodName,argCount,rawArgTypesAddr,invokerSignature,rawInvoker,context,isPureVirtual){var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);methodName=readLatin1String(methodName);rawInvoker=embind__requireFunction(invokerSignature,rawInvoker);whenDependentTypesAreResolved([],[rawClassType],function(classType){classType=classType[0];var humanName=classType.name+\".\"+methodName;if(methodName.startsWith(\"@@\")){methodName=Symbol[methodName.substring(2)];}if(isPureVirtual){classType.registeredClass.pureVirtualFunctions.push(methodName);}function unboundTypesHandler(){throwUnboundTypeError(\"Cannot call \"+humanName+\" due to unbound types\",rawArgTypes);}var proto=classType.registeredClass.instancePrototype;var method=proto[methodName];if(undefined===method||undefined===method.overloadTable&&method.className!==classType.name&&method.argCount===argCount-2){unboundTypesHandler.argCount=argCount-2;unboundTypesHandler.className=classType.name;proto[methodName]=unboundTypesHandler;}else {ensureOverloadTable(proto,methodName,humanName);proto[methodName].overloadTable[argCount-2]=unboundTypesHandler;}whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){var memberFunction=craftInvokerFunction(humanName,argTypes,classType,rawInvoker,context);if(undefined===proto[methodName].overloadTable){memberFunction.argCount=argCount-2;proto[methodName]=memberFunction;}else {proto[methodName].overloadTable[argCount-2]=memberFunction;}return []});return []});}var emval_free_list=[];var emval_handle_array=[{},{value:undefined},{value:null},{value:true},{value:false}];function __emval_decref(handle){if(handle>4&&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<emval_handle_array.length;++i){if(emval_handle_array[i]!==undefined){++count;}}return count}function get_first_emval(){for(var i=5;i<emval_handle_array.length;++i){if(emval_handle_array[i]!==undefined){return emval_handle_array[i]}}return null}function init_emval(){Module[\"count_emval_handles\"]=count_emval_handles;Module[\"get_first_emval\"]=get_first_emval;}var Emval={toValue:handle=>{if(!handle){throwBindingError(\"Cannot use deleted val. handle = \"+handle);}return emval_handle_array[handle].value},toHandle:value=>{switch(value){case undefined:return 1;case null:return 2;case true:return 3;case false:return 4;default:{var handle=emval_free_list.length?emval_free_list.pop():emval_handle_array.length;emval_handle_array[handle]={refcount:1,value:value};return handle}}}};function __embind_register_emval(rawType,name){name=readLatin1String(name);registerType(rawType,{name:name,\"fromWireType\":function(handle){var rv=Emval.toValue(handle);__emval_decref(handle);return rv},\"toWireType\":function(destructors,value){return Emval.toHandle(value)},\"argPackAdvance\":8,\"readValueFromPointer\":simpleReadValueFromPointer,destructorFunction:null});}function enumReadValueFromPointer(name,shift,signed){switch(shift){case 0:return function(pointer){var heap=signed?HEAP8:HEAPU8;return this[\"fromWireType\"](heap[pointer])};case 1:return function(pointer){var heap=signed?HEAP16:HEAPU16;return this[\"fromWireType\"](heap[pointer>>1])};case 2:return function(pointer){var heap=signed?HEAP32:HEAPU32;return this[\"fromWireType\"](heap[pointer>>2])};default:throw new TypeError(\"Unknown integer type: \"+name)}}function __embind_register_enum(rawType,name,size,isSigned){var shift=getShiftFromSize(size);name=readLatin1String(name);function ctor(){}ctor.values={};registerType(rawType,{name:name,constructor:ctor,\"fromWireType\":function(c){return this.constructor.values[c]},\"toWireType\":function(destructors,c){return c.value},\"argPackAdvance\":8,\"readValueFromPointer\":enumReadValueFromPointer(name,shift,isSigned),destructorFunction:null});exposePublicSymbol(name,ctor);}function requireRegisteredType(rawType,humanName){var impl=registeredTypes[rawType];if(undefined===impl){throwBindingError(humanName+\" has unknown type \"+getTypeName(rawType));}return impl}function __embind_register_enum_value(rawEnumType,name,enumValue){var enumType=requireRegisteredType(rawEnumType,\"enum\");name=readLatin1String(name);var Enum=enumType.constructor;var Value=Object.create(enumType.constructor.prototype,{value:{value:enumValue},constructor:{value:createNamedFunction(enumType.name+\"_\"+name,function(){})}});Enum.values[enumValue]=Value;Enum[name]=Value;}function embindRepr(v){if(v===null){return \"null\"}var t=typeof v;if(t===\"object\"||t===\"array\"||t===\"function\"){return v.toString()}else {return \"\"+v}}function floatReadValueFromPointer(name,shift){switch(shift){case 2:return function(pointer){return this[\"fromWireType\"](HEAPF32[pointer>>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){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);var shift=getShiftFromSize(size);var fromWireType=value=>value;if(minRange===0){var bitshift=32-8*size;fromWireType=value=>value<<bitshift>>>bitshift;}var isUnsignedType=name.includes(\"unsigned\");var checkAssertions=(value,toTypeName)=>{};var toWireType;if(isUnsignedType){toWireType=function(destructors,value){checkAssertions(value,this.name);return value>>>0};}else {toWireType=function(destructors,value){checkAssertions(value,this.name);return value};}registerType(primitiveType,{name:name,\"fromWireType\":fromWireType,\"toWireType\":toWireType,\"argPackAdvance\":8,\"readValueFromPointer\":integerReadValueFromPointer(name,shift,minRange!==0),destructorFunction:null});}function __embind_register_memory_view(rawType,dataTypeIndex,name){var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){handle=handle>>2;var heap=HEAPU32;var size=heap[handle];var data=heap[handle+1];return new TA(heap.buffer,data,size)}name=readLatin1String(name);registerType(rawType,{name:name,\"fromWireType\":decodeMemoryView,\"argPackAdvance\":8,\"readValueFromPointer\":decodeMemoryView},{ignoreDuplicateRegistrations:true});}function __embind_register_std_string(rawType,name){name=readLatin1String(name);var stdStringIsUTF8=name===\"std::string\";registerType(rawType,{name:name,\"fromWireType\":function(value){var length=HEAPU32[value>>2];var payload=value+4;var str;if(stdStringIsUTF8){var decodeStartPtr=payload;for(var i=0;i<=length;++i){var currentBytePtr=payload+i;if(i==length||HEAPU8[currentBytePtr]==0){var maxRead=currentBytePtr-decodeStartPtr;var stringSegment=UTF8ToString(decodeStartPtr,maxRead);if(str===undefined){str=stringSegment;}else {str+=String.fromCharCode(0);str+=stringSegment;}decodeStartPtr=currentBytePtr+1;}}}else {var a=new Array(length);for(var i=0;i<length;++i){a[i]=String.fromCharCode(HEAPU8[payload+i]);}str=a.join(\"\");}_free(value);return str},\"toWireType\":function(destructors,value){if(value instanceof ArrayBuffer){value=new Uint8Array(value);}var length;var valueIsOfTypeString=typeof value==\"string\";if(!(valueIsOfTypeString||value instanceof Uint8Array||value instanceof Uint8ClampedArray||value instanceof Int8Array)){throwBindingError(\"Cannot pass non-string to std::string\");}if(stdStringIsUTF8&&valueIsOfTypeString){length=lengthBytesUTF8(value);}else {length=value.length;}var base=_malloc(4+length+1);var ptr=base+4;HEAPU32[base>>2]=length;if(stdStringIsUTF8&&valueIsOfTypeString){stringToUTF8(value,ptr,length+1);}else {if(valueIsOfTypeString){for(var i=0;i<length;++i){var charCode=value.charCodeAt(i);if(charCode>255){_free(ptr);throwBindingError(\"String has UTF-16 code units that do not fit in 8 bits\");}HEAPU8[ptr+i]=charCode;}}else {for(var i=0;i<length;++i){HEAPU8[ptr+i]=value[i];}}}if(destructors!==null){destructors.push(_free,base);}return base},\"argPackAdvance\":8,\"readValueFromPointer\":simpleReadValueFromPointer,destructorFunction:function(ptr){_free(ptr);}});}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));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<str.length*2?maxBytesToWrite/2:str.length;for(var i=0;i<numCharsToWrite;++i){var codeUnit=str.charCodeAt(i);HEAP16[outPtr>>1]=codeUnit;outPtr+=2;}HEAP16[outPtr>>1]=0;return outPtr-startPtr}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<str.length;++i){var codeUnit=str.charCodeAt(i);if(codeUnit>=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023;}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr}function lengthBytesUTF32(str){var len=0;for(var i=0;i<str.length;++i){var codeUnit=str.charCodeAt(i);if(codeUnit>=55296&&codeUnit<=57343)++i;len+=4;}return len}function __embind_register_std_wstring(rawType,charSize,name){name=readLatin1String(name);var decodeString,encodeString,getHeap,lengthBytesUTF,shift;if(charSize===2){decodeString=UTF16ToString;encodeString=stringToUTF16;lengthBytesUTF=lengthBytesUTF16;getHeap=()=>HEAPU16;shift=1;}else if(charSize===4){decodeString=UTF32ToString;encodeString=stringToUTF32;lengthBytesUTF=lengthBytesUTF32;getHeap=()=>HEAPU32;shift=2;}registerType(rawType,{name:name,\"fromWireType\":function(value){var length=HEAPU32[value>>2];var HEAP=getHeap();var str;var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i*charSize;if(i==length||HEAP[currentBytePtr>>shift]==0){var maxReadBytes=currentBytePtr-decodeStartPtr;var stringSegment=decodeString(decodeStartPtr,maxReadBytes);if(str===undefined){str=stringSegment;}else {str+=String.fromCharCode(0);str+=stringSegment;}decodeStartPtr=currentBytePtr+charSize;}}_free(value);return str},\"toWireType\":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_value_object(rawType,name,constructorSignature,rawConstructor,destructorSignature,rawDestructor){structRegistrations[rawType]={name:readLatin1String(name),rawConstructor:embind__requireFunction(constructorSignature,rawConstructor),rawDestructor:embind__requireFunction(destructorSignature,rawDestructor),fields:[]};}function __embind_register_value_object_field(structType,fieldName,getterReturnType,getterSignature,getter,getterContext,setterArgumentType,setterSignature,setter,setterContext){structRegistrations[structType].fields.push({fieldName:readLatin1String(fieldName),getterReturnType:getterReturnType,getter:embind__requireFunction(getterSignature,getter),getterContext:getterContext,setterArgumentType:setterArgumentType,setter:embind__requireFunction(setterSignature,setter),setterContext:setterContext});}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}});}var nowIsMonotonic=true;function __emscripten_get_now_is_monotonic(){return nowIsMonotonic}function emval_lookupTypes(argCount,argTypes){var a=new Array(argCount);for(var i=0;i<argCount;++i){a[i]=requireRegisteredType(HEAPU32[argTypes+i*4>>2],\"parameter \"+i);}return a}function __emval_call(handle,argCount,argTypes,argv){handle=Emval.toValue(handle);var types=emval_lookupTypes(argCount,argTypes);var args=new Array(argCount);for(var i=0;i<argCount;++i){var type=types[i];args[i]=type[\"readValueFromPointer\"](argv);argv+=type[\"argPackAdvance\"];}var rv=handle.apply(undefined,args);return Emval.toHandle(rv)}function __emval_incref(handle){if(handle>4){emval_handle_array[handle].refcount+=1;}}function __emval_take_value(type,arg){type=requireRegisteredType(type,\"_emval_take_value\");var v=type[\"readValueFromPointer\"](arg);return Emval.toHandle(v)}function readI53FromI64(ptr){return HEAPU32[ptr>>2]+HEAP32[ptr+4>>2]*4294967296}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;}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}var __MONTH_DAYS_LEAP_CUMULATIVE=[0,31,60,91,121,152,182,213,244,274,305,335];var __MONTH_DAYS_REGULAR_CUMULATIVE=[0,31,59,90,120,151,181,212,243,273,304,334];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}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;}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}function allocateUTF8(str){var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8Array(str,HEAP8,ret,size);return ret}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<winterOffset){HEAPU32[tzname>>2]=winterNamePtr;HEAPU32[tzname+4>>2]=summerNamePtr;}else {HEAPU32[tzname>>2]=summerNamePtr;HEAPU32[tzname+4>>2]=winterNamePtr;}}function _abort(){abort(\"\");}function _emscripten_date_now(){return Date.now()}var _emscripten_get_now;_emscripten_get_now=()=>performance.now();function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num);}function getHeapMax(){return 1073741824}function emscripten_realloc_buffer(size){var b=wasmMemory.buffer;try{wasmMemory.grow(size-b.byteLength+65535>>>16);updateMemoryViews();return 1}catch(e){}}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}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}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i<str.length;++i){HEAP8[buffer++>>0]=str.charCodeAt(i);}if(!dontAddNull)HEAP8[buffer>>0]=0;}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}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}function _fd_close(fd){return 52}function _fd_read(fd,iov,iovcnt,pnum){return 52}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){return 70}var printCharBuffers=[null,[],[]];function printChar(stream,curr){var buffer=printCharBuffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0;}else {buffer.push(curr);}}function _fd_write(fd,iov,iovcnt,pnum){var num=0;for(var i=0;i<iovcnt;i++){var ptr=HEAPU32[iov>>2];var len=HEAPU32[iov+4>>2];iov+=8;for(var j=0;j<len;j++){printChar(fd,HEAPU8[ptr+j]);}num+=len;}HEAPU32[pnum>>2]=num;return 0}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 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}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer);}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.length<digits){str=character[0]+str;}return str}function leadingNulls(value,digits){return leadingSomething(value,digits,\"0\")}function compareByDay(date1,date2){function sgn(value){return value<0?-1:value>0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate());}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}return thisDate.getFullYear()}return thisDate.getFullYear()-1}var EXPANSION_RULES_2={\"%a\":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}function _strftime_l(s,maxsize,format,tm,loc){return _strftime(s,maxsize,format,tm)}InternalError=Module[\"InternalError\"]=extendError(Error,\"InternalError\");embind_init_charCodes();BindingError=Module[\"BindingError\"]=extendError(Error,\"BindingError\");init_ClassHandle();init_embind();init_RegisteredPointer();UnboundTypeError=Module[\"UnboundTypeError\"]=extendError(Error,\"UnboundTypeError\");init_emval();var wasmImports={\"e\":___cxa_throw,\"s\":___syscall_fcntl64,\"F\":___syscall_getcwd,\"H\":___syscall_ioctl,\"t\":___syscall_openat,\"B\":___syscall_rmdir,\"C\":___syscall_unlinkat,\"g\":__embind_finalize_value_object,\"y\":__embind_register_bigint,\"Q\":__embind_register_bool,\"k\":__embind_register_class,\"j\":__embind_register_class_constructor,\"a\":__embind_register_class_function,\"P\":__embind_register_emval,\"w\":__embind_register_enum,\"q\":__embind_register_enum_value,\"v\":__embind_register_float,\"d\":__embind_register_integer,\"b\":__embind_register_memory_view,\"u\":__embind_register_std_string,\"o\":__embind_register_std_wstring,\"i\":__embind_register_value_object,\"c\":__embind_register_value_object_field,\"R\":__embind_register_void,\"J\":__emscripten_get_now_is_monotonic,\"T\":__emval_call,\"f\":__emval_decref,\"p\":__emval_incref,\"m\":__emval_take_value,\"K\":__gmtime_js,\"L\":__localtime_js,\"M\":__mktime_js,\"N\":__tzset_js,\"h\":_abort,\"l\":_emscripten_date_now,\"I\":_emscripten_get_now,\"O\":_emscripten_memcpy_big,\"A\":_emscripten_resize_heap,\"D\":_environ_get,\"E\":_environ_sizes_get,\"n\":_fd_close,\"G\":_fd_read,\"x\":_fd_seek,\"r\":_fd_write,\"S\":_strftime,\"z\":_strftime_l};createWasm();var _malloc=function(){return (_malloc=Module[\"asm\"][\"W\"]).apply(null,arguments)};var _free=function(){return (_free=Module[\"asm\"][\"Y\"]).apply(null,arguments)};var ___getTypeName=Module[\"___getTypeName\"]=function(){return (___getTypeName=Module[\"___getTypeName\"]=Module[\"asm\"][\"Z\"]).apply(null,arguments)};Module[\"__embind_initialize_bindings\"]=function(){return (Module[\"__embind_initialize_bindings\"]=Module[\"asm\"][\"_\"]).apply(null,arguments)};var ___cxa_is_pointer_type=function(){return (___cxa_is_pointer_type=Module[\"asm\"][\"$\"]).apply(null,arguments)};Module[\"dynCall_jiji\"]=function(){return (Module[\"dynCall_jiji\"]=Module[\"asm\"][\"aa\"]).apply(null,arguments)};Module[\"dynCall_viijii\"]=function(){return (Module[\"dynCall_viijii\"]=Module[\"asm\"][\"ba\"]).apply(null,arguments)};Module[\"dynCall_iiiiij\"]=function(){return (Module[\"dynCall_iiiiij\"]=Module[\"asm\"][\"ca\"]).apply(null,arguments)};Module[\"dynCall_iiiiijj\"]=function(){return (Module[\"dynCall_iiiiijj\"]=Module[\"asm\"][\"da\"]).apply(null,arguments)};Module[\"dynCall_iiiiiijj\"]=function(){return (Module[\"dynCall_iiiiiijj\"]=Module[\"asm\"][\"ea\"]).apply(null,arguments)};Module[\"dynCall_jijii\"]=function(){return (Module[\"dynCall_jijii\"]=Module[\"asm\"][\"fa\"]).apply(null,arguments)};Module[\"dynCall_vijii\"]=function(){return (Module[\"dynCall_vijii\"]=Module[\"asm\"][\"ga\"]).apply(null,arguments)};Module[\"dynCall_jij\"]=function(){return (Module[\"dynCall_jij\"]=Module[\"asm\"][\"ha\"]).apply(null,arguments)};Module[\"dynCall_iij\"]=function(){return (Module[\"dynCall_iij\"]=Module[\"asm\"][\"ia\"]).apply(null,arguments)};Module[\"dynCall_viji\"]=function(){return (Module[\"dynCall_viji\"]=Module[\"asm\"][\"ja\"]).apply(null,arguments)};Module[\"dynCall_jii\"]=function(){return (Module[\"dynCall_jii\"]=Module[\"asm\"][\"ka\"]).apply(null,arguments)};var calledRun;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller;};function run(){if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun();}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\");},1);doRun();},1);}else {doRun();}}if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()();}}run();function wasmSIMDSupported(){const simdTest=Uint8Array.from([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,10,1,8,0,65,0,253,15,253,98,11]);return WebAssembly.validate(simdTest)}if(wasmSIMDSupported()){ENV.DOTPRODUCT=\"sse\";}\n\n\n return Module.ready\n}\n);\n})();\n\n// @ts-ignore - Don't error if library hasn't been built yet.\n/**\n * Create a JS array from a std::vector wrapper created by Embind.\n */\nfunction jsArrayFromStdVector(vec) {\n const size = vec.size();\n const result = [];\n for (let i = 0; i < size; i++) {\n result.push(vec.get(i));\n }\n return result;\n}\n/**\n * Flags indicating position of a text item.\n *\n * Keep this in sync with `LayoutFlags` in lib.cpp.\n */\nconst layoutFlags = {\n StartOfLine: 1,\n EndOfLine: 2,\n};\n/**\n * Low-level synchronous API for performing OCR.\n *\n * Instances are constructed using {@link createOCREngine}.\n */\nclass OCREngine {\n /**\n * Initialize the OCREngine.\n *\n * Use {@link createOCREngine} rather than calling this directly.\n *\n * @param tessLib - Emscripten entry point for the compiled WebAssembly module.\n * @param progressChannel - Channel used to report progress\n * updates when OCREngine is run on a background thread\n */\n constructor(tessLib, progressChannel) {\n this._tesseractLib = tessLib;\n this._engine = new tessLib.OCREngine();\n this._modelLoaded = false;\n this._imageLoaded = false;\n this._progressChannel = progressChannel;\n }\n /**\n * Shut down the OCR engine and free up resources.\n */\n destroy() {\n this._engine.delete();\n this._engine = null;\n }\n /**\n * Get the value, represented as a string, of a Tesseract configuration variable.\n *\n * See {@link setVariable} for available variables.\n */\n getVariable(name) {\n const result = this._engine.getVariable(name);\n if (!result.success) {\n throw new Error(`Unable to get variable ${name}`);\n }\n return result.value;\n }\n /**\n * Set the value of a Tesseract configuration variable.\n *\n * For a list of configuration variables, see\n * https://github.com/tesseract-ocr/tesseract/blob/677f5822f247ccb12b4e026265e88b959059fb59/src/ccmain/tesseractclass.cpp#L53\n *\n * If you have Tesseract installed locally, executing `tesseract --print-parameters`\n * will also display a list of configuration variables.\n */\n setVariable(name, value) {\n const result = this._engine.setVariable(name, value);\n if (result.error) {\n throw new Error(`Unable to set variable ${name}`);\n }\n }\n /**\n * Load a trained text recognition model.\n */\n loadModel(model) {\n const modelArray = model instanceof ArrayBuffer ? new Uint8Array(model) : model;\n const result = this._engine.loadModel(modelArray);\n if (result.error) {\n throw new Error(\"Text recognition model failed to load\");\n }\n this._modelLoaded = true;\n }\n /**\n * Load a document image for processing by subsequent operations.\n *\n * This is a cheap operation as expensive processing is deferred until\n * bounding boxes or text content is requested.\n */\n loadImage(image) {\n let imageData;\n if (typeof ImageBitmap !== \"undefined\" && image instanceof ImageBitmap) {\n imageData = imageDataFromBitmap(image);\n }\n else {\n imageData = image;\n }\n if (imageData.data.length < imageData.width * imageData.height * 4) {\n throw new Error(\"Image data length does not match width/height\");\n }\n if (imageData.width <= 0 || imageData.height <= 0) {\n throw new Error(\"Image width or height is zero\");\n }\n // Free up resources used by the previous image, if any. Doing this before\n // creating the buffer for the new image reduces peak memory usage.\n this._engine.clearImage();\n // Allocate a temporary internal image for transfering the image data into\n // Tesseract\n const engineImage = new this._tesseractLib.Image(imageData.width, imageData.height);\n const engineImageBuf = engineImage.data();\n engineImageBuf.set(new Uint32Array(imageData.data.buffer));\n // Load the image. This will take a copy of the image within Tesseract, so\n // we can release the original afterwards.\n const result = this._engine.loadImage(engineImage);\n engineImage.delete();\n if (result.error) {\n throw new Error(\"Failed to load image\");\n }\n this._imageLoaded = true;\n }\n /**\n * Clear the current image and text recognition results.\n *\n * This will clear the loaded image data internally, but keep the text\n * recognition model loaded.\n *\n * At present there is no way to shrink WebAssembly memory, so this will not\n * return the memory used by the image to the OS/browser. To release memory,\n * the `OCREngine` instance needs to be destroyed via {@link destroy}.\n */\n clearImage() {\n this._engine.clearImage();\n this._imageLoaded = false;\n }\n /**\n * Perform layout analysis on the current image, if not already done, and\n * return bounding boxes for a given unit of text.\n *\n * This operation is relatively cheap compared to text recognition, so can\n * provide much faster results if only the location of lines/words etc. on\n * the page is required, not the text content. This operation can also be\n * performed before a text recognition model is loaded.\n *\n * This method may return a different number/positions of words on a line\n * compared to {@link getTextBoxes} due to the simpler analysis. After full\n * OCR has been performed by {@link getTextBoxes} or {@link getText}, this\n * method should return the same results.\n */\n getBoundingBoxes(unit) {\n this._checkImageLoaded();\n const textUnit = this._textUnitForUnit(unit);\n return jsArrayFromStdVector(this._engine.getBoundingBoxes(textUnit));\n }\n /**\n * Perform layout analysis and text recognition on the current image, if\n * not already done, and return bounding boxes and text content for a given\n * unit of text.\n *\n * A text recognition model must be loaded with {@link loadModel} before this\n * is called.\n */\n getTextBoxes(unit, onProgress) {\n this._checkImageLoaded();\n this._checkModelLoaded();\n const textUnit = this._textUnitForUnit(unit);\n return jsArrayFromStdVector(this._engine.getTextBoxes(textUnit, (progress) => {\n var _a;\n onProgress === null || onProgress === void 0 ? void 0 : onProgress(progress);\n (_a = this._progressChannel) === null || _a === void 0 ? void 0 : _a.postMessage({ progress });\n }));\n }\n /**\n * Perform layout analysis and text recognition on the current image, if\n * not already done, and return the page text as a string.\n *\n * A text recognition model must be loaded with {@link loadModel} before this\n * is called.\n */\n getText(onProgress) {\n this._checkImageLoaded();\n this._checkModelLoaded();\n return this._engine.getText((progress) => {\n var _a;\n onProgress === null || onProgress === void 0 ? void 0 : onProgress(progress);\n (_a = this._progressChannel) === null || _a === void 0 ? void 0 : _a.postMessage({ progress });\n });\n }\n /**\n * Perform layout analysis and text recognition on the current image, if\n * not already done, and return the page text in hOCR format.\n *\n * A text recognition model must be loaded with {@link loadModel} before this\n * is called.\n */\n getHOCR(onProgress) {\n this._checkImageLoaded();\n this._checkModelLoaded();\n return this._engine.getHOCR((progress) => {\n var _a;\n onProgress === null || onProgress === void 0 ? void 0 : onProgress(progress);\n (_a = this._progressChannel) === null || _a === void 0 ? void 0 : _a.postMessage({ progress });\n });\n }\n /**\n * Attempt to determine the orientation of the document image in degrees.\n *\n * This currently uses a simplistic algorithm [1] which is designed for\n * non-uppercase Latin text. It will likely perform badly for other scripts or\n * if the text is all uppercase.\n *\n * [1] See http://www.leptonica.org/papers/skew-measurement.pdf\n */\n getOrientation() {\n this._checkImageLoaded();\n return this._engine.getOrientation();\n }\n _checkModelLoaded() {\n if (!this._modelLoaded) {\n throw new Error(\"No text recognition model loaded\");\n }\n }\n _checkImageLoaded() {\n if (!this._imageLoaded) {\n throw new Error(\"No image loaded\");\n }\n }\n _textUnitForUnit(unit) {\n const { TextUnit } = this._tesseractLib;\n switch (unit) {\n case \"word\":\n return TextUnit.Word;\n case \"line\":\n return TextUnit.Line;\n default:\n throw new Error(\"Invalid text unit\");\n }\n }\n}\nfunction wasmSIMDSupported() {\n // Tiny WebAssembly file generated from the following source using `wat2wasm`:\n //\n // (module\n // (func (result v128)\n // i32.const 0\n // i8x16.splat\n // i8x16.popcnt\n // )\n // )\n const simdTest = Uint8Array.from([\n 0, 97, 115, 109, 1, 0, 0, 0, 1, 5, 1, 96, 0, 1, 123, 3, 2, 1, 0, 10, 10, 1,\n 8, 0, 65, 0, 253, 15, 253, 98, 11,\n ]);\n return WebAssembly.validate(simdTest);\n}\nfunction resolve(path, baseURL) {\n return new URL(path, baseURL).href;\n}\n/**\n * Return true if the current JS runtime supports all the WebAssembly features\n * needed for the \"fast\" WebAssembly build. If not, the \"fallback\" version must\n * be used.\n */\nfunction supportsFastBuild() {\n return wasmSIMDSupported();\n}\n/**\n * Initialize the OCR library and return a new {@link OCREngine}.\n */\nasync function createOCREngine({ wasmBinary, progressChannel, } = {}) {\n if (!wasmBinary) {\n const wasmPath = supportsFastBuild()\n ? \"./tesseract-core.wasm\"\n : \"./tesseract-core-fallback.wasm\";\n // nb. If this code is included in a non-ESM bundle, Rollup will replace\n // `import.meta.url` with code that uses `document.currentScript` /\n // `location.href`.\n const wasmURL = resolve(wasmPath, import.meta.url);\n const wasmBinaryResponse = await fetch(wasmURL);\n wasmBinary = await wasmBinaryResponse.arrayBuffer();\n }\n const tessLib = await Module({ wasmBinary });\n return new OCREngine(tessLib, progressChannel);\n}\n\nexport { OCRClient, createOCREngine, layoutFlags, supportsFastBuild };\n","/**\n * Tesseract WASM OCR Backend\n *\n * Provides OCR capabilities using tesseract-wasm library for browser environments.\n * Loads training data on-demand from jsDelivr CDN and implements the OcrBackendProtocol.\n *\n * ## Browser-Only Requirement\n *\n * This backend requires browser APIs like createImageBitmap and Web Workers.\n * It will NOT work in Node.js environments without additional canvas polyfills.\n *\n * ## Supported Languages\n *\n * Common ISO 639-1 and ISO 639-2 codes:\n * - English: \"eng\"\n * - German: \"deu\"\n * - French: \"fra\"\n * - Spanish: \"spa\"\n * - Italian: \"ita\"\n * - Portuguese: \"por\"\n * - Dutch: \"nld\"\n * - Russian: \"rus\"\n * - Chinese (Simplified): \"chi_sim\"\n * - Chinese (Traditional): \"chi_tra\"\n * - Japanese: \"jpn\"\n * - Korean: \"kor\"\n * - Arabic: \"ara\"\n * - Hindi: \"hin\"\n *\n * For complete language list, see: https://github.com/naptha/tesseract.js\n *\n * @example Basic Usage\n * ```typescript\n * import { TesseractWasmBackend } from '@kreuzberg/wasm/ocr/tesseract-wasm-backend';\n * import { registerOcrBackend, extractBytes, initWasm } from '@kreuzberg/wasm';\n *\n * // Initialize\n * await initWasm();\n * const backend = new TesseractWasmBackend();\n * await backend.initialize();\n * registerOcrBackend(backend);\n *\n * // Use in extraction\n * const imageBytes = new Uint8Array(buffer);\n * const result = await extractBytes(imageBytes, 'image/png', {\n * ocr: { backend: 'tesseract-wasm', language: 'eng' }\n * });\n * console.log(result.content); // Extracted text\n * ```\n *\n * @example With Language Auto-Detection\n * ```typescript\n * const backend = new TesseractWasmBackend();\n * await backend.initialize();\n * registerOcrBackend(backend);\n *\n * // Extract without specifying language - backend will auto-detect\n * const result = await extractBytes(imageBytes, 'image/png', {\n * ocr: { backend: 'tesseract-wasm' } // language will auto-detect\n * });\n * ```\n */\n\nimport type { OcrBackendProtocol } from \"../types.js\";\n\n/**\n * Tesseract WASM Client interface\n * Type definition for tesseract-wasm's OCRClient class\n */\ninterface TesseractClient {\n\tloadModel(modelPath: string): Promise<void>;\n\tloadImage(image: ImageBitmap | Blob): Promise<void>;\n\tgetText(): Promise<string>;\n\tgetConfidence(): Promise<number>;\n\tgetPageMetadata(): Promise<Record<string, unknown>>;\n\tdestroy(): void;\n\tterminate(): void;\n}\n\n/**\n * TesseractWasmBackend - OCR backend using tesseract-wasm library\n *\n * Implements the OcrBackendProtocol for Kreuzberg document extraction pipeline.\n * Provides comprehensive OCR support with model caching, error handling, and progress reporting.\n */\nexport class TesseractWasmBackend implements OcrBackendProtocol {\n\t/** Tesseract WASM client instance */\n\tprivate client: TesseractClient | null = null;\n\n\t/** Track which models are currently loaded to avoid redundant loads */\n\tprivate loadedLanguages: Set<string> = new Set();\n\n\t/** Cache for language availability validation */\n\tprivate supportedLangsCache: string[] | null = null;\n\n\t/** Progress callback for UI updates */\n\tprivate progressCallback: ((progress: number) => void) | null = null;\n\n\t/** Base URL for training data CDN */\n\tprivate readonly CDN_BASE_URL = \"https://cdn.jsdelivr.net/npm/tesseract-wasm@0.11.0/dist\";\n\n\t/**\n\t * Return the unique name of this OCR backend\n\t *\n\t * @returns Backend identifier \"tesseract-wasm\"\n\t */\n\tname(): string {\n\t\treturn \"tesseract-wasm\";\n\t}\n\n\t/**\n\t * Return list of supported language codes\n\t *\n\t * Returns a curated list of commonly available Tesseract language models.\n\t * Tesseract supports many more languages through custom models.\n\t *\n\t * @returns Array of ISO 639-1/2/3 language codes\n\t */\n\tsupportedLanguages(): string[] {\n\t\t// Return cached list if already computed\n\t\tif (this.supportedLangsCache) {\n\t\t\treturn this.supportedLangsCache;\n\t\t}\n\n\t\t// Comprehensive list of languages supported by tesseract-wasm\n\t\t// Includes both 3-letter (ISO 639-2) and 2-letter (ISO 639-1) codes where applicable\n\t\tthis.supportedLangsCache = [\n\t\t\t// Major languages\n\t\t\t\"eng\", // English\n\t\t\t\"deu\", // German\n\t\t\t\"fra\", // French\n\t\t\t\"spa\", // Spanish\n\t\t\t\"ita\", // Italian\n\t\t\t\"por\", // Portuguese\n\t\t\t\"nld\", // Dutch\n\t\t\t\"rus\", // Russian\n\t\t\t\"jpn\", // Japanese\n\t\t\t\"kor\", // Korean\n\t\t\t\"chi_sim\", // Chinese (Simplified)\n\t\t\t\"chi_tra\", // Chinese (Traditional)\n\n\t\t\t// Additional European languages\n\t\t\t\"pol\", // Polish\n\t\t\t\"tur\", // Turkish\n\t\t\t\"swe\", // Swedish\n\t\t\t\"dan\", // Danish\n\t\t\t\"fin\", // Finnish\n\t\t\t\"nor\", // Norwegian\n\t\t\t\"ces\", // Czech\n\t\t\t\"slk\", // Slovak\n\t\t\t\"ron\", // Romanian\n\t\t\t\"hun\", // Hungarian\n\t\t\t\"hrv\", // Croatian\n\t\t\t\"srp\", // Serbian\n\t\t\t\"bul\", // Bulgarian\n\t\t\t\"ukr\", // Ukrainian\n\t\t\t\"ell\", // Greek\n\n\t\t\t// Asian languages\n\t\t\t\"ara\", // Arabic\n\t\t\t\"heb\", // Hebrew\n\t\t\t\"hin\", // Hindi\n\t\t\t\"tha\", // Thai\n\t\t\t\"vie\", // Vietnamese\n\t\t\t\"mkd\", // Macedonian\n\t\t\t\"ben\", // Bengali\n\t\t\t\"tam\", // Tamil\n\t\t\t\"tel\", // Telugu\n\t\t\t\"kan\", // Kannada\n\t\t\t\"mal\", // Malayalam\n\t\t\t\"mya\", // Burmese\n\t\t\t\"khm\", // Khmer\n\t\t\t\"lao\", // Lao\n\t\t\t\"sin\", // Sinhala\n\t\t];\n\n\t\treturn this.supportedLangsCache;\n\t}\n\n\t/**\n\t * Initialize the OCR backend\n\t *\n\t * Creates the Tesseract WASM client instance. This is called once when\n\t * the backend is registered with the extraction pipeline.\n\t *\n\t * The actual model loading happens in processImage() on-demand to avoid\n\t * loading all models upfront.\n\t *\n\t * @throws {Error} If tesseract-wasm is not available or initialization fails\n\t *\n\t * @example\n\t * ```typescript\n\t * const backend = new TesseractWasmBackend();\n\t * try {\n\t * await backend.initialize();\n\t * } catch (error) {\n\t * console.error('Failed to initialize OCR:', error);\n\t * }\n\t * ```\n\t */\n\tasync initialize(): Promise<void> {\n\t\tif (this.client) {\n\t\t\treturn; // Already initialized\n\t\t}\n\n\t\ttry {\n\t\t\t// Dynamically import tesseract-wasm\n\t\t\tconst tesseractModule = await this.loadTesseractWasm();\n\n\t\t\t// @ts-expect-error - tesseract-wasm types are not fully typed\n\t\t\tif (!tesseractModule || typeof tesseractModule.OCRClient !== \"function\") {\n\t\t\t\tthrow new Error(\"tesseract-wasm OCRClient not found. Ensure tesseract-wasm is installed and available.\");\n\t\t\t}\n\n\t\t\t// Create client instance\n\t\t\t// @ts-expect-error - tesseract-wasm types are not fully typed\n\t\t\tthis.client = new tesseractModule.OCRClient();\n\n\t\t\t// Initialize tracking\n\t\t\tthis.loadedLanguages.clear();\n\t\t} catch (error) {\n\t\t\tconst message = error instanceof Error ? error.message : String(error);\n\t\t\tthrow new Error(`Failed to initialize TesseractWasmBackend: ${message}`);\n\t\t}\n\t}\n\n\t/**\n\t * Process image bytes and extract text via OCR\n\t *\n\t * Handles image loading, model loading, OCR processing, and result formatting.\n\t * Automatically loads the language model on first use and caches it for subsequent calls.\n\t *\n\t * @param imageBytes - Raw image data (Uint8Array) or Base64-encoded string\n\t * @param language - ISO 639-2/3 language code (e.g., \"eng\", \"deu\")\n\t * @returns Promise resolving to OCR result with content and metadata\n\t * @throws {Error} If image processing fails, model loading fails, or language is unsupported\n\t *\n\t * @example\n\t * ```typescript\n\t * const backend = new TesseractWasmBackend();\n\t * await backend.initialize();\n\t *\n\t * const imageBuffer = fs.readFileSync('scanned.png');\n\t * const result = await backend.processImage(\n\t * new Uint8Array(imageBuffer),\n\t * 'eng'\n\t * );\n\t *\n\t * console.log(result.content); // Extracted text\n\t * console.log(result.metadata.confidence); // OCR confidence score\n\t * ```\n\t */\n\tasync processImage(\n\t\timageBytes: Uint8Array | string,\n\t\tlanguage: string,\n\t): Promise<{\n\t\tcontent: string;\n\t\tmime_type: string;\n\t\tmetadata: Record<string, unknown>;\n\t\ttables: unknown[];\n\t}> {\n\t\tif (!this.client) {\n\t\t\tthrow new Error(\"TesseractWasmBackend not initialized. Call initialize() first.\");\n\t\t}\n\n\t\t// Validate language support\n\t\tconst supported = this.supportedLanguages();\n\t\t// Normalize language code for comparison\n\t\tconst normalizedLang = language.toLowerCase();\n\t\tconst isSupported = supported.some((lang) => lang.toLowerCase() === normalizedLang);\n\n\t\tif (!isSupported) {\n\t\t\tthrow new Error(`Language \"${language}\" is not supported. Supported languages: ${supported.join(\", \")}`);\n\t\t}\n\n\t\ttry {\n\t\t\t// Load language model if not already loaded\n\t\t\tif (!this.loadedLanguages.has(normalizedLang)) {\n\t\t\t\tthis.reportProgress(10); // Progress: loading model\n\t\t\t\tawait this.loadLanguageModel(normalizedLang);\n\t\t\t\tthis.loadedLanguages.add(normalizedLang);\n\t\t\t\tthis.reportProgress(30); // Progress: model loaded\n\t\t\t}\n\n\t\t\t// Convert image bytes to ImageBitmap\n\t\t\tthis.reportProgress(40); // Progress: processing image\n\t\t\tconst imageBitmap = await this.convertToImageBitmap(imageBytes);\n\n\t\t\t// Load image into Tesseract\n\t\t\tthis.reportProgress(50); // Progress: loading image\n\t\t\tawait this.client.loadImage(imageBitmap);\n\n\t\t\t// Perform OCR\n\t\t\tthis.reportProgress(70); // Progress: performing OCR\n\t\t\tconst text = await this.client.getText();\n\n\t\t\t// Get confidence and metadata\n\t\t\tconst confidence = await this.getConfidenceScore();\n\t\t\tconst pageMetadata = await this.getPageMetadata();\n\n\t\t\tthis.reportProgress(90); // Progress: nearly complete\n\n\t\t\t// Return result in Kreuzberg format\n\t\t\treturn {\n\t\t\t\tcontent: text,\n\t\t\t\tmime_type: \"text/plain\",\n\t\t\t\tmetadata: {\n\t\t\t\t\tlanguage: normalizedLang,\n\t\t\t\t\tconfidence,\n\t\t\t\t\t...pageMetadata,\n\t\t\t\t},\n\t\t\t\ttables: [], // Tesseract-wasm doesn't provide structured table detection\n\t\t\t};\n\t\t} catch (error) {\n\t\t\tconst message = error instanceof Error ? error.message : String(error);\n\t\t\tthrow new Error(`OCR processing failed for language \"${language}\": ${message}`);\n\t\t} finally {\n\t\t\tthis.reportProgress(100); // Progress: complete\n\t\t}\n\t}\n\n\t/**\n\t * Shutdown the OCR backend and release resources\n\t *\n\t * Properly cleans up the Tesseract WASM client, freeing memory and Web Workers.\n\t * Called when the backend is unregistered or the application shuts down.\n\t *\n\t * @throws {Error} If cleanup fails (errors are logged but not critical)\n\t *\n\t * @example\n\t * ```typescript\n\t * const backend = new TesseractWasmBackend();\n\t * await backend.initialize();\n\t * // ... use backend ...\n\t * await backend.shutdown(); // Clean up resources\n\t * ```\n\t */\n\tasync shutdown(): Promise<void> {\n\t\ttry {\n\t\t\tif (this.client) {\n\t\t\t\t// Try both destroy and terminate for compatibility\n\t\t\t\tif (typeof this.client.destroy === \"function\") {\n\t\t\t\t\tthis.client.destroy();\n\t\t\t\t}\n\t\t\t\tif (typeof this.client.terminate === \"function\") {\n\t\t\t\t\tthis.client.terminate();\n\t\t\t\t}\n\t\t\t\tthis.client = null;\n\t\t\t}\n\n\t\t\t// Clear cached state\n\t\t\tthis.loadedLanguages.clear();\n\t\t\tthis.supportedLangsCache = null;\n\t\t\tthis.progressCallback = null;\n\t\t} catch (error) {\n\t\t\t// Log error but don't throw - shutdown is best-effort\n\t\t\tconsole.warn(\n\t\t\t\t`Warning during TesseractWasmBackend shutdown: ${error instanceof Error ? error.message : String(error)}`,\n\t\t\t);\n\t\t}\n\t}\n\n\t/**\n\t * Set a progress callback for UI updates\n\t *\n\t * Allows the UI to display progress during OCR processing.\n\t * The callback will be called with values from 0 to 100.\n\t *\n\t * @param callback - Function to call with progress percentage\n\t *\n\t * @example\n\t * ```typescript\n\t * const backend = new TesseractWasmBackend();\n\t * backend.setProgressCallback((progress) => {\n\t * console.log(`OCR Progress: ${progress}%`);\n\t * document.getElementById('progress-bar').style.width = `${progress}%`;\n\t * });\n\t * ```\n\t */\n\tsetProgressCallback(callback: (progress: number) => void): void {\n\t\tthis.progressCallback = callback;\n\t}\n\n\t/**\n\t * Load language model from CDN\n\t *\n\t * Fetches the training data for a specific language from jsDelivr CDN.\n\t * This is an MVP approach - models are cached by the browser.\n\t *\n\t * @param language - ISO 639-2/3 language code\n\t * @throws {Error} If model download fails or language is not available\n\t *\n\t * @internal\n\t */\n\tprivate async loadLanguageModel(language: string): Promise<void> {\n\t\tif (!this.client) {\n\t\t\tthrow new Error(\"Client not initialized\");\n\t\t}\n\n\t\t// Construct model URL - models are named with their language code\n\t\tconst modelFilename = `${language}.traineddata`;\n\t\tconst modelUrl = `${this.CDN_BASE_URL}/${modelFilename}`;\n\n\t\ttry {\n\t\t\tawait this.client.loadModel(modelUrl);\n\t\t} catch (error) {\n\t\t\tconst message = error instanceof Error ? error.message : String(error);\n\t\t\tthrow new Error(`Failed to load model for language \"${language}\" from ${modelUrl}: ${message}`);\n\t\t}\n\t}\n\n\t/**\n\t * Convert image bytes or Base64 string to ImageBitmap\n\t *\n\t * Handles both Uint8Array and Base64-encoded image data, converting to\n\t * ImageBitmap format required by Tesseract WASM.\n\t *\n\t * @param imageBytes - Image data as Uint8Array or Base64 string\n\t * @returns Promise resolving to ImageBitmap\n\t * @throws {Error} If conversion fails (browser API not available or invalid image data)\n\t *\n\t * @internal\n\t */\n\tprivate async convertToImageBitmap(imageBytes: Uint8Array | string): Promise<ImageBitmap> {\n\t\t// Check if createImageBitmap is available (browser only)\n\t\tif (typeof createImageBitmap === \"undefined\") {\n\t\t\tthrow new Error(\"createImageBitmap is not available. TesseractWasmBackend requires a browser environment.\");\n\t\t}\n\n\t\ttry {\n\t\t\t// Convert to Uint8Array if string (Base64)\n\t\t\tlet bytes = imageBytes;\n\t\t\tif (typeof imageBytes === \"string\") {\n\t\t\t\t// Decode Base64 to binary\n\t\t\t\tconst binaryString = atob(imageBytes);\n\t\t\t\tbytes = new Uint8Array(binaryString.length);\n\t\t\t\tfor (let i = 0; i < binaryString.length; i++) {\n\t\t\t\t\t(bytes as Uint8Array)[i] = binaryString.charCodeAt(i);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Create Blob from bytes\n\t\t\tconst blob = new Blob([bytes as Uint8Array] as BlobPart[]);\n\n\t\t\t// Convert Blob to ImageBitmap\n\t\t\tconst imageBitmap = await createImageBitmap(blob);\n\t\t\treturn imageBitmap;\n\t\t} catch (error) {\n\t\t\tconst message = error instanceof Error ? error.message : String(error);\n\t\t\tthrow new Error(`Failed to convert image bytes to ImageBitmap: ${message}`);\n\t\t}\n\t}\n\n\t/**\n\t * Get confidence score from OCR result\n\t *\n\t * Attempts to retrieve confidence score from Tesseract.\n\t * Returns a safe default if unavailable.\n\t *\n\t * @returns Confidence score between 0 and 1\n\t *\n\t * @internal\n\t */\n\tprivate async getConfidenceScore(): Promise<number> {\n\t\ttry {\n\t\t\tif (this.client && typeof this.client.getConfidence === \"function\") {\n\t\t\t\tconst confidence = await this.client.getConfidence();\n\t\t\t\t// Normalize to 0-1 range if needed (some versions return 0-100)\n\t\t\t\treturn confidence > 1 ? confidence / 100 : confidence;\n\t\t\t}\n\t\t} catch {\n\t\t\t// Silently fail - confidence is optional\n\t\t}\n\t\treturn 0.9; // Default reasonable confidence\n\t}\n\n\t/**\n\t * Get page metadata from OCR result\n\t *\n\t * Retrieves additional metadata like image dimensions and processing info.\n\t *\n\t * @returns Metadata object (may be empty if unavailable)\n\t *\n\t * @internal\n\t */\n\tprivate async getPageMetadata(): Promise<Record<string, unknown>> {\n\t\ttry {\n\t\t\tif (this.client && typeof this.client.getPageMetadata === \"function\") {\n\t\t\t\treturn await this.client.getPageMetadata();\n\t\t\t}\n\t\t} catch {\n\t\t\t// Silently fail - metadata is optional\n\t\t}\n\t\treturn {};\n\t}\n\n\t/**\n\t * Dynamically load tesseract-wasm module\n\t *\n\t * Uses dynamic import to load tesseract-wasm only when needed,\n\t * avoiding hard dependency in browser environments where it may not be bundled.\n\t *\n\t * @returns tesseract-wasm module object\n\t * @throws {Error} If module cannot be imported\n\t *\n\t * @internal\n\t */\n\tprivate async loadTesseractWasm(): Promise<unknown> {\n\t\ttry {\n\t\t\t// Use dynamic import to handle both ESM and CJS\n\t\t\t// @ts-expect-error - tesseract-wasm has package.json exports issues with TypeScript\n\t\t\tconst module = await import(\"tesseract-wasm\");\n\t\t\treturn module;\n\t\t} catch (error) {\n\t\t\tconst message = error instanceof Error ? error.message : String(error);\n\t\t\tthrow new Error(\n\t\t\t\t`Failed to import tesseract-wasm. Ensure it is installed via: npm install tesseract-wasm. Error: ${message}`,\n\t\t\t);\n\t\t}\n\t}\n\n\t/**\n\t * Report progress to progress callback\n\t *\n\t * Internal helper for notifying progress updates during OCR processing.\n\t *\n\t * @param progress - Progress percentage (0-100)\n\t *\n\t * @internal\n\t */\n\tprivate reportProgress(progress: number): void {\n\t\tif (this.progressCallback) {\n\t\t\ttry {\n\t\t\t\tthis.progressCallback(Math.min(100, Math.max(0, progress)));\n\t\t\t} catch {\n\t\t\t\t// Ignore callback errors to prevent blocking OCR processing\n\t\t\t}\n\t\t}\n\t}\n}\n"],"mappings":"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","names":["obj","returnValue","proxy","resolve","Module","err","exports","typeConverters","fieldTypes","handle","i","rv","date","wasmSIMDSupported"]}