browser-sqlite 1.0.0-rc.3 → 1.0.0-rc.4
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.
- package/NOTICE +56 -0
- package/README.md +435 -63
- package/dist/LICENSE +21 -0
- package/dist/NOTICE +56 -0
- package/dist/api.d.ts +376 -0
- package/dist/bulk.d.ts +42 -0
- package/dist/capabilities.d.ts +23 -0
- package/dist/client.d.ts +198 -0
- package/dist/credits.d.ts +31 -0
- package/dist/{esm/src/debug.d.ts → debug.d.ts} +21 -10
- package/dist/delete.d.ts +42 -0
- package/dist/epochs.d.ts +55 -0
- package/dist/errors.d.ts +37 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/dist/locks.d.ts +54 -0
- package/dist/logger.d.ts +24 -0
- package/dist/pool.d.ts +98 -0
- package/dist/queries.d.ts +36 -0
- package/dist/scheduler.d.ts +131 -0
- package/dist/supervisor.d.ts +17 -0
- package/dist/transaction.d.ts +38 -0
- package/dist/types.d.ts +348 -0
- package/dist/utils.d.ts +116 -0
- package/dist/worker/cloneable.d.ts +25 -0
- package/dist/worker/statement-cache.d.ts +22 -0
- package/dist/worker/wa-sqlite-async.wasm +0 -0
- package/dist/worker/wa-sqlite-jspi.wasm +0 -0
- package/dist/worker/wa-sqlite.wasm +0 -0
- package/dist/worker/worker.js +11 -0
- package/dist/worker/worker.js.map +1 -0
- package/package.json +36 -20
- package/dist/esm/index.js +0 -424
- package/dist/esm/rslib.config.d.ts +0 -2
- package/dist/esm/rstest.config.d.ts +0 -2
- package/dist/esm/src/client.d.ts +0 -332
- package/dist/esm/src/index.d.ts +0 -1
- package/dist/esm/src/orchestrator.d.ts +0 -87
- package/dist/esm/src/types.d.ts +0 -83
- package/dist/esm/src/utils.d.ts +0 -6
- /package/dist/{esm/src → worker}/worker.d.ts +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker.js","sources":["../../src/worker/worker.ts","../../src/credits.ts","../../node_modules/.pnpm/wa-sqlite@https+++codeload.github.com+rhashimoto+wa-sqlite+tar.gz+2bf1c59d89eb6497535a4_4fa85ada02f0de8ab3ca67619a713b2f/node_modules/wa-sqlite/dist/wa-sqlite-jspi.mjs","../../node_modules/.pnpm/wa-sqlite@https+++codeload.github.com+rhashimoto+wa-sqlite+tar.gz+2bf1c59d89eb6497535a4_4fa85ada02f0de8ab3ca67619a713b2f/node_modules/wa-sqlite/dist/wa-sqlite-async.mjs","../../node_modules/.pnpm/wa-sqlite@https+++codeload.github.com+rhashimoto+wa-sqlite+tar.gz+2bf1c59d89eb6497535a4_4fa85ada02f0de8ab3ca67619a713b2f/node_modules/wa-sqlite/dist/wa-sqlite.mjs","webpack://webpack/runtime/define_property_getters","webpack://webpack/runtime/has_own_property","webpack://webpack/runtime/make_namespace_object","../../node_modules/.pnpm/wa-sqlite@https+++codeload.github.com+rhashimoto+wa-sqlite+tar.gz+2bf1c59d89eb6497535a4_4fa85ada02f0de8ab3ca67619a713b2f/node_modules/wa-sqlite/src/VFS.js","../../node_modules/.pnpm/wa-sqlite@https+++codeload.github.com+rhashimoto+wa-sqlite+tar.gz+2bf1c59d89eb6497535a4_4fa85ada02f0de8ab3ca67619a713b2f/node_modules/wa-sqlite/src/FacadeVFS.js","../../node_modules/.pnpm/wa-sqlite@https+++codeload.github.com+rhashimoto+wa-sqlite+tar.gz+2bf1c59d89eb6497535a4_4fa85ada02f0de8ab3ca67619a713b2f/node_modules/wa-sqlite/src/examples/MemoryVFS.js","../../node_modules/.pnpm/wa-sqlite@https+++codeload.github.com+rhashimoto+wa-sqlite+tar.gz+2bf1c59d89eb6497535a4_4fa85ada02f0de8ab3ca67619a713b2f/node_modules/wa-sqlite/src/examples/MemoryAsyncVFS.js","../../node_modules/.pnpm/wa-sqlite@https+++codeload.github.com+rhashimoto+wa-sqlite+tar.gz+2bf1c59d89eb6497535a4_4fa85ada02f0de8ab3ca67619a713b2f/node_modules/wa-sqlite/src/WebLocksMixin.js","../../node_modules/.pnpm/wa-sqlite@https+++codeload.github.com+rhashimoto+wa-sqlite+tar.gz+2bf1c59d89eb6497535a4_4fa85ada02f0de8ab3ca67619a713b2f/node_modules/wa-sqlite/src/examples/OPFSAnyContextVFS.js","../../node_modules/.pnpm/wa-sqlite@https+++codeload.github.com+rhashimoto+wa-sqlite+tar.gz+2bf1c59d89eb6497535a4_4fa85ada02f0de8ab3ca67619a713b2f/node_modules/wa-sqlite/src/examples/IDBMirrorVFS.js","../../node_modules/.pnpm/wa-sqlite@https+++codeload.github.com+rhashimoto+wa-sqlite+tar.gz+2bf1c59d89eb6497535a4_4fa85ada02f0de8ab3ca67619a713b2f/node_modules/wa-sqlite/src/examples/IDBBatchAtomicVFS.js","../../node_modules/.pnpm/wa-sqlite@https+++codeload.github.com+rhashimoto+wa-sqlite+tar.gz+2bf1c59d89eb6497535a4_4fa85ada02f0de8ab3ca67619a713b2f/node_modules/wa-sqlite/src/examples/AccessHandlePoolVFS.js","../../node_modules/.pnpm/wa-sqlite@https+++codeload.github.com+rhashimoto+wa-sqlite+tar.gz+2bf1c59d89eb6497535a4_4fa85ada02f0de8ab3ca67619a713b2f/node_modules/wa-sqlite/src/examples/OPFSCoopSyncVFS.js","../../node_modules/.pnpm/wa-sqlite@https+++codeload.github.com+rhashimoto+wa-sqlite+tar.gz+2bf1c59d89eb6497535a4_4fa85ada02f0de8ab3ca67619a713b2f/node_modules/wa-sqlite/src/examples/Lock.js","../../node_modules/.pnpm/wa-sqlite@https+++codeload.github.com+rhashimoto+wa-sqlite+tar.gz+2bf1c59d89eb6497535a4_4fa85ada02f0de8ab3ca67619a713b2f/node_modules/wa-sqlite/src/examples/LazyLock.js","../../node_modules/.pnpm/wa-sqlite@https+++codeload.github.com+rhashimoto+wa-sqlite+tar.gz+2bf1c59d89eb6497535a4_4fa85ada02f0de8ab3ca67619a713b2f/node_modules/wa-sqlite/src/examples/WriteAhead.js","../../node_modules/.pnpm/wa-sqlite@https+++codeload.github.com+rhashimoto+wa-sqlite+tar.gz+2bf1c59d89eb6497535a4_4fa85ada02f0de8ab3ca67619a713b2f/node_modules/wa-sqlite/src/examples/OPFSWriteAheadVFS.js","../../node_modules/.pnpm/wa-sqlite@https+++codeload.github.com+rhashimoto+wa-sqlite+tar.gz+2bf1c59d89eb6497535a4_4fa85ada02f0de8ab3ca67619a713b2f/node_modules/wa-sqlite/src/examples/OPFSAdaptiveVFS.js","../../node_modules/.pnpm/wa-sqlite@https+++codeload.github.com+rhashimoto+wa-sqlite+tar.gz+2bf1c59d89eb6497535a4_4fa85ada02f0de8ab3ca67619a713b2f/node_modules/wa-sqlite/src/sqlite-api.js","../../src/locks.ts","../../src/types.ts","../../src/errors.ts","../../src/utils.ts","../../src/worker/cloneable.ts","../../src/worker/statement-cache.ts"],"sourcesContent":["/**\n * SQLite Web Worker entry point.\n *\n * Each worker in the pool runs this module. It handles two message types:\n * - `open` — loads the wa-sqlite WASM module, opens the database, and transitions to READY\n * - `query` — executes a SQL statement and streams results back as chunks\n *\n * Lifecycle labels (`NEW`, `READY`, `RUNNING`, `ABORTING`, `CLOSED`, `DEAD`) are\n * maintained by `src/pool.ts`, not by this module. From this worker's perspective:\n * the database open is serialised by `navigator.locks` (`initLockName(file)`);\n * readiness is reported via the `ready` message; an abort arrives as a `stop`\n * message and is observed through the credit gate's stopped flag.\n */\nimport * as SQLite from 'wa-sqlite/src/sqlite-api.js';\nimport {\n SQLITE_PREPARE_PERSISTENT,\n SQLITE_ROW,\n} from 'wa-sqlite/src/sqlite-constants.js';\nimport {\n createCreditGate,\n createMessageChannelTick,\n DEFAULT_CREDIT_WINDOW,\n} from '../credits';\nimport { createLocks, initLockName } from '../locks';\nimport {\n type ClientMessageData,\n defaultBuildFor,\n type SQLiteBuild,\n type SQLiteVFS,\n VFS_CAPABILITIES,\n type WasmLocation,\n type WorkerMessageData,\n} from '../types';\nimport { renderPragmas } from '../utils';\nimport { cloneable } from './cloneable';\nimport { createStatementCache } from './statement-cache';\n\ntype SQLOptions = { chunkSize?: number; signal?: AbortSignal };\n\nconst WA_SQLITE_BUILDS = {\n sync: () =>\n import(/* webpackChunkName: \"wa-sqlite\" */ 'wa-sqlite/dist/wa-sqlite.mjs'),\n async: () =>\n import(\n /* webpackChunkName: \"wa-sqlite-async\" */ 'wa-sqlite/dist/wa-sqlite-async.mjs'\n ),\n jspi: () =>\n import(\n /* webpackChunkName: \"wa-sqlite-jspi\" */ 'wa-sqlite/dist/wa-sqlite-jspi.mjs'\n ),\n} as const satisfies Record<SQLiteBuild, () => Promise<any>>;\n\n/**\n * VFS loaders only. Which build each VFS may run on lives in `VFS_CAPABILITIES`\n * (`src/types.ts`) and nowhere else — the client validates against it and sends\n * the chosen build in the `open` message, so there is no second copy to drift.\n */\nconst VFSConfigs = {\n OPFSAdaptiveVFS: {\n fs: () =>\n import(\n /* webpackChunkName: \"OPFSAdaptiveVFS\" */ 'wa-sqlite/src/examples/OPFSAdaptiveVFS.js'\n ),\n },\n OPFSWriteAheadVFS: {\n fs: () =>\n import(\n /* webpackChunkName: \"OPFSWriteAheadVFS\" */ 'wa-sqlite/src/examples/OPFSWriteAheadVFS.js'\n ),\n },\n OPFSCoopSyncVFS: {\n fs: () =>\n import(\n /* webpackChunkName: \"OPFSCoopSyncVFS\" */ 'wa-sqlite/src/examples/OPFSCoopSyncVFS.js'\n ),\n },\n AccessHandlePoolVFS: {\n fs: () =>\n import(\n /* webpackChunkName: \"AccessHandlePoolVFS\" */ 'wa-sqlite/src/examples/AccessHandlePoolVFS.js'\n ),\n },\n IDBBatchAtomicVFS: {\n fs: () =>\n import(\n /* webpackChunkName: \"IDBBatchAtomicVFS\" */ 'wa-sqlite/src/examples/IDBBatchAtomicVFS.js'\n ),\n },\n IDBMirrorVFS: {\n fs: () =>\n import(\n /* webpackChunkName: \"IDBMirrorVFS\" */ 'wa-sqlite/src/examples/IDBMirrorVFS.js'\n ),\n },\n OPFSAnyContextVFS: {\n fs: () =>\n import(\n /* webpackChunkName: \"OPFSAnyContextVFS\" */ 'wa-sqlite/src/examples/OPFSAnyContextVFS.js'\n ),\n },\n MemoryVFS: {\n fs: () =>\n import(\n /* webpackChunkName: \"MemoryVFS\" */ 'wa-sqlite/src/examples/MemoryVFS.js'\n ),\n },\n MemoryAsyncVFS: {\n fs: () =>\n import(\n /* webpackChunkName: \"MemoryAsyncVFS\" */ 'wa-sqlite/src/examples/MemoryAsyncVFS.js'\n ),\n },\n} as const satisfies Record<SQLiteVFS, { fs: () => Promise<any> }>;\n\nlet openedDB: Promise<{ sqlite: SQLiteAPI; db: number }> | undefined;\nconst gate = createCreditGate(createMessageChannelTick());\nconst locks = createLocks();\n\n/** Resolved while no query is running; `close` waits on it before closing. */\nlet queryRunning: PromiseWithResolvers<void> | undefined;\nconst idleUntilQueryEnds = () => queryRunning?.promise ?? Promise.resolve();\nlet closing = false;\n\ntype OpenOptions = {\n vfs: SQLiteVFS;\n build?: SQLiteBuild | undefined;\n wasm?: WasmLocation | undefined;\n pragmas?: Record<string, string> | undefined;\n statementCacheSize?: number | undefined;\n};\n\n/**\n * The Emscripten module argument carrying the consumer's `wasmUrl`, or\n * `undefined` when they gave none.\n *\n * `undefined` is not a detail. `findWasmBinary` reads\n * `if (Module[\"locateFile\"])` and otherwise takes its\n * `new URL('wa-sqlite.wasm', import.meta.url)` branch — the branch a bundler\n * rewrites to the hashed asset it emitted. Setting `locateFile`\n * unconditionally, even to a faithful pass-through, would leave that branch\n * for a path built from the worker's own directory, where no hashed asset\n * exists. Every bundled consumer would break to serve a hand-moved one.\n *\n * The two forms differ in who names the file: with a `base`, the glue passes\n * its own file name and each build finds its own `.wasm` from one directory;\n * with a `file`, the caller has named a specific build's asset, so the glue's\n * name is discarded.\n */\nconst wasmModuleArg = (wasm: WasmLocation | undefined) =>\n wasm === undefined\n ? undefined\n : {\n locateFile:\n 'base' in wasm ? (path: string) => wasm.base + path : () => wasm.file,\n };\n\n/**\n * Called once per worker thread when the client sends the `open` message.\n * Loads the wa-sqlite WASM module and VFS, acquires the initialization lock to\n * prevent parallel DB opens across the pool, opens the SQLite database, then\n * transitions this worker to READY and replaces the top-level message handler\n * with the query handler.\n *\n * Database open is serialised by a `navigator.locks` lock on `initLockName(file)`.\n * On success, posts a `ready` message; `src/pool.ts` then transitions the worker\n * label from `NEW` to `READY`.\n *\n * @param file - Normalized database file name passed from `createSQLiteClient`.\n * @param options - VFS selection and PRAGMA map.\n */\nconst open = (file: string, options: OpenOptions) => {\n if (openedDB) {\n throw new Error('DB already opened');\n }\n\n const { vfs, wasm, pragmas = {} } = options;\n const build = options.build ?? defaultBuildFor(vfs);\n\n const vfsConfig = VFSConfigs[vfs];\n\n openedDB = WA_SQLITE_BUILDS[build]()\n .then(({ default: factory }) => factory(wasmModuleArg(wasm)))\n .then((module) => {\n const sqlite = SQLite.Factory(module);\n return vfsConfig.fs().then((vfsModule) => ({\n sqlite,\n module,\n vfsModule: (vfsModule as unknown as Record<string, VFSClass>)[vfs],\n }));\n })\n .then(({ sqlite, module, vfsModule }) => {\n return (\n vfsModule.create(vfs, module, { lockPolicy: 'shared' }) as Promise<any>\n ).then((vfsInstance: any) => {\n sqlite.vfs_register(vfsInstance, true);\n // One lock for open + pragmas. withLock releases on throw too, which\n // is what the explicit unlock() in the old .catch existed to do.\n //\n // `file` arrives already normalized from `createSQLiteClient`, so\n // two clients spelling the same database differently (e.g. 'data' vs\n // './data') always compete on the same lock and open the same file.\n // The relative form is intentional: sqlite3_open_v2 checks\n // nPathname + 8 > mxPathname (64, wa-sqlite/src/VFS.js:10) before\n // xOpen, so an absolute name costs a character the budget cannot spare\n // (measured: broke all 96 browser tests on 56-char names). The VFS\n // normalizes internally, so 'data' and '/data' open the same OPFS file.\n return locks.withLock(initLockName(file), async () => {\n const db = await sqlite.open_v2(file);\n for (const statement of renderPragmas(pragmas)) {\n for await (const stmt of sqlite.statements(db, statement)) {\n while ((await sqlite.step(stmt)) === SQLITE_ROW) {}\n }\n }\n return { sqlite, db };\n });\n });\n })\n .then((opened) => {\n self.postMessage({ type: 'ready', callId: 0 });\n return opened;\n })\n .catch((error: unknown) => {\n self.postMessage({\n type: 'open-error',\n callId: 0,\n message:\n error instanceof Error ? error.message : `Failed to open ${file}`,\n cause: cloneable(error),\n // wa-sqlite raises SQLiteError(message, code) with SQLite's numeric\n // result code. Carry it across the postMessage boundary so pool.ts\n // can mint SQLiteError('BUSY') rather than SQLiteError('WORKER_CRASHED').\n ...(typeof (error as { code?: unknown })?.code === 'number'\n ? { sqliteCode: (error as { code: number }).code }\n : {}),\n });\n throw error;\n });\n\n // Nothing awaits openedDB until a query arrives; keep a failed open from\n // becoming an unhandled rejection in the worker.\n openedDB.catch(() => {});\n\n const reply = (data: WorkerMessageData) => {\n self.postMessage(data);\n };\n\n // One query at a time per worker (a worker holds one lease), so a single\n // counter cannot interleave. Reset by the `query` case, read by its reply.\n let prepared = 0;\n\n const cache = createStatementCache(options.statementCacheSize ?? 0);\n\n const query = async function* (\n sql: string,\n params: unknown[],\n options?: SQLOptions,\n ) {\n if (!openedDB) throw new Error('No DB opened');\n\n const { sqlite, db } = await openedDB;\n const { chunkSize = 1 } = options ?? {};\n\n const buffer: Record<string, unknown>[] = [];\n\n /** Binds and streams one statement. Never finalises: the caller owns it. */\n const run = async function* (stmt: number) {\n if (params?.length) {\n sqlite.bind_collection(stmt, params as any);\n }\n // Column names are read after the first SQLITE_ROW, not before: v2\n // re-preparation happens during step(), so names read beforehand would\n // describe the old schema on a cached statement after an ALTER TABLE.\n let cols: string[] | undefined;\n\n while (true) {\n if (gate.isStopped()) break;\n\n const result = await sqlite.step(stmt);\n if (gate.isStopped()) break;\n\n if (result === SQLITE_ROW) {\n cols ??= sqlite.column_names(stmt) as string[];\n const row = sqlite.row(stmt);\n // Deliberately not `Object.fromEntries(cols.map(...))`: that shape\n // allocates one two-element array per column per row on the hottest\n // path in the library. Measured 2026-08-31 over 50 000 rows x 12\n // columns — 17.5 ms against 4.4 ms on Chromium, 23 ms against 14 ms\n // on Firefox (`mem:measurements`). Same output, so nothing but the\n // allocation is lost. Do not \"simplify\" it back.\n const out: Record<string, unknown> = {};\n for (let i = 0; i < cols.length; i++) {\n out[cols[i] as string] = row[i];\n }\n buffer.push(out);\n\n if (buffer.length >= chunkSize) {\n yield buffer.splice(0, chunkSize);\n }\n } else {\n while (buffer.length) {\n yield buffer.splice(0, chunkSize);\n }\n break;\n }\n }\n };\n\n /**\n * The exit discipline, on every path out of a retained statement:\n * `reset` ends the statement's implicit transaction, which is what keeps\n * a cached statement from holding a read transaction open and poisoning\n * the barrier; `clear_bindings` is the correctness condition of reuse.\n * A statement that errored is finalised instead — `sqlite3_reset` returns\n * the failed step's code, so resetting it throws.\n */\n const settle = async (stmt: number, failed: boolean) => {\n if (failed) {\n cache.delete(sql);\n await sqlite.finalize(stmt);\n return;\n }\n try {\n await sqlite.reset(stmt);\n sqlite.clear_bindings(stmt);\n } catch {\n cache.delete(sql);\n await sqlite.finalize(stmt);\n return;\n }\n for (const handle of cache.set(sql, stmt)) {\n await sqlite.finalize(handle);\n }\n };\n\n const cached = cache.get(sql);\n\n if (typeof cached === 'number') {\n let failed = false;\n try {\n yield* run(cached);\n } catch (e) {\n failed = true;\n throw e;\n } finally {\n await settle(cached, failed);\n }\n } else if (cached === 'uncacheable') {\n // Today's path, untouched: the generator finalises what it yields.\n for await (const stmt of sqlite.statements(db, sql)) {\n prepared++;\n yield* run(stmt);\n }\n } else {\n let keep: number | undefined;\n let live: number | undefined;\n let single: boolean | undefined;\n let failed = false;\n try {\n for await (const stmt of sqlite.statements(db, sql, {\n unscoped: true,\n flags: SQLITE_PREPARE_PERSISTENT,\n })) {\n prepared++;\n single ??= isSingleStatement(sql, sqlite.sql(stmt));\n // Assigned BEFORE the rows are streamed: first() breaks out of the\n // loop, and an assignment after `yield*` would never run.\n if (single) keep = stmt;\n else live = stmt;\n\n yield* run(stmt);\n\n if (!single) {\n await sqlite.finalize(stmt);\n live = undefined;\n }\n }\n } catch (e) {\n failed = true;\n throw e;\n } finally {\n if (keep !== undefined) {\n await settle(keep, failed);\n } else if (live !== undefined) {\n // An early exit from a multi-statement string.\n await sqlite.finalize(live);\n }\n if (single === false) {\n for (const handle of cache.markUncacheable(sql)) {\n await sqlite.finalize(handle);\n }\n }\n }\n }\n\n yield sqlite.changes(db);\n };\n\n self.onmessage = async (event: MessageEvent<ClientMessageData>) => {\n const { data } = event;\n switch (data.type) {\n case 'query': {\n const { callId, sql, params, options } = data;\n try {\n // Reset the credit gate for this call. pool.ts sets the worker's\n // status to RUNNING after posting the query.\n gate.reset(callId, options?.credits ?? DEFAULT_CREDIT_WINDOW);\n prepared = 0;\n queryRunning = Promise.withResolvers<void>();\n let affected = 0;\n\n for await (const chunk of query(sql, params, options)) {\n if (typeof chunk === 'number') {\n affected = chunk;\n break;\n }\n if ((await gate.take(callId)) === 'stopped') break;\n reply({ type: 'chunk', callId, data: chunk });\n }\n\n if (closing) {\n reply({\n type: 'error',\n callId,\n message: 'The SQLite client has been closed.',\n });\n } else {\n reply({ type: 'done', callId, affected, prepared });\n }\n } catch (e) {\n reply({\n type: 'error',\n callId,\n ...(typeof e === 'object'\n ? e instanceof Error\n ? { message: e.message, cause: cloneable(e.cause) }\n : { message: 'Unknown error', cause: e }\n : { message: `Unknown error (${e})` }),\n // wa-sqlite raises SQLiteError(message, code) with SQLite's numeric\n // result code. Without this the code dies at the postMessage\n // boundary and the client can only string-match the message.\n ...(typeof (e as { code?: unknown })?.code === 'number'\n ? { sqliteCode: (e as { code: number }).code }\n : {}),\n });\n } finally {\n queryRunning?.resolve();\n queryRunning = undefined;\n }\n break;\n }\n case 'close': {\n // Spec §5.3: with the tick, `close` is deliverable mid-query for the\n // first time. Closing a database under a live statement returns\n // SQLITE_BUSY, which the catch below would swallow while the row loop\n // kept running. Stop first, let the query unwind, then close.\n closing = true;\n gate.stop();\n await idleUntilQueryEnds();\n try {\n const { sqlite, db } = await openedDB!;\n // SQLite refuses to close a connection carrying live statements,\n // and the catch below would swallow the SQLITE_BUSY. idleUntilQueryEnds\n // has already returned, so the in-flight query's statement is reset\n // and filed: nothing here is in use.\n for (const handle of cache.drain()) {\n await sqlite.finalize(handle);\n }\n await sqlite.close(db);\n } catch {\n // A database that never opened has nothing to close; the client is\n // shutting down either way and must still get its reply.\n }\n reply({ type: 'closed', callId: 0 });\n break;\n }\n case 'open': {\n // A second open is a protocol error; open() already guards against this.\n throw new Error('DB already opened');\n }\n case 'delete': {\n // A delete worker never opens a database, so this message cannot arrive\n // here: it is handled by the top-level onmessage before open() runs.\n throw new Error(\n 'delete message cannot arrive after a database is opened',\n );\n }\n case 'credit': {\n gate.grant(data.callId, data.n);\n break;\n }\n case 'stop': {\n gate.stop();\n break;\n }\n default: {\n const _unexpected: never = data;\n throw new Error(\n `Unhandled worker message: ${JSON.stringify(_unexpected)}`,\n );\n }\n }\n };\n};\n\n/**\n * Whether `sql` compiled to exactly one statement, decided from the text\n * `sqlite3_sql` returns for the first statement — its own span of the input,\n * not the whole input. Asked before the first `step`, because `first()` and an\n * aborted read both leave the generator early and would never learn a count.\n *\n * Normalisation is edge whitespace and one trailing semicolon, applied\n * identically to both sides, which are two views of the same text: nothing is\n * case-folded, and an interior newline sits in the same place on both sides.\n * A false negative costs a compilation; a false positive would replay only\n * the first statement of a multi-statement string, so the failure direction\n * is the safe one.\n */\nconst isSingleStatement = (sql: string, statementText: string) => {\n const normalize = (s: string) => s.trim().replace(/;+$/, '').trim();\n return normalize(sql) === normalize(statementText);\n};\n\n/**\n * The database and the two siblings SQLite may leave beside it. The set is\n * upstream's own (`OPFSCoopSyncVFS.js:8`), not a guess: a stale `-journal` next\n * to a deleted database is a hot journal, and recreating a database of that\n * name would have SQLite attempt a rollback from it. On `AccessHandlePoolVFS`\n * each sibling also occupies its own pool slot.\n */\nconst DB_RELATED_SUFFIXES = ['', '-journal', '-wal'] as const;\n\n/**\n * Removes one OPFS entry if it is there, walking the path's directories.\n * A missing entry is success — which is what makes this pass inert should\n * upstream's `jDelete` start removing the file itself.\n */\nconst removeOpfsEntry = async (path: string): Promise<void> => {\n const segments = path.split('/').filter(Boolean);\n const name = segments.pop();\n if (!name) return;\n try {\n let dir = await navigator.storage.getDirectory();\n for (const segment of segments) {\n dir = await dir.getDirectoryHandle(segment);\n }\n await dir.removeEntry(name);\n } catch (error) {\n if ((error as DOMException)?.name === 'NotFoundError') return;\n throw error;\n }\n};\n\n/**\n * Deletes a database without opening it.\n *\n * The VFS is instantiated because `jDelete` is the only correct removal on\n * `AccessHandlePoolVFS` — it un-associates the SQLite path and returns the slot\n * to the pool, where deleting the OPFS file by name would match nothing.\n *\n * The second pass exists because two of the seven persistent `jDelete`\n * implementations do not delete: `OPFSCoopSyncVFS` truncates a file it never\n * removes, and is a silent no-op for a database that is not open — which is\n * every database here, since nothing is opened; `OPFSWriteAheadVFS` throws for\n * anything that is not a bound temporary file. Both keep the database at the\n * plain OPFS path, so the remedy is the `removeEntry` the other two OPFS VFS\n * already perform internally. It runs for all four `opfs-path` VFS rather than\n * for an exception list, because it is idempotent and a list would be a second\n * place to update when a VFS is added.\n */\nconst deleteDatabaseFiles = async (data: {\n file: string;\n vfs: SQLiteVFS;\n build?: SQLiteBuild;\n wasm?: WasmLocation;\n}) => {\n const { file, vfs, wasm } = data;\n const build = data.build ?? defaultBuildFor(vfs);\n\n const { default: factory } = await WA_SQLITE_BUILDS[build]();\n const module = await factory(wasmModuleArg(wasm));\n const vfsModule = (await VFSConfigs[vfs].fs()) as unknown as Record<\n string,\n VFSClass\n >;\n const vfsInstance = (await vfsModule[vfs].create(vfs, module, {\n lockPolicy: 'shared',\n })) as any;\n\n try {\n for (const suffix of DB_RELATED_SUFFIXES) {\n // Pass syncDir=1, not 0. IDBBatchAtomicVFS.jDelete (wa-sqlite\n // IDBBatchAtomicVFS.js:119-133) only awaits its IndexedDB transaction\n // when syncDir is truthy — with 0 the delete is queued on #chain but\n // the worker exits before it commits, leaving the data intact.\n // OPFSAdaptiveVFS, OPFSAnyContextVFS and IDBMirrorVFS honour the same\n // flag with `if (syncDir) await result`; the remaining VFS ignore it.\n await vfsInstance.jDelete(`${file}${suffix}`, 1);\n }\n\n // Commit barrier for idb-store VFS. This call is a barrier, not a check —\n // its return value is deliberately discarded. Removing it silently\n // reintroduces the data-survives-deletion defect that invariant 7 caught.\n //\n // Why it works: IDBBatchAtomicVFS.jDelete with syncDir=1 calls sync(false),\n // which awaits #chain (IDB requests submitted) but NOT #txComplete\n // (transaction oncomplete). The rw delete transactions are still pending\n // when the worker would otherwise exit; worker termination closes the IDB\n // connection and aborts them. jAccess issues a ro transaction on the same\n // connection whose lambda returns the metadata.get promise, so #q awaits\n // the request result (IDBBatchAtomicVFS.js:146-157). Per the IndexedDB\n // specification, a ro transaction cannot acquire its object-store locks\n // until every rw transaction with overlapping scope on the same connection\n // has committed — that is a spec requirement, not engine behaviour. When\n // metadata.get's onsuccess fires, the rw deletes are durably committed.\n //\n // IDBMirrorVFS (also idb-store) is inert here: its jAccess is a pure\n // in-memory map lookup that issues no IDB transaction (IDBMirrorVFS.js:\n // 239-253), so no serialisation barrier is created. That is harmless\n // because IDBMirrorVFS.#deleteFile already awaits oncomplete before\n // returning (IDBMirrorVFS.js:738-751).\n //\n // The gate is by layout declaration, not by VFS name, keeping with this\n // project's convention that VFS behaviour is declared once in\n // VFS_CAPABILITIES and never special-cased by name. A future idb-store VFS\n // inherits the barrier, which is either needed (like IDBBatchAtomicVFS) or\n // inert (like IDBMirrorVFS).\n if (VFS_CAPABILITIES[vfs].layout === 'idb-store') {\n const pResOut = new DataView(new ArrayBuffer(4));\n await vfsInstance.jAccess(`${file}`, 0, pResOut);\n }\n } finally {\n await vfsInstance.close?.();\n }\n\n if (VFS_CAPABILITIES[vfs].layout === 'opfs-path') {\n for (const suffix of DB_RELATED_SUFFIXES) {\n await removeOpfsEntry(`${file}${suffix}`);\n }\n }\n};\n\n// Top-level message handler: processes only 'open' messages.\n// After open() completes, the query handler installed inside open() takes over\n// and this handler is no longer the active responder for incoming messages.\nself.onmessage = async (event: MessageEvent<ClientMessageData>) => {\n const { data } = event;\n switch (data.type) {\n case 'open': {\n const { file, vfs, build, pragmas, statementCacheSize } = data;\n open(file, { vfs, build, pragmas, statementCacheSize });\n break;\n }\n case 'delete': {\n deleteDatabaseFiles(data)\n .then(() => {\n self.postMessage({ type: 'deleted', callId: 0 });\n })\n .catch((error: unknown) => {\n self.postMessage({\n type: 'error',\n callId: 0,\n message:\n error instanceof Error\n ? error.message\n : `Failed to delete ${data.file}`,\n cause: cloneable(error),\n ...(typeof (error as { code?: unknown })?.code === 'number'\n ? { sqliteCode: (error as { code: number }).code }\n : {}),\n });\n });\n break;\n }\n case 'query': {\n // queries arrive only after open() replaces self.onmessage; this case\n // is unreachable at runtime but satisfies the exhaustive check.\n break;\n }\n case 'close': {\n // close arrived before open completed — no database to close; reply immediately.\n self.postMessage({ type: 'closed', callId: 0 });\n break;\n }\n // No query can be running before open.\n case 'credit':\n case 'stop': {\n break;\n }\n default: {\n const _unexpected: never = data;\n throw new Error(\n `Unhandled worker message: ${JSON.stringify(_unexpected)}`,\n );\n }\n }\n};\n","/**\n * The credit gate: back-pressure for chunk production, and the task turn that\n * makes a worker reachable by `postMessage` while it is inside a query.\n *\n * Pure and Node-testable on purpose. B1 survived for months because the\n * scheduler was reachable only through slow browser tests; this module has the\n * same profile — subtle state transitions otherwise buried behind a worker, a\n * VFS and a real database.\n */\n\n/** One turn of the task queue. Injected so Node tests can drive it. */\nexport type Tick = () => Promise<void>;\n\n/** Chunks a worker may send before waiting for a credit. Spec §3.4. */\nexport const DEFAULT_CREDIT_WINDOW = 2;\n\nexport type CreditGate = {\n /** Begin a query: `window` credits, not stopped, credit counter cleared. */\n reset: (callId: number, window: number) => void;\n /** Add credits for `callId`. A stale `callId` is ignored (§5.4). */\n grant: (callId: number, n: number) => void;\n /** Stop the current query, waking any wait in progress (§5.1). */\n stop: () => void;\n /** Spend one credit. Always costs one task turn first. */\n take: (callId: number) => Promise<'go' | 'stopped'>;\n isStopped: () => boolean;\n tick: Tick;\n};\n\n/**\n * A task turn via MessageChannel. NOT setTimeout: nested setTimeout is clamped\n * to 4 ms, which would cost seconds over a few hundred chunks (spec §3.1).\n */\nexport const createMessageChannelTick = (): Tick => {\n const channel = new MessageChannel();\n const waiters: (() => void)[] = [];\n channel.port1.onmessage = () => {\n waiters.shift()?.();\n };\n return () =>\n new Promise<void>((resolve) => {\n waiters.push(resolve);\n channel.port2.postMessage(0);\n });\n};\n\nexport const createCreditGate = (tick: Tick): CreditGate => {\n let credits = 0;\n let currentCallId = -1;\n let stopped = false;\n let signal = Promise.withResolvers<void>();\n\n /** Settle whoever is waiting, and arm a fresh signal for the next wait. */\n const wake = () => {\n const previous = signal;\n signal = Promise.withResolvers<void>();\n previous.resolve();\n };\n\n return {\n reset: (callId, window) => {\n currentCallId = callId;\n credits = window;\n stopped = false;\n },\n\n grant: (callId, n) => {\n if (callId !== currentCallId) return;\n credits += n;\n wake();\n },\n\n stop: () => {\n stopped = true;\n wake();\n },\n\n take: async (callId) => {\n if (callId !== currentCallId) return 'stopped';\n // Unconditional, before the credit check: this is the task turn, and it\n // is the only reason a queued `stop` or `close` is ever delivered.\n await tick();\n while (credits <= 0 && !stopped) {\n await signal.promise;\n }\n if (stopped) return 'stopped';\n credits -= 1;\n return 'go';\n },\n\n isStopped: () => stopped,\n tick,\n };\n};\n","\nvar Module = (() => {\n var _scriptName = import.meta.url;\n \n return (\nfunction(moduleArg = {}) {\n var moduleRtn;\n\nvar Module=moduleArg;var readyPromiseResolve,readyPromiseReject;var readyPromise=new Promise((resolve,reject)=>{readyPromiseResolve=resolve;readyPromiseReject=reject});var ENVIRONMENT_IS_WEB=typeof window==\"object\";var ENVIRONMENT_IS_WORKER=typeof importScripts==\"function\";var ENVIRONMENT_IS_NODE=typeof process==\"object\"&&typeof process.versions==\"object\"&&typeof process.versions.node==\"string\";var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram=\"./this.program\";var quit_=(status,toThrow)=>{throw toThrow};var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary;if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=\"undefined\"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptName){scriptDirectory=_scriptName}if(scriptDirectory.startsWith(\"blob:\")){scriptDirectory=\"\"}else{scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,\"\").lastIndexOf(\"/\")+1)}{read_=url=>{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=(url,onload,onerror)=>{fetch(url,{credentials:\"same-origin\"}).then(response=>{if(response.ok){return response.arrayBuffer()}return Promise.reject(new Error(response.status+\" : \"+response.url))}).then(onload,onerror)}}}else{}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.error.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var wasmMemory;var ABORT=false;var EXITSTATUS;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateMemoryViews(){var b=wasmMemory.buffer;Module[\"HEAP8\"]=HEAP8=new Int8Array(b);Module[\"HEAP16\"]=HEAP16=new Int16Array(b);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(b);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(b);Module[\"HEAP32\"]=HEAP32=new Int32Array(b);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(b);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(b);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(b)}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module[\"noFSInit\"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;Module[\"monitorRunDependencies\"]?.(runDependencies)}function removeRunDependency(id){runDependencies--;Module[\"monitorRunDependencies\"]?.(runDependencies);if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){Module[\"onAbort\"]?.(what);what=\"Aborted(\"+what+\")\";err(what);ABORT=true;EXITSTATUS=1;what+=\". Build with -sASSERTIONS for more info.\";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix=\"data:application/octet-stream;base64,\";var isDataURI=filename=>filename.startsWith(dataURIPrefix);function findWasmBinary(){if(Module[\"locateFile\"]){var f=\"wa-sqlite-jspi.wasm\";if(!isDataURI(f)){return locateFile(f)}return f}return new URL(\"wa-sqlite-jspi.wasm\",import.meta.url).href}var wasmBinaryFile;function getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw\"both async and sync fetching of the wasm failed\"}function getBinaryPromise(binaryFile){if(!wasmBinary){return new Promise((resolve,reject)=>{readAsync(binaryFile,response=>resolve(new Uint8Array(response)),error=>{try{resolve(getBinarySync(binaryFile))}catch(e){reject(e)}})})}return Promise.resolve().then(()=>getBinarySync(binaryFile))}function instantiateArrayBuffer(binaryFile,imports,receiver){return getBinaryPromise(binaryFile).then(binary=>WebAssembly.instantiate(binary,imports)).then(receiver,reason=>{err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)})}function instantiateAsync(binary,binaryFile,imports,callback){if(!binary&&typeof WebAssembly.instantiateStreaming==\"function\"&&!isDataURI(binaryFile)&&typeof fetch==\"function\"){return fetch(binaryFile,{credentials:\"same-origin\"}).then(response=>{var result=WebAssembly.instantiateStreaming(response,imports);return result.then(callback,function(reason){err(`wasm streaming compile failed: ${reason}`);err(\"falling back to ArrayBuffer instantiation\");return instantiateArrayBuffer(binaryFile,imports,callback)})})}return instantiateArrayBuffer(binaryFile,imports,callback)}function getWasmImports(){Asyncify.instrumentWasmImports(wasmImports);return{env:wasmImports,wasi_snapshot_preview1:wasmImports}}function createWasm(){var info=getWasmImports();function receiveInstance(instance,module){wasmExports=instance.exports;wasmExports=Asyncify.instrumentWasmExports(wasmExports);wasmMemory=wasmExports[\"memory\"];updateMemoryViews();wasmTable=wasmExports[\"__indirect_function_table\"];addOnInit(wasmExports[\"__wasm_call_ctors\"]);removeRunDependency(\"wasm-instantiate\");return wasmExports}addRunDependency(\"wasm-instantiate\");function receiveInstantiationResult(result){receiveInstance(result[\"instance\"])}if(Module[\"instantiateWasm\"]){try{return Module[\"instantiateWasm\"](info,receiveInstance)}catch(e){err(`Module.instantiateWasm callback failed with error: ${e}`);readyPromiseReject(e)}}if(!wasmBinaryFile)wasmBinaryFile=findWasmBinary();instantiateAsync(wasmBinary,wasmBinaryFile,info,receiveInstantiationResult).catch(readyPromiseReject);return{}}var tempDouble;var tempI64;function ExitStatus(status){this.name=\"ExitStatus\";this.message=`Program terminated with exit(${status})`;this.status=status}var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};function getValue(ptr,type=\"i8\"){if(type.endsWith(\"*\"))type=\"*\";switch(type){case\"i1\":return HEAP8[ptr];case\"i8\":return HEAP8[ptr];case\"i16\":return HEAP16[ptr>>1];case\"i32\":return HEAP32[ptr>>2];case\"i64\":abort(\"to do getValue(i64) use WASM_BIGINT\");case\"float\":return HEAPF32[ptr>>2];case\"double\":return HEAPF64[ptr>>3];case\"*\":return HEAPU32[ptr>>2];default:abort(`invalid type for getValue: ${type}`)}}var noExitRuntime=Module[\"noExitRuntime\"]||true;function setValue(ptr,value,type=\"i8\"){if(type.endsWith(\"*\"))type=\"*\";switch(type){case\"i1\":HEAP8[ptr]=value;break;case\"i8\":HEAP8[ptr]=value;break;case\"i16\":HEAP16[ptr>>1]=value;break;case\"i32\":HEAP32[ptr>>2]=value;break;case\"i64\":abort(\"to do setValue(i64) use WASM_BIGINT\");case\"float\":HEAPF32[ptr>>2]=value;break;case\"double\":HEAPF64[ptr>>3]=value;break;case\"*\":HEAPU32[ptr>>2]=value;break;default:abort(`invalid type for setValue: ${type}`)}}var stackRestore=val=>__emscripten_stack_restore(val);var stackSave=()=>_emscripten_stack_get_current();var UTF8Decoder=typeof TextDecoder!=\"undefined\"?new TextDecoder(\"utf8\"):undefined;var UTF8ArrayToString=(heapOrArray,idx,maxBytesToRead)=>{var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str=\"\";while(idx<endPtr){var u0=heapOrArray[idx++];if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heapOrArray[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heapOrArray[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heapOrArray[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str};var UTF8ToString=(ptr,maxBytesToRead)=>ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):\"\";var ___assert_fail=(condition,filename,line,func)=>{abort(`Assertion failed: ${UTF8ToString(condition)}, at: `+[filename?UTF8ToString(filename):\"unknown filename\",line,func?UTF8ToString(func):\"unknown function\"])};var PATH={isAbs:path=>path.charAt(0)===\"/\",splitPath:filename=>{var splitPathRe=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:(parts,allowAboveRoot)=>{var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last===\".\"){parts.splice(i,1)}else if(last===\"..\"){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift(\"..\")}}return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.substr(-1)===\"/\";path=PATH.normalizeArray(path.split(\"/\").filter(p=>!!p),!isAbsolute).join(\"/\");if(!path&&!isAbsolute){path=\".\"}if(path&&trailingSlash){path+=\"/\"}return(isAbsolute?\"/\":\"\")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return\".\"}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:path=>{if(path===\"/\")return\"/\";path=PATH.normalize(path);path=path.replace(/\\/$/,\"\");var lastSlash=path.lastIndexOf(\"/\");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},join:(...paths)=>PATH.normalize(paths.join(\"/\")),join2:(l,r)=>PATH.normalize(l+\"/\"+r)};var initRandomFill=()=>{if(typeof crypto==\"object\"&&typeof crypto[\"getRandomValues\"]==\"function\"){return view=>crypto.getRandomValues(view)}else abort(\"initRandomDevice\")};var randomFill=view=>(randomFill=initRandomFill())(view);var PATH_FS={resolve:(...args)=>{var resolvedPath=\"\",resolvedAbsolute=false;for(var i=args.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?args[i]:FS.cwd();if(typeof path!=\"string\"){throw new TypeError(\"Arguments to path.resolve must be strings\")}else if(!path){return\"\"}resolvedPath=path+\"/\"+resolvedPath;resolvedAbsolute=PATH.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split(\"/\").filter(p=>!!p),!resolvedAbsolute).join(\"/\");return(resolvedAbsolute?\"/\":\"\")+resolvedPath||\".\"},relative:(from,to)=>{from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start<arr.length;start++){if(arr[start]!==\"\")break}var end=arr.length-1;for(;end>=0;end--){if(arr[end]!==\"\")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split(\"/\"));var toParts=trim(to.split(\"/\"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i<length;i++){if(fromParts[i]!==toParts[i]){samePartsLength=i;break}}var outputParts=[];for(var i=samePartsLength;i<fromParts.length;i++){outputParts.push(\"..\")}outputParts=outputParts.concat(toParts.slice(samePartsLength));return outputParts.join(\"/\")}};var FS_stdin_getChar_buffer=[];var lengthBytesUTF8=str=>{var len=0;for(var i=0;i<str.length;++i){var c=str.charCodeAt(i);if(c<=127){len++}else if(c<=2047){len+=2}else if(c>=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var 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 intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var FS_stdin_getChar=()=>{if(!FS_stdin_getChar_buffer.length){var result=null;if(typeof window!=\"undefined\"&&typeof window.prompt==\"function\"){result=window.prompt(\"Input: \");if(result!==null){result+=\"\\n\"}}else{}if(!result){return null}FS_stdin_getChar_buffer=intArrayFromString(result,true)}return FS_stdin_getChar_buffer.shift()};var TTY={ttys:[],init(){},shutdown(){},register(dev,ops){TTY.ttys[dev]={input:[],output:[],ops:ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},close(stream){stream.tty.ops.fsync(stream.tty)},fsync(stream){stream.tty.ops.fsync(stream.tty)},read(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(60)}var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=stream.tty.ops.get_char(stream.tty)}catch(e){throw new FS.ErrnoError(29)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(6)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}if(bytesRead){stream.node.timestamp=Date.now()}return bytesRead},write(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.put_char){throw new FS.ErrnoError(60)}try{for(var i=0;i<length;i++){stream.tty.ops.put_char(stream.tty,buffer[offset+i])}}catch(e){throw new FS.ErrnoError(29)}if(length){stream.node.timestamp=Date.now()}return i}},default_tty_ops:{get_char(tty){return FS_stdin_getChar()},put_char(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}},ioctl_tcgets(tty){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(tty,optional_actions,data){return 0},ioctl_tiocgwinsz(tty){return[24,80]}},default_tty1_ops:{put_char(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};var zeroMemory=(address,size)=>{HEAPU8.fill(0,address,address+size);return address};var alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;var mmapAlloc=size=>{size=alignMemory(size,65536);var ptr=_emscripten_builtin_memalign(65536,size);if(!ptr)return 0;return zeroMemory(ptr,size)};var MEMFS={ops_table:null,mount(mount){return MEMFS.createNode(null,\"/\",16384|511,0)},createNode(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}MEMFS.ops_table||={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}};var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity<CAPACITY_DOUBLING_MAX?2:1.125)>>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup(parent,name){throw FS.genericErrors[44]},mknod(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp},unlink(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir(node){var entries=[\".\",\"..\"];for(var key of Object.keys(node.contents)){entries.push(key)}return entries},symlink(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i<size;i++)buffer[offset+i]=contents[position+i]}return size},write(stream,buffer,offset,length,position,canOwn){if(buffer.buffer===HEAP8.buffer){canOwn=false}if(!length)return 0;var node=stream.node;node.timestamp=Date.now();if(buffer.subarray&&(!node.contents||node.contents.subarray)){if(canOwn){node.contents=buffer.subarray(offset,offset+length);node.usedBytes=length;return length}else if(node.usedBytes===0&&position===0){node.contents=buffer.slice(offset,offset+length);node.usedBytes=length;return length}else if(position+length<=node.usedBytes){node.contents.set(buffer.subarray(offset,offset+length),position);return length}}MEMFS.expandFileStorage(node,position+length);if(node.contents.subarray&&buffer.subarray){node.contents.set(buffer.subarray(offset,offset+length),position)}else{for(var i=0;i<length;i++){node.contents[position+i]=buffer[offset+i]}}node.usedBytes=Math.max(node.usedBytes,position+length);return length},llseek(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.usedBytes}}if(position<0){throw new FS.ErrnoError(28)}return position},allocate(stream,offset,length){MEMFS.expandFileStorage(stream.node,offset+length);stream.node.usedBytes=Math.max(stream.node.usedBytes,offset+length)},mmap(stream,length,position,prot,flags){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}var ptr;var allocated;var contents=stream.node.contents;if(!(flags&2)&&contents.buffer===HEAP8.buffer){allocated=false;ptr=contents.byteOffset}else{if(position>0||position+length<contents.length){if(contents.subarray){contents=contents.subarray(position,position+length)}else{contents=Array.prototype.slice.call(contents,position,position+length)}}allocated=true;ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}HEAP8.set(contents,ptr)}return{ptr:ptr,allocated:allocated}},msync(stream,buffer,offset,length,mmapFlags){MEMFS.stream_ops.write(stream,buffer,0,length,offset,false);return 0}}};var asyncLoad=(url,onload,onerror,noRunDep)=>{var dep=!noRunDep?getUniqueRunDependency(`al ${url}`):\"\";readAsync(url,arrayBuffer=>{onload(new Uint8Array(arrayBuffer));if(dep)removeRunDependency(dep)},event=>{if(onerror){onerror()}else{throw`Loading data file \"${url}\" failed.`}});if(dep)addRunDependency(dep)};var FS_createDataFile=(parent,name,fileData,canRead,canWrite,canOwn)=>{FS.createDataFile(parent,name,fileData,canRead,canWrite,canOwn)};var preloadPlugins=Module[\"preloadPlugins\"]||[];var FS_handledByPreloadPlugin=(byteArray,fullname,finish,onerror)=>{if(typeof Browser!=\"undefined\")Browser.init();var handled=false;preloadPlugins.forEach(plugin=>{if(handled)return;if(plugin[\"canHandle\"](fullname)){plugin[\"handle\"](byteArray,fullname,finish,onerror);handled=true}});return handled};var FS_createPreloadedFile=(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)=>{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency(`cp ${fullname}`);function processData(byteArray){function finish(byteArray){preFinish?.();if(!dontCreateFile){FS_createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}onload?.();removeRunDependency(dep)}if(FS_handledByPreloadPlugin(byteArray,fullname,finish,()=>{onerror?.();removeRunDependency(dep)})){return}finish(byteArray)}addRunDependency(dep);if(typeof url==\"string\"){asyncLoad(url,processData,onerror)}else{processData(url)}};var FS_modeStringToFlags=str=>{var flagModes={r:0,\"r+\":2,w:512|64|1,\"w+\":512|64|2,a:1024|64|1,\"a+\":1024|64|2};var flags=flagModes[str];if(typeof flags==\"undefined\"){throw new Error(`Unknown file open mode: ${str}`)}return flags};var FS_getMode=(canRead,canWrite)=>{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode};var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:\"/\",initialized:false,ignorePermissions:true,ErrnoError:class{constructor(errno){this.name=\"ErrnoError\";this.errno=errno}},genericErrors:{},filesystems:null,syncFSRequests:0,FSStream:class{constructor(){this.shared={}}get object(){return this.node}set object(val){this.node=val}get isRead(){return(this.flags&2097155)!==1}get isWrite(){return(this.flags&2097155)!==0}get isAppend(){return this.flags&1024}get flags(){return this.shared.flags}set flags(val){this.shared.flags=val}get position(){return this.shared.position}set position(val){this.shared.position=val}},FSNode:class{constructor(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev;this.readMode=292|73;this.writeMode=146}get read(){return(this.mode&this.readMode)===this.readMode}set read(val){val?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(val){val?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return FS.isDir(this.mode)}get isDevice(){return FS.isChrdev(this.mode)}},lookupPath(path,opts={}){path=PATH_FS.resolve(path);if(!path)return{path:\"\",node:null};var defaults={follow_mount:true,recurse_count:0};opts=Object.assign(defaults,opts);if(opts.recurse_count>8){throw new FS.ErrnoError(32)}var parts=path.split(\"/\").filter(p=>!!p);var current=FS.root;var current_path=\"/\";for(var i=0;i<parts.length;i++){var islast=i===parts.length-1;if(islast&&opts.parent){break}current=FS.lookupNode(current,parts[i]);current_path=PATH.join2(current_path,parts[i]);if(FS.isMountpoint(current)){if(!islast||islast&&opts.follow_mount){current=current.mounted.root}}if(!islast||opts.follow){var count=0;while(FS.isLink(current.mode)){var link=FS.readlink(current_path);current_path=PATH_FS.resolve(PATH.dirname(current_path),link);var lookup=FS.lookupPath(current_path,{recurse_count:opts.recurse_count+1});current=lookup.node;if(count++>40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!==\"/\"?`${mount}/${path}`:mount+path}path=path?`${node.name}/${path}`:node.name;node=node.parent}},hashName(parentid,name){var hash=0;for(var i=0;i<name.length;i++){hash=(hash<<5)-hash+name.charCodeAt(i)|0}return(parentid+hash>>>0)%FS.nameTable.length},hashAddNode(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode(node){FS.hashRemoveNode(node)},isRoot(node){return node===node.parent},isMountpoint(node){return!!node.mounted},isFile(mode){return(mode&61440)===32768},isDir(mode){return(mode&61440)===16384},isLink(mode){return(mode&61440)===40960},isChrdev(mode){return(mode&61440)===8192},isBlkdev(mode){return(mode&61440)===24576},isFIFO(mode){return(mode&61440)===4096},isSocket(mode){return(mode&49152)===49152},flagsToPermissionString(flag){var perms=[\"r\",\"w\",\"rw\"][flag&3];if(flag&512){perms+=\"w\"}return perms},nodePermissions(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes(\"r\")&&!(node.mode&292)){return 2}else if(perms.includes(\"w\")&&!(node.mode&146)){return 2}else if(perms.includes(\"x\")&&!(node.mode&73)){return 2}return 0},mayLookup(dir){if(!FS.isDir(dir.mode))return 54;var errCode=FS.nodePermissions(dir,\"x\");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,\"wx\")},mayDelete(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,\"wx\");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!==\"r\"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd(){for(var fd=0;fd<=FS.MAX_OPEN_FDS;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStreamChecked(fd){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}return stream},getStream:fd=>FS.streams[fd],createStream(stream,fd=-1){stream=Object.assign(new FS.FSStream,stream);if(fd==-1){fd=FS.nextfd()}stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream(fd){FS.streams[fd]=null},dupStream(origStream,fd=-1){var stream=FS.createStream(origStream,fd);stream.stream_ops?.dup?.(stream);return stream},chrdev_stream_ops:{open(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;stream.stream_ops.open?.(stream)},llseek(){throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push(...m.mounts)}return mounts},syncfs(populate,callback){if(typeof populate==\"function\"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err(`warning: ${FS.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`)}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(mount=>{if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount(type,opts,mountpoint){var root=mountpoint===\"/\";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(hash=>{var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup(parent,name){return parent.node_ops.lookup(parent,name)},mknod(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name===\".\"||name===\"..\"){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree(path,mode){var dirs=path.split(\"/\");var d=\"\";for(var i=0;i<dirs.length;++i){if(!dirs[i])continue;d+=\"/\"+dirs[i];try{FS.mkdir(d,mode)}catch(e){if(e.errno!=20)throw e}}},mkdev(path,mode,dev){if(typeof dev==\"undefined\"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)},symlink(oldpath,newpath){if(!PATH_FS.resolve(oldpath)){throw new FS.ErrnoError(44)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var newname=PATH.basename(newpath);var errCode=FS.mayCreate(parent,newname);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(63)}return parent.node_ops.symlink(parent,newname,oldpath)},rename(old_path,new_path){var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node;if(!old_dir||!new_dir)throw new FS.ErrnoError(44);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(75)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH_FS.relative(old_path,new_dirname);if(relative.charAt(0)!==\".\"){throw new FS.ErrnoError(28)}relative=PATH_FS.relative(new_path,old_dirname);if(relative.charAt(0)!==\".\"){throw new FS.ErrnoError(55)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var errCode=FS.mayDelete(old_dir,old_name,isdir);if(errCode){throw new FS.ErrnoError(errCode)}errCode=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(errCode){throw new FS.ErrnoError(errCode)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(63)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(10)}if(new_dir!==old_dir){errCode=FS.nodePermissions(old_dir,\"w\");if(errCode){throw new FS.ErrnoError(errCode)}}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name);old_node.parent=new_dir}catch(e){throw e}finally{FS.hashAddNode(old_node)}},rmdir(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,true);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node)},readdir(path){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node.node_ops.readdir){throw new FS.ErrnoError(54)}return node.node_ops.readdir(node)},unlink(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,false);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.unlink(parent,name);FS.destroyNode(node)},readlink(path){var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(44)}if(!link.node_ops.readlink){throw new FS.ErrnoError(28)}return PATH_FS.resolve(FS.getPath(link.parent),link.node_ops.readlink(link))},stat(path,dontFollow){var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;if(!node){throw new FS.ErrnoError(44)}if(!node.node_ops.getattr){throw new FS.ErrnoError(63)}return node.node_ops.getattr(node)},lstat(path){return FS.stat(path,true)},chmod(path,mode,dontFollow){var node;if(typeof path==\"string\"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{mode:mode&4095|node.mode&~4095,timestamp:Date.now()})},lchmod(path,mode){FS.chmod(path,mode,true)},fchmod(fd,mode){var stream=FS.getStreamChecked(fd);FS.chmod(stream.node,mode)},chown(path,uid,gid,dontFollow){var node;if(typeof path==\"string\"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{timestamp:Date.now()})},lchown(path,uid,gid){FS.chown(path,uid,gid,true)},fchown(fd,uid,gid){var stream=FS.getStreamChecked(fd);FS.chown(stream.node,uid,gid)},truncate(path,len){if(len<0){throw new FS.ErrnoError(28)}var node;if(typeof path==\"string\"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}if(FS.isDir(node.mode)){throw new FS.ErrnoError(31)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(28)}var errCode=FS.nodePermissions(node,\"w\");if(errCode){throw new FS.ErrnoError(errCode)}node.node_ops.setattr(node,{size:len,timestamp:Date.now()})},ftruncate(fd,len){var stream=FS.getStreamChecked(fd);if((stream.flags&2097155)===0){throw new FS.ErrnoError(28)}FS.truncate(stream.node,len)},utime(path,atime,mtime){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;node.node_ops.setattr(node,{timestamp:Math.max(atime,mtime)})},open(path,flags,mode){if(path===\"\"){throw new FS.ErrnoError(44)}flags=typeof flags==\"string\"?FS_modeStringToFlags(flags):flags;if(flags&64){mode=typeof mode==\"undefined\"?438:mode;mode=mode&4095|32768}else{mode=0}var node;if(typeof path==\"object\"){node=path}else{path=PATH.normalize(path);try{var lookup=FS.lookupPath(path,{follow:!(flags&131072)});node=lookup.node}catch(e){}}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(20)}}else{node=FS.mknod(path,mode,0);created=true}}if(!node){throw new FS.ErrnoError(44)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}if(!created){var errCode=FS.mayOpen(node,flags);if(errCode){throw new FS.ErrnoError(errCode)}}if(flags&512&&!created){FS.truncate(node,0)}flags&=~(128|512|131072);var stream=FS.createStream({node:node,path:FS.getPath(node),flags:flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false});if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(Module[\"logReadFiles\"]&&!(flags&1)){if(!FS.readFiles)FS.readFiles={};if(!(path in FS.readFiles)){FS.readFiles[path]=1}}return stream},close(stream){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}stream.fd=null},isClosed(stream){return stream.fd===null},llseek(stream,offset,whence){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(70)}if(whence!=0&&whence!=1&&whence!=2){throw new FS.ErrnoError(28)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position},read(stream,buffer,offset,length,position){if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.read){throw new FS.ErrnoError(28)}var seeking=typeof position!=\"undefined\";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead},write(stream,buffer,offset,length,position,canOwn){if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.write){throw new FS.ErrnoError(28)}if(stream.seekable&&stream.flags&1024){FS.llseek(stream,0,2)}var seeking=typeof position!=\"undefined\";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;return bytesWritten},allocate(stream,offset,length){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(offset<0||length<=0){throw new FS.ErrnoError(28)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(!FS.isFile(stream.node.mode)&&!FS.isDir(stream.node.mode)){throw new FS.ErrnoError(43)}if(!stream.stream_ops.allocate){throw new FS.ErrnoError(138)}stream.stream_ops.allocate(stream,offset,length)},mmap(stream,length,position,prot,flags){if((prot&2)!==0&&(flags&2)===0&&(stream.flags&2097155)!==2){throw new FS.ErrnoError(2)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(2)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(43)}return stream.stream_ops.mmap(stream,length,position,prot,flags)},msync(stream,buffer,offset,length,mmapFlags){if(!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)},ioctl(stream,cmd,arg){if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(59)}return stream.stream_ops.ioctl(stream,cmd,arg)},readFile(path,opts={}){opts.flags=opts.flags||0;opts.encoding=opts.encoding||\"binary\";if(opts.encoding!==\"utf8\"&&opts.encoding!==\"binary\"){throw new Error(`Invalid encoding type \"${opts.encoding}\"`)}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding===\"utf8\"){ret=UTF8ArrayToString(buf,0)}else if(opts.encoding===\"binary\"){ret=buf}FS.close(stream);return ret},writeFile(path,data,opts={}){opts.flags=opts.flags||577;var stream=FS.open(path,opts.flags,opts.mode);if(typeof data==\"string\"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,undefined,opts.canOwn)}else if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn)}else{throw new Error(\"Unsupported data type\")}FS.close(stream)},cwd:()=>FS.currentPath,chdir(path){var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,\"x\");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories(){FS.mkdir(\"/tmp\");FS.mkdir(\"/home\");FS.mkdir(\"/home/web_user\")},createDefaultDevices(){FS.mkdir(\"/dev\");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length});FS.mkdev(\"/dev/null\",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev(\"/dev/tty\",FS.makedev(5,0));FS.mkdev(\"/dev/tty1\",FS.makedev(6,0));var randomBuffer=new Uint8Array(1024),randomLeft=0;var randomByte=()=>{if(randomLeft===0){randomLeft=randomFill(randomBuffer).byteLength}return randomBuffer[--randomLeft]};FS.createDevice(\"/dev\",\"random\",randomByte);FS.createDevice(\"/dev\",\"urandom\",randomByte);FS.mkdir(\"/dev/shm\");FS.mkdir(\"/dev/shm/tmp\")},createSpecialDirectories(){FS.mkdir(\"/proc\");var proc_self=FS.mkdir(\"/proc/self\");FS.mkdir(\"/proc/self/fd\");FS.mount({mount(){var node=FS.createNode(proc_self,\"fd\",16384|511,73);node.node_ops={lookup(parent,name){var fd=+name;var stream=FS.getStreamChecked(fd);var ret={parent:null,mount:{mountpoint:\"fake\"},node_ops:{readlink:()=>stream.path}};ret.parent=ret;return ret}};return node}},{},\"/proc/self/fd\")},createStandardStreams(){if(Module[\"stdin\"]){FS.createDevice(\"/dev\",\"stdin\",Module[\"stdin\"])}else{FS.symlink(\"/dev/tty\",\"/dev/stdin\")}if(Module[\"stdout\"]){FS.createDevice(\"/dev\",\"stdout\",null,Module[\"stdout\"])}else{FS.symlink(\"/dev/tty\",\"/dev/stdout\")}if(Module[\"stderr\"]){FS.createDevice(\"/dev\",\"stderr\",null,Module[\"stderr\"])}else{FS.symlink(\"/dev/tty1\",\"/dev/stderr\")}var stdin=FS.open(\"/dev/stdin\",0);var stdout=FS.open(\"/dev/stdout\",1);var stderr=FS.open(\"/dev/stderr\",1)},staticInit(){[44].forEach(code=>{FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack=\"<generic error, no stack>\"});FS.nameTable=new Array(4096);FS.mount(MEMFS,{},\"/\");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={MEMFS:MEMFS}},init(input,output,error){FS.init.initialized=true;Module[\"stdin\"]=input||Module[\"stdin\"];Module[\"stdout\"]=output||Module[\"stdout\"];Module[\"stderr\"]=error||Module[\"stderr\"];FS.createStandardStreams()},quit(){FS.init.initialized=false;for(var i=0;i<FS.streams.length;i++){var stream=FS.streams[i];if(!stream){continue}FS.close(stream)}},findObject(path,dontResolveLastLink){var ret=FS.analyzePath(path,dontResolveLastLink);if(!ret.exists){return null}return ret.object},analyzePath(path,dontResolveLastLink){try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path===\"/\"}catch(e){ret.error=e.errno}return ret},createPath(parent,path,canRead,canWrite){parent=typeof parent==\"string\"?parent:FS.getPath(parent);var parts=path.split(\"/\").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){}parent=current}return current},createFile(parent,name,properties,canRead,canWrite){var path=PATH.join2(typeof parent==\"string\"?parent:FS.getPath(parent),name);var mode=FS_getMode(canRead,canWrite);return FS.create(path,mode)},createDataFile(parent,name,data,canRead,canWrite,canOwn){var path=name;if(parent){parent=typeof parent==\"string\"?parent:FS.getPath(parent);path=name?PATH.join2(parent,name):parent}var mode=FS_getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data==\"string\"){var arr=new Array(data.length);for(var i=0,len=data.length;i<len;++i)arr[i]=data.charCodeAt(i);data=arr}FS.chmod(node,mode|146);var stream=FS.open(node,577);FS.write(stream,data,0,data.length,0,canOwn);FS.close(stream);FS.chmod(node,mode)}},createDevice(parent,name,input,output){var path=PATH.join2(typeof parent==\"string\"?parent:FS.getPath(parent),name);var mode=FS_getMode(!!input,!!output);if(!FS.createDevice.major)FS.createDevice.major=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{open(stream){stream.seekable=false},close(stream){if(output?.buffer?.length){output(10)}},read(stream,buffer,offset,length,pos){var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=input()}catch(e){throw new FS.ErrnoError(29)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(6)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}if(bytesRead){stream.node.timestamp=Date.now()}return bytesRead},write(stream,buffer,offset,length,pos){for(var i=0;i<length;i++){try{output(buffer[offset+i])}catch(e){throw new FS.ErrnoError(29)}}if(length){stream.node.timestamp=Date.now()}return i}});return FS.mkdev(path,mode,dev)},forceLoadFile(obj){if(obj.isDevice||obj.isFolder||obj.link||obj.contents)return true;if(typeof XMLHttpRequest!=\"undefined\"){throw new Error(\"Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.\")}else if(read_){try{obj.contents=intArrayFromString(read_(obj.url),true);obj.usedBytes=obj.contents.length}catch(e){throw new FS.ErrnoError(29)}}else{throw new Error(\"Cannot load without read() or XMLHttpRequest.\")}},createLazyFile(parent,name,url,canRead,canWrite){class LazyUint8Array{constructor(){this.lengthKnown=false;this.chunks=[]}get(idx){if(idx>this.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]}setDataGetter(getter){this.getter=getter}cacheLength(){var xhr=new XMLHttpRequest;xhr.open(\"HEAD\",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error(\"Couldn't load \"+url+\". Status: \"+xhr.status);var datalength=Number(xhr.getResponseHeader(\"Content-length\"));var header;var hasByteServing=(header=xhr.getResponseHeader(\"Accept-Ranges\"))&&header===\"bytes\";var usesGzip=(header=xhr.getResponseHeader(\"Content-Encoding\"))&&header===\"gzip\";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)throw new Error(\"invalid range (\"+from+\", \"+to+\") or no bytes requested!\");if(to>datalength-1)throw new Error(\"only \"+datalength+\" bytes available! programmer error!\");var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);if(datalength!==chunkSize)xhr.setRequestHeader(\"Range\",\"bytes=\"+from+\"-\"+to);xhr.responseType=\"arraybuffer\";if(xhr.overrideMimeType){xhr.overrideMimeType(\"text/plain; charset=x-user-defined\")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error(\"Couldn't load \"+url+\". Status: \"+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}return intArrayFromString(xhr.responseText||\"\",true)};var lazyArray=this;lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==\"undefined\"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==\"undefined\")throw new Error(\"doXHR failed!\");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out(\"LazyFiles on gzip forces download of the whole file when length is accessed\")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true}get length(){if(!this.lengthKnown){this.cacheLength()}return this._length}get chunkSize(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}if(typeof XMLHttpRequest!=\"undefined\"){if(!ENVIRONMENT_IS_WORKER)throw\"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc\";var lazyArray=new LazyUint8Array;var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(key=>{var fn=node.stream_ops[key];stream_ops[key]=(...args)=>{FS.forceLoadFile(node);return fn(...args)}});function writeChunks(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i<size;i++){buffer[offset+i]=contents[position+i]}}else{for(var i=0;i<size;i++){buffer[offset+i]=contents.get(position+i)}}return size}stream_ops.read=(stream,buffer,offset,length,position)=>{FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position)};stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);var ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}writeChunks(stream,HEAP8,ptr,length,position);return{ptr:ptr,allocated:true}};node.stream_ops=stream_ops;return node}};var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=SYSCALLS.getStreamFromFD(dirfd);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return PATH.join2(dir,path)},doStat(func,path,buf){var stat=func(path);HEAP32[buf>>2]=stat.dev;HEAP32[buf+4>>2]=stat.mode;HEAPU32[buf+8>>2]=stat.nlink;HEAP32[buf+12>>2]=stat.uid;HEAP32[buf+16>>2]=stat.gid;HEAP32[buf+20>>2]=stat.rdev;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+24>>2]=tempI64[0],HEAP32[buf+28>>2]=tempI64[1];HEAP32[buf+32>>2]=4096;HEAP32[buf+36>>2]=stat.blocks;var atime=stat.atime.getTime();var mtime=stat.mtime.getTime();var ctime=stat.ctime.getTime();tempI64=[Math.floor(atime/1e3)>>>0,(tempDouble=Math.floor(atime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAPU32[buf+48>>2]=atime%1e3*1e3;tempI64=[Math.floor(mtime/1e3)>>>0,(tempDouble=Math.floor(mtime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+56>>2]=tempI64[0],HEAP32[buf+60>>2]=tempI64[1];HEAPU32[buf+64>>2]=mtime%1e3*1e3;tempI64=[Math.floor(ctime/1e3)>>>0,(tempDouble=Math.floor(ctime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+72>>2]=tempI64[0],HEAP32[buf+76>>2]=tempI64[1];HEAPU32[buf+80>>2]=ctime%1e3*1e3;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+88>>2]=tempI64[0],HEAP32[buf+92>>2]=tempI64[1];return 0},doMsync(addr,stream,len,flags,offset){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}if(flags&2){return 0}var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},getStreamFromFD(fd){var stream=FS.getStreamChecked(fd);return stream},varargs:undefined,getStr(ptr){var ret=UTF8ToString(ptr);return ret}};function ___syscall_chmod(path,mode){try{path=SYSCALLS.getStr(path);FS.chmod(path,mode);return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_faccessat(dirfd,path,amode,flags){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);if(amode&~7){return-28}var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node){return-44}var perms=\"\";if(amode&4)perms+=\"r\";if(amode&2)perms+=\"w\";if(amode&1)perms+=\"x\";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_fchmod(fd,mode){try{FS.fchmod(fd,mode);return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_fchown32(fd,owner,group){try{FS.fchown(fd,owner,group);return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function syscallGetVarargI(){var ret=HEAP32[+SYSCALLS.varargs>>2];SYSCALLS.varargs+=4;return ret}var syscallGetVarargP=syscallGetVarargI;function ___syscall_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=syscallGetVarargI();if(arg<0){return-28}while(FS.streams[arg]){arg++}var newStream;newStream=FS.dupStream(stream,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=syscallGetVarargI();stream.flags|=arg;return 0}case 12:{var arg=syscallGetVarargP();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0}return-28}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_fstat64(fd,buf){try{var stream=SYSCALLS.getStreamFromFD(fd);return SYSCALLS.doStat(FS.stat,stream.path,buf)}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}var convertI32PairToI53Checked=(lo,hi)=>hi+2097152>>>0<4194305-!!lo?(lo>>>0)+hi*4294967296:NaN;function ___syscall_ftruncate64(fd,length_low,length_high){var length=convertI32PairToI53Checked(length_low,length_high);try{if(isNaN(length))return 61;FS.ftruncate(fd,length);return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite);function ___syscall_getcwd(buf,size){try{if(size===0)return-28;var cwd=FS.cwd();var cwdLengthInBytes=lengthBytesUTF8(cwd)+1;if(size<cwdLengthInBytes)return-68;stringToUTF8(cwd,buf,size);return cwdLengthInBytes}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_lstat64(path,buf){try{path=SYSCALLS.getStr(path);return SYSCALLS.doStat(FS.lstat,path,buf)}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_mkdirat(dirfd,path,mode){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);path=PATH.normalize(path);if(path[path.length-1]===\"/\")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_newfstatat(dirfd,path,buf,flags){try{path=SYSCALLS.getStr(path);var nofollow=flags&256;var allowEmpty=flags&4096;flags=flags&~6400;path=SYSCALLS.calculateAt(dirfd,path,allowEmpty);return SYSCALLS.doStat(nofollow?FS.lstat:FS.stat,path,buf)}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_openat(dirfd,path,flags,varargs){SYSCALLS.varargs=varargs;try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);var mode=varargs?syscallGetVarargI():0;return FS.open(path,flags,mode).fd}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_readlinkat(dirfd,path,buf,bufsize){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_rmdir(path){try{path=SYSCALLS.getStr(path);FS.rmdir(path);return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_stat64(path,buf){try{path=SYSCALLS.getStr(path);return SYSCALLS.doStat(FS.stat,path,buf)}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_unlinkat(dirfd,path,flags){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);if(flags===0){FS.unlink(path)}else if(flags===512){FS.rmdir(path)}else{abort(\"Invalid flags passed to unlinkat\")}return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}var readI53FromI64=ptr=>HEAPU32[ptr>>2]+HEAP32[ptr+4>>2]*4294967296;function ___syscall_utimensat(dirfd,path,times,flags){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path,true);if(!times){var atime=Date.now();var mtime=atime}else{var seconds=readI53FromI64(times);var nanoseconds=HEAP32[times+8>>2];atime=seconds*1e3+nanoseconds/(1e3*1e3);times+=16;seconds=readI53FromI64(times);nanoseconds=HEAP32[times+8>>2];mtime=seconds*1e3+nanoseconds/(1e3*1e3)}FS.utime(path,atime,mtime);return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}var isLeapYear=year=>year%4===0&&(year%100!==0||year%400===0);var MONTH_DAYS_LEAP_CUMULATIVE=[0,31,60,91,121,152,182,213,244,274,305,335];var MONTH_DAYS_REGULAR_CUMULATIVE=[0,31,59,90,120,151,181,212,243,273,304,334];var ydayFromDate=date=>{var leap=isLeapYear(date.getFullYear());var monthDaysCumulative=leap?MONTH_DAYS_LEAP_CUMULATIVE:MONTH_DAYS_REGULAR_CUMULATIVE;var yday=monthDaysCumulative[date.getMonth()]+date.getDate()-1;return yday};function __localtime_js(time_low,time_high,tmPtr){var time=convertI32PairToI53Checked(time_low,time_high);var date=new Date(time*1e3);HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();HEAP32[tmPtr+20>>2]=date.getFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getDay();var yday=ydayFromDate(date)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr+36>>2]=-(date.getTimezoneOffset()*60);var start=new Date(date.getFullYear(),0,1);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;HEAP32[tmPtr+32>>2]=dst}function __mmap_js(len,prot,flags,fd,offset_low,offset_high,allocated,addr){var offset=convertI32PairToI53Checked(offset_low,offset_high);try{if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);var res=FS.mmap(stream,len,offset,prot,flags);var ptr=res.ptr;HEAP32[allocated>>2]=res.allocated;HEAPU32[addr>>2]=ptr;return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function __munmap_js(addr,len,prot,flags,fd,offset_low,offset_high){var offset=convertI32PairToI53Checked(offset_low,offset_high);try{var stream=SYSCALLS.getStreamFromFD(fd);if(prot&2){SYSCALLS.doMsync(addr,stream,len,flags,offset)}}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}var __tzset_js=(timezone,daylight,std_name,dst_name)=>{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);var extractZone=date=>date.toLocaleTimeString(undefined,{hour12:false,timeZoneName:\"short\"}).split(\" \")[1];var winterName=extractZone(winter);var summerName=extractZone(summer);if(summerOffset<winterOffset){stringToUTF8(winterName,std_name,17);stringToUTF8(summerName,dst_name,17)}else{stringToUTF8(winterName,dst_name,17);stringToUTF8(summerName,std_name,17)}};var _emscripten_date_now=()=>Date.now();var _emscripten_get_now;_emscripten_get_now=()=>performance.now();var getHeapMax=()=>2147483648;var growMemory=size=>{var b=wasmMemory.buffer;var pages=(size-b.byteLength+65535)/65536;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};var _emscripten_resize_heap=requestedSize=>{var oldSize=HEAPU8.length;requestedSize>>>=0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}var alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}return false};var ENV={};var getExecutableName=()=>thisProgram||\"./this.program\";var getEnvStrings=()=>{if(!getEnvStrings.strings){var lang=(typeof navigator==\"object\"&&navigator.languages&&navigator.languages[0]||\"C\").replace(\"-\",\"_\")+\".UTF-8\";var env={USER:\"web_user\",LOGNAME:\"web_user\",PATH:\"/\",PWD:\"/\",HOME:\"/home/web_user\",LANG:lang,_:getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(`${x}=${env[x]}`)}getEnvStrings.strings=strings}return getEnvStrings.strings};var stringToAscii=(str,buffer)=>{for(var i=0;i<str.length;++i){HEAP8[buffer++]=str.charCodeAt(i)}HEAP8[buffer]=0};var _environ_get=(__environ,environ_buf)=>{var bufSize=0;getEnvStrings().forEach((string,i)=>{var ptr=environ_buf+bufSize;HEAPU32[__environ+i*4>>2]=ptr;stringToAscii(string,ptr);bufSize+=string.length+1});return 0};var _environ_sizes_get=(penviron_count,penviron_buf_size)=>{var strings=getEnvStrings();HEAPU32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(string=>bufSize+=string.length+1);HEAPU32[penviron_buf_size>>2]=bufSize;return 0};function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return e.errno}}function _fd_fdstat_get(fd,pbuf){try{var rightsBase=0;var rightsInheriting=0;var flags=0;{var stream=SYSCALLS.getStreamFromFD(fd);var type=stream.tty?2:FS.isDir(stream.mode)?3:FS.isLink(stream.mode)?7:4}HEAP8[pbuf]=type;HEAP16[pbuf+2>>1]=flags;tempI64=[rightsBase>>>0,(tempDouble=rightsBase,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[pbuf+8>>2]=tempI64[0],HEAP32[pbuf+12>>2]=tempI64[1];tempI64=[rightsInheriting>>>0,(tempDouble=rightsInheriting,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[pbuf+16>>2]=tempI64[0],HEAP32[pbuf+20>>2]=tempI64[1];return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return e.errno}}var doReadv=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAPU32[iov>>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr<len)break;if(typeof offset!=\"undefined\"){offset+=curr}}return ret};function _fd_read(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doReadv(stream,iov,iovcnt);HEAPU32[pnum>>2]=num;return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){var offset=convertI32PairToI53Checked(offset_low,offset_high);try{if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return e.errno}}var _fd_sync=function(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);return Asyncify.handleSleep(wakeUp=>{var mount=stream.node.mount;if(!mount.type.syncfs){wakeUp(0);return}mount.type.syncfs(mount,false,err=>{if(err){wakeUp(29);return}wakeUp(0)})})}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return e.errno}};_fd_sync.isAsync=true;var doWritev=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAPU32[iov>>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(typeof offset!=\"undefined\"){offset+=curr}}return ret};function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doWritev(stream,iov,iovcnt);HEAPU32[pnum>>2]=num;return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return e.errno}}var adapters_support=function(){const handleAsync=typeof Asyncify===\"object\"?Asyncify.handleAsync.bind(Asyncify):null;Module[\"handleAsync\"]=handleAsync;const targets=new Map;Module[\"setCallback\"]=(key,target)=>targets.set(key,target);Module[\"getCallback\"]=key=>targets.get(key);Module[\"deleteCallback\"]=key=>targets.delete(key);adapters_support=function(isAsync,key,...args){const receiver=targets.get(key);let methodName=null;const f=typeof receiver===\"function\"?receiver:receiver[methodName=UTF8ToString(args.shift())];if(isAsync){if(handleAsync){return handleAsync(()=>f.apply(receiver,args))}throw new Error(\"Synchronous WebAssembly cannot call async function\")}const result=f.apply(receiver,args);if(typeof result?.then==\"function\"){console.error(\"unexpected Promise\",f);throw new Error(`${methodName} unexpectedly returned a Promise`)}return result}};function _ipp(...args){return adapters_support(false,...args)}function _ipp_async(...args){return adapters_support(true,...args)}_ipp_async.isAsync=true;function _ippipppp(...args){return adapters_support(false,...args)}function _ippipppp_async(...args){return adapters_support(true,...args)}_ippipppp_async.isAsync=true;function _ippp(...args){return adapters_support(false,...args)}function _ippp_async(...args){return adapters_support(true,...args)}_ippp_async.isAsync=true;function _ipppi(...args){return adapters_support(false,...args)}function _ipppi_async(...args){return adapters_support(true,...args)}_ipppi_async.isAsync=true;function _ipppiii(...args){return adapters_support(false,...args)}function _ipppiii_async(...args){return adapters_support(true,...args)}_ipppiii_async.isAsync=true;function _ipppiiip(...args){return adapters_support(false,...args)}function _ipppiiip_async(...args){return adapters_support(true,...args)}_ipppiiip_async.isAsync=true;function _ipppip(...args){return adapters_support(false,...args)}function _ipppip_async(...args){return adapters_support(true,...args)}_ipppip_async.isAsync=true;function _ipppj(...args){return adapters_support(false,...args)}function _ipppj_async(...args){return adapters_support(true,...args)}_ipppj_async.isAsync=true;function _ipppp(...args){return adapters_support(false,...args)}function _ipppp_async(...args){return adapters_support(true,...args)}_ipppp_async.isAsync=true;function _ippppi(...args){return adapters_support(false,...args)}function _ippppi_async(...args){return adapters_support(true,...args)}_ippppi_async.isAsync=true;function _ippppij(...args){return adapters_support(false,...args)}function _ippppij_async(...args){return adapters_support(true,...args)}_ippppij_async.isAsync=true;function _ippppip(...args){return adapters_support(false,...args)}function _ippppip_async(...args){return adapters_support(true,...args)}_ippppip_async.isAsync=true;function _ipppppip(...args){return adapters_support(false,...args)}function _ipppppip_async(...args){return adapters_support(true,...args)}_ipppppip_async.isAsync=true;function _vppippii(...args){return adapters_support(false,...args)}function _vppippii_async(...args){return adapters_support(true,...args)}_vppippii_async.isAsync=true;function _vppp(...args){return adapters_support(false,...args)}function _vppp_async(...args){return adapters_support(true,...args)}_vppp_async.isAsync=true;function _vpppip(...args){return adapters_support(false,...args)}function _vpppip_async(...args){return adapters_support(true,...args)}_vpppip_async.isAsync=true;var runtimeKeepaliveCounter=0;var keepRuntimeAlive=()=>noExitRuntime||runtimeKeepaliveCounter>0;var _proc_exit=code=>{EXITSTATUS=code;if(!keepRuntimeAlive()){Module[\"onExit\"]?.(code);ABORT=true}quit_(code,new ExitStatus(code))};var exitJS=(status,implicit)=>{EXITSTATUS=status;_proc_exit(status)};var handleException=e=>{if(e instanceof ExitStatus||e==\"unwind\"){return EXITSTATUS}quit_(1,e)};var sigToWasmTypes=sig=>{var typeNames={i:\"i32\",j:\"i64\",f:\"f32\",d:\"f64\",e:\"externref\",p:\"i32\"};var type={parameters:[],results:sig[0]==\"v\"?[]:[typeNames[sig[0]]]};for(var i=1;i<sig.length;++i){type.parameters.push(typeNames[sig[i]])}return type};var Asyncify={instrumentWasmImports(imports){var importPattern=/^(ipp|ipp_async|ippp|ippp_async|vppp|vppp_async|ipppj|ipppj_async|ipppi|ipppi_async|ipppp|ipppp_async|ipppip|ipppip_async|vpppip|vpppip_async|ippppi|ippppi_async|ippppij|ippppij_async|ipppiii|ipppiii_async|ippppip|ippppip_async|ippipppp|ippipppp_async|ipppppip|ipppppip_async|ipppiiip|ipppiiip_async|vppippii|vppippii_async|invoke_.*|__asyncjs__.*)$/;for(let[x,original]of Object.entries(imports)){if(typeof original==\"function\"){let isAsyncifyImport=original.isAsync||importPattern.test(x);if(isAsyncifyImport){imports[x]=original=new WebAssembly.Suspending(original)}}}},instrumentWasmExports(exports){var exportPattern=/^(sqlite3_close|sqlite3_finalize|sqlite3_open_v2|sqlite3_prepare|sqlite3_prepare16|sqlite3_prepare_v2|sqlite3_prepare16_v2|sqlite3_prepare_v3|sqlite3_prepare16_v3|sqlite3_reset|sqlite3_step|main|__main_argc_argv)$/;Asyncify.asyncExports=new Set;var ret={};for(let[x,original]of Object.entries(exports)){if(typeof original==\"function\"){let isAsyncifyExport=exportPattern.test(x);if(isAsyncifyExport){Asyncify.asyncExports.add(original);original=Asyncify.makeAsyncFunction(original)}ret[x]=(...args)=>original(...args)}else{ret[x]=original}}return ret},asyncExports:null,isAsyncExport(func){return Asyncify.asyncExports?.has(func)},handleAsync:async startAsync=>{try{return await startAsync()}finally{}},handleSleep(startAsync){return Asyncify.handleAsync(()=>new Promise(startAsync))},makeAsyncFunction(original){return WebAssembly.promising(original)}};var uleb128Encode=(n,target)=>{if(n<128){target.push(n)}else{target.push(n%128|128,n>>7)}};var generateFuncType=(sig,target)=>{var sigRet=sig.slice(0,1);var sigParam=sig.slice(1);var typeCodes={i:127,p:127,j:126,f:125,d:124,e:111};target.push(96);uleb128Encode(sigParam.length,target);for(var i=0;i<sigParam.length;++i){target.push(typeCodes[sigParam[i]])}if(sigRet==\"v\"){target.push(0)}else{target.push(1,typeCodes[sigRet])}};var convertJsFunctionToWasm=(func,sig)=>{if(typeof WebAssembly.Function==\"function\"){return new WebAssembly.Function(sigToWasmTypes(sig),func)}var typeSectionBody=[1];generateFuncType(sig,typeSectionBody);var bytes=[0,97,115,109,1,0,0,0,1];uleb128Encode(typeSectionBody.length,bytes);bytes.push(...typeSectionBody);bytes.push(2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0);var module=new WebAssembly.Module(new Uint8Array(bytes));var instance=new WebAssembly.Instance(module,{e:{f:func}});var wrappedFunc=instance.exports[\"f\"];return wrappedFunc};var wasmTableMirror=[];var wasmTable;var getWasmTableEntry=funcPtr=>{var func=wasmTableMirror[funcPtr];if(!func){if(funcPtr>=wasmTableMirror.length)wasmTableMirror.length=funcPtr+1;wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr);if(Asyncify.isAsyncExport(func)){wasmTableMirror[funcPtr]=func=Asyncify.makeAsyncFunction(func)}}return func};var updateTableMap=(offset,count)=>{if(functionsInTableMap){for(var i=offset;i<offset+count;i++){var item=getWasmTableEntry(i);if(item){functionsInTableMap.set(item,i)}}}};var functionsInTableMap;var getFunctionAddress=func=>{if(!functionsInTableMap){functionsInTableMap=new WeakMap;updateTableMap(0,wasmTable.length)}return functionsInTableMap.get(func)||0};var freeTableIndexes=[];var getEmptyTableSlot=()=>{if(freeTableIndexes.length){return freeTableIndexes.pop()}try{wasmTable.grow(1)}catch(err){if(!(err instanceof RangeError)){throw err}throw\"Unable to grow wasm table. Set ALLOW_TABLE_GROWTH.\"}return wasmTable.length-1};var setWasmTableEntry=(idx,func)=>{wasmTable.set(idx,func);wasmTableMirror[idx]=wasmTable.get(idx)};var addFunction=(func,sig)=>{var rtn=getFunctionAddress(func);if(rtn){return rtn}var ret=getEmptyTableSlot();try{setWasmTableEntry(ret,func)}catch(err){if(!(err instanceof TypeError)){throw err}var wrapped=convertJsFunctionToWasm(func,sig);setWasmTableEntry(ret,wrapped)}functionsInTableMap.set(func,ret);return ret};var getCFunc=ident=>{var func=Module[\"_\"+ident];return func};var writeArrayToMemory=(array,buffer)=>{HEAP8.set(array,buffer)};var stackAlloc=sz=>__emscripten_stack_alloc(sz);var stringToUTF8OnStack=str=>{var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8(str,ret,size);return ret};var ccall=(ident,returnType,argTypes,args,opts)=>{var toC={string:str=>{var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=stringToUTF8OnStack(str)}return ret},array:arr=>{var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\"){return UTF8ToString(ret)}if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i<args.length;i++){var converter=toC[argTypes[i]];if(converter){if(stack===0)stack=stackSave();cArgs[i]=converter(args[i])}else{cArgs[i]=args[i]}}}var ret=func(...cArgs);function onDone(ret){if(stack!==0)stackRestore(stack);return convertReturnValue(ret)}var asyncMode=opts?.async;if(asyncMode)return ret.then(onDone);ret=onDone(ret);return ret};var cwrap=(ident,returnType,argTypes,opts)=>{var numericArgs=!argTypes||argTypes.every(type=>type===\"number\"||type===\"boolean\");var numericRet=returnType!==\"string\";if(numericRet&&numericArgs&&!opts){return getCFunc(ident)}return(...args)=>ccall(ident,returnType,argTypes,args,opts)};var getTempRet0=val=>__emscripten_tempret_get();var stringToUTF16=(str,outPtr,maxBytesToWrite)=>{maxBytesToWrite??=2147483647;if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite<str.length*2?maxBytesToWrite/2:str.length;for(var i=0;i<numCharsToWrite;++i){var codeUnit=str.charCodeAt(i);HEAP16[outPtr>>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr};var stringToUTF32=(str,outPtr,maxBytesToWrite)=>{maxBytesToWrite??=2147483647;if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i<str.length;++i){var codeUnit=str.charCodeAt(i);if(codeUnit>=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr};var AsciiToString=ptr=>{var str=\"\";while(1){var ch=HEAPU8[ptr++];if(!ch)return str;str+=String.fromCharCode(ch)}};var UTF16Decoder=typeof TextDecoder!=\"undefined\"?new TextDecoder(\"utf-16le\"):undefined;var UTF16ToString=(ptr,maxBytesToRead)=>{var endPtr=ptr;var idx=endPtr>>1;var maxIdx=idx+maxBytesToRead/2;while(!(idx>=maxIdx)&&HEAPU16[idx])++idx;endPtr=idx<<1;if(endPtr-ptr>32&&UTF16Decoder)return UTF16Decoder.decode(HEAPU8.subarray(ptr,endPtr));var str=\"\";for(var i=0;!(i>=maxBytesToRead/2);++i){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)break;str+=String.fromCharCode(codeUnit)}return str};var 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 intArrayToString(array){var ret=[];for(var i=0;i<array.length;i++){var chr=array[i];if(chr>255){chr&=255}ret.push(String.fromCharCode(chr))}return ret.join(\"\")}FS.createPreloadedFile=FS_createPreloadedFile;FS.staticInit();adapters_support();var wasmImports={__assert_fail:___assert_fail,__syscall_chmod:___syscall_chmod,__syscall_faccessat:___syscall_faccessat,__syscall_fchmod:___syscall_fchmod,__syscall_fchown32:___syscall_fchown32,__syscall_fcntl64:___syscall_fcntl64,__syscall_fstat64:___syscall_fstat64,__syscall_ftruncate64:___syscall_ftruncate64,__syscall_getcwd:___syscall_getcwd,__syscall_lstat64:___syscall_lstat64,__syscall_mkdirat:___syscall_mkdirat,__syscall_newfstatat:___syscall_newfstatat,__syscall_openat:___syscall_openat,__syscall_readlinkat:___syscall_readlinkat,__syscall_rmdir:___syscall_rmdir,__syscall_stat64:___syscall_stat64,__syscall_unlinkat:___syscall_unlinkat,__syscall_utimensat:___syscall_utimensat,_localtime_js:__localtime_js,_mmap_js:__mmap_js,_munmap_js:__munmap_js,_tzset_js:__tzset_js,emscripten_date_now:_emscripten_date_now,emscripten_get_now:_emscripten_get_now,emscripten_resize_heap:_emscripten_resize_heap,environ_get:_environ_get,environ_sizes_get:_environ_sizes_get,fd_close:_fd_close,fd_fdstat_get:_fd_fdstat_get,fd_read:_fd_read,fd_seek:_fd_seek,fd_sync:_fd_sync,fd_write:_fd_write,ipp:_ipp,ipp_async:_ipp_async,ippipppp:_ippipppp,ippipppp_async:_ippipppp_async,ippp:_ippp,ippp_async:_ippp_async,ipppi:_ipppi,ipppi_async:_ipppi_async,ipppiii:_ipppiii,ipppiii_async:_ipppiii_async,ipppiiip:_ipppiiip,ipppiiip_async:_ipppiiip_async,ipppip:_ipppip,ipppip_async:_ipppip_async,ipppj:_ipppj,ipppj_async:_ipppj_async,ipppp:_ipppp,ipppp_async:_ipppp_async,ippppi:_ippppi,ippppi_async:_ippppi_async,ippppij:_ippppij,ippppij_async:_ippppij_async,ippppip:_ippppip,ippppip_async:_ippppip_async,ipppppip:_ipppppip,ipppppip_async:_ipppppip_async,vppippii:_vppippii,vppippii_async:_vppippii_async,vppp:_vppp,vppp_async:_vppp_async,vpppip:_vpppip,vpppip_async:_vpppip_async};var wasmExports=createWasm();var ___wasm_call_ctors=()=>(___wasm_call_ctors=wasmExports[\"__wasm_call_ctors\"])();var _sqlite3_status64=Module[\"_sqlite3_status64\"]=(a0,a1,a2,a3)=>(_sqlite3_status64=Module[\"_sqlite3_status64\"]=wasmExports[\"sqlite3_status64\"])(a0,a1,a2,a3);var _sqlite3_status=Module[\"_sqlite3_status\"]=(a0,a1,a2,a3)=>(_sqlite3_status=Module[\"_sqlite3_status\"]=wasmExports[\"sqlite3_status\"])(a0,a1,a2,a3);var _sqlite3_msize=Module[\"_sqlite3_msize\"]=a0=>(_sqlite3_msize=Module[\"_sqlite3_msize\"]=wasmExports[\"sqlite3_msize\"])(a0);var _sqlite3_db_status=Module[\"_sqlite3_db_status\"]=(a0,a1,a2,a3,a4)=>(_sqlite3_db_status=Module[\"_sqlite3_db_status\"]=wasmExports[\"sqlite3_db_status\"])(a0,a1,a2,a3,a4);var _sqlite3_vfs_find=Module[\"_sqlite3_vfs_find\"]=a0=>(_sqlite3_vfs_find=Module[\"_sqlite3_vfs_find\"]=wasmExports[\"sqlite3_vfs_find\"])(a0);var _sqlite3_vfs_register=Module[\"_sqlite3_vfs_register\"]=(a0,a1)=>(_sqlite3_vfs_register=Module[\"_sqlite3_vfs_register\"]=wasmExports[\"sqlite3_vfs_register\"])(a0,a1);var _sqlite3_vfs_unregister=Module[\"_sqlite3_vfs_unregister\"]=a0=>(_sqlite3_vfs_unregister=Module[\"_sqlite3_vfs_unregister\"]=wasmExports[\"sqlite3_vfs_unregister\"])(a0);var _sqlite3_release_memory=Module[\"_sqlite3_release_memory\"]=a0=>(_sqlite3_release_memory=Module[\"_sqlite3_release_memory\"]=wasmExports[\"sqlite3_release_memory\"])(a0);var _sqlite3_soft_heap_limit64=Module[\"_sqlite3_soft_heap_limit64\"]=(a0,a1)=>(_sqlite3_soft_heap_limit64=Module[\"_sqlite3_soft_heap_limit64\"]=wasmExports[\"sqlite3_soft_heap_limit64\"])(a0,a1);var _sqlite3_memory_used=Module[\"_sqlite3_memory_used\"]=()=>(_sqlite3_memory_used=Module[\"_sqlite3_memory_used\"]=wasmExports[\"sqlite3_memory_used\"])();var _sqlite3_hard_heap_limit64=Module[\"_sqlite3_hard_heap_limit64\"]=(a0,a1)=>(_sqlite3_hard_heap_limit64=Module[\"_sqlite3_hard_heap_limit64\"]=wasmExports[\"sqlite3_hard_heap_limit64\"])(a0,a1);var _sqlite3_memory_highwater=Module[\"_sqlite3_memory_highwater\"]=a0=>(_sqlite3_memory_highwater=Module[\"_sqlite3_memory_highwater\"]=wasmExports[\"sqlite3_memory_highwater\"])(a0);var _sqlite3_malloc=Module[\"_sqlite3_malloc\"]=a0=>(_sqlite3_malloc=Module[\"_sqlite3_malloc\"]=wasmExports[\"sqlite3_malloc\"])(a0);var _sqlite3_malloc64=Module[\"_sqlite3_malloc64\"]=(a0,a1)=>(_sqlite3_malloc64=Module[\"_sqlite3_malloc64\"]=wasmExports[\"sqlite3_malloc64\"])(a0,a1);var _sqlite3_free=Module[\"_sqlite3_free\"]=a0=>(_sqlite3_free=Module[\"_sqlite3_free\"]=wasmExports[\"sqlite3_free\"])(a0);var _sqlite3_realloc=Module[\"_sqlite3_realloc\"]=(a0,a1)=>(_sqlite3_realloc=Module[\"_sqlite3_realloc\"]=wasmExports[\"sqlite3_realloc\"])(a0,a1);var _sqlite3_realloc64=Module[\"_sqlite3_realloc64\"]=(a0,a1,a2)=>(_sqlite3_realloc64=Module[\"_sqlite3_realloc64\"]=wasmExports[\"sqlite3_realloc64\"])(a0,a1,a2);var _sqlite3_str_vappendf=Module[\"_sqlite3_str_vappendf\"]=(a0,a1,a2)=>(_sqlite3_str_vappendf=Module[\"_sqlite3_str_vappendf\"]=wasmExports[\"sqlite3_str_vappendf\"])(a0,a1,a2);var _sqlite3_str_append=Module[\"_sqlite3_str_append\"]=(a0,a1,a2)=>(_sqlite3_str_append=Module[\"_sqlite3_str_append\"]=wasmExports[\"sqlite3_str_append\"])(a0,a1,a2);var _sqlite3_str_appendchar=Module[\"_sqlite3_str_appendchar\"]=(a0,a1,a2)=>(_sqlite3_str_appendchar=Module[\"_sqlite3_str_appendchar\"]=wasmExports[\"sqlite3_str_appendchar\"])(a0,a1,a2);var _sqlite3_str_appendall=Module[\"_sqlite3_str_appendall\"]=(a0,a1)=>(_sqlite3_str_appendall=Module[\"_sqlite3_str_appendall\"]=wasmExports[\"sqlite3_str_appendall\"])(a0,a1);var _sqlite3_str_appendf=Module[\"_sqlite3_str_appendf\"]=(a0,a1,a2)=>(_sqlite3_str_appendf=Module[\"_sqlite3_str_appendf\"]=wasmExports[\"sqlite3_str_appendf\"])(a0,a1,a2);var _sqlite3_str_finish=Module[\"_sqlite3_str_finish\"]=a0=>(_sqlite3_str_finish=Module[\"_sqlite3_str_finish\"]=wasmExports[\"sqlite3_str_finish\"])(a0);var _sqlite3_str_errcode=Module[\"_sqlite3_str_errcode\"]=a0=>(_sqlite3_str_errcode=Module[\"_sqlite3_str_errcode\"]=wasmExports[\"sqlite3_str_errcode\"])(a0);var _sqlite3_str_length=Module[\"_sqlite3_str_length\"]=a0=>(_sqlite3_str_length=Module[\"_sqlite3_str_length\"]=wasmExports[\"sqlite3_str_length\"])(a0);var _sqlite3_str_value=Module[\"_sqlite3_str_value\"]=a0=>(_sqlite3_str_value=Module[\"_sqlite3_str_value\"]=wasmExports[\"sqlite3_str_value\"])(a0);var _sqlite3_str_reset=Module[\"_sqlite3_str_reset\"]=a0=>(_sqlite3_str_reset=Module[\"_sqlite3_str_reset\"]=wasmExports[\"sqlite3_str_reset\"])(a0);var _sqlite3_str_new=Module[\"_sqlite3_str_new\"]=a0=>(_sqlite3_str_new=Module[\"_sqlite3_str_new\"]=wasmExports[\"sqlite3_str_new\"])(a0);var _sqlite3_vmprintf=Module[\"_sqlite3_vmprintf\"]=(a0,a1)=>(_sqlite3_vmprintf=Module[\"_sqlite3_vmprintf\"]=wasmExports[\"sqlite3_vmprintf\"])(a0,a1);var _sqlite3_mprintf=Module[\"_sqlite3_mprintf\"]=(a0,a1)=>(_sqlite3_mprintf=Module[\"_sqlite3_mprintf\"]=wasmExports[\"sqlite3_mprintf\"])(a0,a1);var _sqlite3_vsnprintf=Module[\"_sqlite3_vsnprintf\"]=(a0,a1,a2,a3)=>(_sqlite3_vsnprintf=Module[\"_sqlite3_vsnprintf\"]=wasmExports[\"sqlite3_vsnprintf\"])(a0,a1,a2,a3);var _sqlite3_snprintf=Module[\"_sqlite3_snprintf\"]=(a0,a1,a2,a3)=>(_sqlite3_snprintf=Module[\"_sqlite3_snprintf\"]=wasmExports[\"sqlite3_snprintf\"])(a0,a1,a2,a3);var _sqlite3_log=Module[\"_sqlite3_log\"]=(a0,a1,a2)=>(_sqlite3_log=Module[\"_sqlite3_log\"]=wasmExports[\"sqlite3_log\"])(a0,a1,a2);var _sqlite3_randomness=Module[\"_sqlite3_randomness\"]=(a0,a1)=>(_sqlite3_randomness=Module[\"_sqlite3_randomness\"]=wasmExports[\"sqlite3_randomness\"])(a0,a1);var _sqlite3_stricmp=Module[\"_sqlite3_stricmp\"]=(a0,a1)=>(_sqlite3_stricmp=Module[\"_sqlite3_stricmp\"]=wasmExports[\"sqlite3_stricmp\"])(a0,a1);var _sqlite3_strnicmp=Module[\"_sqlite3_strnicmp\"]=(a0,a1,a2)=>(_sqlite3_strnicmp=Module[\"_sqlite3_strnicmp\"]=wasmExports[\"sqlite3_strnicmp\"])(a0,a1,a2);var _sqlite3_os_init=Module[\"_sqlite3_os_init\"]=()=>(_sqlite3_os_init=Module[\"_sqlite3_os_init\"]=wasmExports[\"sqlite3_os_init\"])();var _sqlite3_os_end=Module[\"_sqlite3_os_end\"]=()=>(_sqlite3_os_end=Module[\"_sqlite3_os_end\"]=wasmExports[\"sqlite3_os_end\"])();var _sqlite3_serialize=Module[\"_sqlite3_serialize\"]=(a0,a1,a2,a3)=>(_sqlite3_serialize=Module[\"_sqlite3_serialize\"]=wasmExports[\"sqlite3_serialize\"])(a0,a1,a2,a3);var _sqlite3_prepare_v2=Module[\"_sqlite3_prepare_v2\"]=(a0,a1,a2,a3,a4)=>(_sqlite3_prepare_v2=Module[\"_sqlite3_prepare_v2\"]=wasmExports[\"sqlite3_prepare_v2\"])(a0,a1,a2,a3,a4);var _sqlite3_step=Module[\"_sqlite3_step\"]=a0=>(_sqlite3_step=Module[\"_sqlite3_step\"]=wasmExports[\"sqlite3_step\"])(a0);var _sqlite3_column_int64=Module[\"_sqlite3_column_int64\"]=(a0,a1)=>(_sqlite3_column_int64=Module[\"_sqlite3_column_int64\"]=wasmExports[\"sqlite3_column_int64\"])(a0,a1);var _sqlite3_reset=Module[\"_sqlite3_reset\"]=a0=>(_sqlite3_reset=Module[\"_sqlite3_reset\"]=wasmExports[\"sqlite3_reset\"])(a0);var _sqlite3_exec=Module[\"_sqlite3_exec\"]=(a0,a1,a2,a3,a4)=>(_sqlite3_exec=Module[\"_sqlite3_exec\"]=wasmExports[\"sqlite3_exec\"])(a0,a1,a2,a3,a4);var _sqlite3_column_int=Module[\"_sqlite3_column_int\"]=(a0,a1)=>(_sqlite3_column_int=Module[\"_sqlite3_column_int\"]=wasmExports[\"sqlite3_column_int\"])(a0,a1);var _sqlite3_finalize=Module[\"_sqlite3_finalize\"]=a0=>(_sqlite3_finalize=Module[\"_sqlite3_finalize\"]=wasmExports[\"sqlite3_finalize\"])(a0);var _sqlite3_deserialize=Module[\"_sqlite3_deserialize\"]=(a0,a1,a2,a3,a4,a5,a6,a7)=>(_sqlite3_deserialize=Module[\"_sqlite3_deserialize\"]=wasmExports[\"sqlite3_deserialize\"])(a0,a1,a2,a3,a4,a5,a6,a7);var _sqlite3_database_file_object=Module[\"_sqlite3_database_file_object\"]=a0=>(_sqlite3_database_file_object=Module[\"_sqlite3_database_file_object\"]=wasmExports[\"sqlite3_database_file_object\"])(a0);var _sqlite3_backup_init=Module[\"_sqlite3_backup_init\"]=(a0,a1,a2,a3)=>(_sqlite3_backup_init=Module[\"_sqlite3_backup_init\"]=wasmExports[\"sqlite3_backup_init\"])(a0,a1,a2,a3);var _sqlite3_backup_step=Module[\"_sqlite3_backup_step\"]=(a0,a1)=>(_sqlite3_backup_step=Module[\"_sqlite3_backup_step\"]=wasmExports[\"sqlite3_backup_step\"])(a0,a1);var _sqlite3_backup_finish=Module[\"_sqlite3_backup_finish\"]=a0=>(_sqlite3_backup_finish=Module[\"_sqlite3_backup_finish\"]=wasmExports[\"sqlite3_backup_finish\"])(a0);var _sqlite3_backup_remaining=Module[\"_sqlite3_backup_remaining\"]=a0=>(_sqlite3_backup_remaining=Module[\"_sqlite3_backup_remaining\"]=wasmExports[\"sqlite3_backup_remaining\"])(a0);var _sqlite3_backup_pagecount=Module[\"_sqlite3_backup_pagecount\"]=a0=>(_sqlite3_backup_pagecount=Module[\"_sqlite3_backup_pagecount\"]=wasmExports[\"sqlite3_backup_pagecount\"])(a0);var _sqlite3_clear_bindings=Module[\"_sqlite3_clear_bindings\"]=a0=>(_sqlite3_clear_bindings=Module[\"_sqlite3_clear_bindings\"]=wasmExports[\"sqlite3_clear_bindings\"])(a0);var _sqlite3_value_blob=Module[\"_sqlite3_value_blob\"]=a0=>(_sqlite3_value_blob=Module[\"_sqlite3_value_blob\"]=wasmExports[\"sqlite3_value_blob\"])(a0);var _sqlite3_value_text=Module[\"_sqlite3_value_text\"]=a0=>(_sqlite3_value_text=Module[\"_sqlite3_value_text\"]=wasmExports[\"sqlite3_value_text\"])(a0);var _sqlite3_value_bytes=Module[\"_sqlite3_value_bytes\"]=a0=>(_sqlite3_value_bytes=Module[\"_sqlite3_value_bytes\"]=wasmExports[\"sqlite3_value_bytes\"])(a0);var _sqlite3_value_bytes16=Module[\"_sqlite3_value_bytes16\"]=a0=>(_sqlite3_value_bytes16=Module[\"_sqlite3_value_bytes16\"]=wasmExports[\"sqlite3_value_bytes16\"])(a0);var _sqlite3_value_double=Module[\"_sqlite3_value_double\"]=a0=>(_sqlite3_value_double=Module[\"_sqlite3_value_double\"]=wasmExports[\"sqlite3_value_double\"])(a0);var _sqlite3_value_int=Module[\"_sqlite3_value_int\"]=a0=>(_sqlite3_value_int=Module[\"_sqlite3_value_int\"]=wasmExports[\"sqlite3_value_int\"])(a0);var _sqlite3_value_int64=Module[\"_sqlite3_value_int64\"]=a0=>(_sqlite3_value_int64=Module[\"_sqlite3_value_int64\"]=wasmExports[\"sqlite3_value_int64\"])(a0);var _sqlite3_value_subtype=Module[\"_sqlite3_value_subtype\"]=a0=>(_sqlite3_value_subtype=Module[\"_sqlite3_value_subtype\"]=wasmExports[\"sqlite3_value_subtype\"])(a0);var _sqlite3_value_pointer=Module[\"_sqlite3_value_pointer\"]=(a0,a1)=>(_sqlite3_value_pointer=Module[\"_sqlite3_value_pointer\"]=wasmExports[\"sqlite3_value_pointer\"])(a0,a1);var _sqlite3_value_text16=Module[\"_sqlite3_value_text16\"]=a0=>(_sqlite3_value_text16=Module[\"_sqlite3_value_text16\"]=wasmExports[\"sqlite3_value_text16\"])(a0);var _sqlite3_value_text16be=Module[\"_sqlite3_value_text16be\"]=a0=>(_sqlite3_value_text16be=Module[\"_sqlite3_value_text16be\"]=wasmExports[\"sqlite3_value_text16be\"])(a0);var _sqlite3_value_text16le=Module[\"_sqlite3_value_text16le\"]=a0=>(_sqlite3_value_text16le=Module[\"_sqlite3_value_text16le\"]=wasmExports[\"sqlite3_value_text16le\"])(a0);var _sqlite3_value_type=Module[\"_sqlite3_value_type\"]=a0=>(_sqlite3_value_type=Module[\"_sqlite3_value_type\"]=wasmExports[\"sqlite3_value_type\"])(a0);var _sqlite3_value_encoding=Module[\"_sqlite3_value_encoding\"]=a0=>(_sqlite3_value_encoding=Module[\"_sqlite3_value_encoding\"]=wasmExports[\"sqlite3_value_encoding\"])(a0);var _sqlite3_value_nochange=Module[\"_sqlite3_value_nochange\"]=a0=>(_sqlite3_value_nochange=Module[\"_sqlite3_value_nochange\"]=wasmExports[\"sqlite3_value_nochange\"])(a0);var _sqlite3_value_frombind=Module[\"_sqlite3_value_frombind\"]=a0=>(_sqlite3_value_frombind=Module[\"_sqlite3_value_frombind\"]=wasmExports[\"sqlite3_value_frombind\"])(a0);var _sqlite3_value_dup=Module[\"_sqlite3_value_dup\"]=a0=>(_sqlite3_value_dup=Module[\"_sqlite3_value_dup\"]=wasmExports[\"sqlite3_value_dup\"])(a0);var _sqlite3_value_free=Module[\"_sqlite3_value_free\"]=a0=>(_sqlite3_value_free=Module[\"_sqlite3_value_free\"]=wasmExports[\"sqlite3_value_free\"])(a0);var _sqlite3_result_blob=Module[\"_sqlite3_result_blob\"]=(a0,a1,a2,a3)=>(_sqlite3_result_blob=Module[\"_sqlite3_result_blob\"]=wasmExports[\"sqlite3_result_blob\"])(a0,a1,a2,a3);var _sqlite3_result_blob64=Module[\"_sqlite3_result_blob64\"]=(a0,a1,a2,a3,a4)=>(_sqlite3_result_blob64=Module[\"_sqlite3_result_blob64\"]=wasmExports[\"sqlite3_result_blob64\"])(a0,a1,a2,a3,a4);var _sqlite3_result_double=Module[\"_sqlite3_result_double\"]=(a0,a1)=>(_sqlite3_result_double=Module[\"_sqlite3_result_double\"]=wasmExports[\"sqlite3_result_double\"])(a0,a1);var _sqlite3_result_error=Module[\"_sqlite3_result_error\"]=(a0,a1,a2)=>(_sqlite3_result_error=Module[\"_sqlite3_result_error\"]=wasmExports[\"sqlite3_result_error\"])(a0,a1,a2);var _sqlite3_result_error16=Module[\"_sqlite3_result_error16\"]=(a0,a1,a2)=>(_sqlite3_result_error16=Module[\"_sqlite3_result_error16\"]=wasmExports[\"sqlite3_result_error16\"])(a0,a1,a2);var _sqlite3_result_int=Module[\"_sqlite3_result_int\"]=(a0,a1)=>(_sqlite3_result_int=Module[\"_sqlite3_result_int\"]=wasmExports[\"sqlite3_result_int\"])(a0,a1);var _sqlite3_result_int64=Module[\"_sqlite3_result_int64\"]=(a0,a1,a2)=>(_sqlite3_result_int64=Module[\"_sqlite3_result_int64\"]=wasmExports[\"sqlite3_result_int64\"])(a0,a1,a2);var _sqlite3_result_null=Module[\"_sqlite3_result_null\"]=a0=>(_sqlite3_result_null=Module[\"_sqlite3_result_null\"]=wasmExports[\"sqlite3_result_null\"])(a0);var _sqlite3_result_pointer=Module[\"_sqlite3_result_pointer\"]=(a0,a1,a2,a3)=>(_sqlite3_result_pointer=Module[\"_sqlite3_result_pointer\"]=wasmExports[\"sqlite3_result_pointer\"])(a0,a1,a2,a3);var _sqlite3_result_subtype=Module[\"_sqlite3_result_subtype\"]=(a0,a1)=>(_sqlite3_result_subtype=Module[\"_sqlite3_result_subtype\"]=wasmExports[\"sqlite3_result_subtype\"])(a0,a1);var _sqlite3_result_text=Module[\"_sqlite3_result_text\"]=(a0,a1,a2,a3)=>(_sqlite3_result_text=Module[\"_sqlite3_result_text\"]=wasmExports[\"sqlite3_result_text\"])(a0,a1,a2,a3);var _sqlite3_result_text64=Module[\"_sqlite3_result_text64\"]=(a0,a1,a2,a3,a4,a5)=>(_sqlite3_result_text64=Module[\"_sqlite3_result_text64\"]=wasmExports[\"sqlite3_result_text64\"])(a0,a1,a2,a3,a4,a5);var _sqlite3_result_text16=Module[\"_sqlite3_result_text16\"]=(a0,a1,a2,a3)=>(_sqlite3_result_text16=Module[\"_sqlite3_result_text16\"]=wasmExports[\"sqlite3_result_text16\"])(a0,a1,a2,a3);var _sqlite3_result_text16be=Module[\"_sqlite3_result_text16be\"]=(a0,a1,a2,a3)=>(_sqlite3_result_text16be=Module[\"_sqlite3_result_text16be\"]=wasmExports[\"sqlite3_result_text16be\"])(a0,a1,a2,a3);var _sqlite3_result_text16le=Module[\"_sqlite3_result_text16le\"]=(a0,a1,a2,a3)=>(_sqlite3_result_text16le=Module[\"_sqlite3_result_text16le\"]=wasmExports[\"sqlite3_result_text16le\"])(a0,a1,a2,a3);var _sqlite3_result_value=Module[\"_sqlite3_result_value\"]=(a0,a1)=>(_sqlite3_result_value=Module[\"_sqlite3_result_value\"]=wasmExports[\"sqlite3_result_value\"])(a0,a1);var _sqlite3_result_error_toobig=Module[\"_sqlite3_result_error_toobig\"]=a0=>(_sqlite3_result_error_toobig=Module[\"_sqlite3_result_error_toobig\"]=wasmExports[\"sqlite3_result_error_toobig\"])(a0);var _sqlite3_result_zeroblob=Module[\"_sqlite3_result_zeroblob\"]=(a0,a1)=>(_sqlite3_result_zeroblob=Module[\"_sqlite3_result_zeroblob\"]=wasmExports[\"sqlite3_result_zeroblob\"])(a0,a1);var _sqlite3_result_zeroblob64=Module[\"_sqlite3_result_zeroblob64\"]=(a0,a1,a2)=>(_sqlite3_result_zeroblob64=Module[\"_sqlite3_result_zeroblob64\"]=wasmExports[\"sqlite3_result_zeroblob64\"])(a0,a1,a2);var _sqlite3_result_error_code=Module[\"_sqlite3_result_error_code\"]=(a0,a1)=>(_sqlite3_result_error_code=Module[\"_sqlite3_result_error_code\"]=wasmExports[\"sqlite3_result_error_code\"])(a0,a1);var _sqlite3_result_error_nomem=Module[\"_sqlite3_result_error_nomem\"]=a0=>(_sqlite3_result_error_nomem=Module[\"_sqlite3_result_error_nomem\"]=wasmExports[\"sqlite3_result_error_nomem\"])(a0);var _sqlite3_user_data=Module[\"_sqlite3_user_data\"]=a0=>(_sqlite3_user_data=Module[\"_sqlite3_user_data\"]=wasmExports[\"sqlite3_user_data\"])(a0);var _sqlite3_context_db_handle=Module[\"_sqlite3_context_db_handle\"]=a0=>(_sqlite3_context_db_handle=Module[\"_sqlite3_context_db_handle\"]=wasmExports[\"sqlite3_context_db_handle\"])(a0);var _sqlite3_vtab_nochange=Module[\"_sqlite3_vtab_nochange\"]=a0=>(_sqlite3_vtab_nochange=Module[\"_sqlite3_vtab_nochange\"]=wasmExports[\"sqlite3_vtab_nochange\"])(a0);var _sqlite3_vtab_in_first=Module[\"_sqlite3_vtab_in_first\"]=(a0,a1)=>(_sqlite3_vtab_in_first=Module[\"_sqlite3_vtab_in_first\"]=wasmExports[\"sqlite3_vtab_in_first\"])(a0,a1);var _sqlite3_vtab_in_next=Module[\"_sqlite3_vtab_in_next\"]=(a0,a1)=>(_sqlite3_vtab_in_next=Module[\"_sqlite3_vtab_in_next\"]=wasmExports[\"sqlite3_vtab_in_next\"])(a0,a1);var _sqlite3_aggregate_context=Module[\"_sqlite3_aggregate_context\"]=(a0,a1)=>(_sqlite3_aggregate_context=Module[\"_sqlite3_aggregate_context\"]=wasmExports[\"sqlite3_aggregate_context\"])(a0,a1);var _sqlite3_get_auxdata=Module[\"_sqlite3_get_auxdata\"]=(a0,a1)=>(_sqlite3_get_auxdata=Module[\"_sqlite3_get_auxdata\"]=wasmExports[\"sqlite3_get_auxdata\"])(a0,a1);var _sqlite3_set_auxdata=Module[\"_sqlite3_set_auxdata\"]=(a0,a1,a2,a3)=>(_sqlite3_set_auxdata=Module[\"_sqlite3_set_auxdata\"]=wasmExports[\"sqlite3_set_auxdata\"])(a0,a1,a2,a3);var _sqlite3_column_count=Module[\"_sqlite3_column_count\"]=a0=>(_sqlite3_column_count=Module[\"_sqlite3_column_count\"]=wasmExports[\"sqlite3_column_count\"])(a0);var _sqlite3_data_count=Module[\"_sqlite3_data_count\"]=a0=>(_sqlite3_data_count=Module[\"_sqlite3_data_count\"]=wasmExports[\"sqlite3_data_count\"])(a0);var _sqlite3_column_blob=Module[\"_sqlite3_column_blob\"]=(a0,a1)=>(_sqlite3_column_blob=Module[\"_sqlite3_column_blob\"]=wasmExports[\"sqlite3_column_blob\"])(a0,a1);var _sqlite3_column_bytes=Module[\"_sqlite3_column_bytes\"]=(a0,a1)=>(_sqlite3_column_bytes=Module[\"_sqlite3_column_bytes\"]=wasmExports[\"sqlite3_column_bytes\"])(a0,a1);var _sqlite3_column_bytes16=Module[\"_sqlite3_column_bytes16\"]=(a0,a1)=>(_sqlite3_column_bytes16=Module[\"_sqlite3_column_bytes16\"]=wasmExports[\"sqlite3_column_bytes16\"])(a0,a1);var _sqlite3_column_double=Module[\"_sqlite3_column_double\"]=(a0,a1)=>(_sqlite3_column_double=Module[\"_sqlite3_column_double\"]=wasmExports[\"sqlite3_column_double\"])(a0,a1);var _sqlite3_column_text=Module[\"_sqlite3_column_text\"]=(a0,a1)=>(_sqlite3_column_text=Module[\"_sqlite3_column_text\"]=wasmExports[\"sqlite3_column_text\"])(a0,a1);var _sqlite3_column_value=Module[\"_sqlite3_column_value\"]=(a0,a1)=>(_sqlite3_column_value=Module[\"_sqlite3_column_value\"]=wasmExports[\"sqlite3_column_value\"])(a0,a1);var _sqlite3_column_text16=Module[\"_sqlite3_column_text16\"]=(a0,a1)=>(_sqlite3_column_text16=Module[\"_sqlite3_column_text16\"]=wasmExports[\"sqlite3_column_text16\"])(a0,a1);var _sqlite3_column_type=Module[\"_sqlite3_column_type\"]=(a0,a1)=>(_sqlite3_column_type=Module[\"_sqlite3_column_type\"]=wasmExports[\"sqlite3_column_type\"])(a0,a1);var _sqlite3_column_name=Module[\"_sqlite3_column_name\"]=(a0,a1)=>(_sqlite3_column_name=Module[\"_sqlite3_column_name\"]=wasmExports[\"sqlite3_column_name\"])(a0,a1);var _sqlite3_column_name16=Module[\"_sqlite3_column_name16\"]=(a0,a1)=>(_sqlite3_column_name16=Module[\"_sqlite3_column_name16\"]=wasmExports[\"sqlite3_column_name16\"])(a0,a1);var _sqlite3_bind_blob=Module[\"_sqlite3_bind_blob\"]=(a0,a1,a2,a3,a4)=>(_sqlite3_bind_blob=Module[\"_sqlite3_bind_blob\"]=wasmExports[\"sqlite3_bind_blob\"])(a0,a1,a2,a3,a4);var _sqlite3_bind_blob64=Module[\"_sqlite3_bind_blob64\"]=(a0,a1,a2,a3,a4,a5)=>(_sqlite3_bind_blob64=Module[\"_sqlite3_bind_blob64\"]=wasmExports[\"sqlite3_bind_blob64\"])(a0,a1,a2,a3,a4,a5);var _sqlite3_bind_double=Module[\"_sqlite3_bind_double\"]=(a0,a1,a2)=>(_sqlite3_bind_double=Module[\"_sqlite3_bind_double\"]=wasmExports[\"sqlite3_bind_double\"])(a0,a1,a2);var _sqlite3_bind_int=Module[\"_sqlite3_bind_int\"]=(a0,a1,a2)=>(_sqlite3_bind_int=Module[\"_sqlite3_bind_int\"]=wasmExports[\"sqlite3_bind_int\"])(a0,a1,a2);var _sqlite3_bind_int64=Module[\"_sqlite3_bind_int64\"]=(a0,a1,a2,a3)=>(_sqlite3_bind_int64=Module[\"_sqlite3_bind_int64\"]=wasmExports[\"sqlite3_bind_int64\"])(a0,a1,a2,a3);var _sqlite3_bind_null=Module[\"_sqlite3_bind_null\"]=(a0,a1)=>(_sqlite3_bind_null=Module[\"_sqlite3_bind_null\"]=wasmExports[\"sqlite3_bind_null\"])(a0,a1);var _sqlite3_bind_pointer=Module[\"_sqlite3_bind_pointer\"]=(a0,a1,a2,a3,a4)=>(_sqlite3_bind_pointer=Module[\"_sqlite3_bind_pointer\"]=wasmExports[\"sqlite3_bind_pointer\"])(a0,a1,a2,a3,a4);var _sqlite3_bind_text=Module[\"_sqlite3_bind_text\"]=(a0,a1,a2,a3,a4)=>(_sqlite3_bind_text=Module[\"_sqlite3_bind_text\"]=wasmExports[\"sqlite3_bind_text\"])(a0,a1,a2,a3,a4);var _sqlite3_bind_text64=Module[\"_sqlite3_bind_text64\"]=(a0,a1,a2,a3,a4,a5,a6)=>(_sqlite3_bind_text64=Module[\"_sqlite3_bind_text64\"]=wasmExports[\"sqlite3_bind_text64\"])(a0,a1,a2,a3,a4,a5,a6);var _sqlite3_bind_text16=Module[\"_sqlite3_bind_text16\"]=(a0,a1,a2,a3,a4)=>(_sqlite3_bind_text16=Module[\"_sqlite3_bind_text16\"]=wasmExports[\"sqlite3_bind_text16\"])(a0,a1,a2,a3,a4);var _sqlite3_bind_value=Module[\"_sqlite3_bind_value\"]=(a0,a1,a2)=>(_sqlite3_bind_value=Module[\"_sqlite3_bind_value\"]=wasmExports[\"sqlite3_bind_value\"])(a0,a1,a2);var _sqlite3_bind_zeroblob=Module[\"_sqlite3_bind_zeroblob\"]=(a0,a1,a2)=>(_sqlite3_bind_zeroblob=Module[\"_sqlite3_bind_zeroblob\"]=wasmExports[\"sqlite3_bind_zeroblob\"])(a0,a1,a2);var _sqlite3_bind_zeroblob64=Module[\"_sqlite3_bind_zeroblob64\"]=(a0,a1,a2,a3)=>(_sqlite3_bind_zeroblob64=Module[\"_sqlite3_bind_zeroblob64\"]=wasmExports[\"sqlite3_bind_zeroblob64\"])(a0,a1,a2,a3);var _sqlite3_bind_parameter_count=Module[\"_sqlite3_bind_parameter_count\"]=a0=>(_sqlite3_bind_parameter_count=Module[\"_sqlite3_bind_parameter_count\"]=wasmExports[\"sqlite3_bind_parameter_count\"])(a0);var _sqlite3_bind_parameter_name=Module[\"_sqlite3_bind_parameter_name\"]=(a0,a1)=>(_sqlite3_bind_parameter_name=Module[\"_sqlite3_bind_parameter_name\"]=wasmExports[\"sqlite3_bind_parameter_name\"])(a0,a1);var _sqlite3_bind_parameter_index=Module[\"_sqlite3_bind_parameter_index\"]=(a0,a1)=>(_sqlite3_bind_parameter_index=Module[\"_sqlite3_bind_parameter_index\"]=wasmExports[\"sqlite3_bind_parameter_index\"])(a0,a1);var _sqlite3_db_handle=Module[\"_sqlite3_db_handle\"]=a0=>(_sqlite3_db_handle=Module[\"_sqlite3_db_handle\"]=wasmExports[\"sqlite3_db_handle\"])(a0);var _sqlite3_stmt_readonly=Module[\"_sqlite3_stmt_readonly\"]=a0=>(_sqlite3_stmt_readonly=Module[\"_sqlite3_stmt_readonly\"]=wasmExports[\"sqlite3_stmt_readonly\"])(a0);var _sqlite3_stmt_isexplain=Module[\"_sqlite3_stmt_isexplain\"]=a0=>(_sqlite3_stmt_isexplain=Module[\"_sqlite3_stmt_isexplain\"]=wasmExports[\"sqlite3_stmt_isexplain\"])(a0);var _sqlite3_stmt_explain=Module[\"_sqlite3_stmt_explain\"]=(a0,a1)=>(_sqlite3_stmt_explain=Module[\"_sqlite3_stmt_explain\"]=wasmExports[\"sqlite3_stmt_explain\"])(a0,a1);var _sqlite3_stmt_busy=Module[\"_sqlite3_stmt_busy\"]=a0=>(_sqlite3_stmt_busy=Module[\"_sqlite3_stmt_busy\"]=wasmExports[\"sqlite3_stmt_busy\"])(a0);var _sqlite3_next_stmt=Module[\"_sqlite3_next_stmt\"]=(a0,a1)=>(_sqlite3_next_stmt=Module[\"_sqlite3_next_stmt\"]=wasmExports[\"sqlite3_next_stmt\"])(a0,a1);var _sqlite3_stmt_status=Module[\"_sqlite3_stmt_status\"]=(a0,a1,a2)=>(_sqlite3_stmt_status=Module[\"_sqlite3_stmt_status\"]=wasmExports[\"sqlite3_stmt_status\"])(a0,a1,a2);var _sqlite3_sql=Module[\"_sqlite3_sql\"]=a0=>(_sqlite3_sql=Module[\"_sqlite3_sql\"]=wasmExports[\"sqlite3_sql\"])(a0);var _sqlite3_expanded_sql=Module[\"_sqlite3_expanded_sql\"]=a0=>(_sqlite3_expanded_sql=Module[\"_sqlite3_expanded_sql\"]=wasmExports[\"sqlite3_expanded_sql\"])(a0);var _sqlite3_value_numeric_type=Module[\"_sqlite3_value_numeric_type\"]=a0=>(_sqlite3_value_numeric_type=Module[\"_sqlite3_value_numeric_type\"]=wasmExports[\"sqlite3_value_numeric_type\"])(a0);var _sqlite3_blob_open=Module[\"_sqlite3_blob_open\"]=(a0,a1,a2,a3,a4,a5,a6,a7)=>(_sqlite3_blob_open=Module[\"_sqlite3_blob_open\"]=wasmExports[\"sqlite3_blob_open\"])(a0,a1,a2,a3,a4,a5,a6,a7);var _sqlite3_blob_close=Module[\"_sqlite3_blob_close\"]=a0=>(_sqlite3_blob_close=Module[\"_sqlite3_blob_close\"]=wasmExports[\"sqlite3_blob_close\"])(a0);var _sqlite3_blob_read=Module[\"_sqlite3_blob_read\"]=(a0,a1,a2,a3)=>(_sqlite3_blob_read=Module[\"_sqlite3_blob_read\"]=wasmExports[\"sqlite3_blob_read\"])(a0,a1,a2,a3);var _sqlite3_blob_write=Module[\"_sqlite3_blob_write\"]=(a0,a1,a2,a3)=>(_sqlite3_blob_write=Module[\"_sqlite3_blob_write\"]=wasmExports[\"sqlite3_blob_write\"])(a0,a1,a2,a3);var _sqlite3_blob_bytes=Module[\"_sqlite3_blob_bytes\"]=a0=>(_sqlite3_blob_bytes=Module[\"_sqlite3_blob_bytes\"]=wasmExports[\"sqlite3_blob_bytes\"])(a0);var _sqlite3_blob_reopen=Module[\"_sqlite3_blob_reopen\"]=(a0,a1,a2)=>(_sqlite3_blob_reopen=Module[\"_sqlite3_blob_reopen\"]=wasmExports[\"sqlite3_blob_reopen\"])(a0,a1,a2);var _sqlite3_set_authorizer=Module[\"_sqlite3_set_authorizer\"]=(a0,a1,a2)=>(_sqlite3_set_authorizer=Module[\"_sqlite3_set_authorizer\"]=wasmExports[\"sqlite3_set_authorizer\"])(a0,a1,a2);var _sqlite3_strglob=Module[\"_sqlite3_strglob\"]=(a0,a1)=>(_sqlite3_strglob=Module[\"_sqlite3_strglob\"]=wasmExports[\"sqlite3_strglob\"])(a0,a1);var _sqlite3_strlike=Module[\"_sqlite3_strlike\"]=(a0,a1,a2)=>(_sqlite3_strlike=Module[\"_sqlite3_strlike\"]=wasmExports[\"sqlite3_strlike\"])(a0,a1,a2);var _sqlite3_errmsg=Module[\"_sqlite3_errmsg\"]=a0=>(_sqlite3_errmsg=Module[\"_sqlite3_errmsg\"]=wasmExports[\"sqlite3_errmsg\"])(a0);var _sqlite3_auto_extension=Module[\"_sqlite3_auto_extension\"]=a0=>(_sqlite3_auto_extension=Module[\"_sqlite3_auto_extension\"]=wasmExports[\"sqlite3_auto_extension\"])(a0);var _sqlite3_cancel_auto_extension=Module[\"_sqlite3_cancel_auto_extension\"]=a0=>(_sqlite3_cancel_auto_extension=Module[\"_sqlite3_cancel_auto_extension\"]=wasmExports[\"sqlite3_cancel_auto_extension\"])(a0);var _sqlite3_reset_auto_extension=Module[\"_sqlite3_reset_auto_extension\"]=()=>(_sqlite3_reset_auto_extension=Module[\"_sqlite3_reset_auto_extension\"]=wasmExports[\"sqlite3_reset_auto_extension\"])();var _sqlite3_prepare=Module[\"_sqlite3_prepare\"]=(a0,a1,a2,a3,a4)=>(_sqlite3_prepare=Module[\"_sqlite3_prepare\"]=wasmExports[\"sqlite3_prepare\"])(a0,a1,a2,a3,a4);var _sqlite3_prepare_v3=Module[\"_sqlite3_prepare_v3\"]=(a0,a1,a2,a3,a4,a5)=>(_sqlite3_prepare_v3=Module[\"_sqlite3_prepare_v3\"]=wasmExports[\"sqlite3_prepare_v3\"])(a0,a1,a2,a3,a4,a5);var _sqlite3_prepare16=Module[\"_sqlite3_prepare16\"]=(a0,a1,a2,a3,a4)=>(_sqlite3_prepare16=Module[\"_sqlite3_prepare16\"]=wasmExports[\"sqlite3_prepare16\"])(a0,a1,a2,a3,a4);var _sqlite3_prepare16_v2=Module[\"_sqlite3_prepare16_v2\"]=(a0,a1,a2,a3,a4)=>(_sqlite3_prepare16_v2=Module[\"_sqlite3_prepare16_v2\"]=wasmExports[\"sqlite3_prepare16_v2\"])(a0,a1,a2,a3,a4);var _sqlite3_prepare16_v3=Module[\"_sqlite3_prepare16_v3\"]=(a0,a1,a2,a3,a4,a5)=>(_sqlite3_prepare16_v3=Module[\"_sqlite3_prepare16_v3\"]=wasmExports[\"sqlite3_prepare16_v3\"])(a0,a1,a2,a3,a4,a5);var _sqlite3_get_table=Module[\"_sqlite3_get_table\"]=(a0,a1,a2,a3,a4,a5)=>(_sqlite3_get_table=Module[\"_sqlite3_get_table\"]=wasmExports[\"sqlite3_get_table\"])(a0,a1,a2,a3,a4,a5);var _sqlite3_free_table=Module[\"_sqlite3_free_table\"]=a0=>(_sqlite3_free_table=Module[\"_sqlite3_free_table\"]=wasmExports[\"sqlite3_free_table\"])(a0);var _sqlite3_create_module=Module[\"_sqlite3_create_module\"]=(a0,a1,a2,a3)=>(_sqlite3_create_module=Module[\"_sqlite3_create_module\"]=wasmExports[\"sqlite3_create_module\"])(a0,a1,a2,a3);var _sqlite3_create_module_v2=Module[\"_sqlite3_create_module_v2\"]=(a0,a1,a2,a3,a4)=>(_sqlite3_create_module_v2=Module[\"_sqlite3_create_module_v2\"]=wasmExports[\"sqlite3_create_module_v2\"])(a0,a1,a2,a3,a4);var _sqlite3_drop_modules=Module[\"_sqlite3_drop_modules\"]=(a0,a1)=>(_sqlite3_drop_modules=Module[\"_sqlite3_drop_modules\"]=wasmExports[\"sqlite3_drop_modules\"])(a0,a1);var _sqlite3_declare_vtab=Module[\"_sqlite3_declare_vtab\"]=(a0,a1)=>(_sqlite3_declare_vtab=Module[\"_sqlite3_declare_vtab\"]=wasmExports[\"sqlite3_declare_vtab\"])(a0,a1);var _sqlite3_vtab_on_conflict=Module[\"_sqlite3_vtab_on_conflict\"]=a0=>(_sqlite3_vtab_on_conflict=Module[\"_sqlite3_vtab_on_conflict\"]=wasmExports[\"sqlite3_vtab_on_conflict\"])(a0);var _sqlite3_vtab_config=Module[\"_sqlite3_vtab_config\"]=(a0,a1,a2)=>(_sqlite3_vtab_config=Module[\"_sqlite3_vtab_config\"]=wasmExports[\"sqlite3_vtab_config\"])(a0,a1,a2);var _sqlite3_vtab_collation=Module[\"_sqlite3_vtab_collation\"]=(a0,a1)=>(_sqlite3_vtab_collation=Module[\"_sqlite3_vtab_collation\"]=wasmExports[\"sqlite3_vtab_collation\"])(a0,a1);var _sqlite3_vtab_in=Module[\"_sqlite3_vtab_in\"]=(a0,a1,a2)=>(_sqlite3_vtab_in=Module[\"_sqlite3_vtab_in\"]=wasmExports[\"sqlite3_vtab_in\"])(a0,a1,a2);var _sqlite3_vtab_rhs_value=Module[\"_sqlite3_vtab_rhs_value\"]=(a0,a1,a2)=>(_sqlite3_vtab_rhs_value=Module[\"_sqlite3_vtab_rhs_value\"]=wasmExports[\"sqlite3_vtab_rhs_value\"])(a0,a1,a2);var _sqlite3_vtab_distinct=Module[\"_sqlite3_vtab_distinct\"]=a0=>(_sqlite3_vtab_distinct=Module[\"_sqlite3_vtab_distinct\"]=wasmExports[\"sqlite3_vtab_distinct\"])(a0);var _sqlite3_keyword_name=Module[\"_sqlite3_keyword_name\"]=(a0,a1,a2)=>(_sqlite3_keyword_name=Module[\"_sqlite3_keyword_name\"]=wasmExports[\"sqlite3_keyword_name\"])(a0,a1,a2);var _sqlite3_keyword_count=Module[\"_sqlite3_keyword_count\"]=()=>(_sqlite3_keyword_count=Module[\"_sqlite3_keyword_count\"]=wasmExports[\"sqlite3_keyword_count\"])();var _sqlite3_keyword_check=Module[\"_sqlite3_keyword_check\"]=(a0,a1)=>(_sqlite3_keyword_check=Module[\"_sqlite3_keyword_check\"]=wasmExports[\"sqlite3_keyword_check\"])(a0,a1);var _sqlite3_complete=Module[\"_sqlite3_complete\"]=a0=>(_sqlite3_complete=Module[\"_sqlite3_complete\"]=wasmExports[\"sqlite3_complete\"])(a0);var _sqlite3_complete16=Module[\"_sqlite3_complete16\"]=a0=>(_sqlite3_complete16=Module[\"_sqlite3_complete16\"]=wasmExports[\"sqlite3_complete16\"])(a0);var _sqlite3_libversion=Module[\"_sqlite3_libversion\"]=()=>(_sqlite3_libversion=Module[\"_sqlite3_libversion\"]=wasmExports[\"sqlite3_libversion\"])();var _sqlite3_libversion_number=Module[\"_sqlite3_libversion_number\"]=()=>(_sqlite3_libversion_number=Module[\"_sqlite3_libversion_number\"]=wasmExports[\"sqlite3_libversion_number\"])();var _sqlite3_threadsafe=Module[\"_sqlite3_threadsafe\"]=()=>(_sqlite3_threadsafe=Module[\"_sqlite3_threadsafe\"]=wasmExports[\"sqlite3_threadsafe\"])();var _sqlite3_initialize=Module[\"_sqlite3_initialize\"]=()=>(_sqlite3_initialize=Module[\"_sqlite3_initialize\"]=wasmExports[\"sqlite3_initialize\"])();var _sqlite3_shutdown=Module[\"_sqlite3_shutdown\"]=()=>(_sqlite3_shutdown=Module[\"_sqlite3_shutdown\"]=wasmExports[\"sqlite3_shutdown\"])();var _sqlite3_config=Module[\"_sqlite3_config\"]=(a0,a1)=>(_sqlite3_config=Module[\"_sqlite3_config\"]=wasmExports[\"sqlite3_config\"])(a0,a1);var _sqlite3_db_mutex=Module[\"_sqlite3_db_mutex\"]=a0=>(_sqlite3_db_mutex=Module[\"_sqlite3_db_mutex\"]=wasmExports[\"sqlite3_db_mutex\"])(a0);var _sqlite3_db_release_memory=Module[\"_sqlite3_db_release_memory\"]=a0=>(_sqlite3_db_release_memory=Module[\"_sqlite3_db_release_memory\"]=wasmExports[\"sqlite3_db_release_memory\"])(a0);var _sqlite3_db_cacheflush=Module[\"_sqlite3_db_cacheflush\"]=a0=>(_sqlite3_db_cacheflush=Module[\"_sqlite3_db_cacheflush\"]=wasmExports[\"sqlite3_db_cacheflush\"])(a0);var _sqlite3_db_config=Module[\"_sqlite3_db_config\"]=(a0,a1,a2)=>(_sqlite3_db_config=Module[\"_sqlite3_db_config\"]=wasmExports[\"sqlite3_db_config\"])(a0,a1,a2);var _sqlite3_last_insert_rowid=Module[\"_sqlite3_last_insert_rowid\"]=a0=>(_sqlite3_last_insert_rowid=Module[\"_sqlite3_last_insert_rowid\"]=wasmExports[\"sqlite3_last_insert_rowid\"])(a0);var _sqlite3_set_last_insert_rowid=Module[\"_sqlite3_set_last_insert_rowid\"]=(a0,a1,a2)=>(_sqlite3_set_last_insert_rowid=Module[\"_sqlite3_set_last_insert_rowid\"]=wasmExports[\"sqlite3_set_last_insert_rowid\"])(a0,a1,a2);var _sqlite3_changes64=Module[\"_sqlite3_changes64\"]=a0=>(_sqlite3_changes64=Module[\"_sqlite3_changes64\"]=wasmExports[\"sqlite3_changes64\"])(a0);var _sqlite3_changes=Module[\"_sqlite3_changes\"]=a0=>(_sqlite3_changes=Module[\"_sqlite3_changes\"]=wasmExports[\"sqlite3_changes\"])(a0);var _sqlite3_total_changes64=Module[\"_sqlite3_total_changes64\"]=a0=>(_sqlite3_total_changes64=Module[\"_sqlite3_total_changes64\"]=wasmExports[\"sqlite3_total_changes64\"])(a0);var _sqlite3_total_changes=Module[\"_sqlite3_total_changes\"]=a0=>(_sqlite3_total_changes=Module[\"_sqlite3_total_changes\"]=wasmExports[\"sqlite3_total_changes\"])(a0);var _sqlite3_txn_state=Module[\"_sqlite3_txn_state\"]=(a0,a1)=>(_sqlite3_txn_state=Module[\"_sqlite3_txn_state\"]=wasmExports[\"sqlite3_txn_state\"])(a0,a1);var _sqlite3_close=Module[\"_sqlite3_close\"]=a0=>(_sqlite3_close=Module[\"_sqlite3_close\"]=wasmExports[\"sqlite3_close\"])(a0);var _sqlite3_close_v2=Module[\"_sqlite3_close_v2\"]=a0=>(_sqlite3_close_v2=Module[\"_sqlite3_close_v2\"]=wasmExports[\"sqlite3_close_v2\"])(a0);var _sqlite3_busy_handler=Module[\"_sqlite3_busy_handler\"]=(a0,a1,a2)=>(_sqlite3_busy_handler=Module[\"_sqlite3_busy_handler\"]=wasmExports[\"sqlite3_busy_handler\"])(a0,a1,a2);var _sqlite3_progress_handler=Module[\"_sqlite3_progress_handler\"]=(a0,a1,a2,a3)=>(_sqlite3_progress_handler=Module[\"_sqlite3_progress_handler\"]=wasmExports[\"sqlite3_progress_handler\"])(a0,a1,a2,a3);var _sqlite3_busy_timeout=Module[\"_sqlite3_busy_timeout\"]=(a0,a1)=>(_sqlite3_busy_timeout=Module[\"_sqlite3_busy_timeout\"]=wasmExports[\"sqlite3_busy_timeout\"])(a0,a1);var _sqlite3_interrupt=Module[\"_sqlite3_interrupt\"]=a0=>(_sqlite3_interrupt=Module[\"_sqlite3_interrupt\"]=wasmExports[\"sqlite3_interrupt\"])(a0);var _sqlite3_is_interrupted=Module[\"_sqlite3_is_interrupted\"]=a0=>(_sqlite3_is_interrupted=Module[\"_sqlite3_is_interrupted\"]=wasmExports[\"sqlite3_is_interrupted\"])(a0);var _sqlite3_create_function=Module[\"_sqlite3_create_function\"]=(a0,a1,a2,a3,a4,a5,a6,a7)=>(_sqlite3_create_function=Module[\"_sqlite3_create_function\"]=wasmExports[\"sqlite3_create_function\"])(a0,a1,a2,a3,a4,a5,a6,a7);var _sqlite3_create_function_v2=Module[\"_sqlite3_create_function_v2\"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8)=>(_sqlite3_create_function_v2=Module[\"_sqlite3_create_function_v2\"]=wasmExports[\"sqlite3_create_function_v2\"])(a0,a1,a2,a3,a4,a5,a6,a7,a8);var _sqlite3_create_window_function=Module[\"_sqlite3_create_window_function\"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9)=>(_sqlite3_create_window_function=Module[\"_sqlite3_create_window_function\"]=wasmExports[\"sqlite3_create_window_function\"])(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9);var _sqlite3_create_function16=Module[\"_sqlite3_create_function16\"]=(a0,a1,a2,a3,a4,a5,a6,a7)=>(_sqlite3_create_function16=Module[\"_sqlite3_create_function16\"]=wasmExports[\"sqlite3_create_function16\"])(a0,a1,a2,a3,a4,a5,a6,a7);var _sqlite3_overload_function=Module[\"_sqlite3_overload_function\"]=(a0,a1,a2)=>(_sqlite3_overload_function=Module[\"_sqlite3_overload_function\"]=wasmExports[\"sqlite3_overload_function\"])(a0,a1,a2);var _sqlite3_trace_v2=Module[\"_sqlite3_trace_v2\"]=(a0,a1,a2,a3)=>(_sqlite3_trace_v2=Module[\"_sqlite3_trace_v2\"]=wasmExports[\"sqlite3_trace_v2\"])(a0,a1,a2,a3);var _sqlite3_commit_hook=Module[\"_sqlite3_commit_hook\"]=(a0,a1,a2)=>(_sqlite3_commit_hook=Module[\"_sqlite3_commit_hook\"]=wasmExports[\"sqlite3_commit_hook\"])(a0,a1,a2);var _sqlite3_update_hook=Module[\"_sqlite3_update_hook\"]=(a0,a1,a2)=>(_sqlite3_update_hook=Module[\"_sqlite3_update_hook\"]=wasmExports[\"sqlite3_update_hook\"])(a0,a1,a2);var _sqlite3_rollback_hook=Module[\"_sqlite3_rollback_hook\"]=(a0,a1,a2)=>(_sqlite3_rollback_hook=Module[\"_sqlite3_rollback_hook\"]=wasmExports[\"sqlite3_rollback_hook\"])(a0,a1,a2);var _sqlite3_autovacuum_pages=Module[\"_sqlite3_autovacuum_pages\"]=(a0,a1,a2,a3)=>(_sqlite3_autovacuum_pages=Module[\"_sqlite3_autovacuum_pages\"]=wasmExports[\"sqlite3_autovacuum_pages\"])(a0,a1,a2,a3);var _sqlite3_wal_autocheckpoint=Module[\"_sqlite3_wal_autocheckpoint\"]=(a0,a1)=>(_sqlite3_wal_autocheckpoint=Module[\"_sqlite3_wal_autocheckpoint\"]=wasmExports[\"sqlite3_wal_autocheckpoint\"])(a0,a1);var _sqlite3_wal_hook=Module[\"_sqlite3_wal_hook\"]=(a0,a1,a2)=>(_sqlite3_wal_hook=Module[\"_sqlite3_wal_hook\"]=wasmExports[\"sqlite3_wal_hook\"])(a0,a1,a2);var _sqlite3_wal_checkpoint_v2=Module[\"_sqlite3_wal_checkpoint_v2\"]=(a0,a1,a2,a3,a4)=>(_sqlite3_wal_checkpoint_v2=Module[\"_sqlite3_wal_checkpoint_v2\"]=wasmExports[\"sqlite3_wal_checkpoint_v2\"])(a0,a1,a2,a3,a4);var _sqlite3_wal_checkpoint=Module[\"_sqlite3_wal_checkpoint\"]=(a0,a1)=>(_sqlite3_wal_checkpoint=Module[\"_sqlite3_wal_checkpoint\"]=wasmExports[\"sqlite3_wal_checkpoint\"])(a0,a1);var _sqlite3_error_offset=Module[\"_sqlite3_error_offset\"]=a0=>(_sqlite3_error_offset=Module[\"_sqlite3_error_offset\"]=wasmExports[\"sqlite3_error_offset\"])(a0);var _sqlite3_errmsg16=Module[\"_sqlite3_errmsg16\"]=a0=>(_sqlite3_errmsg16=Module[\"_sqlite3_errmsg16\"]=wasmExports[\"sqlite3_errmsg16\"])(a0);var _sqlite3_errcode=Module[\"_sqlite3_errcode\"]=a0=>(_sqlite3_errcode=Module[\"_sqlite3_errcode\"]=wasmExports[\"sqlite3_errcode\"])(a0);var _sqlite3_extended_errcode=Module[\"_sqlite3_extended_errcode\"]=a0=>(_sqlite3_extended_errcode=Module[\"_sqlite3_extended_errcode\"]=wasmExports[\"sqlite3_extended_errcode\"])(a0);var _sqlite3_system_errno=Module[\"_sqlite3_system_errno\"]=a0=>(_sqlite3_system_errno=Module[\"_sqlite3_system_errno\"]=wasmExports[\"sqlite3_system_errno\"])(a0);var _sqlite3_errstr=Module[\"_sqlite3_errstr\"]=a0=>(_sqlite3_errstr=Module[\"_sqlite3_errstr\"]=wasmExports[\"sqlite3_errstr\"])(a0);var _sqlite3_limit=Module[\"_sqlite3_limit\"]=(a0,a1,a2)=>(_sqlite3_limit=Module[\"_sqlite3_limit\"]=wasmExports[\"sqlite3_limit\"])(a0,a1,a2);var _sqlite3_open=Module[\"_sqlite3_open\"]=(a0,a1)=>(_sqlite3_open=Module[\"_sqlite3_open\"]=wasmExports[\"sqlite3_open\"])(a0,a1);var _sqlite3_open_v2=Module[\"_sqlite3_open_v2\"]=(a0,a1,a2,a3)=>(_sqlite3_open_v2=Module[\"_sqlite3_open_v2\"]=wasmExports[\"sqlite3_open_v2\"])(a0,a1,a2,a3);var _sqlite3_open16=Module[\"_sqlite3_open16\"]=(a0,a1)=>(_sqlite3_open16=Module[\"_sqlite3_open16\"]=wasmExports[\"sqlite3_open16\"])(a0,a1);var _sqlite3_create_collation=Module[\"_sqlite3_create_collation\"]=(a0,a1,a2,a3,a4)=>(_sqlite3_create_collation=Module[\"_sqlite3_create_collation\"]=wasmExports[\"sqlite3_create_collation\"])(a0,a1,a2,a3,a4);var _sqlite3_create_collation_v2=Module[\"_sqlite3_create_collation_v2\"]=(a0,a1,a2,a3,a4,a5)=>(_sqlite3_create_collation_v2=Module[\"_sqlite3_create_collation_v2\"]=wasmExports[\"sqlite3_create_collation_v2\"])(a0,a1,a2,a3,a4,a5);var _sqlite3_create_collation16=Module[\"_sqlite3_create_collation16\"]=(a0,a1,a2,a3,a4)=>(_sqlite3_create_collation16=Module[\"_sqlite3_create_collation16\"]=wasmExports[\"sqlite3_create_collation16\"])(a0,a1,a2,a3,a4);var _sqlite3_collation_needed=Module[\"_sqlite3_collation_needed\"]=(a0,a1,a2)=>(_sqlite3_collation_needed=Module[\"_sqlite3_collation_needed\"]=wasmExports[\"sqlite3_collation_needed\"])(a0,a1,a2);var _sqlite3_collation_needed16=Module[\"_sqlite3_collation_needed16\"]=(a0,a1,a2)=>(_sqlite3_collation_needed16=Module[\"_sqlite3_collation_needed16\"]=wasmExports[\"sqlite3_collation_needed16\"])(a0,a1,a2);var _sqlite3_get_clientdata=Module[\"_sqlite3_get_clientdata\"]=(a0,a1)=>(_sqlite3_get_clientdata=Module[\"_sqlite3_get_clientdata\"]=wasmExports[\"sqlite3_get_clientdata\"])(a0,a1);var _sqlite3_set_clientdata=Module[\"_sqlite3_set_clientdata\"]=(a0,a1,a2,a3)=>(_sqlite3_set_clientdata=Module[\"_sqlite3_set_clientdata\"]=wasmExports[\"sqlite3_set_clientdata\"])(a0,a1,a2,a3);var _sqlite3_get_autocommit=Module[\"_sqlite3_get_autocommit\"]=a0=>(_sqlite3_get_autocommit=Module[\"_sqlite3_get_autocommit\"]=wasmExports[\"sqlite3_get_autocommit\"])(a0);var _sqlite3_table_column_metadata=Module[\"_sqlite3_table_column_metadata\"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8)=>(_sqlite3_table_column_metadata=Module[\"_sqlite3_table_column_metadata\"]=wasmExports[\"sqlite3_table_column_metadata\"])(a0,a1,a2,a3,a4,a5,a6,a7,a8);var _sqlite3_sleep=Module[\"_sqlite3_sleep\"]=a0=>(_sqlite3_sleep=Module[\"_sqlite3_sleep\"]=wasmExports[\"sqlite3_sleep\"])(a0);var _sqlite3_extended_result_codes=Module[\"_sqlite3_extended_result_codes\"]=(a0,a1)=>(_sqlite3_extended_result_codes=Module[\"_sqlite3_extended_result_codes\"]=wasmExports[\"sqlite3_extended_result_codes\"])(a0,a1);var _sqlite3_file_control=Module[\"_sqlite3_file_control\"]=(a0,a1,a2,a3)=>(_sqlite3_file_control=Module[\"_sqlite3_file_control\"]=wasmExports[\"sqlite3_file_control\"])(a0,a1,a2,a3);var _sqlite3_test_control=Module[\"_sqlite3_test_control\"]=(a0,a1)=>(_sqlite3_test_control=Module[\"_sqlite3_test_control\"]=wasmExports[\"sqlite3_test_control\"])(a0,a1);var _sqlite3_create_filename=Module[\"_sqlite3_create_filename\"]=(a0,a1,a2,a3,a4)=>(_sqlite3_create_filename=Module[\"_sqlite3_create_filename\"]=wasmExports[\"sqlite3_create_filename\"])(a0,a1,a2,a3,a4);var _sqlite3_free_filename=Module[\"_sqlite3_free_filename\"]=a0=>(_sqlite3_free_filename=Module[\"_sqlite3_free_filename\"]=wasmExports[\"sqlite3_free_filename\"])(a0);var _sqlite3_uri_parameter=Module[\"_sqlite3_uri_parameter\"]=(a0,a1)=>(_sqlite3_uri_parameter=Module[\"_sqlite3_uri_parameter\"]=wasmExports[\"sqlite3_uri_parameter\"])(a0,a1);var _sqlite3_uri_key=Module[\"_sqlite3_uri_key\"]=(a0,a1)=>(_sqlite3_uri_key=Module[\"_sqlite3_uri_key\"]=wasmExports[\"sqlite3_uri_key\"])(a0,a1);var _sqlite3_uri_boolean=Module[\"_sqlite3_uri_boolean\"]=(a0,a1,a2)=>(_sqlite3_uri_boolean=Module[\"_sqlite3_uri_boolean\"]=wasmExports[\"sqlite3_uri_boolean\"])(a0,a1,a2);var _sqlite3_uri_int64=Module[\"_sqlite3_uri_int64\"]=(a0,a1,a2,a3)=>(_sqlite3_uri_int64=Module[\"_sqlite3_uri_int64\"]=wasmExports[\"sqlite3_uri_int64\"])(a0,a1,a2,a3);var _sqlite3_filename_database=Module[\"_sqlite3_filename_database\"]=a0=>(_sqlite3_filename_database=Module[\"_sqlite3_filename_database\"]=wasmExports[\"sqlite3_filename_database\"])(a0);var _sqlite3_filename_journal=Module[\"_sqlite3_filename_journal\"]=a0=>(_sqlite3_filename_journal=Module[\"_sqlite3_filename_journal\"]=wasmExports[\"sqlite3_filename_journal\"])(a0);var _sqlite3_filename_wal=Module[\"_sqlite3_filename_wal\"]=a0=>(_sqlite3_filename_wal=Module[\"_sqlite3_filename_wal\"]=wasmExports[\"sqlite3_filename_wal\"])(a0);var _sqlite3_db_name=Module[\"_sqlite3_db_name\"]=(a0,a1)=>(_sqlite3_db_name=Module[\"_sqlite3_db_name\"]=wasmExports[\"sqlite3_db_name\"])(a0,a1);var _sqlite3_db_filename=Module[\"_sqlite3_db_filename\"]=(a0,a1)=>(_sqlite3_db_filename=Module[\"_sqlite3_db_filename\"]=wasmExports[\"sqlite3_db_filename\"])(a0,a1);var _sqlite3_db_readonly=Module[\"_sqlite3_db_readonly\"]=(a0,a1)=>(_sqlite3_db_readonly=Module[\"_sqlite3_db_readonly\"]=wasmExports[\"sqlite3_db_readonly\"])(a0,a1);var _sqlite3_compileoption_used=Module[\"_sqlite3_compileoption_used\"]=a0=>(_sqlite3_compileoption_used=Module[\"_sqlite3_compileoption_used\"]=wasmExports[\"sqlite3_compileoption_used\"])(a0);var _sqlite3_compileoption_get=Module[\"_sqlite3_compileoption_get\"]=a0=>(_sqlite3_compileoption_get=Module[\"_sqlite3_compileoption_get\"]=wasmExports[\"sqlite3_compileoption_get\"])(a0);var _sqlite3_sourceid=Module[\"_sqlite3_sourceid\"]=()=>(_sqlite3_sourceid=Module[\"_sqlite3_sourceid\"]=wasmExports[\"sqlite3_sourceid\"])();var _malloc=Module[\"_malloc\"]=a0=>(_malloc=Module[\"_malloc\"]=wasmExports[\"malloc\"])(a0);var _free=Module[\"_free\"]=a0=>(_free=Module[\"_free\"]=wasmExports[\"free\"])(a0);var _RegisterExtensionFunctions=Module[\"_RegisterExtensionFunctions\"]=a0=>(_RegisterExtensionFunctions=Module[\"_RegisterExtensionFunctions\"]=wasmExports[\"RegisterExtensionFunctions\"])(a0);var _getSqliteFree=Module[\"_getSqliteFree\"]=()=>(_getSqliteFree=Module[\"_getSqliteFree\"]=wasmExports[\"getSqliteFree\"])();var _main=Module[\"_main\"]=(a0,a1)=>(_main=Module[\"_main\"]=wasmExports[\"main\"])(a0,a1);var _libauthorizer_set_authorizer=Module[\"_libauthorizer_set_authorizer\"]=(a0,a1,a2)=>(_libauthorizer_set_authorizer=Module[\"_libauthorizer_set_authorizer\"]=wasmExports[\"libauthorizer_set_authorizer\"])(a0,a1,a2);var _libfunction_create_function=Module[\"_libfunction_create_function\"]=(a0,a1,a2,a3,a4,a5,a6,a7)=>(_libfunction_create_function=Module[\"_libfunction_create_function\"]=wasmExports[\"libfunction_create_function\"])(a0,a1,a2,a3,a4,a5,a6,a7);var _libhook_commit_hook=Module[\"_libhook_commit_hook\"]=(a0,a1,a2)=>(_libhook_commit_hook=Module[\"_libhook_commit_hook\"]=wasmExports[\"libhook_commit_hook\"])(a0,a1,a2);var _libhook_update_hook=Module[\"_libhook_update_hook\"]=(a0,a1,a2)=>(_libhook_update_hook=Module[\"_libhook_update_hook\"]=wasmExports[\"libhook_update_hook\"])(a0,a1,a2);var _libprogress_progress_handler=Module[\"_libprogress_progress_handler\"]=(a0,a1,a2,a3)=>(_libprogress_progress_handler=Module[\"_libprogress_progress_handler\"]=wasmExports[\"libprogress_progress_handler\"])(a0,a1,a2,a3);var _libvfs_vfs_register=Module[\"_libvfs_vfs_register\"]=(a0,a1,a2,a3,a4,a5)=>(_libvfs_vfs_register=Module[\"_libvfs_vfs_register\"]=wasmExports[\"libvfs_vfs_register\"])(a0,a1,a2,a3,a4,a5);var _emscripten_builtin_memalign=(a0,a1)=>(_emscripten_builtin_memalign=wasmExports[\"emscripten_builtin_memalign\"])(a0,a1);var __emscripten_tempret_get=()=>(__emscripten_tempret_get=wasmExports[\"_emscripten_tempret_get\"])();var __emscripten_stack_restore=a0=>(__emscripten_stack_restore=wasmExports[\"_emscripten_stack_restore\"])(a0);var __emscripten_stack_alloc=a0=>(__emscripten_stack_alloc=wasmExports[\"_emscripten_stack_alloc\"])(a0);var _emscripten_stack_get_current=()=>(_emscripten_stack_get_current=wasmExports[\"emscripten_stack_get_current\"])();var _sqlite3_version=Module[\"_sqlite3_version\"]=3232;Module[\"getTempRet0\"]=getTempRet0;Module[\"ccall\"]=ccall;Module[\"cwrap\"]=cwrap;Module[\"addFunction\"]=addFunction;Module[\"setValue\"]=setValue;Module[\"getValue\"]=getValue;Module[\"UTF8ToString\"]=UTF8ToString;Module[\"stringToUTF8\"]=stringToUTF8;Module[\"lengthBytesUTF8\"]=lengthBytesUTF8;Module[\"intArrayFromString\"]=intArrayFromString;Module[\"intArrayToString\"]=intArrayToString;Module[\"AsciiToString\"]=AsciiToString;Module[\"UTF16ToString\"]=UTF16ToString;Module[\"stringToUTF16\"]=stringToUTF16;Module[\"UTF32ToString\"]=UTF32ToString;Module[\"stringToUTF32\"]=stringToUTF32;Module[\"writeArrayToMemory\"]=writeArrayToMemory;var calledRun;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(){var entryFunction=_main;var argc=0;var argv=0;try{var ret=entryFunction(argc,argv);Promise.resolve(ret).then(result=>{exitJS(result,true)}).catch(e=>{handleException(e)});return ret}catch(e){return handleException(e)}}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();preMain();readyPromiseResolve(Module);if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();if(shouldRunNow)callMain();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}var shouldRunNow=true;if(Module[\"noInitialRun\"])shouldRunNow=false;run();(function(){const AsyncFunction=Object.getPrototypeOf(async function(){}).constructor;let pAsyncFlags=0;Module[\"set_authorizer\"]=function(db,xAuthorizer,pApp){if(pAsyncFlags){Module[\"deleteCallback\"](pAsyncFlags);Module[\"_sqlite3_free\"](pAsyncFlags);pAsyncFlags=0}pAsyncFlags=Module[\"_sqlite3_malloc\"](4);setValue(pAsyncFlags,xAuthorizer instanceof AsyncFunction?1:0,\"i32\");const result=ccall(\"libauthorizer_set_authorizer\",\"number\",[\"number\",\"number\",\"number\"],[db,xAuthorizer?1:0,pAsyncFlags]);if(!result&&xAuthorizer){Module[\"setCallback\"](pAsyncFlags,(_,iAction,p3,p4,p5,p6)=>xAuthorizer(pApp,iAction,p3,p4,p5,p6))}return result}})();(function(){const AsyncFunction=Object.getPrototypeOf(async function(){}).constructor;const FUNC_METHODS=[\"xFunc\",\"xStep\",\"xFinal\"];const mapFunctionNameToKey=new Map;Module[\"create_function\"]=function(db,zFunctionName,nArg,eTextRep,pApp,xFunc,xStep,xFinal){const pAsyncFlags=Module[\"_sqlite3_malloc\"](4);const target={xFunc:xFunc,xStep:xStep,xFinal:xFinal};setValue(pAsyncFlags,FUNC_METHODS.reduce((mask,method,i)=>{if(target[method]instanceof AsyncFunction){return mask|1<<i}return mask},0),\"i32\");const result=ccall(\"libfunction_create_function\",\"number\",[\"number\",\"string\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"],[db,zFunctionName,nArg,eTextRep,pAsyncFlags,xFunc?1:0,xStep?1:0,xFinal?1:0]);if(!result){if(mapFunctionNameToKey.has(zFunctionName)){const oldKey=mapFunctionNameToKey.get(zFunctionName);Module[\"deleteCallback\"](oldKey)}mapFunctionNameToKey.set(zFunctionName,pAsyncFlags);Module[\"setCallback\"](pAsyncFlags,{xFunc:xFunc,xStep:xStep,xFinal:xFinal})}return result}})();(function(){const AsyncFunction=Object.getPrototypeOf(async function(){}).constructor;let pAsyncFlags=0;Module[\"update_hook\"]=function(db,xUpdateHook){if(pAsyncFlags){Module[\"deleteCallback\"](pAsyncFlags);Module[\"_sqlite3_free\"](pAsyncFlags);pAsyncFlags=0}pAsyncFlags=Module[\"_sqlite3_malloc\"](4);setValue(pAsyncFlags,xUpdateHook instanceof AsyncFunction?1:0,\"i32\");ccall(\"libhook_update_hook\",\"void\",[\"number\",\"number\",\"number\"],[db,xUpdateHook?1:0,pAsyncFlags]);if(xUpdateHook){Module[\"setCallback\"](pAsyncFlags,(_,iUpdateType,dbName,tblName,lo32,hi32)=>xUpdateHook(iUpdateType,dbName,tblName,lo32,hi32))}}})();(function(){const AsyncFunction=Object.getPrototypeOf(async function(){}).constructor;let pAsyncFlags=0;Module[\"commit_hook\"]=function(db,xCommitHook){if(pAsyncFlags){Module[\"deleteCallback\"](pAsyncFlags);Module[\"_sqlite3_free\"](pAsyncFlags);pAsyncFlags=0}pAsyncFlags=Module[\"_sqlite3_malloc\"](4);setValue(pAsyncFlags,xCommitHook instanceof AsyncFunction?1:0,\"i32\");ccall(\"libhook_commit_hook\",\"void\",[\"number\",\"number\",\"number\"],[db,xCommitHook?1:0,pAsyncFlags]);if(xCommitHook){Module[\"setCallback\"](pAsyncFlags,_=>xCommitHook())}}})();(function(){const AsyncFunction=Object.getPrototypeOf(async function(){}).constructor;let pAsyncFlags=0;Module[\"progress_handler\"]=function(db,nOps,xProgress,pApp){if(pAsyncFlags){Module[\"deleteCallback\"](pAsyncFlags);Module[\"_sqlite3_free\"](pAsyncFlags);pAsyncFlags=0}pAsyncFlags=Module[\"_sqlite3_malloc\"](4);setValue(pAsyncFlags,xProgress instanceof AsyncFunction?1:0,\"i32\");ccall(\"libprogress_progress_handler\",\"number\",[\"number\",\"number\",\"number\",\"number\"],[db,nOps,xProgress?1:0,pAsyncFlags]);if(xProgress){Module[\"setCallback\"](pAsyncFlags,_=>xProgress(pApp))}}})();(function(){const VFS_METHODS=[\"xOpen\",\"xDelete\",\"xAccess\",\"xFullPathname\",\"xRandomness\",\"xSleep\",\"xCurrentTime\",\"xGetLastError\",\"xCurrentTimeInt64\",\"xClose\",\"xRead\",\"xWrite\",\"xTruncate\",\"xSync\",\"xFileSize\",\"xLock\",\"xUnlock\",\"xCheckReservedLock\",\"xFileControl\",\"xSectorSize\",\"xDeviceCharacteristics\",\"xShmMap\",\"xShmLock\",\"xShmBarrier\",\"xShmUnmap\"];const mapVFSNameToKey=new Map;Module[\"vfs_register\"]=function(vfs,makeDefault){let methodMask=0;let asyncMask=0;VFS_METHODS.forEach((method,i)=>{if(vfs[method]){methodMask|=1<<i;if(vfs[\"hasAsyncMethod\"](method)){asyncMask|=1<<i}}});const vfsReturn=Module[\"_sqlite3_malloc\"](4);try{const result=ccall(\"libvfs_vfs_register\",\"number\",[\"string\",\"number\",\"number\",\"number\",\"number\",\"number\"],[vfs.name,vfs.mxPathname,methodMask,asyncMask,makeDefault?1:0,vfsReturn]);if(!result){if(mapVFSNameToKey.has(vfs.name)){const oldKey=mapVFSNameToKey.get(vfs.name);Module[\"deleteCallback\"](oldKey)}const key=getValue(vfsReturn,\"*\");mapVFSNameToKey.set(vfs.name,key);Module[\"setCallback\"](key,vfs)}return result}finally{Module[\"_sqlite3_free\"](vfsReturn)}}})();moduleRtn=readyPromise;\n\n\n return moduleRtn;\n}\n);\n})();\nexport default Module;\n","\nvar Module = (() => {\n var _scriptName = import.meta.url;\n \n return (\nfunction(moduleArg = {}) {\n var moduleRtn;\n\nvar Module=moduleArg;var readyPromiseResolve,readyPromiseReject;var readyPromise=new Promise((resolve,reject)=>{readyPromiseResolve=resolve;readyPromiseReject=reject});var ENVIRONMENT_IS_WEB=typeof window==\"object\";var ENVIRONMENT_IS_WORKER=typeof importScripts==\"function\";var ENVIRONMENT_IS_NODE=typeof process==\"object\"&&typeof process.versions==\"object\"&&typeof process.versions.node==\"string\";var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram=\"./this.program\";var quit_=(status,toThrow)=>{throw toThrow};var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary;if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=\"undefined\"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptName){scriptDirectory=_scriptName}if(scriptDirectory.startsWith(\"blob:\")){scriptDirectory=\"\"}else{scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,\"\").lastIndexOf(\"/\")+1)}{read_=url=>{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=(url,onload,onerror)=>{fetch(url,{credentials:\"same-origin\"}).then(response=>{if(response.ok){return response.arrayBuffer()}return Promise.reject(new Error(response.status+\" : \"+response.url))}).then(onload,onerror)}}}else{}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.error.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var wasmMemory;var ABORT=false;var EXITSTATUS;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateMemoryViews(){var b=wasmMemory.buffer;Module[\"HEAP8\"]=HEAP8=new Int8Array(b);Module[\"HEAP16\"]=HEAP16=new Int16Array(b);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(b);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(b);Module[\"HEAP32\"]=HEAP32=new Int32Array(b);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(b);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(b);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(b)}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module[\"noFSInit\"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;Module[\"monitorRunDependencies\"]?.(runDependencies)}function removeRunDependency(id){runDependencies--;Module[\"monitorRunDependencies\"]?.(runDependencies);if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){Module[\"onAbort\"]?.(what);what=\"Aborted(\"+what+\")\";err(what);ABORT=true;EXITSTATUS=1;what+=\". Build with -sASSERTIONS for more info.\";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix=\"data:application/octet-stream;base64,\";var isDataURI=filename=>filename.startsWith(dataURIPrefix);function findWasmBinary(){if(Module[\"locateFile\"]){var f=\"wa-sqlite-async.wasm\";if(!isDataURI(f)){return locateFile(f)}return f}return new URL(\"wa-sqlite-async.wasm\",import.meta.url).href}var wasmBinaryFile;function getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw\"both async and sync fetching of the wasm failed\"}function getBinaryPromise(binaryFile){if(!wasmBinary){return new Promise((resolve,reject)=>{readAsync(binaryFile,response=>resolve(new Uint8Array(response)),error=>{try{resolve(getBinarySync(binaryFile))}catch(e){reject(e)}})})}return Promise.resolve().then(()=>getBinarySync(binaryFile))}function instantiateArrayBuffer(binaryFile,imports,receiver){return getBinaryPromise(binaryFile).then(binary=>WebAssembly.instantiate(binary,imports)).then(receiver,reason=>{err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)})}function instantiateAsync(binary,binaryFile,imports,callback){if(!binary&&typeof WebAssembly.instantiateStreaming==\"function\"&&!isDataURI(binaryFile)&&typeof fetch==\"function\"){return fetch(binaryFile,{credentials:\"same-origin\"}).then(response=>{var result=WebAssembly.instantiateStreaming(response,imports);return result.then(callback,function(reason){err(`wasm streaming compile failed: ${reason}`);err(\"falling back to ArrayBuffer instantiation\");return instantiateArrayBuffer(binaryFile,imports,callback)})})}return instantiateArrayBuffer(binaryFile,imports,callback)}function getWasmImports(){return{a:wasmImports}}function createWasm(){var info=getWasmImports();function receiveInstance(instance,module){wasmExports=instance.exports;wasmExports=Asyncify.instrumentWasmExports(wasmExports);wasmMemory=wasmExports[\"la\"];updateMemoryViews();wasmTable=wasmExports[\"ef\"];addOnInit(wasmExports[\"ma\"]);removeRunDependency(\"wasm-instantiate\");return wasmExports}addRunDependency(\"wasm-instantiate\");function receiveInstantiationResult(result){receiveInstance(result[\"instance\"])}if(Module[\"instantiateWasm\"]){try{return Module[\"instantiateWasm\"](info,receiveInstance)}catch(e){err(`Module.instantiateWasm callback failed with error: ${e}`);readyPromiseReject(e)}}if(!wasmBinaryFile)wasmBinaryFile=findWasmBinary();instantiateAsync(wasmBinary,wasmBinaryFile,info,receiveInstantiationResult).catch(readyPromiseReject);return{}}var tempDouble;var tempI64;function ExitStatus(status){this.name=\"ExitStatus\";this.message=`Program terminated with exit(${status})`;this.status=status}var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};function getValue(ptr,type=\"i8\"){if(type.endsWith(\"*\"))type=\"*\";switch(type){case\"i1\":return HEAP8[ptr];case\"i8\":return HEAP8[ptr];case\"i16\":return HEAP16[ptr>>1];case\"i32\":return HEAP32[ptr>>2];case\"i64\":abort(\"to do getValue(i64) use WASM_BIGINT\");case\"float\":return HEAPF32[ptr>>2];case\"double\":return HEAPF64[ptr>>3];case\"*\":return HEAPU32[ptr>>2];default:abort(`invalid type for getValue: ${type}`)}}var noExitRuntime=Module[\"noExitRuntime\"]||true;function setValue(ptr,value,type=\"i8\"){if(type.endsWith(\"*\"))type=\"*\";switch(type){case\"i1\":HEAP8[ptr]=value;break;case\"i8\":HEAP8[ptr]=value;break;case\"i16\":HEAP16[ptr>>1]=value;break;case\"i32\":HEAP32[ptr>>2]=value;break;case\"i64\":abort(\"to do setValue(i64) use WASM_BIGINT\");case\"float\":HEAPF32[ptr>>2]=value;break;case\"double\":HEAPF64[ptr>>3]=value;break;case\"*\":HEAPU32[ptr>>2]=value;break;default:abort(`invalid type for setValue: ${type}`)}}var stackRestore=val=>__emscripten_stack_restore(val);var stackSave=()=>_emscripten_stack_get_current();var UTF8Decoder=typeof TextDecoder!=\"undefined\"?new TextDecoder(\"utf8\"):undefined;var UTF8ArrayToString=(heapOrArray,idx,maxBytesToRead)=>{var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str=\"\";while(idx<endPtr){var u0=heapOrArray[idx++];if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heapOrArray[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heapOrArray[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heapOrArray[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str};var UTF8ToString=(ptr,maxBytesToRead)=>ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):\"\";var ___assert_fail=(condition,filename,line,func)=>{abort(`Assertion failed: ${UTF8ToString(condition)}, at: `+[filename?UTF8ToString(filename):\"unknown filename\",line,func?UTF8ToString(func):\"unknown function\"])};var PATH={isAbs:path=>path.charAt(0)===\"/\",splitPath:filename=>{var splitPathRe=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:(parts,allowAboveRoot)=>{var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last===\".\"){parts.splice(i,1)}else if(last===\"..\"){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift(\"..\")}}return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.substr(-1)===\"/\";path=PATH.normalizeArray(path.split(\"/\").filter(p=>!!p),!isAbsolute).join(\"/\");if(!path&&!isAbsolute){path=\".\"}if(path&&trailingSlash){path+=\"/\"}return(isAbsolute?\"/\":\"\")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return\".\"}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:path=>{if(path===\"/\")return\"/\";path=PATH.normalize(path);path=path.replace(/\\/$/,\"\");var lastSlash=path.lastIndexOf(\"/\");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},join:(...paths)=>PATH.normalize(paths.join(\"/\")),join2:(l,r)=>PATH.normalize(l+\"/\"+r)};var initRandomFill=()=>{if(typeof crypto==\"object\"&&typeof crypto[\"getRandomValues\"]==\"function\"){return view=>crypto.getRandomValues(view)}else abort(\"initRandomDevice\")};var randomFill=view=>(randomFill=initRandomFill())(view);var PATH_FS={resolve:(...args)=>{var resolvedPath=\"\",resolvedAbsolute=false;for(var i=args.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?args[i]:FS.cwd();if(typeof path!=\"string\"){throw new TypeError(\"Arguments to path.resolve must be strings\")}else if(!path){return\"\"}resolvedPath=path+\"/\"+resolvedPath;resolvedAbsolute=PATH.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split(\"/\").filter(p=>!!p),!resolvedAbsolute).join(\"/\");return(resolvedAbsolute?\"/\":\"\")+resolvedPath||\".\"},relative:(from,to)=>{from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start<arr.length;start++){if(arr[start]!==\"\")break}var end=arr.length-1;for(;end>=0;end--){if(arr[end]!==\"\")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split(\"/\"));var toParts=trim(to.split(\"/\"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i<length;i++){if(fromParts[i]!==toParts[i]){samePartsLength=i;break}}var outputParts=[];for(var i=samePartsLength;i<fromParts.length;i++){outputParts.push(\"..\")}outputParts=outputParts.concat(toParts.slice(samePartsLength));return outputParts.join(\"/\")}};var FS_stdin_getChar_buffer=[];var lengthBytesUTF8=str=>{var len=0;for(var i=0;i<str.length;++i){var c=str.charCodeAt(i);if(c<=127){len++}else if(c<=2047){len+=2}else if(c>=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var 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 intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var FS_stdin_getChar=()=>{if(!FS_stdin_getChar_buffer.length){var result=null;if(typeof window!=\"undefined\"&&typeof window.prompt==\"function\"){result=window.prompt(\"Input: \");if(result!==null){result+=\"\\n\"}}else{}if(!result){return null}FS_stdin_getChar_buffer=intArrayFromString(result,true)}return FS_stdin_getChar_buffer.shift()};var TTY={ttys:[],init(){},shutdown(){},register(dev,ops){TTY.ttys[dev]={input:[],output:[],ops:ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},close(stream){stream.tty.ops.fsync(stream.tty)},fsync(stream){stream.tty.ops.fsync(stream.tty)},read(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(60)}var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=stream.tty.ops.get_char(stream.tty)}catch(e){throw new FS.ErrnoError(29)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(6)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}if(bytesRead){stream.node.timestamp=Date.now()}return bytesRead},write(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.put_char){throw new FS.ErrnoError(60)}try{for(var i=0;i<length;i++){stream.tty.ops.put_char(stream.tty,buffer[offset+i])}}catch(e){throw new FS.ErrnoError(29)}if(length){stream.node.timestamp=Date.now()}return i}},default_tty_ops:{get_char(tty){return FS_stdin_getChar()},put_char(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}},ioctl_tcgets(tty){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(tty,optional_actions,data){return 0},ioctl_tiocgwinsz(tty){return[24,80]}},default_tty1_ops:{put_char(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};var zeroMemory=(address,size)=>{HEAPU8.fill(0,address,address+size);return address};var alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;var mmapAlloc=size=>{size=alignMemory(size,65536);var ptr=_emscripten_builtin_memalign(65536,size);if(!ptr)return 0;return zeroMemory(ptr,size)};var MEMFS={ops_table:null,mount(mount){return MEMFS.createNode(null,\"/\",16384|511,0)},createNode(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}MEMFS.ops_table||={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}};var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity<CAPACITY_DOUBLING_MAX?2:1.125)>>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup(parent,name){throw FS.genericErrors[44]},mknod(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp},unlink(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir(node){var entries=[\".\",\"..\"];for(var key of Object.keys(node.contents)){entries.push(key)}return entries},symlink(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i<size;i++)buffer[offset+i]=contents[position+i]}return size},write(stream,buffer,offset,length,position,canOwn){if(buffer.buffer===HEAP8.buffer){canOwn=false}if(!length)return 0;var node=stream.node;node.timestamp=Date.now();if(buffer.subarray&&(!node.contents||node.contents.subarray)){if(canOwn){node.contents=buffer.subarray(offset,offset+length);node.usedBytes=length;return length}else if(node.usedBytes===0&&position===0){node.contents=buffer.slice(offset,offset+length);node.usedBytes=length;return length}else if(position+length<=node.usedBytes){node.contents.set(buffer.subarray(offset,offset+length),position);return length}}MEMFS.expandFileStorage(node,position+length);if(node.contents.subarray&&buffer.subarray){node.contents.set(buffer.subarray(offset,offset+length),position)}else{for(var i=0;i<length;i++){node.contents[position+i]=buffer[offset+i]}}node.usedBytes=Math.max(node.usedBytes,position+length);return length},llseek(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.usedBytes}}if(position<0){throw new FS.ErrnoError(28)}return position},allocate(stream,offset,length){MEMFS.expandFileStorage(stream.node,offset+length);stream.node.usedBytes=Math.max(stream.node.usedBytes,offset+length)},mmap(stream,length,position,prot,flags){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}var ptr;var allocated;var contents=stream.node.contents;if(!(flags&2)&&contents.buffer===HEAP8.buffer){allocated=false;ptr=contents.byteOffset}else{if(position>0||position+length<contents.length){if(contents.subarray){contents=contents.subarray(position,position+length)}else{contents=Array.prototype.slice.call(contents,position,position+length)}}allocated=true;ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}HEAP8.set(contents,ptr)}return{ptr:ptr,allocated:allocated}},msync(stream,buffer,offset,length,mmapFlags){MEMFS.stream_ops.write(stream,buffer,0,length,offset,false);return 0}}};var asyncLoad=(url,onload,onerror,noRunDep)=>{var dep=!noRunDep?getUniqueRunDependency(`al ${url}`):\"\";readAsync(url,arrayBuffer=>{onload(new Uint8Array(arrayBuffer));if(dep)removeRunDependency(dep)},event=>{if(onerror){onerror()}else{throw`Loading data file \"${url}\" failed.`}});if(dep)addRunDependency(dep)};var FS_createDataFile=(parent,name,fileData,canRead,canWrite,canOwn)=>{FS.createDataFile(parent,name,fileData,canRead,canWrite,canOwn)};var preloadPlugins=Module[\"preloadPlugins\"]||[];var FS_handledByPreloadPlugin=(byteArray,fullname,finish,onerror)=>{if(typeof Browser!=\"undefined\")Browser.init();var handled=false;preloadPlugins.forEach(plugin=>{if(handled)return;if(plugin[\"canHandle\"](fullname)){plugin[\"handle\"](byteArray,fullname,finish,onerror);handled=true}});return handled};var FS_createPreloadedFile=(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)=>{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency(`cp ${fullname}`);function processData(byteArray){function finish(byteArray){preFinish?.();if(!dontCreateFile){FS_createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}onload?.();removeRunDependency(dep)}if(FS_handledByPreloadPlugin(byteArray,fullname,finish,()=>{onerror?.();removeRunDependency(dep)})){return}finish(byteArray)}addRunDependency(dep);if(typeof url==\"string\"){asyncLoad(url,processData,onerror)}else{processData(url)}};var FS_modeStringToFlags=str=>{var flagModes={r:0,\"r+\":2,w:512|64|1,\"w+\":512|64|2,a:1024|64|1,\"a+\":1024|64|2};var flags=flagModes[str];if(typeof flags==\"undefined\"){throw new Error(`Unknown file open mode: ${str}`)}return flags};var FS_getMode=(canRead,canWrite)=>{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode};var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:\"/\",initialized:false,ignorePermissions:true,ErrnoError:class{constructor(errno){this.name=\"ErrnoError\";this.errno=errno}},genericErrors:{},filesystems:null,syncFSRequests:0,FSStream:class{constructor(){this.shared={}}get object(){return this.node}set object(val){this.node=val}get isRead(){return(this.flags&2097155)!==1}get isWrite(){return(this.flags&2097155)!==0}get isAppend(){return this.flags&1024}get flags(){return this.shared.flags}set flags(val){this.shared.flags=val}get position(){return this.shared.position}set position(val){this.shared.position=val}},FSNode:class{constructor(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev;this.readMode=292|73;this.writeMode=146}get read(){return(this.mode&this.readMode)===this.readMode}set read(val){val?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(val){val?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return FS.isDir(this.mode)}get isDevice(){return FS.isChrdev(this.mode)}},lookupPath(path,opts={}){path=PATH_FS.resolve(path);if(!path)return{path:\"\",node:null};var defaults={follow_mount:true,recurse_count:0};opts=Object.assign(defaults,opts);if(opts.recurse_count>8){throw new FS.ErrnoError(32)}var parts=path.split(\"/\").filter(p=>!!p);var current=FS.root;var current_path=\"/\";for(var i=0;i<parts.length;i++){var islast=i===parts.length-1;if(islast&&opts.parent){break}current=FS.lookupNode(current,parts[i]);current_path=PATH.join2(current_path,parts[i]);if(FS.isMountpoint(current)){if(!islast||islast&&opts.follow_mount){current=current.mounted.root}}if(!islast||opts.follow){var count=0;while(FS.isLink(current.mode)){var link=FS.readlink(current_path);current_path=PATH_FS.resolve(PATH.dirname(current_path),link);var lookup=FS.lookupPath(current_path,{recurse_count:opts.recurse_count+1});current=lookup.node;if(count++>40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!==\"/\"?`${mount}/${path}`:mount+path}path=path?`${node.name}/${path}`:node.name;node=node.parent}},hashName(parentid,name){var hash=0;for(var i=0;i<name.length;i++){hash=(hash<<5)-hash+name.charCodeAt(i)|0}return(parentid+hash>>>0)%FS.nameTable.length},hashAddNode(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode(node){FS.hashRemoveNode(node)},isRoot(node){return node===node.parent},isMountpoint(node){return!!node.mounted},isFile(mode){return(mode&61440)===32768},isDir(mode){return(mode&61440)===16384},isLink(mode){return(mode&61440)===40960},isChrdev(mode){return(mode&61440)===8192},isBlkdev(mode){return(mode&61440)===24576},isFIFO(mode){return(mode&61440)===4096},isSocket(mode){return(mode&49152)===49152},flagsToPermissionString(flag){var perms=[\"r\",\"w\",\"rw\"][flag&3];if(flag&512){perms+=\"w\"}return perms},nodePermissions(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes(\"r\")&&!(node.mode&292)){return 2}else if(perms.includes(\"w\")&&!(node.mode&146)){return 2}else if(perms.includes(\"x\")&&!(node.mode&73)){return 2}return 0},mayLookup(dir){if(!FS.isDir(dir.mode))return 54;var errCode=FS.nodePermissions(dir,\"x\");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,\"wx\")},mayDelete(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,\"wx\");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!==\"r\"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd(){for(var fd=0;fd<=FS.MAX_OPEN_FDS;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStreamChecked(fd){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}return stream},getStream:fd=>FS.streams[fd],createStream(stream,fd=-1){stream=Object.assign(new FS.FSStream,stream);if(fd==-1){fd=FS.nextfd()}stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream(fd){FS.streams[fd]=null},dupStream(origStream,fd=-1){var stream=FS.createStream(origStream,fd);stream.stream_ops?.dup?.(stream);return stream},chrdev_stream_ops:{open(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;stream.stream_ops.open?.(stream)},llseek(){throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push(...m.mounts)}return mounts},syncfs(populate,callback){if(typeof populate==\"function\"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err(`warning: ${FS.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`)}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(mount=>{if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount(type,opts,mountpoint){var root=mountpoint===\"/\";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(hash=>{var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup(parent,name){return parent.node_ops.lookup(parent,name)},mknod(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name===\".\"||name===\"..\"){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree(path,mode){var dirs=path.split(\"/\");var d=\"\";for(var i=0;i<dirs.length;++i){if(!dirs[i])continue;d+=\"/\"+dirs[i];try{FS.mkdir(d,mode)}catch(e){if(e.errno!=20)throw e}}},mkdev(path,mode,dev){if(typeof dev==\"undefined\"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)},symlink(oldpath,newpath){if(!PATH_FS.resolve(oldpath)){throw new FS.ErrnoError(44)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var newname=PATH.basename(newpath);var errCode=FS.mayCreate(parent,newname);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(63)}return parent.node_ops.symlink(parent,newname,oldpath)},rename(old_path,new_path){var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node;if(!old_dir||!new_dir)throw new FS.ErrnoError(44);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(75)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH_FS.relative(old_path,new_dirname);if(relative.charAt(0)!==\".\"){throw new FS.ErrnoError(28)}relative=PATH_FS.relative(new_path,old_dirname);if(relative.charAt(0)!==\".\"){throw new FS.ErrnoError(55)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var errCode=FS.mayDelete(old_dir,old_name,isdir);if(errCode){throw new FS.ErrnoError(errCode)}errCode=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(errCode){throw new FS.ErrnoError(errCode)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(63)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(10)}if(new_dir!==old_dir){errCode=FS.nodePermissions(old_dir,\"w\");if(errCode){throw new FS.ErrnoError(errCode)}}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name);old_node.parent=new_dir}catch(e){throw e}finally{FS.hashAddNode(old_node)}},rmdir(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,true);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node)},readdir(path){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node.node_ops.readdir){throw new FS.ErrnoError(54)}return node.node_ops.readdir(node)},unlink(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,false);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.unlink(parent,name);FS.destroyNode(node)},readlink(path){var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(44)}if(!link.node_ops.readlink){throw new FS.ErrnoError(28)}return PATH_FS.resolve(FS.getPath(link.parent),link.node_ops.readlink(link))},stat(path,dontFollow){var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;if(!node){throw new FS.ErrnoError(44)}if(!node.node_ops.getattr){throw new FS.ErrnoError(63)}return node.node_ops.getattr(node)},lstat(path){return FS.stat(path,true)},chmod(path,mode,dontFollow){var node;if(typeof path==\"string\"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{mode:mode&4095|node.mode&~4095,timestamp:Date.now()})},lchmod(path,mode){FS.chmod(path,mode,true)},fchmod(fd,mode){var stream=FS.getStreamChecked(fd);FS.chmod(stream.node,mode)},chown(path,uid,gid,dontFollow){var node;if(typeof path==\"string\"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{timestamp:Date.now()})},lchown(path,uid,gid){FS.chown(path,uid,gid,true)},fchown(fd,uid,gid){var stream=FS.getStreamChecked(fd);FS.chown(stream.node,uid,gid)},truncate(path,len){if(len<0){throw new FS.ErrnoError(28)}var node;if(typeof path==\"string\"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}if(FS.isDir(node.mode)){throw new FS.ErrnoError(31)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(28)}var errCode=FS.nodePermissions(node,\"w\");if(errCode){throw new FS.ErrnoError(errCode)}node.node_ops.setattr(node,{size:len,timestamp:Date.now()})},ftruncate(fd,len){var stream=FS.getStreamChecked(fd);if((stream.flags&2097155)===0){throw new FS.ErrnoError(28)}FS.truncate(stream.node,len)},utime(path,atime,mtime){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;node.node_ops.setattr(node,{timestamp:Math.max(atime,mtime)})},open(path,flags,mode){if(path===\"\"){throw new FS.ErrnoError(44)}flags=typeof flags==\"string\"?FS_modeStringToFlags(flags):flags;if(flags&64){mode=typeof mode==\"undefined\"?438:mode;mode=mode&4095|32768}else{mode=0}var node;if(typeof path==\"object\"){node=path}else{path=PATH.normalize(path);try{var lookup=FS.lookupPath(path,{follow:!(flags&131072)});node=lookup.node}catch(e){}}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(20)}}else{node=FS.mknod(path,mode,0);created=true}}if(!node){throw new FS.ErrnoError(44)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}if(!created){var errCode=FS.mayOpen(node,flags);if(errCode){throw new FS.ErrnoError(errCode)}}if(flags&512&&!created){FS.truncate(node,0)}flags&=~(128|512|131072);var stream=FS.createStream({node:node,path:FS.getPath(node),flags:flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false});if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(Module[\"logReadFiles\"]&&!(flags&1)){if(!FS.readFiles)FS.readFiles={};if(!(path in FS.readFiles)){FS.readFiles[path]=1}}return stream},close(stream){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}stream.fd=null},isClosed(stream){return stream.fd===null},llseek(stream,offset,whence){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(70)}if(whence!=0&&whence!=1&&whence!=2){throw new FS.ErrnoError(28)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position},read(stream,buffer,offset,length,position){if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.read){throw new FS.ErrnoError(28)}var seeking=typeof position!=\"undefined\";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead},write(stream,buffer,offset,length,position,canOwn){if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.write){throw new FS.ErrnoError(28)}if(stream.seekable&&stream.flags&1024){FS.llseek(stream,0,2)}var seeking=typeof position!=\"undefined\";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;return bytesWritten},allocate(stream,offset,length){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(offset<0||length<=0){throw new FS.ErrnoError(28)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(!FS.isFile(stream.node.mode)&&!FS.isDir(stream.node.mode)){throw new FS.ErrnoError(43)}if(!stream.stream_ops.allocate){throw new FS.ErrnoError(138)}stream.stream_ops.allocate(stream,offset,length)},mmap(stream,length,position,prot,flags){if((prot&2)!==0&&(flags&2)===0&&(stream.flags&2097155)!==2){throw new FS.ErrnoError(2)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(2)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(43)}return stream.stream_ops.mmap(stream,length,position,prot,flags)},msync(stream,buffer,offset,length,mmapFlags){if(!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)},ioctl(stream,cmd,arg){if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(59)}return stream.stream_ops.ioctl(stream,cmd,arg)},readFile(path,opts={}){opts.flags=opts.flags||0;opts.encoding=opts.encoding||\"binary\";if(opts.encoding!==\"utf8\"&&opts.encoding!==\"binary\"){throw new Error(`Invalid encoding type \"${opts.encoding}\"`)}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding===\"utf8\"){ret=UTF8ArrayToString(buf,0)}else if(opts.encoding===\"binary\"){ret=buf}FS.close(stream);return ret},writeFile(path,data,opts={}){opts.flags=opts.flags||577;var stream=FS.open(path,opts.flags,opts.mode);if(typeof data==\"string\"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,undefined,opts.canOwn)}else if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn)}else{throw new Error(\"Unsupported data type\")}FS.close(stream)},cwd:()=>FS.currentPath,chdir(path){var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,\"x\");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories(){FS.mkdir(\"/tmp\");FS.mkdir(\"/home\");FS.mkdir(\"/home/web_user\")},createDefaultDevices(){FS.mkdir(\"/dev\");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length});FS.mkdev(\"/dev/null\",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev(\"/dev/tty\",FS.makedev(5,0));FS.mkdev(\"/dev/tty1\",FS.makedev(6,0));var randomBuffer=new Uint8Array(1024),randomLeft=0;var randomByte=()=>{if(randomLeft===0){randomLeft=randomFill(randomBuffer).byteLength}return randomBuffer[--randomLeft]};FS.createDevice(\"/dev\",\"random\",randomByte);FS.createDevice(\"/dev\",\"urandom\",randomByte);FS.mkdir(\"/dev/shm\");FS.mkdir(\"/dev/shm/tmp\")},createSpecialDirectories(){FS.mkdir(\"/proc\");var proc_self=FS.mkdir(\"/proc/self\");FS.mkdir(\"/proc/self/fd\");FS.mount({mount(){var node=FS.createNode(proc_self,\"fd\",16384|511,73);node.node_ops={lookup(parent,name){var fd=+name;var stream=FS.getStreamChecked(fd);var ret={parent:null,mount:{mountpoint:\"fake\"},node_ops:{readlink:()=>stream.path}};ret.parent=ret;return ret}};return node}},{},\"/proc/self/fd\")},createStandardStreams(){if(Module[\"stdin\"]){FS.createDevice(\"/dev\",\"stdin\",Module[\"stdin\"])}else{FS.symlink(\"/dev/tty\",\"/dev/stdin\")}if(Module[\"stdout\"]){FS.createDevice(\"/dev\",\"stdout\",null,Module[\"stdout\"])}else{FS.symlink(\"/dev/tty\",\"/dev/stdout\")}if(Module[\"stderr\"]){FS.createDevice(\"/dev\",\"stderr\",null,Module[\"stderr\"])}else{FS.symlink(\"/dev/tty1\",\"/dev/stderr\")}var stdin=FS.open(\"/dev/stdin\",0);var stdout=FS.open(\"/dev/stdout\",1);var stderr=FS.open(\"/dev/stderr\",1)},staticInit(){[44].forEach(code=>{FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack=\"<generic error, no stack>\"});FS.nameTable=new Array(4096);FS.mount(MEMFS,{},\"/\");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={MEMFS:MEMFS}},init(input,output,error){FS.init.initialized=true;Module[\"stdin\"]=input||Module[\"stdin\"];Module[\"stdout\"]=output||Module[\"stdout\"];Module[\"stderr\"]=error||Module[\"stderr\"];FS.createStandardStreams()},quit(){FS.init.initialized=false;for(var i=0;i<FS.streams.length;i++){var stream=FS.streams[i];if(!stream){continue}FS.close(stream)}},findObject(path,dontResolveLastLink){var ret=FS.analyzePath(path,dontResolveLastLink);if(!ret.exists){return null}return ret.object},analyzePath(path,dontResolveLastLink){try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path===\"/\"}catch(e){ret.error=e.errno}return ret},createPath(parent,path,canRead,canWrite){parent=typeof parent==\"string\"?parent:FS.getPath(parent);var parts=path.split(\"/\").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){}parent=current}return current},createFile(parent,name,properties,canRead,canWrite){var path=PATH.join2(typeof parent==\"string\"?parent:FS.getPath(parent),name);var mode=FS_getMode(canRead,canWrite);return FS.create(path,mode)},createDataFile(parent,name,data,canRead,canWrite,canOwn){var path=name;if(parent){parent=typeof parent==\"string\"?parent:FS.getPath(parent);path=name?PATH.join2(parent,name):parent}var mode=FS_getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data==\"string\"){var arr=new Array(data.length);for(var i=0,len=data.length;i<len;++i)arr[i]=data.charCodeAt(i);data=arr}FS.chmod(node,mode|146);var stream=FS.open(node,577);FS.write(stream,data,0,data.length,0,canOwn);FS.close(stream);FS.chmod(node,mode)}},createDevice(parent,name,input,output){var path=PATH.join2(typeof parent==\"string\"?parent:FS.getPath(parent),name);var mode=FS_getMode(!!input,!!output);if(!FS.createDevice.major)FS.createDevice.major=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{open(stream){stream.seekable=false},close(stream){if(output?.buffer?.length){output(10)}},read(stream,buffer,offset,length,pos){var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=input()}catch(e){throw new FS.ErrnoError(29)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(6)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}if(bytesRead){stream.node.timestamp=Date.now()}return bytesRead},write(stream,buffer,offset,length,pos){for(var i=0;i<length;i++){try{output(buffer[offset+i])}catch(e){throw new FS.ErrnoError(29)}}if(length){stream.node.timestamp=Date.now()}return i}});return FS.mkdev(path,mode,dev)},forceLoadFile(obj){if(obj.isDevice||obj.isFolder||obj.link||obj.contents)return true;if(typeof XMLHttpRequest!=\"undefined\"){throw new Error(\"Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.\")}else if(read_){try{obj.contents=intArrayFromString(read_(obj.url),true);obj.usedBytes=obj.contents.length}catch(e){throw new FS.ErrnoError(29)}}else{throw new Error(\"Cannot load without read() or XMLHttpRequest.\")}},createLazyFile(parent,name,url,canRead,canWrite){class LazyUint8Array{constructor(){this.lengthKnown=false;this.chunks=[]}get(idx){if(idx>this.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]}setDataGetter(getter){this.getter=getter}cacheLength(){var xhr=new XMLHttpRequest;xhr.open(\"HEAD\",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error(\"Couldn't load \"+url+\". Status: \"+xhr.status);var datalength=Number(xhr.getResponseHeader(\"Content-length\"));var header;var hasByteServing=(header=xhr.getResponseHeader(\"Accept-Ranges\"))&&header===\"bytes\";var usesGzip=(header=xhr.getResponseHeader(\"Content-Encoding\"))&&header===\"gzip\";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)throw new Error(\"invalid range (\"+from+\", \"+to+\") or no bytes requested!\");if(to>datalength-1)throw new Error(\"only \"+datalength+\" bytes available! programmer error!\");var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);if(datalength!==chunkSize)xhr.setRequestHeader(\"Range\",\"bytes=\"+from+\"-\"+to);xhr.responseType=\"arraybuffer\";if(xhr.overrideMimeType){xhr.overrideMimeType(\"text/plain; charset=x-user-defined\")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error(\"Couldn't load \"+url+\". Status: \"+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}return intArrayFromString(xhr.responseText||\"\",true)};var lazyArray=this;lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==\"undefined\"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==\"undefined\")throw new Error(\"doXHR failed!\");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out(\"LazyFiles on gzip forces download of the whole file when length is accessed\")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true}get length(){if(!this.lengthKnown){this.cacheLength()}return this._length}get chunkSize(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}if(typeof XMLHttpRequest!=\"undefined\"){if(!ENVIRONMENT_IS_WORKER)throw\"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc\";var lazyArray=new LazyUint8Array;var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(key=>{var fn=node.stream_ops[key];stream_ops[key]=(...args)=>{FS.forceLoadFile(node);return fn(...args)}});function writeChunks(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i<size;i++){buffer[offset+i]=contents[position+i]}}else{for(var i=0;i<size;i++){buffer[offset+i]=contents.get(position+i)}}return size}stream_ops.read=(stream,buffer,offset,length,position)=>{FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position)};stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);var ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}writeChunks(stream,HEAP8,ptr,length,position);return{ptr:ptr,allocated:true}};node.stream_ops=stream_ops;return node}};var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=SYSCALLS.getStreamFromFD(dirfd);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return PATH.join2(dir,path)},doStat(func,path,buf){var stat=func(path);HEAP32[buf>>2]=stat.dev;HEAP32[buf+4>>2]=stat.mode;HEAPU32[buf+8>>2]=stat.nlink;HEAP32[buf+12>>2]=stat.uid;HEAP32[buf+16>>2]=stat.gid;HEAP32[buf+20>>2]=stat.rdev;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+24>>2]=tempI64[0],HEAP32[buf+28>>2]=tempI64[1];HEAP32[buf+32>>2]=4096;HEAP32[buf+36>>2]=stat.blocks;var atime=stat.atime.getTime();var mtime=stat.mtime.getTime();var ctime=stat.ctime.getTime();tempI64=[Math.floor(atime/1e3)>>>0,(tempDouble=Math.floor(atime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAPU32[buf+48>>2]=atime%1e3*1e3;tempI64=[Math.floor(mtime/1e3)>>>0,(tempDouble=Math.floor(mtime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+56>>2]=tempI64[0],HEAP32[buf+60>>2]=tempI64[1];HEAPU32[buf+64>>2]=mtime%1e3*1e3;tempI64=[Math.floor(ctime/1e3)>>>0,(tempDouble=Math.floor(ctime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+72>>2]=tempI64[0],HEAP32[buf+76>>2]=tempI64[1];HEAPU32[buf+80>>2]=ctime%1e3*1e3;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+88>>2]=tempI64[0],HEAP32[buf+92>>2]=tempI64[1];return 0},doMsync(addr,stream,len,flags,offset){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}if(flags&2){return 0}var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},getStreamFromFD(fd){var stream=FS.getStreamChecked(fd);return stream},varargs:undefined,getStr(ptr){var ret=UTF8ToString(ptr);return ret}};function ___syscall_chmod(path,mode){try{path=SYSCALLS.getStr(path);FS.chmod(path,mode);return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_faccessat(dirfd,path,amode,flags){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);if(amode&~7){return-28}var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node){return-44}var perms=\"\";if(amode&4)perms+=\"r\";if(amode&2)perms+=\"w\";if(amode&1)perms+=\"x\";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_fchmod(fd,mode){try{FS.fchmod(fd,mode);return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_fchown32(fd,owner,group){try{FS.fchown(fd,owner,group);return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function syscallGetVarargI(){var ret=HEAP32[+SYSCALLS.varargs>>2];SYSCALLS.varargs+=4;return ret}var syscallGetVarargP=syscallGetVarargI;function ___syscall_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=syscallGetVarargI();if(arg<0){return-28}while(FS.streams[arg]){arg++}var newStream;newStream=FS.dupStream(stream,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=syscallGetVarargI();stream.flags|=arg;return 0}case 12:{var arg=syscallGetVarargP();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0}return-28}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_fstat64(fd,buf){try{var stream=SYSCALLS.getStreamFromFD(fd);return SYSCALLS.doStat(FS.stat,stream.path,buf)}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}var convertI32PairToI53Checked=(lo,hi)=>hi+2097152>>>0<4194305-!!lo?(lo>>>0)+hi*4294967296:NaN;function ___syscall_ftruncate64(fd,length_low,length_high){var length=convertI32PairToI53Checked(length_low,length_high);try{if(isNaN(length))return 61;FS.ftruncate(fd,length);return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite);function ___syscall_getcwd(buf,size){try{if(size===0)return-28;var cwd=FS.cwd();var cwdLengthInBytes=lengthBytesUTF8(cwd)+1;if(size<cwdLengthInBytes)return-68;stringToUTF8(cwd,buf,size);return cwdLengthInBytes}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_lstat64(path,buf){try{path=SYSCALLS.getStr(path);return SYSCALLS.doStat(FS.lstat,path,buf)}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_mkdirat(dirfd,path,mode){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);path=PATH.normalize(path);if(path[path.length-1]===\"/\")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_newfstatat(dirfd,path,buf,flags){try{path=SYSCALLS.getStr(path);var nofollow=flags&256;var allowEmpty=flags&4096;flags=flags&~6400;path=SYSCALLS.calculateAt(dirfd,path,allowEmpty);return SYSCALLS.doStat(nofollow?FS.lstat:FS.stat,path,buf)}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_openat(dirfd,path,flags,varargs){SYSCALLS.varargs=varargs;try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);var mode=varargs?syscallGetVarargI():0;return FS.open(path,flags,mode).fd}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_readlinkat(dirfd,path,buf,bufsize){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_rmdir(path){try{path=SYSCALLS.getStr(path);FS.rmdir(path);return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_stat64(path,buf){try{path=SYSCALLS.getStr(path);return SYSCALLS.doStat(FS.stat,path,buf)}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_unlinkat(dirfd,path,flags){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);if(flags===0){FS.unlink(path)}else if(flags===512){FS.rmdir(path)}else{abort(\"Invalid flags passed to unlinkat\")}return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}var readI53FromI64=ptr=>HEAPU32[ptr>>2]+HEAP32[ptr+4>>2]*4294967296;function ___syscall_utimensat(dirfd,path,times,flags){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path,true);if(!times){var atime=Date.now();var mtime=atime}else{var seconds=readI53FromI64(times);var nanoseconds=HEAP32[times+8>>2];atime=seconds*1e3+nanoseconds/(1e3*1e3);times+=16;seconds=readI53FromI64(times);nanoseconds=HEAP32[times+8>>2];mtime=seconds*1e3+nanoseconds/(1e3*1e3)}FS.utime(path,atime,mtime);return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}var isLeapYear=year=>year%4===0&&(year%100!==0||year%400===0);var MONTH_DAYS_LEAP_CUMULATIVE=[0,31,60,91,121,152,182,213,244,274,305,335];var MONTH_DAYS_REGULAR_CUMULATIVE=[0,31,59,90,120,151,181,212,243,273,304,334];var ydayFromDate=date=>{var leap=isLeapYear(date.getFullYear());var monthDaysCumulative=leap?MONTH_DAYS_LEAP_CUMULATIVE:MONTH_DAYS_REGULAR_CUMULATIVE;var yday=monthDaysCumulative[date.getMonth()]+date.getDate()-1;return yday};function __localtime_js(time_low,time_high,tmPtr){var time=convertI32PairToI53Checked(time_low,time_high);var date=new Date(time*1e3);HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();HEAP32[tmPtr+20>>2]=date.getFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getDay();var yday=ydayFromDate(date)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr+36>>2]=-(date.getTimezoneOffset()*60);var start=new Date(date.getFullYear(),0,1);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;HEAP32[tmPtr+32>>2]=dst}function __mmap_js(len,prot,flags,fd,offset_low,offset_high,allocated,addr){var offset=convertI32PairToI53Checked(offset_low,offset_high);try{if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);var res=FS.mmap(stream,len,offset,prot,flags);var ptr=res.ptr;HEAP32[allocated>>2]=res.allocated;HEAPU32[addr>>2]=ptr;return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function __munmap_js(addr,len,prot,flags,fd,offset_low,offset_high){var offset=convertI32PairToI53Checked(offset_low,offset_high);try{var stream=SYSCALLS.getStreamFromFD(fd);if(prot&2){SYSCALLS.doMsync(addr,stream,len,flags,offset)}}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}var __tzset_js=(timezone,daylight,std_name,dst_name)=>{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);var extractZone=date=>date.toLocaleTimeString(undefined,{hour12:false,timeZoneName:\"short\"}).split(\" \")[1];var winterName=extractZone(winter);var summerName=extractZone(summer);if(summerOffset<winterOffset){stringToUTF8(winterName,std_name,17);stringToUTF8(summerName,dst_name,17)}else{stringToUTF8(winterName,dst_name,17);stringToUTF8(summerName,std_name,17)}};var _emscripten_date_now=()=>Date.now();var _emscripten_get_now;_emscripten_get_now=()=>performance.now();var getHeapMax=()=>2147483648;var growMemory=size=>{var b=wasmMemory.buffer;var pages=(size-b.byteLength+65535)/65536;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};var _emscripten_resize_heap=requestedSize=>{var oldSize=HEAPU8.length;requestedSize>>>=0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}var alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}return false};var ENV={};var getExecutableName=()=>thisProgram||\"./this.program\";var getEnvStrings=()=>{if(!getEnvStrings.strings){var lang=(typeof navigator==\"object\"&&navigator.languages&&navigator.languages[0]||\"C\").replace(\"-\",\"_\")+\".UTF-8\";var env={USER:\"web_user\",LOGNAME:\"web_user\",PATH:\"/\",PWD:\"/\",HOME:\"/home/web_user\",LANG:lang,_:getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(`${x}=${env[x]}`)}getEnvStrings.strings=strings}return getEnvStrings.strings};var stringToAscii=(str,buffer)=>{for(var i=0;i<str.length;++i){HEAP8[buffer++]=str.charCodeAt(i)}HEAP8[buffer]=0};var _environ_get=(__environ,environ_buf)=>{var bufSize=0;getEnvStrings().forEach((string,i)=>{var ptr=environ_buf+bufSize;HEAPU32[__environ+i*4>>2]=ptr;stringToAscii(string,ptr);bufSize+=string.length+1});return 0};var _environ_sizes_get=(penviron_count,penviron_buf_size)=>{var strings=getEnvStrings();HEAPU32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(string=>bufSize+=string.length+1);HEAPU32[penviron_buf_size>>2]=bufSize;return 0};function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return e.errno}}function _fd_fdstat_get(fd,pbuf){try{var rightsBase=0;var rightsInheriting=0;var flags=0;{var stream=SYSCALLS.getStreamFromFD(fd);var type=stream.tty?2:FS.isDir(stream.mode)?3:FS.isLink(stream.mode)?7:4}HEAP8[pbuf]=type;HEAP16[pbuf+2>>1]=flags;tempI64=[rightsBase>>>0,(tempDouble=rightsBase,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[pbuf+8>>2]=tempI64[0],HEAP32[pbuf+12>>2]=tempI64[1];tempI64=[rightsInheriting>>>0,(tempDouble=rightsInheriting,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[pbuf+16>>2]=tempI64[0],HEAP32[pbuf+20>>2]=tempI64[1];return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return e.errno}}var doReadv=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAPU32[iov>>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr<len)break;if(typeof offset!=\"undefined\"){offset+=curr}}return ret};function _fd_read(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doReadv(stream,iov,iovcnt);HEAPU32[pnum>>2]=num;return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){var offset=convertI32PairToI53Checked(offset_low,offset_high);try{if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return e.errno}}var _fd_sync=function(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);return Asyncify.handleSleep(wakeUp=>{var mount=stream.node.mount;if(!mount.type.syncfs){wakeUp(0);return}mount.type.syncfs(mount,false,err=>{if(err){wakeUp(29);return}wakeUp(0)})})}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return e.errno}};_fd_sync.isAsync=true;var doWritev=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAPU32[iov>>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(typeof offset!=\"undefined\"){offset+=curr}}return ret};function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doWritev(stream,iov,iovcnt);HEAPU32[pnum>>2]=num;return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return e.errno}}var adapters_support=function(){const handleAsync=typeof Asyncify===\"object\"?Asyncify.handleAsync.bind(Asyncify):null;Module[\"handleAsync\"]=handleAsync;const targets=new Map;Module[\"setCallback\"]=(key,target)=>targets.set(key,target);Module[\"getCallback\"]=key=>targets.get(key);Module[\"deleteCallback\"]=key=>targets.delete(key);adapters_support=function(isAsync,key,...args){const receiver=targets.get(key);let methodName=null;const f=typeof receiver===\"function\"?receiver:receiver[methodName=UTF8ToString(args.shift())];if(isAsync){if(handleAsync){return handleAsync(()=>f.apply(receiver,args))}throw new Error(\"Synchronous WebAssembly cannot call async function\")}const result=f.apply(receiver,args);if(typeof result?.then==\"function\"){console.error(\"unexpected Promise\",f);throw new Error(`${methodName} unexpectedly returned a Promise`)}return result}};function _ipp(...args){return adapters_support(false,...args)}function _ipp_async(...args){return adapters_support(true,...args)}_ipp_async.isAsync=true;function _ippipppp(...args){return adapters_support(false,...args)}function _ippipppp_async(...args){return adapters_support(true,...args)}_ippipppp_async.isAsync=true;function _ippp(...args){return adapters_support(false,...args)}function _ippp_async(...args){return adapters_support(true,...args)}_ippp_async.isAsync=true;function _ipppi(...args){return adapters_support(false,...args)}function _ipppi_async(...args){return adapters_support(true,...args)}_ipppi_async.isAsync=true;function _ipppiii(...args){return adapters_support(false,...args)}function _ipppiii_async(...args){return adapters_support(true,...args)}_ipppiii_async.isAsync=true;function _ipppiiip(...args){return adapters_support(false,...args)}function _ipppiiip_async(...args){return adapters_support(true,...args)}_ipppiiip_async.isAsync=true;function _ipppip(...args){return adapters_support(false,...args)}function _ipppip_async(...args){return adapters_support(true,...args)}_ipppip_async.isAsync=true;function _ipppj(...args){return adapters_support(false,...args)}function _ipppj_async(...args){return adapters_support(true,...args)}_ipppj_async.isAsync=true;function _ipppp(...args){return adapters_support(false,...args)}function _ipppp_async(...args){return adapters_support(true,...args)}_ipppp_async.isAsync=true;function _ippppi(...args){return adapters_support(false,...args)}function _ippppi_async(...args){return adapters_support(true,...args)}_ippppi_async.isAsync=true;function _ippppij(...args){return adapters_support(false,...args)}function _ippppij_async(...args){return adapters_support(true,...args)}_ippppij_async.isAsync=true;function _ippppip(...args){return adapters_support(false,...args)}function _ippppip_async(...args){return adapters_support(true,...args)}_ippppip_async.isAsync=true;function _ipppppip(...args){return adapters_support(false,...args)}function _ipppppip_async(...args){return adapters_support(true,...args)}_ipppppip_async.isAsync=true;function _vppippii(...args){return adapters_support(false,...args)}function _vppippii_async(...args){return adapters_support(true,...args)}_vppippii_async.isAsync=true;function _vppp(...args){return adapters_support(false,...args)}function _vppp_async(...args){return adapters_support(true,...args)}_vppp_async.isAsync=true;function _vpppip(...args){return adapters_support(false,...args)}function _vpppip_async(...args){return adapters_support(true,...args)}_vpppip_async.isAsync=true;var runtimeKeepaliveCounter=0;var keepRuntimeAlive=()=>noExitRuntime||runtimeKeepaliveCounter>0;var _proc_exit=code=>{EXITSTATUS=code;if(!keepRuntimeAlive()){Module[\"onExit\"]?.(code);ABORT=true}quit_(code,new ExitStatus(code))};var exitJS=(status,implicit)=>{EXITSTATUS=status;_proc_exit(status)};var handleException=e=>{if(e instanceof ExitStatus||e==\"unwind\"){return EXITSTATUS}quit_(1,e)};var runAndAbortIfError=func=>{try{return func()}catch(e){abort(e)}};var _exit=exitJS;var maybeExit=()=>{if(!keepRuntimeAlive()){try{_exit(EXITSTATUS)}catch(e){handleException(e)}}};var callUserCallback=func=>{if(ABORT){return}try{func();maybeExit()}catch(e){handleException(e)}};var sigToWasmTypes=sig=>{var typeNames={i:\"i32\",j:\"i64\",f:\"f32\",d:\"f64\",e:\"externref\",p:\"i32\"};var type={parameters:[],results:sig[0]==\"v\"?[]:[typeNames[sig[0]]]};for(var i=1;i<sig.length;++i){type.parameters.push(typeNames[sig[i]])}return type};var runtimeKeepalivePush=()=>{runtimeKeepaliveCounter+=1};var runtimeKeepalivePop=()=>{runtimeKeepaliveCounter-=1};var Asyncify={instrumentWasmImports(imports){var importPattern=/^(ipp|ipp_async|ippp|ippp_async|vppp|vppp_async|ipppj|ipppj_async|ipppi|ipppi_async|ipppp|ipppp_async|ipppip|ipppip_async|vpppip|vpppip_async|ippppi|ippppi_async|ippppij|ippppij_async|ipppiii|ipppiii_async|ippppip|ippppip_async|ippipppp|ippipppp_async|ipppppip|ipppppip_async|ipppiiip|ipppiiip_async|vppippii|vppippii_async|invoke_.*|__asyncjs__.*)$/;for(let[x,original]of Object.entries(imports)){if(typeof original==\"function\"){let isAsyncifyImport=original.isAsync||importPattern.test(x)}}},instrumentWasmExports(exports){var ret={};for(let[x,original]of Object.entries(exports)){if(typeof original==\"function\"){ret[x]=(...args)=>{Asyncify.exportCallStack.push(x);try{return original(...args)}finally{if(!ABORT){var y=Asyncify.exportCallStack.pop();Asyncify.maybeStopUnwind()}}}}else{ret[x]=original}}return ret},State:{Normal:0,Unwinding:1,Rewinding:2,Disabled:3},state:0,StackSize:16384,currData:null,handleSleepReturnValue:0,exportCallStack:[],callStackNameToId:{},callStackIdToName:{},callStackId:0,asyncPromiseHandlers:null,sleepCallbacks:[],getCallStackId(funcName){var id=Asyncify.callStackNameToId[funcName];if(id===undefined){id=Asyncify.callStackId++;Asyncify.callStackNameToId[funcName]=id;Asyncify.callStackIdToName[id]=funcName}return id},maybeStopUnwind(){if(Asyncify.currData&&Asyncify.state===Asyncify.State.Unwinding&&Asyncify.exportCallStack.length===0){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(_asyncify_stop_unwind);if(typeof Fibers!=\"undefined\"){Fibers.trampoline()}}},whenDone(){return new Promise((resolve,reject)=>{Asyncify.asyncPromiseHandlers={resolve:resolve,reject:reject}})},allocateData(){var ptr=_malloc(12+Asyncify.StackSize);Asyncify.setDataHeader(ptr,ptr+12,Asyncify.StackSize);Asyncify.setDataRewindFunc(ptr);return ptr},setDataHeader(ptr,stack,stackSize){HEAPU32[ptr>>2]=stack;HEAPU32[ptr+4>>2]=stack+stackSize},setDataRewindFunc(ptr){var bottomOfCallStack=Asyncify.exportCallStack[0];var rewindId=Asyncify.getCallStackId(bottomOfCallStack);HEAP32[ptr+8>>2]=rewindId},getDataRewindFuncName(ptr){var id=HEAP32[ptr+8>>2];var name=Asyncify.callStackIdToName[id];return name},getDataRewindFunc(name){var func=wasmExports[name];return func},doRewind(ptr){var name=Asyncify.getDataRewindFuncName(ptr);var func=Asyncify.getDataRewindFunc(name);return func()},handleSleep(startAsync){if(ABORT)return;if(Asyncify.state===Asyncify.State.Normal){var reachedCallback=false;var reachedAfterCallback=false;startAsync((handleSleepReturnValue=0)=>{if(ABORT)return;Asyncify.handleSleepReturnValue=handleSleepReturnValue;reachedCallback=true;if(!reachedAfterCallback){return}Asyncify.state=Asyncify.State.Rewinding;runAndAbortIfError(()=>_asyncify_start_rewind(Asyncify.currData));if(typeof Browser!=\"undefined\"&&Browser.mainLoop.func){Browser.mainLoop.resume()}var asyncWasmReturnValue,isError=false;try{asyncWasmReturnValue=Asyncify.doRewind(Asyncify.currData)}catch(err){asyncWasmReturnValue=err;isError=true}var handled=false;if(!Asyncify.currData){var asyncPromiseHandlers=Asyncify.asyncPromiseHandlers;if(asyncPromiseHandlers){Asyncify.asyncPromiseHandlers=null;(isError?asyncPromiseHandlers.reject:asyncPromiseHandlers.resolve)(asyncWasmReturnValue);handled=true}}if(isError&&!handled){throw asyncWasmReturnValue}});reachedAfterCallback=true;if(!reachedCallback){Asyncify.state=Asyncify.State.Unwinding;Asyncify.currData=Asyncify.allocateData();if(typeof Browser!=\"undefined\"&&Browser.mainLoop.func){Browser.mainLoop.pause()}runAndAbortIfError(()=>_asyncify_start_unwind(Asyncify.currData))}}else if(Asyncify.state===Asyncify.State.Rewinding){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(_asyncify_stop_rewind);_free(Asyncify.currData);Asyncify.currData=null;Asyncify.sleepCallbacks.forEach(callUserCallback)}else{abort(`invalid state: ${Asyncify.state}`)}return Asyncify.handleSleepReturnValue},handleAsync(startAsync){return Asyncify.handleSleep(wakeUp=>{startAsync().then(wakeUp)})}};var uleb128Encode=(n,target)=>{if(n<128){target.push(n)}else{target.push(n%128|128,n>>7)}};var generateFuncType=(sig,target)=>{var sigRet=sig.slice(0,1);var sigParam=sig.slice(1);var typeCodes={i:127,p:127,j:126,f:125,d:124,e:111};target.push(96);uleb128Encode(sigParam.length,target);for(var i=0;i<sigParam.length;++i){target.push(typeCodes[sigParam[i]])}if(sigRet==\"v\"){target.push(0)}else{target.push(1,typeCodes[sigRet])}};var convertJsFunctionToWasm=(func,sig)=>{if(typeof WebAssembly.Function==\"function\"){return new WebAssembly.Function(sigToWasmTypes(sig),func)}var typeSectionBody=[1];generateFuncType(sig,typeSectionBody);var bytes=[0,97,115,109,1,0,0,0,1];uleb128Encode(typeSectionBody.length,bytes);bytes.push(...typeSectionBody);bytes.push(2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0);var module=new WebAssembly.Module(new Uint8Array(bytes));var instance=new WebAssembly.Instance(module,{e:{f:func}});var wrappedFunc=instance.exports[\"f\"];return wrappedFunc};var wasmTable;var getWasmTableEntry=funcPtr=>wasmTable.get(funcPtr);var updateTableMap=(offset,count)=>{if(functionsInTableMap){for(var i=offset;i<offset+count;i++){var item=getWasmTableEntry(i);if(item){functionsInTableMap.set(item,i)}}}};var functionsInTableMap;var getFunctionAddress=func=>{if(!functionsInTableMap){functionsInTableMap=new WeakMap;updateTableMap(0,wasmTable.length)}return functionsInTableMap.get(func)||0};var freeTableIndexes=[];var getEmptyTableSlot=()=>{if(freeTableIndexes.length){return freeTableIndexes.pop()}try{wasmTable.grow(1)}catch(err){if(!(err instanceof RangeError)){throw err}throw\"Unable to grow wasm table. Set ALLOW_TABLE_GROWTH.\"}return wasmTable.length-1};var setWasmTableEntry=(idx,func)=>wasmTable.set(idx,func);var addFunction=(func,sig)=>{var rtn=getFunctionAddress(func);if(rtn){return rtn}var ret=getEmptyTableSlot();try{setWasmTableEntry(ret,func)}catch(err){if(!(err instanceof TypeError)){throw err}var wrapped=convertJsFunctionToWasm(func,sig);setWasmTableEntry(ret,wrapped)}functionsInTableMap.set(func,ret);return ret};var getCFunc=ident=>{var func=Module[\"_\"+ident];return func};var writeArrayToMemory=(array,buffer)=>{HEAP8.set(array,buffer)};var stackAlloc=sz=>__emscripten_stack_alloc(sz);var stringToUTF8OnStack=str=>{var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8(str,ret,size);return ret};var ccall=(ident,returnType,argTypes,args,opts)=>{var toC={string:str=>{var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=stringToUTF8OnStack(str)}return ret},array:arr=>{var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\"){return UTF8ToString(ret)}if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i<args.length;i++){var converter=toC[argTypes[i]];if(converter){if(stack===0)stack=stackSave();cArgs[i]=converter(args[i])}else{cArgs[i]=args[i]}}}var previousAsync=Asyncify.currData;var ret=func(...cArgs);function onDone(ret){runtimeKeepalivePop();if(stack!==0)stackRestore(stack);return convertReturnValue(ret)}var asyncMode=opts?.async;runtimeKeepalivePush();if(Asyncify.currData!=previousAsync){return Asyncify.whenDone().then(onDone)}ret=onDone(ret);if(asyncMode)return Promise.resolve(ret);return ret};var cwrap=(ident,returnType,argTypes,opts)=>{var numericArgs=!argTypes||argTypes.every(type=>type===\"number\"||type===\"boolean\");var numericRet=returnType!==\"string\";if(numericRet&&numericArgs&&!opts){return getCFunc(ident)}return(...args)=>ccall(ident,returnType,argTypes,args,opts)};var getTempRet0=val=>__emscripten_tempret_get();var stringToUTF16=(str,outPtr,maxBytesToWrite)=>{maxBytesToWrite??=2147483647;if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite<str.length*2?maxBytesToWrite/2:str.length;for(var i=0;i<numCharsToWrite;++i){var codeUnit=str.charCodeAt(i);HEAP16[outPtr>>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr};var stringToUTF32=(str,outPtr,maxBytesToWrite)=>{maxBytesToWrite??=2147483647;if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i<str.length;++i){var codeUnit=str.charCodeAt(i);if(codeUnit>=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr};var AsciiToString=ptr=>{var str=\"\";while(1){var ch=HEAPU8[ptr++];if(!ch)return str;str+=String.fromCharCode(ch)}};var UTF16Decoder=typeof TextDecoder!=\"undefined\"?new TextDecoder(\"utf-16le\"):undefined;var UTF16ToString=(ptr,maxBytesToRead)=>{var endPtr=ptr;var idx=endPtr>>1;var maxIdx=idx+maxBytesToRead/2;while(!(idx>=maxIdx)&&HEAPU16[idx])++idx;endPtr=idx<<1;if(endPtr-ptr>32&&UTF16Decoder)return UTF16Decoder.decode(HEAPU8.subarray(ptr,endPtr));var str=\"\";for(var i=0;!(i>=maxBytesToRead/2);++i){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)break;str+=String.fromCharCode(codeUnit)}return str};var 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 intArrayToString(array){var ret=[];for(var i=0;i<array.length;i++){var chr=array[i];if(chr>255){chr&=255}ret.push(String.fromCharCode(chr))}return ret.join(\"\")}FS.createPreloadedFile=FS_createPreloadedFile;FS.staticInit();adapters_support();var wasmImports={a:___assert_fail,Y:___syscall_chmod,$:___syscall_faccessat,Z:___syscall_fchmod,X:___syscall_fchown32,b:___syscall_fcntl64,W:___syscall_fstat64,y:___syscall_ftruncate64,Q:___syscall_getcwd,U:___syscall_lstat64,N:___syscall_mkdirat,S:___syscall_newfstatat,M:___syscall_openat,K:___syscall_readlinkat,J:___syscall_rmdir,V:___syscall_stat64,G:___syscall_unlinkat,F:___syscall_utimensat,w:__localtime_js,u:__mmap_js,v:__munmap_js,H:__tzset_js,n:_emscripten_date_now,m:_emscripten_get_now,D:_emscripten_resize_heap,O:_environ_get,P:_environ_sizes_get,o:_fd_close,E:_fd_fdstat_get,L:_fd_read,x:_fd_seek,R:_fd_sync,I:_fd_write,s:_ipp,t:_ipp_async,ga:_ippipppp,ka:_ippipppp_async,i:_ippp,j:_ippp_async,c:_ipppi,d:_ipppi_async,ca:_ipppiii,da:_ipppiii_async,ea:_ipppiiip,fa:_ipppiiip_async,g:_ipppip,h:_ipppip_async,z:_ipppj,A:_ipppj_async,e:_ipppp,f:_ipppp_async,aa:_ippppi,ba:_ippppi_async,B:_ippppij,C:_ippppij_async,p:_ippppip,q:_ippppip_async,ha:_ipppppip,ia:_ipppppip_async,ja:_vppippii,r:_vppippii_async,k:_vppp,l:_vppp_async,T:_vpppip,_:_vpppip_async};var wasmExports=createWasm();var ___wasm_call_ctors=()=>(___wasm_call_ctors=wasmExports[\"ma\"])();var _sqlite3_status64=Module[\"_sqlite3_status64\"]=(a0,a1,a2,a3)=>(_sqlite3_status64=Module[\"_sqlite3_status64\"]=wasmExports[\"na\"])(a0,a1,a2,a3);var _sqlite3_status=Module[\"_sqlite3_status\"]=(a0,a1,a2,a3)=>(_sqlite3_status=Module[\"_sqlite3_status\"]=wasmExports[\"oa\"])(a0,a1,a2,a3);var _sqlite3_msize=Module[\"_sqlite3_msize\"]=a0=>(_sqlite3_msize=Module[\"_sqlite3_msize\"]=wasmExports[\"pa\"])(a0);var _sqlite3_db_status=Module[\"_sqlite3_db_status\"]=(a0,a1,a2,a3,a4)=>(_sqlite3_db_status=Module[\"_sqlite3_db_status\"]=wasmExports[\"qa\"])(a0,a1,a2,a3,a4);var _sqlite3_vfs_find=Module[\"_sqlite3_vfs_find\"]=a0=>(_sqlite3_vfs_find=Module[\"_sqlite3_vfs_find\"]=wasmExports[\"ra\"])(a0);var _sqlite3_vfs_register=Module[\"_sqlite3_vfs_register\"]=(a0,a1)=>(_sqlite3_vfs_register=Module[\"_sqlite3_vfs_register\"]=wasmExports[\"sa\"])(a0,a1);var _sqlite3_vfs_unregister=Module[\"_sqlite3_vfs_unregister\"]=a0=>(_sqlite3_vfs_unregister=Module[\"_sqlite3_vfs_unregister\"]=wasmExports[\"ta\"])(a0);var _sqlite3_release_memory=Module[\"_sqlite3_release_memory\"]=a0=>(_sqlite3_release_memory=Module[\"_sqlite3_release_memory\"]=wasmExports[\"ua\"])(a0);var _sqlite3_soft_heap_limit64=Module[\"_sqlite3_soft_heap_limit64\"]=(a0,a1)=>(_sqlite3_soft_heap_limit64=Module[\"_sqlite3_soft_heap_limit64\"]=wasmExports[\"va\"])(a0,a1);var _sqlite3_memory_used=Module[\"_sqlite3_memory_used\"]=()=>(_sqlite3_memory_used=Module[\"_sqlite3_memory_used\"]=wasmExports[\"wa\"])();var _sqlite3_hard_heap_limit64=Module[\"_sqlite3_hard_heap_limit64\"]=(a0,a1)=>(_sqlite3_hard_heap_limit64=Module[\"_sqlite3_hard_heap_limit64\"]=wasmExports[\"xa\"])(a0,a1);var _sqlite3_memory_highwater=Module[\"_sqlite3_memory_highwater\"]=a0=>(_sqlite3_memory_highwater=Module[\"_sqlite3_memory_highwater\"]=wasmExports[\"ya\"])(a0);var _sqlite3_malloc=Module[\"_sqlite3_malloc\"]=a0=>(_sqlite3_malloc=Module[\"_sqlite3_malloc\"]=wasmExports[\"za\"])(a0);var _sqlite3_malloc64=Module[\"_sqlite3_malloc64\"]=(a0,a1)=>(_sqlite3_malloc64=Module[\"_sqlite3_malloc64\"]=wasmExports[\"Aa\"])(a0,a1);var _sqlite3_free=Module[\"_sqlite3_free\"]=a0=>(_sqlite3_free=Module[\"_sqlite3_free\"]=wasmExports[\"Ba\"])(a0);var _sqlite3_realloc=Module[\"_sqlite3_realloc\"]=(a0,a1)=>(_sqlite3_realloc=Module[\"_sqlite3_realloc\"]=wasmExports[\"Ca\"])(a0,a1);var _sqlite3_realloc64=Module[\"_sqlite3_realloc64\"]=(a0,a1,a2)=>(_sqlite3_realloc64=Module[\"_sqlite3_realloc64\"]=wasmExports[\"Da\"])(a0,a1,a2);var _sqlite3_str_vappendf=Module[\"_sqlite3_str_vappendf\"]=(a0,a1,a2)=>(_sqlite3_str_vappendf=Module[\"_sqlite3_str_vappendf\"]=wasmExports[\"Ea\"])(a0,a1,a2);var _sqlite3_str_append=Module[\"_sqlite3_str_append\"]=(a0,a1,a2)=>(_sqlite3_str_append=Module[\"_sqlite3_str_append\"]=wasmExports[\"Fa\"])(a0,a1,a2);var _sqlite3_str_appendchar=Module[\"_sqlite3_str_appendchar\"]=(a0,a1,a2)=>(_sqlite3_str_appendchar=Module[\"_sqlite3_str_appendchar\"]=wasmExports[\"Ga\"])(a0,a1,a2);var _sqlite3_str_appendall=Module[\"_sqlite3_str_appendall\"]=(a0,a1)=>(_sqlite3_str_appendall=Module[\"_sqlite3_str_appendall\"]=wasmExports[\"Ha\"])(a0,a1);var _sqlite3_str_appendf=Module[\"_sqlite3_str_appendf\"]=(a0,a1,a2)=>(_sqlite3_str_appendf=Module[\"_sqlite3_str_appendf\"]=wasmExports[\"Ia\"])(a0,a1,a2);var _sqlite3_str_finish=Module[\"_sqlite3_str_finish\"]=a0=>(_sqlite3_str_finish=Module[\"_sqlite3_str_finish\"]=wasmExports[\"Ja\"])(a0);var _sqlite3_str_errcode=Module[\"_sqlite3_str_errcode\"]=a0=>(_sqlite3_str_errcode=Module[\"_sqlite3_str_errcode\"]=wasmExports[\"Ka\"])(a0);var _sqlite3_str_length=Module[\"_sqlite3_str_length\"]=a0=>(_sqlite3_str_length=Module[\"_sqlite3_str_length\"]=wasmExports[\"La\"])(a0);var _sqlite3_str_value=Module[\"_sqlite3_str_value\"]=a0=>(_sqlite3_str_value=Module[\"_sqlite3_str_value\"]=wasmExports[\"Ma\"])(a0);var _sqlite3_str_reset=Module[\"_sqlite3_str_reset\"]=a0=>(_sqlite3_str_reset=Module[\"_sqlite3_str_reset\"]=wasmExports[\"Na\"])(a0);var _sqlite3_str_new=Module[\"_sqlite3_str_new\"]=a0=>(_sqlite3_str_new=Module[\"_sqlite3_str_new\"]=wasmExports[\"Oa\"])(a0);var _sqlite3_vmprintf=Module[\"_sqlite3_vmprintf\"]=(a0,a1)=>(_sqlite3_vmprintf=Module[\"_sqlite3_vmprintf\"]=wasmExports[\"Pa\"])(a0,a1);var _sqlite3_mprintf=Module[\"_sqlite3_mprintf\"]=(a0,a1)=>(_sqlite3_mprintf=Module[\"_sqlite3_mprintf\"]=wasmExports[\"Qa\"])(a0,a1);var _sqlite3_vsnprintf=Module[\"_sqlite3_vsnprintf\"]=(a0,a1,a2,a3)=>(_sqlite3_vsnprintf=Module[\"_sqlite3_vsnprintf\"]=wasmExports[\"Ra\"])(a0,a1,a2,a3);var _sqlite3_snprintf=Module[\"_sqlite3_snprintf\"]=(a0,a1,a2,a3)=>(_sqlite3_snprintf=Module[\"_sqlite3_snprintf\"]=wasmExports[\"Sa\"])(a0,a1,a2,a3);var _sqlite3_log=Module[\"_sqlite3_log\"]=(a0,a1,a2)=>(_sqlite3_log=Module[\"_sqlite3_log\"]=wasmExports[\"Ta\"])(a0,a1,a2);var _sqlite3_randomness=Module[\"_sqlite3_randomness\"]=(a0,a1)=>(_sqlite3_randomness=Module[\"_sqlite3_randomness\"]=wasmExports[\"Ua\"])(a0,a1);var _sqlite3_stricmp=Module[\"_sqlite3_stricmp\"]=(a0,a1)=>(_sqlite3_stricmp=Module[\"_sqlite3_stricmp\"]=wasmExports[\"Va\"])(a0,a1);var _sqlite3_strnicmp=Module[\"_sqlite3_strnicmp\"]=(a0,a1,a2)=>(_sqlite3_strnicmp=Module[\"_sqlite3_strnicmp\"]=wasmExports[\"Wa\"])(a0,a1,a2);var _sqlite3_os_init=Module[\"_sqlite3_os_init\"]=()=>(_sqlite3_os_init=Module[\"_sqlite3_os_init\"]=wasmExports[\"Xa\"])();var _sqlite3_os_end=Module[\"_sqlite3_os_end\"]=()=>(_sqlite3_os_end=Module[\"_sqlite3_os_end\"]=wasmExports[\"Ya\"])();var _sqlite3_serialize=Module[\"_sqlite3_serialize\"]=(a0,a1,a2,a3)=>(_sqlite3_serialize=Module[\"_sqlite3_serialize\"]=wasmExports[\"Za\"])(a0,a1,a2,a3);var _sqlite3_prepare_v2=Module[\"_sqlite3_prepare_v2\"]=(a0,a1,a2,a3,a4)=>(_sqlite3_prepare_v2=Module[\"_sqlite3_prepare_v2\"]=wasmExports[\"_a\"])(a0,a1,a2,a3,a4);var _sqlite3_step=Module[\"_sqlite3_step\"]=a0=>(_sqlite3_step=Module[\"_sqlite3_step\"]=wasmExports[\"$a\"])(a0);var _sqlite3_column_int64=Module[\"_sqlite3_column_int64\"]=(a0,a1)=>(_sqlite3_column_int64=Module[\"_sqlite3_column_int64\"]=wasmExports[\"ab\"])(a0,a1);var _sqlite3_reset=Module[\"_sqlite3_reset\"]=a0=>(_sqlite3_reset=Module[\"_sqlite3_reset\"]=wasmExports[\"bb\"])(a0);var _sqlite3_exec=Module[\"_sqlite3_exec\"]=(a0,a1,a2,a3,a4)=>(_sqlite3_exec=Module[\"_sqlite3_exec\"]=wasmExports[\"cb\"])(a0,a1,a2,a3,a4);var _sqlite3_column_int=Module[\"_sqlite3_column_int\"]=(a0,a1)=>(_sqlite3_column_int=Module[\"_sqlite3_column_int\"]=wasmExports[\"db\"])(a0,a1);var _sqlite3_finalize=Module[\"_sqlite3_finalize\"]=a0=>(_sqlite3_finalize=Module[\"_sqlite3_finalize\"]=wasmExports[\"eb\"])(a0);var _sqlite3_deserialize=Module[\"_sqlite3_deserialize\"]=(a0,a1,a2,a3,a4,a5,a6,a7)=>(_sqlite3_deserialize=Module[\"_sqlite3_deserialize\"]=wasmExports[\"fb\"])(a0,a1,a2,a3,a4,a5,a6,a7);var _sqlite3_database_file_object=Module[\"_sqlite3_database_file_object\"]=a0=>(_sqlite3_database_file_object=Module[\"_sqlite3_database_file_object\"]=wasmExports[\"gb\"])(a0);var _sqlite3_backup_init=Module[\"_sqlite3_backup_init\"]=(a0,a1,a2,a3)=>(_sqlite3_backup_init=Module[\"_sqlite3_backup_init\"]=wasmExports[\"hb\"])(a0,a1,a2,a3);var _sqlite3_backup_step=Module[\"_sqlite3_backup_step\"]=(a0,a1)=>(_sqlite3_backup_step=Module[\"_sqlite3_backup_step\"]=wasmExports[\"ib\"])(a0,a1);var _sqlite3_backup_finish=Module[\"_sqlite3_backup_finish\"]=a0=>(_sqlite3_backup_finish=Module[\"_sqlite3_backup_finish\"]=wasmExports[\"jb\"])(a0);var _sqlite3_backup_remaining=Module[\"_sqlite3_backup_remaining\"]=a0=>(_sqlite3_backup_remaining=Module[\"_sqlite3_backup_remaining\"]=wasmExports[\"kb\"])(a0);var _sqlite3_backup_pagecount=Module[\"_sqlite3_backup_pagecount\"]=a0=>(_sqlite3_backup_pagecount=Module[\"_sqlite3_backup_pagecount\"]=wasmExports[\"lb\"])(a0);var _sqlite3_clear_bindings=Module[\"_sqlite3_clear_bindings\"]=a0=>(_sqlite3_clear_bindings=Module[\"_sqlite3_clear_bindings\"]=wasmExports[\"mb\"])(a0);var _sqlite3_value_blob=Module[\"_sqlite3_value_blob\"]=a0=>(_sqlite3_value_blob=Module[\"_sqlite3_value_blob\"]=wasmExports[\"nb\"])(a0);var _sqlite3_value_text=Module[\"_sqlite3_value_text\"]=a0=>(_sqlite3_value_text=Module[\"_sqlite3_value_text\"]=wasmExports[\"ob\"])(a0);var _sqlite3_value_bytes=Module[\"_sqlite3_value_bytes\"]=a0=>(_sqlite3_value_bytes=Module[\"_sqlite3_value_bytes\"]=wasmExports[\"pb\"])(a0);var _sqlite3_value_bytes16=Module[\"_sqlite3_value_bytes16\"]=a0=>(_sqlite3_value_bytes16=Module[\"_sqlite3_value_bytes16\"]=wasmExports[\"qb\"])(a0);var _sqlite3_value_double=Module[\"_sqlite3_value_double\"]=a0=>(_sqlite3_value_double=Module[\"_sqlite3_value_double\"]=wasmExports[\"rb\"])(a0);var _sqlite3_value_int=Module[\"_sqlite3_value_int\"]=a0=>(_sqlite3_value_int=Module[\"_sqlite3_value_int\"]=wasmExports[\"sb\"])(a0);var _sqlite3_value_int64=Module[\"_sqlite3_value_int64\"]=a0=>(_sqlite3_value_int64=Module[\"_sqlite3_value_int64\"]=wasmExports[\"tb\"])(a0);var _sqlite3_value_subtype=Module[\"_sqlite3_value_subtype\"]=a0=>(_sqlite3_value_subtype=Module[\"_sqlite3_value_subtype\"]=wasmExports[\"ub\"])(a0);var _sqlite3_value_pointer=Module[\"_sqlite3_value_pointer\"]=(a0,a1)=>(_sqlite3_value_pointer=Module[\"_sqlite3_value_pointer\"]=wasmExports[\"vb\"])(a0,a1);var _sqlite3_value_text16=Module[\"_sqlite3_value_text16\"]=a0=>(_sqlite3_value_text16=Module[\"_sqlite3_value_text16\"]=wasmExports[\"wb\"])(a0);var _sqlite3_value_text16be=Module[\"_sqlite3_value_text16be\"]=a0=>(_sqlite3_value_text16be=Module[\"_sqlite3_value_text16be\"]=wasmExports[\"xb\"])(a0);var _sqlite3_value_text16le=Module[\"_sqlite3_value_text16le\"]=a0=>(_sqlite3_value_text16le=Module[\"_sqlite3_value_text16le\"]=wasmExports[\"yb\"])(a0);var _sqlite3_value_type=Module[\"_sqlite3_value_type\"]=a0=>(_sqlite3_value_type=Module[\"_sqlite3_value_type\"]=wasmExports[\"zb\"])(a0);var _sqlite3_value_encoding=Module[\"_sqlite3_value_encoding\"]=a0=>(_sqlite3_value_encoding=Module[\"_sqlite3_value_encoding\"]=wasmExports[\"Ab\"])(a0);var _sqlite3_value_nochange=Module[\"_sqlite3_value_nochange\"]=a0=>(_sqlite3_value_nochange=Module[\"_sqlite3_value_nochange\"]=wasmExports[\"Bb\"])(a0);var _sqlite3_value_frombind=Module[\"_sqlite3_value_frombind\"]=a0=>(_sqlite3_value_frombind=Module[\"_sqlite3_value_frombind\"]=wasmExports[\"Cb\"])(a0);var _sqlite3_value_dup=Module[\"_sqlite3_value_dup\"]=a0=>(_sqlite3_value_dup=Module[\"_sqlite3_value_dup\"]=wasmExports[\"Db\"])(a0);var _sqlite3_value_free=Module[\"_sqlite3_value_free\"]=a0=>(_sqlite3_value_free=Module[\"_sqlite3_value_free\"]=wasmExports[\"Eb\"])(a0);var _sqlite3_result_blob=Module[\"_sqlite3_result_blob\"]=(a0,a1,a2,a3)=>(_sqlite3_result_blob=Module[\"_sqlite3_result_blob\"]=wasmExports[\"Fb\"])(a0,a1,a2,a3);var _sqlite3_result_blob64=Module[\"_sqlite3_result_blob64\"]=(a0,a1,a2,a3,a4)=>(_sqlite3_result_blob64=Module[\"_sqlite3_result_blob64\"]=wasmExports[\"Gb\"])(a0,a1,a2,a3,a4);var _sqlite3_result_double=Module[\"_sqlite3_result_double\"]=(a0,a1)=>(_sqlite3_result_double=Module[\"_sqlite3_result_double\"]=wasmExports[\"Hb\"])(a0,a1);var _sqlite3_result_error=Module[\"_sqlite3_result_error\"]=(a0,a1,a2)=>(_sqlite3_result_error=Module[\"_sqlite3_result_error\"]=wasmExports[\"Ib\"])(a0,a1,a2);var _sqlite3_result_error16=Module[\"_sqlite3_result_error16\"]=(a0,a1,a2)=>(_sqlite3_result_error16=Module[\"_sqlite3_result_error16\"]=wasmExports[\"Jb\"])(a0,a1,a2);var _sqlite3_result_int=Module[\"_sqlite3_result_int\"]=(a0,a1)=>(_sqlite3_result_int=Module[\"_sqlite3_result_int\"]=wasmExports[\"Kb\"])(a0,a1);var _sqlite3_result_int64=Module[\"_sqlite3_result_int64\"]=(a0,a1,a2)=>(_sqlite3_result_int64=Module[\"_sqlite3_result_int64\"]=wasmExports[\"Lb\"])(a0,a1,a2);var _sqlite3_result_null=Module[\"_sqlite3_result_null\"]=a0=>(_sqlite3_result_null=Module[\"_sqlite3_result_null\"]=wasmExports[\"Mb\"])(a0);var _sqlite3_result_pointer=Module[\"_sqlite3_result_pointer\"]=(a0,a1,a2,a3)=>(_sqlite3_result_pointer=Module[\"_sqlite3_result_pointer\"]=wasmExports[\"Nb\"])(a0,a1,a2,a3);var _sqlite3_result_subtype=Module[\"_sqlite3_result_subtype\"]=(a0,a1)=>(_sqlite3_result_subtype=Module[\"_sqlite3_result_subtype\"]=wasmExports[\"Ob\"])(a0,a1);var _sqlite3_result_text=Module[\"_sqlite3_result_text\"]=(a0,a1,a2,a3)=>(_sqlite3_result_text=Module[\"_sqlite3_result_text\"]=wasmExports[\"Pb\"])(a0,a1,a2,a3);var _sqlite3_result_text64=Module[\"_sqlite3_result_text64\"]=(a0,a1,a2,a3,a4,a5)=>(_sqlite3_result_text64=Module[\"_sqlite3_result_text64\"]=wasmExports[\"Qb\"])(a0,a1,a2,a3,a4,a5);var _sqlite3_result_text16=Module[\"_sqlite3_result_text16\"]=(a0,a1,a2,a3)=>(_sqlite3_result_text16=Module[\"_sqlite3_result_text16\"]=wasmExports[\"Rb\"])(a0,a1,a2,a3);var _sqlite3_result_text16be=Module[\"_sqlite3_result_text16be\"]=(a0,a1,a2,a3)=>(_sqlite3_result_text16be=Module[\"_sqlite3_result_text16be\"]=wasmExports[\"Sb\"])(a0,a1,a2,a3);var _sqlite3_result_text16le=Module[\"_sqlite3_result_text16le\"]=(a0,a1,a2,a3)=>(_sqlite3_result_text16le=Module[\"_sqlite3_result_text16le\"]=wasmExports[\"Tb\"])(a0,a1,a2,a3);var _sqlite3_result_value=Module[\"_sqlite3_result_value\"]=(a0,a1)=>(_sqlite3_result_value=Module[\"_sqlite3_result_value\"]=wasmExports[\"Ub\"])(a0,a1);var _sqlite3_result_error_toobig=Module[\"_sqlite3_result_error_toobig\"]=a0=>(_sqlite3_result_error_toobig=Module[\"_sqlite3_result_error_toobig\"]=wasmExports[\"Vb\"])(a0);var _sqlite3_result_zeroblob=Module[\"_sqlite3_result_zeroblob\"]=(a0,a1)=>(_sqlite3_result_zeroblob=Module[\"_sqlite3_result_zeroblob\"]=wasmExports[\"Wb\"])(a0,a1);var _sqlite3_result_zeroblob64=Module[\"_sqlite3_result_zeroblob64\"]=(a0,a1,a2)=>(_sqlite3_result_zeroblob64=Module[\"_sqlite3_result_zeroblob64\"]=wasmExports[\"Xb\"])(a0,a1,a2);var _sqlite3_result_error_code=Module[\"_sqlite3_result_error_code\"]=(a0,a1)=>(_sqlite3_result_error_code=Module[\"_sqlite3_result_error_code\"]=wasmExports[\"Yb\"])(a0,a1);var _sqlite3_result_error_nomem=Module[\"_sqlite3_result_error_nomem\"]=a0=>(_sqlite3_result_error_nomem=Module[\"_sqlite3_result_error_nomem\"]=wasmExports[\"Zb\"])(a0);var _sqlite3_user_data=Module[\"_sqlite3_user_data\"]=a0=>(_sqlite3_user_data=Module[\"_sqlite3_user_data\"]=wasmExports[\"_b\"])(a0);var _sqlite3_context_db_handle=Module[\"_sqlite3_context_db_handle\"]=a0=>(_sqlite3_context_db_handle=Module[\"_sqlite3_context_db_handle\"]=wasmExports[\"$b\"])(a0);var _sqlite3_vtab_nochange=Module[\"_sqlite3_vtab_nochange\"]=a0=>(_sqlite3_vtab_nochange=Module[\"_sqlite3_vtab_nochange\"]=wasmExports[\"ac\"])(a0);var _sqlite3_vtab_in_first=Module[\"_sqlite3_vtab_in_first\"]=(a0,a1)=>(_sqlite3_vtab_in_first=Module[\"_sqlite3_vtab_in_first\"]=wasmExports[\"bc\"])(a0,a1);var _sqlite3_vtab_in_next=Module[\"_sqlite3_vtab_in_next\"]=(a0,a1)=>(_sqlite3_vtab_in_next=Module[\"_sqlite3_vtab_in_next\"]=wasmExports[\"cc\"])(a0,a1);var _sqlite3_aggregate_context=Module[\"_sqlite3_aggregate_context\"]=(a0,a1)=>(_sqlite3_aggregate_context=Module[\"_sqlite3_aggregate_context\"]=wasmExports[\"dc\"])(a0,a1);var _sqlite3_get_auxdata=Module[\"_sqlite3_get_auxdata\"]=(a0,a1)=>(_sqlite3_get_auxdata=Module[\"_sqlite3_get_auxdata\"]=wasmExports[\"ec\"])(a0,a1);var _sqlite3_set_auxdata=Module[\"_sqlite3_set_auxdata\"]=(a0,a1,a2,a3)=>(_sqlite3_set_auxdata=Module[\"_sqlite3_set_auxdata\"]=wasmExports[\"fc\"])(a0,a1,a2,a3);var _sqlite3_column_count=Module[\"_sqlite3_column_count\"]=a0=>(_sqlite3_column_count=Module[\"_sqlite3_column_count\"]=wasmExports[\"gc\"])(a0);var _sqlite3_data_count=Module[\"_sqlite3_data_count\"]=a0=>(_sqlite3_data_count=Module[\"_sqlite3_data_count\"]=wasmExports[\"hc\"])(a0);var _sqlite3_column_blob=Module[\"_sqlite3_column_blob\"]=(a0,a1)=>(_sqlite3_column_blob=Module[\"_sqlite3_column_blob\"]=wasmExports[\"ic\"])(a0,a1);var _sqlite3_column_bytes=Module[\"_sqlite3_column_bytes\"]=(a0,a1)=>(_sqlite3_column_bytes=Module[\"_sqlite3_column_bytes\"]=wasmExports[\"jc\"])(a0,a1);var _sqlite3_column_bytes16=Module[\"_sqlite3_column_bytes16\"]=(a0,a1)=>(_sqlite3_column_bytes16=Module[\"_sqlite3_column_bytes16\"]=wasmExports[\"kc\"])(a0,a1);var _sqlite3_column_double=Module[\"_sqlite3_column_double\"]=(a0,a1)=>(_sqlite3_column_double=Module[\"_sqlite3_column_double\"]=wasmExports[\"lc\"])(a0,a1);var _sqlite3_column_text=Module[\"_sqlite3_column_text\"]=(a0,a1)=>(_sqlite3_column_text=Module[\"_sqlite3_column_text\"]=wasmExports[\"mc\"])(a0,a1);var _sqlite3_column_value=Module[\"_sqlite3_column_value\"]=(a0,a1)=>(_sqlite3_column_value=Module[\"_sqlite3_column_value\"]=wasmExports[\"nc\"])(a0,a1);var _sqlite3_column_text16=Module[\"_sqlite3_column_text16\"]=(a0,a1)=>(_sqlite3_column_text16=Module[\"_sqlite3_column_text16\"]=wasmExports[\"oc\"])(a0,a1);var _sqlite3_column_type=Module[\"_sqlite3_column_type\"]=(a0,a1)=>(_sqlite3_column_type=Module[\"_sqlite3_column_type\"]=wasmExports[\"pc\"])(a0,a1);var _sqlite3_column_name=Module[\"_sqlite3_column_name\"]=(a0,a1)=>(_sqlite3_column_name=Module[\"_sqlite3_column_name\"]=wasmExports[\"qc\"])(a0,a1);var _sqlite3_column_name16=Module[\"_sqlite3_column_name16\"]=(a0,a1)=>(_sqlite3_column_name16=Module[\"_sqlite3_column_name16\"]=wasmExports[\"rc\"])(a0,a1);var _sqlite3_bind_blob=Module[\"_sqlite3_bind_blob\"]=(a0,a1,a2,a3,a4)=>(_sqlite3_bind_blob=Module[\"_sqlite3_bind_blob\"]=wasmExports[\"sc\"])(a0,a1,a2,a3,a4);var _sqlite3_bind_blob64=Module[\"_sqlite3_bind_blob64\"]=(a0,a1,a2,a3,a4,a5)=>(_sqlite3_bind_blob64=Module[\"_sqlite3_bind_blob64\"]=wasmExports[\"tc\"])(a0,a1,a2,a3,a4,a5);var _sqlite3_bind_double=Module[\"_sqlite3_bind_double\"]=(a0,a1,a2)=>(_sqlite3_bind_double=Module[\"_sqlite3_bind_double\"]=wasmExports[\"uc\"])(a0,a1,a2);var _sqlite3_bind_int=Module[\"_sqlite3_bind_int\"]=(a0,a1,a2)=>(_sqlite3_bind_int=Module[\"_sqlite3_bind_int\"]=wasmExports[\"vc\"])(a0,a1,a2);var _sqlite3_bind_int64=Module[\"_sqlite3_bind_int64\"]=(a0,a1,a2,a3)=>(_sqlite3_bind_int64=Module[\"_sqlite3_bind_int64\"]=wasmExports[\"wc\"])(a0,a1,a2,a3);var _sqlite3_bind_null=Module[\"_sqlite3_bind_null\"]=(a0,a1)=>(_sqlite3_bind_null=Module[\"_sqlite3_bind_null\"]=wasmExports[\"xc\"])(a0,a1);var _sqlite3_bind_pointer=Module[\"_sqlite3_bind_pointer\"]=(a0,a1,a2,a3,a4)=>(_sqlite3_bind_pointer=Module[\"_sqlite3_bind_pointer\"]=wasmExports[\"yc\"])(a0,a1,a2,a3,a4);var _sqlite3_bind_text=Module[\"_sqlite3_bind_text\"]=(a0,a1,a2,a3,a4)=>(_sqlite3_bind_text=Module[\"_sqlite3_bind_text\"]=wasmExports[\"zc\"])(a0,a1,a2,a3,a4);var _sqlite3_bind_text64=Module[\"_sqlite3_bind_text64\"]=(a0,a1,a2,a3,a4,a5,a6)=>(_sqlite3_bind_text64=Module[\"_sqlite3_bind_text64\"]=wasmExports[\"Ac\"])(a0,a1,a2,a3,a4,a5,a6);var _sqlite3_bind_text16=Module[\"_sqlite3_bind_text16\"]=(a0,a1,a2,a3,a4)=>(_sqlite3_bind_text16=Module[\"_sqlite3_bind_text16\"]=wasmExports[\"Bc\"])(a0,a1,a2,a3,a4);var _sqlite3_bind_value=Module[\"_sqlite3_bind_value\"]=(a0,a1,a2)=>(_sqlite3_bind_value=Module[\"_sqlite3_bind_value\"]=wasmExports[\"Cc\"])(a0,a1,a2);var _sqlite3_bind_zeroblob=Module[\"_sqlite3_bind_zeroblob\"]=(a0,a1,a2)=>(_sqlite3_bind_zeroblob=Module[\"_sqlite3_bind_zeroblob\"]=wasmExports[\"Dc\"])(a0,a1,a2);var _sqlite3_bind_zeroblob64=Module[\"_sqlite3_bind_zeroblob64\"]=(a0,a1,a2,a3)=>(_sqlite3_bind_zeroblob64=Module[\"_sqlite3_bind_zeroblob64\"]=wasmExports[\"Ec\"])(a0,a1,a2,a3);var _sqlite3_bind_parameter_count=Module[\"_sqlite3_bind_parameter_count\"]=a0=>(_sqlite3_bind_parameter_count=Module[\"_sqlite3_bind_parameter_count\"]=wasmExports[\"Fc\"])(a0);var _sqlite3_bind_parameter_name=Module[\"_sqlite3_bind_parameter_name\"]=(a0,a1)=>(_sqlite3_bind_parameter_name=Module[\"_sqlite3_bind_parameter_name\"]=wasmExports[\"Gc\"])(a0,a1);var _sqlite3_bind_parameter_index=Module[\"_sqlite3_bind_parameter_index\"]=(a0,a1)=>(_sqlite3_bind_parameter_index=Module[\"_sqlite3_bind_parameter_index\"]=wasmExports[\"Hc\"])(a0,a1);var _sqlite3_db_handle=Module[\"_sqlite3_db_handle\"]=a0=>(_sqlite3_db_handle=Module[\"_sqlite3_db_handle\"]=wasmExports[\"Ic\"])(a0);var _sqlite3_stmt_readonly=Module[\"_sqlite3_stmt_readonly\"]=a0=>(_sqlite3_stmt_readonly=Module[\"_sqlite3_stmt_readonly\"]=wasmExports[\"Jc\"])(a0);var _sqlite3_stmt_isexplain=Module[\"_sqlite3_stmt_isexplain\"]=a0=>(_sqlite3_stmt_isexplain=Module[\"_sqlite3_stmt_isexplain\"]=wasmExports[\"Kc\"])(a0);var _sqlite3_stmt_explain=Module[\"_sqlite3_stmt_explain\"]=(a0,a1)=>(_sqlite3_stmt_explain=Module[\"_sqlite3_stmt_explain\"]=wasmExports[\"Lc\"])(a0,a1);var _sqlite3_stmt_busy=Module[\"_sqlite3_stmt_busy\"]=a0=>(_sqlite3_stmt_busy=Module[\"_sqlite3_stmt_busy\"]=wasmExports[\"Mc\"])(a0);var _sqlite3_next_stmt=Module[\"_sqlite3_next_stmt\"]=(a0,a1)=>(_sqlite3_next_stmt=Module[\"_sqlite3_next_stmt\"]=wasmExports[\"Nc\"])(a0,a1);var _sqlite3_stmt_status=Module[\"_sqlite3_stmt_status\"]=(a0,a1,a2)=>(_sqlite3_stmt_status=Module[\"_sqlite3_stmt_status\"]=wasmExports[\"Oc\"])(a0,a1,a2);var _sqlite3_sql=Module[\"_sqlite3_sql\"]=a0=>(_sqlite3_sql=Module[\"_sqlite3_sql\"]=wasmExports[\"Pc\"])(a0);var _sqlite3_expanded_sql=Module[\"_sqlite3_expanded_sql\"]=a0=>(_sqlite3_expanded_sql=Module[\"_sqlite3_expanded_sql\"]=wasmExports[\"Qc\"])(a0);var _sqlite3_value_numeric_type=Module[\"_sqlite3_value_numeric_type\"]=a0=>(_sqlite3_value_numeric_type=Module[\"_sqlite3_value_numeric_type\"]=wasmExports[\"Rc\"])(a0);var _sqlite3_blob_open=Module[\"_sqlite3_blob_open\"]=(a0,a1,a2,a3,a4,a5,a6,a7)=>(_sqlite3_blob_open=Module[\"_sqlite3_blob_open\"]=wasmExports[\"Sc\"])(a0,a1,a2,a3,a4,a5,a6,a7);var _sqlite3_blob_close=Module[\"_sqlite3_blob_close\"]=a0=>(_sqlite3_blob_close=Module[\"_sqlite3_blob_close\"]=wasmExports[\"Tc\"])(a0);var _sqlite3_blob_read=Module[\"_sqlite3_blob_read\"]=(a0,a1,a2,a3)=>(_sqlite3_blob_read=Module[\"_sqlite3_blob_read\"]=wasmExports[\"Uc\"])(a0,a1,a2,a3);var _sqlite3_blob_write=Module[\"_sqlite3_blob_write\"]=(a0,a1,a2,a3)=>(_sqlite3_blob_write=Module[\"_sqlite3_blob_write\"]=wasmExports[\"Vc\"])(a0,a1,a2,a3);var _sqlite3_blob_bytes=Module[\"_sqlite3_blob_bytes\"]=a0=>(_sqlite3_blob_bytes=Module[\"_sqlite3_blob_bytes\"]=wasmExports[\"Wc\"])(a0);var _sqlite3_blob_reopen=Module[\"_sqlite3_blob_reopen\"]=(a0,a1,a2)=>(_sqlite3_blob_reopen=Module[\"_sqlite3_blob_reopen\"]=wasmExports[\"Xc\"])(a0,a1,a2);var _sqlite3_set_authorizer=Module[\"_sqlite3_set_authorizer\"]=(a0,a1,a2)=>(_sqlite3_set_authorizer=Module[\"_sqlite3_set_authorizer\"]=wasmExports[\"Yc\"])(a0,a1,a2);var _sqlite3_strglob=Module[\"_sqlite3_strglob\"]=(a0,a1)=>(_sqlite3_strglob=Module[\"_sqlite3_strglob\"]=wasmExports[\"Zc\"])(a0,a1);var _sqlite3_strlike=Module[\"_sqlite3_strlike\"]=(a0,a1,a2)=>(_sqlite3_strlike=Module[\"_sqlite3_strlike\"]=wasmExports[\"_c\"])(a0,a1,a2);var _sqlite3_errmsg=Module[\"_sqlite3_errmsg\"]=a0=>(_sqlite3_errmsg=Module[\"_sqlite3_errmsg\"]=wasmExports[\"$c\"])(a0);var _sqlite3_auto_extension=Module[\"_sqlite3_auto_extension\"]=a0=>(_sqlite3_auto_extension=Module[\"_sqlite3_auto_extension\"]=wasmExports[\"ad\"])(a0);var _sqlite3_cancel_auto_extension=Module[\"_sqlite3_cancel_auto_extension\"]=a0=>(_sqlite3_cancel_auto_extension=Module[\"_sqlite3_cancel_auto_extension\"]=wasmExports[\"bd\"])(a0);var _sqlite3_reset_auto_extension=Module[\"_sqlite3_reset_auto_extension\"]=()=>(_sqlite3_reset_auto_extension=Module[\"_sqlite3_reset_auto_extension\"]=wasmExports[\"cd\"])();var _sqlite3_prepare=Module[\"_sqlite3_prepare\"]=(a0,a1,a2,a3,a4)=>(_sqlite3_prepare=Module[\"_sqlite3_prepare\"]=wasmExports[\"dd\"])(a0,a1,a2,a3,a4);var _sqlite3_prepare_v3=Module[\"_sqlite3_prepare_v3\"]=(a0,a1,a2,a3,a4,a5)=>(_sqlite3_prepare_v3=Module[\"_sqlite3_prepare_v3\"]=wasmExports[\"ed\"])(a0,a1,a2,a3,a4,a5);var _sqlite3_prepare16=Module[\"_sqlite3_prepare16\"]=(a0,a1,a2,a3,a4)=>(_sqlite3_prepare16=Module[\"_sqlite3_prepare16\"]=wasmExports[\"fd\"])(a0,a1,a2,a3,a4);var _sqlite3_prepare16_v2=Module[\"_sqlite3_prepare16_v2\"]=(a0,a1,a2,a3,a4)=>(_sqlite3_prepare16_v2=Module[\"_sqlite3_prepare16_v2\"]=wasmExports[\"gd\"])(a0,a1,a2,a3,a4);var _sqlite3_prepare16_v3=Module[\"_sqlite3_prepare16_v3\"]=(a0,a1,a2,a3,a4,a5)=>(_sqlite3_prepare16_v3=Module[\"_sqlite3_prepare16_v3\"]=wasmExports[\"hd\"])(a0,a1,a2,a3,a4,a5);var _sqlite3_get_table=Module[\"_sqlite3_get_table\"]=(a0,a1,a2,a3,a4,a5)=>(_sqlite3_get_table=Module[\"_sqlite3_get_table\"]=wasmExports[\"id\"])(a0,a1,a2,a3,a4,a5);var _sqlite3_free_table=Module[\"_sqlite3_free_table\"]=a0=>(_sqlite3_free_table=Module[\"_sqlite3_free_table\"]=wasmExports[\"jd\"])(a0);var _sqlite3_create_module=Module[\"_sqlite3_create_module\"]=(a0,a1,a2,a3)=>(_sqlite3_create_module=Module[\"_sqlite3_create_module\"]=wasmExports[\"kd\"])(a0,a1,a2,a3);var _sqlite3_create_module_v2=Module[\"_sqlite3_create_module_v2\"]=(a0,a1,a2,a3,a4)=>(_sqlite3_create_module_v2=Module[\"_sqlite3_create_module_v2\"]=wasmExports[\"ld\"])(a0,a1,a2,a3,a4);var _sqlite3_drop_modules=Module[\"_sqlite3_drop_modules\"]=(a0,a1)=>(_sqlite3_drop_modules=Module[\"_sqlite3_drop_modules\"]=wasmExports[\"md\"])(a0,a1);var _sqlite3_declare_vtab=Module[\"_sqlite3_declare_vtab\"]=(a0,a1)=>(_sqlite3_declare_vtab=Module[\"_sqlite3_declare_vtab\"]=wasmExports[\"nd\"])(a0,a1);var _sqlite3_vtab_on_conflict=Module[\"_sqlite3_vtab_on_conflict\"]=a0=>(_sqlite3_vtab_on_conflict=Module[\"_sqlite3_vtab_on_conflict\"]=wasmExports[\"od\"])(a0);var _sqlite3_vtab_config=Module[\"_sqlite3_vtab_config\"]=(a0,a1,a2)=>(_sqlite3_vtab_config=Module[\"_sqlite3_vtab_config\"]=wasmExports[\"pd\"])(a0,a1,a2);var _sqlite3_vtab_collation=Module[\"_sqlite3_vtab_collation\"]=(a0,a1)=>(_sqlite3_vtab_collation=Module[\"_sqlite3_vtab_collation\"]=wasmExports[\"qd\"])(a0,a1);var _sqlite3_vtab_in=Module[\"_sqlite3_vtab_in\"]=(a0,a1,a2)=>(_sqlite3_vtab_in=Module[\"_sqlite3_vtab_in\"]=wasmExports[\"rd\"])(a0,a1,a2);var _sqlite3_vtab_rhs_value=Module[\"_sqlite3_vtab_rhs_value\"]=(a0,a1,a2)=>(_sqlite3_vtab_rhs_value=Module[\"_sqlite3_vtab_rhs_value\"]=wasmExports[\"sd\"])(a0,a1,a2);var _sqlite3_vtab_distinct=Module[\"_sqlite3_vtab_distinct\"]=a0=>(_sqlite3_vtab_distinct=Module[\"_sqlite3_vtab_distinct\"]=wasmExports[\"td\"])(a0);var _sqlite3_keyword_name=Module[\"_sqlite3_keyword_name\"]=(a0,a1,a2)=>(_sqlite3_keyword_name=Module[\"_sqlite3_keyword_name\"]=wasmExports[\"ud\"])(a0,a1,a2);var _sqlite3_keyword_count=Module[\"_sqlite3_keyword_count\"]=()=>(_sqlite3_keyword_count=Module[\"_sqlite3_keyword_count\"]=wasmExports[\"vd\"])();var _sqlite3_keyword_check=Module[\"_sqlite3_keyword_check\"]=(a0,a1)=>(_sqlite3_keyword_check=Module[\"_sqlite3_keyword_check\"]=wasmExports[\"wd\"])(a0,a1);var _sqlite3_complete=Module[\"_sqlite3_complete\"]=a0=>(_sqlite3_complete=Module[\"_sqlite3_complete\"]=wasmExports[\"xd\"])(a0);var _sqlite3_complete16=Module[\"_sqlite3_complete16\"]=a0=>(_sqlite3_complete16=Module[\"_sqlite3_complete16\"]=wasmExports[\"yd\"])(a0);var _sqlite3_libversion=Module[\"_sqlite3_libversion\"]=()=>(_sqlite3_libversion=Module[\"_sqlite3_libversion\"]=wasmExports[\"zd\"])();var _sqlite3_libversion_number=Module[\"_sqlite3_libversion_number\"]=()=>(_sqlite3_libversion_number=Module[\"_sqlite3_libversion_number\"]=wasmExports[\"Ad\"])();var _sqlite3_threadsafe=Module[\"_sqlite3_threadsafe\"]=()=>(_sqlite3_threadsafe=Module[\"_sqlite3_threadsafe\"]=wasmExports[\"Bd\"])();var _sqlite3_initialize=Module[\"_sqlite3_initialize\"]=()=>(_sqlite3_initialize=Module[\"_sqlite3_initialize\"]=wasmExports[\"Cd\"])();var _sqlite3_shutdown=Module[\"_sqlite3_shutdown\"]=()=>(_sqlite3_shutdown=Module[\"_sqlite3_shutdown\"]=wasmExports[\"Dd\"])();var _sqlite3_config=Module[\"_sqlite3_config\"]=(a0,a1)=>(_sqlite3_config=Module[\"_sqlite3_config\"]=wasmExports[\"Ed\"])(a0,a1);var _sqlite3_db_mutex=Module[\"_sqlite3_db_mutex\"]=a0=>(_sqlite3_db_mutex=Module[\"_sqlite3_db_mutex\"]=wasmExports[\"Fd\"])(a0);var _sqlite3_db_release_memory=Module[\"_sqlite3_db_release_memory\"]=a0=>(_sqlite3_db_release_memory=Module[\"_sqlite3_db_release_memory\"]=wasmExports[\"Gd\"])(a0);var _sqlite3_db_cacheflush=Module[\"_sqlite3_db_cacheflush\"]=a0=>(_sqlite3_db_cacheflush=Module[\"_sqlite3_db_cacheflush\"]=wasmExports[\"Hd\"])(a0);var _sqlite3_db_config=Module[\"_sqlite3_db_config\"]=(a0,a1,a2)=>(_sqlite3_db_config=Module[\"_sqlite3_db_config\"]=wasmExports[\"Id\"])(a0,a1,a2);var _sqlite3_last_insert_rowid=Module[\"_sqlite3_last_insert_rowid\"]=a0=>(_sqlite3_last_insert_rowid=Module[\"_sqlite3_last_insert_rowid\"]=wasmExports[\"Jd\"])(a0);var _sqlite3_set_last_insert_rowid=Module[\"_sqlite3_set_last_insert_rowid\"]=(a0,a1,a2)=>(_sqlite3_set_last_insert_rowid=Module[\"_sqlite3_set_last_insert_rowid\"]=wasmExports[\"Kd\"])(a0,a1,a2);var _sqlite3_changes64=Module[\"_sqlite3_changes64\"]=a0=>(_sqlite3_changes64=Module[\"_sqlite3_changes64\"]=wasmExports[\"Ld\"])(a0);var _sqlite3_changes=Module[\"_sqlite3_changes\"]=a0=>(_sqlite3_changes=Module[\"_sqlite3_changes\"]=wasmExports[\"Md\"])(a0);var _sqlite3_total_changes64=Module[\"_sqlite3_total_changes64\"]=a0=>(_sqlite3_total_changes64=Module[\"_sqlite3_total_changes64\"]=wasmExports[\"Nd\"])(a0);var _sqlite3_total_changes=Module[\"_sqlite3_total_changes\"]=a0=>(_sqlite3_total_changes=Module[\"_sqlite3_total_changes\"]=wasmExports[\"Od\"])(a0);var _sqlite3_txn_state=Module[\"_sqlite3_txn_state\"]=(a0,a1)=>(_sqlite3_txn_state=Module[\"_sqlite3_txn_state\"]=wasmExports[\"Pd\"])(a0,a1);var _sqlite3_close=Module[\"_sqlite3_close\"]=a0=>(_sqlite3_close=Module[\"_sqlite3_close\"]=wasmExports[\"Qd\"])(a0);var _sqlite3_close_v2=Module[\"_sqlite3_close_v2\"]=a0=>(_sqlite3_close_v2=Module[\"_sqlite3_close_v2\"]=wasmExports[\"Rd\"])(a0);var _sqlite3_busy_handler=Module[\"_sqlite3_busy_handler\"]=(a0,a1,a2)=>(_sqlite3_busy_handler=Module[\"_sqlite3_busy_handler\"]=wasmExports[\"Sd\"])(a0,a1,a2);var _sqlite3_progress_handler=Module[\"_sqlite3_progress_handler\"]=(a0,a1,a2,a3)=>(_sqlite3_progress_handler=Module[\"_sqlite3_progress_handler\"]=wasmExports[\"Td\"])(a0,a1,a2,a3);var _sqlite3_busy_timeout=Module[\"_sqlite3_busy_timeout\"]=(a0,a1)=>(_sqlite3_busy_timeout=Module[\"_sqlite3_busy_timeout\"]=wasmExports[\"Ud\"])(a0,a1);var _sqlite3_interrupt=Module[\"_sqlite3_interrupt\"]=a0=>(_sqlite3_interrupt=Module[\"_sqlite3_interrupt\"]=wasmExports[\"Vd\"])(a0);var _sqlite3_is_interrupted=Module[\"_sqlite3_is_interrupted\"]=a0=>(_sqlite3_is_interrupted=Module[\"_sqlite3_is_interrupted\"]=wasmExports[\"Wd\"])(a0);var _sqlite3_create_function=Module[\"_sqlite3_create_function\"]=(a0,a1,a2,a3,a4,a5,a6,a7)=>(_sqlite3_create_function=Module[\"_sqlite3_create_function\"]=wasmExports[\"Xd\"])(a0,a1,a2,a3,a4,a5,a6,a7);var _sqlite3_create_function_v2=Module[\"_sqlite3_create_function_v2\"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8)=>(_sqlite3_create_function_v2=Module[\"_sqlite3_create_function_v2\"]=wasmExports[\"Yd\"])(a0,a1,a2,a3,a4,a5,a6,a7,a8);var _sqlite3_create_window_function=Module[\"_sqlite3_create_window_function\"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9)=>(_sqlite3_create_window_function=Module[\"_sqlite3_create_window_function\"]=wasmExports[\"Zd\"])(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9);var _sqlite3_create_function16=Module[\"_sqlite3_create_function16\"]=(a0,a1,a2,a3,a4,a5,a6,a7)=>(_sqlite3_create_function16=Module[\"_sqlite3_create_function16\"]=wasmExports[\"_d\"])(a0,a1,a2,a3,a4,a5,a6,a7);var _sqlite3_overload_function=Module[\"_sqlite3_overload_function\"]=(a0,a1,a2)=>(_sqlite3_overload_function=Module[\"_sqlite3_overload_function\"]=wasmExports[\"$d\"])(a0,a1,a2);var _sqlite3_trace_v2=Module[\"_sqlite3_trace_v2\"]=(a0,a1,a2,a3)=>(_sqlite3_trace_v2=Module[\"_sqlite3_trace_v2\"]=wasmExports[\"ae\"])(a0,a1,a2,a3);var _sqlite3_commit_hook=Module[\"_sqlite3_commit_hook\"]=(a0,a1,a2)=>(_sqlite3_commit_hook=Module[\"_sqlite3_commit_hook\"]=wasmExports[\"be\"])(a0,a1,a2);var _sqlite3_update_hook=Module[\"_sqlite3_update_hook\"]=(a0,a1,a2)=>(_sqlite3_update_hook=Module[\"_sqlite3_update_hook\"]=wasmExports[\"ce\"])(a0,a1,a2);var _sqlite3_rollback_hook=Module[\"_sqlite3_rollback_hook\"]=(a0,a1,a2)=>(_sqlite3_rollback_hook=Module[\"_sqlite3_rollback_hook\"]=wasmExports[\"de\"])(a0,a1,a2);var _sqlite3_autovacuum_pages=Module[\"_sqlite3_autovacuum_pages\"]=(a0,a1,a2,a3)=>(_sqlite3_autovacuum_pages=Module[\"_sqlite3_autovacuum_pages\"]=wasmExports[\"ee\"])(a0,a1,a2,a3);var _sqlite3_wal_autocheckpoint=Module[\"_sqlite3_wal_autocheckpoint\"]=(a0,a1)=>(_sqlite3_wal_autocheckpoint=Module[\"_sqlite3_wal_autocheckpoint\"]=wasmExports[\"fe\"])(a0,a1);var _sqlite3_wal_hook=Module[\"_sqlite3_wal_hook\"]=(a0,a1,a2)=>(_sqlite3_wal_hook=Module[\"_sqlite3_wal_hook\"]=wasmExports[\"ge\"])(a0,a1,a2);var _sqlite3_wal_checkpoint_v2=Module[\"_sqlite3_wal_checkpoint_v2\"]=(a0,a1,a2,a3,a4)=>(_sqlite3_wal_checkpoint_v2=Module[\"_sqlite3_wal_checkpoint_v2\"]=wasmExports[\"he\"])(a0,a1,a2,a3,a4);var _sqlite3_wal_checkpoint=Module[\"_sqlite3_wal_checkpoint\"]=(a0,a1)=>(_sqlite3_wal_checkpoint=Module[\"_sqlite3_wal_checkpoint\"]=wasmExports[\"ie\"])(a0,a1);var _sqlite3_error_offset=Module[\"_sqlite3_error_offset\"]=a0=>(_sqlite3_error_offset=Module[\"_sqlite3_error_offset\"]=wasmExports[\"je\"])(a0);var _sqlite3_errmsg16=Module[\"_sqlite3_errmsg16\"]=a0=>(_sqlite3_errmsg16=Module[\"_sqlite3_errmsg16\"]=wasmExports[\"ke\"])(a0);var _sqlite3_errcode=Module[\"_sqlite3_errcode\"]=a0=>(_sqlite3_errcode=Module[\"_sqlite3_errcode\"]=wasmExports[\"le\"])(a0);var _sqlite3_extended_errcode=Module[\"_sqlite3_extended_errcode\"]=a0=>(_sqlite3_extended_errcode=Module[\"_sqlite3_extended_errcode\"]=wasmExports[\"me\"])(a0);var _sqlite3_system_errno=Module[\"_sqlite3_system_errno\"]=a0=>(_sqlite3_system_errno=Module[\"_sqlite3_system_errno\"]=wasmExports[\"ne\"])(a0);var _sqlite3_errstr=Module[\"_sqlite3_errstr\"]=a0=>(_sqlite3_errstr=Module[\"_sqlite3_errstr\"]=wasmExports[\"oe\"])(a0);var _sqlite3_limit=Module[\"_sqlite3_limit\"]=(a0,a1,a2)=>(_sqlite3_limit=Module[\"_sqlite3_limit\"]=wasmExports[\"pe\"])(a0,a1,a2);var _sqlite3_open=Module[\"_sqlite3_open\"]=(a0,a1)=>(_sqlite3_open=Module[\"_sqlite3_open\"]=wasmExports[\"qe\"])(a0,a1);var _sqlite3_open_v2=Module[\"_sqlite3_open_v2\"]=(a0,a1,a2,a3)=>(_sqlite3_open_v2=Module[\"_sqlite3_open_v2\"]=wasmExports[\"re\"])(a0,a1,a2,a3);var _sqlite3_open16=Module[\"_sqlite3_open16\"]=(a0,a1)=>(_sqlite3_open16=Module[\"_sqlite3_open16\"]=wasmExports[\"se\"])(a0,a1);var _sqlite3_create_collation=Module[\"_sqlite3_create_collation\"]=(a0,a1,a2,a3,a4)=>(_sqlite3_create_collation=Module[\"_sqlite3_create_collation\"]=wasmExports[\"te\"])(a0,a1,a2,a3,a4);var _sqlite3_create_collation_v2=Module[\"_sqlite3_create_collation_v2\"]=(a0,a1,a2,a3,a4,a5)=>(_sqlite3_create_collation_v2=Module[\"_sqlite3_create_collation_v2\"]=wasmExports[\"ue\"])(a0,a1,a2,a3,a4,a5);var _sqlite3_create_collation16=Module[\"_sqlite3_create_collation16\"]=(a0,a1,a2,a3,a4)=>(_sqlite3_create_collation16=Module[\"_sqlite3_create_collation16\"]=wasmExports[\"ve\"])(a0,a1,a2,a3,a4);var _sqlite3_collation_needed=Module[\"_sqlite3_collation_needed\"]=(a0,a1,a2)=>(_sqlite3_collation_needed=Module[\"_sqlite3_collation_needed\"]=wasmExports[\"we\"])(a0,a1,a2);var _sqlite3_collation_needed16=Module[\"_sqlite3_collation_needed16\"]=(a0,a1,a2)=>(_sqlite3_collation_needed16=Module[\"_sqlite3_collation_needed16\"]=wasmExports[\"xe\"])(a0,a1,a2);var _sqlite3_get_clientdata=Module[\"_sqlite3_get_clientdata\"]=(a0,a1)=>(_sqlite3_get_clientdata=Module[\"_sqlite3_get_clientdata\"]=wasmExports[\"ye\"])(a0,a1);var _sqlite3_set_clientdata=Module[\"_sqlite3_set_clientdata\"]=(a0,a1,a2,a3)=>(_sqlite3_set_clientdata=Module[\"_sqlite3_set_clientdata\"]=wasmExports[\"ze\"])(a0,a1,a2,a3);var _sqlite3_get_autocommit=Module[\"_sqlite3_get_autocommit\"]=a0=>(_sqlite3_get_autocommit=Module[\"_sqlite3_get_autocommit\"]=wasmExports[\"Ae\"])(a0);var _sqlite3_table_column_metadata=Module[\"_sqlite3_table_column_metadata\"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8)=>(_sqlite3_table_column_metadata=Module[\"_sqlite3_table_column_metadata\"]=wasmExports[\"Be\"])(a0,a1,a2,a3,a4,a5,a6,a7,a8);var _sqlite3_sleep=Module[\"_sqlite3_sleep\"]=a0=>(_sqlite3_sleep=Module[\"_sqlite3_sleep\"]=wasmExports[\"Ce\"])(a0);var _sqlite3_extended_result_codes=Module[\"_sqlite3_extended_result_codes\"]=(a0,a1)=>(_sqlite3_extended_result_codes=Module[\"_sqlite3_extended_result_codes\"]=wasmExports[\"De\"])(a0,a1);var _sqlite3_file_control=Module[\"_sqlite3_file_control\"]=(a0,a1,a2,a3)=>(_sqlite3_file_control=Module[\"_sqlite3_file_control\"]=wasmExports[\"Ee\"])(a0,a1,a2,a3);var _sqlite3_test_control=Module[\"_sqlite3_test_control\"]=(a0,a1)=>(_sqlite3_test_control=Module[\"_sqlite3_test_control\"]=wasmExports[\"Fe\"])(a0,a1);var _sqlite3_create_filename=Module[\"_sqlite3_create_filename\"]=(a0,a1,a2,a3,a4)=>(_sqlite3_create_filename=Module[\"_sqlite3_create_filename\"]=wasmExports[\"Ge\"])(a0,a1,a2,a3,a4);var _sqlite3_free_filename=Module[\"_sqlite3_free_filename\"]=a0=>(_sqlite3_free_filename=Module[\"_sqlite3_free_filename\"]=wasmExports[\"He\"])(a0);var _sqlite3_uri_parameter=Module[\"_sqlite3_uri_parameter\"]=(a0,a1)=>(_sqlite3_uri_parameter=Module[\"_sqlite3_uri_parameter\"]=wasmExports[\"Ie\"])(a0,a1);var _sqlite3_uri_key=Module[\"_sqlite3_uri_key\"]=(a0,a1)=>(_sqlite3_uri_key=Module[\"_sqlite3_uri_key\"]=wasmExports[\"Je\"])(a0,a1);var _sqlite3_uri_boolean=Module[\"_sqlite3_uri_boolean\"]=(a0,a1,a2)=>(_sqlite3_uri_boolean=Module[\"_sqlite3_uri_boolean\"]=wasmExports[\"Ke\"])(a0,a1,a2);var _sqlite3_uri_int64=Module[\"_sqlite3_uri_int64\"]=(a0,a1,a2,a3)=>(_sqlite3_uri_int64=Module[\"_sqlite3_uri_int64\"]=wasmExports[\"Le\"])(a0,a1,a2,a3);var _sqlite3_filename_database=Module[\"_sqlite3_filename_database\"]=a0=>(_sqlite3_filename_database=Module[\"_sqlite3_filename_database\"]=wasmExports[\"Me\"])(a0);var _sqlite3_filename_journal=Module[\"_sqlite3_filename_journal\"]=a0=>(_sqlite3_filename_journal=Module[\"_sqlite3_filename_journal\"]=wasmExports[\"Ne\"])(a0);var _sqlite3_filename_wal=Module[\"_sqlite3_filename_wal\"]=a0=>(_sqlite3_filename_wal=Module[\"_sqlite3_filename_wal\"]=wasmExports[\"Oe\"])(a0);var _sqlite3_db_name=Module[\"_sqlite3_db_name\"]=(a0,a1)=>(_sqlite3_db_name=Module[\"_sqlite3_db_name\"]=wasmExports[\"Pe\"])(a0,a1);var _sqlite3_db_filename=Module[\"_sqlite3_db_filename\"]=(a0,a1)=>(_sqlite3_db_filename=Module[\"_sqlite3_db_filename\"]=wasmExports[\"Qe\"])(a0,a1);var _sqlite3_db_readonly=Module[\"_sqlite3_db_readonly\"]=(a0,a1)=>(_sqlite3_db_readonly=Module[\"_sqlite3_db_readonly\"]=wasmExports[\"Re\"])(a0,a1);var _sqlite3_compileoption_used=Module[\"_sqlite3_compileoption_used\"]=a0=>(_sqlite3_compileoption_used=Module[\"_sqlite3_compileoption_used\"]=wasmExports[\"Se\"])(a0);var _sqlite3_compileoption_get=Module[\"_sqlite3_compileoption_get\"]=a0=>(_sqlite3_compileoption_get=Module[\"_sqlite3_compileoption_get\"]=wasmExports[\"Te\"])(a0);var _sqlite3_sourceid=Module[\"_sqlite3_sourceid\"]=()=>(_sqlite3_sourceid=Module[\"_sqlite3_sourceid\"]=wasmExports[\"Ue\"])();var _malloc=Module[\"_malloc\"]=a0=>(_malloc=Module[\"_malloc\"]=wasmExports[\"Ve\"])(a0);var _free=Module[\"_free\"]=a0=>(_free=Module[\"_free\"]=wasmExports[\"We\"])(a0);var _RegisterExtensionFunctions=Module[\"_RegisterExtensionFunctions\"]=a0=>(_RegisterExtensionFunctions=Module[\"_RegisterExtensionFunctions\"]=wasmExports[\"Xe\"])(a0);var _getSqliteFree=Module[\"_getSqliteFree\"]=()=>(_getSqliteFree=Module[\"_getSqliteFree\"]=wasmExports[\"Ye\"])();var _main=Module[\"_main\"]=(a0,a1)=>(_main=Module[\"_main\"]=wasmExports[\"Ze\"])(a0,a1);var _libauthorizer_set_authorizer=Module[\"_libauthorizer_set_authorizer\"]=(a0,a1,a2)=>(_libauthorizer_set_authorizer=Module[\"_libauthorizer_set_authorizer\"]=wasmExports[\"_e\"])(a0,a1,a2);var _libfunction_create_function=Module[\"_libfunction_create_function\"]=(a0,a1,a2,a3,a4,a5,a6,a7)=>(_libfunction_create_function=Module[\"_libfunction_create_function\"]=wasmExports[\"$e\"])(a0,a1,a2,a3,a4,a5,a6,a7);var _libhook_commit_hook=Module[\"_libhook_commit_hook\"]=(a0,a1,a2)=>(_libhook_commit_hook=Module[\"_libhook_commit_hook\"]=wasmExports[\"af\"])(a0,a1,a2);var _libhook_update_hook=Module[\"_libhook_update_hook\"]=(a0,a1,a2)=>(_libhook_update_hook=Module[\"_libhook_update_hook\"]=wasmExports[\"bf\"])(a0,a1,a2);var _libprogress_progress_handler=Module[\"_libprogress_progress_handler\"]=(a0,a1,a2,a3)=>(_libprogress_progress_handler=Module[\"_libprogress_progress_handler\"]=wasmExports[\"cf\"])(a0,a1,a2,a3);var _libvfs_vfs_register=Module[\"_libvfs_vfs_register\"]=(a0,a1,a2,a3,a4,a5)=>(_libvfs_vfs_register=Module[\"_libvfs_vfs_register\"]=wasmExports[\"df\"])(a0,a1,a2,a3,a4,a5);var _emscripten_builtin_memalign=(a0,a1)=>(_emscripten_builtin_memalign=wasmExports[\"ff\"])(a0,a1);var __emscripten_tempret_get=()=>(__emscripten_tempret_get=wasmExports[\"gf\"])();var __emscripten_stack_restore=a0=>(__emscripten_stack_restore=wasmExports[\"hf\"])(a0);var __emscripten_stack_alloc=a0=>(__emscripten_stack_alloc=wasmExports[\"jf\"])(a0);var _emscripten_stack_get_current=()=>(_emscripten_stack_get_current=wasmExports[\"kf\"])();var _asyncify_start_unwind=a0=>(_asyncify_start_unwind=wasmExports[\"lf\"])(a0);var _asyncify_stop_unwind=()=>(_asyncify_stop_unwind=wasmExports[\"mf\"])();var _asyncify_start_rewind=a0=>(_asyncify_start_rewind=wasmExports[\"nf\"])(a0);var _asyncify_stop_rewind=()=>(_asyncify_stop_rewind=wasmExports[\"of\"])();var _sqlite3_version=Module[\"_sqlite3_version\"]=3232;Module[\"getTempRet0\"]=getTempRet0;Module[\"ccall\"]=ccall;Module[\"cwrap\"]=cwrap;Module[\"addFunction\"]=addFunction;Module[\"setValue\"]=setValue;Module[\"getValue\"]=getValue;Module[\"UTF8ToString\"]=UTF8ToString;Module[\"stringToUTF8\"]=stringToUTF8;Module[\"lengthBytesUTF8\"]=lengthBytesUTF8;Module[\"intArrayFromString\"]=intArrayFromString;Module[\"intArrayToString\"]=intArrayToString;Module[\"AsciiToString\"]=AsciiToString;Module[\"UTF16ToString\"]=UTF16ToString;Module[\"stringToUTF16\"]=stringToUTF16;Module[\"UTF32ToString\"]=UTF32ToString;Module[\"stringToUTF32\"]=stringToUTF32;Module[\"writeArrayToMemory\"]=writeArrayToMemory;var calledRun;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(){var entryFunction=_main;var argc=0;var argv=0;try{var ret=entryFunction(argc,argv);exitJS(ret,true);return ret}catch(e){return handleException(e)}}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();preMain();readyPromiseResolve(Module);if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();if(shouldRunNow)callMain();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}var shouldRunNow=true;if(Module[\"noInitialRun\"])shouldRunNow=false;run();(function(){const AsyncFunction=Object.getPrototypeOf(async function(){}).constructor;let pAsyncFlags=0;Module[\"set_authorizer\"]=function(db,xAuthorizer,pApp){if(pAsyncFlags){Module[\"deleteCallback\"](pAsyncFlags);Module[\"_sqlite3_free\"](pAsyncFlags);pAsyncFlags=0}pAsyncFlags=Module[\"_sqlite3_malloc\"](4);setValue(pAsyncFlags,xAuthorizer instanceof AsyncFunction?1:0,\"i32\");const result=ccall(\"libauthorizer_set_authorizer\",\"number\",[\"number\",\"number\",\"number\"],[db,xAuthorizer?1:0,pAsyncFlags]);if(!result&&xAuthorizer){Module[\"setCallback\"](pAsyncFlags,(_,iAction,p3,p4,p5,p6)=>xAuthorizer(pApp,iAction,p3,p4,p5,p6))}return result}})();(function(){const AsyncFunction=Object.getPrototypeOf(async function(){}).constructor;const FUNC_METHODS=[\"xFunc\",\"xStep\",\"xFinal\"];const mapFunctionNameToKey=new Map;Module[\"create_function\"]=function(db,zFunctionName,nArg,eTextRep,pApp,xFunc,xStep,xFinal){const pAsyncFlags=Module[\"_sqlite3_malloc\"](4);const target={xFunc:xFunc,xStep:xStep,xFinal:xFinal};setValue(pAsyncFlags,FUNC_METHODS.reduce((mask,method,i)=>{if(target[method]instanceof AsyncFunction){return mask|1<<i}return mask},0),\"i32\");const result=ccall(\"libfunction_create_function\",\"number\",[\"number\",\"string\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"],[db,zFunctionName,nArg,eTextRep,pAsyncFlags,xFunc?1:0,xStep?1:0,xFinal?1:0]);if(!result){if(mapFunctionNameToKey.has(zFunctionName)){const oldKey=mapFunctionNameToKey.get(zFunctionName);Module[\"deleteCallback\"](oldKey)}mapFunctionNameToKey.set(zFunctionName,pAsyncFlags);Module[\"setCallback\"](pAsyncFlags,{xFunc:xFunc,xStep:xStep,xFinal:xFinal})}return result}})();(function(){const AsyncFunction=Object.getPrototypeOf(async function(){}).constructor;let pAsyncFlags=0;Module[\"update_hook\"]=function(db,xUpdateHook){if(pAsyncFlags){Module[\"deleteCallback\"](pAsyncFlags);Module[\"_sqlite3_free\"](pAsyncFlags);pAsyncFlags=0}pAsyncFlags=Module[\"_sqlite3_malloc\"](4);setValue(pAsyncFlags,xUpdateHook instanceof AsyncFunction?1:0,\"i32\");ccall(\"libhook_update_hook\",\"void\",[\"number\",\"number\",\"number\"],[db,xUpdateHook?1:0,pAsyncFlags]);if(xUpdateHook){Module[\"setCallback\"](pAsyncFlags,(_,iUpdateType,dbName,tblName,lo32,hi32)=>xUpdateHook(iUpdateType,dbName,tblName,lo32,hi32))}}})();(function(){const AsyncFunction=Object.getPrototypeOf(async function(){}).constructor;let pAsyncFlags=0;Module[\"commit_hook\"]=function(db,xCommitHook){if(pAsyncFlags){Module[\"deleteCallback\"](pAsyncFlags);Module[\"_sqlite3_free\"](pAsyncFlags);pAsyncFlags=0}pAsyncFlags=Module[\"_sqlite3_malloc\"](4);setValue(pAsyncFlags,xCommitHook instanceof AsyncFunction?1:0,\"i32\");ccall(\"libhook_commit_hook\",\"void\",[\"number\",\"number\",\"number\"],[db,xCommitHook?1:0,pAsyncFlags]);if(xCommitHook){Module[\"setCallback\"](pAsyncFlags,_=>xCommitHook())}}})();(function(){const AsyncFunction=Object.getPrototypeOf(async function(){}).constructor;let pAsyncFlags=0;Module[\"progress_handler\"]=function(db,nOps,xProgress,pApp){if(pAsyncFlags){Module[\"deleteCallback\"](pAsyncFlags);Module[\"_sqlite3_free\"](pAsyncFlags);pAsyncFlags=0}pAsyncFlags=Module[\"_sqlite3_malloc\"](4);setValue(pAsyncFlags,xProgress instanceof AsyncFunction?1:0,\"i32\");ccall(\"libprogress_progress_handler\",\"number\",[\"number\",\"number\",\"number\",\"number\"],[db,nOps,xProgress?1:0,pAsyncFlags]);if(xProgress){Module[\"setCallback\"](pAsyncFlags,_=>xProgress(pApp))}}})();(function(){const VFS_METHODS=[\"xOpen\",\"xDelete\",\"xAccess\",\"xFullPathname\",\"xRandomness\",\"xSleep\",\"xCurrentTime\",\"xGetLastError\",\"xCurrentTimeInt64\",\"xClose\",\"xRead\",\"xWrite\",\"xTruncate\",\"xSync\",\"xFileSize\",\"xLock\",\"xUnlock\",\"xCheckReservedLock\",\"xFileControl\",\"xSectorSize\",\"xDeviceCharacteristics\",\"xShmMap\",\"xShmLock\",\"xShmBarrier\",\"xShmUnmap\"];const mapVFSNameToKey=new Map;Module[\"vfs_register\"]=function(vfs,makeDefault){let methodMask=0;let asyncMask=0;VFS_METHODS.forEach((method,i)=>{if(vfs[method]){methodMask|=1<<i;if(vfs[\"hasAsyncMethod\"](method)){asyncMask|=1<<i}}});const vfsReturn=Module[\"_sqlite3_malloc\"](4);try{const result=ccall(\"libvfs_vfs_register\",\"number\",[\"string\",\"number\",\"number\",\"number\",\"number\",\"number\"],[vfs.name,vfs.mxPathname,methodMask,asyncMask,makeDefault?1:0,vfsReturn]);if(!result){if(mapVFSNameToKey.has(vfs.name)){const oldKey=mapVFSNameToKey.get(vfs.name);Module[\"deleteCallback\"](oldKey)}const key=getValue(vfsReturn,\"*\");mapVFSNameToKey.set(vfs.name,key);Module[\"setCallback\"](key,vfs)}return result}finally{Module[\"_sqlite3_free\"](vfsReturn)}}})();moduleRtn=readyPromise;\n\n\n return moduleRtn;\n}\n);\n})();\nexport default Module;\n","\nvar Module = (() => {\n var _scriptName = import.meta.url;\n \n return (\nfunction(moduleArg = {}) {\n var moduleRtn;\n\nvar Module=moduleArg;var readyPromiseResolve,readyPromiseReject;var readyPromise=new Promise((resolve,reject)=>{readyPromiseResolve=resolve;readyPromiseReject=reject});var ENVIRONMENT_IS_WEB=typeof window==\"object\";var ENVIRONMENT_IS_WORKER=typeof importScripts==\"function\";var ENVIRONMENT_IS_NODE=typeof process==\"object\"&&typeof process.versions==\"object\"&&typeof process.versions.node==\"string\";var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram=\"./this.program\";var quit_=(status,toThrow)=>{throw toThrow};var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary;if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=\"undefined\"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptName){scriptDirectory=_scriptName}if(scriptDirectory.startsWith(\"blob:\")){scriptDirectory=\"\"}else{scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,\"\").lastIndexOf(\"/\")+1)}{read_=url=>{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=(url,onload,onerror)=>{fetch(url,{credentials:\"same-origin\"}).then(response=>{if(response.ok){return response.arrayBuffer()}return Promise.reject(new Error(response.status+\" : \"+response.url))}).then(onload,onerror)}}}else{}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.error.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var wasmMemory;var ABORT=false;var EXITSTATUS;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateMemoryViews(){var b=wasmMemory.buffer;Module[\"HEAP8\"]=HEAP8=new Int8Array(b);Module[\"HEAP16\"]=HEAP16=new Int16Array(b);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(b);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(b);Module[\"HEAP32\"]=HEAP32=new Int32Array(b);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(b);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(b);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(b)}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module[\"noFSInit\"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;Module[\"monitorRunDependencies\"]?.(runDependencies)}function removeRunDependency(id){runDependencies--;Module[\"monitorRunDependencies\"]?.(runDependencies);if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){Module[\"onAbort\"]?.(what);what=\"Aborted(\"+what+\")\";err(what);ABORT=true;EXITSTATUS=1;what+=\". Build with -sASSERTIONS for more info.\";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix=\"data:application/octet-stream;base64,\";var isDataURI=filename=>filename.startsWith(dataURIPrefix);function findWasmBinary(){if(Module[\"locateFile\"]){var f=\"wa-sqlite.wasm\";if(!isDataURI(f)){return locateFile(f)}return f}return new URL(\"wa-sqlite.wasm\",import.meta.url).href}var wasmBinaryFile;function getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw\"both async and sync fetching of the wasm failed\"}function getBinaryPromise(binaryFile){if(!wasmBinary){return new Promise((resolve,reject)=>{readAsync(binaryFile,response=>resolve(new Uint8Array(response)),error=>{try{resolve(getBinarySync(binaryFile))}catch(e){reject(e)}})})}return Promise.resolve().then(()=>getBinarySync(binaryFile))}function instantiateArrayBuffer(binaryFile,imports,receiver){return getBinaryPromise(binaryFile).then(binary=>WebAssembly.instantiate(binary,imports)).then(receiver,reason=>{err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)})}function instantiateAsync(binary,binaryFile,imports,callback){if(!binary&&typeof WebAssembly.instantiateStreaming==\"function\"&&!isDataURI(binaryFile)&&typeof fetch==\"function\"){return fetch(binaryFile,{credentials:\"same-origin\"}).then(response=>{var result=WebAssembly.instantiateStreaming(response,imports);return result.then(callback,function(reason){err(`wasm streaming compile failed: ${reason}`);err(\"falling back to ArrayBuffer instantiation\");return instantiateArrayBuffer(binaryFile,imports,callback)})})}return instantiateArrayBuffer(binaryFile,imports,callback)}function getWasmImports(){return{a:wasmImports}}function createWasm(){var info=getWasmImports();function receiveInstance(instance,module){wasmExports=instance.exports;wasmMemory=wasmExports[\"la\"];updateMemoryViews();wasmTable=wasmExports[\"ef\"];addOnInit(wasmExports[\"ma\"]);removeRunDependency(\"wasm-instantiate\");return wasmExports}addRunDependency(\"wasm-instantiate\");function receiveInstantiationResult(result){receiveInstance(result[\"instance\"])}if(Module[\"instantiateWasm\"]){try{return Module[\"instantiateWasm\"](info,receiveInstance)}catch(e){err(`Module.instantiateWasm callback failed with error: ${e}`);readyPromiseReject(e)}}if(!wasmBinaryFile)wasmBinaryFile=findWasmBinary();instantiateAsync(wasmBinary,wasmBinaryFile,info,receiveInstantiationResult).catch(readyPromiseReject);return{}}var tempDouble;var tempI64;function ExitStatus(status){this.name=\"ExitStatus\";this.message=`Program terminated with exit(${status})`;this.status=status}var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};function getValue(ptr,type=\"i8\"){if(type.endsWith(\"*\"))type=\"*\";switch(type){case\"i1\":return HEAP8[ptr];case\"i8\":return HEAP8[ptr];case\"i16\":return HEAP16[ptr>>1];case\"i32\":return HEAP32[ptr>>2];case\"i64\":abort(\"to do getValue(i64) use WASM_BIGINT\");case\"float\":return HEAPF32[ptr>>2];case\"double\":return HEAPF64[ptr>>3];case\"*\":return HEAPU32[ptr>>2];default:abort(`invalid type for getValue: ${type}`)}}var noExitRuntime=Module[\"noExitRuntime\"]||true;function setValue(ptr,value,type=\"i8\"){if(type.endsWith(\"*\"))type=\"*\";switch(type){case\"i1\":HEAP8[ptr]=value;break;case\"i8\":HEAP8[ptr]=value;break;case\"i16\":HEAP16[ptr>>1]=value;break;case\"i32\":HEAP32[ptr>>2]=value;break;case\"i64\":abort(\"to do setValue(i64) use WASM_BIGINT\");case\"float\":HEAPF32[ptr>>2]=value;break;case\"double\":HEAPF64[ptr>>3]=value;break;case\"*\":HEAPU32[ptr>>2]=value;break;default:abort(`invalid type for setValue: ${type}`)}}var stackRestore=val=>__emscripten_stack_restore(val);var stackSave=()=>_emscripten_stack_get_current();var UTF8Decoder=typeof TextDecoder!=\"undefined\"?new TextDecoder(\"utf8\"):undefined;var UTF8ArrayToString=(heapOrArray,idx,maxBytesToRead)=>{var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str=\"\";while(idx<endPtr){var u0=heapOrArray[idx++];if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heapOrArray[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heapOrArray[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heapOrArray[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str};var UTF8ToString=(ptr,maxBytesToRead)=>ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):\"\";var ___assert_fail=(condition,filename,line,func)=>{abort(`Assertion failed: ${UTF8ToString(condition)}, at: `+[filename?UTF8ToString(filename):\"unknown filename\",line,func?UTF8ToString(func):\"unknown function\"])};var PATH={isAbs:path=>path.charAt(0)===\"/\",splitPath:filename=>{var splitPathRe=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:(parts,allowAboveRoot)=>{var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last===\".\"){parts.splice(i,1)}else if(last===\"..\"){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift(\"..\")}}return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.substr(-1)===\"/\";path=PATH.normalizeArray(path.split(\"/\").filter(p=>!!p),!isAbsolute).join(\"/\");if(!path&&!isAbsolute){path=\".\"}if(path&&trailingSlash){path+=\"/\"}return(isAbsolute?\"/\":\"\")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return\".\"}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:path=>{if(path===\"/\")return\"/\";path=PATH.normalize(path);path=path.replace(/\\/$/,\"\");var lastSlash=path.lastIndexOf(\"/\");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},join:(...paths)=>PATH.normalize(paths.join(\"/\")),join2:(l,r)=>PATH.normalize(l+\"/\"+r)};var initRandomFill=()=>{if(typeof crypto==\"object\"&&typeof crypto[\"getRandomValues\"]==\"function\"){return view=>crypto.getRandomValues(view)}else abort(\"initRandomDevice\")};var randomFill=view=>(randomFill=initRandomFill())(view);var PATH_FS={resolve:(...args)=>{var resolvedPath=\"\",resolvedAbsolute=false;for(var i=args.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?args[i]:FS.cwd();if(typeof path!=\"string\"){throw new TypeError(\"Arguments to path.resolve must be strings\")}else if(!path){return\"\"}resolvedPath=path+\"/\"+resolvedPath;resolvedAbsolute=PATH.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split(\"/\").filter(p=>!!p),!resolvedAbsolute).join(\"/\");return(resolvedAbsolute?\"/\":\"\")+resolvedPath||\".\"},relative:(from,to)=>{from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start<arr.length;start++){if(arr[start]!==\"\")break}var end=arr.length-1;for(;end>=0;end--){if(arr[end]!==\"\")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split(\"/\"));var toParts=trim(to.split(\"/\"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i<length;i++){if(fromParts[i]!==toParts[i]){samePartsLength=i;break}}var outputParts=[];for(var i=samePartsLength;i<fromParts.length;i++){outputParts.push(\"..\")}outputParts=outputParts.concat(toParts.slice(samePartsLength));return outputParts.join(\"/\")}};var FS_stdin_getChar_buffer=[];var lengthBytesUTF8=str=>{var len=0;for(var i=0;i<str.length;++i){var c=str.charCodeAt(i);if(c<=127){len++}else if(c<=2047){len+=2}else if(c>=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var 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 intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var FS_stdin_getChar=()=>{if(!FS_stdin_getChar_buffer.length){var result=null;if(typeof window!=\"undefined\"&&typeof window.prompt==\"function\"){result=window.prompt(\"Input: \");if(result!==null){result+=\"\\n\"}}else{}if(!result){return null}FS_stdin_getChar_buffer=intArrayFromString(result,true)}return FS_stdin_getChar_buffer.shift()};var TTY={ttys:[],init(){},shutdown(){},register(dev,ops){TTY.ttys[dev]={input:[],output:[],ops:ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},close(stream){stream.tty.ops.fsync(stream.tty)},fsync(stream){stream.tty.ops.fsync(stream.tty)},read(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(60)}var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=stream.tty.ops.get_char(stream.tty)}catch(e){throw new FS.ErrnoError(29)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(6)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}if(bytesRead){stream.node.timestamp=Date.now()}return bytesRead},write(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.put_char){throw new FS.ErrnoError(60)}try{for(var i=0;i<length;i++){stream.tty.ops.put_char(stream.tty,buffer[offset+i])}}catch(e){throw new FS.ErrnoError(29)}if(length){stream.node.timestamp=Date.now()}return i}},default_tty_ops:{get_char(tty){return FS_stdin_getChar()},put_char(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}},ioctl_tcgets(tty){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(tty,optional_actions,data){return 0},ioctl_tiocgwinsz(tty){return[24,80]}},default_tty1_ops:{put_char(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};var zeroMemory=(address,size)=>{HEAPU8.fill(0,address,address+size);return address};var alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;var mmapAlloc=size=>{size=alignMemory(size,65536);var ptr=_emscripten_builtin_memalign(65536,size);if(!ptr)return 0;return zeroMemory(ptr,size)};var MEMFS={ops_table:null,mount(mount){return MEMFS.createNode(null,\"/\",16384|511,0)},createNode(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}MEMFS.ops_table||={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}};var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity<CAPACITY_DOUBLING_MAX?2:1.125)>>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup(parent,name){throw FS.genericErrors[44]},mknod(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp},unlink(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir(node){var entries=[\".\",\"..\"];for(var key of Object.keys(node.contents)){entries.push(key)}return entries},symlink(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i<size;i++)buffer[offset+i]=contents[position+i]}return size},write(stream,buffer,offset,length,position,canOwn){if(buffer.buffer===HEAP8.buffer){canOwn=false}if(!length)return 0;var node=stream.node;node.timestamp=Date.now();if(buffer.subarray&&(!node.contents||node.contents.subarray)){if(canOwn){node.contents=buffer.subarray(offset,offset+length);node.usedBytes=length;return length}else if(node.usedBytes===0&&position===0){node.contents=buffer.slice(offset,offset+length);node.usedBytes=length;return length}else if(position+length<=node.usedBytes){node.contents.set(buffer.subarray(offset,offset+length),position);return length}}MEMFS.expandFileStorage(node,position+length);if(node.contents.subarray&&buffer.subarray){node.contents.set(buffer.subarray(offset,offset+length),position)}else{for(var i=0;i<length;i++){node.contents[position+i]=buffer[offset+i]}}node.usedBytes=Math.max(node.usedBytes,position+length);return length},llseek(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.usedBytes}}if(position<0){throw new FS.ErrnoError(28)}return position},allocate(stream,offset,length){MEMFS.expandFileStorage(stream.node,offset+length);stream.node.usedBytes=Math.max(stream.node.usedBytes,offset+length)},mmap(stream,length,position,prot,flags){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}var ptr;var allocated;var contents=stream.node.contents;if(!(flags&2)&&contents.buffer===HEAP8.buffer){allocated=false;ptr=contents.byteOffset}else{if(position>0||position+length<contents.length){if(contents.subarray){contents=contents.subarray(position,position+length)}else{contents=Array.prototype.slice.call(contents,position,position+length)}}allocated=true;ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}HEAP8.set(contents,ptr)}return{ptr:ptr,allocated:allocated}},msync(stream,buffer,offset,length,mmapFlags){MEMFS.stream_ops.write(stream,buffer,0,length,offset,false);return 0}}};var asyncLoad=(url,onload,onerror,noRunDep)=>{var dep=!noRunDep?getUniqueRunDependency(`al ${url}`):\"\";readAsync(url,arrayBuffer=>{onload(new Uint8Array(arrayBuffer));if(dep)removeRunDependency(dep)},event=>{if(onerror){onerror()}else{throw`Loading data file \"${url}\" failed.`}});if(dep)addRunDependency(dep)};var FS_createDataFile=(parent,name,fileData,canRead,canWrite,canOwn)=>{FS.createDataFile(parent,name,fileData,canRead,canWrite,canOwn)};var preloadPlugins=Module[\"preloadPlugins\"]||[];var FS_handledByPreloadPlugin=(byteArray,fullname,finish,onerror)=>{if(typeof Browser!=\"undefined\")Browser.init();var handled=false;preloadPlugins.forEach(plugin=>{if(handled)return;if(plugin[\"canHandle\"](fullname)){plugin[\"handle\"](byteArray,fullname,finish,onerror);handled=true}});return handled};var FS_createPreloadedFile=(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)=>{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency(`cp ${fullname}`);function processData(byteArray){function finish(byteArray){preFinish?.();if(!dontCreateFile){FS_createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}onload?.();removeRunDependency(dep)}if(FS_handledByPreloadPlugin(byteArray,fullname,finish,()=>{onerror?.();removeRunDependency(dep)})){return}finish(byteArray)}addRunDependency(dep);if(typeof url==\"string\"){asyncLoad(url,processData,onerror)}else{processData(url)}};var FS_modeStringToFlags=str=>{var flagModes={r:0,\"r+\":2,w:512|64|1,\"w+\":512|64|2,a:1024|64|1,\"a+\":1024|64|2};var flags=flagModes[str];if(typeof flags==\"undefined\"){throw new Error(`Unknown file open mode: ${str}`)}return flags};var FS_getMode=(canRead,canWrite)=>{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode};var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:\"/\",initialized:false,ignorePermissions:true,ErrnoError:class{constructor(errno){this.name=\"ErrnoError\";this.errno=errno}},genericErrors:{},filesystems:null,syncFSRequests:0,FSStream:class{constructor(){this.shared={}}get object(){return this.node}set object(val){this.node=val}get isRead(){return(this.flags&2097155)!==1}get isWrite(){return(this.flags&2097155)!==0}get isAppend(){return this.flags&1024}get flags(){return this.shared.flags}set flags(val){this.shared.flags=val}get position(){return this.shared.position}set position(val){this.shared.position=val}},FSNode:class{constructor(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev;this.readMode=292|73;this.writeMode=146}get read(){return(this.mode&this.readMode)===this.readMode}set read(val){val?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(val){val?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return FS.isDir(this.mode)}get isDevice(){return FS.isChrdev(this.mode)}},lookupPath(path,opts={}){path=PATH_FS.resolve(path);if(!path)return{path:\"\",node:null};var defaults={follow_mount:true,recurse_count:0};opts=Object.assign(defaults,opts);if(opts.recurse_count>8){throw new FS.ErrnoError(32)}var parts=path.split(\"/\").filter(p=>!!p);var current=FS.root;var current_path=\"/\";for(var i=0;i<parts.length;i++){var islast=i===parts.length-1;if(islast&&opts.parent){break}current=FS.lookupNode(current,parts[i]);current_path=PATH.join2(current_path,parts[i]);if(FS.isMountpoint(current)){if(!islast||islast&&opts.follow_mount){current=current.mounted.root}}if(!islast||opts.follow){var count=0;while(FS.isLink(current.mode)){var link=FS.readlink(current_path);current_path=PATH_FS.resolve(PATH.dirname(current_path),link);var lookup=FS.lookupPath(current_path,{recurse_count:opts.recurse_count+1});current=lookup.node;if(count++>40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!==\"/\"?`${mount}/${path}`:mount+path}path=path?`${node.name}/${path}`:node.name;node=node.parent}},hashName(parentid,name){var hash=0;for(var i=0;i<name.length;i++){hash=(hash<<5)-hash+name.charCodeAt(i)|0}return(parentid+hash>>>0)%FS.nameTable.length},hashAddNode(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode(node){FS.hashRemoveNode(node)},isRoot(node){return node===node.parent},isMountpoint(node){return!!node.mounted},isFile(mode){return(mode&61440)===32768},isDir(mode){return(mode&61440)===16384},isLink(mode){return(mode&61440)===40960},isChrdev(mode){return(mode&61440)===8192},isBlkdev(mode){return(mode&61440)===24576},isFIFO(mode){return(mode&61440)===4096},isSocket(mode){return(mode&49152)===49152},flagsToPermissionString(flag){var perms=[\"r\",\"w\",\"rw\"][flag&3];if(flag&512){perms+=\"w\"}return perms},nodePermissions(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes(\"r\")&&!(node.mode&292)){return 2}else if(perms.includes(\"w\")&&!(node.mode&146)){return 2}else if(perms.includes(\"x\")&&!(node.mode&73)){return 2}return 0},mayLookup(dir){if(!FS.isDir(dir.mode))return 54;var errCode=FS.nodePermissions(dir,\"x\");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,\"wx\")},mayDelete(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,\"wx\");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!==\"r\"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd(){for(var fd=0;fd<=FS.MAX_OPEN_FDS;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStreamChecked(fd){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}return stream},getStream:fd=>FS.streams[fd],createStream(stream,fd=-1){stream=Object.assign(new FS.FSStream,stream);if(fd==-1){fd=FS.nextfd()}stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream(fd){FS.streams[fd]=null},dupStream(origStream,fd=-1){var stream=FS.createStream(origStream,fd);stream.stream_ops?.dup?.(stream);return stream},chrdev_stream_ops:{open(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;stream.stream_ops.open?.(stream)},llseek(){throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push(...m.mounts)}return mounts},syncfs(populate,callback){if(typeof populate==\"function\"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err(`warning: ${FS.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`)}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(mount=>{if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount(type,opts,mountpoint){var root=mountpoint===\"/\";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(hash=>{var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup(parent,name){return parent.node_ops.lookup(parent,name)},mknod(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name===\".\"||name===\"..\"){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree(path,mode){var dirs=path.split(\"/\");var d=\"\";for(var i=0;i<dirs.length;++i){if(!dirs[i])continue;d+=\"/\"+dirs[i];try{FS.mkdir(d,mode)}catch(e){if(e.errno!=20)throw e}}},mkdev(path,mode,dev){if(typeof dev==\"undefined\"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)},symlink(oldpath,newpath){if(!PATH_FS.resolve(oldpath)){throw new FS.ErrnoError(44)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var newname=PATH.basename(newpath);var errCode=FS.mayCreate(parent,newname);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(63)}return parent.node_ops.symlink(parent,newname,oldpath)},rename(old_path,new_path){var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node;if(!old_dir||!new_dir)throw new FS.ErrnoError(44);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(75)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH_FS.relative(old_path,new_dirname);if(relative.charAt(0)!==\".\"){throw new FS.ErrnoError(28)}relative=PATH_FS.relative(new_path,old_dirname);if(relative.charAt(0)!==\".\"){throw new FS.ErrnoError(55)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var errCode=FS.mayDelete(old_dir,old_name,isdir);if(errCode){throw new FS.ErrnoError(errCode)}errCode=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(errCode){throw new FS.ErrnoError(errCode)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(63)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(10)}if(new_dir!==old_dir){errCode=FS.nodePermissions(old_dir,\"w\");if(errCode){throw new FS.ErrnoError(errCode)}}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name);old_node.parent=new_dir}catch(e){throw e}finally{FS.hashAddNode(old_node)}},rmdir(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,true);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node)},readdir(path){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node.node_ops.readdir){throw new FS.ErrnoError(54)}return node.node_ops.readdir(node)},unlink(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,false);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.unlink(parent,name);FS.destroyNode(node)},readlink(path){var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(44)}if(!link.node_ops.readlink){throw new FS.ErrnoError(28)}return PATH_FS.resolve(FS.getPath(link.parent),link.node_ops.readlink(link))},stat(path,dontFollow){var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;if(!node){throw new FS.ErrnoError(44)}if(!node.node_ops.getattr){throw new FS.ErrnoError(63)}return node.node_ops.getattr(node)},lstat(path){return FS.stat(path,true)},chmod(path,mode,dontFollow){var node;if(typeof path==\"string\"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{mode:mode&4095|node.mode&~4095,timestamp:Date.now()})},lchmod(path,mode){FS.chmod(path,mode,true)},fchmod(fd,mode){var stream=FS.getStreamChecked(fd);FS.chmod(stream.node,mode)},chown(path,uid,gid,dontFollow){var node;if(typeof path==\"string\"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{timestamp:Date.now()})},lchown(path,uid,gid){FS.chown(path,uid,gid,true)},fchown(fd,uid,gid){var stream=FS.getStreamChecked(fd);FS.chown(stream.node,uid,gid)},truncate(path,len){if(len<0){throw new FS.ErrnoError(28)}var node;if(typeof path==\"string\"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}if(FS.isDir(node.mode)){throw new FS.ErrnoError(31)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(28)}var errCode=FS.nodePermissions(node,\"w\");if(errCode){throw new FS.ErrnoError(errCode)}node.node_ops.setattr(node,{size:len,timestamp:Date.now()})},ftruncate(fd,len){var stream=FS.getStreamChecked(fd);if((stream.flags&2097155)===0){throw new FS.ErrnoError(28)}FS.truncate(stream.node,len)},utime(path,atime,mtime){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;node.node_ops.setattr(node,{timestamp:Math.max(atime,mtime)})},open(path,flags,mode){if(path===\"\"){throw new FS.ErrnoError(44)}flags=typeof flags==\"string\"?FS_modeStringToFlags(flags):flags;if(flags&64){mode=typeof mode==\"undefined\"?438:mode;mode=mode&4095|32768}else{mode=0}var node;if(typeof path==\"object\"){node=path}else{path=PATH.normalize(path);try{var lookup=FS.lookupPath(path,{follow:!(flags&131072)});node=lookup.node}catch(e){}}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(20)}}else{node=FS.mknod(path,mode,0);created=true}}if(!node){throw new FS.ErrnoError(44)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}if(!created){var errCode=FS.mayOpen(node,flags);if(errCode){throw new FS.ErrnoError(errCode)}}if(flags&512&&!created){FS.truncate(node,0)}flags&=~(128|512|131072);var stream=FS.createStream({node:node,path:FS.getPath(node),flags:flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false});if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(Module[\"logReadFiles\"]&&!(flags&1)){if(!FS.readFiles)FS.readFiles={};if(!(path in FS.readFiles)){FS.readFiles[path]=1}}return stream},close(stream){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}stream.fd=null},isClosed(stream){return stream.fd===null},llseek(stream,offset,whence){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(70)}if(whence!=0&&whence!=1&&whence!=2){throw new FS.ErrnoError(28)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position},read(stream,buffer,offset,length,position){if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.read){throw new FS.ErrnoError(28)}var seeking=typeof position!=\"undefined\";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead},write(stream,buffer,offset,length,position,canOwn){if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.write){throw new FS.ErrnoError(28)}if(stream.seekable&&stream.flags&1024){FS.llseek(stream,0,2)}var seeking=typeof position!=\"undefined\";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;return bytesWritten},allocate(stream,offset,length){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(offset<0||length<=0){throw new FS.ErrnoError(28)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(!FS.isFile(stream.node.mode)&&!FS.isDir(stream.node.mode)){throw new FS.ErrnoError(43)}if(!stream.stream_ops.allocate){throw new FS.ErrnoError(138)}stream.stream_ops.allocate(stream,offset,length)},mmap(stream,length,position,prot,flags){if((prot&2)!==0&&(flags&2)===0&&(stream.flags&2097155)!==2){throw new FS.ErrnoError(2)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(2)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(43)}return stream.stream_ops.mmap(stream,length,position,prot,flags)},msync(stream,buffer,offset,length,mmapFlags){if(!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)},ioctl(stream,cmd,arg){if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(59)}return stream.stream_ops.ioctl(stream,cmd,arg)},readFile(path,opts={}){opts.flags=opts.flags||0;opts.encoding=opts.encoding||\"binary\";if(opts.encoding!==\"utf8\"&&opts.encoding!==\"binary\"){throw new Error(`Invalid encoding type \"${opts.encoding}\"`)}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding===\"utf8\"){ret=UTF8ArrayToString(buf,0)}else if(opts.encoding===\"binary\"){ret=buf}FS.close(stream);return ret},writeFile(path,data,opts={}){opts.flags=opts.flags||577;var stream=FS.open(path,opts.flags,opts.mode);if(typeof data==\"string\"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,undefined,opts.canOwn)}else if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn)}else{throw new Error(\"Unsupported data type\")}FS.close(stream)},cwd:()=>FS.currentPath,chdir(path){var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,\"x\");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories(){FS.mkdir(\"/tmp\");FS.mkdir(\"/home\");FS.mkdir(\"/home/web_user\")},createDefaultDevices(){FS.mkdir(\"/dev\");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length});FS.mkdev(\"/dev/null\",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev(\"/dev/tty\",FS.makedev(5,0));FS.mkdev(\"/dev/tty1\",FS.makedev(6,0));var randomBuffer=new Uint8Array(1024),randomLeft=0;var randomByte=()=>{if(randomLeft===0){randomLeft=randomFill(randomBuffer).byteLength}return randomBuffer[--randomLeft]};FS.createDevice(\"/dev\",\"random\",randomByte);FS.createDevice(\"/dev\",\"urandom\",randomByte);FS.mkdir(\"/dev/shm\");FS.mkdir(\"/dev/shm/tmp\")},createSpecialDirectories(){FS.mkdir(\"/proc\");var proc_self=FS.mkdir(\"/proc/self\");FS.mkdir(\"/proc/self/fd\");FS.mount({mount(){var node=FS.createNode(proc_self,\"fd\",16384|511,73);node.node_ops={lookup(parent,name){var fd=+name;var stream=FS.getStreamChecked(fd);var ret={parent:null,mount:{mountpoint:\"fake\"},node_ops:{readlink:()=>stream.path}};ret.parent=ret;return ret}};return node}},{},\"/proc/self/fd\")},createStandardStreams(){if(Module[\"stdin\"]){FS.createDevice(\"/dev\",\"stdin\",Module[\"stdin\"])}else{FS.symlink(\"/dev/tty\",\"/dev/stdin\")}if(Module[\"stdout\"]){FS.createDevice(\"/dev\",\"stdout\",null,Module[\"stdout\"])}else{FS.symlink(\"/dev/tty\",\"/dev/stdout\")}if(Module[\"stderr\"]){FS.createDevice(\"/dev\",\"stderr\",null,Module[\"stderr\"])}else{FS.symlink(\"/dev/tty1\",\"/dev/stderr\")}var stdin=FS.open(\"/dev/stdin\",0);var stdout=FS.open(\"/dev/stdout\",1);var stderr=FS.open(\"/dev/stderr\",1)},staticInit(){[44].forEach(code=>{FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack=\"<generic error, no stack>\"});FS.nameTable=new Array(4096);FS.mount(MEMFS,{},\"/\");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={MEMFS:MEMFS}},init(input,output,error){FS.init.initialized=true;Module[\"stdin\"]=input||Module[\"stdin\"];Module[\"stdout\"]=output||Module[\"stdout\"];Module[\"stderr\"]=error||Module[\"stderr\"];FS.createStandardStreams()},quit(){FS.init.initialized=false;for(var i=0;i<FS.streams.length;i++){var stream=FS.streams[i];if(!stream){continue}FS.close(stream)}},findObject(path,dontResolveLastLink){var ret=FS.analyzePath(path,dontResolveLastLink);if(!ret.exists){return null}return ret.object},analyzePath(path,dontResolveLastLink){try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path===\"/\"}catch(e){ret.error=e.errno}return ret},createPath(parent,path,canRead,canWrite){parent=typeof parent==\"string\"?parent:FS.getPath(parent);var parts=path.split(\"/\").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){}parent=current}return current},createFile(parent,name,properties,canRead,canWrite){var path=PATH.join2(typeof parent==\"string\"?parent:FS.getPath(parent),name);var mode=FS_getMode(canRead,canWrite);return FS.create(path,mode)},createDataFile(parent,name,data,canRead,canWrite,canOwn){var path=name;if(parent){parent=typeof parent==\"string\"?parent:FS.getPath(parent);path=name?PATH.join2(parent,name):parent}var mode=FS_getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data==\"string\"){var arr=new Array(data.length);for(var i=0,len=data.length;i<len;++i)arr[i]=data.charCodeAt(i);data=arr}FS.chmod(node,mode|146);var stream=FS.open(node,577);FS.write(stream,data,0,data.length,0,canOwn);FS.close(stream);FS.chmod(node,mode)}},createDevice(parent,name,input,output){var path=PATH.join2(typeof parent==\"string\"?parent:FS.getPath(parent),name);var mode=FS_getMode(!!input,!!output);if(!FS.createDevice.major)FS.createDevice.major=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{open(stream){stream.seekable=false},close(stream){if(output?.buffer?.length){output(10)}},read(stream,buffer,offset,length,pos){var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=input()}catch(e){throw new FS.ErrnoError(29)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(6)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}if(bytesRead){stream.node.timestamp=Date.now()}return bytesRead},write(stream,buffer,offset,length,pos){for(var i=0;i<length;i++){try{output(buffer[offset+i])}catch(e){throw new FS.ErrnoError(29)}}if(length){stream.node.timestamp=Date.now()}return i}});return FS.mkdev(path,mode,dev)},forceLoadFile(obj){if(obj.isDevice||obj.isFolder||obj.link||obj.contents)return true;if(typeof XMLHttpRequest!=\"undefined\"){throw new Error(\"Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.\")}else if(read_){try{obj.contents=intArrayFromString(read_(obj.url),true);obj.usedBytes=obj.contents.length}catch(e){throw new FS.ErrnoError(29)}}else{throw new Error(\"Cannot load without read() or XMLHttpRequest.\")}},createLazyFile(parent,name,url,canRead,canWrite){class LazyUint8Array{constructor(){this.lengthKnown=false;this.chunks=[]}get(idx){if(idx>this.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]}setDataGetter(getter){this.getter=getter}cacheLength(){var xhr=new XMLHttpRequest;xhr.open(\"HEAD\",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error(\"Couldn't load \"+url+\". Status: \"+xhr.status);var datalength=Number(xhr.getResponseHeader(\"Content-length\"));var header;var hasByteServing=(header=xhr.getResponseHeader(\"Accept-Ranges\"))&&header===\"bytes\";var usesGzip=(header=xhr.getResponseHeader(\"Content-Encoding\"))&&header===\"gzip\";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)throw new Error(\"invalid range (\"+from+\", \"+to+\") or no bytes requested!\");if(to>datalength-1)throw new Error(\"only \"+datalength+\" bytes available! programmer error!\");var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);if(datalength!==chunkSize)xhr.setRequestHeader(\"Range\",\"bytes=\"+from+\"-\"+to);xhr.responseType=\"arraybuffer\";if(xhr.overrideMimeType){xhr.overrideMimeType(\"text/plain; charset=x-user-defined\")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error(\"Couldn't load \"+url+\". Status: \"+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}return intArrayFromString(xhr.responseText||\"\",true)};var lazyArray=this;lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==\"undefined\"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==\"undefined\")throw new Error(\"doXHR failed!\");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out(\"LazyFiles on gzip forces download of the whole file when length is accessed\")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true}get length(){if(!this.lengthKnown){this.cacheLength()}return this._length}get chunkSize(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}if(typeof XMLHttpRequest!=\"undefined\"){if(!ENVIRONMENT_IS_WORKER)throw\"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc\";var lazyArray=new LazyUint8Array;var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(key=>{var fn=node.stream_ops[key];stream_ops[key]=(...args)=>{FS.forceLoadFile(node);return fn(...args)}});function writeChunks(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i<size;i++){buffer[offset+i]=contents[position+i]}}else{for(var i=0;i<size;i++){buffer[offset+i]=contents.get(position+i)}}return size}stream_ops.read=(stream,buffer,offset,length,position)=>{FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position)};stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);var ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}writeChunks(stream,HEAP8,ptr,length,position);return{ptr:ptr,allocated:true}};node.stream_ops=stream_ops;return node}};var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=SYSCALLS.getStreamFromFD(dirfd);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return PATH.join2(dir,path)},doStat(func,path,buf){var stat=func(path);HEAP32[buf>>2]=stat.dev;HEAP32[buf+4>>2]=stat.mode;HEAPU32[buf+8>>2]=stat.nlink;HEAP32[buf+12>>2]=stat.uid;HEAP32[buf+16>>2]=stat.gid;HEAP32[buf+20>>2]=stat.rdev;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+24>>2]=tempI64[0],HEAP32[buf+28>>2]=tempI64[1];HEAP32[buf+32>>2]=4096;HEAP32[buf+36>>2]=stat.blocks;var atime=stat.atime.getTime();var mtime=stat.mtime.getTime();var ctime=stat.ctime.getTime();tempI64=[Math.floor(atime/1e3)>>>0,(tempDouble=Math.floor(atime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAPU32[buf+48>>2]=atime%1e3*1e3;tempI64=[Math.floor(mtime/1e3)>>>0,(tempDouble=Math.floor(mtime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+56>>2]=tempI64[0],HEAP32[buf+60>>2]=tempI64[1];HEAPU32[buf+64>>2]=mtime%1e3*1e3;tempI64=[Math.floor(ctime/1e3)>>>0,(tempDouble=Math.floor(ctime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+72>>2]=tempI64[0],HEAP32[buf+76>>2]=tempI64[1];HEAPU32[buf+80>>2]=ctime%1e3*1e3;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+88>>2]=tempI64[0],HEAP32[buf+92>>2]=tempI64[1];return 0},doMsync(addr,stream,len,flags,offset){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}if(flags&2){return 0}var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},getStreamFromFD(fd){var stream=FS.getStreamChecked(fd);return stream},varargs:undefined,getStr(ptr){var ret=UTF8ToString(ptr);return ret}};function ___syscall_chmod(path,mode){try{path=SYSCALLS.getStr(path);FS.chmod(path,mode);return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_faccessat(dirfd,path,amode,flags){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);if(amode&~7){return-28}var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node){return-44}var perms=\"\";if(amode&4)perms+=\"r\";if(amode&2)perms+=\"w\";if(amode&1)perms+=\"x\";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_fchmod(fd,mode){try{FS.fchmod(fd,mode);return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_fchown32(fd,owner,group){try{FS.fchown(fd,owner,group);return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function syscallGetVarargI(){var ret=HEAP32[+SYSCALLS.varargs>>2];SYSCALLS.varargs+=4;return ret}var syscallGetVarargP=syscallGetVarargI;function ___syscall_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=syscallGetVarargI();if(arg<0){return-28}while(FS.streams[arg]){arg++}var newStream;newStream=FS.dupStream(stream,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=syscallGetVarargI();stream.flags|=arg;return 0}case 12:{var arg=syscallGetVarargP();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0}return-28}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_fstat64(fd,buf){try{var stream=SYSCALLS.getStreamFromFD(fd);return SYSCALLS.doStat(FS.stat,stream.path,buf)}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}var convertI32PairToI53Checked=(lo,hi)=>hi+2097152>>>0<4194305-!!lo?(lo>>>0)+hi*4294967296:NaN;function ___syscall_ftruncate64(fd,length_low,length_high){var length=convertI32PairToI53Checked(length_low,length_high);try{if(isNaN(length))return 61;FS.ftruncate(fd,length);return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite);function ___syscall_getcwd(buf,size){try{if(size===0)return-28;var cwd=FS.cwd();var cwdLengthInBytes=lengthBytesUTF8(cwd)+1;if(size<cwdLengthInBytes)return-68;stringToUTF8(cwd,buf,size);return cwdLengthInBytes}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_lstat64(path,buf){try{path=SYSCALLS.getStr(path);return SYSCALLS.doStat(FS.lstat,path,buf)}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_mkdirat(dirfd,path,mode){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);path=PATH.normalize(path);if(path[path.length-1]===\"/\")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_newfstatat(dirfd,path,buf,flags){try{path=SYSCALLS.getStr(path);var nofollow=flags&256;var allowEmpty=flags&4096;flags=flags&~6400;path=SYSCALLS.calculateAt(dirfd,path,allowEmpty);return SYSCALLS.doStat(nofollow?FS.lstat:FS.stat,path,buf)}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_openat(dirfd,path,flags,varargs){SYSCALLS.varargs=varargs;try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);var mode=varargs?syscallGetVarargI():0;return FS.open(path,flags,mode).fd}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_readlinkat(dirfd,path,buf,bufsize){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_rmdir(path){try{path=SYSCALLS.getStr(path);FS.rmdir(path);return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_stat64(path,buf){try{path=SYSCALLS.getStr(path);return SYSCALLS.doStat(FS.stat,path,buf)}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_unlinkat(dirfd,path,flags){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);if(flags===0){FS.unlink(path)}else if(flags===512){FS.rmdir(path)}else{abort(\"Invalid flags passed to unlinkat\")}return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}var readI53FromI64=ptr=>HEAPU32[ptr>>2]+HEAP32[ptr+4>>2]*4294967296;function ___syscall_utimensat(dirfd,path,times,flags){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path,true);if(!times){var atime=Date.now();var mtime=atime}else{var seconds=readI53FromI64(times);var nanoseconds=HEAP32[times+8>>2];atime=seconds*1e3+nanoseconds/(1e3*1e3);times+=16;seconds=readI53FromI64(times);nanoseconds=HEAP32[times+8>>2];mtime=seconds*1e3+nanoseconds/(1e3*1e3)}FS.utime(path,atime,mtime);return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}var isLeapYear=year=>year%4===0&&(year%100!==0||year%400===0);var MONTH_DAYS_LEAP_CUMULATIVE=[0,31,60,91,121,152,182,213,244,274,305,335];var MONTH_DAYS_REGULAR_CUMULATIVE=[0,31,59,90,120,151,181,212,243,273,304,334];var ydayFromDate=date=>{var leap=isLeapYear(date.getFullYear());var monthDaysCumulative=leap?MONTH_DAYS_LEAP_CUMULATIVE:MONTH_DAYS_REGULAR_CUMULATIVE;var yday=monthDaysCumulative[date.getMonth()]+date.getDate()-1;return yday};function __localtime_js(time_low,time_high,tmPtr){var time=convertI32PairToI53Checked(time_low,time_high);var date=new Date(time*1e3);HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();HEAP32[tmPtr+20>>2]=date.getFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getDay();var yday=ydayFromDate(date)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr+36>>2]=-(date.getTimezoneOffset()*60);var start=new Date(date.getFullYear(),0,1);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;HEAP32[tmPtr+32>>2]=dst}function __mmap_js(len,prot,flags,fd,offset_low,offset_high,allocated,addr){var offset=convertI32PairToI53Checked(offset_low,offset_high);try{if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);var res=FS.mmap(stream,len,offset,prot,flags);var ptr=res.ptr;HEAP32[allocated>>2]=res.allocated;HEAPU32[addr>>2]=ptr;return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function __munmap_js(addr,len,prot,flags,fd,offset_low,offset_high){var offset=convertI32PairToI53Checked(offset_low,offset_high);try{var stream=SYSCALLS.getStreamFromFD(fd);if(prot&2){SYSCALLS.doMsync(addr,stream,len,flags,offset)}}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}var __tzset_js=(timezone,daylight,std_name,dst_name)=>{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);var extractZone=date=>date.toLocaleTimeString(undefined,{hour12:false,timeZoneName:\"short\"}).split(\" \")[1];var winterName=extractZone(winter);var summerName=extractZone(summer);if(summerOffset<winterOffset){stringToUTF8(winterName,std_name,17);stringToUTF8(summerName,dst_name,17)}else{stringToUTF8(winterName,dst_name,17);stringToUTF8(summerName,std_name,17)}};var _emscripten_date_now=()=>Date.now();var _emscripten_get_now;_emscripten_get_now=()=>performance.now();var getHeapMax=()=>2147483648;var growMemory=size=>{var b=wasmMemory.buffer;var pages=(size-b.byteLength+65535)/65536;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};var _emscripten_resize_heap=requestedSize=>{var oldSize=HEAPU8.length;requestedSize>>>=0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}var alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}return false};var ENV={};var getExecutableName=()=>thisProgram||\"./this.program\";var getEnvStrings=()=>{if(!getEnvStrings.strings){var lang=(typeof navigator==\"object\"&&navigator.languages&&navigator.languages[0]||\"C\").replace(\"-\",\"_\")+\".UTF-8\";var env={USER:\"web_user\",LOGNAME:\"web_user\",PATH:\"/\",PWD:\"/\",HOME:\"/home/web_user\",LANG:lang,_:getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(`${x}=${env[x]}`)}getEnvStrings.strings=strings}return getEnvStrings.strings};var stringToAscii=(str,buffer)=>{for(var i=0;i<str.length;++i){HEAP8[buffer++]=str.charCodeAt(i)}HEAP8[buffer]=0};var _environ_get=(__environ,environ_buf)=>{var bufSize=0;getEnvStrings().forEach((string,i)=>{var ptr=environ_buf+bufSize;HEAPU32[__environ+i*4>>2]=ptr;stringToAscii(string,ptr);bufSize+=string.length+1});return 0};var _environ_sizes_get=(penviron_count,penviron_buf_size)=>{var strings=getEnvStrings();HEAPU32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(string=>bufSize+=string.length+1);HEAPU32[penviron_buf_size>>2]=bufSize;return 0};function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return e.errno}}function _fd_fdstat_get(fd,pbuf){try{var rightsBase=0;var rightsInheriting=0;var flags=0;{var stream=SYSCALLS.getStreamFromFD(fd);var type=stream.tty?2:FS.isDir(stream.mode)?3:FS.isLink(stream.mode)?7:4}HEAP8[pbuf]=type;HEAP16[pbuf+2>>1]=flags;tempI64=[rightsBase>>>0,(tempDouble=rightsBase,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[pbuf+8>>2]=tempI64[0],HEAP32[pbuf+12>>2]=tempI64[1];tempI64=[rightsInheriting>>>0,(tempDouble=rightsInheriting,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[pbuf+16>>2]=tempI64[0],HEAP32[pbuf+20>>2]=tempI64[1];return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return e.errno}}var doReadv=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAPU32[iov>>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr<len)break;if(typeof offset!=\"undefined\"){offset+=curr}}return ret};function _fd_read(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doReadv(stream,iov,iovcnt);HEAPU32[pnum>>2]=num;return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){var offset=convertI32PairToI53Checked(offset_low,offset_high);try{if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return e.errno}}function _fd_sync(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);if(stream.stream_ops?.fsync){return stream.stream_ops.fsync(stream)}return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return e.errno}}var doWritev=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAPU32[iov>>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(typeof offset!=\"undefined\"){offset+=curr}}return ret};function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doWritev(stream,iov,iovcnt);HEAPU32[pnum>>2]=num;return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return e.errno}}var adapters_support=function(){const handleAsync=typeof Asyncify===\"object\"?Asyncify.handleAsync.bind(Asyncify):null;Module[\"handleAsync\"]=handleAsync;const targets=new Map;Module[\"setCallback\"]=(key,target)=>targets.set(key,target);Module[\"getCallback\"]=key=>targets.get(key);Module[\"deleteCallback\"]=key=>targets.delete(key);adapters_support=function(isAsync,key,...args){const receiver=targets.get(key);let methodName=null;const f=typeof receiver===\"function\"?receiver:receiver[methodName=UTF8ToString(args.shift())];if(isAsync){if(handleAsync){return handleAsync(()=>f.apply(receiver,args))}throw new Error(\"Synchronous WebAssembly cannot call async function\")}const result=f.apply(receiver,args);if(typeof result?.then==\"function\"){console.error(\"unexpected Promise\",f);throw new Error(`${methodName} unexpectedly returned a Promise`)}return result}};function _ipp(...args){return adapters_support(false,...args)}function _ipp_async(...args){return adapters_support(true,...args)}function _ippipppp(...args){return adapters_support(false,...args)}function _ippipppp_async(...args){return adapters_support(true,...args)}function _ippp(...args){return adapters_support(false,...args)}function _ippp_async(...args){return adapters_support(true,...args)}function _ipppi(...args){return adapters_support(false,...args)}function _ipppi_async(...args){return adapters_support(true,...args)}function _ipppiii(...args){return adapters_support(false,...args)}function _ipppiii_async(...args){return adapters_support(true,...args)}function _ipppiiip(...args){return adapters_support(false,...args)}function _ipppiiip_async(...args){return adapters_support(true,...args)}function _ipppip(...args){return adapters_support(false,...args)}function _ipppip_async(...args){return adapters_support(true,...args)}function _ipppj(...args){return adapters_support(false,...args)}function _ipppj_async(...args){return adapters_support(true,...args)}function _ipppp(...args){return adapters_support(false,...args)}function _ipppp_async(...args){return adapters_support(true,...args)}function _ippppi(...args){return adapters_support(false,...args)}function _ippppi_async(...args){return adapters_support(true,...args)}function _ippppij(...args){return adapters_support(false,...args)}function _ippppij_async(...args){return adapters_support(true,...args)}function _ippppip(...args){return adapters_support(false,...args)}function _ippppip_async(...args){return adapters_support(true,...args)}function _ipppppip(...args){return adapters_support(false,...args)}function _ipppppip_async(...args){return adapters_support(true,...args)}function _vppippii(...args){return adapters_support(false,...args)}function _vppippii_async(...args){return adapters_support(true,...args)}function _vppp(...args){return adapters_support(false,...args)}function _vppp_async(...args){return adapters_support(true,...args)}function _vpppip(...args){return adapters_support(false,...args)}function _vpppip_async(...args){return adapters_support(true,...args)}var runtimeKeepaliveCounter=0;var keepRuntimeAlive=()=>noExitRuntime||runtimeKeepaliveCounter>0;var _proc_exit=code=>{EXITSTATUS=code;if(!keepRuntimeAlive()){Module[\"onExit\"]?.(code);ABORT=true}quit_(code,new ExitStatus(code))};var exitJS=(status,implicit)=>{EXITSTATUS=status;_proc_exit(status)};var handleException=e=>{if(e instanceof ExitStatus||e==\"unwind\"){return EXITSTATUS}quit_(1,e)};var uleb128Encode=(n,target)=>{if(n<128){target.push(n)}else{target.push(n%128|128,n>>7)}};var sigToWasmTypes=sig=>{var typeNames={i:\"i32\",j:\"i64\",f:\"f32\",d:\"f64\",e:\"externref\",p:\"i32\"};var type={parameters:[],results:sig[0]==\"v\"?[]:[typeNames[sig[0]]]};for(var i=1;i<sig.length;++i){type.parameters.push(typeNames[sig[i]])}return type};var generateFuncType=(sig,target)=>{var sigRet=sig.slice(0,1);var sigParam=sig.slice(1);var typeCodes={i:127,p:127,j:126,f:125,d:124,e:111};target.push(96);uleb128Encode(sigParam.length,target);for(var i=0;i<sigParam.length;++i){target.push(typeCodes[sigParam[i]])}if(sigRet==\"v\"){target.push(0)}else{target.push(1,typeCodes[sigRet])}};var convertJsFunctionToWasm=(func,sig)=>{if(typeof WebAssembly.Function==\"function\"){return new WebAssembly.Function(sigToWasmTypes(sig),func)}var typeSectionBody=[1];generateFuncType(sig,typeSectionBody);var bytes=[0,97,115,109,1,0,0,0,1];uleb128Encode(typeSectionBody.length,bytes);bytes.push(...typeSectionBody);bytes.push(2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0);var module=new WebAssembly.Module(new Uint8Array(bytes));var instance=new WebAssembly.Instance(module,{e:{f:func}});var wrappedFunc=instance.exports[\"f\"];return wrappedFunc};var wasmTable;var getWasmTableEntry=funcPtr=>wasmTable.get(funcPtr);var updateTableMap=(offset,count)=>{if(functionsInTableMap){for(var i=offset;i<offset+count;i++){var item=getWasmTableEntry(i);if(item){functionsInTableMap.set(item,i)}}}};var functionsInTableMap;var getFunctionAddress=func=>{if(!functionsInTableMap){functionsInTableMap=new WeakMap;updateTableMap(0,wasmTable.length)}return functionsInTableMap.get(func)||0};var freeTableIndexes=[];var getEmptyTableSlot=()=>{if(freeTableIndexes.length){return freeTableIndexes.pop()}try{wasmTable.grow(1)}catch(err){if(!(err instanceof RangeError)){throw err}throw\"Unable to grow wasm table. Set ALLOW_TABLE_GROWTH.\"}return wasmTable.length-1};var setWasmTableEntry=(idx,func)=>wasmTable.set(idx,func);var addFunction=(func,sig)=>{var rtn=getFunctionAddress(func);if(rtn){return rtn}var ret=getEmptyTableSlot();try{setWasmTableEntry(ret,func)}catch(err){if(!(err instanceof TypeError)){throw err}var wrapped=convertJsFunctionToWasm(func,sig);setWasmTableEntry(ret,wrapped)}functionsInTableMap.set(func,ret);return ret};var getCFunc=ident=>{var func=Module[\"_\"+ident];return func};var writeArrayToMemory=(array,buffer)=>{HEAP8.set(array,buffer)};var stackAlloc=sz=>__emscripten_stack_alloc(sz);var stringToUTF8OnStack=str=>{var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8(str,ret,size);return ret};var ccall=(ident,returnType,argTypes,args,opts)=>{var toC={string:str=>{var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=stringToUTF8OnStack(str)}return ret},array:arr=>{var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\"){return UTF8ToString(ret)}if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i<args.length;i++){var converter=toC[argTypes[i]];if(converter){if(stack===0)stack=stackSave();cArgs[i]=converter(args[i])}else{cArgs[i]=args[i]}}}var ret=func(...cArgs);function onDone(ret){if(stack!==0)stackRestore(stack);return convertReturnValue(ret)}ret=onDone(ret);return ret};var cwrap=(ident,returnType,argTypes,opts)=>{var numericArgs=!argTypes||argTypes.every(type=>type===\"number\"||type===\"boolean\");var numericRet=returnType!==\"string\";if(numericRet&&numericArgs&&!opts){return getCFunc(ident)}return(...args)=>ccall(ident,returnType,argTypes,args,opts)};var getTempRet0=val=>__emscripten_tempret_get();var stringToUTF16=(str,outPtr,maxBytesToWrite)=>{maxBytesToWrite??=2147483647;if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite<str.length*2?maxBytesToWrite/2:str.length;for(var i=0;i<numCharsToWrite;++i){var codeUnit=str.charCodeAt(i);HEAP16[outPtr>>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr};var stringToUTF32=(str,outPtr,maxBytesToWrite)=>{maxBytesToWrite??=2147483647;if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i<str.length;++i){var codeUnit=str.charCodeAt(i);if(codeUnit>=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr};var AsciiToString=ptr=>{var str=\"\";while(1){var ch=HEAPU8[ptr++];if(!ch)return str;str+=String.fromCharCode(ch)}};var UTF16Decoder=typeof TextDecoder!=\"undefined\"?new TextDecoder(\"utf-16le\"):undefined;var UTF16ToString=(ptr,maxBytesToRead)=>{var endPtr=ptr;var idx=endPtr>>1;var maxIdx=idx+maxBytesToRead/2;while(!(idx>=maxIdx)&&HEAPU16[idx])++idx;endPtr=idx<<1;if(endPtr-ptr>32&&UTF16Decoder)return UTF16Decoder.decode(HEAPU8.subarray(ptr,endPtr));var str=\"\";for(var i=0;!(i>=maxBytesToRead/2);++i){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)break;str+=String.fromCharCode(codeUnit)}return str};var 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 intArrayToString(array){var ret=[];for(var i=0;i<array.length;i++){var chr=array[i];if(chr>255){chr&=255}ret.push(String.fromCharCode(chr))}return ret.join(\"\")}FS.createPreloadedFile=FS_createPreloadedFile;FS.staticInit();adapters_support();var wasmImports={a:___assert_fail,Y:___syscall_chmod,$:___syscall_faccessat,Z:___syscall_fchmod,X:___syscall_fchown32,b:___syscall_fcntl64,W:___syscall_fstat64,y:___syscall_ftruncate64,Q:___syscall_getcwd,U:___syscall_lstat64,N:___syscall_mkdirat,S:___syscall_newfstatat,M:___syscall_openat,K:___syscall_readlinkat,J:___syscall_rmdir,V:___syscall_stat64,G:___syscall_unlinkat,F:___syscall_utimensat,w:__localtime_js,u:__mmap_js,v:__munmap_js,H:__tzset_js,n:_emscripten_date_now,m:_emscripten_get_now,D:_emscripten_resize_heap,O:_environ_get,P:_environ_sizes_get,o:_fd_close,E:_fd_fdstat_get,L:_fd_read,x:_fd_seek,R:_fd_sync,I:_fd_write,s:_ipp,t:_ipp_async,ga:_ippipppp,ka:_ippipppp_async,i:_ippp,j:_ippp_async,c:_ipppi,d:_ipppi_async,ca:_ipppiii,da:_ipppiii_async,ea:_ipppiiip,fa:_ipppiiip_async,g:_ipppip,h:_ipppip_async,z:_ipppj,A:_ipppj_async,e:_ipppp,f:_ipppp_async,aa:_ippppi,ba:_ippppi_async,B:_ippppij,C:_ippppij_async,p:_ippppip,q:_ippppip_async,ha:_ipppppip,ia:_ipppppip_async,ja:_vppippii,r:_vppippii_async,k:_vppp,l:_vppp_async,T:_vpppip,_:_vpppip_async};var wasmExports=createWasm();var ___wasm_call_ctors=()=>(___wasm_call_ctors=wasmExports[\"ma\"])();var _sqlite3_status64=Module[\"_sqlite3_status64\"]=(a0,a1,a2,a3)=>(_sqlite3_status64=Module[\"_sqlite3_status64\"]=wasmExports[\"na\"])(a0,a1,a2,a3);var _sqlite3_status=Module[\"_sqlite3_status\"]=(a0,a1,a2,a3)=>(_sqlite3_status=Module[\"_sqlite3_status\"]=wasmExports[\"oa\"])(a0,a1,a2,a3);var _sqlite3_msize=Module[\"_sqlite3_msize\"]=a0=>(_sqlite3_msize=Module[\"_sqlite3_msize\"]=wasmExports[\"pa\"])(a0);var _sqlite3_db_status=Module[\"_sqlite3_db_status\"]=(a0,a1,a2,a3,a4)=>(_sqlite3_db_status=Module[\"_sqlite3_db_status\"]=wasmExports[\"qa\"])(a0,a1,a2,a3,a4);var _sqlite3_vfs_find=Module[\"_sqlite3_vfs_find\"]=a0=>(_sqlite3_vfs_find=Module[\"_sqlite3_vfs_find\"]=wasmExports[\"ra\"])(a0);var _sqlite3_vfs_register=Module[\"_sqlite3_vfs_register\"]=(a0,a1)=>(_sqlite3_vfs_register=Module[\"_sqlite3_vfs_register\"]=wasmExports[\"sa\"])(a0,a1);var _sqlite3_vfs_unregister=Module[\"_sqlite3_vfs_unregister\"]=a0=>(_sqlite3_vfs_unregister=Module[\"_sqlite3_vfs_unregister\"]=wasmExports[\"ta\"])(a0);var _sqlite3_release_memory=Module[\"_sqlite3_release_memory\"]=a0=>(_sqlite3_release_memory=Module[\"_sqlite3_release_memory\"]=wasmExports[\"ua\"])(a0);var _sqlite3_soft_heap_limit64=Module[\"_sqlite3_soft_heap_limit64\"]=(a0,a1)=>(_sqlite3_soft_heap_limit64=Module[\"_sqlite3_soft_heap_limit64\"]=wasmExports[\"va\"])(a0,a1);var _sqlite3_memory_used=Module[\"_sqlite3_memory_used\"]=()=>(_sqlite3_memory_used=Module[\"_sqlite3_memory_used\"]=wasmExports[\"wa\"])();var _sqlite3_hard_heap_limit64=Module[\"_sqlite3_hard_heap_limit64\"]=(a0,a1)=>(_sqlite3_hard_heap_limit64=Module[\"_sqlite3_hard_heap_limit64\"]=wasmExports[\"xa\"])(a0,a1);var _sqlite3_memory_highwater=Module[\"_sqlite3_memory_highwater\"]=a0=>(_sqlite3_memory_highwater=Module[\"_sqlite3_memory_highwater\"]=wasmExports[\"ya\"])(a0);var _sqlite3_malloc=Module[\"_sqlite3_malloc\"]=a0=>(_sqlite3_malloc=Module[\"_sqlite3_malloc\"]=wasmExports[\"za\"])(a0);var _sqlite3_malloc64=Module[\"_sqlite3_malloc64\"]=(a0,a1)=>(_sqlite3_malloc64=Module[\"_sqlite3_malloc64\"]=wasmExports[\"Aa\"])(a0,a1);var _sqlite3_free=Module[\"_sqlite3_free\"]=a0=>(_sqlite3_free=Module[\"_sqlite3_free\"]=wasmExports[\"Ba\"])(a0);var _sqlite3_realloc=Module[\"_sqlite3_realloc\"]=(a0,a1)=>(_sqlite3_realloc=Module[\"_sqlite3_realloc\"]=wasmExports[\"Ca\"])(a0,a1);var _sqlite3_realloc64=Module[\"_sqlite3_realloc64\"]=(a0,a1,a2)=>(_sqlite3_realloc64=Module[\"_sqlite3_realloc64\"]=wasmExports[\"Da\"])(a0,a1,a2);var _sqlite3_str_vappendf=Module[\"_sqlite3_str_vappendf\"]=(a0,a1,a2)=>(_sqlite3_str_vappendf=Module[\"_sqlite3_str_vappendf\"]=wasmExports[\"Ea\"])(a0,a1,a2);var _sqlite3_str_append=Module[\"_sqlite3_str_append\"]=(a0,a1,a2)=>(_sqlite3_str_append=Module[\"_sqlite3_str_append\"]=wasmExports[\"Fa\"])(a0,a1,a2);var _sqlite3_str_appendchar=Module[\"_sqlite3_str_appendchar\"]=(a0,a1,a2)=>(_sqlite3_str_appendchar=Module[\"_sqlite3_str_appendchar\"]=wasmExports[\"Ga\"])(a0,a1,a2);var _sqlite3_str_appendall=Module[\"_sqlite3_str_appendall\"]=(a0,a1)=>(_sqlite3_str_appendall=Module[\"_sqlite3_str_appendall\"]=wasmExports[\"Ha\"])(a0,a1);var _sqlite3_str_appendf=Module[\"_sqlite3_str_appendf\"]=(a0,a1,a2)=>(_sqlite3_str_appendf=Module[\"_sqlite3_str_appendf\"]=wasmExports[\"Ia\"])(a0,a1,a2);var _sqlite3_str_finish=Module[\"_sqlite3_str_finish\"]=a0=>(_sqlite3_str_finish=Module[\"_sqlite3_str_finish\"]=wasmExports[\"Ja\"])(a0);var _sqlite3_str_errcode=Module[\"_sqlite3_str_errcode\"]=a0=>(_sqlite3_str_errcode=Module[\"_sqlite3_str_errcode\"]=wasmExports[\"Ka\"])(a0);var _sqlite3_str_length=Module[\"_sqlite3_str_length\"]=a0=>(_sqlite3_str_length=Module[\"_sqlite3_str_length\"]=wasmExports[\"La\"])(a0);var _sqlite3_str_value=Module[\"_sqlite3_str_value\"]=a0=>(_sqlite3_str_value=Module[\"_sqlite3_str_value\"]=wasmExports[\"Ma\"])(a0);var _sqlite3_str_reset=Module[\"_sqlite3_str_reset\"]=a0=>(_sqlite3_str_reset=Module[\"_sqlite3_str_reset\"]=wasmExports[\"Na\"])(a0);var _sqlite3_str_new=Module[\"_sqlite3_str_new\"]=a0=>(_sqlite3_str_new=Module[\"_sqlite3_str_new\"]=wasmExports[\"Oa\"])(a0);var _sqlite3_vmprintf=Module[\"_sqlite3_vmprintf\"]=(a0,a1)=>(_sqlite3_vmprintf=Module[\"_sqlite3_vmprintf\"]=wasmExports[\"Pa\"])(a0,a1);var _sqlite3_mprintf=Module[\"_sqlite3_mprintf\"]=(a0,a1)=>(_sqlite3_mprintf=Module[\"_sqlite3_mprintf\"]=wasmExports[\"Qa\"])(a0,a1);var _sqlite3_vsnprintf=Module[\"_sqlite3_vsnprintf\"]=(a0,a1,a2,a3)=>(_sqlite3_vsnprintf=Module[\"_sqlite3_vsnprintf\"]=wasmExports[\"Ra\"])(a0,a1,a2,a3);var _sqlite3_snprintf=Module[\"_sqlite3_snprintf\"]=(a0,a1,a2,a3)=>(_sqlite3_snprintf=Module[\"_sqlite3_snprintf\"]=wasmExports[\"Sa\"])(a0,a1,a2,a3);var _sqlite3_log=Module[\"_sqlite3_log\"]=(a0,a1,a2)=>(_sqlite3_log=Module[\"_sqlite3_log\"]=wasmExports[\"Ta\"])(a0,a1,a2);var _sqlite3_randomness=Module[\"_sqlite3_randomness\"]=(a0,a1)=>(_sqlite3_randomness=Module[\"_sqlite3_randomness\"]=wasmExports[\"Ua\"])(a0,a1);var _sqlite3_stricmp=Module[\"_sqlite3_stricmp\"]=(a0,a1)=>(_sqlite3_stricmp=Module[\"_sqlite3_stricmp\"]=wasmExports[\"Va\"])(a0,a1);var _sqlite3_strnicmp=Module[\"_sqlite3_strnicmp\"]=(a0,a1,a2)=>(_sqlite3_strnicmp=Module[\"_sqlite3_strnicmp\"]=wasmExports[\"Wa\"])(a0,a1,a2);var _sqlite3_os_init=Module[\"_sqlite3_os_init\"]=()=>(_sqlite3_os_init=Module[\"_sqlite3_os_init\"]=wasmExports[\"Xa\"])();var _sqlite3_os_end=Module[\"_sqlite3_os_end\"]=()=>(_sqlite3_os_end=Module[\"_sqlite3_os_end\"]=wasmExports[\"Ya\"])();var _sqlite3_serialize=Module[\"_sqlite3_serialize\"]=(a0,a1,a2,a3)=>(_sqlite3_serialize=Module[\"_sqlite3_serialize\"]=wasmExports[\"Za\"])(a0,a1,a2,a3);var _sqlite3_prepare_v2=Module[\"_sqlite3_prepare_v2\"]=(a0,a1,a2,a3,a4)=>(_sqlite3_prepare_v2=Module[\"_sqlite3_prepare_v2\"]=wasmExports[\"_a\"])(a0,a1,a2,a3,a4);var _sqlite3_step=Module[\"_sqlite3_step\"]=a0=>(_sqlite3_step=Module[\"_sqlite3_step\"]=wasmExports[\"$a\"])(a0);var _sqlite3_column_int64=Module[\"_sqlite3_column_int64\"]=(a0,a1)=>(_sqlite3_column_int64=Module[\"_sqlite3_column_int64\"]=wasmExports[\"ab\"])(a0,a1);var _sqlite3_reset=Module[\"_sqlite3_reset\"]=a0=>(_sqlite3_reset=Module[\"_sqlite3_reset\"]=wasmExports[\"bb\"])(a0);var _sqlite3_exec=Module[\"_sqlite3_exec\"]=(a0,a1,a2,a3,a4)=>(_sqlite3_exec=Module[\"_sqlite3_exec\"]=wasmExports[\"cb\"])(a0,a1,a2,a3,a4);var _sqlite3_column_int=Module[\"_sqlite3_column_int\"]=(a0,a1)=>(_sqlite3_column_int=Module[\"_sqlite3_column_int\"]=wasmExports[\"db\"])(a0,a1);var _sqlite3_finalize=Module[\"_sqlite3_finalize\"]=a0=>(_sqlite3_finalize=Module[\"_sqlite3_finalize\"]=wasmExports[\"eb\"])(a0);var _sqlite3_deserialize=Module[\"_sqlite3_deserialize\"]=(a0,a1,a2,a3,a4,a5,a6,a7)=>(_sqlite3_deserialize=Module[\"_sqlite3_deserialize\"]=wasmExports[\"fb\"])(a0,a1,a2,a3,a4,a5,a6,a7);var _sqlite3_database_file_object=Module[\"_sqlite3_database_file_object\"]=a0=>(_sqlite3_database_file_object=Module[\"_sqlite3_database_file_object\"]=wasmExports[\"gb\"])(a0);var _sqlite3_backup_init=Module[\"_sqlite3_backup_init\"]=(a0,a1,a2,a3)=>(_sqlite3_backup_init=Module[\"_sqlite3_backup_init\"]=wasmExports[\"hb\"])(a0,a1,a2,a3);var _sqlite3_backup_step=Module[\"_sqlite3_backup_step\"]=(a0,a1)=>(_sqlite3_backup_step=Module[\"_sqlite3_backup_step\"]=wasmExports[\"ib\"])(a0,a1);var _sqlite3_backup_finish=Module[\"_sqlite3_backup_finish\"]=a0=>(_sqlite3_backup_finish=Module[\"_sqlite3_backup_finish\"]=wasmExports[\"jb\"])(a0);var _sqlite3_backup_remaining=Module[\"_sqlite3_backup_remaining\"]=a0=>(_sqlite3_backup_remaining=Module[\"_sqlite3_backup_remaining\"]=wasmExports[\"kb\"])(a0);var _sqlite3_backup_pagecount=Module[\"_sqlite3_backup_pagecount\"]=a0=>(_sqlite3_backup_pagecount=Module[\"_sqlite3_backup_pagecount\"]=wasmExports[\"lb\"])(a0);var _sqlite3_clear_bindings=Module[\"_sqlite3_clear_bindings\"]=a0=>(_sqlite3_clear_bindings=Module[\"_sqlite3_clear_bindings\"]=wasmExports[\"mb\"])(a0);var _sqlite3_value_blob=Module[\"_sqlite3_value_blob\"]=a0=>(_sqlite3_value_blob=Module[\"_sqlite3_value_blob\"]=wasmExports[\"nb\"])(a0);var _sqlite3_value_text=Module[\"_sqlite3_value_text\"]=a0=>(_sqlite3_value_text=Module[\"_sqlite3_value_text\"]=wasmExports[\"ob\"])(a0);var _sqlite3_value_bytes=Module[\"_sqlite3_value_bytes\"]=a0=>(_sqlite3_value_bytes=Module[\"_sqlite3_value_bytes\"]=wasmExports[\"pb\"])(a0);var _sqlite3_value_bytes16=Module[\"_sqlite3_value_bytes16\"]=a0=>(_sqlite3_value_bytes16=Module[\"_sqlite3_value_bytes16\"]=wasmExports[\"qb\"])(a0);var _sqlite3_value_double=Module[\"_sqlite3_value_double\"]=a0=>(_sqlite3_value_double=Module[\"_sqlite3_value_double\"]=wasmExports[\"rb\"])(a0);var _sqlite3_value_int=Module[\"_sqlite3_value_int\"]=a0=>(_sqlite3_value_int=Module[\"_sqlite3_value_int\"]=wasmExports[\"sb\"])(a0);var _sqlite3_value_int64=Module[\"_sqlite3_value_int64\"]=a0=>(_sqlite3_value_int64=Module[\"_sqlite3_value_int64\"]=wasmExports[\"tb\"])(a0);var _sqlite3_value_subtype=Module[\"_sqlite3_value_subtype\"]=a0=>(_sqlite3_value_subtype=Module[\"_sqlite3_value_subtype\"]=wasmExports[\"ub\"])(a0);var _sqlite3_value_pointer=Module[\"_sqlite3_value_pointer\"]=(a0,a1)=>(_sqlite3_value_pointer=Module[\"_sqlite3_value_pointer\"]=wasmExports[\"vb\"])(a0,a1);var _sqlite3_value_text16=Module[\"_sqlite3_value_text16\"]=a0=>(_sqlite3_value_text16=Module[\"_sqlite3_value_text16\"]=wasmExports[\"wb\"])(a0);var _sqlite3_value_text16be=Module[\"_sqlite3_value_text16be\"]=a0=>(_sqlite3_value_text16be=Module[\"_sqlite3_value_text16be\"]=wasmExports[\"xb\"])(a0);var _sqlite3_value_text16le=Module[\"_sqlite3_value_text16le\"]=a0=>(_sqlite3_value_text16le=Module[\"_sqlite3_value_text16le\"]=wasmExports[\"yb\"])(a0);var _sqlite3_value_type=Module[\"_sqlite3_value_type\"]=a0=>(_sqlite3_value_type=Module[\"_sqlite3_value_type\"]=wasmExports[\"zb\"])(a0);var _sqlite3_value_encoding=Module[\"_sqlite3_value_encoding\"]=a0=>(_sqlite3_value_encoding=Module[\"_sqlite3_value_encoding\"]=wasmExports[\"Ab\"])(a0);var _sqlite3_value_nochange=Module[\"_sqlite3_value_nochange\"]=a0=>(_sqlite3_value_nochange=Module[\"_sqlite3_value_nochange\"]=wasmExports[\"Bb\"])(a0);var _sqlite3_value_frombind=Module[\"_sqlite3_value_frombind\"]=a0=>(_sqlite3_value_frombind=Module[\"_sqlite3_value_frombind\"]=wasmExports[\"Cb\"])(a0);var _sqlite3_value_dup=Module[\"_sqlite3_value_dup\"]=a0=>(_sqlite3_value_dup=Module[\"_sqlite3_value_dup\"]=wasmExports[\"Db\"])(a0);var _sqlite3_value_free=Module[\"_sqlite3_value_free\"]=a0=>(_sqlite3_value_free=Module[\"_sqlite3_value_free\"]=wasmExports[\"Eb\"])(a0);var _sqlite3_result_blob=Module[\"_sqlite3_result_blob\"]=(a0,a1,a2,a3)=>(_sqlite3_result_blob=Module[\"_sqlite3_result_blob\"]=wasmExports[\"Fb\"])(a0,a1,a2,a3);var _sqlite3_result_blob64=Module[\"_sqlite3_result_blob64\"]=(a0,a1,a2,a3,a4)=>(_sqlite3_result_blob64=Module[\"_sqlite3_result_blob64\"]=wasmExports[\"Gb\"])(a0,a1,a2,a3,a4);var _sqlite3_result_double=Module[\"_sqlite3_result_double\"]=(a0,a1)=>(_sqlite3_result_double=Module[\"_sqlite3_result_double\"]=wasmExports[\"Hb\"])(a0,a1);var _sqlite3_result_error=Module[\"_sqlite3_result_error\"]=(a0,a1,a2)=>(_sqlite3_result_error=Module[\"_sqlite3_result_error\"]=wasmExports[\"Ib\"])(a0,a1,a2);var _sqlite3_result_error16=Module[\"_sqlite3_result_error16\"]=(a0,a1,a2)=>(_sqlite3_result_error16=Module[\"_sqlite3_result_error16\"]=wasmExports[\"Jb\"])(a0,a1,a2);var _sqlite3_result_int=Module[\"_sqlite3_result_int\"]=(a0,a1)=>(_sqlite3_result_int=Module[\"_sqlite3_result_int\"]=wasmExports[\"Kb\"])(a0,a1);var _sqlite3_result_int64=Module[\"_sqlite3_result_int64\"]=(a0,a1,a2)=>(_sqlite3_result_int64=Module[\"_sqlite3_result_int64\"]=wasmExports[\"Lb\"])(a0,a1,a2);var _sqlite3_result_null=Module[\"_sqlite3_result_null\"]=a0=>(_sqlite3_result_null=Module[\"_sqlite3_result_null\"]=wasmExports[\"Mb\"])(a0);var _sqlite3_result_pointer=Module[\"_sqlite3_result_pointer\"]=(a0,a1,a2,a3)=>(_sqlite3_result_pointer=Module[\"_sqlite3_result_pointer\"]=wasmExports[\"Nb\"])(a0,a1,a2,a3);var _sqlite3_result_subtype=Module[\"_sqlite3_result_subtype\"]=(a0,a1)=>(_sqlite3_result_subtype=Module[\"_sqlite3_result_subtype\"]=wasmExports[\"Ob\"])(a0,a1);var _sqlite3_result_text=Module[\"_sqlite3_result_text\"]=(a0,a1,a2,a3)=>(_sqlite3_result_text=Module[\"_sqlite3_result_text\"]=wasmExports[\"Pb\"])(a0,a1,a2,a3);var _sqlite3_result_text64=Module[\"_sqlite3_result_text64\"]=(a0,a1,a2,a3,a4,a5)=>(_sqlite3_result_text64=Module[\"_sqlite3_result_text64\"]=wasmExports[\"Qb\"])(a0,a1,a2,a3,a4,a5);var _sqlite3_result_text16=Module[\"_sqlite3_result_text16\"]=(a0,a1,a2,a3)=>(_sqlite3_result_text16=Module[\"_sqlite3_result_text16\"]=wasmExports[\"Rb\"])(a0,a1,a2,a3);var _sqlite3_result_text16be=Module[\"_sqlite3_result_text16be\"]=(a0,a1,a2,a3)=>(_sqlite3_result_text16be=Module[\"_sqlite3_result_text16be\"]=wasmExports[\"Sb\"])(a0,a1,a2,a3);var _sqlite3_result_text16le=Module[\"_sqlite3_result_text16le\"]=(a0,a1,a2,a3)=>(_sqlite3_result_text16le=Module[\"_sqlite3_result_text16le\"]=wasmExports[\"Tb\"])(a0,a1,a2,a3);var _sqlite3_result_value=Module[\"_sqlite3_result_value\"]=(a0,a1)=>(_sqlite3_result_value=Module[\"_sqlite3_result_value\"]=wasmExports[\"Ub\"])(a0,a1);var _sqlite3_result_error_toobig=Module[\"_sqlite3_result_error_toobig\"]=a0=>(_sqlite3_result_error_toobig=Module[\"_sqlite3_result_error_toobig\"]=wasmExports[\"Vb\"])(a0);var _sqlite3_result_zeroblob=Module[\"_sqlite3_result_zeroblob\"]=(a0,a1)=>(_sqlite3_result_zeroblob=Module[\"_sqlite3_result_zeroblob\"]=wasmExports[\"Wb\"])(a0,a1);var _sqlite3_result_zeroblob64=Module[\"_sqlite3_result_zeroblob64\"]=(a0,a1,a2)=>(_sqlite3_result_zeroblob64=Module[\"_sqlite3_result_zeroblob64\"]=wasmExports[\"Xb\"])(a0,a1,a2);var _sqlite3_result_error_code=Module[\"_sqlite3_result_error_code\"]=(a0,a1)=>(_sqlite3_result_error_code=Module[\"_sqlite3_result_error_code\"]=wasmExports[\"Yb\"])(a0,a1);var _sqlite3_result_error_nomem=Module[\"_sqlite3_result_error_nomem\"]=a0=>(_sqlite3_result_error_nomem=Module[\"_sqlite3_result_error_nomem\"]=wasmExports[\"Zb\"])(a0);var _sqlite3_user_data=Module[\"_sqlite3_user_data\"]=a0=>(_sqlite3_user_data=Module[\"_sqlite3_user_data\"]=wasmExports[\"_b\"])(a0);var _sqlite3_context_db_handle=Module[\"_sqlite3_context_db_handle\"]=a0=>(_sqlite3_context_db_handle=Module[\"_sqlite3_context_db_handle\"]=wasmExports[\"$b\"])(a0);var _sqlite3_vtab_nochange=Module[\"_sqlite3_vtab_nochange\"]=a0=>(_sqlite3_vtab_nochange=Module[\"_sqlite3_vtab_nochange\"]=wasmExports[\"ac\"])(a0);var _sqlite3_vtab_in_first=Module[\"_sqlite3_vtab_in_first\"]=(a0,a1)=>(_sqlite3_vtab_in_first=Module[\"_sqlite3_vtab_in_first\"]=wasmExports[\"bc\"])(a0,a1);var _sqlite3_vtab_in_next=Module[\"_sqlite3_vtab_in_next\"]=(a0,a1)=>(_sqlite3_vtab_in_next=Module[\"_sqlite3_vtab_in_next\"]=wasmExports[\"cc\"])(a0,a1);var _sqlite3_aggregate_context=Module[\"_sqlite3_aggregate_context\"]=(a0,a1)=>(_sqlite3_aggregate_context=Module[\"_sqlite3_aggregate_context\"]=wasmExports[\"dc\"])(a0,a1);var _sqlite3_get_auxdata=Module[\"_sqlite3_get_auxdata\"]=(a0,a1)=>(_sqlite3_get_auxdata=Module[\"_sqlite3_get_auxdata\"]=wasmExports[\"ec\"])(a0,a1);var _sqlite3_set_auxdata=Module[\"_sqlite3_set_auxdata\"]=(a0,a1,a2,a3)=>(_sqlite3_set_auxdata=Module[\"_sqlite3_set_auxdata\"]=wasmExports[\"fc\"])(a0,a1,a2,a3);var _sqlite3_column_count=Module[\"_sqlite3_column_count\"]=a0=>(_sqlite3_column_count=Module[\"_sqlite3_column_count\"]=wasmExports[\"gc\"])(a0);var _sqlite3_data_count=Module[\"_sqlite3_data_count\"]=a0=>(_sqlite3_data_count=Module[\"_sqlite3_data_count\"]=wasmExports[\"hc\"])(a0);var _sqlite3_column_blob=Module[\"_sqlite3_column_blob\"]=(a0,a1)=>(_sqlite3_column_blob=Module[\"_sqlite3_column_blob\"]=wasmExports[\"ic\"])(a0,a1);var _sqlite3_column_bytes=Module[\"_sqlite3_column_bytes\"]=(a0,a1)=>(_sqlite3_column_bytes=Module[\"_sqlite3_column_bytes\"]=wasmExports[\"jc\"])(a0,a1);var _sqlite3_column_bytes16=Module[\"_sqlite3_column_bytes16\"]=(a0,a1)=>(_sqlite3_column_bytes16=Module[\"_sqlite3_column_bytes16\"]=wasmExports[\"kc\"])(a0,a1);var _sqlite3_column_double=Module[\"_sqlite3_column_double\"]=(a0,a1)=>(_sqlite3_column_double=Module[\"_sqlite3_column_double\"]=wasmExports[\"lc\"])(a0,a1);var _sqlite3_column_text=Module[\"_sqlite3_column_text\"]=(a0,a1)=>(_sqlite3_column_text=Module[\"_sqlite3_column_text\"]=wasmExports[\"mc\"])(a0,a1);var _sqlite3_column_value=Module[\"_sqlite3_column_value\"]=(a0,a1)=>(_sqlite3_column_value=Module[\"_sqlite3_column_value\"]=wasmExports[\"nc\"])(a0,a1);var _sqlite3_column_text16=Module[\"_sqlite3_column_text16\"]=(a0,a1)=>(_sqlite3_column_text16=Module[\"_sqlite3_column_text16\"]=wasmExports[\"oc\"])(a0,a1);var _sqlite3_column_type=Module[\"_sqlite3_column_type\"]=(a0,a1)=>(_sqlite3_column_type=Module[\"_sqlite3_column_type\"]=wasmExports[\"pc\"])(a0,a1);var _sqlite3_column_name=Module[\"_sqlite3_column_name\"]=(a0,a1)=>(_sqlite3_column_name=Module[\"_sqlite3_column_name\"]=wasmExports[\"qc\"])(a0,a1);var _sqlite3_column_name16=Module[\"_sqlite3_column_name16\"]=(a0,a1)=>(_sqlite3_column_name16=Module[\"_sqlite3_column_name16\"]=wasmExports[\"rc\"])(a0,a1);var _sqlite3_bind_blob=Module[\"_sqlite3_bind_blob\"]=(a0,a1,a2,a3,a4)=>(_sqlite3_bind_blob=Module[\"_sqlite3_bind_blob\"]=wasmExports[\"sc\"])(a0,a1,a2,a3,a4);var _sqlite3_bind_blob64=Module[\"_sqlite3_bind_blob64\"]=(a0,a1,a2,a3,a4,a5)=>(_sqlite3_bind_blob64=Module[\"_sqlite3_bind_blob64\"]=wasmExports[\"tc\"])(a0,a1,a2,a3,a4,a5);var _sqlite3_bind_double=Module[\"_sqlite3_bind_double\"]=(a0,a1,a2)=>(_sqlite3_bind_double=Module[\"_sqlite3_bind_double\"]=wasmExports[\"uc\"])(a0,a1,a2);var _sqlite3_bind_int=Module[\"_sqlite3_bind_int\"]=(a0,a1,a2)=>(_sqlite3_bind_int=Module[\"_sqlite3_bind_int\"]=wasmExports[\"vc\"])(a0,a1,a2);var _sqlite3_bind_int64=Module[\"_sqlite3_bind_int64\"]=(a0,a1,a2,a3)=>(_sqlite3_bind_int64=Module[\"_sqlite3_bind_int64\"]=wasmExports[\"wc\"])(a0,a1,a2,a3);var _sqlite3_bind_null=Module[\"_sqlite3_bind_null\"]=(a0,a1)=>(_sqlite3_bind_null=Module[\"_sqlite3_bind_null\"]=wasmExports[\"xc\"])(a0,a1);var _sqlite3_bind_pointer=Module[\"_sqlite3_bind_pointer\"]=(a0,a1,a2,a3,a4)=>(_sqlite3_bind_pointer=Module[\"_sqlite3_bind_pointer\"]=wasmExports[\"yc\"])(a0,a1,a2,a3,a4);var _sqlite3_bind_text=Module[\"_sqlite3_bind_text\"]=(a0,a1,a2,a3,a4)=>(_sqlite3_bind_text=Module[\"_sqlite3_bind_text\"]=wasmExports[\"zc\"])(a0,a1,a2,a3,a4);var _sqlite3_bind_text64=Module[\"_sqlite3_bind_text64\"]=(a0,a1,a2,a3,a4,a5,a6)=>(_sqlite3_bind_text64=Module[\"_sqlite3_bind_text64\"]=wasmExports[\"Ac\"])(a0,a1,a2,a3,a4,a5,a6);var _sqlite3_bind_text16=Module[\"_sqlite3_bind_text16\"]=(a0,a1,a2,a3,a4)=>(_sqlite3_bind_text16=Module[\"_sqlite3_bind_text16\"]=wasmExports[\"Bc\"])(a0,a1,a2,a3,a4);var _sqlite3_bind_value=Module[\"_sqlite3_bind_value\"]=(a0,a1,a2)=>(_sqlite3_bind_value=Module[\"_sqlite3_bind_value\"]=wasmExports[\"Cc\"])(a0,a1,a2);var _sqlite3_bind_zeroblob=Module[\"_sqlite3_bind_zeroblob\"]=(a0,a1,a2)=>(_sqlite3_bind_zeroblob=Module[\"_sqlite3_bind_zeroblob\"]=wasmExports[\"Dc\"])(a0,a1,a2);var _sqlite3_bind_zeroblob64=Module[\"_sqlite3_bind_zeroblob64\"]=(a0,a1,a2,a3)=>(_sqlite3_bind_zeroblob64=Module[\"_sqlite3_bind_zeroblob64\"]=wasmExports[\"Ec\"])(a0,a1,a2,a3);var _sqlite3_bind_parameter_count=Module[\"_sqlite3_bind_parameter_count\"]=a0=>(_sqlite3_bind_parameter_count=Module[\"_sqlite3_bind_parameter_count\"]=wasmExports[\"Fc\"])(a0);var _sqlite3_bind_parameter_name=Module[\"_sqlite3_bind_parameter_name\"]=(a0,a1)=>(_sqlite3_bind_parameter_name=Module[\"_sqlite3_bind_parameter_name\"]=wasmExports[\"Gc\"])(a0,a1);var _sqlite3_bind_parameter_index=Module[\"_sqlite3_bind_parameter_index\"]=(a0,a1)=>(_sqlite3_bind_parameter_index=Module[\"_sqlite3_bind_parameter_index\"]=wasmExports[\"Hc\"])(a0,a1);var _sqlite3_db_handle=Module[\"_sqlite3_db_handle\"]=a0=>(_sqlite3_db_handle=Module[\"_sqlite3_db_handle\"]=wasmExports[\"Ic\"])(a0);var _sqlite3_stmt_readonly=Module[\"_sqlite3_stmt_readonly\"]=a0=>(_sqlite3_stmt_readonly=Module[\"_sqlite3_stmt_readonly\"]=wasmExports[\"Jc\"])(a0);var _sqlite3_stmt_isexplain=Module[\"_sqlite3_stmt_isexplain\"]=a0=>(_sqlite3_stmt_isexplain=Module[\"_sqlite3_stmt_isexplain\"]=wasmExports[\"Kc\"])(a0);var _sqlite3_stmt_explain=Module[\"_sqlite3_stmt_explain\"]=(a0,a1)=>(_sqlite3_stmt_explain=Module[\"_sqlite3_stmt_explain\"]=wasmExports[\"Lc\"])(a0,a1);var _sqlite3_stmt_busy=Module[\"_sqlite3_stmt_busy\"]=a0=>(_sqlite3_stmt_busy=Module[\"_sqlite3_stmt_busy\"]=wasmExports[\"Mc\"])(a0);var _sqlite3_next_stmt=Module[\"_sqlite3_next_stmt\"]=(a0,a1)=>(_sqlite3_next_stmt=Module[\"_sqlite3_next_stmt\"]=wasmExports[\"Nc\"])(a0,a1);var _sqlite3_stmt_status=Module[\"_sqlite3_stmt_status\"]=(a0,a1,a2)=>(_sqlite3_stmt_status=Module[\"_sqlite3_stmt_status\"]=wasmExports[\"Oc\"])(a0,a1,a2);var _sqlite3_sql=Module[\"_sqlite3_sql\"]=a0=>(_sqlite3_sql=Module[\"_sqlite3_sql\"]=wasmExports[\"Pc\"])(a0);var _sqlite3_expanded_sql=Module[\"_sqlite3_expanded_sql\"]=a0=>(_sqlite3_expanded_sql=Module[\"_sqlite3_expanded_sql\"]=wasmExports[\"Qc\"])(a0);var _sqlite3_value_numeric_type=Module[\"_sqlite3_value_numeric_type\"]=a0=>(_sqlite3_value_numeric_type=Module[\"_sqlite3_value_numeric_type\"]=wasmExports[\"Rc\"])(a0);var _sqlite3_blob_open=Module[\"_sqlite3_blob_open\"]=(a0,a1,a2,a3,a4,a5,a6,a7)=>(_sqlite3_blob_open=Module[\"_sqlite3_blob_open\"]=wasmExports[\"Sc\"])(a0,a1,a2,a3,a4,a5,a6,a7);var _sqlite3_blob_close=Module[\"_sqlite3_blob_close\"]=a0=>(_sqlite3_blob_close=Module[\"_sqlite3_blob_close\"]=wasmExports[\"Tc\"])(a0);var _sqlite3_blob_read=Module[\"_sqlite3_blob_read\"]=(a0,a1,a2,a3)=>(_sqlite3_blob_read=Module[\"_sqlite3_blob_read\"]=wasmExports[\"Uc\"])(a0,a1,a2,a3);var _sqlite3_blob_write=Module[\"_sqlite3_blob_write\"]=(a0,a1,a2,a3)=>(_sqlite3_blob_write=Module[\"_sqlite3_blob_write\"]=wasmExports[\"Vc\"])(a0,a1,a2,a3);var _sqlite3_blob_bytes=Module[\"_sqlite3_blob_bytes\"]=a0=>(_sqlite3_blob_bytes=Module[\"_sqlite3_blob_bytes\"]=wasmExports[\"Wc\"])(a0);var _sqlite3_blob_reopen=Module[\"_sqlite3_blob_reopen\"]=(a0,a1,a2)=>(_sqlite3_blob_reopen=Module[\"_sqlite3_blob_reopen\"]=wasmExports[\"Xc\"])(a0,a1,a2);var _sqlite3_set_authorizer=Module[\"_sqlite3_set_authorizer\"]=(a0,a1,a2)=>(_sqlite3_set_authorizer=Module[\"_sqlite3_set_authorizer\"]=wasmExports[\"Yc\"])(a0,a1,a2);var _sqlite3_strglob=Module[\"_sqlite3_strglob\"]=(a0,a1)=>(_sqlite3_strglob=Module[\"_sqlite3_strglob\"]=wasmExports[\"Zc\"])(a0,a1);var _sqlite3_strlike=Module[\"_sqlite3_strlike\"]=(a0,a1,a2)=>(_sqlite3_strlike=Module[\"_sqlite3_strlike\"]=wasmExports[\"_c\"])(a0,a1,a2);var _sqlite3_errmsg=Module[\"_sqlite3_errmsg\"]=a0=>(_sqlite3_errmsg=Module[\"_sqlite3_errmsg\"]=wasmExports[\"$c\"])(a0);var _sqlite3_auto_extension=Module[\"_sqlite3_auto_extension\"]=a0=>(_sqlite3_auto_extension=Module[\"_sqlite3_auto_extension\"]=wasmExports[\"ad\"])(a0);var _sqlite3_cancel_auto_extension=Module[\"_sqlite3_cancel_auto_extension\"]=a0=>(_sqlite3_cancel_auto_extension=Module[\"_sqlite3_cancel_auto_extension\"]=wasmExports[\"bd\"])(a0);var _sqlite3_reset_auto_extension=Module[\"_sqlite3_reset_auto_extension\"]=()=>(_sqlite3_reset_auto_extension=Module[\"_sqlite3_reset_auto_extension\"]=wasmExports[\"cd\"])();var _sqlite3_prepare=Module[\"_sqlite3_prepare\"]=(a0,a1,a2,a3,a4)=>(_sqlite3_prepare=Module[\"_sqlite3_prepare\"]=wasmExports[\"dd\"])(a0,a1,a2,a3,a4);var _sqlite3_prepare_v3=Module[\"_sqlite3_prepare_v3\"]=(a0,a1,a2,a3,a4,a5)=>(_sqlite3_prepare_v3=Module[\"_sqlite3_prepare_v3\"]=wasmExports[\"ed\"])(a0,a1,a2,a3,a4,a5);var _sqlite3_prepare16=Module[\"_sqlite3_prepare16\"]=(a0,a1,a2,a3,a4)=>(_sqlite3_prepare16=Module[\"_sqlite3_prepare16\"]=wasmExports[\"fd\"])(a0,a1,a2,a3,a4);var _sqlite3_prepare16_v2=Module[\"_sqlite3_prepare16_v2\"]=(a0,a1,a2,a3,a4)=>(_sqlite3_prepare16_v2=Module[\"_sqlite3_prepare16_v2\"]=wasmExports[\"gd\"])(a0,a1,a2,a3,a4);var _sqlite3_prepare16_v3=Module[\"_sqlite3_prepare16_v3\"]=(a0,a1,a2,a3,a4,a5)=>(_sqlite3_prepare16_v3=Module[\"_sqlite3_prepare16_v3\"]=wasmExports[\"hd\"])(a0,a1,a2,a3,a4,a5);var _sqlite3_get_table=Module[\"_sqlite3_get_table\"]=(a0,a1,a2,a3,a4,a5)=>(_sqlite3_get_table=Module[\"_sqlite3_get_table\"]=wasmExports[\"id\"])(a0,a1,a2,a3,a4,a5);var _sqlite3_free_table=Module[\"_sqlite3_free_table\"]=a0=>(_sqlite3_free_table=Module[\"_sqlite3_free_table\"]=wasmExports[\"jd\"])(a0);var _sqlite3_create_module=Module[\"_sqlite3_create_module\"]=(a0,a1,a2,a3)=>(_sqlite3_create_module=Module[\"_sqlite3_create_module\"]=wasmExports[\"kd\"])(a0,a1,a2,a3);var _sqlite3_create_module_v2=Module[\"_sqlite3_create_module_v2\"]=(a0,a1,a2,a3,a4)=>(_sqlite3_create_module_v2=Module[\"_sqlite3_create_module_v2\"]=wasmExports[\"ld\"])(a0,a1,a2,a3,a4);var _sqlite3_drop_modules=Module[\"_sqlite3_drop_modules\"]=(a0,a1)=>(_sqlite3_drop_modules=Module[\"_sqlite3_drop_modules\"]=wasmExports[\"md\"])(a0,a1);var _sqlite3_declare_vtab=Module[\"_sqlite3_declare_vtab\"]=(a0,a1)=>(_sqlite3_declare_vtab=Module[\"_sqlite3_declare_vtab\"]=wasmExports[\"nd\"])(a0,a1);var _sqlite3_vtab_on_conflict=Module[\"_sqlite3_vtab_on_conflict\"]=a0=>(_sqlite3_vtab_on_conflict=Module[\"_sqlite3_vtab_on_conflict\"]=wasmExports[\"od\"])(a0);var _sqlite3_vtab_config=Module[\"_sqlite3_vtab_config\"]=(a0,a1,a2)=>(_sqlite3_vtab_config=Module[\"_sqlite3_vtab_config\"]=wasmExports[\"pd\"])(a0,a1,a2);var _sqlite3_vtab_collation=Module[\"_sqlite3_vtab_collation\"]=(a0,a1)=>(_sqlite3_vtab_collation=Module[\"_sqlite3_vtab_collation\"]=wasmExports[\"qd\"])(a0,a1);var _sqlite3_vtab_in=Module[\"_sqlite3_vtab_in\"]=(a0,a1,a2)=>(_sqlite3_vtab_in=Module[\"_sqlite3_vtab_in\"]=wasmExports[\"rd\"])(a0,a1,a2);var _sqlite3_vtab_rhs_value=Module[\"_sqlite3_vtab_rhs_value\"]=(a0,a1,a2)=>(_sqlite3_vtab_rhs_value=Module[\"_sqlite3_vtab_rhs_value\"]=wasmExports[\"sd\"])(a0,a1,a2);var _sqlite3_vtab_distinct=Module[\"_sqlite3_vtab_distinct\"]=a0=>(_sqlite3_vtab_distinct=Module[\"_sqlite3_vtab_distinct\"]=wasmExports[\"td\"])(a0);var _sqlite3_keyword_name=Module[\"_sqlite3_keyword_name\"]=(a0,a1,a2)=>(_sqlite3_keyword_name=Module[\"_sqlite3_keyword_name\"]=wasmExports[\"ud\"])(a0,a1,a2);var _sqlite3_keyword_count=Module[\"_sqlite3_keyword_count\"]=()=>(_sqlite3_keyword_count=Module[\"_sqlite3_keyword_count\"]=wasmExports[\"vd\"])();var _sqlite3_keyword_check=Module[\"_sqlite3_keyword_check\"]=(a0,a1)=>(_sqlite3_keyword_check=Module[\"_sqlite3_keyword_check\"]=wasmExports[\"wd\"])(a0,a1);var _sqlite3_complete=Module[\"_sqlite3_complete\"]=a0=>(_sqlite3_complete=Module[\"_sqlite3_complete\"]=wasmExports[\"xd\"])(a0);var _sqlite3_complete16=Module[\"_sqlite3_complete16\"]=a0=>(_sqlite3_complete16=Module[\"_sqlite3_complete16\"]=wasmExports[\"yd\"])(a0);var _sqlite3_libversion=Module[\"_sqlite3_libversion\"]=()=>(_sqlite3_libversion=Module[\"_sqlite3_libversion\"]=wasmExports[\"zd\"])();var _sqlite3_libversion_number=Module[\"_sqlite3_libversion_number\"]=()=>(_sqlite3_libversion_number=Module[\"_sqlite3_libversion_number\"]=wasmExports[\"Ad\"])();var _sqlite3_threadsafe=Module[\"_sqlite3_threadsafe\"]=()=>(_sqlite3_threadsafe=Module[\"_sqlite3_threadsafe\"]=wasmExports[\"Bd\"])();var _sqlite3_initialize=Module[\"_sqlite3_initialize\"]=()=>(_sqlite3_initialize=Module[\"_sqlite3_initialize\"]=wasmExports[\"Cd\"])();var _sqlite3_shutdown=Module[\"_sqlite3_shutdown\"]=()=>(_sqlite3_shutdown=Module[\"_sqlite3_shutdown\"]=wasmExports[\"Dd\"])();var _sqlite3_config=Module[\"_sqlite3_config\"]=(a0,a1)=>(_sqlite3_config=Module[\"_sqlite3_config\"]=wasmExports[\"Ed\"])(a0,a1);var _sqlite3_db_mutex=Module[\"_sqlite3_db_mutex\"]=a0=>(_sqlite3_db_mutex=Module[\"_sqlite3_db_mutex\"]=wasmExports[\"Fd\"])(a0);var _sqlite3_db_release_memory=Module[\"_sqlite3_db_release_memory\"]=a0=>(_sqlite3_db_release_memory=Module[\"_sqlite3_db_release_memory\"]=wasmExports[\"Gd\"])(a0);var _sqlite3_db_cacheflush=Module[\"_sqlite3_db_cacheflush\"]=a0=>(_sqlite3_db_cacheflush=Module[\"_sqlite3_db_cacheflush\"]=wasmExports[\"Hd\"])(a0);var _sqlite3_db_config=Module[\"_sqlite3_db_config\"]=(a0,a1,a2)=>(_sqlite3_db_config=Module[\"_sqlite3_db_config\"]=wasmExports[\"Id\"])(a0,a1,a2);var _sqlite3_last_insert_rowid=Module[\"_sqlite3_last_insert_rowid\"]=a0=>(_sqlite3_last_insert_rowid=Module[\"_sqlite3_last_insert_rowid\"]=wasmExports[\"Jd\"])(a0);var _sqlite3_set_last_insert_rowid=Module[\"_sqlite3_set_last_insert_rowid\"]=(a0,a1,a2)=>(_sqlite3_set_last_insert_rowid=Module[\"_sqlite3_set_last_insert_rowid\"]=wasmExports[\"Kd\"])(a0,a1,a2);var _sqlite3_changes64=Module[\"_sqlite3_changes64\"]=a0=>(_sqlite3_changes64=Module[\"_sqlite3_changes64\"]=wasmExports[\"Ld\"])(a0);var _sqlite3_changes=Module[\"_sqlite3_changes\"]=a0=>(_sqlite3_changes=Module[\"_sqlite3_changes\"]=wasmExports[\"Md\"])(a0);var _sqlite3_total_changes64=Module[\"_sqlite3_total_changes64\"]=a0=>(_sqlite3_total_changes64=Module[\"_sqlite3_total_changes64\"]=wasmExports[\"Nd\"])(a0);var _sqlite3_total_changes=Module[\"_sqlite3_total_changes\"]=a0=>(_sqlite3_total_changes=Module[\"_sqlite3_total_changes\"]=wasmExports[\"Od\"])(a0);var _sqlite3_txn_state=Module[\"_sqlite3_txn_state\"]=(a0,a1)=>(_sqlite3_txn_state=Module[\"_sqlite3_txn_state\"]=wasmExports[\"Pd\"])(a0,a1);var _sqlite3_close=Module[\"_sqlite3_close\"]=a0=>(_sqlite3_close=Module[\"_sqlite3_close\"]=wasmExports[\"Qd\"])(a0);var _sqlite3_close_v2=Module[\"_sqlite3_close_v2\"]=a0=>(_sqlite3_close_v2=Module[\"_sqlite3_close_v2\"]=wasmExports[\"Rd\"])(a0);var _sqlite3_busy_handler=Module[\"_sqlite3_busy_handler\"]=(a0,a1,a2)=>(_sqlite3_busy_handler=Module[\"_sqlite3_busy_handler\"]=wasmExports[\"Sd\"])(a0,a1,a2);var _sqlite3_progress_handler=Module[\"_sqlite3_progress_handler\"]=(a0,a1,a2,a3)=>(_sqlite3_progress_handler=Module[\"_sqlite3_progress_handler\"]=wasmExports[\"Td\"])(a0,a1,a2,a3);var _sqlite3_busy_timeout=Module[\"_sqlite3_busy_timeout\"]=(a0,a1)=>(_sqlite3_busy_timeout=Module[\"_sqlite3_busy_timeout\"]=wasmExports[\"Ud\"])(a0,a1);var _sqlite3_interrupt=Module[\"_sqlite3_interrupt\"]=a0=>(_sqlite3_interrupt=Module[\"_sqlite3_interrupt\"]=wasmExports[\"Vd\"])(a0);var _sqlite3_is_interrupted=Module[\"_sqlite3_is_interrupted\"]=a0=>(_sqlite3_is_interrupted=Module[\"_sqlite3_is_interrupted\"]=wasmExports[\"Wd\"])(a0);var _sqlite3_create_function=Module[\"_sqlite3_create_function\"]=(a0,a1,a2,a3,a4,a5,a6,a7)=>(_sqlite3_create_function=Module[\"_sqlite3_create_function\"]=wasmExports[\"Xd\"])(a0,a1,a2,a3,a4,a5,a6,a7);var _sqlite3_create_function_v2=Module[\"_sqlite3_create_function_v2\"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8)=>(_sqlite3_create_function_v2=Module[\"_sqlite3_create_function_v2\"]=wasmExports[\"Yd\"])(a0,a1,a2,a3,a4,a5,a6,a7,a8);var _sqlite3_create_window_function=Module[\"_sqlite3_create_window_function\"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9)=>(_sqlite3_create_window_function=Module[\"_sqlite3_create_window_function\"]=wasmExports[\"Zd\"])(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9);var _sqlite3_create_function16=Module[\"_sqlite3_create_function16\"]=(a0,a1,a2,a3,a4,a5,a6,a7)=>(_sqlite3_create_function16=Module[\"_sqlite3_create_function16\"]=wasmExports[\"_d\"])(a0,a1,a2,a3,a4,a5,a6,a7);var _sqlite3_overload_function=Module[\"_sqlite3_overload_function\"]=(a0,a1,a2)=>(_sqlite3_overload_function=Module[\"_sqlite3_overload_function\"]=wasmExports[\"$d\"])(a0,a1,a2);var _sqlite3_trace_v2=Module[\"_sqlite3_trace_v2\"]=(a0,a1,a2,a3)=>(_sqlite3_trace_v2=Module[\"_sqlite3_trace_v2\"]=wasmExports[\"ae\"])(a0,a1,a2,a3);var _sqlite3_commit_hook=Module[\"_sqlite3_commit_hook\"]=(a0,a1,a2)=>(_sqlite3_commit_hook=Module[\"_sqlite3_commit_hook\"]=wasmExports[\"be\"])(a0,a1,a2);var _sqlite3_update_hook=Module[\"_sqlite3_update_hook\"]=(a0,a1,a2)=>(_sqlite3_update_hook=Module[\"_sqlite3_update_hook\"]=wasmExports[\"ce\"])(a0,a1,a2);var _sqlite3_rollback_hook=Module[\"_sqlite3_rollback_hook\"]=(a0,a1,a2)=>(_sqlite3_rollback_hook=Module[\"_sqlite3_rollback_hook\"]=wasmExports[\"de\"])(a0,a1,a2);var _sqlite3_autovacuum_pages=Module[\"_sqlite3_autovacuum_pages\"]=(a0,a1,a2,a3)=>(_sqlite3_autovacuum_pages=Module[\"_sqlite3_autovacuum_pages\"]=wasmExports[\"ee\"])(a0,a1,a2,a3);var _sqlite3_wal_autocheckpoint=Module[\"_sqlite3_wal_autocheckpoint\"]=(a0,a1)=>(_sqlite3_wal_autocheckpoint=Module[\"_sqlite3_wal_autocheckpoint\"]=wasmExports[\"fe\"])(a0,a1);var _sqlite3_wal_hook=Module[\"_sqlite3_wal_hook\"]=(a0,a1,a2)=>(_sqlite3_wal_hook=Module[\"_sqlite3_wal_hook\"]=wasmExports[\"ge\"])(a0,a1,a2);var _sqlite3_wal_checkpoint_v2=Module[\"_sqlite3_wal_checkpoint_v2\"]=(a0,a1,a2,a3,a4)=>(_sqlite3_wal_checkpoint_v2=Module[\"_sqlite3_wal_checkpoint_v2\"]=wasmExports[\"he\"])(a0,a1,a2,a3,a4);var _sqlite3_wal_checkpoint=Module[\"_sqlite3_wal_checkpoint\"]=(a0,a1)=>(_sqlite3_wal_checkpoint=Module[\"_sqlite3_wal_checkpoint\"]=wasmExports[\"ie\"])(a0,a1);var _sqlite3_error_offset=Module[\"_sqlite3_error_offset\"]=a0=>(_sqlite3_error_offset=Module[\"_sqlite3_error_offset\"]=wasmExports[\"je\"])(a0);var _sqlite3_errmsg16=Module[\"_sqlite3_errmsg16\"]=a0=>(_sqlite3_errmsg16=Module[\"_sqlite3_errmsg16\"]=wasmExports[\"ke\"])(a0);var _sqlite3_errcode=Module[\"_sqlite3_errcode\"]=a0=>(_sqlite3_errcode=Module[\"_sqlite3_errcode\"]=wasmExports[\"le\"])(a0);var _sqlite3_extended_errcode=Module[\"_sqlite3_extended_errcode\"]=a0=>(_sqlite3_extended_errcode=Module[\"_sqlite3_extended_errcode\"]=wasmExports[\"me\"])(a0);var _sqlite3_system_errno=Module[\"_sqlite3_system_errno\"]=a0=>(_sqlite3_system_errno=Module[\"_sqlite3_system_errno\"]=wasmExports[\"ne\"])(a0);var _sqlite3_errstr=Module[\"_sqlite3_errstr\"]=a0=>(_sqlite3_errstr=Module[\"_sqlite3_errstr\"]=wasmExports[\"oe\"])(a0);var _sqlite3_limit=Module[\"_sqlite3_limit\"]=(a0,a1,a2)=>(_sqlite3_limit=Module[\"_sqlite3_limit\"]=wasmExports[\"pe\"])(a0,a1,a2);var _sqlite3_open=Module[\"_sqlite3_open\"]=(a0,a1)=>(_sqlite3_open=Module[\"_sqlite3_open\"]=wasmExports[\"qe\"])(a0,a1);var _sqlite3_open_v2=Module[\"_sqlite3_open_v2\"]=(a0,a1,a2,a3)=>(_sqlite3_open_v2=Module[\"_sqlite3_open_v2\"]=wasmExports[\"re\"])(a0,a1,a2,a3);var _sqlite3_open16=Module[\"_sqlite3_open16\"]=(a0,a1)=>(_sqlite3_open16=Module[\"_sqlite3_open16\"]=wasmExports[\"se\"])(a0,a1);var _sqlite3_create_collation=Module[\"_sqlite3_create_collation\"]=(a0,a1,a2,a3,a4)=>(_sqlite3_create_collation=Module[\"_sqlite3_create_collation\"]=wasmExports[\"te\"])(a0,a1,a2,a3,a4);var _sqlite3_create_collation_v2=Module[\"_sqlite3_create_collation_v2\"]=(a0,a1,a2,a3,a4,a5)=>(_sqlite3_create_collation_v2=Module[\"_sqlite3_create_collation_v2\"]=wasmExports[\"ue\"])(a0,a1,a2,a3,a4,a5);var _sqlite3_create_collation16=Module[\"_sqlite3_create_collation16\"]=(a0,a1,a2,a3,a4)=>(_sqlite3_create_collation16=Module[\"_sqlite3_create_collation16\"]=wasmExports[\"ve\"])(a0,a1,a2,a3,a4);var _sqlite3_collation_needed=Module[\"_sqlite3_collation_needed\"]=(a0,a1,a2)=>(_sqlite3_collation_needed=Module[\"_sqlite3_collation_needed\"]=wasmExports[\"we\"])(a0,a1,a2);var _sqlite3_collation_needed16=Module[\"_sqlite3_collation_needed16\"]=(a0,a1,a2)=>(_sqlite3_collation_needed16=Module[\"_sqlite3_collation_needed16\"]=wasmExports[\"xe\"])(a0,a1,a2);var _sqlite3_get_clientdata=Module[\"_sqlite3_get_clientdata\"]=(a0,a1)=>(_sqlite3_get_clientdata=Module[\"_sqlite3_get_clientdata\"]=wasmExports[\"ye\"])(a0,a1);var _sqlite3_set_clientdata=Module[\"_sqlite3_set_clientdata\"]=(a0,a1,a2,a3)=>(_sqlite3_set_clientdata=Module[\"_sqlite3_set_clientdata\"]=wasmExports[\"ze\"])(a0,a1,a2,a3);var _sqlite3_get_autocommit=Module[\"_sqlite3_get_autocommit\"]=a0=>(_sqlite3_get_autocommit=Module[\"_sqlite3_get_autocommit\"]=wasmExports[\"Ae\"])(a0);var _sqlite3_table_column_metadata=Module[\"_sqlite3_table_column_metadata\"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8)=>(_sqlite3_table_column_metadata=Module[\"_sqlite3_table_column_metadata\"]=wasmExports[\"Be\"])(a0,a1,a2,a3,a4,a5,a6,a7,a8);var _sqlite3_sleep=Module[\"_sqlite3_sleep\"]=a0=>(_sqlite3_sleep=Module[\"_sqlite3_sleep\"]=wasmExports[\"Ce\"])(a0);var _sqlite3_extended_result_codes=Module[\"_sqlite3_extended_result_codes\"]=(a0,a1)=>(_sqlite3_extended_result_codes=Module[\"_sqlite3_extended_result_codes\"]=wasmExports[\"De\"])(a0,a1);var _sqlite3_file_control=Module[\"_sqlite3_file_control\"]=(a0,a1,a2,a3)=>(_sqlite3_file_control=Module[\"_sqlite3_file_control\"]=wasmExports[\"Ee\"])(a0,a1,a2,a3);var _sqlite3_test_control=Module[\"_sqlite3_test_control\"]=(a0,a1)=>(_sqlite3_test_control=Module[\"_sqlite3_test_control\"]=wasmExports[\"Fe\"])(a0,a1);var _sqlite3_create_filename=Module[\"_sqlite3_create_filename\"]=(a0,a1,a2,a3,a4)=>(_sqlite3_create_filename=Module[\"_sqlite3_create_filename\"]=wasmExports[\"Ge\"])(a0,a1,a2,a3,a4);var _sqlite3_free_filename=Module[\"_sqlite3_free_filename\"]=a0=>(_sqlite3_free_filename=Module[\"_sqlite3_free_filename\"]=wasmExports[\"He\"])(a0);var _sqlite3_uri_parameter=Module[\"_sqlite3_uri_parameter\"]=(a0,a1)=>(_sqlite3_uri_parameter=Module[\"_sqlite3_uri_parameter\"]=wasmExports[\"Ie\"])(a0,a1);var _sqlite3_uri_key=Module[\"_sqlite3_uri_key\"]=(a0,a1)=>(_sqlite3_uri_key=Module[\"_sqlite3_uri_key\"]=wasmExports[\"Je\"])(a0,a1);var _sqlite3_uri_boolean=Module[\"_sqlite3_uri_boolean\"]=(a0,a1,a2)=>(_sqlite3_uri_boolean=Module[\"_sqlite3_uri_boolean\"]=wasmExports[\"Ke\"])(a0,a1,a2);var _sqlite3_uri_int64=Module[\"_sqlite3_uri_int64\"]=(a0,a1,a2,a3)=>(_sqlite3_uri_int64=Module[\"_sqlite3_uri_int64\"]=wasmExports[\"Le\"])(a0,a1,a2,a3);var _sqlite3_filename_database=Module[\"_sqlite3_filename_database\"]=a0=>(_sqlite3_filename_database=Module[\"_sqlite3_filename_database\"]=wasmExports[\"Me\"])(a0);var _sqlite3_filename_journal=Module[\"_sqlite3_filename_journal\"]=a0=>(_sqlite3_filename_journal=Module[\"_sqlite3_filename_journal\"]=wasmExports[\"Ne\"])(a0);var _sqlite3_filename_wal=Module[\"_sqlite3_filename_wal\"]=a0=>(_sqlite3_filename_wal=Module[\"_sqlite3_filename_wal\"]=wasmExports[\"Oe\"])(a0);var _sqlite3_db_name=Module[\"_sqlite3_db_name\"]=(a0,a1)=>(_sqlite3_db_name=Module[\"_sqlite3_db_name\"]=wasmExports[\"Pe\"])(a0,a1);var _sqlite3_db_filename=Module[\"_sqlite3_db_filename\"]=(a0,a1)=>(_sqlite3_db_filename=Module[\"_sqlite3_db_filename\"]=wasmExports[\"Qe\"])(a0,a1);var _sqlite3_db_readonly=Module[\"_sqlite3_db_readonly\"]=(a0,a1)=>(_sqlite3_db_readonly=Module[\"_sqlite3_db_readonly\"]=wasmExports[\"Re\"])(a0,a1);var _sqlite3_compileoption_used=Module[\"_sqlite3_compileoption_used\"]=a0=>(_sqlite3_compileoption_used=Module[\"_sqlite3_compileoption_used\"]=wasmExports[\"Se\"])(a0);var _sqlite3_compileoption_get=Module[\"_sqlite3_compileoption_get\"]=a0=>(_sqlite3_compileoption_get=Module[\"_sqlite3_compileoption_get\"]=wasmExports[\"Te\"])(a0);var _sqlite3_sourceid=Module[\"_sqlite3_sourceid\"]=()=>(_sqlite3_sourceid=Module[\"_sqlite3_sourceid\"]=wasmExports[\"Ue\"])();var _malloc=Module[\"_malloc\"]=a0=>(_malloc=Module[\"_malloc\"]=wasmExports[\"Ve\"])(a0);var _free=Module[\"_free\"]=a0=>(_free=Module[\"_free\"]=wasmExports[\"We\"])(a0);var _RegisterExtensionFunctions=Module[\"_RegisterExtensionFunctions\"]=a0=>(_RegisterExtensionFunctions=Module[\"_RegisterExtensionFunctions\"]=wasmExports[\"Xe\"])(a0);var _getSqliteFree=Module[\"_getSqliteFree\"]=()=>(_getSqliteFree=Module[\"_getSqliteFree\"]=wasmExports[\"Ye\"])();var _main=Module[\"_main\"]=(a0,a1)=>(_main=Module[\"_main\"]=wasmExports[\"Ze\"])(a0,a1);var _libauthorizer_set_authorizer=Module[\"_libauthorizer_set_authorizer\"]=(a0,a1,a2)=>(_libauthorizer_set_authorizer=Module[\"_libauthorizer_set_authorizer\"]=wasmExports[\"_e\"])(a0,a1,a2);var _libfunction_create_function=Module[\"_libfunction_create_function\"]=(a0,a1,a2,a3,a4,a5,a6,a7)=>(_libfunction_create_function=Module[\"_libfunction_create_function\"]=wasmExports[\"$e\"])(a0,a1,a2,a3,a4,a5,a6,a7);var _libhook_commit_hook=Module[\"_libhook_commit_hook\"]=(a0,a1,a2)=>(_libhook_commit_hook=Module[\"_libhook_commit_hook\"]=wasmExports[\"af\"])(a0,a1,a2);var _libhook_update_hook=Module[\"_libhook_update_hook\"]=(a0,a1,a2)=>(_libhook_update_hook=Module[\"_libhook_update_hook\"]=wasmExports[\"bf\"])(a0,a1,a2);var _libprogress_progress_handler=Module[\"_libprogress_progress_handler\"]=(a0,a1,a2,a3)=>(_libprogress_progress_handler=Module[\"_libprogress_progress_handler\"]=wasmExports[\"cf\"])(a0,a1,a2,a3);var _libvfs_vfs_register=Module[\"_libvfs_vfs_register\"]=(a0,a1,a2,a3,a4,a5)=>(_libvfs_vfs_register=Module[\"_libvfs_vfs_register\"]=wasmExports[\"df\"])(a0,a1,a2,a3,a4,a5);var _emscripten_builtin_memalign=(a0,a1)=>(_emscripten_builtin_memalign=wasmExports[\"ff\"])(a0,a1);var __emscripten_tempret_get=()=>(__emscripten_tempret_get=wasmExports[\"gf\"])();var __emscripten_stack_restore=a0=>(__emscripten_stack_restore=wasmExports[\"hf\"])(a0);var __emscripten_stack_alloc=a0=>(__emscripten_stack_alloc=wasmExports[\"jf\"])(a0);var _emscripten_stack_get_current=()=>(_emscripten_stack_get_current=wasmExports[\"kf\"])();var _sqlite3_version=Module[\"_sqlite3_version\"]=3232;Module[\"getTempRet0\"]=getTempRet0;Module[\"ccall\"]=ccall;Module[\"cwrap\"]=cwrap;Module[\"addFunction\"]=addFunction;Module[\"setValue\"]=setValue;Module[\"getValue\"]=getValue;Module[\"UTF8ToString\"]=UTF8ToString;Module[\"stringToUTF8\"]=stringToUTF8;Module[\"lengthBytesUTF8\"]=lengthBytesUTF8;Module[\"intArrayFromString\"]=intArrayFromString;Module[\"intArrayToString\"]=intArrayToString;Module[\"AsciiToString\"]=AsciiToString;Module[\"UTF16ToString\"]=UTF16ToString;Module[\"stringToUTF16\"]=stringToUTF16;Module[\"UTF32ToString\"]=UTF32ToString;Module[\"stringToUTF32\"]=stringToUTF32;Module[\"writeArrayToMemory\"]=writeArrayToMemory;var calledRun;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(){var entryFunction=_main;var argc=0;var argv=0;try{var ret=entryFunction(argc,argv);exitJS(ret,true);return ret}catch(e){return handleException(e)}}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();preMain();readyPromiseResolve(Module);if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();if(shouldRunNow)callMain();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}var shouldRunNow=true;if(Module[\"noInitialRun\"])shouldRunNow=false;run();(function(){const AsyncFunction=Object.getPrototypeOf(async function(){}).constructor;let pAsyncFlags=0;Module[\"set_authorizer\"]=function(db,xAuthorizer,pApp){if(pAsyncFlags){Module[\"deleteCallback\"](pAsyncFlags);Module[\"_sqlite3_free\"](pAsyncFlags);pAsyncFlags=0}pAsyncFlags=Module[\"_sqlite3_malloc\"](4);setValue(pAsyncFlags,xAuthorizer instanceof AsyncFunction?1:0,\"i32\");const result=ccall(\"libauthorizer_set_authorizer\",\"number\",[\"number\",\"number\",\"number\"],[db,xAuthorizer?1:0,pAsyncFlags]);if(!result&&xAuthorizer){Module[\"setCallback\"](pAsyncFlags,(_,iAction,p3,p4,p5,p6)=>xAuthorizer(pApp,iAction,p3,p4,p5,p6))}return result}})();(function(){const AsyncFunction=Object.getPrototypeOf(async function(){}).constructor;const FUNC_METHODS=[\"xFunc\",\"xStep\",\"xFinal\"];const mapFunctionNameToKey=new Map;Module[\"create_function\"]=function(db,zFunctionName,nArg,eTextRep,pApp,xFunc,xStep,xFinal){const pAsyncFlags=Module[\"_sqlite3_malloc\"](4);const target={xFunc:xFunc,xStep:xStep,xFinal:xFinal};setValue(pAsyncFlags,FUNC_METHODS.reduce((mask,method,i)=>{if(target[method]instanceof AsyncFunction){return mask|1<<i}return mask},0),\"i32\");const result=ccall(\"libfunction_create_function\",\"number\",[\"number\",\"string\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"],[db,zFunctionName,nArg,eTextRep,pAsyncFlags,xFunc?1:0,xStep?1:0,xFinal?1:0]);if(!result){if(mapFunctionNameToKey.has(zFunctionName)){const oldKey=mapFunctionNameToKey.get(zFunctionName);Module[\"deleteCallback\"](oldKey)}mapFunctionNameToKey.set(zFunctionName,pAsyncFlags);Module[\"setCallback\"](pAsyncFlags,{xFunc:xFunc,xStep:xStep,xFinal:xFinal})}return result}})();(function(){const AsyncFunction=Object.getPrototypeOf(async function(){}).constructor;let pAsyncFlags=0;Module[\"update_hook\"]=function(db,xUpdateHook){if(pAsyncFlags){Module[\"deleteCallback\"](pAsyncFlags);Module[\"_sqlite3_free\"](pAsyncFlags);pAsyncFlags=0}pAsyncFlags=Module[\"_sqlite3_malloc\"](4);setValue(pAsyncFlags,xUpdateHook instanceof AsyncFunction?1:0,\"i32\");ccall(\"libhook_update_hook\",\"void\",[\"number\",\"number\",\"number\"],[db,xUpdateHook?1:0,pAsyncFlags]);if(xUpdateHook){Module[\"setCallback\"](pAsyncFlags,(_,iUpdateType,dbName,tblName,lo32,hi32)=>xUpdateHook(iUpdateType,dbName,tblName,lo32,hi32))}}})();(function(){const AsyncFunction=Object.getPrototypeOf(async function(){}).constructor;let pAsyncFlags=0;Module[\"commit_hook\"]=function(db,xCommitHook){if(pAsyncFlags){Module[\"deleteCallback\"](pAsyncFlags);Module[\"_sqlite3_free\"](pAsyncFlags);pAsyncFlags=0}pAsyncFlags=Module[\"_sqlite3_malloc\"](4);setValue(pAsyncFlags,xCommitHook instanceof AsyncFunction?1:0,\"i32\");ccall(\"libhook_commit_hook\",\"void\",[\"number\",\"number\",\"number\"],[db,xCommitHook?1:0,pAsyncFlags]);if(xCommitHook){Module[\"setCallback\"](pAsyncFlags,_=>xCommitHook())}}})();(function(){const AsyncFunction=Object.getPrototypeOf(async function(){}).constructor;let pAsyncFlags=0;Module[\"progress_handler\"]=function(db,nOps,xProgress,pApp){if(pAsyncFlags){Module[\"deleteCallback\"](pAsyncFlags);Module[\"_sqlite3_free\"](pAsyncFlags);pAsyncFlags=0}pAsyncFlags=Module[\"_sqlite3_malloc\"](4);setValue(pAsyncFlags,xProgress instanceof AsyncFunction?1:0,\"i32\");ccall(\"libprogress_progress_handler\",\"number\",[\"number\",\"number\",\"number\",\"number\"],[db,nOps,xProgress?1:0,pAsyncFlags]);if(xProgress){Module[\"setCallback\"](pAsyncFlags,_=>xProgress(pApp))}}})();(function(){const VFS_METHODS=[\"xOpen\",\"xDelete\",\"xAccess\",\"xFullPathname\",\"xRandomness\",\"xSleep\",\"xCurrentTime\",\"xGetLastError\",\"xCurrentTimeInt64\",\"xClose\",\"xRead\",\"xWrite\",\"xTruncate\",\"xSync\",\"xFileSize\",\"xLock\",\"xUnlock\",\"xCheckReservedLock\",\"xFileControl\",\"xSectorSize\",\"xDeviceCharacteristics\",\"xShmMap\",\"xShmLock\",\"xShmBarrier\",\"xShmUnmap\"];const mapVFSNameToKey=new Map;Module[\"vfs_register\"]=function(vfs,makeDefault){let methodMask=0;let asyncMask=0;VFS_METHODS.forEach((method,i)=>{if(vfs[method]){methodMask|=1<<i;if(vfs[\"hasAsyncMethod\"](method)){asyncMask|=1<<i}}});const vfsReturn=Module[\"_sqlite3_malloc\"](4);try{const result=ccall(\"libvfs_vfs_register\",\"number\",[\"string\",\"number\",\"number\",\"number\",\"number\",\"number\"],[vfs.name,vfs.mxPathname,methodMask,asyncMask,makeDefault?1:0,vfsReturn]);if(!result){if(mapVFSNameToKey.has(vfs.name)){const oldKey=mapVFSNameToKey.get(vfs.name);Module[\"deleteCallback\"](oldKey)}const key=getValue(vfsReturn,\"*\");mapVFSNameToKey.set(vfs.name,key);Module[\"setCallback\"](key,vfs)}return result}finally{Module[\"_sqlite3_free\"](vfsReturn)}}})();moduleRtn=readyPromise;\n\n\n return moduleRtn;\n}\n);\n})();\nexport default Module;\n","__webpack_require__.d = (exports, getters, values) => {\n\tvar define = (defs, kind) => {\n\t\tfor(var key in defs) {\n\t\t\tif(__webpack_require__.o(defs, key) && !__webpack_require__.o(exports, key)) {\n\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, [kind]: defs[key] });\n\t\t\t}\n\t\t}\n\t};\n\tdefine(getters, \"get\");\n\tdefine(values, \"value\");\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","// Copyright 2024 Roy T. Hashimoto. All Rights Reserved.\nimport * as VFS from './sqlite-constants.js';\nexport * from './sqlite-constants.js';\n\nconst DEFAULT_SECTOR_SIZE = 512;\n\n// Base class for a VFS.\nexport class Base {\n name;\n mxPathname = 64;\n _module;\n\n /**\n * @param {string} name \n * @param {object} module \n */\n constructor(name, module) {\n this.name = name;\n this._module = module;\n }\n\n /**\n * @returns {void|Promise<void>} \n */\n close() {\n }\n\n /**\n * @returns {boolean|Promise<boolean>}\n */\n isReady() {\n return true;\n }\n\n /**\n * Overload in subclasses to indicate which methods are asynchronous.\n * @param {string} methodName \n * @returns {boolean}\n */\n hasAsyncMethod(methodName) {\n return false;\n }\n\n /**\n * @param {number} pVfs \n * @param {number} zName \n * @param {number} pFile \n * @param {number} flags \n * @param {number} pOutFlags \n * @returns {number|Promise<number>}\n */\n xOpen(pVfs, zName, pFile, flags, pOutFlags) {\n return VFS.SQLITE_CANTOPEN;\n }\n\n /**\n * @param {number} pVfs \n * @param {number} zName \n * @param {number} syncDir \n * @returns {number|Promise<number>}\n */\n xDelete(pVfs, zName, syncDir) {\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} pVfs \n * @param {number} zName \n * @param {number} flags \n * @param {number} pResOut \n * @returns {number|Promise<number>}\n */\n xAccess(pVfs, zName, flags, pResOut) {\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} pVfs \n * @param {number} zName \n * @param {number} nOut \n * @param {number} zOut \n * @returns {number|Promise<number>}\n */\n xFullPathname(pVfs, zName, nOut, zOut) {\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} pVfs \n * @param {number} nBuf \n * @param {number} zBuf \n * @returns {number|Promise<number>}\n */\n xGetLastError(pVfs, nBuf, zBuf) {\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} pFile \n * @returns {number|Promise<number>}\n */\n xClose(pFile) {\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} pFile \n * @param {number} pData \n * @param {number} iAmt \n * @param {number} iOffsetLo \n * @param {number} iOffsetHi \n * @returns {number|Promise<number>}\n */\n xRead(pFile, pData, iAmt, iOffsetLo, iOffsetHi) {\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} pFile \n * @param {number} pData \n * @param {number} iAmt \n * @param {number} iOffsetLo \n * @param {number} iOffsetHi \n * @returns {number|Promise<number>}\n */\n xWrite(pFile, pData, iAmt, iOffsetLo, iOffsetHi) {\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} pFile \n * @param {number} sizeLo \n * @param {number} sizeHi \n * @returns {number|Promise<number>}\n */\n xTruncate(pFile, sizeLo, sizeHi) {\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} pFile \n * @param {number} flags \n * @returns {number|Promise<number>}\n */\n xSync(pFile, flags) {\n return VFS.SQLITE_OK;\n }\n\n /**\n * \n * @param {number} pFile \n * @param {number} pSize \n * @returns {number|Promise<number>}\n */\n xFileSize(pFile, pSize) {\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} pFile \n * @param {number} lockType \n * @returns {number|Promise<number>}\n */\n xLock(pFile, lockType) {\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} pFile \n * @param {number} lockType \n * @returns {number|Promise<number>}\n */\n xUnlock(pFile, lockType) {\n return VFS.SQLITE_OK;\n } \n\n /**\n * @param {number} pFile \n * @param {number} pResOut \n * @returns {number|Promise<number>}\n */\n xCheckReservedLock(pFile, pResOut) {\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} pFile \n * @param {number} op \n * @param {number} pArg \n * @returns {number|Promise<number>}\n */\n xFileControl(pFile, op, pArg) {\n return VFS.SQLITE_NOTFOUND;\n }\n\n /**\n * @param {number} pFile \n * @returns {number|Promise<number>}\n */\n xSectorSize(pFile) {\n return DEFAULT_SECTOR_SIZE;\n }\n\n /**\n * @param {number} pFile \n * @returns {number|Promise<number>}\n */\n xDeviceCharacteristics(pFile) {\n return 0;\n }\n}\n\nexport const FILE_TYPE_MASK = [\n VFS.SQLITE_OPEN_MAIN_DB,\n VFS.SQLITE_OPEN_MAIN_JOURNAL,\n VFS.SQLITE_OPEN_TEMP_DB,\n VFS.SQLITE_OPEN_TEMP_JOURNAL,\n VFS.SQLITE_OPEN_TRANSIENT_DB,\n VFS.SQLITE_OPEN_SUBJOURNAL,\n VFS.SQLITE_OPEN_SUPER_JOURNAL,\n VFS.SQLITE_OPEN_WAL\n].reduce((mask, element) => mask | element);","// Copyright 2024 Roy T. Hashimoto. All Rights Reserved.\nimport * as VFS from './VFS.js';\n\nconst AsyncFunction = Object.getPrototypeOf(async function(){}).constructor;\n\n// Convenience base class for a JavaScript VFS.\n// The raw xOpen, xRead, etc. function signatures receive only C primitives\n// which aren't easy to work with. This class provides corresponding calls\n// like jOpen, jRead, etc., which receive JavaScript-friendlier arguments\n// such as string, Uint8Array, and DataView.\nexport class FacadeVFS extends VFS.Base {\n /**\n * @param {string} name \n * @param {object} module \n */\n constructor(name, module) {\n super(name, module);\n }\n\n /**\n * Override to indicate which methods are asynchronous.\n * @param {string} methodName \n * @returns {boolean}\n */\n hasAsyncMethod(methodName) {\n // The input argument is a string like \"xOpen\", so convert to \"jOpen\".\n // Then check if the method exists and is async.\n const jMethodName = `j${methodName.slice(1)}`;\n return this[jMethodName] instanceof AsyncFunction;\n }\n \n /**\n * Return the filename for a file id for use by mixins.\n * @param {number} pFile \n * @returns {string}\n */\n getFilename(pFile) {\n throw new Error('unimplemented');\n }\n\n /**\n * @param {string?} filename \n * @param {number} pFile \n * @param {number} flags \n * @param {DataView} pOutFlags \n * @returns {number|Promise<number>}\n */\n jOpen(filename, pFile, flags, pOutFlags) {\n return VFS.SQLITE_CANTOPEN;\n }\n\n /**\n * @param {string} filename \n * @param {number} syncDir \n * @returns {number|Promise<number>}\n */\n jDelete(filename, syncDir) {\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {string} filename \n * @param {number} flags \n * @param {DataView} pResOut \n * @returns {number|Promise<number>}\n */\n jAccess(filename, flags, pResOut) {\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {string} filename \n * @param {Uint8Array} zOut \n * @returns {number|Promise<number>}\n */\n jFullPathname(filename, zOut) {\n // Copy the filename to the output buffer.\n const { read, written } = new TextEncoder().encodeInto(filename, zOut);\n if (read < filename.length) return VFS.SQLITE_IOERR;\n if (written >= zOut.length) return VFS.SQLITE_IOERR;\n zOut[written] = 0;\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {Uint8Array} zBuf \n * @returns {number|Promise<number>}\n */\n jGetLastError(zBuf) {\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} pFile \n * @returns {number|Promise<number>}\n */\n jClose(pFile) {\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} pFile \n * @param {Uint8Array} pData \n * @param {number} iOffset \n * @returns {number|Promise<number>}\n */\n jRead(pFile, pData, iOffset) {\n pData.fill(0);\n return VFS.SQLITE_IOERR_SHORT_READ;\n }\n\n /**\n * @param {number} pFile \n * @param {Uint8Array} pData \n * @param {number} iOffset \n * @returns {number|Promise<number>}\n */\n jWrite(pFile, pData, iOffset) {\n return VFS.SQLITE_IOERR_WRITE;\n }\n\n /**\n * @param {number} pFile \n * @param {number} size \n * @returns {number|Promise<number>}\n */\n jTruncate(pFile, size) {\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} pFile \n * @param {number} flags \n * @returns {number|Promise<number>}\n */\n jSync(pFile, flags) {\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} pFile \n * @param {DataView} pSize\n * @returns {number|Promise<number>}\n */\n jFileSize(pFile, pSize) {\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} pFile \n * @param {number} lockType \n * @returns {number|Promise<number>}\n */\n jLock(pFile, lockType) {\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} pFile \n * @param {number} lockType \n * @returns {number|Promise<number>}\n */\n jUnlock(pFile, lockType) {\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} pFile \n * @param {DataView} pResOut \n * @returns {number|Promise<number>}\n */\n jCheckReservedLock(pFile, pResOut) {\n pResOut.setInt32(0, 0, true);\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} pFile\n * @param {number} op\n * @param {DataView} pArg\n * @returns {number|Promise<number>}\n */\n jFileControl(pFile, op, pArg) {\n return VFS.SQLITE_NOTFOUND;\n }\n\n /**\n * @param {number} pFile\n * @returns {number|Promise<number>}\n */\n jSectorSize(pFile) {\n return super.xSectorSize(pFile);\n }\n\n /**\n * @param {number} pFile\n * @returns {number|Promise<number>}\n */\n jDeviceCharacteristics(pFile) {\n return 0;\n }\n\n /**\n * @param {number} pVfs \n * @param {number} zName \n * @param {number} pFile \n * @param {number} flags \n * @param {number} pOutFlags \n * @returns {number|Promise<number>}\n */\n xOpen(pVfs, zName, pFile, flags, pOutFlags) {\n const filename = this.#decodeFilename(zName, flags);\n const pOutFlagsView = this.#makeTypedDataView('Int32', pOutFlags);\n this['log']?.('jOpen', filename, pFile, '0x' + flags.toString(16));\n return this.jOpen(filename, pFile, flags, pOutFlagsView);\n }\n\n /**\n * @param {number} pVfs \n * @param {number} zName \n * @param {number} syncDir \n * @returns {number|Promise<number>}\n */\n xDelete(pVfs, zName, syncDir) {\n const filename = this._module.UTF8ToString(zName);\n this['log']?.('jDelete', filename, syncDir);\n return this.jDelete(filename, syncDir);\n }\n\n /**\n * @param {number} pVfs \n * @param {number} zName \n * @param {number} flags \n * @param {number} pResOut \n * @returns {number|Promise<number>}\n */\n xAccess(pVfs, zName, flags, pResOut) {\n const filename = this._module.UTF8ToString(zName);\n const pResOutView = this.#makeTypedDataView('Int32', pResOut);\n this['log']?.('jAccess', filename, flags);\n return this.jAccess(filename, flags, pResOutView);\n }\n\n /**\n * @param {number} pVfs \n * @param {number} zName \n * @param {number} nOut \n * @param {number} zOut \n * @returns {number|Promise<number>}\n */\n xFullPathname(pVfs, zName, nOut, zOut) {\n const filename = this._module.UTF8ToString(zName);\n const zOutArray = this._module.HEAPU8.subarray(zOut, zOut + nOut);\n this['log']?.('jFullPathname', filename, nOut);\n return this.jFullPathname(filename, zOutArray);\n }\n\n /**\n * @param {number} pVfs \n * @param {number} nBuf \n * @param {number} zBuf \n * @returns {number|Promise<number>}\n */\n xGetLastError(pVfs, nBuf, zBuf) {\n const zBufArray = this._module.HEAPU8.subarray(zBuf, zBuf + nBuf);\n this['log']?.('jGetLastError', nBuf);\n return this.jGetLastError(zBufArray);\n }\n\n /**\n * @param {number} pFile \n * @returns {number|Promise<number>}\n */\n xClose(pFile) {\n this['log']?.('jClose', pFile);\n return this.jClose(pFile);\n }\n\n /**\n * @param {number} pFile \n * @param {number} pData \n * @param {number} iAmt \n * @param {number} iOffsetLo \n * @param {number} iOffsetHi \n * @returns {number|Promise<number>}\n */\n xRead(pFile, pData, iAmt, iOffsetLo, iOffsetHi) {\n const pDataArray = this.#makeDataArray(pData, iAmt);\n const iOffset = delegalize(iOffsetLo, iOffsetHi);\n this['log']?.('jRead', pFile, iAmt, iOffset);\n return this.jRead(pFile, pDataArray, iOffset);\n }\n\n /**\n * @param {number} pFile \n * @param {number} pData \n * @param {number} iAmt \n * @param {number} iOffsetLo \n * @param {number} iOffsetHi \n * @returns {number|Promise<number>}\n */\n xWrite(pFile, pData, iAmt, iOffsetLo, iOffsetHi) {\n const pDataArray = this.#makeDataArray(pData, iAmt);\n const iOffset = delegalize(iOffsetLo, iOffsetHi);\n this['log']?.('jWrite', pFile, pDataArray, iOffset);\n return this.jWrite(pFile, pDataArray, iOffset);\n }\n\n /**\n * @param {number} pFile \n * @param {number} sizeLo \n * @param {number} sizeHi \n * @returns {number|Promise<number>}\n */\n xTruncate(pFile, sizeLo, sizeHi) {\n const size = delegalize(sizeLo, sizeHi);\n this['log']?.('jTruncate', pFile, size);\n return this.jTruncate(pFile, size);\n }\n\n /**\n * @param {number} pFile \n * @param {number} flags \n * @returns {number|Promise<number>}\n */\n xSync(pFile, flags) {\n this['log']?.('jSync', pFile, flags);\n return this.jSync(pFile, flags);\n }\n\n /**\n * \n * @param {number} pFile \n * @param {number} pSize \n * @returns {number|Promise<number>}\n */\n xFileSize(pFile, pSize) {\n const pSizeView = this.#makeTypedDataView('BigInt64', pSize);\n this['log']?.('jFileSize', pFile);\n return this.jFileSize(pFile, pSizeView);\n }\n\n /**\n * @param {number} pFile \n * @param {number} lockType \n * @returns {number|Promise<number>}\n */\n xLock(pFile, lockType) {\n this['log']?.('jLock', pFile, lockType);\n return this.jLock(pFile, lockType);\n }\n\n /**\n * @param {number} pFile \n * @param {number} lockType \n * @returns {number|Promise<number>}\n */\n xUnlock(pFile, lockType) {\n this['log']?.('jUnlock', pFile, lockType);\n return this.jUnlock(pFile, lockType);\n } \n\n /**\n * @param {number} pFile \n * @param {number} pResOut \n * @returns {number|Promise<number>}\n */\n xCheckReservedLock(pFile, pResOut) {\n const pResOutView = this.#makeTypedDataView('Int32', pResOut);\n this['log']?.('jCheckReservedLock', pFile);\n return this.jCheckReservedLock(pFile, pResOutView);\n }\n\n /**\n * @param {number} pFile \n * @param {number} op \n * @param {number} pArg \n * @returns {number|Promise<number>}\n */\n xFileControl(pFile, op, pArg) {\n const pArgView = new DataView(\n this._module.HEAPU8.buffer,\n this._module.HEAPU8.byteOffset + pArg);\n this['log']?.('jFileControl', pFile, op, pArgView);\n return this.jFileControl(pFile, op, pArgView);\n }\n\n /**\n * @param {number} pFile \n * @returns {number|Promise<number>}\n */\n xSectorSize(pFile) {\n this['log']?.('jSectorSize', pFile);\n return this.jSectorSize(pFile);\n }\n\n /**\n * @param {number} pFile \n * @returns {number|Promise<number>}\n */\n xDeviceCharacteristics(pFile) {\n this['log']?.('jDeviceCharacteristics', pFile);\n return this.jDeviceCharacteristics(pFile);\n }\n\n /**\n * Wrapped DataView for pointer arguments.\n * Pointers to a single value are passed using a DataView-like class.\n * This wrapper class prevents use of incorrect type or endianness, and\n * reacquires the underlying buffer when the WebAssembly memory is resized.\n * @param {'Int32'|'BigInt64'} type \n * @param {number} byteOffset \n * @returns {DataView}\n */\n #makeTypedDataView(type, byteOffset) {\n // @ts-ignore\n return new DataViewProxy(this._module, byteOffset, type);\n }\n\n /**\n * Wrapped Uint8Array for buffer arguments.\n * Memory blocks are passed as a Uint8Array-like class. This wrapper\n * class reacquires the underlying buffer when the WebAssembly memory\n * is resized.\n * @param {number} byteOffset \n * @param {number} byteLength \n * @returns {Uint8Array}\n */\n #makeDataArray(byteOffset, byteLength) {\n // @ts-ignore\n return new Uint8ArrayProxy(this._module, byteOffset, byteLength);\n }\n\n #decodeFilename(zName, flags) {\n if (flags & VFS.SQLITE_OPEN_URI) {\n // The first null-terminated string is the URI path. Subsequent\n // strings are query parameter keys and values.\n // https://www.sqlite.org/c3ref/open.html#urifilenamesinsqlite3open\n let pName = zName;\n let state = 1;\n const charCodes = [];\n while (state) {\n const charCode = this._module.HEAPU8[pName++];\n if (charCode) {\n charCodes.push(charCode);\n } else {\n if (!this._module.HEAPU8[pName]) state = null;\n switch (state) {\n case 1: // path\n charCodes.push('?'.charCodeAt(0));\n state = 2;\n break;\n case 2: // key\n charCodes.push('='.charCodeAt(0));\n state = 3;\n break;\n case 3: // value\n charCodes.push('&'.charCodeAt(0));\n state = 2;\n break;\n }\n }\n }\n return new TextDecoder().decode(new Uint8Array(charCodes));\n }\n return zName ? this._module.UTF8ToString(zName) : null;\n }\n}\n\n// Emscripten \"legalizes\" 64-bit integer arguments by passing them as\n// two 32-bit signed integers.\nfunction delegalize(lo32, hi32) {\n return (hi32 * 0x100000000) + lo32 + (lo32 < 0 ? 2**32 : 0);\n}\n\n// This class provides a Uint8Array-like interface for a WebAssembly memory\n// buffer. It is used to access memory blocks passed as arguments to\n// xRead, xWrite, etc. The class reacquires the underlying buffer when the\n// WebAssembly memory is resized, which can happen when the memory is\n// detached and resized by the WebAssembly module.\n//\n// Note that although this class implements the same methods as Uint8Array,\n// it is not a real Uint8Array and passing it to functions that expect\n// a Uint8Array may not work. Use subarray() to get a real Uint8Array\n// if needed.\nclass Uint8ArrayProxy {\n #module;\n\n #_array = new Uint8Array()\n get #array() {\n if (this.#_array.buffer.byteLength === 0) {\n // WebAssembly memory resize detached the buffer so re-create the\n // array with the new buffer.\n this.#_array = this.#module.HEAPU8.subarray(\n this.byteOffset,\n this.byteOffset + this.byteLength);\n }\n return this.#_array;\n }\n\n /**\n * @param {*} module\n * @param {number} byteOffset \n * @param {number} byteLength \n */\n constructor(module, byteOffset, byteLength) {\n this.#module = module;\n this.byteOffset = byteOffset;\n this.length = this.byteLength = byteLength;\n }\n\n get buffer() {\n return this.#array.buffer;\n }\n\n at(index) {\n return this.#array.at(index);\n }\n copyWithin(target, start, end) {\n this.#array.copyWithin(target, start, end);\n }\n entries() {\n return this.#array.entries();\n }\n every(predicate) {\n return this.#array.every(predicate);\n }\n fill(value, start, end) {\n this.#array.fill(value, start, end);\n }\n filter(predicate) {\n return this.#array.filter(predicate);\n }\n find(predicate) {\n return this.#array.find(predicate);\n }\n findIndex(predicate) {\n return this.#array.findIndex(predicate);\n }\n findLast(predicate) {\n return this.#array.findLast(predicate);\n }\n findLastIndex(predicate) {\n return this.#array.findLastIndex(predicate);\n }\n forEach(callback) {\n this.#array.forEach(callback);\n }\n includes(value, start) {\n return this.#array.includes(value, start);\n }\n indexOf(value, start) {\n return this.#array.indexOf(value, start);\n }\n join(separator) {\n return this.#array.join(separator);\n }\n keys() {\n return this.#array.keys();\n }\n lastIndexOf(value, start) {\n return this.#array.lastIndexOf(value, start);\n }\n map(callback) {\n return this.#array.map(callback);\n }\n reduce(callback, initialValue) {\n return this.#array.reduce(callback, initialValue);\n }\n reduceRight(callback, initialValue) {\n return this.#array.reduceRight(callback, initialValue);\n }\n reverse() {\n this.#array.reverse();\n }\n set(array, offset) {\n this.#array.set(array, offset);\n }\n slice(start, end) {\n return this.#array.slice(start, end);\n }\n some(predicate) {\n return this.#array.some(predicate);\n }\n sort(compareFn) {\n this.#array.sort(compareFn);\n }\n subarray(begin, end) {\n return this.#array.subarray(begin, end);\n }\n toLocaleString(locales, options) {\n // @ts-ignore\n return this.#array.toLocaleString(locales, options);\n }\n toReversed() {\n return this.#array.toReversed();\n }\n toSorted(compareFn) {\n return this.#array.toSorted(compareFn);\n }\n toString() {\n return this.#array.toString();\n }\n values() {\n return this.#array.values();\n }\n with(index, value) {\n return this.#array.with(index, value);\n }\n [Symbol.iterator]() {\n return this.#array[Symbol.iterator]();\n }\n}\n\n// This class provides a DataView-like interface for a WebAssembly memory\n// buffer, restricted to either Int32 or BigInt64 types. It also reacquires\n// the underlying buffer when the WebAssembly memory is resized, which can\n// happen when the memory is detached and resized by the WebAssembly module.\nclass DataViewProxy {\n #module;\n #type;\n\n #_view = new DataView(new ArrayBuffer(0));\n get #view() {\n if (this.#_view.buffer.byteLength === 0) {\n // WebAssembly memory resize detached the buffer so re-create the\n // view with the new buffer.\n this.#_view = new DataView(\n this.#module.HEAPU8.buffer,\n this.#module.HEAPU8.byteOffset + this.byteOffset);\n }\n return this.#_view;\n }\n\n /**\n * @param {*} module\n * @param {number} byteOffset \n * @param {'Int32'|'BigInt64'} type\n */\n constructor(module, byteOffset, type) {\n this.#module = module;\n this.byteOffset = byteOffset;\n this.#type = type;\n }\n\n get buffer() {\n return this.#view.buffer;\n }\n get byteLength() {\n return this.#type === 'Int32' ? 4 : 8;\n }\n\n getInt32(byteOffset, littleEndian) {\n if (this.#type !== 'Int32') {\n throw new Error('invalid type');\n }\n if (!littleEndian) throw new Error('must be little endian');\n return this.#view.getInt32(byteOffset, littleEndian);\n }\n setInt32(byteOffset, value, littleEndian) {\n if (this.#type !== 'Int32') {\n throw new Error('invalid type');\n }\n if (!littleEndian) throw new Error('must be little endian');\n this.#view.setInt32(byteOffset, value, littleEndian);\n }\n getBigInt64(byteOffset, littleEndian) {\n if (this.#type !== 'BigInt64') {\n throw new Error('invalid type');\n }\n if (!littleEndian) throw new Error('must be little endian');\n return this.#view.getBigInt64(byteOffset, littleEndian);\n }\n setBigInt64(byteOffset, value, littleEndian) {\n if (this.#type !== 'BigInt64') {\n throw new Error('invalid type');\n }\n if (!littleEndian) throw new Error('must be little endian');\n this.#view.setBigInt64(byteOffset, value, littleEndian);\n }\n}","// Copyright 2024 Roy T. Hashimoto. All Rights Reserved.\nimport { FacadeVFS } from '../FacadeVFS.js';\nimport * as VFS from '../VFS.js';\n\n// Sample in-memory filesystem.\nexport class MemoryVFS extends FacadeVFS {\n // Map of existing files, keyed by filename.\n mapNameToFile = new Map();\n\n // Map of open files, keyed by id (sqlite3_file pointer).\n mapIdToFile = new Map();\n\n static async create(name, module) {\n const vfs = new MemoryVFS(name, module);\n await vfs.isReady();\n return vfs;\n }\n\n constructor(name, module) {\n super(name, module);\n }\n\n close() {\n for (const fileId of this.mapIdToFile.keys()) {\n this.jClose(fileId);\n }\n }\n\n /**\n * @param {string?} filename \n * @param {number} fileId \n * @param {number} flags \n * @param {DataView} pOutFlags \n * @returns {number|Promise<number>}\n */\n jOpen(filename, fileId, flags, pOutFlags) {\n const url = new URL(filename || Math.random().toString(36).slice(2), 'file://');\n const pathname = url.pathname;\n\n let file = this.mapNameToFile.get(pathname);\n if (!file) {\n if (flags & VFS.SQLITE_OPEN_CREATE) {\n // Create a new file object.\n file = {\n pathname,\n flags,\n size: 0,\n data: new ArrayBuffer(0)\n };\n this.mapNameToFile.set(pathname, file);\n } else {\n return VFS.SQLITE_CANTOPEN;\n }\n }\n\n // Put the file in the opened files map.\n this.mapIdToFile.set(fileId, file);\n pOutFlags.setInt32(0, flags, true);\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} fileId \n * @returns {number|Promise<number>}\n */\n jClose(fileId) {\n const file = this.mapIdToFile.get(fileId);\n this.mapIdToFile.delete(fileId);\n\n if (file.flags & VFS.SQLITE_OPEN_DELETEONCLOSE) {\n this.mapNameToFile.delete(file.pathname);\n }\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} fileId \n * @param {Uint8Array} pData \n * @param {number} iOffset\n * @returns {number|Promise<number>}\n */\n jRead(fileId, pData, iOffset) {\n const file = this.mapIdToFile.get(fileId);\n\n // Clip the requested read to the file boundary.\n const bgn = Math.min(iOffset, file.size);\n const end = Math.min(iOffset + pData.byteLength, file.size);\n const nBytes = end - bgn;\n\n if (nBytes) {\n pData.set(new Uint8Array(file.data, bgn, nBytes));\n }\n\n if (nBytes < pData.byteLength) {\n // Zero unused area of read buffer.\n pData.fill(0, nBytes);\n return VFS.SQLITE_IOERR_SHORT_READ;\n }\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} fileId \n * @param {Uint8Array} pData \n * @param {number} iOffset\n * @returns {number|Promise<number>}\n */\n jWrite(fileId, pData, iOffset) {\n const file = this.mapIdToFile.get(fileId);\n if (iOffset + pData.byteLength > file.data.byteLength) {\n // Resize the ArrayBuffer to hold more data.\n const newSize = Math.max(iOffset + pData.byteLength, 2 * file.data.byteLength);\n const data = new ArrayBuffer(newSize);\n new Uint8Array(data).set(new Uint8Array(file.data, 0, file.size));\n file.data = data;\n }\n\n // Copy data.\n new Uint8Array(file.data, iOffset, pData.byteLength).set(pData.subarray());\n file.size = Math.max(file.size, iOffset + pData.byteLength);\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} fileId \n * @param {number} iSize \n * @returns {number|Promise<number>}\n */\n jTruncate(fileId, iSize) {\n const file = this.mapIdToFile.get(fileId);\n\n // For simplicity we don't make the ArrayBuffer smaller.\n file.size = Math.min(file.size, iSize);\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} fileId \n * @param {DataView} pSize64 \n * @returns {number|Promise<number>}\n */\n jFileSize(fileId, pSize64) {\n const file = this.mapIdToFile.get(fileId);\n\n pSize64.setBigInt64(0, BigInt(file.size), true);\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {string} name \n * @param {number} syncDir \n * @returns {number|Promise<number>}\n */\n jDelete(name, syncDir) {\n const url = new URL(name, 'file://');\n const pathname = url.pathname;\n\n this.mapNameToFile.delete(pathname);\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {string} name \n * @param {number} flags \n * @param {DataView} pResOut \n * @returns {number|Promise<number>}\n */\n jAccess(name, flags, pResOut) {\n const url = new URL(name, 'file://');\n const pathname = url.pathname;\n\n const file = this.mapNameToFile.get(pathname);\n pResOut.setInt32(0, file ? 1 : 0, true);\n return VFS.SQLITE_OK;\n }\n}\n","// Copyright 2024 Roy T. Hashimoto. All Rights Reserved.\nimport { MemoryVFS } from './MemoryVFS.js';\n\n// Sample asynchronous in-memory filesystem. This filesystem requires an\n// asynchronous WebAssembly build (Asyncify or JSPI).\nexport class MemoryAsyncVFS extends MemoryVFS {\n\n static async create(name, module) {\n const vfs = new MemoryVFS(name, module);\n await vfs.isReady();\n return vfs;\n }\n\n constructor(name, module) {\n super(name, module);\n }\n\n async close() {\n for (const fileId of this.mapIdToFile.keys()) {\n await this.xClose(fileId);\n }\n }\n\n /**\n * @param {string?} name \n * @param {number} fileId \n * @param {number} flags \n * @param {DataView} pOutFlags \n * @returns {Promise<number>}\n */\n async jOpen(name, fileId, flags, pOutFlags) {\n return super.jOpen(name, fileId, flags, pOutFlags);\n }\n\n /**\n * @param {number} fileId \n * @returns {Promise<number>}\n */\n async jClose(fileId) {\n return super.jClose(fileId);\n }\n\n /**\n * @param {number} fileId \n * @param {Uint8Array} pData \n * @param {number} iOffset\n * @returns {Promise<number>}\n */\n async jRead(fileId, pData, iOffset) {\n return super.jRead(fileId, pData, iOffset);\n }\n\n /**\n * @param {number} fileId \n * @param {Uint8Array} pData \n * @param {number} iOffset\n * @returns {Promise<number>}\n */\n async jWrite(fileId, pData, iOffset) {\n return super.jWrite(fileId, pData, iOffset);\n }\n\n /**\n * @param {number} fileId \n * @param {number} iSize \n * @returns {Promise<number>}\n */\n async xTruncate(fileId, iSize) {\n return super.jTruncate(fileId, iSize);\n }\n\n /**\n * @param {number} fileId \n * @param {DataView} pSize64 \n * @returns {Promise<number>}\n */\n async jFileSize(fileId, pSize64) {\n return super.jFileSize(fileId, pSize64);\n }\n\n /**\n * \n * @param {string} name \n * @param {number} syncDir \n * @returns {Promise<number>}\n */\n async jDelete(name, syncDir) {\n return super.jDelete(name, syncDir);\n }\n\n /**\n * @param {string} name \n * @param {number} flags \n * @param {DataView} pResOut \n * @returns {Promise<number>}\n */\n async jAccess(name, flags, pResOut) {\n return super.jAccess(name, flags, pResOut);\n }\n}\n","import * as VFS from './VFS.js';\n\n// Options for navigator.locks.request().\n/** @type {LockOptions} */ const SHARED = { mode: 'shared' };\n/** @type {LockOptions} */ const POLL_SHARED = { ifAvailable: true, mode: 'shared' };\n/** @type {LockOptions} */ const POLL_EXCLUSIVE = { ifAvailable: true, mode: 'exclusive' };\n\nconst POLICIES = ['exclusive', 'shared', 'shared+hint'];\n\n/**\n * @typedef LockState\n * @property {string} baseName\n * @property {number} type\n * @property {boolean} writeHint\n * \n * These properties are functions that release a specific lock.\n * @property {(() => void)?} [gate]\n * @property {(() => void)?} [access]\n * @property {(() => void)?} [reserved]\n * @property {(() => void)?} [hint]\n */\n\n/**\n * Mix-in for FacadeVFS that implements the SQLite VFS locking protocol.\n * @param {*} superclass FacadeVFS (or subclass)\n * @returns \n */\nexport const WebLocksMixin = superclass => class extends superclass {\n #options = {\n lockPolicy: 'exclusive',\n lockTimeout: Infinity\n };\n\n /** @type {Map<number, LockState>} */ #mapIdToState = new Map();\n\n constructor(name, module, options) {\n super(name, module, options);\n Object.assign(this.#options, options);\n if (POLICIES.indexOf(this.#options.lockPolicy) === -1) {\n throw new Error(`WebLocksMixin: invalid lock mode: ${options.lockPolicy}`);\n }\n }\n\n /**\n * @param {number} fileId \n * @param {number} lockType \n * @returns {Promise<number>}\n */\n async jLock(fileId, lockType) {\n try {\n const lockState = this.#getLockState(fileId);\n if (lockType <= lockState.type) return VFS.SQLITE_OK;\n \n switch (this.#options.lockPolicy) {\n case 'exclusive':\n return await this.#lockExclusive(lockState, lockType);\n case 'shared':\n case 'shared+hint':\n return await this.#lockShared(lockState, lockType);\n }\n } catch (e) {\n console.error('WebLocksMixin: lock error', e);\n return VFS.SQLITE_IOERR_LOCK;\n }\n }\n \n /**\n * @param {number} fileId \n * @param {number} lockType \n * @returns {Promise<number>}\n */\n async jUnlock(fileId, lockType) {\n try {\n const lockState = this.#getLockState(fileId);\n if (!(lockType < lockState.type)) return VFS.SQLITE_OK;\n \n switch (this.#options.lockPolicy) {\n case 'exclusive':\n return await this.#unlockExclusive(lockState, lockType);\n case 'shared':\n case 'shared+hint':\n return await this.#unlockShared(lockState, lockType);\n }\n } catch (e) {\n console.error('WebLocksMixin: unlock error', e);\n return VFS.SQLITE_IOERR_UNLOCK;\n }\n }\n\n /**\n * @param {number} fileId \n * @param {DataView} pResOut \n * @returns {Promise<number>}\n */\n async jCheckReservedLock(fileId, pResOut) {\n try {\n const lockState = this.#getLockState(fileId);\n switch (this.#options.lockPolicy) {\n case 'exclusive':\n return this.#checkReservedExclusive(lockState, pResOut);\n case 'shared':\n case 'shared+hint':\n return await this.#checkReservedShared(lockState, pResOut);\n }\n } catch (e) {\n console.error('WebLocksMixin: check reserved lock error', e);\n return VFS.SQLITE_IOERR_CHECKRESERVEDLOCK;\n }\n pResOut.setInt32(0, 0, true);\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} fileId\n * @param {number} op\n * @param {DataView} pArg\n * @returns {number|Promise<number>}\n */\n jFileControl(fileId, op, pArg) {\n if (op === WebLocksMixin.WRITE_HINT_OP_CODE &&\n this.#options.lockPolicy === 'shared+hint'){\n const lockState = this.#getLockState(fileId);\n lockState.writeHint = true;\n }\n return VFS.SQLITE_NOTFOUND;\n }\n\n #getLockState(fileId) {\n let lockState = this.#mapIdToState.get(fileId);\n if (!lockState) {\n // The state doesn't exist yet so create it.\n const name = this.getFilename(fileId);\n lockState = {\n baseName: name,\n type: VFS.SQLITE_LOCK_NONE,\n writeHint: false\n };\n this.#mapIdToState.set(fileId, lockState);\n }\n return lockState\n }\n\n /**\n * @param {LockState} lockState \n * @param {number} lockType \n * @returns \n */\n async #lockExclusive(lockState, lockType) {\n if (!lockState.access) {\n if (!await this.#acquire(lockState, 'access')) {\n return VFS.SQLITE_BUSY;\n }\n console.assert(!!lockState.access);\n }\n lockState.type = lockType;\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {LockState} lockState \n * @param {number} lockType \n * @returns {number}\n */\n #unlockExclusive(lockState, lockType) {\n if (lockType === VFS.SQLITE_LOCK_NONE) {\n lockState.access?.();\n console.assert(!lockState.access);\n }\n lockState.type = lockType;\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {LockState} lockState \n * @param {DataView} pResOut \n * @returns {number}\n */\n #checkReservedExclusive(lockState, pResOut) {\n pResOut.setInt32(0, 0, true);\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {LockState} lockState \n * @param {number} lockType \n * @returns \n */\n async #lockShared(lockState, lockType) {\n switch (lockState.type) {\n case VFS.SQLITE_LOCK_NONE:\n switch (lockType) {\n case VFS.SQLITE_LOCK_SHARED:\n if (lockState.writeHint) {\n // xFileControl() has hinted that this transaction will\n // write. Acquire the hint lock, which is required to reach\n // the RESERVED state.\n if (!await this.#acquire(lockState, 'hint')) {\n // Timeout before lock acquired.\n return VFS.SQLITE_BUSY;\n }\n }\n\n // Must have the gate lock to request the access lock.\n if (!await this.#acquire(lockState, 'gate', SHARED)) {\n // Timeout before lock acquired.\n lockState.hint?.();\n return VFS.SQLITE_BUSY;\n }\n await this.#acquire(lockState, 'access', SHARED);\n lockState.gate();\n console.assert(!lockState.gate);\n console.assert(!!lockState.access);\n console.assert(!lockState.reserved);\n break;\n\n default:\n throw new Error('unsupported lock transition');\n }\n break;\n case VFS.SQLITE_LOCK_SHARED:\n switch (lockType) {\n case VFS.SQLITE_LOCK_RESERVED:\n if (this.#options.lockPolicy === 'shared+hint') {\n // Ideally we should already have the hint lock, but if not\n // poll for it here.\n if (!lockState.hint &&\n !await this.#acquire(lockState, 'hint', POLL_EXCLUSIVE)) {\n // Another connection has the hint lock so this is a\n // deadlock. This connection must retry.\n return VFS.SQLITE_BUSY;\n }\n }\n\n // Poll for the reserved lock. This should always succeed\n // if all clients use the 'shared+hint' policy.\n if (!await this.#acquire(lockState, 'reserved', POLL_EXCLUSIVE)) {\n // This is a deadlock. The connection holding the reserved\n // lock blocks us, and it can't acquire an exclusive access\n // lock because we hold a shared access lock. This connection\n // must retry.\n lockState.hint?.();\n return VFS.SQLITE_BUSY;\n }\n lockState.access();\n console.assert(!lockState.gate);\n console.assert(!lockState.access);\n console.assert(!!lockState.reserved);\n break;\n\n case VFS.SQLITE_LOCK_EXCLUSIVE:\n // Jumping directly from SHARED to EXCLUSIVE without passing\n // through RESERVED is only done with a hot journal.\n if (!await this.#acquire(lockState, 'gate')) {\n // Timeout before lock acquired.\n return VFS.SQLITE_BUSY;\n }\n lockState.access();\n if (!await this.#acquire(lockState, 'access')) {\n // Timeout before lock acquired.\n lockState.gate();\n return VFS.SQLITE_BUSY;\n }\n console.assert(!!lockState.gate);\n console.assert(!!lockState.access);\n console.assert(!lockState.reserved);\n break;\n\n default:\n throw new Error('unsupported lock transition');\n }\n break;\n case VFS.SQLITE_LOCK_RESERVED:\n switch (lockType) {\n case VFS.SQLITE_LOCK_EXCLUSIVE:\n // Prevent other connections from entering the SHARED state.\n if (!await this.#acquire(lockState, 'gate')) {\n // Timeout before lock acquired.\n return VFS.SQLITE_BUSY;\n }\n\n // Block until all other connections exit the SHARED state.\n if (!await this.#acquire(lockState, 'access')) {\n // Timeout before lock acquired.\n lockState.gate();\n return VFS.SQLITE_BUSY;\n }\n console.assert(!!lockState.gate);\n console.assert(!!lockState.access);\n console.assert(!!lockState.reserved);\n break;\n\n default:\n throw new Error('unsupported lock transition');\n }\n break;\n }\n lockState.type = lockType;\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {LockState} lockState \n * @param {number} lockType \n * @returns \n */\n async #unlockShared(lockState, lockType) {\n // lockType can only be SQLITE_LOCK_SHARED or SQLITE_LOCK_NONE.\n if (lockType === VFS.SQLITE_LOCK_NONE) {\n lockState.access?.();\n lockState.gate?.();\n lockState.reserved?.();\n lockState.hint?.();\n lockState.writeHint = false;\n console.assert(!lockState.access);\n console.assert(!lockState.gate);\n console.assert(!lockState.reserved);\n console.assert(!lockState.hint);\n } else { // lockType === VFS.SQLITE_LOCK_SHARED\n switch (lockState.type) {\n case VFS.SQLITE_LOCK_EXCLUSIVE:\n // Release our exclusive access lock and reacquire it with a\n // shared lock. This should always succeed because we hold\n // the gate lock.\n lockState.access();\n await this.#acquire(lockState, 'access', SHARED);\n\n // Release our gate and reserved locks. We might not have a\n // reserved lock if we were handling a hot journal.\n lockState.gate();\n lockState.reserved?.();\n lockState.hint?.();\n console.assert(!!lockState.access);\n console.assert(!lockState.gate);\n console.assert(!lockState.reserved);\n break;\n\n case VFS.SQLITE_LOCK_RESERVED:\n // This transition is rare, probably only on an I/O error\n // while writing to a journal file.\n await this.#acquire(lockState, 'access', SHARED);\n lockState.reserved();\n lockState.hint?.();\n console.assert(!!lockState.access);\n console.assert(!lockState.gate);\n console.assert(!lockState.reserved);\n break;\n }\n }\n lockState.type = lockType;\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {LockState} lockState \n * @param {DataView} pResOut \n * @returns {Promise<number>}\n */\n async #checkReservedShared(lockState, pResOut) {\n if (await this.#acquire(lockState, 'reserved', POLL_SHARED)) {\n // We were able to get the lock so it was not reserved.\n lockState.reserved();\n pResOut.setInt32(0, 0, true);\n } else {\n pResOut.setInt32(0, 1, true);\n }\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {LockState} lockState \n * @param {'gate'|'access'|'reserved'|'hint'} name\n * @param {LockOptions} options \n * @returns {Promise<boolean>}\n */\n #acquire(lockState, name, options = {}) {\n console.assert(!lockState[name]);\n return new Promise(resolve => {\n if (!options.ifAvailable && this.#options.lockTimeout < Infinity) {\n // Add a timeout to the lock request.\n const controller = new AbortController();\n options = Object.assign({}, options, { signal: controller.signal });\n setTimeout(() => {\n controller.abort();\n resolve?.(false);\n }, this.#options.lockTimeout);\n }\n\n const lockName = `lock##${lockState.baseName}##${name}`;\n navigator.locks.request(lockName, options, lock => {\n if (lock) {\n return new Promise(release => {\n lockState[name] = () => {\n release();\n lockState[name] = null;\n };\n resolve(true);\n resolve = null;\n });\n } else {\n lockState[name] = null;\n resolve(false);\n resolve = null;\n }\n }).catch(e => {\n if (e.name !== 'AbortError') throw e;\n });\n });\n }\n}\n\nWebLocksMixin.WRITE_HINT_OP_CODE = -9999;","// Copyright 2024 Roy T. Hashimoto. All Rights Reserved.\nimport { FacadeVFS } from '../FacadeVFS.js';\nimport * as VFS from '../VFS.js';\nimport { WebLocksMixin } from '../WebLocksMixin.js';\n\n/**\n * @param {string} pathname \n * @param {boolean} create \n * @returns {Promise<[FileSystemDirectoryHandle, string]>}\n */\nasync function getPathComponents(pathname, create) {\n const [_, directories, filename] = pathname.match(/[/]?(.*)[/](.*)$/);\n\n let directoryHandle = await navigator.storage.getDirectory();\n for (const directory of directories.split('/')) {\n if (directory) {\n directoryHandle = await directoryHandle.getDirectoryHandle(directory, { create });\n }\n }\n return [directoryHandle, filename];\n};\n\nclass File {\n /** @type {string} */ pathname;\n /** @type {number} */ flags;\n /** @type {FileSystemFileHandle} */ fileHandle;\n /** @type {Blob?} */ blob;\n /** @type {FileSystemWritableFileStream?} */ writable;\n\n constructor(pathname, flags) {\n this.pathname = pathname;\n this.flags = flags;\n }\n}\n\nexport class OPFSAnyContextVFS extends WebLocksMixin(FacadeVFS) {\n /** @type {Map<number, File>} */ mapIdToFile = new Map();\n lastError = null;\n\n log = null;\n\n static async create(name, module, options) {\n const vfs = new OPFSAnyContextVFS(name, module, options);\n await vfs.isReady();\n return vfs;\n }\n\n constructor(name, module, options = {}) {\n super(name, module, options);\n }\n \n getFilename(fileId) {\n const pathname = this.mapIdToFile.get(fileId).pathname;\n return `OPFS:${pathname}`\n }\n\n /**\n * @param {string?} zName \n * @param {number} fileId \n * @param {number} flags \n * @param {DataView} pOutFlags \n * @returns {Promise<number>}\n */\n async jOpen(zName, fileId, flags, pOutFlags) {\n try {\n const url = new URL(zName || Math.random().toString(36).slice(2), 'file://');\n const pathname = url.pathname;\n\n const file = new File(pathname, flags);\n this.mapIdToFile.set(fileId, file);\n\n const create = !!(flags & VFS.SQLITE_OPEN_CREATE);\n const [directoryHandle, filename] = await getPathComponents(pathname, create);\n file.fileHandle = await directoryHandle.getFileHandle(filename, { create });\n \n pOutFlags.setInt32(0, flags, true);\n return VFS.SQLITE_OK;\n } catch (e) {\n this.lastError = e;\n return VFS.SQLITE_CANTOPEN;\n }\n }\n\n /**\n * @param {string} zName \n * @param {number} syncDir \n * @returns {Promise<number>}\n */\n async jDelete(zName, syncDir) {\n try {\n const url = new URL(zName, 'file://');\n const pathname = url.pathname;\n \n const [directoryHandle, name] = await getPathComponents(pathname, false);\n const result = directoryHandle.removeEntry(name, { recursive: false });\n if (syncDir) {\n await result;\n }\n return VFS.SQLITE_OK;\n } catch (e) {\n return VFS.SQLITE_IOERR_DELETE;\n }\n }\n\n /**\n * @param {string} zName \n * @param {number} flags \n * @param {DataView} pResOut \n * @returns {Promise<number>}\n */\n async jAccess(zName, flags, pResOut) {\n try {\n const url = new URL(zName, 'file://');\n const pathname = url.pathname;\n\n const [directoryHandle, dbName] = await getPathComponents(pathname, false);\n const fileHandle = await directoryHandle.getFileHandle(dbName, { create: false });\n pResOut.setInt32(0, 1, true);\n return VFS.SQLITE_OK;\n } catch (e) {\n if (e.name === 'NotFoundError') {\n pResOut.setInt32(0, 0, true);\n return VFS.SQLITE_OK;\n }\n this.lastError = e;\n return VFS.SQLITE_IOERR_ACCESS;\n }\n }\n\n /**\n * @param {number} fileId \n * @returns {Promise<number>}\n */\n async jClose(fileId) {\n try {\n const file = this.mapIdToFile.get(fileId);\n this.mapIdToFile.delete(fileId);\n\n await file.writable?.close();\n if (file?.flags & VFS.SQLITE_OPEN_DELETEONCLOSE) {\n const [directoryHandle, name] = await getPathComponents(file.pathname, false);\n await directoryHandle.removeEntry(name, { recursive: false });\n }\n return VFS.SQLITE_OK;\n } catch (e) {\n return VFS.SQLITE_IOERR_DELETE;\n }\n }\n\n /**\n * @param {number} fileId \n * @param {Uint8Array} pData \n * @param {number} iOffset\n * @returns {Promise<number>}\n */\n async jRead(fileId, pData, iOffset) {\n try {\n const file = this.mapIdToFile.get(fileId);\n\n if (file.writable) {\n await file.writable.close();\n file.writable = null;\n file.blob = null;\n }\n if (!file.blob) {\n file.blob = await file.fileHandle.getFile();\n }\n\n const bytesRead = await file.blob.slice(iOffset, iOffset + pData.byteLength)\n .arrayBuffer()\n .then(arrayBuffer => {\n pData.set(new Uint8Array(arrayBuffer));\n return arrayBuffer.byteLength;\n });\n\n if (bytesRead < pData.byteLength) {\n pData.fill(0, bytesRead);\n return VFS.SQLITE_IOERR_SHORT_READ;\n }\n return VFS.SQLITE_OK;\n } catch (e) {\n this.lastError = e;\n return VFS.SQLITE_IOERR_READ;\n }\n }\n\n /**\n * @param {number} fileId \n * @param {Uint8Array} pData \n * @param {number} iOffset\n * @returns {Promise<number>}\n */\n async jWrite(fileId, pData, iOffset) {\n try {\n const file = this.mapIdToFile.get(fileId);\n\n if (!file.writable) {\n file.writable = await file.fileHandle.createWritable({ keepExistingData: true });\n }\n await file.writable.seek(iOffset);\n // TODO: restore the subarray() call below once WebKit honors a view's\n // byteOffset and byteLength instead of writing the whole ArrayBuffer,\n // which here is the WASM heap: https://bugs.webkit.org/show_bug.cgi?id=302733\n // await file.writable.write(pData.subarray());\n await file.writable.write(pData.slice());\n file.blob = null;\n\n return VFS.SQLITE_OK;\n } catch (e) {\n this.lastError = e;\n return VFS.SQLITE_IOERR_WRITE;\n }\n }\n\n /**\n * @param {number} fileId \n * @param {number} iSize \n * @returns {Promise<number>}\n */\n async jTruncate(fileId, iSize) {\n try {\n const file = this.mapIdToFile.get(fileId);\n\n if (!file.writable) {\n file.writable = await file.fileHandle.createWritable({ keepExistingData: true });\n }\n await file.writable.truncate(iSize);\n file.blob = null;\n return VFS.SQLITE_OK;\n } catch (e) {\n this.lastError = e;\n return VFS.SQLITE_IOERR_TRUNCATE;\n }\n }\n\n /**\n * @param {number} fileId \n * @param {number} flags \n * @returns {Promise<number>}\n */\n async jSync(fileId, flags) {\n try {\n const file = this.mapIdToFile.get(fileId);\n await file.writable?.close();\n file.writable = null;\n file.blob = null;\n return VFS.SQLITE_OK;\n } catch (e) {\n this.lastError = e;\n return VFS.SQLITE_IOERR_FSYNC;\n }\n }\n\n /**\n * @param {number} fileId \n * @param {DataView} pSize64 \n * @returns {Promise<number>}\n */\n async jFileSize(fileId, pSize64) {\n try {\n const file = this.mapIdToFile.get(fileId);\n\n if (file.writable) {\n await file.writable.close();\n file.writable = null;\n file.blob = null;\n }\n if (!file.blob) {\n file.blob = await file.fileHandle.getFile();\n }\n pSize64.setBigInt64(0, BigInt(file.blob.size), true);\n return VFS.SQLITE_OK;\n } catch (e) {\n this.lastError = e;\n return VFS.SQLITE_IOERR_FSTAT;\n }\n }\n\n /**\n * @param {number} fileId \n * @param {number} lockType \n * @returns {Promise<number>}\n */\n async jLock(fileId, lockType) {\n if (lockType === VFS.SQLITE_LOCK_SHARED) {\n // Make sure to get a current readable view of the file.\n const file = this.mapIdToFile.get(fileId);\n file.blob = null;\n }\n\n // Call the actual unlock implementation.\n return super.jLock(fileId, lockType);\n }\n\n jGetLastError(zBuf) {\n if (this.lastError) {\n console.error(this.lastError);\n const outputArray = zBuf.subarray(0, zBuf.byteLength - 1);\n const { written } = new TextEncoder().encodeInto(this.lastError.message, outputArray);\n zBuf[written] = 0;\n }\n return VFS.SQLITE_OK\n }\n}\n","import { FacadeVFS } from '../FacadeVFS.js';\nimport * as VFS from '../VFS.js';\n\n// Options for navigator.locks.request().\n/** @type {LockOptions} */ const SHARED = { mode: 'shared' };\n/** @type {LockOptions} */ const POLL_SHARED = { ifAvailable: true, mode: 'shared' };\n/** @type {LockOptions} */ const POLL_EXCLUSIVE = { ifAvailable: true, mode: 'exclusive' };\n\n// Used only for debug logging.\nconst contextId = Math.random().toString(36).slice(2);\n\n/**\n * @typedef {Object} Transaction\n * @property {string} [path]\n * @property {number} txId\n * @property {Map<number, Uint8Array?>} [blocks]\n * @property {number} [fileSize]\n */\n\nclass File {\n /** @type {string} */ path;\n /** @type {number} */ flags;\n\n /** @type {number} */ blockSize;\n /** @type {Map<number, Uint8Array>} */ blocks;\n\n // Members below are only used for SQLITE_OPEN_MAIN_DB.\n\n /** @type {Transaction} */ viewTx; // last transaction incorporated\n /** @type {function?} */ viewReleaser;\n\n /** @type {BroadcastChannel} */ broadcastChannel;\n /** @type {Transaction[]} */ broadcastReceived;\n\n /** @type {number} */ lockState;\n /** @type {{write?: function, reserved?: function, hint?: function}} */ locks;\n\n /** @type {AbortController} */ abortController;\n\n /** @type {Transaction?} */ txActive;\n /** @type {boolean} */ txWriteHint;\n /** @type {boolean} */ txOverwrite;\n\n /** @type {string} */ synchronous;\n\n constructor(pathname, flags) {\n this.path = pathname;\n this.flags = flags;\n\n this.blockSize = 0;\n this.blocks = new Map();\n if (flags & VFS.SQLITE_OPEN_MAIN_DB) {\n this.viewTx = null;\n this.viewReleaser = null;\n this.broadcastChannel = new BroadcastChannel('mirror:' + pathname);\n this.broadcastReceived = [];\n this.lockState = VFS.SQLITE_LOCK_NONE;\n this.locks = {};\n this.txActive = null;\n this.txWriteHint = false;\n this.txOverwrite = false;\n this.synchronous = 'full';\n }\n }\n}\n\nexport class IDBMirrorVFS extends FacadeVFS {\n /** @type {Map<number, File>} */ #mapIdToFile = new Map();\n /** @type {Map<string, File>} */ #mapPathToFile = new Map();\n #lastError = null;\n\n /** @type {IDBDatabase} */ #idb;\n\n log = null; // console.log;\n\n /** @type {Promise} */ #isReady;\n\n static async create(name, module, options) {\n const instance = new IDBMirrorVFS(name, module, options);\n await instance.isReady();\n return instance;\n }\n\n constructor(name, module, options = {}) {\n super(name, module);\n this.#isReady = this.#initialize(name);\n }\n\n async #initialize(name) {\n // Open IndexedDB database, creating it if necessary.\n this.#idb = await new Promise((resolve, reject) => {\n const request = indexedDB.open(name, 1);\n request.onupgradeneeded = (event) => {\n const db = request.result;\n switch (event.oldVersion) {\n case 0:\n db.createObjectStore('blocks', { keyPath: ['path', 'offset'] });\n db.createObjectStore('tx', { keyPath: ['path', 'txId'] });\n break;\n }\n };\n request.onsuccess = () => resolve(request.result);\n request.onerror = () => reject(request.error);\n });\n }\n\n close() {\n return this.#idb.close();\n }\n\n async isReady() {\n await super.isReady();\n return this.#isReady;\n }\n\n /**\n * @param {string?} zName \n * @param {number} fileId \n * @param {number} flags \n * @param {DataView} pOutFlags \n * @returns {Promise<number>}\n */\n async jOpen(zName, fileId, flags, pOutFlags) {\n try {\n const url = new URL(zName || Math.random().toString(36).slice(2), 'file://');\n const path = url.pathname;\n\n let file;\n if (flags & VFS.SQLITE_OPEN_MAIN_DB) {\n // TODO\n file = new File(path, flags);\n\n const idbTx = this.#idb.transaction(['blocks', 'tx'], 'readwrite');\n const blocks = idbTx.objectStore('blocks');\n if (await idbX(blocks.count([path, 0])) === 0) {\n // File does not yet exist.\n if (flags & VFS.SQLITE_OPEN_CREATE) {\n await idbX(blocks.put({ path, offset: 0, data: new Uint8Array(0) }));\n } else {\n throw new Error('File not found');\n }\n }\n \n // Load pages into memory from IndexedDB.\n await new Promise((resolve, reject) => {\n const range = IDBKeyRange.bound([path, 0], [path, Infinity]);\n const request = blocks.openCursor(range);\n request.onsuccess = () => {\n const cursor = request.result;\n if (cursor) {\n const { offset, data } = cursor.value;\n file.blocks.set(offset, data);\n cursor.continue();\n } else {\n resolve();\n }\n };\n request.onerror = () => reject(request.error);\n });\n file.blockSize = file.blocks.get(0)?.byteLength ?? 0;\n\n // Get the last transaction id.\n const transactions = idbTx.objectStore('tx');\n file.viewTx = await new Promise((resolve, reject) => {\n const range = IDBKeyRange.bound([path, 0], [path, Infinity]);\n const request = transactions.openCursor(range, 'prev');\n request.onsuccess = () => {\n const cursor = request.result;\n if (cursor) {\n resolve(cursor.value);\n } else {\n resolve({ txId: 0 });\n }\n };\n request.onerror = () => reject(request.error);\n });\n\n // Publish our view of the database. This prevents other connections\n // from overwriting file data we still need.\n await this.#setView(file, file.viewTx);\n\n // Listen for broadcasts. Messages are cached until the database\n // is unlocked.\n file.broadcastChannel.addEventListener('message', event => {\n file.broadcastReceived.push(event.data);\n if (file.lockState === VFS.SQLITE_LOCK_NONE) {\n this.#processBroadcasts(file);\n }\n });\n } else {\n // Not a main database so not stored in IndexedDB.\n file = this.#mapPathToFile.get(path);\n if (!file) {\n if (flags & VFS.SQLITE_OPEN_CREATE) {\n file = new File(path, flags);\n file.blocks.set(0, new Uint8Array(0));\n } else {\n throw new Error('File not found');\n }\n }\n }\n\n pOutFlags.setInt32(0, flags, true);\n this.#mapIdToFile.set(fileId, file);\n this.#mapPathToFile.set(path, file);\n return VFS.SQLITE_OK;\n } catch (e) {\n this.#lastError = e;\n return VFS.SQLITE_CANTOPEN;\n }\n }\n\n /**\n * @param {string} zName \n * @param {number} syncDir \n * @returns {Promise<number>}\n */\n async jDelete(zName, syncDir) {\n try {\n const url = new URL(zName, 'file://');\n const pathname = url.pathname;\n\n const result = await this.#deleteFile(pathname);\n if (syncDir) {\n await result;\n }\n return VFS.SQLITE_OK;\n } catch (e) {\n return VFS.SQLITE_IOERR_DELETE;\n }\n }\n\n /**\n * @param {string} zName \n * @param {number} flags \n * @param {DataView} pResOut \n * @returns {Promise<number>}\n */\n async jAccess(zName, flags, pResOut) {\n try {\n const url = new URL(zName, 'file://');\n const pathname = url.pathname;\n\n // This test ignores main database files that have not been opened\n // with this connection. SQLite does not call jAccess() on main\n // database files, so avoiding an IndexedDB test saves time.\n const exists = this.#mapPathToFile.has(pathname);\n pResOut.setInt32(0, exists ? 1 : 0, true);\n return VFS.SQLITE_OK;\n } catch (e) {\n this.#lastError = e;\n return VFS.SQLITE_IOERR_ACCESS;\n }\n }\n\n /**\n * @param {number} fileId \n * @returns {Promise<number>}\n */\n async jClose(fileId) {\n try {\n const file = this.#mapIdToFile.get(fileId);\n this.#mapIdToFile.delete(fileId);\n\n if (file?.flags & VFS.SQLITE_OPEN_MAIN_DB) {\n file.broadcastChannel.close();\n file.viewReleaser?.();\n }\n\n if (file?.flags & VFS.SQLITE_OPEN_DELETEONCLOSE) {\n this.#deleteFile(file.path);\n }\n return VFS.SQLITE_OK;\n } catch (e) {\n return VFS.SQLITE_IOERR_CLOSE;\n }\n }\n\n /**\n * @param {number} fileId \n * @param {Uint8Array} pData \n * @param {number} iOffset\n * @returns {number}\n */\n jRead(fileId, pData, iOffset) {\n try {\n const file = this.#mapIdToFile.get(fileId);\n\n let bytesRead = 0;\n let pDataOffset = 0;\n while (pDataOffset < pData.byteLength) {\n // File data is stored in fixed-size blocks. Get the next block\n // needed.\n const fileOffset = iOffset + pDataOffset;\n const blockIndex = Math.floor(fileOffset / file.blockSize);\n const blockOffset = fileOffset % file.blockSize;\n const block =\n file.txActive?.blocks.get(blockIndex * file.blockSize) ??\n file.blocks.get(blockIndex * file.blockSize);\n if (!block) {\n break;\n }\n\n // Copy block data to the read buffer.\n const blockLength = Math.min(\n block.byteLength - blockOffset,\n pData.byteLength - pDataOffset);\n pData.set(block.subarray(blockOffset, blockOffset + blockLength), pDataOffset);\n pDataOffset += blockLength;\n bytesRead += blockLength;\n }\n\n if (bytesRead < pData.byteLength) {\n pData.fill(0, bytesRead);\n return VFS.SQLITE_IOERR_SHORT_READ;\n }\n return VFS.SQLITE_OK;\n } catch (e) {\n this.#lastError = e;\n return VFS.SQLITE_IOERR_READ;\n }\n }\n\n /**\n * @param {number} fileId \n * @param {Uint8Array} pData \n * @param {number} iOffset\n * @returns {number}\n */\n jWrite(fileId, pData, iOffset) {\n try {\n const file = this.#mapIdToFile.get(fileId);\n\n if (file.flags & VFS.SQLITE_OPEN_MAIN_DB) {\n this.#requireTxActive(file);\n // SQLite is not necessarily written sequentially, so fill in the\n // unwritten blocks here.\n for (let fillOffset = file.txActive.fileSize;\n fillOffset < iOffset; fillOffset += pData.byteLength) {\n file.txActive.blocks.set(fillOffset, new Uint8Array(pData.byteLength));\n }\n file.txActive.blocks.set(iOffset, pData.slice());\n file.txActive.fileSize = Math.max(file.txActive.fileSize, iOffset + pData.byteLength);\n file.blockSize = pData.byteLength;\n } else {\n // All files that are not main databases are stored in a single\n // block.\n let block = file.blocks.get(0);\n if (iOffset + pData.byteLength > block.byteLength) {\n // Resize the block buffer.\n const newSize = Math.max(iOffset + pData.byteLength, 2 * block.byteLength);\n const newBlock = new Uint8Array(newSize);\n newBlock.set(block);\n file.blocks.set(0, newBlock);\n block = newBlock;\n }\n block.set(pData, iOffset);\n file.blockSize = Math.max(file.blockSize, iOffset + pData.byteLength);\n }\n return VFS.SQLITE_OK;\n } catch (e) {\n this.lastError = e;\n return VFS.SQLITE_IOERR_WRITE;\n }\n }\n\n /**\n * @param {number} fileId \n * @param {number} iSize \n * @returns {number}\n */\n jTruncate(fileId, iSize) {\n try {\n const file = this.#mapIdToFile.get(fileId);\n\n if (file.flags & VFS.SQLITE_OPEN_MAIN_DB) {\n this.#requireTxActive(file);\n file.txActive.fileSize = iSize;\n } else {\n // All files that are not main databases are stored in a single\n // block.\n if (iSize < file.blockSize) {\n const block = file.blocks.get(0);\n file.blocks.set(0, block.subarray(0, iSize));\n file.blockSize = iSize;\n }\n }\n return VFS.SQLITE_OK;\n } catch (e) {\n console.error(e);\n this.lastError = e;\n return VFS.SQLITE_IOERR_TRUNCATE;\n }\n }\n\n /**\n * @param {number} fileId \n * @param {DataView} pSize64 \n * @returns {number|Promise<number>}\n */\n jFileSize(fileId, pSize64) {\n const file = this.#mapIdToFile.get(fileId);\n const size = file.txActive?.fileSize ?? file.blockSize * file.blocks.size;\n pSize64.setBigInt64(0, BigInt(size), true);\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} fileId \n * @param {number} lockType \n * @returns {Promise<number>}\n */\n async jLock(fileId, lockType) {\n const file = this.#mapIdToFile.get(fileId);\n if (lockType <= file.lockState) return VFS.SQLITE_OK;\n switch (lockType) {\n case VFS.SQLITE_LOCK_SHARED:\n if (file.txWriteHint) {\n // xFileControl() has hinted that this transaction will\n // write. Acquire the hint lock, which is required to reach\n // the RESERVED state.\n if (!await this.#lock(file, 'hint')) {\n return VFS.SQLITE_BUSY;\n }\n }\n break;\n case VFS.SQLITE_LOCK_RESERVED:\n // Ideally we should already have the hint lock, but if not\n // poll for it here.\n if (!file.locks.hint && !await this.#lock(file, 'hint', POLL_EXCLUSIVE)) {\n return VFS.SQLITE_BUSY;\n }\n\n if (!await this.#lock(file, 'reserved', POLL_EXCLUSIVE)) {\n file.locks.hint();\n return VFS.SQLITE_BUSY;\n }\n\n // In order to write, our view of the database must be up to date.\n // To check this, first fetch all transactions in IndexedDB equal to\n // or greater than our view.\n const idbTx = this.#idb.transaction(['blocks', 'tx']);\n const range = IDBKeyRange.bound(\n [file.path, file.viewTx.txId],\n [file.path, Infinity]);\n\n /** @type {Transaction[]} */\n const entries = await idbX(idbTx.objectStore('tx').getAll(range));\n\n // Ideally the fetched list of transactions should contain one\n // entry matching our view. If not then our view is out of date.\n if (entries.length && entries.at(-1).txId > file.viewTx.txId) {\n // There are newer transactions in IndexedDB that we haven't\n // seen via broadcast. Ensure that they are incorporated on unlock,\n // and force the application to retry.\n const blocks = idbTx.objectStore('blocks');\n for (const entry of entries) {\n // When transactions are stored to IndexedDB, the page data is\n // stripped to save time and space. Restore the page data here.\n for (const offset of Array.from(entry.blocks.keys())) {\n const value = await idbX(blocks.get([file.path, offset]));\n entry.blocks.set(offset, value.data);\n }\n }\n file.broadcastReceived.push(...entries);\n file.locks.reserved();\n return VFS.SQLITE_BUSY\n }\n\n console.assert(entries[0]?.txId === file.viewTx.txId || !file.viewTx.txId);\n break;\n case VFS.SQLITE_LOCK_EXCLUSIVE:\n await this.#lock(file, 'write');\n break;\n }\n file.lockState = lockType;\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} fileId \n * @param {number} lockType \n * @returns {number}\n */\n jUnlock(fileId, lockType) {\n const file = this.#mapIdToFile.get(fileId);\n if (lockType >= file.lockState) return VFS.SQLITE_OK;\n switch (lockType) {\n case VFS.SQLITE_LOCK_SHARED:\n file.locks.write?.();\n file.locks.reserved?.();\n file.locks.hint?.();\n break;\n case VFS.SQLITE_LOCK_NONE:\n // Don't release the read lock here. It will be released on demand\n // when a broadcast notifies us that another connections wants to\n // VACUUM.\n this.#processBroadcasts(file);\n file.locks.write?.();\n file.locks.reserved?.();\n file.locks.hint?.();\n break;\n }\n file.lockState = lockType;\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} fileId\n * @param {DataView} pResOut \n * @returns {Promise<number>}\n */\n async jCheckReservedLock(fileId, pResOut) {\n try {\n const file = this.#mapIdToFile.get(fileId);\n console.assert(file.flags & VFS.SQLITE_OPEN_MAIN_DB);\n if (await this.#lock(file, 'reserved', POLL_SHARED)) {\n // This looks backwards, but if we get the lock then no one\n // else had it.\n pResOut.setInt32(0, 0, true);\n file.locks.reserved();\n } else {\n pResOut.setInt32(0, 1, true);\n }\n return VFS.SQLITE_OK;\n } catch (e) {\n console.error(e);\n this.lastError = e;\n return VFS.SQLITE_IOERR_LOCK;\n }\n }\n\n /**\n * @param {number} fileId\n * @param {number} op\n * @param {DataView} pArg\n * @returns {Promise<number>}\n */\n async jFileControl(fileId, op, pArg) {\n try {\n const file = this.#mapIdToFile.get(fileId);\n switch (op) {\n case VFS.SQLITE_FCNTL_PRAGMA:\n const key = cvtString(pArg, 4);\n const value = cvtString(pArg, 8);\n this.log?.('xFileControl', file.path, 'PRAGMA', key, value);\n switch (key.toLowerCase()) {\n case 'page_size':\n // Don't allow changing the page size.\n if (value && file.blockSize && Number(value) !== file.blockSize) {\n return VFS.SQLITE_ERROR;\n }\n break;\n case 'synchronous':\n // This VFS only recognizes 'full' and not 'full'.\n if (value) {\n switch (value.toLowerCase()) {\n case 'full':\n case '2':\n case 'extra':\n case '3':\n file.synchronous = 'full';\n break;\n case 'normal':\n case '1':\n file.synchronous = 'normal';\n break;\n default:\n console.warn(`unsupported synchronous mode: ${value}`);\n return VFS.SQLITE_ERROR;\n }\n }\n break;\n }\n break;\n case VFS.SQLITE_FCNTL_BEGIN_ATOMIC_WRITE:\n this.log?.('xFileControl', 'BEGIN_ATOMIC_WRITE', file.path);\n return VFS.SQLITE_OK;\n case VFS.SQLITE_FCNTL_COMMIT_ATOMIC_WRITE:\n this.log?.('xFileControl', 'COMMIT_ATOMIC_WRITE', file.path);\n return VFS.SQLITE_OK;\n case VFS.SQLITE_FCNTL_ROLLBACK_ATOMIC_WRITE:\n this.#dropTx(file);\n return VFS.SQLITE_OK;\n case VFS.SQLITE_FCNTL_SYNC:\n // Propagate database writes to IndexedDB and other clients. Most\n // often this is a SQLite transaction, but it can also be a\n // journal rollback.\n //\n // If SQLITE_FCNTL_OVERWRITE has been received then propagation is\n // deferred until SQLITE_FCNTL_COMMIT_PHASETWO for file truncation.\n this.log?.('xFileControl', 'SYNC', file.path);\n if (file.txActive && !file.txOverwrite) {\n await this.#commitTx(file);\n }\n break;\n case VFS.SQLITE_FCNTL_OVERWRITE:\n // Marks the beginning of a VACUUM.\n file.txOverwrite = true;\n break;\n case VFS.SQLITE_FCNTL_COMMIT_PHASETWO:\n // Commit database writes for VACUUM. Other writes will already\n // be propagated by SQLITE_FCNTL_SYNC.\n this.log?.('xFileControl', 'COMMIT_PHASETWO', file.path);\n if (file.txActive) {\n await this.#commitTx(file);\n }\n file.txOverwrite = false;\n break;\n }\n } catch (e) {\n this.#lastError = e;\n return VFS.SQLITE_IOERR;\n }\n return VFS.SQLITE_NOTFOUND;\n }\n\n /**\n * @param {number} fileId\n * @returns {number|Promise<number>}\n */\n jDeviceCharacteristics(fileId) {\n return 0\n | VFS.SQLITE_IOCAP_BATCH_ATOMIC\n | VFS.SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN;\n }\n\n /**\n * @param {Uint8Array} zBuf \n * @returns {number}\n */\n jGetLastError(zBuf) {\n if (this.#lastError) {\n console.error(this.#lastError);\n const outputArray = zBuf.subarray(0, zBuf.byteLength - 1);\n const { written } = new TextEncoder().encodeInto(this.#lastError.message, outputArray);\n zBuf[written] = 0;\n }\n return VFS.SQLITE_OK\n }\n\n /**\n * \n * @param {File} file \n * @param {Transaction} tx \n */\n #acceptTx(file, tx) {\n // Add/update transaction pages.\n for (const [offset, data] of tx.blocks) {\n file.blocks.set(offset, data);\n if (file.blockSize === 0) {\n file.blockSize = data.byteLength;\n }\n }\n\n let truncated = tx.fileSize + file.blockSize;\n while (file.blocks.delete(truncated)) {\n truncated += file.blockSize;\n }\n\n file.viewTx = tx;\n }\n\n /**\n * @param {File} file \n */\n async #commitTx(file) {\n // Advance our own view. Even if we received our own broadcasts (we\n // don't), we want our view to be updated synchronously.\n this.#acceptTx(file, file.txActive);\n this.#setView(file, file.txActive);\n\n const oldestTxId = await this.#getOldestTxInUse(file);\n\n // Update IndexedDB page data.\n const idbTx = this.#idb.transaction(['blocks', 'tx'], 'readwrite');\n const blocks = idbTx.objectStore('blocks');\n for (const [offset, data] of file.txActive.blocks) {\n blocks.put({ path: file.path, offset, data });\n }\n\n // Delete obsolete transactions no longer needed.\n const oldRange = IDBKeyRange.bound(\n [file.path, -Infinity], [file.path, oldestTxId],\n false, true);\n idbTx.objectStore('tx').delete(oldRange);\n\n // Save transaction object. Omit page data as an optimization.\n const txSansData = Object.assign({}, file.txActive);\n txSansData.blocks = new Map(Array.from(file.txActive.blocks, ([k]) => [k, null]));\n idbTx.objectStore('tx').put(txSansData);\n\n // Broadcast transaction once it commits.\n const complete = new Promise((resolve, reject) => {\n const message = file.txActive;\n idbTx.oncomplete = () => {\n file.broadcastChannel.postMessage(message);\n resolve();\n };\n idbTx.onabort = () => reject(idbTx.error);\n idbTx.commit();\n });\n\n if (file.synchronous === 'full') {\n await complete;\n }\n\n file.txActive = null;\n file.txWriteHint = false;\n }\n\n /**\n * @param {File} file \n */\n #dropTx(file) {\n file.txActive = null;\n file.txWriteHint = false;\n }\n\n /**\n * @param {File} file \n */\n #requireTxActive(file) {\n if (!file.txActive) {\n file.txActive = {\n path: file.path,\n txId: file.viewTx.txId + 1,\n blocks: new Map(),\n fileSize: file.blockSize * file.blocks.size,\n };\n }\n }\n\n /**\n * @param {string} path \n * @returns {Promise}\n */\n async #deleteFile(path) {\n this.#mapPathToFile.delete(path);\n\n // Only main databases are stored in IndexedDB and SQLite never\n // deletes main databases, but delete blocks here anyway for\n // standalone use.\n const request = this.#idb.transaction(['blocks'], 'readwrite')\n .objectStore('blocks')\n .delete(IDBKeyRange.bound([path, 0], [path, Infinity]));\n await new Promise((resolve, reject) => {\n const idbTx = request.transaction;\n idbTx.oncomplete = resolve;\n idbTx.onerror = () => reject(idbTx.error);\n });\n }\n\n /**\n * @param {File} file \n * @returns {Promise<number>}\n */\n async #getOldestTxInUse(file) {\n // Each connection holds a shared Web Lock with a name that encodes\n // the latest transaction it knows about. We can find the oldest\n // transaction by listing the those locks and extracting the earliest\n // transaction id.\n const TX_LOCK_REGEX = /^(.*)@@\\[(\\d+)\\]$/;\n let oldestTxId = file.viewTx.txId;\n const locks = await navigator.locks.query();\n for (const { name } of locks.held) {\n const m = TX_LOCK_REGEX.exec(name);\n if (m && m[1] === file.path) {\n oldestTxId = Math.min(oldestTxId, Number(m[2]));\n }\n }\n return oldestTxId;\n }\n\n /**\n * Acquire one of the database file internal Web Locks.\n * @param {File} file \n * @param {'write'|'reserved'|'hint'} name \n * @param {LockOptions} options \n * @returns {Promise<boolean>}\n */\n #lock(file, name, options = {}) {\n return new Promise(resolve => {\n const lockName = `${file.path}@@${name}`;\n navigator.locks.request(lockName, options, lock => {\n if (lock) {\n return new Promise(release => {\n file.locks[name] = () => {\n release();\n file.locks[name] = null;\n };\n resolve(true);\n });\n } else {\n file.locks[name] = null;\n resolve(false);\n }\n }).catch(e => {\n if (e.name !== 'AbortError') throw e;\n });\n });\n }\n\n /**\n * Handle prevously received messages from other connections.\n * @param {File} file \n */\n #processBroadcasts(file) {\n // Sort transaction messages by id.\n file.broadcastReceived.sort((a, b) => a.txId - b.txId);\n\n let nHandled = 0;\n let newTx = file.viewTx;\n for (const message of file.broadcastReceived) {\n if (message.txId <= newTx.txId) {\n // This transaction is already incorporated into our view.\n } else if (message.txId === newTx.txId + 1) {\n // This is the next expected transaction.\n this.log?.(`accept tx ${message.txId}`);\n this.#acceptTx(file, message);\n newTx = message;\n } else {\n // There is a gap in the transaction sequence.\n console.warn(`missing tx ${newTx.txId + 1} (got ${message.txId})`);\n break;\n }\n nHandled++;\n }\n\n // Remove handled messages from the list.\n file.broadcastReceived.splice(0, nHandled);\n\n // Tell other connections about a change in our view.\n if (newTx.txId > file.viewTx.txId) {\n // No need to await here.\n this.#setView(file, newTx);\n }\n }\n\n /**\n * @param {File} file \n * @param {Transaction} tx \n */\n async #setView(file, tx) {\n // Publish our view of the database with a lock name that includes\n // the transaction id. As long as we hold the lock, no other connection\n // will overwrite data we are using.\n file.viewTx = tx;\n const lockName = `${file.path}@@[${tx.txId}]`;\n const newReleaser = await new Promise(resolve => {\n navigator.locks.request(lockName, SHARED, lock => {\n return new Promise(release => {\n resolve(release);\n });\n });\n });\n\n // The new lock is acquired so release the old one.\n file.viewReleaser?.();\n file.viewReleaser = newReleaser;\n }\n}\n\n/**\n * Wrap IndexedDB request with a Promise.\n * @param {IDBRequest} request \n * @returns \n */\nfunction idbX(request) {\n return new Promise((resolve, reject) => {\n request.onsuccess = () => resolve(request.result);\n request.onerror = () => reject(request.error);\n });\n}\n\n/**\n * Extract a C string from WebAssembly memory.\n * @param {DataView} dataView \n * @param {number} offset \n * @returns \n */\nfunction cvtString(dataView, offset) {\n const p = dataView.getUint32(offset, true);\n if (p) {\n const chars = new Uint8Array(dataView.buffer, p);\n return new TextDecoder().decode(chars.subarray(0, chars.indexOf(0)));\n }\n return null;\n}\n","// Copyright 2024 Roy T. Hashimoto. All Rights Reserved.\nimport { FacadeVFS } from '../FacadeVFS.js';\nimport * as VFS from '../VFS.js';\nimport { WebLocksMixin } from '../WebLocksMixin.js';\n\nconst RETRYABLE_ERRORS = new Set([\n 'TransactionInactiveError',\n 'InvalidStateError'\n]);\n\n/**\n * @typedef Metadata\n * @property {string} name\n * @property {number} fileSize\n * @property {number} version\n * @property {number} [pendingVersion]\n */\n\nclass File {\n /** @type {string} */ path;\n /** @type {number} */ flags;\n\n /** @type {Metadata} */ metadata;\n /** @type {number} */ fileSize = 0;\n\n /** @type {boolean} */ needsMetadataSync = false;\n /** @type {Metadata} */ rollback = null;\n /** @type {Set<number>} */ changedPages = new Set();\n\n /** @type {string} */ synchronous = 'full';\n /** @type {IDBTransactionOptions} */ txOptions = { durability: 'strict' };\n\n constructor(path, flags, metadata) {\n this.path = path;\n this.flags = flags;\n this.metadata = metadata;\n }\n}\n\nexport class IDBBatchAtomicVFS extends WebLocksMixin(FacadeVFS) {\n /** @type {Map<number, File>} */ mapIdToFile = new Map();\n lastError = null;\n\n log = null; // console.log\n\n /** @type {Promise} */ #isReady;\n /** @type {IDBContext} */ #idb;\n\n static async create(name, module, options) {\n const vfs = new IDBBatchAtomicVFS(name, module, options);\n await vfs.isReady();\n return vfs;\n }\n\n constructor(name, module, options = {}) {\n super(name, module, options);\n this.#isReady = this.#initialize(options.idbName ?? name);\n }\n\n async #initialize(name) {\n this.#idb = await IDBContext.create(name);\n }\n\n close() {\n this.#idb.close();\n }\n \n async isReady() {\n await super.isReady();\n await this.#isReady;\n }\n\n getFilename(fileId) {\n const pathname = this.mapIdToFile.get(fileId).path;\n return `IDB(${this.name}):${pathname}`\n }\n \n /**\n * @param {string?} zName \n * @param {number} fileId \n * @param {number} flags \n * @param {DataView} pOutFlags \n * @returns {Promise<number>}\n */\n async jOpen(zName, fileId, flags, pOutFlags) {\n try {\n const url = new URL(zName || Math.random().toString(36).slice(2), 'file://');\n const path = url.pathname;\n\n let meta = await this.#idb.q(({ metadata }) => metadata.get(path));\n if (!meta && (flags & VFS.SQLITE_OPEN_CREATE)) {\n meta = {\n name: path,\n fileSize: 0,\n version: 0\n };\n await this.#idb.q(({ metadata }) => metadata.put(meta), 'rw');\n }\n \n if (!meta) {\n throw new Error(`File ${path} not found`);\n }\n\n const file = new File(path, flags, meta);\n this.mapIdToFile.set(fileId, file);\n pOutFlags.setInt32(0, flags, true);\n return VFS.SQLITE_OK;\n } catch (e) {\n this.lastError = e;\n return VFS.SQLITE_CANTOPEN;\n }\n }\n\n /**\n * @param {string} zName \n * @param {number} syncDir \n * @returns {Promise<number>}\n */\n async jDelete(zName, syncDir) {\n try {\n const url = new URL(zName, 'file://');\n const path = url.pathname;\n\n this.#idb.q(({ metadata, blocks }) => {\n const range = IDBKeyRange.bound([path, -Infinity], [path, Infinity]);\n blocks.delete(range);\n metadata.delete(path);\n }, 'rw');\n\n if (syncDir) {\n await this.#idb.sync(false);\n }\n return VFS.SQLITE_OK;\n } catch (e) {\n this.lastError = e;\n return VFS.SQLITE_IOERR_DELETE;\n }\n }\n\n /**\n * @param {string} zName \n * @param {number} flags \n * @param {DataView} pResOut \n * @returns {Promise<number>}\n */\n async jAccess(zName, flags, pResOut) {\n try {\n const url = new URL(zName, 'file://');\n const path = url.pathname;\n\n const meta = await this.#idb.q(({ metadata }) => metadata.get(path));\n pResOut.setInt32(0, meta ? 1 : 0, true);\n return VFS.SQLITE_OK;\n } catch (e) {\n this.lastError = e;\n return VFS.SQLITE_IOERR_ACCESS;\n } \n }\n\n /**\n * @param {number} fileId \n * @returns {Promise<number>}\n */\n async jClose(fileId) {\n try {\n const file = this.mapIdToFile.get(fileId);\n this.mapIdToFile.delete(fileId);\n\n if (file.flags & VFS.SQLITE_OPEN_DELETEONCLOSE) {\n await this.#idb.q(({ metadata, blocks }) => {\n metadata.delete(file.path);\n blocks.delete(IDBKeyRange.bound([file.path, 0], [file.path, Infinity]));\n }, 'rw'); \n }\n\n if (file.needsMetadataSync) {\n this.#idb.q(({ metadata }) => metadata.put(file.metadata), 'rw');\n }\n await this.#idb.sync(file.synchronous === 'full');\n return VFS.SQLITE_OK;\n } catch (e) {\n this.lastError = e;\n return VFS.SQLITE_IOERR_CLOSE;\n }\n }\n\n /**\n * @param {number} fileId \n * @param {Uint8Array} pData \n * @param {number} iOffset\n * @returns {Promise<number>}\n */\n async jRead(fileId, pData, iOffset) {\n try {\n const file = this.mapIdToFile.get(fileId);\n\n let pDataOffset = 0;\n while (pDataOffset < pData.byteLength) {\n // Fetch the IndexedDB block for this file location.\n const fileOffset = iOffset + pDataOffset;\n const block = await this.#idb.q(({ blocks }) => {\n const range = IDBKeyRange.bound([file.path, -fileOffset], [file.path, Infinity]);\n return blocks.get(range);\n }); \n \n if (!block || block.data.byteLength - block.offset <= fileOffset) {\n pData.fill(0, pDataOffset);\n return VFS.SQLITE_IOERR_SHORT_READ;\n }\n\n // Copy block data.\n const dst = pData.subarray(pDataOffset);\n const srcOffset = fileOffset + block.offset;\n const nBytesToCopy = Math.min(\n Math.max(block.data.byteLength - srcOffset, 0),\n dst.byteLength);\n dst.set(block.data.subarray(srcOffset, srcOffset + nBytesToCopy));\n pDataOffset += nBytesToCopy;\n }\n return VFS.SQLITE_OK;\n } catch (e) {\n this.lastError = e;\n return VFS.SQLITE_IOERR_READ;\n }\n }\n\n /**\n * @param {number} fileId \n * @param {Uint8Array} pData \n * @param {number} iOffset\n * @returns {number}\n */\n jWrite(fileId, pData, iOffset) {\n try {\n const file = this.mapIdToFile.get(fileId);\n if (file.flags & VFS.SQLITE_OPEN_MAIN_DB) {\n if (!file.rollback) {\n // Begin a new write transaction.\n // Add pendingVersion to the metadata in IndexedDB. If we crash\n // during the transaction, this lets subsequent connections\n // know to remove blocks from the failed transaction.\n const pending = Object.assign(\n { pendingVersion: file.metadata.version - 1 },\n file.metadata);\n this.#idb.q(({ metadata }) => metadata.put(pending), 'rw', file.txOptions);\n\n file.rollback = Object.assign({}, file.metadata);\n file.metadata.version--;\n }\n }\n\n if (file.flags & VFS.SQLITE_OPEN_MAIN_DB) {\n file.changedPages.add(iOffset);\n }\n\n const data = pData.slice();\n const version = file.metadata.version;\n const isOverwrite = iOffset < file.metadata.fileSize;\n if (!isOverwrite ||\n file.flags & VFS.SQLITE_OPEN_MAIN_DB ||\n file.flags & VFS.SQLITE_OPEN_TEMP_DB) {\n const block = {\n path: file.path,\n offset: -iOffset,\n version: version,\n data: pData.slice()\n };\n this.#idb.q(({ blocks }) => {\n blocks.put(block);\n file.changedPages.add(iOffset);\n }, 'rw', file.txOptions);\n } else {\n this.#idb.q(async ({ blocks }) => {\n // Read the existing block.\n const range = IDBKeyRange.bound(\n [file.path, -iOffset],\n [file.path, Infinity]);\n const block = await blocks.get(range);\n\n // Modify the block data.\n // @ts-ignore\n block.data.subarray(iOffset + block.offset).set(data);\n\n // Write back.\n blocks.put(block);\n }, 'rw', file.txOptions);\n\n }\n\n if (file.metadata.fileSize < iOffset + pData.length) {\n file.metadata.fileSize = iOffset + pData.length;\n file.needsMetadataSync = true;\n }\n return VFS.SQLITE_OK;\n } catch (e) {\n this.lastError = e;\n return VFS.SQLITE_IOERR_WRITE;\n }\n }\n\n /**\n * @param {number} fileId \n * @param {number} iSize \n * @returns {number}\n */\n jTruncate(fileId, iSize) {\n try {\n const file = this.mapIdToFile.get(fileId);\n if (iSize < file.metadata.fileSize) {\n this.#idb.q(({ blocks }) => {\n const range = IDBKeyRange.bound(\n [file.path, -Infinity],\n [file.path, -iSize, Infinity]);\n blocks.delete(range);\n }, 'rw', file.txOptions);\n file.metadata.fileSize = iSize;\n file.needsMetadataSync = true;\n }\n return VFS.SQLITE_OK;\n } catch (e) {\n this.lastError = e;\n return VFS.SQLITE_IOERR_TRUNCATE;\n }\n }\n\n /**\n * @param {number} fileId \n * @param {number} flags \n * @returns {Promise<number>}\n */\n async jSync(fileId, flags) {\n try {\n const file = this.mapIdToFile.get(fileId);\n if (file.needsMetadataSync) {\n this.#idb.q(({ metadata }) => metadata.put(file.metadata), 'rw', file.txOptions);\n file.needsMetadataSync = false;\n }\n\n if (file.flags & VFS.SQLITE_OPEN_MAIN_DB) {\n // Sync is only needed here for durability. Visibility for other\n // connections is ensured in jUnlock().\n if (file.synchronous === 'full') {\n await this.#idb.sync(true);\n }\n } else {\n await this.#idb.sync(file.synchronous === 'full');\n }\n return VFS.SQLITE_OK;\n } catch (e) {\n this.lastError = e;\n return VFS.SQLITE_IOERR_FSYNC;\n }\n }\n\n /**\n * @param {number} fileId \n * @param {DataView} pSize64 \n * @returns {number}\n */\n jFileSize(fileId, pSize64) {\n try {\n const file = this.mapIdToFile.get(fileId);\n pSize64.setBigInt64(0, BigInt(file.metadata.fileSize), true);\n return VFS.SQLITE_OK;\n } catch (e) {\n this.lastError = e;\n return VFS.SQLITE_IOERR_FSTAT;\n }\n }\n\n /**\n * @param {number} fileId \n * @param {number} lockType \n * @returns {Promise<number>}\n */\n async jLock(fileId, lockType) {\n // Call the actual lock implementation.\n const file = this.mapIdToFile.get(fileId);\n const result = await super.jLock(fileId, lockType);\n\n if (lockType === VFS.SQLITE_LOCK_SHARED) {\n // Update metadata.\n file.metadata = await this.#idb.q(async ({ metadata, blocks }) => {\n // @ts-ignore\n /** @type {Metadata} */ const m = await metadata.get(file.path);\n if (m.pendingVersion) {\n console.warn(`removing failed transaction ${m.pendingVersion}`);\n await new Promise((resolve, reject) => {\n const range = IDBKeyRange.bound([m.name, -Infinity], [m.name, Infinity]);\n const request = blocks.openCursor(range);\n request.onsuccess = () => {\n const cursor = request.result;\n if (cursor) {\n const block = cursor.value;\n if (block.version < m.version) {\n cursor.delete();\n }\n cursor.continue();\n } else {\n resolve();\n }\n };\n request.onerror = () => reject(request.error);\n })\n\n delete m.pendingVersion;\n metadata.put(m);\n }\n return m;\n }, 'rw', file.txOptions);\n }\n return result;\n }\n\n /**\n * @param {number} fileId \n * @param {number} lockType \n * @returns {Promise<number>}\n */\n async jUnlock(fileId, lockType) {\n if (lockType === VFS.SQLITE_LOCK_NONE) {\n const file = this.mapIdToFile.get(fileId);\n await this.#idb.sync(file.synchronous === 'full');\n }\n\n // Call the actual unlock implementation.\n return super.jUnlock(fileId, lockType);\n }\n\n /**\n * @param {number} fileId\n * @param {number} op\n * @param {DataView} pArg\n * @returns {number|Promise<number>}\n */\n jFileControl(fileId, op, pArg) {\n try {\n const file = this.mapIdToFile.get(fileId);\n switch (op) {\n case VFS.SQLITE_FCNTL_PRAGMA:\n const key = extractString(pArg, 4);\n const value = extractString(pArg, 8);\n this.log?.('xFileControl', file.path, 'PRAGMA', key, value);\n const setPragmaResponse = response => {\n const encoded = new TextEncoder().encode(response);\n const out = this._module._sqlite3_malloc(encoded.byteLength);\n const outArray = this._module.HEAPU8.subarray(out, out + encoded.byteLength);\n outArray.set(encoded);\n pArg.setUint32(0, out, true);\n return VFS.SQLITE_ERROR;\n };\n switch (key.toLowerCase()) {\n case 'page_size':\n if (file.flags & VFS.SQLITE_OPEN_MAIN_DB) {\n // Don't allow changing the page size.\n if (value && file.metadata.fileSize) {\n return VFS.SQLITE_ERROR;\n }\n }\n break;\n case 'synchronous':\n if (value) {\n switch (value.toLowerCase()) {\n case '0':\n case 'off':\n file.synchronous = 'off';\n file.txOptions = { durability: 'relaxed' };\n break;\n case '1':\n case 'normal':\n file.synchronous = 'normal';\n file.txOptions = { durability: 'relaxed' };\n break;\n case '2':\n case '3':\n case 'full':\n case 'extra':\n file.synchronous = 'full';\n file.txOptions = { durability: 'strict' };\n break;\n }\n }\n break;\n case 'write_hint':\n return super.jFileControl(fileId, WebLocksMixin.WRITE_HINT_OP_CODE, null);\n }\n break;\n case VFS.SQLITE_FCNTL_SYNC:\n this.log?.('xFileControl', file.path, 'SYNC');\n if (file.rollback) {\n const commitMetadata = Object.assign({}, file.metadata);\n const prevFileSize = file.rollback.fileSize\n this.#idb.q(({ metadata, blocks }) => {\n metadata.put(commitMetadata);\n\n // Remove old page versions.\n for (const offset of file.changedPages) {\n if (offset < prevFileSize) {\n const range = IDBKeyRange.bound(\n [file.path, -offset, commitMetadata.version],\n [file.path, -offset, Infinity],\n true);\n blocks.delete(range);\n }\n }\n file.changedPages.clear();\n }, 'rw', file.txOptions);\n file.needsMetadataSync = false;\n file.rollback = null;\n }\n break;\n case VFS.SQLITE_FCNTL_BEGIN_ATOMIC_WRITE:\n // Every write transaction is atomic, so this is a no-op.\n this.log?.('xFileControl', file.path, 'BEGIN_ATOMIC_WRITE');\n return VFS.SQLITE_OK;\n case VFS.SQLITE_FCNTL_COMMIT_ATOMIC_WRITE:\n // Every write transaction is atomic, so this is a no-op.\n this.log?.('xFileControl', file.path, 'COMMIT_ATOMIC_WRITE');\n return VFS.SQLITE_OK;\n case VFS.SQLITE_FCNTL_ROLLBACK_ATOMIC_WRITE:\n this.log?.('xFileControl', file.path, 'ROLLBACK_ATOMIC_WRITE');\n file.metadata = file.rollback;\n const rollbackMetadata = Object.assign({}, file.metadata);\n this.#idb.q(({ metadata, blocks }) => {\n metadata.put(rollbackMetadata);\n\n // Remove pages.\n for (const offset of file.changedPages) {\n blocks.delete([file.path, -offset, rollbackMetadata.version - 1]);\n }\n file.changedPages.clear();\n }, 'rw', file.txOptions);\n file.needsMetadataSync = false;\n file.rollback = null;\n return VFS.SQLITE_OK;\n }\n } catch (e) {\n this.lastError = e;\n return VFS.SQLITE_IOERR;\n }\n return super.jFileControl(fileId, op, pArg);\n }\n \n /**\n * @param {number} pFile\n * @returns {number|Promise<number>}\n */\n jDeviceCharacteristics(pFile) {\n return 0\n | VFS.SQLITE_IOCAP_BATCH_ATOMIC\n | VFS.SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN;\n }\n\n /**\n * @param {Uint8Array} zBuf \n * @returns {number|Promise<number>}\n */\n jGetLastError(zBuf) {\n if (this.lastError) {\n console.error(this.lastError);\n const outputArray = zBuf.subarray(0, zBuf.byteLength - 1);\n const { written } = new TextEncoder().encodeInto(this.lastError.message, outputArray);\n zBuf[written] = 0;\n }\n return VFS.SQLITE_OK\n }\n}\n\nfunction extractString(dataView, offset) {\n const p = dataView.getUint32(offset, true);\n if (p) {\n const chars = new Uint8Array(dataView.buffer, p);\n return new TextDecoder().decode(chars.subarray(0, chars.indexOf(0)));\n }\n return null;\n}\n\nexport class IDBContext {\n /** @type {IDBDatabase} */ #database;\n\n /** @type {Promise} */ #chain = null;\n /** @type {Promise<any>} */ #txComplete = Promise.resolve();\n /** @type {IDBRequest?} */ #request = null;\n /** @type {WeakSet<IDBTransaction>} */ #txPending = new WeakSet();\n \n log = null;\n\n static async create(name) {\n const database = await new Promise((resolve, reject) => {\n const request = indexedDB.open(name, 6);\n request.onupgradeneeded = async event => {\n const db = request.result;\n if (event.oldVersion) {\n console.log(`Upgrading IndexedDB from version ${event.oldVersion}`);\n }\n switch (event.oldVersion) {\n case 0:\n // Start with the original schema.\n db.createObjectStore('blocks', { keyPath: ['path', 'offset', 'version']})\n .createIndex('version', ['path', 'version']);\n // fall through intentionally\n case 5:\n const tx = request.transaction;\n const blocks = tx.objectStore('blocks');\n blocks.deleteIndex('version');\n const metadata = db.createObjectStore('metadata', { keyPath: 'name' });\n\n await new Promise((resolve, reject) => {\n // Iterate over all the blocks.\n let lastBlock = {};\n const request = tx.objectStore('blocks').openCursor();\n request.onsuccess = () => {\n const cursor = request.result;\n if (cursor) {\n const block = cursor.value;\n if (typeof block.offset !== 'number' ||\n (block.path === lastBlock.path && block.offset === lastBlock.offset)) {\n // Remove superceded block (or the \"purge\" info).\n cursor.delete();\n } else if (block.offset === 0) {\n // Move metadata to its own store.\n metadata.put({\n name: block.path,\n fileSize: block.fileSize,\n version: block.version\n });\n\n delete block.fileSize;\n cursor.update(block);\n }\n lastBlock = block;\n cursor.continue();\n } else {\n resolve();\n }\n };\n request.onerror = () => reject(request.error);\n });\n break;\n }\n };\n request.onsuccess = () => resolve(request.result);\n request.onerror = () => reject(request.error);\n });\n return new IDBContext(database);\n }\n\n constructor(database) {\n this.#database = database;\n }\n\n close() {\n this.#database.close();\n }\n\n /**\n * @param {(stores: Object.<string, IDBObjectStore>) => any} f \n * @param {'ro'|'rw'} mode \n * @returns {Promise<any>}\n */\n q(f, mode = 'ro', options = {}) {\n /** @type {IDBTransactionMode} */\n const txMode = mode === 'ro' ? 'readonly' : 'readwrite';\n const txOptions = Object.assign({\n /** @type {IDBTransactionDurability} */ durability: 'default'\n }, options);\n\n // Ensure that queries run sequentially. If any function rejects,\n // or any request has an error, or the transaction does not commit,\n // then no subsequent functions will run until sync() or reset().\n this.#chain = (this.#chain || Promise.resolve())\n .then(() => this.#q(f, txMode, txOptions));\n return this.#chain;\n }\n\n /**\n * @param {(stores: Object.<string, IDBObjectStore>) => any} f \n * @param {IDBTransactionMode} mode \n * @param {IDBTransactionOptions} options\n * @returns {Promise<any>}\n */\n async #q(f, mode, options) {\n /** @type {IDBTransaction} */ let tx;\n if (this.#request &&\n this.#txPending.has(this.#request.transaction) &&\n this.#request.transaction.mode >= mode &&\n this.#request.transaction.durability === options.durability) {\n // The previous request transaction is compatible and has\n // not yet completed.\n tx = this.#request.transaction;\n\n // If the previous request is pending, wait for it to complete.\n // This ensures that the transaction will be active.\n if (this.#request.readyState === 'pending') {\n await new Promise(resolve => {\n this.#request.addEventListener('success', resolve, { once: true });\n this.#request.addEventListener('error', resolve, { once: true });\n });\n }\n }\n\n for (let i = 0; i < 2; ++i) {\n if (!tx) {\n // The current transaction is missing or doesn't match so\n // replace it with a new one. wait for the previous\n // transaction to complete so the lifetimes do not overlap.\n await this.#txComplete;\n\n // Create the new transaction.\n // @ts-ignore\n tx = this.#database.transaction(this.#database.objectStoreNames, mode, options);\n this.log?.('IDBTransaction open', mode);\n this.#txPending.add(tx);\n this.#txComplete = new Promise((resolve, reject) => {\n tx.addEventListener('complete', () => {\n this.log?.('IDBTransaction complete');\n this.#txPending.delete(tx);\n resolve();\n });\n tx.addEventListener('abort', () => {\n this.#txPending.delete(tx);\n reject(new Error('transaction aborted'));\n });\n });\n }\n\n try {\n // @ts-ignore\n // Create object store proxies.\n const objectStores = [...tx.objectStoreNames].map(name => {\n return [name, this.proxyStoreOrIndex(tx.objectStore(name))];\n });\n\n // Execute the function.\n return await f(Object.fromEntries(objectStores));\n } catch (e) {\n // Use a new transaction if this one was inactive. This will\n // happen if the last request in the transaction completed\n // in a previous task but the transaction has not yet committed.\n if (!i && RETRYABLE_ERRORS.has(e.name)) {\n this.log?.(`${e.name}, retrying`);\n tx = null;\n continue;\n }\n throw e;\n }\n }\n }\n\n /**\n * Object store methods that return an IDBRequest, except for cursor\n * creation, are wrapped to return a Promise. In addition, the\n * request is used internally for chaining.\n * @param {IDBObjectStore} objectStore \n * @returns \n */\n proxyStoreOrIndex(objectStore) {\n return new Proxy(objectStore, {\n get: (target, property, receiver) => {\n const result = Reflect.get(target, property, receiver);\n if (typeof result === 'function') {\n return (...args) => {\n const maybeRequest = Reflect.apply(result, target, args);\n // @ts-ignore\n if (maybeRequest instanceof IDBRequest && !property.endsWith('Cursor')) {\n // // Debug logging.\n // this.log?.(`${target.name}.${String(property)}`, args);\n // maybeRequest.addEventListener('success', () => {\n // this.log?.(`${target.name}.${String(property)} success`, maybeRequest.result);\n // });\n // maybeRequest.addEventListener('error', () => {\n // this.log?.(`${target.name}.${String(property)} error`, maybeRequest.error);\n // });\n \n // Save the request.\n this.#request = maybeRequest;\n\n // Abort the transaction on error.\n maybeRequest.addEventListener('error', () => {\n console.error(maybeRequest.error);\n maybeRequest.transaction.abort();\n }, { once: true }); \n\n // Return a Promise.\n return wrap(maybeRequest);\n }\n return maybeRequest;\n }\n }\n return result;\n }\n });\n }\n\n /**\n * @param {boolean} durable \n */\n async sync(durable) {\n if (this.#chain) {\n // This waits for all IndexedDB calls to be made.\n await this.#chain;\n if (durable) {\n // This waits for the final transaction to commit.\n await this.#txComplete;\n }\n this.reset();\n }\n }\n\n reset() {\n this.#chain = null;\n this.#txComplete = Promise.resolve();\n this.#request = null;\n }\n}\n\n/**\n * @param {IDBRequest} request \n * @returns {Promise}\n */\nfunction wrap(request) {\n return new Promise((resolve, reject) => {\n request.onsuccess = () => resolve(request.result);\n request.onerror = () => reject(request.error);\n });\n}\n\n","// Copyright 2023 Roy T. Hashimoto. All Rights Reserved.\nimport { FacadeVFS } from '../FacadeVFS.js';\nimport * as VFS from '../VFS.js';\n\nconst SECTOR_SIZE = 4096;\n\n// Each OPFS file begins with a fixed-size header with metadata. The\n// contents of the file follow immediately after the header.\nconst HEADER_MAX_PATH_SIZE = 512;\nconst HEADER_FLAGS_SIZE = 4;\nconst HEADER_DIGEST_SIZE = 8;\nconst HEADER_CORPUS_SIZE = HEADER_MAX_PATH_SIZE + HEADER_FLAGS_SIZE;\nconst HEADER_OFFSET_FLAGS = HEADER_MAX_PATH_SIZE;\nconst HEADER_OFFSET_DIGEST = HEADER_CORPUS_SIZE;\nconst HEADER_OFFSET_DATA = SECTOR_SIZE;\n\n// These file types are expected to persist in the file system outside\n// a session. Other files will be removed on VFS start.\nconst PERSISTENT_FILE_TYPES =\n VFS.SQLITE_OPEN_MAIN_DB |\n VFS.SQLITE_OPEN_MAIN_JOURNAL |\n VFS.SQLITE_OPEN_SUPER_JOURNAL |\n VFS.SQLITE_OPEN_WAL;\n\nconst DEFAULT_CAPACITY = 6;\n\n/**\n * This VFS uses the updated Access Handle API with all synchronous methods\n * on FileSystemSyncAccessHandle (instead of just read and write). It will\n * work with the regular SQLite WebAssembly build, i.e. the one without\n * Asyncify.\n */\nexport class AccessHandlePoolVFS extends FacadeVFS {\n log = null; //function(...args) { console.log(`[${contextName}]`, ...args) };\n\n // All the OPFS files the VFS uses are contained in one flat directory\n // specified in the constructor. No other files should be written here.\n #directoryPath;\n #directoryHandle;\n\n // The OPFS files all have randomly-generated names that do not match\n // the SQLite files whose data they contain. This map links those names\n // with their respective OPFS access handles.\n #mapAccessHandleToName = new Map();\n\n // When a SQLite file is associated with an OPFS file, that association\n // is kept in #mapPathToAccessHandle. Each access handle is in exactly\n // one of #mapPathToAccessHandle or #availableAccessHandles.\n #mapPathToAccessHandle = new Map();\n #availableAccessHandles = new Set();\n\n #mapIdToFile = new Map();\n\n static async create(name, module) {\n const vfs = new AccessHandlePoolVFS(name, module);\n await vfs.isReady();\n return vfs;\n }\n \n constructor(name, module) {\n super(name, module);\n this.#directoryPath = name;\n }\n\n /**\n * @param {string?} zName \n * @param {number} fileId \n * @param {number} flags \n * @param {DataView} pOutFlags \n * @returns {number}\n */\n jOpen(zName, fileId, flags, pOutFlags) {\n try {\n // First try to open a path that already exists in the file system.\n const path = zName ? this.#getPath(zName) : Math.random().toString(36);\n let accessHandle = this.#mapPathToAccessHandle.get(path);\n if (!accessHandle && (flags & VFS.SQLITE_OPEN_CREATE)) {\n // File not found so try to create it.\n if (this.getSize() < this.getCapacity()) {\n // Choose an unassociated OPFS file from the pool.\n ([accessHandle] = this.#availableAccessHandles.keys());\n this.#setAssociatedPath(accessHandle, path, flags);\n } else {\n // Out of unassociated files. This can be fixed by calling\n // addCapacity() from the application.\n throw new Error('cannot create file');\n }\n }\n if (!accessHandle) {\n throw new Error('file not found');\n }\n // Subsequent methods are only passed the fileId, so make sure we have\n // a way to get the file resources.\n const file = { path, flags, accessHandle };\n this.#mapIdToFile.set(fileId, file);\n\n pOutFlags.setInt32(0, flags, true);\n return VFS.SQLITE_OK;\n } catch (e) {\n console.error(e.message);\n return VFS.SQLITE_CANTOPEN;\n }\n }\n\n /**\n * @param {number} fileId \n * @returns {number}\n */\n jClose(fileId) {\n const file = this.#mapIdToFile.get(fileId);\n if (file) {\n file.accessHandle.flush();\n this.#mapIdToFile.delete(fileId);\n if (file.flags & VFS.SQLITE_OPEN_DELETEONCLOSE) {\n this.#deletePath(file.path);\n }\n }\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} fileId \n * @param {Uint8Array} pData \n * @param {number} iOffset\n * @returns {number}\n */\n jRead(fileId, pData, iOffset) {\n const file = this.#mapIdToFile.get(fileId);\n const nBytes = file.accessHandle.read(\n pData.subarray(),\n { at: HEADER_OFFSET_DATA + iOffset });\n if (nBytes < pData.byteLength) {\n pData.fill(0, nBytes, pData.byteLength);\n return VFS.SQLITE_IOERR_SHORT_READ;\n }\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} fileId \n * @param {Uint8Array} pData \n * @param {number} iOffset\n * @returns {number}\n */\n jWrite(fileId, pData, iOffset) {\n const file = this.#mapIdToFile.get(fileId);\n const nBytes = file.accessHandle.write(\n pData.subarray(),\n { at: HEADER_OFFSET_DATA + iOffset });\n return nBytes === pData.byteLength ? VFS.SQLITE_OK : VFS.SQLITE_IOERR;\n }\n\n /**\n * @param {number} fileId \n * @param {number} iSize \n * @returns {number}\n */\n jTruncate(fileId, iSize) {\n const file = this.#mapIdToFile.get(fileId);\n file.accessHandle.truncate(HEADER_OFFSET_DATA + iSize);\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} fileId \n * @param {number} flags \n * @returns {number}\n */\n jSync(fileId, flags) {\n const file = this.#mapIdToFile.get(fileId);\n file.accessHandle.flush();\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} fileId \n * @param {DataView} pSize64 \n * @returns {number}\n */\n jFileSize(fileId, pSize64) {\n const file = this.#mapIdToFile.get(fileId);\n const size = file.accessHandle.getSize() - HEADER_OFFSET_DATA;\n pSize64.setBigInt64(0, BigInt(size), true);\n return VFS.SQLITE_OK;\n }\n\n jSectorSize(fileId) {\n return SECTOR_SIZE;\n }\n\n jDeviceCharacteristics(fileId) {\n return VFS.SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN;\n }\n\n /**\n * @param {string} zName \n * @param {number} flags \n * @param {DataView} pResOut \n * @returns {number}\n */\n jAccess(zName, flags, pResOut) {\n const path = this.#getPath(zName);\n pResOut.setInt32(0, this.#mapPathToAccessHandle.has(path) ? 1 : 0, true);\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {string} zName \n * @param {number} syncDir \n * @returns {number}\n */\n jDelete(zName, syncDir) {\n const path = this.#getPath(zName);\n this.#deletePath(path);\n return VFS.SQLITE_OK;\n }\n\n async close() {\n await this.#releaseAccessHandles();\n }\n\n async isReady() {\n if (!this.#directoryHandle) {\n // All files are stored in a single directory.\n let handle = await navigator.storage.getDirectory();\n for (const d of this.#directoryPath.split('/')) {\n if (d) {\n handle = await handle.getDirectoryHandle(d, { create: true });\n }\n }\n this.#directoryHandle = handle;\n\n await this.#acquireAccessHandles();\n if (this.getCapacity() === 0) {\n await this.addCapacity(DEFAULT_CAPACITY);\n }\n }\n return true;\n }\n\n /**\n * Returns the number of SQLite files in the file system.\n * @returns {number}\n */\n getSize() {\n return this.#mapPathToAccessHandle.size;\n }\n\n /**\n * Returns the maximum number of SQLite files the file system can hold.\n * @returns {number}\n */\n getCapacity() {\n return this.#mapAccessHandleToName.size;\n }\n\n /**\n * Increase the capacity of the file system by n.\n * @param {number} n \n * @returns {Promise<number>} \n */\n async addCapacity(n) {\n for (let i = 0; i < n; ++i) {\n const name = Math.random().toString(36).replace('0.', '');\n const handle = await this.#directoryHandle.getFileHandle(name, { create: true });\n const accessHandle = await handle.createSyncAccessHandle();\n this.#mapAccessHandleToName.set(accessHandle, name);\n\n this.#setAssociatedPath(accessHandle, '', 0);\n }\n return n;\n }\n\n /**\n * Decrease the capacity of the file system by n. The capacity cannot be\n * decreased to fewer than the current number of SQLite files in the\n * file system.\n * @param {number} n \n * @returns {Promise<number>}\n */\n async removeCapacity(n) {\n let nRemoved = 0;\n for (const accessHandle of Array.from(this.#availableAccessHandles)) {\n if (nRemoved == n || this.getSize() === this.getCapacity()) return nRemoved;\n\n const name = this.#mapAccessHandleToName.get(accessHandle);\n await accessHandle.close();\n await this.#directoryHandle.removeEntry(name);\n this.#mapAccessHandleToName.delete(accessHandle);\n this.#availableAccessHandles.delete(accessHandle);\n ++nRemoved;\n }\n return nRemoved;\n }\n\n async #acquireAccessHandles() {\n // Enumerate all the files in the directory.\n const files = [];\n for await (const [name, handle] of this.#directoryHandle) {\n if (handle.kind === 'file') {\n files.push([name, handle]);\n }\n }\n\n // Open access handles in parallel, separating associated and unassociated.\n await Promise.all(files.map(async ([name, handle]) => {\n const accessHandle = await handle.createSyncAccessHandle();\n this.#mapAccessHandleToName.set(accessHandle, name);\n const path = this.#getAssociatedPath(accessHandle);\n if (path) {\n this.#mapPathToAccessHandle.set(path, accessHandle);\n } else {\n this.#availableAccessHandles.add(accessHandle);\n }\n }));\n }\n\n #releaseAccessHandles() {\n for (const accessHandle of this.#mapAccessHandleToName.keys()) {\n accessHandle.close();\n }\n this.#mapAccessHandleToName.clear();\n this.#mapPathToAccessHandle.clear();\n this.#availableAccessHandles.clear();\n }\n\n /**\n * Read and return the associated path from an OPFS file header.\n * Empty string is returned for an unassociated OPFS file.\n * @param accessHandle FileSystemSyncAccessHandle\n * @returns {string} path or empty string\n */\n #getAssociatedPath(accessHandle) {\n // Read the path and digest of the path from the file.\n const corpus = new Uint8Array(HEADER_CORPUS_SIZE);\n accessHandle.read(corpus, { at: 0 })\n\n // Delete files not expected to be present.\n const dataView = new DataView(corpus.buffer, corpus.byteOffset);\n const flags = dataView.getUint32(HEADER_OFFSET_FLAGS);\n if (corpus[0] &&\n ((flags & VFS.SQLITE_OPEN_DELETEONCLOSE) ||\n (flags & PERSISTENT_FILE_TYPES) === 0)) {\n console.warn(`Remove file with unexpected flags ${flags.toString(16)}`);\n this.#setAssociatedPath(accessHandle, '', 0);\n return '';\n }\n\n const fileDigest = new Uint32Array(HEADER_DIGEST_SIZE / 4);\n accessHandle.read(fileDigest, { at: HEADER_OFFSET_DIGEST });\n\n // Verify the digest.\n const computedDigest = this.#computeDigest(corpus);\n if (fileDigest.every((value, i) => value === computedDigest[i])) {\n // Good digest. Decode the null-terminated path string.\n const pathBytes = corpus.findIndex(value => value === 0);\n if (pathBytes === 0) {\n // Ensure that unassociated files are empty. Unassociated files are\n // truncated in #setAssociatedPath after the header is written. If\n // an interruption occurs right before the truncation then garbage\n // may remain in the file.\n accessHandle.truncate(HEADER_OFFSET_DATA);\n }\n return new TextDecoder().decode(corpus.subarray(0, pathBytes));\n } else {\n // Bad digest. Repair this header.\n console.warn('Disassociating file with bad digest.');\n this.#setAssociatedPath(accessHandle, '', 0);\n return '';\n }\n }\n\n /**\n * Set the path on an OPFS file header.\n * @param accessHandle FileSystemSyncAccessHandle\n * @param {string} path\n * @param {number} flags\n */\n #setAssociatedPath(accessHandle, path, flags) {\n // Convert the path string to UTF-8.\n const corpus = new Uint8Array(HEADER_CORPUS_SIZE);\n const encodedResult = new TextEncoder().encodeInto(path, corpus);\n if (encodedResult.written >= HEADER_MAX_PATH_SIZE) {\n throw new Error('path too long');\n }\n\n // Add the creation flags.\n const dataView = new DataView(corpus.buffer, corpus.byteOffset);\n dataView.setUint32(HEADER_OFFSET_FLAGS, flags);\n\n // Write the OPFS file header, including the digest.\n const digest = this.#computeDigest(corpus);\n accessHandle.write(corpus, { at: 0 });\n accessHandle.write(digest, { at: HEADER_OFFSET_DIGEST });\n accessHandle.flush();\n\n if (path) {\n this.#mapPathToAccessHandle.set(path, accessHandle);\n this.#availableAccessHandles.delete(accessHandle);\n } else {\n // This OPFS file doesn't represent any SQLite file so it doesn't\n // need to keep any data.\n accessHandle.truncate(HEADER_OFFSET_DATA);\n this.#availableAccessHandles.add(accessHandle);\n }\n }\n\n /**\n * We need a synchronous digest function so can't use WebCrypto.\n * Adapted from https://github.com/bryc/code/blob/master/jshash/experimental/cyrb53.js\n * @param {Uint8Array} corpus \n * @returns {ArrayBuffer} 64-bit digest\n */\n #computeDigest(corpus) {\n if (!corpus[0]) {\n // Optimization for deleted file.\n return new Uint32Array([0xfecc5f80, 0xaccec037]);\n }\n\n let h1 = 0xdeadbeef;\n let h2 = 0x41c6ce57;\n \n for (const value of corpus) {\n h1 = Math.imul(h1 ^ value, 2654435761);\n h2 = Math.imul(h2 ^ value, 1597334677);\n }\n \n h1 = Math.imul(h1 ^ (h1 >>> 16), 2246822507) ^ Math.imul(h2 ^ (h2 >>> 13), 3266489909);\n h2 = Math.imul(h2 ^ (h2 >>> 16), 2246822507) ^ Math.imul(h1 ^ (h1 >>> 13), 3266489909);\n \n return new Uint32Array([h1 >>> 0, h2 >>> 0]);\n };\n \n /**\n * Convert a bare filename, path, or URL to a UNIX-style path.\n * @param {string|URL} nameOrURL\n * @returns {string} path\n */\n #getPath(nameOrURL) {\n const url = typeof nameOrURL === 'string' ?\n new URL(nameOrURL, 'file://localhost/') :\n nameOrURL;\n return url.pathname;\n }\n\n /**\n * Remove the association between a path and an OPFS file.\n * @param {string} path \n */\n #deletePath(path) {\n const accessHandle = this.#mapPathToAccessHandle.get(path);\n if (accessHandle) {\n // Un-associate the SQLite path from the OPFS file.\n this.#mapPathToAccessHandle.delete(path);\n this.#setAssociatedPath(accessHandle, '', 0);\n }\n }\n}","// Copyright 2024 Roy T. Hashimoto. All Rights Reserved.\nimport { FacadeVFS } from '../FacadeVFS.js';\nimport * as VFS from '../VFS.js';\n\nconst DEFAULT_TEMPORARY_FILES = 10;\nconst LOCK_NOTIFY_INTERVAL = 1000;\n\nconst DB_RELATED_FILE_SUFFIXES = ['', '-journal', '-wal'];\n\nconst finalizationRegistry = new FinalizationRegistry(releaser => releaser());\n\nclass File {\n /** @type {string} */ path\n /** @type {number} */ flags;\n /** @type {FileSystemSyncAccessHandle} */ accessHandle;\n\n /** @type {PersistentFile?} */ persistentFile;\n\n constructor(path, flags) {\n this.path = path;\n this.flags = flags;\n }\n}\n\nclass PersistentFile {\n /** @type {FileSystemFileHandle} */ fileHandle\n /** @type {FileSystemSyncAccessHandle} */ accessHandle = null\n\n // The following properties are for main database files.\n\n /** @type {boolean} */ isLockBusy = false;\n /** @type {boolean} */ isFileLocked = false;\n /** @type {boolean} */ isRequestInProgress = false;\n /** @type {function} */ handleLockReleaser = null;\n\n /** @type {BroadcastChannel} */ handleRequestChannel;\n /** @type {boolean} */ isHandleRequested = false;\n\n constructor(fileHandle) {\n this.fileHandle = fileHandle;\n }\n}\n\nexport class OPFSCoopSyncVFS extends FacadeVFS {\n /** @type {Map<number, File>} */ mapIdToFile = new Map();\n\n lastError = null;\n log = null; //function(...args) { console.log(`[${contextName}]`, ...args) };\n \n /** @type {Map<string, PersistentFile>} */ persistentFiles = new Map();\n /** @type {Map<string, FileSystemSyncAccessHandle>} */ boundAccessHandles = new Map();\n /** @type {Set<FileSystemSyncAccessHandle>} */ unboundAccessHandles = new Set();\n /** @type {Set<string>} */ accessiblePaths = new Set();\n releaser = null;\n\n static async create(name, module) {\n const vfs = new OPFSCoopSyncVFS(name, module);\n await Promise.all([\n vfs.isReady(),\n vfs.#initialize(DEFAULT_TEMPORARY_FILES),\n ]);\n return vfs;\n }\n\n constructor(name, module) {\n super(name, module);\n }\n\n async #initialize(nTemporaryFiles) {\n // Delete temporary directories no longer in use.\n const root = await navigator.storage.getDirectory();\n // @ts-ignore\n for await (const entry of root.values()) {\n if (entry.kind === 'directory' && entry.name.startsWith('.ahp-')) {\n // A lock with the same name as the directory protects it from\n // being deleted.\n await navigator.locks.request(entry.name, { ifAvailable: true }, async lock => {\n if (lock) {\n this.log?.(`Deleting temporary directory ${entry.name}`);\n await root.removeEntry(entry.name, { recursive: true });\n } else {\n this.log?.(`Temporary directory ${entry.name} is in use`);\n }\n });\n }\n }\n\n // Create our temporary directory.\n const tmpDirName = `.ahp-${Math.random().toString(36).slice(2)}`;\n this.releaser = await new Promise(resolve => {\n navigator.locks.request(tmpDirName, () => {\n return new Promise(release => {\n resolve(release);\n });\n });\n });\n finalizationRegistry.register(this, this.releaser);\n const tmpDir = await root.getDirectoryHandle(tmpDirName, { create: true });\n\n // Populate temporary directory.\n for (let i = 0; i < nTemporaryFiles; i++) {\n const tmpFile = await tmpDir.getFileHandle(`${i}.tmp`, { create: true });\n const tmpAccessHandle = await tmpFile.createSyncAccessHandle();\n this.unboundAccessHandles.add(tmpAccessHandle);\n }\n }\n\n /**\n * @param {string?} zName \n * @param {number} fileId \n * @param {number} flags \n * @param {DataView} pOutFlags \n * @returns {number}\n */\n jOpen(zName, fileId, flags, pOutFlags) {\n try {\n const url = new URL(zName || Math.random().toString(36).slice(2), 'file://');\n const path = url.pathname;\n\n if (flags & VFS.SQLITE_OPEN_MAIN_DB) {\n const persistentFile = this.persistentFiles.get(path);\n if (persistentFile?.isRequestInProgress) {\n // Should not reach here unless SQLite itself retries an open.\n // Otherwise, asynchronous operations started on a previous\n // open try should have completed.\n return VFS.SQLITE_BUSY;\n } else if (!persistentFile) {\n // This is the usual starting point for opening a database.\n // Register a Promise that resolves when the database and related\n // files are ready to be used.\n this.log?.(`creating persistent file for ${path}`);\n const create = !!(flags & VFS.SQLITE_OPEN_CREATE);\n this._module.retryOps.push((async () => {\n try {\n // Get the path directory handle.\n let dirHandle = await navigator.storage.getDirectory();\n const directories = path.split('/').filter(d => d);\n const filename = directories.pop();\n for (const directory of directories) {\n dirHandle = await dirHandle.getDirectoryHandle(directory, { create });\n }\n\n // Get file handles for the database and related files,\n // and create persistent file instances.\n for (const suffix of DB_RELATED_FILE_SUFFIXES) {\n const fileHandle = await dirHandle.getFileHandle(filename + suffix, { create });\n await this.#createPersistentFile(fileHandle);\n }\n\n // Get access handles for the files.\n const file = new File(path, flags);\n file.persistentFile = this.persistentFiles.get(path);\n await this.#requestAccessHandle(file);\n } catch (e) {\n // Use an invalid persistent file to signal this error\n // for the retried open.\n const persistentFile = new PersistentFile(null);\n this.persistentFiles.set(path, persistentFile);\n console.error(e);\n }\n })());\n return VFS.SQLITE_BUSY;\n } else if (!persistentFile.fileHandle) {\n // The asynchronous open operation failed.\n this.persistentFiles.delete(path);\n return VFS.SQLITE_CANTOPEN;\n } else if (!persistentFile.accessHandle) {\n // This branch is reached if the database was previously opened\n // and closed.\n this._module.retryOps.push((async () => {\n const file = new File(path, flags);\n file.persistentFile = this.persistentFiles.get(path);\n await this.#requestAccessHandle(file);\n })());\n return VFS.SQLITE_BUSY;\n }\n }\n\n if (!this.accessiblePaths.has(path) &&\n !(flags & VFS.SQLITE_OPEN_CREATE)) {\n throw new Error(`File ${path} not found`);\n }\n\n const file = new File(path, flags);\n this.mapIdToFile.set(fileId, file);\n\n if (this.persistentFiles.has(path)) {\n file.persistentFile = this.persistentFiles.get(path);\n } else if (this.boundAccessHandles.has(path)) {\n // This temporary file was previously created and closed. Reopen\n // the same access handle.\n file.accessHandle = this.boundAccessHandles.get(path);\n } else if (this.unboundAccessHandles.size) {\n // Associate an unbound access handle to this file.\n file.accessHandle = this.unboundAccessHandles.values().next().value;\n file.accessHandle.truncate(0);\n this.unboundAccessHandles.delete(file.accessHandle);\n this.boundAccessHandles.set(path, file.accessHandle);\n }\n this.accessiblePaths.add(path);\n \n pOutFlags.setInt32(0, flags, true);\n return VFS.SQLITE_OK;\n } catch (e) {\n this.lastError = e;\n return VFS.SQLITE_CANTOPEN;\n }\n }\n\n /**\n * @param {string} zName \n * @param {number} syncDir \n * @returns {number}\n */\n jDelete(zName, syncDir) {\n try {\n const url = new URL(zName, 'file://');\n const path = url.pathname;\n if (this.persistentFiles.has(path)) {\n const persistentFile = this.persistentFiles.get(path);\n persistentFile.accessHandle.truncate(0);\n } else {\n this.boundAccessHandles.get(path)?.truncate(0);\n }\n this.accessiblePaths.delete(path);\n return VFS.SQLITE_OK;\n } catch (e) {\n this.lastError = e;\n return VFS.SQLITE_IOERR_DELETE;\n }\n }\n\n /**\n * @param {string} zName \n * @param {number} flags \n * @param {DataView} pResOut \n * @returns {number}\n */\n jAccess(zName, flags, pResOut) {\n try {\n const url = new URL(zName, 'file://');\n const path = url.pathname;\n pResOut.setInt32(0, this.accessiblePaths.has(path) ? 1 : 0, true);\n return VFS.SQLITE_OK;\n } catch (e) {\n this.lastError = e;\n return VFS.SQLITE_IOERR_ACCESS;\n } \n }\n\n /**\n * @param {number} fileId \n * @returns {number}\n */\n jClose(fileId) {\n try {\n const file = this.mapIdToFile.get(fileId);\n this.mapIdToFile.delete(fileId);\n\n if (file?.flags & VFS.SQLITE_OPEN_MAIN_DB) {\n if (file.persistentFile?.handleLockReleaser) {\n this.#releaseAccessHandle(file);\n }\n } else if (file?.flags & VFS.SQLITE_OPEN_DELETEONCLOSE) {\n file.accessHandle.truncate(0);\n this.accessiblePaths.delete(file.path);\n if (!this.persistentFiles.has(file.path)) {\n this.boundAccessHandles.delete(file.path);\n this.unboundAccessHandles.add(file.accessHandle);\n }\n }\n return VFS.SQLITE_OK;\n } catch (e) {\n this.lastError = e;\n return VFS.SQLITE_IOERR_CLOSE;\n }\n }\n\n /**\n * @param {number} fileId \n * @param {Uint8Array} pData \n * @param {number} iOffset\n * @returns {number}\n */\n jRead(fileId, pData, iOffset) {\n try {\n const file = this.mapIdToFile.get(fileId);\n\n // On Chrome (at least), passing pData to accessHandle.read() is\n // an error because pData is a Proxy of a Uint8Array. Calling\n // subarray() produces a real Uint8Array and that works.\n const accessHandle = file.accessHandle || file.persistentFile.accessHandle;\n const bytesRead = accessHandle.read(pData.subarray(), { at: iOffset });\n\n // Opening a database file performs one read without a xLock call.\n if ((file.flags & VFS.SQLITE_OPEN_MAIN_DB) && !file.persistentFile.isFileLocked) {\n this.#releaseAccessHandle(file);\n }\n\n if (bytesRead < pData.byteLength) {\n pData.fill(0, bytesRead);\n return VFS.SQLITE_IOERR_SHORT_READ;\n }\n return VFS.SQLITE_OK;\n } catch (e) {\n this.lastError = e;\n return VFS.SQLITE_IOERR_READ;\n }\n }\n\n /**\n * @param {number} fileId \n * @param {Uint8Array} pData \n * @param {number} iOffset\n * @returns {number}\n */\n jWrite(fileId, pData, iOffset) {\n try {\n const file = this.mapIdToFile.get(fileId);\n\n // On Chrome (at least), passing pData to accessHandle.write() is\n // an error because pData is a Proxy of a Uint8Array. Calling\n // subarray() produces a real Uint8Array and that works.\n const accessHandle = file.accessHandle || file.persistentFile.accessHandle;\n const nBytes = accessHandle.write(pData.subarray(), { at: iOffset });\n if (nBytes !== pData.byteLength) throw new Error('short write');\n return VFS.SQLITE_OK;\n } catch (e) {\n this.lastError = e;\n return VFS.SQLITE_IOERR_WRITE;\n }\n }\n\n /**\n * @param {number} fileId \n * @param {number} iSize \n * @returns {number}\n */\n jTruncate(fileId, iSize) {\n try {\n const file = this.mapIdToFile.get(fileId);\n const accessHandle = file.accessHandle || file.persistentFile.accessHandle;\n accessHandle.truncate(iSize);\n return VFS.SQLITE_OK;\n } catch (e) {\n this.lastError = e;\n return VFS.SQLITE_IOERR_TRUNCATE;\n }\n }\n\n /**\n * @param {number} fileId \n * @param {number} flags \n * @returns {number}\n */\n jSync(fileId, flags) {\n try {\n const file = this.mapIdToFile.get(fileId);\n const accessHandle = file.accessHandle || file.persistentFile.accessHandle;\n accessHandle.flush();\n return VFS.SQLITE_OK;\n } catch (e) {\n this.lastError = e;\n return VFS.SQLITE_IOERR_FSYNC;\n }\n }\n\n /**\n * @param {number} fileId \n * @param {DataView} pSize64 \n * @returns {number}\n */\n jFileSize(fileId, pSize64) {\n try {\n const file = this.mapIdToFile.get(fileId);\n const accessHandle = file.accessHandle || file.persistentFile.accessHandle;\n const size = accessHandle.getSize();\n pSize64.setBigInt64(0, BigInt(size), true);\n return VFS.SQLITE_OK;\n } catch (e) {\n this.lastError = e;\n return VFS.SQLITE_IOERR_FSTAT;\n }\n }\n\n /**\n * @param {number} fileId \n * @param {number} lockType \n * @returns {number}\n */\n jLock(fileId, lockType) {\n const file = this.mapIdToFile.get(fileId);\n if (file.persistentFile.isRequestInProgress) {\n file.persistentFile.isLockBusy = true;\n return VFS.SQLITE_BUSY;\n }\n\n file.persistentFile.isFileLocked = true;\n if (!file.persistentFile.handleLockReleaser) {\n // Start listening for notifications from other connections.\n // This is before we actually get access handles, but waiting to\n // listen until then allows a race condition where notifications\n // are missed. \n file.persistentFile.handleRequestChannel.onmessage = () => {\n this.log?.(`received notification for ${file.path}`);\n if (file.persistentFile.isFileLocked) {\n // We're still using the access handle, so mark it to be\n // released when we're done.\n file.persistentFile.isHandleRequested = true;\n } else {\n // Release the access handles immediately.\n this.#releaseAccessHandle(file);\n }\n file.persistentFile.handleRequestChannel.onmessage = null;\n };\n\n this.#requestAccessHandle(file);\n this.log?.('returning SQLITE_BUSY');\n file.persistentFile.isLockBusy = true;\n return VFS.SQLITE_BUSY;\n }\n file.persistentFile.isLockBusy = false;\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} fileId \n * @param {number} lockType \n * @returns {number}\n */\n jUnlock(fileId, lockType) {\n const file = this.mapIdToFile.get(fileId);\n if (lockType === VFS.SQLITE_LOCK_NONE) {\n // Don't change any state if this unlock is because xLock returned\n // SQLITE_BUSY.\n if (!file.persistentFile.isLockBusy) {\n if (file.persistentFile.isHandleRequested) {\n // Another connection wants the access handle.\n this.#releaseAccessHandle(file);\n file.persistentFile.isHandleRequested = false;\n }\n file.persistentFile.isFileLocked = false;\n }\n }\n return VFS.SQLITE_OK;\n }\n \n /**\n * @param {number} fileId\n * @param {number} op\n * @param {DataView} pArg\n * @returns {number|Promise<number>}\n */\n jFileControl(fileId, op, pArg) {\n try {\n const file = this.mapIdToFile.get(fileId);\n switch (op) {\n case VFS.SQLITE_FCNTL_PRAGMA:\n const key = extractString(pArg, 4);\n const value = extractString(pArg, 8);\n this.log?.('xFileControl', file.path, 'PRAGMA', key, value);\n switch (key.toLowerCase()) {\n case 'journal_mode':\n if (value &&\n !['off', 'memory', 'delete', 'wal'].includes(value.toLowerCase())) {\n throw new Error('journal_mode must be \"off\", \"memory\", \"delete\", or \"wal\"');\n }\n break;\n }\n break;\n }\n } catch (e) {\n this.lastError = e;\n return VFS.SQLITE_IOERR;\n }\n return VFS.SQLITE_NOTFOUND;\n }\n\n /**\n * @param {Uint8Array} zBuf \n * @returns \n */\n jGetLastError(zBuf) {\n if (this.lastError) {\n console.error(this.lastError);\n const outputArray = zBuf.subarray(0, zBuf.byteLength - 1);\n const { written } = new TextEncoder().encodeInto(this.lastError.message, outputArray);\n zBuf[written] = 0;\n }\n return VFS.SQLITE_OK\n }\n\n /**\n * @param {FileSystemFileHandle} fileHandle \n * @returns {Promise<PersistentFile>}\n */\n async #createPersistentFile(fileHandle) {\n const persistentFile = new PersistentFile(fileHandle);\n const root = await navigator.storage.getDirectory();\n const relativePath = await root.resolve(fileHandle);\n const path = `/${relativePath.join('/')}`;\n persistentFile.handleRequestChannel = new BroadcastChannel(`ahp:${path}`);\n this.persistentFiles.set(path, persistentFile);\n\n const f = await fileHandle.getFile();\n if (f.size) {\n this.accessiblePaths.add(path);\n }\n return persistentFile;\n }\n\n /**\n * @param {File} file \n */\n #requestAccessHandle(file) {\n console.assert(!file.persistentFile.handleLockReleaser);\n if (!file.persistentFile.isRequestInProgress) {\n file.persistentFile.isRequestInProgress = true;\n this._module.retryOps.push((async () => {\n // Acquire the Web Lock.\n file.persistentFile.handleLockReleaser = await this.#acquireLock(file.persistentFile);\n try {\n // Get access handles for the database and releated files in parallel.\n this.log?.(`creating access handles for ${file.path}`)\n await Promise.all(DB_RELATED_FILE_SUFFIXES.map(async suffix => {\n const persistentFile = this.persistentFiles.get(file.path + suffix);\n if (persistentFile) {\n persistentFile.accessHandle =\n await persistentFile.fileHandle.createSyncAccessHandle();\n }\n }));\n } catch (e) {\n this.log?.(`failed to create access handles for ${file.path}`, e);\n // Close any of the potentially opened access handles\n this.#releaseAccessHandle(file);\n throw e;\n } finally {\n file.persistentFile.isRequestInProgress = false;\n }\n })());\n return this._module.retryOps.at(-1);\n }\n return Promise.resolve();\n }\n\n /**\n * @param {File} file \n */\n #releaseAccessHandle(file) {\n DB_RELATED_FILE_SUFFIXES.forEach(suffix => {\n const persistentFile = this.persistentFiles.get(file.path + suffix);\n if (persistentFile) {\n persistentFile.accessHandle?.close();\n persistentFile.accessHandle = null;\n }\n });\n this.log?.(`access handles closed for ${file.path}`)\n\n file.persistentFile.handleLockReleaser?.();\n file.persistentFile.handleLockReleaser = null;\n this.log?.(`lock released for ${file.path}`)\n }\n\n /**\n * @param {PersistentFile} persistentFile \n * @returns {Promise<function>} lock releaser\n */\n #acquireLock(persistentFile) {\n return new Promise(resolve => {\n // Tell other connections we want the access handle.\n const lockName = persistentFile.handleRequestChannel.name;\n const notify = () => {\n this.log?.(`notifying for ${lockName}`);\n persistentFile.handleRequestChannel.postMessage(null);\n }\n const notifyId = setInterval(notify, LOCK_NOTIFY_INTERVAL);\n setTimeout(notify);\n\n this.log?.(`lock requested: ${lockName}`)\n navigator.locks.request(lockName, lock => {\n // We have the lock. Stop asking other connections for it.\n this.log?.(`lock acquired: ${lockName}`, lock);\n clearInterval(notifyId);\n return new Promise(resolve);\n });\n });\n }\n}\n\nfunction extractString(dataView, offset) {\n const p = dataView.getUint32(offset, true);\n if (p) {\n const chars = new Uint8Array(dataView.buffer, p);\n return new TextDecoder().decode(chars.subarray(0, chars.indexOf(0)));\n }\n return null;\n}","// This is a convenience wrapper for the Web Locks API.\nexport class Lock {\n #name;\n /** @type {LockMode?} */ #mode = null;\n /** @type {Promise<Function|null>} */ #releaser = Promise.resolve(null);\n #isAcquiring = false;\n\n /**\n * @param {string} name \n */\n constructor(name) {\n this.#name = name;\n }\n\n get name() { return this.#name; }\n get mode() { return this.#mode; }\n\n close() {\n this.release();\n }\n \n /**\n * @param {'shared'|'exclusive'} mode \n * @param {number} timeout -1 for infinite, 0 for poll, >0 for milliseconds\n * @return {Promise<boolean>} true if lock acquired, false on failed poll\n */\n async acquire(mode, timeout = -1) {\n if (this.#isAcquiring) throw new Error('Lock is already being acquired');\n this.#isAcquiring = true;\n try {\n if (this.#mode) {\n throw new Error(`Lock ${this.#name} is already acquired`);\n }\n\n this.#releaser = new Promise((resolve, reject) => {\n /** @type {LockOptions} */\n const options = { mode, ifAvailable: timeout === 0 };\n if (timeout > 0) {\n options.signal = AbortSignal.timeout(timeout);\n }\n\n navigator.locks.request(this.#name, options, lock => {\n if (lock === null) {\n // Polling (with timeout = 0) did not acquire the lock.\n return resolve(null);\n }\n\n // Lock acquired. The lock is released when this returned\n // Promise is resolved.\n this.#mode = mode;\n return new Promise(releaser => {\n resolve(releaser);\n })\n }).catch(e => {\n return reject(e);\n });\n });\n\n return this.#releaser.then(releaser => !!releaser)\n } finally {\n this.#isAcquiring = false;\n }\n }\n\n release() {\n this.#releaser.then(releaser => releaser?.(), () => {});\n this.#mode = null;\n }\n}\n","import { Lock } from './Lock.js';\n\nexport class LazyLock extends Lock {\n #channel;\n #isBusy = false;\n #hasReleaseRequest = false;\n\n /**\n * @param {string} name \n */\n constructor(name) {\n super(name);\n this.#channel = new BroadcastChannel(name);\n this.#channel.onmessage = (event) => {\n if (this.#isBusy) {\n // We're using the lock so postpone the release.\n this.#hasReleaseRequest = true;\n } else {\n this.release();\n }\n }\n }\n\n close() {\n super.close();\n this.#channel.onmessage = null;\n this.#channel.close();\n }\n\n /**\n * @param {LockMode} mode \n * @param {number} timeout \n * @returns {Promise<boolean>}\n */\n async acquire(mode, timeout = -1) {\n this.#isBusy = true;\n try {\n if (mode === this.mode) {\n // We never had to release the lock.\n return true;\n }\n\n if (this.mode) {\n // Release the lock to acquire it in a different mode.\n super.release();\n } else {\n // Poll for the lock. This isn't necessary but if it works it avoids\n // the BroadcastChannel traffic.\n if (await super.acquire(mode, 0)) {\n return true;\n }\n }\n\n // Request the lock.\n const pResult = super.acquire(mode, timeout)\n this.#channel.postMessage({});\n\n return await pResult;\n } catch (e) {\n this.release();\n throw e;\n }\n }\n\n /**\n * @param {LockMode} mode \n * @returns {boolean}\n */\n acquireIfHeld(mode) {\n if (mode === this.mode) {\n this.#isBusy = true;\n return true;\n }\n return false;\n }\n\n release() {\n super.release();\n this.#isBusy = false;\n this.#hasReleaseRequest = false;\n }\n\n releaseLazy() {\n // Release the lock only if someone else wants it.\n this.#isBusy = false;\n if (this.#hasReleaseRequest) {\n this.release();\n }\n }\n}","import { Lock } from './Lock.js';\n\nconst DEFAULT_JOURNAL_SIZE_LIMIT = 1000;\nconst DEFAULT_BACKSTOP_INTERVAL = 30_000;\n\nconst MAGIC = 0x377f0684;\nconst FILE_HEADER_SIZE = 32;\nconst FRAME_HEADER_SIZE = 32;\nconst FRAME_TYPE_PAGE = 0;\nconst FRAME_TYPE_COMMIT = 1;\nconst FRAME_TYPE_END = 2;\n\n/**\n * @typedef PageEntry\n * @property {number} waOffset location in WAL file\n * @property {number} waSalt1 WAL2 file identifier\n * @property {number} pageSize\n * @property {Uint8Array} [pageData]\n */\n\n/**\n * @typedef Transaction\n * @property {number} id\n * @property {Map<number, PageEntry>} pages address to page data mapping\n * @property {number} dbFileSize\n * @property {number} [newPageSize]\n * @property {number} waSalt1 WAL2 file identifier\n * @property {number} waOffsetEnd\n */\n\n/**\n * @typedef WriteAheadOptions\n * @property {number} [autoCheckpoint]\n * @property {number} [backstopInterval]\n * @property {number} [journalSizeLimit]\n */\n\nexport class WriteAhead {\n\n log = null;\n /** @type {WriteAheadOptions} */ options = {\n autoCheckpoint: 1,\n backstopInterval: DEFAULT_BACKSTOP_INTERVAL,\n journalSizeLimit: DEFAULT_JOURNAL_SIZE_LIMIT,\n };\n\n #zName;\n #dbHandle;\n\n /** @type {FileSystemSyncAccessHandle[]} */ #waHandles;\n /** @type {FileSystemSyncAccessHandle} */ #activeHandle;\n /** @type {{nextTxId: number, salt1: number, salt2: number}} */ #activeHeader;\n /** @type {number} */ #activeOffset;\n /** @type {number} */ #txId = 0;\n /** @type {Transaction} */ #txInProgress = null;\n\n #dbFileSize = 0;\n\n /** @type {Promise<any>} */ #ready;\n /** @type {'read'|'write'} */ #isolationState = null;\n\n /** @type {Lock} */ #txIdLock = null;\n\n /** @type {Map<number, PageEntry>} */ #waOverlay = new Map();\n /** @type {Map<number, Transaction>} */ #mapIdToTx = new Map();\n /** @type {Map<number, Transaction>} */ #mapIdToPendingTx = new Map();\n\n // This is the total number of pages in #mapIdToTx, i.e. the number\n // of pages in transactions that have not been checkpointed. This may\n // not exactly match the number of pages in the WAL files because a\n // page can be written multiple times in a transaction but will only\n // be counted once here.\n #approxPageCount = 0;\n\n // The sum across this array tracks the number of pages in the active\n // WAL file. The element corresponding to the inactive WAL file will\n // always be zero; it will *not* contain the number of pages in the\n // inactive WAL file.\n #activeHandlePageCounts = [0, 0];\n\n /** @type {BroadcastChannel} */ #broadcastChannel;\n\n /** @type {number} */ #backstopTimer;\n /** @type {number} */ #backstopTimestamp = 0;\n\n #abortController = new AbortController();\n\n /**\n * @param {string} zName\n * @param {FileSystemSyncAccessHandle} dbHandle\n * @param {FileSystemSyncAccessHandle[]} waHandles\n * @param {WriteAheadOptions} options\n */\n constructor(zName, dbHandle, waHandles, options = {}) {\n this.#zName = zName;\n this.#dbHandle = dbHandle;\n this.#waHandles = waHandles;\n this.options = Object.assign(this.options, options);\n\n // All the asynchronous initialization is done here.\n this.#ready = (async () => {\n // Acquire the checkpoint lock in case the database is newly created\n // and we have to initialize a WAL file.\n const { fileHeader } =\n await navigator.locks.request(`${this.#zName}#ckpt`, async () => {\n // Set our advertised txId to zero until we know the proper value.\n // This will also prevent other connections from checkpointing\n // after we release the #ckpt lock.\n await this.#updateTxIdLock();\n\n // Listen for transactions and checkpoints from other connections.\n this.#broadcastChannel = new BroadcastChannel(`${zName}#wa`);\n this.#broadcastChannel.onmessage = (event) => {\n this.#handleMessage(event);\n };\n\n // Read headers from both WAL files and use the one with the\n // lower nextTxId. If neither header is valid, create a new header.\n const fileHeader = this.#waHandles\n .map(handle => this.#readFileHeader(handle))\n .filter(h => h)\n .sort((a, b) => a.nextTxId - b.nextTxId)[0]\n ?? this.#writeFileHeader(Math.floor(Math.random() * 0xffffffff));\n return { fileHeader };\n });\n\n // The checkpoint lock has been released, but checkpointing will not\n // happen until read the WAL files and advance our txId.\n this.#activeHeader = fileHeader;\n this.#activeHandle = this.#waHandles[fileHeader.salt1 & 1];\n this.#activeOffset = FILE_HEADER_SIZE;\n this.#txId = fileHeader.nextTxId - 1;\n\n // Load all the transactions from the WAL.\n for (const tx of this.#readAllTx()) {\n this.#activateTx(tx);\n }\n this.#updateTxIdLock(); // doesn't need await\n\n // Schedule backstop. The backstop is a guard against a crash in\n // another context between persisting a transaction and broadcasting\n // it.\n this.#backstopTimestamp = performance.now();\n this.#backstop();\n })();\n }\n\n /**\n * @returns {Promise<void>}\n */\n ready() {\n return this.#ready;\n }\n\n close() {\n this.#abortController.abort();\n\n // Stop asynchronous maintenance.\n this.#broadcastChannel.onmessage = null;\n clearTimeout(this.#backstopTimer);\n\n this.#txIdLock?.release();\n this.#broadcastChannel.close();\n }\n\n /**\n * Freeze our view of the database.\n * The view includes the transactions received so far but is not\n * guaranteed to be completely up to date. Unfreeze the view with rejoin().\n */\n isolateForRead() {\n if (this.#isolationState !== null) {\n throw new Error('Already in isolated state');\n }\n this.#isolationState = 'read';\n\n // Disable backstop during isolation.\n clearTimeout(this.#backstopTimer);\n this.#backstopTimer = null;\n }\n\n /**\n * Freeze our view of the database for writing.\n * The view includes all transactions. Unfreeze the view with rejoin().\n */\n isolateForWrite() {\n if (this.#isolationState !== null) {\n throw new Error('Already in isolated state');\n }\n this.#isolationState = 'write';\n\n // Disable backstop during isolation.\n clearTimeout(this.#backstopTimer);\n this.#backstopTimer = null;\n\n // A writer needs all previous transactions assimilated.\n this.#advanceTxId({ readToCurrent: true });\n }\n\n rejoin() {\n if (this.#isolationState === 'read') {\n // Catch up on new transactions that arrived while isolated.\n this.#advanceTxId({ autoCheckpoint: true });\n }\n this.#isolationState = null;\n\n // Resume backstop after isolation.\n this.#backstop();\n }\n\n /**\n * @param {number} offset\n * @return {Uint8Array?}\n */\n read(offset) {\n // First look for the page in any write transaction in progress.\n // If the page is not found in the transaction overlay, look in the\n // write-ahead overlay.\n const pageEntry = this.#txInProgress?.pages.get(offset) ?? this.#waOverlay.get(offset);\n if (pageEntry) {\n if (pageEntry.pageData) {\n // Page data is cached.\n this.log?.(`%cread page at ${offset} from WAL ${pageEntry.waSalt1 & 1}:${pageEntry.waOffset} (cached)`, 'background-color: gold;');\n return pageEntry.pageData;\n }\n\n // Read the page from the WAL file.\n this.log?.(`%cread page at ${offset} from WAL ${pageEntry.waSalt1 & 1}:${pageEntry.waOffset}`, 'background-color: gold;');\n return this.#fetchPage(pageEntry);\n }\n return null;\n }\n\n /**\n * @param {number} offset\n * @param {Uint8Array} data\n * @param {{dstPageSize: number?}} options\n */\n write(offset, data, options) {\n if (this.#isolationState !== 'write') {\n throw new Error('Not in write isolated state');\n }\n\n if (!this.#txInProgress) {\n this.#beginTx();\n if (options.dstPageSize !== data.byteLength) {\n // This is a VACUUM to a new page size. The incoming writes are at\n // the old page size, but we want to write to the WAL with the new\n // size.\n this.#txInProgress.newPageSize = options.dstPageSize;\n }\n }\n\n if (this.#txInProgress.newPageSize) {\n // The incoming data is not a single page because the page size\n // is changing. The two cases are when the new page size is\n // smaller or larger than the old page size.\n const frameSize = FRAME_HEADER_SIZE + this.#txInProgress.newPageSize;\n if (data.byteLength > this.#txInProgress.newPageSize) {\n // New page size is smaller. Write multiple pages of the new\n // page size.\n for (let i = 0; i < data.byteLength; i += this.#txInProgress.newPageSize) {\n const pageData = data.slice(i, i + this.#txInProgress.newPageSize);\n const waOffset = this.#writePage(offset + i, pageData);\n this.log?.(`%cwrite page at ${offset + i} to WAL ${this.#activeHeader.salt1 & 1}:${waOffset}`, 'background-color: lightskyblue;');\n }\n } else {\n // New page size is larger. Save the page data to the WAL file\n // so it can be read back and rewritten as frames with the new\n // page size.\n const pageOffset = offset % this.#txInProgress.newPageSize;\n const waOffset = this.#activeOffset +\n (offset - pageOffset) / this.#txInProgress.newPageSize * frameSize +\n FRAME_HEADER_SIZE +\n pageOffset;\n this.#activeHandle.write(data.subarray(), { at: waOffset });\n this.log?.(`%cwrite page at ${offset} to WAL ${this.#activeHeader.salt1 & 1}:${waOffset}`, 'background-color: lightskyblue;');\n }\n } else {\n // This is the normal case without a page size change.\n const waOffset = this.#writePage(offset, data.slice());\n this.log?.(`%cwrite page at ${offset} to WAL ${this.#activeHeader.salt1 & 1}:${waOffset}`, 'background-color: lightskyblue;');\n }\n }\n\n /**\n * @param {number} newSize\n */\n truncate(newSize) {\n // Ignore truncation that happens outside of a transaction. That\n // only happens (e.g. post-VACUUM) to ensure the file size matches\n // the database header.\n if (this.#txInProgress) {\n // Remove any pages past the truncation point.\n for (const offset of this.#txInProgress.pages.keys()) {\n if (offset >= newSize) {\n this.#txInProgress.pages.delete(offset);\n }\n }\n }\n }\n\n getFileSize() {\n return this.#txInProgress?.dbFileSize ?? this.#dbFileSize;\n }\n\n commit() {\n const tx = this.#txInProgress;\n if (tx.newPageSize && tx.pages.size === 0) {\n // This transaction is a VACUUM with a page size increase. All\n // the database pages have been written to the WAL file at their\n // new size with blank frame headers. Read the page data back\n // from the WAL file and rewrite as frames.\n let pageCount = 1; // to be replaced on the first iteration\n for (let i = 0; i < pageCount; i++) {\n // Read the page data.\n const pageData = new Uint8Array(tx.newPageSize);\n const waOffset = this.#activeOffset +\n i * (FRAME_HEADER_SIZE + tx.newPageSize) +\n FRAME_HEADER_SIZE;\n this.#activeHandle.read(pageData, { at: waOffset });\n\n if (i === 0) {\n // Get the actual page count from the file header.\n const headerView = new DataView(pageData.buffer);\n pageCount = headerView.getUint32(28);\n }\n\n // Write back as a frame.\n this.#writePage(i * tx.newPageSize, pageData);\n }\n }\n\n const page1 = this.#txInProgress.pages.get(0)?.pageData;\n if (page1) {\n const page1View = new DataView(page1.buffer, page1.byteOffset, page1.byteLength);\n const pageCount = page1View.getUint32(28);\n this.#txInProgress.dbFileSize = pageCount * page1.byteLength;\n } else {\n // The transaction doesn't include page 1, so this must be a\n // non-batch-atomic rollback.\n this.rollback();\n return;\n }\n\n // Persist the final pending transaction page with the database size.\n this.#commitTx();\n\n // Incorporate the transaction locally.\n this.#activateTx(tx);\n this.#updateTxIdLock();\n\n // Send the transaction to other connections.\n const payload = { type: 'tx', tx };\n this.#broadcastChannel.postMessage(payload);\n\n // Check whether to move to the other WAL file. The other WAL file must\n // be empty, and the active WAL file size (in pages) must exceed the\n // configured threshold.\n if (this.#isInactiveFileEmpty()) {\n const walFilePageCount =\n this.#activeHandlePageCounts[0] + this.#activeHandlePageCounts[1];\n const nPageThreshold = this.options.journalSizeLimit > 0 ?\n this.options.journalSizeLimit :\n DEFAULT_JOURNAL_SIZE_LIMIT;\n if (walFilePageCount >= nPageThreshold) {\n this.log?.(`%cchange WAL file at ${walFilePageCount} pages`, 'background-color: lightskyblue;');\n this.#swapActiveFile();\n }\n }\n\n this.#autoCheckpoint();\n this.#backstopTimestamp = performance.now();\n }\n\n rollback() {\n // Discard transaction pages.\n this.#abortTx();\n }\n\n /**\n * @param {{durability: 'strict'|'relaxed'}} options\n */\n sync(options) {\n if (options.durability === 'strict') {\n this.#flushActiveFile();\n }\n }\n\n /**\n * Move pages from write-ahead to main database file.\n *\n * @param {{isPassive: boolean}} options\n */\n async checkpoint(options = { isPassive: true }) {\n // Passive checkpointing is abandoned if another connection is\n // already checkpointing.\n const lockOptions = {\n ifAvailable: options.isPassive,\n };\n\n await navigator.locks.request(`${this.#zName}#ckpt`, lockOptions, async lock => {\n if (!lock) return;\n if (this.#abortController.signal.aborted) return;\n\n let ckptId = this.#getActiveFileStartingTxId() - 1;\n if (options.isPassive) {\n if (!this.#mapIdToTx.has(ckptId)) {\n // There are no transactions to checkpoint.\n return;\n }\n\n // Scan the txId locks to find the oldest txId.\n const busyTxId = (await this.#getTxIdLocks())\n .reduce((min, value) => Math.min(min, value.maxTxId), this.#txId);\n\n if (busyTxId < ckptId) {\n // The inactive WAL file is still being used.\n return;\n }\n } else {\n // Wait for all connections to reach the current txId.\n await this.#waitForTxIdLocks(value => value.maxTxId >= this.#txId);\n ckptId = this.#txId;\n }\n this.log?.(`%ccheckpoint through txId ${ckptId}`, 'background-color: lightgreen;');\n\n // Sync the WAL file. This ensures that if there is a crash after\n // part of the WAL has been copied, the uncopied part will still be\n // available afterwards.\n this.#flushInactiveFile();\n if (!options.isPassive) {\n this.#flushActiveFile();\n }\n\n // Starting at ckptId and going backwards (higher to lower txId),\n // write transaction pages to the main database file. Do not overwrite\n // a page written by a more recent transaction.\n const writtenOffsets = new Set();\n let dbFileSize = this.#dbHandle.getSize();\n for (let tx = this.#mapIdToTx.get(ckptId); tx; tx = this.#mapIdToTx.get(tx.id - 1)) {\n if (tx.id === ckptId && dbFileSize !== tx.dbFileSize) {\n // Set the file size from the latest transaction.\n dbFileSize = tx.dbFileSize;\n this.#dbHandle.truncate(dbFileSize);\n }\n\n for (const [offset, pageEntry] of tx.pages) {\n if (offset < dbFileSize && !writtenOffsets.has(offset)) {\n // Fetch the page data from the WAL file if not cached.\n const pageData = pageEntry.pageData ?? this.#fetchPage(pageEntry);\n\n // Write the page to the database file.\n const nWritten = this.#dbHandle.write(pageData, { at: offset });\n if (nWritten !== pageData.byteLength) {\n throw new Error('Checkpoint write failed');\n }\n writtenOffsets.add(offset);\n this.log?.(`%ccheckpoint wrote txId ${tx.id} page at ${offset} to database`, 'background-color: lightgreen;');\n }\n }\n\n if (tx.newPageSize) {\n // This transaction used a new page size to overwrite the entire\n // database file so no older pages need to be written. This is\n // not just an optimization; it prevents incorrectly writing\n // older smaller pages at addresses that aren't multiples of\n // the new page size.\n break;\n }\n }\n\n // Ensure that database writes are durable.\n this.log?.(`%ccheckpoint flush database file`, 'background-color: lightgreen;');\n this.#dbHandle.flush();\n\n // Notify other connections and ourselves of the checkpoint.\n this.#broadcastChannel.postMessage({\n type: 'ckpt',\n ckptId,\n });\n this.#handleCheckpoint(ckptId);\n\n // Wait for all connections to update their overlay.\n this.log?.(`%ccheckpoint waiting for connection updates`, 'background-color: lightgreen;');\n await this.#waitForTxIdLocks(value => value.minTxId > ckptId);\n\n // Truncate the inactive WAL file. This prevents new connections from\n // unnecessarily reading checkpointed data, and allows writers to make\n // it active when their conditions are met.\n this.#truncateInactiveFile();\n this.log?.(`%ccheckpoint complete`, 'background-color: lightgreen;');\n });\n }\n\n /**\n * Return the approximate number of write-ahead pages. This is the\n * sum of the number of unique page indices for each transaction,\n * so it can be fewer than the number of pages if any transaction\n * contains multiple frames for the same page.\n * @returns {number}\n */\n getWriteAheadSize() {\n return this.#approxPageCount;\n }\n\n isTransactionPending() {\n return !!this.#txInProgress;\n }\n\n setBackstopInterval(intervalMillis) {\n this.options.backstopInterval = intervalMillis;\n if (intervalMillis > 0 && this.#isolationState) {\n this.#backstop();\n }\n }\n\n /**\n * Incorporate a transaction into our view of the database.\n * @param {Transaction} tx\n */\n #activateTx(tx) {\n // Transfer to the active collection of transactions.\n this.#mapIdToTx.set(tx.id, tx);\n\n // Track the number of pages in the active WAL file.\n const page1 = tx.pages.get(0);\n const activeIndex = page1.waSalt1 & 0x1;\n this.#activeHandlePageCounts[activeIndex] += tx.pages.size;\n this.#activeHandlePageCounts[1 - activeIndex] = 0;\n\n this.#approxPageCount += tx.pages.size;\n\n // Add transaction pages to the write-ahead overlay.\n for (const [offset, pageEntry] of tx.pages) {\n this.#waOverlay.set(offset, pageEntry);\n }\n this.#dbFileSize = tx.dbFileSize;\n }\n\n /**\n * Advance the local view of the database. By default, advance to the\n * last broadcast transaction. Optionally, also advance through any\n * additional transactions in the WAL file to be fully current.\n *\n * @param {{readToCurrent?: boolean, autoCheckpoint?: boolean}} options\n */\n #advanceTxId(options = {}) {\n let didAdvance = false;\n while (this.#mapIdToPendingTx.size) {\n // Fetch the next transaction in sequence. Usually this will come\n // from pendingTx, but if it is missing then read it from the file.\n const nextTxId = this.#txId + 1;\n let tx;\n if (this.#mapIdToPendingTx.has(nextTxId)) {\n // This transaction arrived via message.\n tx = this.#mapIdToPendingTx.get(nextTxId);\n this.#mapIdToPendingTx.delete(tx.id);\n\n // Move the WAL file offset past this transaction.\n this.#skipTx(tx);\n } else {\n // Read the transaction from the WAL file.\n tx = this.#readTx();\n }\n\n this.#activateTx(tx);\n didAdvance = true;\n }\n\n if (options.readToCurrent) {\n // Read all additional transactions from the WAL file.\n for (const tx of this.#readAllTx()) {\n this.#activateTx(tx);\n didAdvance = true;\n }\n }\n\n if (didAdvance) {\n // Publish our new view txId.\n this.#updateTxIdLock();\n\n if (options.autoCheckpoint) {\n this.#autoCheckpoint();\n }\n }\n\n if (options.readToCurrent || didAdvance) {\n // The WAL has been accessed, so reset the backstop.\n // Calling #backstop() here is not necessary because if we are\n // in an isolated state then rejoin() will schedule the next call,\n // and if we are not in an isolated state then the next call\n // should already be scheduled.\n this.#backstopTimestamp = performance.now();\n }\n }\n\n #autoCheckpoint() {\n if (this.options.autoCheckpoint > 0) {\n this.checkpoint({ isPassive: true });\n }\n }\n\n /**\n * After a checkpoint, remove checkpointed pages from write-ahead.\n * The checkpoint may be been done locally or by another connection.\n * @param {number} ckptId\n */\n #handleCheckpoint(ckptId) {\n this.log?.(`%capply checkpoint through txId ${ckptId}`, 'background-color: lightgreen;');\n\n // Loop backwards from ckptId.\n for (let tx = this.#mapIdToTx.get(ckptId); tx; tx = this.#mapIdToTx.get(tx.id - 1)) {\n // Remove pages from write-ahead overlay.\n for (const [offset, pageEntry] of tx.pages.entries()) {\n // Be sure not to remove a newer version of the page.\n const overlayEntry = this.#waOverlay.get(offset);\n if (overlayEntry === pageEntry) {\n this.log?.(`%cremove txId ${tx.id} page at offset ${offset}`, 'background-color: lightgreen;');\n this.#waOverlay.delete(offset);\n }\n }\n\n // Remove transaction.\n this.#mapIdToTx.delete(tx.id);\n this.#approxPageCount -= tx.pages.size;\n }\n this.#updateTxIdLock();\n }\n\n /**\n * @param {MessageEvent} event\n */\n #handleMessage(event) {\n if (event.data.type === 'tx') {\n // New transaction from another connection. Don't use it if we\n // already have it.\n /** @type {Transaction} */ const tx = event.data.tx;\n if (tx.id > this.#txId) {\n this.#mapIdToPendingTx.set(tx.id, tx);\n if (this.#isolationState === null) {\n // Not in an isolated state, so advance our view of the database.\n this.#advanceTxId({ autoCheckpoint: true });\n }\n }\n } else if (event.data.type === 'ckpt') {\n // Checkpoint notification from another connection.\n /** @type {number} */ const ckptId = event.data.ckptId;\n this.#handleCheckpoint(ckptId);\n }\n }\n\n /**\n * Periodic check for recovering from lost transaction broadcasts.\n */\n #backstop() {\n if (this.options.backstopInterval <= 0) {\n // Backstop is disabled.\n return;\n }\n\n if (this.#isolationState) {\n throw new Error('Backstop was invoked in an isolated state');\n }\n\n const now = performance.now();\n if (now >= this.#backstopTimestamp + this.options.backstopInterval) {\n // The time since the last WAL access (read, write, or skip) has\n // exceeded the backstop interval. Check for transactions in the\n // write-ahead log that have not arrived via message.\n const oldTxId = this.#txId;\n this.#advanceTxId({ readToCurrent: true });\n if (this.#txId > oldTxId) {\n this.log?.(`%cbackstop txId ${oldTxId} -> ${this.#txId}`, 'background-color: lightyellow;');\n }\n this.#backstopTimestamp = performance.now();\n }\n\n // Schedule next backstop.\n const delay = this.#backstopTimestamp + this.options.backstopInterval - performance.now();\n clearTimeout(this.#backstopTimer);\n this.#backstopTimer = self.setTimeout(() => {\n this.#backstop();\n }, delay);\n }\n\n /**\n * Update the lock that publishes our current txId.\n */\n async #updateTxIdLock() {\n // Our view of the database, i.e. the txId, is encoded into the name\n // of a lock so other connections can see it. When our txId changes,\n // we acquire a new lock and release the old one. We must not release\n // the old lock until the new one is in place.\n const oldLock = this.#txIdLock;\n const newLockName = this.#encodeTxIdLockName();\n if (oldLock?.name !== newLockName) {\n this.#txIdLock = new Lock(newLockName);\n await this.#txIdLock.acquire('shared').then(() => {\n // The new lock is acquired.\n oldLock?.release();\n });\n\n if (this.log) {\n const { minTxId, maxTxId } = this.#decodeTxIdLockName(newLockName);\n this.log?.(`%ctxId to ${minTxId}:${maxTxId}`, 'background-color: pink;');\n }\n }\n }\n\n /**\n * Get all txId locks for this database.\n * @returns {Promise<{name: string, minTxId: number, maxTxId: number, encoded: string}[]>}\n */\n async #getTxIdLocks() {\n const { held } = await navigator.locks.query();\n return held\n .map(lock => this.#decodeTxIdLockName(lock.name))\n .filter(value => value !== null);\n }\n\n /**\n * @returns {string}\n */\n #encodeTxIdLockName() {\n // The maxTxId is our current view of the database. The minTxId is\n // the lowest txId we get pages from the WAL for, which is the lowest\n // key in mapIdToTx. If mapIdToTx is empty then we aren't reading\n // from the WAL at all - in this case we arbitrarily set minTxId to\n // invalid value maxTxId + 1.\n //\n // Use radix 36 to encode integer values to reduce the lock name length.\n const maxTxId = this.#txId;\n const minTxId = this.#mapIdToTx.keys().next().value ?? (maxTxId + 1);\n return `${this.#zName}-txId<${minTxId.toString(36)}:${maxTxId.toString(36)}>`;\n }\n\n /**\n * @param {string} lockName\n * @returns {{name: string, minTxId: number, maxTxId: number, encoded: string}?}\n */\n #decodeTxIdLockName(lockName) {\n const match = lockName.match(/^(.*)-txId<([0-9a-z]+):([0-9a-z]+)>$/);\n if (match?.[1] === this.#zName) {\n // This txId lock is for this database.\n return {\n name: match[1],\n minTxId: parseInt(match[2], 36),\n maxTxId: parseInt(match[3], 36),\n encoded: lockName\n };\n }\n return null;\n }\n\n /**\n * Wait for all txId locks that fail the provided predicate.\n * @param {(lock: {name: string, minTxId: number, maxTxId: number}) => boolean} predicate\n */\n async #waitForTxIdLocks(predicate) {\n /** @type {string[]} */ let failingLockNames = [];\n do {\n // Wait for all connections that fail the predicate.\n if (failingLockNames.length > 0) {\n await Promise.all(\n failingLockNames.map(name => navigator.locks.request(name, async () => {}))\n );\n }\n\n // Refresh the list of failing locks.\n failingLockNames = (await this.#getTxIdLocks())\n .filter(value => !predicate(value))\n .map(value => value.encoded);\n } while (failingLockNames.length > 0);\n }\n\n /**\n * @param {PageEntry} pageEntry\n * @returns {Uint8Array}\n */\n #fetchPage(pageEntry) {\n // Get the appropriate access handle based on salt parity.\n const accessHandle = this.#waHandles[pageEntry.waSalt1 & 1];\n\n // Read the page.\n const pageData = new Uint8Array(pageEntry.pageSize);\n const nBytesRead = accessHandle.read(pageData, { at: pageEntry.waOffset });\n\n if (nBytesRead !== pageEntry.pageSize) {\n throw new Error(`Short WAL read: expected ${pageEntry.pageSize} bytes, got ${nBytesRead}`);\n }\n return pageData;\n }\n\n *#readAllTx() {\n while (true) {\n const tx = this.#readTx();\n if (!tx) break;\n yield tx;\n }\n }\n\n /**\n * @returns {Transaction?}\n */\n #readTx() {\n // Read the next complete transaction or return null.\n /** @type {Transaction} */ const tx = {\n id: 0, // placeholder\n pages: new Map(),\n dbFileSize: 0, // placeholder\n waSalt1: 0, // placeholder\n waOffsetEnd: 0, // placeholder\n };\n\n // The property this.#activeOffset is only advanced on a successful\n // transition to the other WAL file or on reading a complete\n // transaction. Use a local variable to track our progress.\n let offset = this.#activeOffset;\n while (true) {\n const frame = this.#readFrame(offset);\n if (!frame) return null;\n\n if (frame.frameType === FRAME_TYPE_PAGE) {\n tx.pages.set(\n frame.pageOffset,\n {\n pageSize: frame.pageData.byteLength,\n waOffset: offset + FRAME_HEADER_SIZE,\n waSalt1: this.#activeHeader.salt1,\n }\n );\n } else if (frame.frameType === FRAME_TYPE_COMMIT) {\n // The transaction is complete. Update the instance state.\n this.#txId += 1;\n this.#activeOffset = offset + frame.byteLength;\n\n // Finalize the transaction fields and return it.\n tx.id = this.#txId;\n tx.dbFileSize = frame.dbFileSize;\n tx.waSalt1 = this.#activeHeader.salt1;\n tx.newPageSize = (frame.flags & 1) ? tx.pages.get(0).pageSize : null;\n tx.waOffsetEnd = this.#activeOffset;\n return tx;\n } else if (frame.frameType === FRAME_TYPE_END) {\n // No more transactions on the current WAL file. Switch to the\n // other file.\n this.#followFileChange(frame.fileHeader);\n offset = this.#activeOffset;\n continue;\n }\n\n offset += frame.byteLength;\n }\n }\n\n /**\n * This method is called when transaction(s) have been received by other\n * means than readTx(), e.g. via BroadcastChannel.\n *\n * @param {Transaction} tx\n */\n #skipTx(tx) {\n if (tx.waSalt1 !== this.#activeHeader.salt1) {\n // This transaction is on the other WAL file.\n if (!this.#followFileChange(null)) {\n throw new Error('invalid WAL file');\n }\n }\n\n this.#txId = tx.id;\n this.#activeOffset = tx.waOffsetEnd;\n }\n\n /**\n * @param {{overwrite?: boolean}} options\n * @returns {Transaction}\n */\n #beginTx(options = {}) {\n this.#txInProgress = {\n id: this.#txId + 1,\n pages: new Map(),\n dbFileSize: this.#dbFileSize,\n waSalt1: this.#activeHeader.salt1,\n waOffsetEnd: this.#activeOffset,\n };\n return this.#txInProgress;\n }\n\n /**\n * Write a page frame to the WAL file.\n *\n * @param {number} pageOffset\n * @param {Uint8Array} pageData\n */\n #writePage(pageOffset, pageData) {\n const headerView = new DataView(new ArrayBuffer(FRAME_HEADER_SIZE));\n headerView.setUint8(0, FRAME_TYPE_PAGE);\n headerView.setUint16(2, pageData.byteLength === 65536 ? 1 : pageData.byteLength);\n headerView.setBigUint64(8, BigInt(pageOffset));\n headerView.setUint32(16, this.#activeHeader.salt1);\n headerView.setUint32(20, this.#activeHeader.salt2);\n\n const checksum = new Checksum();\n checksum.update(new Uint8Array(headerView.buffer, 0, FRAME_HEADER_SIZE - 8));\n checksum.update(pageData);\n headerView.setUint32(24, checksum.s0);\n headerView.setUint32(28, checksum.s1);\n\n const bytesWritten =\n this.#activeHandle.write(headerView, { at: this.#txInProgress.waOffsetEnd }) +\n this.#activeHandle.write(pageData, {\n at: this.#txInProgress.waOffsetEnd + FRAME_HEADER_SIZE,\n });\n if (bytesWritten !== headerView.byteLength + pageData.byteLength) {\n throw new Error('write failed');\n }\n\n // Cache page 1 as a performance optimization and to exercise the\n // cache code path.\n const pageEntry = {\n pageSize: pageData.byteLength,\n waOffset: this.#txInProgress.waOffsetEnd + FRAME_HEADER_SIZE,\n waSalt1: this.#activeHeader.salt1,\n pageData: pageOffset === 0 ? pageData : undefined\n };\n this.#txInProgress.pages.set(pageOffset, pageEntry);\n this.#txInProgress.waOffsetEnd += bytesWritten;\n\n return pageEntry.waOffset;\n }\n\n /**\n * @returns {Transaction}\n */\n #commitTx() {\n // Write a commit frame - which is a special frame header with no\n // body - to the WAL file.\n const headerView = new DataView(new ArrayBuffer(FRAME_HEADER_SIZE));\n headerView.setUint8(0, FRAME_TYPE_COMMIT);\n headerView.setUint8(1, this.#txInProgress.newPageSize ? 1 : 0);\n headerView.setBigUint64(8, BigInt(this.#txInProgress.dbFileSize));\n headerView.setUint32(16, this.#activeHeader.salt1);\n headerView.setUint32(20, this.#activeHeader.salt2);\n\n const checksum = new Checksum();\n checksum.update(new Uint8Array(headerView.buffer, 0, FRAME_HEADER_SIZE - 8));\n headerView.setUint32(24, checksum.s0);\n headerView.setUint32(28, checksum.s1);\n\n const bytesWritten = this.#activeHandle.write(headerView, {\n at: this.#txInProgress.waOffsetEnd,\n });\n if (bytesWritten !== headerView.byteLength) {\n throw new Error('write failed');\n }\n this.#txInProgress.waOffsetEnd += bytesWritten;\n\n const tx = this.#txInProgress;\n this.#txInProgress = null;\n this.#activeOffset = tx.waOffsetEnd;\n this.#txId = tx.id;\n return tx;\n }\n\n #abortTx() {\n this.#txInProgress = null;\n this.#activeHandle.truncate(this.#activeOffset);\n }\n\n /**\n * Switch the active WAL file prior to writing the next transaction.\n */\n #swapActiveFile() {\n // Write an end frame to terminate the currently active WAL file.\n const frameView = new DataView(new ArrayBuffer(FRAME_HEADER_SIZE));\n frameView.setUint8(0, FRAME_TYPE_END);\n frameView.setUint32(16, this.#activeHeader.salt1);\n frameView.setUint32(20, this.#activeHeader.salt2);\n\n const checksum = new Checksum();\n checksum.update(new Uint8Array(frameView.buffer, 0, FRAME_HEADER_SIZE - 8));\n frameView.setUint32(24, checksum.s0);\n frameView.setUint32(28, checksum.s1);\n\n const bytesWritten = this.#activeHandle.write(frameView, { at: this.#activeOffset });\n if (bytesWritten !== frameView.byteLength) {\n throw new Error('write failed');\n }\n\n // Initialize the other WAL file and make it active.\n this.#activeHeader = this.#writeFileHeader();\n this.#activeHandle = this.#getInactiveHandle();\n this.#activeOffset = FILE_HEADER_SIZE;\n }\n\n #getActiveFileStartingTxId() {\n return this.#activeHeader.nextTxId;\n }\n\n #flushActiveFile() {\n this.#activeHandle.flush();\n }\n\n #flushInactiveFile() {\n const accessHandle = this.#getInactiveHandle();\n accessHandle.flush();\n }\n\n #isInactiveFileEmpty() {\n if (this.#mapIdToTx.has(this.#activeHeader.nextTxId - 1)) {\n // At least one transaction on the inactive file has not been\n // checkpointed.\n return false;\n }\n\n const inactiveHandle = this.#getInactiveHandle();\n if (inactiveHandle.getSize() < FILE_HEADER_SIZE) {\n // The inactive file is smaller than the minimum size for a valid\n // WAL file.\n return true;\n }\n\n // This test is sufficient by itself but the previous tests are\n // less expensive.\n return this.#readFileHeader(inactiveHandle) === null;\n }\n\n #truncateInactiveFile() {\n const accessHandle = this.#getInactiveHandle();\n accessHandle.truncate(0);\n }\n\n /**\n * This method is called after reading an end frame to switch to the\n * other WAL file.\n * @param {{nextTxId: number, salt1: number, salt2: number}?} fileHeader\n */\n #followFileChange(fileHeader) {\n // As an optimization, the file header can be passed as an argument\n // if it has already been read and validated. Otherwise that is\n // done here.\n const accessHandle = this.#getInactiveHandle();\n if (!fileHeader) {\n fileHeader = this.#readFileHeader(accessHandle);\n if (fileHeader?.salt1 !== ((this.#activeHeader.salt1 + 1) >>> 0)) return null;\n }\n\n this.#activeHandle = accessHandle;\n this.#activeHeader = fileHeader;\n this.#activeOffset = FILE_HEADER_SIZE;\n return fileHeader;\n }\n\n #getInactiveHandle() {\n return this.#activeHandle !== this.#waHandles[0] ?\n this.#waHandles[0] :\n this.#waHandles[1];\n }\n\n /**\n * @param {FileSystemSyncAccessHandle} accessHandle\n */\n #readFileHeader(accessHandle) {\n const headerView = new DataView(new ArrayBuffer(FILE_HEADER_SIZE));\n if (accessHandle.read(headerView, { at: 0 }) !== headerView.byteLength) {\n return null;\n }\n\n if (headerView.getUint32(0) !== MAGIC) return null;\n\n const checksum = new Checksum();\n checksum.update(new Uint8Array(headerView.buffer, 0, FILE_HEADER_SIZE - 8));\n if (!checksum.matches(headerView.getUint32(24), headerView.getUint32(28))) {\n return null;\n }\n\n return {\n nextTxId: Number(headerView.getBigUint64(8)),\n salt1: headerView.getUint32(16),\n salt2: headerView.getUint32(20),\n };\n }\n\n /**\n * @param {number} offset\n */\n #readFrame(offset) {\n const headerView = new DataView(new ArrayBuffer(FRAME_HEADER_SIZE));\n if (this.#activeHandle.read(headerView, { at: offset }) !== headerView.byteLength) {\n // EOF, not an error.\n return null;\n }\n\n // Verify the frame header salt values match the file header.\n const frameSalt1 = headerView.getUint32(16);\n const frameSalt2 = headerView.getUint32(20);\n if (frameSalt1 !== this.#activeHeader.salt1 || frameSalt2 !== this.#activeHeader.salt2) {\n // Not necessarily an error, could be from a restart without truncation.\n return null;\n }\n\n const payloadSize = (size => size === 1 ? 65536 : size)(headerView.getUint16(2));\n /** @type {Uint8Array} */ let payloadData;\n if (payloadSize) {\n payloadData = new Uint8Array(payloadSize);\n const payloadBytesRead = this.#activeHandle.read(\n payloadData,\n { at: offset + FRAME_HEADER_SIZE }\n );\n if (payloadBytesRead !== payloadSize) return null;\n }\n\n const checksum = new Checksum();\n checksum.update(new Uint8Array(headerView.buffer, 0, FRAME_HEADER_SIZE - 8));\n if (payloadData) {\n checksum.update(payloadData);\n }\n if (!checksum.matches(headerView.getUint32(24), headerView.getUint32(28))) {\n // Not necessarily an error, could be from a restart without truncation.\n return null;\n }\n\n const frameType = headerView.getUint8(0);\n if (frameType === FRAME_TYPE_PAGE) {\n return {\n frameType,\n byteLength: FRAME_HEADER_SIZE + payloadSize,\n pageOffset: Number(headerView.getBigUint64(8)),\n pageData: payloadData,\n };\n } else if (frameType === FRAME_TYPE_COMMIT) {\n return {\n frameType,\n byteLength: FRAME_HEADER_SIZE,\n flags: headerView.getUint8(1),\n dbFileSize: Number(headerView.getBigUint64(8)),\n };\n } else if (frameType === FRAME_TYPE_END) {\n // Handling the end frame and new file header must be atomic, so\n // we validate the new file header before returning the frame.\n // If the file header is corrupt, the end frame effectively does\n // not exist.\n //\n // A corrupt file header should be repaired by the next writer\n // that attempts to swap WAL files.\n const fileHeader = this.#readFileHeader(this.#getInactiveHandle());\n if (fileHeader?.salt1 !== ((this.#activeHeader.salt1 + 1) >>> 0)) return null;\n\n return {\n frameType,\n byteLength: FRAME_HEADER_SIZE,\n fileHeader,\n };\n }\n throw new Error(`Invalid frame type: ${frameType}`);\n }\n\n #writeFileHeader(prevSalt1 = this.#activeHeader.salt1) {\n // Derive new values from the previous values.\n const nextTxId = this.#txId + 1;\n const salt1 = (prevSalt1 + 1) >>> 0;\n const salt2 = Math.floor(Math.random() * 0xffffffff) >>> 0;\n const headerView = new DataView(new ArrayBuffer(FILE_HEADER_SIZE));\n headerView.setUint32(0, MAGIC);\n headerView.setBigUint64(8, BigInt(nextTxId));\n headerView.setUint32(16, salt1);\n headerView.setUint32(20, salt2);\n\n const checksum = new Checksum();\n checksum.update(new Uint8Array(headerView.buffer, 0, FILE_HEADER_SIZE - 8));\n headerView.setUint32(24, checksum.s0);\n headerView.setUint32(28, checksum.s1);\n\n // The even/odd parity of salt1 determines which file is written to.\n const accessHandle = this.#waHandles[salt1 & 1];\n const bytesWritten = accessHandle.write(headerView, { at: 0 });\n if (bytesWritten !== headerView.byteLength) {\n throw new Error('write failed');\n }\n\n return { nextTxId, salt1, salt2 };\n }\n}\n\n// https://www.sqlite.org/fileformat.html#checksum_algorithm\nclass Checksum {\n /** @type {number} */ s0 = 0;\n /** @type {number} */ s1 = 0;\n\n /**\n * @param {ArrayBuffer|ArrayBufferView} data\n */\n update(data) {\n if ((data.byteLength % 8) !== 0) throw new Error('Data must be a multiple of 8 bytes');\n const words = ArrayBuffer.isView(data) ?\n new Uint32Array(data.buffer, data.byteOffset, data.byteLength / 4) :\n new Uint32Array(data);\n for (let i = 0; i < words.length; i += 2) {\n this.s0 = (this.s0 + words[i] + this.s1) >>> 0;\n this.s1 = (this.s1 + words[i + 1] + this.s0) >>> 0;\n }\n }\n\n matches(s0, s1) {\n return this.s0 === s0 && this.s1 === s1;\n }\n}\n","import { FacadeVFS } from \"../FacadeVFS.js\";\nimport * as VFS from '../VFS.js';\nimport { LazyLock } from \"./LazyLock.js\";\nimport { WriteAhead } from \"./WriteAhead.js\";\n\nconst LIBRARY_FILES_ROOT = '.wa-sqlite';\nconst DEFAULT_TEMP_FILES = 6;\n\nconst finalizationRegistry = new FinalizationRegistry((/** @type {() => void} */ f) => f());\n\n/**\n * @typedef FileEntry\n * @property {string} zName\n * @property {number} flags\n * @property {FileSystemSyncAccessHandle} [accessHandle]\n\n * Main database file properties:\n * @property {*} [retryResult]\n * @property {FileSystemSyncAccessHandle[]} [waHandles]\n * \n * @property {'reserved'|'exclusive'|null} [writeHint]\n * @property {'normal'|'exclusive'} [lockingMode]\n * @property {number} [lockState] SQLITE_LOCK_*\n * @property {LazyLock} [readLock]\n * @property {LazyLock} [writeLock]\n * @property {'none'|'read'|'write'|'readwrite'} [useLazyLock]\n * @property {number} [timeout]\n * @property {0|1|2|3} [synchronous]\n * @property {number?} [pageSize]\n * @property {boolean} [overwrite]\n * \n * @property {WriteAhead} [writeAhead]\n */\n\n/**\n * @typedef OPFSWriteAheadOptions\n * @property {number} [nTmpFiles]\n * @property {number} [autoCheckpoint]\n * @property {number} [backstopInterval]\n */\n\nexport class OPFSWriteAheadVFS extends FacadeVFS {\n lastError = null;\n log = null;\n \n /** @type {Map<number, FileEntry>} */ mapIdToFile = new Map();\n /** @type {Map<string, FileEntry>} */ mapPathToFile = new Map();\n\n /** @type {Map<string, FileSystemSyncAccessHandle>} */ boundTempFiles = new Map();\n /** @type {Set<FileSystemSyncAccessHandle>} */ unboundTempFiles = new Set();\n /** @type {OPFSWriteAheadOptions} */ options = {\n nTmpFiles: DEFAULT_TEMP_FILES\n };\n\n _ready;\n\n static async create(name, module, options) {\n const vfs = new OPFSWriteAheadVFS(name, module);\n Object.assign(vfs.options, options);\n await vfs.isReady();\n return vfs;\n }\n\n constructor(name, module) {\n super(name, module);\n this._ready = (async () => {\n // Ensure the library files root directory exists.\n let dirHandle = await navigator.storage.getDirectory();\n dirHandle = await dirHandle.getDirectoryHandle(LIBRARY_FILES_ROOT, { create: true });\n\n // Clean up any stale session directories.\n // @ts-ignore\n for await (const name of dirHandle.keys()) {\n if (name.startsWith('.session-')) {\n // Acquire a lock on the session directory to ensure it is not in use.\n await navigator.locks.request(name, { ifAvailable: true }, async lock => {\n if (lock) {\n // This directory is not in use.\n try {\n await dirHandle.removeEntry(name, { recursive: true });\n } catch (e) {\n // Ignore errors, will try again next time.\n }\n }\n });\n }\n }\n\n // Create our session directory.\n const dirName = `.session-${Math.random().toString(16).slice(2)}`;\n await new Promise(resolve => {\n navigator.locks.request(dirName, () => {\n // @ts-ignore\n resolve();\n return new Promise(release => {\n // @ts-ignore\n finalizationRegistry.register(this, release);\n });\n });\n });\n dirHandle = await dirHandle.getDirectoryHandle(dirName, { create: true });\n\n // Create temporary files.\n for (let i = 0; i < this.options.nTmpFiles; i++) {\n const fileHandle= await dirHandle.getFileHandle(i.toString(), { create: true });\n const accessHandle = await fileHandle.createSyncAccessHandle();\n finalizationRegistry.register(this, () => accessHandle.close());\n this.unboundTempFiles.add(accessHandle);\n }\n })();\n }\n\n isReady() {\n return Promise.all([super.isReady(), this._ready]).then(() => true);\n }\n\n /**\n * @param {string?} zName \n * @param {number} fileId \n * @param {number} flags \n * @param {DataView} pOutFlags \n * @returns {number}\n */\n jOpen(zName, fileId, flags, pOutFlags) {\n try {\n if (zName === null) {\n // Generate a temporary filename. This will only be used as a\n // key to map to a pre-opened temporary file access handle.\n zName = Math.random().toString(16).slice(2);\n }\n\n const file = this.mapPathToFile.get(zName) ?? {\n zName,\n flags,\n retryResult: null,\n };\n this.mapPathToFile.set(zName, file);\n\n if (flags & VFS.SQLITE_OPEN_MAIN_DB) {\n // Open database and journal files with a retry operation.\n if (file.retryResult === null) {\n // This is the initial open attempt. Start the asynchronous task\n // and return SQLITE_BUSY to force a retry.\n this._module.retryOps.push(this.#retryOpen(zName, flags, fileId, pOutFlags));\n return VFS.SQLITE_BUSY;\n } else if (file.retryResult instanceof Error) {\n const e = file.retryResult;\n file.retryResult = null;\n throw e;\n }\n\n // Initialize database file state.\n file.accessHandle = file.retryResult.accessHandle;\n file.waHandles = file.retryResult.waHandles;\n file.writeAhead = file.retryResult.writeAhead;\n file.retryResult = null;\n\n file.lockState = VFS.SQLITE_LOCK_NONE;\n file.lockingMode = 'normal';\n file.readLock = new LazyLock(`${zName}#read`);\n file.writeLock = new LazyLock(`${zName}#write`);\n file.useLazyLock = 'readwrite';\n file.timeout = -1;\n file.synchronous = 1; // NORMAL\n file.writeHint = null;\n file.pageSize = null;\n file.overwrite = false;\n } else if (flags & (VFS.SQLITE_OPEN_WAL | VFS.SQLITE_OPEN_SUPER_JOURNAL)) {\n throw new Error('WAL and super-journal files are not supported');\n } else if (file.accessHandle) {\n // This temporary file already has an access handle, which happens\n // only for tests. Just use it as is.\n } else {\n // This is a temporary file. Use an unbound pre-opened accessHandle.\n if (!(flags & VFS.SQLITE_OPEN_CREATE)) throw new Error('file not found');\n file.accessHandle = this.#openTemporaryFile(zName);\n }\n\n this.mapIdToFile.set(fileId, file);\n pOutFlags.setInt32(0, flags, true);\n return VFS.SQLITE_OK;\n } catch (e) {\n console.error(e.stack);\n this.lastError = e;\n this.mapPathToFile.delete(zName);\n return VFS.SQLITE_CANTOPEN;\n }\n }\n\n /**\n * @param {string} zName \n * @param {number} syncDir \n * @returns {number}\n */\n jDelete(zName, syncDir) {\n try {\n if (this.boundTempFiles.has(zName)) {\n const file = this.mapPathToFile.get(zName);\n this.#deleteTemporaryFile(file);\n } else {\n throw new Error(`unexpected file deletion: ${zName}`);\n }\n return VFS.SQLITE_OK;\n } catch (e) {\n console.error(e.stack);\n this.lastError = e;\n return VFS.SQLITE_IOERR_DELETE;\n }\n }\n\n /**\n * @param {string} zName \n * @param {number} flags \n * @param {DataView} pResOut \n * @returns {number}\n */\n jAccess(zName, flags, pResOut) {\n try {\n const file = this.mapPathToFile.get(zName);\n pResOut.setInt32(0, file ? 1 : 0, true);\n return VFS.SQLITE_OK;\n } catch (e) {\n console.error(e.stack);\n this.lastError = e;\n return VFS.SQLITE_IOERR_ACCESS;\n }\n }\n\n /**\n * @param {number} fileId \n * @returns {number}\n */\n jClose(fileId) {\n try {\n const file = this.mapIdToFile.get(fileId);\n if (file?.flags & VFS.SQLITE_OPEN_MAIN_DB) {\n file.writeAhead.close();\n file.accessHandle.close();\n file.waHandles.forEach(handle => handle.close());\n this.mapPathToFile.delete(file?.zName);\n\n file.readLock.close();\n file.writeLock.close();\n } else if (file?.flags & VFS.SQLITE_OPEN_DELETEONCLOSE) {\n this.#deleteTemporaryFile(file);\n }\n\n // Disassociate fileId from file entry.\n this.mapIdToFile.delete(fileId);\n return VFS.SQLITE_OK;\n } catch (e) {\n console.error(e.stack);\n this.lastError = e;\n return VFS.SQLITE_IOERR_CLOSE;\n }\n }\n\n /**\n * @param {number} fileId \n * @param {Uint8Array} pData \n * @param {number} iOffset\n * @returns {number}\n */\n jRead(fileId, pData, iOffset) {\n try {\n const file = this.mapIdToFile.get(fileId);\n\n let bytesRead = null;\n if (file.flags & VFS.SQLITE_OPEN_MAIN_DB) {\n // Try reading from the write-ahead overlays first. A read on the\n // database file is always a complete page, except when reading\n // from the 100-byte header.\n const pageOffset = iOffset < 100 ? iOffset : 0;\n const page = file.writeAhead.read(iOffset - pageOffset);\n if (page) {\n const readData = page.subarray(pageOffset, pageOffset + pData.byteLength);\n pData.set(readData);\n bytesRead = readData.byteLength;\n }\n }\n\n if (bytesRead === null) {\n // Read directly from the OPFS file.\n\n // On Chrome (at least), passing pData to accessHandle.read() is\n // an error because pData is a Proxy of a Uint8Array. Calling\n // subarray() produces a real Uint8Array and that works.\n bytesRead = file.accessHandle.read(pData.subarray(), { at: iOffset });\n }\n\n if (bytesRead < pData.byteLength) {\n pData.fill(0, bytesRead);\n return VFS.SQLITE_IOERR_SHORT_READ;\n }\n return VFS.SQLITE_OK;\n } catch (e) {\n console.error(e.stack);\n this.lastError = e;\n return VFS.SQLITE_IOERR_READ;\n }\n }\n\n /**\n * @param {number} fileId \n * @param {Uint8Array} pData \n * @param {number} iOffset\n * @returns {number}\n */\n jWrite(fileId, pData, iOffset) {\n try {\n const file = this.mapIdToFile.get(fileId);\n if (file.flags & VFS.SQLITE_OPEN_MAIN_DB) {\n // Write to the write-ahead overlay.\n const isPageResize = file.overwrite && file.pageSize !== pData.byteLength;\n file.writeAhead.write(iOffset, pData, {\n dstPageSize: isPageResize ? file.pageSize : null\n });\n return VFS.SQLITE_OK;\n }\n\n // On Chrome (at least), passing pData to accessHandle.write() is\n // an error because pData is a Proxy of a Uint8Array. Calling\n // subarray() produces a real Uint8Array and that works.\n file.accessHandle.write(pData.subarray(), { at: iOffset });\n return VFS.SQLITE_OK;\n } catch (e) {\n console.error(e.stack);\n this.lastError = e;\n return VFS.SQLITE_IOERR_WRITE;\n }\n }\n\n /**\n * @param {number} fileId \n * @param {number} iSize \n * @returns {number}\n */\n jTruncate(fileId, iSize) {\n try {\n const file = this.mapIdToFile.get(fileId);\n if (file.flags & VFS.SQLITE_OPEN_MAIN_DB) {\n file.writeAhead.truncate(iSize);\n return VFS.SQLITE_OK;\n }\n file.accessHandle.truncate(iSize);\n return VFS.SQLITE_OK;\n } catch (e) {\n console.error(e.stack);\n this.lastError = e;\n return VFS.SQLITE_IOERR_TRUNCATE;\n }\n }\n\n /**\n * @param {number} fileId \n * @param {number} flags \n * @returns {number}\n */\n jSync(fileId, flags) {\n try {\n const file = this.mapIdToFile.get(fileId);\n if (file.flags & VFS.SQLITE_OPEN_MAIN_DB) {\n const durability = file.synchronous > 1 ? 'strict' : 'relaxed';\n file.writeAhead.sync({ durability });\n } else {\n // This is a temporary file so sync is not needed.\n // Temporary journals are only used for rollback by the\n // connection that created them, not for recovery.\n }\n return VFS.SQLITE_OK;\n } catch (e) {\n console.error(e.stack);\n this.lastError = e;\n return VFS.SQLITE_IOERR_FSYNC;\n }\n }\n\n /**\n * @param {number} fileId \n * @param {DataView} pSize64 \n * @returns {number}\n */\n jFileSize(fileId, pSize64) {\n try {\n const file = this.mapIdToFile.get(fileId);\n\n let size;\n if (file.flags & VFS.SQLITE_OPEN_MAIN_DB) {\n size = file.writeAhead.getFileSize() || file.accessHandle.getSize();\n } else {\n size = file.accessHandle.getSize();\n }\n pSize64.setBigInt64(0, BigInt(size), true);\n return VFS.SQLITE_OK;\n } catch (e) {\n console.error(e.stack);\n this.lastError = e;\n return VFS.SQLITE_IOERR_FSTAT;\n }\n }\n\n /**\n * @param {number} pFile \n * @param {number} lockType \n * @returns {number|Promise<number>}\n */\n jLock(pFile, lockType) {\n try {\n const file = this.mapIdToFile.get(pFile);\n if (file.lockState === VFS.SQLITE_LOCK_NONE && lockType === VFS.SQLITE_LOCK_SHARED) {\n // We do all our locking work in this transition.\n if (file.retryResult === null) {\n if (file.lockingMode === 'exclusive') {\n // Exclusive locking mode is treated as a write, and the\n // read lock is also acquired to block readers.\n file.retryResult = {};\n this._module.retryOps.push(this.#retryLockWrite(file));\n return VFS.SQLITE_BUSY;\n }\n\n // With WAL, read and write transactions use separate locks. In\n // each case if the required lock is already held then we can\n // proceed synchronously. Otherwise we need to acquire state\n // asynchronously and retry.\n if (file.writeHint) {\n // Write transaction.\n if (!file.writeLock.acquireIfHeld('exclusive')) {\n file.retryResult = {};\n this._module.retryOps.push(this.#retryLockWrite(file));\n return VFS.SQLITE_BUSY;\n } else {\n file.writeAhead.isolateForWrite();\n }\n } else {\n // Read transaction.\n if (!file.readLock.acquireIfHeld('shared')) {\n file.retryResult = {};\n this._module.retryOps.push(this.#retryLockRead(file));\n return VFS.SQLITE_BUSY;\n } else {\n file.writeAhead.isolateForRead();\n }\n }\n } else if (file.retryResult instanceof Error) {\n const e = file.retryResult;\n file.retryResult = null;\n throw e;\n }\n\n // We have acquired the needed locks, either synchronously or\n // via retry.\n file.retryResult = null;\n } else if (lockType >= VFS.SQLITE_LOCK_RESERVED && !file.writeLock.mode) {\n // This is a write transaction but we don't already have the write\n // lock. This happens when the write hint was not used, which this\n // VFS treats as an error.\n throw new Error('Write transaction cannot use BEGIN DEFERRED');\n }\n file.lockState = lockType;\n return VFS.SQLITE_OK;\n } catch (e) {\n if (e.name === 'TimeoutError') {\n return VFS.SQLITE_BUSY;\n }\n\n console.error(e.stack);\n this.lastError = e;\n return VFS.SQLITE_IOERR_LOCK;\n }\n }\n\n /**\n * @param {number} pFile \n * @param {number} lockType \n * @returns {number}\n */\n jUnlock(pFile, lockType) {\n try {\n const file = this.mapIdToFile.get(pFile);\n\n // If retryResult is non-null, an asynchronous lock operation is in\n // progress. In that case, don't change any locks.\n if (!file.retryResult && lockType === VFS.SQLITE_LOCK_NONE) {\n // In this VFS, this is the only unlock transition that matters.\n // Exit write-ahead isolation.\n file.writeAhead.rejoin();\n\n // Release any locks.\n switch (file.useLazyLock) {\n case 'none':\n file.writeLock.release();\n file.readLock.release();\n break;\n case 'read':\n file.writeLock.release();\n file.readLock.releaseLazy();\n break;\n case 'write':\n file.writeLock.releaseLazy();\n file.readLock.release();\n break;\n case 'readwrite':\n file.writeLock.releaseLazy();\n file.readLock.releaseLazy();\n break;\n }\n\n // Reset state for the next transaction.\n file.writeHint = null;\n }\n file.lockState = lockType;\n } catch (e) {\n console.error(e.stack);\n this.lastError = e;\n return VFS.SQLITE_IOERR_UNLOCK;\n }\n }\n\n /**\n * @param {number} pFile \n * @param {DataView} pResOut \n * @returns {number}\n */\n jCheckReservedLock(pFile, pResOut) {\n // A hot journal cannot exist so this method should never be called.\n console.assert(false, 'unexpected');\n pResOut.setInt32(0, 0, true);\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} pFile\n * @param {number} op\n * @param {DataView} pArg\n * @returns {number}\n */\n jFileControl(pFile, op, pArg) {\n try {\n const file = this.mapIdToFile.get(pFile);\n switch (op) {\n case VFS.SQLITE_FCNTL_PRAGMA:\n const key = this._module.UTF8ToString(pArg.getUint32(4, true));\n const valueAddress = pArg.getUint32(8, true);\n const value = valueAddress ? this._module.UTF8ToString(valueAddress) : null;\n this.log?.(`PRAGMA ${key} ${value}`);\n switch (key.toLowerCase()) {\n case 'experimental_pragma_20251114':\n // After entering the SHARED locking state on the next\n // transaction, SQLite intends to immediately transition to\n // RESERVED if value is '1', or EXCLUSIVE if value is '2'.\n switch (value) {\n case '1':\n file.writeHint = 'reserved';\n break;\n case '2':\n file.writeHint = 'exclusive';\n break;\n default:\n throw new Error(`unexpected write hint value: ${value}`);\n }\n break;\n case 'backstop_interval':\n if (value !== null) {\n const millis = parseInt(value);\n file.writeAhead.setBackstopInterval(millis);\n } else {\n // Return current interval.\n const s = file.writeAhead.options.backstopInterval.toString();\n const ptr = this._module._sqlite3_malloc64(s.length + 1);\n this._module.stringToUTF8(s, ptr, s.length + 1);\n pArg.setUint32(0, ptr, true);\n }\n return VFS.SQLITE_OK;\n case 'busy_timeout':\n // Override SQLite's handling of busy timeouts with our\n // blocking lock timeouts.\n if (value !== null) {\n file.timeout = parseInt(value);\n } else {\n // Return current timeout.\n const s = file.timeout.toString();\n const ptr = this._module._sqlite3_malloc64(s.length + 1);\n this._module.stringToUTF8(s, ptr, s.length + 1);\n pArg.setUint32(0, ptr, true);\n }\n return VFS.SQLITE_OK;\n case 'journal_size_limit':\n if (value !== null) {\n const nPages = parseInt(value);\n file.writeAhead.options.journalSizeLimit = nPages;\n }\n break;\n case 'locking_mode':\n // Track SQLite locking mode. Exclusive mode requires a\n // write lock.\n switch (value?.toLowerCase()) {\n case 'normal':\n file.lockingMode = 'normal';\n break;\n case 'exclusive':\n file.lockingMode = 'exclusive';\n break;\n }\n break;\n case 'page_size':\n if (value !== null) {\n // Valid page sizes are 1 (which maps to 65536) or powers of\n // two from 512 to 32768.\n const n = parseInt(value);\n if (n === 1 || (n >= 512 && n <= 32768 && (n & (n - 1)) === 0)) {\n file.pageSize = n === 1 ? 65536 : n;\n }\n }\n break;\n case 'synchronous':\n // Track SQLite synchronous mode. Write-ahead transactions\n // trade durability for performance on values 1 (NORMAL) or\n // lower.\n if (value !== null) {\n switch (value.toLowerCase()) {\n case 'off':\n case '0':\n file.synchronous = 0;\n break;\n case 'normal':\n case '1':\n file.synchronous = 1;\n break;\n case 'full':\n case '2':\n file.synchronous = 2;\n break;\n case 'extra':\n case '3':\n file.synchronous = 3;\n break;\n default:\n throw new Error(`unexpected synchronous value: ${value}`);\n }\n }\n break;\n case 'vfs_trace':\n // This is a trace feature for debugging only.\n if (value !== null) {\n this.log = parseInt(value) !== 0 ? console.debug : null;\n file.writeAhead.log = this.log;\n }\n return VFS.SQLITE_OK;\n case 'wal_autocheckpoint':\n // A setting greater than zero enables automatic checkpoints\n // with this connection (enabled by default).\n if (value !== null) {\n file.writeAhead.options.autoCheckpoint = parseInt(value);\n }\n break;\n case 'wal_checkpoint':\n const checkpointMode = (value ?? 'passive').toLowerCase();\n switch (checkpointMode) {\n case 'passive':\n this._module.pendingOps.push(this.#pendingCheckpoint(file, checkpointMode));\n break;\n case 'full':\n case 'restart':\n case 'truncate':\n if (file.writeAhead.isTransactionPending()) {\n throw new Error('invalid while a transaction is in progress');\n }\n this._module.pendingOps.push(this.#pendingCheckpoint(file, checkpointMode));\n break;\n case 'noop':\n break;\n default:\n throw new Error(`unexpected wal_checkpoint mode: ${value}`);\n }\n\n // Return the approximate number of pages in the WAL before\n // checkpointing. SQLite returns different information, but\n // that is not feasible from a VFS.\n {\n const s = file.writeAhead.getWriteAheadSize().toString();\n const ptr = this._module._sqlite3_malloc64(s.length + 1);\n this._module.stringToUTF8(s, ptr, s.length + 1);\n pArg.setUint32(0, ptr, true);\n }\n return VFS.SQLITE_OK;\n case 'lazy_lock':\n // Lazy locks don't actually release their Web Lock until\n // they receive a message requesting it. Typically a setting\n // of 'readwrite' (default) or 'read' is best.\n if (value !== null) {\n const useLazyLock = value.toLowerCase();\n switch (useLazyLock) {\n case 'read':\n case 'write':\n case 'readwrite':\n case 'none':\n file.useLazyLock = useLazyLock;\n break;\n default:\n throw new Error(`unexpected value for lazy_lock: ${value}`);\n }\n }\n {\n const s = file.useLazyLock;\n const ptr = this._module._sqlite3_malloc64(s.length + 1);\n this._module.stringToUTF8(s, ptr, s.length + 1);\n pArg.setUint32(0, ptr, true);\n }\n return VFS.SQLITE_OK;\n }\n break;\n\n // Support SQLite batch atomic write transactions.\n case VFS.SQLITE_FCNTL_BEGIN_ATOMIC_WRITE:\n case VFS.SQLITE_FCNTL_COMMIT_ATOMIC_WRITE:\n if (file.flags & VFS.SQLITE_OPEN_MAIN_DB) {\n return VFS.SQLITE_OK;\n }\n break;\n case VFS.SQLITE_FCNTL_ROLLBACK_ATOMIC_WRITE:\n if (file.flags & VFS.SQLITE_OPEN_MAIN_DB) {\n file.writeAhead.rollback();\n return VFS.SQLITE_OK;\n }\n break;\n\n case VFS.SQLITE_FCNTL_SYNC:\n if (file.flags & VFS.SQLITE_OPEN_MAIN_DB) {\n file.writeAhead.commit();\n }\n break;\n\n case VFS.SQLITE_FCNTL_OVERWRITE:\n file.overwrite = true;\n break;\n }\n } catch (e) {\n console.error(e.stack);\n this.lastError = e;\n return VFS.SQLITE_IOERR;\n }\n return VFS.SQLITE_NOTFOUND;\n }\n\n /**\n * @param {number} pFile\n * @returns {number}\n */\n jDeviceCharacteristics(pFile) {\n return VFS.SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN\n | VFS.SQLITE_IOCAP_BATCH_ATOMIC;\n }\n\n /**\n * @param {Uint8Array} zBuf \n * @returns {number}\n */\n jGetLastError(zBuf) {\n if (this.lastError) {\n console.error(this.lastError);\n const outputArray = zBuf.subarray(0, zBuf.byteLength - 1);\n const { written } = new TextEncoder().encodeInto(this.lastError.message, outputArray);\n zBuf[written] = 0;\n }\n return VFS.SQLITE_OK\n }\n\n /**\n * @param {string} zName \n * @returns {FileSystemSyncAccessHandle}\n */\n #openTemporaryFile(zName) {\n if (this.unboundTempFiles.size === 0) {\n throw new Error('no temporary files available');\n }\n\n // Bind an access handle from the temporary pool.\n const accessHandle = this.unboundTempFiles.values().next().value;\n this.unboundTempFiles.delete(accessHandle);\n this.boundTempFiles.set(zName, accessHandle);\n return accessHandle;\n }\n\n /**\n * @param {FileEntry} file \n */\n #deleteTemporaryFile(file) {\n file.accessHandle.truncate(0);\n\n // Temporary files are not actually deleted, just returned to the pool.\n this.mapPathToFile.delete(file.zName);\n this.unboundTempFiles.add(file.accessHandle);\n this.boundTempFiles.delete(file.zName);\n }\n\n /**\n * @param {string} dbName \n * @param {number} i \n * @returns {string}\n */\n #getWriteAheadNameFromDbName(dbName, i) {\n // Our WAL file is not compatible with SQLite WAL, so use a distinct name.\n return `${dbName}-wa${i}`;\n }\n\n /**\n * Asynchronous PRAGMA operation to checkpoint the write-ahead log.\n * @param {FileEntry} file \n * @param {'passive'|'full'|'restart'|'truncate'} mode \n */\n async #pendingCheckpoint(file, mode) {\n const onFinally = [];\n try {\n if (mode !== 'passive' && file.lockState === VFS.SQLITE_LOCK_NONE) {\n await file.writeLock.acquire('exclusive');\n onFinally.push(() => file.writeLock.release());\n\n file.writeAhead.isolateForWrite();\n onFinally.push(() => file.writeAhead.rejoin());\n }\n \n await file.writeAhead.checkpoint({ isPassive: mode === 'passive' });\n } catch (e) {\n if (e.name === 'AbortError') {\n e.code = VFS.SQLITE_BUSY;\n }\n throw e;\n } finally {\n while (onFinally.length) {\n onFinally.pop()();\n }\n }\n }\n\n /**\n * @param {FileEntry} file \n */\n async #retryLockRead(file) {\n const onError = [];\n try {\n await file.readLock.acquire('shared', file.timeout);\n onError.push(() => file.readLock.release());\n\n file.writeAhead.isolateForRead();\n file.retryResult = {};\n } catch (e) {\n while (onError.length) {\n onError.pop()();\n }\n file.retryResult = e;\n }\n }\n\n /**\n * @param {FileEntry} file \n */\n async #retryLockWrite(file) {\n const onError = [];\n try {\n // Exclusive locking mode requires both read and write locks.\n // Otherwise, only the write lock is needed.\n if (file.lockingMode === 'exclusive') {\n await file.readLock.acquire('exclusive', file.timeout);\n onError.push(() => file.readLock.release());\n }\n\n await file.writeLock.acquire('exclusive', file.timeout);\n onError.push(() => file.writeLock.release());\n\n file.writeAhead.isolateForWrite();\n file.retryResult = {};\n } catch (e) {\n while (onError.length) {\n onError.pop()();\n }\n file.retryResult = e;\n }\n }\n\n /**\n * Handle asynchronous jOpen() tasks.\n * @param {string} zName \n * @param {number} flags \n * @param {number} fileId \n * @param {DataView} pOutFlags \n * @returns {Promise<void>}\n */\n async #retryOpen(zName, flags, fileId, pOutFlags) {\n /** @type {(() => void)[]} */ const onError = [];\n const file = this.mapPathToFile.get(zName);\n try {\n const { accessHandle, waHandles } =\n await navigator.locks.request(`${zName}#open`, async lock => {\n // Parse the path components.\n const directoryNames = zName.split('/').filter(d => d);\n const dbName = directoryNames.pop();\n\n // Get the OPFS directory handle.\n let dirHandle = await navigator.storage.getDirectory();\n const create = !!(flags & VFS.SQLITE_OPEN_CREATE);\n for (const directoryName of directoryNames) {\n dirHandle = await dirHandle.getDirectoryHandle(directoryName, { create });\n }\n\n const isNewDatabase = create && await (async function() {\n try {\n await dirHandle.getFileHandle(dbName);\n return false;\n } catch (e) {\n if (e.name === 'NotFoundError') {\n return true;\n }\n throw e;\n }\n })();\n\n // Convenience function for opening access handles.\n async function openFile(\n /** @type {string} */ filename,\n /** @type {FileSystemGetFileOptions} */ options) {\n const fileHandle = await dirHandle.getFileHandle(filename, options);\n // @ts-ignore\n const accessHandle = await fileHandle.createSyncAccessHandle({\n mode: 'readwrite-unsafe'\n });\n onError.push(() => {\n accessHandle.close();\n if (isNewDatabase) {\n dirHandle.removeEntry(filename);\n }\n });\n return accessHandle;\n }\n\n // Open the main database OPFS file.\n const accessHandle = await openFile(dbName, { create });\n\n // Open WAL files.\n const waHandles = await Promise.all([0, 1].map(async i => {\n const waName = this.#getWriteAheadNameFromDbName(dbName, i);\n const waHandle = await openFile(waName, { create: true });\n if (isNewDatabase) {\n waHandle.truncate(0);\n }\n return waHandle;\n }));\n return { accessHandle, waHandles };\n });\n\n // Create the write-ahead manager.\n const writeAhead = new WriteAhead(zName, accessHandle, waHandles);\n await writeAhead.ready();\n\n file.retryResult = { accessHandle, waHandles, writeAhead };\n } catch (e) {\n while (onError.length) {\n onError.pop()();\n }\n file.retryResult = e;\n }\n }\n}\n","// Copyright 2024 Roy T. Hashimoto. All Rights Reserved.\nimport { FacadeVFS } from '../FacadeVFS.js';\nimport * as VFS from '../VFS.js';\nimport { WebLocksMixin } from '../WebLocksMixin.js';\n\nconst LOCK_NOTIFY_INTERVAL = 1000;\n\nconst hasUnsafeAccessHandle =\n globalThis.FileSystemSyncAccessHandle.prototype.hasOwnProperty('mode');\n\n/**\n * @param {string} pathname \n * @param {boolean} create \n * @returns {Promise<[FileSystemDirectoryHandle, string]>}\n */\nasync function getPathComponents(pathname, create) {\n const [_, directories, filename] = pathname.match(/[/]?(.*)[/](.*)$/);\n\n let directoryHandle = await navigator.storage.getDirectory();\n for (const directory of directories.split('/')) {\n if (directory) {\n directoryHandle = await directoryHandle.getDirectoryHandle(directory, { create });\n }\n }\n return [directoryHandle, filename];\n};\n\nclass File {\n /** @type {string} */ pathname;\n /** @type {number} */ flags;\n /** @type {FileSystemFileHandle} */ fileHandle;\n /** @type {FileSystemSyncAccessHandle} */ accessHandle;\n\n // The rest of the properties are for platforms without readwrite-unsafe\n // access handles. Only one connection can have an open access handle\n // so coordination is needed in addition to the SQLite locking model.\n //\n // Opening and closing the access handle is expensive so we leave the\n // handle open unless another connection signals on BroadcastChannel.\n /** @type {BroadcastChannel} */ handleRequestChannel;\n /** @type {function} */ handleLockReleaser = null;\n /** @type {boolean} */ isHandleRequested = false;\n /** @type {boolean} */ isFileLocked = false;\n\n // SQLite makes one read on file open that is not protected by a lock.\n // This needs to be handled as a special case.\n /** @type {function} */ openLockReleaser = null;\n\n constructor(pathname, flags) {\n this.pathname = pathname;\n this.flags = flags;\n }\n}\n\nexport class OPFSAdaptiveVFS extends WebLocksMixin(FacadeVFS) {\n /** @type {Map<number, File>} */ mapIdToFile = new Map();\n lastError = null;\n\n log = null;\n\n static async create(name, module, options) {\n const vfs = new OPFSAdaptiveVFS(name, module, options);\n await vfs.isReady();\n return vfs;\n }\n\n constructor(name, module, options = {}) {\n super(name, module, options);\n }\n \n getFilename(fileId) {\n const pathname = this.mapIdToFile.get(fileId).pathname;\n return `OPFS:${pathname}`\n }\n\n /**\n * @param {string?} zName \n * @param {number} fileId \n * @param {number} flags \n * @param {DataView} pOutFlags \n * @returns {Promise<number>}\n */\n async jOpen(zName, fileId, flags, pOutFlags) {\n try {\n const url = new URL(zName || Math.random().toString(36).slice(2), 'file://');\n const pathname = url.pathname;\n\n const file = new File(pathname, flags);\n this.mapIdToFile.set(fileId, file);\n\n const create = !!(flags & VFS.SQLITE_OPEN_CREATE);\n const [directoryHandle, filename] = await getPathComponents(pathname, create);\n file.fileHandle = await directoryHandle.getFileHandle(filename, { create });\n\n if ((flags & VFS.SQLITE_OPEN_MAIN_DB) && !hasUnsafeAccessHandle) {\n file.handleRequestChannel = new BroadcastChannel(this.getFilename(fileId));\n\n // Acquire the access handle lock. The first read of a database\n // file is done outside xLock/xUnlock so we get that lock here.\n function notify() {\n file.handleRequestChannel.postMessage(null);\n }\n const notifyId = setInterval(notify, LOCK_NOTIFY_INTERVAL);\n setTimeout(notify);\n\n file.openLockReleaser = await new Promise((resolve, reject) => {\n navigator.locks.request(this.getFilename(fileId), lock => {\n clearInterval(notifyId);\n if (!lock) return reject();\n return new Promise(release => {\n resolve(release);\n });\n });\n });\n this.log?.('access handle acquired for open');\n }\n\n // @ts-ignore\n file.accessHandle = await file.fileHandle.createSyncAccessHandle({\n mode: 'readwrite-unsafe'\n });\n \n pOutFlags.setInt32(0, flags, true);\n return VFS.SQLITE_OK;\n } catch (e) {\n this.lastError = e;\n return VFS.SQLITE_CANTOPEN;\n }\n }\n\n /**\n * @param {string} zName \n * @param {number} syncDir \n * @returns {Promise<number>}\n */\n async jDelete(zName, syncDir) {\n try {\n const url = new URL(zName, 'file://');\n const pathname = url.pathname;\n \n const [directoryHandle, name] = await getPathComponents(pathname, false);\n const result = directoryHandle.removeEntry(name, { recursive: false });\n if (syncDir) {\n await result;\n }\n return VFS.SQLITE_OK;\n } catch (e) {\n return VFS.SQLITE_IOERR_DELETE;\n }\n }\n\n /**\n * @param {string} zName \n * @param {number} flags \n * @param {DataView} pResOut \n * @returns {Promise<number>}\n */\n async jAccess(zName, flags, pResOut) {\n try {\n const url = new URL(zName, 'file://');\n const pathname = url.pathname;\n\n const [directoryHandle, dbName] = await getPathComponents(pathname, false);\n const fileHandle = await directoryHandle.getFileHandle(dbName, { create: false });\n pResOut.setInt32(0, 1, true);\n return VFS.SQLITE_OK;\n } catch (e) {\n if (e.name === 'NotFoundError') {\n pResOut.setInt32(0, 0, true);\n return VFS.SQLITE_OK;\n }\n this.lastError = e;\n return VFS.SQLITE_IOERR_ACCESS;\n }\n }\n\n /**\n * @param {number} fileId \n * @returns {Promise<number>}\n */\n async jClose(fileId) {\n try {\n const file = this.mapIdToFile.get(fileId);\n this.mapIdToFile.delete(fileId);\n await file?.accessHandle?.close();\n\n if (file?.flags & VFS.SQLITE_OPEN_DELETEONCLOSE) {\n const [directoryHandle, name] = await getPathComponents(file.pathname, false);\n await directoryHandle.removeEntry(name, { recursive: false });\n }\n return VFS.SQLITE_OK;\n } catch (e) {\n return VFS.SQLITE_IOERR_DELETE;\n }\n }\n\n /**\n * @param {number} fileId \n * @param {Uint8Array} pData \n * @param {number} iOffset\n * @returns {number}\n */\n jRead(fileId, pData, iOffset) {\n try {\n const file = this.mapIdToFile.get(fileId);\n\n // On Chrome (at least), passing pData to accessHandle.read() is\n // an error because pData is a Proxy of a Uint8Array. Calling\n // subarray() produces a real Uint8Array and that works.\n const bytesRead = file.accessHandle.read(pData.subarray(), { at: iOffset });\n if (file.openLockReleaser) {\n // We obtained the access handle on file open.\n file.accessHandle.close();\n file.accessHandle = null;\n file.openLockReleaser();\n file.openLockReleaser = null;\n this.log?.('access handle released for open');\n }\n\n if (bytesRead < pData.byteLength) {\n pData.fill(0, bytesRead);\n return VFS.SQLITE_IOERR_SHORT_READ;\n }\n return VFS.SQLITE_OK;\n } catch (e) {\n this.lastError = e;\n return VFS.SQLITE_IOERR_READ;\n }\n }\n\n /**\n * @param {number} fileId \n * @param {Uint8Array} pData \n * @param {number} iOffset\n * @returns {number}\n */\n jWrite(fileId, pData, iOffset) {\n try {\n const file = this.mapIdToFile.get(fileId);\n\n // On Chrome (at least), passing pData to accessHandle.write() is\n // an error because pData is a Proxy of a Uint8Array. Calling\n // subarray() produces a real Uint8Array and that works.\n file.accessHandle.write(pData.subarray(), { at: iOffset });\n return VFS.SQLITE_OK;\n } catch (e) {\n this.lastError = e;\n return VFS.SQLITE_IOERR_WRITE;\n }\n }\n\n /**\n * @param {number} fileId \n * @param {number} iSize \n * @returns {number}\n */\n jTruncate(fileId, iSize) {\n try {\n const file = this.mapIdToFile.get(fileId);\n file.accessHandle.truncate(iSize);\n return VFS.SQLITE_OK;\n } catch (e) {\n this.lastError = e;\n return VFS.SQLITE_IOERR_TRUNCATE;\n }\n }\n\n /**\n * @param {number} fileId \n * @param {number} flags \n * @returns {number}\n */\n jSync(fileId, flags) {\n try {\n const file = this.mapIdToFile.get(fileId);\n file.accessHandle.flush();\n return VFS.SQLITE_OK;\n } catch (e) {\n this.lastError = e;\n return VFS.SQLITE_IOERR_FSYNC;\n }\n }\n\n /**\n * @param {number} fileId \n * @param {DataView} pSize64 \n * @returns {number}\n */\n jFileSize(fileId, pSize64) {\n try {\n const file = this.mapIdToFile.get(fileId);\n const size = file.accessHandle.getSize();\n pSize64.setBigInt64(0, BigInt(size), true);\n return VFS.SQLITE_OK;\n } catch (e) {\n this.lastError = e;\n return VFS.SQLITE_IOERR_FSTAT;\n }\n }\n\n /**\n * @param {number} fileId \n * @param {number} lockType \n * @returns {Promise<number>}\n */\n async jLock(fileId, lockType) {\n if (hasUnsafeAccessHandle) return super.jLock(fileId, lockType);\n\n const file = this.mapIdToFile.get(fileId);\n if (!file.isFileLocked) {\n file.isFileLocked = true;\n if (!file.handleLockReleaser) {\n // Listen for other connections wanting the access handle.\n file.handleRequestChannel.onmessage = event => {\n if(!file.isFileLocked) {\n // We have the access handle but the file is not locked.\n // Release the access handle for the requester.\n file.accessHandle.close();\n file.accessHandle = null;\n file.handleLockReleaser();\n file.handleLockReleaser = null;\n this.log?.('access handle requested and released');\n } else {\n // We're still using the access handle, so mark it to be\n // released when we're done.\n file.isHandleRequested = true;\n this.log?.('access handle requested');\n }\n file.handleRequestChannel.onmessage = null;\n };\n\n // We don't have the access handle. First acquire the lock.\n file.handleLockReleaser = await new Promise((resolve, reject) => {\n // Tell everyone we want the access handle.\n function notify() {\n file.handleRequestChannel.postMessage(null);\n }\n const notifyId = setInterval(notify, LOCK_NOTIFY_INTERVAL);\n setTimeout(notify);\n\n navigator.locks.request(this.getFilename(fileId), lock => {\n clearInterval(notifyId);\n if (!lock) return reject();\n return new Promise(release => {\n resolve(release);\n });\n });\n });\n\n // The access handle should now be available.\n file.accessHandle = await file.fileHandle.createSyncAccessHandle();\n this.log?.('access handle acquired');\n }\n\n }\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} fileId \n * @param {number} lockType \n * @returns {Promise<number>}\n */\n async jUnlock(fileId, lockType) {\n if (hasUnsafeAccessHandle) return super.jUnlock(fileId, lockType);\n\n if (lockType === VFS.SQLITE_LOCK_NONE) {\n const file = this.mapIdToFile.get(fileId);\n if (file.isHandleRequested) {\n if (file.handleLockReleaser) {\n // Another connection wants the access handle.\n file.accessHandle.close();\n file.accessHandle = null;\n file.handleLockReleaser();\n file.handleLockReleaser = null;\n this.log?.('access handle released');\n }\n file.isHandleRequested = false;\n }\n file.isFileLocked = false;\n }\n return VFS.SQLITE_OK;\n }\n\n /**\n * @param {number} fileId\n * @param {number} op\n * @param {DataView} pArg\n * @returns {number|Promise<number>}\n */\n jFileControl(fileId, op, pArg) {\n try {\n const file = this.mapIdToFile.get(fileId);\n switch (op) {\n case VFS.SQLITE_FCNTL_PRAGMA:\n const key = extractString(pArg, 4);\n const value = extractString(pArg, 8);\n this.log?.('xFileControl', file.pathname, 'PRAGMA', key, value);\n switch (key.toLowerCase()) {\n case 'journal_mode':\n if (value &&\n !hasUnsafeAccessHandle && \n !['off', 'memory', 'delete', 'wal'].includes(value.toLowerCase())) {\n throw new Error('journal_mode must be \"off\", \"memory\", \"delete\", or \"wal\"');\n }\n break;\n case 'write_hint':\n return super.jFileControl(fileId, WebLocksMixin.WRITE_HINT_OP_CODE, null);\n }\n break;\n }\n } catch (e) {\n this.lastError = e;\n return VFS.SQLITE_IOERR;\n }\n return super.jFileControl(fileId, op, pArg);\n }\n\n jGetLastError(zBuf) {\n if (this.lastError) {\n console.error(this.lastError);\n const outputArray = zBuf.subarray(0, zBuf.byteLength - 1);\n const { written } = new TextEncoder().encodeInto(this.lastError.message, outputArray);\n zBuf[written] = 0;\n }\n return VFS.SQLITE_OK\n }\n}\n\nfunction extractString(dataView, offset) {\n const p = dataView.getUint32(offset, true);\n if (p) {\n const chars = new Uint8Array(dataView.buffer, p);\n return new TextDecoder().decode(chars.subarray(0, chars.indexOf(0)));\n }\n return null;\n}","// Copyright 2021 Roy T. Hashimoto. All Rights Reserved.\n\nimport * as SQLite from './sqlite-constants.js';\nexport * from './sqlite-constants.js';\n\nconst MAX_INT64 = 0x7fffffffffffffffn;\nconst MIN_INT64 = -0x8000000000000000n;\n\nconst AsyncFunction = Object.getPrototypeOf(async function(){}).constructor;\n\nexport class SQLiteError extends Error {\n constructor(message, code) {\n super(message);\n this.code = code;\n }\n}\n\nconst async = true;\n\n/**\n * Builds a Javascript API from the Emscripten module. This API is still\n * low-level and closely corresponds to the C API exported by the module,\n * but differs in some specifics like throwing exceptions on errors.\n * @param {*} Module SQLite Emscripten module\n * @returns {SQLiteAPI}\n */\nexport function Factory(Module) {\n /** @type {SQLiteAPI} */ const sqlite3 = {};\n\n Module.retryOps = [];\n Module.pendingOps = [];\n const sqliteFreeAddress = Module._getSqliteFree();\n\n // Allocate some space for 32-bit returned values.\n const tmp = Module._malloc(8);\n const tmpPtr = [tmp, tmp + 4];\n\n const textEncoder = new TextEncoder();\n // Convert a JS string to a C string. sqlite3_malloc is used to allocate\n // memory (use sqlite3_free to deallocate).\n function createUTF8(s) {\n if (typeof s !== 'string') return 0;\n const utf8 = textEncoder.encode(s);\n const zts = Module._sqlite3_malloc(utf8.byteLength + 1);\n Module.HEAPU8.set(utf8, zts);\n Module.HEAPU8[zts + utf8.byteLength] = 0;\n return zts;\n }\n\n /**\n * Concatenate 32-bit numbers into a 64-bit (signed) BigInt.\n * @param {number} lo32\n * @param {number} hi32\n * @returns {bigint}\n */\n function cvt32x2ToBigInt(lo32, hi32) {\n return (BigInt(hi32) << 32n) | (BigInt(lo32) & 0xffffffffn);\n }\n\n /**\n * Concatenate 32-bit numbers and return as number or BigInt, depending\n * on the value.\n * @param {number} lo32 \n * @param {number} hi32 \n * @returns {number|bigint}\n */\n const cvt32x2AsSafe = (function() {\n const hiMax = BigInt(Number.MAX_SAFE_INTEGER) >> 32n;\n const hiMin = BigInt(Number.MIN_SAFE_INTEGER) >> 32n;\n\n return function(lo32, hi32) {\n if (hi32 > hiMax || hi32 < hiMin) {\n // Can't be expressed as a Number so use BigInt.\n return cvt32x2ToBigInt(lo32, hi32);\n } else {\n // Combine the upper and lower 32-bit numbers. The complication is\n // that lo32 is a signed integer which makes manipulating its bits\n // a little tricky - the sign bit gets handled separately.\n return (hi32 * 0x100000000) + (lo32 & 0x7fffffff) - (lo32 & 0x80000000);\n }\n }\n })();\n\n const databases = new Set();\n function verifyDatabase(db) {\n if (!databases.has(db)) {\n throw new SQLiteError('not a database', SQLite.SQLITE_MISUSE);\n }\n }\n\n const mapStmtToDB = new Map();\n function verifyStatement(stmt) {\n if (!mapStmtToDB.has(stmt)) {\n throw new SQLiteError('not a statement', SQLite.SQLITE_MISUSE);\n }\n }\n\n sqlite3.bind_collection = function(stmt, bindings) {\n verifyStatement(stmt);\n const isArray = Array.isArray(bindings);\n const nBindings = sqlite3.bind_parameter_count(stmt);\n for (let i = 1; i <= nBindings; ++i) {\n const key = isArray ? i - 1 : sqlite3.bind_parameter_name(stmt, i);\n const value = bindings[key];\n if (value !== undefined) {\n sqlite3.bind(stmt, i, value);\n }\n }\n return SQLite.SQLITE_OK;\n };\n\n sqlite3.bind = function(stmt, i, value) {\n verifyStatement(stmt);\n switch (typeof value) {\n case 'number':\n if (value === (value | 0)) {\n return sqlite3.bind_int(stmt, i, value);\n } else {\n return sqlite3.bind_double(stmt, i, value);\n }\n case 'string':\n return sqlite3.bind_text(stmt, i, value);\n case \"boolean\":\n return sqlite3.bind_int(stmt, i, value ? 1 : 0);\n default:\n if (value instanceof Uint8Array || Array.isArray(value)) {\n return sqlite3.bind_blob(stmt, i, value);\n } else if (value === null) {\n return sqlite3.bind_null(stmt, i);\n } else if (typeof value === 'bigint') {\n return sqlite3.bind_int64(stmt, i, value);\n } else if (value === undefined) {\n // Existing binding (or NULL) will be used.\n return SQLite.SQLITE_NOTICE;\n } else {\n console.warn('unknown binding converted to null', value);\n return sqlite3.bind_null(stmt, i);\n }\n }\n };\n\n sqlite3.bind_blob = (function() {\n const fname = 'sqlite3_bind_blob';\n const f = Module.cwrap(fname, ...decl('nnnnn:n'));\n return function(stmt, i, value) {\n verifyStatement(stmt);\n // @ts-ignore\n const byteLength = value.byteLength ?? value.length;\n const ptr = Module._sqlite3_malloc(byteLength);\n Module.HEAPU8.subarray(ptr).set(value);\n const result = f(stmt, i, ptr, byteLength, sqliteFreeAddress);\n return check(fname, result, mapStmtToDB.get(stmt));\n };\n })();\n\n sqlite3.bind_parameter_count = (function() {\n const fname = 'sqlite3_bind_parameter_count';\n const f = Module.cwrap(fname, ...decl('n:n'));\n return function(stmt) {\n verifyStatement(stmt);\n const result = f(stmt);\n return result;\n };\n })();\n\n sqlite3.bind_double = (function() {\n const fname = 'sqlite3_bind_double';\n const f = Module.cwrap(fname, ...decl('nnn:n'));\n return function(stmt, i, value) {\n verifyStatement(stmt);\n const result = f(stmt, i, value);\n return check(fname, result, mapStmtToDB.get(stmt));\n };\n })();\n\n sqlite3.bind_int = (function() {\n const fname = 'sqlite3_bind_int';\n const f = Module.cwrap(fname, ...decl('nnn:n'));\n return function(stmt, i, value) {\n verifyStatement(stmt);\n if (value > 0x7fffffff || value < -0x80000000) return SQLite.SQLITE_RANGE;\n\n const result = f(stmt, i, value);\n return check(fname, result, mapStmtToDB.get(stmt));\n };\n })();\n\n sqlite3.bind_int64 = (function() {\n const fname = 'sqlite3_bind_int64';\n const f = Module.cwrap(fname, ...decl('nnnn:n'));\n return function(stmt, i, value) {\n verifyStatement(stmt);\n if (value > MAX_INT64 || value < MIN_INT64) return SQLite.SQLITE_RANGE;\n\n const lo32 = value & 0xffffffffn;\n const hi32 = value >> 32n;\n const result = f(stmt, i, Number(lo32), Number(hi32));\n return check(fname, result, mapStmtToDB.get(stmt));\n };\n })();\n\n sqlite3.bind_null = (function() {\n const fname = 'sqlite3_bind_null';\n const f = Module.cwrap(fname, ...decl('nn:n'));\n return function(stmt, i) {\n verifyStatement(stmt);\n const result = f(stmt, i);\n return check(fname, result, mapStmtToDB.get(stmt));\n };\n })();\n\n sqlite3.bind_parameter_name = (function() {\n const fname = 'sqlite3_bind_parameter_name';\n const f = Module.cwrap(fname, ...decl('n:s'));\n return function(stmt, i) {\n verifyStatement(stmt);\n const result = f(stmt, i);\n return result;\n };\n })();\n\n sqlite3.bind_text = (function() {\n const fname = 'sqlite3_bind_text';\n const f = Module.cwrap(fname, ...decl('nnnnn:n'));\n return function(stmt, i, value) {\n verifyStatement(stmt);\n const ptr = createUTF8(value);\n const result = f(stmt, i, ptr, -1, sqliteFreeAddress);\n return check(fname, result, mapStmtToDB.get(stmt));\n };\n })();\n\n sqlite3.changes = (function() {\n const fname = 'sqlite3_changes';\n const f = Module.cwrap(fname, ...decl('n:n'));\n return function(db) {\n verifyDatabase(db);\n const result = f(db);\n return result;\n };\n })();\n\n sqlite3.clear_bindings = (function() {\n const fname = 'sqlite3_clear_bindings';\n const f = Module.cwrap(fname, ...decl('n:n'));\n return function(stmt) {\n verifyStatement(stmt);\n const result = f(stmt);\n return check(fname, result, mapStmtToDB.get(stmt));\n };\n })();\n \n sqlite3.close = (function() {\n const fname = 'sqlite3_close';\n const f = Module.cwrap(fname, ...decl('n:n'), { async });\n return async function(db) {\n verifyDatabase(db);\n const result = await f(db);\n databases.delete(db);\n return check(fname, result, db);\n };\n })();\n\n sqlite3.column = function(stmt, iCol) {\n verifyStatement(stmt);\n const type = sqlite3.column_type(stmt, iCol);\n switch (type) {\n case SQLite.SQLITE_BLOB:\n return sqlite3.column_blob(stmt, iCol);\n case SQLite.SQLITE_FLOAT:\n return sqlite3.column_double(stmt, iCol);\n case SQLite.SQLITE_INTEGER:\n const lo32 = sqlite3.column_int(stmt, iCol);\n const hi32 = Module.getTempRet0();\n return cvt32x2AsSafe(lo32, hi32);\n case SQLite.SQLITE_NULL:\n return null;\n case SQLite.SQLITE_TEXT:\n return sqlite3.column_text(stmt, iCol);\n default:\n throw new SQLiteError('unknown type', type);\n }\n };\n\n sqlite3.column_blob = (function() {\n const fname = 'sqlite3_column_blob';\n const f = Module.cwrap(fname, ...decl('nn:n'));\n return function(stmt, iCol) {\n verifyStatement(stmt);\n const nBytes = sqlite3.column_bytes(stmt, iCol);\n const address = f(stmt, iCol);\n const result = Module.HEAPU8.subarray(address, address + nBytes);\n return result;\n };\n })();\n\n sqlite3.column_bytes = (function() {\n const fname = 'sqlite3_column_bytes';\n const f = Module.cwrap(fname, ...decl('nn:n'));\n return function(stmt, iCol) {\n verifyStatement(stmt);\n const result = f(stmt, iCol);\n return result;\n };\n })();\n\n sqlite3.column_count = (function() {\n const fname = 'sqlite3_column_count';\n const f = Module.cwrap(fname, ...decl('n:n'));\n return function(stmt) {\n verifyStatement(stmt);\n const result = f(stmt);\n return result;\n };\n })();\n\n sqlite3.column_double = (function() {\n const fname = 'sqlite3_column_double';\n const f = Module.cwrap(fname, ...decl('nn:n'));\n return function(stmt, iCol) {\n verifyStatement(stmt);\n const result = f(stmt, iCol);\n return result;\n };\n })();\n\n sqlite3.column_int = (function() {\n // Retrieve int64 but use only the lower 32 bits. The upper 32-bits are\n // accessible with Module.getTempRet0().\n const fname = 'sqlite3_column_int64';\n const f = Module.cwrap(fname, ...decl('nn:n'));\n return function(stmt, iCol) {\n verifyStatement(stmt);\n const result = f(stmt, iCol);\n return result;\n };\n })();\n\n sqlite3.column_int64 = (function() {\n const fname = 'sqlite3_column_int64';\n const f = Module.cwrap(fname, ...decl('nn:n'));\n return function(stmt, iCol) {\n verifyStatement(stmt);\n const lo32 = f(stmt, iCol);\n const hi32 = Module.getTempRet0();\n const result = cvt32x2ToBigInt(lo32, hi32);\n return result;\n };\n })();\n\n sqlite3.column_name = (function() {\n const fname = 'sqlite3_column_name';\n const f = Module.cwrap(fname, ...decl('nn:s'));\n return function(stmt, iCol) {\n verifyStatement(stmt);\n const result = f(stmt, iCol);\n return result;\n };\n })();\n\n sqlite3.column_names = function(stmt) {\n const columns = [];\n const nColumns = sqlite3.column_count(stmt);\n for (let i = 0; i < nColumns; ++i) {\n columns.push(sqlite3.column_name(stmt, i));\n }\n return columns;\n };\n\n sqlite3.column_text = (function() {\n const fname = 'sqlite3_column_text';\n const f = Module.cwrap(fname, ...decl('nn:s'));\n return function(stmt, iCol) {\n verifyStatement(stmt);\n const result = f(stmt, iCol);\n return result;\n };\n })();\n\n sqlite3.column_type = (function() {\n const fname = 'sqlite3_column_type';\n const f = Module.cwrap(fname, ...decl('nn:n'));\n return function(stmt, iCol) {\n verifyStatement(stmt);\n const result = f(stmt, iCol);\n return result;\n };\n })();\n\n sqlite3.create_function = function(db, zFunctionName, nArg, eTextRep, pApp, xFunc, xStep, xFinal) {\n verifyDatabase(db);\n \n // Convert SQLite callback arguments to JavaScript-friendly arguments.\n function adapt(f) {\n return f instanceof AsyncFunction ?\n (async (ctx, n, values) => f(ctx, Module.HEAP32.subarray(values / 4, values / 4 + n))) :\n ((ctx, n, values) => f(ctx, Module.HEAP32.subarray(values / 4, values / 4 + n)));\n }\n\n const result = Module.create_function(\n db,\n zFunctionName,\n nArg,\n eTextRep,\n pApp,\n xFunc && adapt(xFunc),\n xStep && adapt(xStep),\n xFinal);\n return check('sqlite3_create_function', result, db);\n };\n\n sqlite3.data_count = (function() {\n const fname = 'sqlite3_data_count';\n const f = Module.cwrap(fname, ...decl('n:n'));\n return function(stmt) {\n verifyStatement(stmt);\n const result = f(stmt);\n return result;\n };\n })();\n\n sqlite3.exec = async function(db, sql, callback) {\n for await (const stmt of sqlite3.statements(db, sql)) {\n let columns;\n while (await sqlite3.step(stmt) === SQLite.SQLITE_ROW) {\n if (callback) {\n columns = columns ?? sqlite3.column_names(stmt);\n const row = sqlite3.row(stmt);\n await callback(row, columns);\n }\n }\n }\n return SQLite.SQLITE_OK;\n };\n\n sqlite3.finalize = (function() {\n const fname = 'sqlite3_finalize';\n const f = Module.cwrap(fname, ...decl('n:n'), { async });\n return async function(stmt) {\n const result = await f(stmt);\n mapStmtToDB.delete(stmt)\n\n // Don't throw on error here. Typically the error has already been\n // thrown and finalize() is part of the cleanup.\n return result;\n };\n })();\n\n sqlite3.get_autocommit = (function() {\n const fname = 'sqlite3_get_autocommit';\n const f = Module.cwrap(fname, ...decl('n:n'));\n return function(db) {\n const result = f(db);\n return result;\n };\n })();\n\n sqlite3.libversion = (function() {\n const fname = 'sqlite3_libversion';\n const f = Module.cwrap(fname, ...decl(':s'));\n return function() {\n const result = f();\n return result;\n };\n })();\n\n sqlite3.libversion_number = (function() {\n const fname = 'sqlite3_libversion_number';\n const f = Module.cwrap(fname, ...decl(':n'));\n return function() {\n const result = f();\n return result;\n };\n })();\n\n sqlite3.limit = (function() {\n const fname = 'sqlite3_limit';\n const f = Module.cwrap(fname, ...decl('nnn:n'));\n return function(db, id, newVal) {\n const result = f(db, id, newVal);\n return result;\n };\n })();\n\n sqlite3.open_v2 = (function() {\n const fname = 'sqlite3_open_v2';\n const f = Module.cwrap(fname, ...decl('snnn:n'), { async });\n return async function(zFilename, flags, zVfs) {\n flags = flags || SQLite.SQLITE_OPEN_CREATE | SQLite.SQLITE_OPEN_READWRITE;\n zVfs = createUTF8(zVfs);\n try {\n // Allow retry operations.\n const rc = await retry(() => f(zFilename, tmpPtr[0], flags, zVfs));\n\n const db = Module.getValue(tmpPtr[0], '*');\n databases.add(db);\n\n Module.ccall('RegisterExtensionFunctions', 'void', ['number'], [db]);\n check(fname, rc);\n return db;\n } finally {\n Module._sqlite3_free(zVfs);\n }\n };\n })();\n\n sqlite3.progress_handler = function(db, nProgressOps, handler, userData) {\n verifyDatabase(db);\n Module.progress_handler(db, nProgressOps, handler, userData);\n };;\n\n sqlite3.reset = (function() {\n const fname = 'sqlite3_reset';\n const f = Module.cwrap(fname, ...decl('n:n'), { async });\n return async function(stmt) {\n verifyStatement(stmt);\n const result = await f(stmt);\n return check(fname, result, mapStmtToDB.get(stmt));\n };\n })();\n\n sqlite3.result = function(context, value) {\n switch (typeof value) {\n case 'number':\n if (value === (value | 0)) {\n sqlite3.result_int(context, value);\n } else {\n sqlite3.result_double(context, value);\n }\n break;\n case 'string':\n sqlite3.result_text(context, value);\n break;\n default:\n if (value instanceof Uint8Array || Array.isArray(value)) {\n sqlite3.result_blob(context, value);\n } else if (value === null) {\n sqlite3.result_null(context);\n } else if (typeof value === 'bigint') {\n return sqlite3.result_int64(context, value);\n } else {\n console.warn('unknown result converted to null', value);\n sqlite3.result_null(context);\n }\n break;\n }\n\n };\n\n sqlite3.result_blob = (function() {\n const fname = 'sqlite3_result_blob';\n const f = Module.cwrap(fname, ...decl('nnnn:n'));\n return function(context, value) {\n // @ts-ignore\n const byteLength = value.byteLength ?? value.length;\n const ptr = Module._sqlite3_malloc(byteLength);\n Module.HEAPU8.subarray(ptr).set(value);\n f(context, ptr, byteLength, sqliteFreeAddress); // void return\n };\n })();\n\n sqlite3.result_double = (function() {\n const fname = 'sqlite3_result_double';\n const f = Module.cwrap(fname, ...decl('nn:n'));\n return function(context, value) {\n f(context, value); // void return\n };\n })();\n\n sqlite3.result_int = (function() {\n const fname = 'sqlite3_result_int';\n const f = Module.cwrap(fname, ...decl('nn:n'));\n return function(context, value) {\n f(context, value); // void return\n };\n })();\n\n sqlite3.result_int64 = (function() {\n const fname = 'sqlite3_result_int64';\n const f = Module.cwrap(fname, ...decl('nnn:n'));\n return function(context, value) {\n if (value > MAX_INT64 || value < MIN_INT64) return SQLite.SQLITE_RANGE;\n\n const lo32 = value & 0xffffffffn;\n const hi32 = value >> 32n;\n f(context, Number(lo32), Number(hi32)); // void return\n };\n })();\n\n sqlite3.result_null = (function() {\n const fname = 'sqlite3_result_null';\n const f = Module.cwrap(fname, ...decl('n:n'));\n return function(context) {\n f(context); // void return\n };\n })();\n\n sqlite3.result_text = (function() {\n const fname = 'sqlite3_result_text';\n const f = Module.cwrap(fname, ...decl('nnnn:n'));\n return function(context, value) {\n const ptr = createUTF8(value);\n f(context, ptr, -1, sqliteFreeAddress); // void return\n };\n })();\n\n sqlite3.row = function(stmt) {\n const row = [];\n const nColumns = sqlite3.data_count(stmt);\n for (let i = 0; i < nColumns; ++i) {\n const value = sqlite3.column(stmt, i);\n\n // Copy blob if aliasing volatile WebAssembly memory. This avoids an\n // unnecessary copy if users monkey patch column_blob to copy.\n // @ts-ignore\n row.push(value?.buffer === Module.HEAPU8.buffer ? value.slice() : value);\n }\n return row;\n };\n\n sqlite3.set_authorizer = function(db, xAuth, pApp) {\n verifyDatabase(db);\n\n // Convert SQLite callback arguments to JavaScript-friendly arguments.\n function cvtArgs(_, iAction, p3, p4, p5, p6) {\n return [\n _,\n iAction,\n Module.UTF8ToString(p3),\n Module.UTF8ToString(p4),\n Module.UTF8ToString(p5),\n Module.UTF8ToString(p6)\n ];\n };\n function adapt(f) {\n return f instanceof AsyncFunction ?\n (async (_, iAction, p3, p4, p5, p6) => f(...cvtArgs(_, iAction, p3, p4, p5, p6))) :\n ((_, iAction, p3, p4, p5, p6) => f(...cvtArgs(_, iAction, p3, p4, p5, p6)));\n }\n\n const result = Module.set_authorizer(db, adapt(xAuth), pApp);\n return check('sqlite3_set_authorizer', result, db);\n };;\n \n sqlite3.sql = (function() {\n const fname = 'sqlite3_sql';\n const f = Module.cwrap(fname, ...decl('n:s'));\n return function(stmt) {\n verifyStatement(stmt);\n const result = f(stmt);\n return result;\n };\n })();\n\n sqlite3.statements = function(db, sql, options = {}) {\n const prepare = Module.cwrap(\n 'sqlite3_prepare_v3',\n 'number',\n ['number', 'number', 'number', 'number', 'number', 'number'],\n { async: true });\n\n return (async function*() {\n const onFinally = [];\n try {\n // Encode SQL string to UTF-8.\n const utf8 = textEncoder.encode(sql);\n\n // Copy encoded string to WebAssembly memory. The SQLite docs say\n // zero-termination is a minor optimization so add room for that.\n // Also add space for the statement handle and SQL tail pointer.\n const allocSize = utf8.byteLength - (utf8.byteLength % 4) + 12;\n const pzHead = Module._sqlite3_malloc(allocSize);\n const pzEnd = pzHead + utf8.byteLength + 1;\n onFinally.push(() => Module._sqlite3_free(pzHead));\n Module.HEAPU8.set(utf8, pzHead);\n Module.HEAPU8[pzEnd - 1] = 0;\n \n // Use extra space for the statement handle and SQL tail pointer.\n const pStmt = pzHead + allocSize - 8;\n const pzTail = pzHead + allocSize - 4;\n\n // Ensure that statement handles are not leaked.\n let stmt;\n function maybeFinalize() {\n if (stmt && !options.unscoped) {\n sqlite3.finalize(stmt);\n }\n stmt = 0;\n }\n onFinally.push(maybeFinalize);\n \n // Loop over statements.\n Module.setValue(pzTail, pzHead, '*');\n do {\n // Reclaim resources for the previous iteration.\n maybeFinalize();\n\n // Call sqlite3_prepare_v3() for the next statement.\n // Allow retry operations.\n const zTail = Module.getValue(pzTail, '*');\n const rc = await retry(() => {\n return prepare(\n db,\n zTail,\n pzEnd - pzTail,\n options.flags || 0,\n pStmt,\n pzTail);\n });\n\n if (rc !== SQLite.SQLITE_OK) {\n check('sqlite3_prepare_v3', rc, db);\n }\n \n stmt = Module.getValue(pStmt, '*');\n if (stmt) {\n mapStmtToDB.set(stmt, db);\n yield stmt;\n }\n } while (stmt);\n } finally {\n while (onFinally.length) {\n onFinally.pop()();\n }\n }\n })();\n };\n\n sqlite3.step = (function() {\n const fname = 'sqlite3_step';\n const f = Module.cwrap(fname, ...decl('n:n'), { async });\n return async function(stmt) {\n verifyStatement(stmt);\n\n // Allow retry operations.\n const rc = await retry(() => f(stmt));\n\n return check(fname, rc, mapStmtToDB.get(stmt), [SQLite.SQLITE_ROW, SQLite.SQLITE_DONE]);\n };\n })();\n\n sqlite3.commit_hook = function(db, xCommitHook) {\n verifyDatabase(db);\n Module.commit_hook(db, xCommitHook);\n };\n\n sqlite3.update_hook = function(db, xUpdateHook) {\n verifyDatabase(db);\n\n // Convert SQLite callback arguments to JavaScript-friendly arguments.\n function cvtArgs(iUpdateType, dbName, tblName, lo32, hi32) {\n return [\n iUpdateType,\n Module.UTF8ToString(dbName),\n Module.UTF8ToString(tblName),\n\t\tcvt32x2ToBigInt(lo32, hi32)\n ];\n };\n function adapt(f) {\n return f instanceof AsyncFunction ?\n (async (iUpdateType, dbName, tblName, lo32, hi32) => f(...cvtArgs(iUpdateType, dbName, tblName, lo32, hi32))) :\n ((iUpdateType, dbName, tblName, lo32, hi32) => f(...cvtArgs(iUpdateType, dbName, tblName, lo32, hi32)));\n }\n\n Module.update_hook(db, adapt(xUpdateHook));\n };;\n\n sqlite3.value = function(pValue) {\n const type = sqlite3.value_type(pValue);\n switch (type) {\n case SQLite.SQLITE_BLOB:\n return sqlite3.value_blob(pValue);\n case SQLite.SQLITE_FLOAT:\n return sqlite3.value_double(pValue);\n case SQLite.SQLITE_INTEGER:\n const lo32 = sqlite3.value_int(pValue);\n const hi32 = Module.getTempRet0();\n return cvt32x2AsSafe(lo32, hi32);\n case SQLite.SQLITE_NULL:\n return null;\n case SQLite.SQLITE_TEXT:\n return sqlite3.value_text(pValue);\n default:\n throw new SQLiteError('unknown type', type);\n }\n };\n\n sqlite3.value_blob = (function() {\n const fname = 'sqlite3_value_blob';\n const f = Module.cwrap(fname, ...decl('n:n'));\n return function(pValue) {\n const nBytes = sqlite3.value_bytes(pValue);\n const address = f(pValue);\n const result = Module.HEAPU8.subarray(address, address + nBytes);\n return result;\n };\n })();\n\n sqlite3.value_bytes = (function() {\n const fname = 'sqlite3_value_bytes';\n const f = Module.cwrap(fname, ...decl('n:n'));\n return function(pValue) {\n const result = f(pValue);\n return result;\n };\n })();\n\n sqlite3.value_double = (function() {\n const fname = 'sqlite3_value_double';\n const f = Module.cwrap(fname, ...decl('n:n'));\n return function(pValue) {\n const result = f(pValue);\n return result;\n };\n })();\n\n sqlite3.value_int = (function() {\n const fname = 'sqlite3_value_int64';\n const f = Module.cwrap(fname, ...decl('n:n'));\n return function(pValue) {\n const result = f(pValue);\n return result;\n };\n })();\n\n sqlite3.value_int64 = (function() {\n const fname = 'sqlite3_value_int64';\n const f = Module.cwrap(fname, ...decl('n:n'));\n return function(pValue) {\n const lo32 = f(pValue);\n const hi32 = Module.getTempRet0();\n const result = cvt32x2ToBigInt(lo32, hi32);\n return result;\n };\n })();\n\n sqlite3.value_text = (function() {\n const fname = 'sqlite3_value_text';\n const f = Module.cwrap(fname, ...decl('n:s'));\n return function(pValue) {\n const result = f(pValue);\n return result;\n };\n })();\n\n sqlite3.value_type = (function() {\n const fname = 'sqlite3_value_type';\n const f = Module.cwrap(fname, ...decl('n:n'));\n return function(pValue) {\n const result = f(pValue);\n return result;\n };\n })();\n\n sqlite3.vfs_register = function(vfs, makeDefault) {\n const result = Module.vfs_register(vfs, makeDefault);\n return check('sqlite3_vfs_register', result);\n };\n\n function check(fname, result, db = null, allowed = [SQLite.SQLITE_OK]) {\n if (allowed.includes(result)) return result;\n const message = db ?\n Module.ccall('sqlite3_errmsg', 'string', ['number'], [db]) :\n fname;\n throw new SQLiteError(message, result);\n }\n\n // This function is used to automatically retry failed calls that\n // have pending retry operations that should allow the retry to\n // succeed.\n async function retry(f) {\n let rc;\n for (let retryCount = 0; retryCount < 2; ++retryCount) {\n // Wait for all pending retry operations to complete. This is\n // normally empty on the first loop iteration.\n if (Module.retryOps.length) {\n try { \n await Promise.all(Module.retryOps);\n } finally {\n Module.retryOps = [];\n }\n }\n \n rc = await f();\n if (rc === SQLite.SQLITE_OK || Module.retryOps.length === 0) {\n if (Module.pendingOps.length) {\n try {\n await Promise.all(Module.pendingOps);\n } catch (e) {\n console.error('Error in pendingOps:', e);\n return e.code || SQLite.SQLITE_ERROR;\n } finally {\n Module.pendingOps = [];\n }\n }\n return rc;\n }\n }\n return rc;\n }\n\n return sqlite3;\n}\n\n// Helper function to use a more compact signature specification.\nfunction decl(s) {\n const result = [];\n const m = s.match(/([ns@]*):([nsv@])/);\n switch (m[2]) {\n case 'n': result.push('number'); break;\n case 's': result.push('string'); break;\n case 'v': result.push(null); break;\n }\n\n const args = [];\n for (let c of m[1]) {\n switch (c) {\n case 'n': args.push('number'); break;\n case 's': args.push('string'); break;\n }\n }\n result.push(args);\n return result;\n}\n","/**\n * A thin wrapper over `navigator.locks`, used by `output()` to make its staging\n * tables collectable across tabs (D3).\n *\n * The staging lock is NOT mutual exclusion — nothing contends for its name. It\n * is a liveness marker: a lock held for as long as a staging table exists is\n * what lets another tab's sweep tell an in-flight table from an orphan. A tab\n * that is killed has its locks released by the browser, so its orphans become\n * collectable immediately, with no timestamp and no grace period.\n */\n\n/** The slice of the Web Locks API this module uses. */\ntype LockManager = {\n request: (\n name: string,\n optionsOrCallback: any,\n callback?: (lock: unknown) => Promise<unknown>,\n ) => Promise<unknown>;\n query: () => Promise<{ held?: { name?: string }[] }>;\n};\n\nexport type Locks = {\n /** False when the Web Locks API is missing; every method then no-ops. */\n readonly available: boolean;\n /** Acquires `name` and resolves with the function that releases it. */\n hold: (name: string) => Promise<() => void>;\n /** Runs `fn` while holding `name` exclusively. */\n withLock: <T>(name: string, fn: () => Promise<T>) => Promise<T>;\n /**\n * Runs `fn` while holding `name`, or skips it entirely when the lock is held\n * elsewhere. Never waits — which is the point: the staging sweep is\n * opportunistic, and awaiting this lock inside an open transaction would\n * hold SQLite's write lock while waiting on a holder that may itself be\n * waiting for that write lock.\n *\n * Resolves `true` if `fn` ran, `false` if it was skipped.\n */\n tryWithLock: (name: string, fn: () => Promise<unknown>) => Promise<boolean>;\n /** Names currently held anywhere in this origin — every tab included. */\n heldNames: () => Promise<string[]>;\n};\n\nconst STAGING_PREFIX = '__bsq_staging_';\n\nexport const stagingTableName = (uuid: string) =>\n `${STAGING_PREFIX}${uuid.replace(/-/g, '_')}`;\n\nexport const isStagingTable = (table: string) =>\n table.startsWith(STAGING_PREFIX);\n\nexport const stagingLockName = (file: string, table: string) =>\n `bsq:staging:${file}:${table}`;\n\nexport const sweepLockName = (file: string) => `bsq:sweep:${file}`;\n\n/** Serializes database opening across the pool — replaces the SAB init mutex. */\nexport const initLockName = (file: string) => `bsq:init:${file}`;\n\n/**\n * Which staging tables no live `output()` is using — pure, so it is driven by\n * Node tests rather than by two browser tabs.\n */\nexport const staleStagingTables = (\n tables: string[],\n heldNames: string[],\n file: string,\n): string[] => {\n const held = new Set(heldNames);\n return tables.filter((table) => !held.has(stagingLockName(file, table)));\n};\n\n/** The no-op Locks value for environments where the Web Locks API is absent. */\nexport const noOpLocks: Locks = {\n available: false,\n hold: async () => () => {},\n withLock: async (_name, fn) => fn(),\n tryWithLock: async (_name, fn) => {\n await fn();\n return true;\n },\n heldNames: async () => [],\n};\n\nexport const createLocks = (\n manager: LockManager | undefined = globalThis.navigator?.locks as\n | LockManager\n | undefined,\n): Locks => {\n if (!manager) return noOpLocks;\n\n return {\n available: true,\n hold: (name) =>\n new Promise<() => void>((resolveReleaser, rejectOuter) => {\n let release!: () => void;\n const held = new Promise<void>((resolveHeld) => {\n release = resolveHeld;\n });\n manager\n .request(name, () => {\n resolveReleaser(release);\n return held;\n })\n .catch(rejectOuter);\n }),\n withLock: <T>(name: string, fn: () => Promise<T>) =>\n manager.request(name, { mode: 'exclusive' }, () => fn()) as Promise<T>,\n tryWithLock: async (name, fn) => {\n let ran = false;\n await manager.request(\n name,\n { mode: 'exclusive', ifAvailable: true },\n async (lock) => {\n // `ifAvailable` hands the callback null instead of waiting.\n if (!lock) return;\n ran = true;\n await fn();\n },\n );\n return ran;\n },\n heldNames: async () => {\n const snapshot = await manager.query();\n return (snapshot.held ?? [])\n .map((lock) => lock.name)\n .filter((name): name is string => typeof name === 'string');\n },\n };\n};\n","export type SQLiteWorkerMessageData<_T = unknown> = {\n callId: number;\n terminate?: boolean;\n} & (\n | SQLWorkerResultData[keyof SQLWorkerResultData]\n | { type: 'error'; message: string }\n);\n\nexport type SQLWorkerResultData<T = unknown> = {\n open: { success: boolean };\n sql: { type: 'partial'; result: T[] } | { type: 'one'; sizes: number[] };\n abort: { type: 'done' };\n};\n\nexport const SharedArrayTypes = {\n INT: 0,\n STRING: 1,\n OBJECT: 2,\n};\n\ntype SQLOptions = {\n chunkSize?: number;\n /** Chunks the worker may send before waiting for a credit. Spec §3.2. */\n credits?: number;\n};\n\n/**\n * Where a worker fetches its `.wasm` from, when the consumer overrode it.\n *\n * Discriminated rather than a single string because the two forms differ in\n * what they leave to the Emscripten glue. `base` is a directory: the glue\n * supplies the file name (`locateFile('wa-sqlite-async.wasm')`), so nothing\n * here names the three builds' files — and nothing has to be renamed when\n * wa-sqlite renames one. `file` is the whole URL, typically content-hashed by\n * a bundler, so the glue's file name is discarded.\n *\n * Always absolute: `resolveWasmLocation` (`src/utils.ts`) resolves against the\n * page before the `open` message is posted, so the worker applies it without\n * knowing what it was relative to.\n */\nexport type WasmLocation = { base: string } | { file: string };\n\nexport type ClientMessageData =\n | {\n type: 'open';\n file: string;\n vfs: SQLiteVFS;\n build?: SQLiteBuild;\n pragmas?: Record<string, string>;\n /** Statements retained per worker; see `src/client.ts`. Internal. */\n statementCacheSize?: number;\n wasm?: WasmLocation;\n }\n | {\n type: 'query';\n callId: number;\n sql: string;\n params: unknown[];\n options?: SQLOptions;\n }\n | { type: 'close'; callId: number }\n | { type: 'credit'; callId: number; n: number }\n | { type: 'stop'; callId: number }\n | {\n type: 'delete';\n callId: number;\n file: string;\n vfs: SQLiteVFS;\n build?: SQLiteBuild;\n wasm?: WasmLocation;\n };\n\nexport type WorkerMessageData =\n | { type: 'ready'; callId: number }\n | { type: 'chunk'; callId: number; data: unknown[] }\n | {\n type: 'done';\n callId: number;\n affected: number;\n /**\n * Statements compiled while serving this query — zero on a cache hit.\n * Rides the same message as `affected` rather than opening a channel:\n * the effect this instruments is a count, not a duration (`mem:lessons`,\n * \"for a sub-millisecond effect, count the round trips\").\n */\n prepared: number;\n }\n | {\n type: 'error';\n callId: number;\n message: string;\n cause?: unknown;\n /** SQLite's numeric result code, when the failure came from SQLite. */\n sqliteCode?: number;\n }\n | { type: 'closed'; callId: number }\n | { type: 'deleted'; callId: number }\n | {\n type: 'open-error';\n callId: number;\n message: string;\n cause?: unknown;\n /** SQLite's numeric result code, when the failure came from SQLite. */\n sqliteCode?: number;\n };\n\n/** Which wa-sqlite WebAssembly build a worker loads. */\nexport type SQLiteBuild = 'sync' | 'async' | 'jspi';\n\n/**\n * What each build needs from the engine beyond plain WebAssembly.\n *\n * `satisfies Record<SQLiteBuild, …>` and not `SQLiteBuild = keyof typeof …`:\n * the check must run in this direction. Adding a build to the union then fails\n * to compile until its requirements are declared, where `keyof` would let a\n * forgotten entry mean silently that the build does not exist. `VFS_CAPABILITIES`\n * derives `SQLiteVFS` from its keys because it *is* the VFS registry; the build\n * registry is `WA_SQLITE_BUILDS` in the worker, and this table describes one\n * attribute of builds rather than the builds themselves.\n */\nexport const BUILD_REQUIREMENTS = {\n sync: [],\n async: [],\n jspi: ['jspi'],\n} as const satisfies Record<SQLiteBuild, readonly PlatformFeature[]>;\n\n/**\n * A platform feature a VFS may need. Which browser versions ship each one is\n * documentation data, not runtime data, so it lives in the README generator\n * (`scripts/render-vfs-matrix.ts`) with its sources — not here, where it would\n * ship to every consumer for nothing.\n */\nexport type PlatformFeature =\n | 'opfs'\n | 'readwrite-unsafe'\n | 'jspi'\n | 'writable-stream';\n\n/** Where a VFS keeps the database. */\nexport type VFSStorage = 'opfs' | 'indexeddb' | 'memory';\n\n/**\n * How a VFS arranges a database in its storage — which is not the same\n * question as `storage`, and cannot be derived from it: `AccessHandlePoolVFS`\n * is `storage: 'opfs'` yet keeps opaque, randomly named slot files whose\n * association with a SQLite path lives in a header inside each file.\n *\n * `deleteDatabase` reads this to decide whether the database is also an OPFS\n * entry it can remove by name after `jDelete` — the pass that covers the two\n * VFS whose `jDelete` does not delete. A wrong value here is a deletion that\n * reports success over an intact file.\n */\nexport type VFSLayout = 'opfs-path' | 'opfs-pool' | 'idb-store' | 'memory';\n\n/** How much of the database a VFS keeps resident in RAM. */\nexport type VFSMemoryModel = 'page-cache' | 'whole-database';\n\n/** What a VFS can and cannot do. One entry per VFS, and no second table. */\nexport type VFSCapability = {\n /** Builds this VFS can run on, most preferred first. */\n readonly builds: readonly [SQLiteBuild, ...SQLiteBuild[]];\n /** Largest pool this VFS supports; `null` when unbounded. */\n readonly maxPoolSize: number | null;\n /** Why the cap exists. Required whenever `maxPoolSize` is not null. */\n readonly poolLimitReason: string | null;\n /** Whether several connections may share one database. */\n readonly multiConnection: boolean;\n /** Whether data outlives `close()`. */\n readonly persistent: boolean;\n /**\n * `page-cache`: only SQLite's page cache is resident, bounded by\n * `PRAGMA cache_size`. `whole-database`: the entire database is resident,\n * and `poolSize` multiplies it.\n */\n readonly memoryModel: VFSMemoryModel;\n /** Where the database actually lives. */\n readonly storage: VFSStorage;\n /** How the database is arranged within that storage. */\n readonly layout: VFSLayout;\n /**\n * Platform features without which this VFS cannot work at all.\n *\n * `readwrite-unsafe` is the one that bites: WebIDL ignores the unknown\n * dictionary member on engines that do not implement it, so the handle\n * silently opens exclusive and the second connection hangs rather than\n * failing. Declaring it is what lets the conformance suite probe for it and\n * skip, instead of leaving it to surface as a 60-second timeout.\n */\n readonly requires: readonly PlatformFeature[];\n /**\n * Platform features this VFS uses when present and works without, at a cost.\n *\n * `OPFSAdaptiveVFS` is the case this field exists for. Without\n * `readwrite-unsafe` it rotates a single exclusive access handle between\n * connections instead of holding one each. That works — 102 of 104 browser\n * tests pass on Firefox — but it serializes the whole pool for the duration\n * of a long uninterruptible statement.\n *\n * Without this distinction, a support table derived from browser specs would\n * mark that VFS broken everywhere outside Chromium, when it merely degrades.\n */\n readonly degradesWithout: readonly PlatformFeature[];\n};\n\n/**\n * The single source of truth for VFS selection. `SQLiteVFS` is derived from its\n * keys, `worker/worker.ts` must supply a loader for every key, the guards in\n * `client.ts` read it, the conformance suite gates its scenarios on it, and the\n * README table is generated from it. Nothing may hold a second copy.\n *\n * Build order is a decision per VFS, not a rule: `sync` is both the fastest and\n * the most portable build, so it leads wherever supported; `OPFSAdaptiveVFS`\n * cannot use it and leads with `async` because `jspi` is Chromium-only.\n *\n * Every declared build combination is verified by running it against the pinned\n * wa-sqlite v1.1.2, never copied from upstream's table.\n */\nexport const VFS_CAPABILITIES = {\n OPFSAdaptiveVFS: {\n builds: ['async', 'jspi'],\n maxPoolSize: null,\n poolLimitReason: null,\n multiConnection: true,\n persistent: true,\n memoryModel: 'page-cache',\n storage: 'opfs',\n layout: 'opfs-path',\n requires: ['opfs'],\n degradesWithout: ['readwrite-unsafe'],\n },\n OPFSWriteAheadVFS: {\n builds: ['sync', 'async', 'jspi'],\n maxPoolSize: null,\n poolLimitReason: null,\n multiConnection: true,\n persistent: true,\n memoryModel: 'page-cache',\n storage: 'opfs',\n layout: 'opfs-path',\n // Measured on Firefox 2026-08-27, HAS_UNSAFE_HANDLES false: all three\n // build pairs and all six invariants pass, concurrent writes included, at\n // poolSize 1, 2 and 4. `requires` used to name readwrite-unsafe, which made\n // the conformance suite skip the very pairs that would have falsified it.\n // Safari is still unmeasured for this VFS — see `mem:follow-ups`.\n requires: ['opfs'],\n degradesWithout: ['readwrite-unsafe'],\n },\n OPFSCoopSyncVFS: {\n builds: ['sync', 'async', 'jspi'],\n maxPoolSize: null,\n poolLimitReason: null,\n multiConnection: true,\n persistent: true,\n memoryModel: 'page-cache',\n storage: 'opfs',\n layout: 'opfs-path',\n requires: ['opfs'],\n degradesWithout: [],\n },\n AccessHandlePoolVFS: {\n builds: ['sync', 'async', 'jspi'],\n maxPoolSize: 1,\n poolLimitReason: 'it cannot share access handles between connections',\n multiConnection: false,\n persistent: true,\n memoryModel: 'page-cache',\n storage: 'opfs',\n layout: 'opfs-pool',\n requires: ['opfs'],\n degradesWithout: [],\n },\n IDBBatchAtomicVFS: {\n builds: ['async', 'jspi'],\n maxPoolSize: null,\n poolLimitReason: null,\n multiConnection: true,\n persistent: true,\n memoryModel: 'page-cache',\n storage: 'indexeddb',\n layout: 'idb-store',\n requires: [],\n degradesWithout: [],\n },\n IDBMirrorVFS: {\n builds: ['async', 'jspi'],\n // Measured 2026-08-25, not inferred: `CREATE TABLE` → `INSERT` → `SELECT`\n // at poolSize 2, 300 rounds under a loaded suite, failed 5 times — with\n // `no such table` (a connection not seeing a committed statement) and\n // `database is locked`. Nothing at all in 60 rounds unloaded, which is why\n // four sightings over two days never reproduced on demand. See MIRROR-1 in\n // mem:follow-ups for the method.\n //\n // It mirrors the whole database in memory PER WORKER and propagates\n // commits over BroadcastChannel, asynchronously — so a pool holds copies\n // that diverge, the same shape that had OPFSPermutedVFS removed from this\n // library. The commit barrier cannot rescue it: its prelude refreshes page\n // 1 through a real read transaction, and there is nothing fresher to read\n // on a connection whose mirror has not received the broadcast yet.\n maxPoolSize: 1,\n poolLimitReason:\n 'its pages are mirrored per worker and commits propagate asynchronously, so a larger pool reads stale data or fails outright',\n multiConnection: false,\n persistent: true,\n // Upstream: \"keeps all files in memory, persisting database files to\n // IndexedDB\", and the whole database must fit in available memory.\n memoryModel: 'whole-database',\n storage: 'indexeddb',\n layout: 'idb-store',\n requires: [],\n degradesWithout: [],\n },\n OPFSAnyContextVFS: {\n builds: ['async', 'jspi'],\n maxPoolSize: null,\n poolLimitReason: null,\n multiConnection: true,\n persistent: true,\n memoryModel: 'page-cache',\n storage: 'opfs',\n layout: 'opfs-path',\n requires: ['opfs', 'writable-stream'],\n degradesWithout: [],\n },\n MemoryVFS: {\n builds: ['sync', 'async', 'jspi'],\n maxPoolSize: 1,\n poolLimitReason:\n 'its pages live in the worker that opened them, so a larger pool would open independent databases that diverge silently',\n multiConnection: false,\n persistent: false,\n memoryModel: 'whole-database',\n storage: 'memory',\n layout: 'memory',\n requires: [],\n degradesWithout: [],\n },\n MemoryAsyncVFS: {\n builds: ['async', 'jspi'],\n maxPoolSize: 1,\n poolLimitReason:\n 'its pages live in the worker that opened them, so a larger pool would open independent databases that diverge silently',\n multiConnection: false,\n persistent: false,\n memoryModel: 'whole-database',\n storage: 'memory',\n layout: 'memory',\n requires: [],\n degradesWithout: [],\n },\n} as const satisfies Record<string, VFSCapability>;\n\nexport type SQLiteVFS = keyof typeof VFS_CAPABILITIES;\n\n/** The build used when the caller does not name one. */\nexport const defaultBuildFor = (vfs: SQLiteVFS): SQLiteBuild =>\n VFS_CAPABILITIES[vfs].builds[0];\n\n/**\n * The VFS this project recommends when a caller has no reason to choose\n * another. It is NOT a default — `vfs` is required, precisely so that the name\n * lives in the consumer's own source and cannot move underneath their data.\n *\n * It lives here, beside the table, because the README generator marks this row\n * `(recommended)` and would otherwise hold a second copy. It is deliberately\n * not exported: a consumer writing `vfs: RECOMMENDED_VFS` would be exposed to\n * the same displacement the day the recommendation changes.\n */\nexport const RECOMMENDED_VFS: SQLiteVFS = 'OPFSAdaptiveVFS';\n","/**\n * Every failure this library raises on its own behalf. A caller discriminates\n * on `code`, or on `name` — they carry the same value, so `err.name` reads the\n * way `'AbortError'` does on the DOMException an aborted signal throws.\n */\nexport type SQLiteErrorCode =\n | 'NOT_A_READ_QUERY'\n | 'CLIENT_CLOSED'\n | 'WORKER_CRASHED'\n | 'TIMEOUT'\n | 'PROTOCOL_ERROR'\n | 'INVALID_IDENTIFIER'\n | 'INVALID_OPTION'\n | 'INVALID_PRAGMA'\n | 'BULK_WRITE_FAILED'\n | 'BUSY'\n | 'READ_ONLY_TRANSACTION';\n\nexport class SQLiteError extends Error {\n readonly code: SQLiteErrorCode;\n /**\n * SQLite's own numeric result code, present only when the failure came from\n * SQLite rather than from this library. `BUSY` covers both SQLITE_BUSY (5)\n * and SQLITE_LOCKED (6); this is how a caller tells them apart.\n */\n readonly sqliteCode?: number;\n\n constructor(\n code: SQLiteErrorCode,\n message: string,\n options?: { cause?: unknown; sqliteCode?: number },\n ) {\n super(message, options);\n this.code = code;\n this.name = code;\n if (options?.sqliteCode !== undefined) this.sqliteCode = options.sqliteCode;\n }\n}\n\n/**\n * A batch failed. Raised by `bulkWrite().close()` and by `output().close()`.\n *\n * The counters exist because the old behaviour was silent: batches were chained\n * on one shared promise, so after a rejection every later `.then` was skipped —\n * while their rows had already been spliced out of the buffer (B5). A caller now\n * learns how much of its data reached the database.\n */\nexport class SQLiteBulkWriteError extends SQLiteError {\n readonly rowsWritten: number;\n readonly rowsNotWritten: number;\n\n constructor(\n message: string,\n counts: { rowsWritten: number; rowsNotWritten: number },\n options?: { cause?: unknown },\n ) {\n super('BULK_WRITE_FAILED', message, options);\n this.rowsWritten = counts.rowsWritten;\n this.rowsNotWritten = counts.rowsNotWritten;\n }\n}\n","import { SQLiteError } from './errors';\nimport type { SQLiteBuild, WasmLocation } from './types';\n\nexport const sqlParams = () => {\n // `unknown`, not `any`: these are SQL bind values and they are never\n // inspected here — only counted, de-duplicated by identity, and handed on.\n // The public query surface has always said `unknown[]`; this was the one\n // place that quietly said less.\n const sqlParamsMap = new Map<unknown, number>();\n const sqlParams: unknown[] = [];\n\n const addParam = (v: unknown) => {\n let paramIndex = sqlParamsMap.get(v);\n if (!paramIndex) {\n paramIndex = sqlParams.length + 1;\n sqlParamsMap.set(v, paramIndex);\n sqlParams.push(v);\n }\n return `?${paramIndex.toString().padStart(3, '0')}`;\n };\n const addParamArray = (values: unknown[]) => {\n return values.map((v) => addParam(v)).join(',');\n };\n return {\n addParam,\n addParamArray,\n params: sqlParams,\n };\n};\n\n/**\n * Every statement SQLite treats as a write, or that must be serialized through\n * the single writer worker. Matched anywhere in the string, not just at the\n * start: the worker executes `;`-separated statements, so a write hiding after\n * a semicolon must still route to the writer.\n */\nconst WRITE_KEYWORDS =\n /\\b(INSERT|REPLACE|UPDATE|DELETE|CREATE|DROP|ALTER|VACUUM|ANALYZE|REINDEX|SAVEPOINT|RELEASE|BEGIN|COMMIT|ROLLBACK|ATTACH|DETACH|PRAGMA)\\b/i;\n\n/**\n * Routing predicate: is this statement provably a read?\n *\n * Two conditions, both required. The statement must OPEN with a read keyword,\n * and it must contain no write keyword anywhere. The first condition alone is\n * not enough — the worker executes `;`-separated statements, so `SELECT 1;\n * DROP TABLE t` opens as a read and is not one. The second alone is not enough\n * either — it would admit any unrecognised statement as a read.\n *\n * The previous blocklist missed VACUUM, ALTER, ANALYZE, REINDEX, SAVEPOINT and\n * a manual BEGIN, so those ran on the read pool: a VACUUM could execute on an\n * arbitrary worker while the writer held an open transaction, bypassing\n * exclusivity one layer above the pool.\n *\n * Misclassification now fails toward the writer — correct, merely slower. A\n * read whose text merely mentions a write keyword (`SELECT 'INSERT'`, or\n * `EXPLAIN INSERT ...`, which never executes) is serialized needlessly. That\n * is the accepted price of never routing a write to the read pool.\n */\n/**\n * A statement that is nothing but a single PRAGMA lookup: no assignment, no\n * argument, nothing after it. Anchoring at `$` is what makes this safe for\n * free — `PRAGMA journal_mode; DROP TABLE t` does not match, and neither does\n * `PRAGMA journal_mode=WAL`, whose `=` breaks the match.\n */\nconst READ_PRAGMA = /^\\s*PRAGMA\\s+(\\w+\\.)?\\w+\\s*;?\\s*$/i;\n\nexport const isReadQuery = (sql: string) =>\n READ_PRAGMA.test(sql) ||\n (/^\\s*(SELECT|EXPLAIN|VALUES|WITH)\\b/i.test(sql) &&\n !WRITE_KEYWORDS.test(sql));\n\nexport const isWriteQuery = (sql: string) => !isReadQuery(sql);\n\n/**\n * Combines two abort signals into one that fires with the reason of whichever\n * source aborted first, plus the `release()` that unsubscribes it.\n *\n * NOT `AbortSignal.any()`. That is Chrome 116 / Firefox 124 / Safari 17.4, far\n * above this library's floor (Chrome 92 / Firefox 95 / Safari 15.4), and\n * adopting it would raise every row of the generated README matrix for every\n * consumer.\n *\n * The common case allocates nothing: with one side absent, or one side already\n * aborted, the surviving signal is returned as itself — no listener, no\n * teardown owed, and the caller sees the original `reason` rather than a copy.\n */\nexport const mergeSignals = (\n a: AbortSignal | undefined,\n b: AbortSignal | undefined,\n): { signal: AbortSignal | undefined; release: () => void } => {\n const noop = () => {};\n if (!a || a === b) return { signal: b, release: noop };\n if (!b) return { signal: a, release: noop };\n if (a.aborted) return { signal: a, release: noop };\n if (b.aborted) return { signal: b, release: noop };\n\n const merged = new AbortController();\n const relay = (source: AbortSignal) => () => merged.abort(source.reason);\n const onA = relay(a);\n const onB = relay(b);\n a.addEventListener('abort', onA, { once: true });\n b.addEventListener('abort', onB, { once: true });\n return {\n signal: merged.signal,\n release: () => {\n a.removeEventListener('abort', onA);\n b.removeEventListener('abort', onB);\n },\n };\n};\n\n/**\n * Routing guard for the read-shaped methods (`read`, `chunk`, `stream`, `first`).\n * Throws before a lease is taken, so a rejected statement costs no pool capacity.\n *\n * A bare read pragma (`PRAGMA journal_mode`) is accepted; a pragma that assigns\n * (`PRAGMA journal_mode=WAL`), takes an argument, or is followed by anything\n * else must go through `write()`.\n */\nexport const assertReadable = (sql: string, method: string): void => {\n if (isReadQuery(sql)) return;\n const keyword = sql.trim().split(/\\s+/)[0]?.toUpperCase() ?? '';\n throw new SQLiteError(\n 'NOT_A_READ_QUERY',\n `${method}() only accepts statements that are provably reads; \"${keyword}\" must go through write(). ` +\n `Note that a PRAGMA that assigns a value or takes an argument is a write.`,\n );\n};\n\n/**\n * Quotes an SQL identifier so it can never be read as anything but a name.\n *\n * The library interpolates table, column and index names into generated SQL —\n * `bulkWrite`, `output` and their indexes. wa-sqlite's `statements()` executes\n * `;`-separated statements, so an unquoted name is a stacked-query injection\n * (B4). Quoting is what makes `t\"; DROP TABLE users; --` one identifier.\n *\n * Note that quoting preserves case in `sqlite_master`; SQLite still resolves\n * names case-insensitively.\n */\nexport const quoteIdent = (name: string): string => {\n if (!name)\n throw new SQLiteError('INVALID_IDENTIFIER', 'Identifier cannot be empty');\n if (name.includes('\\0'))\n throw new SQLiteError(\n 'INVALID_IDENTIFIER',\n `Identifier contains a NUL character: ${JSON.stringify(name)}`,\n );\n return `\"${name.replace(/\"/g, '\"\"')}\"`;\n};\n\n/** `INTEGER`, `TEXT`, `VARCHAR(255)`, `DECIMAL(10, 2)` — nothing else. */\nconst COLUMN_TYPE = /^[A-Za-z][A-Za-z0-9 ]*(\\([0-9, ]+\\))?$/;\n\n/**\n * A column type is not an identifier and cannot be quoted — it is an SQL\n * fragment the caller writes. It is validated by shape instead: this is the\n * narrowed, not closed, channel documented in the spec (§1.2).\n */\nexport const assertColumnType = (type: string, column: string): string => {\n const trimmed = type.trim();\n if (!COLUMN_TYPE.test(trimmed))\n throw new SQLiteError(\n 'INVALID_IDENTIFIER',\n `Column \"${column}\" declares an unsupported type ${JSON.stringify(type)}. ` +\n `A type must be a word, optionally followed by numeric arguments, e.g. \"INTEGER\" or \"VARCHAR(255)\".`,\n );\n return trimmed;\n};\n\n/**\n * A GENERATED ALWAYS AS expression is caller-authored SQL. It must at least be\n * parenthesised and free of statement separators, so it cannot escape its slot.\n */\nexport const assertGeneratedExpression = (\n expr: string,\n column: string,\n): string => {\n const trimmed = expr.trim();\n if (\n !trimmed.startsWith('(') ||\n !trimmed.endsWith(')') ||\n trimmed.includes(';')\n )\n throw new SQLiteError(\n 'INVALID_IDENTIFIER',\n `Column \"${column}\" declares an invalid generated expression ${JSON.stringify(expr)}. ` +\n `It must be parenthesised and contain no \";\", e.g. \"(base * 2)\".`,\n );\n return trimmed;\n};\n\nconst PRAGMA_NAME = /^[A-Za-z_]\\w*$/;\nconst PRAGMA_INTEGER = /^-?\\d+$/;\nconst PRAGMA_LITERAL = /^'([^']|'')*'$/;\n\n/**\n * Renders the client's `pragmas` option into executable statements, rejecting\n * anything that is not provably a name and a scalar value (B4).\n *\n * Validation is syntactic rather than a closed list of the ~60 SQLite pragmas:\n * a fixed list makes every legitimate pragma outside it unreachable and drifts\n * with SQLite versions, for no additional protection — no \";\", no parenthesis\n * and no comment marker survives these three shapes either.\n *\n * Called twice: by the client at construction, so a bad configuration fails at\n * `createSQLiteClient()` rather than inside an unrelated query, and by the\n * worker at open, which is the only place the statements actually run.\n */\nexport const renderPragmas = (pragmas: Record<string, string>): string[] =>\n Object.entries(pragmas).map(([key, value]) => {\n if (!PRAGMA_NAME.test(key))\n throw new SQLiteError(\n 'INVALID_PRAGMA',\n `Invalid pragma name ${JSON.stringify(key)}: a pragma name must match ${PRAGMA_NAME}.`,\n );\n const raw = String(value).trim();\n if (PRAGMA_INTEGER.test(raw) || PRAGMA_NAME.test(raw))\n return `PRAGMA ${key}=${raw}`;\n // PRAGMA_LITERAL already guarantees raw is a well-formed SQLite string\n // literal (outer quotes present, internal single quotes doubled per '').\n // Using raw directly is correct and simpler than re-escaping the content.\n if (PRAGMA_LITERAL.test(raw)) return `PRAGMA ${key}=${raw}`;\n throw new SQLiteError(\n 'INVALID_PRAGMA',\n `Invalid value ${JSON.stringify(value)} for pragma \"${key}\": expected an integer, a bare word such as WAL, or a quoted literal.`,\n );\n });\n\n/**\n * The single definition of database identity — one string used everywhere:\n * the worker open call, the VFS, the epoch registry and every lock name.\n *\n * The form is **relative** (no leading `/`). `URL.pathname` is absolute by\n * construction, so stripping the slash is necessary: SQLite core checks\n * `nPathname + 8 > mxPathname` (64, `node_modules/wa-sqlite/src/VFS.js:10`)\n * before `xOpen`, and a leading `/` costs a character the budget cannot spare —\n * measured at task 1: it broke all 96 browser tests on 56-char names. The\n * strip gives that character back, so a 56-char name that the caller wrote\n * still fits after normalization. The VFS re-parse (`new URL(zName, 'file://')`\n * for four of five; `AccessHandlePoolVFS` via `'file://localhost/'`) produces\n * identical `pathname` whether the open call receives `'data'` or `'/data'`,\n * so the opened OPFS file is the same regardless.\n *\n * Idempotent: the VFS re-parse of an already-normalized name is a no-op.\n */\nexport const normalizeDatabaseFile = (file: string): string =>\n new URL(file, 'file://').pathname.replace(/^\\//, '');\n\n/**\n * Turns the `wasmUrl` client option into the absolute location posted in the\n * `open` message, or `undefined` when the option was not given.\n *\n * `undefined` is the load-bearing case: the worker sets Emscripten's\n * `locateFile` only when it receives a location, and `findWasmBinary` takes its\n * `new URL('wa-sqlite.wasm', import.meta.url)` branch whenever `locateFile` is\n * absent. So an omitted option leaves resolution byte-for-byte as it was\n * before this option existed — which is the entire contract of the escape\n * hatch.\n *\n * Resolution happens **here**, on the client, against the page: what the\n * consumer writes means what it means from the page they wrote it on, not from\n * the worker's own directory one level down. The callback is therefore called\n * once, at client construction, before any worker exists — its result is\n * reused by every worker in the pool and by every restart.\n *\n * A string is a **directory** and gets its missing trailing slash back before\n * resolution: URL resolution treats a last segment without a slash as a\n * document and replaces it, so `'/static/wasm'` would otherwise silently mean\n * `/static/`. A callback names a **file**, so nothing is appended to it.\n *\n * @throws `SQLiteError('INVALID_OPTION')` when the value cannot be parsed as a\n * URL — synchronously, at construction, rather than as an opaque open failure\n * from a worker that could not fetch its module.\n */\nexport const resolveWasmLocation = (\n wasmUrl: string | ((build: SQLiteBuild) => string) | undefined,\n build: SQLiteBuild,\n baseHref: string,\n): WasmLocation | undefined => {\n if (wasmUrl === undefined) return undefined;\n\n const isCallback = typeof wasmUrl === 'function';\n const raw = isCallback ? wasmUrl(build) : wasmUrl;\n const value = isCallback || raw.endsWith('/') ? raw : `${raw}/`;\n\n let href: string;\n try {\n href = new URL(value, baseHref).href;\n } catch {\n throw new SQLiteError(\n 'INVALID_OPTION',\n `wasmUrl could not be parsed as a URL: ${JSON.stringify(raw)}. Pass a directory (relative, absolute, or a full URL), or a callback returning the full URL of one .wasm file.`,\n );\n }\n\n return isCallback ? { file: href } : { base: href };\n};\n","/**\n * Makes a value safe to hand to `postMessage`.\n *\n * The whole point is a failure the caller cannot recover from: a cause that\n * cannot be structured-cloned makes `postMessage` itself throw, and every call\n * site here is already inside a `catch` building an error reply. The throw\n * would replace that reply with nothing, and the client would wait for ever on\n * a request that was answered by no message at all.\n *\n * Pure, and in its own module for the reason `statement-cache.ts` is: the\n * remainder of `worker.ts` only runs in a browser, and this decides something\n * worth testing in Node against a value that is deliberately unclonable.\n */\n\n/**\n * Returns `value` when it survives the structured-clone algorithm, and its\n * string form when it does not.\n *\n * `MessageChannel` rather than `structuredClone()`: the two run the same\n * algorithm and throw the same `DataCloneError`, but `structuredClone` lands at\n * Chrome 98 where `MessageChannel` is Chrome 2 / Firefox 41 / Safari 5. Using\n * it would have raised this library's floor by six Chrome versions to protect\n * an error *cause* — see `scripts/render-vfs-matrix.ts`, which computes that\n * floor from the APIs named here.\n */\nexport const cloneable = (value: unknown): unknown => {\n const channel = new MessageChannel();\n try {\n // Never received, and it does not need to be: the clone — and its\n // DataCloneError — happens synchronously inside postMessage.\n channel.port1.postMessage(value);\n return value;\n } catch {\n return String(value);\n } finally {\n channel.port1.close();\n channel.port2.close();\n }\n};\n","/**\n * A per-worker LRU of prepared statements, keyed by the exact SQL string.\n *\n * Pure bookkeeping: this module prepares nothing and finalises nothing.\n * `worker.ts` owns every effect, which is what lets the policy be tested in\n * Node against plain integers in a subsystem whose remainder only runs in a\n * browser — the role `mem:architecture` describes for `scheduler.ts` and\n * `supervisor.ts`.\n */\n\n/** A `sqlite3_stmt` pointer. Opaque here: the cache only files it. */\nexport type StatementHandle = number;\n\n/**\n * `null` marks SQL that must never be cached — a multi-statement string,\n * whose first statement would otherwise be replayed alone under the key of\n * the whole string. The marking shares the LRU with real entries on purpose:\n * kept apart, generated SQL would grow a second unbounded map beside the one\n * this bound exists to close.\n */\ntype Entry = StatementHandle | null;\n\nexport type StatementCache = {\n get: (sql: string) => StatementHandle | 'uncacheable' | undefined;\n /** Returns the handles evicted by this insertion; the caller finalises them. */\n set: (sql: string, handle: StatementHandle) => StatementHandle[];\n /** Returns the handles evicted by this marking; the caller finalises them. */\n markUncacheable: (sql: string) => StatementHandle[];\n delete: (sql: string) => StatementHandle | undefined;\n /** Empties the cache and returns every live handle, for close. */\n drain: () => StatementHandle[];\n};\n\nexport const createStatementCache = (capacity: number): StatementCache => {\n const entries = new Map<string, Entry>();\n\n // A Map iterates in insertion order, so re-inserting is how an entry\n // becomes the most recently used and keys().next() is the least.\n const touch = (sql: string, entry: Entry) => {\n entries.delete(sql);\n entries.set(sql, entry);\n };\n\n const evict = (): StatementHandle[] => {\n const evicted: StatementHandle[] = [];\n while (entries.size > capacity) {\n const oldest = entries.keys().next();\n if (oldest.done) break;\n const entry = entries.get(oldest.value);\n entries.delete(oldest.value);\n if (typeof entry === 'number') evicted.push(entry);\n }\n return evicted;\n };\n\n return {\n get: (sql) => {\n const entry = entries.get(sql);\n if (entry === undefined) return undefined;\n touch(sql, entry);\n return entry === null ? 'uncacheable' : entry;\n },\n set: (sql, handle) => {\n touch(sql, handle);\n return evict();\n },\n markUncacheable: (sql) => {\n touch(sql, null);\n return evict();\n },\n delete: (sql) => {\n const entry = entries.get(sql);\n entries.delete(sql);\n return typeof entry === 'number' ? entry : undefined;\n },\n drain: () => {\n const live: StatementHandle[] = [];\n for (const entry of entries.values()) {\n if (typeof entry === 'number') live.push(entry);\n }\n entries.clear();\n return live;\n },\n };\n};\n"],"names":["openedDB","queryRunning","channel","waiters","credits","currentCallId","stopped","signal","wake","_","tick","e","Object","Symbol","Error","r","TextEncoder","s","DataView","TextDecoder","Uint8Array","ArrayBuffer","Map","URL","Math","BigInt","console","Promise","AbortController","setTimeout","navigator","n","BroadcastChannel","indexedDB","IDBKeyRange","Array","Number","t","Set","WeakSet","Proxy","Reflect","IDBRequest","Uint32Array","FinalizationRegistry","setInterval","clearInterval","AbortSignal","performance","clearTimeout","self","parseInt","globalThis","window","importScripts","process","document","XMLHttpRequest","fetch","Int8Array","Int16Array","Uint16Array","Int32Array","Float32Array","Float64Array","WebAssembly","String","crypto","TypeError","Date","i","a","l","o","c","h","f","Browser","isNaN","WeakMap","RangeError","Fibers","Asyncify","noOpLocks","_name","fn","VFS_CAPABILITIES","defaultBuildFor","vfs","SQLiteError","code","message","options","undefined","PRAGMA_NAME","PRAGMA_INTEGER","PRAGMA_LITERAL","cloneable","value","MessageChannel","WA_SQLITE_BUILDS","VFSConfigs","gate","resolve","previous","callId","locks","createLocks","manager","name","resolveReleaser","rejectOuter","release","held","resolveHeld","ran","lock","snapshot","closing","wasmModuleArg","wasm","path","isSingleStatement","sql","statementText","normalize","DB_RELATED_SUFFIXES","removeOpfsEntry","segments","Boolean","dir","segment","error","deleteDatabaseFiles","data","file","build","factory","module","vfsModule","vfsInstance","suffix","pResOut","event","pragmas","statementCacheSize","open","capacity","entries","touch","evict","vfsConfig","sqlite","SQLite","db","statement","key","JSON","raw","stmt","SQLITE_ROW","opened","reply","prepared","cache","entry","evicted","oldest","handle","live","query","params","chunkSize","buffer","run","cols","result","row","out","settle","failed","cached","keep","single","SQLITE_PREPARE_PERSISTENT","DEFAULT_CREDIT_WINDOW","affected","chunk"],"mappings":"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"}
|