xm-netcdf-loader 1.0.9 → 1.0.11
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/dist/assets/netcdf-worker-CvCepsmu.js +3 -0
- package/dist/assets/netcdf-worker-CvCepsmu.js.map +1 -0
- package/dist/netcdf4-wasm.wasm +0 -0
- package/dist/xm-netcdf-loader.cjs.js +1 -1
- package/dist/xm-netcdf-loader.cjs.js.map +1 -1
- package/dist/xm-netcdf-loader.es.js +4973 -4967
- package/dist/xm-netcdf-loader.es.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"netcdf-worker-CvCepsmu.js","sources":["../src/netf4/constants.js","../src/netf4/slice.js","../src/netf4/netcdf-getters.js","../src/netf4/wasm-module.js","../src/netf4/netcdf4-wasm.js","../src/netf4/netcdf-worker.js"],"sourcesContent":["// NetCDF4 constants (populated from NetCDF4 headers)\n// see: https://github.com/Unidata/netcdf-c/blob/main/include/netcdf.h\n// https://docs.unidata.ucar.edu/netcdf-c/current/nc-error-codes.html\nexport const NC_CONSTANTS = {\n // Error codes\n NC_NOERR: 0,\n NC_EBADID: -33,\n NC_ENFILE: -34,\n NC_EEXIST: -35,\n NC_EINVAL: -36,\n NC_EPERM: -37,\n NC_ENOTINDEFINE: -38,\n NC_EINDEFINE: -39,\n NC_EINVALCOORDS: -40,\n NC_EMAXDIMS: -41,\n NC_ENAMEINUSE: -42,\n NC_ENOTATT: -43,\n NC_EMAXATTS: -44,\n NC_EBADTYPE: -45,\n NC_EBADDIM: -46,\n NC_EUNLIMPOS: -47,\n NC_EMAXVARS: -48,\n NC_ENOTVAR: -49,\n NC_EGLOBAL: -50,\n NC_ENOTNC: -51,\n NC_ESTS: -52,\n NC_EMAXNAME: -53,\n NC_EUNLIMIT: -54,\n NC_ENORECVARS: -55,\n NC_ECHAR: -56,\n NC_EEDGE: -57,\n NC_ESTRIDE: -58,\n NC_EBADNAME: -59,\n NC_ERANGE: -60,\n NC_ENOMEM: -61,\n NC_EVARSIZE: -62,\n NC_EDIMSIZE: -63,\n NC_ETRUNC: -64,\n NC_EAXISTYPE: -65,\n // NetCDF-4 error codes\n NC_EDAP: -66,\n NC_ECURL: -67,\n NC_EIO: -68,\n NC_ENODATA: -69,\n NC_EDAPSVC: -70,\n NC_EDAS: -71,\n NC_EDDS: -72,\n NC_EDATADDS: -73,\n NC_EDAPURL: -74,\n NC_EDAPCONSTRAINT: -75,\n NC_ETRANSLATION: -76,\n NC_EACCESS: -77,\n NC_EAUTH: -78,\n NC_ENOTFOUND: -90,\n NC_ECANTREMOVE: -91,\n NC_EINTERNAL: -92, // internal library error\n NC_EPNETCDF: -93, // PnetCDF error\n NC_EHDFERR: -101,\n NC_ECANTREAD: -102,\n NC_ECANTWRITE: -103,\n NC_ECANTCREATE: -104,\n NC_EFILEMETA: -105,\n NC_EDIMMETA: -106,\n NC_EATTMETA: -107,\n NC_EVARMETA: -108,\n NC_ENOCOMPOUND: -109,\n NC_EATTEXISTS: -110,\n NC_ENOTNC4: -111,\n NC_ESTRICTNC3: -112,\n NC_ENOTNC3: -113,\n NC_ENOPAR: -114,\n NC_EPARINIT: -115,\n NC_EBADGRPID: -116,\n NC_EBADTYPID: -117,\n NC_ETYPDEFINED: -118,\n NC_EBADFIELD: -119,\n NC_EBADCLASS: -120,\n NC_EMAPTYPE: -121,\n NC_ELATEFILL: -122,\n NC_ELATEDEF: -123,\n NC_EDIMSCALE: -124,\n NC_ENOGRP: -125,\n NC_ESTORAGE: -126,\n NC_EBADCHUNK: -127,\n NC_ENOTBUILT: -128,\n NC_EDISKLESS: -129,\n NC_ECANTEXTEND: -130,\n NC_EMPI: -131,\n // File modes\n NC_NOWRITE: 0x0000,\n NC_WRITE: 0x0001,\n NC_CLOBBER: 0x0000,\n NC_NOCLOBBER: 0x0004,\n NC_DISKLESS: 0x0008,\n NC_MMAP: 0x0010, // deprecated\n NC_64BIT_DATA: 0x0020,\n NC_CDF5: 0x0020,\n NC_CLASSIC_MODEL: 0x0100,\n NC_64BIT_OFFSET: 0x0200,\n NC_NETCDF4: 0x1000,\n NC_SHARE: 0x0800,\n NC_INMEMORY: 0x8000,\n // Format versions\n NC_FORMAT_CLASSIC: 1,\n NC_FORMAT_64BIT_OFFSET: 2,\n NC_FORMAT_64BIT: 2,\n NC_FORMAT_NETCDF4: 3,\n NC_FORMAT_NETCDF4_CLASSIC: 4,\n NC_FORMAT_64BIT_DATA: 5,\n NC_FORMAT_CDF5: 5,\n // Data types (atomic types)\n NC_NAT: 0, // Not A Type\n NC_BYTE: 1, // signed 1-byte integer\n NC_CHAR: 2, // text character\n NC_SHORT: 3, // signed 2-byte integer\n NC_INT: 4, // signed 4-byte integer\n NC_LONG: 4, // deprecated, same as NC_INT\n NC_FLOAT: 5, // single precision float\n NC_DOUBLE: 6, // double precision float\n NC_UBYTE: 7, // unsigned 1-byte integer\n NC_USHORT: 8, // unsigned 2-byte integer\n NC_UINT: 9, // unsigned 4-byte integer\n NC_INT64: 10, // signed 8-byte integer\n NC_UINT64: 11, // unsigned 8-byte integer\n NC_STRING: 12, // variable-length string\n // Aliases for 64-bit integers\n NC_LONGLONG: 10, // alias for NC_INT64\n NC_ULONGLONG: 11, // alias for NC_UINT64\n // User-defined types (NetCDF-4)\n NC_VLEN: 13, // variable-length type\n NC_OPAQUE: 14, // opaque type\n NC_ENUM: 15, // enumeration type\n NC_COMPOUND: 16, // compound type\n // First user-defined type ID\n NC_FIRSTUSERTYPEID: 32,\n // Fill modes\n NC_FILL: 0,\n NC_NOFILL: 0x100,\n // Storage types\n NC_CHUNKED: 0,\n NC_CONTIGUOUS: 1,\n NC_COMPACT: 2,\n NC_VIRTUAL: 3,\n // Endianness\n NC_ENDIAN_NATIVE: 0,\n NC_ENDIAN_LITTLE: 1,\n NC_ENDIAN_BIG: 2,\n // Unlimited dimension\n NC_UNLIMITED: 0,\n // Special values\n NC_GLOBAL: -1, // Global attribute\n NC_MAX_DIMS: 1024,\n NC_MAX_ATTRS: 8192,\n NC_MAX_VARS: 8192,\n NC_MAX_NAME: 256,\n NC_MAX_VAR_DIMS: 1024,\n // Compression\n NC_NOCHECKSUM: 0,\n NC_FLETCHER32: 1,\n // Shuffle filter\n NC_NOSHUFFLE: 0,\n NC_SHUFFLE: 1,\n};\n// Data type mapping from string names to NetCDF constants\nexport const DATA_TYPE_MAP = {\n // Short names\n 'f8': NC_CONSTANTS.NC_DOUBLE,\n 'f4': NC_CONSTANTS.NC_FLOAT,\n 'i8': NC_CONSTANTS.NC_INT64,\n 'i4': NC_CONSTANTS.NC_INT,\n 'i2': NC_CONSTANTS.NC_SHORT,\n 'i1': NC_CONSTANTS.NC_BYTE,\n 'u8': NC_CONSTANTS.NC_UINT64,\n 'u4': NC_CONSTANTS.NC_UINT,\n 'u2': NC_CONSTANTS.NC_USHORT,\n 'u1': NC_CONSTANTS.NC_UBYTE,\n 'S1': NC_CONSTANTS.NC_CHAR,\n // Long names\n 'double': NC_CONSTANTS.NC_DOUBLE,\n 'float': NC_CONSTANTS.NC_FLOAT,\n 'int64': NC_CONSTANTS.NC_INT64,\n 'int': NC_CONSTANTS.NC_INT,\n 'short': NC_CONSTANTS.NC_SHORT,\n 'byte': NC_CONSTANTS.NC_BYTE,\n 'uint64': NC_CONSTANTS.NC_UINT64,\n 'uint': NC_CONSTANTS.NC_UINT,\n 'ushort': NC_CONSTANTS.NC_USHORT,\n 'ubyte': NC_CONSTANTS.NC_UBYTE,\n 'char': NC_CONSTANTS.NC_CHAR,\n 'string': NC_CONSTANTS.NC_STRING,\n 'str': NC_CONSTANTS.NC_STRING,\n // Aliases\n 'longlong': NC_CONSTANTS.NC_LONGLONG,\n 'ulonglong': NC_CONSTANTS.NC_ULONGLONG,\n 'long': NC_CONSTANTS.NC_INT,\n};\n// Reverse mapping: NetCDF type ID to dtype string\nexport const CONSTANT_DTYPE_MAP = {\n 0: 'NAT', // NC_NAT\n 1: 'i1', // NC_BYTE\n 2: 'S1', // NC_CHAR\n 3: 'i2', // NC_SHORT\n 4: 'i4', // NC_INT\n 5: 'f4', // NC_FLOAT\n 6: 'f8', // NC_DOUBLE\n 7: 'u1', // NC_UBYTE\n 8: 'u2', // NC_USHORT\n 9: 'u4', // NC_UINT\n 10: 'i8', // NC_INT64\n 11: 'u8', // NC_UINT64\n 12: 'str', // NC_STRING\n};\n// Data type sizes in bytes\nexport const DATA_TYPE_SIZE = {\n 0: 0, // NC_NAT\n 1: 1, // NC_BYTE\n 2: 1, // NC_CHAR\n 3: 2, // NC_SHORT\n 4: 4, // NC_INT\n 5: 4, // NC_FLOAT\n 6: 8, // NC_DOUBLE\n 7: 1, // NC_UBYTE\n 8: 2, // NC_USHORT\n 9: 4, // NC_UINT\n 10: 8, // NC_INT64\n 11: 8, // NC_UINT64\n 12: 0, // NC_STRING (variable length)\n};\n// Human-readable type names\nexport const TYPE_NAMES = {\n 0: 'NAT',\n 1: 'byte',\n 2: 'char',\n 3: 'short',\n 4: 'int',\n 5: 'float',\n 6: 'double',\n 7: 'ubyte',\n 8: 'ushort',\n 9: 'uint',\n 10: 'int64',\n 11: 'uint64',\n 12: 'string',\n 13: 'vlen',\n 14: 'opaque',\n 15: 'enum',\n 16: 'compound',\n};\n//# sourceMappingURL=constants.js.map","/** Canonical full-dimension selector */\nexport function all() {\n return { type: \"all\" };\n}\nexport function isAll(v) {\n return typeof v === \"object\" && v !== null && v.type === \"all\";\n}\n/**\n * Represents a dimension slice.\n * Undefined fields are resolved against the actual dimension size at read time.\n */\nexport class Slice {\n start;\n stop;\n step;\n constructor(start, stop, step) {\n this.start = start;\n this.stop = stop;\n this.step = step;\n }\n}\nexport function slice(startOrStop, stop, step) {\n if (stop === undefined) {\n return new Slice(undefined, startOrStop, undefined);\n }\n return new Slice(startOrStop, stop, step);\n}\n/**\n * Resolve a DimSelection against a concrete dimension size.\n * Accepts BigInt dimension sizes (from nc_inq_dimlen i64 reads) and coerces safely.\n * Step is always treated as positive; start/stop are swapped if out of order.\n */\nexport function resolveDim(sel, dimSizeRaw) {\n const dimSize = Number(dimSizeRaw);\n // full dimension\n if (sel === null || sel === \"all\" || isAll(sel)) {\n return { start: 0, count: dimSize, step: 1, collapsed: false };\n }\n // scalar index\n if (typeof sel === \"number\") {\n const idx = sel < 0 ? dimSize + sel : sel;\n const clamped = Math.max(0, Math.min(idx, dimSize - 1));\n return { start: clamped, count: 1, step: 1, collapsed: true };\n }\n // Slice — step is always positive\n const step = sel.step ?? 1;\n if (step <= 0)\n throw new Error(\"Slice step must be a positive integer\");\n const rawStart = sel.start ?? 0;\n const rawStop = sel.stop ?? dimSize;\n const start = Math.max(0, Math.min(rawStart < 0 ? dimSize + rawStart : rawStart, dimSize));\n const stop = Math.max(0, Math.min(rawStop < 0 ? dimSize + rawStop : rawStop, dimSize));\n // Swap if caller passed start > stop — resolve to the correct forward range\n const lo = Math.min(start, stop);\n const hi = Math.max(start, stop);\n const span = hi - lo;\n const count = span === 0 ? 0 : Math.ceil(span / step);\n return { start: lo, count, step, collapsed: false };\n}\n//# sourceMappingURL=slice.js.map","import { NC_CONSTANTS, DATA_TYPE_SIZE, CONSTANT_DTYPE_MAP } from './constants.js';\nimport { resolveDim } from \"./slice.js\";\nexport function getGroupVariables(module, ncid, groupPath) {\n const workingNcid = groupPath ? getGroupNCID(module, ncid, groupPath) : ncid;\n const variables = {};\n const varCount = getVarCount(module, workingNcid);\n for (let varid = 0; varid < varCount; varid++) {\n const nameResult = module.nc_inq_varname(workingNcid, varid);\n if (nameResult.result !== NC_CONSTANTS.NC_NOERR || !nameResult.name) {\n console.warn(`Failed to get variable name for varid ${varid} (error: ${nameResult.result})`);\n continue;\n }\n // A coordinate variable is one whose name matches a dimension.\n const isCoordinate = findDimInHierarchy(module, workingNcid, nameResult.name);\n if (isCoordinate)\n continue;\n variables[nameResult.name] = {\n id: varid,\n ncid: workingNcid // CRITICAL: Store the ncid where this variable lives!\n };\n }\n return variables;\n}\nexport function getVarCount(module, ncid) {\n const result = module.nc_inq_nvars(ncid);\n if (result.result !== NC_CONSTANTS.NC_NOERR) {\n throw new Error(`Failed to get number of variables (error: ${result.result})`);\n }\n return result.nvars || 0;\n}\nexport function getDimCount(module, ncid) {\n const result = module.nc_inq_ndims(ncid);\n if (result.result !== NC_CONSTANTS.NC_NOERR) {\n throw new Error(`Failed to get number of dimensions (error: ${result.result})`);\n }\n return result.ndims || 0;\n}\nexport function getDims(module, ncid, groupPath) {\n const workingNcid = groupPath ? getGroupNCID(module, ncid, groupPath) : ncid;\n const dimIDs = getDimIDs(module, workingNcid);\n const dims = {};\n for (const dimid of dimIDs) {\n const dim = getDim(module, workingNcid, dimid);\n dims[dim.name] = {\n size: dim.len,\n units: dim.units ?? null,\n id: dim.id\n };\n }\n return dims;\n}\nexport function getDimIDs(module, ncid, includeParents = false) {\n const result = module.nc_inq_dimids(ncid, includeParents ? 1 : 0);\n if (result.result !== NC_CONSTANTS.NC_NOERR) {\n throw new Error(`Failed to get dimension IDs (error: ${result.result})`);\n }\n return result.dimids ?? [];\n}\nfunction findCoordinateVariable(module, startNcid, name) {\n let current = startNcid;\n while (current !== null) {\n const result = module.nc_inq_varid(current, name);\n if (result.result === NC_CONSTANTS.NC_NOERR) {\n return {\n ncid: current,\n varid: result.varid\n };\n }\n current = getGroupParent(module, current);\n }\n return null;\n}\nexport function getDim(module, ncid, dimid) {\n const result = module.nc_inq_dim(ncid, dimid);\n if (result.result !== NC_CONSTANTS.NC_NOERR) {\n throw new Error(`Failed to get dim (error: ${result.result})`);\n }\n const { result: _r, ...dim } = result;\n let varID = null;\n let units = null;\n let coordNcid = null;\n // Search upward for coordinate variable\n const coord = findCoordinateVariable(module, ncid, dim.name);\n if (coord) {\n varID = coord.varid;\n coordNcid = coord.ncid;\n units = getAttributeValues(module, coordNcid, varID, \"units\");\n }\n return {\n ...dim,\n id: varID,\n units,\n coordNcid // useful for debugging\n };\n}\nexport function getAttributeValues(module, ncid, varid, attname) {\n const attInfo = module.nc_inq_att(ncid, varid, attname);\n if (attInfo.result !== NC_CONSTANTS.NC_NOERR) {\n console.warn(`Failed to get attribute info for ${attname} (error: ${attInfo.result})`);\n return null;\n }\n const attType = attInfo.type;\n if (!attType)\n throw new Error(\"Failed to allocate memory for attribute type.\");\n // Dispatch table: maps NetCDF type -> module getter\n const getterMap = {\n [NC_CONSTANTS.NC_CHAR]: module.nc_get_att_text,\n [NC_CONSTANTS.NC_SHORT]: module.nc_get_att_short,\n [NC_CONSTANTS.NC_INT]: module.nc_get_att_int,\n [NC_CONSTANTS.NC_FLOAT]: module.nc_get_att_float,\n [NC_CONSTANTS.NC_DOUBLE]: module.nc_get_att_double,\n [NC_CONSTANTS.NC_BYTE]: module.nc_get_att_schar,\n [NC_CONSTANTS.NC_UBYTE]: module.nc_get_att_uchar,\n [NC_CONSTANTS.NC_UINT]: module.nc_get_att_uint,\n [NC_CONSTANTS.NC_USHORT]: module.nc_get_att_ushort,\n [NC_CONSTANTS.NC_LONGLONG]: module.nc_get_att_longlong,\n [NC_CONSTANTS.NC_UINT64]: module.nc_get_att_ulonglong,\n [NC_CONSTANTS.NC_STRING]: module.nc_get_att_string\n };\n const getter = getterMap[attType];\n if (!getter)\n throw new Error(`Unsupported attribute type ${attType}`);\n const attValue = getter(ncid, varid, attname, attInfo.len);\n return attValue.data;\n}\nexport function getGlobalAttributes(module, ncid, groupPath) {\n const workingNcid = groupPath ? getGroupNCID(module, ncid, groupPath) : ncid;\n const attributes = {};\n const nattsResult = module.nc_inq_natts(workingNcid);\n if (nattsResult.result !== NC_CONSTANTS.NC_NOERR) {\n throw new Error(`Failed to get number of global attributes (error: ${nattsResult.result})`);\n }\n const nAtts = nattsResult.natts;\n const attNames = [];\n for (let i = 0; i < nAtts; i++) {\n const name = getAttributeName(module, workingNcid, NC_CONSTANTS.NC_GLOBAL, i);\n attNames.push(name);\n }\n if (attNames.length === 0)\n return attributes;\n for (const attname of attNames) {\n if (!attname)\n continue;\n attributes[attname] = getAttributeValues(module, workingNcid, NC_CONSTANTS.NC_GLOBAL, attname);\n }\n return attributes;\n}\nexport function getAttributeName(module, ncid, varid, attId) {\n const result = module.nc_inq_attname(ncid, varid, attId);\n if (result.result !== NC_CONSTANTS.NC_NOERR) {\n throw new Error(`Failed to get attribute (error: ${result.result})`);\n }\n return result.name;\n}\nexport function getFullMetadata(module, ncid, groupPath) {\n const workingNcid = groupPath ? getGroupNCID(module, ncid, groupPath) : ncid;\n const varIds = getVarIDs(module, workingNcid);\n const metas = [];\n for (const varid of varIds) {\n const varMeta = getVariableInfo(module, workingNcid, varid);\n const { attributes, ...varDeets } = varMeta;\n metas.push({ ...varDeets, ...attributes });\n }\n return metas;\n}\nexport function getVarIDs(module, ncid) {\n const result = module.nc_inq_varids(ncid);\n if (result.result !== NC_CONSTANTS.NC_NOERR) {\n throw new Error(`Failed to get variable IDs (error: ${result.result})`);\n }\n return result.varids ?? [];\n}\nexport function getEnumType(module, ncid, xtype) {\n // Get basic enum info\n const { result: infoResult, name, baseType, baseSize, numMembers } = module.nc_inq_enum(ncid, xtype);\n if (infoResult !== NC_CONSTANTS.NC_NOERR || !name || baseType === undefined || numMembers === undefined) {\n throw new Error(`Failed to get enum info (error: ${infoResult})`);\n }\n // Get all members\n const members = [];\n for (let i = 0; i < numMembers; i++) {\n const { result, name: memberName, value } = module.nc_inq_enum_member(ncid, xtype, i, baseType);\n if (result === NC_CONSTANTS.NC_NOERR && memberName !== undefined && value !== undefined) {\n members.push({ name: memberName, value });\n }\n }\n return {\n name,\n baseType,\n baseSize: baseSize,\n numMembers,\n members\n };\n}\nexport function getTypeClass(module, ncid, xtype) {\n // Atomic types return themselves as the class\n if (xtype < 13) { // Below NC_VLEN\n return xtype;\n }\n // For user-defined types, query the class\n const { result, typeClass } = module.nc_inq_user_type(ncid, xtype);\n if (result === NC_CONSTANTS.NC_NOERR && typeClass !== undefined) {\n return typeClass;\n }\n return xtype;\n}\nfunction buildEnumDict(module, ncid, enumTypeId, enumBaseType) {\n const enumInqResult = module.nc_inq_enum(ncid, enumTypeId);\n const { result: enumResult, numMembers } = enumInqResult;\n if (enumResult !== NC_CONSTANTS.NC_NOERR || numMembers === undefined) {\n throw new Error(`Failed to get enum info (error: ${enumResult})`);\n }\n const enumDict = {};\n for (let i = 0; i < numMembers; i++) {\n const memberResult = module.nc_inq_enum_member(ncid, enumTypeId, i, enumBaseType);\n const { result: memberResultCode, name: memberName, value } = memberResult;\n if (memberResultCode === NC_CONSTANTS.NC_NOERR && memberName !== undefined && value !== undefined) {\n // Note: bigint values exceeding Number.MAX_SAFE_INTEGER will lose precision.\n // In practice enum values are small named constants so this is acceptable.\n const numValue = typeof value === 'bigint' ? Number(value) : value;\n enumDict[numValue] = memberName;\n }\n else {\n console.warn(`[buildEnumDict] Skipping member ${i}: result=${memberResultCode}, name=${memberName}, value=${value}`);\n }\n }\n return enumDict;\n}\nfunction resolveEnumContext(module, ncid, varType) {\n const typeClass = getTypeClass(module, ncid, varType);\n if (typeClass === NC_CONSTANTS.NC_VLEN ||\n typeClass === NC_CONSTANTS.NC_OPAQUE ||\n typeClass === NC_CONSTANTS.NC_COMPOUND) {\n throw new Error(`Unsupported type class: ${typeClass} (VLEN, OPAQUE, and COMPOUND not yet implemented)`);\n }\n if (typeClass !== NC_CONSTANTS.NC_ENUM) {\n return { isEnum: false, baseType: varType };\n }\n const { result, baseType } = module.nc_inq_enum(ncid, varType);\n if (result !== NC_CONSTANTS.NC_NOERR || baseType === undefined) {\n throw new Error(`Failed to get enum base type (error: ${result})`);\n }\n const enumDict = buildEnumDict(module, ncid, varType, baseType);\n return { isEnum: true, baseType, enumDict };\n}\nfunction resolveVariableType(module, ncid, varid) {\n const result = module.nc_inq_var(ncid, varid);\n if (result.result !== NC_CONSTANTS.NC_NOERR) {\n throw new Error(`Failed to get variable info (error: ${result.result})`);\n }\n const dimids = result.dimids ? Array.from(result.dimids) : [];\n const size = dimids.reduce((acc, dimid) => acc * getDim(module, ncid, dimid).len, 1);\n const nctype = result.type;\n const enumCtx = resolveEnumContext(module, ncid, nctype);\n return { nctype, size, enumCtx };\n}\nexport function getVariableInfo(module, ncid, variable, groupPath) {\n const workingNcid = groupPath ? getGroupNCID(module, ncid, groupPath) : ncid;\n const info = {};\n const isId = typeof variable === \"number\";\n let varid = variable;\n if (!isId) {\n const result = module.nc_inq_varid(workingNcid, variable);\n varid = result.varid;\n }\n const result = module.nc_inq_var(workingNcid, varid);\n if (result.result !== NC_CONSTANTS.NC_NOERR) {\n throw new Error(`Failed to get variable info (error: ${result.result})`);\n }\n const varType = result.type;\n const enumCtx = resolveEnumContext(module, workingNcid, varType);\n const actualType = enumCtx.baseType;\n const typeMultiplier = DATA_TYPE_SIZE[actualType];\n // Dim Info\n const dimids = result.dimids;\n const dims = [];\n const shape = [];\n const dimensions = [];\n let size = 1;\n if (dimids) {\n for (let i = 0; i < dimids.length; i++) {\n const dimid = dimids[i];\n const dim = getDim(module, workingNcid, dimid);\n size *= dim.len;\n dims.push(dim);\n shape.push(dim.len);\n dimensions.push(dim.name);\n }\n }\n // Attribute Info\n const attNames = [];\n if (result.natts) {\n for (let i = 0; i < result.natts; i++) {\n attNames.push(getAttributeName(module, workingNcid, varid, i));\n }\n }\n const atts = {};\n for (const attname of attNames) {\n if (!attname)\n continue;\n atts[attname] = getAttributeValues(module, workingNcid, varid, attname);\n }\n // Chunking Info\n const chunkResult = module.nc_inq_var_chunking(workingNcid, varid);\n const isChunked = chunkResult.chunking === NC_CONSTANTS.NC_CHUNKED;\n const chunks = isChunked ? chunkResult.chunkSizes : shape;\n const chunkElements = chunks.reduce((a, b) => a * b, 1);\n // Output\n info[\"name\"] = result.name;\n info[\"dtype\"] = enumCtx.isEnum ? `enum(${CONSTANT_DTYPE_MAP[actualType]})` : CONSTANT_DTYPE_MAP[actualType];\n info[\"dtype_base\"] = CONSTANT_DTYPE_MAP[actualType];\n info[\"nctype\"] = varType;\n info[\"nctype_base\"] = actualType;\n info[\"shape\"] = shape;\n info[\"dims\"] = dims;\n info[\"dimensions\"] = dimensions;\n info[\"size\"] = size;\n info[\"totalSize\"] = size * typeMultiplier;\n info[\"attributes\"] = atts;\n info[\"chunked\"] = isChunked;\n info[\"chunks\"] = chunks;\n info[\"chunkSize\"] = chunkElements * typeMultiplier;\n if (enumCtx.isEnum) {\n info[\"enum\"] = enumCtx.enumDict;\n info[\"enumType\"] = { name: result.name, baseType: actualType };\n }\n return info;\n}\n// Helper function to convert enum values to names\nfunction convertEnumValuesToNames(data, enumDict) {\n const enumNames = [];\n for (let i = 0; i < data.length; i++) {\n const value = data[i];\n const numValue = typeof value === 'bigint' ? Number(value) : Number(value);\n enumNames.push(enumDict[numValue] ?? `Unknown(${numValue})`);\n }\n return enumNames;\n}\nexport function getVariableArray(module, ncid, variable, groupPath, options) {\n const workingNcid = groupPath ? getGroupNCID(module, ncid, groupPath) : ncid;\n let varid;\n if (typeof variable === \"number\") {\n varid = variable;\n }\n else {\n const result = module.nc_inq_varid(workingNcid, variable);\n if (result.result !== NC_CONSTANTS.NC_NOERR) {\n throw new Error(`Failed to get variable id for '${variable}' (error: ${result.result})`);\n }\n varid = result.varid;\n }\n const { size: arraySize, enumCtx } = resolveVariableType(module, workingNcid, varid);\n const arrayType = enumCtx.baseType;\n const readers = {\n [NC_CONSTANTS.NC_CHAR]: (...args) => module.nc_get_var_text(...args),\n [NC_CONSTANTS.NC_BYTE]: (...args) => module.nc_get_var_schar(...args),\n [NC_CONSTANTS.NC_UBYTE]: (...args) => module.nc_get_var_uchar(...args),\n [NC_CONSTANTS.NC_SHORT]: (...args) => module.nc_get_var_short(...args),\n [NC_CONSTANTS.NC_USHORT]: (...args) => module.nc_get_var_ushort(...args),\n [NC_CONSTANTS.NC_INT]: (...args) => module.nc_get_var_int(...args),\n [NC_CONSTANTS.NC_UINT]: (...args) => module.nc_get_var_uint(...args),\n [NC_CONSTANTS.NC_FLOAT]: (...args) => module.nc_get_var_float(...args),\n [NC_CONSTANTS.NC_DOUBLE]: (...args) => module.nc_get_var_double(...args),\n [NC_CONSTANTS.NC_INT64]: (...args) => module.nc_get_var_longlong(...args),\n [NC_CONSTANTS.NC_LONGLONG]: (...args) => module.nc_get_var_longlong(...args),\n [NC_CONSTANTS.NC_UINT64]: (...args) => module.nc_get_var_ulonglong(...args),\n [NC_CONSTANTS.NC_ULONGLONG]: (...args) => module.nc_get_var_ulonglong(...args),\n [NC_CONSTANTS.NC_STRING]: (...args) => module.nc_get_var_string(...args),\n };\n let arrayData;\n if (enumCtx.isEnum) {\n arrayData = module.nc_get_var_generic(workingNcid, varid, arraySize, arrayType);\n }\n else {\n const reader = readers[arrayType];\n if (!reader) {\n console.warn(`Unknown NetCDF type ${arrayType}, falling back to double`);\n arrayData = module.nc_get_var_double(workingNcid, varid, arraySize);\n }\n else {\n arrayData = reader(workingNcid, varid, arraySize);\n }\n }\n if (arrayData.result !== NC_CONSTANTS.NC_NOERR) {\n throw new Error(`Failed to read array data (error: ${arrayData.result})`);\n }\n if (!arrayData.data) {\n throw new Error(\"nc_get_var returned no data\");\n }\n if (enumCtx.isEnum && options?.convertEnumsToNames && enumCtx.enumDict) {\n return convertEnumValuesToNames(arrayData.data, enumCtx.enumDict);\n }\n return arrayData.data;\n}\nexport function getSlicedVariableArray(module, ncid, variable, start, count, groupPath, options) {\n const workingNcid = groupPath ? getGroupNCID(module, ncid, groupPath) : ncid;\n let varid;\n if (typeof variable === \"number\") {\n varid = variable;\n }\n else {\n const result = module.nc_inq_varid(workingNcid, variable);\n if (result.result !== NC_CONSTANTS.NC_NOERR) {\n throw new Error(`Failed to get variable id for '${variable}' (error: ${result.result})`);\n }\n varid = result.varid;\n }\n const { enumCtx } = resolveVariableType(module, workingNcid, varid);\n const arrayType = enumCtx.baseType;\n const readers = {\n [NC_CONSTANTS.NC_BYTE]: (...args) => module.nc_get_vara_schar(...args),\n [NC_CONSTANTS.NC_UBYTE]: (...args) => module.nc_get_vara_uchar(...args),\n [NC_CONSTANTS.NC_SHORT]: (...args) => module.nc_get_vara_short(...args),\n [NC_CONSTANTS.NC_USHORT]: (...args) => module.nc_get_vara_ushort(...args),\n [NC_CONSTANTS.NC_INT]: (...args) => module.nc_get_vara_int(...args),\n [NC_CONSTANTS.NC_UINT]: (...args) => module.nc_get_vara_uint(...args),\n [NC_CONSTANTS.NC_FLOAT]: (...args) => module.nc_get_vara_float(...args),\n [NC_CONSTANTS.NC_DOUBLE]: (...args) => module.nc_get_vara_double(...args),\n [NC_CONSTANTS.NC_INT64]: (...args) => module.nc_get_vara_longlong(...args),\n [NC_CONSTANTS.NC_UINT64]: (...args) => module.nc_get_vara_ulonglong(...args),\n [NC_CONSTANTS.NC_STRING]: (...args) => module.nc_get_vara_string(...args),\n };\n let arrayData;\n if (enumCtx.isEnum) {\n arrayData = module.nc_get_vara_generic(workingNcid, varid, start, count, arrayType);\n }\n else {\n const reader = readers[arrayType];\n if (!reader) {\n console.warn(`Unknown NetCDF type ${arrayType}, falling back to double`);\n arrayData = module.nc_get_vara_double(workingNcid, varid, start, count);\n }\n else {\n arrayData = reader(workingNcid, varid, start, count);\n }\n }\n if (arrayData.result !== NC_CONSTANTS.NC_NOERR) {\n throw new Error(`Failed to read sliced array data (error: ${arrayData.result})`);\n }\n if (!arrayData.data) {\n throw new Error(\"nc_get_vara returned no data\");\n }\n if (enumCtx.isEnum && options?.convertEnumsToNames && enumCtx.enumDict) {\n return convertEnumValuesToNames(arrayData.data, enumCtx.enumDict);\n }\n return arrayData.data;\n}\nexport function getVariableArrayWithSelection(module, ncid, variable, selection, groupPath, options) {\n const workingNcid = groupPath ? getGroupNCID(module, ncid, groupPath) : ncid;\n // Resolve varid\n let varid;\n if (typeof variable === \"number\") {\n varid = variable;\n }\n else {\n const r = module.nc_inq_varid(workingNcid, variable);\n if (r.result !== NC_CONSTANTS.NC_NOERR) {\n throw new Error(`Failed to get variable id for '${variable}' (error: ${r.result})`);\n }\n varid = r.varid;\n }\n // Query variable dimensions\n const varInfo = module.nc_inq_var(workingNcid, varid);\n if (varInfo.result !== NC_CONSTANTS.NC_NOERR) {\n throw new Error(`Failed to query variable info (error: ${varInfo.result})`);\n }\n const dimids = Array.from(varInfo.dimids ?? []);\n const ndim = dimids.length;\n if (selection.length !== ndim) {\n throw new Error(`Selection has ${selection.length} dimension(s) but variable has ${ndim}`);\n }\n // Fetch each dimension's size — resolveDim handles BigInt safely\n const dimSizes = dimids.map((dimid) => {\n const r = module.nc_inq_dimlen(workingNcid, dimid);\n if (r.result !== NC_CONSTANTS.NC_NOERR) {\n throw new Error(`Failed to query dim length for dimid ${dimid} (error: ${r.result})`);\n }\n return r.len;\n });\n // Resolve each selection\n const resolved = selection.map((sel, i) => resolveDim(sel, dimSizes[i]));\n const start = resolved.map(d => d.start);\n const count = resolved.map(d => d.count);\n const stride = resolved.map(d => d.step);\n // Validate parameters against dimension sizes\n for (let i = 0; i < start.length; i++) {\n const dimSize = Number(dimSizes[i]);\n if (start[i] < 0 || start[i] >= dimSize) {\n throw new Error(`Invalid start[${i}] = ${start[i]} for dimension size ${dimSize}`);\n }\n if (count[i] === 0)\n continue; // valid empty slice — skip further checks\n const lastIdx = start[i] + (count[i] - 1) * stride[i];\n if (lastIdx >= dimSize) {\n throw new Error(`Stride read would exceed dimension bounds: start[${i}]=${start[i]}, ` +\n `count[${i}]=${count[i]}, stride[${i}]=${stride[i]}, last_idx=${lastIdx}, dimSize=${dimSize}`);\n }\n }\n // Guard against integer overflow in WASM — total elements must fit in a signed 32-bit int\n // not sure how well is this, ~2 billion elements, will perform in JS but may cause issues in WASM memory allocation or indexing\n const totalElements = count.reduce((acc, c) => acc * c, 1);\n if (totalElements > 2 ** 31 - 1) {\n throw new Error(`Selection would read ${totalElements} elements, exceeding the safe limit of 2^31 - 1`);\n }\n // Resolve variable type — use workingNcid so enum lookup is in the right group\n const { enumCtx } = resolveVariableType(module, workingNcid, varid);\n const arrayType = enumCtx.baseType;\n // Return appropriately typed empty array if any dimension has count 0\n if (count.some(c => c === 0)) {\n const emptyReaders = {\n [NC_CONSTANTS.NC_BYTE]: () => new Int8Array(0),\n [NC_CONSTANTS.NC_UBYTE]: () => new Uint8Array(0),\n [NC_CONSTANTS.NC_SHORT]: () => new Int16Array(0),\n [NC_CONSTANTS.NC_USHORT]: () => new Uint16Array(0),\n [NC_CONSTANTS.NC_INT]: () => new Int32Array(0),\n [NC_CONSTANTS.NC_UINT]: () => new Uint32Array(0),\n [NC_CONSTANTS.NC_FLOAT]: () => new Float32Array(0),\n [NC_CONSTANTS.NC_DOUBLE]: () => new Float64Array(0),\n [NC_CONSTANTS.NC_INT64]: () => new BigInt64Array(0),\n [NC_CONSTANTS.NC_LONGLONG]: () => new BigInt64Array(0),\n [NC_CONSTANTS.NC_UINT64]: () => new BigUint64Array(0),\n [NC_CONSTANTS.NC_ULONGLONG]: () => new BigUint64Array(0),\n [NC_CONSTANTS.NC_STRING]: () => [],\n };\n return (emptyReaders[arrayType] ?? (() => new Float64Array(0)))();\n }\n let arrayData;\n if (enumCtx.isEnum) {\n arrayData = module.nc_get_vars_generic(workingNcid, varid, start, count, stride, arrayType);\n }\n else {\n const readers = {\n [NC_CONSTANTS.NC_CHAR]: (...args) => module.nc_get_vars_text(...args),\n [NC_CONSTANTS.NC_BYTE]: (...args) => module.nc_get_vars_schar(...args),\n [NC_CONSTANTS.NC_UBYTE]: (...args) => module.nc_get_vars_uchar(...args),\n [NC_CONSTANTS.NC_SHORT]: (...args) => module.nc_get_vars_short(...args),\n [NC_CONSTANTS.NC_USHORT]: (...args) => module.nc_get_vars_ushort(...args),\n [NC_CONSTANTS.NC_INT]: (...args) => module.nc_get_vars_int(...args),\n [NC_CONSTANTS.NC_UINT]: (...args) => module.nc_get_vars_uint(...args),\n [NC_CONSTANTS.NC_FLOAT]: (...args) => module.nc_get_vars_float(...args),\n [NC_CONSTANTS.NC_DOUBLE]: (...args) => module.nc_get_vars_double(...args),\n [NC_CONSTANTS.NC_INT64]: (...args) => module.nc_get_vars_longlong(...args),\n [NC_CONSTANTS.NC_LONGLONG]: (...args) => module.nc_get_vars_longlong(...args),\n [NC_CONSTANTS.NC_UINT64]: (...args) => module.nc_get_vars_ulonglong(...args),\n [NC_CONSTANTS.NC_ULONGLONG]: (...args) => module.nc_get_vars_ulonglong(...args),\n [NC_CONSTANTS.NC_STRING]: (...args) => module.nc_get_vars_string(...args),\n };\n const reader = readers[arrayType];\n if (!reader) {\n arrayData = module.nc_get_vars_double(workingNcid, varid, start, count, stride);\n }\n else {\n arrayData = reader(workingNcid, varid, start, count, stride);\n }\n }\n if (arrayData.result !== NC_CONSTANTS.NC_NOERR) {\n throw new Error(`Failed to read array data (error: ${arrayData.result})`);\n }\n if (!arrayData.data) {\n throw new Error(\"nc_get_vars returned no data\");\n }\n let result = arrayData.data;\n if (enumCtx.isEnum && options?.convertEnumsToNames && enumCtx.enumDict) {\n result = convertEnumValuesToNames(result, enumCtx.enumDict);\n }\n return result;\n}\n//---- Group Functions ----//\n/**\n * Get group ncid by path (supports nested groups)\n * Uses nc_inq_grp_full_ncid for absolute paths and manual traversal for relative paths\n * @param module - NetCDF4 module\n * @param ncid - Current ncid (can be root or any group)\n * @param groupPath - Can be absolute (\"/group1/subgroup\") or relative (\"subgroup\" or \"group1/subgroup\")\n * @returns The ncid of the requested group\n */\nexport function getGroupNCID(module, ncid, groupPath) {\n // Optimization: if path is root, return the ncid\n if (groupPath === '/' || groupPath === '') {\n return ncid;\n }\n // Try using nc_inq_grp_full_ncid for absolute paths (more efficient)\n if (groupPath.startsWith('/')) {\n const result = module.nc_inq_grp_full_ncid(ncid, groupPath);\n if (result.result === NC_CONSTANTS.NC_NOERR) {\n return result.grp_ncid;\n }\n // Get current path for better error message\n const currentPath = getGroupPath(module, ncid);\n throw new Error(`Failed to find group '${groupPath}' from '${currentPath}' (error: ${result.result})`);\n }\n // Manual traversal for relative paths\n const parts = groupPath.split('/').filter(p => p.length > 0);\n let currentNcid = ncid;\n for (const part of parts) {\n const result = module.nc_inq_grp_ncid(currentNcid, part);\n if (result.result !== NC_CONSTANTS.NC_NOERR) {\n const currentPath = getGroupPath(module, currentNcid);\n throw new Error(`Failed to get group ncid for '${part}' in path '${groupPath}' from '${currentPath}' (error: ${result.result})`);\n }\n currentNcid = result.grp_ncid;\n }\n return currentNcid;\n}\n/**\n * Alias for getGroupNCID (matches nc_inq_ncid API)\n * @param module - NetCDF4 module\n * @param ncid - Current ncid\n * @param groupName - Group name or path\n * @returns The ncid of the requested group\n */\nexport const getNCID = getGroupNCID;\n/**\n * Get immediate child groups (non-recursive)\n * @param module - NetCDF4 module\n * @param ncid - Group ncid to query\n * @returns Object mapping group names to their ncids\n */\nexport function getGroups(module, ncid) {\n const result = module.nc_inq_grps(ncid);\n if (result.result !== NC_CONSTANTS.NC_NOERR) {\n throw new Error(`Failed to get groups (error: ${result.result})`);\n }\n const groups = {};\n const grpids = result.grpids || [];\n for (const grpid of grpids) {\n const nameResult = module.nc_inq_grpname(grpid);\n if (nameResult.result === NC_CONSTANTS.NC_NOERR && nameResult.name) {\n groups[nameResult.name] = grpid;\n }\n }\n return groups;\n}\n/**\n * Get all groups recursively (returns nested structure)\n * @param module - NetCDF4 module\n * @param ncid - Group ncid to start from (usually root)\n * @returns Nested object structure with group names, ncids, and subgroups\n */\nexport function getGroupsRecursive(module, ncid) {\n const result = module.nc_inq_grps(ncid);\n if (result.result !== NC_CONSTANTS.NC_NOERR) {\n throw new Error(`Failed to get groups (error: ${result.result})`);\n }\n const groups = {};\n const grpids = result.grpids || [];\n for (const grpid of grpids) {\n const nameResult = module.nc_inq_grpname(grpid);\n if (nameResult.result === NC_CONSTANTS.NC_NOERR && nameResult.name) {\n groups[nameResult.name] = {\n ncid: grpid,\n subgroups: getGroupsRecursive(module, grpid) // Recursive call\n };\n }\n }\n return groups;\n}\n/**\n * Get the name of a group\n * @param module - NetCDF4 module\n * @param ncid - Group ncid\n * @returns Group name\n */\nexport function getGroupName(module, ncid) {\n const result = module.nc_inq_grpname(ncid);\n if (result.result !== NC_CONSTANTS.NC_NOERR) {\n throw new Error(`Failed to get group name (error: ${result.result})`);\n }\n return result.name || '';\n}\n/**\n * Get the full absolute path of a group\n * Uses nc_inq_grpname_full for efficient path retrieval\n * @param module - NetCDF4 module\n * @param ncid - Group ncid\n * @returns Full path like \"/group1/subgroup\"\n */\nexport function getGroupPath(module, ncid) {\n // Use nc_inq_grpname_full to get the complete path efficiently\n const result = module.nc_inq_grpname_full(ncid);\n if (result.result !== NC_CONSTANTS.NC_NOERR) {\n throw new Error(`Failed to get group full name (error: ${result.result})`);\n }\n return result.full_name || '/';\n}\n/**\n * Get the length of a group's full path name\n * @param module - NetCDF4 module\n * @param ncid - Group ncid\n * @returns Length of the full group path name\n */\nexport function getGroupPathLength(module, ncid) {\n const result = module.nc_inq_grpname_len(ncid);\n if (result.result !== NC_CONSTANTS.NC_NOERR) {\n throw new Error(`Failed to get group name length (error: ${result.result})`);\n }\n return result.lenp || 0;\n}\n/**\n * Get the parent group ncid\n * @param module - NetCDF4 module\n * @param ncid - Group ncid\n * @returns Parent group ncid, or null if this is the root group\n */\nexport function getGroupParent(module, ncid) {\n const result = module.nc_inq_grp_parent(ncid);\n if (result.result !== NC_CONSTANTS.NC_NOERR) {\n return null; // No parent (at root)\n }\n return result.parent_ncid;\n}\nfunction findDimInHierarchy(module, startNcid, name) {\n let current = startNcid;\n while (current !== null) {\n const result = module.nc_inq_dimid(current, name);\n if (result.result === NC_CONSTANTS.NC_NOERR) {\n return true;\n }\n current = getGroupParent(module, current);\n }\n return false;\n}\n/**\n * Get complete hierarchy: groups + their variables, dimensions, and attributes recursively\n * This is the unified method that should be used for exploring the file structure\n * @param module - NetCDF4 module\n * @param ncid - Group ncid to start from\n * @param groupPath - Optional path to a specific starting group\n * @param includeParentDims - Whether to include parent dimensions in each group (default: false)\n * @returns Complete hierarchical structure\n */\nexport function getCompleteHierarchy(module, ncid, groupPath, includeParentDims = false) {\n const workingNcid = groupPath ? getGroupNCID(module, ncid, groupPath) : ncid;\n // Get variables at this level (now includes ncid)\n const variables = getGroupVariables(module, workingNcid);\n // Get dimensions at this level\n const dimensions = getDims(module, workingNcid);\n // If includeParentDims is true, also get parent dimensions\n if (includeParentDims) {\n const result = module.nc_inq_dimids(workingNcid, 1);\n if (result.result === NC_CONSTANTS.NC_NOERR && result.dimids) {\n const parentDims = {};\n for (const dimid of result.dimids) {\n const dim = getDim(module, workingNcid, dimid);\n // Only add if not already in dimensions (avoid duplicates)\n if (!dimensions[dim.name]) {\n parentDims[dim.name] = {\n size: dim.len,\n units: dim.units ?? null,\n id: dim.id,\n inherited: true\n };\n }\n }\n // Merge parent dimensions\n Object.assign(dimensions, parentDims);\n }\n }\n // Get attributes at this level\n const attributes = getGlobalAttributes(module, workingNcid);\n // Get the full path for this group\n const fullPath = getGroupPath(module, workingNcid);\n // Get subgroups and recurse\n const groupsResult = module.nc_inq_grps(workingNcid);\n const subgroups = {};\n if (groupsResult.result === NC_CONSTANTS.NC_NOERR && groupsResult.grpids) {\n for (const grpid of groupsResult.grpids) {\n const nameResult = module.nc_inq_grpname(grpid);\n if (nameResult.result === NC_CONSTANTS.NC_NOERR && nameResult.name) {\n // Recursively get the complete hierarchy for this subgroup\n subgroups[nameResult.name] = getCompleteHierarchy(module, grpid, undefined, includeParentDims);\n }\n }\n }\n return {\n ncid: workingNcid, // Include the ncid at this level\n path: fullPath, // Include the full path\n variables,\n dimensions,\n attributes,\n groups: subgroups\n };\n}\n/**\n * Get all variables recursively from all groups\n * Returns a flat structure with full paths as keys\n * @param module - NetCDF4 module\n * @param ncid - Group ncid to start from\n * @param currentPath - Current path (used internally for recursion)\n * @returns Flat dictionary with full variable paths\n */\nexport function getVariables(module, ncid, currentPath) {\n const allVars = {};\n // Get the actual path if not provided\n const path = currentPath || getGroupPath(module, ncid);\n // Get variables at current level\n const vars = getGroupVariables(module, ncid);\n for (const [name, varData] of Object.entries(vars)) {\n const fullPath = path === '/' ? name : `${path}/${name}`;\n allVars[fullPath] = { ...varData, path, ncid };\n }\n // Recurse into subgroups\n const groupsResult = module.nc_inq_grps(ncid);\n if (groupsResult.result === NC_CONSTANTS.NC_NOERR && groupsResult.grpids) {\n for (const grpid of groupsResult.grpids) {\n const nameResult = module.nc_inq_grpname(grpid);\n if (nameResult.result === NC_CONSTANTS.NC_NOERR && nameResult.name) {\n const newPath = path === '/' ? nameResult.name : `${path}/${nameResult.name}`;\n const subVars = getVariables(module, grpid, newPath);\n Object.assign(allVars, subVars);\n }\n }\n }\n return allVars;\n}\n//# sourceMappingURL=netcdf-getters.js.map","// WASM module loading and wrapping functionality\nimport { NC_CONSTANTS, DATA_TYPE_SIZE } from './constants.js';\nconst NC_MAX_NAME = 256;\nconst NC_MAX_DIMS = 1024;\nconst NC_MAX_VARS = 8192;\nfunction stridedLength(count) {\n return count.reduce((acc, c) => acc * c, 1);\n}\n// Helper: validates that the total byte allocation won't overflow a WASM32 uint32.\n// Throws a RangeError if the allocation would be unsafe.\nfunction safeByteLength(totalLength, elementSize) {\n const byteLength = totalLength * elementSize;\n if (byteLength > 0xFFFFFFFF) {\n throw new RangeError(`Allocation size ${byteLength} exceeds WASM32 heap limit (0xFFFFFFFF). ` +\n `Requested ${totalLength} elements of ${elementSize} bytes each.`);\n }\n return byteLength;\n}\nexport class WasmModuleLoader {\n static async loadModule(options = {}) {\n try {\n if (typeof window === 'undefined') {\n throw new Error('NetCDF4-WASM only works in browser environments.');\n }\n // Dynamically import the generated netcdf4-wasm.js module\n const netcdf4Module = await import('./netcdf4-wasm.js');\n const createNetCDF4Module = netcdf4Module.default;\n // Use the imported module factory\n const rawModule = await createNetCDF4Module({\n locateFile: (file) => {\n if (file.endsWith('.wasm')) {\n return options.wasmPath || '/wasm/netcdf4-wasm.wasm';\n }\n return file;\n }\n });\n // Wrap the module with high-level functions\n return WasmModuleLoader.wrapModule(rawModule);\n }\n catch (error) {\n throw new Error(`Failed to load NetCDF4 WASM module: ${error}`);\n }\n }\n static wrapModule(module) {\n // Create wrappers for NetCDF functions\n // https://docs.unidata.ucar.edu/netcdf-c/current/group__variables.html#details\n const nc_open_wrapper = module.cwrap('nc_open_wrapper', 'number', ['string', 'number', 'number']);\n const nc_close_wrapper = module.cwrap('nc_close_wrapper', 'number', ['number']);\n const nc_create_wrapper = module.cwrap('nc_create_wrapper', 'number', ['string', 'number', 'number']);\n const nc_def_dim_wrapper = module.cwrap('nc_def_dim_wrapper', 'number', ['number', 'string', 'number', 'number']);\n const nc_def_var_wrapper = module.cwrap('nc_def_var_wrapper', 'number', ['number', 'string', 'number', 'number', 'number', 'number']);\n const nc_put_var_double_wrapper = module.cwrap('nc_put_var_double_wrapper', 'number', ['number', 'number', 'number']);\n // const nc_get_var_double_wrapper = module.cwrap('nc_get_var_double_wrapper', 'number', ['number', 'number', 'number']);\n const nc_enddef_wrapper = module.cwrap('nc_enddef_wrapper', 'number', ['number']);\n // Dimension inquiry wrappers\n const nc_inq_ndims_wrapper = module.cwrap('nc_inq_ndims_wrapper', 'number', ['number', 'number']);\n const nc_inq_unlimdim_wrapper = module.cwrap('nc_inq_unlimdim_wrapper', 'number', ['number', 'number']);\n const nc_inq_dimids_wrapper = module.cwrap('nc_inq_dimids_wrapper', 'number', ['number', 'number', 'number', 'number']);\n const nc_inq_dim_wrapper = module.cwrap('nc_inq_dim_wrapper', 'number', ['number', 'number', 'number', 'number']);\n const nc_inq_dimid_wrapper = module.cwrap('nc_inq_dimid_wrapper', 'number', ['number', 'string', 'number']);\n const nc_inq_dimlen_wrapper = module.cwrap('nc_inq_dimlen_wrapper', 'number', ['number', 'number', 'number']);\n const nc_inq_dimname_wrapper = module.cwrap('nc_inq_dimname_wrapper', 'number', ['number', 'number', 'number']);\n // Variable inquiry wrappers\n const nc_inq_nvars_wrapper = module.cwrap('nc_inq_nvars_wrapper', 'number', ['number', 'number']);\n const nc_inq_varids_wrapper = module.cwrap('nc_inq_varids_wrapper', 'number', ['number', 'number', 'number']);\n const nc_inq_varid_wrapper = module.cwrap('nc_inq_varid_wrapper', 'number', ['number', 'string', 'number']);\n const nc_inq_var_wrapper = module.cwrap('nc_inq_var_wrapper', 'number', [\n 'number', 'number', // ncid, varid\n 'number', // name pointer\n 'number', 'number', 'number', 'number' // typep, ndimsp, dimidsp, nattsp\n ]);\n // Variable inquiry wrappers\n const nc_inq_varname_wrapper = module.cwrap('nc_inq_varname_wrapper', 'number', ['number', 'number', 'number']);\n const nc_inq_vartype_wrapper = module.cwrap('nc_inq_vartype_wrapper', 'number', ['number', 'number', 'number']);\n const nc_inq_varndims_wrapper = module.cwrap('nc_inq_varndims_wrapper', 'number', ['number', 'number', 'number']);\n const nc_inq_vardimid_wrapper = module.cwrap('nc_inq_vardimid_wrapper', 'number', ['number', 'number', 'number']);\n const nc_inq_varnatts_wrapper = module.cwrap('nc_inq_varnatts_wrapper', 'number', ['number', 'number', 'number']);\n const nc_inq_var_chunking_wrapper = module.cwrap('nc_inq_var_chunking_wrapper', 'number', ['number', 'number', 'number', 'number']);\n // Attribute inquiry wrappers\n const nc_inq_natts_wrapper = module.cwrap('nc_inq_natts_wrapper', 'number', ['number', 'number']);\n const nc_inq_att_wrapper = module.cwrap('nc_inq_att_wrapper', 'number', ['number', 'number', 'string', 'number', 'number']);\n const nc_inq_attid_wrapper = module.cwrap('nc_inq_attid_wrapper', 'number', ['number', 'number', 'string', 'number']);\n const nc_inq_attname_wrapper = module.cwrap('nc_inq_attname_wrapper', 'number', ['number', 'number', 'number', 'number']);\n const nc_inq_atttype_wrapper = module.cwrap('nc_inq_atttype_wrapper', 'number', ['number', 'number', 'string', 'number']);\n const nc_inq_attlen_wrapper = module.cwrap('nc_inq_attlen_wrapper', 'number', ['number', 'number', 'string', 'number']);\n // Attribute getters\n const nc_get_att_text_wrapper = module.cwrap('nc_get_att_text_wrapper', 'number', ['number', 'number', 'string', 'number']);\n const nc_get_att_short_wrapper = module.cwrap('nc_get_att_short_wrapper', 'number', ['number', 'number', 'string', 'number']);\n const nc_get_att_int_wrapper = module.cwrap('nc_get_att_int_wrapper', 'number', ['number', 'number', 'string', 'number']);\n const nc_get_att_float_wrapper = module.cwrap('nc_get_att_float_wrapper', 'number', ['number', 'number', 'string', 'number']);\n const nc_get_att_double_wrapper = module.cwrap('nc_get_att_double_wrapper', 'number', ['number', 'number', 'string', 'number']);\n const nc_get_att_longlong_wrapper = module.cwrap('nc_get_att_longlong_wrapper', 'number', ['number', 'number', 'string', 'number']);\n const nc_get_att_string_wrapper = module.cwrap('nc_get_att_string_wrapper', 'number', ['number', 'number', 'string', 'number']);\n const nc_free_string_wrapper = module.cwrap('nc_free_string_wrapper', 'number', ['number', 'number']);\n const nc_get_att_schar_wrapper = module.cwrap('nc_get_att_schar_wrapper', 'number', ['number', 'number', 'string', 'number']);\n // 8-bit unsigned\n const nc_get_att_uchar_wrapper = module.cwrap('nc_get_att_uchar_wrapper', 'number', ['number', 'number', 'string', 'number']);\n // 16-bit unsigned\n const nc_get_att_ushort_wrapper = module.cwrap('nc_get_att_ushort_wrapper', 'number', ['number', 'number', 'string', 'number']);\n // 32-bit unsigned\n const nc_get_att_uint_wrapper = module.cwrap('nc_get_att_uint_wrapper', 'number', ['number', 'number', 'string', 'number']);\n // 64-bit unsigned\n const nc_get_att_ulonglong_wrapper = module.cwrap('nc_get_att_ulonglong_wrapper', 'number', ['number', 'number', 'string', 'number']);\n // Variable getters\n const nc_get_vara_short_wrapper = module.cwrap('nc_get_vara_short_wrapper', 'number', ['number', 'number', 'number', 'number', 'number']);\n const nc_get_vara_int_wrapper = module.cwrap('nc_get_vara_int_wrapper', 'number', ['number', 'number', 'number', 'number', 'number']);\n const nc_get_vara_float_wrapper = module.cwrap('nc_get_vara_float_wrapper', 'number', ['number', 'number', 'number', 'number', 'number']);\n const nc_get_vara_double_wrapper = module.cwrap('nc_get_vara_double_wrapper', 'number', ['number', 'number', 'number', 'number', 'number']);\n const nc_get_vara_longlong_wrapper = module.cwrap('nc_get_vara_longlong_wrapper', 'number', ['number', 'number', 'number', 'number', 'number']);\n const nc_get_vara_schar_wrapper = module.cwrap('nc_get_vara_schar_wrapper', 'number', ['number', 'number', 'number', 'number', 'number']);\n const nc_get_vara_uchar_wrapper = module.cwrap('nc_get_vara_uchar_wrapper', 'number', ['number', 'number', 'number', 'number', 'number']);\n const nc_get_vara_ushort_wrapper = module.cwrap('nc_get_vara_ushort_wrapper', 'number', ['number', 'number', 'number', 'number', 'number']);\n const nc_get_vara_uint_wrapper = module.cwrap('nc_get_vara_uint_wrapper', 'number', ['number', 'number', 'number', 'number', 'number']);\n const nc_get_vara_ulonglong_wrapper = module.cwrap('nc_get_vara_ulonglong_wrapper', 'number', ['number', 'number', 'number', 'number', 'number']);\n const nc_get_vara_string_wrapper = module.cwrap('nc_get_vara_string_wrapper', 'number', ['number', 'number', 'number', 'number', 'number']);\n const nc_get_var_text_wrapper = module.cwrap('nc_get_var_text_wrapper', 'number', ['number', 'number', 'number']);\n const nc_get_var_short_wrapper = module.cwrap('nc_get_var_short_wrapper', 'number', ['number', 'number', 'number']);\n const nc_get_var_int_wrapper = module.cwrap('nc_get_var_int_wrapper', 'number', ['number', 'number', 'number']);\n const nc_get_var_longlong_wrapper = module.cwrap('nc_get_var_longlong_wrapper', 'number', ['number', 'number', 'number']);\n const nc_get_var_float_wrapper = module.cwrap('nc_get_var_float_wrapper', 'number', ['number', 'number', 'number']);\n const nc_get_var_double_wrapper = module.cwrap('nc_get_var_double_wrapper', 'number', ['number', 'number', 'number']);\n const nc_get_var_schar_wrapper = module.cwrap('nc_get_var_schar_wrapper', 'number', ['number', 'number', 'number']);\n const nc_get_var_uchar_wrapper = module.cwrap('nc_get_var_uchar_wrapper', 'number', ['number', 'number', 'number']);\n const nc_get_var_ushort_wrapper = module.cwrap('nc_get_var_ushort_wrapper', 'number', ['number', 'number', 'number']);\n const nc_get_var_uint_wrapper = module.cwrap('nc_get_var_uint_wrapper', 'number', ['number', 'number', 'number']);\n const nc_get_var_ulonglong_wrapper = module.cwrap('nc_get_var_ulonglong_wrapper', 'number', ['number', 'number', 'number']);\n const nc_get_var_string_wrapper = module.cwrap('nc_get_var_string_wrapper', 'number', ['number', 'number', 'number']);\n // Stride inquiry wrappers\n const nc_get_vars_schar_wrapper = module.cwrap('nc_get_vars_schar_wrapper', 'number', ['number', 'number', 'number', 'number', 'number', 'number']);\n const nc_get_vars_uchar_wrapper = module.cwrap('nc_get_vars_uchar_wrapper', 'number', ['number', 'number', 'number', 'number', 'number', 'number']);\n const nc_get_vars_short_wrapper = module.cwrap('nc_get_vars_short_wrapper', 'number', ['number', 'number', 'number', 'number', 'number', 'number']);\n const nc_get_vars_ushort_wrapper = module.cwrap('nc_get_vars_ushort_wrapper', 'number', ['number', 'number', 'number', 'number', 'number', 'number']);\n const nc_get_vars_int_wrapper = module.cwrap('nc_get_vars_int_wrapper', 'number', ['number', 'number', 'number', 'number', 'number', 'number']);\n const nc_get_vars_uint_wrapper = module.cwrap('nc_get_vars_uint_wrapper', 'number', ['number', 'number', 'number', 'number', 'number', 'number']);\n const nc_get_vars_float_wrapper = module.cwrap('nc_get_vars_float_wrapper', 'number', ['number', 'number', 'number', 'number', 'number', 'number']);\n const nc_get_vars_double_wrapper = module.cwrap('nc_get_vars_double_wrapper', 'number', ['number', 'number', 'number', 'number', 'number', 'number']);\n const nc_get_vars_longlong_wrapper = module.cwrap('nc_get_vars_longlong_wrapper', 'number', ['number', 'number', 'number', 'number', 'number', 'number']);\n const nc_get_vars_ulonglong_wrapper = module.cwrap('nc_get_vars_ulonglong_wrapper', 'number', ['number', 'number', 'number', 'number', 'number', 'number']);\n const nc_get_vars_string_wrapper = module.cwrap('nc_get_vars_string_wrapper', 'number', ['number', 'number', 'number', 'number', 'number', 'number']);\n const nc_get_vars_wrapper = module.cwrap('nc_get_vars_wrapper', 'number', ['number', 'number', 'number', 'number', 'number', 'number']);\n const nc_get_vars_text_wrapper = module.cwrap('nc_get_vars_text_wrapper', 'number', ['number', 'number', 'number', 'number', 'number', 'number']);\n // const nc_get_vars_as_type_wrapper = module.cwrap('nc_get_vars_as_type_wrapper', 'number', ['number','number','number','number','number','number','number']);\n // Group inquiry wrappers\n const nc_inq_grps_wrapper = module.cwrap('nc_inq_grps_wrapper', 'number', ['number', 'number', 'number']);\n const nc_inq_grp_ncid_wrapper = module.cwrap('nc_inq_grp_ncid_wrapper', 'number', ['number', 'string', 'number']);\n const nc_inq_grpname_wrapper = module.cwrap('nc_inq_grpname_wrapper', 'number', ['number', 'number']);\n const nc_inq_grp_parent_wrapper = module.cwrap('nc_inq_grp_parent_wrapper', 'number', ['number', 'number']);\n const nc_inq_grp_full_ncid_wrapper = module.cwrap('nc_inq_grp_full_ncid_wrapper', 'number', ['number', 'string', 'number']);\n const nc_inq_grpname_full_wrapper = module.cwrap('nc_inq_grpname_full_wrapper', 'number', ['number', 'number', 'number']);\n const nc_inq_grpname_len_wrapper = module.cwrap('nc_inq_grpname_len_wrapper', 'number', ['number', 'number']);\n // enum wrappers\n const nc_inq_typeids_wrapper = module.cwrap('nc_inq_typeids_wrapper', 'number', ['number', 'number', 'number']);\n const nc_inq_type_wrapper = module.cwrap('nc_inq_type_wrapper', 'number', ['number', 'number', 'number', 'number']);\n const nc_inq_user_type_wrapper = module.cwrap('nc_inq_user_type_wrapper', 'number', ['number', 'number', 'number', 'number', 'number', 'number', 'number']);\n const nc_def_enum_wrapper = module.cwrap('nc_def_enum_wrapper', 'number', ['number', 'number', 'string', 'number']);\n const nc_insert_enum_wrapper = module.cwrap('nc_insert_enum_wrapper', 'number', ['number', 'number', 'string', 'number']);\n const nc_inq_enum_wrapper = module.cwrap('nc_inq_enum_wrapper', 'number', ['number', 'number', 'number', 'number', 'number', 'number']);\n const nc_inq_enum_member_wrapper = module.cwrap('nc_inq_enum_member_wrapper', 'number', ['number', 'number', 'number', 'number', 'number']);\n const nc_inq_enum_ident_wrapper = module.cwrap('nc_inq_enum_ident_wrapper', 'number', ['number', 'number', 'number', 'number']);\n // generic type inquiry wrapper\n const nc_get_var_wrapper = module.cwrap('nc_get_var_wrapper', 'number', ['number', 'number', 'number']);\n const nc_get_vara_wrapper = module.cwrap('nc_get_vara_wrapper', 'number', ['number', 'number', 'number', 'number', 'number']);\n return {\n ...module,\n nc_open: (path, mode) => {\n const ncidPtr = module._malloc(4);\n const result = nc_open_wrapper(path, mode, ncidPtr);\n const ncid = module.getValue(ncidPtr, 'i32');\n module._free(ncidPtr);\n return { result, ncid };\n },\n nc_close: (ncid) => {\n return nc_close_wrapper(ncid);\n },\n nc_create: (path, mode) => {\n const ncidPtr = module._malloc(4);\n const result = nc_create_wrapper(path, mode, ncidPtr);\n const ncid = module.getValue(ncidPtr, 'i32');\n module._free(ncidPtr);\n return { result, ncid };\n },\n // ---- Dimension Inquiry ----//\n nc_inq_ndims: (ncid) => {\n const ndimsPtr = module._malloc(4);\n const result = nc_inq_ndims_wrapper(ncid, ndimsPtr);\n const ndims = result === NC_CONSTANTS.NC_NOERR ? module.getValue(ndimsPtr, 'i32') : undefined;\n module._free(ndimsPtr);\n return { result, ndims };\n },\n nc_inq_unlimdim: (ncid) => {\n const unlimdimidPtr = module._malloc(4);\n const result = nc_inq_unlimdim_wrapper(ncid, unlimdimidPtr);\n const unlimdimid = result === NC_CONSTANTS.NC_NOERR ? module.getValue(unlimdimidPtr, 'i32') : undefined;\n module._free(unlimdimidPtr);\n return { result, unlimdimid };\n },\n nc_inq_dimids: (ncid, include_parents = 0) => {\n const ndimsPtr = module._malloc(4);\n const dimidsPtr = module._malloc(NC_MAX_DIMS * 4);\n const result = nc_inq_dimids_wrapper(ncid, ndimsPtr, dimidsPtr, include_parents);\n let ndims, dimids;\n if (result === NC_CONSTANTS.NC_NOERR) {\n ndims = module.getValue(ndimsPtr, 'i32');\n dimids = Int32Array.from({ length: ndims }, (_, i) => module.getValue(dimidsPtr + (i * 4), 'i32'));\n }\n module._free(ndimsPtr);\n module._free(dimidsPtr);\n return { result, ndims, dimids };\n },\n nc_inq_dim: (ncid, dimid) => {\n const namePtr = module._malloc(NC_MAX_NAME + 1);\n // In Emscripten wasm32 builds, size_t is 32-bit.\n // (If we ever build wasm64, this will need revisiting.)\n const lenPtr = module._malloc(4);\n const result = nc_inq_dim_wrapper(ncid, dimid, namePtr, lenPtr);\n let name, len;\n if (result === NC_CONSTANTS.NC_NOERR) {\n name = module.UTF8ToString(namePtr);\n len = module.getValue(lenPtr, 'i32') >>> 0;\n }\n module._free(namePtr);\n module._free(lenPtr);\n return { result, name, len };\n },\n nc_inq_dimid: (ncid, name) => {\n const dimidPtr = module._malloc(4);\n const result = nc_inq_dimid_wrapper(ncid, name, dimidPtr);\n const dimid = result === NC_CONSTANTS.NC_NOERR ? module.getValue(dimidPtr, 'i32') : undefined;\n module._free(dimidPtr);\n return { result, dimid };\n },\n nc_inq_dimlen: (ncid, dimid) => {\n // In Emscripten wasm32 builds, size_t is 32-bit.\n // Allocate 4 bytes and read as unsigned i32 to avoid garbage high bits.\n const lenPtr = module._malloc(4);\n const result = nc_inq_dimlen_wrapper(ncid, dimid, lenPtr);\n let len;\n if (result === NC_CONSTANTS.NC_NOERR) {\n len = module.getValue(lenPtr, 'i32') >>> 0;\n }\n module._free(lenPtr);\n return { result, len };\n },\n nc_inq_dimname: (ncid, dimid) => {\n const namePtr = module._malloc(NC_MAX_NAME + 1);\n module.HEAPU8.fill(0, namePtr, namePtr + NC_MAX_NAME + 1);\n const result = nc_inq_dimname_wrapper(ncid, dimid, namePtr);\n const name = result === NC_CONSTANTS.NC_NOERR ? module.UTF8ToString(namePtr) : undefined;\n module._free(namePtr);\n return { result, name };\n },\n //---- Variable inquiry functions ----//\n nc_inq_nvars: (ncid) => {\n const nvarsPtr = module._malloc(4);\n const result = nc_inq_nvars_wrapper(ncid, nvarsPtr);\n const nvars = result === NC_CONSTANTS.NC_NOERR ? module.getValue(nvarsPtr, 'i32') : undefined;\n module._free(nvarsPtr);\n return { result, nvars };\n },\n nc_inq_varids: (ncid) => {\n const nvarsPtr = module._malloc(4);\n const varidsPtr = module._malloc(NC_MAX_VARS * 4);\n const result = nc_inq_varids_wrapper(ncid, nvarsPtr, varidsPtr);\n let nvars, varids;\n if (result === NC_CONSTANTS.NC_NOERR) {\n nvars = module.getValue(nvarsPtr, 'i32');\n varids = Int32Array.from({ length: nvars }, (_, i) => module.getValue(varidsPtr + (i * 4), 'i32'));\n }\n module._free(nvarsPtr);\n module._free(varidsPtr);\n return { result, nvars, varids };\n },\n nc_inq_varid: (ncid, name) => {\n const varidPtr = module._malloc(4);\n const result = nc_inq_varid_wrapper(ncid, name, varidPtr);\n const varid = result === NC_CONSTANTS.NC_NOERR ? module.getValue(varidPtr, 'i32') : undefined;\n module._free(varidPtr);\n return { result, varid };\n },\n nc_inq_var: (ncid, varid) => {\n const namePtr = module._malloc(NC_MAX_NAME + 1);\n const typePtr = module._malloc(4);\n const ndimsPtr = module._malloc(4);\n const dimidsPtr = module._malloc(NC_MAX_DIMS * 4);\n const nattsPtr = module._malloc(4);\n const result = nc_inq_var_wrapper(ncid, varid, namePtr, typePtr, ndimsPtr, dimidsPtr, nattsPtr);\n let name, type, ndims, dimids, natts;\n if (result === NC_CONSTANTS.NC_NOERR) {\n name = module.UTF8ToString(namePtr);\n type = module.getValue(typePtr, 'i32');\n ndims = module.getValue(ndimsPtr, 'i32');\n natts = module.getValue(nattsPtr, 'i32');\n dimids = Int32Array.from({ length: ndims }, (_, i) => module.getValue(dimidsPtr + (i * 4), 'i32'));\n }\n module._free(namePtr);\n module._free(typePtr);\n module._free(ndimsPtr);\n module._free(dimidsPtr);\n module._free(nattsPtr);\n return { result, name, type, ndims, dimids, natts };\n },\n nc_inq_varname: (ncid, varid) => {\n const namePtr = module._malloc(NC_MAX_NAME + 1);\n const result = nc_inq_varname_wrapper(ncid, varid, namePtr);\n const name = result === NC_CONSTANTS.NC_NOERR ? module.UTF8ToString(namePtr) : undefined;\n module._free(namePtr);\n return { result, name };\n },\n nc_inq_vartype: (ncid, varid) => {\n const typePtr = module._malloc(4);\n const result = nc_inq_vartype_wrapper(ncid, varid, typePtr);\n const type = result === NC_CONSTANTS.NC_NOERR ? module.getValue(typePtr, 'i32') : undefined;\n module._free(typePtr);\n return { result, type };\n },\n nc_inq_varndims: (ncid, varid) => {\n const ndimsPtr = module._malloc(4);\n const result = nc_inq_varndims_wrapper(ncid, varid, ndimsPtr);\n const ndims = result === NC_CONSTANTS.NC_NOERR ? module.getValue(ndimsPtr, 'i32') : undefined;\n module._free(ndimsPtr);\n return { result, ndims };\n },\n nc_inq_vardimid: (ncid, varid) => {\n const ndimsPtr = module._malloc(4);\n const dimidsPtr = module._malloc(NC_MAX_DIMS * 4);\n const result = nc_inq_vardimid_wrapper(ncid, varid, dimidsPtr); // Note: this wrapper doesn't return ndims first\n // nc_inq_vardimid writes directly into dimids array; we need ndims separately or assume max\n // Better: always call nc_inq_varndims first in practice, or use nc_inq_var\n // For standalone use, we'll read up to NC_MAX_DIMS\n let dimids;\n if (result === NC_CONSTANTS.NC_NOERR) {\n // You may want to get ndims first via nc_inq_varndims for exact length\n dimids = Int32Array.from(new Int32Array(module.HEAP32.buffer, dimidsPtr, NC_MAX_DIMS));\n // Trim trailing -1 or invalid values if needed\n }\n module._free(ndimsPtr);\n module._free(dimidsPtr);\n return { result, dimids };\n },\n nc_inq_varnatts: (ncid, varid) => {\n const nattsPtr = module._malloc(4);\n const result = nc_inq_varnatts_wrapper(ncid, varid, nattsPtr);\n const natts = result === NC_CONSTANTS.NC_NOERR ? module.getValue(nattsPtr, 'i32') : undefined;\n module._free(nattsPtr);\n return { result, natts };\n },\n nc_inq_var_chunking: (ncid, varid) => {\n const chunkingPtr = module._malloc(4);\n const chunkSizesPtr = module._malloc(NC_MAX_DIMS * 4); // assuming size_t is 8 bytes\n const result = nc_inq_var_chunking_wrapper(ncid, varid, chunkingPtr, chunkSizesPtr);\n let chunking, chunkSizes;\n if (result === NC_CONSTANTS.NC_NOERR) {\n chunking = module.getValue(chunkingPtr, 'i32');\n // First, get the number of dimensions for this variable\n const ndimsPtr = module._malloc(4);\n const inqResult = nc_inq_varndims_wrapper(ncid, varid, ndimsPtr);\n let ndims = NC_MAX_DIMS; // default fallback\n if (inqResult === NC_CONSTANTS.NC_NOERR) {\n ndims = module.getValue(ndimsPtr, 'i32');\n }\n module._free(ndimsPtr);\n // Only read the actual number of dimensions\n chunkSizes = new Array(ndims);\n for (let i = 0; i < ndims; i++) {\n chunkSizes[i] = module.getValue(chunkSizesPtr + i * 4, 'i32');\n }\n }\n module._free(chunkingPtr);\n module._free(chunkSizesPtr);\n return { result, chunking, chunkSizes };\n },\n //---- Attribute inquiry functions ----//\n nc_inq_natts: (ncid) => {\n const nattsPtr = module._malloc(4);\n const result = nc_inq_natts_wrapper(ncid, nattsPtr);\n const natts = result === NC_CONSTANTS.NC_NOERR ? module.getValue(nattsPtr, 'i32') : undefined;\n module._free(nattsPtr);\n return { result, natts };\n },\n nc_inq_att: (ncid, varid, name) => {\n const typePtr = module._malloc(4);\n const lenPtr = module._malloc(8);\n const result = nc_inq_att_wrapper(ncid, varid, name, typePtr, lenPtr);\n let type, len;\n if (result === NC_CONSTANTS.NC_NOERR) {\n type = module.getValue(typePtr, 'i32');\n len = module.getValue(lenPtr, 'i32');\n }\n module._free(typePtr);\n module._free(lenPtr);\n return { result, type, len };\n },\n nc_inq_attid: (ncid, varid, name) => {\n const attnumPtr = module._malloc(4);\n const result = nc_inq_attid_wrapper(ncid, varid, name, attnumPtr);\n const attnum = result === NC_CONSTANTS.NC_NOERR ? module.getValue(attnumPtr, 'i32') : undefined;\n module._free(attnumPtr);\n return { result, attnum };\n },\n nc_inq_attname: (ncid, varid, attnum) => {\n const namePtr = module._malloc(NC_MAX_NAME + 1);\n const result = nc_inq_attname_wrapper(ncid, varid, attnum, namePtr);\n const name = result === NC_CONSTANTS.NC_NOERR ? module.UTF8ToString(namePtr) : undefined;\n module._free(namePtr);\n return { result, name };\n },\n nc_inq_atttype: (ncid, varid, name) => {\n const typePtr = module._malloc(4);\n const result = nc_inq_atttype_wrapper(ncid, varid, name, typePtr);\n const type = result === NC_CONSTANTS.NC_NOERR ? module.getValue(typePtr, 'i32') : undefined;\n module._free(typePtr);\n return { result, type };\n },\n nc_inq_attlen: (ncid, varid, name) => {\n const lenPtr = module._malloc(8);\n const result = nc_inq_attlen_wrapper(ncid, varid, name, lenPtr);\n const len = result === NC_CONSTANTS.NC_NOERR ? module.getValue(lenPtr, 'i64') : undefined;\n module._free(lenPtr);\n return { result, len };\n },\n //---- Attribute Getters ----//\n nc_get_att_text: (ncid, varid, name, length) => {\n const dataPtr = module._malloc(length + 1);\n const result = nc_get_att_text_wrapper(ncid, varid, name, dataPtr);\n module.setValue(dataPtr + length, 0, 'i8'); // Add null terminator so it doesn't read too far\n const data = result === NC_CONSTANTS.NC_NOERR\n ? module.UTF8ToString(dataPtr)\n : undefined;\n module._free(dataPtr);\n return { result, data };\n },\n nc_get_att_short: (ncid, varid, name, length) => {\n const dataPtr = module._malloc(length * 2);\n const result = nc_get_att_short_wrapper(ncid, varid, name, dataPtr);\n const data = result === NC_CONSTANTS.NC_NOERR\n ? Array.from({ length }, (_, i) => module.getValue(dataPtr + i * 2, 'i16'))\n : undefined;\n module._free(dataPtr);\n return { result, data };\n },\n nc_get_att_int: (ncid, varid, name, length) => {\n const dataPtr = module._malloc(length * 4);\n const result = nc_get_att_int_wrapper(ncid, varid, name, dataPtr);\n const data = result === NC_CONSTANTS.NC_NOERR\n ? Array.from({ length }, (_, i) => module.getValue(dataPtr + i * 4, 'i32'))\n : undefined;\n module._free(dataPtr);\n return { result, data };\n },\n nc_get_att_float: (ncid, varid, name, length) => {\n const dataPtr = module._malloc(length * 4);\n const result = nc_get_att_float_wrapper(ncid, varid, name, dataPtr);\n const data = result === NC_CONSTANTS.NC_NOERR\n ? Array.from({ length }, (_, i) => module.getValue(dataPtr + i * 4, 'float'))\n : undefined;\n module._free(dataPtr);\n return { result, data };\n },\n nc_get_att_double: (ncid, varid, name, length) => {\n const dataPtr = module._malloc(length * 8);\n const result = nc_get_att_double_wrapper(ncid, varid, name, dataPtr);\n const data = result === NC_CONSTANTS.NC_NOERR\n ? Array.from({ length }, (_, i) => module.getValue(dataPtr + i * 8, 'double'))\n : undefined;\n module._free(dataPtr);\n return { result, data };\n },\n nc_get_att_longlong: (ncid, varid, name, length) => {\n const dataPtr = module._malloc(length * 8);\n const result = nc_get_att_longlong_wrapper(ncid, varid, name, dataPtr);\n const data = result === NC_CONSTANTS.NC_NOERR\n ? Array.from({ length }, (_, i) => BigInt(module.getValue(dataPtr + i * 8, 'i64')))\n : undefined;\n module._free(dataPtr);\n return { result, data };\n },\n //---- Variable Getters ----//\n nc_get_vara_short: (ncid, varid, start, count) => {\n const totalLength = count.reduce((a, b) => a * b, 1);\n const dataPtr = module._malloc(totalLength * 2);\n const startPtr = module._malloc(start.length * 4);\n const countPtr = module._malloc(count.length * 4);\n start.forEach((val, i) => module.setValue(startPtr + i * 4, val, 'i32'));\n count.forEach((val, i) => module.setValue(countPtr + i * 4, val, 'i32'));\n const result = nc_get_vara_short_wrapper(ncid, varid, startPtr, countPtr, dataPtr);\n const data = result === NC_CONSTANTS.NC_NOERR\n ? new Int16Array(module.HEAP16.buffer, dataPtr, totalLength).slice()\n : undefined;\n module._free(dataPtr);\n module._free(startPtr);\n module._free(countPtr);\n return { result, data };\n },\n nc_get_vara_int: (ncid, varid, start, count) => {\n const totalLength = count.reduce((a, b) => a * b, 1);\n const dataPtr = module._malloc(totalLength * 4);\n const startPtr = module._malloc(start.length * 4);\n const countPtr = module._malloc(count.length * 4);\n start.forEach((val, i) => module.setValue(startPtr + i * 4, val, 'i32'));\n count.forEach((val, i) => module.setValue(countPtr + i * 4, val, 'i32'));\n const result = nc_get_vara_int_wrapper(ncid, varid, startPtr, countPtr, dataPtr);\n const data = result === NC_CONSTANTS.NC_NOERR\n ? new Int32Array(module.HEAP32.buffer, dataPtr, totalLength).slice()\n : undefined;\n module._free(dataPtr);\n module._free(startPtr);\n module._free(countPtr);\n return { result, data };\n },\n nc_get_vara_float: (ncid, varid, start, count) => {\n const totalLength = count.reduce((a, b) => a * b, 1);\n const dataPtr = module._malloc(totalLength * 4);\n const startPtr = module._malloc(start.length * 4);\n const countPtr = module._malloc(count.length * 4);\n start.forEach((val, i) => module.setValue(startPtr + i * 4, val, 'i32'));\n count.forEach((val, i) => module.setValue(countPtr + i * 4, val, 'i32'));\n const result = nc_get_vara_float_wrapper(ncid, varid, startPtr, countPtr, dataPtr);\n const data = result === NC_CONSTANTS.NC_NOERR\n ? new Float32Array(module.HEAPF32.buffer, dataPtr, totalLength).slice()\n : undefined;\n module._free(dataPtr);\n module._free(startPtr);\n module._free(countPtr);\n return { result, data };\n },\n nc_get_vara_double: (ncid, varid, start, count) => {\n const totalLength = count.reduce((a, b) => a * b, 1);\n const dataPtr = module._malloc(totalLength * 8);\n const startPtr = module._malloc(start.length * 4);\n const countPtr = module._malloc(count.length * 4);\n start.forEach((val, i) => module.setValue(startPtr + i * 4, val, 'i32'));\n count.forEach((val, i) => module.setValue(countPtr + i * 4, val, 'i32'));\n const result = nc_get_vara_double_wrapper(ncid, varid, startPtr, countPtr, dataPtr);\n const data = result === NC_CONSTANTS.NC_NOERR\n ? new Float64Array(module.HEAPF64.buffer, dataPtr, totalLength).slice()\n : undefined;\n module._free(dataPtr);\n module._free(startPtr);\n module._free(countPtr);\n return { result, data };\n },\n nc_get_vara_longlong: (ncid, varid, start, count) => {\n const totalLength = count.reduce((a, b) => a * b, 1);\n const dataPtr = module._malloc(totalLength * 8);\n const startPtr = module._malloc(start.length * 4);\n const countPtr = module._malloc(count.length * 4);\n start.forEach((val, i) => module.setValue(startPtr + i * 4, val, 'i32'));\n count.forEach((val, i) => module.setValue(countPtr + i * 4, val, 'i32'));\n const result = nc_get_vara_longlong_wrapper(ncid, varid, startPtr, countPtr, dataPtr);\n const data = result === NC_CONSTANTS.NC_NOERR\n ? new BigInt64Array(module.HEAP64.buffer, dataPtr, totalLength).slice()\n : undefined;\n module._free(dataPtr);\n module._free(startPtr);\n module._free(countPtr);\n return { result, data };\n },\n nc_get_vara_schar: (ncid, varid, start, count) => {\n const totalLength = count.reduce((a, b) => a * b, 1);\n const dataPtr = module._malloc(totalLength * 1);\n const startPtr = module._malloc(start.length * 4);\n const countPtr = module._malloc(count.length * 4);\n start.forEach((val, i) => module.setValue(startPtr + i * 4, val, 'i32'));\n count.forEach((val, i) => module.setValue(countPtr + i * 4, val, 'i32'));\n const result = nc_get_vara_schar_wrapper(ncid, varid, startPtr, countPtr, dataPtr);\n const data = result === NC_CONSTANTS.NC_NOERR\n ? new Int8Array(module.HEAP8.buffer, dataPtr, totalLength).slice()\n : undefined;\n module._free(dataPtr);\n module._free(startPtr);\n module._free(countPtr);\n return { result, data };\n },\n nc_get_vara_uchar: (ncid, varid, start, count) => {\n const totalLength = count.reduce((a, b) => a * b, 1);\n const dataPtr = module._malloc(totalLength * 1);\n const startPtr = module._malloc(start.length * 4);\n const countPtr = module._malloc(count.length * 4);\n start.forEach((val, i) => module.setValue(startPtr + i * 4, val, 'i32'));\n count.forEach((val, i) => module.setValue(countPtr + i * 4, val, 'i32'));\n const result = nc_get_vara_uchar_wrapper(ncid, varid, startPtr, countPtr, dataPtr);\n const data = result === NC_CONSTANTS.NC_NOERR\n ? new Uint8Array(module.HEAPU8.buffer, dataPtr, totalLength).slice()\n : undefined;\n module._free(dataPtr);\n module._free(startPtr);\n module._free(countPtr);\n return { result, data };\n },\n nc_get_vara_ushort: (ncid, varid, start, count) => {\n const totalLength = count.reduce((a, b) => a * b, 1);\n const dataPtr = module._malloc(totalLength * 2);\n const startPtr = module._malloc(start.length * 4);\n const countPtr = module._malloc(count.length * 4);\n start.forEach((val, i) => module.setValue(startPtr + i * 4, val, 'i32'));\n count.forEach((val, i) => module.setValue(countPtr + i * 4, val, 'i32'));\n const result = nc_get_vara_ushort_wrapper(ncid, varid, startPtr, countPtr, dataPtr);\n const data = result === NC_CONSTANTS.NC_NOERR\n ? new Uint16Array(module.HEAPU16.buffer, dataPtr, totalLength).slice()\n : undefined;\n module._free(dataPtr);\n module._free(startPtr);\n module._free(countPtr);\n return { result, data };\n },\n nc_get_vara_uint: (ncid, varid, start, count) => {\n const totalLength = count.reduce((a, b) => a * b, 1);\n const dataPtr = module._malloc(totalLength * 4);\n const startPtr = module._malloc(start.length * 4);\n const countPtr = module._malloc(count.length * 4);\n start.forEach((val, i) => module.setValue(startPtr + i * 4, val, 'i32'));\n count.forEach((val, i) => module.setValue(countPtr + i * 4, val, 'i32'));\n const result = nc_get_vara_uint_wrapper(ncid, varid, startPtr, countPtr, dataPtr);\n const data = result === NC_CONSTANTS.NC_NOERR\n ? new Uint32Array(module.HEAPU32.buffer, dataPtr, totalLength).slice()\n : undefined;\n module._free(dataPtr);\n module._free(startPtr);\n module._free(countPtr);\n return { result, data };\n },\n nc_get_vara_ulonglong: (ncid, varid, start, count) => {\n const totalLength = count.reduce((a, b) => a * b, 1);\n const dataPtr = module._malloc(totalLength * 8);\n const startPtr = module._malloc(start.length * 4);\n const countPtr = module._malloc(count.length * 4);\n start.forEach((val, i) => module.setValue(startPtr + i * 4, val, 'i32'));\n count.forEach((val, i) => module.setValue(countPtr + i * 4, val, 'i32'));\n const result = nc_get_vara_ulonglong_wrapper(ncid, varid, startPtr, countPtr, dataPtr);\n const data = result === NC_CONSTANTS.NC_NOERR\n ? new BigUint64Array(module.HEAP64.buffer, dataPtr, totalLength).slice()\n : undefined;\n module._free(dataPtr);\n module._free(startPtr);\n module._free(countPtr);\n return { result, data };\n },\n nc_get_vara_string: (ncid, varid, start, count) => {\n const totalLength = count.reduce((a, b) => a * b, 1);\n const dataPtr = module._malloc(totalLength * 4);\n const startPtr = module._malloc(start.length * 4);\n const countPtr = module._malloc(count.length * 4);\n start.forEach((val, i) => module.setValue(startPtr + i * 4, val, 'i32'));\n count.forEach((val, i) => module.setValue(countPtr + i * 4, val, 'i32'));\n const result = nc_get_vara_string_wrapper(ncid, varid, startPtr, countPtr, dataPtr);\n let data;\n if (result === NC_CONSTANTS.NC_NOERR) {\n data = [];\n for (let i = 0; i < totalLength; i++) {\n const strPtr = module.getValue(dataPtr + i * 4, '*');\n data.push(module.UTF8ToString(strPtr));\n }\n }\n module._free(dataPtr);\n module._free(startPtr);\n module._free(countPtr);\n return { result, data };\n },\n //---- Full Variable Getters ----//\n nc_get_var_text: (ncid, varid, length) => {\n const dataPtr = module._malloc(length);\n const result = nc_get_var_text_wrapper(ncid, varid, dataPtr);\n const data = result === NC_CONSTANTS.NC_NOERR\n ? [new TextDecoder().decode(module.HEAPU8.subarray(dataPtr, dataPtr + length)).replace(/\\0/g, '')]\n : undefined;\n module._free(dataPtr);\n return { result, data };\n },\n nc_get_var_short: (ncid, varid, length) => {\n const dataPtr = module._malloc(length * 2);\n const result = nc_get_var_short_wrapper(ncid, varid, dataPtr);\n let data;\n if (result === NC_CONSTANTS.NC_NOERR) {\n // Create a view of the heap and copy it into a new Int16Array\n data = new Int16Array(module.HEAP16.buffer, dataPtr, length).slice();\n }\n module._free(dataPtr);\n return { result, data };\n },\n nc_get_var_int: (ncid, varid, length) => {\n const dataPtr = module._malloc(length * 4);\n const result = nc_get_var_int_wrapper(ncid, varid, dataPtr);\n let data;\n if (result === NC_CONSTANTS.NC_NOERR) {\n data = new Int32Array(module.HEAP32.buffer, dataPtr, length).slice();\n }\n module._free(dataPtr);\n return { result, data };\n },\n nc_get_var_float: (ncid, varid, length) => {\n const dataPtr = module._malloc(length * 4);\n const result = nc_get_var_float_wrapper(ncid, varid, dataPtr);\n let data;\n if (result === NC_CONSTANTS.NC_NOERR) {\n data = new Float32Array(module.HEAPF32.buffer, dataPtr, length).slice();\n }\n module._free(dataPtr);\n return { result, data };\n },\n nc_get_var_longlong: (ncid, varid, length) => {\n const dataPtr = module._malloc(length * 8);\n const result = nc_get_var_longlong_wrapper(ncid, varid, dataPtr);\n let data;\n if (result === NC_CONSTANTS.NC_NOERR) {\n // BigInt64Array is used for i64 (long long)\n data = new BigInt64Array(module.HEAP64.buffer, dataPtr, length).slice();\n }\n module._free(dataPtr);\n return { result, data };\n },\n nc_get_var_schar: (ncid, varid, length) => {\n const dataPtr = module._malloc(length * 1);\n const result = nc_get_var_schar_wrapper(ncid, varid, dataPtr);\n let data;\n if (result === NC_CONSTANTS.NC_NOERR) {\n data = new Int8Array(module.HEAP8.buffer, dataPtr, length).slice();\n }\n module._free(dataPtr);\n return { result, data };\n },\n nc_get_var_uchar: (ncid, varid, length) => {\n const dataPtr = module._malloc(length * 1);\n const result = nc_get_var_uchar_wrapper(ncid, varid, dataPtr);\n let data;\n if (result === NC_CONSTANTS.NC_NOERR) {\n data = new Uint8Array(module.HEAPU8.buffer, dataPtr, length).slice();\n }\n module._free(dataPtr);\n return { result, data };\n },\n nc_get_var_ushort: (ncid, varid, length) => {\n const dataPtr = module._malloc(length * 2);\n const result = nc_get_var_ushort_wrapper(ncid, varid, dataPtr);\n let data;\n if (result === NC_CONSTANTS.NC_NOERR) {\n data = new Uint16Array(module.HEAPU16.buffer, dataPtr, length).slice();\n }\n module._free(dataPtr);\n return { result, data };\n },\n nc_get_var_uint: (ncid, varid, length) => {\n const dataPtr = module._malloc(length * 4);\n const result = nc_get_var_uint_wrapper(ncid, varid, dataPtr);\n let data;\n if (result === NC_CONSTANTS.NC_NOERR) {\n data = new Uint32Array(module.HEAPU32.buffer, dataPtr, length).slice();\n }\n module._free(dataPtr);\n return { result, data };\n },\n nc_get_var_ulonglong: (ncid, varid, length) => {\n const dataPtr = module._malloc(length * 8);\n const result = nc_get_var_ulonglong_wrapper(ncid, varid, dataPtr);\n let data;\n if (result === NC_CONSTANTS.NC_NOERR) {\n data = new BigUint64Array(module.HEAP64.buffer, dataPtr, length).slice();\n }\n module._free(dataPtr);\n return { result, data };\n },\n nc_get_var_string: (ncid, varid, length) => {\n const dataPtr = module._malloc(length * 4);\n const result = nc_get_var_string_wrapper(ncid, varid, dataPtr);\n let data;\n if (result === NC_CONSTANTS.NC_NOERR) {\n data = [];\n for (let i = 0; i < length; i++) {\n const strPtr = module.getValue(dataPtr + i * 4, '*');\n data.push(module.UTF8ToString(strPtr));\n }\n }\n module._free(dataPtr);\n return { result, data };\n },\n nc_def_dim: (ncid, name, len) => {\n const dimidPtr = module._malloc(4);\n const result = nc_def_dim_wrapper(ncid, name, len, dimidPtr);\n const dimid = module.getValue(dimidPtr, 'i32');\n module._free(dimidPtr);\n return { result, dimid };\n },\n nc_def_var: (ncid, name, xtype, ndims, dimids) => {\n const varidPtr = module._malloc(4);\n const dimidsPtr = module._malloc(dimids.length * 4);\n for (let i = 0; i < dimids.length; i++) {\n module.setValue(dimidsPtr + i * 4, dimids[i], 'i32');\n }\n const result = nc_def_var_wrapper(ncid, name, xtype, ndims, dimidsPtr, varidPtr);\n const varid = module.getValue(varidPtr, 'i32');\n module._free(varidPtr);\n module._free(dimidsPtr);\n return { result, varid };\n },\n nc_put_var_double: (ncid, varid, data) => {\n const dataPtr = module._malloc(data.length * 8);\n module.HEAPF64.set(data, dataPtr / 8);\n const result = nc_put_var_double_wrapper(ncid, varid, dataPtr);\n module._free(dataPtr);\n return result;\n },\n nc_get_var_double: (ncid, varid, length) => {\n const dataPtr = module._malloc(length * 8);\n const result = nc_get_var_double_wrapper(ncid, varid, dataPtr);\n let data;\n if (result === NC_CONSTANTS.NC_NOERR) {\n data = new Float64Array(module.HEAPF64.buffer, dataPtr, length).slice();\n }\n module._free(dataPtr);\n return { result, data };\n },\n nc_enddef: (ncid) => {\n return nc_enddef_wrapper(ncid);\n },\n //---- Group Functions ----//\n nc_inq_grps: (ncid) => {\n const numgrpsPtr = module._malloc(4);\n const grpidsPtr = module._malloc(NC_MAX_VARS * 4); // reuse NC_MAX_VARS as max groups\n const result = nc_inq_grps_wrapper(ncid, numgrpsPtr, grpidsPtr);\n let numgrps, grpids;\n if (result === NC_CONSTANTS.NC_NOERR) {\n numgrps = module.getValue(numgrpsPtr, 'i32');\n grpids = Int32Array.from({ length: numgrps }, (_, i) => module.getValue(grpidsPtr + (i * 4), 'i32'));\n }\n module._free(numgrpsPtr);\n module._free(grpidsPtr);\n return { result, numgrps, grpids };\n },\n nc_inq_grp_ncid: (ncid, grp_name) => {\n const grp_ncidPtr = module._malloc(4);\n const result = nc_inq_grp_ncid_wrapper(ncid, grp_name, grp_ncidPtr);\n const grp_ncid = result === NC_CONSTANTS.NC_NOERR ? module.getValue(grp_ncidPtr, 'i32') : undefined;\n module._free(grp_ncidPtr);\n return { result, grp_ncid };\n },\n nc_inq_grpname: (ncid) => {\n const namePtr = module._malloc(NC_MAX_NAME + 1);\n const result = nc_inq_grpname_wrapper(ncid, namePtr);\n const name = result === NC_CONSTANTS.NC_NOERR ? module.UTF8ToString(namePtr) : undefined;\n module._free(namePtr);\n return { result, name };\n },\n nc_inq_grp_parent: (ncid) => {\n const parent_ncidPtr = module._malloc(4);\n const result = nc_inq_grp_parent_wrapper(ncid, parent_ncidPtr);\n const parent_ncid = result === NC_CONSTANTS.NC_NOERR ? module.getValue(parent_ncidPtr, 'i32') : undefined;\n module._free(parent_ncidPtr);\n return { result, parent_ncid };\n },\n nc_inq_grp_full_ncid: (ncid, full_name) => {\n const grp_ncidPtr = module._malloc(4);\n const result = nc_inq_grp_full_ncid_wrapper(ncid, full_name, grp_ncidPtr);\n const grp_ncid = result === NC_CONSTANTS.NC_NOERR ? module.getValue(grp_ncidPtr, 'i32') : undefined;\n module._free(grp_ncidPtr);\n return { result, grp_ncid };\n },\n nc_inq_grpname_full: (ncid) => {\n const maxLen = 1024; // NC_MAX_NAME * path depth estimate\n const lenpPtr = module._malloc(8); // size_t\n const namePtr = module._malloc(maxLen);\n const result = nc_inq_grpname_full_wrapper(ncid, lenpPtr, namePtr);\n const full_name = result === NC_CONSTANTS.NC_NOERR ? module.UTF8ToString(namePtr) : undefined;\n module._free(lenpPtr);\n module._free(namePtr);\n return { result, full_name };\n },\n nc_inq_grpname_len: (ncid) => {\n const lenpPtr = module._malloc(8); // size_t\n const result = nc_inq_grpname_len_wrapper(ncid, lenpPtr);\n const lenp = result === NC_CONSTANTS.NC_NOERR ? module.getValue(lenpPtr, 'i64') : undefined;\n module._free(lenpPtr);\n return { result, lenp };\n },\n nc_get_att_string: (ncid, varid, name, length) => {\n // allocate space for char*\n const ptrArray = module._malloc(length * 4); // pointer array (32bit in wasm)\n const result = nc_get_att_string_wrapper(ncid, varid, name, ptrArray);\n if (result !== NC_CONSTANTS.NC_NOERR) {\n module._free(ptrArray);\n return { result, data: undefined };\n }\n const data = [];\n for (let i = 0; i < length; i++) {\n const strPtr = module.getValue(ptrArray + i * 4, '*');\n data.push(module.UTF8ToString(strPtr));\n }\n // free strings allocated by netcdf\n nc_free_string_wrapper(length, ptrArray);\n return { result, data };\n },\n nc_get_att_uchar: (ncid, varid, name, length) => {\n const dataPtr = module._malloc(length);\n const result = nc_get_att_uchar_wrapper(ncid, varid, name, dataPtr);\n let data;\n if (result === NC_CONSTANTS.NC_NOERR) {\n data = new Uint8Array(module.HEAPU8.buffer, dataPtr, length).slice();\n }\n module._free(dataPtr);\n return { result, data };\n },\n nc_get_att_schar: (ncid, varid, name, length) => {\n const dataPtr = module._malloc(length);\n const result = nc_get_att_schar_wrapper(ncid, varid, name, dataPtr);\n let data;\n if (result === NC_CONSTANTS.NC_NOERR) {\n data = new Int8Array(module.HEAP8.buffer, dataPtr, length).slice();\n }\n module._free(dataPtr);\n return { result, data };\n },\n // 16-bit unsigned (NC_USHORT)\n nc_get_att_ushort: (ncid, varid, name, length) => {\n const dataPtr = module._malloc(length * 2);\n const result = nc_get_att_ushort_wrapper(ncid, varid, name, dataPtr);\n let data;\n if (result === NC_CONSTANTS.NC_NOERR) {\n data = new Uint16Array(module.HEAPU16.buffer, dataPtr, length).slice();\n }\n module._free(dataPtr);\n return { result, data };\n },\n // 32-bit unsigned (NC_UINT)\n nc_get_att_uint: (ncid, varid, name, length) => {\n const dataPtr = module._malloc(length * 4);\n const result = nc_get_att_uint_wrapper(ncid, varid, name, dataPtr);\n let data;\n if (result === NC_CONSTANTS.NC_NOERR) {\n data = new Uint32Array(module.HEAPU32.buffer, dataPtr, length).slice();\n }\n module._free(dataPtr);\n return { result, data };\n },\n // 64-bit unsigned (NC_UINT64 / NC_ULONGLONG)\n nc_get_att_ulonglong: (ncid, varid, name, length) => {\n const dataPtr = module._malloc(length * 8);\n const result = nc_get_att_ulonglong_wrapper(ncid, varid, name, dataPtr);\n let data;\n if (result === NC_CONSTANTS.NC_NOERR) {\n data = new BigUint64Array(module.HEAPU64.buffer, dataPtr, length).slice();\n }\n module._free(dataPtr);\n return { result, data };\n },\n // Enum Type Functions\n nc_inq_typeids: (ncid, maxTypeIds) => {\n const ntypesPtr = module._malloc(4);\n const typeidsPtr = module._malloc(maxTypeIds * 4);\n const result = nc_inq_typeids_wrapper(ncid, ntypesPtr, typeidsPtr);\n let ntypes;\n let typeids;\n if (result === NC_CONSTANTS.NC_NOERR) {\n ntypes = module.getValue(ntypesPtr, 'i32');\n typeids = [];\n for (let i = 0; i < ntypes; i++) {\n typeids.push(module.getValue(typeidsPtr + i * 4, 'i32'));\n }\n }\n module._free(ntypesPtr);\n module._free(typeidsPtr);\n return { result, ntypes, typeids };\n },\n nc_inq_type: (ncid, xtype) => {\n const namePtr = module._malloc(NC_CONSTANTS.NC_MAX_NAME + 1);\n const sizePtr = module._malloc(8);\n const result = nc_inq_type_wrapper(ncid, xtype, namePtr, sizePtr);\n let name;\n let size;\n if (result === NC_CONSTANTS.NC_NOERR) {\n name = module.UTF8ToString(namePtr);\n size = Number(module.getValue(sizePtr, 'i64'));\n }\n module._free(namePtr);\n module._free(sizePtr);\n return { result, name, size };\n },\n nc_inq_user_type: (ncid, xtype) => {\n const namePtr = module._malloc(NC_CONSTANTS.NC_MAX_NAME + 1);\n const sizePtr = module._malloc(8);\n const baseTypePtr = module._malloc(4);\n const nfieldsPtr = module._malloc(8);\n const classPtr = module._malloc(4);\n const result = nc_inq_user_type_wrapper(ncid, xtype, namePtr, sizePtr, baseTypePtr, nfieldsPtr, classPtr);\n let name;\n let size;\n let baseType;\n let nfields;\n let typeClass;\n if (result === NC_CONSTANTS.NC_NOERR) {\n name = module.UTF8ToString(namePtr);\n size = Number(module.getValue(sizePtr, 'i64'));\n baseType = module.getValue(baseTypePtr, 'i32');\n nfields = Number(module.getValue(nfieldsPtr, 'i64'));\n typeClass = module.getValue(classPtr, 'i32');\n }\n module._free(namePtr);\n module._free(sizePtr);\n module._free(baseTypePtr);\n module._free(nfieldsPtr);\n module._free(classPtr);\n return { result, name, size, baseType, nfields, typeClass };\n },\n nc_def_enum: (ncid, baseTypeId, name) => {\n const typeidPtr = module._malloc(4);\n const result = nc_def_enum_wrapper(ncid, baseTypeId, name, typeidPtr);\n let typeid;\n if (result === NC_CONSTANTS.NC_NOERR) {\n typeid = module.getValue(typeidPtr, 'i32');\n }\n module._free(typeidPtr);\n return { result, typeid };\n },\n nc_insert_enum: (ncid, xtype, name, value) => {\n const valuePtr = module._malloc(8); // Always allocate 8 bytes (max needed)\n if (typeof value === 'bigint') {\n // Write bigint as 64-bit integer\n const i64Array = new BigInt64Array(module.HEAP8.buffer, valuePtr, 1);\n i64Array[0] = value;\n }\n else {\n // Write number as 32-bit integer (works for byte, short, int, uint)\n module.setValue(valuePtr, value, 'i32');\n }\n const result = nc_insert_enum_wrapper(ncid, xtype, name, valuePtr);\n module._free(valuePtr);\n return { result };\n },\n nc_inq_enum: (ncid, xtype) => {\n const namePtr = module._malloc(NC_CONSTANTS.NC_MAX_NAME + 1);\n const baseTypePtr = module._malloc(4);\n const baseSizePtr = module._malloc(8); // size_t can be 8 bytes\n const numMembersPtr = module._malloc(8); // size_t can be 8 bytes\n const result = nc_inq_enum_wrapper(ncid, xtype, namePtr, baseTypePtr, baseSizePtr, numMembersPtr);\n let name;\n let baseType;\n let baseSize;\n let numMembers;\n if (result === NC_CONSTANTS.NC_NOERR) {\n name = module.UTF8ToString(namePtr);\n baseType = module.getValue(baseTypePtr, 'i32');\n // Try reading as 32-bit size_t first\n baseSize = Number(module.getValue(baseSizePtr, 'i32'));\n numMembers = Number(module.getValue(numMembersPtr, 'i32'));\n }\n module._free(namePtr);\n module._free(baseTypePtr);\n module._free(baseSizePtr);\n module._free(numMembersPtr);\n return { result, name, baseType, baseSize, numMembers };\n },\n nc_inq_enum_member: (ncid, xtype, idx, baseType) => {\n const namePtr = module._malloc(NC_CONSTANTS.NC_MAX_NAME + 1);\n const valuePtr = module._malloc(8);\n const result = nc_inq_enum_member_wrapper(ncid, xtype, idx, namePtr, valuePtr);\n let name;\n let value;\n if (result === NC_CONSTANTS.NC_NOERR) {\n name = module.UTF8ToString(namePtr);\n // Read value based on base type\n switch (baseType) {\n case NC_CONSTANTS.NC_BYTE:\n value = module.getValue(valuePtr, 'i8');\n break;\n case NC_CONSTANTS.NC_UBYTE:\n value = module.getValue(valuePtr, 'i8') & 0xFF;\n break;\n case NC_CONSTANTS.NC_SHORT:\n value = module.getValue(valuePtr, 'i16');\n break;\n case NC_CONSTANTS.NC_USHORT:\n value = module.getValue(valuePtr, 'i16') & 0xFFFF;\n break;\n case NC_CONSTANTS.NC_INT:\n value = module.getValue(valuePtr, 'i32');\n break;\n case NC_CONSTANTS.NC_UINT:\n value = module.getValue(valuePtr, 'i32') >>> 0;\n break;\n case NC_CONSTANTS.NC_INT64:\n value = module.getValue(valuePtr, 'i64');\n break;\n case NC_CONSTANTS.NC_UINT64:\n value = module.getValue(valuePtr, 'i64');\n break;\n default:\n value = module.getValue(valuePtr, 'i32');\n }\n }\n module._free(namePtr);\n module._free(valuePtr);\n return { result, name, value };\n },\n nc_inq_enum_ident: (ncid, xtype, value) => {\n const identPtr = module._malloc(NC_CONSTANTS.NC_MAX_NAME + 1);\n const numValue = typeof value === 'bigint' ? Number(value) : value;\n const result = nc_inq_enum_ident_wrapper(ncid, xtype, numValue, identPtr);\n let identifier;\n if (result === NC_CONSTANTS.NC_NOERR) {\n identifier = module.UTF8ToString(identPtr);\n }\n module._free(identPtr);\n return { result, identifier };\n },\n // generic nc_get_var function to module\n nc_get_var_generic: (ncid, varid, length, nctype) => {\n const elementSize = DATA_TYPE_SIZE[nctype];\n const dataPtr = module._malloc(length * elementSize);\n const result = nc_get_var_wrapper(ncid, varid, dataPtr);\n let data;\n if (result === NC_CONSTANTS.NC_NOERR) {\n switch (nctype) {\n case NC_CONSTANTS.NC_BYTE:\n data = new Int8Array(module.HEAP8.buffer, dataPtr, length).slice();\n break;\n case NC_CONSTANTS.NC_UBYTE:\n data = new Uint8Array(module.HEAPU8.buffer, dataPtr, length).slice();\n break;\n case NC_CONSTANTS.NC_SHORT:\n data = new Int16Array(module.HEAP16.buffer, dataPtr, length).slice();\n break;\n case NC_CONSTANTS.NC_USHORT:\n data = new Uint16Array(module.HEAPU16.buffer, dataPtr, length).slice();\n break;\n case NC_CONSTANTS.NC_INT:\n data = new Int32Array(module.HEAP32.buffer, dataPtr, length).slice();\n break;\n case NC_CONSTANTS.NC_UINT:\n data = new Uint32Array(module.HEAPU32.buffer, dataPtr, length).slice();\n break;\n case NC_CONSTANTS.NC_INT64:\n data = new BigInt64Array(module.HEAP64.buffer, dataPtr, length).slice();\n break;\n case NC_CONSTANTS.NC_UINT64:\n data = new BigUint64Array(module.HEAPU64.buffer, dataPtr, length).slice();\n break;\n }\n }\n module._free(dataPtr);\n return { result, data };\n },\n nc_get_vara_generic: (ncid, varid, start, count, nctype) => {\n const elementSize = DATA_TYPE_SIZE[nctype];\n const totalLength = count.reduce((a, b) => a * b, 1);\n const dataPtr = module._malloc(totalLength * elementSize);\n const startPtr = module._malloc(start.length * 4);\n const countPtr = module._malloc(count.length * 4);\n start.forEach((val, i) => module.setValue(startPtr + i * 4, val, 'i32'));\n count.forEach((val, i) => module.setValue(countPtr + i * 4, val, 'i32'));\n const result = nc_get_vara_wrapper(ncid, varid, startPtr, countPtr, dataPtr);\n let data;\n if (result === NC_CONSTANTS.NC_NOERR) {\n switch (nctype) {\n case NC_CONSTANTS.NC_BYTE:\n data = new Int8Array(module.HEAP8.buffer, dataPtr, totalLength).slice();\n break;\n case NC_CONSTANTS.NC_UBYTE:\n data = new Uint8Array(module.HEAPU8.buffer, dataPtr, totalLength).slice();\n break;\n case NC_CONSTANTS.NC_SHORT:\n data = new Int16Array(module.HEAP16.buffer, dataPtr, totalLength).slice();\n break;\n case NC_CONSTANTS.NC_USHORT:\n data = new Uint16Array(module.HEAPU16.buffer, dataPtr, totalLength).slice();\n break;\n case NC_CONSTANTS.NC_INT:\n data = new Int32Array(module.HEAP32.buffer, dataPtr, totalLength).slice();\n break;\n case NC_CONSTANTS.NC_UINT:\n data = new Uint32Array(module.HEAPU32.buffer, dataPtr, totalLength).slice();\n break;\n case NC_CONSTANTS.NC_INT64:\n data = new BigInt64Array(module.HEAP64.buffer, dataPtr, totalLength).slice();\n break;\n case NC_CONSTANTS.NC_UINT64:\n data = new BigUint64Array(module.HEAPU64.buffer, dataPtr, totalLength).slice();\n break;\n }\n }\n module._free(dataPtr);\n module._free(startPtr);\n module._free(countPtr);\n return { result, data };\n },\n // start/count/stride → i32 / 4 bytes per element (size_t and ptrdiff_t are 4 bytes in wasm32)\n nc_get_vars_schar: (ncid, varid, start, count, stride) => {\n const totalLength = stridedLength(count);\n const dataPtr = module._malloc(safeByteLength(totalLength, 1));\n const startPtr = module._malloc(start.length * 4);\n const countPtr = module._malloc(count.length * 4);\n const stridePtr = module._malloc(stride.length * 4);\n start.forEach((v, i) => module.setValue(startPtr + i * 4, v, 'i32'));\n count.forEach((v, i) => module.setValue(countPtr + i * 4, v, 'i32'));\n stride.forEach((v, i) => module.setValue(stridePtr + i * 4, v, 'i32'));\n const result = nc_get_vars_schar_wrapper(ncid, varid, startPtr, countPtr, stridePtr, dataPtr);\n const data = result === NC_CONSTANTS.NC_NOERR\n ? new Int8Array(module.HEAP8.buffer, dataPtr, totalLength).slice()\n : undefined;\n module._free(dataPtr);\n module._free(startPtr);\n module._free(countPtr);\n module._free(stridePtr);\n return { result, data };\n },\n nc_get_vars_uchar: (ncid, varid, start, count, stride) => {\n const totalLength = stridedLength(count);\n const dataPtr = module._malloc(safeByteLength(totalLength, 1));\n const startPtr = module._malloc(start.length * 4);\n const countPtr = module._malloc(count.length * 4);\n const stridePtr = module._malloc(stride.length * 4);\n start.forEach((v, i) => module.setValue(startPtr + i * 4, v, 'i32'));\n count.forEach((v, i) => module.setValue(countPtr + i * 4, v, 'i32'));\n stride.forEach((v, i) => module.setValue(stridePtr + i * 4, v, 'i32'));\n const result = nc_get_vars_uchar_wrapper(ncid, varid, startPtr, countPtr, stridePtr, dataPtr);\n const data = result === NC_CONSTANTS.NC_NOERR\n ? new Uint8Array(module.HEAPU8.buffer, dataPtr, totalLength).slice()\n : undefined;\n module._free(dataPtr);\n module._free(startPtr);\n module._free(countPtr);\n module._free(stridePtr);\n return { result, data };\n },\n nc_get_vars_short: (ncid, varid, start, count, stride) => {\n const totalLength = stridedLength(count);\n const dataPtr = module._malloc(safeByteLength(totalLength, 2));\n const startPtr = module._malloc(start.length * 4);\n const countPtr = module._malloc(count.length * 4);\n const stridePtr = module._malloc(stride.length * 4);\n start.forEach((v, i) => module.setValue(startPtr + i * 4, v, 'i32'));\n count.forEach((v, i) => module.setValue(countPtr + i * 4, v, 'i32'));\n stride.forEach((v, i) => module.setValue(stridePtr + i * 4, v, 'i32'));\n const result = nc_get_vars_short_wrapper(ncid, varid, startPtr, countPtr, stridePtr, dataPtr);\n const data = result === NC_CONSTANTS.NC_NOERR\n ? new Int16Array(module.HEAP16.buffer, dataPtr, totalLength).slice()\n : undefined;\n module._free(dataPtr);\n module._free(startPtr);\n module._free(countPtr);\n module._free(stridePtr);\n return { result, data };\n },\n nc_get_vars_ushort: (ncid, varid, start, count, stride) => {\n const totalLength = stridedLength(count);\n const dataPtr = module._malloc(safeByteLength(totalLength, 2));\n const startPtr = module._malloc(start.length * 4);\n const countPtr = module._malloc(count.length * 4);\n const stridePtr = module._malloc(stride.length * 4);\n start.forEach((v, i) => module.setValue(startPtr + i * 4, v, 'i32'));\n count.forEach((v, i) => module.setValue(countPtr + i * 4, v, 'i32'));\n stride.forEach((v, i) => module.setValue(stridePtr + i * 4, v, 'i32'));\n const result = nc_get_vars_ushort_wrapper(ncid, varid, startPtr, countPtr, stridePtr, dataPtr);\n const data = result === NC_CONSTANTS.NC_NOERR\n ? new Uint16Array(module.HEAPU16.buffer, dataPtr, totalLength).slice()\n : undefined;\n module._free(dataPtr);\n module._free(startPtr);\n module._free(countPtr);\n module._free(stridePtr);\n return { result, data };\n },\n nc_get_vars_int: (ncid, varid, start, count, stride) => {\n const totalLength = stridedLength(count);\n const dataPtr = module._malloc(safeByteLength(totalLength, 4));\n const startPtr = module._malloc(start.length * 4);\n const countPtr = module._malloc(count.length * 4);\n const stridePtr = module._malloc(stride.length * 4);\n start.forEach((v, i) => module.setValue(startPtr + i * 4, v, 'i32'));\n count.forEach((v, i) => module.setValue(countPtr + i * 4, v, 'i32'));\n stride.forEach((v, i) => module.setValue(stridePtr + i * 4, v, 'i32'));\n const result = nc_get_vars_int_wrapper(ncid, varid, startPtr, countPtr, stridePtr, dataPtr);\n const data = result === NC_CONSTANTS.NC_NOERR\n ? new Int32Array(module.HEAP32.buffer, dataPtr, totalLength).slice()\n : undefined;\n module._free(dataPtr);\n module._free(startPtr);\n module._free(countPtr);\n module._free(stridePtr);\n return { result, data };\n },\n nc_get_vars_uint: (ncid, varid, start, count, stride) => {\n const totalLength = stridedLength(count);\n const dataPtr = module._malloc(safeByteLength(totalLength, 4));\n const startPtr = module._malloc(start.length * 4);\n const countPtr = module._malloc(count.length * 4);\n const stridePtr = module._malloc(stride.length * 4);\n start.forEach((v, i) => module.setValue(startPtr + i * 4, v, 'i32'));\n count.forEach((v, i) => module.setValue(countPtr + i * 4, v, 'i32'));\n stride.forEach((v, i) => module.setValue(stridePtr + i * 4, v, 'i32'));\n const result = nc_get_vars_uint_wrapper(ncid, varid, startPtr, countPtr, stridePtr, dataPtr);\n const data = result === NC_CONSTANTS.NC_NOERR\n ? new Uint32Array(module.HEAPU32.buffer, dataPtr, totalLength).slice()\n : undefined;\n module._free(dataPtr);\n module._free(startPtr);\n module._free(countPtr);\n module._free(stridePtr);\n return { result, data };\n },\n nc_get_vars_float: (ncid, varid, start, count, stride) => {\n const totalLength = stridedLength(count);\n const dataPtr = module._malloc(safeByteLength(totalLength, 4));\n const startPtr = module._malloc(start.length * 4);\n const countPtr = module._malloc(count.length * 4);\n const stridePtr = module._malloc(stride.length * 4);\n start.forEach((v, i) => module.setValue(startPtr + i * 4, v, 'i32'));\n count.forEach((v, i) => module.setValue(countPtr + i * 4, v, 'i32'));\n stride.forEach((v, i) => module.setValue(stridePtr + i * 4, v, 'i32'));\n const result = nc_get_vars_float_wrapper(ncid, varid, startPtr, countPtr, stridePtr, dataPtr);\n const data = result === NC_CONSTANTS.NC_NOERR\n ? new Float32Array(module.HEAPF32.buffer, dataPtr, totalLength).slice()\n : undefined;\n module._free(dataPtr);\n module._free(startPtr);\n module._free(countPtr);\n module._free(stridePtr);\n return { result, data };\n },\n nc_get_vars_double: (ncid, varid, start, count, stride) => {\n const totalLength = stridedLength(count);\n const dataPtr = module._malloc(safeByteLength(totalLength, 8));\n const startPtr = module._malloc(start.length * 4);\n const countPtr = module._malloc(count.length * 4);\n const stridePtr = module._malloc(stride.length * 4);\n start.forEach((v, i) => module.setValue(startPtr + i * 4, v, 'i32'));\n count.forEach((v, i) => module.setValue(countPtr + i * 4, v, 'i32'));\n stride.forEach((v, i) => module.setValue(stridePtr + i * 4, v, 'i32'));\n const result = nc_get_vars_double_wrapper(ncid, varid, startPtr, countPtr, stridePtr, dataPtr);\n const data = result === NC_CONSTANTS.NC_NOERR\n ? new Float64Array(module.HEAPF64.buffer, dataPtr, totalLength).slice()\n : undefined;\n module._free(dataPtr);\n module._free(startPtr);\n module._free(countPtr);\n module._free(stridePtr);\n return { result, data };\n },\n nc_get_vars_longlong: (ncid, varid, start, count, stride) => {\n const totalLength = stridedLength(count);\n const dataPtr = module._malloc(safeByteLength(totalLength, 8));\n const startPtr = module._malloc(start.length * 4);\n const countPtr = module._malloc(count.length * 4);\n const stridePtr = module._malloc(stride.length * 4);\n start.forEach((v, i) => module.setValue(startPtr + i * 4, v, 'i32'));\n count.forEach((v, i) => module.setValue(countPtr + i * 4, v, 'i32'));\n stride.forEach((v, i) => module.setValue(stridePtr + i * 4, v, 'i32'));\n const result = nc_get_vars_longlong_wrapper(ncid, varid, startPtr, countPtr, stridePtr, dataPtr);\n const data = result === NC_CONSTANTS.NC_NOERR\n ? new BigInt64Array(module.HEAP64.buffer, dataPtr, totalLength).slice()\n : undefined;\n module._free(dataPtr);\n module._free(startPtr);\n module._free(countPtr);\n module._free(stridePtr);\n return { result, data };\n },\n nc_get_vars_ulonglong: (ncid, varid, start, count, stride) => {\n const totalLength = stridedLength(count);\n const dataPtr = module._malloc(safeByteLength(totalLength, 8));\n const startPtr = module._malloc(start.length * 4);\n const countPtr = module._malloc(count.length * 4);\n const stridePtr = module._malloc(stride.length * 4);\n start.forEach((v, i) => module.setValue(startPtr + i * 4, v, 'i32'));\n count.forEach((v, i) => module.setValue(countPtr + i * 4, v, 'i32'));\n stride.forEach((v, i) => module.setValue(stridePtr + i * 4, v, 'i32'));\n const result = nc_get_vars_ulonglong_wrapper(ncid, varid, startPtr, countPtr, stridePtr, dataPtr);\n const data = result === NC_CONSTANTS.NC_NOERR\n ? new BigUint64Array(module.HEAPU64.buffer, dataPtr, totalLength).slice()\n : undefined;\n module._free(dataPtr);\n module._free(startPtr);\n module._free(countPtr);\n module._free(stridePtr);\n return { result, data };\n },\n nc_get_vars_string: (ncid, varid, start, count, stride) => {\n const totalLength = stridedLength(count);\n // validate allocation size won't overflow WASM32 uint32.\n // char* pointers are 4 bytes in wasm32, so elementSize = 4.\n const dataPtr = module._malloc(safeByteLength(totalLength, 4));\n const startPtr = module._malloc(start.length * 4);\n const countPtr = module._malloc(count.length * 4);\n const stridePtr = module._malloc(stride.length * 4);\n start.forEach((v, i) => module.setValue(startPtr + i * 4, v, 'i32'));\n count.forEach((v, i) => module.setValue(countPtr + i * 4, v, 'i32'));\n stride.forEach((v, i) => module.setValue(stridePtr + i * 4, v, 'i32'));\n const result = nc_get_vars_string_wrapper(ncid, varid, startPtr, countPtr, stridePtr, dataPtr);\n let data;\n if (result === NC_CONSTANTS.NC_NOERR) {\n data = [];\n for (let i = 0; i < totalLength; i++) {\n const strPtr = module.getValue(dataPtr + i * 4, '*');\n data.push(module.UTF8ToString(strPtr));\n }\n // free the individual strings allocated by NetCDF-C before\n // freeing the pointer array. nc_free_string_wrapper handles both.\n nc_free_string_wrapper(totalLength, dataPtr);\n }\n else {\n module._free(dataPtr);\n }\n module._free(startPtr);\n module._free(countPtr);\n module._free(stridePtr);\n return { result, data };\n },\n nc_get_vars_generic: (ncid, varid, start, count, stride, nctype) => {\n const elementSize = DATA_TYPE_SIZE[nctype];\n const totalLength = stridedLength(count);\n const startPtr = module._malloc(start.length * 4);\n const countPtr = module._malloc(count.length * 4);\n const stridePtr = module._malloc(stride.length * 4);\n start.forEach((v, i) => module.setValue(startPtr + i * 4, v, 'i32'));\n count.forEach((v, i) => module.setValue(countPtr + i * 4, v, 'i32'));\n stride.forEach((v, i) => module.setValue(stridePtr + i * 4, v, 'i32'));\n if (nctype === NC_CONSTANTS.NC_STRING) {\n // validate allocation size won't overflow WASM32 uint32.\n const dataPtr = module._malloc(safeByteLength(totalLength, 4));\n const result = nc_get_vars_string_wrapper(ncid, varid, startPtr, countPtr, stridePtr, dataPtr);\n let data;\n if (result === NC_CONSTANTS.NC_NOERR) {\n data = [];\n for (let i = 0; i < totalLength; i++) {\n const strPtr = module.getValue(dataPtr + i * 4, '*');\n data.push(module.UTF8ToString(strPtr));\n }\n // free the individual strings allocated by NetCDF-C before\n // freeing the pointer array. nc_free_string_wrapper handles both.\n nc_free_string_wrapper(totalLength, dataPtr);\n }\n else {\n module._free(dataPtr);\n }\n module._free(startPtr);\n module._free(countPtr);\n module._free(stridePtr);\n return { result, data };\n }\n // validate allocation size won't overflow WASM32 uint32.\n const dataPtr = module._malloc(safeByteLength(totalLength, elementSize));\n const result = nc_get_vars_wrapper(ncid, varid, startPtr, countPtr, stridePtr, dataPtr);\n let data;\n if (result === NC_CONSTANTS.NC_NOERR) {\n switch (nctype) {\n case NC_CONSTANTS.NC_BYTE:\n data = new Int8Array(module.HEAP8.buffer, dataPtr, totalLength).slice();\n break;\n case NC_CONSTANTS.NC_UBYTE:\n data = new Uint8Array(module.HEAPU8.buffer, dataPtr, totalLength).slice();\n break;\n case NC_CONSTANTS.NC_SHORT:\n data = new Int16Array(module.HEAP16.buffer, dataPtr, totalLength).slice();\n break;\n case NC_CONSTANTS.NC_USHORT:\n data = new Uint16Array(module.HEAPU16.buffer, dataPtr, totalLength).slice();\n break;\n case NC_CONSTANTS.NC_INT:\n data = new Int32Array(module.HEAP32.buffer, dataPtr, totalLength).slice();\n break;\n case NC_CONSTANTS.NC_UINT:\n data = new Uint32Array(module.HEAPU32.buffer, dataPtr, totalLength).slice();\n break;\n case NC_CONSTANTS.NC_FLOAT:\n data = new Float32Array(module.HEAPF32.buffer, dataPtr, totalLength).slice();\n break;\n case NC_CONSTANTS.NC_DOUBLE:\n data = new Float64Array(module.HEAPF64.buffer, dataPtr, totalLength).slice();\n break;\n case NC_CONSTANTS.NC_INT64:\n data = new BigInt64Array(module.HEAP64.buffer, dataPtr, totalLength).slice();\n break;\n case NC_CONSTANTS.NC_UINT64:\n data = new BigUint64Array(module.HEAPU64.buffer, dataPtr, totalLength).slice();\n break;\n }\n }\n module._free(dataPtr);\n module._free(startPtr);\n module._free(countPtr);\n module._free(stridePtr);\n return { result, data };\n },\n nc_get_vars_text: (ncid, varid, start, count, stride) => {\n const totalLength = stridedLength(count);\n const dataPtr = module._malloc(safeByteLength(totalLength, 1));\n const startPtr = module._malloc(start.length * 4);\n const countPtr = module._malloc(count.length * 4);\n const stridePtr = module._malloc(stride.length * 4);\n start.forEach((v, i) => module.setValue(startPtr + i * 4, v, 'i32'));\n count.forEach((v, i) => module.setValue(countPtr + i * 4, v, 'i32'));\n stride.forEach((v, i) => module.setValue(stridePtr + i * 4, v, 'i32'));\n const result = nc_get_vars_text_wrapper(ncid, varid, startPtr, countPtr, stridePtr, dataPtr);\n const data = result === NC_CONSTANTS.NC_NOERR\n ? Array.from(new TextDecoder().decode(module.HEAPU8.subarray(dataPtr, dataPtr + totalLength)), char => char === '\\0' ? '' : char)\n : undefined;\n module._free(dataPtr);\n module._free(startPtr);\n module._free(countPtr);\n module._free(stridePtr);\n return { result, data };\n },\n };\n }\n}\n//# sourceMappingURL=wasm-module.js.map","async function NetCDF4Module(moduleArg={}){var moduleRtn;var Module=moduleArg;var ENVIRONMENT_IS_WEB=!!globalThis.window;var ENVIRONMENT_IS_WORKER=!!globalThis.WorkerGlobalScope;var ENVIRONMENT_IS_NODE=globalThis.process?.versions?.node&&globalThis.process?.type!=\"renderer\";Module.preRun=Module.preRun||[];Module.postRun=Module.postRun||[];Module.preRun.push(function(){console.log(\"NetCDF4 WASM: Initializing...\")});Module.postRun.push(function(){console.log(\"NetCDF4 WASM: Ready\")});var arguments_=[];var thisProgram=\"./this.program\";var _scriptName=import.meta.url;var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var readAsync,readBinary;if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){try{scriptDirectory=new URL(\".\",_scriptName).href}catch{}{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=async url=>{var response=await fetch(url,{credentials:\"same-origin\"});if(response.ok){return response.arrayBuffer()}throw new Error(response.status+\" : \"+response.url)}}}else{}var out=console.log.bind(console);var err=console.error.bind(console);var wasmBinary;var ABORT=false;function assert(condition,text){if(!condition){abort(text)}}var readyPromiseResolve,readyPromiseReject;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;var HEAP64,HEAPU64;var runtimeInitialized=false;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);Module[\"HEAP64\"]=HEAP64=new BigInt64Array(b);Module[\"HEAPU64\"]=HEAPU64=new BigUint64Array(b)}function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(onPreRuns)}function initRuntime(){runtimeInitialized=true;if(!Module[\"noFSInit\"]&&!FS.initialized)FS.init();TTY.init();wasmExports[\"__wasm_call_ctors\"]();FS.ignorePermissions=false}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(onPostRuns)}function abort(what){Module[\"onAbort\"]?.(what);what=\"Aborted(\"+what+\")\";err(what);ABORT=true;what+=\". Build with -sASSERTIONS for more info.\";var e=new WebAssembly.RuntimeError(what);readyPromiseReject?.(e);throw e}var wasmBinaryFile;function findWasmBinary(){if(Module[\"locateFile\"]){return locateFile(\"netcdf4-wasm.wasm\")}return new URL(\"netcdf4-wasm.wasm\",import.meta.url).href}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\"}async function getWasmBinary(binaryFile){if(!wasmBinary){try{var response=await readAsync(binaryFile);return new Uint8Array(response)}catch{}}return getBinarySync(binaryFile)}async function instantiateArrayBuffer(binaryFile,imports){try{var binary=await getWasmBinary(binaryFile);var instance=await WebAssembly.instantiate(binary,imports);return instance}catch(reason){err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)}}async function instantiateAsync(binary,binaryFile,imports){if(!binary){try{var response=fetch(binaryFile,{credentials:\"same-origin\"});var instantiationResult=await WebAssembly.instantiateStreaming(response,imports);return instantiationResult}catch(reason){err(`wasm streaming compile failed: ${reason}`);err(\"falling back to ArrayBuffer instantiation\")}}return instantiateArrayBuffer(binaryFile,imports)}function getWasmImports(){var imports={env:wasmImports,wasi_snapshot_preview1:wasmImports};return imports}async function createWasm(){function receiveInstance(instance,module){wasmExports=instance.exports;assignWasmExports(wasmExports);updateMemoryViews();return wasmExports}function receiveInstantiationResult(result){return receiveInstance(result[\"instance\"])}var info=getWasmImports();if(Module[\"instantiateWasm\"]){return new Promise((resolve,reject)=>{Module[\"instantiateWasm\"](info,(inst,mod)=>{resolve(receiveInstance(inst,mod))})})}wasmBinaryFile??=findWasmBinary();var result=await instantiateAsync(wasmBinary,wasmBinaryFile,info);var exports=receiveInstantiationResult(result);return exports}class ExitStatus{name=\"ExitStatus\";constructor(status){this.message=`Program terminated with exit(${status})`;this.status=status}}var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};var onPostRuns=[];var addOnPostRun=cb=>onPostRuns.push(cb);var onPreRuns=[];var addOnPreRun=cb=>onPreRuns.push(cb);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\":return HEAP64[ptr>>3];case\"float\":return HEAPF32[ptr>>2];case\"double\":return HEAPF64[ptr>>3];case\"*\":return HEAPU32[ptr>>2];default:abort(`invalid type for getValue: ${type}`)}}var 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\":HEAP64[ptr>>3]=BigInt(value);break;case\"float\":HEAPF32[ptr>>2]=value;break;case\"double\":HEAPF64[ptr>>3]=value;break;case\"*\":HEAPU32[ptr>>2]=value;break;default:abort(`invalid type for setValue: ${type}`)}}var stackRestore=val=>__emscripten_stack_restore(val);var stackSave=()=>_emscripten_stack_get_current();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.slice(-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.slice(0,-1)}return root+dir},basename:path=>path&&path.match(/([^\\/]+|\\/)\\/*$/)[1],join:(...paths)=>PATH.normalize(paths.join(\"/\")),join2:(l,r)=>PATH.normalize(l+\"/\"+r)};var initRandomFill=()=>view=>crypto.getRandomValues(view);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).slice(1);to=PATH_FS.resolve(to).slice(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 UTF8Decoder=globalThis.TextDecoder&&new TextDecoder;var findStringEnd=(heapOrArray,idx,maxBytesToRead,ignoreNul)=>{var maxIdx=idx+maxBytesToRead;if(ignoreNul)return maxIdx;while(heapOrArray[idx]&&!(idx>=maxIdx))++idx;return idx};var UTF8ArrayToString=(heapOrArray,idx=0,maxBytesToRead,ignoreNul)=>{var endPtr=findStringEnd(heapOrArray,idx,maxBytesToRead,ignoreNul);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 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.codePointAt(i);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;i++}}heap[outIdx]=0;return outIdx-startIdx};var 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(globalThis.window?.prompt){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};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.atime=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.mtime=stream.node.ctime=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));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync(tty){if(tty.output?.length>0){out(UTF8ArrayToString(tty.output));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));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync(tty){if(tty.output?.length>0){err(UTF8ArrayToString(tty.output));tty.output=[]}}}};var zeroMemory=(ptr,size)=>HEAPU8.fill(0,ptr,ptr+size);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)zeroMemory(ptr,size);return ptr};var MEMFS={ops_table:null,mount(mount){return MEMFS.createNode(null,\"/\",16895,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,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.atime=node.mtime=node.ctime=Date.now();if(parent){parent.contents[name]=node;parent.atime=parent.mtime=parent.ctime=node.atime}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.atime);attr.mtime=new Date(node.mtime);attr.ctime=new Date(node.ctime);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr(node,attr){for(const key of[\"mode\",\"atime\",\"mtime\",\"ctime\"]){if(attr[key]!=null){node[key]=attr[key]}}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup(parent,name){if(!MEMFS.doesNotExistError){MEMFS.doesNotExistError=new FS.ErrnoError(44);MEMFS.doesNotExistError.stack=\"<generic error, no stack>\"}throw MEMFS.doesNotExistError},mknod(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename(old_node,new_dir,new_name){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){if(FS.isDir(old_node.mode)){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}FS.hashRemoveNode(new_node)}delete old_node.parent.contents[old_node.name];new_dir.contents[new_name]=old_node;old_node.name=new_name;new_dir.ctime=new_dir.mtime=old_node.parent.ctime=old_node.parent.mtime=Date.now()},unlink(parent,name){delete parent.contents[name];parent.ctime=parent.mtime=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.ctime=parent.mtime=Date.now()},readdir(node){return[\".\",\"..\",...Object.keys(node.contents)]},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.mtime=node.ctime=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},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&&contents.buffer===HEAP8.buffer){allocated=false;ptr=contents.byteOffset}else{allocated=true;ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}if(contents){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)}}HEAP8.set(contents,ptr)}}return{ptr,allocated}},msync(stream,buffer,offset,length,mmapFlags){MEMFS.stream_ops.write(stream,buffer,0,length,offset,false);return 0}}};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 WORKERFS={DIR_MODE:16895,FILE_MODE:33279,reader:null,mount(mount){assert(ENVIRONMENT_IS_WORKER);WORKERFS.reader??=new FileReaderSync;var root=WORKERFS.createNode(null,\"/\",WORKERFS.DIR_MODE,0);var createdParents={};function ensureParent(path){var parts=path.split(\"/\");var parent=root;for(var i=0;i<parts.length-1;i++){var curr=parts.slice(0,i+1).join(\"/\");createdParents[curr]||=WORKERFS.createNode(parent,parts[i],WORKERFS.DIR_MODE,0);parent=createdParents[curr]}return parent}function base(path){var parts=path.split(\"/\");return parts[parts.length-1]}for(var file of mount.opts[\"files\"]||[]){WORKERFS.createNode(ensureParent(file.name),base(file.name),WORKERFS.FILE_MODE,0,file,file.lastModifiedDate)}for(var obj of mount.opts[\"blobs\"]||[]){WORKERFS.createNode(ensureParent(obj[\"name\"]),base(obj[\"name\"]),WORKERFS.FILE_MODE,0,obj[\"data\"])}for(var pack of mount.opts[\"packages\"]||[]){for(var file of pack[\"metadata\"].files){var name=file.filename.slice(1);WORKERFS.createNode(ensureParent(name),base(name),WORKERFS.FILE_MODE,0,pack[\"blob\"].slice(file.start,file.end))}}return root},createNode(parent,name,mode,dev,contents,mtime){var node=FS.createNode(parent,name,mode);node.mode=mode;node.node_ops=WORKERFS.node_ops;node.stream_ops=WORKERFS.stream_ops;node.atime=node.mtime=node.ctime=(mtime||new Date).getTime();assert(WORKERFS.FILE_MODE!==WORKERFS.DIR_MODE);if(mode===WORKERFS.FILE_MODE){node.size=contents.size;node.contents=contents}else{node.size=4096;node.contents={}}if(parent){parent.contents[name]=node}return node},node_ops:{getattr(node){return{dev:1,ino:node.id,mode:node.mode,nlink:1,uid:0,gid:0,rdev:0,size:node.size,atime:new Date(node.atime),mtime:new Date(node.mtime),ctime:new Date(node.ctime),blksize:4096,blocks:Math.ceil(node.size/4096)}},setattr(node,attr){for(const key of[\"mode\",\"atime\",\"mtime\",\"ctime\"]){if(attr[key]!=null){node[key]=attr[key]}}},lookup(parent,name){throw new FS.ErrnoError(44)},mknod(parent,name,mode,dev){throw new FS.ErrnoError(63)},rename(oldNode,newDir,newName){throw new FS.ErrnoError(63)},unlink(parent,name){throw new FS.ErrnoError(63)},rmdir(parent,name){throw new FS.ErrnoError(63)},readdir(node){var entries=[\".\",\"..\"];for(var key of Object.keys(node.contents)){entries.push(key)}return entries},symlink(parent,newName,oldPath){throw new FS.ErrnoError(63)}},stream_ops:{read(stream,buffer,offset,length,position){if(position>=stream.node.size)return 0;var chunk=stream.node.contents.slice(position,position+length);var ab=WORKERFS.reader.readAsArrayBuffer(chunk);buffer.set(new Uint8Array(ab),offset);return chunk.size},write(stream,buffer,offset,length,position){throw new FS.ErrnoError(29)},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.size}}if(position<0){throw new FS.ErrnoError(28)}return position}}};var asyncLoad=async url=>{var arrayBuffer=await readAsync(url);return new Uint8Array(arrayBuffer)};var FS_createDataFile=(...args)=>FS.createDataFile(...args);var getUniqueRunDependency=id=>id;var runDependencies=0;var dependenciesFulfilled=null;var removeRunDependency=id=>{runDependencies--;Module[\"monitorRunDependencies\"]?.(runDependencies);if(runDependencies==0){if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}};var addRunDependency=id=>{runDependencies++;Module[\"monitorRunDependencies\"]?.(runDependencies)};var preloadPlugins=[];var FS_handledByPreloadPlugin=async(byteArray,fullname)=>{if(typeof Browser!=\"undefined\")Browser.init();for(var plugin of preloadPlugins){if(plugin[\"canHandle\"](fullname)){return plugin[\"handle\"](byteArray,fullname)}}return byteArray};var FS_preloadFile=async(parent,name,url,canRead,canWrite,dontCreateFile,canOwn,preFinish)=>{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency(`cp ${fullname}`);addRunDependency(dep);try{var byteArray=url;if(typeof url==\"string\"){byteArray=await asyncLoad(url)}byteArray=await FS_handledByPreloadPlugin(byteArray,fullname);preFinish?.();if(!dontCreateFile){FS_createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}}finally{removeRunDependency(dep)}};var FS_createPreloadedFile=(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)=>{FS_preloadFile(parent,name,url,canRead,canWrite,dontCreateFile,canOwn,preFinish).then(onload).catch(onerror)};var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:\"/\",initialized:false,ignorePermissions:true,filesystems:null,syncFSRequests:0,ErrnoError:class{name=\"ErrnoError\";constructor(errno){this.errno=errno}},FSStream:class{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{node_ops={};stream_ops={};readMode=292|73;writeMode=146;mounted=null;constructor(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.rdev=rdev;this.atime=this.mtime=this.ctime=Date.now()}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={}){if(!path){throw new FS.ErrnoError(44)}opts.follow_mount??=true;if(!PATH.isAbs(path)){path=FS.cwd()+\"/\"+path}linkloop:for(var nlinks=0;nlinks<40;nlinks++){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}if(parts[i]===\".\"){continue}if(parts[i]===\"..\"){current_path=PATH.dirname(current_path);if(FS.isRoot(current)){path=current_path+\"/\"+parts.slice(i+1).join(\"/\");nlinks--;continue linkloop}else{current=current.parent}continue}current_path=PATH.join2(current_path,parts[i]);try{current=FS.lookupNode(current,parts[i])}catch(e){if(e?.errno===44&&islast&&opts.noent_okay){return{path:current_path}}throw e}if(FS.isMountpoint(current)&&(!islast||opts.follow_mount)){current=current.mounted.root}if(FS.isLink(current.mode)&&(!islast||opts.follow)){if(!current.node_ops.readlink){throw new FS.ErrnoError(52)}var link=current.node_ops.readlink(current);if(!PATH.isAbs(link)){link=PATH.dirname(current_path)+\"/\"+link}path=link+\"/\"+parts.slice(i+1).join(\"/\");continue linkloop}}return{path:current_path,node:current}}throw new FS.ErrnoError(32)},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}if(perms.includes(\"w\")&&!(node.mode&146)){return 2}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){if(!FS.isDir(dir.mode)){return 54}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}var mode=FS.flagsToPermissionString(flags);if(FS.isDir(node.mode)){if(mode!==\"r\"||flags&(512|64)){return 31}}return FS.nodePermissions(node,mode)},checkOpExists(op,err){if(!op){throw new FS.ErrnoError(err)}return op},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},doSetAttr(stream,node,attr){var setattr=stream?.stream_ops.setattr;var arg=setattr?stream:node;setattr??=node.node_ops.setattr;FS.checkOpExists(setattr,63);setattr(arg,attr)},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)}}for(var mount of mounts){if(mount.type.syncfs){mount.type.syncfs(mount,populate,done)}else{done(null)}}},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,opts,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);for(var[hash,current]of Object.entries(FS.nameTable)){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){throw new FS.ErrnoError(28)}if(name===\".\"||name===\"..\"){throw new FS.ErrnoError(20)}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)},statfs(path){return FS.statfsNode(FS.lookupPath(path,{follow:true}).node)},statfsStream(stream){return FS.statfsNode(stream.node)},statfsNode(node){var rtn={bsize:4096,frsize:4096,blocks:1e6,bfree:5e5,bavail:5e5,files:FS.nextInode,ffree:FS.nextInode-1,fsid:42,flags:2,namelen:255};if(node.node_ops.statfs){Object.assign(rtn,node.node_ops.statfs(node.mount.opts.root))}return rtn},create(path,mode=438){mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir(path,mode=511){mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree(path,mode){var dirs=path.split(\"/\");var d=\"\";for(var dir of dirs){if(!dir)continue;if(d||PATH.isAbs(path))d+=\"/\";d+=dir;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;var readdir=FS.checkOpExists(node.node_ops.readdir,54);return 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 link.node_ops.readlink(link)},stat(path,dontFollow){var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;var getattr=FS.checkOpExists(node.node_ops.getattr,63);return getattr(node)},fstat(fd){var stream=FS.getStreamChecked(fd);var node=stream.node;var getattr=stream.stream_ops.getattr;var arg=getattr?stream:node;getattr??=node.node_ops.getattr;FS.checkOpExists(getattr,63);return getattr(arg)},lstat(path){return FS.stat(path,true)},doChmod(stream,node,mode,dontFollow){FS.doSetAttr(stream,node,{mode:mode&4095|node.mode&~4095,ctime:Date.now(),dontFollow})},chmod(path,mode,dontFollow){var node;if(typeof path==\"string\"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}FS.doChmod(null,node,mode,dontFollow)},lchmod(path,mode){FS.chmod(path,mode,true)},fchmod(fd,mode){var stream=FS.getStreamChecked(fd);FS.doChmod(stream,stream.node,mode,false)},doChown(stream,node,dontFollow){FS.doSetAttr(stream,node,{timestamp:Date.now(),dontFollow})},chown(path,uid,gid,dontFollow){var node;if(typeof path==\"string\"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}FS.doChown(null,node,dontFollow)},lchown(path,uid,gid){FS.chown(path,uid,gid,true)},fchown(fd,uid,gid){var stream=FS.getStreamChecked(fd);FS.doChown(stream,stream.node,false)},doTruncate(stream,node,len){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)}FS.doSetAttr(stream,node,{size:len,timestamp:Date.now()})},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}FS.doTruncate(null,node,len)},ftruncate(fd,len){var stream=FS.getStreamChecked(fd);if(len<0||(stream.flags&2097155)===0){throw new FS.ErrnoError(28)}FS.doTruncate(stream,stream.node,len)},utime(path,atime,mtime){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;var setattr=FS.checkOpExists(node.node_ops.setattr,63);setattr(node,{atime,mtime})},open(path,flags,mode=438){if(path===\"\"){throw new FS.ErrnoError(44)}flags=typeof flags==\"string\"?FS_modeStringToFlags(flags):flags;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;var isDirPath;if(typeof path==\"object\"){node=path}else{isDirPath=path.endsWith(\"/\");var lookup=FS.lookupPath(path,{follow:!(flags&131072),noent_okay:true});node=lookup.node;path=lookup.path}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(20)}}else if(isDirPath){throw new FS.ErrnoError(31)}else{node=FS.mknod(path,mode|511,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,path:FS.getPath(node),flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false});if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(created){FS.chmod(node,mode&511)}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},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)}if(!length){throw new FS.ErrnoError(28)}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\"){abort(`Invalid encoding type \"${opts.encoding}\"`)}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\"){buf=UTF8ArrayToString(buf)}FS.close(stream);return buf},writeFile(path,data,opts={}){opts.flags=opts.flags||577;var stream=FS.open(path,opts.flags,opts.mode);if(typeof data==\"string\"){data=new Uint8Array(intArrayFromString(data,true))}if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn)}else{abort(\"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,llseek:()=>0});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){randomFill(randomBuffer);randomLeft=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\",16895,73);node.stream_ops={llseek:MEMFS.stream_ops.llseek};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},id:fd+1};ret.parent=ret;return ret},readdir(){return Array.from(FS.streams.entries()).filter(([k,v])=>v).map(([k,v])=>k.toString())}};return node}},{},\"/proc/self/fd\")},createStandardStreams(input,output,error){if(input){FS.createDevice(\"/dev\",\"stdin\",input)}else{FS.symlink(\"/dev/tty\",\"/dev/stdin\")}if(output){FS.createDevice(\"/dev\",\"stdout\",null,output)}else{FS.symlink(\"/dev/tty\",\"/dev/stdout\")}if(error){FS.createDevice(\"/dev\",\"stderr\",null,error)}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(){FS.nameTable=new Array(4096);FS.mount(MEMFS,{},\"/\");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={MEMFS,WORKERFS}},init(input,output,error){FS.initialized=true;input??=Module[\"stdin\"];output??=Module[\"stdout\"];error??=Module[\"stderr\"];FS.createStandardStreams(input,output,error)},quit(){FS.initialized=false;for(var stream of FS.streams){if(stream){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){if(e.errno!=20)throw 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);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.atime=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.mtime=stream.node.ctime=Date.now()}return i}});return FS.mkdev(path,mode,dev)},forceLoadFile(obj){if(obj.isDevice||obj.isFolder||obj.link||obj.contents)return true;if(globalThis.XMLHttpRequest){abort(\"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{try{obj.contents=readBinary(obj.url)}catch(e){throw new FS.ErrnoError(29)}}},createLazyFile(parent,name,url,canRead,canWrite){class LazyUint8Array{lengthKnown=false;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))abort(\"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)abort(\"invalid range (\"+from+\", \"+to+\") or no bytes requested!\");if(to>datalength-1)abort(\"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))abort(\"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\")abort(\"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(globalThis.XMLHttpRequest){if(!ENVIRONMENT_IS_WORKER)abort(\"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}}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={};for(const[key,fn]of Object.entries(node.stream_ops)){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,allocated:true}};node.stream_ops=stream_ops;return node}};var UTF8ToString=(ptr,maxBytesToRead,ignoreNul)=>ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead,ignoreNul):\"\";var SYSCALLS={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 dir+\"/\"+path},writeStat(buf,stat){HEAPU32[buf>>2]=stat.dev;HEAPU32[buf+4>>2]=stat.mode;HEAPU32[buf+8>>2]=stat.nlink;HEAPU32[buf+12>>2]=stat.uid;HEAPU32[buf+16>>2]=stat.gid;HEAPU32[buf+20>>2]=stat.rdev;HEAP64[buf+24>>3]=BigInt(stat.size);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();HEAP64[buf+40>>3]=BigInt(Math.floor(atime/1e3));HEAPU32[buf+48>>2]=atime%1e3*1e3*1e3;HEAP64[buf+56>>3]=BigInt(Math.floor(mtime/1e3));HEAPU32[buf+64>>2]=mtime%1e3*1e3*1e3;HEAP64[buf+72>>3]=BigInt(Math.floor(ctime/1e3));HEAPU32[buf+80>>2]=ctime%1e3*1e3*1e3;HEAP64[buf+88>>3]=BigInt(stat.ino);return 0},writeStatFs(buf,stats){HEAPU32[buf+4>>2]=stats.bsize;HEAPU32[buf+60>>2]=stats.bsize;HEAP64[buf+8>>3]=BigInt(stats.blocks);HEAP64[buf+16>>3]=BigInt(stats.bfree);HEAP64[buf+24>>3]=BigInt(stats.bavail);HEAP64[buf+32>>3]=BigInt(stats.files);HEAP64[buf+40>>3]=BigInt(stats.ffree);HEAPU32[buf+48>>2]=stats.fsid;HEAPU32[buf+64>>2]=stats.flags;HEAPU32[buf+56>>2]=stats.namelen},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_dup3(fd,newfd,flags){try{var old=SYSCALLS.getStreamFromFD(fd);if(old.fd===newfd)return-28;if(newfd<0||newfd>=FS.MAX_OPEN_FDS)return-8;var existing=FS.getStream(newfd);if(existing)FS.close(existing);return FS.dupStream(old,newfd).fd}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}}var 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{return SYSCALLS.writeStat(buf,FS.fstat(fd))}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}var INT53_MAX=9007199254740992;var INT53_MIN=-9007199254740992;var bigintToI53Checked=num=>num<INT53_MIN||num>INT53_MAX?NaN:Number(num);function ___syscall_ftruncate64(fd,length){length=bigintToI53Checked(length);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_getdents64(fd,dirp,count){try{var stream=SYSCALLS.getStreamFromFD(fd);stream.getdents||=FS.readdir(stream.path);var struct_size=280;var pos=0;var off=FS.llseek(stream,0,1);var startIdx=Math.floor(off/struct_size);var endIdx=Math.min(stream.getdents.length,startIdx+Math.floor(count/struct_size));for(var idx=startIdx;idx<endIdx;idx++){var id;var type;var name=stream.getdents[idx];if(name===\".\"){id=stream.node.id;type=4}else if(name===\"..\"){var lookup=FS.lookupPath(stream.path,{parent:true});id=lookup.node.id;type=4}else{var child;try{child=FS.lookupNode(stream.node,name)}catch(e){if(e?.errno===28){continue}throw e}id=child.id;type=FS.isChrdev(child.mode)?2:FS.isDir(child.mode)?4:FS.isLink(child.mode)?10:8}HEAP64[dirp+pos>>3]=BigInt(id);HEAP64[dirp+pos+8>>3]=BigInt((idx+1)*struct_size);HEAP16[dirp+pos+16>>1]=280;HEAP8[dirp+pos+18]=type;stringToUTF8(name,dirp+pos+19,256);pos+=struct_size}FS.llseek(stream,idx*struct_size,0);return pos}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_ioctl(fd,op,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:{if(!stream.tty)return-59;return 0}case 21505:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tcgets){var termios=stream.tty.ops.ioctl_tcgets(stream);var argp=syscallGetVarargP();HEAP32[argp>>2]=termios.c_iflag||0;HEAP32[argp+4>>2]=termios.c_oflag||0;HEAP32[argp+8>>2]=termios.c_cflag||0;HEAP32[argp+12>>2]=termios.c_lflag||0;for(var i=0;i<32;i++){HEAP8[argp+i+17]=termios.c_cc[i]||0}return 0}return 0}case 21510:case 21511:case 21512:{if(!stream.tty)return-59;return 0}case 21506:case 21507:case 21508:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tcsets){var argp=syscallGetVarargP();var c_iflag=HEAP32[argp>>2];var c_oflag=HEAP32[argp+4>>2];var c_cflag=HEAP32[argp+8>>2];var c_lflag=HEAP32[argp+12>>2];var c_cc=[];for(var i=0;i<32;i++){c_cc.push(HEAP8[argp+i+17])}return stream.tty.ops.ioctl_tcsets(stream.tty,op,{c_iflag,c_oflag,c_cflag,c_lflag,c_cc})}return 0}case 21519:{if(!stream.tty)return-59;var argp=syscallGetVarargP();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21537:case 21531:{var argp=syscallGetVarargP();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tiocgwinsz){var winsize=stream.tty.ops.ioctl_tiocgwinsz(stream.tty);var argp=syscallGetVarargP();HEAP16[argp>>1]=winsize[0];HEAP16[argp+2>>1]=winsize[1]}return 0}case 21524:{if(!stream.tty)return-59;return 0}case 21515:{if(!stream.tty)return-59;return 0}default:return-28}}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.writeStat(buf,FS.lstat(path))}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);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.writeStat(buf,nofollow?FS.lstat(path):FS.stat(path))}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.writeStat(buf,FS.stat(path))}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){FS.unlink(path)}else if(flags===512){FS.rmdir(path)}else{return-28}return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}var __abort_js=()=>abort(\"\");function __gmtime_js(time,tmPtr){time=bigintToI53Checked(time);var date=new Date(time*1e3);HEAP32[tmPtr>>2]=date.getUTCSeconds();HEAP32[tmPtr+4>>2]=date.getUTCMinutes();HEAP32[tmPtr+8>>2]=date.getUTCHours();HEAP32[tmPtr+12>>2]=date.getUTCDate();HEAP32[tmPtr+16>>2]=date.getUTCMonth();HEAP32[tmPtr+20>>2]=date.getUTCFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getUTCDay();var start=Date.UTC(date.getUTCFullYear(),0,1,0,0,0,0);var yday=(date.getTime()-start)/(1e3*60*60*24)|0;HEAP32[tmPtr+28>>2]=yday}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,tmPtr){time=bigintToI53Checked(time);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}var __mktime_js=function(tmPtr){var ret=(()=>{var date=new Date(HEAP32[tmPtr+20>>2]+1900,HEAP32[tmPtr+16>>2],HEAP32[tmPtr+12>>2],HEAP32[tmPtr+8>>2],HEAP32[tmPtr+4>>2],HEAP32[tmPtr>>2],0);var dst=HEAP32[tmPtr+32>>2];var guessedOffset=date.getTimezoneOffset();var start=new Date(date.getFullYear(),0,1);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dstOffset=Math.min(winterOffset,summerOffset);if(dst<0){HEAP32[tmPtr+32>>2]=Number(summerOffset!=winterOffset&&dstOffset==guessedOffset)}else if(dst>0!=(dstOffset==guessedOffset)){var nonDstOffset=Math.max(winterOffset,summerOffset);var trueOffset=dst>0?dstOffset:nonDstOffset;date.setTime(date.getTime()+(trueOffset-guessedOffset)*6e4)}HEAP32[tmPtr+24>>2]=date.getDay();var yday=ydayFromDate(date)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();HEAP32[tmPtr+20>>2]=date.getYear();var timeMs=date.getTime();if(isNaN(timeMs)){return-1}return timeMs/1e3})();return BigInt(ret)};function __mmap_js(len,prot,flags,fd,offset,allocated,addr){offset=bigintToI53Checked(offset);try{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){offset=bigintToI53Checked(offset);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=timezoneOffset=>{var sign=timezoneOffset>=0?\"-\":\"+\";var absOffset=Math.abs(timezoneOffset);var hours=String(Math.floor(absOffset/60)).padStart(2,\"0\");var minutes=String(absOffset%60).padStart(2,\"0\");return`UTC${sign}${hours}${minutes}`};var winterName=extractZone(winterOffset);var summerName=extractZone(summerOffset);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_get_now=()=>performance.now();var _emscripten_date_now=()=>Date.now();var nowIsMonotonic=1;var checkWasiClock=clock_id=>clock_id>=0&&clock_id<=3;function _clock_time_get(clk_id,ignored_precision,ptime){ignored_precision=bigintToI53Checked(ignored_precision);if(!checkWasiClock(clk_id)){return 28}var now;if(clk_id===0){now=_emscripten_date_now()}else if(nowIsMonotonic){now=_emscripten_get_now()}else{return 52}var nsec=Math.round(now*1e3*1e3);HEAP64[ptime>>3]=BigInt(nsec);return 0}var getHeapMax=()=>2147483648;var _emscripten_get_heap_max=()=>getHeapMax();var growMemory=size=>{var oldHeapSize=wasmMemory.buffer.byteLength;var pages=(size-oldHeapSize+65535)/65536|0;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}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,alignMemory(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=(globalThis.navigator?.language??\"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 _environ_get=(__environ,environ_buf)=>{var bufSize=0;var envp=0;for(var string of getEnvStrings()){var ptr=environ_buf+bufSize;HEAPU32[__environ+envp>>2]=ptr;bufSize+=stringToUTF8(string,ptr,Infinity)+1;envp+=4}return 0};var _environ_sizes_get=(penviron_count,penviron_buf_size)=>{var strings=getEnvStrings();HEAPU32[penviron_count>>2]=strings.length;var bufSize=0;for(var string of strings){bufSize+=lengthBytesUTF8(string)+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}}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_pread(fd,iov,iovcnt,offset,pnum){offset=bigintToI53Checked(offset);try{if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);var num=doReadv(stream,iov,iovcnt,offset);HEAPU32[pnum>>2]=num;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(curr<len){break}if(typeof offset!=\"undefined\"){offset+=curr}}return ret};function _fd_pwrite(fd,iov,iovcnt,offset,pnum){offset=bigintToI53Checked(offset);try{if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);var num=doWritev(stream,iov,iovcnt,offset);HEAPU32[pnum>>2]=num;return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return e.errno}}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,whence,newOffset){offset=bigintToI53Checked(offset);try{if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);FS.llseek(stream,offset,whence);HEAP64[newOffset>>3]=BigInt(stream.position);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_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 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 FS_createPath=(...args)=>FS.createPath(...args);var FS_unlink=(...args)=>FS.unlink(...args);var FS_createLazyFile=(...args)=>FS.createLazyFile(...args);var FS_createDevice=(...args)=>FS.createDevice(...args);FS.createPreloadedFile=FS_createPreloadedFile;FS.preloadFile=FS_preloadFile;FS.staticInit();{if(Module[\"noExitRuntime\"])noExitRuntime=Module[\"noExitRuntime\"];if(Module[\"preloadPlugins\"])preloadPlugins=Module[\"preloadPlugins\"];if(Module[\"print\"])out=Module[\"print\"];if(Module[\"printErr\"])err=Module[\"printErr\"];if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].shift()()}}}Module[\"addRunDependency\"]=addRunDependency;Module[\"removeRunDependency\"]=removeRunDependency;Module[\"ccall\"]=ccall;Module[\"cwrap\"]=cwrap;Module[\"setValue\"]=setValue;Module[\"getValue\"]=getValue;Module[\"UTF8ToString\"]=UTF8ToString;Module[\"stringToUTF8\"]=stringToUTF8;Module[\"lengthBytesUTF8\"]=lengthBytesUTF8;Module[\"FS_preloadFile\"]=FS_preloadFile;Module[\"FS_unlink\"]=FS_unlink;Module[\"FS_createPath\"]=FS_createPath;Module[\"FS_createDevice\"]=FS_createDevice;Module[\"FS\"]=FS;Module[\"FS_createDataFile\"]=FS_createDataFile;Module[\"FS_createLazyFile\"]=FS_createLazyFile;Module[\"WORKERFS\"]=WORKERFS;var _nc_open_wrapper,_nc_close_wrapper,_nc_create_wrapper,_nc_enddef_wrapper,_nc_redef_wrapper,_nc_sync_wrapper,_nc_abort_wrapper,_nc_set_fill_wrapper,_nc_def_dim_wrapper,_nc_inq_ndims_wrapper,_nc_inq_unlimdim_wrapper,_nc_inq_dimids_wrapper,_nc_inq_dim_wrapper,_nc_inq_dimid_wrapper,_nc_inq_dimlen_wrapper,_nc_inq_dimname_wrapper,_nc_rename_dim_wrapper,_nc_def_var_wrapper,_nc_inq_nvars_wrapper,_nc_inq_varids_wrapper,_nc_inq_varid_wrapper,_nc_inq_var_wrapper,_nc_inq_varname_wrapper,_nc_inq_vartype_wrapper,_nc_inq_varndims_wrapper,_nc_inq_vardimid_wrapper,_nc_inq_varnatts_wrapper,_nc_rename_var_wrapper,_nc_inq_var_chunking_wrapper,_nc_def_var_chunking_wrapper,_nc_inq_var_fill_wrapper,_nc_def_var_fill_wrapper,_nc_inq_var_endian_wrapper,_nc_def_var_endian_wrapper,_nc_inq_grps_wrapper,_nc_inq_grp_ncid_wrapper,_nc_inq_grpname_wrapper,_nc_inq_grp_parent_wrapper,_nc_inq_grp_full_ncid_wrapper,_nc_inq_grpname_full_wrapper,_nc_inq_grpname_len_wrapper,_nc_inq_natts_wrapper,_nc_inq_att_wrapper,_nc_inq_attid_wrapper,_nc_inq_attname_wrapper,_nc_inq_atttype_wrapper,_nc_inq_attlen_wrapper,_nc_get_att_text_wrapper,_nc_get_att_uchar_wrapper,_nc_get_att_schar_wrapper,_nc_get_att_short_wrapper,_nc_get_att_int_wrapper,_nc_get_att_long_wrapper,_nc_get_att_float_wrapper,_nc_get_att_double_wrapper,_nc_get_att_ushort_wrapper,_nc_get_att_uint_wrapper,_nc_get_att_longlong_wrapper,_nc_get_att_ulonglong_wrapper,_nc_put_att_text_wrapper,_nc_put_att_short_wrapper,_nc_put_att_int_wrapper,_nc_put_att_float_wrapper,_nc_put_att_double_wrapper,_nc_del_att_wrapper,_nc_rename_att_wrapper,_nc_get_att_string_wrapper,_nc_free_string_wrapper,_free,_nc_get_vara_text_wrapper,_nc_get_vara_string_wrapper,_nc_put_vara_string_wrapper,_nc_get_vara_uchar_wrapper,_nc_get_vara_schar_wrapper,_nc_get_vara_short_wrapper,_nc_get_vara_int_wrapper,_nc_get_vara_long_wrapper,_nc_get_vara_float_wrapper,_nc_get_vara_double_wrapper,_nc_get_vara_ushort_wrapper,_nc_get_vara_uint_wrapper,_nc_get_vara_longlong_wrapper,_nc_get_vara_ulonglong_wrapper,_nc_get_var_text_wrapper,_nc_get_var_string_wrapper,_nc_put_var_string_wrapper,_nc_get_var_uchar_wrapper,_nc_get_var_schar_wrapper,_nc_get_var_short_wrapper,_nc_get_var_int_wrapper,_nc_get_var_long_wrapper,_nc_get_var_float_wrapper,_nc_get_var_double_wrapper,_nc_get_var_ushort_wrapper,_nc_get_var_uint_wrapper,_nc_get_var_longlong_wrapper,_nc_get_var_ulonglong_wrapper,_nc_get_vars_schar_wrapper,_nc_get_vars_uchar_wrapper,_nc_get_vars_short_wrapper,_nc_get_vars_ushort_wrapper,_nc_get_vars_int_wrapper,_nc_get_vars_uint_wrapper,_nc_get_vars_float_wrapper,_nc_get_vars_double_wrapper,_nc_get_vars_longlong_wrapper,_nc_get_vars_ulonglong_wrapper,_nc_get_vars_string_wrapper,_nc_get_vars_wrapper,_nc_get_vars_text_wrapper,_nc_put_vara_text_wrapper,_nc_put_vara_uchar_wrapper,_nc_put_vara_schar_wrapper,_nc_put_vara_short_wrapper,_nc_put_vara_int_wrapper,_nc_put_vara_long_wrapper,_nc_put_vara_float_wrapper,_nc_put_vara_double_wrapper,_nc_put_vara_ushort_wrapper,_nc_put_vara_uint_wrapper,_nc_put_vara_longlong_wrapper,_nc_put_vara_ulonglong_wrapper,_nc_put_var_text_wrapper,_nc_put_var_uchar_wrapper,_nc_put_var_schar_wrapper,_nc_put_var_short_wrapper,_nc_put_var_int_wrapper,_nc_put_var_long_wrapper,_nc_put_var_float_wrapper,_nc_put_var_double_wrapper,_nc_put_var_ushort_wrapper,_nc_put_var_uint_wrapper,_nc_put_var_longlong_wrapper,_nc_put_var_ulonglong_wrapper,_nc_inq_typeids_wrapper,_nc_inq_type_wrapper,_nc_inq_user_type_wrapper,_nc_def_enum_wrapper,_nc_insert_enum_wrapper,_nc_inq_enum_wrapper,_nc_inq_enum_member_wrapper,_nc_inq_enum_ident_wrapper,_nc_get_var_wrapper,_nc_get_vara_wrapper,_malloc,_emscripten_builtin_memalign,__emscripten_stack_restore,__emscripten_stack_alloc,_emscripten_stack_get_current,memory,__indirect_function_table,wasmMemory;function assignWasmExports(wasmExports){_nc_open_wrapper=Module[\"_nc_open_wrapper\"]=wasmExports[\"nc_open_wrapper\"];_nc_close_wrapper=Module[\"_nc_close_wrapper\"]=wasmExports[\"nc_close_wrapper\"];_nc_create_wrapper=Module[\"_nc_create_wrapper\"]=wasmExports[\"nc_create_wrapper\"];_nc_enddef_wrapper=Module[\"_nc_enddef_wrapper\"]=wasmExports[\"nc_enddef_wrapper\"];_nc_redef_wrapper=Module[\"_nc_redef_wrapper\"]=wasmExports[\"nc_redef_wrapper\"];_nc_sync_wrapper=Module[\"_nc_sync_wrapper\"]=wasmExports[\"nc_sync_wrapper\"];_nc_abort_wrapper=Module[\"_nc_abort_wrapper\"]=wasmExports[\"nc_abort_wrapper\"];_nc_set_fill_wrapper=Module[\"_nc_set_fill_wrapper\"]=wasmExports[\"nc_set_fill_wrapper\"];_nc_def_dim_wrapper=Module[\"_nc_def_dim_wrapper\"]=wasmExports[\"nc_def_dim_wrapper\"];_nc_inq_ndims_wrapper=Module[\"_nc_inq_ndims_wrapper\"]=wasmExports[\"nc_inq_ndims_wrapper\"];_nc_inq_unlimdim_wrapper=Module[\"_nc_inq_unlimdim_wrapper\"]=wasmExports[\"nc_inq_unlimdim_wrapper\"];_nc_inq_dimids_wrapper=Module[\"_nc_inq_dimids_wrapper\"]=wasmExports[\"nc_inq_dimids_wrapper\"];_nc_inq_dim_wrapper=Module[\"_nc_inq_dim_wrapper\"]=wasmExports[\"nc_inq_dim_wrapper\"];_nc_inq_dimid_wrapper=Module[\"_nc_inq_dimid_wrapper\"]=wasmExports[\"nc_inq_dimid_wrapper\"];_nc_inq_dimlen_wrapper=Module[\"_nc_inq_dimlen_wrapper\"]=wasmExports[\"nc_inq_dimlen_wrapper\"];_nc_inq_dimname_wrapper=Module[\"_nc_inq_dimname_wrapper\"]=wasmExports[\"nc_inq_dimname_wrapper\"];_nc_rename_dim_wrapper=Module[\"_nc_rename_dim_wrapper\"]=wasmExports[\"nc_rename_dim_wrapper\"];_nc_def_var_wrapper=Module[\"_nc_def_var_wrapper\"]=wasmExports[\"nc_def_var_wrapper\"];_nc_inq_nvars_wrapper=Module[\"_nc_inq_nvars_wrapper\"]=wasmExports[\"nc_inq_nvars_wrapper\"];_nc_inq_varids_wrapper=Module[\"_nc_inq_varids_wrapper\"]=wasmExports[\"nc_inq_varids_wrapper\"];_nc_inq_varid_wrapper=Module[\"_nc_inq_varid_wrapper\"]=wasmExports[\"nc_inq_varid_wrapper\"];_nc_inq_var_wrapper=Module[\"_nc_inq_var_wrapper\"]=wasmExports[\"nc_inq_var_wrapper\"];_nc_inq_varname_wrapper=Module[\"_nc_inq_varname_wrapper\"]=wasmExports[\"nc_inq_varname_wrapper\"];_nc_inq_vartype_wrapper=Module[\"_nc_inq_vartype_wrapper\"]=wasmExports[\"nc_inq_vartype_wrapper\"];_nc_inq_varndims_wrapper=Module[\"_nc_inq_varndims_wrapper\"]=wasmExports[\"nc_inq_varndims_wrapper\"];_nc_inq_vardimid_wrapper=Module[\"_nc_inq_vardimid_wrapper\"]=wasmExports[\"nc_inq_vardimid_wrapper\"];_nc_inq_varnatts_wrapper=Module[\"_nc_inq_varnatts_wrapper\"]=wasmExports[\"nc_inq_varnatts_wrapper\"];_nc_rename_var_wrapper=Module[\"_nc_rename_var_wrapper\"]=wasmExports[\"nc_rename_var_wrapper\"];_nc_inq_var_chunking_wrapper=Module[\"_nc_inq_var_chunking_wrapper\"]=wasmExports[\"nc_inq_var_chunking_wrapper\"];_nc_def_var_chunking_wrapper=Module[\"_nc_def_var_chunking_wrapper\"]=wasmExports[\"nc_def_var_chunking_wrapper\"];_nc_inq_var_fill_wrapper=Module[\"_nc_inq_var_fill_wrapper\"]=wasmExports[\"nc_inq_var_fill_wrapper\"];_nc_def_var_fill_wrapper=Module[\"_nc_def_var_fill_wrapper\"]=wasmExports[\"nc_def_var_fill_wrapper\"];_nc_inq_var_endian_wrapper=Module[\"_nc_inq_var_endian_wrapper\"]=wasmExports[\"nc_inq_var_endian_wrapper\"];_nc_def_var_endian_wrapper=Module[\"_nc_def_var_endian_wrapper\"]=wasmExports[\"nc_def_var_endian_wrapper\"];_nc_inq_grps_wrapper=Module[\"_nc_inq_grps_wrapper\"]=wasmExports[\"nc_inq_grps_wrapper\"];_nc_inq_grp_ncid_wrapper=Module[\"_nc_inq_grp_ncid_wrapper\"]=wasmExports[\"nc_inq_grp_ncid_wrapper\"];_nc_inq_grpname_wrapper=Module[\"_nc_inq_grpname_wrapper\"]=wasmExports[\"nc_inq_grpname_wrapper\"];_nc_inq_grp_parent_wrapper=Module[\"_nc_inq_grp_parent_wrapper\"]=wasmExports[\"nc_inq_grp_parent_wrapper\"];_nc_inq_grp_full_ncid_wrapper=Module[\"_nc_inq_grp_full_ncid_wrapper\"]=wasmExports[\"nc_inq_grp_full_ncid_wrapper\"];_nc_inq_grpname_full_wrapper=Module[\"_nc_inq_grpname_full_wrapper\"]=wasmExports[\"nc_inq_grpname_full_wrapper\"];_nc_inq_grpname_len_wrapper=Module[\"_nc_inq_grpname_len_wrapper\"]=wasmExports[\"nc_inq_grpname_len_wrapper\"];_nc_inq_natts_wrapper=Module[\"_nc_inq_natts_wrapper\"]=wasmExports[\"nc_inq_natts_wrapper\"];_nc_inq_att_wrapper=Module[\"_nc_inq_att_wrapper\"]=wasmExports[\"nc_inq_att_wrapper\"];_nc_inq_attid_wrapper=Module[\"_nc_inq_attid_wrapper\"]=wasmExports[\"nc_inq_attid_wrapper\"];_nc_inq_attname_wrapper=Module[\"_nc_inq_attname_wrapper\"]=wasmExports[\"nc_inq_attname_wrapper\"];_nc_inq_atttype_wrapper=Module[\"_nc_inq_atttype_wrapper\"]=wasmExports[\"nc_inq_atttype_wrapper\"];_nc_inq_attlen_wrapper=Module[\"_nc_inq_attlen_wrapper\"]=wasmExports[\"nc_inq_attlen_wrapper\"];_nc_get_att_text_wrapper=Module[\"_nc_get_att_text_wrapper\"]=wasmExports[\"nc_get_att_text_wrapper\"];_nc_get_att_uchar_wrapper=Module[\"_nc_get_att_uchar_wrapper\"]=wasmExports[\"nc_get_att_uchar_wrapper\"];_nc_get_att_schar_wrapper=Module[\"_nc_get_att_schar_wrapper\"]=wasmExports[\"nc_get_att_schar_wrapper\"];_nc_get_att_short_wrapper=Module[\"_nc_get_att_short_wrapper\"]=wasmExports[\"nc_get_att_short_wrapper\"];_nc_get_att_int_wrapper=Module[\"_nc_get_att_int_wrapper\"]=wasmExports[\"nc_get_att_int_wrapper\"];_nc_get_att_long_wrapper=Module[\"_nc_get_att_long_wrapper\"]=wasmExports[\"nc_get_att_long_wrapper\"];_nc_get_att_float_wrapper=Module[\"_nc_get_att_float_wrapper\"]=wasmExports[\"nc_get_att_float_wrapper\"];_nc_get_att_double_wrapper=Module[\"_nc_get_att_double_wrapper\"]=wasmExports[\"nc_get_att_double_wrapper\"];_nc_get_att_ushort_wrapper=Module[\"_nc_get_att_ushort_wrapper\"]=wasmExports[\"nc_get_att_ushort_wrapper\"];_nc_get_att_uint_wrapper=Module[\"_nc_get_att_uint_wrapper\"]=wasmExports[\"nc_get_att_uint_wrapper\"];_nc_get_att_longlong_wrapper=Module[\"_nc_get_att_longlong_wrapper\"]=wasmExports[\"nc_get_att_longlong_wrapper\"];_nc_get_att_ulonglong_wrapper=Module[\"_nc_get_att_ulonglong_wrapper\"]=wasmExports[\"nc_get_att_ulonglong_wrapper\"];_nc_put_att_text_wrapper=Module[\"_nc_put_att_text_wrapper\"]=wasmExports[\"nc_put_att_text_wrapper\"];_nc_put_att_short_wrapper=Module[\"_nc_put_att_short_wrapper\"]=wasmExports[\"nc_put_att_short_wrapper\"];_nc_put_att_int_wrapper=Module[\"_nc_put_att_int_wrapper\"]=wasmExports[\"nc_put_att_int_wrapper\"];_nc_put_att_float_wrapper=Module[\"_nc_put_att_float_wrapper\"]=wasmExports[\"nc_put_att_float_wrapper\"];_nc_put_att_double_wrapper=Module[\"_nc_put_att_double_wrapper\"]=wasmExports[\"nc_put_att_double_wrapper\"];_nc_del_att_wrapper=Module[\"_nc_del_att_wrapper\"]=wasmExports[\"nc_del_att_wrapper\"];_nc_rename_att_wrapper=Module[\"_nc_rename_att_wrapper\"]=wasmExports[\"nc_rename_att_wrapper\"];_nc_get_att_string_wrapper=Module[\"_nc_get_att_string_wrapper\"]=wasmExports[\"nc_get_att_string_wrapper\"];_nc_free_string_wrapper=Module[\"_nc_free_string_wrapper\"]=wasmExports[\"nc_free_string_wrapper\"];_free=Module[\"_free\"]=wasmExports[\"free\"];_nc_get_vara_text_wrapper=Module[\"_nc_get_vara_text_wrapper\"]=wasmExports[\"nc_get_vara_text_wrapper\"];_nc_get_vara_string_wrapper=Module[\"_nc_get_vara_string_wrapper\"]=wasmExports[\"nc_get_vara_string_wrapper\"];_nc_put_vara_string_wrapper=Module[\"_nc_put_vara_string_wrapper\"]=wasmExports[\"nc_put_vara_string_wrapper\"];_nc_get_vara_uchar_wrapper=Module[\"_nc_get_vara_uchar_wrapper\"]=wasmExports[\"nc_get_vara_uchar_wrapper\"];_nc_get_vara_schar_wrapper=Module[\"_nc_get_vara_schar_wrapper\"]=wasmExports[\"nc_get_vara_schar_wrapper\"];_nc_get_vara_short_wrapper=Module[\"_nc_get_vara_short_wrapper\"]=wasmExports[\"nc_get_vara_short_wrapper\"];_nc_get_vara_int_wrapper=Module[\"_nc_get_vara_int_wrapper\"]=wasmExports[\"nc_get_vara_int_wrapper\"];_nc_get_vara_long_wrapper=Module[\"_nc_get_vara_long_wrapper\"]=wasmExports[\"nc_get_vara_long_wrapper\"];_nc_get_vara_float_wrapper=Module[\"_nc_get_vara_float_wrapper\"]=wasmExports[\"nc_get_vara_float_wrapper\"];_nc_get_vara_double_wrapper=Module[\"_nc_get_vara_double_wrapper\"]=wasmExports[\"nc_get_vara_double_wrapper\"];_nc_get_vara_ushort_wrapper=Module[\"_nc_get_vara_ushort_wrapper\"]=wasmExports[\"nc_get_vara_ushort_wrapper\"];_nc_get_vara_uint_wrapper=Module[\"_nc_get_vara_uint_wrapper\"]=wasmExports[\"nc_get_vara_uint_wrapper\"];_nc_get_vara_longlong_wrapper=Module[\"_nc_get_vara_longlong_wrapper\"]=wasmExports[\"nc_get_vara_longlong_wrapper\"];_nc_get_vara_ulonglong_wrapper=Module[\"_nc_get_vara_ulonglong_wrapper\"]=wasmExports[\"nc_get_vara_ulonglong_wrapper\"];_nc_get_var_text_wrapper=Module[\"_nc_get_var_text_wrapper\"]=wasmExports[\"nc_get_var_text_wrapper\"];_nc_get_var_string_wrapper=Module[\"_nc_get_var_string_wrapper\"]=wasmExports[\"nc_get_var_string_wrapper\"];_nc_put_var_string_wrapper=Module[\"_nc_put_var_string_wrapper\"]=wasmExports[\"nc_put_var_string_wrapper\"];_nc_get_var_uchar_wrapper=Module[\"_nc_get_var_uchar_wrapper\"]=wasmExports[\"nc_get_var_uchar_wrapper\"];_nc_get_var_schar_wrapper=Module[\"_nc_get_var_schar_wrapper\"]=wasmExports[\"nc_get_var_schar_wrapper\"];_nc_get_var_short_wrapper=Module[\"_nc_get_var_short_wrapper\"]=wasmExports[\"nc_get_var_short_wrapper\"];_nc_get_var_int_wrapper=Module[\"_nc_get_var_int_wrapper\"]=wasmExports[\"nc_get_var_int_wrapper\"];_nc_get_var_long_wrapper=Module[\"_nc_get_var_long_wrapper\"]=wasmExports[\"nc_get_var_long_wrapper\"];_nc_get_var_float_wrapper=Module[\"_nc_get_var_float_wrapper\"]=wasmExports[\"nc_get_var_float_wrapper\"];_nc_get_var_double_wrapper=Module[\"_nc_get_var_double_wrapper\"]=wasmExports[\"nc_get_var_double_wrapper\"];_nc_get_var_ushort_wrapper=Module[\"_nc_get_var_ushort_wrapper\"]=wasmExports[\"nc_get_var_ushort_wrapper\"];_nc_get_var_uint_wrapper=Module[\"_nc_get_var_uint_wrapper\"]=wasmExports[\"nc_get_var_uint_wrapper\"];_nc_get_var_longlong_wrapper=Module[\"_nc_get_var_longlong_wrapper\"]=wasmExports[\"nc_get_var_longlong_wrapper\"];_nc_get_var_ulonglong_wrapper=Module[\"_nc_get_var_ulonglong_wrapper\"]=wasmExports[\"nc_get_var_ulonglong_wrapper\"];_nc_get_vars_schar_wrapper=Module[\"_nc_get_vars_schar_wrapper\"]=wasmExports[\"nc_get_vars_schar_wrapper\"];_nc_get_vars_uchar_wrapper=Module[\"_nc_get_vars_uchar_wrapper\"]=wasmExports[\"nc_get_vars_uchar_wrapper\"];_nc_get_vars_short_wrapper=Module[\"_nc_get_vars_short_wrapper\"]=wasmExports[\"nc_get_vars_short_wrapper\"];_nc_get_vars_ushort_wrapper=Module[\"_nc_get_vars_ushort_wrapper\"]=wasmExports[\"nc_get_vars_ushort_wrapper\"];_nc_get_vars_int_wrapper=Module[\"_nc_get_vars_int_wrapper\"]=wasmExports[\"nc_get_vars_int_wrapper\"];_nc_get_vars_uint_wrapper=Module[\"_nc_get_vars_uint_wrapper\"]=wasmExports[\"nc_get_vars_uint_wrapper\"];_nc_get_vars_float_wrapper=Module[\"_nc_get_vars_float_wrapper\"]=wasmExports[\"nc_get_vars_float_wrapper\"];_nc_get_vars_double_wrapper=Module[\"_nc_get_vars_double_wrapper\"]=wasmExports[\"nc_get_vars_double_wrapper\"];_nc_get_vars_longlong_wrapper=Module[\"_nc_get_vars_longlong_wrapper\"]=wasmExports[\"nc_get_vars_longlong_wrapper\"];_nc_get_vars_ulonglong_wrapper=Module[\"_nc_get_vars_ulonglong_wrapper\"]=wasmExports[\"nc_get_vars_ulonglong_wrapper\"];_nc_get_vars_string_wrapper=Module[\"_nc_get_vars_string_wrapper\"]=wasmExports[\"nc_get_vars_string_wrapper\"];_nc_get_vars_wrapper=Module[\"_nc_get_vars_wrapper\"]=wasmExports[\"nc_get_vars_wrapper\"];_nc_get_vars_text_wrapper=Module[\"_nc_get_vars_text_wrapper\"]=wasmExports[\"nc_get_vars_text_wrapper\"];_nc_put_vara_text_wrapper=Module[\"_nc_put_vara_text_wrapper\"]=wasmExports[\"nc_put_vara_text_wrapper\"];_nc_put_vara_uchar_wrapper=Module[\"_nc_put_vara_uchar_wrapper\"]=wasmExports[\"nc_put_vara_uchar_wrapper\"];_nc_put_vara_schar_wrapper=Module[\"_nc_put_vara_schar_wrapper\"]=wasmExports[\"nc_put_vara_schar_wrapper\"];_nc_put_vara_short_wrapper=Module[\"_nc_put_vara_short_wrapper\"]=wasmExports[\"nc_put_vara_short_wrapper\"];_nc_put_vara_int_wrapper=Module[\"_nc_put_vara_int_wrapper\"]=wasmExports[\"nc_put_vara_int_wrapper\"];_nc_put_vara_long_wrapper=Module[\"_nc_put_vara_long_wrapper\"]=wasmExports[\"nc_put_vara_long_wrapper\"];_nc_put_vara_float_wrapper=Module[\"_nc_put_vara_float_wrapper\"]=wasmExports[\"nc_put_vara_float_wrapper\"];_nc_put_vara_double_wrapper=Module[\"_nc_put_vara_double_wrapper\"]=wasmExports[\"nc_put_vara_double_wrapper\"];_nc_put_vara_ushort_wrapper=Module[\"_nc_put_vara_ushort_wrapper\"]=wasmExports[\"nc_put_vara_ushort_wrapper\"];_nc_put_vara_uint_wrapper=Module[\"_nc_put_vara_uint_wrapper\"]=wasmExports[\"nc_put_vara_uint_wrapper\"];_nc_put_vara_longlong_wrapper=Module[\"_nc_put_vara_longlong_wrapper\"]=wasmExports[\"nc_put_vara_longlong_wrapper\"];_nc_put_vara_ulonglong_wrapper=Module[\"_nc_put_vara_ulonglong_wrapper\"]=wasmExports[\"nc_put_vara_ulonglong_wrapper\"];_nc_put_var_text_wrapper=Module[\"_nc_put_var_text_wrapper\"]=wasmExports[\"nc_put_var_text_wrapper\"];_nc_put_var_uchar_wrapper=Module[\"_nc_put_var_uchar_wrapper\"]=wasmExports[\"nc_put_var_uchar_wrapper\"];_nc_put_var_schar_wrapper=Module[\"_nc_put_var_schar_wrapper\"]=wasmExports[\"nc_put_var_schar_wrapper\"];_nc_put_var_short_wrapper=Module[\"_nc_put_var_short_wrapper\"]=wasmExports[\"nc_put_var_short_wrapper\"];_nc_put_var_int_wrapper=Module[\"_nc_put_var_int_wrapper\"]=wasmExports[\"nc_put_var_int_wrapper\"];_nc_put_var_long_wrapper=Module[\"_nc_put_var_long_wrapper\"]=wasmExports[\"nc_put_var_long_wrapper\"];_nc_put_var_float_wrapper=Module[\"_nc_put_var_float_wrapper\"]=wasmExports[\"nc_put_var_float_wrapper\"];_nc_put_var_double_wrapper=Module[\"_nc_put_var_double_wrapper\"]=wasmExports[\"nc_put_var_double_wrapper\"];_nc_put_var_ushort_wrapper=Module[\"_nc_put_var_ushort_wrapper\"]=wasmExports[\"nc_put_var_ushort_wrapper\"];_nc_put_var_uint_wrapper=Module[\"_nc_put_var_uint_wrapper\"]=wasmExports[\"nc_put_var_uint_wrapper\"];_nc_put_var_longlong_wrapper=Module[\"_nc_put_var_longlong_wrapper\"]=wasmExports[\"nc_put_var_longlong_wrapper\"];_nc_put_var_ulonglong_wrapper=Module[\"_nc_put_var_ulonglong_wrapper\"]=wasmExports[\"nc_put_var_ulonglong_wrapper\"];_nc_inq_typeids_wrapper=Module[\"_nc_inq_typeids_wrapper\"]=wasmExports[\"nc_inq_typeids_wrapper\"];_nc_inq_type_wrapper=Module[\"_nc_inq_type_wrapper\"]=wasmExports[\"nc_inq_type_wrapper\"];_nc_inq_user_type_wrapper=Module[\"_nc_inq_user_type_wrapper\"]=wasmExports[\"nc_inq_user_type_wrapper\"];_nc_def_enum_wrapper=Module[\"_nc_def_enum_wrapper\"]=wasmExports[\"nc_def_enum_wrapper\"];_nc_insert_enum_wrapper=Module[\"_nc_insert_enum_wrapper\"]=wasmExports[\"nc_insert_enum_wrapper\"];_nc_inq_enum_wrapper=Module[\"_nc_inq_enum_wrapper\"]=wasmExports[\"nc_inq_enum_wrapper\"];_nc_inq_enum_member_wrapper=Module[\"_nc_inq_enum_member_wrapper\"]=wasmExports[\"nc_inq_enum_member_wrapper\"];_nc_inq_enum_ident_wrapper=Module[\"_nc_inq_enum_ident_wrapper\"]=wasmExports[\"nc_inq_enum_ident_wrapper\"];_nc_get_var_wrapper=Module[\"_nc_get_var_wrapper\"]=wasmExports[\"nc_get_var_wrapper\"];_nc_get_vara_wrapper=Module[\"_nc_get_vara_wrapper\"]=wasmExports[\"nc_get_vara_wrapper\"];_malloc=Module[\"_malloc\"]=wasmExports[\"malloc\"];_emscripten_builtin_memalign=wasmExports[\"emscripten_builtin_memalign\"];__emscripten_stack_restore=wasmExports[\"_emscripten_stack_restore\"];__emscripten_stack_alloc=wasmExports[\"_emscripten_stack_alloc\"];_emscripten_stack_get_current=wasmExports[\"emscripten_stack_get_current\"];memory=wasmMemory=wasmExports[\"memory\"];__indirect_function_table=wasmExports[\"__indirect_function_table\"]}var wasmImports={__syscall_dup3:___syscall_dup3,__syscall_faccessat:___syscall_faccessat,__syscall_fcntl64:___syscall_fcntl64,__syscall_fstat64:___syscall_fstat64,__syscall_ftruncate64:___syscall_ftruncate64,__syscall_getcwd:___syscall_getcwd,__syscall_getdents64:___syscall_getdents64,__syscall_ioctl:___syscall_ioctl,__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,_abort_js:__abort_js,_gmtime_js:__gmtime_js,_localtime_js:__localtime_js,_mktime_js:__mktime_js,_mmap_js:__mmap_js,_munmap_js:__munmap_js,_tzset_js:__tzset_js,clock_time_get:_clock_time_get,emscripten_date_now:_emscripten_date_now,emscripten_get_heap_max:_emscripten_get_heap_max,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_pread:_fd_pread,fd_pwrite:_fd_pwrite,fd_read:_fd_read,fd_seek:_fd_seek,fd_write:_fd_write};function run(){if(runDependencies>0){dependenciesFulfilled=run;return}preRun();if(runDependencies>0){dependenciesFulfilled=run;return}function doRun(){Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();readyPromiseResolve?.(Module);Module[\"onRuntimeInitialized\"]?.();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(()=>{setTimeout(()=>Module[\"setStatus\"](\"\"),1);doRun()},1)}else{doRun()}}var wasmExports;wasmExports=await (createWasm());run();Module.allocateString=function(str){var len=lengthBytesUTF8(str)+1;var ptr=_malloc(len);stringToUTF8(str,ptr,len);return ptr};Module.freeString=function(ptr){_free(ptr)};console.log(\"NetCDF4 WASM: JavaScript bindings loaded\");if(runtimeInitialized){moduleRtn=Module}else{moduleRtn=new Promise((resolve,reject)=>{readyPromiseResolve=resolve;readyPromiseReject=reject})}\n;return moduleRtn}export default NetCDF4Module;\n","import * as NCGet from './netcdf-getters.js';\nimport { WasmModuleLoader } from \"./wasm-module.js\";\nimport { NC_CONSTANTS } from \"./constants.js\";\nimport * as netcdf4Module from './netcdf4-wasm.js';\nlet netcdfModule;\nlet mod;\n// Wait for runtime initialization\nconst waitForModule = new Promise(async (resolve) => {\n // const netcdf4Module = await import('./netcdf4-wasm.js');\n const createNetCDF4Module = netcdf4Module.default;\n netcdfModule = await createNetCDF4Module({\n locateFile: (file) => {\n if (file.endsWith('.wasm')) {\n const origin = self.location.origin;\n const basePath = process.env.NEXT_PUBLIC_BASE_PATH ?? '';\n return `${origin}${basePath}/${file}`;\n }\n return file;\n }\n });\n resolve(netcdfModule);\n});\n// @ts-ignore worker scope\nself.onmessage = async (e) => {\n const data = e.data;\n const { type, id } = data;\n try {\n // ---------------- INIT ----------------\n if (type === 'init') {\n mod = WasmModuleLoader.wrapModule(await waitForModule);\n const { blob, filename } = data;\n const pathParts = filename.split('/');\n const baseName = pathParts.pop();\n const mountPoint = pathParts.join('/') || '/';\n // safer for nested paths\n try {\n mod.FS.mkdirTree(mountPoint);\n }\n catch (_) { }\n try {\n mod.FS.mount(mod.WORKERFS, {\n blobs: [{ name: baseName, data: blob }],\n }, mountPoint);\n }\n catch (err) {\n console.warn(\"Mount failed (might already be mounted):\", err.message);\n }\n self.postMessage({ id, success: true });\n return;\n }\n // ------------- ENSURE READY -------------\n if (!mod) {\n mod = WasmModuleLoader.wrapModule(await waitForModule);\n }\n let result;\n switch (type) {\n case 'open': {\n const openResult = mod.nc_open(data.path, data.modeValue);\n if (openResult.result !== NC_CONSTANTS.NC_NOERR) {\n throw new Error('nc_open failed: ' + openResult.result);\n }\n result = openResult.ncid;\n break;\n }\n case 'close': {\n const closeResult = mod.nc_close(data.ncid);\n if (closeResult !== NC_CONSTANTS.NC_NOERR) {\n throw new Error(\"Failed to close file\");\n }\n result = closeResult;\n break;\n }\n // ---- Globals ----\n case 'getGlobalAttributes':\n result = NCGet.getGlobalAttributes(mod, data.ncid, data.groupPath);\n break;\n case 'getFullMetadata':\n result = NCGet.getFullMetadata(mod, data.ncid, data.groupPath);\n break;\n // ---- Dims ----\n case 'getDimCount':\n result = NCGet.getDimCount(mod, data.ncid);\n break;\n case 'getDimIDs':\n result = Array.from(NCGet.getDimIDs(mod, data.ncid));\n break;\n case 'getDim':\n result = NCGet.getDim(mod, data.ncid, data.dimid);\n break;\n case 'getDims':\n result = NCGet.getDims(mod, data.ncid, data.groupPath);\n break;\n // ---- Vars ----\n case 'getGroupVariables':\n // console.log('Worker: getGroupVariables', data.ncid);\n result = NCGet.getGroupVariables(mod, data.ncid, data.groupPath);\n break;\n case 'getVarIDs':\n result = Array.from(NCGet.getVarIDs(mod, data.ncid));\n break;\n case 'getVarCount':\n result = NCGet.getVarCount(mod, data.ncid);\n break;\n case 'getAttributeName':\n result = NCGet.getAttributeName(mod, data.ncid, data.varid, data.attId);\n break;\n case 'getVariableInfo':\n result = NCGet.getVariableInfo(mod, data.ncid, data.variable, data.groupPath);\n break;\n case 'getAttributeValues':\n result = NCGet.getAttributeValues(mod, data.ncid, data.varid, data.attname);\n break;\n case 'getVariableArrayWithSelection':\n result = NCGet.getVariableArrayWithSelection(mod, data.ncid, data.variable, data.selection, data.groupPath, data.options);\n break;\n // ---- Arrays ----\n case 'getVariableArray':\n result = NCGet.getVariableArray(mod, data.ncid, data.variable, data.groupPath);\n break;\n case 'getSlicedVariableArray':\n result = NCGet.getSlicedVariableArray(mod, data.ncid, data.variable, data.start, data.count, data.groupPath);\n break;\n // ---- Groups ----\n case 'getGroups':\n result = NCGet.getGroups(mod, data.ncid);\n break;\n case 'getGroupsRecursive':\n result = NCGet.getGroupsRecursive(mod, data.ncid);\n break;\n case 'getGroupNCID':\n result = NCGet.getGroupNCID(mod, data.ncid, data.groupPath);\n break;\n case 'getGroupName':\n result = NCGet.getGroupName(mod, data.ncid);\n break;\n case 'getGroupPath':\n result = NCGet.getGroupPath(mod, data.ncid);\n break;\n case 'getCompleteHierarchy':\n result = NCGet.getCompleteHierarchy(mod, data.ncid, data.groupPath);\n break;\n case 'getVariables':\n result = NCGet.getVariables(mod, data.ncid);\n break;\n default:\n throw new Error(`Unknown message type: ${type}`);\n }\n self.postMessage({ id, success: true, result });\n }\n catch (err) {\n console.error(`Worker Error [${type}]:`, err);\n self.postMessage({ id, success: false, error: err.message });\n }\n};\n//# sourceMappingURL=netcdf-worker.js.map"],"names":["NC_CONSTANTS","CONSTANT_DTYPE_MAP","DATA_TYPE_SIZE","isAll","v","resolveDim","sel","dimSizeRaw","dimSize","idx","step","rawStart","rawStop","start","stop","lo","span","count","getGroupVariables","module","ncid","groupPath","workingNcid","getGroupNCID","variables","varCount","getVarCount","varid","nameResult","findDimInHierarchy","result","getDimCount","getDims","dimIDs","getDimIDs","dims","dimid","dim","getDim","includeParents","findCoordinateVariable","startNcid","name","current","getGroupParent","_r","varID","units","coordNcid","coord","getAttributeValues","attname","attInfo","attType","getter","getGlobalAttributes","attributes","nattsResult","nAtts","attNames","i","getAttributeName","attId","getFullMetadata","varIds","getVarIDs","metas","varMeta","getVariableInfo","varDeets","getTypeClass","xtype","typeClass","buildEnumDict","enumTypeId","enumBaseType","enumInqResult","enumResult","numMembers","enumDict","memberResult","memberResultCode","memberName","value","numValue","resolveEnumContext","varType","baseType","resolveVariableType","size","acc","nctype","enumCtx","variable","info","isId","actualType","typeMultiplier","dimids","shape","dimensions","atts","chunkResult","isChunked","chunks","chunkElements","a","b","convertEnumValuesToNames","data","enumNames","getVariableArray","options","arraySize","arrayType","readers","args","arrayData","reader","getSlicedVariableArray","getVariableArrayWithSelection","selection","r","varInfo","ndim","dimSizes","resolved","d","stride","lastIdx","totalElements","c","currentPath","getGroupPath","parts","p","currentNcid","part","getGroups","groups","grpids","grpid","getGroupsRecursive","getGroupName","getCompleteHierarchy","includeParentDims","parentDims","fullPath","groupsResult","subgroups","getVariables","allVars","path","vars","varData","newPath","subVars","NC_MAX_NAME","NC_MAX_DIMS","NC_MAX_VARS","stridedLength","safeByteLength","totalLength","elementSize","byteLength","WasmModuleLoader","createNetCDF4Module","netcdf4Wasm","rawModule","file","error","nc_open_wrapper","nc_close_wrapper","nc_create_wrapper","nc_def_dim_wrapper","nc_def_var_wrapper","nc_put_var_double_wrapper","nc_enddef_wrapper","nc_inq_ndims_wrapper","nc_inq_unlimdim_wrapper","nc_inq_dimids_wrapper","nc_inq_dim_wrapper","nc_inq_dimid_wrapper","nc_inq_dimlen_wrapper","nc_inq_dimname_wrapper","nc_inq_nvars_wrapper","nc_inq_varids_wrapper","nc_inq_varid_wrapper","nc_inq_var_wrapper","nc_inq_varname_wrapper","nc_inq_vartype_wrapper","nc_inq_varndims_wrapper","nc_inq_vardimid_wrapper","nc_inq_varnatts_wrapper","nc_inq_var_chunking_wrapper","nc_inq_natts_wrapper","nc_inq_att_wrapper","nc_inq_attid_wrapper","nc_inq_attname_wrapper","nc_inq_atttype_wrapper","nc_inq_attlen_wrapper","nc_get_att_text_wrapper","nc_get_att_short_wrapper","nc_get_att_int_wrapper","nc_get_att_float_wrapper","nc_get_att_double_wrapper","nc_get_att_longlong_wrapper","nc_get_att_string_wrapper","nc_free_string_wrapper","nc_get_att_schar_wrapper","nc_get_att_uchar_wrapper","nc_get_att_ushort_wrapper","nc_get_att_uint_wrapper","nc_get_att_ulonglong_wrapper","nc_get_vara_short_wrapper","nc_get_vara_int_wrapper","nc_get_vara_float_wrapper","nc_get_vara_double_wrapper","nc_get_vara_longlong_wrapper","nc_get_vara_schar_wrapper","nc_get_vara_uchar_wrapper","nc_get_vara_ushort_wrapper","nc_get_vara_uint_wrapper","nc_get_vara_ulonglong_wrapper","nc_get_vara_string_wrapper","nc_get_var_text_wrapper","nc_get_var_short_wrapper","nc_get_var_int_wrapper","nc_get_var_longlong_wrapper","nc_get_var_float_wrapper","nc_get_var_double_wrapper","nc_get_var_schar_wrapper","nc_get_var_uchar_wrapper","nc_get_var_ushort_wrapper","nc_get_var_uint_wrapper","nc_get_var_ulonglong_wrapper","nc_get_var_string_wrapper","nc_get_vars_schar_wrapper","nc_get_vars_uchar_wrapper","nc_get_vars_short_wrapper","nc_get_vars_ushort_wrapper","nc_get_vars_int_wrapper","nc_get_vars_uint_wrapper","nc_get_vars_float_wrapper","nc_get_vars_double_wrapper","nc_get_vars_longlong_wrapper","nc_get_vars_ulonglong_wrapper","nc_get_vars_string_wrapper","nc_get_vars_wrapper","nc_get_vars_text_wrapper","nc_inq_grps_wrapper","nc_inq_grp_ncid_wrapper","nc_inq_grpname_wrapper","nc_inq_grp_parent_wrapper","nc_inq_grp_full_ncid_wrapper","nc_inq_grpname_full_wrapper","nc_inq_grpname_len_wrapper","nc_inq_typeids_wrapper","nc_inq_type_wrapper","nc_inq_user_type_wrapper","nc_def_enum_wrapper","nc_insert_enum_wrapper","nc_inq_enum_wrapper","nc_inq_enum_member_wrapper","nc_inq_enum_ident_wrapper","nc_get_var_wrapper","nc_get_vara_wrapper","mode","ncidPtr","ndimsPtr","ndims","unlimdimidPtr","unlimdimid","include_parents","dimidsPtr","_","namePtr","lenPtr","len","dimidPtr","nvarsPtr","nvars","varidsPtr","varids","varidPtr","typePtr","nattsPtr","type","natts","chunkingPtr","chunkSizesPtr","chunking","chunkSizes","inqResult","attnumPtr","attnum","length","dataPtr","startPtr","countPtr","val","strPtr","numgrpsPtr","grpidsPtr","numgrps","grp_name","grp_ncidPtr","grp_ncid","parent_ncidPtr","parent_ncid","full_name","lenpPtr","lenp","ptrArray","maxTypeIds","ntypesPtr","typeidsPtr","ntypes","typeids","sizePtr","baseTypePtr","nfieldsPtr","classPtr","nfields","baseTypeId","typeidPtr","typeid","valuePtr","i64Array","baseSizePtr","numMembersPtr","baseSize","identPtr","identifier","stridePtr","char","NetCDF4Module","moduleArg","moduleRtn","Module","ENVIRONMENT_IS_WEB","ENVIRONMENT_IS_WORKER","_b","_a","_c","thisProgram","_scriptName","scriptDirectory","locateFile","readAsync","readBinary","url","xhr","response","out","err","wasmBinary","ABORT","assert","condition","text","abort","readyPromiseResolve","readyPromiseReject","HEAP8","HEAPU8","HEAP16","HEAP32","HEAPU32","HEAPF32","HEAPF64","HEAP64","runtimeInitialized","updateMemoryViews","wasmMemory","preRun","addOnPreRun","callRuntimeCallbacks","onPreRuns","initRuntime","FS","wasmExports","postRun","addOnPostRun","onPostRuns","what","e","wasmBinaryFile","findWasmBinary","getBinarySync","getWasmBinary","binaryFile","instantiateArrayBuffer","imports","binary","instance","reason","instantiateAsync","instantiationResult","getWasmImports","wasmImports","createWasm","receiveInstance","assignWasmExports","receiveInstantiationResult","resolve","reject","inst","mod","exports","callbacks","cb","getValue","ptr","setValue","stackRestore","__emscripten_stack_restore","stackSave","_emscripten_stack_get_current","PATH","filename","splitPathRe","allowAboveRoot","up","last","isAbsolute","trailingSlash","root","dir","paths","l","initRandomFill","view","randomFill","PATH_FS","resolvedPath","resolvedAbsolute","from","to","trim","arr","end","fromParts","toParts","samePartsLength","outputParts","UTF8Decoder","findStringEnd","heapOrArray","maxBytesToRead","ignoreNul","maxIdx","UTF8ArrayToString","endPtr","str","u0","u1","u2","ch","FS_stdin_getChar_buffer","lengthBytesUTF8","stringToUTF8Array","heap","outIdx","maxBytesToWrite","startIdx","endIdx","u","intArrayFromString","stringy","dontAddNull","u8array","numBytesWritten","FS_stdin_getChar","TTY","dev","ops","stream","tty","buffer","offset","pos","bytesRead","optional_actions","zeroMemory","alignMemory","alignment","mmapAlloc","_emscripten_builtin_memalign","MEMFS","mount","parent","node","newCapacity","prevCapacity","CAPACITY_DOUBLING_MAX","oldContents","newSize","attr","key","old_node","new_dir","new_name","new_node","newname","oldpath","position","contents","canOwn","whence","prot","flags","allocated","mmapFlags","FS_modeStringToFlags","flagModes","FS_getMode","canRead","canWrite","WORKERFS","createdParents","ensureParent","curr","base","obj","pack","mtime","oldNode","newDir","newName","entries","oldPath","chunk","ab","asyncLoad","arrayBuffer","FS_createDataFile","runDependencies","dependenciesFulfilled","removeRunDependency","id","callback","addRunDependency","preloadPlugins","FS_handledByPreloadPlugin","byteArray","fullname","plugin","FS_preloadFile","dontCreateFile","preFinish","FS_createPreloadedFile","onload","onerror","errno","__publicField","rdev","opts","linkloop","nlinks","current_path","islast","link","parentid","hash","errCode","nodeName","flag","perms","isdir","op","fd","origStream","setattr","arg","device","ma","mi","mounts","check","m","populate","completed","doCallback","done","mountpoint","pseudo","lookup","mountRoot","next","rtn","dirs","newpath","old_path","new_path","old_dirname","new_dirname","old_name","old_dir","relative","readdir","dontFollow","getattr","uid","gid","atime","isDirPath","created","seeking","bytesWritten","cmd","stat","buf","randomBuffer","randomLeft","randomByte","proc_self","ret","k","input","output","dontResolveLastLink","properties","LazyUint8Array","chunkOffset","chunkNum","datalength","header","hasByteServing","usesGzip","chunkSize","doXHR","lazyArray","stream_ops","fn","writeChunks","UTF8ToString","SYSCALLS","dirfd","allowEmpty","dirstream","ctime","stats","addr","___syscall_dup3","newfd","old","existing","___syscall_faccessat","amode","syscallGetVarargI","syscallGetVarargP","___syscall_fcntl64","varargs","newStream","___syscall_fstat64","INT53_MAX","INT53_MIN","bigintToI53Checked","num","___syscall_ftruncate64","stringToUTF8","outPtr","___syscall_getcwd","cwd","cwdLengthInBytes","___syscall_getdents64","dirp","struct_size","off","child","___syscall_ioctl","termios","argp","c_iflag","c_oflag","c_cflag","c_lflag","c_cc","winsize","___syscall_lstat64","___syscall_mkdirat","___syscall_newfstatat","nofollow","___syscall_openat","___syscall_readlinkat","bufsize","endChar","___syscall_rmdir","___syscall_stat64","___syscall_unlinkat","__abort_js","__gmtime_js","time","tmPtr","date","yday","isLeapYear","year","MONTH_DAYS_LEAP_CUMULATIVE","MONTH_DAYS_REGULAR_CUMULATIVE","ydayFromDate","leap","monthDaysCumulative","__localtime_js","summerOffset","winterOffset","dst","__mktime_js","guessedOffset","dstOffset","nonDstOffset","trueOffset","timeMs","__mmap_js","res","__munmap_js","__tzset_js","timezone","daylight","std_name","dst_name","currentYear","winter","summer","stdTimezoneOffset","extractZone","timezoneOffset","sign","absOffset","hours","minutes","winterName","summerName","_emscripten_get_now","_emscripten_date_now","checkWasiClock","clock_id","_clock_time_get","clk_id","ignored_precision","ptime","now","nsec","getHeapMax","_emscripten_get_heap_max","growMemory","oldHeapSize","pages","_emscripten_resize_heap","requestedSize","oldSize","maxHeapSize","cutDown","overGrownHeapSize","replacement","ENV","getExecutableName","getEnvStrings","lang","env","x","strings","_environ_get","__environ","environ_buf","bufSize","envp","string","_environ_sizes_get","penviron_count","penviron_buf_size","_fd_close","doReadv","iov","iovcnt","_fd_pread","pnum","doWritev","_fd_pwrite","_fd_read","_fd_seek","newOffset","_fd_write","getCFunc","ident","func","writeArrayToMemory","array","stackAlloc","sz","__emscripten_stack_alloc","stringToUTF8OnStack","ccall","returnType","argTypes","toC","convertReturnValue","cArgs","stack","converter","onDone","cwrap","numericArgs","numericRet","FS_createPath","FS_unlink","FS_createLazyFile","FS_createDevice","_free","_malloc","run","doRun","netcdfModule","waitForModule","netcdf4Module.default","origin","basePath","define_process_env_default","blob","pathParts","baseName","mountPoint","openResult","closeResult","NCGet.getGlobalAttributes","NCGet.getFullMetadata","NCGet.getDimCount","NCGet.getDimIDs","NCGet.getDim","NCGet.getDims","NCGet.getGroupVariables","NCGet.getVarIDs","NCGet.getVarCount","NCGet.getAttributeName","NCGet.getVariableInfo","NCGet.getAttributeValues","NCGet.getVariableArrayWithSelection","NCGet.getVariableArray","NCGet.getSlicedVariableArray","NCGet.getGroups","NCGet.getGroupsRecursive","NCGet.getGroupNCID","NCGet.getGroupName","NCGet.getGroupPath","NCGet.getCompleteHierarchy","NCGet.getVariables"],"mappings":"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"}
|