{
  "version": 3,
  "sources": ["../../../node_modules/fast-glob/out/utils/array.js", "../../../node_modules/fast-glob/out/utils/errno.js", "../../../node_modules/fast-glob/out/utils/fs.js", "../../../node_modules/fast-glob/out/utils/path.js", "../../../node_modules/is-extglob/index.js", "../../../node_modules/is-glob/index.js", "../../../node_modules/glob-parent/index.js", "../../../node_modules/braces/lib/utils.js", "../../../node_modules/braces/lib/stringify.js", "../../../node_modules/is-number/index.js", "../../../node_modules/to-regex-range/index.js", "../../../node_modules/fill-range/index.js", "../../../node_modules/braces/lib/compile.js", "../../../node_modules/braces/lib/expand.js", "../../../node_modules/braces/lib/constants.js", "../../../node_modules/braces/lib/parse.js", "../../../node_modules/braces/index.js", "../../../node_modules/picomatch/lib/constants.js", "../../../node_modules/picomatch/lib/utils.js", "../../../node_modules/picomatch/lib/scan.js", "../../../node_modules/picomatch/lib/parse.js", "../../../node_modules/picomatch/lib/picomatch.js", "../../../node_modules/picomatch/index.js", "../../../node_modules/micromatch/index.js", "../../../node_modules/fast-glob/out/utils/pattern.js", "../../../node_modules/merge2/index.js", "../../../node_modules/fast-glob/out/utils/stream.js", "../../../node_modules/fast-glob/out/utils/string.js", "../../../node_modules/fast-glob/out/utils/index.js", "../../../node_modules/fast-glob/out/managers/tasks.js", "../../../node_modules/fast-glob/out/managers/patterns.js", "../../../node_modules/@nodelib/fs.stat/out/providers/async.js", "../../../node_modules/@nodelib/fs.stat/out/providers/sync.js", "../../../node_modules/@nodelib/fs.stat/out/adapters/fs.js", "../../../node_modules/@nodelib/fs.stat/out/settings.js", "../../../node_modules/@nodelib/fs.stat/out/index.js", "../../../node_modules/queue-microtask/index.js", "../../../node_modules/run-parallel/index.js", "../../../node_modules/@nodelib/fs.scandir/out/constants.js", "../../../node_modules/@nodelib/fs.scandir/out/utils/fs.js", "../../../node_modules/@nodelib/fs.scandir/out/utils/index.js", "../../../node_modules/@nodelib/fs.scandir/out/providers/common.js", "../../../node_modules/@nodelib/fs.scandir/out/providers/async.js", "../../../node_modules/@nodelib/fs.scandir/out/providers/sync.js", "../../../node_modules/@nodelib/fs.scandir/out/adapters/fs.js", "../../../node_modules/@nodelib/fs.scandir/out/settings.js", "../../../node_modules/@nodelib/fs.scandir/out/index.js", "../../../node_modules/reusify/reusify.js", "../../../node_modules/fastq/queue.js", "../../../node_modules/@nodelib/fs.walk/out/readers/common.js", "../../../node_modules/@nodelib/fs.walk/out/readers/reader.js", "../../../node_modules/@nodelib/fs.walk/out/readers/async.js", "../../../node_modules/@nodelib/fs.walk/out/providers/async.js", "../../../node_modules/@nodelib/fs.walk/out/providers/stream.js", "../../../node_modules/@nodelib/fs.walk/out/readers/sync.js", "../../../node_modules/@nodelib/fs.walk/out/providers/sync.js", "../../../node_modules/@nodelib/fs.walk/out/settings.js", "../../../node_modules/@nodelib/fs.walk/out/index.js", "../../../node_modules/fast-glob/out/readers/reader.js", "../../../node_modules/fast-glob/out/readers/stream.js", "../../../node_modules/fast-glob/out/providers/matchers/matcher.js", "../../../node_modules/fast-glob/out/providers/matchers/partial.js", "../../../node_modules/fast-glob/out/providers/filters/deep.js", "../../../node_modules/fast-glob/out/providers/filters/entry.js", "../../../node_modules/fast-glob/out/providers/filters/error.js", "../../../node_modules/fast-glob/out/providers/transformers/entry.js", "../../../node_modules/fast-glob/out/providers/provider.js", "../../../node_modules/fast-glob/out/providers/async.js", "../../../node_modules/fast-glob/out/providers/stream.js", "../../../node_modules/fast-glob/out/readers/sync.js", "../../../node_modules/fast-glob/out/providers/sync.js", "../../../node_modules/fast-glob/out/settings.js", "../../../node_modules/fast-glob/out/index.js", "../../../node_modules/wasm-feature-detect/dist/cjs/index.js", "../src/log.ts", "../src/bindings/connection.ts", "../src/bindings/runtime.ts", "../src/bindings/file_stats.ts", "../src/flat_arrow.ts", "../src/bindings/bindings_base.ts", "../src/bindings/duckdb-eh.js", "../src/bindings/duckdb.js", "../src/bindings/bindings_node_base.ts", "../src/bindings/bindings_node_eh.ts", "../src/bindings/runtime_node.ts", "../src/platform.ts", "../src/bindings/bindings_node.ts", "../src/targets/duckdb-node-blocking.ts", "../src/parallel/async_connection.ts", "../src/parallel/worker_request.ts", "../src/parallel/async_bindings.ts", "../test/index_node.ts", "../test/all_types.test.ts", "../test/bindings.test.ts", "../test/batch_stream.test.ts", "../test/filesystem.test.ts", "../test/batch_stream_async.test.ts", "../test/insert_arrow.test.ts", "../test/table_test.ts", "../test/insert_json.test.ts", "../test/insert_csv.test.ts", "../test/tokenizer.test.ts", "../test/tablenames.test.ts", "../test/regression/github_332.test.ts", "../test/regression/github_334.test.ts", "../test/regression/github_393.test.ts", "../test/regression/github_448.test.ts", "../test/regression/github_470.test.ts", "../test/regression/github_477.test.ts", "../test/regression/index.ts"],
  "sourcesContent": ["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.splitWhen = exports.flatten = void 0;\nfunction flatten(items) {\n    return items.reduce((collection, item) => [].concat(collection, item), []);\n}\nexports.flatten = flatten;\nfunction splitWhen(items, predicate) {\n    const result = [[]];\n    let groupIndex = 0;\n    for (const item of items) {\n        if (predicate(item)) {\n            groupIndex++;\n            result[groupIndex] = [];\n        }\n        else {\n            result[groupIndex].push(item);\n        }\n    }\n    return result;\n}\nexports.splitWhen = splitWhen;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isEnoentCodeError = void 0;\nfunction isEnoentCodeError(error) {\n    return error.code === 'ENOENT';\n}\nexports.isEnoentCodeError = isEnoentCodeError;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createDirentFromStats = void 0;\nclass DirentFromStats {\n    constructor(name, stats) {\n        this.name = name;\n        this.isBlockDevice = stats.isBlockDevice.bind(stats);\n        this.isCharacterDevice = stats.isCharacterDevice.bind(stats);\n        this.isDirectory = stats.isDirectory.bind(stats);\n        this.isFIFO = stats.isFIFO.bind(stats);\n        this.isFile = stats.isFile.bind(stats);\n        this.isSocket = stats.isSocket.bind(stats);\n        this.isSymbolicLink = stats.isSymbolicLink.bind(stats);\n    }\n}\nfunction createDirentFromStats(name, stats) {\n    return new DirentFromStats(name, stats);\n}\nexports.createDirentFromStats = createDirentFromStats;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.removeLeadingDotSegment = exports.escape = exports.makeAbsolute = exports.unixify = void 0;\nconst path = require(\"path\");\nconst LEADING_DOT_SEGMENT_CHARACTERS_COUNT = 2; // ./ or .\\\\\nconst UNESCAPED_GLOB_SYMBOLS_RE = /(\\\\?)([()*?[\\]{|}]|^!|[!+@](?=\\())/g;\n/**\n * Designed to work only with simple paths: `dir\\\\file`.\n */\nfunction unixify(filepath) {\n    return filepath.replace(/\\\\/g, '/');\n}\nexports.unixify = unixify;\nfunction makeAbsolute(cwd, filepath) {\n    return path.resolve(cwd, filepath);\n}\nexports.makeAbsolute = makeAbsolute;\nfunction escape(pattern) {\n    return pattern.replace(UNESCAPED_GLOB_SYMBOLS_RE, '\\\\$2');\n}\nexports.escape = escape;\nfunction removeLeadingDotSegment(entry) {\n    // We do not use `startsWith` because this is 10x slower than current implementation for some cases.\n    // eslint-disable-next-line @typescript-eslint/prefer-string-starts-ends-with\n    if (entry.charAt(0) === '.') {\n        const secondCharactery = entry.charAt(1);\n        if (secondCharactery === '/' || secondCharactery === '\\\\') {\n            return entry.slice(LEADING_DOT_SEGMENT_CHARACTERS_COUNT);\n        }\n    }\n    return entry;\n}\nexports.removeLeadingDotSegment = removeLeadingDotSegment;\n", "/*!\n * is-extglob <https://github.com/jonschlinkert/is-extglob>\n *\n * Copyright (c) 2014-2016, Jon Schlinkert.\n * Licensed under the MIT License.\n */\n\nmodule.exports = function isExtglob(str) {\n  if (typeof str !== 'string' || str === '') {\n    return false;\n  }\n\n  var match;\n  while ((match = /(\\\\).|([@?!+*]\\(.*\\))/g.exec(str))) {\n    if (match[2]) return true;\n    str = str.slice(match.index + match[0].length);\n  }\n\n  return false;\n};\n", "/*!\n * is-glob <https://github.com/jonschlinkert/is-glob>\n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\nvar isExtglob = require('is-extglob');\nvar chars = { '{': '}', '(': ')', '[': ']'};\nvar strictCheck = function(str) {\n  if (str[0] === '!') {\n    return true;\n  }\n  var index = 0;\n  var pipeIndex = -2;\n  var closeSquareIndex = -2;\n  var closeCurlyIndex = -2;\n  var closeParenIndex = -2;\n  var backSlashIndex = -2;\n  while (index < str.length) {\n    if (str[index] === '*') {\n      return true;\n    }\n\n    if (str[index + 1] === '?' && /[\\].+)]/.test(str[index])) {\n      return true;\n    }\n\n    if (closeSquareIndex !== -1 && str[index] === '[' && str[index + 1] !== ']') {\n      if (closeSquareIndex < index) {\n        closeSquareIndex = str.indexOf(']', index);\n      }\n      if (closeSquareIndex > index) {\n        if (backSlashIndex === -1 || backSlashIndex > closeSquareIndex) {\n          return true;\n        }\n        backSlashIndex = str.indexOf('\\\\', index);\n        if (backSlashIndex === -1 || backSlashIndex > closeSquareIndex) {\n          return true;\n        }\n      }\n    }\n\n    if (closeCurlyIndex !== -1 && str[index] === '{' && str[index + 1] !== '}') {\n      closeCurlyIndex = str.indexOf('}', index);\n      if (closeCurlyIndex > index) {\n        backSlashIndex = str.indexOf('\\\\', index);\n        if (backSlashIndex === -1 || backSlashIndex > closeCurlyIndex) {\n          return true;\n        }\n      }\n    }\n\n    if (closeParenIndex !== -1 && str[index] === '(' && str[index + 1] === '?' && /[:!=]/.test(str[index + 2]) && str[index + 3] !== ')') {\n      closeParenIndex = str.indexOf(')', index);\n      if (closeParenIndex > index) {\n        backSlashIndex = str.indexOf('\\\\', index);\n        if (backSlashIndex === -1 || backSlashIndex > closeParenIndex) {\n          return true;\n        }\n      }\n    }\n\n    if (pipeIndex !== -1 && str[index] === '(' && str[index + 1] !== '|') {\n      if (pipeIndex < index) {\n        pipeIndex = str.indexOf('|', index);\n      }\n      if (pipeIndex !== -1 && str[pipeIndex + 1] !== ')') {\n        closeParenIndex = str.indexOf(')', pipeIndex);\n        if (closeParenIndex > pipeIndex) {\n          backSlashIndex = str.indexOf('\\\\', pipeIndex);\n          if (backSlashIndex === -1 || backSlashIndex > closeParenIndex) {\n            return true;\n          }\n        }\n      }\n    }\n\n    if (str[index] === '\\\\') {\n      var open = str[index + 1];\n      index += 2;\n      var close = chars[open];\n\n      if (close) {\n        var n = str.indexOf(close, index);\n        if (n !== -1) {\n          index = n + 1;\n        }\n      }\n\n      if (str[index] === '!') {\n        return true;\n      }\n    } else {\n      index++;\n    }\n  }\n  return false;\n};\n\nvar relaxedCheck = function(str) {\n  if (str[0] === '!') {\n    return true;\n  }\n  var index = 0;\n  while (index < str.length) {\n    if (/[*?{}()[\\]]/.test(str[index])) {\n      return true;\n    }\n\n    if (str[index] === '\\\\') {\n      var open = str[index + 1];\n      index += 2;\n      var close = chars[open];\n\n      if (close) {\n        var n = str.indexOf(close, index);\n        if (n !== -1) {\n          index = n + 1;\n        }\n      }\n\n      if (str[index] === '!') {\n        return true;\n      }\n    } else {\n      index++;\n    }\n  }\n  return false;\n};\n\nmodule.exports = function isGlob(str, options) {\n  if (typeof str !== 'string' || str === '') {\n    return false;\n  }\n\n  if (isExtglob(str)) {\n    return true;\n  }\n\n  var check = strictCheck;\n\n  // optionally relax check\n  if (options && options.strict === false) {\n    check = relaxedCheck;\n  }\n\n  return check(str);\n};\n", "'use strict';\n\nvar isGlob = require('is-glob');\nvar pathPosixDirname = require('path').posix.dirname;\nvar isWin32 = require('os').platform() === 'win32';\n\nvar slash = '/';\nvar backslash = /\\\\/g;\nvar enclosure = /[\\{\\[].*[\\}\\]]$/;\nvar globby = /(^|[^\\\\])([\\{\\[]|\\([^\\)]+$)/;\nvar escaped = /\\\\([\\!\\*\\?\\|\\[\\]\\(\\)\\{\\}])/g;\n\n/**\n * @param {string} str\n * @param {Object} opts\n * @param {boolean} [opts.flipBackslashes=true]\n * @returns {string}\n */\nmodule.exports = function globParent(str, opts) {\n  var options = Object.assign({ flipBackslashes: true }, opts);\n\n  // flip windows path separators\n  if (options.flipBackslashes && isWin32 && str.indexOf(slash) < 0) {\n    str = str.replace(backslash, slash);\n  }\n\n  // special case for strings ending in enclosure containing path separator\n  if (enclosure.test(str)) {\n    str += slash;\n  }\n\n  // preserves full path in case of trailing path separator\n  str += 'a';\n\n  // remove path parts that are globby\n  do {\n    str = pathPosixDirname(str);\n  } while (isGlob(str) || globby.test(str));\n\n  // remove escape chars and return result\n  return str.replace(escaped, '$1');\n};\n", "'use strict';\n\nexports.isInteger = num => {\n  if (typeof num === 'number') {\n    return Number.isInteger(num);\n  }\n  if (typeof num === 'string' && num.trim() !== '') {\n    return Number.isInteger(Number(num));\n  }\n  return false;\n};\n\n/**\n * Find a node of the given type\n */\n\nexports.find = (node, type) => node.nodes.find(node => node.type === type);\n\n/**\n * Find a node of the given type\n */\n\nexports.exceedsLimit = (min, max, step = 1, limit) => {\n  if (limit === false) return false;\n  if (!exports.isInteger(min) || !exports.isInteger(max)) return false;\n  return ((Number(max) - Number(min)) / Number(step)) >= limit;\n};\n\n/**\n * Escape the given node with '\\\\' before node.value\n */\n\nexports.escapeNode = (block, n = 0, type) => {\n  let node = block.nodes[n];\n  if (!node) return;\n\n  if ((type && node.type === type) || node.type === 'open' || node.type === 'close') {\n    if (node.escaped !== true) {\n      node.value = '\\\\' + node.value;\n      node.escaped = true;\n    }\n  }\n};\n\n/**\n * Returns true if the given brace node should be enclosed in literal braces\n */\n\nexports.encloseBrace = node => {\n  if (node.type !== 'brace') return false;\n  if ((node.commas >> 0 + node.ranges >> 0) === 0) {\n    node.invalid = true;\n    return true;\n  }\n  return false;\n};\n\n/**\n * Returns true if a brace node is invalid.\n */\n\nexports.isInvalidBrace = block => {\n  if (block.type !== 'brace') return false;\n  if (block.invalid === true || block.dollar) return true;\n  if ((block.commas >> 0 + block.ranges >> 0) === 0) {\n    block.invalid = true;\n    return true;\n  }\n  if (block.open !== true || block.close !== true) {\n    block.invalid = true;\n    return true;\n  }\n  return false;\n};\n\n/**\n * Returns true if a node is an open or close node\n */\n\nexports.isOpenOrClose = node => {\n  if (node.type === 'open' || node.type === 'close') {\n    return true;\n  }\n  return node.open === true || node.close === true;\n};\n\n/**\n * Reduce an array of text nodes.\n */\n\nexports.reduce = nodes => nodes.reduce((acc, node) => {\n  if (node.type === 'text') acc.push(node.value);\n  if (node.type === 'range') node.type = 'text';\n  return acc;\n}, []);\n\n/**\n * Flatten an array\n */\n\nexports.flatten = (...args) => {\n  const result = [];\n  const flat = arr => {\n    for (let i = 0; i < arr.length; i++) {\n      let ele = arr[i];\n      Array.isArray(ele) ? flat(ele, result) : ele !== void 0 && result.push(ele);\n    }\n    return result;\n  };\n  flat(args);\n  return result;\n};\n", "'use strict';\n\nconst utils = require('./utils');\n\nmodule.exports = (ast, options = {}) => {\n  let stringify = (node, parent = {}) => {\n    let invalidBlock = options.escapeInvalid && utils.isInvalidBrace(parent);\n    let invalidNode = node.invalid === true && options.escapeInvalid === true;\n    let output = '';\n\n    if (node.value) {\n      if ((invalidBlock || invalidNode) && utils.isOpenOrClose(node)) {\n        return '\\\\' + node.value;\n      }\n      return node.value;\n    }\n\n    if (node.value) {\n      return node.value;\n    }\n\n    if (node.nodes) {\n      for (let child of node.nodes) {\n        output += stringify(child);\n      }\n    }\n    return output;\n  };\n\n  return stringify(ast);\n};\n\n", "/*!\n * is-number <https://github.com/jonschlinkert/is-number>\n *\n * Copyright (c) 2014-present, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n'use strict';\n\nmodule.exports = function(num) {\n  if (typeof num === 'number') {\n    return num - num === 0;\n  }\n  if (typeof num === 'string' && num.trim() !== '') {\n    return Number.isFinite ? Number.isFinite(+num) : isFinite(+num);\n  }\n  return false;\n};\n", "/*!\n * to-regex-range <https://github.com/micromatch/to-regex-range>\n *\n * Copyright (c) 2015-present, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n'use strict';\n\nconst isNumber = require('is-number');\n\nconst toRegexRange = (min, max, options) => {\n  if (isNumber(min) === false) {\n    throw new TypeError('toRegexRange: expected the first argument to be a number');\n  }\n\n  if (max === void 0 || min === max) {\n    return String(min);\n  }\n\n  if (isNumber(max) === false) {\n    throw new TypeError('toRegexRange: expected the second argument to be a number.');\n  }\n\n  let opts = { relaxZeros: true, ...options };\n  if (typeof opts.strictZeros === 'boolean') {\n    opts.relaxZeros = opts.strictZeros === false;\n  }\n\n  let relax = String(opts.relaxZeros);\n  let shorthand = String(opts.shorthand);\n  let capture = String(opts.capture);\n  let wrap = String(opts.wrap);\n  let cacheKey = min + ':' + max + '=' + relax + shorthand + capture + wrap;\n\n  if (toRegexRange.cache.hasOwnProperty(cacheKey)) {\n    return toRegexRange.cache[cacheKey].result;\n  }\n\n  let a = Math.min(min, max);\n  let b = Math.max(min, max);\n\n  if (Math.abs(a - b) === 1) {\n    let result = min + '|' + max;\n    if (opts.capture) {\n      return `(${result})`;\n    }\n    if (opts.wrap === false) {\n      return result;\n    }\n    return `(?:${result})`;\n  }\n\n  let isPadded = hasPadding(min) || hasPadding(max);\n  let state = { min, max, a, b };\n  let positives = [];\n  let negatives = [];\n\n  if (isPadded) {\n    state.isPadded = isPadded;\n    state.maxLen = String(state.max).length;\n  }\n\n  if (a < 0) {\n    let newMin = b < 0 ? Math.abs(b) : 1;\n    negatives = splitToPatterns(newMin, Math.abs(a), state, opts);\n    a = state.a = 0;\n  }\n\n  if (b >= 0) {\n    positives = splitToPatterns(a, b, state, opts);\n  }\n\n  state.negatives = negatives;\n  state.positives = positives;\n  state.result = collatePatterns(negatives, positives, opts);\n\n  if (opts.capture === true) {\n    state.result = `(${state.result})`;\n  } else if (opts.wrap !== false && (positives.length + negatives.length) > 1) {\n    state.result = `(?:${state.result})`;\n  }\n\n  toRegexRange.cache[cacheKey] = state;\n  return state.result;\n};\n\nfunction collatePatterns(neg, pos, options) {\n  let onlyNegative = filterPatterns(neg, pos, '-', false, options) || [];\n  let onlyPositive = filterPatterns(pos, neg, '', false, options) || [];\n  let intersected = filterPatterns(neg, pos, '-?', true, options) || [];\n  let subpatterns = onlyNegative.concat(intersected).concat(onlyPositive);\n  return subpatterns.join('|');\n}\n\nfunction splitToRanges(min, max) {\n  let nines = 1;\n  let zeros = 1;\n\n  let stop = countNines(min, nines);\n  let stops = new Set([max]);\n\n  while (min <= stop && stop <= max) {\n    stops.add(stop);\n    nines += 1;\n    stop = countNines(min, nines);\n  }\n\n  stop = countZeros(max + 1, zeros) - 1;\n\n  while (min < stop && stop <= max) {\n    stops.add(stop);\n    zeros += 1;\n    stop = countZeros(max + 1, zeros) - 1;\n  }\n\n  stops = [...stops];\n  stops.sort(compare);\n  return stops;\n}\n\n/**\n * Convert a range to a regex pattern\n * @param {Number} `start`\n * @param {Number} `stop`\n * @return {String}\n */\n\nfunction rangeToPattern(start, stop, options) {\n  if (start === stop) {\n    return { pattern: start, count: [], digits: 0 };\n  }\n\n  let zipped = zip(start, stop);\n  let digits = zipped.length;\n  let pattern = '';\n  let count = 0;\n\n  for (let i = 0; i < digits; i++) {\n    let [startDigit, stopDigit] = zipped[i];\n\n    if (startDigit === stopDigit) {\n      pattern += startDigit;\n\n    } else if (startDigit !== '0' || stopDigit !== '9') {\n      pattern += toCharacterClass(startDigit, stopDigit, options);\n\n    } else {\n      count++;\n    }\n  }\n\n  if (count) {\n    pattern += options.shorthand === true ? '\\\\d' : '[0-9]';\n  }\n\n  return { pattern, count: [count], digits };\n}\n\nfunction splitToPatterns(min, max, tok, options) {\n  let ranges = splitToRanges(min, max);\n  let tokens = [];\n  let start = min;\n  let prev;\n\n  for (let i = 0; i < ranges.length; i++) {\n    let max = ranges[i];\n    let obj = rangeToPattern(String(start), String(max), options);\n    let zeros = '';\n\n    if (!tok.isPadded && prev && prev.pattern === obj.pattern) {\n      if (prev.count.length > 1) {\n        prev.count.pop();\n      }\n\n      prev.count.push(obj.count[0]);\n      prev.string = prev.pattern + toQuantifier(prev.count);\n      start = max + 1;\n      continue;\n    }\n\n    if (tok.isPadded) {\n      zeros = padZeros(max, tok, options);\n    }\n\n    obj.string = zeros + obj.pattern + toQuantifier(obj.count);\n    tokens.push(obj);\n    start = max + 1;\n    prev = obj;\n  }\n\n  return tokens;\n}\n\nfunction filterPatterns(arr, comparison, prefix, intersection, options) {\n  let result = [];\n\n  for (let ele of arr) {\n    let { string } = ele;\n\n    // only push if _both_ are negative...\n    if (!intersection && !contains(comparison, 'string', string)) {\n      result.push(prefix + string);\n    }\n\n    // or _both_ are positive\n    if (intersection && contains(comparison, 'string', string)) {\n      result.push(prefix + string);\n    }\n  }\n  return result;\n}\n\n/**\n * Zip strings\n */\n\nfunction zip(a, b) {\n  let arr = [];\n  for (let i = 0; i < a.length; i++) arr.push([a[i], b[i]]);\n  return arr;\n}\n\nfunction compare(a, b) {\n  return a > b ? 1 : b > a ? -1 : 0;\n}\n\nfunction contains(arr, key, val) {\n  return arr.some(ele => ele[key] === val);\n}\n\nfunction countNines(min, len) {\n  return Number(String(min).slice(0, -len) + '9'.repeat(len));\n}\n\nfunction countZeros(integer, zeros) {\n  return integer - (integer % Math.pow(10, zeros));\n}\n\nfunction toQuantifier(digits) {\n  let [start = 0, stop = ''] = digits;\n  if (stop || start > 1) {\n    return `{${start + (stop ? ',' + stop : '')}}`;\n  }\n  return '';\n}\n\nfunction toCharacterClass(a, b, options) {\n  return `[${a}${(b - a === 1) ? '' : '-'}${b}]`;\n}\n\nfunction hasPadding(str) {\n  return /^-?(0+)\\d/.test(str);\n}\n\nfunction padZeros(value, tok, options) {\n  if (!tok.isPadded) {\n    return value;\n  }\n\n  let diff = Math.abs(tok.maxLen - String(value).length);\n  let relax = options.relaxZeros !== false;\n\n  switch (diff) {\n    case 0:\n      return '';\n    case 1:\n      return relax ? '0?' : '0';\n    case 2:\n      return relax ? '0{0,2}' : '00';\n    default: {\n      return relax ? `0{0,${diff}}` : `0{${diff}}`;\n    }\n  }\n}\n\n/**\n * Cache\n */\n\ntoRegexRange.cache = {};\ntoRegexRange.clearCache = () => (toRegexRange.cache = {});\n\n/**\n * Expose `toRegexRange`\n */\n\nmodule.exports = toRegexRange;\n", "/*!\n * fill-range <https://github.com/jonschlinkert/fill-range>\n *\n * Copyright (c) 2014-present, Jon Schlinkert.\n * Licensed under the MIT License.\n */\n\n'use strict';\n\nconst util = require('util');\nconst toRegexRange = require('to-regex-range');\n\nconst isObject = val => val !== null && typeof val === 'object' && !Array.isArray(val);\n\nconst transform = toNumber => {\n  return value => toNumber === true ? Number(value) : String(value);\n};\n\nconst isValidValue = value => {\n  return typeof value === 'number' || (typeof value === 'string' && value !== '');\n};\n\nconst isNumber = num => Number.isInteger(+num);\n\nconst zeros = input => {\n  let value = `${input}`;\n  let index = -1;\n  if (value[0] === '-') value = value.slice(1);\n  if (value === '0') return false;\n  while (value[++index] === '0');\n  return index > 0;\n};\n\nconst stringify = (start, end, options) => {\n  if (typeof start === 'string' || typeof end === 'string') {\n    return true;\n  }\n  return options.stringify === true;\n};\n\nconst pad = (input, maxLength, toNumber) => {\n  if (maxLength > 0) {\n    let dash = input[0] === '-' ? '-' : '';\n    if (dash) input = input.slice(1);\n    input = (dash + input.padStart(dash ? maxLength - 1 : maxLength, '0'));\n  }\n  if (toNumber === false) {\n    return String(input);\n  }\n  return input;\n};\n\nconst toMaxLen = (input, maxLength) => {\n  let negative = input[0] === '-' ? '-' : '';\n  if (negative) {\n    input = input.slice(1);\n    maxLength--;\n  }\n  while (input.length < maxLength) input = '0' + input;\n  return negative ? ('-' + input) : input;\n};\n\nconst toSequence = (parts, options) => {\n  parts.negatives.sort((a, b) => a < b ? -1 : a > b ? 1 : 0);\n  parts.positives.sort((a, b) => a < b ? -1 : a > b ? 1 : 0);\n\n  let prefix = options.capture ? '' : '?:';\n  let positives = '';\n  let negatives = '';\n  let result;\n\n  if (parts.positives.length) {\n    positives = parts.positives.join('|');\n  }\n\n  if (parts.negatives.length) {\n    negatives = `-(${prefix}${parts.negatives.join('|')})`;\n  }\n\n  if (positives && negatives) {\n    result = `${positives}|${negatives}`;\n  } else {\n    result = positives || negatives;\n  }\n\n  if (options.wrap) {\n    return `(${prefix}${result})`;\n  }\n\n  return result;\n};\n\nconst toRange = (a, b, isNumbers, options) => {\n  if (isNumbers) {\n    return toRegexRange(a, b, { wrap: false, ...options });\n  }\n\n  let start = String.fromCharCode(a);\n  if (a === b) return start;\n\n  let stop = String.fromCharCode(b);\n  return `[${start}-${stop}]`;\n};\n\nconst toRegex = (start, end, options) => {\n  if (Array.isArray(start)) {\n    let wrap = options.wrap === true;\n    let prefix = options.capture ? '' : '?:';\n    return wrap ? `(${prefix}${start.join('|')})` : start.join('|');\n  }\n  return toRegexRange(start, end, options);\n};\n\nconst rangeError = (...args) => {\n  return new RangeError('Invalid range arguments: ' + util.inspect(...args));\n};\n\nconst invalidRange = (start, end, options) => {\n  if (options.strictRanges === true) throw rangeError([start, end]);\n  return [];\n};\n\nconst invalidStep = (step, options) => {\n  if (options.strictRanges === true) {\n    throw new TypeError(`Expected step \"${step}\" to be a number`);\n  }\n  return [];\n};\n\nconst fillNumbers = (start, end, step = 1, options = {}) => {\n  let a = Number(start);\n  let b = Number(end);\n\n  if (!Number.isInteger(a) || !Number.isInteger(b)) {\n    if (options.strictRanges === true) throw rangeError([start, end]);\n    return [];\n  }\n\n  // fix negative zero\n  if (a === 0) a = 0;\n  if (b === 0) b = 0;\n\n  let descending = a > b;\n  let startString = String(start);\n  let endString = String(end);\n  let stepString = String(step);\n  step = Math.max(Math.abs(step), 1);\n\n  let padded = zeros(startString) || zeros(endString) || zeros(stepString);\n  let maxLen = padded ? Math.max(startString.length, endString.length, stepString.length) : 0;\n  let toNumber = padded === false && stringify(start, end, options) === false;\n  let format = options.transform || transform(toNumber);\n\n  if (options.toRegex && step === 1) {\n    return toRange(toMaxLen(start, maxLen), toMaxLen(end, maxLen), true, options);\n  }\n\n  let parts = { negatives: [], positives: [] };\n  let push = num => parts[num < 0 ? 'negatives' : 'positives'].push(Math.abs(num));\n  let range = [];\n  let index = 0;\n\n  while (descending ? a >= b : a <= b) {\n    if (options.toRegex === true && step > 1) {\n      push(a);\n    } else {\n      range.push(pad(format(a, index), maxLen, toNumber));\n    }\n    a = descending ? a - step : a + step;\n    index++;\n  }\n\n  if (options.toRegex === true) {\n    return step > 1\n      ? toSequence(parts, options)\n      : toRegex(range, null, { wrap: false, ...options });\n  }\n\n  return range;\n};\n\nconst fillLetters = (start, end, step = 1, options = {}) => {\n  if ((!isNumber(start) && start.length > 1) || (!isNumber(end) && end.length > 1)) {\n    return invalidRange(start, end, options);\n  }\n\n\n  let format = options.transform || (val => String.fromCharCode(val));\n  let a = `${start}`.charCodeAt(0);\n  let b = `${end}`.charCodeAt(0);\n\n  let descending = a > b;\n  let min = Math.min(a, b);\n  let max = Math.max(a, b);\n\n  if (options.toRegex && step === 1) {\n    return toRange(min, max, false, options);\n  }\n\n  let range = [];\n  let index = 0;\n\n  while (descending ? a >= b : a <= b) {\n    range.push(format(a, index));\n    a = descending ? a - step : a + step;\n    index++;\n  }\n\n  if (options.toRegex === true) {\n    return toRegex(range, null, { wrap: false, options });\n  }\n\n  return range;\n};\n\nconst fill = (start, end, step, options = {}) => {\n  if (end == null && isValidValue(start)) {\n    return [start];\n  }\n\n  if (!isValidValue(start) || !isValidValue(end)) {\n    return invalidRange(start, end, options);\n  }\n\n  if (typeof step === 'function') {\n    return fill(start, end, 1, { transform: step });\n  }\n\n  if (isObject(step)) {\n    return fill(start, end, 0, step);\n  }\n\n  let opts = { ...options };\n  if (opts.capture === true) opts.wrap = true;\n  step = step || opts.step || 1;\n\n  if (!isNumber(step)) {\n    if (step != null && !isObject(step)) return invalidStep(step, opts);\n    return fill(start, end, 1, step);\n  }\n\n  if (isNumber(start) && isNumber(end)) {\n    return fillNumbers(start, end, step, opts);\n  }\n\n  return fillLetters(start, end, Math.max(Math.abs(step), 1), opts);\n};\n\nmodule.exports = fill;\n", "'use strict';\n\nconst fill = require('fill-range');\nconst utils = require('./utils');\n\nconst compile = (ast, options = {}) => {\n  let walk = (node, parent = {}) => {\n    let invalidBlock = utils.isInvalidBrace(parent);\n    let invalidNode = node.invalid === true && options.escapeInvalid === true;\n    let invalid = invalidBlock === true || invalidNode === true;\n    let prefix = options.escapeInvalid === true ? '\\\\' : '';\n    let output = '';\n\n    if (node.isOpen === true) {\n      return prefix + node.value;\n    }\n    if (node.isClose === true) {\n      return prefix + node.value;\n    }\n\n    if (node.type === 'open') {\n      return invalid ? (prefix + node.value) : '(';\n    }\n\n    if (node.type === 'close') {\n      return invalid ? (prefix + node.value) : ')';\n    }\n\n    if (node.type === 'comma') {\n      return node.prev.type === 'comma' ? '' : (invalid ? node.value : '|');\n    }\n\n    if (node.value) {\n      return node.value;\n    }\n\n    if (node.nodes && node.ranges > 0) {\n      let args = utils.reduce(node.nodes);\n      let range = fill(...args, { ...options, wrap: false, toRegex: true });\n\n      if (range.length !== 0) {\n        return args.length > 1 && range.length > 1 ? `(${range})` : range;\n      }\n    }\n\n    if (node.nodes) {\n      for (let child of node.nodes) {\n        output += walk(child, node);\n      }\n    }\n    return output;\n  };\n\n  return walk(ast);\n};\n\nmodule.exports = compile;\n", "'use strict';\n\nconst fill = require('fill-range');\nconst stringify = require('./stringify');\nconst utils = require('./utils');\n\nconst append = (queue = '', stash = '', enclose = false) => {\n  let result = [];\n\n  queue = [].concat(queue);\n  stash = [].concat(stash);\n\n  if (!stash.length) return queue;\n  if (!queue.length) {\n    return enclose ? utils.flatten(stash).map(ele => `{${ele}}`) : stash;\n  }\n\n  for (let item of queue) {\n    if (Array.isArray(item)) {\n      for (let value of item) {\n        result.push(append(value, stash, enclose));\n      }\n    } else {\n      for (let ele of stash) {\n        if (enclose === true && typeof ele === 'string') ele = `{${ele}}`;\n        result.push(Array.isArray(ele) ? append(item, ele, enclose) : (item + ele));\n      }\n    }\n  }\n  return utils.flatten(result);\n};\n\nconst expand = (ast, options = {}) => {\n  let rangeLimit = options.rangeLimit === void 0 ? 1000 : options.rangeLimit;\n\n  let walk = (node, parent = {}) => {\n    node.queue = [];\n\n    let p = parent;\n    let q = parent.queue;\n\n    while (p.type !== 'brace' && p.type !== 'root' && p.parent) {\n      p = p.parent;\n      q = p.queue;\n    }\n\n    if (node.invalid || node.dollar) {\n      q.push(append(q.pop(), stringify(node, options)));\n      return;\n    }\n\n    if (node.type === 'brace' && node.invalid !== true && node.nodes.length === 2) {\n      q.push(append(q.pop(), ['{}']));\n      return;\n    }\n\n    if (node.nodes && node.ranges > 0) {\n      let args = utils.reduce(node.nodes);\n\n      if (utils.exceedsLimit(...args, options.step, rangeLimit)) {\n        throw new RangeError('expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.');\n      }\n\n      let range = fill(...args, options);\n      if (range.length === 0) {\n        range = stringify(node, options);\n      }\n\n      q.push(append(q.pop(), range));\n      node.nodes = [];\n      return;\n    }\n\n    let enclose = utils.encloseBrace(node);\n    let queue = node.queue;\n    let block = node;\n\n    while (block.type !== 'brace' && block.type !== 'root' && block.parent) {\n      block = block.parent;\n      queue = block.queue;\n    }\n\n    for (let i = 0; i < node.nodes.length; i++) {\n      let child = node.nodes[i];\n\n      if (child.type === 'comma' && node.type === 'brace') {\n        if (i === 1) queue.push('');\n        queue.push('');\n        continue;\n      }\n\n      if (child.type === 'close') {\n        q.push(append(q.pop(), queue, enclose));\n        continue;\n      }\n\n      if (child.value && child.type !== 'open') {\n        queue.push(append(queue.pop(), child.value));\n        continue;\n      }\n\n      if (child.nodes) {\n        walk(child, node);\n      }\n    }\n\n    return queue;\n  };\n\n  return utils.flatten(walk(ast));\n};\n\nmodule.exports = expand;\n", "'use strict';\n\nmodule.exports = {\n  MAX_LENGTH: 1024 * 64,\n\n  // Digits\n  CHAR_0: '0', /* 0 */\n  CHAR_9: '9', /* 9 */\n\n  // Alphabet chars.\n  CHAR_UPPERCASE_A: 'A', /* A */\n  CHAR_LOWERCASE_A: 'a', /* a */\n  CHAR_UPPERCASE_Z: 'Z', /* Z */\n  CHAR_LOWERCASE_Z: 'z', /* z */\n\n  CHAR_LEFT_PARENTHESES: '(', /* ( */\n  CHAR_RIGHT_PARENTHESES: ')', /* ) */\n\n  CHAR_ASTERISK: '*', /* * */\n\n  // Non-alphabetic chars.\n  CHAR_AMPERSAND: '&', /* & */\n  CHAR_AT: '@', /* @ */\n  CHAR_BACKSLASH: '\\\\', /* \\ */\n  CHAR_BACKTICK: '`', /* ` */\n  CHAR_CARRIAGE_RETURN: '\\r', /* \\r */\n  CHAR_CIRCUMFLEX_ACCENT: '^', /* ^ */\n  CHAR_COLON: ':', /* : */\n  CHAR_COMMA: ',', /* , */\n  CHAR_DOLLAR: '$', /* . */\n  CHAR_DOT: '.', /* . */\n  CHAR_DOUBLE_QUOTE: '\"', /* \" */\n  CHAR_EQUAL: '=', /* = */\n  CHAR_EXCLAMATION_MARK: '!', /* ! */\n  CHAR_FORM_FEED: '\\f', /* \\f */\n  CHAR_FORWARD_SLASH: '/', /* / */\n  CHAR_HASH: '#', /* # */\n  CHAR_HYPHEN_MINUS: '-', /* - */\n  CHAR_LEFT_ANGLE_BRACKET: '<', /* < */\n  CHAR_LEFT_CURLY_BRACE: '{', /* { */\n  CHAR_LEFT_SQUARE_BRACKET: '[', /* [ */\n  CHAR_LINE_FEED: '\\n', /* \\n */\n  CHAR_NO_BREAK_SPACE: '\\u00A0', /* \\u00A0 */\n  CHAR_PERCENT: '%', /* % */\n  CHAR_PLUS: '+', /* + */\n  CHAR_QUESTION_MARK: '?', /* ? */\n  CHAR_RIGHT_ANGLE_BRACKET: '>', /* > */\n  CHAR_RIGHT_CURLY_BRACE: '}', /* } */\n  CHAR_RIGHT_SQUARE_BRACKET: ']', /* ] */\n  CHAR_SEMICOLON: ';', /* ; */\n  CHAR_SINGLE_QUOTE: '\\'', /* ' */\n  CHAR_SPACE: ' ', /*   */\n  CHAR_TAB: '\\t', /* \\t */\n  CHAR_UNDERSCORE: '_', /* _ */\n  CHAR_VERTICAL_LINE: '|', /* | */\n  CHAR_ZERO_WIDTH_NOBREAK_SPACE: '\\uFEFF' /* \\uFEFF */\n};\n", "'use strict';\n\nconst stringify = require('./stringify');\n\n/**\n * Constants\n */\n\nconst {\n  MAX_LENGTH,\n  CHAR_BACKSLASH, /* \\ */\n  CHAR_BACKTICK, /* ` */\n  CHAR_COMMA, /* , */\n  CHAR_DOT, /* . */\n  CHAR_LEFT_PARENTHESES, /* ( */\n  CHAR_RIGHT_PARENTHESES, /* ) */\n  CHAR_LEFT_CURLY_BRACE, /* { */\n  CHAR_RIGHT_CURLY_BRACE, /* } */\n  CHAR_LEFT_SQUARE_BRACKET, /* [ */\n  CHAR_RIGHT_SQUARE_BRACKET, /* ] */\n  CHAR_DOUBLE_QUOTE, /* \" */\n  CHAR_SINGLE_QUOTE, /* ' */\n  CHAR_NO_BREAK_SPACE,\n  CHAR_ZERO_WIDTH_NOBREAK_SPACE\n} = require('./constants');\n\n/**\n * parse\n */\n\nconst parse = (input, options = {}) => {\n  if (typeof input !== 'string') {\n    throw new TypeError('Expected a string');\n  }\n\n  let opts = options || {};\n  let max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;\n  if (input.length > max) {\n    throw new SyntaxError(`Input length (${input.length}), exceeds max characters (${max})`);\n  }\n\n  let ast = { type: 'root', input, nodes: [] };\n  let stack = [ast];\n  let block = ast;\n  let prev = ast;\n  let brackets = 0;\n  let length = input.length;\n  let index = 0;\n  let depth = 0;\n  let value;\n  let memo = {};\n\n  /**\n   * Helpers\n   */\n\n  const advance = () => input[index++];\n  const push = node => {\n    if (node.type === 'text' && prev.type === 'dot') {\n      prev.type = 'text';\n    }\n\n    if (prev && prev.type === 'text' && node.type === 'text') {\n      prev.value += node.value;\n      return;\n    }\n\n    block.nodes.push(node);\n    node.parent = block;\n    node.prev = prev;\n    prev = node;\n    return node;\n  };\n\n  push({ type: 'bos' });\n\n  while (index < length) {\n    block = stack[stack.length - 1];\n    value = advance();\n\n    /**\n     * Invalid chars\n     */\n\n    if (value === CHAR_ZERO_WIDTH_NOBREAK_SPACE || value === CHAR_NO_BREAK_SPACE) {\n      continue;\n    }\n\n    /**\n     * Escaped chars\n     */\n\n    if (value === CHAR_BACKSLASH) {\n      push({ type: 'text', value: (options.keepEscaping ? value : '') + advance() });\n      continue;\n    }\n\n    /**\n     * Right square bracket (literal): ']'\n     */\n\n    if (value === CHAR_RIGHT_SQUARE_BRACKET) {\n      push({ type: 'text', value: '\\\\' + value });\n      continue;\n    }\n\n    /**\n     * Left square bracket: '['\n     */\n\n    if (value === CHAR_LEFT_SQUARE_BRACKET) {\n      brackets++;\n\n      let closed = true;\n      let next;\n\n      while (index < length && (next = advance())) {\n        value += next;\n\n        if (next === CHAR_LEFT_SQUARE_BRACKET) {\n          brackets++;\n          continue;\n        }\n\n        if (next === CHAR_BACKSLASH) {\n          value += advance();\n          continue;\n        }\n\n        if (next === CHAR_RIGHT_SQUARE_BRACKET) {\n          brackets--;\n\n          if (brackets === 0) {\n            break;\n          }\n        }\n      }\n\n      push({ type: 'text', value });\n      continue;\n    }\n\n    /**\n     * Parentheses\n     */\n\n    if (value === CHAR_LEFT_PARENTHESES) {\n      block = push({ type: 'paren', nodes: [] });\n      stack.push(block);\n      push({ type: 'text', value });\n      continue;\n    }\n\n    if (value === CHAR_RIGHT_PARENTHESES) {\n      if (block.type !== 'paren') {\n        push({ type: 'text', value });\n        continue;\n      }\n      block = stack.pop();\n      push({ type: 'text', value });\n      block = stack[stack.length - 1];\n      continue;\n    }\n\n    /**\n     * Quotes: '|\"|`\n     */\n\n    if (value === CHAR_DOUBLE_QUOTE || value === CHAR_SINGLE_QUOTE || value === CHAR_BACKTICK) {\n      let open = value;\n      let next;\n\n      if (options.keepQuotes !== true) {\n        value = '';\n      }\n\n      while (index < length && (next = advance())) {\n        if (next === CHAR_BACKSLASH) {\n          value += next + advance();\n          continue;\n        }\n\n        if (next === open) {\n          if (options.keepQuotes === true) value += next;\n          break;\n        }\n\n        value += next;\n      }\n\n      push({ type: 'text', value });\n      continue;\n    }\n\n    /**\n     * Left curly brace: '{'\n     */\n\n    if (value === CHAR_LEFT_CURLY_BRACE) {\n      depth++;\n\n      let dollar = prev.value && prev.value.slice(-1) === '$' || block.dollar === true;\n      let brace = {\n        type: 'brace',\n        open: true,\n        close: false,\n        dollar,\n        depth,\n        commas: 0,\n        ranges: 0,\n        nodes: []\n      };\n\n      block = push(brace);\n      stack.push(block);\n      push({ type: 'open', value });\n      continue;\n    }\n\n    /**\n     * Right curly brace: '}'\n     */\n\n    if (value === CHAR_RIGHT_CURLY_BRACE) {\n      if (block.type !== 'brace') {\n        push({ type: 'text', value });\n        continue;\n      }\n\n      let type = 'close';\n      block = stack.pop();\n      block.close = true;\n\n      push({ type, value });\n      depth--;\n\n      block = stack[stack.length - 1];\n      continue;\n    }\n\n    /**\n     * Comma: ','\n     */\n\n    if (value === CHAR_COMMA && depth > 0) {\n      if (block.ranges > 0) {\n        block.ranges = 0;\n        let open = block.nodes.shift();\n        block.nodes = [open, { type: 'text', value: stringify(block) }];\n      }\n\n      push({ type: 'comma', value });\n      block.commas++;\n      continue;\n    }\n\n    /**\n     * Dot: '.'\n     */\n\n    if (value === CHAR_DOT && depth > 0 && block.commas === 0) {\n      let siblings = block.nodes;\n\n      if (depth === 0 || siblings.length === 0) {\n        push({ type: 'text', value });\n        continue;\n      }\n\n      if (prev.type === 'dot') {\n        block.range = [];\n        prev.value += value;\n        prev.type = 'range';\n\n        if (block.nodes.length !== 3 && block.nodes.length !== 5) {\n          block.invalid = true;\n          block.ranges = 0;\n          prev.type = 'text';\n          continue;\n        }\n\n        block.ranges++;\n        block.args = [];\n        continue;\n      }\n\n      if (prev.type === 'range') {\n        siblings.pop();\n\n        let before = siblings[siblings.length - 1];\n        before.value += prev.value + value;\n        prev = before;\n        block.ranges--;\n        continue;\n      }\n\n      push({ type: 'dot', value });\n      continue;\n    }\n\n    /**\n     * Text\n     */\n\n    push({ type: 'text', value });\n  }\n\n  // Mark imbalanced braces and brackets as invalid\n  do {\n    block = stack.pop();\n\n    if (block.type !== 'root') {\n      block.nodes.forEach(node => {\n        if (!node.nodes) {\n          if (node.type === 'open') node.isOpen = true;\n          if (node.type === 'close') node.isClose = true;\n          if (!node.nodes) node.type = 'text';\n          node.invalid = true;\n        }\n      });\n\n      // get the location of the block on parent.nodes (block's siblings)\n      let parent = stack[stack.length - 1];\n      let index = parent.nodes.indexOf(block);\n      // replace the (invalid) block with it's nodes\n      parent.nodes.splice(index, 1, ...block.nodes);\n    }\n  } while (stack.length > 0);\n\n  push({ type: 'eos' });\n  return ast;\n};\n\nmodule.exports = parse;\n", "'use strict';\n\nconst stringify = require('./lib/stringify');\nconst compile = require('./lib/compile');\nconst expand = require('./lib/expand');\nconst parse = require('./lib/parse');\n\n/**\n * Expand the given pattern or create a regex-compatible string.\n *\n * ```js\n * const braces = require('braces');\n * console.log(braces('{a,b,c}', { compile: true })); //=> ['(a|b|c)']\n * console.log(braces('{a,b,c}')); //=> ['a', 'b', 'c']\n * ```\n * @param {String} `str`\n * @param {Object} `options`\n * @return {String}\n * @api public\n */\n\nconst braces = (input, options = {}) => {\n  let output = [];\n\n  if (Array.isArray(input)) {\n    for (let pattern of input) {\n      let result = braces.create(pattern, options);\n      if (Array.isArray(result)) {\n        output.push(...result);\n      } else {\n        output.push(result);\n      }\n    }\n  } else {\n    output = [].concat(braces.create(input, options));\n  }\n\n  if (options && options.expand === true && options.nodupes === true) {\n    output = [...new Set(output)];\n  }\n  return output;\n};\n\n/**\n * Parse the given `str` with the given `options`.\n *\n * ```js\n * // braces.parse(pattern, [, options]);\n * const ast = braces.parse('a/{b,c}/d');\n * console.log(ast);\n * ```\n * @param {String} pattern Brace pattern to parse\n * @param {Object} options\n * @return {Object} Returns an AST\n * @api public\n */\n\nbraces.parse = (input, options = {}) => parse(input, options);\n\n/**\n * Creates a braces string from an AST, or an AST node.\n *\n * ```js\n * const braces = require('braces');\n * let ast = braces.parse('foo/{a,b}/bar');\n * console.log(stringify(ast.nodes[2])); //=> '{a,b}'\n * ```\n * @param {String} `input` Brace pattern or AST.\n * @param {Object} `options`\n * @return {Array} Returns an array of expanded values.\n * @api public\n */\n\nbraces.stringify = (input, options = {}) => {\n  if (typeof input === 'string') {\n    return stringify(braces.parse(input, options), options);\n  }\n  return stringify(input, options);\n};\n\n/**\n * Compiles a brace pattern into a regex-compatible, optimized string.\n * This method is called by the main [braces](#braces) function by default.\n *\n * ```js\n * const braces = require('braces');\n * console.log(braces.compile('a/{b,c}/d'));\n * //=> ['a/(b|c)/d']\n * ```\n * @param {String} `input` Brace pattern or AST.\n * @param {Object} `options`\n * @return {Array} Returns an array of expanded values.\n * @api public\n */\n\nbraces.compile = (input, options = {}) => {\n  if (typeof input === 'string') {\n    input = braces.parse(input, options);\n  }\n  return compile(input, options);\n};\n\n/**\n * Expands a brace pattern into an array. This method is called by the\n * main [braces](#braces) function when `options.expand` is true. Before\n * using this method it's recommended that you read the [performance notes](#performance))\n * and advantages of using [.compile](#compile) instead.\n *\n * ```js\n * const braces = require('braces');\n * console.log(braces.expand('a/{b,c}/d'));\n * //=> ['a/b/d', 'a/c/d'];\n * ```\n * @param {String} `pattern` Brace pattern\n * @param {Object} `options`\n * @return {Array} Returns an array of expanded values.\n * @api public\n */\n\nbraces.expand = (input, options = {}) => {\n  if (typeof input === 'string') {\n    input = braces.parse(input, options);\n  }\n\n  let result = expand(input, options);\n\n  // filter out empty strings if specified\n  if (options.noempty === true) {\n    result = result.filter(Boolean);\n  }\n\n  // filter out duplicates if specified\n  if (options.nodupes === true) {\n    result = [...new Set(result)];\n  }\n\n  return result;\n};\n\n/**\n * Processes a brace pattern and returns either an expanded array\n * (if `options.expand` is true), a highly optimized regex-compatible string.\n * This method is called by the main [braces](#braces) function.\n *\n * ```js\n * const braces = require('braces');\n * console.log(braces.create('user-{200..300}/project-{a,b,c}-{1..10}'))\n * //=> 'user-(20[0-9]|2[1-9][0-9]|300)/project-(a|b|c)-([1-9]|10)'\n * ```\n * @param {String} `pattern` Brace pattern\n * @param {Object} `options`\n * @return {Array} Returns an array of expanded values.\n * @api public\n */\n\nbraces.create = (input, options = {}) => {\n  if (input === '' || input.length < 3) {\n    return [input];\n  }\n\n return options.expand !== true\n    ? braces.compile(input, options)\n    : braces.expand(input, options);\n};\n\n/**\n * Expose \"braces\"\n */\n\nmodule.exports = braces;\n", "'use strict';\n\nconst path = require('path');\nconst WIN_SLASH = '\\\\\\\\/';\nconst WIN_NO_SLASH = `[^${WIN_SLASH}]`;\n\n/**\n * Posix glob regex\n */\n\nconst DOT_LITERAL = '\\\\.';\nconst PLUS_LITERAL = '\\\\+';\nconst QMARK_LITERAL = '\\\\?';\nconst SLASH_LITERAL = '\\\\/';\nconst ONE_CHAR = '(?=.)';\nconst QMARK = '[^/]';\nconst END_ANCHOR = `(?:${SLASH_LITERAL}|$)`;\nconst START_ANCHOR = `(?:^|${SLASH_LITERAL})`;\nconst DOTS_SLASH = `${DOT_LITERAL}{1,2}${END_ANCHOR}`;\nconst NO_DOT = `(?!${DOT_LITERAL})`;\nconst NO_DOTS = `(?!${START_ANCHOR}${DOTS_SLASH})`;\nconst NO_DOT_SLASH = `(?!${DOT_LITERAL}{0,1}${END_ANCHOR})`;\nconst NO_DOTS_SLASH = `(?!${DOTS_SLASH})`;\nconst QMARK_NO_DOT = `[^.${SLASH_LITERAL}]`;\nconst STAR = `${QMARK}*?`;\n\nconst POSIX_CHARS = {\n  DOT_LITERAL,\n  PLUS_LITERAL,\n  QMARK_LITERAL,\n  SLASH_LITERAL,\n  ONE_CHAR,\n  QMARK,\n  END_ANCHOR,\n  DOTS_SLASH,\n  NO_DOT,\n  NO_DOTS,\n  NO_DOT_SLASH,\n  NO_DOTS_SLASH,\n  QMARK_NO_DOT,\n  STAR,\n  START_ANCHOR\n};\n\n/**\n * Windows glob regex\n */\n\nconst WINDOWS_CHARS = {\n  ...POSIX_CHARS,\n\n  SLASH_LITERAL: `[${WIN_SLASH}]`,\n  QMARK: WIN_NO_SLASH,\n  STAR: `${WIN_NO_SLASH}*?`,\n  DOTS_SLASH: `${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$)`,\n  NO_DOT: `(?!${DOT_LITERAL})`,\n  NO_DOTS: `(?!(?:^|[${WIN_SLASH}])${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`,\n  NO_DOT_SLASH: `(?!${DOT_LITERAL}{0,1}(?:[${WIN_SLASH}]|$))`,\n  NO_DOTS_SLASH: `(?!${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`,\n  QMARK_NO_DOT: `[^.${WIN_SLASH}]`,\n  START_ANCHOR: `(?:^|[${WIN_SLASH}])`,\n  END_ANCHOR: `(?:[${WIN_SLASH}]|$)`\n};\n\n/**\n * POSIX Bracket Regex\n */\n\nconst POSIX_REGEX_SOURCE = {\n  alnum: 'a-zA-Z0-9',\n  alpha: 'a-zA-Z',\n  ascii: '\\\\x00-\\\\x7F',\n  blank: ' \\\\t',\n  cntrl: '\\\\x00-\\\\x1F\\\\x7F',\n  digit: '0-9',\n  graph: '\\\\x21-\\\\x7E',\n  lower: 'a-z',\n  print: '\\\\x20-\\\\x7E ',\n  punct: '\\\\-!\"#$%&\\'()\\\\*+,./:;<=>?@[\\\\]^_`{|}~',\n  space: ' \\\\t\\\\r\\\\n\\\\v\\\\f',\n  upper: 'A-Z',\n  word: 'A-Za-z0-9_',\n  xdigit: 'A-Fa-f0-9'\n};\n\nmodule.exports = {\n  MAX_LENGTH: 1024 * 64,\n  POSIX_REGEX_SOURCE,\n\n  // regular expressions\n  REGEX_BACKSLASH: /\\\\(?![*+?^${}(|)[\\]])/g,\n  REGEX_NON_SPECIAL_CHARS: /^[^@![\\].,$*+?^{}()|\\\\/]+/,\n  REGEX_SPECIAL_CHARS: /[-*+?.^${}(|)[\\]]/,\n  REGEX_SPECIAL_CHARS_BACKREF: /(\\\\?)((\\W)(\\3*))/g,\n  REGEX_SPECIAL_CHARS_GLOBAL: /([-*+?.^${}(|)[\\]])/g,\n  REGEX_REMOVE_BACKSLASH: /(?:\\[.*?[^\\\\]\\]|\\\\(?=.))/g,\n\n  // Replace globs with equivalent patterns to reduce parsing time.\n  REPLACEMENTS: {\n    '***': '*',\n    '**/**': '**',\n    '**/**/**': '**'\n  },\n\n  // Digits\n  CHAR_0: 48, /* 0 */\n  CHAR_9: 57, /* 9 */\n\n  // Alphabet chars.\n  CHAR_UPPERCASE_A: 65, /* A */\n  CHAR_LOWERCASE_A: 97, /* a */\n  CHAR_UPPERCASE_Z: 90, /* Z */\n  CHAR_LOWERCASE_Z: 122, /* z */\n\n  CHAR_LEFT_PARENTHESES: 40, /* ( */\n  CHAR_RIGHT_PARENTHESES: 41, /* ) */\n\n  CHAR_ASTERISK: 42, /* * */\n\n  // Non-alphabetic chars.\n  CHAR_AMPERSAND: 38, /* & */\n  CHAR_AT: 64, /* @ */\n  CHAR_BACKWARD_SLASH: 92, /* \\ */\n  CHAR_CARRIAGE_RETURN: 13, /* \\r */\n  CHAR_CIRCUMFLEX_ACCENT: 94, /* ^ */\n  CHAR_COLON: 58, /* : */\n  CHAR_COMMA: 44, /* , */\n  CHAR_DOT: 46, /* . */\n  CHAR_DOUBLE_QUOTE: 34, /* \" */\n  CHAR_EQUAL: 61, /* = */\n  CHAR_EXCLAMATION_MARK: 33, /* ! */\n  CHAR_FORM_FEED: 12, /* \\f */\n  CHAR_FORWARD_SLASH: 47, /* / */\n  CHAR_GRAVE_ACCENT: 96, /* ` */\n  CHAR_HASH: 35, /* # */\n  CHAR_HYPHEN_MINUS: 45, /* - */\n  CHAR_LEFT_ANGLE_BRACKET: 60, /* < */\n  CHAR_LEFT_CURLY_BRACE: 123, /* { */\n  CHAR_LEFT_SQUARE_BRACKET: 91, /* [ */\n  CHAR_LINE_FEED: 10, /* \\n */\n  CHAR_NO_BREAK_SPACE: 160, /* \\u00A0 */\n  CHAR_PERCENT: 37, /* % */\n  CHAR_PLUS: 43, /* + */\n  CHAR_QUESTION_MARK: 63, /* ? */\n  CHAR_RIGHT_ANGLE_BRACKET: 62, /* > */\n  CHAR_RIGHT_CURLY_BRACE: 125, /* } */\n  CHAR_RIGHT_SQUARE_BRACKET: 93, /* ] */\n  CHAR_SEMICOLON: 59, /* ; */\n  CHAR_SINGLE_QUOTE: 39, /* ' */\n  CHAR_SPACE: 32, /*   */\n  CHAR_TAB: 9, /* \\t */\n  CHAR_UNDERSCORE: 95, /* _ */\n  CHAR_VERTICAL_LINE: 124, /* | */\n  CHAR_ZERO_WIDTH_NOBREAK_SPACE: 65279, /* \\uFEFF */\n\n  SEP: path.sep,\n\n  /**\n   * Create EXTGLOB_CHARS\n   */\n\n  extglobChars(chars) {\n    return {\n      '!': { type: 'negate', open: '(?:(?!(?:', close: `))${chars.STAR})` },\n      '?': { type: 'qmark', open: '(?:', close: ')?' },\n      '+': { type: 'plus', open: '(?:', close: ')+' },\n      '*': { type: 'star', open: '(?:', close: ')*' },\n      '@': { type: 'at', open: '(?:', close: ')' }\n    };\n  },\n\n  /**\n   * Create GLOB_CHARS\n   */\n\n  globChars(win32) {\n    return win32 === true ? WINDOWS_CHARS : POSIX_CHARS;\n  }\n};\n", "'use strict';\n\nconst path = require('path');\nconst win32 = process.platform === 'win32';\nconst {\n  REGEX_BACKSLASH,\n  REGEX_REMOVE_BACKSLASH,\n  REGEX_SPECIAL_CHARS,\n  REGEX_SPECIAL_CHARS_GLOBAL\n} = require('./constants');\n\nexports.isObject = val => val !== null && typeof val === 'object' && !Array.isArray(val);\nexports.hasRegexChars = str => REGEX_SPECIAL_CHARS.test(str);\nexports.isRegexChar = str => str.length === 1 && exports.hasRegexChars(str);\nexports.escapeRegex = str => str.replace(REGEX_SPECIAL_CHARS_GLOBAL, '\\\\$1');\nexports.toPosixSlashes = str => str.replace(REGEX_BACKSLASH, '/');\n\nexports.removeBackslashes = str => {\n  return str.replace(REGEX_REMOVE_BACKSLASH, match => {\n    return match === '\\\\' ? '' : match;\n  });\n};\n\nexports.supportsLookbehinds = () => {\n  const segs = process.version.slice(1).split('.').map(Number);\n  if (segs.length === 3 && segs[0] >= 9 || (segs[0] === 8 && segs[1] >= 10)) {\n    return true;\n  }\n  return false;\n};\n\nexports.isWindows = options => {\n  if (options && typeof options.windows === 'boolean') {\n    return options.windows;\n  }\n  return win32 === true || path.sep === '\\\\';\n};\n\nexports.escapeLast = (input, char, lastIdx) => {\n  const idx = input.lastIndexOf(char, lastIdx);\n  if (idx === -1) return input;\n  if (input[idx - 1] === '\\\\') return exports.escapeLast(input, char, idx - 1);\n  return `${input.slice(0, idx)}\\\\${input.slice(idx)}`;\n};\n\nexports.removePrefix = (input, state = {}) => {\n  let output = input;\n  if (output.startsWith('./')) {\n    output = output.slice(2);\n    state.prefix = './';\n  }\n  return output;\n};\n\nexports.wrapOutput = (input, state = {}, options = {}) => {\n  const prepend = options.contains ? '' : '^';\n  const append = options.contains ? '' : '$';\n\n  let output = `${prepend}(?:${input})${append}`;\n  if (state.negated === true) {\n    output = `(?:^(?!${output}).*$)`;\n  }\n  return output;\n};\n", "'use strict';\n\nconst utils = require('./utils');\nconst {\n  CHAR_ASTERISK,             /* * */\n  CHAR_AT,                   /* @ */\n  CHAR_BACKWARD_SLASH,       /* \\ */\n  CHAR_COMMA,                /* , */\n  CHAR_DOT,                  /* . */\n  CHAR_EXCLAMATION_MARK,     /* ! */\n  CHAR_FORWARD_SLASH,        /* / */\n  CHAR_LEFT_CURLY_BRACE,     /* { */\n  CHAR_LEFT_PARENTHESES,     /* ( */\n  CHAR_LEFT_SQUARE_BRACKET,  /* [ */\n  CHAR_PLUS,                 /* + */\n  CHAR_QUESTION_MARK,        /* ? */\n  CHAR_RIGHT_CURLY_BRACE,    /* } */\n  CHAR_RIGHT_PARENTHESES,    /* ) */\n  CHAR_RIGHT_SQUARE_BRACKET  /* ] */\n} = require('./constants');\n\nconst isPathSeparator = code => {\n  return code === CHAR_FORWARD_SLASH || code === CHAR_BACKWARD_SLASH;\n};\n\nconst depth = token => {\n  if (token.isPrefix !== true) {\n    token.depth = token.isGlobstar ? Infinity : 1;\n  }\n};\n\n/**\n * Quickly scans a glob pattern and returns an object with a handful of\n * useful properties, like `isGlob`, `path` (the leading non-glob, if it exists),\n * `glob` (the actual pattern), `negated` (true if the path starts with `!` but not\n * with `!(`) and `negatedExtglob` (true if the path starts with `!(`).\n *\n * ```js\n * const pm = require('picomatch');\n * console.log(pm.scan('foo/bar/*.js'));\n * { isGlob: true, input: 'foo/bar/*.js', base: 'foo/bar', glob: '*.js' }\n * ```\n * @param {String} `str`\n * @param {Object} `options`\n * @return {Object} Returns an object with tokens and regex source string.\n * @api public\n */\n\nconst scan = (input, options) => {\n  const opts = options || {};\n\n  const length = input.length - 1;\n  const scanToEnd = opts.parts === true || opts.scanToEnd === true;\n  const slashes = [];\n  const tokens = [];\n  const parts = [];\n\n  let str = input;\n  let index = -1;\n  let start = 0;\n  let lastIndex = 0;\n  let isBrace = false;\n  let isBracket = false;\n  let isGlob = false;\n  let isExtglob = false;\n  let isGlobstar = false;\n  let braceEscaped = false;\n  let backslashes = false;\n  let negated = false;\n  let negatedExtglob = false;\n  let finished = false;\n  let braces = 0;\n  let prev;\n  let code;\n  let token = { value: '', depth: 0, isGlob: false };\n\n  const eos = () => index >= length;\n  const peek = () => str.charCodeAt(index + 1);\n  const advance = () => {\n    prev = code;\n    return str.charCodeAt(++index);\n  };\n\n  while (index < length) {\n    code = advance();\n    let next;\n\n    if (code === CHAR_BACKWARD_SLASH) {\n      backslashes = token.backslashes = true;\n      code = advance();\n\n      if (code === CHAR_LEFT_CURLY_BRACE) {\n        braceEscaped = true;\n      }\n      continue;\n    }\n\n    if (braceEscaped === true || code === CHAR_LEFT_CURLY_BRACE) {\n      braces++;\n\n      while (eos() !== true && (code = advance())) {\n        if (code === CHAR_BACKWARD_SLASH) {\n          backslashes = token.backslashes = true;\n          advance();\n          continue;\n        }\n\n        if (code === CHAR_LEFT_CURLY_BRACE) {\n          braces++;\n          continue;\n        }\n\n        if (braceEscaped !== true && code === CHAR_DOT && (code = advance()) === CHAR_DOT) {\n          isBrace = token.isBrace = true;\n          isGlob = token.isGlob = true;\n          finished = true;\n\n          if (scanToEnd === true) {\n            continue;\n          }\n\n          break;\n        }\n\n        if (braceEscaped !== true && code === CHAR_COMMA) {\n          isBrace = token.isBrace = true;\n          isGlob = token.isGlob = true;\n          finished = true;\n\n          if (scanToEnd === true) {\n            continue;\n          }\n\n          break;\n        }\n\n        if (code === CHAR_RIGHT_CURLY_BRACE) {\n          braces--;\n\n          if (braces === 0) {\n            braceEscaped = false;\n            isBrace = token.isBrace = true;\n            finished = true;\n            break;\n          }\n        }\n      }\n\n      if (scanToEnd === true) {\n        continue;\n      }\n\n      break;\n    }\n\n    if (code === CHAR_FORWARD_SLASH) {\n      slashes.push(index);\n      tokens.push(token);\n      token = { value: '', depth: 0, isGlob: false };\n\n      if (finished === true) continue;\n      if (prev === CHAR_DOT && index === (start + 1)) {\n        start += 2;\n        continue;\n      }\n\n      lastIndex = index + 1;\n      continue;\n    }\n\n    if (opts.noext !== true) {\n      const isExtglobChar = code === CHAR_PLUS\n        || code === CHAR_AT\n        || code === CHAR_ASTERISK\n        || code === CHAR_QUESTION_MARK\n        || code === CHAR_EXCLAMATION_MARK;\n\n      if (isExtglobChar === true && peek() === CHAR_LEFT_PARENTHESES) {\n        isGlob = token.isGlob = true;\n        isExtglob = token.isExtglob = true;\n        finished = true;\n        if (code === CHAR_EXCLAMATION_MARK && index === start) {\n          negatedExtglob = true;\n        }\n\n        if (scanToEnd === true) {\n          while (eos() !== true && (code = advance())) {\n            if (code === CHAR_BACKWARD_SLASH) {\n              backslashes = token.backslashes = true;\n              code = advance();\n              continue;\n            }\n\n            if (code === CHAR_RIGHT_PARENTHESES) {\n              isGlob = token.isGlob = true;\n              finished = true;\n              break;\n            }\n          }\n          continue;\n        }\n        break;\n      }\n    }\n\n    if (code === CHAR_ASTERISK) {\n      if (prev === CHAR_ASTERISK) isGlobstar = token.isGlobstar = true;\n      isGlob = token.isGlob = true;\n      finished = true;\n\n      if (scanToEnd === true) {\n        continue;\n      }\n      break;\n    }\n\n    if (code === CHAR_QUESTION_MARK) {\n      isGlob = token.isGlob = true;\n      finished = true;\n\n      if (scanToEnd === true) {\n        continue;\n      }\n      break;\n    }\n\n    if (code === CHAR_LEFT_SQUARE_BRACKET) {\n      while (eos() !== true && (next = advance())) {\n        if (next === CHAR_BACKWARD_SLASH) {\n          backslashes = token.backslashes = true;\n          advance();\n          continue;\n        }\n\n        if (next === CHAR_RIGHT_SQUARE_BRACKET) {\n          isBracket = token.isBracket = true;\n          isGlob = token.isGlob = true;\n          finished = true;\n          break;\n        }\n      }\n\n      if (scanToEnd === true) {\n        continue;\n      }\n\n      break;\n    }\n\n    if (opts.nonegate !== true && code === CHAR_EXCLAMATION_MARK && index === start) {\n      negated = token.negated = true;\n      start++;\n      continue;\n    }\n\n    if (opts.noparen !== true && code === CHAR_LEFT_PARENTHESES) {\n      isGlob = token.isGlob = true;\n\n      if (scanToEnd === true) {\n        while (eos() !== true && (code = advance())) {\n          if (code === CHAR_LEFT_PARENTHESES) {\n            backslashes = token.backslashes = true;\n            code = advance();\n            continue;\n          }\n\n          if (code === CHAR_RIGHT_PARENTHESES) {\n            finished = true;\n            break;\n          }\n        }\n        continue;\n      }\n      break;\n    }\n\n    if (isGlob === true) {\n      finished = true;\n\n      if (scanToEnd === true) {\n        continue;\n      }\n\n      break;\n    }\n  }\n\n  if (opts.noext === true) {\n    isExtglob = false;\n    isGlob = false;\n  }\n\n  let base = str;\n  let prefix = '';\n  let glob = '';\n\n  if (start > 0) {\n    prefix = str.slice(0, start);\n    str = str.slice(start);\n    lastIndex -= start;\n  }\n\n  if (base && isGlob === true && lastIndex > 0) {\n    base = str.slice(0, lastIndex);\n    glob = str.slice(lastIndex);\n  } else if (isGlob === true) {\n    base = '';\n    glob = str;\n  } else {\n    base = str;\n  }\n\n  if (base && base !== '' && base !== '/' && base !== str) {\n    if (isPathSeparator(base.charCodeAt(base.length - 1))) {\n      base = base.slice(0, -1);\n    }\n  }\n\n  if (opts.unescape === true) {\n    if (glob) glob = utils.removeBackslashes(glob);\n\n    if (base && backslashes === true) {\n      base = utils.removeBackslashes(base);\n    }\n  }\n\n  const state = {\n    prefix,\n    input,\n    start,\n    base,\n    glob,\n    isBrace,\n    isBracket,\n    isGlob,\n    isExtglob,\n    isGlobstar,\n    negated,\n    negatedExtglob\n  };\n\n  if (opts.tokens === true) {\n    state.maxDepth = 0;\n    if (!isPathSeparator(code)) {\n      tokens.push(token);\n    }\n    state.tokens = tokens;\n  }\n\n  if (opts.parts === true || opts.tokens === true) {\n    let prevIndex;\n\n    for (let idx = 0; idx < slashes.length; idx++) {\n      const n = prevIndex ? prevIndex + 1 : start;\n      const i = slashes[idx];\n      const value = input.slice(n, i);\n      if (opts.tokens) {\n        if (idx === 0 && start !== 0) {\n          tokens[idx].isPrefix = true;\n          tokens[idx].value = prefix;\n        } else {\n          tokens[idx].value = value;\n        }\n        depth(tokens[idx]);\n        state.maxDepth += tokens[idx].depth;\n      }\n      if (idx !== 0 || value !== '') {\n        parts.push(value);\n      }\n      prevIndex = i;\n    }\n\n    if (prevIndex && prevIndex + 1 < input.length) {\n      const value = input.slice(prevIndex + 1);\n      parts.push(value);\n\n      if (opts.tokens) {\n        tokens[tokens.length - 1].value = value;\n        depth(tokens[tokens.length - 1]);\n        state.maxDepth += tokens[tokens.length - 1].depth;\n      }\n    }\n\n    state.slashes = slashes;\n    state.parts = parts;\n  }\n\n  return state;\n};\n\nmodule.exports = scan;\n", "'use strict';\n\nconst constants = require('./constants');\nconst utils = require('./utils');\n\n/**\n * Constants\n */\n\nconst {\n  MAX_LENGTH,\n  POSIX_REGEX_SOURCE,\n  REGEX_NON_SPECIAL_CHARS,\n  REGEX_SPECIAL_CHARS_BACKREF,\n  REPLACEMENTS\n} = constants;\n\n/**\n * Helpers\n */\n\nconst expandRange = (args, options) => {\n  if (typeof options.expandRange === 'function') {\n    return options.expandRange(...args, options);\n  }\n\n  args.sort();\n  const value = `[${args.join('-')}]`;\n\n  try {\n    /* eslint-disable-next-line no-new */\n    new RegExp(value);\n  } catch (ex) {\n    return args.map(v => utils.escapeRegex(v)).join('..');\n  }\n\n  return value;\n};\n\n/**\n * Create the message for a syntax error\n */\n\nconst syntaxError = (type, char) => {\n  return `Missing ${type}: \"${char}\" - use \"\\\\\\\\${char}\" to match literal characters`;\n};\n\n/**\n * Parse the given input string.\n * @param {String} input\n * @param {Object} options\n * @return {Object}\n */\n\nconst parse = (input, options) => {\n  if (typeof input !== 'string') {\n    throw new TypeError('Expected a string');\n  }\n\n  input = REPLACEMENTS[input] || input;\n\n  const opts = { ...options };\n  const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;\n\n  let len = input.length;\n  if (len > max) {\n    throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`);\n  }\n\n  const bos = { type: 'bos', value: '', output: opts.prepend || '' };\n  const tokens = [bos];\n\n  const capture = opts.capture ? '' : '?:';\n  const win32 = utils.isWindows(options);\n\n  // create constants based on platform, for windows or posix\n  const PLATFORM_CHARS = constants.globChars(win32);\n  const EXTGLOB_CHARS = constants.extglobChars(PLATFORM_CHARS);\n\n  const {\n    DOT_LITERAL,\n    PLUS_LITERAL,\n    SLASH_LITERAL,\n    ONE_CHAR,\n    DOTS_SLASH,\n    NO_DOT,\n    NO_DOT_SLASH,\n    NO_DOTS_SLASH,\n    QMARK,\n    QMARK_NO_DOT,\n    STAR,\n    START_ANCHOR\n  } = PLATFORM_CHARS;\n\n  const globstar = opts => {\n    return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`;\n  };\n\n  const nodot = opts.dot ? '' : NO_DOT;\n  const qmarkNoDot = opts.dot ? QMARK : QMARK_NO_DOT;\n  let star = opts.bash === true ? globstar(opts) : STAR;\n\n  if (opts.capture) {\n    star = `(${star})`;\n  }\n\n  // minimatch options support\n  if (typeof opts.noext === 'boolean') {\n    opts.noextglob = opts.noext;\n  }\n\n  const state = {\n    input,\n    index: -1,\n    start: 0,\n    dot: opts.dot === true,\n    consumed: '',\n    output: '',\n    prefix: '',\n    backtrack: false,\n    negated: false,\n    brackets: 0,\n    braces: 0,\n    parens: 0,\n    quotes: 0,\n    globstar: false,\n    tokens\n  };\n\n  input = utils.removePrefix(input, state);\n  len = input.length;\n\n  const extglobs = [];\n  const braces = [];\n  const stack = [];\n  let prev = bos;\n  let value;\n\n  /**\n   * Tokenizing helpers\n   */\n\n  const eos = () => state.index === len - 1;\n  const peek = state.peek = (n = 1) => input[state.index + n];\n  const advance = state.advance = () => input[++state.index] || '';\n  const remaining = () => input.slice(state.index + 1);\n  const consume = (value = '', num = 0) => {\n    state.consumed += value;\n    state.index += num;\n  };\n\n  const append = token => {\n    state.output += token.output != null ? token.output : token.value;\n    consume(token.value);\n  };\n\n  const negate = () => {\n    let count = 1;\n\n    while (peek() === '!' && (peek(2) !== '(' || peek(3) === '?')) {\n      advance();\n      state.start++;\n      count++;\n    }\n\n    if (count % 2 === 0) {\n      return false;\n    }\n\n    state.negated = true;\n    state.start++;\n    return true;\n  };\n\n  const increment = type => {\n    state[type]++;\n    stack.push(type);\n  };\n\n  const decrement = type => {\n    state[type]--;\n    stack.pop();\n  };\n\n  /**\n   * Push tokens onto the tokens array. This helper speeds up\n   * tokenizing by 1) helping us avoid backtracking as much as possible,\n   * and 2) helping us avoid creating extra tokens when consecutive\n   * characters are plain text. This improves performance and simplifies\n   * lookbehinds.\n   */\n\n  const push = tok => {\n    if (prev.type === 'globstar') {\n      const isBrace = state.braces > 0 && (tok.type === 'comma' || tok.type === 'brace');\n      const isExtglob = tok.extglob === true || (extglobs.length && (tok.type === 'pipe' || tok.type === 'paren'));\n\n      if (tok.type !== 'slash' && tok.type !== 'paren' && !isBrace && !isExtglob) {\n        state.output = state.output.slice(0, -prev.output.length);\n        prev.type = 'star';\n        prev.value = '*';\n        prev.output = star;\n        state.output += prev.output;\n      }\n    }\n\n    if (extglobs.length && tok.type !== 'paren') {\n      extglobs[extglobs.length - 1].inner += tok.value;\n    }\n\n    if (tok.value || tok.output) append(tok);\n    if (prev && prev.type === 'text' && tok.type === 'text') {\n      prev.value += tok.value;\n      prev.output = (prev.output || '') + tok.value;\n      return;\n    }\n\n    tok.prev = prev;\n    tokens.push(tok);\n    prev = tok;\n  };\n\n  const extglobOpen = (type, value) => {\n    const token = { ...EXTGLOB_CHARS[value], conditions: 1, inner: '' };\n\n    token.prev = prev;\n    token.parens = state.parens;\n    token.output = state.output;\n    const output = (opts.capture ? '(' : '') + token.open;\n\n    increment('parens');\n    push({ type, value, output: state.output ? '' : ONE_CHAR });\n    push({ type: 'paren', extglob: true, value: advance(), output });\n    extglobs.push(token);\n  };\n\n  const extglobClose = token => {\n    let output = token.close + (opts.capture ? ')' : '');\n    let rest;\n\n    if (token.type === 'negate') {\n      let extglobStar = star;\n\n      if (token.inner && token.inner.length > 1 && token.inner.includes('/')) {\n        extglobStar = globstar(opts);\n      }\n\n      if (extglobStar !== star || eos() || /^\\)+$/.test(remaining())) {\n        output = token.close = `)$))${extglobStar}`;\n      }\n\n      if (token.inner.includes('*') && (rest = remaining()) && /^\\.[^\\\\/.]+$/.test(rest)) {\n        output = token.close = `)${rest})${extglobStar})`;\n      }\n\n      if (token.prev.type === 'bos') {\n        state.negatedExtglob = true;\n      }\n    }\n\n    push({ type: 'paren', extglob: true, value, output });\n    decrement('parens');\n  };\n\n  /**\n   * Fast paths\n   */\n\n  if (opts.fastpaths !== false && !/(^[*!]|[/()[\\]{}\"])/.test(input)) {\n    let backslashes = false;\n\n    let output = input.replace(REGEX_SPECIAL_CHARS_BACKREF, (m, esc, chars, first, rest, index) => {\n      if (first === '\\\\') {\n        backslashes = true;\n        return m;\n      }\n\n      if (first === '?') {\n        if (esc) {\n          return esc + first + (rest ? QMARK.repeat(rest.length) : '');\n        }\n        if (index === 0) {\n          return qmarkNoDot + (rest ? QMARK.repeat(rest.length) : '');\n        }\n        return QMARK.repeat(chars.length);\n      }\n\n      if (first === '.') {\n        return DOT_LITERAL.repeat(chars.length);\n      }\n\n      if (first === '*') {\n        if (esc) {\n          return esc + first + (rest ? star : '');\n        }\n        return star;\n      }\n      return esc ? m : `\\\\${m}`;\n    });\n\n    if (backslashes === true) {\n      if (opts.unescape === true) {\n        output = output.replace(/\\\\/g, '');\n      } else {\n        output = output.replace(/\\\\+/g, m => {\n          return m.length % 2 === 0 ? '\\\\\\\\' : (m ? '\\\\' : '');\n        });\n      }\n    }\n\n    if (output === input && opts.contains === true) {\n      state.output = input;\n      return state;\n    }\n\n    state.output = utils.wrapOutput(output, state, options);\n    return state;\n  }\n\n  /**\n   * Tokenize input until we reach end-of-string\n   */\n\n  while (!eos()) {\n    value = advance();\n\n    if (value === '\\u0000') {\n      continue;\n    }\n\n    /**\n     * Escaped characters\n     */\n\n    if (value === '\\\\') {\n      const next = peek();\n\n      if (next === '/' && opts.bash !== true) {\n        continue;\n      }\n\n      if (next === '.' || next === ';') {\n        continue;\n      }\n\n      if (!next) {\n        value += '\\\\';\n        push({ type: 'text', value });\n        continue;\n      }\n\n      // collapse slashes to reduce potential for exploits\n      const match = /^\\\\+/.exec(remaining());\n      let slashes = 0;\n\n      if (match && match[0].length > 2) {\n        slashes = match[0].length;\n        state.index += slashes;\n        if (slashes % 2 !== 0) {\n          value += '\\\\';\n        }\n      }\n\n      if (opts.unescape === true) {\n        value = advance();\n      } else {\n        value += advance();\n      }\n\n      if (state.brackets === 0) {\n        push({ type: 'text', value });\n        continue;\n      }\n    }\n\n    /**\n     * If we're inside a regex character class, continue\n     * until we reach the closing bracket.\n     */\n\n    if (state.brackets > 0 && (value !== ']' || prev.value === '[' || prev.value === '[^')) {\n      if (opts.posix !== false && value === ':') {\n        const inner = prev.value.slice(1);\n        if (inner.includes('[')) {\n          prev.posix = true;\n\n          if (inner.includes(':')) {\n            const idx = prev.value.lastIndexOf('[');\n            const pre = prev.value.slice(0, idx);\n            const rest = prev.value.slice(idx + 2);\n            const posix = POSIX_REGEX_SOURCE[rest];\n            if (posix) {\n              prev.value = pre + posix;\n              state.backtrack = true;\n              advance();\n\n              if (!bos.output && tokens.indexOf(prev) === 1) {\n                bos.output = ONE_CHAR;\n              }\n              continue;\n            }\n          }\n        }\n      }\n\n      if ((value === '[' && peek() !== ':') || (value === '-' && peek() === ']')) {\n        value = `\\\\${value}`;\n      }\n\n      if (value === ']' && (prev.value === '[' || prev.value === '[^')) {\n        value = `\\\\${value}`;\n      }\n\n      if (opts.posix === true && value === '!' && prev.value === '[') {\n        value = '^';\n      }\n\n      prev.value += value;\n      append({ value });\n      continue;\n    }\n\n    /**\n     * If we're inside a quoted string, continue\n     * until we reach the closing double quote.\n     */\n\n    if (state.quotes === 1 && value !== '\"') {\n      value = utils.escapeRegex(value);\n      prev.value += value;\n      append({ value });\n      continue;\n    }\n\n    /**\n     * Double quotes\n     */\n\n    if (value === '\"') {\n      state.quotes = state.quotes === 1 ? 0 : 1;\n      if (opts.keepQuotes === true) {\n        push({ type: 'text', value });\n      }\n      continue;\n    }\n\n    /**\n     * Parentheses\n     */\n\n    if (value === '(') {\n      increment('parens');\n      push({ type: 'paren', value });\n      continue;\n    }\n\n    if (value === ')') {\n      if (state.parens === 0 && opts.strictBrackets === true) {\n        throw new SyntaxError(syntaxError('opening', '('));\n      }\n\n      const extglob = extglobs[extglobs.length - 1];\n      if (extglob && state.parens === extglob.parens + 1) {\n        extglobClose(extglobs.pop());\n        continue;\n      }\n\n      push({ type: 'paren', value, output: state.parens ? ')' : '\\\\)' });\n      decrement('parens');\n      continue;\n    }\n\n    /**\n     * Square brackets\n     */\n\n    if (value === '[') {\n      if (opts.nobracket === true || !remaining().includes(']')) {\n        if (opts.nobracket !== true && opts.strictBrackets === true) {\n          throw new SyntaxError(syntaxError('closing', ']'));\n        }\n\n        value = `\\\\${value}`;\n      } else {\n        increment('brackets');\n      }\n\n      push({ type: 'bracket', value });\n      continue;\n    }\n\n    if (value === ']') {\n      if (opts.nobracket === true || (prev && prev.type === 'bracket' && prev.value.length === 1)) {\n        push({ type: 'text', value, output: `\\\\${value}` });\n        continue;\n      }\n\n      if (state.brackets === 0) {\n        if (opts.strictBrackets === true) {\n          throw new SyntaxError(syntaxError('opening', '['));\n        }\n\n        push({ type: 'text', value, output: `\\\\${value}` });\n        continue;\n      }\n\n      decrement('brackets');\n\n      const prevValue = prev.value.slice(1);\n      if (prev.posix !== true && prevValue[0] === '^' && !prevValue.includes('/')) {\n        value = `/${value}`;\n      }\n\n      prev.value += value;\n      append({ value });\n\n      // when literal brackets are explicitly disabled\n      // assume we should match with a regex character class\n      if (opts.literalBrackets === false || utils.hasRegexChars(prevValue)) {\n        continue;\n      }\n\n      const escaped = utils.escapeRegex(prev.value);\n      state.output = state.output.slice(0, -prev.value.length);\n\n      // when literal brackets are explicitly enabled\n      // assume we should escape the brackets to match literal characters\n      if (opts.literalBrackets === true) {\n        state.output += escaped;\n        prev.value = escaped;\n        continue;\n      }\n\n      // when the user specifies nothing, try to match both\n      prev.value = `(${capture}${escaped}|${prev.value})`;\n      state.output += prev.value;\n      continue;\n    }\n\n    /**\n     * Braces\n     */\n\n    if (value === '{' && opts.nobrace !== true) {\n      increment('braces');\n\n      const open = {\n        type: 'brace',\n        value,\n        output: '(',\n        outputIndex: state.output.length,\n        tokensIndex: state.tokens.length\n      };\n\n      braces.push(open);\n      push(open);\n      continue;\n    }\n\n    if (value === '}') {\n      const brace = braces[braces.length - 1];\n\n      if (opts.nobrace === true || !brace) {\n        push({ type: 'text', value, output: value });\n        continue;\n      }\n\n      let output = ')';\n\n      if (brace.dots === true) {\n        const arr = tokens.slice();\n        const range = [];\n\n        for (let i = arr.length - 1; i >= 0; i--) {\n          tokens.pop();\n          if (arr[i].type === 'brace') {\n            break;\n          }\n          if (arr[i].type !== 'dots') {\n            range.unshift(arr[i].value);\n          }\n        }\n\n        output = expandRange(range, opts);\n        state.backtrack = true;\n      }\n\n      if (brace.comma !== true && brace.dots !== true) {\n        const out = state.output.slice(0, brace.outputIndex);\n        const toks = state.tokens.slice(brace.tokensIndex);\n        brace.value = brace.output = '\\\\{';\n        value = output = '\\\\}';\n        state.output = out;\n        for (const t of toks) {\n          state.output += (t.output || t.value);\n        }\n      }\n\n      push({ type: 'brace', value, output });\n      decrement('braces');\n      braces.pop();\n      continue;\n    }\n\n    /**\n     * Pipes\n     */\n\n    if (value === '|') {\n      if (extglobs.length > 0) {\n        extglobs[extglobs.length - 1].conditions++;\n      }\n      push({ type: 'text', value });\n      continue;\n    }\n\n    /**\n     * Commas\n     */\n\n    if (value === ',') {\n      let output = value;\n\n      const brace = braces[braces.length - 1];\n      if (brace && stack[stack.length - 1] === 'braces') {\n        brace.comma = true;\n        output = '|';\n      }\n\n      push({ type: 'comma', value, output });\n      continue;\n    }\n\n    /**\n     * Slashes\n     */\n\n    if (value === '/') {\n      // if the beginning of the glob is \"./\", advance the start\n      // to the current index, and don't add the \"./\" characters\n      // to the state. This greatly simplifies lookbehinds when\n      // checking for BOS characters like \"!\" and \".\" (not \"./\")\n      if (prev.type === 'dot' && state.index === state.start + 1) {\n        state.start = state.index + 1;\n        state.consumed = '';\n        state.output = '';\n        tokens.pop();\n        prev = bos; // reset \"prev\" to the first token\n        continue;\n      }\n\n      push({ type: 'slash', value, output: SLASH_LITERAL });\n      continue;\n    }\n\n    /**\n     * Dots\n     */\n\n    if (value === '.') {\n      if (state.braces > 0 && prev.type === 'dot') {\n        if (prev.value === '.') prev.output = DOT_LITERAL;\n        const brace = braces[braces.length - 1];\n        prev.type = 'dots';\n        prev.output += value;\n        prev.value += value;\n        brace.dots = true;\n        continue;\n      }\n\n      if ((state.braces + state.parens) === 0 && prev.type !== 'bos' && prev.type !== 'slash') {\n        push({ type: 'text', value, output: DOT_LITERAL });\n        continue;\n      }\n\n      push({ type: 'dot', value, output: DOT_LITERAL });\n      continue;\n    }\n\n    /**\n     * Question marks\n     */\n\n    if (value === '?') {\n      const isGroup = prev && prev.value === '(';\n      if (!isGroup && opts.noextglob !== true && peek() === '(' && peek(2) !== '?') {\n        extglobOpen('qmark', value);\n        continue;\n      }\n\n      if (prev && prev.type === 'paren') {\n        const next = peek();\n        let output = value;\n\n        if (next === '<' && !utils.supportsLookbehinds()) {\n          throw new Error('Node.js v10 or higher is required for regex lookbehinds');\n        }\n\n        if ((prev.value === '(' && !/[!=<:]/.test(next)) || (next === '<' && !/<([!=]|\\w+>)/.test(remaining()))) {\n          output = `\\\\${value}`;\n        }\n\n        push({ type: 'text', value, output });\n        continue;\n      }\n\n      if (opts.dot !== true && (prev.type === 'slash' || prev.type === 'bos')) {\n        push({ type: 'qmark', value, output: QMARK_NO_DOT });\n        continue;\n      }\n\n      push({ type: 'qmark', value, output: QMARK });\n      continue;\n    }\n\n    /**\n     * Exclamation\n     */\n\n    if (value === '!') {\n      if (opts.noextglob !== true && peek() === '(') {\n        if (peek(2) !== '?' || !/[!=<:]/.test(peek(3))) {\n          extglobOpen('negate', value);\n          continue;\n        }\n      }\n\n      if (opts.nonegate !== true && state.index === 0) {\n        negate();\n        continue;\n      }\n    }\n\n    /**\n     * Plus\n     */\n\n    if (value === '+') {\n      if (opts.noextglob !== true && peek() === '(' && peek(2) !== '?') {\n        extglobOpen('plus', value);\n        continue;\n      }\n\n      if ((prev && prev.value === '(') || opts.regex === false) {\n        push({ type: 'plus', value, output: PLUS_LITERAL });\n        continue;\n      }\n\n      if ((prev && (prev.type === 'bracket' || prev.type === 'paren' || prev.type === 'brace')) || state.parens > 0) {\n        push({ type: 'plus', value });\n        continue;\n      }\n\n      push({ type: 'plus', value: PLUS_LITERAL });\n      continue;\n    }\n\n    /**\n     * Plain text\n     */\n\n    if (value === '@') {\n      if (opts.noextglob !== true && peek() === '(' && peek(2) !== '?') {\n        push({ type: 'at', extglob: true, value, output: '' });\n        continue;\n      }\n\n      push({ type: 'text', value });\n      continue;\n    }\n\n    /**\n     * Plain text\n     */\n\n    if (value !== '*') {\n      if (value === '$' || value === '^') {\n        value = `\\\\${value}`;\n      }\n\n      const match = REGEX_NON_SPECIAL_CHARS.exec(remaining());\n      if (match) {\n        value += match[0];\n        state.index += match[0].length;\n      }\n\n      push({ type: 'text', value });\n      continue;\n    }\n\n    /**\n     * Stars\n     */\n\n    if (prev && (prev.type === 'globstar' || prev.star === true)) {\n      prev.type = 'star';\n      prev.star = true;\n      prev.value += value;\n      prev.output = star;\n      state.backtrack = true;\n      state.globstar = true;\n      consume(value);\n      continue;\n    }\n\n    let rest = remaining();\n    if (opts.noextglob !== true && /^\\([^?]/.test(rest)) {\n      extglobOpen('star', value);\n      continue;\n    }\n\n    if (prev.type === 'star') {\n      if (opts.noglobstar === true) {\n        consume(value);\n        continue;\n      }\n\n      const prior = prev.prev;\n      const before = prior.prev;\n      const isStart = prior.type === 'slash' || prior.type === 'bos';\n      const afterStar = before && (before.type === 'star' || before.type === 'globstar');\n\n      if (opts.bash === true && (!isStart || (rest[0] && rest[0] !== '/'))) {\n        push({ type: 'star', value, output: '' });\n        continue;\n      }\n\n      const isBrace = state.braces > 0 && (prior.type === 'comma' || prior.type === 'brace');\n      const isExtglob = extglobs.length && (prior.type === 'pipe' || prior.type === 'paren');\n      if (!isStart && prior.type !== 'paren' && !isBrace && !isExtglob) {\n        push({ type: 'star', value, output: '' });\n        continue;\n      }\n\n      // strip consecutive `/**/`\n      while (rest.slice(0, 3) === '/**') {\n        const after = input[state.index + 4];\n        if (after && after !== '/') {\n          break;\n        }\n        rest = rest.slice(3);\n        consume('/**', 3);\n      }\n\n      if (prior.type === 'bos' && eos()) {\n        prev.type = 'globstar';\n        prev.value += value;\n        prev.output = globstar(opts);\n        state.output = prev.output;\n        state.globstar = true;\n        consume(value);\n        continue;\n      }\n\n      if (prior.type === 'slash' && prior.prev.type !== 'bos' && !afterStar && eos()) {\n        state.output = state.output.slice(0, -(prior.output + prev.output).length);\n        prior.output = `(?:${prior.output}`;\n\n        prev.type = 'globstar';\n        prev.output = globstar(opts) + (opts.strictSlashes ? ')' : '|$)');\n        prev.value += value;\n        state.globstar = true;\n        state.output += prior.output + prev.output;\n        consume(value);\n        continue;\n      }\n\n      if (prior.type === 'slash' && prior.prev.type !== 'bos' && rest[0] === '/') {\n        const end = rest[1] !== void 0 ? '|$' : '';\n\n        state.output = state.output.slice(0, -(prior.output + prev.output).length);\n        prior.output = `(?:${prior.output}`;\n\n        prev.type = 'globstar';\n        prev.output = `${globstar(opts)}${SLASH_LITERAL}|${SLASH_LITERAL}${end})`;\n        prev.value += value;\n\n        state.output += prior.output + prev.output;\n        state.globstar = true;\n\n        consume(value + advance());\n\n        push({ type: 'slash', value: '/', output: '' });\n        continue;\n      }\n\n      if (prior.type === 'bos' && rest[0] === '/') {\n        prev.type = 'globstar';\n        prev.value += value;\n        prev.output = `(?:^|${SLASH_LITERAL}|${globstar(opts)}${SLASH_LITERAL})`;\n        state.output = prev.output;\n        state.globstar = true;\n        consume(value + advance());\n        push({ type: 'slash', value: '/', output: '' });\n        continue;\n      }\n\n      // remove single star from output\n      state.output = state.output.slice(0, -prev.output.length);\n\n      // reset previous token to globstar\n      prev.type = 'globstar';\n      prev.output = globstar(opts);\n      prev.value += value;\n\n      // reset output with globstar\n      state.output += prev.output;\n      state.globstar = true;\n      consume(value);\n      continue;\n    }\n\n    const token = { type: 'star', value, output: star };\n\n    if (opts.bash === true) {\n      token.output = '.*?';\n      if (prev.type === 'bos' || prev.type === 'slash') {\n        token.output = nodot + token.output;\n      }\n      push(token);\n      continue;\n    }\n\n    if (prev && (prev.type === 'bracket' || prev.type === 'paren') && opts.regex === true) {\n      token.output = value;\n      push(token);\n      continue;\n    }\n\n    if (state.index === state.start || prev.type === 'slash' || prev.type === 'dot') {\n      if (prev.type === 'dot') {\n        state.output += NO_DOT_SLASH;\n        prev.output += NO_DOT_SLASH;\n\n      } else if (opts.dot === true) {\n        state.output += NO_DOTS_SLASH;\n        prev.output += NO_DOTS_SLASH;\n\n      } else {\n        state.output += nodot;\n        prev.output += nodot;\n      }\n\n      if (peek() !== '*') {\n        state.output += ONE_CHAR;\n        prev.output += ONE_CHAR;\n      }\n    }\n\n    push(token);\n  }\n\n  while (state.brackets > 0) {\n    if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', ']'));\n    state.output = utils.escapeLast(state.output, '[');\n    decrement('brackets');\n  }\n\n  while (state.parens > 0) {\n    if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', ')'));\n    state.output = utils.escapeLast(state.output, '(');\n    decrement('parens');\n  }\n\n  while (state.braces > 0) {\n    if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', '}'));\n    state.output = utils.escapeLast(state.output, '{');\n    decrement('braces');\n  }\n\n  if (opts.strictSlashes !== true && (prev.type === 'star' || prev.type === 'bracket')) {\n    push({ type: 'maybe_slash', value: '', output: `${SLASH_LITERAL}?` });\n  }\n\n  // rebuild the output if we had to backtrack at any point\n  if (state.backtrack === true) {\n    state.output = '';\n\n    for (const token of state.tokens) {\n      state.output += token.output != null ? token.output : token.value;\n\n      if (token.suffix) {\n        state.output += token.suffix;\n      }\n    }\n  }\n\n  return state;\n};\n\n/**\n * Fast paths for creating regular expressions for common glob patterns.\n * This can significantly speed up processing and has very little downside\n * impact when none of the fast paths match.\n */\n\nparse.fastpaths = (input, options) => {\n  const opts = { ...options };\n  const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;\n  const len = input.length;\n  if (len > max) {\n    throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`);\n  }\n\n  input = REPLACEMENTS[input] || input;\n  const win32 = utils.isWindows(options);\n\n  // create constants based on platform, for windows or posix\n  const {\n    DOT_LITERAL,\n    SLASH_LITERAL,\n    ONE_CHAR,\n    DOTS_SLASH,\n    NO_DOT,\n    NO_DOTS,\n    NO_DOTS_SLASH,\n    STAR,\n    START_ANCHOR\n  } = constants.globChars(win32);\n\n  const nodot = opts.dot ? NO_DOTS : NO_DOT;\n  const slashDot = opts.dot ? NO_DOTS_SLASH : NO_DOT;\n  const capture = opts.capture ? '' : '?:';\n  const state = { negated: false, prefix: '' };\n  let star = opts.bash === true ? '.*?' : STAR;\n\n  if (opts.capture) {\n    star = `(${star})`;\n  }\n\n  const globstar = opts => {\n    if (opts.noglobstar === true) return star;\n    return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`;\n  };\n\n  const create = str => {\n    switch (str) {\n      case '*':\n        return `${nodot}${ONE_CHAR}${star}`;\n\n      case '.*':\n        return `${DOT_LITERAL}${ONE_CHAR}${star}`;\n\n      case '*.*':\n        return `${nodot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`;\n\n      case '*/*':\n        return `${nodot}${star}${SLASH_LITERAL}${ONE_CHAR}${slashDot}${star}`;\n\n      case '**':\n        return nodot + globstar(opts);\n\n      case '**/*':\n        return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${ONE_CHAR}${star}`;\n\n      case '**/*.*':\n        return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`;\n\n      case '**/.*':\n        return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${DOT_LITERAL}${ONE_CHAR}${star}`;\n\n      default: {\n        const match = /^(.*?)\\.(\\w+)$/.exec(str);\n        if (!match) return;\n\n        const source = create(match[1]);\n        if (!source) return;\n\n        return source + DOT_LITERAL + match[2];\n      }\n    }\n  };\n\n  const output = utils.removePrefix(input, state);\n  let source = create(output);\n\n  if (source && opts.strictSlashes !== true) {\n    source += `${SLASH_LITERAL}?`;\n  }\n\n  return source;\n};\n\nmodule.exports = parse;\n", "'use strict';\n\nconst path = require('path');\nconst scan = require('./scan');\nconst parse = require('./parse');\nconst utils = require('./utils');\nconst constants = require('./constants');\nconst isObject = val => val && typeof val === 'object' && !Array.isArray(val);\n\n/**\n * Creates a matcher function from one or more glob patterns. The\n * returned function takes a string to match as its first argument,\n * and returns true if the string is a match. The returned matcher\n * function also takes a boolean as the second argument that, when true,\n * returns an object with additional information.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch(glob[, options]);\n *\n * const isMatch = picomatch('*.!(*a)');\n * console.log(isMatch('a.a')); //=> false\n * console.log(isMatch('a.b')); //=> true\n * ```\n * @name picomatch\n * @param {String|Array} `globs` One or more glob patterns.\n * @param {Object=} `options`\n * @return {Function=} Returns a matcher function.\n * @api public\n */\n\nconst picomatch = (glob, options, returnState = false) => {\n  if (Array.isArray(glob)) {\n    const fns = glob.map(input => picomatch(input, options, returnState));\n    const arrayMatcher = str => {\n      for (const isMatch of fns) {\n        const state = isMatch(str);\n        if (state) return state;\n      }\n      return false;\n    };\n    return arrayMatcher;\n  }\n\n  const isState = isObject(glob) && glob.tokens && glob.input;\n\n  if (glob === '' || (typeof glob !== 'string' && !isState)) {\n    throw new TypeError('Expected pattern to be a non-empty string');\n  }\n\n  const opts = options || {};\n  const posix = utils.isWindows(options);\n  const regex = isState\n    ? picomatch.compileRe(glob, options)\n    : picomatch.makeRe(glob, options, false, true);\n\n  const state = regex.state;\n  delete regex.state;\n\n  let isIgnored = () => false;\n  if (opts.ignore) {\n    const ignoreOpts = { ...options, ignore: null, onMatch: null, onResult: null };\n    isIgnored = picomatch(opts.ignore, ignoreOpts, returnState);\n  }\n\n  const matcher = (input, returnObject = false) => {\n    const { isMatch, match, output } = picomatch.test(input, regex, options, { glob, posix });\n    const result = { glob, state, regex, posix, input, output, match, isMatch };\n\n    if (typeof opts.onResult === 'function') {\n      opts.onResult(result);\n    }\n\n    if (isMatch === false) {\n      result.isMatch = false;\n      return returnObject ? result : false;\n    }\n\n    if (isIgnored(input)) {\n      if (typeof opts.onIgnore === 'function') {\n        opts.onIgnore(result);\n      }\n      result.isMatch = false;\n      return returnObject ? result : false;\n    }\n\n    if (typeof opts.onMatch === 'function') {\n      opts.onMatch(result);\n    }\n    return returnObject ? result : true;\n  };\n\n  if (returnState) {\n    matcher.state = state;\n  }\n\n  return matcher;\n};\n\n/**\n * Test `input` with the given `regex`. This is used by the main\n * `picomatch()` function to test the input string.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.test(input, regex[, options]);\n *\n * console.log(picomatch.test('foo/bar', /^(?:([^/]*?)\\/([^/]*?))$/));\n * // { isMatch: true, match: [ 'foo/', 'foo', 'bar' ], output: 'foo/bar' }\n * ```\n * @param {String} `input` String to test.\n * @param {RegExp} `regex`\n * @return {Object} Returns an object with matching info.\n * @api public\n */\n\npicomatch.test = (input, regex, options, { glob, posix } = {}) => {\n  if (typeof input !== 'string') {\n    throw new TypeError('Expected input to be a string');\n  }\n\n  if (input === '') {\n    return { isMatch: false, output: '' };\n  }\n\n  const opts = options || {};\n  const format = opts.format || (posix ? utils.toPosixSlashes : null);\n  let match = input === glob;\n  let output = (match && format) ? format(input) : input;\n\n  if (match === false) {\n    output = format ? format(input) : input;\n    match = output === glob;\n  }\n\n  if (match === false || opts.capture === true) {\n    if (opts.matchBase === true || opts.basename === true) {\n      match = picomatch.matchBase(input, regex, options, posix);\n    } else {\n      match = regex.exec(output);\n    }\n  }\n\n  return { isMatch: Boolean(match), match, output };\n};\n\n/**\n * Match the basename of a filepath.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.matchBase(input, glob[, options]);\n * console.log(picomatch.matchBase('foo/bar.js', '*.js'); // true\n * ```\n * @param {String} `input` String to test.\n * @param {RegExp|String} `glob` Glob pattern or regex created by [.makeRe](#makeRe).\n * @return {Boolean}\n * @api public\n */\n\npicomatch.matchBase = (input, glob, options, posix = utils.isWindows(options)) => {\n  const regex = glob instanceof RegExp ? glob : picomatch.makeRe(glob, options);\n  return regex.test(path.basename(input));\n};\n\n/**\n * Returns true if **any** of the given glob `patterns` match the specified `string`.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.isMatch(string, patterns[, options]);\n *\n * console.log(picomatch.isMatch('a.a', ['b.*', '*.a'])); //=> true\n * console.log(picomatch.isMatch('a.a', 'b.*')); //=> false\n * ```\n * @param {String|Array} str The string to test.\n * @param {String|Array} patterns One or more glob patterns to use for matching.\n * @param {Object} [options] See available [options](#options).\n * @return {Boolean} Returns true if any patterns match `str`\n * @api public\n */\n\npicomatch.isMatch = (str, patterns, options) => picomatch(patterns, options)(str);\n\n/**\n * Parse a glob pattern to create the source string for a regular\n * expression.\n *\n * ```js\n * const picomatch = require('picomatch');\n * const result = picomatch.parse(pattern[, options]);\n * ```\n * @param {String} `pattern`\n * @param {Object} `options`\n * @return {Object} Returns an object with useful properties and output to be used as a regex source string.\n * @api public\n */\n\npicomatch.parse = (pattern, options) => {\n  if (Array.isArray(pattern)) return pattern.map(p => picomatch.parse(p, options));\n  return parse(pattern, { ...options, fastpaths: false });\n};\n\n/**\n * Scan a glob pattern to separate the pattern into segments.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.scan(input[, options]);\n *\n * const result = picomatch.scan('!./foo/*.js');\n * console.log(result);\n * { prefix: '!./',\n *   input: '!./foo/*.js',\n *   start: 3,\n *   base: 'foo',\n *   glob: '*.js',\n *   isBrace: false,\n *   isBracket: false,\n *   isGlob: true,\n *   isExtglob: false,\n *   isGlobstar: false,\n *   negated: true }\n * ```\n * @param {String} `input` Glob pattern to scan.\n * @param {Object} `options`\n * @return {Object} Returns an object with\n * @api public\n */\n\npicomatch.scan = (input, options) => scan(input, options);\n\n/**\n * Compile a regular expression from the `state` object returned by the\n * [parse()](#parse) method.\n *\n * @param {Object} `state`\n * @param {Object} `options`\n * @param {Boolean} `returnOutput` Intended for implementors, this argument allows you to return the raw output from the parser.\n * @param {Boolean} `returnState` Adds the state to a `state` property on the returned regex. Useful for implementors and debugging.\n * @return {RegExp}\n * @api public\n */\n\npicomatch.compileRe = (state, options, returnOutput = false, returnState = false) => {\n  if (returnOutput === true) {\n    return state.output;\n  }\n\n  const opts = options || {};\n  const prepend = opts.contains ? '' : '^';\n  const append = opts.contains ? '' : '$';\n\n  let source = `${prepend}(?:${state.output})${append}`;\n  if (state && state.negated === true) {\n    source = `^(?!${source}).*$`;\n  }\n\n  const regex = picomatch.toRegex(source, options);\n  if (returnState === true) {\n    regex.state = state;\n  }\n\n  return regex;\n};\n\n/**\n * Create a regular expression from a parsed glob pattern.\n *\n * ```js\n * const picomatch = require('picomatch');\n * const state = picomatch.parse('*.js');\n * // picomatch.compileRe(state[, options]);\n *\n * console.log(picomatch.compileRe(state));\n * //=> /^(?:(?!\\.)(?=.)[^/]*?\\.js)$/\n * ```\n * @param {String} `state` The object returned from the `.parse` method.\n * @param {Object} `options`\n * @param {Boolean} `returnOutput` Implementors may use this argument to return the compiled output, instead of a regular expression. This is not exposed on the options to prevent end-users from mutating the result.\n * @param {Boolean} `returnState` Implementors may use this argument to return the state from the parsed glob with the returned regular expression.\n * @return {RegExp} Returns a regex created from the given pattern.\n * @api public\n */\n\npicomatch.makeRe = (input, options = {}, returnOutput = false, returnState = false) => {\n  if (!input || typeof input !== 'string') {\n    throw new TypeError('Expected a non-empty string');\n  }\n\n  let parsed = { negated: false, fastpaths: true };\n\n  if (options.fastpaths !== false && (input[0] === '.' || input[0] === '*')) {\n    parsed.output = parse.fastpaths(input, options);\n  }\n\n  if (!parsed.output) {\n    parsed = parse(input, options);\n  }\n\n  return picomatch.compileRe(parsed, options, returnOutput, returnState);\n};\n\n/**\n * Create a regular expression from the given regex source string.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.toRegex(source[, options]);\n *\n * const { output } = picomatch.parse('*.js');\n * console.log(picomatch.toRegex(output));\n * //=> /^(?:(?!\\.)(?=.)[^/]*?\\.js)$/\n * ```\n * @param {String} `source` Regular expression source string.\n * @param {Object} `options`\n * @return {RegExp}\n * @api public\n */\n\npicomatch.toRegex = (source, options) => {\n  try {\n    const opts = options || {};\n    return new RegExp(source, opts.flags || (opts.nocase ? 'i' : ''));\n  } catch (err) {\n    if (options && options.debug === true) throw err;\n    return /$^/;\n  }\n};\n\n/**\n * Picomatch constants.\n * @return {Object}\n */\n\npicomatch.constants = constants;\n\n/**\n * Expose \"picomatch\"\n */\n\nmodule.exports = picomatch;\n", "'use strict';\n\nmodule.exports = require('./lib/picomatch');\n", "'use strict';\n\nconst util = require('util');\nconst braces = require('braces');\nconst picomatch = require('picomatch');\nconst utils = require('picomatch/lib/utils');\nconst isEmptyString = val => val === '' || val === './';\n\n/**\n * Returns an array of strings that match one or more glob patterns.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm(list, patterns[, options]);\n *\n * console.log(mm(['a.js', 'a.txt'], ['*.js']));\n * //=> [ 'a.js' ]\n * ```\n * @param {String|Array<string>} `list` List of strings to match.\n * @param {String|Array<string>} `patterns` One or more glob patterns to use for matching.\n * @param {Object} `options` See available [options](#options)\n * @return {Array} Returns an array of matches\n * @summary false\n * @api public\n */\n\nconst micromatch = (list, patterns, options) => {\n  patterns = [].concat(patterns);\n  list = [].concat(list);\n\n  let omit = new Set();\n  let keep = new Set();\n  let items = new Set();\n  let negatives = 0;\n\n  let onResult = state => {\n    items.add(state.output);\n    if (options && options.onResult) {\n      options.onResult(state);\n    }\n  };\n\n  for (let i = 0; i < patterns.length; i++) {\n    let isMatch = picomatch(String(patterns[i]), { ...options, onResult }, true);\n    let negated = isMatch.state.negated || isMatch.state.negatedExtglob;\n    if (negated) negatives++;\n\n    for (let item of list) {\n      let matched = isMatch(item, true);\n\n      let match = negated ? !matched.isMatch : matched.isMatch;\n      if (!match) continue;\n\n      if (negated) {\n        omit.add(matched.output);\n      } else {\n        omit.delete(matched.output);\n        keep.add(matched.output);\n      }\n    }\n  }\n\n  let result = negatives === patterns.length ? [...items] : [...keep];\n  let matches = result.filter(item => !omit.has(item));\n\n  if (options && matches.length === 0) {\n    if (options.failglob === true) {\n      throw new Error(`No matches found for \"${patterns.join(', ')}\"`);\n    }\n\n    if (options.nonull === true || options.nullglob === true) {\n      return options.unescape ? patterns.map(p => p.replace(/\\\\/g, '')) : patterns;\n    }\n  }\n\n  return matches;\n};\n\n/**\n * Backwards compatibility\n */\n\nmicromatch.match = micromatch;\n\n/**\n * Returns a matcher function from the given glob `pattern` and `options`.\n * The returned function takes a string to match as its only argument and returns\n * true if the string is a match.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm.matcher(pattern[, options]);\n *\n * const isMatch = mm.matcher('*.!(*a)');\n * console.log(isMatch('a.a')); //=> false\n * console.log(isMatch('a.b')); //=> true\n * ```\n * @param {String} `pattern` Glob pattern\n * @param {Object} `options`\n * @return {Function} Returns a matcher function.\n * @api public\n */\n\nmicromatch.matcher = (pattern, options) => picomatch(pattern, options);\n\n/**\n * Returns true if **any** of the given glob `patterns` match the specified `string`.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm.isMatch(string, patterns[, options]);\n *\n * console.log(mm.isMatch('a.a', ['b.*', '*.a'])); //=> true\n * console.log(mm.isMatch('a.a', 'b.*')); //=> false\n * ```\n * @param {String} `str` The string to test.\n * @param {String|Array} `patterns` One or more glob patterns to use for matching.\n * @param {Object} `[options]` See available [options](#options).\n * @return {Boolean} Returns true if any patterns match `str`\n * @api public\n */\n\nmicromatch.isMatch = (str, patterns, options) => picomatch(patterns, options)(str);\n\n/**\n * Backwards compatibility\n */\n\nmicromatch.any = micromatch.isMatch;\n\n/**\n * Returns a list of strings that _**do not match any**_ of the given `patterns`.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm.not(list, patterns[, options]);\n *\n * console.log(mm.not(['a.a', 'b.b', 'c.c'], '*.a'));\n * //=> ['b.b', 'c.c']\n * ```\n * @param {Array} `list` Array of strings to match.\n * @param {String|Array} `patterns` One or more glob pattern to use for matching.\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Array} Returns an array of strings that **do not match** the given patterns.\n * @api public\n */\n\nmicromatch.not = (list, patterns, options = {}) => {\n  patterns = [].concat(patterns).map(String);\n  let result = new Set();\n  let items = [];\n\n  let onResult = state => {\n    if (options.onResult) options.onResult(state);\n    items.push(state.output);\n  };\n\n  let matches = micromatch(list, patterns, { ...options, onResult });\n\n  for (let item of items) {\n    if (!matches.includes(item)) {\n      result.add(item);\n    }\n  }\n  return [...result];\n};\n\n/**\n * Returns true if the given `string` contains the given pattern. Similar\n * to [.isMatch](#isMatch) but the pattern can match any part of the string.\n *\n * ```js\n * var mm = require('micromatch');\n * // mm.contains(string, pattern[, options]);\n *\n * console.log(mm.contains('aa/bb/cc', '*b'));\n * //=> true\n * console.log(mm.contains('aa/bb/cc', '*d'));\n * //=> false\n * ```\n * @param {String} `str` The string to match.\n * @param {String|Array} `patterns` Glob pattern to use for matching.\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Boolean} Returns true if any of the patterns matches any part of `str`.\n * @api public\n */\n\nmicromatch.contains = (str, pattern, options) => {\n  if (typeof str !== 'string') {\n    throw new TypeError(`Expected a string: \"${util.inspect(str)}\"`);\n  }\n\n  if (Array.isArray(pattern)) {\n    return pattern.some(p => micromatch.contains(str, p, options));\n  }\n\n  if (typeof pattern === 'string') {\n    if (isEmptyString(str) || isEmptyString(pattern)) {\n      return false;\n    }\n\n    if (str.includes(pattern) || (str.startsWith('./') && str.slice(2).includes(pattern))) {\n      return true;\n    }\n  }\n\n  return micromatch.isMatch(str, pattern, { ...options, contains: true });\n};\n\n/**\n * Filter the keys of the given object with the given `glob` pattern\n * and `options`. Does not attempt to match nested keys. If you need this feature,\n * use [glob-object][] instead.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm.matchKeys(object, patterns[, options]);\n *\n * const obj = { aa: 'a', ab: 'b', ac: 'c' };\n * console.log(mm.matchKeys(obj, '*b'));\n * //=> { ab: 'b' }\n * ```\n * @param {Object} `object` The object with keys to filter.\n * @param {String|Array} `patterns` One or more glob patterns to use for matching.\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Object} Returns an object with only keys that match the given patterns.\n * @api public\n */\n\nmicromatch.matchKeys = (obj, patterns, options) => {\n  if (!utils.isObject(obj)) {\n    throw new TypeError('Expected the first argument to be an object');\n  }\n  let keys = micromatch(Object.keys(obj), patterns, options);\n  let res = {};\n  for (let key of keys) res[key] = obj[key];\n  return res;\n};\n\n/**\n * Returns true if some of the strings in the given `list` match any of the given glob `patterns`.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm.some(list, patterns[, options]);\n *\n * console.log(mm.some(['foo.js', 'bar.js'], ['*.js', '!foo.js']));\n * // true\n * console.log(mm.some(['foo.js'], ['*.js', '!foo.js']));\n * // false\n * ```\n * @param {String|Array} `list` The string or array of strings to test. Returns as soon as the first match is found.\n * @param {String|Array} `patterns` One or more glob patterns to use for matching.\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Boolean} Returns true if any `patterns` matches any of the strings in `list`\n * @api public\n */\n\nmicromatch.some = (list, patterns, options) => {\n  let items = [].concat(list);\n\n  for (let pattern of [].concat(patterns)) {\n    let isMatch = picomatch(String(pattern), options);\n    if (items.some(item => isMatch(item))) {\n      return true;\n    }\n  }\n  return false;\n};\n\n/**\n * Returns true if every string in the given `list` matches\n * any of the given glob `patterns`.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm.every(list, patterns[, options]);\n *\n * console.log(mm.every('foo.js', ['foo.js']));\n * // true\n * console.log(mm.every(['foo.js', 'bar.js'], ['*.js']));\n * // true\n * console.log(mm.every(['foo.js', 'bar.js'], ['*.js', '!foo.js']));\n * // false\n * console.log(mm.every(['foo.js'], ['*.js', '!foo.js']));\n * // false\n * ```\n * @param {String|Array} `list` The string or array of strings to test.\n * @param {String|Array} `patterns` One or more glob patterns to use for matching.\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Boolean} Returns true if all `patterns` matches all of the strings in `list`\n * @api public\n */\n\nmicromatch.every = (list, patterns, options) => {\n  let items = [].concat(list);\n\n  for (let pattern of [].concat(patterns)) {\n    let isMatch = picomatch(String(pattern), options);\n    if (!items.every(item => isMatch(item))) {\n      return false;\n    }\n  }\n  return true;\n};\n\n/**\n * Returns true if **all** of the given `patterns` match\n * the specified string.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm.all(string, patterns[, options]);\n *\n * console.log(mm.all('foo.js', ['foo.js']));\n * // true\n *\n * console.log(mm.all('foo.js', ['*.js', '!foo.js']));\n * // false\n *\n * console.log(mm.all('foo.js', ['*.js', 'foo.js']));\n * // true\n *\n * console.log(mm.all('foo.js', ['*.js', 'f*', '*o*', '*o.js']));\n * // true\n * ```\n * @param {String|Array} `str` The string to test.\n * @param {String|Array} `patterns` One or more glob patterns to use for matching.\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Boolean} Returns true if any patterns match `str`\n * @api public\n */\n\nmicromatch.all = (str, patterns, options) => {\n  if (typeof str !== 'string') {\n    throw new TypeError(`Expected a string: \"${util.inspect(str)}\"`);\n  }\n\n  return [].concat(patterns).every(p => picomatch(p, options)(str));\n};\n\n/**\n * Returns an array of matches captured by `pattern` in `string, or `null` if the pattern did not match.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm.capture(pattern, string[, options]);\n *\n * console.log(mm.capture('test/*.js', 'test/foo.js'));\n * //=> ['foo']\n * console.log(mm.capture('test/*.js', 'foo/bar.css'));\n * //=> null\n * ```\n * @param {String} `glob` Glob pattern to use for matching.\n * @param {String} `input` String to match\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Array|null} Returns an array of captures if the input matches the glob pattern, otherwise `null`.\n * @api public\n */\n\nmicromatch.capture = (glob, input, options) => {\n  let posix = utils.isWindows(options);\n  let regex = picomatch.makeRe(String(glob), { ...options, capture: true });\n  let match = regex.exec(posix ? utils.toPosixSlashes(input) : input);\n\n  if (match) {\n    return match.slice(1).map(v => v === void 0 ? '' : v);\n  }\n};\n\n/**\n * Create a regular expression from the given glob `pattern`.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm.makeRe(pattern[, options]);\n *\n * console.log(mm.makeRe('*.js'));\n * //=> /^(?:(\\.[\\\\\\/])?(?!\\.)(?=.)[^\\/]*?\\.js)$/\n * ```\n * @param {String} `pattern` A glob pattern to convert to regex.\n * @param {Object} `options`\n * @return {RegExp} Returns a regex created from the given pattern.\n * @api public\n */\n\nmicromatch.makeRe = (...args) => picomatch.makeRe(...args);\n\n/**\n * Scan a glob pattern to separate the pattern into segments. Used\n * by the [split](#split) method.\n *\n * ```js\n * const mm = require('micromatch');\n * const state = mm.scan(pattern[, options]);\n * ```\n * @param {String} `pattern`\n * @param {Object} `options`\n * @return {Object} Returns an object with\n * @api public\n */\n\nmicromatch.scan = (...args) => picomatch.scan(...args);\n\n/**\n * Parse a glob pattern to create the source string for a regular\n * expression.\n *\n * ```js\n * const mm = require('micromatch');\n * const state = mm(pattern[, options]);\n * ```\n * @param {String} `glob`\n * @param {Object} `options`\n * @return {Object} Returns an object with useful properties and output to be used as regex source string.\n * @api public\n */\n\nmicromatch.parse = (patterns, options) => {\n  let res = [];\n  for (let pattern of [].concat(patterns || [])) {\n    for (let str of braces(String(pattern), options)) {\n      res.push(picomatch.parse(str, options));\n    }\n  }\n  return res;\n};\n\n/**\n * Process the given brace `pattern`.\n *\n * ```js\n * const { braces } = require('micromatch');\n * console.log(braces('foo/{a,b,c}/bar'));\n * //=> [ 'foo/(a|b|c)/bar' ]\n *\n * console.log(braces('foo/{a,b,c}/bar', { expand: true }));\n * //=> [ 'foo/a/bar', 'foo/b/bar', 'foo/c/bar' ]\n * ```\n * @param {String} `pattern` String with brace pattern to process.\n * @param {Object} `options` Any [options](#options) to change how expansion is performed. See the [braces][] library for all available options.\n * @return {Array}\n * @api public\n */\n\nmicromatch.braces = (pattern, options) => {\n  if (typeof pattern !== 'string') throw new TypeError('Expected a string');\n  if ((options && options.nobrace === true) || !/\\{.*\\}/.test(pattern)) {\n    return [pattern];\n  }\n  return braces(pattern, options);\n};\n\n/**\n * Expand braces\n */\n\nmicromatch.braceExpand = (pattern, options) => {\n  if (typeof pattern !== 'string') throw new TypeError('Expected a string');\n  return micromatch.braces(pattern, { ...options, expand: true });\n};\n\n/**\n * Expose micromatch\n */\n\nmodule.exports = micromatch;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.matchAny = exports.convertPatternsToRe = exports.makeRe = exports.getPatternParts = exports.expandBraceExpansion = exports.expandPatternsWithBraceExpansion = exports.isAffectDepthOfReadingPattern = exports.endsWithSlashGlobStar = exports.hasGlobStar = exports.getBaseDirectory = exports.isPatternRelatedToParentDirectory = exports.getPatternsOutsideCurrentDirectory = exports.getPatternsInsideCurrentDirectory = exports.getPositivePatterns = exports.getNegativePatterns = exports.isPositivePattern = exports.isNegativePattern = exports.convertToNegativePattern = exports.convertToPositivePattern = exports.isDynamicPattern = exports.isStaticPattern = void 0;\nconst path = require(\"path\");\nconst globParent = require(\"glob-parent\");\nconst micromatch = require(\"micromatch\");\nconst GLOBSTAR = '**';\nconst ESCAPE_SYMBOL = '\\\\';\nconst COMMON_GLOB_SYMBOLS_RE = /[*?]|^!/;\nconst REGEX_CHARACTER_CLASS_SYMBOLS_RE = /\\[[^[]*]/;\nconst REGEX_GROUP_SYMBOLS_RE = /(?:^|[^!*+?@])\\([^(]*\\|[^|]*\\)/;\nconst GLOB_EXTENSION_SYMBOLS_RE = /[!*+?@]\\([^(]*\\)/;\nconst BRACE_EXPANSIONS_SYMBOLS_RE = /{[^,.{]*(?:,|\\.\\.)[^{]*}/;\nfunction isStaticPattern(pattern, options = {}) {\n    return !isDynamicPattern(pattern, options);\n}\nexports.isStaticPattern = isStaticPattern;\nfunction isDynamicPattern(pattern, options = {}) {\n    /**\n     * A special case with an empty string is necessary for matching patterns that start with a forward slash.\n     * An empty string cannot be a dynamic pattern.\n     * For example, the pattern `/lib/*` will be spread into parts: '', 'lib', '*'.\n     */\n    if (pattern === '') {\n        return false;\n    }\n    /**\n     * When the `caseSensitiveMatch` option is disabled, all patterns must be marked as dynamic, because we cannot check\n     * filepath directly (without read directory).\n     */\n    if (options.caseSensitiveMatch === false || pattern.includes(ESCAPE_SYMBOL)) {\n        return true;\n    }\n    if (COMMON_GLOB_SYMBOLS_RE.test(pattern) || REGEX_CHARACTER_CLASS_SYMBOLS_RE.test(pattern) || REGEX_GROUP_SYMBOLS_RE.test(pattern)) {\n        return true;\n    }\n    if (options.extglob !== false && GLOB_EXTENSION_SYMBOLS_RE.test(pattern)) {\n        return true;\n    }\n    if (options.braceExpansion !== false && BRACE_EXPANSIONS_SYMBOLS_RE.test(pattern)) {\n        return true;\n    }\n    return false;\n}\nexports.isDynamicPattern = isDynamicPattern;\nfunction convertToPositivePattern(pattern) {\n    return isNegativePattern(pattern) ? pattern.slice(1) : pattern;\n}\nexports.convertToPositivePattern = convertToPositivePattern;\nfunction convertToNegativePattern(pattern) {\n    return '!' + pattern;\n}\nexports.convertToNegativePattern = convertToNegativePattern;\nfunction isNegativePattern(pattern) {\n    return pattern.startsWith('!') && pattern[1] !== '(';\n}\nexports.isNegativePattern = isNegativePattern;\nfunction isPositivePattern(pattern) {\n    return !isNegativePattern(pattern);\n}\nexports.isPositivePattern = isPositivePattern;\nfunction getNegativePatterns(patterns) {\n    return patterns.filter(isNegativePattern);\n}\nexports.getNegativePatterns = getNegativePatterns;\nfunction getPositivePatterns(patterns) {\n    return patterns.filter(isPositivePattern);\n}\nexports.getPositivePatterns = getPositivePatterns;\n/**\n * Returns patterns that can be applied inside the current directory.\n *\n * @example\n * // ['./*', '*', 'a/*']\n * getPatternsInsideCurrentDirectory(['./*', '*', 'a/*', '../*', './../*'])\n */\nfunction getPatternsInsideCurrentDirectory(patterns) {\n    return patterns.filter((pattern) => !isPatternRelatedToParentDirectory(pattern));\n}\nexports.getPatternsInsideCurrentDirectory = getPatternsInsideCurrentDirectory;\n/**\n * Returns patterns to be expanded relative to (outside) the current directory.\n *\n * @example\n * // ['../*', './../*']\n * getPatternsInsideCurrentDirectory(['./*', '*', 'a/*', '../*', './../*'])\n */\nfunction getPatternsOutsideCurrentDirectory(patterns) {\n    return patterns.filter(isPatternRelatedToParentDirectory);\n}\nexports.getPatternsOutsideCurrentDirectory = getPatternsOutsideCurrentDirectory;\nfunction isPatternRelatedToParentDirectory(pattern) {\n    return pattern.startsWith('..') || pattern.startsWith('./..');\n}\nexports.isPatternRelatedToParentDirectory = isPatternRelatedToParentDirectory;\nfunction getBaseDirectory(pattern) {\n    return globParent(pattern, { flipBackslashes: false });\n}\nexports.getBaseDirectory = getBaseDirectory;\nfunction hasGlobStar(pattern) {\n    return pattern.includes(GLOBSTAR);\n}\nexports.hasGlobStar = hasGlobStar;\nfunction endsWithSlashGlobStar(pattern) {\n    return pattern.endsWith('/' + GLOBSTAR);\n}\nexports.endsWithSlashGlobStar = endsWithSlashGlobStar;\nfunction isAffectDepthOfReadingPattern(pattern) {\n    const basename = path.basename(pattern);\n    return endsWithSlashGlobStar(pattern) || isStaticPattern(basename);\n}\nexports.isAffectDepthOfReadingPattern = isAffectDepthOfReadingPattern;\nfunction expandPatternsWithBraceExpansion(patterns) {\n    return patterns.reduce((collection, pattern) => {\n        return collection.concat(expandBraceExpansion(pattern));\n    }, []);\n}\nexports.expandPatternsWithBraceExpansion = expandPatternsWithBraceExpansion;\nfunction expandBraceExpansion(pattern) {\n    return micromatch.braces(pattern, {\n        expand: true,\n        nodupes: true\n    });\n}\nexports.expandBraceExpansion = expandBraceExpansion;\nfunction getPatternParts(pattern, options) {\n    let { parts } = micromatch.scan(pattern, Object.assign(Object.assign({}, options), { parts: true }));\n    /**\n     * The scan method returns an empty array in some cases.\n     * See micromatch/picomatch#58 for more details.\n     */\n    if (parts.length === 0) {\n        parts = [pattern];\n    }\n    /**\n     * The scan method does not return an empty part for the pattern with a forward slash.\n     * This is another part of micromatch/picomatch#58.\n     */\n    if (parts[0].startsWith('/')) {\n        parts[0] = parts[0].slice(1);\n        parts.unshift('');\n    }\n    return parts;\n}\nexports.getPatternParts = getPatternParts;\nfunction makeRe(pattern, options) {\n    return micromatch.makeRe(pattern, options);\n}\nexports.makeRe = makeRe;\nfunction convertPatternsToRe(patterns, options) {\n    return patterns.map((pattern) => makeRe(pattern, options));\n}\nexports.convertPatternsToRe = convertPatternsToRe;\nfunction matchAny(entry, patternsRe) {\n    return patternsRe.some((patternRe) => patternRe.test(entry));\n}\nexports.matchAny = matchAny;\n", "'use strict'\n/*\n * merge2\n * https://github.com/teambition/merge2\n *\n * Copyright (c) 2014-2020 Teambition\n * Licensed under the MIT license.\n */\nconst Stream = require('stream')\nconst PassThrough = Stream.PassThrough\nconst slice = Array.prototype.slice\n\nmodule.exports = merge2\n\nfunction merge2 () {\n  const streamsQueue = []\n  const args = slice.call(arguments)\n  let merging = false\n  let options = args[args.length - 1]\n\n  if (options && !Array.isArray(options) && options.pipe == null) {\n    args.pop()\n  } else {\n    options = {}\n  }\n\n  const doEnd = options.end !== false\n  const doPipeError = options.pipeError === true\n  if (options.objectMode == null) {\n    options.objectMode = true\n  }\n  if (options.highWaterMark == null) {\n    options.highWaterMark = 64 * 1024\n  }\n  const mergedStream = PassThrough(options)\n\n  function addStream () {\n    for (let i = 0, len = arguments.length; i < len; i++) {\n      streamsQueue.push(pauseStreams(arguments[i], options))\n    }\n    mergeStream()\n    return this\n  }\n\n  function mergeStream () {\n    if (merging) {\n      return\n    }\n    merging = true\n\n    let streams = streamsQueue.shift()\n    if (!streams) {\n      process.nextTick(endStream)\n      return\n    }\n    if (!Array.isArray(streams)) {\n      streams = [streams]\n    }\n\n    let pipesCount = streams.length + 1\n\n    function next () {\n      if (--pipesCount > 0) {\n        return\n      }\n      merging = false\n      mergeStream()\n    }\n\n    function pipe (stream) {\n      function onend () {\n        stream.removeListener('merge2UnpipeEnd', onend)\n        stream.removeListener('end', onend)\n        if (doPipeError) {\n          stream.removeListener('error', onerror)\n        }\n        next()\n      }\n      function onerror (err) {\n        mergedStream.emit('error', err)\n      }\n      // skip ended stream\n      if (stream._readableState.endEmitted) {\n        return next()\n      }\n\n      stream.on('merge2UnpipeEnd', onend)\n      stream.on('end', onend)\n\n      if (doPipeError) {\n        stream.on('error', onerror)\n      }\n\n      stream.pipe(mergedStream, { end: false })\n      // compatible for old stream\n      stream.resume()\n    }\n\n    for (let i = 0; i < streams.length; i++) {\n      pipe(streams[i])\n    }\n\n    next()\n  }\n\n  function endStream () {\n    merging = false\n    // emit 'queueDrain' when all streams merged.\n    mergedStream.emit('queueDrain')\n    if (doEnd) {\n      mergedStream.end()\n    }\n  }\n\n  mergedStream.setMaxListeners(0)\n  mergedStream.add = addStream\n  mergedStream.on('unpipe', function (stream) {\n    stream.emit('merge2UnpipeEnd')\n  })\n\n  if (args.length) {\n    addStream.apply(null, args)\n  }\n  return mergedStream\n}\n\n// check and pause streams for pipe.\nfunction pauseStreams (streams, options) {\n  if (!Array.isArray(streams)) {\n    // Backwards-compat with old-style streams\n    if (!streams._readableState && streams.pipe) {\n      streams = streams.pipe(PassThrough(options))\n    }\n    if (!streams._readableState || !streams.pause || !streams.pipe) {\n      throw new Error('Only readable stream can be merged.')\n    }\n    streams.pause()\n  } else {\n    for (let i = 0, len = streams.length; i < len; i++) {\n      streams[i] = pauseStreams(streams[i], options)\n    }\n  }\n  return streams\n}\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.merge = void 0;\nconst merge2 = require(\"merge2\");\nfunction merge(streams) {\n    const mergedStream = merge2(streams);\n    streams.forEach((stream) => {\n        stream.once('error', (error) => mergedStream.emit('error', error));\n    });\n    mergedStream.once('close', () => propagateCloseEventToSources(streams));\n    mergedStream.once('end', () => propagateCloseEventToSources(streams));\n    return mergedStream;\n}\nexports.merge = merge;\nfunction propagateCloseEventToSources(streams) {\n    streams.forEach((stream) => stream.emit('close'));\n}\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isEmpty = exports.isString = void 0;\nfunction isString(input) {\n    return typeof input === 'string';\n}\nexports.isString = isString;\nfunction isEmpty(input) {\n    return input === '';\n}\nexports.isEmpty = isEmpty;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.string = exports.stream = exports.pattern = exports.path = exports.fs = exports.errno = exports.array = void 0;\nconst array = require(\"./array\");\nexports.array = array;\nconst errno = require(\"./errno\");\nexports.errno = errno;\nconst fs = require(\"./fs\");\nexports.fs = fs;\nconst path = require(\"./path\");\nexports.path = path;\nconst pattern = require(\"./pattern\");\nexports.pattern = pattern;\nconst stream = require(\"./stream\");\nexports.stream = stream;\nconst string = require(\"./string\");\nexports.string = string;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.convertPatternGroupToTask = exports.convertPatternGroupsToTasks = exports.groupPatternsByBaseDirectory = exports.getNegativePatternsAsPositive = exports.getPositivePatterns = exports.convertPatternsToTasks = exports.generate = void 0;\nconst utils = require(\"../utils\");\nfunction generate(patterns, settings) {\n    const positivePatterns = getPositivePatterns(patterns);\n    const negativePatterns = getNegativePatternsAsPositive(patterns, settings.ignore);\n    const staticPatterns = positivePatterns.filter((pattern) => utils.pattern.isStaticPattern(pattern, settings));\n    const dynamicPatterns = positivePatterns.filter((pattern) => utils.pattern.isDynamicPattern(pattern, settings));\n    const staticTasks = convertPatternsToTasks(staticPatterns, negativePatterns, /* dynamic */ false);\n    const dynamicTasks = convertPatternsToTasks(dynamicPatterns, negativePatterns, /* dynamic */ true);\n    return staticTasks.concat(dynamicTasks);\n}\nexports.generate = generate;\n/**\n * Returns tasks grouped by basic pattern directories.\n *\n * Patterns that can be found inside (`./`) and outside (`../`) the current directory are handled separately.\n * This is necessary because directory traversal starts at the base directory and goes deeper.\n */\nfunction convertPatternsToTasks(positive, negative, dynamic) {\n    const tasks = [];\n    const patternsOutsideCurrentDirectory = utils.pattern.getPatternsOutsideCurrentDirectory(positive);\n    const patternsInsideCurrentDirectory = utils.pattern.getPatternsInsideCurrentDirectory(positive);\n    const outsideCurrentDirectoryGroup = groupPatternsByBaseDirectory(patternsOutsideCurrentDirectory);\n    const insideCurrentDirectoryGroup = groupPatternsByBaseDirectory(patternsInsideCurrentDirectory);\n    tasks.push(...convertPatternGroupsToTasks(outsideCurrentDirectoryGroup, negative, dynamic));\n    /*\n     * For the sake of reducing future accesses to the file system, we merge all tasks within the current directory\n     * into a global task, if at least one pattern refers to the root (`.`). In this case, the global task covers the rest.\n     */\n    if ('.' in insideCurrentDirectoryGroup) {\n        tasks.push(convertPatternGroupToTask('.', patternsInsideCurrentDirectory, negative, dynamic));\n    }\n    else {\n        tasks.push(...convertPatternGroupsToTasks(insideCurrentDirectoryGroup, negative, dynamic));\n    }\n    return tasks;\n}\nexports.convertPatternsToTasks = convertPatternsToTasks;\nfunction getPositivePatterns(patterns) {\n    return utils.pattern.getPositivePatterns(patterns);\n}\nexports.getPositivePatterns = getPositivePatterns;\nfunction getNegativePatternsAsPositive(patterns, ignore) {\n    const negative = utils.pattern.getNegativePatterns(patterns).concat(ignore);\n    const positive = negative.map(utils.pattern.convertToPositivePattern);\n    return positive;\n}\nexports.getNegativePatternsAsPositive = getNegativePatternsAsPositive;\nfunction groupPatternsByBaseDirectory(patterns) {\n    const group = {};\n    return patterns.reduce((collection, pattern) => {\n        const base = utils.pattern.getBaseDirectory(pattern);\n        if (base in collection) {\n            collection[base].push(pattern);\n        }\n        else {\n            collection[base] = [pattern];\n        }\n        return collection;\n    }, group);\n}\nexports.groupPatternsByBaseDirectory = groupPatternsByBaseDirectory;\nfunction convertPatternGroupsToTasks(positive, negative, dynamic) {\n    return Object.keys(positive).map((base) => {\n        return convertPatternGroupToTask(base, positive[base], negative, dynamic);\n    });\n}\nexports.convertPatternGroupsToTasks = convertPatternGroupsToTasks;\nfunction convertPatternGroupToTask(base, positive, negative, dynamic) {\n    return {\n        dynamic,\n        positive,\n        negative,\n        base,\n        patterns: [].concat(positive, negative.map(utils.pattern.convertToNegativePattern))\n    };\n}\nexports.convertPatternGroupToTask = convertPatternGroupToTask;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.removeDuplicateSlashes = exports.transform = void 0;\n/**\n * Matches a sequence of two or more consecutive slashes, excluding the first two slashes at the beginning of the string.\n * The latter is due to the presence of the device path at the beginning of the UNC path.\n * @todo rewrite to negative lookbehind with the next major release.\n */\nconst DOUBLE_SLASH_RE = /(?!^)\\/{2,}/g;\nfunction transform(patterns) {\n    return patterns.map((pattern) => removeDuplicateSlashes(pattern));\n}\nexports.transform = transform;\n/**\n * This package only works with forward slashes as a path separator.\n * Because of this, we cannot use the standard `path.normalize` method, because on Windows platform it will use of backslashes.\n */\nfunction removeDuplicateSlashes(pattern) {\n    return pattern.replace(DOUBLE_SLASH_RE, '/');\n}\nexports.removeDuplicateSlashes = removeDuplicateSlashes;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.read = void 0;\nfunction read(path, settings, callback) {\n    settings.fs.lstat(path, (lstatError, lstat) => {\n        if (lstatError !== null) {\n            callFailureCallback(callback, lstatError);\n            return;\n        }\n        if (!lstat.isSymbolicLink() || !settings.followSymbolicLink) {\n            callSuccessCallback(callback, lstat);\n            return;\n        }\n        settings.fs.stat(path, (statError, stat) => {\n            if (statError !== null) {\n                if (settings.throwErrorOnBrokenSymbolicLink) {\n                    callFailureCallback(callback, statError);\n                    return;\n                }\n                callSuccessCallback(callback, lstat);\n                return;\n            }\n            if (settings.markSymbolicLink) {\n                stat.isSymbolicLink = () => true;\n            }\n            callSuccessCallback(callback, stat);\n        });\n    });\n}\nexports.read = read;\nfunction callFailureCallback(callback, error) {\n    callback(error);\n}\nfunction callSuccessCallback(callback, result) {\n    callback(null, result);\n}\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.read = void 0;\nfunction read(path, settings) {\n    const lstat = settings.fs.lstatSync(path);\n    if (!lstat.isSymbolicLink() || !settings.followSymbolicLink) {\n        return lstat;\n    }\n    try {\n        const stat = settings.fs.statSync(path);\n        if (settings.markSymbolicLink) {\n            stat.isSymbolicLink = () => true;\n        }\n        return stat;\n    }\n    catch (error) {\n        if (!settings.throwErrorOnBrokenSymbolicLink) {\n            return lstat;\n        }\n        throw error;\n    }\n}\nexports.read = read;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createFileSystemAdapter = exports.FILE_SYSTEM_ADAPTER = void 0;\nconst fs = require(\"fs\");\nexports.FILE_SYSTEM_ADAPTER = {\n    lstat: fs.lstat,\n    stat: fs.stat,\n    lstatSync: fs.lstatSync,\n    statSync: fs.statSync\n};\nfunction createFileSystemAdapter(fsMethods) {\n    if (fsMethods === undefined) {\n        return exports.FILE_SYSTEM_ADAPTER;\n    }\n    return Object.assign(Object.assign({}, exports.FILE_SYSTEM_ADAPTER), fsMethods);\n}\nexports.createFileSystemAdapter = createFileSystemAdapter;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst fs = require(\"./adapters/fs\");\nclass Settings {\n    constructor(_options = {}) {\n        this._options = _options;\n        this.followSymbolicLink = this._getValue(this._options.followSymbolicLink, true);\n        this.fs = fs.createFileSystemAdapter(this._options.fs);\n        this.markSymbolicLink = this._getValue(this._options.markSymbolicLink, false);\n        this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, true);\n    }\n    _getValue(option, value) {\n        return option !== null && option !== void 0 ? option : value;\n    }\n}\nexports.default = Settings;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.statSync = exports.stat = exports.Settings = void 0;\nconst async = require(\"./providers/async\");\nconst sync = require(\"./providers/sync\");\nconst settings_1 = require(\"./settings\");\nexports.Settings = settings_1.default;\nfunction stat(path, optionsOrSettingsOrCallback, callback) {\n    if (typeof optionsOrSettingsOrCallback === 'function') {\n        async.read(path, getSettings(), optionsOrSettingsOrCallback);\n        return;\n    }\n    async.read(path, getSettings(optionsOrSettingsOrCallback), callback);\n}\nexports.stat = stat;\nfunction statSync(path, optionsOrSettings) {\n    const settings = getSettings(optionsOrSettings);\n    return sync.read(path, settings);\n}\nexports.statSync = statSync;\nfunction getSettings(settingsOrOptions = {}) {\n    if (settingsOrOptions instanceof settings_1.default) {\n        return settingsOrOptions;\n    }\n    return new settings_1.default(settingsOrOptions);\n}\n", "/*! queue-microtask. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */\nlet promise\n\nmodule.exports = typeof queueMicrotask === 'function'\n  ? queueMicrotask.bind(typeof window !== 'undefined' ? window : global)\n  // reuse resolved promise, and allocate it lazily\n  : cb => (promise || (promise = Promise.resolve()))\n    .then(cb)\n    .catch(err => setTimeout(() => { throw err }, 0))\n", "/*! run-parallel. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */\nmodule.exports = runParallel\n\nconst queueMicrotask = require('queue-microtask')\n\nfunction runParallel (tasks, cb) {\n  let results, pending, keys\n  let isSync = true\n\n  if (Array.isArray(tasks)) {\n    results = []\n    pending = tasks.length\n  } else {\n    keys = Object.keys(tasks)\n    results = {}\n    pending = keys.length\n  }\n\n  function done (err) {\n    function end () {\n      if (cb) cb(err, results)\n      cb = null\n    }\n    if (isSync) queueMicrotask(end)\n    else end()\n  }\n\n  function each (i, err, result) {\n    results[i] = result\n    if (--pending === 0 || err) {\n      done(err)\n    }\n  }\n\n  if (!pending) {\n    // empty\n    done(null)\n  } else if (keys) {\n    // object\n    keys.forEach(function (key) {\n      tasks[key](function (err, result) { each(key, err, result) })\n    })\n  } else {\n    // array\n    tasks.forEach(function (task, i) {\n      task(function (err, result) { each(i, err, result) })\n    })\n  }\n\n  isSync = false\n}\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IS_SUPPORT_READDIR_WITH_FILE_TYPES = void 0;\nconst NODE_PROCESS_VERSION_PARTS = process.versions.node.split('.');\nif (NODE_PROCESS_VERSION_PARTS[0] === undefined || NODE_PROCESS_VERSION_PARTS[1] === undefined) {\n    throw new Error(`Unexpected behavior. The 'process.versions.node' variable has invalid value: ${process.versions.node}`);\n}\nconst MAJOR_VERSION = Number.parseInt(NODE_PROCESS_VERSION_PARTS[0], 10);\nconst MINOR_VERSION = Number.parseInt(NODE_PROCESS_VERSION_PARTS[1], 10);\nconst SUPPORTED_MAJOR_VERSION = 10;\nconst SUPPORTED_MINOR_VERSION = 10;\nconst IS_MATCHED_BY_MAJOR = MAJOR_VERSION > SUPPORTED_MAJOR_VERSION;\nconst IS_MATCHED_BY_MAJOR_AND_MINOR = MAJOR_VERSION === SUPPORTED_MAJOR_VERSION && MINOR_VERSION >= SUPPORTED_MINOR_VERSION;\n/**\n * IS `true` for Node.js 10.10 and greater.\n */\nexports.IS_SUPPORT_READDIR_WITH_FILE_TYPES = IS_MATCHED_BY_MAJOR || IS_MATCHED_BY_MAJOR_AND_MINOR;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createDirentFromStats = void 0;\nclass DirentFromStats {\n    constructor(name, stats) {\n        this.name = name;\n        this.isBlockDevice = stats.isBlockDevice.bind(stats);\n        this.isCharacterDevice = stats.isCharacterDevice.bind(stats);\n        this.isDirectory = stats.isDirectory.bind(stats);\n        this.isFIFO = stats.isFIFO.bind(stats);\n        this.isFile = stats.isFile.bind(stats);\n        this.isSocket = stats.isSocket.bind(stats);\n        this.isSymbolicLink = stats.isSymbolicLink.bind(stats);\n    }\n}\nfunction createDirentFromStats(name, stats) {\n    return new DirentFromStats(name, stats);\n}\nexports.createDirentFromStats = createDirentFromStats;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fs = void 0;\nconst fs = require(\"./fs\");\nexports.fs = fs;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.joinPathSegments = void 0;\nfunction joinPathSegments(a, b, separator) {\n    /**\n     * The correct handling of cases when the first segment is a root (`/`, `C:/`) or UNC path (`//?/C:/`).\n     */\n    if (a.endsWith(separator)) {\n        return a + b;\n    }\n    return a + separator + b;\n}\nexports.joinPathSegments = joinPathSegments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.readdir = exports.readdirWithFileTypes = exports.read = void 0;\nconst fsStat = require(\"@nodelib/fs.stat\");\nconst rpl = require(\"run-parallel\");\nconst constants_1 = require(\"../constants\");\nconst utils = require(\"../utils\");\nconst common = require(\"./common\");\nfunction read(directory, settings, callback) {\n    if (!settings.stats && constants_1.IS_SUPPORT_READDIR_WITH_FILE_TYPES) {\n        readdirWithFileTypes(directory, settings, callback);\n        return;\n    }\n    readdir(directory, settings, callback);\n}\nexports.read = read;\nfunction readdirWithFileTypes(directory, settings, callback) {\n    settings.fs.readdir(directory, { withFileTypes: true }, (readdirError, dirents) => {\n        if (readdirError !== null) {\n            callFailureCallback(callback, readdirError);\n            return;\n        }\n        const entries = dirents.map((dirent) => ({\n            dirent,\n            name: dirent.name,\n            path: common.joinPathSegments(directory, dirent.name, settings.pathSegmentSeparator)\n        }));\n        if (!settings.followSymbolicLinks) {\n            callSuccessCallback(callback, entries);\n            return;\n        }\n        const tasks = entries.map((entry) => makeRplTaskEntry(entry, settings));\n        rpl(tasks, (rplError, rplEntries) => {\n            if (rplError !== null) {\n                callFailureCallback(callback, rplError);\n                return;\n            }\n            callSuccessCallback(callback, rplEntries);\n        });\n    });\n}\nexports.readdirWithFileTypes = readdirWithFileTypes;\nfunction makeRplTaskEntry(entry, settings) {\n    return (done) => {\n        if (!entry.dirent.isSymbolicLink()) {\n            done(null, entry);\n            return;\n        }\n        settings.fs.stat(entry.path, (statError, stats) => {\n            if (statError !== null) {\n                if (settings.throwErrorOnBrokenSymbolicLink) {\n                    done(statError);\n                    return;\n                }\n                done(null, entry);\n                return;\n            }\n            entry.dirent = utils.fs.createDirentFromStats(entry.name, stats);\n            done(null, entry);\n        });\n    };\n}\nfunction readdir(directory, settings, callback) {\n    settings.fs.readdir(directory, (readdirError, names) => {\n        if (readdirError !== null) {\n            callFailureCallback(callback, readdirError);\n            return;\n        }\n        const tasks = names.map((name) => {\n            const path = common.joinPathSegments(directory, name, settings.pathSegmentSeparator);\n            return (done) => {\n                fsStat.stat(path, settings.fsStatSettings, (error, stats) => {\n                    if (error !== null) {\n                        done(error);\n                        return;\n                    }\n                    const entry = {\n                        name,\n                        path,\n                        dirent: utils.fs.createDirentFromStats(name, stats)\n                    };\n                    if (settings.stats) {\n                        entry.stats = stats;\n                    }\n                    done(null, entry);\n                });\n            };\n        });\n        rpl(tasks, (rplError, entries) => {\n            if (rplError !== null) {\n                callFailureCallback(callback, rplError);\n                return;\n            }\n            callSuccessCallback(callback, entries);\n        });\n    });\n}\nexports.readdir = readdir;\nfunction callFailureCallback(callback, error) {\n    callback(error);\n}\nfunction callSuccessCallback(callback, result) {\n    callback(null, result);\n}\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.readdir = exports.readdirWithFileTypes = exports.read = void 0;\nconst fsStat = require(\"@nodelib/fs.stat\");\nconst constants_1 = require(\"../constants\");\nconst utils = require(\"../utils\");\nconst common = require(\"./common\");\nfunction read(directory, settings) {\n    if (!settings.stats && constants_1.IS_SUPPORT_READDIR_WITH_FILE_TYPES) {\n        return readdirWithFileTypes(directory, settings);\n    }\n    return readdir(directory, settings);\n}\nexports.read = read;\nfunction readdirWithFileTypes(directory, settings) {\n    const dirents = settings.fs.readdirSync(directory, { withFileTypes: true });\n    return dirents.map((dirent) => {\n        const entry = {\n            dirent,\n            name: dirent.name,\n            path: common.joinPathSegments(directory, dirent.name, settings.pathSegmentSeparator)\n        };\n        if (entry.dirent.isSymbolicLink() && settings.followSymbolicLinks) {\n            try {\n                const stats = settings.fs.statSync(entry.path);\n                entry.dirent = utils.fs.createDirentFromStats(entry.name, stats);\n            }\n            catch (error) {\n                if (settings.throwErrorOnBrokenSymbolicLink) {\n                    throw error;\n                }\n            }\n        }\n        return entry;\n    });\n}\nexports.readdirWithFileTypes = readdirWithFileTypes;\nfunction readdir(directory, settings) {\n    const names = settings.fs.readdirSync(directory);\n    return names.map((name) => {\n        const entryPath = common.joinPathSegments(directory, name, settings.pathSegmentSeparator);\n        const stats = fsStat.statSync(entryPath, settings.fsStatSettings);\n        const entry = {\n            name,\n            path: entryPath,\n            dirent: utils.fs.createDirentFromStats(name, stats)\n        };\n        if (settings.stats) {\n            entry.stats = stats;\n        }\n        return entry;\n    });\n}\nexports.readdir = readdir;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createFileSystemAdapter = exports.FILE_SYSTEM_ADAPTER = void 0;\nconst fs = require(\"fs\");\nexports.FILE_SYSTEM_ADAPTER = {\n    lstat: fs.lstat,\n    stat: fs.stat,\n    lstatSync: fs.lstatSync,\n    statSync: fs.statSync,\n    readdir: fs.readdir,\n    readdirSync: fs.readdirSync\n};\nfunction createFileSystemAdapter(fsMethods) {\n    if (fsMethods === undefined) {\n        return exports.FILE_SYSTEM_ADAPTER;\n    }\n    return Object.assign(Object.assign({}, exports.FILE_SYSTEM_ADAPTER), fsMethods);\n}\nexports.createFileSystemAdapter = createFileSystemAdapter;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst path = require(\"path\");\nconst fsStat = require(\"@nodelib/fs.stat\");\nconst fs = require(\"./adapters/fs\");\nclass Settings {\n    constructor(_options = {}) {\n        this._options = _options;\n        this.followSymbolicLinks = this._getValue(this._options.followSymbolicLinks, false);\n        this.fs = fs.createFileSystemAdapter(this._options.fs);\n        this.pathSegmentSeparator = this._getValue(this._options.pathSegmentSeparator, path.sep);\n        this.stats = this._getValue(this._options.stats, false);\n        this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, true);\n        this.fsStatSettings = new fsStat.Settings({\n            followSymbolicLink: this.followSymbolicLinks,\n            fs: this.fs,\n            throwErrorOnBrokenSymbolicLink: this.throwErrorOnBrokenSymbolicLink\n        });\n    }\n    _getValue(option, value) {\n        return option !== null && option !== void 0 ? option : value;\n    }\n}\nexports.default = Settings;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Settings = exports.scandirSync = exports.scandir = void 0;\nconst async = require(\"./providers/async\");\nconst sync = require(\"./providers/sync\");\nconst settings_1 = require(\"./settings\");\nexports.Settings = settings_1.default;\nfunction scandir(path, optionsOrSettingsOrCallback, callback) {\n    if (typeof optionsOrSettingsOrCallback === 'function') {\n        async.read(path, getSettings(), optionsOrSettingsOrCallback);\n        return;\n    }\n    async.read(path, getSettings(optionsOrSettingsOrCallback), callback);\n}\nexports.scandir = scandir;\nfunction scandirSync(path, optionsOrSettings) {\n    const settings = getSettings(optionsOrSettings);\n    return sync.read(path, settings);\n}\nexports.scandirSync = scandirSync;\nfunction getSettings(settingsOrOptions = {}) {\n    if (settingsOrOptions instanceof settings_1.default) {\n        return settingsOrOptions;\n    }\n    return new settings_1.default(settingsOrOptions);\n}\n", "'use strict'\n\nfunction reusify (Constructor) {\n  var head = new Constructor()\n  var tail = head\n\n  function get () {\n    var current = head\n\n    if (current.next) {\n      head = current.next\n    } else {\n      head = new Constructor()\n      tail = head\n    }\n\n    current.next = null\n\n    return current\n  }\n\n  function release (obj) {\n    tail.next = obj\n    tail = obj\n  }\n\n  return {\n    get: get,\n    release: release\n  }\n}\n\nmodule.exports = reusify\n", "'use strict'\n\n/* eslint-disable no-var */\n\nvar reusify = require('reusify')\n\nfunction fastqueue (context, worker, concurrency) {\n  if (typeof context === 'function') {\n    concurrency = worker\n    worker = context\n    context = null\n  }\n\n  if (concurrency < 1) {\n    throw new Error('fastqueue concurrency must be greater than 1')\n  }\n\n  var cache = reusify(Task)\n  var queueHead = null\n  var queueTail = null\n  var _running = 0\n  var errorHandler = null\n\n  var self = {\n    push: push,\n    drain: noop,\n    saturated: noop,\n    pause: pause,\n    paused: false,\n    concurrency: concurrency,\n    running: running,\n    resume: resume,\n    idle: idle,\n    length: length,\n    getQueue: getQueue,\n    unshift: unshift,\n    empty: noop,\n    kill: kill,\n    killAndDrain: killAndDrain,\n    error: error\n  }\n\n  return self\n\n  function running () {\n    return _running\n  }\n\n  function pause () {\n    self.paused = true\n  }\n\n  function length () {\n    var current = queueHead\n    var counter = 0\n\n    while (current) {\n      current = current.next\n      counter++\n    }\n\n    return counter\n  }\n\n  function getQueue () {\n    var current = queueHead\n    var tasks = []\n\n    while (current) {\n      tasks.push(current.value)\n      current = current.next\n    }\n\n    return tasks\n  }\n\n  function resume () {\n    if (!self.paused) return\n    self.paused = false\n    for (var i = 0; i < self.concurrency; i++) {\n      _running++\n      release()\n    }\n  }\n\n  function idle () {\n    return _running === 0 && self.length() === 0\n  }\n\n  function push (value, done) {\n    var current = cache.get()\n\n    current.context = context\n    current.release = release\n    current.value = value\n    current.callback = done || noop\n    current.errorHandler = errorHandler\n\n    if (_running === self.concurrency || self.paused) {\n      if (queueTail) {\n        queueTail.next = current\n        queueTail = current\n      } else {\n        queueHead = current\n        queueTail = current\n        self.saturated()\n      }\n    } else {\n      _running++\n      worker.call(context, current.value, current.worked)\n    }\n  }\n\n  function unshift (value, done) {\n    var current = cache.get()\n\n    current.context = context\n    current.release = release\n    current.value = value\n    current.callback = done || noop\n\n    if (_running === self.concurrency || self.paused) {\n      if (queueHead) {\n        current.next = queueHead\n        queueHead = current\n      } else {\n        queueHead = current\n        queueTail = current\n        self.saturated()\n      }\n    } else {\n      _running++\n      worker.call(context, current.value, current.worked)\n    }\n  }\n\n  function release (holder) {\n    if (holder) {\n      cache.release(holder)\n    }\n    var next = queueHead\n    if (next) {\n      if (!self.paused) {\n        if (queueTail === queueHead) {\n          queueTail = null\n        }\n        queueHead = next.next\n        next.next = null\n        worker.call(context, next.value, next.worked)\n        if (queueTail === null) {\n          self.empty()\n        }\n      } else {\n        _running--\n      }\n    } else if (--_running === 0) {\n      self.drain()\n    }\n  }\n\n  function kill () {\n    queueHead = null\n    queueTail = null\n    self.drain = noop\n  }\n\n  function killAndDrain () {\n    queueHead = null\n    queueTail = null\n    self.drain()\n    self.drain = noop\n  }\n\n  function error (handler) {\n    errorHandler = handler\n  }\n}\n\nfunction noop () {}\n\nfunction Task () {\n  this.value = null\n  this.callback = noop\n  this.next = null\n  this.release = noop\n  this.context = null\n  this.errorHandler = null\n\n  var self = this\n\n  this.worked = function worked (err, result) {\n    var callback = self.callback\n    var errorHandler = self.errorHandler\n    var val = self.value\n    self.value = null\n    self.callback = noop\n    if (self.errorHandler) {\n      errorHandler(err, val)\n    }\n    callback.call(self.context, err, result)\n    self.release(self)\n  }\n}\n\nfunction queueAsPromised (context, worker, concurrency) {\n  if (typeof context === 'function') {\n    concurrency = worker\n    worker = context\n    context = null\n  }\n\n  function asyncWrapper (arg, cb) {\n    worker.call(this, arg)\n      .then(function (res) {\n        cb(null, res)\n      }, cb)\n  }\n\n  var queue = fastqueue(context, asyncWrapper, concurrency)\n\n  var pushCb = queue.push\n  var unshiftCb = queue.unshift\n\n  queue.push = push\n  queue.unshift = unshift\n  queue.drained = drained\n\n  return queue\n\n  function push (value) {\n    var p = new Promise(function (resolve, reject) {\n      pushCb(value, function (err, result) {\n        if (err) {\n          reject(err)\n          return\n        }\n        resolve(result)\n      })\n    })\n\n    // Let's fork the promise chain to\n    // make the error bubble up to the user but\n    // not lead to a unhandledRejection\n    p.catch(noop)\n\n    return p\n  }\n\n  function unshift (value) {\n    var p = new Promise(function (resolve, reject) {\n      unshiftCb(value, function (err, result) {\n        if (err) {\n          reject(err)\n          return\n        }\n        resolve(result)\n      })\n    })\n\n    // Let's fork the promise chain to\n    // make the error bubble up to the user but\n    // not lead to a unhandledRejection\n    p.catch(noop)\n\n    return p\n  }\n\n  function drained () {\n    var previousDrain = queue.drain\n\n    var p = new Promise(function (resolve) {\n      queue.drain = function () {\n        previousDrain()\n        resolve()\n      }\n    })\n\n    return p\n  }\n}\n\nmodule.exports = fastqueue\nmodule.exports.promise = queueAsPromised\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.joinPathSegments = exports.replacePathSegmentSeparator = exports.isAppliedFilter = exports.isFatalError = void 0;\nfunction isFatalError(settings, error) {\n    if (settings.errorFilter === null) {\n        return true;\n    }\n    return !settings.errorFilter(error);\n}\nexports.isFatalError = isFatalError;\nfunction isAppliedFilter(filter, value) {\n    return filter === null || filter(value);\n}\nexports.isAppliedFilter = isAppliedFilter;\nfunction replacePathSegmentSeparator(filepath, separator) {\n    return filepath.split(/[/\\\\]/).join(separator);\n}\nexports.replacePathSegmentSeparator = replacePathSegmentSeparator;\nfunction joinPathSegments(a, b, separator) {\n    if (a === '') {\n        return b;\n    }\n    /**\n     * The correct handling of cases when the first segment is a root (`/`, `C:/`) or UNC path (`//?/C:/`).\n     */\n    if (a.endsWith(separator)) {\n        return a + b;\n    }\n    return a + separator + b;\n}\nexports.joinPathSegments = joinPathSegments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst common = require(\"./common\");\nclass Reader {\n    constructor(_root, _settings) {\n        this._root = _root;\n        this._settings = _settings;\n        this._root = common.replacePathSegmentSeparator(_root, _settings.pathSegmentSeparator);\n    }\n}\nexports.default = Reader;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst events_1 = require(\"events\");\nconst fsScandir = require(\"@nodelib/fs.scandir\");\nconst fastq = require(\"fastq\");\nconst common = require(\"./common\");\nconst reader_1 = require(\"./reader\");\nclass AsyncReader extends reader_1.default {\n    constructor(_root, _settings) {\n        super(_root, _settings);\n        this._settings = _settings;\n        this._scandir = fsScandir.scandir;\n        this._emitter = new events_1.EventEmitter();\n        this._queue = fastq(this._worker.bind(this), this._settings.concurrency);\n        this._isFatalError = false;\n        this._isDestroyed = false;\n        this._queue.drain = () => {\n            if (!this._isFatalError) {\n                this._emitter.emit('end');\n            }\n        };\n    }\n    read() {\n        this._isFatalError = false;\n        this._isDestroyed = false;\n        setImmediate(() => {\n            this._pushToQueue(this._root, this._settings.basePath);\n        });\n        return this._emitter;\n    }\n    get isDestroyed() {\n        return this._isDestroyed;\n    }\n    destroy() {\n        if (this._isDestroyed) {\n            throw new Error('The reader is already destroyed');\n        }\n        this._isDestroyed = true;\n        this._queue.killAndDrain();\n    }\n    onEntry(callback) {\n        this._emitter.on('entry', callback);\n    }\n    onError(callback) {\n        this._emitter.once('error', callback);\n    }\n    onEnd(callback) {\n        this._emitter.once('end', callback);\n    }\n    _pushToQueue(directory, base) {\n        const queueItem = { directory, base };\n        this._queue.push(queueItem, (error) => {\n            if (error !== null) {\n                this._handleError(error);\n            }\n        });\n    }\n    _worker(item, done) {\n        this._scandir(item.directory, this._settings.fsScandirSettings, (error, entries) => {\n            if (error !== null) {\n                done(error, undefined);\n                return;\n            }\n            for (const entry of entries) {\n                this._handleEntry(entry, item.base);\n            }\n            done(null, undefined);\n        });\n    }\n    _handleError(error) {\n        if (this._isDestroyed || !common.isFatalError(this._settings, error)) {\n            return;\n        }\n        this._isFatalError = true;\n        this._isDestroyed = true;\n        this._emitter.emit('error', error);\n    }\n    _handleEntry(entry, base) {\n        if (this._isDestroyed || this._isFatalError) {\n            return;\n        }\n        const fullpath = entry.path;\n        if (base !== undefined) {\n            entry.path = common.joinPathSegments(base, entry.name, this._settings.pathSegmentSeparator);\n        }\n        if (common.isAppliedFilter(this._settings.entryFilter, entry)) {\n            this._emitEntry(entry);\n        }\n        if (entry.dirent.isDirectory() && common.isAppliedFilter(this._settings.deepFilter, entry)) {\n            this._pushToQueue(fullpath, base === undefined ? undefined : entry.path);\n        }\n    }\n    _emitEntry(entry) {\n        this._emitter.emit('entry', entry);\n    }\n}\nexports.default = AsyncReader;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst async_1 = require(\"../readers/async\");\nclass AsyncProvider {\n    constructor(_root, _settings) {\n        this._root = _root;\n        this._settings = _settings;\n        this._reader = new async_1.default(this._root, this._settings);\n        this._storage = [];\n    }\n    read(callback) {\n        this._reader.onError((error) => {\n            callFailureCallback(callback, error);\n        });\n        this._reader.onEntry((entry) => {\n            this._storage.push(entry);\n        });\n        this._reader.onEnd(() => {\n            callSuccessCallback(callback, this._storage);\n        });\n        this._reader.read();\n    }\n}\nexports.default = AsyncProvider;\nfunction callFailureCallback(callback, error) {\n    callback(error);\n}\nfunction callSuccessCallback(callback, entries) {\n    callback(null, entries);\n}\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst stream_1 = require(\"stream\");\nconst async_1 = require(\"../readers/async\");\nclass StreamProvider {\n    constructor(_root, _settings) {\n        this._root = _root;\n        this._settings = _settings;\n        this._reader = new async_1.default(this._root, this._settings);\n        this._stream = new stream_1.Readable({\n            objectMode: true,\n            read: () => { },\n            destroy: () => {\n                if (!this._reader.isDestroyed) {\n                    this._reader.destroy();\n                }\n            }\n        });\n    }\n    read() {\n        this._reader.onError((error) => {\n            this._stream.emit('error', error);\n        });\n        this._reader.onEntry((entry) => {\n            this._stream.push(entry);\n        });\n        this._reader.onEnd(() => {\n            this._stream.push(null);\n        });\n        this._reader.read();\n        return this._stream;\n    }\n}\nexports.default = StreamProvider;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst fsScandir = require(\"@nodelib/fs.scandir\");\nconst common = require(\"./common\");\nconst reader_1 = require(\"./reader\");\nclass SyncReader extends reader_1.default {\n    constructor() {\n        super(...arguments);\n        this._scandir = fsScandir.scandirSync;\n        this._storage = [];\n        this._queue = new Set();\n    }\n    read() {\n        this._pushToQueue(this._root, this._settings.basePath);\n        this._handleQueue();\n        return this._storage;\n    }\n    _pushToQueue(directory, base) {\n        this._queue.add({ directory, base });\n    }\n    _handleQueue() {\n        for (const item of this._queue.values()) {\n            this._handleDirectory(item.directory, item.base);\n        }\n    }\n    _handleDirectory(directory, base) {\n        try {\n            const entries = this._scandir(directory, this._settings.fsScandirSettings);\n            for (const entry of entries) {\n                this._handleEntry(entry, base);\n            }\n        }\n        catch (error) {\n            this._handleError(error);\n        }\n    }\n    _handleError(error) {\n        if (!common.isFatalError(this._settings, error)) {\n            return;\n        }\n        throw error;\n    }\n    _handleEntry(entry, base) {\n        const fullpath = entry.path;\n        if (base !== undefined) {\n            entry.path = common.joinPathSegments(base, entry.name, this._settings.pathSegmentSeparator);\n        }\n        if (common.isAppliedFilter(this._settings.entryFilter, entry)) {\n            this._pushToStorage(entry);\n        }\n        if (entry.dirent.isDirectory() && common.isAppliedFilter(this._settings.deepFilter, entry)) {\n            this._pushToQueue(fullpath, base === undefined ? undefined : entry.path);\n        }\n    }\n    _pushToStorage(entry) {\n        this._storage.push(entry);\n    }\n}\nexports.default = SyncReader;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst sync_1 = require(\"../readers/sync\");\nclass SyncProvider {\n    constructor(_root, _settings) {\n        this._root = _root;\n        this._settings = _settings;\n        this._reader = new sync_1.default(this._root, this._settings);\n    }\n    read() {\n        return this._reader.read();\n    }\n}\nexports.default = SyncProvider;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst path = require(\"path\");\nconst fsScandir = require(\"@nodelib/fs.scandir\");\nclass Settings {\n    constructor(_options = {}) {\n        this._options = _options;\n        this.basePath = this._getValue(this._options.basePath, undefined);\n        this.concurrency = this._getValue(this._options.concurrency, Number.POSITIVE_INFINITY);\n        this.deepFilter = this._getValue(this._options.deepFilter, null);\n        this.entryFilter = this._getValue(this._options.entryFilter, null);\n        this.errorFilter = this._getValue(this._options.errorFilter, null);\n        this.pathSegmentSeparator = this._getValue(this._options.pathSegmentSeparator, path.sep);\n        this.fsScandirSettings = new fsScandir.Settings({\n            followSymbolicLinks: this._options.followSymbolicLinks,\n            fs: this._options.fs,\n            pathSegmentSeparator: this._options.pathSegmentSeparator,\n            stats: this._options.stats,\n            throwErrorOnBrokenSymbolicLink: this._options.throwErrorOnBrokenSymbolicLink\n        });\n    }\n    _getValue(option, value) {\n        return option !== null && option !== void 0 ? option : value;\n    }\n}\nexports.default = Settings;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Settings = exports.walkStream = exports.walkSync = exports.walk = void 0;\nconst async_1 = require(\"./providers/async\");\nconst stream_1 = require(\"./providers/stream\");\nconst sync_1 = require(\"./providers/sync\");\nconst settings_1 = require(\"./settings\");\nexports.Settings = settings_1.default;\nfunction walk(directory, optionsOrSettingsOrCallback, callback) {\n    if (typeof optionsOrSettingsOrCallback === 'function') {\n        new async_1.default(directory, getSettings()).read(optionsOrSettingsOrCallback);\n        return;\n    }\n    new async_1.default(directory, getSettings(optionsOrSettingsOrCallback)).read(callback);\n}\nexports.walk = walk;\nfunction walkSync(directory, optionsOrSettings) {\n    const settings = getSettings(optionsOrSettings);\n    const provider = new sync_1.default(directory, settings);\n    return provider.read();\n}\nexports.walkSync = walkSync;\nfunction walkStream(directory, optionsOrSettings) {\n    const settings = getSettings(optionsOrSettings);\n    const provider = new stream_1.default(directory, settings);\n    return provider.read();\n}\nexports.walkStream = walkStream;\nfunction getSettings(settingsOrOptions = {}) {\n    if (settingsOrOptions instanceof settings_1.default) {\n        return settingsOrOptions;\n    }\n    return new settings_1.default(settingsOrOptions);\n}\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst path = require(\"path\");\nconst fsStat = require(\"@nodelib/fs.stat\");\nconst utils = require(\"../utils\");\nclass Reader {\n    constructor(_settings) {\n        this._settings = _settings;\n        this._fsStatSettings = new fsStat.Settings({\n            followSymbolicLink: this._settings.followSymbolicLinks,\n            fs: this._settings.fs,\n            throwErrorOnBrokenSymbolicLink: this._settings.followSymbolicLinks\n        });\n    }\n    _getFullEntryPath(filepath) {\n        return path.resolve(this._settings.cwd, filepath);\n    }\n    _makeEntry(stats, pattern) {\n        const entry = {\n            name: pattern,\n            path: pattern,\n            dirent: utils.fs.createDirentFromStats(pattern, stats)\n        };\n        if (this._settings.stats) {\n            entry.stats = stats;\n        }\n        return entry;\n    }\n    _isFatalError(error) {\n        return !utils.errno.isEnoentCodeError(error) && !this._settings.suppressErrors;\n    }\n}\nexports.default = Reader;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst stream_1 = require(\"stream\");\nconst fsStat = require(\"@nodelib/fs.stat\");\nconst fsWalk = require(\"@nodelib/fs.walk\");\nconst reader_1 = require(\"./reader\");\nclass ReaderStream extends reader_1.default {\n    constructor() {\n        super(...arguments);\n        this._walkStream = fsWalk.walkStream;\n        this._stat = fsStat.stat;\n    }\n    dynamic(root, options) {\n        return this._walkStream(root, options);\n    }\n    static(patterns, options) {\n        const filepaths = patterns.map(this._getFullEntryPath, this);\n        const stream = new stream_1.PassThrough({ objectMode: true });\n        stream._write = (index, _enc, done) => {\n            return this._getEntry(filepaths[index], patterns[index], options)\n                .then((entry) => {\n                if (entry !== null && options.entryFilter(entry)) {\n                    stream.push(entry);\n                }\n                if (index === filepaths.length - 1) {\n                    stream.end();\n                }\n                done();\n            })\n                .catch(done);\n        };\n        for (let i = 0; i < filepaths.length; i++) {\n            stream.write(i);\n        }\n        return stream;\n    }\n    _getEntry(filepath, pattern, options) {\n        return this._getStat(filepath)\n            .then((stats) => this._makeEntry(stats, pattern))\n            .catch((error) => {\n            if (options.errorFilter(error)) {\n                return null;\n            }\n            throw error;\n        });\n    }\n    _getStat(filepath) {\n        return new Promise((resolve, reject) => {\n            this._stat(filepath, this._fsStatSettings, (error, stats) => {\n                return error === null ? resolve(stats) : reject(error);\n            });\n        });\n    }\n}\nexports.default = ReaderStream;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst utils = require(\"../../utils\");\nclass Matcher {\n    constructor(_patterns, _settings, _micromatchOptions) {\n        this._patterns = _patterns;\n        this._settings = _settings;\n        this._micromatchOptions = _micromatchOptions;\n        this._storage = [];\n        this._fillStorage();\n    }\n    _fillStorage() {\n        /**\n         * The original pattern may include `{,*,**,a/*}`, which will lead to problems with matching (unresolved level).\n         * So, before expand patterns with brace expansion into separated patterns.\n         */\n        const patterns = utils.pattern.expandPatternsWithBraceExpansion(this._patterns);\n        for (const pattern of patterns) {\n            const segments = this._getPatternSegments(pattern);\n            const sections = this._splitSegmentsIntoSections(segments);\n            this._storage.push({\n                complete: sections.length <= 1,\n                pattern,\n                segments,\n                sections\n            });\n        }\n    }\n    _getPatternSegments(pattern) {\n        const parts = utils.pattern.getPatternParts(pattern, this._micromatchOptions);\n        return parts.map((part) => {\n            const dynamic = utils.pattern.isDynamicPattern(part, this._settings);\n            if (!dynamic) {\n                return {\n                    dynamic: false,\n                    pattern: part\n                };\n            }\n            return {\n                dynamic: true,\n                pattern: part,\n                patternRe: utils.pattern.makeRe(part, this._micromatchOptions)\n            };\n        });\n    }\n    _splitSegmentsIntoSections(segments) {\n        return utils.array.splitWhen(segments, (segment) => segment.dynamic && utils.pattern.hasGlobStar(segment.pattern));\n    }\n}\nexports.default = Matcher;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst matcher_1 = require(\"./matcher\");\nclass PartialMatcher extends matcher_1.default {\n    match(filepath) {\n        const parts = filepath.split('/');\n        const levels = parts.length;\n        const patterns = this._storage.filter((info) => !info.complete || info.segments.length > levels);\n        for (const pattern of patterns) {\n            const section = pattern.sections[0];\n            /**\n             * In this case, the pattern has a globstar and we must read all directories unconditionally,\n             * but only if the level has reached the end of the first group.\n             *\n             * fixtures/{a,b}/**\n             *  ^ true/false  ^ always true\n            */\n            if (!pattern.complete && levels > section.length) {\n                return true;\n            }\n            const match = parts.every((part, index) => {\n                const segment = pattern.segments[index];\n                if (segment.dynamic && segment.patternRe.test(part)) {\n                    return true;\n                }\n                if (!segment.dynamic && segment.pattern === part) {\n                    return true;\n                }\n                return false;\n            });\n            if (match) {\n                return true;\n            }\n        }\n        return false;\n    }\n}\nexports.default = PartialMatcher;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst utils = require(\"../../utils\");\nconst partial_1 = require(\"../matchers/partial\");\nclass DeepFilter {\n    constructor(_settings, _micromatchOptions) {\n        this._settings = _settings;\n        this._micromatchOptions = _micromatchOptions;\n    }\n    getFilter(basePath, positive, negative) {\n        const matcher = this._getMatcher(positive);\n        const negativeRe = this._getNegativePatternsRe(negative);\n        return (entry) => this._filter(basePath, entry, matcher, negativeRe);\n    }\n    _getMatcher(patterns) {\n        return new partial_1.default(patterns, this._settings, this._micromatchOptions);\n    }\n    _getNegativePatternsRe(patterns) {\n        const affectDepthOfReadingPatterns = patterns.filter(utils.pattern.isAffectDepthOfReadingPattern);\n        return utils.pattern.convertPatternsToRe(affectDepthOfReadingPatterns, this._micromatchOptions);\n    }\n    _filter(basePath, entry, matcher, negativeRe) {\n        if (this._isSkippedByDeep(basePath, entry.path)) {\n            return false;\n        }\n        if (this._isSkippedSymbolicLink(entry)) {\n            return false;\n        }\n        const filepath = utils.path.removeLeadingDotSegment(entry.path);\n        if (this._isSkippedByPositivePatterns(filepath, matcher)) {\n            return false;\n        }\n        return this._isSkippedByNegativePatterns(filepath, negativeRe);\n    }\n    _isSkippedByDeep(basePath, entryPath) {\n        /**\n         * Avoid unnecessary depth calculations when it doesn't matter.\n         */\n        if (this._settings.deep === Infinity) {\n            return false;\n        }\n        return this._getEntryLevel(basePath, entryPath) >= this._settings.deep;\n    }\n    _getEntryLevel(basePath, entryPath) {\n        const entryPathDepth = entryPath.split('/').length;\n        if (basePath === '') {\n            return entryPathDepth;\n        }\n        const basePathDepth = basePath.split('/').length;\n        return entryPathDepth - basePathDepth;\n    }\n    _isSkippedSymbolicLink(entry) {\n        return !this._settings.followSymbolicLinks && entry.dirent.isSymbolicLink();\n    }\n    _isSkippedByPositivePatterns(entryPath, matcher) {\n        return !this._settings.baseNameMatch && !matcher.match(entryPath);\n    }\n    _isSkippedByNegativePatterns(entryPath, patternsRe) {\n        return !utils.pattern.matchAny(entryPath, patternsRe);\n    }\n}\nexports.default = DeepFilter;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst utils = require(\"../../utils\");\nclass EntryFilter {\n    constructor(_settings, _micromatchOptions) {\n        this._settings = _settings;\n        this._micromatchOptions = _micromatchOptions;\n        this.index = new Map();\n    }\n    getFilter(positive, negative) {\n        const positiveRe = utils.pattern.convertPatternsToRe(positive, this._micromatchOptions);\n        const negativeRe = utils.pattern.convertPatternsToRe(negative, this._micromatchOptions);\n        return (entry) => this._filter(entry, positiveRe, negativeRe);\n    }\n    _filter(entry, positiveRe, negativeRe) {\n        if (this._settings.unique && this._isDuplicateEntry(entry)) {\n            return false;\n        }\n        if (this._onlyFileFilter(entry) || this._onlyDirectoryFilter(entry)) {\n            return false;\n        }\n        if (this._isSkippedByAbsoluteNegativePatterns(entry.path, negativeRe)) {\n            return false;\n        }\n        const filepath = this._settings.baseNameMatch ? entry.name : entry.path;\n        const isMatched = this._isMatchToPatterns(filepath, positiveRe) && !this._isMatchToPatterns(entry.path, negativeRe);\n        if (this._settings.unique && isMatched) {\n            this._createIndexRecord(entry);\n        }\n        return isMatched;\n    }\n    _isDuplicateEntry(entry) {\n        return this.index.has(entry.path);\n    }\n    _createIndexRecord(entry) {\n        this.index.set(entry.path, undefined);\n    }\n    _onlyFileFilter(entry) {\n        return this._settings.onlyFiles && !entry.dirent.isFile();\n    }\n    _onlyDirectoryFilter(entry) {\n        return this._settings.onlyDirectories && !entry.dirent.isDirectory();\n    }\n    _isSkippedByAbsoluteNegativePatterns(entryPath, patternsRe) {\n        if (!this._settings.absolute) {\n            return false;\n        }\n        const fullpath = utils.path.makeAbsolute(this._settings.cwd, entryPath);\n        return utils.pattern.matchAny(fullpath, patternsRe);\n    }\n    /**\n     * First, just trying to apply patterns to the path.\n     * Second, trying to apply patterns to the path with final slash.\n     */\n    _isMatchToPatterns(entryPath, patternsRe) {\n        const filepath = utils.path.removeLeadingDotSegment(entryPath);\n        return utils.pattern.matchAny(filepath, patternsRe) || utils.pattern.matchAny(filepath + '/', patternsRe);\n    }\n}\nexports.default = EntryFilter;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst utils = require(\"../../utils\");\nclass ErrorFilter {\n    constructor(_settings) {\n        this._settings = _settings;\n    }\n    getFilter() {\n        return (error) => this._isNonFatalError(error);\n    }\n    _isNonFatalError(error) {\n        return utils.errno.isEnoentCodeError(error) || this._settings.suppressErrors;\n    }\n}\nexports.default = ErrorFilter;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst utils = require(\"../../utils\");\nclass EntryTransformer {\n    constructor(_settings) {\n        this._settings = _settings;\n    }\n    getTransformer() {\n        return (entry) => this._transform(entry);\n    }\n    _transform(entry) {\n        let filepath = entry.path;\n        if (this._settings.absolute) {\n            filepath = utils.path.makeAbsolute(this._settings.cwd, filepath);\n            filepath = utils.path.unixify(filepath);\n        }\n        if (this._settings.markDirectories && entry.dirent.isDirectory()) {\n            filepath += '/';\n        }\n        if (!this._settings.objectMode) {\n            return filepath;\n        }\n        return Object.assign(Object.assign({}, entry), { path: filepath });\n    }\n}\nexports.default = EntryTransformer;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst path = require(\"path\");\nconst deep_1 = require(\"./filters/deep\");\nconst entry_1 = require(\"./filters/entry\");\nconst error_1 = require(\"./filters/error\");\nconst entry_2 = require(\"./transformers/entry\");\nclass Provider {\n    constructor(_settings) {\n        this._settings = _settings;\n        this.errorFilter = new error_1.default(this._settings);\n        this.entryFilter = new entry_1.default(this._settings, this._getMicromatchOptions());\n        this.deepFilter = new deep_1.default(this._settings, this._getMicromatchOptions());\n        this.entryTransformer = new entry_2.default(this._settings);\n    }\n    _getRootDirectory(task) {\n        return path.resolve(this._settings.cwd, task.base);\n    }\n    _getReaderOptions(task) {\n        const basePath = task.base === '.' ? '' : task.base;\n        return {\n            basePath,\n            pathSegmentSeparator: '/',\n            concurrency: this._settings.concurrency,\n            deepFilter: this.deepFilter.getFilter(basePath, task.positive, task.negative),\n            entryFilter: this.entryFilter.getFilter(task.positive, task.negative),\n            errorFilter: this.errorFilter.getFilter(),\n            followSymbolicLinks: this._settings.followSymbolicLinks,\n            fs: this._settings.fs,\n            stats: this._settings.stats,\n            throwErrorOnBrokenSymbolicLink: this._settings.throwErrorOnBrokenSymbolicLink,\n            transform: this.entryTransformer.getTransformer()\n        };\n    }\n    _getMicromatchOptions() {\n        return {\n            dot: this._settings.dot,\n            matchBase: this._settings.baseNameMatch,\n            nobrace: !this._settings.braceExpansion,\n            nocase: !this._settings.caseSensitiveMatch,\n            noext: !this._settings.extglob,\n            noglobstar: !this._settings.globstar,\n            posix: true,\n            strictSlashes: false\n        };\n    }\n}\nexports.default = Provider;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst stream_1 = require(\"../readers/stream\");\nconst provider_1 = require(\"./provider\");\nclass ProviderAsync extends provider_1.default {\n    constructor() {\n        super(...arguments);\n        this._reader = new stream_1.default(this._settings);\n    }\n    read(task) {\n        const root = this._getRootDirectory(task);\n        const options = this._getReaderOptions(task);\n        const entries = [];\n        return new Promise((resolve, reject) => {\n            const stream = this.api(root, task, options);\n            stream.once('error', reject);\n            stream.on('data', (entry) => entries.push(options.transform(entry)));\n            stream.once('end', () => resolve(entries));\n        });\n    }\n    api(root, task, options) {\n        if (task.dynamic) {\n            return this._reader.dynamic(root, options);\n        }\n        return this._reader.static(task.patterns, options);\n    }\n}\nexports.default = ProviderAsync;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst stream_1 = require(\"stream\");\nconst stream_2 = require(\"../readers/stream\");\nconst provider_1 = require(\"./provider\");\nclass ProviderStream extends provider_1.default {\n    constructor() {\n        super(...arguments);\n        this._reader = new stream_2.default(this._settings);\n    }\n    read(task) {\n        const root = this._getRootDirectory(task);\n        const options = this._getReaderOptions(task);\n        const source = this.api(root, task, options);\n        const destination = new stream_1.Readable({ objectMode: true, read: () => { } });\n        source\n            .once('error', (error) => destination.emit('error', error))\n            .on('data', (entry) => destination.emit('data', options.transform(entry)))\n            .once('end', () => destination.emit('end'));\n        destination\n            .once('close', () => source.destroy());\n        return destination;\n    }\n    api(root, task, options) {\n        if (task.dynamic) {\n            return this._reader.dynamic(root, options);\n        }\n        return this._reader.static(task.patterns, options);\n    }\n}\nexports.default = ProviderStream;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst fsStat = require(\"@nodelib/fs.stat\");\nconst fsWalk = require(\"@nodelib/fs.walk\");\nconst reader_1 = require(\"./reader\");\nclass ReaderSync extends reader_1.default {\n    constructor() {\n        super(...arguments);\n        this._walkSync = fsWalk.walkSync;\n        this._statSync = fsStat.statSync;\n    }\n    dynamic(root, options) {\n        return this._walkSync(root, options);\n    }\n    static(patterns, options) {\n        const entries = [];\n        for (const pattern of patterns) {\n            const filepath = this._getFullEntryPath(pattern);\n            const entry = this._getEntry(filepath, pattern, options);\n            if (entry === null || !options.entryFilter(entry)) {\n                continue;\n            }\n            entries.push(entry);\n        }\n        return entries;\n    }\n    _getEntry(filepath, pattern, options) {\n        try {\n            const stats = this._getStat(filepath);\n            return this._makeEntry(stats, pattern);\n        }\n        catch (error) {\n            if (options.errorFilter(error)) {\n                return null;\n            }\n            throw error;\n        }\n    }\n    _getStat(filepath) {\n        return this._statSync(filepath, this._fsStatSettings);\n    }\n}\nexports.default = ReaderSync;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst sync_1 = require(\"../readers/sync\");\nconst provider_1 = require(\"./provider\");\nclass ProviderSync extends provider_1.default {\n    constructor() {\n        super(...arguments);\n        this._reader = new sync_1.default(this._settings);\n    }\n    read(task) {\n        const root = this._getRootDirectory(task);\n        const options = this._getReaderOptions(task);\n        const entries = this.api(root, task, options);\n        return entries.map(options.transform);\n    }\n    api(root, task, options) {\n        if (task.dynamic) {\n            return this._reader.dynamic(root, options);\n        }\n        return this._reader.static(task.patterns, options);\n    }\n}\nexports.default = ProviderSync;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DEFAULT_FILE_SYSTEM_ADAPTER = void 0;\nconst fs = require(\"fs\");\nconst os = require(\"os\");\n/**\n * The `os.cpus` method can return zero. We expect the number of cores to be greater than zero.\n * https://github.com/nodejs/node/blob/7faeddf23a98c53896f8b574a6e66589e8fb1eb8/lib/os.js#L106-L107\n */\nconst CPU_COUNT = Math.max(os.cpus().length, 1);\nexports.DEFAULT_FILE_SYSTEM_ADAPTER = {\n    lstat: fs.lstat,\n    lstatSync: fs.lstatSync,\n    stat: fs.stat,\n    statSync: fs.statSync,\n    readdir: fs.readdir,\n    readdirSync: fs.readdirSync\n};\nclass Settings {\n    constructor(_options = {}) {\n        this._options = _options;\n        this.absolute = this._getValue(this._options.absolute, false);\n        this.baseNameMatch = this._getValue(this._options.baseNameMatch, false);\n        this.braceExpansion = this._getValue(this._options.braceExpansion, true);\n        this.caseSensitiveMatch = this._getValue(this._options.caseSensitiveMatch, true);\n        this.concurrency = this._getValue(this._options.concurrency, CPU_COUNT);\n        this.cwd = this._getValue(this._options.cwd, process.cwd());\n        this.deep = this._getValue(this._options.deep, Infinity);\n        this.dot = this._getValue(this._options.dot, false);\n        this.extglob = this._getValue(this._options.extglob, true);\n        this.followSymbolicLinks = this._getValue(this._options.followSymbolicLinks, true);\n        this.fs = this._getFileSystemMethods(this._options.fs);\n        this.globstar = this._getValue(this._options.globstar, true);\n        this.ignore = this._getValue(this._options.ignore, []);\n        this.markDirectories = this._getValue(this._options.markDirectories, false);\n        this.objectMode = this._getValue(this._options.objectMode, false);\n        this.onlyDirectories = this._getValue(this._options.onlyDirectories, false);\n        this.onlyFiles = this._getValue(this._options.onlyFiles, true);\n        this.stats = this._getValue(this._options.stats, false);\n        this.suppressErrors = this._getValue(this._options.suppressErrors, false);\n        this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, false);\n        this.unique = this._getValue(this._options.unique, true);\n        if (this.onlyDirectories) {\n            this.onlyFiles = false;\n        }\n        if (this.stats) {\n            this.objectMode = true;\n        }\n    }\n    _getValue(option, value) {\n        return option === undefined ? value : option;\n    }\n    _getFileSystemMethods(methods = {}) {\n        return Object.assign(Object.assign({}, exports.DEFAULT_FILE_SYSTEM_ADAPTER), methods);\n    }\n}\nexports.default = Settings;\n", "\"use strict\";\nconst taskManager = require(\"./managers/tasks\");\nconst patternManager = require(\"./managers/patterns\");\nconst async_1 = require(\"./providers/async\");\nconst stream_1 = require(\"./providers/stream\");\nconst sync_1 = require(\"./providers/sync\");\nconst settings_1 = require(\"./settings\");\nconst utils = require(\"./utils\");\nasync function FastGlob(source, options) {\n    assertPatternsInput(source);\n    const works = getWorks(source, async_1.default, options);\n    const result = await Promise.all(works);\n    return utils.array.flatten(result);\n}\n// https://github.com/typescript-eslint/typescript-eslint/issues/60\n// eslint-disable-next-line no-redeclare\n(function (FastGlob) {\n    function sync(source, options) {\n        assertPatternsInput(source);\n        const works = getWorks(source, sync_1.default, options);\n        return utils.array.flatten(works);\n    }\n    FastGlob.sync = sync;\n    function stream(source, options) {\n        assertPatternsInput(source);\n        const works = getWorks(source, stream_1.default, options);\n        /**\n         * The stream returned by the provider cannot work with an asynchronous iterator.\n         * To support asynchronous iterators, regardless of the number of tasks, we always multiplex streams.\n         * This affects performance (+25%). I don't see best solution right now.\n         */\n        return utils.stream.merge(works);\n    }\n    FastGlob.stream = stream;\n    function generateTasks(source, options) {\n        assertPatternsInput(source);\n        const patterns = patternManager.transform([].concat(source));\n        const settings = new settings_1.default(options);\n        return taskManager.generate(patterns, settings);\n    }\n    FastGlob.generateTasks = generateTasks;\n    function isDynamicPattern(source, options) {\n        assertPatternsInput(source);\n        const settings = new settings_1.default(options);\n        return utils.pattern.isDynamicPattern(source, settings);\n    }\n    FastGlob.isDynamicPattern = isDynamicPattern;\n    function escapePath(source) {\n        assertPatternsInput(source);\n        return utils.path.escape(source);\n    }\n    FastGlob.escapePath = escapePath;\n})(FastGlob || (FastGlob = {}));\nfunction getWorks(source, _Provider, options) {\n    const patterns = patternManager.transform([].concat(source));\n    const settings = new settings_1.default(options);\n    const tasks = taskManager.generate(patterns, settings);\n    const provider = new _Provider(settings);\n    return tasks.map(provider.read, provider);\n}\nfunction assertPatternsInput(input) {\n    const source = [].concat(input);\n    const isValidSource = source.every((item) => utils.string.isString(item) && !utils.string.isEmpty(item));\n    if (!isValidSource) {\n        throw new TypeError('Patterns must be a string (non empty) or an array of strings');\n    }\n}\nmodule.exports = FastGlob;\n", "\"use strict\";const e=async e=>{try{return(await WebAssembly.instantiate(e)).instance.exports.b(BigInt(0))===BigInt(0)}catch(e){return!1}},a=async e=>{try{return\"undefined\"!=typeof MessageChannel&&(new MessageChannel).port1.postMessage(new SharedArrayBuffer(1)),WebAssembly.validate(e)}catch(e){return!1}},n={bigInt:()=>e(new Uint8Array([0,97,115,109,1,0,0,0,1,6,1,96,1,126,1,126,3,2,1,0,7,5,1,1,98,0,0,10,6,1,4,0,32,0,11])),bulkMemory:async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,5,3,1,0,1,10,14,1,12,0,65,0,65,0,65,0,252,10,0,0,11])),exceptions:async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,8,1,6,0,6,64,25,11,11])),multiValue:async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,6,1,96,0,2,127,127,3,2,1,0,10,8,1,6,0,65,0,65,0,11])),mutableGlobals:async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,2,8,1,1,97,1,98,3,127,1,6,6,1,127,1,65,0,11,7,5,1,1,97,3,1])),referenceTypes:async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,7,1,5,0,208,112,26,11])),saturatedFloatToInt:async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,12,1,10,0,67,0,0,0,0,252,0,26,11])),signExtensions:async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,8,1,6,0,65,0,192,26,11])),simd:async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,10,1,8,0,65,0,253,15,253,98,11])),tailCall:async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,6,1,4,0,18,0,11])),threads:()=>a(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,5,4,1,3,1,1,10,11,1,9,0,65,0,254,16,2,0,26,11]))};module.exports=n;\n", "export enum LogLevel {\n    NONE = 0,\n    DEBUG = 1,\n    INFO = 2,\n    WARNING = 3,\n    ERROR = 4,\n}\n\nexport enum LogTopic {\n    NONE = 0,\n    CONNECT = 1,\n    DISCONNECT = 2,\n    OPEN = 3,\n    QUERY = 4,\n}\n\nexport enum LogEvent {\n    NONE = 0,\n    OK = 1,\n    ERROR = 2,\n    START = 3,\n    RUN = 4,\n    CAPTURE = 5,\n}\n\nexport enum LogOrigin {\n    NONE = 0,\n    WEB_WORKER = 1,\n    NODE_WORKER = 2,\n    BINDINGS = 3,\n    ASYNC_DUCKDB = 4,\n}\n\nexport type LogEntry<O, T, E, V> = {\n    readonly timestamp: Date;\n    readonly level: LogLevel;\n    readonly origin: O;\n    readonly topic: T;\n    readonly event: E;\n    readonly value: V;\n};\n\nexport type LogEntryVariant =\n    | LogEntry<LogOrigin.BINDINGS, LogTopic.QUERY, LogEvent.START, void>\n    | LogEntry<LogOrigin.BINDINGS, LogTopic.QUERY, LogEvent.OK, void>\n    | LogEntry<LogOrigin.BINDINGS, LogTopic.QUERY, LogEvent.ERROR, void>\n    | LogEntry<LogOrigin.BINDINGS, LogTopic.CONNECT, LogEvent.OK, void>\n    | LogEntry<LogOrigin.BINDINGS, LogTopic.CONNECT, LogEvent.ERROR, void>\n    | LogEntry<LogOrigin.BINDINGS, LogTopic.DISCONNECT, LogEvent.OK, void>\n    | LogEntry<LogOrigin.BINDINGS, LogTopic.DISCONNECT, LogEvent.ERROR, void>\n    | LogEntry<LogOrigin.BINDINGS, LogTopic.OPEN, LogEvent.START, void>\n    | LogEntry<LogOrigin.BINDINGS, LogTopic.OPEN, LogEvent.OK, void>\n    | LogEntry<LogOrigin.BINDINGS, LogTopic.OPEN, LogEvent.ERROR, void>\n    | LogEntry<LogOrigin.ASYNC_DUCKDB, LogTopic.QUERY, LogEvent.RUN, string>;\n\nexport interface Logger {\n    log(entry: LogEntryVariant): void;\n}\n\nexport class VoidLogger implements Logger {\n    public log(_entry: LogEntryVariant): void {}\n}\n\nexport class ConsoleLogger implements Logger {\n    public log(entry: LogEntryVariant): void {\n        console.log(entry);\n    }\n}\n\nexport function getLogLevelLabel(level: LogLevel): string {\n    switch (level) {\n        case LogLevel.NONE:\n            return 'NONE';\n        case LogLevel.DEBUG:\n            return 'DEBUG';\n        case LogLevel.INFO:\n            return 'INFO';\n        case LogLevel.WARNING:\n            return 'WARNING';\n        case LogLevel.ERROR:\n            return 'ERROR';\n        default:\n            return '?';\n    }\n}\n\nexport function getLogEventLabel(event: LogEvent): string {\n    switch (event) {\n        case LogEvent.NONE:\n            return 'NONE';\n        case LogEvent.OK:\n            return 'OK';\n        case LogEvent.ERROR:\n            return 'ERROR';\n        case LogEvent.START:\n            return 'START';\n        case LogEvent.RUN:\n            return 'RUN';\n        case LogEvent.CAPTURE:\n            return 'CAPTURE';\n        default:\n            return '?';\n    }\n}\n\nexport function getLogTopicLabel(topic: LogTopic): string {\n    switch (topic) {\n        case LogTopic.CONNECT:\n            return 'CONNECT';\n        case LogTopic.DISCONNECT:\n            return 'DISCONNECT';\n        case LogTopic.OPEN:\n            return 'OPEN';\n        case LogTopic.QUERY:\n            return 'QUERY';\n        default:\n            return '?';\n    }\n}\n\nexport function getLogOriginLabel(origin: LogOrigin): string {\n    switch (origin) {\n        case LogOrigin.NONE:\n            return 'NONE';\n        case LogOrigin.WEB_WORKER:\n            return 'WEB WORKER';\n        case LogOrigin.NODE_WORKER:\n            return 'NODE WORKER';\n        case LogOrigin.BINDINGS:\n            return 'DUCKDB BINDINGS';\n        case LogOrigin.ASYNC_DUCKDB:\n            return 'DUCKDB';\n        default:\n            return '?';\n    }\n}\n", "import * as arrow from 'apache-arrow';\nimport { DuckDBBindings } from './bindings_interface';\nimport { CSVInsertOptions, JSONInsertOptions, ArrowInsertOptions } from './insert_options';\n\n/** A thin helper to bind the connection id and talk record batches */\nexport class DuckDBConnection {\n    /** The bindings */\n    protected _bindings: DuckDBBindings;\n    /** The connection handle */\n    protected _conn: number;\n\n    /** Constructor */\n    constructor(bindings: DuckDBBindings, conn: number) {\n        this._bindings = bindings;\n        this._conn = conn;\n    }\n\n    /** Close a connection */\n    public close(): void {\n        this._bindings.disconnect(this._conn);\n    }\n\n    /** Brave souls may use this function to consume the underlying connection id */\n    public useUnsafe<R>(callback: (bindings: DuckDBBindings, conn: number) => R) {\n        return callback(this._bindings, this._conn);\n    }\n\n    /** Run a query */\n    public query<T extends { [key: string]: arrow.DataType } = any>(text: string): arrow.Table<T> {\n        const buffer = this._bindings.runQuery(this._conn, text);\n        const reader = arrow.RecordBatchReader.from<T>(buffer);\n        console.assert(reader.isSync());\n        console.assert(reader.isFile());\n        return arrow.Table.from(reader);\n    }\n\n    /** Send a query */\n    public send<T extends { [key: string]: arrow.DataType } = any>(text: string): arrow.RecordBatchStreamReader<T> {\n        const header = this._bindings.sendQuery(this._conn, text);\n        const iter = new ResultStreamIterator(this._bindings, this._conn, header);\n        const reader = arrow.RecordBatchReader.from<T>(iter);\n        console.assert(reader.isSync());\n        console.assert(reader.isStream());\n        return reader;\n    }\n\n    /** Get table names */\n    public getTableNames(query: string): string[] {\n        return this._bindings.getTableNames(this._conn, query);\n    }\n\n    /** Create a prepared statement */\n    public prepare<T extends { [key: string]: arrow.DataType } = any>(text: string): PreparedStatement {\n        const stmt = this._bindings.createPrepared(this._conn, text);\n        return new PreparedStatement<T>(this._bindings, this._conn, stmt);\n    }\n\n    /** Insert an arrow table */\n    public insertArrowTable(table: arrow.Table, options: ArrowInsertOptions): void {\n        const buffer = table.serialize('binary', true);\n        this.insertArrowFromIPCStream(buffer, options);\n    }\n    /** Insert an arrow table from an ipc stream */\n    public insertArrowFromIPCStream(buffer: Uint8Array, options: ArrowInsertOptions): void {\n        this._bindings.insertArrowFromIPCStream(this._conn, buffer, options);\n    }\n\n    /** Inesrt csv file from path */\n    public insertCSVFromPath(path: string, options: CSVInsertOptions): void {\n        this._bindings.insertCSVFromPath(this._conn, path, options);\n    }\n    /** Insert json file from path */\n    public insertJSONFromPath(path: string, options: JSONInsertOptions): void {\n        this._bindings.insertJSONFromPath(this._conn, path, options);\n    }\n}\n\n/** A result stream iterator */\nexport class ResultStreamIterator implements Iterable<Uint8Array> {\n    /** First chunk? */\n    _first: boolean;\n    /** Reached end of stream? */\n    _depleted: boolean;\n\n    constructor(protected bindings: DuckDBBindings, protected conn: number, protected header: Uint8Array) {\n        this._first = true;\n        this._depleted = false;\n    }\n\n    next(): IteratorResult<Uint8Array> {\n        if (this._first) {\n            this._first = false;\n            return { done: false, value: this.header };\n        }\n        if (this._depleted) {\n            return { done: true, value: null };\n        }\n        const bufferI8 = this.bindings.fetchQueryResults(this.conn);\n        this._depleted = bufferI8.length == 0;\n        return {\n            done: this._depleted,\n            value: bufferI8,\n        };\n    }\n\n    [Symbol.iterator]() {\n        return this;\n    }\n}\n\n/** A thin helper to bind the prepared statement id*/\nexport class PreparedStatement<T extends { [key: string]: arrow.DataType } = any> {\n    /** The bindings */\n    protected readonly bindings: DuckDBBindings;\n    /** The connection id */\n    protected readonly connectionId: number;\n    /** The statement id */\n    protected readonly statementId: number;\n\n    /** Constructor */\n    constructor(bindings: DuckDBBindings, connectionId: number, statementId: number) {\n        this.bindings = bindings;\n        this.connectionId = connectionId;\n        this.statementId = statementId;\n    }\n\n    /** Close a prepared statement */\n    public close() {\n        this.bindings.closePrepared(this.connectionId, this.statementId);\n    }\n\n    /** Run a prepared statement */\n    public query(...params: any[]): arrow.Table<T> {\n        const buffer = this.bindings.runPrepared(this.connectionId, this.statementId, params);\n        const reader = arrow.RecordBatchReader.from<T>(buffer);\n        console.assert(reader.isSync());\n        console.assert(reader.isFile());\n        return arrow.Table.from(reader as arrow.RecordBatchFileReader);\n    }\n\n    /** Send a prepared statement */\n    public send(...params: any[]): arrow.RecordBatchStreamReader<T> {\n        const header = this.bindings.sendPrepared(this.connectionId, this.statementId, params);\n        const iter = new ResultStreamIterator(this.bindings, this.connectionId, header);\n        const reader = arrow.RecordBatchReader.from<T>(iter);\n        console.assert(reader.isSync());\n        console.assert(reader.isStream());\n        return reader as arrow.RecordBatchStreamReader;\n    }\n}\n", "import { DuckDBModule } from './duckdb_module';\n\n/** Wrapper for TextDecoder to support shared array buffers */\nfunction TextDecoderWrapper(): (input?: BufferSource) => string {\n    const decoder = new TextDecoder();\n    return (data: any) => {\n        if (typeof SharedArrayBuffer !== 'undefined' && data.buffer instanceof SharedArrayBuffer) {\n            data = new Uint8Array(data);\n        }\n        return decoder.decode(data);\n    };\n}\n/** Helper to decode text */\nexport const decodeText = TextDecoderWrapper();\n\n/** Copy a buffer */\nexport function failWith(mod: DuckDBModule, msg: string): void {\n    mod.ccall('duckdb_web_fail_with', null, ['string'], [msg]);\n}\n\n/** Copy a buffer */\nexport function copyBuffer(mod: DuckDBModule, begin: number, length: number): Uint8Array {\n    const buffer = mod.HEAPU8.subarray(begin, begin + length);\n    const copy = new Uint8Array(new ArrayBuffer(buffer.byteLength));\n    copy.set(buffer);\n    return copy;\n}\n\n/** Decode a string */\nexport function readString(mod: DuckDBModule, begin: number, length: number): string {\n    return decodeText(mod.HEAPU8.subarray(begin, begin + length));\n}\n\n/** The data protocol */\nexport enum DuckDBDataProtocol {\n    BUFFER = 0,\n    NATIVE = 1,\n    HTTP = 3,\n}\n\n/** An info for a file registered with DuckDB */\nexport interface DuckDBFileInfo {\n    fileId: number;\n    fileName: string;\n    dataProtocol: DuckDBDataProtocol;\n    dataUrl: string | null;\n    dataNativeFd: number | null;\n    allowFullHttpReads?: boolean;\n}\n\n/** Call a function with packed response buffer */\nexport function callSRet(\n    mod: DuckDBModule,\n    funcName: string,\n    argTypes: Array<Emscripten.JSType>,\n    args: Array<any>,\n): [number, number, number] {\n    const stackPointer = mod.stackSave();\n\n    // Allocate the packed response buffer\n    const response = mod.stackAlloc(3 * 8);\n    argTypes.unshift('number');\n    args.unshift(response);\n\n    // Do the call\n    mod.ccall(funcName, null, argTypes, args);\n\n    // Read the response\n    const status = mod.HEAPF64[(response >> 3) + 0];\n    const data = mod.HEAPF64[(response >> 3) + 1];\n    const dataSize = mod.HEAPF64[(response >> 3) + 2];\n\n    // Restore the stack\n    mod.stackRestore(stackPointer);\n    return [status, data, dataSize];\n}\n\n/** Drop response buffers */\nexport function dropResponseBuffers(mod: DuckDBModule): void {\n    mod.ccall('duckdb_web_clear_response', null, [], []);\n}\n\n/** The duckdb runtime */\nexport interface DuckDBRuntime {\n    _files?: Map<string, any>;\n\n    // Test a platform feature\n    testPlatformFeature(mod: DuckDBModule, feature: number): boolean;\n\n    // File APIs with dedicated file identifier\n    openFile(mod: DuckDBModule, fileId: number): void;\n    syncFile(mod: DuckDBModule, fileId: number): void;\n    closeFile(mod: DuckDBModule, fileId: number): void;\n    getLastFileModificationTime(mod: DuckDBModule, fileId: number): number;\n    truncateFile(mod: DuckDBModule, fileId: number, newSize: number): void;\n    readFile(mod: DuckDBModule, fileId: number, buffer: number, bytes: number, location: number): number;\n    writeFile(mod: DuckDBModule, fileId: number, buffer: number, bytes: number, location: number): number;\n\n    // File APIs with path parameter\n    removeDirectory(mod: DuckDBModule, pathPtr: number, pathLen: number): void;\n    checkDirectory(mod: DuckDBModule, pathPtr: number, pathLen: number): boolean;\n    createDirectory(mod: DuckDBModule, pathPtr: number, pathLen: number): void;\n    listDirectoryEntries(mod: DuckDBModule, pathPtr: number, pathLen: number): boolean;\n    glob(mod: DuckDBModule, pathPtr: number, pathLen: number): void;\n    moveFile(mod: DuckDBModule, fromPtr: number, fromLen: number, toPtr: number, toLen: number): void;\n    checkFile(mod: DuckDBModule, pathPtr: number, pathLen: number): boolean;\n    removeFile(mod: DuckDBModule, pathPtr: number, pathLen: number): void;\n}\n\nexport const DEFAULT_RUNTIME: DuckDBRuntime = {\n    testPlatformFeature: (_mod: DuckDBModule, _feature: number): boolean => false,\n    openFile: (_mod: DuckDBModule, _fileId: number): void => {},\n    syncFile: (_mod: DuckDBModule, _fileId: number): void => {},\n    closeFile: (_mod: DuckDBModule, _fileId: number): void => {},\n    getLastFileModificationTime: (_mod: DuckDBModule, _fileId: number): number => {\n        return 0;\n    },\n    truncateFile: (_mod: DuckDBModule, _fileId: number, _newSize: number): void => {},\n    readFile: (_mod: DuckDBModule, _fileId: number, _buffer: number, _bytes: number, _location: number): number => {\n        return 0;\n    },\n    writeFile: (_mod: DuckDBModule, _fileId: number, _buffer: number, _bytes: number, _location: number): number => {\n        return 0;\n    },\n\n    removeDirectory: (_mod: DuckDBModule, _pathPtr: number, _pathLen: number): void => {},\n    checkDirectory: (_mod: DuckDBModule, _pathPtr: number, _pathLen: number): boolean => {\n        return false;\n    },\n    createDirectory: (_mod: DuckDBModule, _pathPtr: number, _pathLen: number): void => {},\n    listDirectoryEntries: (_mod: DuckDBModule, _pathPtr: number, _pathLen: number): boolean => {\n        return false;\n    },\n    glob: (_mod: DuckDBModule, _pathPtr: number, _pathLen: number): void => {},\n    moveFile: (_mod: DuckDBModule, _fromPtr: number, _fromLen: number, _toPtr: number, _toLen: number): void => {},\n    checkFile: (_mod: DuckDBModule, _pathPtr: number, _pathLen: number): boolean => {\n        return false;\n    },\n    removeFile: (_mod: DuckDBModule, _pathPtr: number, _pathLen: number): void => {},\n};\n", "export interface FileBlockStatistics {\n    /** The file reads cold */\n    file_reads_cold: number;\n    /** The file reads aheads */\n    file_reads_ahead: number;\n    /** The file reads cached */\n    file_reads_cached: number;\n    /** The file writes */\n    file_writes: number;\n    /** The page accesses */\n    page_accesses: number;\n    /** The page loads */\n    page_loads: number;\n}\n\n/** The file block statistics */\nexport class FileStatistics {\n    /** The cold file reads */\n    public totalFileReadsCold: number;\n    /** The file readaheads */\n    public totalFileReadsAhead: number;\n    /** The cached file reads */\n    public totalFileReadsCached: number;\n    /** The file writes */\n    public totalFileWrites: number;\n    /** The page accesses */\n    public totalPageAccesses: number;\n    /** The page loads */\n    public totalPageLoads: number;\n    /** The blocks */\n    public blockSize: number;\n    /** The blocks */\n    public blockStats: Uint8Array;\n\n    constructor(u8array: Uint8Array) {\n        const f64 = new Float64Array(u8array.buffer, u8array.byteOffset, u8array.byteLength / 8);\n        const blocks = new Uint8Array(new ArrayBuffer(u8array.byteLength));\n        blocks.set(u8array.subarray(7 * 8));\n        this.totalFileReadsCold = f64[0];\n        this.totalFileReadsAhead = f64[1];\n        this.totalFileReadsCached = f64[2];\n        this.totalFileWrites = f64[3];\n        this.totalPageAccesses = f64[4];\n        this.totalPageLoads = f64[5];\n        this.blockSize = f64[6];\n        this.blockStats = blocks;\n    }\n\n    /** The block stats */\n    public getBlockStats(index: number, out?: FileBlockStatistics): FileBlockStatistics {\n        out = out || {\n            file_reads_cold: 0,\n            file_reads_ahead: 0,\n            file_reads_cached: 0,\n            file_writes: 0,\n            page_accesses: 0,\n            page_loads: 0,\n        };\n        out.file_writes = this.blockStats[index * 3 + 0] & 0b1111;\n        out.file_reads_cold = this.blockStats[index * 3 + 0] >> 4;\n        out.file_reads_ahead = this.blockStats[index * 3 + 1] & 0b1111;\n        out.file_reads_cached = this.blockStats[index * 3 + 1] >> 4;\n        out.page_accesses = this.blockStats[index * 3 + 1] & 0b1111;\n        out.page_loads = this.blockStats[index * 3 + 1] >> 4;\n        return out;\n    }\n}\n", "import * as arrow from 'apache-arrow';\n\nexport interface FlatArrowType {\n    /// The type\n    type: string;\n    /// Is nullable?\n    nullable?: boolean;\n    /// Decimal precision\n    precision?: number;\n    /// Decimal scaling\n    scale?: number;\n    /// Timezone\n    timezone?: string;\n    /// Byte width (FixedSizeBinary)\n    byteWidth?: number;\n    /// Fields\n    children?: FlatArrowField[];\n}\n\nexport type FlatArrowField = FlatArrowType & { name: string };\n\nexport function flattenArrowField(name: string, type: arrow.DataType): FlatArrowField {\n    switch (type.typeId) {\n        case arrow.Type.Binary:\n            return { name, type: 'binary' };\n        case arrow.Type.Bool:\n            return { name, type: 'bool' };\n        case arrow.Type.Date:\n            return { name, type: 'date' };\n        case arrow.Type.DateDay:\n            return { name, type: 'date32[d]' };\n        case arrow.Type.DateMillisecond:\n            return { name, type: 'date64[ms]' };\n        case arrow.Type.Decimal: {\n            const dec = type as arrow.Decimal;\n            return { name, type: 'decimal', precision: dec.precision, scale: dec.scale };\n        }\n        case arrow.Type.Float:\n            return { name, type: 'float' };\n        case arrow.Type.Float16:\n            return { name, type: 'float16' };\n        case arrow.Type.Float32:\n            return { name, type: 'float32' };\n        case arrow.Type.Float64:\n            return { name, type: 'float64' };\n        case arrow.Type.Int:\n            return { name, type: 'int32' };\n        case arrow.Type.Int16:\n            return { name, type: 'int16' };\n        case arrow.Type.Int32:\n            return { name, type: 'int32' };\n        case arrow.Type.Int64:\n            return { name, type: 'int64' };\n        case arrow.Type.Uint16:\n            return { name, type: 'uint16' };\n        case arrow.Type.Uint32:\n            return { name, type: 'uint32' };\n        case arrow.Type.Uint64:\n            return { name, type: 'uint64' };\n        case arrow.Type.Uint8:\n            return { name, type: 'uint8' };\n        case arrow.Type.IntervalDayTime:\n            return { name, type: 'interval[dt]' };\n        case arrow.Type.IntervalYearMonth:\n            return { name, type: 'interval[m]' };\n        case arrow.Type.List: {\n            const list = type as arrow.List;\n            return { name, type: 'list', children: [flattenArrowField(list.valueField.name, list.valueField.type)] };\n        }\n        case arrow.Type.FixedSizeBinary: {\n            const bin = type as arrow.FixedSizeBinary;\n            return { name, type: 'fixedsizebinary', byteWidth: bin.byteWidth };\n        }\n        case arrow.Type.Null:\n            return { name, type: 'null' };\n        case arrow.Type.Utf8:\n            return { name, type: 'utf8' };\n        case arrow.Type.Struct: {\n            const struct_ = type as arrow.Struct;\n            return {\n                name,\n                type: 'struct',\n                children: struct_.children.map(c => flattenArrowField(c.name, c.type)),\n            };\n        }\n        case arrow.Type.Time:\n            return { name, type: 'time[s]' };\n        case arrow.Type.TimeMicrosecond:\n            return { name, type: 'time[us]' };\n        case arrow.Type.TimeMillisecond:\n            return { name, type: 'time[ms]' };\n        case arrow.Type.TimeNanosecond:\n            return { name, type: 'time[ns]' };\n        case arrow.Type.TimeSecond:\n            return { name, type: 'time[s]' };\n        case arrow.Type.Timestamp: {\n            const ts = type as arrow.Timestamp;\n            return { name, type: 'timestamp', timezone: ts.timezone || undefined };\n        }\n        case arrow.Type.TimestampSecond: {\n            const ts = type as arrow.TimestampSecond;\n            return { name, type: 'timestamp[s]', timezone: ts.timezone || undefined };\n        }\n        case arrow.Type.TimestampMicrosecond: {\n            const ts = type as arrow.TimestampMicrosecond;\n            return { name, type: 'timestamp[us]', timezone: ts.timezone || undefined };\n        }\n        case arrow.Type.TimestampNanosecond: {\n            const ts = type as arrow.TimestampNanosecond;\n            return { name, type: 'timestamp[ns]', timezone: ts.timezone || undefined };\n        }\n        case arrow.Type.TimestampMillisecond: {\n            const ts = type as arrow.TimestampMillisecond;\n            return { name, type: 'timestamp[ms]', timezone: ts.timezone || undefined };\n        }\n    }\n    throw new Error(`unsupported arrow type: ${type.toString()}`);\n}\n", "import { DuckDBModule, PThread } from './duckdb_module';\nimport { DuckDBConfig } from './config';\nimport { Logger } from '../log';\nimport { DuckDBBindings } from './bindings_interface';\nimport { DuckDBConnection } from './connection';\nimport { StatusCode } from '../status';\nimport { dropResponseBuffers, DuckDBRuntime, readString, callSRet, copyBuffer } from './runtime';\nimport { CSVInsertOptions, JSONInsertOptions, ArrowInsertOptions } from './insert_options';\nimport { ScriptTokens } from './tokens';\nimport { FileStatistics } from './file_stats';\nimport { flattenArrowField } from '../flat_arrow';\nimport { WebFile } from './web_file';\n\nconst TEXT_ENCODER = new TextEncoder();\n\ndeclare global {\n    // eslint-disable-next-line no-var\n    var DUCKDB_RUNTIME: any;\n}\n\n/** A DuckDB Feature */\nexport enum DuckDBFeature {\n    WASM_EXCEPTIONS = 1 << 0,\n    WASM_THREADS = 1 << 1,\n    WASM_SIMD = 1 << 2,\n    WASM_BULK_MEMORY = 1 << 3,\n    EMIT_BIGINT = 1 << 4,\n}\n\n/** The proxy for either the browser- order node-based DuckDB API */\nexport abstract class DuckDBBindingsBase implements DuckDBBindings {\n    /** The logger */\n    protected readonly _logger: Logger;\n    /** Backend-dependent native-glue code for DuckDB */\n    protected readonly _runtime: DuckDBRuntime;\n    /** The instance */\n    protected _instance: DuckDBModule | null = null;\n    /** The loading promise */\n    protected _initPromise: Promise<void> | null = null;\n    /** The resolver for the open promise (called by onRuntimeInitialized) */\n    protected _initPromiseResolver: () => void = () => {};\n\n    constructor(logger: Logger, runtime: DuckDBRuntime) {\n        this._logger = logger;\n        this._runtime = runtime;\n    }\n\n    /** Get the logger */\n    public get logger(): Logger {\n        return this._logger;\n    }\n    /** Get the instance */\n    public get mod(): DuckDBModule {\n        return this._instance!;\n    }\n    /** Get the instance */\n    public get pthread(): PThread | null {\n        return this.mod.PThread || null;\n    }\n\n    /** Instantiate the module */\n    protected abstract instantiateImpl(moduleOverrides: Partial<DuckDBModule>): Promise<DuckDBModule>;\n    /** Instantiate the database */\n    public async instantiate(): Promise<this> {\n        // Already opened?\n        if (this._instance != null) {\n            return this;\n        }\n        // Open in progress?\n        if (this._initPromise != null) {\n            await this._initPromise;\n        }\n\n        // Create a promise that we can await\n        this._initPromise = new Promise(resolve => {\n            this._initPromiseResolver = resolve;\n        });\n\n        // Initialize duckdb\n        this._instance = await this.instantiateImpl({\n            print: console.log.bind(console),\n            printErr: console.log.bind(console),\n            onRuntimeInitialized: this._initPromiseResolver,\n        });\n\n        // Wait for onRuntimeInitialized\n        await this._initPromise;\n        this._initPromise = null;\n\n        return this;\n    }\n    /** Open a database at a path */\n    public open(config: DuckDBConfig): void {\n        const [s, d, n] = callSRet(this.mod, 'duckdb_web_open', ['string'], [JSON.stringify(config)]);\n        if (s !== StatusCode.SUCCESS) {\n            throw new Error(readString(this.mod, d, n));\n        }\n        dropResponseBuffers(this.mod);\n    }\n\n    /** Reset the database */\n    public reset(): void {\n        const [s, d, n] = callSRet(this.mod, 'duckdb_web_reset', [], []);\n        if (s !== StatusCode.SUCCESS) {\n            throw new Error(readString(this.mod, d, n));\n        }\n        dropResponseBuffers(this.mod);\n    }\n\n    /** Get the version */\n    public getVersion(): string {\n        const [s, d, n] = callSRet(this.mod, 'duckdb_web_get_version', [], []);\n        if (s !== StatusCode.SUCCESS) {\n            throw new Error(readString(this.mod, d, n));\n        }\n        const version = readString(this.mod, d, n);\n        dropResponseBuffers(this.mod);\n        return version;\n    }\n    /** Get the feature flags */\n    public getFeatureFlags(): number {\n        return this.mod.ccall('duckdb_web_get_feature_flags', 'number', [], []);\n    }\n\n    /** Tokenize a script */\n    public tokenize(text: string): ScriptTokens {\n        const [s, d, n] = callSRet(this.mod, 'duckdb_web_tokenize', ['string'], [text]);\n        if (s !== StatusCode.SUCCESS) {\n            throw new Error(readString(this.mod, d, n));\n        }\n        const res = readString(this.mod, d, n);\n        dropResponseBuffers(this.mod);\n        return JSON.parse(res) as ScriptTokens;\n    }\n\n    /** Connect to database */\n    public connect(): DuckDBConnection {\n        const conn = this.mod.ccall('duckdb_web_connect', 'number', [], []);\n        return new DuckDBConnection(this, conn);\n    }\n    /** Disconnect from database */\n    public disconnect(conn: number): void {\n        this.mod.ccall('duckdb_web_disconnect', null, ['number'], [conn]);\n    }\n\n    /** Send a query and return the full result */\n    public runQuery(conn: number, text: string): Uint8Array {\n        const [s, d, n] = callSRet(this.mod, 'duckdb_web_query_run', ['number', 'string'], [conn, text]);\n        if (s !== StatusCode.SUCCESS) {\n            throw new Error(readString(this.mod, d, n));\n        }\n        const res = copyBuffer(this.mod, d, n);\n        dropResponseBuffers(this.mod);\n        return res;\n    }\n    /** Send a query asynchronously. Results have to be fetched with `fetchQueryResults` */\n    public sendQuery(conn: number, text: string): Uint8Array {\n        const [s, d, n] = callSRet(this.mod, 'duckdb_web_query_send', ['number', 'string'], [conn, text]);\n        if (s !== StatusCode.SUCCESS) {\n            throw new Error(readString(this.mod, d, n));\n        }\n        const res = copyBuffer(this.mod, d, n);\n        dropResponseBuffers(this.mod);\n        return res;\n    }\n    /** Fetch query results */\n    public fetchQueryResults(conn: number): Uint8Array {\n        const [s, d, n] = callSRet(this.mod, 'duckdb_web_query_fetch_results', ['number'], [conn]);\n        if (s !== StatusCode.SUCCESS) {\n            throw new Error(readString(this.mod, d, n));\n        }\n        const res = copyBuffer(this.mod, d, n);\n        dropResponseBuffers(this.mod);\n        return res;\n    }\n    /** Get table names */\n    public getTableNames(conn: number, text: string): string[] {\n        const [s, d, n] = callSRet(this.mod, 'duckdb_web_get_tablenames', ['number', 'string'], [conn, text]);\n        if (s !== StatusCode.SUCCESS) {\n            throw new Error(readString(this.mod, d, n));\n        }\n        const res = readString(this.mod, d, n);\n        dropResponseBuffers(this.mod);\n        return JSON.parse(res) as string[];\n    }\n\n    /** Prepare a statement and return its identifier */\n    public createPrepared(conn: number, text: string): number {\n        const [s, d, n] = callSRet(this.mod, 'duckdb_web_prepared_create', ['number', 'string'], [conn, text]);\n        if (s !== StatusCode.SUCCESS) {\n            throw new Error(readString(this.mod, d, n));\n        }\n        dropResponseBuffers(this.mod);\n        return d;\n    }\n\n    /** Close a prepared statement */\n    public closePrepared(conn: number, statement: number): void {\n        const [s, d, n] = callSRet(this.mod, 'duckdb_web_prepared_close', ['number', 'number'], [conn, statement]);\n        if (s !== StatusCode.SUCCESS) {\n            throw new Error(readString(this.mod, d, n));\n        }\n        dropResponseBuffers(this.mod);\n    }\n\n    /** Execute a prepared statement and return the full result */\n    public runPrepared(conn: number, statement: number, params: any[]): Uint8Array {\n        const [s, d, n] = callSRet(\n            this.mod,\n            'duckdb_web_prepared_run',\n            ['number', 'number', 'string'],\n            [conn, statement, JSON.stringify(params)],\n        );\n        if (s !== StatusCode.SUCCESS) {\n            throw new Error(readString(this.mod, d, n));\n        }\n        const res = copyBuffer(this.mod, d, n);\n        dropResponseBuffers(this.mod);\n        return res;\n    }\n\n    /** Execute a prepared statement and stream the result */\n    public sendPrepared(conn: number, statement: number, params: any[]): Uint8Array {\n        const [s, d, n] = callSRet(\n            this.mod,\n            'duckdb_web_prepared_send',\n            ['number', 'number', 'string'],\n            [conn, statement, JSON.stringify(params)],\n        );\n        if (s !== StatusCode.SUCCESS) {\n            throw new Error(readString(this.mod, d, n));\n        }\n        const res = copyBuffer(this.mod, d, n);\n        dropResponseBuffers(this.mod);\n        return res;\n    }\n\n    /** Insert record batches from an arrow ipc stream */\n    public insertArrowFromIPCStream(conn: number, buffer: Uint8Array, options?: ArrowInsertOptions): void {\n        if (buffer.length == 0) return;\n        // Store buffer\n        const bufferPtr = this.mod._malloc(buffer.length);\n        const bufferOfs = this.mod.HEAPU8.subarray(bufferPtr, bufferPtr + buffer.length);\n        bufferOfs.set(buffer);\n        const optJSON = options ? JSON.stringify(options) : '';\n\n        // Call wasm function\n        const [s, d, n] = callSRet(\n            this.mod,\n            'duckdb_web_insert_arrow_from_ipc_stream',\n            ['number', 'number', 'number', 'string'],\n            [conn, bufferPtr, buffer.length, optJSON],\n        );\n        if (s !== StatusCode.SUCCESS) {\n            throw new Error(readString(this.mod, d, n));\n        }\n    }\n\n    /** Insert csv from path */\n    public insertCSVFromPath(conn: number, path: string, options: CSVInsertOptions): void {\n        // Stringify options\n        if (options.columns !== undefined) {\n            options.columnsFlat = [];\n            for (const k in options.columns) {\n                options.columnsFlat.push(flattenArrowField(k, options.columns[k]));\n            }\n        }\n        const opt = { ...options } as any;\n        opt.columns = opt.columnsFlat;\n        delete opt.columnsFlat;\n        const optJSON = JSON.stringify(opt);\n\n        // Call wasm function\n        const [s, d, n] = callSRet(\n            this.mod,\n            'duckdb_web_insert_csv_from_path',\n            ['number', 'string', 'string'],\n            [conn, path, optJSON],\n        );\n        if (s !== StatusCode.SUCCESS) {\n            throw new Error(readString(this.mod, d, n));\n        }\n    }\n    /** Insert json from path */\n    public insertJSONFromPath(conn: number, path: string, options: JSONInsertOptions): void {\n        // Stringify options\n        if (options.columns !== undefined) {\n            options.columnsFlat = [];\n            for (const k in options.columns) {\n                options.columnsFlat.push(flattenArrowField(k, options.columns[k]));\n            }\n        }\n        const opt = { ...options } as any;\n        opt.columns = opt.columnsFlat;\n        delete opt.columnsFlat;\n        const optJSON = JSON.stringify(opt);\n\n        // Call wasm function\n        const [s, d, n] = callSRet(\n            this.mod,\n            'duckdb_web_insert_json_from_path',\n            ['number', 'string', 'string'],\n            [conn, path, optJSON],\n        );\n        if (s !== StatusCode.SUCCESS) {\n            throw new Error(readString(this.mod, d, n));\n        }\n    }\n    /** Glob file infos */\n    public globFiles(path: string): WebFile[] {\n        const [s, d, n] = callSRet(this.mod, 'duckdb_web_fs_glob_file_infos', ['string'], [path]);\n        if (s !== StatusCode.SUCCESS) {\n            throw new Error(readString(this.mod, d, n));\n        }\n        const infoStr = readString(this.mod, d, n);\n        dropResponseBuffers(this.mod);\n        const info = JSON.parse(infoStr) as WebFile[];\n        if (info == null) {\n            return [];\n        }\n        return info;\n    }\n    /** Register a file object URL */\n    public registerFileURL(name: string, url?: string): void {\n        if (url === undefined) {\n            url = name;\n        }\n        const [s, d, n] = callSRet(this.mod, 'duckdb_web_fs_register_file_url', ['string', 'string'], [name, url]);\n        if (s !== StatusCode.SUCCESS) {\n            throw new Error(readString(this.mod, d, n));\n        }\n        dropResponseBuffers(this.mod);\n    }\n    /** Register file text */\n    public registerFileText(name: string, text: string): void {\n        const buffer = TEXT_ENCODER.encode(text);\n        this.registerFileBuffer(name, buffer);\n    }\n    /** Register a file buffer */\n    public registerFileBuffer(name: string, buffer: Uint8Array): void {\n        const ptr = this.mod._malloc(buffer.length);\n        const dst = this.mod.HEAPU8.subarray(ptr, ptr + buffer.length);\n        dst.set(buffer);\n        const [s, d, n] = callSRet(\n            this.mod,\n            'duckdb_web_fs_register_file_buffer',\n            ['string', 'number', 'number'],\n            [name, ptr, buffer.length],\n        );\n        if (s !== StatusCode.SUCCESS) {\n            throw new Error(readString(this.mod, d, n));\n        }\n        dropResponseBuffers(this.mod);\n    }\n    /** Register a file object URL */\n    public registerFileHandle<HandleType>(name: string, handle: HandleType): void {\n        const [s, d, n] = callSRet(this.mod, 'duckdb_web_fs_register_file_url', ['string', 'string'], [name, name]);\n        if (s !== StatusCode.SUCCESS) {\n            throw new Error(readString(this.mod, d, n));\n        }\n        dropResponseBuffers(this.mod);\n        globalThis.DUCKDB_RUNTIME._files = (globalThis.DUCKDB_RUNTIME._files || new Map()).set(name, handle);\n        if (this.pthread) {\n            for (const worker of this.pthread.runningWorkers) {\n                worker.postMessage({\n                    cmd: 'registerFileHandle',\n                    fileName: name,\n                    fileHandle: handle,\n                });\n            }\n            for (const worker of this.pthread.unusedWorkers) {\n                worker.postMessage({\n                    cmd: 'dropFileHandle',\n                    fileName: name,\n                });\n            }\n        }\n    }\n    /** Drop file */\n    public dropFile(name: string): boolean {\n        return this.mod.ccall('duckdb_web_fs_drop_file', 'boolean', ['string'], [name]);\n    }\n    /** Drop files */\n    public dropFiles(): void {\n        const [s, d, n] = callSRet(this.mod, 'duckdb_web_fs_drop_files', [], []);\n        if (s !== StatusCode.SUCCESS) {\n            throw new Error(readString(this.mod, d, n));\n        }\n        dropResponseBuffers(this.mod);\n    }\n    /** Flush all files */\n    public flushFiles(): void {\n        this.mod.ccall('duckdb_web_flush_files', null, [], []);\n    }\n    /** Write a file to a path */\n    public copyFileToPath(name: string, path: string): void {\n        const [s, d, n] = callSRet(this.mod, 'duckdb_web_copy_file_to_path', ['string', 'string'], [name, path]);\n        if (s !== StatusCode.SUCCESS) {\n            throw new Error(readString(this.mod, d, n));\n        }\n        dropResponseBuffers(this.mod);\n    }\n    /** Write a file to a buffer */\n    public copyFileToBuffer(name: string): Uint8Array {\n        const [s, d, n] = callSRet(this.mod, 'duckdb_web_copy_file_to_buffer', ['string'], [name]);\n        if (s !== StatusCode.SUCCESS) {\n            throw new Error(readString(this.mod, d, n));\n        }\n        const buffer = this.mod.HEAPU8.subarray(d, d + n);\n        const copy = new Uint8Array(buffer.length);\n        copy.set(buffer);\n        dropResponseBuffers(this.mod);\n        return copy;\n    }\n\n    /** Enable tracking of file statistics */\n    public collectFileStatistics(file: string, enable: boolean): void {\n        const [s, d, n] = callSRet(this.mod, 'duckdb_web_collect_file_stats', ['string', 'boolean'], [file, enable]);\n        if (s !== StatusCode.SUCCESS) {\n            throw new Error(readString(this.mod, d, n));\n        }\n    }\n    /** Export file statistics */\n    public exportFileStatistics(file: string): FileStatistics {\n        const [s, d, n] = callSRet(this.mod, 'duckdb_web_export_file_stats', ['string'], [file]);\n        if (s !== StatusCode.SUCCESS) {\n            throw new Error(readString(this.mod, d, n));\n        }\n        return new FileStatistics(this.mod.HEAPU8.subarray(d, d + n));\n    }\n}\n", "\nvar DuckDB = (function() {\n  var _scriptDir = import.meta.url;\n  \n  return (\nfunction(DuckDB) {\n  DuckDB = DuckDB || {};\n\nvar Module=typeof DuckDB!==\"undefined\"?DuckDB:{};var readyPromiseResolve,readyPromiseReject;Module[\"ready\"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=typeof window===\"object\";var ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";var ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;function logExceptionOnExit(e){if(e instanceof ExitStatus)return;var toLog=e;err(\"exiting due to exception: \"+toLog)}var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};readAsync=function readAsync(filename,onload,onerror){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);nodeFS[\"readFile\"](filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",function(reason){throw reason});quit_=function(status,toThrow){if(keepRuntimeAlive()){process[\"exitCode\"]=status;throw toThrow}logExceptionOnExit(toThrow);process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!==\"undefined\"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,\"\").lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}{read_=function(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime=Module[\"noExitRuntime\"]||true;if(typeof WebAssembly!==\"object\"){abort(\"no native wasm support detected\")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(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.apply(null,cArgs);function onDone(ret){if(stack!==0)stackRestore(stack);return convertReturnValue(ret)}ret=onDone(ret);return ret}var UTF8Decoder=typeof TextDecoder!==\"undefined\"?new TextDecoder(\"utf8\"):undefined;function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heap[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str=\"\";while(idx<endPtr){var u0=heap[idx++];if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i<str.length;++i){HEAP8[buffer++>>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;var runtimeKeepaliveCounter=0;function keepRuntimeAlive(){return noExitRuntime||runtimeKeepaliveCounter>0}function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){{if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}}what=\"Aborted(\"+what+\")\";err(what);ABORT=true;EXITSTATUS=1;what+=\". Build with -s ASSERTIONS=1 for more info.\";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}var wasmBinaryFile;if(Module[\"locateFile\"]){wasmBinaryFile=\"./duckdb-wasm-eh.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}}else{wasmBinaryFile=new URL(\"duckdb_wasm.wasm\",import.meta.url).toString()}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch===\"function\"){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary(wasmBinaryFile)})}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={\"a\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmMemory=Module[\"asm\"][\"fa\"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module[\"asm\"][\"ia\"];addOnInit(Module[\"asm\"][\"ga\"]);removeRunDependency(\"wasm-instantiate\")}addRunDependency(\"wasm-instantiate\");function receiveInstantiationResult(result){receiveInstance(result[\"instance\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&typeof fetch===\"function\"){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync().catch(readyPromiseReject);return{}}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function handleException(e){if(e instanceof ExitStatus||e==\"unwind\"){return EXITSTATUS}quit_(1,e)}var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function ___sys__newselect(nfds,readfds,writefds,exceptfds,timeout){}function ___sys_access(path,amode){path=SYSCALLS.getStr(path);return SYSCALLS.doAccess(path,amode)}function SOCKFS(){err(\"missing function: $SOCKFS\");abort(-1)}function FS(){err(\"missing function: $FS\");abort(-1)}function getSocketFromFD(fd){var socket=SOCKFS.getSocket(fd);if(!socket)throw new FS.ErrnoError(8);return socket}function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function inetNtop4(addr){return(addr&255)+\".\"+(addr>>8&255)+\".\"+(addr>>16&255)+\".\"+(addr>>24&255)}function inetNtop6(ints){var str=\"\";var word=0;var longest=0;var lastzero=0;var zstart=0;var len=0;var i=0;var parts=[ints[0]&65535,ints[0]>>16,ints[1]&65535,ints[1]>>16,ints[2]&65535,ints[2]>>16,ints[3]&65535,ints[3]>>16];var hasipv4=true;var v4part=\"\";for(i=0;i<5;i++){if(parts[i]!==0){hasipv4=false;break}}if(hasipv4){v4part=inetNtop4(parts[6]|parts[7]<<16);if(parts[5]===-1){str=\"::ffff:\";str+=v4part;return str}if(parts[5]===0){str=\"::\";if(v4part===\"0.0.0.0\")v4part=\"\";if(v4part===\"0.0.0.1\")v4part=\"1\";str+=v4part;return str}}for(word=0;word<8;word++){if(parts[word]===0){if(word-lastzero>1){len=0}lastzero=word;len++}if(len>longest){longest=len;zstart=word-longest+1}}for(word=0;word<8;word++){if(longest>1){if(parts[word]===0&&word>=zstart&&word<zstart+longest){if(word===zstart){str+=\":\";if(zstart===0)str+=\":\"}continue}}str+=Number(_ntohs(parts[word]&65535)).toString(16);str+=word<7?\":\":\"\"}return str}function readSockaddr(sa,salen){var family=HEAP16[sa>>1];var port=_ntohs(HEAPU16[sa+2>>1]);var addr;switch(family){case 2:if(salen!==16){return{errno:28}}addr=HEAP32[sa+4>>2];addr=inetNtop4(addr);break;case 10:if(salen!==28){return{errno:28}}addr=[HEAP32[sa+8>>2],HEAP32[sa+12>>2],HEAP32[sa+16>>2],HEAP32[sa+20>>2]];addr=inetNtop6(addr);break;default:return{errno:5}}return{family:family,addr:addr,port:port}}function getSocketAddress(addrp,addrlen,allowNull){if(allowNull&&addrp===0)return null;var info=readSockaddr(addrp,addrlen);if(info.errno)throw new FS.ErrnoError(info.errno);info.addr=DNS.lookup_addr(info.addr)||info.addr;return info}function ___sys_bind(fd,addr,addrlen){var sock=getSocketFromFD(fd);var info=getSocketAddress(addr,addrlen);sock.sock_ops.bind(sock,info.addr,info.port);return 0}function ___sys_connect(fd,addr,addrlen){var sock=getSocketFromFD(fd);var info=getSocketAddress(addr,addrlen);sock.sock_ops.connect(sock,info.addr,info.port);return 0}function ___sys_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;return 0}function ___sys_fstat64(fd,buf){}function ___sys_ftruncate64(fd,zero,low,high){}function ___sys_getdents64(fd,dirp,count){}function inetPton4(str){var b=str.split(\".\");for(var i=0;i<4;i++){var tmp=Number(b[i]);if(isNaN(tmp))return null;b[i]=tmp}return(b[0]|b[1]<<8|b[2]<<16|b[3]<<24)>>>0}function jstoi_q(str){return parseInt(str)}function inetPton6(str){var words;var w,offset,z;var valid6regx=/^((?=.*::)(?!.*::.+::)(::)?([\\dA-F]{1,4}:(:|\\b)|){5}|([\\dA-F]{1,4}:){6})((([\\dA-F]{1,4}((?!\\3)::|:\\b|$))|(?!\\2\\3)){2}|(((2[0-4]|1\\d|[1-9])?\\d|25[0-5])\\.?\\b){4})$/i;var parts=[];if(!valid6regx.test(str)){return null}if(str===\"::\"){return[0,0,0,0,0,0,0,0]}if(str.startsWith(\"::\")){str=str.replace(\"::\",\"Z:\")}else{str=str.replace(\"::\",\":Z:\")}if(str.indexOf(\".\")>0){str=str.replace(new RegExp(\"[.]\",\"g\"),\":\");words=str.split(\":\");words[words.length-4]=jstoi_q(words[words.length-4])+jstoi_q(words[words.length-3])*256;words[words.length-3]=jstoi_q(words[words.length-2])+jstoi_q(words[words.length-1])*256;words=words.slice(0,words.length-2)}else{words=str.split(\":\")}offset=0;z=0;for(w=0;w<words.length;w++){if(typeof words[w]===\"string\"){if(words[w]===\"Z\"){for(z=0;z<8-words.length+1;z++){parts[w+z]=0}offset=z-1}else{parts[w+offset]=_htons(parseInt(words[w],16))}}else{parts[w+offset]=words[w]}}return[parts[1]<<16|parts[0],parts[3]<<16|parts[2],parts[5]<<16|parts[4],parts[7]<<16|parts[6]]}function zeroMemory(address,size){HEAPU8.fill(0,address,address+size)}function writeSockaddr(sa,family,addr,port,addrlen){switch(family){case 2:addr=inetPton4(addr);zeroMemory(sa,16);if(addrlen){HEAP32[addrlen>>2]=16}HEAP16[sa>>1]=family;HEAP32[sa+4>>2]=addr;HEAP16[sa+2>>1]=_htons(port);break;case 10:addr=inetPton6(addr);zeroMemory(sa,28);if(addrlen){HEAP32[addrlen>>2]=28}HEAP32[sa>>2]=family;HEAP32[sa+8>>2]=addr[0];HEAP32[sa+12>>2]=addr[1];HEAP32[sa+16>>2]=addr[2];HEAP32[sa+20>>2]=addr[3];HEAP16[sa+2>>1]=_htons(port);break;default:return 5}return 0}var DNS={address_map:{id:1,addrs:{},names:{}},lookup_name:function(name){var res=inetPton4(name);if(res!==null){return name}res=inetPton6(name);if(res!==null){return name}var addr;if(DNS.address_map.addrs[name]){addr=DNS.address_map.addrs[name]}else{var id=DNS.address_map.id++;assert(id<65535,\"exceeded max address mappings of 65535\");addr=\"172.29.\"+(id&255)+\".\"+(id&65280);DNS.address_map.names[addr]=name;DNS.address_map.addrs[name]=addr}return addr},lookup_addr:function(addr){if(DNS.address_map.names[addr]){return DNS.address_map.names[addr]}return null}};function ___sys_getpeername(fd,addr,addrlen){var sock=getSocketFromFD(fd);if(!sock.daddr){return-53}var errno=writeSockaddr(addr,sock.family,DNS.lookup_name(sock.daddr),sock.dport,addrlen);return 0}function ___sys_getpid(){return 42}function ___sys_getsockopt(fd,level,optname,optval,optlen){var sock=getSocketFromFD(fd);if(level===1){if(optname===4){HEAP32[optval>>2]=sock.error;HEAP32[optlen>>2]=4;sock.error=null;return 0}}return-50}function ___sys_ioctl(fd,op,varargs){SYSCALLS.varargs=varargs;return 0}function ___sys_madvise1(addr,length,advice){return 0}function ___sys_mkdir(path,mode){path=SYSCALLS.getStr(path);return SYSCALLS.doMkdir(path,mode)}function ___sys_open(path,flags,varargs){SYSCALLS.varargs=varargs}function ___sys_recvfrom(fd,buf,len,flags,addr,addrlen){var sock=getSocketFromFD(fd);var msg=sock.sock_ops.recvmsg(sock,len);if(!msg)return 0;if(addr){var errno=writeSockaddr(addr,sock.family,DNS.lookup_name(msg.addr),msg.port,addrlen)}HEAPU8.set(msg.buffer,buf);return msg.buffer.byteLength}function ___sys_rename(old_path,new_path){}function ___sys_rmdir(path){}function ___sys_sendto(fd,message,length,flags,addr,addr_len){}function ___sys_setsockopt(fd){return-50}function ___sys_shutdown(fd,how){getSocketFromFD(fd);return-52}function ___sys_socket(domain,type,protocol){}function ___sys_stat64(path,buf){}function ___sys_unlink(path){}function __dlopen_js(filename,flag){abort(\"To use dlopen, you need to use Emscripten's linking support, see https://github.com/emscripten-core/emscripten/wiki/Linking\")}function __dlsym_js(handle,symbol){abort(\"To use dlopen, you need to use Emscripten's linking support, see https://github.com/emscripten-core/emscripten/wiki/Linking\")}function _abort(){abort(\"\")}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process[\"hrtime\"]();return t[0]*1e3+t[1]/1e6}}else _emscripten_get_now=function(){return performance.now()};var _emscripten_get_now_is_monotonic=true;function _clock_gettime(clk_id,tp){var now;if(clk_id===0){now=Date.now()}else if((clk_id===1||clk_id===4)&&_emscripten_get_now_is_monotonic){now=_emscripten_get_now()}else{setErrNo(28);return-1}HEAP32[tp>>2]=now/1e3|0;HEAP32[tp+4>>2]=now%1e3*1e3*1e3|0;return 0}function _duckdb_web_fs_directory_create(path,pathLen){return globalThis.DUCKDB_RUNTIME.createDirectory(Module,path,pathLen)}function _duckdb_web_fs_directory_exists(path,pathLen){return globalThis.DUCKDB_RUNTIME.checkDirectory(Module,path,pathLen)}function _duckdb_web_fs_directory_list_files(path,pathLen){return globalThis.DUCKDB_RUNTIME.listDirectoryEntries(Module,path,pathLen)}function _duckdb_web_fs_directory_remove(path,pathLen){return globalThis.DUCKDB_RUNTIME.removeDirectory(Module,path,pathLen)}function _duckdb_web_fs_file_close(fileId){return globalThis.DUCKDB_RUNTIME.closeFile(Module,fileId)}function _duckdb_web_fs_file_exists(path,pathLen){return globalThis.DUCKDB_RUNTIME.checkFile(Module,path,pathLen)}function _duckdb_web_fs_file_get_last_modified_time(fileId){return globalThis.DUCKDB_RUNTIME.getLastFileModificationTime(Module,fileId)}function _duckdb_web_fs_file_move(from,fromLen,to,toLen){return globalThis.DUCKDB_RUNTIME.moveFile(Module,from,fromLen,to,toLen)}function _duckdb_web_fs_file_open(fileId){return globalThis.DUCKDB_RUNTIME.openFile(Module,fileId)}function _duckdb_web_fs_file_read(fileId,buf,size,location){return globalThis.DUCKDB_RUNTIME.readFile(Module,fileId,buf,size,location)}function _duckdb_web_fs_file_truncate(fileId,newSize){return globalThis.DUCKDB_RUNTIME.truncateFile(Module,fileId,newSize)}function _duckdb_web_fs_file_write(fileId,buf,size,location){return globalThis.DUCKDB_RUNTIME.writeFile(Module,fileId,buf,size,location)}function _duckdb_web_fs_glob(path,pathLen){return globalThis.DUCKDB_RUNTIME.glob(Module,path,pathLen)}function _duckdb_web_test_platform_feature(feature){return globalThis.DUCKDB_RUNTIME.testPlatformFeature(Module,feature)}function _emscripten_get_heap_max(){return 2147483648}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=2147483648;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,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var ENV={};function getExecutableName(){return thisProgram||\"./this.program\"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator===\"object\"&&navigator.languages&&navigator.languages[0]||\"C\").replace(\"-\",\"_\")+\".UTF-8\";var env={\"USER\":\"web_user\",\"LOGNAME\":\"web_user\",\"PATH\":\"/\",\"PWD\":\"/\",\"HOME\":\"/home/web_user\",\"LANG\":lang,\"_\":getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+\"=\"+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}function _environ_sizes_get(penviron_count,penviron_buf_size){var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}function _fd_close(fd){return 0}function _fd_fdstat_get(fd,pbuf){var type=fd==1||fd==2?2:abort();HEAP8[pbuf>>0]=type;return 0}function _fd_pread(fd,iov,iovcnt,offset_low,offset_high,pnum){var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt,offset_low);HEAP32[pnum>>2]=num;return 0}function _fd_pwrite(fd,iov,iovcnt,offset_low,offset_high,pnum){var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt,offset_low);HEAP32[pnum>>2]=num;return 0}function _fd_read(fd,iov,iovcnt,pnum){var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){}function _fd_sync(fd){var stream=SYSCALLS.getStreamFromFD(fd);if(stream.stream_ops&&stream.stream_ops.fsync){return-stream.stream_ops.fsync(stream)}return 0}function _fd_write(fd,iov,iovcnt,pnum){var num=0;for(var i=0;i<iovcnt;i++){var ptr=HEAP32[iov+i*8>>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j<len;j++){SYSCALLS.printChar(fd,HEAPU8[ptr+j])}num+=len}HEAP32[pnum>>2]=num;return 0}function _getaddrinfo(node,service,hint,out){var addr=0;var port=0;var flags=0;var family=0;var type=0;var proto=0;var ai;function allocaddrinfo(family,type,proto,canon,addr,port){var sa,salen,ai;var errno;salen=family===10?28:16;addr=family===10?inetNtop6(addr):inetNtop4(addr);sa=_malloc(salen);errno=writeSockaddr(sa,family,addr,port);assert(!errno);ai=_malloc(32);HEAP32[ai+4>>2]=family;HEAP32[ai+8>>2]=type;HEAP32[ai+12>>2]=proto;HEAP32[ai+24>>2]=canon;HEAP32[ai+20>>2]=sa;if(family===10){HEAP32[ai+16>>2]=28}else{HEAP32[ai+16>>2]=16}HEAP32[ai+28>>2]=0;return ai}if(hint){flags=HEAP32[hint>>2];family=HEAP32[hint+4>>2];type=HEAP32[hint+8>>2];proto=HEAP32[hint+12>>2]}if(type&&!proto){proto=type===2?17:6}if(!type&&proto){type=proto===17?2:1}if(proto===0){proto=6}if(type===0){type=1}if(!node&&!service){return-2}if(flags&~(1|2|4|1024|8|16|32)){return-1}if(hint!==0&&HEAP32[hint>>2]&2&&!node){return-1}if(flags&32){return-2}if(type!==0&&type!==1&&type!==2){return-7}if(family!==0&&family!==2&&family!==10){return-6}if(service){service=UTF8ToString(service);port=parseInt(service,10);if(isNaN(port)){if(flags&1024){return-2}return-8}}if(!node){if(family===0){family=2}if((flags&1)===0){if(family===2){addr=_htonl(2130706433)}else{addr=[0,0,0,1]}}ai=allocaddrinfo(family,type,proto,null,addr,port);HEAP32[out>>2]=ai;return 0}node=UTF8ToString(node);addr=inetPton4(node);if(addr!==null){if(family===0||family===2){family=2}else if(family===10&&flags&8){addr=[0,0,_htonl(65535),addr];family=10}else{return-2}}else{addr=inetPton6(node);if(addr!==null){if(family===0||family===10){family=10}else{return-2}}}if(addr!=null){ai=allocaddrinfo(family,type,proto,node,addr,port);HEAP32[out>>2]=ai;return 0}if(flags&4){return-2}node=DNS.lookup_name(node);addr=inetPton4(node);if(family===0){family=2}else if(family===10){addr=[0,0,_htonl(65535),addr]}ai=allocaddrinfo(family,type,proto,null,addr,port);HEAP32[out>>2]=ai;return 0}function getRandomDevice(){if(typeof crypto===\"object\"&&typeof crypto[\"getRandomValues\"]===\"function\"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require(\"crypto\");return function(){return crypto_module[\"randomBytes\"](1)[0]}}catch(e){}}return function(){abort(\"randomDevice\")}}function _getentropy(buffer,size){if(!_getentropy.randomDevice){_getentropy.randomDevice=getRandomDevice()}for(var i=0;i<size;i++){HEAP8[buffer+i>>0]=_getentropy.randomDevice()}return 0}function _getnameinfo(sa,salen,node,nodelen,serv,servlen,flags){var info=readSockaddr(sa,salen);if(info.errno){return-6}var port=info.port;var addr=info.addr;var overflowed=false;if(node&&nodelen){var lookup;if(flags&1||!(lookup=DNS.lookup_addr(addr))){if(flags&8){return-2}}else{addr=lookup}var numBytesWrittenExclNull=stringToUTF8(addr,node,nodelen);if(numBytesWrittenExclNull+1>=nodelen){overflowed=true}}if(serv&&servlen){port=\"\"+port;var numBytesWrittenExclNull=stringToUTF8(port,serv,servlen);if(numBytesWrittenExclNull+1>=servlen){overflowed=true}}if(overflowed){return-12}return 0}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):\"\"};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={\"%c\":\"%a %b %d %H:%M:%S %Y\",\"%D\":\"%m/%d/%y\",\"%F\":\"%Y-%m-%d\",\"%h\":\"%b\",\"%r\":\"%I:%M:%S %p\",\"%R\":\"%H:%M\",\"%T\":\"%H:%M:%S\",\"%x\":\"%m/%d/%y\",\"%X\":\"%H:%M:%S\",\"%Ec\":\"%c\",\"%EC\":\"%C\",\"%Ex\":\"%m/%d/%y\",\"%EX\":\"%H:%M:%S\",\"%Ey\":\"%y\",\"%EY\":\"%Y\",\"%Od\":\"%d\",\"%Oe\":\"%e\",\"%OH\":\"%H\",\"%OI\":\"%I\",\"%Om\":\"%m\",\"%OM\":\"%M\",\"%OS\":\"%S\",\"%Ou\":\"%u\",\"%OU\":\"%U\",\"%OV\":\"%V\",\"%Ow\":\"%w\",\"%OW\":\"%W\",\"%Oy\":\"%y\"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,\"g\"),EXPANSION_RULES_1[rule])}var WEEKDAYS=[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"];var MONTHS=[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"];function leadingSomething(value,digits,character){var str=typeof value===\"number\"?value.toString():value||\"\";while(str.length<digits){str=character[0]+str}return str}function leadingNulls(value,digits){return leadingSomething(value,digits,\"0\")}function compareByDay(date1,date2){function sgn(value){return value<0?-1:value>0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={\"%a\":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},\"%A\":function(date){return WEEKDAYS[date.tm_wday]},\"%b\":function(date){return MONTHS[date.tm_mon].substring(0,3)},\"%B\":function(date){return MONTHS[date.tm_mon]},\"%C\":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},\"%d\":function(date){return leadingNulls(date.tm_mday,2)},\"%e\":function(date){return leadingSomething(date.tm_mday,2,\" \")},\"%g\":function(date){return getWeekBasedYear(date).toString().substring(2)},\"%G\":function(date){return getWeekBasedYear(date)},\"%H\":function(date){return leadingNulls(date.tm_hour,2)},\"%I\":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},\"%j\":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},\"%m\":function(date){return leadingNulls(date.tm_mon+1,2)},\"%M\":function(date){return leadingNulls(date.tm_min,2)},\"%n\":function(){return\"\\n\"},\"%p\":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return\"AM\"}else{return\"PM\"}},\"%S\":function(date){return leadingNulls(date.tm_sec,2)},\"%t\":function(){return\"\\t\"},\"%u\":function(date){return date.tm_wday||7},\"%U\":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?\"01\":\"00\"},\"%V\":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return\"53\"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return\"01\"}var daysDifference;if(firstWeekStartThisYear.getFullYear()<date.tm_year+1900){daysDifference=date.tm_yday+32-firstWeekStartThisYear.getDate()}else{daysDifference=date.tm_yday+1-firstWeekStartThisYear.getDate()}return leadingNulls(Math.ceil(daysDifference/7),2)},\"%w\":function(date){return date.tm_wday},\"%W\":function(date){var janFirst=new Date(date.tm_year,0,1);var firstMonday=janFirst.getDay()===1?janFirst:__addDays(janFirst,janFirst.getDay()===0?1:7-janFirst.getDay()+1);var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstMonday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstMondayUntilEndJanuary=31-firstMonday.getDate();var days=firstMondayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstMonday,janFirst)===0?\"01\":\"00\"},\"%y\":function(date){return(date.tm_year+1900).toString().substring(2)},\"%Y\":function(date){return date.tm_year+1900},\"%z\":function(date){var off=date.tm_gmtoff;var ahead=off>=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?\"+\":\"-\")+String(\"0000\"+off).slice(-4)},\"%Z\":function(date){return date.tm_zone},\"%%\":function(){return\"%\"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,\"g\"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={\"X\":___sys__newselect,\"N\":___sys_access,\"Z\":___sys_bind,\"Y\":___sys_connect,\"a\":___sys_fcntl64,\"P\":___sys_fstat64,\"O\":___sys_ftruncate64,\"L\":___sys_getdents64,\"T\":___sys_getpeername,\"i\":___sys_getpid,\"W\":___sys_getsockopt,\"q\":___sys_ioctl,\"H\":___sys_madvise1,\"M\":___sys_mkdir,\"f\":___sys_open,\"U\":___sys_recvfrom,\"J\":___sys_rename,\"j\":___sys_rmdir,\"V\":___sys_sendto,\"_\":___sys_setsockopt,\"$\":___sys_shutdown,\"m\":___sys_socket,\"l\":___sys_stat64,\"k\":___sys_unlink,\"ba\":__dlopen_js,\"aa\":__dlsym_js,\"c\":_abort,\"o\":_clock_gettime,\"B\":_duckdb_web_fs_directory_create,\"C\":_duckdb_web_fs_directory_exists,\"y\":_duckdb_web_fs_directory_list_files,\"z\":_duckdb_web_fs_directory_remove,\"h\":_duckdb_web_fs_file_close,\"w\":_duckdb_web_fs_file_exists,\"E\":_duckdb_web_fs_file_get_last_modified_time,\"x\":_duckdb_web_fs_file_move,\"G\":_duckdb_web_fs_file_open,\"d\":_duckdb_web_fs_file_read,\"D\":_duckdb_web_fs_file_truncate,\"F\":_duckdb_web_fs_file_write,\"v\":_duckdb_web_fs_glob,\"g\":_duckdb_web_test_platform_feature,\"r\":_emscripten_get_heap_max,\"da\":_emscripten_memcpy_big,\"ea\":_emscripten_resize_heap,\"I\":_environ_get,\"Q\":_environ_sizes_get,\"b\":_fd_close,\"ca\":_fd_fdstat_get,\"t\":_fd_pread,\"s\":_fd_pwrite,\"p\":_fd_read,\"u\":_fd_seek,\"K\":_fd_sync,\"e\":_fd_write,\"n\":_getaddrinfo,\"R\":_getentropy,\"S\":_getnameinfo,\"A\":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=function(){return(___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=Module[\"asm\"][\"ga\"]).apply(null,arguments)};var _main=Module[\"_main\"]=function(){return(_main=Module[\"_main\"]=Module[\"asm\"][\"ha\"]).apply(null,arguments)};var _duckdb_web_fs_glob_add_path=Module[\"_duckdb_web_fs_glob_add_path\"]=function(){return(_duckdb_web_fs_glob_add_path=Module[\"_duckdb_web_fs_glob_add_path\"]=Module[\"asm\"][\"ja\"]).apply(null,arguments)};var _duckdb_web_clear_response=Module[\"_duckdb_web_clear_response\"]=function(){return(_duckdb_web_clear_response=Module[\"_duckdb_web_clear_response\"]=Module[\"asm\"][\"ka\"]).apply(null,arguments)};var _duckdb_web_fail_with=Module[\"_duckdb_web_fail_with\"]=function(){return(_duckdb_web_fail_with=Module[\"_duckdb_web_fail_with\"]=Module[\"asm\"][\"la\"]).apply(null,arguments)};var _duckdb_web_reset=Module[\"_duckdb_web_reset\"]=function(){return(_duckdb_web_reset=Module[\"_duckdb_web_reset\"]=Module[\"asm\"][\"ma\"]).apply(null,arguments)};var _duckdb_web_connect=Module[\"_duckdb_web_connect\"]=function(){return(_duckdb_web_connect=Module[\"_duckdb_web_connect\"]=Module[\"asm\"][\"na\"]).apply(null,arguments)};var _duckdb_web_disconnect=Module[\"_duckdb_web_disconnect\"]=function(){return(_duckdb_web_disconnect=Module[\"_duckdb_web_disconnect\"]=Module[\"asm\"][\"oa\"]).apply(null,arguments)};var _duckdb_web_flush_files=Module[\"_duckdb_web_flush_files\"]=function(){return(_duckdb_web_flush_files=Module[\"_duckdb_web_flush_files\"]=Module[\"asm\"][\"pa\"]).apply(null,arguments)};var _duckdb_web_flush_file=Module[\"_duckdb_web_flush_file\"]=function(){return(_duckdb_web_flush_file=Module[\"_duckdb_web_flush_file\"]=Module[\"asm\"][\"qa\"]).apply(null,arguments)};var _duckdb_web_open=Module[\"_duckdb_web_open\"]=function(){return(_duckdb_web_open=Module[\"_duckdb_web_open\"]=Module[\"asm\"][\"ra\"]).apply(null,arguments)};var _duckdb_web_collect_file_stats=Module[\"_duckdb_web_collect_file_stats\"]=function(){return(_duckdb_web_collect_file_stats=Module[\"_duckdb_web_collect_file_stats\"]=Module[\"asm\"][\"sa\"]).apply(null,arguments)};var _duckdb_web_export_file_stats=Module[\"_duckdb_web_export_file_stats\"]=function(){return(_duckdb_web_export_file_stats=Module[\"_duckdb_web_export_file_stats\"]=Module[\"asm\"][\"ta\"]).apply(null,arguments)};var _duckdb_web_fs_drop_file=Module[\"_duckdb_web_fs_drop_file\"]=function(){return(_duckdb_web_fs_drop_file=Module[\"_duckdb_web_fs_drop_file\"]=Module[\"asm\"][\"ua\"]).apply(null,arguments)};var _duckdb_web_fs_drop_files=Module[\"_duckdb_web_fs_drop_files\"]=function(){return(_duckdb_web_fs_drop_files=Module[\"_duckdb_web_fs_drop_files\"]=Module[\"asm\"][\"va\"]).apply(null,arguments)};var _duckdb_web_fs_glob_file_infos=Module[\"_duckdb_web_fs_glob_file_infos\"]=function(){return(_duckdb_web_fs_glob_file_infos=Module[\"_duckdb_web_fs_glob_file_infos\"]=Module[\"asm\"][\"wa\"]).apply(null,arguments)};var _duckdb_web_fs_get_file_info_by_id=Module[\"_duckdb_web_fs_get_file_info_by_id\"]=function(){return(_duckdb_web_fs_get_file_info_by_id=Module[\"_duckdb_web_fs_get_file_info_by_id\"]=Module[\"asm\"][\"xa\"]).apply(null,arguments)};var _duckdb_web_fs_get_file_info_by_name=Module[\"_duckdb_web_fs_get_file_info_by_name\"]=function(){return(_duckdb_web_fs_get_file_info_by_name=Module[\"_duckdb_web_fs_get_file_info_by_name\"]=Module[\"asm\"][\"ya\"]).apply(null,arguments)};var _duckdb_web_fs_set_file_descriptor=Module[\"_duckdb_web_fs_set_file_descriptor\"]=function(){return(_duckdb_web_fs_set_file_descriptor=Module[\"_duckdb_web_fs_set_file_descriptor\"]=Module[\"asm\"][\"za\"]).apply(null,arguments)};var _duckdb_web_fs_register_file_url=Module[\"_duckdb_web_fs_register_file_url\"]=function(){return(_duckdb_web_fs_register_file_url=Module[\"_duckdb_web_fs_register_file_url\"]=Module[\"asm\"][\"Aa\"]).apply(null,arguments)};var _duckdb_web_fs_register_file_buffer=Module[\"_duckdb_web_fs_register_file_buffer\"]=function(){return(_duckdb_web_fs_register_file_buffer=Module[\"_duckdb_web_fs_register_file_buffer\"]=Module[\"asm\"][\"Ba\"]).apply(null,arguments)};var _duckdb_web_copy_file_to_buffer=Module[\"_duckdb_web_copy_file_to_buffer\"]=function(){return(_duckdb_web_copy_file_to_buffer=Module[\"_duckdb_web_copy_file_to_buffer\"]=Module[\"asm\"][\"Ca\"]).apply(null,arguments)};var _duckdb_web_copy_file_to_path=Module[\"_duckdb_web_copy_file_to_path\"]=function(){return(_duckdb_web_copy_file_to_path=Module[\"_duckdb_web_copy_file_to_path\"]=Module[\"asm\"][\"Da\"]).apply(null,arguments)};var _duckdb_web_get_version=Module[\"_duckdb_web_get_version\"]=function(){return(_duckdb_web_get_version=Module[\"_duckdb_web_get_version\"]=Module[\"asm\"][\"Ea\"]).apply(null,arguments)};var _duckdb_web_get_feature_flags=Module[\"_duckdb_web_get_feature_flags\"]=function(){return(_duckdb_web_get_feature_flags=Module[\"_duckdb_web_get_feature_flags\"]=Module[\"asm\"][\"Fa\"]).apply(null,arguments)};var _duckdb_web_tokenize=Module[\"_duckdb_web_tokenize\"]=function(){return(_duckdb_web_tokenize=Module[\"_duckdb_web_tokenize\"]=Module[\"asm\"][\"Ga\"]).apply(null,arguments)};var _duckdb_web_prepared_create=Module[\"_duckdb_web_prepared_create\"]=function(){return(_duckdb_web_prepared_create=Module[\"_duckdb_web_prepared_create\"]=Module[\"asm\"][\"Ha\"]).apply(null,arguments)};var _duckdb_web_prepared_close=Module[\"_duckdb_web_prepared_close\"]=function(){return(_duckdb_web_prepared_close=Module[\"_duckdb_web_prepared_close\"]=Module[\"asm\"][\"Ia\"]).apply(null,arguments)};var _duckdb_web_prepared_run=Module[\"_duckdb_web_prepared_run\"]=function(){return(_duckdb_web_prepared_run=Module[\"_duckdb_web_prepared_run\"]=Module[\"asm\"][\"Ja\"]).apply(null,arguments)};var _duckdb_web_prepared_send=Module[\"_duckdb_web_prepared_send\"]=function(){return(_duckdb_web_prepared_send=Module[\"_duckdb_web_prepared_send\"]=Module[\"asm\"][\"Ka\"]).apply(null,arguments)};var _duckdb_web_query_run=Module[\"_duckdb_web_query_run\"]=function(){return(_duckdb_web_query_run=Module[\"_duckdb_web_query_run\"]=Module[\"asm\"][\"La\"]).apply(null,arguments)};var _duckdb_web_query_send=Module[\"_duckdb_web_query_send\"]=function(){return(_duckdb_web_query_send=Module[\"_duckdb_web_query_send\"]=Module[\"asm\"][\"Ma\"]).apply(null,arguments)};var _duckdb_web_query_fetch_results=Module[\"_duckdb_web_query_fetch_results\"]=function(){return(_duckdb_web_query_fetch_results=Module[\"_duckdb_web_query_fetch_results\"]=Module[\"asm\"][\"Na\"]).apply(null,arguments)};var _duckdb_web_get_tablenames=Module[\"_duckdb_web_get_tablenames\"]=function(){return(_duckdb_web_get_tablenames=Module[\"_duckdb_web_get_tablenames\"]=Module[\"asm\"][\"Oa\"]).apply(null,arguments)};var _duckdb_web_insert_arrow_from_ipc_stream=Module[\"_duckdb_web_insert_arrow_from_ipc_stream\"]=function(){return(_duckdb_web_insert_arrow_from_ipc_stream=Module[\"_duckdb_web_insert_arrow_from_ipc_stream\"]=Module[\"asm\"][\"Pa\"]).apply(null,arguments)};var _duckdb_web_insert_csv_from_path=Module[\"_duckdb_web_insert_csv_from_path\"]=function(){return(_duckdb_web_insert_csv_from_path=Module[\"_duckdb_web_insert_csv_from_path\"]=Module[\"asm\"][\"Qa\"]).apply(null,arguments)};var _duckdb_web_insert_json_from_path=Module[\"_duckdb_web_insert_json_from_path\"]=function(){return(_duckdb_web_insert_json_from_path=Module[\"_duckdb_web_insert_json_from_path\"]=Module[\"asm\"][\"Ra\"]).apply(null,arguments)};var _htonl=Module[\"_htonl\"]=function(){return(_htonl=Module[\"_htonl\"]=Module[\"asm\"][\"Sa\"]).apply(null,arguments)};var _htons=Module[\"_htons\"]=function(){return(_htons=Module[\"_htons\"]=Module[\"asm\"][\"Ta\"]).apply(null,arguments)};var _ntohs=Module[\"_ntohs\"]=function(){return(_ntohs=Module[\"_ntohs\"]=Module[\"asm\"][\"Ua\"]).apply(null,arguments)};var ___errno_location=Module[\"___errno_location\"]=function(){return(___errno_location=Module[\"___errno_location\"]=Module[\"asm\"][\"Va\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"Wa\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"Xa\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"Ya\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"Za\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"_a\"]).apply(null,arguments)};Module[\"ccall\"]=ccall;var calledRun;function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module[\"_main\"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv);exit(ret,true);return ret}catch(e){return handleException(e)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();readyPromiseResolve(Module);if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();if(shouldRunNow)callMain(args);postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;function exit(status,implicit){EXITSTATUS=status;if(keepRuntimeAlive()){}else{exitRuntime()}procExit(status)}function procExit(code){EXITSTATUS=code;if(!keepRuntimeAlive()){if(Module[\"onExit\"])Module[\"onExit\"](code);ABORT=true}quit_(code,new ExitStatus(code))}if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}var shouldRunNow=true;if(Module[\"noInitialRun\"])shouldRunNow=false;run();\n\n\n  return DuckDB.ready\n}\n);\n})();\nexport default DuckDB;", "\nvar DuckDB = (function() {\n  var _scriptDir = import.meta.url;\n  \n  return (\nfunction(DuckDB) {\n  DuckDB = DuckDB || {};\n\nvar Module=typeof DuckDB!==\"undefined\"?DuckDB:{};var readyPromiseResolve,readyPromiseReject;Module[\"ready\"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=typeof window===\"object\";var ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";var ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;function logExceptionOnExit(e){if(e instanceof ExitStatus)return;var toLog=e;err(\"exiting due to exception: \"+toLog)}var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};readAsync=function readAsync(filename,onload,onerror){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);nodeFS[\"readFile\"](filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",function(reason){throw reason});quit_=function(status,toThrow){if(keepRuntimeAlive()){process[\"exitCode\"]=status;throw toThrow}logExceptionOnExit(toThrow);process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!==\"undefined\"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,\"\").lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}{read_=function(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var tempRet0=0;var setTempRet0=function(value){tempRet0=value};var getTempRet0=function(){return tempRet0};var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime=Module[\"noExitRuntime\"]||true;if(typeof WebAssembly!==\"object\"){abort(\"no native wasm support detected\")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(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.apply(null,cArgs);function onDone(ret){if(stack!==0)stackRestore(stack);return convertReturnValue(ret)}ret=onDone(ret);return ret}var UTF8Decoder=typeof TextDecoder!==\"undefined\"?new TextDecoder(\"utf8\"):undefined;function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heap[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str=\"\";while(idx<endPtr){var u0=heap[idx++];if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i<str.length;++i){HEAP8[buffer++>>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;var runtimeKeepaliveCounter=0;function keepRuntimeAlive(){return noExitRuntime||runtimeKeepaliveCounter>0}function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){{if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}}what=\"Aborted(\"+what+\")\";err(what);ABORT=true;EXITSTATUS=1;what+=\". Build with -s ASSERTIONS=1 for more info.\";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}var wasmBinaryFile;if(Module[\"locateFile\"]){wasmBinaryFile=\"./duckdb-wasm.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}}else{wasmBinaryFile=new URL(\"duckdb_wasm.wasm\",import.meta.url).toString()}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch===\"function\"){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary(wasmBinaryFile)})}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={\"a\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmMemory=Module[\"asm\"][\"Se\"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module[\"asm\"][\"Ve\"];addOnInit(Module[\"asm\"][\"Te\"]);removeRunDependency(\"wasm-instantiate\")}addRunDependency(\"wasm-instantiate\");function receiveInstantiationResult(result){receiveInstance(result[\"instance\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&typeof fetch===\"function\"){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync().catch(readyPromiseReject);return{}}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function handleException(e){if(e instanceof ExitStatus||e==\"unwind\"){return EXITSTATUS}quit_(1,e)}function ___cxa_allocate_exception(size){return _malloc(size+16)+16}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-16;this.set_type=function(type){HEAP32[this.ptr+4>>2]=type};this.get_type=function(){return HEAP32[this.ptr+4>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+8>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+8>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+12>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+12>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+13>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){var value=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=value+1};this.release_ref=function(){var prev=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=prev-1;return prev===1}}function CatchInfo(ptr){this.free=function(){_free(this.ptr);this.ptr=0};this.set_base_ptr=function(basePtr){HEAP32[this.ptr>>2]=basePtr};this.get_base_ptr=function(){return HEAP32[this.ptr>>2]};this.set_adjusted_ptr=function(adjustedPtr){HEAP32[this.ptr+4>>2]=adjustedPtr};this.get_adjusted_ptr_addr=function(){return this.ptr+4};this.get_adjusted_ptr=function(){return HEAP32[this.ptr+4>>2]};this.get_exception_ptr=function(){var isPointer=___cxa_is_pointer_type(this.get_exception_info().get_type());if(isPointer){return HEAP32[this.get_base_ptr()>>2]}var adjusted=this.get_adjusted_ptr();if(adjusted!==0)return adjusted;return this.get_base_ptr()};this.get_exception_info=function(){return new ExceptionInfo(this.get_base_ptr())};if(ptr===undefined){this.ptr=_malloc(8);this.set_adjusted_ptr(0)}else{this.ptr=ptr}}var exceptionCaught=[];function exception_addRef(info){info.add_ref()}var uncaughtExceptionCount=0;function ___cxa_begin_catch(ptr){var catchInfo=new CatchInfo(ptr);var info=catchInfo.get_exception_info();if(!info.get_caught()){info.set_caught(true);uncaughtExceptionCount--}info.set_rethrown(false);exceptionCaught.push(catchInfo);exception_addRef(info);return catchInfo.get_exception_ptr()}var exceptionLast=0;function ___cxa_free_exception(ptr){return _free(new ExceptionInfo(ptr).ptr)}function exception_decRef(info){if(info.release_ref()&&!info.get_rethrown()){var destructor=info.get_destructor();if(destructor){wasmTable.get(destructor)(info.excPtr)}___cxa_free_exception(info.excPtr)}}function ___cxa_end_catch(){_setThrew(0);var catchInfo=exceptionCaught.pop();exception_decRef(catchInfo.get_exception_info());catchInfo.free();exceptionLast=0}function ___resumeException(catchInfoPtr){var catchInfo=new CatchInfo(catchInfoPtr);var ptr=catchInfo.get_base_ptr();if(!exceptionLast){exceptionLast=ptr}catchInfo.free();throw ptr}function ___cxa_find_matching_catch_2(){var thrown=exceptionLast;if(!thrown){setTempRet0(0);return 0|0}var info=new ExceptionInfo(thrown);var thrownType=info.get_type();var catchInfo=new CatchInfo;catchInfo.set_base_ptr(thrown);catchInfo.set_adjusted_ptr(thrown);if(!thrownType){setTempRet0(0);return catchInfo.ptr|0}var typeArray=Array.prototype.slice.call(arguments);for(var i=0;i<typeArray.length;i++){var caughtType=typeArray[i];if(caughtType===0||caughtType===thrownType){break}if(___cxa_can_catch(caughtType,thrownType,catchInfo.get_adjusted_ptr_addr())){setTempRet0(caughtType);return catchInfo.ptr|0}}setTempRet0(thrownType);return catchInfo.ptr|0}function ___cxa_find_matching_catch_3(){var thrown=exceptionLast;if(!thrown){setTempRet0(0);return 0|0}var info=new ExceptionInfo(thrown);var thrownType=info.get_type();var catchInfo=new CatchInfo;catchInfo.set_base_ptr(thrown);catchInfo.set_adjusted_ptr(thrown);if(!thrownType){setTempRet0(0);return catchInfo.ptr|0}var typeArray=Array.prototype.slice.call(arguments);for(var i=0;i<typeArray.length;i++){var caughtType=typeArray[i];if(caughtType===0||caughtType===thrownType){break}if(___cxa_can_catch(caughtType,thrownType,catchInfo.get_adjusted_ptr_addr())){setTempRet0(caughtType);return catchInfo.ptr|0}}setTempRet0(thrownType);return catchInfo.ptr|0}function ___cxa_find_matching_catch_4(){var thrown=exceptionLast;if(!thrown){setTempRet0(0);return 0|0}var info=new ExceptionInfo(thrown);var thrownType=info.get_type();var catchInfo=new CatchInfo;catchInfo.set_base_ptr(thrown);catchInfo.set_adjusted_ptr(thrown);if(!thrownType){setTempRet0(0);return catchInfo.ptr|0}var typeArray=Array.prototype.slice.call(arguments);for(var i=0;i<typeArray.length;i++){var caughtType=typeArray[i];if(caughtType===0||caughtType===thrownType){break}if(___cxa_can_catch(caughtType,thrownType,catchInfo.get_adjusted_ptr_addr())){setTempRet0(caughtType);return catchInfo.ptr|0}}setTempRet0(thrownType);return catchInfo.ptr|0}function ___cxa_find_matching_catch_5(){var thrown=exceptionLast;if(!thrown){setTempRet0(0);return 0|0}var info=new ExceptionInfo(thrown);var thrownType=info.get_type();var catchInfo=new CatchInfo;catchInfo.set_base_ptr(thrown);catchInfo.set_adjusted_ptr(thrown);if(!thrownType){setTempRet0(0);return catchInfo.ptr|0}var typeArray=Array.prototype.slice.call(arguments);for(var i=0;i<typeArray.length;i++){var caughtType=typeArray[i];if(caughtType===0||caughtType===thrownType){break}if(___cxa_can_catch(caughtType,thrownType,catchInfo.get_adjusted_ptr_addr())){setTempRet0(caughtType);return catchInfo.ptr|0}}setTempRet0(thrownType);return catchInfo.ptr|0}function ___cxa_rethrow(){var catchInfo=exceptionCaught.pop();if(!catchInfo){abort(\"no exception to throw\")}var info=catchInfo.get_exception_info();var ptr=catchInfo.get_base_ptr();if(!info.get_rethrown()){exceptionCaught.push(catchInfo);info.set_rethrown(true);info.set_caught(false);uncaughtExceptionCount++}else{catchInfo.free()}exceptionLast=ptr;throw ptr}function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}function ___cxa_uncaught_exceptions(){return uncaughtExceptionCount}var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function ___sys__newselect(nfds,readfds,writefds,exceptfds,timeout){}function ___sys_access(path,amode){path=SYSCALLS.getStr(path);return SYSCALLS.doAccess(path,amode)}function SOCKFS(){err(\"missing function: $SOCKFS\");abort(-1)}function FS(){err(\"missing function: $FS\");abort(-1)}function getSocketFromFD(fd){var socket=SOCKFS.getSocket(fd);if(!socket)throw new FS.ErrnoError(8);return socket}function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function inetNtop4(addr){return(addr&255)+\".\"+(addr>>8&255)+\".\"+(addr>>16&255)+\".\"+(addr>>24&255)}function inetNtop6(ints){var str=\"\";var word=0;var longest=0;var lastzero=0;var zstart=0;var len=0;var i=0;var parts=[ints[0]&65535,ints[0]>>16,ints[1]&65535,ints[1]>>16,ints[2]&65535,ints[2]>>16,ints[3]&65535,ints[3]>>16];var hasipv4=true;var v4part=\"\";for(i=0;i<5;i++){if(parts[i]!==0){hasipv4=false;break}}if(hasipv4){v4part=inetNtop4(parts[6]|parts[7]<<16);if(parts[5]===-1){str=\"::ffff:\";str+=v4part;return str}if(parts[5]===0){str=\"::\";if(v4part===\"0.0.0.0\")v4part=\"\";if(v4part===\"0.0.0.1\")v4part=\"1\";str+=v4part;return str}}for(word=0;word<8;word++){if(parts[word]===0){if(word-lastzero>1){len=0}lastzero=word;len++}if(len>longest){longest=len;zstart=word-longest+1}}for(word=0;word<8;word++){if(longest>1){if(parts[word]===0&&word>=zstart&&word<zstart+longest){if(word===zstart){str+=\":\";if(zstart===0)str+=\":\"}continue}}str+=Number(_ntohs(parts[word]&65535)).toString(16);str+=word<7?\":\":\"\"}return str}function readSockaddr(sa,salen){var family=HEAP16[sa>>1];var port=_ntohs(HEAPU16[sa+2>>1]);var addr;switch(family){case 2:if(salen!==16){return{errno:28}}addr=HEAP32[sa+4>>2];addr=inetNtop4(addr);break;case 10:if(salen!==28){return{errno:28}}addr=[HEAP32[sa+8>>2],HEAP32[sa+12>>2],HEAP32[sa+16>>2],HEAP32[sa+20>>2]];addr=inetNtop6(addr);break;default:return{errno:5}}return{family:family,addr:addr,port:port}}function getSocketAddress(addrp,addrlen,allowNull){if(allowNull&&addrp===0)return null;var info=readSockaddr(addrp,addrlen);if(info.errno)throw new FS.ErrnoError(info.errno);info.addr=DNS.lookup_addr(info.addr)||info.addr;return info}function ___sys_bind(fd,addr,addrlen){var sock=getSocketFromFD(fd);var info=getSocketAddress(addr,addrlen);sock.sock_ops.bind(sock,info.addr,info.port);return 0}function ___sys_connect(fd,addr,addrlen){var sock=getSocketFromFD(fd);var info=getSocketAddress(addr,addrlen);sock.sock_ops.connect(sock,info.addr,info.port);return 0}function ___sys_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;return 0}function ___sys_fstat64(fd,buf){}function ___sys_ftruncate64(fd,zero,low,high){}function ___sys_getdents64(fd,dirp,count){}function inetPton4(str){var b=str.split(\".\");for(var i=0;i<4;i++){var tmp=Number(b[i]);if(isNaN(tmp))return null;b[i]=tmp}return(b[0]|b[1]<<8|b[2]<<16|b[3]<<24)>>>0}function jstoi_q(str){return parseInt(str)}function inetPton6(str){var words;var w,offset,z;var valid6regx=/^((?=.*::)(?!.*::.+::)(::)?([\\dA-F]{1,4}:(:|\\b)|){5}|([\\dA-F]{1,4}:){6})((([\\dA-F]{1,4}((?!\\3)::|:\\b|$))|(?!\\2\\3)){2}|(((2[0-4]|1\\d|[1-9])?\\d|25[0-5])\\.?\\b){4})$/i;var parts=[];if(!valid6regx.test(str)){return null}if(str===\"::\"){return[0,0,0,0,0,0,0,0]}if(str.startsWith(\"::\")){str=str.replace(\"::\",\"Z:\")}else{str=str.replace(\"::\",\":Z:\")}if(str.indexOf(\".\")>0){str=str.replace(new RegExp(\"[.]\",\"g\"),\":\");words=str.split(\":\");words[words.length-4]=jstoi_q(words[words.length-4])+jstoi_q(words[words.length-3])*256;words[words.length-3]=jstoi_q(words[words.length-2])+jstoi_q(words[words.length-1])*256;words=words.slice(0,words.length-2)}else{words=str.split(\":\")}offset=0;z=0;for(w=0;w<words.length;w++){if(typeof words[w]===\"string\"){if(words[w]===\"Z\"){for(z=0;z<8-words.length+1;z++){parts[w+z]=0}offset=z-1}else{parts[w+offset]=_htons(parseInt(words[w],16))}}else{parts[w+offset]=words[w]}}return[parts[1]<<16|parts[0],parts[3]<<16|parts[2],parts[5]<<16|parts[4],parts[7]<<16|parts[6]]}function zeroMemory(address,size){HEAPU8.fill(0,address,address+size)}function writeSockaddr(sa,family,addr,port,addrlen){switch(family){case 2:addr=inetPton4(addr);zeroMemory(sa,16);if(addrlen){HEAP32[addrlen>>2]=16}HEAP16[sa>>1]=family;HEAP32[sa+4>>2]=addr;HEAP16[sa+2>>1]=_htons(port);break;case 10:addr=inetPton6(addr);zeroMemory(sa,28);if(addrlen){HEAP32[addrlen>>2]=28}HEAP32[sa>>2]=family;HEAP32[sa+8>>2]=addr[0];HEAP32[sa+12>>2]=addr[1];HEAP32[sa+16>>2]=addr[2];HEAP32[sa+20>>2]=addr[3];HEAP16[sa+2>>1]=_htons(port);break;default:return 5}return 0}var DNS={address_map:{id:1,addrs:{},names:{}},lookup_name:function(name){var res=inetPton4(name);if(res!==null){return name}res=inetPton6(name);if(res!==null){return name}var addr;if(DNS.address_map.addrs[name]){addr=DNS.address_map.addrs[name]}else{var id=DNS.address_map.id++;assert(id<65535,\"exceeded max address mappings of 65535\");addr=\"172.29.\"+(id&255)+\".\"+(id&65280);DNS.address_map.names[addr]=name;DNS.address_map.addrs[name]=addr}return addr},lookup_addr:function(addr){if(DNS.address_map.names[addr]){return DNS.address_map.names[addr]}return null}};function ___sys_getpeername(fd,addr,addrlen){var sock=getSocketFromFD(fd);if(!sock.daddr){return-53}var errno=writeSockaddr(addr,sock.family,DNS.lookup_name(sock.daddr),sock.dport,addrlen);return 0}function ___sys_getpid(){return 42}function ___sys_getsockopt(fd,level,optname,optval,optlen){var sock=getSocketFromFD(fd);if(level===1){if(optname===4){HEAP32[optval>>2]=sock.error;HEAP32[optlen>>2]=4;sock.error=null;return 0}}return-50}function ___sys_ioctl(fd,op,varargs){SYSCALLS.varargs=varargs;return 0}function ___sys_madvise1(addr,length,advice){return 0}function ___sys_mkdir(path,mode){path=SYSCALLS.getStr(path);return SYSCALLS.doMkdir(path,mode)}function ___sys_open(path,flags,varargs){SYSCALLS.varargs=varargs}function ___sys_recvfrom(fd,buf,len,flags,addr,addrlen){var sock=getSocketFromFD(fd);var msg=sock.sock_ops.recvmsg(sock,len);if(!msg)return 0;if(addr){var errno=writeSockaddr(addr,sock.family,DNS.lookup_name(msg.addr),msg.port,addrlen)}HEAPU8.set(msg.buffer,buf);return msg.buffer.byteLength}function ___sys_rename(old_path,new_path){}function ___sys_rmdir(path){}function ___sys_sendto(fd,message,length,flags,addr,addr_len){}function ___sys_setsockopt(fd){return-50}function ___sys_shutdown(fd,how){getSocketFromFD(fd);return-52}function ___sys_socket(domain,type,protocol){}function ___sys_stat64(path,buf){}function ___sys_unlink(path){}function __dlopen_js(filename,flag){abort(\"To use dlopen, you need to use Emscripten's linking support, see https://github.com/emscripten-core/emscripten/wiki/Linking\")}function __dlsym_js(handle,symbol){abort(\"To use dlopen, you need to use Emscripten's linking support, see https://github.com/emscripten-core/emscripten/wiki/Linking\")}function _abort(){abort(\"\")}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process[\"hrtime\"]();return t[0]*1e3+t[1]/1e6}}else _emscripten_get_now=function(){return performance.now()};var _emscripten_get_now_is_monotonic=true;function _clock_gettime(clk_id,tp){var now;if(clk_id===0){now=Date.now()}else if((clk_id===1||clk_id===4)&&_emscripten_get_now_is_monotonic){now=_emscripten_get_now()}else{setErrNo(28);return-1}HEAP32[tp>>2]=now/1e3|0;HEAP32[tp+4>>2]=now%1e3*1e3*1e3|0;return 0}function _duckdb_web_fs_directory_create(path,pathLen){return globalThis.DUCKDB_RUNTIME.createDirectory(Module,path,pathLen)}function _duckdb_web_fs_directory_exists(path,pathLen){return globalThis.DUCKDB_RUNTIME.checkDirectory(Module,path,pathLen)}function _duckdb_web_fs_directory_list_files(path,pathLen){return globalThis.DUCKDB_RUNTIME.listDirectoryEntries(Module,path,pathLen)}function _duckdb_web_fs_directory_remove(path,pathLen){return globalThis.DUCKDB_RUNTIME.removeDirectory(Module,path,pathLen)}function _duckdb_web_fs_file_close(fileId){return globalThis.DUCKDB_RUNTIME.closeFile(Module,fileId)}function _duckdb_web_fs_file_exists(path,pathLen){return globalThis.DUCKDB_RUNTIME.checkFile(Module,path,pathLen)}function _duckdb_web_fs_file_get_last_modified_time(fileId){return globalThis.DUCKDB_RUNTIME.getLastFileModificationTime(Module,fileId)}function _duckdb_web_fs_file_move(from,fromLen,to,toLen){return globalThis.DUCKDB_RUNTIME.moveFile(Module,from,fromLen,to,toLen)}function _duckdb_web_fs_file_open(fileId){return globalThis.DUCKDB_RUNTIME.openFile(Module,fileId)}function _duckdb_web_fs_file_read(fileId,buf,size,location){return globalThis.DUCKDB_RUNTIME.readFile(Module,fileId,buf,size,location)}function _duckdb_web_fs_file_truncate(fileId,newSize){return globalThis.DUCKDB_RUNTIME.truncateFile(Module,fileId,newSize)}function _duckdb_web_fs_file_write(fileId,buf,size,location){return globalThis.DUCKDB_RUNTIME.writeFile(Module,fileId,buf,size,location)}function _duckdb_web_fs_glob(path,pathLen){return globalThis.DUCKDB_RUNTIME.glob(Module,path,pathLen)}function _duckdb_web_test_platform_feature(feature){return globalThis.DUCKDB_RUNTIME.testPlatformFeature(Module,feature)}function _emscripten_get_heap_max(){return 2147483648}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=2147483648;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,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var ENV={};function getExecutableName(){return thisProgram||\"./this.program\"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator===\"object\"&&navigator.languages&&navigator.languages[0]||\"C\").replace(\"-\",\"_\")+\".UTF-8\";var env={\"USER\":\"web_user\",\"LOGNAME\":\"web_user\",\"PATH\":\"/\",\"PWD\":\"/\",\"HOME\":\"/home/web_user\",\"LANG\":lang,\"_\":getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+\"=\"+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}function _environ_sizes_get(penviron_count,penviron_buf_size){var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}function _fd_close(fd){return 0}function _fd_fdstat_get(fd,pbuf){var type=fd==1||fd==2?2:abort();HEAP8[pbuf>>0]=type;return 0}function _fd_pread(fd,iov,iovcnt,offset_low,offset_high,pnum){var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt,offset_low);HEAP32[pnum>>2]=num;return 0}function _fd_pwrite(fd,iov,iovcnt,offset_low,offset_high,pnum){var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt,offset_low);HEAP32[pnum>>2]=num;return 0}function _fd_read(fd,iov,iovcnt,pnum){var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){}function _fd_sync(fd){var stream=SYSCALLS.getStreamFromFD(fd);if(stream.stream_ops&&stream.stream_ops.fsync){return-stream.stream_ops.fsync(stream)}return 0}function _fd_write(fd,iov,iovcnt,pnum){var num=0;for(var i=0;i<iovcnt;i++){var ptr=HEAP32[iov+i*8>>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j<len;j++){SYSCALLS.printChar(fd,HEAPU8[ptr+j])}num+=len}HEAP32[pnum>>2]=num;return 0}function _getTempRet0(){return getTempRet0()}function _getaddrinfo(node,service,hint,out){var addr=0;var port=0;var flags=0;var family=0;var type=0;var proto=0;var ai;function allocaddrinfo(family,type,proto,canon,addr,port){var sa,salen,ai;var errno;salen=family===10?28:16;addr=family===10?inetNtop6(addr):inetNtop4(addr);sa=_malloc(salen);errno=writeSockaddr(sa,family,addr,port);assert(!errno);ai=_malloc(32);HEAP32[ai+4>>2]=family;HEAP32[ai+8>>2]=type;HEAP32[ai+12>>2]=proto;HEAP32[ai+24>>2]=canon;HEAP32[ai+20>>2]=sa;if(family===10){HEAP32[ai+16>>2]=28}else{HEAP32[ai+16>>2]=16}HEAP32[ai+28>>2]=0;return ai}if(hint){flags=HEAP32[hint>>2];family=HEAP32[hint+4>>2];type=HEAP32[hint+8>>2];proto=HEAP32[hint+12>>2]}if(type&&!proto){proto=type===2?17:6}if(!type&&proto){type=proto===17?2:1}if(proto===0){proto=6}if(type===0){type=1}if(!node&&!service){return-2}if(flags&~(1|2|4|1024|8|16|32)){return-1}if(hint!==0&&HEAP32[hint>>2]&2&&!node){return-1}if(flags&32){return-2}if(type!==0&&type!==1&&type!==2){return-7}if(family!==0&&family!==2&&family!==10){return-6}if(service){service=UTF8ToString(service);port=parseInt(service,10);if(isNaN(port)){if(flags&1024){return-2}return-8}}if(!node){if(family===0){family=2}if((flags&1)===0){if(family===2){addr=_htonl(2130706433)}else{addr=[0,0,0,1]}}ai=allocaddrinfo(family,type,proto,null,addr,port);HEAP32[out>>2]=ai;return 0}node=UTF8ToString(node);addr=inetPton4(node);if(addr!==null){if(family===0||family===2){family=2}else if(family===10&&flags&8){addr=[0,0,_htonl(65535),addr];family=10}else{return-2}}else{addr=inetPton6(node);if(addr!==null){if(family===0||family===10){family=10}else{return-2}}}if(addr!=null){ai=allocaddrinfo(family,type,proto,node,addr,port);HEAP32[out>>2]=ai;return 0}if(flags&4){return-2}node=DNS.lookup_name(node);addr=inetPton4(node);if(family===0){family=2}else if(family===10){addr=[0,0,_htonl(65535),addr]}ai=allocaddrinfo(family,type,proto,null,addr,port);HEAP32[out>>2]=ai;return 0}function getRandomDevice(){if(typeof crypto===\"object\"&&typeof crypto[\"getRandomValues\"]===\"function\"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require(\"crypto\");return function(){return crypto_module[\"randomBytes\"](1)[0]}}catch(e){}}return function(){abort(\"randomDevice\")}}function _getentropy(buffer,size){if(!_getentropy.randomDevice){_getentropy.randomDevice=getRandomDevice()}for(var i=0;i<size;i++){HEAP8[buffer+i>>0]=_getentropy.randomDevice()}return 0}function _getnameinfo(sa,salen,node,nodelen,serv,servlen,flags){var info=readSockaddr(sa,salen);if(info.errno){return-6}var port=info.port;var addr=info.addr;var overflowed=false;if(node&&nodelen){var lookup;if(flags&1||!(lookup=DNS.lookup_addr(addr))){if(flags&8){return-2}}else{addr=lookup}var numBytesWrittenExclNull=stringToUTF8(addr,node,nodelen);if(numBytesWrittenExclNull+1>=nodelen){overflowed=true}}if(serv&&servlen){port=\"\"+port;var numBytesWrittenExclNull=stringToUTF8(port,serv,servlen);if(numBytesWrittenExclNull+1>=servlen){overflowed=true}}if(overflowed){return-12}return 0}function _llvm_eh_typeid_for(type){return type}function _setTempRet0(val){setTempRet0(val)}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):\"\"};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={\"%c\":\"%a %b %d %H:%M:%S %Y\",\"%D\":\"%m/%d/%y\",\"%F\":\"%Y-%m-%d\",\"%h\":\"%b\",\"%r\":\"%I:%M:%S %p\",\"%R\":\"%H:%M\",\"%T\":\"%H:%M:%S\",\"%x\":\"%m/%d/%y\",\"%X\":\"%H:%M:%S\",\"%Ec\":\"%c\",\"%EC\":\"%C\",\"%Ex\":\"%m/%d/%y\",\"%EX\":\"%H:%M:%S\",\"%Ey\":\"%y\",\"%EY\":\"%Y\",\"%Od\":\"%d\",\"%Oe\":\"%e\",\"%OH\":\"%H\",\"%OI\":\"%I\",\"%Om\":\"%m\",\"%OM\":\"%M\",\"%OS\":\"%S\",\"%Ou\":\"%u\",\"%OU\":\"%U\",\"%OV\":\"%V\",\"%Ow\":\"%w\",\"%OW\":\"%W\",\"%Oy\":\"%y\"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,\"g\"),EXPANSION_RULES_1[rule])}var WEEKDAYS=[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"];var MONTHS=[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"];function leadingSomething(value,digits,character){var str=typeof value===\"number\"?value.toString():value||\"\";while(str.length<digits){str=character[0]+str}return str}function leadingNulls(value,digits){return leadingSomething(value,digits,\"0\")}function compareByDay(date1,date2){function sgn(value){return value<0?-1:value>0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={\"%a\":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},\"%A\":function(date){return WEEKDAYS[date.tm_wday]},\"%b\":function(date){return MONTHS[date.tm_mon].substring(0,3)},\"%B\":function(date){return MONTHS[date.tm_mon]},\"%C\":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},\"%d\":function(date){return leadingNulls(date.tm_mday,2)},\"%e\":function(date){return leadingSomething(date.tm_mday,2,\" \")},\"%g\":function(date){return getWeekBasedYear(date).toString().substring(2)},\"%G\":function(date){return getWeekBasedYear(date)},\"%H\":function(date){return leadingNulls(date.tm_hour,2)},\"%I\":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},\"%j\":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},\"%m\":function(date){return leadingNulls(date.tm_mon+1,2)},\"%M\":function(date){return leadingNulls(date.tm_min,2)},\"%n\":function(){return\"\\n\"},\"%p\":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return\"AM\"}else{return\"PM\"}},\"%S\":function(date){return leadingNulls(date.tm_sec,2)},\"%t\":function(){return\"\\t\"},\"%u\":function(date){return date.tm_wday||7},\"%U\":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?\"01\":\"00\"},\"%V\":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return\"53\"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return\"01\"}var daysDifference;if(firstWeekStartThisYear.getFullYear()<date.tm_year+1900){daysDifference=date.tm_yday+32-firstWeekStartThisYear.getDate()}else{daysDifference=date.tm_yday+1-firstWeekStartThisYear.getDate()}return leadingNulls(Math.ceil(daysDifference/7),2)},\"%w\":function(date){return date.tm_wday},\"%W\":function(date){var janFirst=new Date(date.tm_year,0,1);var firstMonday=janFirst.getDay()===1?janFirst:__addDays(janFirst,janFirst.getDay()===0?1:7-janFirst.getDay()+1);var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstMonday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstMondayUntilEndJanuary=31-firstMonday.getDate();var days=firstMondayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstMonday,janFirst)===0?\"01\":\"00\"},\"%y\":function(date){return(date.tm_year+1900).toString().substring(2)},\"%Y\":function(date){return date.tm_year+1900},\"%z\":function(date){var off=date.tm_gmtoff;var ahead=off>=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?\"+\":\"-\")+String(\"0000\"+off).slice(-4)},\"%Z\":function(date){return date.tm_zone},\"%%\":function(){return\"%\"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,\"g\"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={\"j\":___cxa_allocate_exception,\"A\":___cxa_begin_catch,\"F\":___cxa_end_catch,\"b\":___cxa_find_matching_catch_2,\"n\":___cxa_find_matching_catch_3,\"I\":___cxa_find_matching_catch_4,\"V\":___cxa_find_matching_catch_5,\"i\":___cxa_free_exception,\"da\":___cxa_rethrow,\"u\":___cxa_throw,\"E\":___cxa_uncaught_exceptions,\"e\":___resumeException,\"Fa\":___sys__newselect,\"wa\":___sys_access,\"Ha\":___sys_bind,\"Ga\":___sys_connect,\"N\":___sys_fcntl64,\"ya\":___sys_fstat64,\"xa\":___sys_ftruncate64,\"Qe\":___sys_getdents64,\"Ba\":___sys_getpeername,\"ta\":___sys_getpid,\"Ea\":___sys_getsockopt,\"Ra\":___sys_ioctl,\"Me\":___sys_madvise1,\"Re\":___sys_mkdir,\"oa\":___sys_open,\"Ca\":___sys_recvfrom,\"Oe\":___sys_rename,\"ua\":___sys_rmdir,\"Da\":___sys_sendto,\"Ia\":___sys_setsockopt,\"Ka\":___sys_shutdown,\"ia\":___sys_socket,\"fa\":___sys_stat64,\"va\":___sys_unlink,\"Ma\":__dlopen_js,\"La\":__dlsym_js,\"ca\":_abort,\"ma\":_clock_gettime,\"Fe\":_duckdb_web_fs_directory_create,\"Ge\":_duckdb_web_fs_directory_exists,\"De\":_duckdb_web_fs_directory_list_files,\"Ee\":_duckdb_web_fs_directory_remove,\"sa\":_duckdb_web_fs_file_close,\"Be\":_duckdb_web_fs_file_exists,\"Ie\":_duckdb_web_fs_file_get_last_modified_time,\"Ce\":_duckdb_web_fs_file_move,\"Ke\":_duckdb_web_fs_file_open,\"ea\":_duckdb_web_fs_file_read,\"He\":_duckdb_web_fs_file_truncate,\"Je\":_duckdb_web_fs_file_write,\"Ae\":_duckdb_web_fs_glob,\"ra\":_duckdb_web_test_platform_feature,\"Sa\":_emscripten_get_heap_max,\"ib\":_emscripten_memcpy_big,\"ed\":_emscripten_resize_heap,\"Ua\":_environ_get,\"Va\":_environ_sizes_get,\"T\":_fd_close,\"Qa\":_fd_fdstat_get,\"nb\":_fd_pread,\"mb\":_fd_pwrite,\"na\":_fd_read,\"Td\":_fd_seek,\"Pe\":_fd_sync,\"ba\":_fd_write,\"a\":_getTempRet0,\"Ja\":_getaddrinfo,\"za\":_getentropy,\"Aa\":_getnameinfo,\"ja\":invoke_d,\"L\":invoke_di,\"Pa\":invoke_dii,\"S\":invoke_diii,\"yc\":invoke_diijii,\"ka\":invoke_f,\"W\":invoke_fi,\"qa\":invoke_fiii,\"zc\":invoke_fiijii,\"s\":invoke_i,\"Na\":invoke_id,\"Nb\":invoke_idd,\"Y\":invoke_idiii,\"Oa\":invoke_if,\"Yb\":invoke_iff,\"d\":invoke_ii,\"_\":invoke_iid,\"C\":invoke_iidii,\"Fb\":invoke_iidj,\"c\":invoke_iii,\"X\":invoke_iiid,\"ga\":invoke_iiif,\"h\":invoke_iiii,\"Db\":invoke_iiiidjj,\"l\":invoke_iiiii,\"pa\":invoke_iiiiid,\"o\":invoke_iiiiii,\"v\":invoke_iiiiiii,\"z\":invoke_iiiiiiii,\"R\":invoke_iiiiiiiii,\"x\":invoke_iiiiiiiiiii,\"w\":invoke_iiiiiiiiiiii,\"p\":invoke_iiiiiiiiiiiiiii,\"M\":invoke_iiiiiiiiiiiiiiiiiiii,\"J\":invoke_iiiiiiiiiiiiiiiiiiiii,\"ac\":invoke_iiiiiiiiiiiij,\"dc\":invoke_iiiiiiiiiiji,\"gc\":invoke_iiiiiiiij,\"nc\":invoke_iiiiiiiiji,\"bc\":invoke_iiiiiiij,\"Eb\":invoke_iiiiiiiji,\"xc\":invoke_iiiiiiijii,\"ec\":invoke_iiiiiij,\"oc\":invoke_iiiiiiji,\"Lb\":invoke_iiiiiijji,\"we\":invoke_iiiiij,\"Rd\":invoke_iiiiiji,\"Kd\":invoke_iiiiijii,\"je\":invoke_iiiiijj,\"Rb\":invoke_iiiiijji,\"id\":invoke_iiiiijjiijj,\"Ib\":invoke_iiiiijjj,\"Hb\":invoke_iiiiijjji,\"$d\":invoke_iiiij,\"Qd\":invoke_iiiiji,\"vb\":invoke_iiiijii,\"Xc\":invoke_iiiijiii,\"_d\":invoke_iiiijj,\"Ec\":invoke_iiiijji,\"Sb\":invoke_iiiijjii,\"Gb\":invoke_iiiijjj,\"re\":invoke_iiij,\"Xd\":invoke_iiiji,\"Ac\":invoke_iiijii,\"Ld\":invoke_iiijiii,\"vd\":invoke_iiijiiii,\"Id\":invoke_iiijiij,\"hb\":invoke_iiijiijj,\"Yd\":invoke_iiijij,\"lc\":invoke_iiijj,\"Vd\":invoke_iiijji,\"hd\":invoke_iiijjii,\"cb\":invoke_iiijjji,\"Kb\":invoke_iiijjjii,\"kd\":invoke_iiijjjj,\"ce\":invoke_iij,\"ae\":invoke_iiji,\"_a\":invoke_iijii,\"tb\":invoke_iijiii,\"Md\":invoke_iijiiii,\"db\":invoke_iijiijj,\"Cb\":invoke_iijiji,\"Wd\":invoke_iijj,\"Ed\":invoke_iijji,\"Hd\":invoke_iijjii,\"Gd\":invoke_iijjiii,\"Fd\":invoke_iijjiiii,\"Bd\":invoke_iijjijj,\"kc\":invoke_iijjj,\"Zb\":invoke_ij,\"pe\":invoke_iji,\"he\":invoke_ijj,\"pc\":invoke_ijji,\"ge\":invoke_ijjiii,\"Sd\":invoke_j,\"sc\":invoke_jd,\"rc\":invoke_jf,\"ne\":invoke_ji,\"ie\":invoke_jii,\"Pd\":invoke_jiii,\"ze\":invoke_jiiii,\"qd\":invoke_jiiiii,\"qc\":invoke_jiiiiii,\"cc\":invoke_jiiiiiii,\"Fc\":invoke_jiiiiiijii,\"uc\":invoke_jiiiiijiiii,\"Uc\":invoke_jiiiij,\"sb\":invoke_jiiiiji,\"Cc\":invoke_jiiiijii,\"wc\":invoke_jiiiijiiiiiiii,\"sd\":invoke_jiiij,\"md\":invoke_jiiiji,\"Mc\":invoke_jiiijii,\"vc\":invoke_jiiijiii,\"wb\":invoke_jiiijj,\"_b\":invoke_jiij,\"od\":invoke_jiiji,\"cd\":invoke_jiijii,\"Pc\":invoke_jiijiiiii,\"Oc\":invoke_jiijiijiii,\"Lc\":invoke_jiijijii,\"Nc\":invoke_jiijjiii,\"td\":invoke_jij,\"$c\":invoke_jijiii,\"Jb\":invoke_jijiiii,\"ic\":invoke_jijijjij,\"kb\":invoke_jijj,\"Zc\":invoke_jijjij,\"tc\":invoke_jj,\"zb\":invoke_jji,\"Vb\":invoke_jjj,\"Ab\":invoke_jjjii,\"Tb\":invoke_jjjjjjd,\"t\":invoke_v,\"k\":invoke_vi,\"B\":invoke_vid,\"$\":invoke_vidi,\"pb\":invoke_vidiijj,\"D\":invoke_vif,\"aa\":invoke_vifi,\"qb\":invoke_vifiijj,\"f\":invoke_vii,\"U\":invoke_viid,\"Q\":invoke_viidii,\"Bc\":invoke_viif,\"g\":invoke_viii,\"m\":invoke_viiii,\"Ne\":invoke_viiiidiiii,\"q\":invoke_viiiii,\"r\":invoke_viiiiii,\"ha\":invoke_viiiiiidiii,\"y\":invoke_viiiiiii,\"O\":invoke_viiiiiiii,\"P\":invoke_viiiiiiiii,\"K\":invoke_viiiiiiiiii,\"Le\":invoke_viiiiiiiiiii,\"la\":invoke_viiiiiiiiiiiii,\"Z\":invoke_viiiiiiiiiiiiiii,\"Dd\":invoke_viiiiiij,\"ob\":invoke_viiiiij,\"jd\":invoke_viiiiiji,\"$b\":invoke_viiiiijiii,\"Dc\":invoke_viiiiijiiii,\"mc\":invoke_viiiiijj,\"Mb\":invoke_viiiiijji,\"fb\":invoke_viiiiijjji,\"ue\":invoke_viiiij,\"Zd\":invoke_viiiiji,\"ub\":invoke_viiiijii,\"ab\":invoke_viiiijiii,\"zd\":invoke_viiiijiiii,\"Ad\":invoke_viiiijiiiii,\"Wb\":invoke_viiiijiiiiiiii,\"wd\":invoke_viiiijj,\"Pb\":invoke_viiiijji,\"Ob\":invoke_viiiijjii,\"Qc\":invoke_viiiijjjj,\"te\":invoke_viiij,\"xd\":invoke_viiiji,\"Cd\":invoke_viiijii,\"Wc\":invoke_viiijiii,\"Ic\":invoke_viiijiiiijjj,\"xb\":invoke_viiijij,\"yb\":invoke_viiijijiji,\"eb\":invoke_viiijijjj,\"me\":invoke_viiijj,\"ud\":invoke_viiijji,\"Qb\":invoke_viiijjii,\"Gc\":invoke_viiijjiij,\"Tc\":invoke_viiijjij,\"se\":invoke_viiijjj,\"bb\":invoke_viiijjjji,\"xe\":invoke_viij,\"ee\":invoke_viiji,\"fe\":invoke_viijii,\"Jd\":invoke_viijiii,\"$a\":invoke_viijiiii,\"bd\":invoke_viijiiiii,\"Kc\":invoke_viijiiiiij,\"Jc\":invoke_viijiiiijj,\"ad\":invoke_viijiiij,\"Yc\":invoke_viijiij,\"nd\":invoke_viijiiji,\"gb\":invoke_viijiijj,\"gd\":invoke_viijij,\"Za\":invoke_viijiji,\"Hc\":invoke_viijijiiiijjj,\"jb\":invoke_viijijj,\"ye\":invoke_viijj,\"Ud\":invoke_viijji,\"dd\":invoke_viijjii,\"Rc\":invoke_viijjij,\"ke\":invoke_viijjj,\"fc\":invoke_viijjji,\"ve\":invoke_vij,\"oe\":invoke_viji,\"fd\":invoke_vijii,\"Od\":invoke_vijiii,\"Nd\":invoke_vijiiii,\"_c\":invoke_vijiiiji,\"rb\":invoke_vijiijj,\"ld\":invoke_vijij,\"jc\":invoke_vijijiiiijjj,\"qe\":invoke_vijijj,\"Ya\":invoke_vijijjiiiii,\"Sc\":invoke_vijijjiij,\"lb\":invoke_vijijjji,\"de\":invoke_vijj,\"Vc\":invoke_vijji,\"Wa\":invoke_vijjiiii,\"Xa\":invoke_vijjiiiii,\"hc\":invoke_vijjij,\"le\":invoke_vijjj,\"rd\":invoke_vijjji,\"be\":invoke_vj,\"Ub\":invoke_vjii,\"Xb\":invoke_vjiiii,\"Bb\":invoke_vjiiiji,\"yd\":invoke_vjjii,\"pd\":invoke_vjjijij,\"H\":_llvm_eh_typeid_for,\"G\":_setTempRet0,\"Ta\":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=function(){return(___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=Module[\"asm\"][\"Te\"]).apply(null,arguments)};var _main=Module[\"_main\"]=function(){return(_main=Module[\"_main\"]=Module[\"asm\"][\"Ue\"]).apply(null,arguments)};var _duckdb_web_fs_glob_add_path=Module[\"_duckdb_web_fs_glob_add_path\"]=function(){return(_duckdb_web_fs_glob_add_path=Module[\"_duckdb_web_fs_glob_add_path\"]=Module[\"asm\"][\"We\"]).apply(null,arguments)};var _duckdb_web_clear_response=Module[\"_duckdb_web_clear_response\"]=function(){return(_duckdb_web_clear_response=Module[\"_duckdb_web_clear_response\"]=Module[\"asm\"][\"Xe\"]).apply(null,arguments)};var _duckdb_web_fail_with=Module[\"_duckdb_web_fail_with\"]=function(){return(_duckdb_web_fail_with=Module[\"_duckdb_web_fail_with\"]=Module[\"asm\"][\"Ye\"]).apply(null,arguments)};var _duckdb_web_reset=Module[\"_duckdb_web_reset\"]=function(){return(_duckdb_web_reset=Module[\"_duckdb_web_reset\"]=Module[\"asm\"][\"Ze\"]).apply(null,arguments)};var _duckdb_web_connect=Module[\"_duckdb_web_connect\"]=function(){return(_duckdb_web_connect=Module[\"_duckdb_web_connect\"]=Module[\"asm\"][\"_e\"]).apply(null,arguments)};var _duckdb_web_disconnect=Module[\"_duckdb_web_disconnect\"]=function(){return(_duckdb_web_disconnect=Module[\"_duckdb_web_disconnect\"]=Module[\"asm\"][\"$e\"]).apply(null,arguments)};var _duckdb_web_flush_files=Module[\"_duckdb_web_flush_files\"]=function(){return(_duckdb_web_flush_files=Module[\"_duckdb_web_flush_files\"]=Module[\"asm\"][\"af\"]).apply(null,arguments)};var _duckdb_web_flush_file=Module[\"_duckdb_web_flush_file\"]=function(){return(_duckdb_web_flush_file=Module[\"_duckdb_web_flush_file\"]=Module[\"asm\"][\"bf\"]).apply(null,arguments)};var _duckdb_web_open=Module[\"_duckdb_web_open\"]=function(){return(_duckdb_web_open=Module[\"_duckdb_web_open\"]=Module[\"asm\"][\"cf\"]).apply(null,arguments)};var _duckdb_web_collect_file_stats=Module[\"_duckdb_web_collect_file_stats\"]=function(){return(_duckdb_web_collect_file_stats=Module[\"_duckdb_web_collect_file_stats\"]=Module[\"asm\"][\"df\"]).apply(null,arguments)};var _duckdb_web_export_file_stats=Module[\"_duckdb_web_export_file_stats\"]=function(){return(_duckdb_web_export_file_stats=Module[\"_duckdb_web_export_file_stats\"]=Module[\"asm\"][\"ef\"]).apply(null,arguments)};var _duckdb_web_fs_drop_file=Module[\"_duckdb_web_fs_drop_file\"]=function(){return(_duckdb_web_fs_drop_file=Module[\"_duckdb_web_fs_drop_file\"]=Module[\"asm\"][\"ff\"]).apply(null,arguments)};var _duckdb_web_fs_drop_files=Module[\"_duckdb_web_fs_drop_files\"]=function(){return(_duckdb_web_fs_drop_files=Module[\"_duckdb_web_fs_drop_files\"]=Module[\"asm\"][\"gf\"]).apply(null,arguments)};var _duckdb_web_fs_glob_file_infos=Module[\"_duckdb_web_fs_glob_file_infos\"]=function(){return(_duckdb_web_fs_glob_file_infos=Module[\"_duckdb_web_fs_glob_file_infos\"]=Module[\"asm\"][\"hf\"]).apply(null,arguments)};var _duckdb_web_fs_get_file_info_by_id=Module[\"_duckdb_web_fs_get_file_info_by_id\"]=function(){return(_duckdb_web_fs_get_file_info_by_id=Module[\"_duckdb_web_fs_get_file_info_by_id\"]=Module[\"asm\"][\"jf\"]).apply(null,arguments)};var _duckdb_web_fs_get_file_info_by_name=Module[\"_duckdb_web_fs_get_file_info_by_name\"]=function(){return(_duckdb_web_fs_get_file_info_by_name=Module[\"_duckdb_web_fs_get_file_info_by_name\"]=Module[\"asm\"][\"kf\"]).apply(null,arguments)};var _duckdb_web_fs_set_file_descriptor=Module[\"_duckdb_web_fs_set_file_descriptor\"]=function(){return(_duckdb_web_fs_set_file_descriptor=Module[\"_duckdb_web_fs_set_file_descriptor\"]=Module[\"asm\"][\"lf\"]).apply(null,arguments)};var _duckdb_web_fs_register_file_url=Module[\"_duckdb_web_fs_register_file_url\"]=function(){return(_duckdb_web_fs_register_file_url=Module[\"_duckdb_web_fs_register_file_url\"]=Module[\"asm\"][\"mf\"]).apply(null,arguments)};var _duckdb_web_fs_register_file_buffer=Module[\"_duckdb_web_fs_register_file_buffer\"]=function(){return(_duckdb_web_fs_register_file_buffer=Module[\"_duckdb_web_fs_register_file_buffer\"]=Module[\"asm\"][\"nf\"]).apply(null,arguments)};var _duckdb_web_copy_file_to_buffer=Module[\"_duckdb_web_copy_file_to_buffer\"]=function(){return(_duckdb_web_copy_file_to_buffer=Module[\"_duckdb_web_copy_file_to_buffer\"]=Module[\"asm\"][\"of\"]).apply(null,arguments)};var _duckdb_web_copy_file_to_path=Module[\"_duckdb_web_copy_file_to_path\"]=function(){return(_duckdb_web_copy_file_to_path=Module[\"_duckdb_web_copy_file_to_path\"]=Module[\"asm\"][\"pf\"]).apply(null,arguments)};var _duckdb_web_get_version=Module[\"_duckdb_web_get_version\"]=function(){return(_duckdb_web_get_version=Module[\"_duckdb_web_get_version\"]=Module[\"asm\"][\"qf\"]).apply(null,arguments)};var _duckdb_web_get_feature_flags=Module[\"_duckdb_web_get_feature_flags\"]=function(){return(_duckdb_web_get_feature_flags=Module[\"_duckdb_web_get_feature_flags\"]=Module[\"asm\"][\"rf\"]).apply(null,arguments)};var _duckdb_web_tokenize=Module[\"_duckdb_web_tokenize\"]=function(){return(_duckdb_web_tokenize=Module[\"_duckdb_web_tokenize\"]=Module[\"asm\"][\"sf\"]).apply(null,arguments)};var _duckdb_web_prepared_create=Module[\"_duckdb_web_prepared_create\"]=function(){return(_duckdb_web_prepared_create=Module[\"_duckdb_web_prepared_create\"]=Module[\"asm\"][\"tf\"]).apply(null,arguments)};var _duckdb_web_prepared_close=Module[\"_duckdb_web_prepared_close\"]=function(){return(_duckdb_web_prepared_close=Module[\"_duckdb_web_prepared_close\"]=Module[\"asm\"][\"uf\"]).apply(null,arguments)};var _duckdb_web_prepared_run=Module[\"_duckdb_web_prepared_run\"]=function(){return(_duckdb_web_prepared_run=Module[\"_duckdb_web_prepared_run\"]=Module[\"asm\"][\"vf\"]).apply(null,arguments)};var _duckdb_web_prepared_send=Module[\"_duckdb_web_prepared_send\"]=function(){return(_duckdb_web_prepared_send=Module[\"_duckdb_web_prepared_send\"]=Module[\"asm\"][\"wf\"]).apply(null,arguments)};var _duckdb_web_query_run=Module[\"_duckdb_web_query_run\"]=function(){return(_duckdb_web_query_run=Module[\"_duckdb_web_query_run\"]=Module[\"asm\"][\"xf\"]).apply(null,arguments)};var _duckdb_web_query_send=Module[\"_duckdb_web_query_send\"]=function(){return(_duckdb_web_query_send=Module[\"_duckdb_web_query_send\"]=Module[\"asm\"][\"yf\"]).apply(null,arguments)};var _duckdb_web_query_fetch_results=Module[\"_duckdb_web_query_fetch_results\"]=function(){return(_duckdb_web_query_fetch_results=Module[\"_duckdb_web_query_fetch_results\"]=Module[\"asm\"][\"zf\"]).apply(null,arguments)};var _duckdb_web_get_tablenames=Module[\"_duckdb_web_get_tablenames\"]=function(){return(_duckdb_web_get_tablenames=Module[\"_duckdb_web_get_tablenames\"]=Module[\"asm\"][\"Af\"]).apply(null,arguments)};var _duckdb_web_insert_arrow_from_ipc_stream=Module[\"_duckdb_web_insert_arrow_from_ipc_stream\"]=function(){return(_duckdb_web_insert_arrow_from_ipc_stream=Module[\"_duckdb_web_insert_arrow_from_ipc_stream\"]=Module[\"asm\"][\"Bf\"]).apply(null,arguments)};var _duckdb_web_insert_csv_from_path=Module[\"_duckdb_web_insert_csv_from_path\"]=function(){return(_duckdb_web_insert_csv_from_path=Module[\"_duckdb_web_insert_csv_from_path\"]=Module[\"asm\"][\"Cf\"]).apply(null,arguments)};var _duckdb_web_insert_json_from_path=Module[\"_duckdb_web_insert_json_from_path\"]=function(){return(_duckdb_web_insert_json_from_path=Module[\"_duckdb_web_insert_json_from_path\"]=Module[\"asm\"][\"Df\"]).apply(null,arguments)};var ___errno_location=Module[\"___errno_location\"]=function(){return(___errno_location=Module[\"___errno_location\"]=Module[\"asm\"][\"Ef\"]).apply(null,arguments)};var _htonl=Module[\"_htonl\"]=function(){return(_htonl=Module[\"_htonl\"]=Module[\"asm\"][\"Ff\"]).apply(null,arguments)};var _ntohs=Module[\"_ntohs\"]=function(){return(_ntohs=Module[\"_ntohs\"]=Module[\"asm\"][\"Gf\"]).apply(null,arguments)};var _htons=Module[\"_htons\"]=function(){return(_htons=Module[\"_htons\"]=Module[\"asm\"][\"Hf\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"If\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"Jf\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"Kf\"]).apply(null,arguments)};var _setThrew=Module[\"_setThrew\"]=function(){return(_setThrew=Module[\"_setThrew\"]=Module[\"asm\"][\"Lf\"]).apply(null,arguments)};var ___cxa_can_catch=Module[\"___cxa_can_catch\"]=function(){return(___cxa_can_catch=Module[\"___cxa_can_catch\"]=Module[\"asm\"][\"Mf\"]).apply(null,arguments)};var ___cxa_is_pointer_type=Module[\"___cxa_is_pointer_type\"]=function(){return(___cxa_is_pointer_type=Module[\"___cxa_is_pointer_type\"]=Module[\"asm\"][\"Nf\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"Of\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"Pf\"]).apply(null,arguments)};var dynCall_viiij=Module[\"dynCall_viiij\"]=function(){return(dynCall_viiij=Module[\"dynCall_viiij\"]=Module[\"asm\"][\"Qf\"]).apply(null,arguments)};var dynCall_viiijjj=Module[\"dynCall_viiijjj\"]=function(){return(dynCall_viiijjj=Module[\"dynCall_viiijjj\"]=Module[\"asm\"][\"Rf\"]).apply(null,arguments)};var dynCall_iiij=Module[\"dynCall_iiij\"]=function(){return(dynCall_iiij=Module[\"dynCall_iiij\"]=Module[\"asm\"][\"Sf\"]).apply(null,arguments)};var dynCall_vijijj=Module[\"dynCall_vijijj\"]=function(){return(dynCall_vijijj=Module[\"dynCall_vijijj\"]=Module[\"asm\"][\"Tf\"]).apply(null,arguments)};var dynCall_iji=Module[\"dynCall_iji\"]=function(){return(dynCall_iji=Module[\"dynCall_iji\"]=Module[\"asm\"][\"Uf\"]).apply(null,arguments)};var dynCall_viji=Module[\"dynCall_viji\"]=function(){return(dynCall_viji=Module[\"dynCall_viji\"]=Module[\"asm\"][\"Vf\"]).apply(null,arguments)};var dynCall_vij=Module[\"dynCall_vij\"]=function(){return(dynCall_vij=Module[\"dynCall_vij\"]=Module[\"asm\"][\"Wf\"]).apply(null,arguments)};var dynCall_viijj=Module[\"dynCall_viijj\"]=function(){return(dynCall_viijj=Module[\"dynCall_viijj\"]=Module[\"asm\"][\"Xf\"]).apply(null,arguments)};var dynCall_ji=Module[\"dynCall_ji\"]=function(){return(dynCall_ji=Module[\"dynCall_ji\"]=Module[\"asm\"][\"Yf\"]).apply(null,arguments)};var dynCall_viiijj=Module[\"dynCall_viiijj\"]=function(){return(dynCall_viiijj=Module[\"dynCall_viiijj\"]=Module[\"asm\"][\"Zf\"]).apply(null,arguments)};var dynCall_vijjj=Module[\"dynCall_vijjj\"]=function(){return(dynCall_vijjj=Module[\"dynCall_vijjj\"]=Module[\"asm\"][\"_f\"]).apply(null,arguments)};var dynCall_viiiij=Module[\"dynCall_viiiij\"]=function(){return(dynCall_viiiij=Module[\"dynCall_viiiij\"]=Module[\"asm\"][\"$f\"]).apply(null,arguments)};var dynCall_jii=Module[\"dynCall_jii\"]=function(){return(dynCall_jii=Module[\"dynCall_jii\"]=Module[\"asm\"][\"ag\"]).apply(null,arguments)};var dynCall_jiiii=Module[\"dynCall_jiiii\"]=function(){return(dynCall_jiiii=Module[\"dynCall_jiiii\"]=Module[\"asm\"][\"bg\"]).apply(null,arguments)};var dynCall_iiiiij=Module[\"dynCall_iiiiij\"]=function(){return(dynCall_iiiiij=Module[\"dynCall_iiiiij\"]=Module[\"asm\"][\"cg\"]).apply(null,arguments)};var dynCall_iiiiijj=Module[\"dynCall_iiiiijj\"]=function(){return(dynCall_iiiiijj=Module[\"dynCall_iiiiijj\"]=Module[\"asm\"][\"dg\"]).apply(null,arguments)};var dynCall_iij=Module[\"dynCall_iij\"]=function(){return(dynCall_iij=Module[\"dynCall_iij\"]=Module[\"asm\"][\"eg\"]).apply(null,arguments)};var dynCall_viijii=Module[\"dynCall_viijii\"]=function(){return(dynCall_viijii=Module[\"dynCall_viijii\"]=Module[\"asm\"][\"fg\"]).apply(null,arguments)};var dynCall_viiji=Module[\"dynCall_viiji\"]=function(){return(dynCall_viiji=Module[\"dynCall_viiji\"]=Module[\"asm\"][\"gg\"]).apply(null,arguments)};var dynCall_vijj=Module[\"dynCall_vijj\"]=function(){return(dynCall_vijj=Module[\"dynCall_vijj\"]=Module[\"asm\"][\"hg\"]).apply(null,arguments)};var dynCall_viij=Module[\"dynCall_viij\"]=function(){return(dynCall_viij=Module[\"dynCall_viij\"]=Module[\"asm\"][\"ig\"]).apply(null,arguments)};var dynCall_vj=Module[\"dynCall_vj\"]=function(){return(dynCall_vj=Module[\"dynCall_vj\"]=Module[\"asm\"][\"jg\"]).apply(null,arguments)};var dynCall_iiji=Module[\"dynCall_iiji\"]=function(){return(dynCall_iiji=Module[\"dynCall_iiji\"]=Module[\"asm\"][\"kg\"]).apply(null,arguments)};var dynCall_iiiij=Module[\"dynCall_iiiij\"]=function(){return(dynCall_iiiij=Module[\"dynCall_iiiij\"]=Module[\"asm\"][\"lg\"]).apply(null,arguments)};var dynCall_iiiiiji=Module[\"dynCall_iiiiiji\"]=function(){return(dynCall_iiiiiji=Module[\"dynCall_iiiiiji\"]=Module[\"asm\"][\"mg\"]).apply(null,arguments)};var dynCall_iiiji=Module[\"dynCall_iiiji\"]=function(){return(dynCall_iiiji=Module[\"dynCall_iiiji\"]=Module[\"asm\"][\"ng\"]).apply(null,arguments)};var dynCall_iiiiji=Module[\"dynCall_iiiiji\"]=function(){return(dynCall_iiiiji=Module[\"dynCall_iiiiji\"]=Module[\"asm\"][\"og\"]).apply(null,arguments)};var dynCall_jiii=Module[\"dynCall_jiii\"]=function(){return(dynCall_jiii=Module[\"dynCall_jiii\"]=Module[\"asm\"][\"pg\"]).apply(null,arguments)};var dynCall_jij=Module[\"dynCall_jij\"]=function(){return(dynCall_jij=Module[\"dynCall_jij\"]=Module[\"asm\"][\"qg\"]).apply(null,arguments)};var dynCall_j=Module[\"dynCall_j\"]=function(){return(dynCall_j=Module[\"dynCall_j\"]=Module[\"asm\"][\"rg\"]).apply(null,arguments)};var dynCall_viijij=Module[\"dynCall_viijij\"]=function(){return(dynCall_viijij=Module[\"dynCall_viijij\"]=Module[\"asm\"][\"sg\"]).apply(null,arguments)};var dynCall_iijjijj=Module[\"dynCall_iijjijj\"]=function(){return(dynCall_iijjijj=Module[\"dynCall_iijjijj\"]=Module[\"asm\"][\"tg\"]).apply(null,arguments)};var dynCall_viiiijiiiii=Module[\"dynCall_viiiijiiiii\"]=function(){return(dynCall_viiiijiiiii=Module[\"dynCall_viiiijiiiii\"]=Module[\"asm\"][\"ug\"]).apply(null,arguments)};var dynCall_viiiijiiii=Module[\"dynCall_viiiijiiii\"]=function(){return(dynCall_viiiijiiii=Module[\"dynCall_viiiijiiii\"]=Module[\"asm\"][\"vg\"]).apply(null,arguments)};var dynCall_viiijii=Module[\"dynCall_viiijii\"]=function(){return(dynCall_viiijii=Module[\"dynCall_viiijii\"]=Module[\"asm\"][\"wg\"]).apply(null,arguments)};var dynCall_viiiiiij=Module[\"dynCall_viiiiiij\"]=function(){return(dynCall_viiiiiij=Module[\"dynCall_viiiiiij\"]=Module[\"asm\"][\"xg\"]).apply(null,arguments)};var dynCall_iiijiii=Module[\"dynCall_iiijiii\"]=function(){return(dynCall_iiijiii=Module[\"dynCall_iiijiii\"]=Module[\"asm\"][\"yg\"]).apply(null,arguments)};var dynCall_iiiiijii=Module[\"dynCall_iiiiijii\"]=function(){return(dynCall_iiiiijii=Module[\"dynCall_iiiiijii\"]=Module[\"asm\"][\"zg\"]).apply(null,arguments)};var dynCall_viijiii=Module[\"dynCall_viijiii\"]=function(){return(dynCall_viijiii=Module[\"dynCall_viijiii\"]=Module[\"asm\"][\"Ag\"]).apply(null,arguments)};var dynCall_iiijiij=Module[\"dynCall_iiijiij\"]=function(){return(dynCall_iiijiij=Module[\"dynCall_iiijiij\"]=Module[\"asm\"][\"Bg\"]).apply(null,arguments)};var dynCall_vijiii=Module[\"dynCall_vijiii\"]=function(){return(dynCall_vijiii=Module[\"dynCall_vijiii\"]=Module[\"asm\"][\"Cg\"]).apply(null,arguments)};var dynCall_iijjii=Module[\"dynCall_iijjii\"]=function(){return(dynCall_iijjii=Module[\"dynCall_iijjii\"]=Module[\"asm\"][\"Dg\"]).apply(null,arguments)};var dynCall_iijjiii=Module[\"dynCall_iijjiii\"]=function(){return(dynCall_iijjiii=Module[\"dynCall_iijjiii\"]=Module[\"asm\"][\"Eg\"]).apply(null,arguments)};var dynCall_iijjiiii=Module[\"dynCall_iijjiiii\"]=function(){return(dynCall_iijjiiii=Module[\"dynCall_iijjiiii\"]=Module[\"asm\"][\"Fg\"]).apply(null,arguments)};var dynCall_iijji=Module[\"dynCall_iijji\"]=function(){return(dynCall_iijji=Module[\"dynCall_iijji\"]=Module[\"asm\"][\"Gg\"]).apply(null,arguments)};var dynCall_vijiiii=Module[\"dynCall_vijiiii\"]=function(){return(dynCall_vijiiii=Module[\"dynCall_vijiiii\"]=Module[\"asm\"][\"Hg\"]).apply(null,arguments)};var dynCall_iijiiii=Module[\"dynCall_iijiiii\"]=function(){return(dynCall_iijiiii=Module[\"dynCall_iijiiii\"]=Module[\"asm\"][\"Ig\"]).apply(null,arguments)};var dynCall_vijij=Module[\"dynCall_vijij\"]=function(){return(dynCall_vijij=Module[\"dynCall_vijij\"]=Module[\"asm\"][\"Jg\"]).apply(null,arguments)};var dynCall_iiijjjj=Module[\"dynCall_iiijjjj\"]=function(){return(dynCall_iiijjjj=Module[\"dynCall_iiijjjj\"]=Module[\"asm\"][\"Kg\"]).apply(null,arguments)};var dynCall_iiijiiii=Module[\"dynCall_iiijiiii\"]=function(){return(dynCall_iiijiiii=Module[\"dynCall_iiijiiii\"]=Module[\"asm\"][\"Lg\"]).apply(null,arguments)};var dynCall_jiiij=Module[\"dynCall_jiiij\"]=function(){return(dynCall_jiiij=Module[\"dynCall_jiiij\"]=Module[\"asm\"][\"Mg\"]).apply(null,arguments)};var dynCall_jiiiii=Module[\"dynCall_jiiiii\"]=function(){return(dynCall_jiiiii=Module[\"dynCall_jiiiii\"]=Module[\"asm\"][\"Ng\"]).apply(null,arguments)};var dynCall_iiiiijjiijj=Module[\"dynCall_iiiiijjiijj\"]=function(){return(dynCall_iiiiijjiijj=Module[\"dynCall_iiiiijjiijj\"]=Module[\"asm\"][\"Og\"]).apply(null,arguments)};var dynCall_viijiiji=Module[\"dynCall_viijiiji\"]=function(){return(dynCall_viijiiji=Module[\"dynCall_viijiiji\"]=Module[\"asm\"][\"Pg\"]).apply(null,arguments)};var dynCall_vjjijij=Module[\"dynCall_vjjijij\"]=function(){return(dynCall_vjjijij=Module[\"dynCall_vjjijij\"]=Module[\"asm\"][\"Qg\"]).apply(null,arguments)};var dynCall_vijjji=Module[\"dynCall_vijjji\"]=function(){return(dynCall_vijjji=Module[\"dynCall_vijjji\"]=Module[\"asm\"][\"Rg\"]).apply(null,arguments)};var dynCall_vjjii=Module[\"dynCall_vjjii\"]=function(){return(dynCall_vjjii=Module[\"dynCall_vjjii\"]=Module[\"asm\"][\"Sg\"]).apply(null,arguments)};var dynCall_viiiiiji=Module[\"dynCall_viiiiiji\"]=function(){return(dynCall_viiiiiji=Module[\"dynCall_viiiiiji\"]=Module[\"asm\"][\"Tg\"]).apply(null,arguments)};var dynCall_jiiiji=Module[\"dynCall_jiiiji\"]=function(){return(dynCall_jiiiji=Module[\"dynCall_jiiiji\"]=Module[\"asm\"][\"Ug\"]).apply(null,arguments)};var dynCall_iijj=Module[\"dynCall_iijj\"]=function(){return(dynCall_iijj=Module[\"dynCall_iijj\"]=Module[\"asm\"][\"Vg\"]).apply(null,arguments)};var dynCall_iiijjii=Module[\"dynCall_iiijjii\"]=function(){return(dynCall_iiijjii=Module[\"dynCall_iiijjii\"]=Module[\"asm\"][\"Wg\"]).apply(null,arguments)};var dynCall_vijii=Module[\"dynCall_vijii\"]=function(){return(dynCall_vijii=Module[\"dynCall_vijii\"]=Module[\"asm\"][\"Xg\"]).apply(null,arguments)};var dynCall_viijjii=Module[\"dynCall_viijjii\"]=function(){return(dynCall_viijjii=Module[\"dynCall_viijjii\"]=Module[\"asm\"][\"Yg\"]).apply(null,arguments)};var dynCall_viiiijj=Module[\"dynCall_viiiijj\"]=function(){return(dynCall_viiiijj=Module[\"dynCall_viiiijj\"]=Module[\"asm\"][\"Zg\"]).apply(null,arguments)};var dynCall_jijjij=Module[\"dynCall_jijjij\"]=function(){return(dynCall_jijjij=Module[\"dynCall_jijjij\"]=Module[\"asm\"][\"_g\"]).apply(null,arguments)};var dynCall_jiijii=Module[\"dynCall_jiijii\"]=function(){return(dynCall_jiijii=Module[\"dynCall_jiijii\"]=Module[\"asm\"][\"$g\"]).apply(null,arguments)};var dynCall_jijiii=Module[\"dynCall_jijiii\"]=function(){return(dynCall_jijiii=Module[\"dynCall_jijiii\"]=Module[\"asm\"][\"ah\"]).apply(null,arguments)};var dynCall_viijiiiii=Module[\"dynCall_viijiiiii\"]=function(){return(dynCall_viijiiiii=Module[\"dynCall_viijiiiii\"]=Module[\"asm\"][\"bh\"]).apply(null,arguments)};var dynCall_viijiiij=Module[\"dynCall_viijiiij\"]=function(){return(dynCall_viijiiij=Module[\"dynCall_viijiiij\"]=Module[\"asm\"][\"ch\"]).apply(null,arguments)};var dynCall_vijiiiji=Module[\"dynCall_vijiiiji\"]=function(){return(dynCall_vijiiiji=Module[\"dynCall_vijiiiji\"]=Module[\"asm\"][\"dh\"]).apply(null,arguments)};var dynCall_jiiji=Module[\"dynCall_jiiji\"]=function(){return(dynCall_jiiji=Module[\"dynCall_jiiji\"]=Module[\"asm\"][\"eh\"]).apply(null,arguments)};var dynCall_viiijij=Module[\"dynCall_viiijij\"]=function(){return(dynCall_viiijij=Module[\"dynCall_viiijij\"]=Module[\"asm\"][\"fh\"]).apply(null,arguments)};var dynCall_viijiij=Module[\"dynCall_viijiij\"]=function(){return(dynCall_viijiij=Module[\"dynCall_viijiij\"]=Module[\"asm\"][\"gh\"]).apply(null,arguments)};var dynCall_viiiiijj=Module[\"dynCall_viiiiijj\"]=function(){return(dynCall_viiiiijj=Module[\"dynCall_viiiiijj\"]=Module[\"asm\"][\"hh\"]).apply(null,arguments)};var dynCall_viiijji=Module[\"dynCall_viiijji\"]=function(){return(dynCall_viiijji=Module[\"dynCall_viiijji\"]=Module[\"asm\"][\"ih\"]).apply(null,arguments)};var dynCall_viiiji=Module[\"dynCall_viiiji\"]=function(){return(dynCall_viiiji=Module[\"dynCall_viiiji\"]=Module[\"asm\"][\"jh\"]).apply(null,arguments)};var dynCall_iiiijiii=Module[\"dynCall_iiiijiii\"]=function(){return(dynCall_iiiijiii=Module[\"dynCall_iiiijiii\"]=Module[\"asm\"][\"kh\"]).apply(null,arguments)};var dynCall_iiijij=Module[\"dynCall_iiijij\"]=function(){return(dynCall_iiijij=Module[\"dynCall_iiijij\"]=Module[\"asm\"][\"lh\"]).apply(null,arguments)};var dynCall_iiijji=Module[\"dynCall_iiijji\"]=function(){return(dynCall_iiijji=Module[\"dynCall_iiijji\"]=Module[\"asm\"][\"mh\"]).apply(null,arguments)};var dynCall_viijji=Module[\"dynCall_viijji\"]=function(){return(dynCall_viijji=Module[\"dynCall_viijji\"]=Module[\"asm\"][\"nh\"]).apply(null,arguments)};var dynCall_iiiijj=Module[\"dynCall_iiiijj\"]=function(){return(dynCall_iiiijj=Module[\"dynCall_iiiijj\"]=Module[\"asm\"][\"oh\"]).apply(null,arguments)};var dynCall_viiijiii=Module[\"dynCall_viiijiii\"]=function(){return(dynCall_viiijiii=Module[\"dynCall_viiijiii\"]=Module[\"asm\"][\"ph\"]).apply(null,arguments)};var dynCall_vijji=Module[\"dynCall_vijji\"]=function(){return(dynCall_vijji=Module[\"dynCall_vijji\"]=Module[\"asm\"][\"qh\"]).apply(null,arguments)};var dynCall_jiiiij=Module[\"dynCall_jiiiij\"]=function(){return(dynCall_jiiiij=Module[\"dynCall_jiiiij\"]=Module[\"asm\"][\"rh\"]).apply(null,arguments)};var dynCall_jiijiiiii=Module[\"dynCall_jiijiiiii\"]=function(){return(dynCall_jiijiiiii=Module[\"dynCall_jiijiiiii\"]=Module[\"asm\"][\"sh\"]).apply(null,arguments)};var dynCall_jiijiijiii=Module[\"dynCall_jiijiijiii\"]=function(){return(dynCall_jiijiijiii=Module[\"dynCall_jiijiijiii\"]=Module[\"asm\"][\"th\"]).apply(null,arguments)};var dynCall_jiijjiii=Module[\"dynCall_jiijjiii\"]=function(){return(dynCall_jiijjiii=Module[\"dynCall_jiijjiii\"]=Module[\"asm\"][\"uh\"]).apply(null,arguments)};var dynCall_jiiijii=Module[\"dynCall_jiiijii\"]=function(){return(dynCall_jiiijii=Module[\"dynCall_jiiijii\"]=Module[\"asm\"][\"vh\"]).apply(null,arguments)};var dynCall_jiijijii=Module[\"dynCall_jiijijii\"]=function(){return(dynCall_jiijijii=Module[\"dynCall_jiijijii\"]=Module[\"asm\"][\"wh\"]).apply(null,arguments)};var dynCall_viiijjij=Module[\"dynCall_viiijjij\"]=function(){return(dynCall_viiijjij=Module[\"dynCall_viiijjij\"]=Module[\"asm\"][\"xh\"]).apply(null,arguments)};var dynCall_vijijjiij=Module[\"dynCall_vijijjiij\"]=function(){return(dynCall_vijijjiij=Module[\"dynCall_vijijjiij\"]=Module[\"asm\"][\"yh\"]).apply(null,arguments)};var dynCall_viijjij=Module[\"dynCall_viijjij\"]=function(){return(dynCall_viijjij=Module[\"dynCall_viijjij\"]=Module[\"asm\"][\"zh\"]).apply(null,arguments)};var dynCall_viiijjiij=Module[\"dynCall_viiijjiij\"]=function(){return(dynCall_viiijjiij=Module[\"dynCall_viiijjiij\"]=Module[\"asm\"][\"Ah\"]).apply(null,arguments)};var dynCall_viiiijjjj=Module[\"dynCall_viiiijjjj\"]=function(){return(dynCall_viiiijjjj=Module[\"dynCall_viiiijjjj\"]=Module[\"asm\"][\"Bh\"]).apply(null,arguments)};var dynCall_viijiiiiij=Module[\"dynCall_viijiiiiij\"]=function(){return(dynCall_viijiiiiij=Module[\"dynCall_viijiiiiij\"]=Module[\"asm\"][\"Ch\"]).apply(null,arguments)};var dynCall_viijiiiijj=Module[\"dynCall_viijiiiijj\"]=function(){return(dynCall_viijiiiijj=Module[\"dynCall_viijiiiijj\"]=Module[\"asm\"][\"Dh\"]).apply(null,arguments)};var dynCall_viiijiiiijjj=Module[\"dynCall_viiijiiiijjj\"]=function(){return(dynCall_viiijiiiijjj=Module[\"dynCall_viiijiiiijjj\"]=Module[\"asm\"][\"Eh\"]).apply(null,arguments)};var dynCall_viijijiiiijjj=Module[\"dynCall_viijijiiiijjj\"]=function(){return(dynCall_viijijiiiijjj=Module[\"dynCall_viijijiiiijjj\"]=Module[\"asm\"][\"Fh\"]).apply(null,arguments)};var dynCall_viiiiijiiii=Module[\"dynCall_viiiiijiiii\"]=function(){return(dynCall_viiiiijiiii=Module[\"dynCall_viiiiijiiii\"]=Module[\"asm\"][\"Gh\"]).apply(null,arguments)};var dynCall_iiijii=Module[\"dynCall_iiijii\"]=function(){return(dynCall_iiijii=Module[\"dynCall_iiijii\"]=Module[\"asm\"][\"Hh\"]).apply(null,arguments)};var dynCall_fiijii=Module[\"dynCall_fiijii\"]=function(){return(dynCall_fiijii=Module[\"dynCall_fiijii\"]=Module[\"asm\"][\"Ih\"]).apply(null,arguments)};var dynCall_diijii=Module[\"dynCall_diijii\"]=function(){return(dynCall_diijii=Module[\"dynCall_diijii\"]=Module[\"asm\"][\"Jh\"]).apply(null,arguments)};var dynCall_iiiiiiijii=Module[\"dynCall_iiiiiiijii\"]=function(){return(dynCall_iiiiiiijii=Module[\"dynCall_iiiiiiijii\"]=Module[\"asm\"][\"Kh\"]).apply(null,arguments)};var dynCall_viiiiji=Module[\"dynCall_viiiiji\"]=function(){return(dynCall_viiiiji=Module[\"dynCall_viiiiji\"]=Module[\"asm\"][\"Lh\"]).apply(null,arguments)};var dynCall_jiiiijii=Module[\"dynCall_jiiiijii\"]=function(){return(dynCall_jiiiijii=Module[\"dynCall_jiiiijii\"]=Module[\"asm\"][\"Mh\"]).apply(null,arguments)};var dynCall_jiiiijiiiiiiii=Module[\"dynCall_jiiiijiiiiiiii\"]=function(){return(dynCall_jiiiijiiiiiiii=Module[\"dynCall_jiiiijiiiiiiii\"]=Module[\"asm\"][\"Nh\"]).apply(null,arguments)};var dynCall_jiiijiii=Module[\"dynCall_jiiijiii\"]=function(){return(dynCall_jiiijiii=Module[\"dynCall_jiiijiii\"]=Module[\"asm\"][\"Oh\"]).apply(null,arguments)};var dynCall_jiiiiijiiii=Module[\"dynCall_jiiiiijiiii\"]=function(){return(dynCall_jiiiiijiiii=Module[\"dynCall_jiiiiijiiii\"]=Module[\"asm\"][\"Ph\"]).apply(null,arguments)};var dynCall_jj=Module[\"dynCall_jj\"]=function(){return(dynCall_jj=Module[\"dynCall_jj\"]=Module[\"asm\"][\"Qh\"]).apply(null,arguments)};var dynCall_jd=Module[\"dynCall_jd\"]=function(){return(dynCall_jd=Module[\"dynCall_jd\"]=Module[\"asm\"][\"Rh\"]).apply(null,arguments)};var dynCall_jf=Module[\"dynCall_jf\"]=function(){return(dynCall_jf=Module[\"dynCall_jf\"]=Module[\"asm\"][\"Sh\"]).apply(null,arguments)};var dynCall_iijjj=Module[\"dynCall_iijjj\"]=function(){return(dynCall_iijjj=Module[\"dynCall_iijjj\"]=Module[\"asm\"][\"Th\"]).apply(null,arguments)};var dynCall_iiijj=Module[\"dynCall_iiijj\"]=function(){return(dynCall_iiijj=Module[\"dynCall_iiijj\"]=Module[\"asm\"][\"Uh\"]).apply(null,arguments)};var dynCall_vijijiiiijjj=Module[\"dynCall_vijijiiiijjj\"]=function(){return(dynCall_vijijiiiijjj=Module[\"dynCall_vijijiiiijjj\"]=Module[\"asm\"][\"Vh\"]).apply(null,arguments)};var dynCall_iiiiiiji=Module[\"dynCall_iiiiiiji\"]=function(){return(dynCall_iiiiiiji=Module[\"dynCall_iiiiiiji\"]=Module[\"asm\"][\"Wh\"]).apply(null,arguments)};var dynCall_iiiiiiiiji=Module[\"dynCall_iiiiiiiiji\"]=function(){return(dynCall_iiiiiiiiji=Module[\"dynCall_iiiiiiiiji\"]=Module[\"asm\"][\"Xh\"]).apply(null,arguments)};var dynCall_jijijjij=Module[\"dynCall_jijijjij\"]=function(){return(dynCall_jijijjij=Module[\"dynCall_jijijjij\"]=Module[\"asm\"][\"Yh\"]).apply(null,arguments)};var dynCall_viijjj=Module[\"dynCall_viijjj\"]=function(){return(dynCall_viijjj=Module[\"dynCall_viijjj\"]=Module[\"asm\"][\"Zh\"]).apply(null,arguments)};var dynCall_vijjij=Module[\"dynCall_vijjij\"]=function(){return(dynCall_vijjij=Module[\"dynCall_vijjij\"]=Module[\"asm\"][\"_h\"]).apply(null,arguments)};var dynCall_viijjji=Module[\"dynCall_viijjji\"]=function(){return(dynCall_viijjji=Module[\"dynCall_viijjji\"]=Module[\"asm\"][\"$h\"]).apply(null,arguments)};var dynCall_iiiiiij=Module[\"dynCall_iiiiiij\"]=function(){return(dynCall_iiiiiij=Module[\"dynCall_iiiiiij\"]=Module[\"asm\"][\"ai\"]).apply(null,arguments)};var dynCall_iiiiiiiiiiji=Module[\"dynCall_iiiiiiiiiiji\"]=function(){return(dynCall_iiiiiiiiiiji=Module[\"dynCall_iiiiiiiiiiji\"]=Module[\"asm\"][\"bi\"]).apply(null,arguments)};var dynCall_jiiiiiii=Module[\"dynCall_jiiiiiii\"]=function(){return(dynCall_jiiiiiii=Module[\"dynCall_jiiiiiii\"]=Module[\"asm\"][\"ci\"]).apply(null,arguments)};var dynCall_jijj=Module[\"dynCall_jijj\"]=function(){return(dynCall_jijj=Module[\"dynCall_jijj\"]=Module[\"asm\"][\"di\"]).apply(null,arguments)};var dynCall_viiiijiiiiiiii=Module[\"dynCall_viiiijiiiiiiii\"]=function(){return(dynCall_viiiijiiiiiiii=Module[\"dynCall_viiiijiiiiiiii\"]=Module[\"asm\"][\"ei\"]).apply(null,arguments)};var dynCall_ij=Module[\"dynCall_ij\"]=function(){return(dynCall_ij=Module[\"dynCall_ij\"]=Module[\"asm\"][\"fi\"]).apply(null,arguments)};var dynCall_jjj=Module[\"dynCall_jjj\"]=function(){return(dynCall_jjj=Module[\"dynCall_jjj\"]=Module[\"asm\"][\"gi\"]).apply(null,arguments)};var dynCall_vjii=Module[\"dynCall_vjii\"]=function(){return(dynCall_vjii=Module[\"dynCall_vjii\"]=Module[\"asm\"][\"hi\"]).apply(null,arguments)};var dynCall_jjjjjjd=Module[\"dynCall_jjjjjjd\"]=function(){return(dynCall_jjjjjjd=Module[\"dynCall_jjjjjjd\"]=Module[\"asm\"][\"ii\"]).apply(null,arguments)};var dynCall_vjiiii=Module[\"dynCall_vjiiii\"]=function(){return(dynCall_vjiiii=Module[\"dynCall_vjiiii\"]=Module[\"asm\"][\"ji\"]).apply(null,arguments)};var dynCall_viiiiijiii=Module[\"dynCall_viiiiijiii\"]=function(){return(dynCall_viiiiijiii=Module[\"dynCall_viiiiijiii\"]=Module[\"asm\"][\"ki\"]).apply(null,arguments)};var dynCall_jiij=Module[\"dynCall_jiij\"]=function(){return(dynCall_jiij=Module[\"dynCall_jiij\"]=Module[\"asm\"][\"li\"]).apply(null,arguments)};var dynCall_iiiijjii=Module[\"dynCall_iiiijjii\"]=function(){return(dynCall_iiiijjii=Module[\"dynCall_iiiijjii\"]=Module[\"asm\"][\"mi\"]).apply(null,arguments)};var dynCall_iiiiijji=Module[\"dynCall_iiiiijji\"]=function(){return(dynCall_iiiiijji=Module[\"dynCall_iiiiijji\"]=Module[\"asm\"][\"ni\"]).apply(null,arguments)};var dynCall_viiijjii=Module[\"dynCall_viiijjii\"]=function(){return(dynCall_viiijjii=Module[\"dynCall_viiijjii\"]=Module[\"asm\"][\"oi\"]).apply(null,arguments)};var dynCall_viiiijji=Module[\"dynCall_viiiijji\"]=function(){return(dynCall_viiiijji=Module[\"dynCall_viiiijji\"]=Module[\"asm\"][\"pi\"]).apply(null,arguments)};var dynCall_viiiijjii=Module[\"dynCall_viiiijjii\"]=function(){return(dynCall_viiiijjii=Module[\"dynCall_viiiijjii\"]=Module[\"asm\"][\"qi\"]).apply(null,arguments)};var dynCall_viiiiijji=Module[\"dynCall_viiiiijji\"]=function(){return(dynCall_viiiiijji=Module[\"dynCall_viiiiijji\"]=Module[\"asm\"][\"ri\"]).apply(null,arguments)};var dynCall_iiiiiijji=Module[\"dynCall_iiiiiijji\"]=function(){return(dynCall_iiiiiijji=Module[\"dynCall_iiiiiijji\"]=Module[\"asm\"][\"si\"]).apply(null,arguments)};var dynCall_iiiiijjj=Module[\"dynCall_iiiiijjj\"]=function(){return(dynCall_iiiiijjj=Module[\"dynCall_iiiiijjj\"]=Module[\"asm\"][\"ti\"]).apply(null,arguments)};var dynCall_jijiiii=Module[\"dynCall_jijiiii\"]=function(){return(dynCall_jijiiii=Module[\"dynCall_jijiiii\"]=Module[\"asm\"][\"ui\"]).apply(null,arguments)};var dynCall_iiijjjii=Module[\"dynCall_iiijjjii\"]=function(){return(dynCall_iiijjjii=Module[\"dynCall_iiijjjii\"]=Module[\"asm\"][\"vi\"]).apply(null,arguments)};var dynCall_iiiiijjji=Module[\"dynCall_iiiiijjji\"]=function(){return(dynCall_iiiiijjji=Module[\"dynCall_iiiiijjji\"]=Module[\"asm\"][\"wi\"]).apply(null,arguments)};var dynCall_iiiijjj=Module[\"dynCall_iiiijjj\"]=function(){return(dynCall_iiiijjj=Module[\"dynCall_iiiijjj\"]=Module[\"asm\"][\"xi\"]).apply(null,arguments)};var dynCall_iidj=Module[\"dynCall_iidj\"]=function(){return(dynCall_iidj=Module[\"dynCall_iidj\"]=Module[\"asm\"][\"yi\"]).apply(null,arguments)};var dynCall_ijji=Module[\"dynCall_ijji\"]=function(){return(dynCall_ijji=Module[\"dynCall_ijji\"]=Module[\"asm\"][\"zi\"]).apply(null,arguments)};var dynCall_iiiiiiiij=Module[\"dynCall_iiiiiiiij\"]=function(){return(dynCall_iiiiiiiij=Module[\"dynCall_iiiiiiiij\"]=Module[\"asm\"][\"Ai\"]).apply(null,arguments)};var dynCall_iiiiiiij=Module[\"dynCall_iiiiiiij\"]=function(){return(dynCall_iiiiiiij=Module[\"dynCall_iiiiiiij\"]=Module[\"asm\"][\"Bi\"]).apply(null,arguments)};var dynCall_iiiiiiiiiiiij=Module[\"dynCall_iiiiiiiiiiiij\"]=function(){return(dynCall_iiiiiiiiiiiij=Module[\"dynCall_iiiiiiiiiiiij\"]=Module[\"asm\"][\"Ci\"]).apply(null,arguments)};var dynCall_iiiiiiiji=Module[\"dynCall_iiiiiiiji\"]=function(){return(dynCall_iiiiiiiji=Module[\"dynCall_iiiiiiiji\"]=Module[\"asm\"][\"Di\"]).apply(null,arguments)};var dynCall_iiiidjj=Module[\"dynCall_iiiidjj\"]=function(){return(dynCall_iiiidjj=Module[\"dynCall_iiiidjj\"]=Module[\"asm\"][\"Ei\"]).apply(null,arguments)};var dynCall_jiiiiiijii=Module[\"dynCall_jiiiiiijii\"]=function(){return(dynCall_jiiiiiijii=Module[\"dynCall_jiiiiiijii\"]=Module[\"asm\"][\"Fi\"]).apply(null,arguments)};var dynCall_iiiijji=Module[\"dynCall_iiiijji\"]=function(){return(dynCall_iiiijji=Module[\"dynCall_iiiijji\"]=Module[\"asm\"][\"Gi\"]).apply(null,arguments)};var dynCall_jiiiiii=Module[\"dynCall_jiiiiii\"]=function(){return(dynCall_jiiiiii=Module[\"dynCall_jiiiiii\"]=Module[\"asm\"][\"Hi\"]).apply(null,arguments)};var dynCall_iijiji=Module[\"dynCall_iijiji\"]=function(){return(dynCall_iijiji=Module[\"dynCall_iijiji\"]=Module[\"asm\"][\"Ii\"]).apply(null,arguments)};var dynCall_vjiiiji=Module[\"dynCall_vjiiiji\"]=function(){return(dynCall_vjiiiji=Module[\"dynCall_vjiiiji\"]=Module[\"asm\"][\"Ji\"]).apply(null,arguments)};var dynCall_jjjii=Module[\"dynCall_jjjii\"]=function(){return(dynCall_jjjii=Module[\"dynCall_jjjii\"]=Module[\"asm\"][\"Ki\"]).apply(null,arguments)};var dynCall_jji=Module[\"dynCall_jji\"]=function(){return(dynCall_jji=Module[\"dynCall_jji\"]=Module[\"asm\"][\"Li\"]).apply(null,arguments)};var dynCall_viiijijiji=Module[\"dynCall_viiijijiji\"]=function(){return(dynCall_viiijijiji=Module[\"dynCall_viiijijiji\"]=Module[\"asm\"][\"Mi\"]).apply(null,arguments)};var dynCall_jiiijj=Module[\"dynCall_jiiijj\"]=function(){return(dynCall_jiiijj=Module[\"dynCall_jiiijj\"]=Module[\"asm\"][\"Ni\"]).apply(null,arguments)};var dynCall_iiiijii=Module[\"dynCall_iiiijii\"]=function(){return(dynCall_iiiijii=Module[\"dynCall_iiiijii\"]=Module[\"asm\"][\"Oi\"]).apply(null,arguments)};var dynCall_viiiijii=Module[\"dynCall_viiiijii\"]=function(){return(dynCall_viiiijii=Module[\"dynCall_viiiijii\"]=Module[\"asm\"][\"Pi\"]).apply(null,arguments)};var dynCall_iijiii=Module[\"dynCall_iijiii\"]=function(){return(dynCall_iijiii=Module[\"dynCall_iijiii\"]=Module[\"asm\"][\"Qi\"]).apply(null,arguments)};var dynCall_jiiiiji=Module[\"dynCall_jiiiiji\"]=function(){return(dynCall_jiiiiji=Module[\"dynCall_jiiiiji\"]=Module[\"asm\"][\"Ri\"]).apply(null,arguments)};var dynCall_vijiijj=Module[\"dynCall_vijiijj\"]=function(){return(dynCall_vijiijj=Module[\"dynCall_vijiijj\"]=Module[\"asm\"][\"Si\"]).apply(null,arguments)};var dynCall_vifiijj=Module[\"dynCall_vifiijj\"]=function(){return(dynCall_vifiijj=Module[\"dynCall_vifiijj\"]=Module[\"asm\"][\"Ti\"]).apply(null,arguments)};var dynCall_vidiijj=Module[\"dynCall_vidiijj\"]=function(){return(dynCall_vidiijj=Module[\"dynCall_vidiijj\"]=Module[\"asm\"][\"Ui\"]).apply(null,arguments)};var dynCall_viiiiij=Module[\"dynCall_viiiiij\"]=function(){return(dynCall_viiiiij=Module[\"dynCall_viiiiij\"]=Module[\"asm\"][\"Vi\"]).apply(null,arguments)};var dynCall_ijj=Module[\"dynCall_ijj\"]=function(){return(dynCall_ijj=Module[\"dynCall_ijj\"]=Module[\"asm\"][\"Wi\"]).apply(null,arguments)};var dynCall_ijjiii=Module[\"dynCall_ijjiii\"]=function(){return(dynCall_ijjiii=Module[\"dynCall_ijjiii\"]=Module[\"asm\"][\"Xi\"]).apply(null,arguments)};var dynCall_vijijjji=Module[\"dynCall_vijijjji\"]=function(){return(dynCall_vijijjji=Module[\"dynCall_vijijjji\"]=Module[\"asm\"][\"Yi\"]).apply(null,arguments)};var dynCall_viijiijj=Module[\"dynCall_viijiijj\"]=function(){return(dynCall_viijiijj=Module[\"dynCall_viijiijj\"]=Module[\"asm\"][\"Zi\"]).apply(null,arguments)};var dynCall_viijijj=Module[\"dynCall_viijijj\"]=function(){return(dynCall_viijijj=Module[\"dynCall_viijijj\"]=Module[\"asm\"][\"_i\"]).apply(null,arguments)};var dynCall_viiiiijjji=Module[\"dynCall_viiiiijjji\"]=function(){return(dynCall_viiiiijjji=Module[\"dynCall_viiiiijjji\"]=Module[\"asm\"][\"$i\"]).apply(null,arguments)};var dynCall_iiijiijj=Module[\"dynCall_iiijiijj\"]=function(){return(dynCall_iiijiijj=Module[\"dynCall_iiijiijj\"]=Module[\"asm\"][\"aj\"]).apply(null,arguments)};var dynCall_viiijijjj=Module[\"dynCall_viiijijjj\"]=function(){return(dynCall_viiijijjj=Module[\"dynCall_viiijijjj\"]=Module[\"asm\"][\"bj\"]).apply(null,arguments)};var dynCall_iijiijj=Module[\"dynCall_iijiijj\"]=function(){return(dynCall_iijiijj=Module[\"dynCall_iijiijj\"]=Module[\"asm\"][\"cj\"]).apply(null,arguments)};var dynCall_viiijjjji=Module[\"dynCall_viiijjjji\"]=function(){return(dynCall_viiijjjji=Module[\"dynCall_viiijjjji\"]=Module[\"asm\"][\"dj\"]).apply(null,arguments)};var dynCall_viiiijiii=Module[\"dynCall_viiiijiii\"]=function(){return(dynCall_viiiijiii=Module[\"dynCall_viiiijiii\"]=Module[\"asm\"][\"ej\"]).apply(null,arguments)};var dynCall_viijiiii=Module[\"dynCall_viijiiii\"]=function(){return(dynCall_viijiiii=Module[\"dynCall_viijiiii\"]=Module[\"asm\"][\"fj\"]).apply(null,arguments)};var dynCall_iijii=Module[\"dynCall_iijii\"]=function(){return(dynCall_iijii=Module[\"dynCall_iijii\"]=Module[\"asm\"][\"gj\"]).apply(null,arguments)};var dynCall_vijjiiii=Module[\"dynCall_vijjiiii\"]=function(){return(dynCall_vijjiiii=Module[\"dynCall_vijjiiii\"]=Module[\"asm\"][\"hj\"]).apply(null,arguments)};var dynCall_vijijjiiiii=Module[\"dynCall_vijijjiiiii\"]=function(){return(dynCall_vijijjiiiii=Module[\"dynCall_vijijjiiiii\"]=Module[\"asm\"][\"ij\"]).apply(null,arguments)};var dynCall_vijjiiiii=Module[\"dynCall_vijjiiiii\"]=function(){return(dynCall_vijjiiiii=Module[\"dynCall_vijjiiiii\"]=Module[\"asm\"][\"jj\"]).apply(null,arguments)};var dynCall_iiijjji=Module[\"dynCall_iiijjji\"]=function(){return(dynCall_iiijjji=Module[\"dynCall_iiijjji\"]=Module[\"asm\"][\"kj\"]).apply(null,arguments)};var dynCall_viijiji=Module[\"dynCall_viijiji\"]=function(){return(dynCall_viijiji=Module[\"dynCall_viijiji\"]=Module[\"asm\"][\"lj\"]).apply(null,arguments)};function invoke_v(index){var sp=stackSave();try{wasmTable.get(index)()}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_vii(index,a1,a2){var sp=stackSave();try{wasmTable.get(index)(a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_ii(index,a1){var sp=stackSave();try{return wasmTable.get(index)(a1)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iii(index,a1,a2){var sp=stackSave();try{return wasmTable.get(index)(a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_vi(index,a1){var sp=stackSave();try{wasmTable.get(index)(a1)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiii(index,a1,a2,a3){var sp=stackSave();try{return wasmTable.get(index)(a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return wasmTable.get(index)(a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiii(index,a1,a2,a3,a4){var sp=stackSave();try{wasmTable.get(index)(a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return wasmTable.get(index)(a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_fiii(index,a1,a2,a3){var sp=stackSave();try{return wasmTable.get(index)(a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_diii(index,a1,a2,a3){var sp=stackSave();try{return wasmTable.get(index)(a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viif(index,a1,a2,a3){var sp=stackSave();try{wasmTable.get(index)(a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viid(index,a1,a2,a3){var sp=stackSave();try{wasmTable.get(index)(a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viii(index,a1,a2,a3){var sp=stackSave();try{wasmTable.get(index)(a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iff(index,a1,a2){var sp=stackSave();try{return wasmTable.get(index)(a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_idd(index,a1,a2){var sp=stackSave();try{return wasmTable.get(index)(a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{wasmTable.get(index)(a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{wasmTable.get(index)(a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{return wasmTable.get(index)(a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return wasmTable.get(index)(a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiiiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return wasmTable.get(index)(a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_i(index){var sp=stackSave();try{return wasmTable.get(index)()}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{return wasmTable.get(index)(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{wasmTable.get(index)(a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11){var sp=stackSave();try{return wasmTable.get(index)(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{wasmTable.get(index)(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15){var sp=stackSave();try{wasmTable.get(index)(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_idiii(index,a1,a2,a3,a4){var sp=stackSave();try{return wasmTable.get(index)(a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iidii(index,a1,a2,a3,a4){var sp=stackSave();try{return wasmTable.get(index)(a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viidii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{wasmTable.get(index)(a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_vif(index,a1,a2){var sp=stackSave();try{wasmTable.get(index)(a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_vid(index,a1,a2){var sp=stackSave();try{wasmTable.get(index)(a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_di(index,a1){var sp=stackSave();try{return wasmTable.get(index)(a1)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiid(index,a1,a2,a3){var sp=stackSave();try{return wasmTable.get(index)(a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_fi(index,a1){var sp=stackSave();try{return wasmTable.get(index)(a1)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{wasmTable.get(index)(a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiiid(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return wasmTable.get(index)(a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_vifi(index,a1,a2,a3){var sp=stackSave();try{wasmTable.get(index)(a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_vidi(index,a1,a2,a3){var sp=stackSave();try{wasmTable.get(index)(a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14){var sp=stackSave();try{return wasmTable.get(index)(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_dii(index,a1,a2){var sp=stackSave();try{return wasmTable.get(index)(a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13){var sp=stackSave();try{wasmTable.get(index)(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{wasmTable.get(index)(a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_f(index){var sp=stackSave();try{return wasmTable.get(index)()}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_d(index){var sp=stackSave();try{return wasmTable.get(index)()}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_if(index,a1){var sp=stackSave();try{return wasmTable.get(index)(a1)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_id(index,a1){var sp=stackSave();try{return wasmTable.get(index)(a1)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20){var sp=stackSave();try{return wasmTable.get(index)(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19){var sp=stackSave();try{return wasmTable.get(index)(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iid(index,a1,a2){var sp=stackSave();try{return wasmTable.get(index)(a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiiiidiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{wasmTable.get(index)(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiif(index,a1,a2,a3){var sp=stackSave();try{return wasmTable.get(index)(a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiidiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{wasmTable.get(index)(a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11){var sp=stackSave();try{wasmTable.get(index)(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_jiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_jiiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viijj(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{dynCall_viijj(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viij(index,a1,a2,a3,a4){var sp=stackSave();try{dynCall_viij(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiiij(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return dynCall_iiiiij(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_vij(index,a1,a2,a3){var sp=stackSave();try{dynCall_vij(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiij(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{dynCall_viiiij(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiij(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_viiij(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiijjj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{dynCall_viiijjj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiij(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_iiij(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_vijijj(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{dynCall_vijijj(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iji(index,a1,a2,a3){var sp=stackSave();try{return dynCall_iji(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viji(index,a1,a2,a3,a4){var sp=stackSave();try{dynCall_viji(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_ji(index,a1){var sp=stackSave();try{return dynCall_ji(index,a1)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiijj(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{dynCall_viiijj(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_vijjj(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{dynCall_vijjj(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viijjj(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{dynCall_viijjj(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiiijj(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{return dynCall_iiiiijj(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_jii(index,a1,a2){var sp=stackSave();try{return dynCall_jii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_ijj(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_ijj(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_ijjiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_ijjiii(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viijii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{dynCall_viijii(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiji(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_viiji(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_vijj(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_vijj(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iij(index,a1,a2,a3){var sp=stackSave();try{return dynCall_iij(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_vj(index,a1,a2){var sp=stackSave();try{dynCall_vj(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiji(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_iiji(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiij(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_iiiij(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiijj(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_iiiijj(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiiji(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{dynCall_viiiiji(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiijij(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_iiijij(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiji(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_iiiji(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iijj(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_iijj(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiijji(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_iiijji(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viijji(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{dynCall_viijji(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_j(index){var sp=stackSave();try{return dynCall_j(index)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiiiji(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_iiiiiji(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiiji(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return dynCall_iiiiji(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_jiii(index,a1,a2,a3){var sp=stackSave();try{return dynCall_jiii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_vijiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{dynCall_vijiii(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_vijiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{dynCall_vijiiii(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iijiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_iijiiii(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiijiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_iiijiii(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiiijii(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{return dynCall_iiiiijii(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viijiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{dynCall_viijiii(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiijiij(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{return dynCall_iiijiij(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iijjii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_iijjii(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iijjiii(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{return dynCall_iijjiii(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iijjiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{return dynCall_iijjiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iijji(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return dynCall_iijji(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiiiij(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{dynCall_viiiiiij(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiijii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{dynCall_viiijii(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iijjijj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{return dynCall_iijjijj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiijiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11){var sp=stackSave();try{dynCall_viiiijiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiijiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{dynCall_viiiijiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_vjjii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{dynCall_vjjii(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiji(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{dynCall_viiiji(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiijj(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{dynCall_viiiijj(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiijiiii(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{return dynCall_iiijiiii(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiijji(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{dynCall_viiijji(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_jij(index,a1,a2,a3){var sp=stackSave();try{return dynCall_jij(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_jiiij(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_jiiij(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_vijjji(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{dynCall_vijjji(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_jiiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_jiiiii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_vjjijij(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{dynCall_vjjijij(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_jiiji(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_jiiji(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viijiiji(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{dynCall_viijiiji(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_jiiiji(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return dynCall_jiiiji(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_vijij(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{dynCall_vijij(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiijjjj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{return dynCall_iiijjjj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiiiji(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{dynCall_viiiiiji(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiiijjiijj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14){var sp=stackSave();try{return dynCall_iiiiijjiijj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiijjii(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{return dynCall_iiijjii(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viijij(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{dynCall_viijij(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_vijii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_vijii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viijjii(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{dynCall_viijjii(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_jiijii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return dynCall_jiijii(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viijiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{dynCall_viijiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viijiiij(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{dynCall_viijiiij(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_jijiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return dynCall_jijiii(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_vijiiiji(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{dynCall_vijiiiji(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_jijjij(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{return dynCall_jijjij(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viijiij(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{dynCall_viijiij(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiijiii(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{return dynCall_iiiijiii(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiijiii(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{dynCall_viiijiii(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_vijji(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{dynCall_vijji(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_jiiiij(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return dynCall_jiiiij(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiijjij(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{dynCall_viiijjij(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_vijijjiij(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12){var sp=stackSave();try{dynCall_vijijjiij(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viijjij(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{dynCall_viijjij(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiijjjj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12){var sp=stackSave();try{dynCall_viiiijjjj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_jiijiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{return dynCall_jiijiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_jiijiijiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11){var sp=stackSave();try{return dynCall_jiijiijiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_jiijjiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{return dynCall_jiijjiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_jiiijii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_jiiijii(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_jiijijii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{return dynCall_jiijijii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viijiiiiij(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11){var sp=stackSave();try{dynCall_viijiiiiij(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viijiiiijj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12){var sp=stackSave();try{dynCall_viijiiiijj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiijiiiijjj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15){var sp=stackSave();try{dynCall_viiijiiiijjj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viijijiiiijjj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17){var sp=stackSave();try{dynCall_viijijiiiijjj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiijjiij(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11){var sp=stackSave();try{dynCall_viiijjiij(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_jiiiiiijii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{return dynCall_jiiiiiijii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiijji(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{return dynCall_iiiijji(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiiijiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11){var sp=stackSave();try{dynCall_viiiiijiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_jiiiijii(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{return dynCall_jiiiijii(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiijii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return dynCall_iiijii(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_fiijii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return dynCall_fiijii(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_diijii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return dynCall_diijii(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiiiiijii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{return dynCall_iiiiiiijii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_jiiiijiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14){var sp=stackSave();try{return dynCall_jiiiijiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_jiiijiii(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{return dynCall_jiiijiii(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_jiiiiijiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11){var sp=stackSave();try{return dynCall_jiiiiijiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_jj(index,a1,a2){var sp=stackSave();try{return dynCall_jj(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_jd(index,a1){var sp=stackSave();try{return dynCall_jd(index,a1)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_jf(index,a1){var sp=stackSave();try{return dynCall_jf(index,a1)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_jiiiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return dynCall_jiiiiii(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_ijji(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_ijji(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiiiiji(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{return dynCall_iiiiiiji(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiiiiiiji(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{return dynCall_iiiiiiiiji(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiiijj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{dynCall_viiiiijj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiijj(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return dynCall_iiijj(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iijjj(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_iijjj(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_vijijiiiijjj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16){var sp=stackSave();try{dynCall_vijijiiiijjj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_jijijjij(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11){var sp=stackSave();try{return dynCall_jijijjij(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_vijjij(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{dynCall_vijjij(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiiiiiij(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{return dynCall_iiiiiiiij(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viijjji(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{dynCall_viijjji(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiiiij(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_iiiiiij(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiiji(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12){var sp=stackSave();try{return dynCall_iiiiiiiiiiji(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_jiiiiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_jiiiiiii(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiiiiij(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{return dynCall_iiiiiiij(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiiiij(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13){var sp=stackSave();try{return dynCall_iiiiiiiiiiiij(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiiijiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{dynCall_viiiiijiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_jiij(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_jiij(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_ij(index,a1,a2){var sp=stackSave();try{return dynCall_ij(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_vjiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{dynCall_vjiiii(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiijiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14){var sp=stackSave();try{dynCall_viiiijiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_jjj(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_jjj(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_vjii(index,a1,a2,a3,a4){var sp=stackSave();try{dynCall_vjii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_jjjjjjd(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11){var sp=stackSave();try{return dynCall_jjjjjjd(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiijjii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{return dynCall_iiiijjii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiiijji(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{return dynCall_iiiiijji(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiijjii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{dynCall_viiijjii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiijji(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{dynCall_viiiijji(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiijjii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{dynCall_viiiijjii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiiijji(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{dynCall_viiiiijji(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiiiijji(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{return dynCall_iiiiiijji(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiijjjii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{return dynCall_iiijjjii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_jijiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_jijiiii(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiiijjj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{return dynCall_iiiiijjj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiiijjji(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11){var sp=stackSave();try{return dynCall_iiiiijjji(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiijjj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{return dynCall_iiiijjj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iidj(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_iidj(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiiiiiji(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{return dynCall_iiiiiiiji(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiidjj(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{return dynCall_iiiidjj(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iijiji(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_iijiji(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_vjiiiji(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{dynCall_vjiiiji(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_jjjii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return dynCall_jjjii(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_jji(index,a1,a2,a3){var sp=stackSave();try{return dynCall_jji(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiijijiji(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12){var sp=stackSave();try{dynCall_viiijijiji(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiijij(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{dynCall_viiijij(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_jiiijj(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_jiiijj(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiijii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_iiiijii(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiijii(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{dynCall_viiiijii(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iijiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return dynCall_iijiii(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_jiiiiji(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_jiiiiji(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_vijiijj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{dynCall_vijiijj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_vifiijj(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{dynCall_vifiijj(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_vidiijj(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{dynCall_vidiijj(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiiij(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{dynCall_viiiiij(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_vijijjji(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11){var sp=stackSave();try{dynCall_vijijjji(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_jijj(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_jijj(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viijijj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{dynCall_viijijj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiijiijj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{return dynCall_iiijiijj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viijiijj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{dynCall_viijiijj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiiijjji(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12){var sp=stackSave();try{dynCall_viiiiijjji(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiijijjj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12){var sp=stackSave();try{dynCall_viiijijjj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iijiijj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{return dynCall_iijiijj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiijjji(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{return dynCall_iiijjji(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiijjjji(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12){var sp=stackSave();try{dynCall_viiijjjji(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiijiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{dynCall_viiiijiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viijiiii(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{dynCall_viijiiii(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iijii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_iijii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viijiji(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{dynCall_viijiji(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_vijijjiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13){var sp=stackSave();try{dynCall_vijijjiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_vijjiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{dynCall_vijjiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_vijjiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{dynCall_vijjiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}Module[\"ccall\"]=ccall;var calledRun;function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module[\"_main\"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv);exit(ret,true);return ret}catch(e){return handleException(e)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();readyPromiseResolve(Module);if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();if(shouldRunNow)callMain(args);postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;function exit(status,implicit){EXITSTATUS=status;if(keepRuntimeAlive()){}else{exitRuntime()}procExit(status)}function procExit(code){EXITSTATUS=code;if(!keepRuntimeAlive()){if(Module[\"onExit\"])Module[\"onExit\"](code);ABORT=true}quit_(code,new ExitStatus(code))}if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}var shouldRunNow=true;if(Module[\"noInitialRun\"])shouldRunNow=false;run();\n\n\n  return DuckDB.ready\n}\n);\n})();\nexport default DuckDB;", "import DuckDBWasm from './duckdb.js';\nimport { DuckDBModule } from './duckdb_module';\nimport { DuckDBBindingsBase } from './bindings_base';\nimport { DuckDBRuntime } from './runtime';\nimport { Logger } from '../log';\nimport fs from 'fs';\n\ndeclare global {\n    // eslint-disable-next-line no-var\n    var DUCKDB_RUNTIME: any;\n}\n\n/** DuckDB bindings for node.js */\nexport class DuckDBNodeBindings extends DuckDBBindingsBase {\n    /** The path of the wasm module */\n    protected readonly mainModulePath: string;\n    /** The path of the pthread worker script */\n    protected readonly pthreadWorkerPath: string | null;\n\n    /** Constructor */\n    public constructor(\n        logger: Logger,\n        runtime: DuckDBRuntime,\n        mainModulePath: string,\n        pthreadWorkerPath: string | null,\n    ) {\n        super(logger, runtime);\n        this.mainModulePath = mainModulePath;\n        this.pthreadWorkerPath = pthreadWorkerPath;\n    }\n\n    /** Locate a file */\n    protected locateFile(path: string, prefix: string): string {\n        if (path.endsWith('.wasm')) {\n            return this.mainModulePath;\n        }\n        if (path.endsWith('.worker.js')) {\n            if (!this.pthreadWorkerPath) {\n                throw new Error('Missing DuckDB worker path!');\n            }\n            return this.pthreadWorkerPath!;\n        }\n        throw new Error(`WASM instantiation requested unexpected file: prefix=${prefix} path=${path}`);\n    }\n\n    /** Instantiate the wasm module */\n    protected instantiateWasm(\n        // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n        imports: any,\n        success: (instance: WebAssembly.Instance, module: WebAssembly.Module) => void,\n    ): Emscripten.WebAssemblyExports {\n        globalThis.DUCKDB_RUNTIME = {};\n        for (const func of Object.getOwnPropertyNames(this._runtime)) {\n            if (func == 'constructor') continue;\n            globalThis.DUCKDB_RUNTIME[func] = Object.getOwnPropertyDescriptor(this._runtime, func)!.value;\n        }\n        const buf = fs.readFileSync(this.mainModulePath);\n        WebAssembly.instantiate(buf, imports).then(output => {\n            success(output.instance, output.module);\n        });\n        return [];\n    }\n\n    /** Instantiate the bindings */\n    protected instantiateImpl(moduleOverrides: Partial<DuckDBModule>): Promise<DuckDBModule> {\n        return DuckDBWasm({\n            ...moduleOverrides,\n            instantiateWasm: this.instantiateWasm.bind(this),\n        });\n    }\n}\n", "import DuckDBWasm from './duckdb-eh.js';\nimport { DuckDBModule } from './duckdb_module';\nimport { DuckDBNodeBindings } from './bindings_node_base.js';\nimport { DuckDBRuntime } from './runtime';\nimport { Logger } from '../log';\n\n/** DuckDB bindings for node.js */\nexport class DuckDB extends DuckDBNodeBindings {\n    /** Constructor */\n    public constructor(\n        logger: Logger,\n        runtime: DuckDBRuntime,\n        mainModulePath: string,\n        pthreadWorkerPath: string | null = null,\n    ) {\n        super(logger, runtime, mainModulePath, pthreadWorkerPath);\n    }\n\n    /** Instantiate the bindings */\n    protected instantiateImpl(moduleOverrides: Partial<DuckDBModule>): Promise<DuckDBModule> {\n        return DuckDBWasm({\n            ...moduleOverrides,\n            instantiateWasm: this.instantiateWasm.bind(this),\n            locateFile: this.locateFile.bind(this),\n        });\n    }\n}\n\nexport default DuckDB;\n", "import fs from 'fs';\nimport {\n    DuckDBRuntime,\n    DuckDBFileInfo,\n    callSRet,\n    dropResponseBuffers,\n    failWith,\n    readString,\n    decodeText,\n    DuckDBDataProtocol,\n} from './runtime';\nimport { StatusCode } from '../status';\nimport { DuckDBModule } from './duckdb_module';\nimport * as fg from 'fast-glob';\n\nexport const NODE_RUNTIME: DuckDBRuntime & {\n    fileInfoCache: Map<number, DuckDBFileInfo>;\n\n    resolveFileInfo(mod: DuckDBModule, fileId: number): DuckDBFileInfo | null;\n} = {\n    fileInfoCache: new Map<number, DuckDBFileInfo>(),\n\n    resolveFileInfo(mod: DuckDBModule, fileId: number): DuckDBFileInfo | null {\n        try {\n            const cached = NODE_RUNTIME.fileInfoCache.get(fileId);\n            if (cached) return cached;\n            const [s, d, n] = callSRet(mod, 'duckdb_web_fs_get_file_info_by_id', ['number'], [fileId]);\n            if (s !== StatusCode.SUCCESS) {\n                failWith(mod, readString(mod, d, n));\n                return null;\n            }\n            const infoStr = readString(mod, d, n);\n            dropResponseBuffers(mod);\n            const info = JSON.parse(infoStr) as DuckDBFileInfo;\n            if (info == null) return null;\n            NODE_RUNTIME.fileInfoCache.set(fileId, info);\n            return info as DuckDBFileInfo;\n        } catch (e: any) {\n            failWith(mod, e.toString());\n            return null;\n        }\n    },\n\n    testPlatformFeature: (_mod: DuckDBModule, feature: number): boolean => {\n        switch (feature) {\n            case 1:\n                return typeof BigInt64Array !== 'undefined';\n            default:\n                console.warn(`test for unknown feature: ${feature}`);\n                return false;\n        }\n    },\n\n    openFile(mod: DuckDBModule, fileId: number): number {\n        try {\n            NODE_RUNTIME.fileInfoCache.delete(fileId);\n            const file = NODE_RUNTIME.resolveFileInfo(mod, fileId);\n            switch (file?.dataProtocol) {\n                // Native file\n                case DuckDBDataProtocol.NATIVE: {\n                    file.dataNativeFd = fs.openSync(\n                        file.dataUrl!,\n                        fs.constants.O_CREAT | fs.constants.O_RDWR,\n                        fs.constants.S_IRUSR | fs.constants.S_IWUSR,\n                    );\n                    const [s, d, n] = callSRet(\n                        mod,\n                        'duckdb_web_fs_set_file_descriptor',\n                        ['number', 'number'],\n                        [fileId, file.dataNativeFd],\n                    );\n                    if (s !== StatusCode.SUCCESS) {\n                        failWith(mod, readString(mod, d, n));\n                    }\n                    const fileSize = fs.fstatSync(file.dataNativeFd!).size;\n                    const result = mod._malloc(2 * 8);\n                    mod.HEAPF64[(result >> 3) + 0] = +fileSize;\n                    mod.HEAPF64[(result >> 3) + 1] = 0;\n                    return result;\n                }\n                // HTTP file\n                case DuckDBDataProtocol.HTTP:\n                    failWith(mod, 'Not implemented');\n            }\n        } catch (e: any) {\n            failWith(mod, e.toString());\n        }\n        return 0;\n    },\n    syncFile: (_mod: DuckDBModule, _fileId: number) => {},\n    closeFile: (mod: DuckDBModule, fileId: number) => {\n        try {\n            const file = NODE_RUNTIME.resolveFileInfo(mod, fileId);\n            NODE_RUNTIME.fileInfoCache.delete(fileId);\n            switch (file?.dataProtocol) {\n                case DuckDBDataProtocol.NATIVE: {\n                    if (!file.dataNativeFd) {\n                        failWith(mod, `File ${fileId} is missing a file descriptor`);\n                        return 0;\n                    }\n                    fs.closeSync(file.dataNativeFd);\n                    file.dataNativeFd = null;\n                    break;\n                }\n                case DuckDBDataProtocol.HTTP:\n                    failWith(mod, `Not implemented`);\n            }\n        } catch (e: any) {\n            failWith(mod, e.toString());\n        }\n        return 0;\n    },\n    truncateFile: (mod: DuckDBModule, fileId: number, newSize: number) => {\n        try {\n            const file = NODE_RUNTIME.resolveFileInfo(mod, fileId);\n            switch (file?.dataProtocol) {\n                case DuckDBDataProtocol.NATIVE: {\n                    if (!file.dataNativeFd) {\n                        failWith(mod, `File ${fileId} is missing a file descriptor`);\n                        return 0;\n                    }\n                    fs.truncateSync(file.dataUrl!, newSize);\n                    break;\n                }\n                case DuckDBDataProtocol.HTTP:\n                    failWith(mod, `Not implemented`);\n            }\n        } catch (e: any) {\n            failWith(mod, e.toString());\n        }\n        return 0;\n    },\n    readFile: (mod: DuckDBModule, fileId: number, buf: number, bytes: number, location: number) => {\n        try {\n            const file = NODE_RUNTIME.resolveFileInfo(mod, fileId);\n            switch (file?.dataProtocol) {\n                case DuckDBDataProtocol.NATIVE: {\n                    if (!file.dataNativeFd) {\n                        failWith(mod, `File ${fileId} is missing a file descriptor`);\n                        return 0;\n                    }\n                    return fs.readSync(file.dataNativeFd!, mod.HEAPU8, buf, bytes, location);\n                }\n                case DuckDBDataProtocol.HTTP:\n                    failWith(mod, `Not implemented`);\n            }\n        } catch (e: any) {\n            failWith(mod, e.toString());\n        }\n        return 0;\n    },\n    writeFile: (mod: DuckDBModule, fileId: number, buf: number, bytes: number, location: number) => {\n        try {\n            const file = NODE_RUNTIME.resolveFileInfo(mod, fileId);\n            switch (file?.dataProtocol) {\n                case DuckDBDataProtocol.NATIVE: {\n                    if (!file.dataNativeFd) {\n                        failWith(mod, `File ${fileId} is missing a file descriptor`);\n                        return 0;\n                    }\n                    const src = mod.HEAPU8.subarray(buf, buf + bytes);\n                    return fs.writeSync(file.dataNativeFd!, src, 0, src.length, location);\n                }\n            }\n        } catch (e: any) {\n            failWith(mod, e.toString());\n        }\n        return 0;\n    },\n    getLastFileModificationTime: (mod: DuckDBModule, fileId: number) => {\n        try {\n            const file = NODE_RUNTIME.resolveFileInfo(mod, fileId);\n            switch (file?.dataProtocol) {\n                case DuckDBDataProtocol.NATIVE: {\n                    if (!file.dataNativeFd) {\n                        failWith(mod, `File ${fileId} is missing a file descriptor`);\n                        return 0;\n                    }\n                    return fs.fstatSync(file.dataNativeFd!).mtime.getTime();\n                }\n                case DuckDBDataProtocol.HTTP:\n                    failWith(mod, 'Not implemented');\n            }\n        } catch (e: any) {\n            failWith(mod, e.toString());\n        }\n        return 0;\n    },\n\n    checkDirectory: (mod: DuckDBModule, pathPtr: number, pathLen: number) => {\n        try {\n            const path = decodeText(mod.HEAPU8.subarray(pathPtr, pathPtr + pathLen));\n            return fs.existsSync(path);\n        } catch (e: any) {\n            failWith(mod, e.toString());\n            return false;\n        }\n    },\n    createDirectory: (mod: DuckDBModule, pathPtr: number, pathLen: number) => {\n        try {\n            const path = decodeText(mod.HEAPU8.subarray(pathPtr, pathPtr + pathLen));\n            return fs.mkdirSync(path);\n        } catch (e: any) {\n            failWith(mod, e.toString());\n            return 0;\n        }\n    },\n    removeDirectory: (mod: DuckDBModule, pathPtr: number, pathLen: number) => {\n        try {\n            const path = decodeText(mod.HEAPU8.subarray(pathPtr, pathPtr + pathLen));\n            return fs.rmdirSync(path);\n        } catch (e: any) {\n            failWith(mod, e.toString());\n            return 0;\n        }\n    },\n    listDirectoryEntries: (mod: DuckDBModule, _pathPtr: number, _pathLen: number) => {\n        failWith(mod, 'Not Implemented');\n        return false;\n    },\n    glob: (mod: DuckDBModule, pathPtr: number, pathLen: number) => {\n        try {\n            const path = readString(mod, pathPtr, pathLen);\n            const entries = fg.sync([path], { dot: true });\n            for (const entry of entries) {\n                mod.ccall('duckdb_web_fs_glob_add_path', null, ['string'], [entry]);\n            }\n        } catch (e: any) {\n            failWith(mod, e.toString());\n            return 0;\n        }\n    },\n    moveFile: (mod: DuckDBModule, fromPtr: number, fromLen: number, toPtr: number, toLen: number) => {\n        try {\n            const from = decodeText(mod.HEAPU8.subarray(fromPtr, fromPtr + fromLen));\n            const to = decodeText(mod.HEAPU8.subarray(toPtr, toPtr + toLen));\n            return fs.renameSync(from, to);\n        } catch (e: any) {\n            failWith(mod, e.toString());\n            return 0;\n        }\n    },\n    checkFile: (mod: DuckDBModule, pathPtr: number, pathLen: number) => {\n        try {\n            const path = decodeText(mod.HEAPU8.subarray(pathPtr, pathPtr + pathLen));\n            return fs.existsSync(path);\n        } catch (e: any) {\n            failWith(mod, e.toString());\n            return false;\n        }\n    },\n    removeFile: (mod: DuckDBModule, pathPtr: number, pathLen: number) => {\n        try {\n            const path = decodeText(mod.HEAPU8.subarray(pathPtr, pathPtr + pathLen));\n            return fs.rmSync(path);\n        } catch (e: any) {\n            failWith(mod, e.toString());\n            return 0;\n        }\n    },\n};\n\nexport default NODE_RUNTIME;\n", "import * as check from 'wasm-feature-detect';\nimport { PACKAGE_NAME, PACKAGE_VERSION } from './version';\n\nexport interface DuckDBBundles {\n    mvp: {\n        mainModule: string;\n        mainWorker: string;\n    };\n    eh?: {\n        mainModule: string;\n        mainWorker: string;\n    };\n    coi?: {\n        mainModule: string;\n        mainWorker: string;\n        pthreadWorker: string;\n    };\n}\n\nexport function getJsDelivrBundles(): DuckDBBundles {\n    const jsdelivr_dist_url = `https://cdn.jsdelivr.net/npm/${PACKAGE_NAME}@${PACKAGE_VERSION}/dist/`;\n    return {\n        mvp: {\n            mainModule: `${jsdelivr_dist_url}duckdb.wasm`,\n            mainWorker: `${jsdelivr_dist_url}duckdb-browser.worker.js`,\n        },\n        eh: {\n            mainModule: `${jsdelivr_dist_url}duckdb-eh.wasm`,\n            mainWorker: `${jsdelivr_dist_url}duckdb-browser-eh.worker.js`,\n        },\n        // COI is still experimental, let the user opt in explicitly\n    };\n}\n\nexport interface DuckDBBundle {\n    mainModule: string;\n    mainWorker: string | null;\n    pthreadWorker: string | null;\n}\n\nexport interface PlatformFeatures {\n    bigInt64Array: boolean;\n    crossOriginIsolated: boolean;\n    wasmExceptions: boolean;\n    wasmSIMD: boolean;\n    wasmBulkMemory: boolean;\n    wasmThreads: boolean;\n}\n\nlet bigInt64Array: boolean | null = null;\nlet wasmExceptions: boolean | null = null;\nlet wasmThreads: boolean | null = null;\nlet wasmSIMD: boolean | null = null;\nlet wasmBulkMemory: boolean | null = null;\n\n// eslint-disable-next-line @typescript-eslint/no-namespace\ndeclare namespace globalThis {\n    let crossOriginIsolated: boolean;\n}\n\nfunction isNode(): boolean {\n    return typeof process !== 'undefined' && process.release.name === 'node';\n}\n\nexport async function getPlatformFeatures(): Promise<PlatformFeatures> {\n    if (bigInt64Array == null) {\n        bigInt64Array = typeof BigInt64Array != 'undefined';\n    }\n    if (wasmExceptions == null) {\n        wasmExceptions = await check.exceptions();\n    }\n    if (wasmThreads == null) {\n        wasmThreads = await check.threads();\n    }\n    if (wasmSIMD == null) {\n        wasmSIMD = await check.simd();\n    }\n    if (wasmBulkMemory == null) {\n        wasmBulkMemory = await check.bulkMemory();\n    }\n    return {\n        bigInt64Array: bigInt64Array!,\n        crossOriginIsolated: isNode() || globalThis.crossOriginIsolated || false,\n        wasmExceptions: wasmExceptions!,\n        wasmSIMD: wasmSIMD!,\n        wasmThreads: wasmThreads!,\n        wasmBulkMemory: wasmBulkMemory!,\n    };\n}\n\nexport async function selectBundle(bundles: DuckDBBundles): Promise<DuckDBBundle> {\n    const platform = await getPlatformFeatures();\n    if (platform.wasmExceptions) {\n        if (platform.wasmSIMD && platform.wasmThreads && platform.crossOriginIsolated && bundles.coi) {\n            return {\n                mainModule: bundles.coi.mainModule,\n                mainWorker: bundles.coi.mainWorker,\n                pthreadWorker: bundles.coi.pthreadWorker,\n            };\n        }\n        if (bundles.eh) {\n            return {\n                mainModule: bundles.eh.mainModule,\n                mainWorker: bundles.eh.mainWorker,\n                pthreadWorker: null,\n            };\n        }\n    }\n    return {\n        mainModule: bundles.mvp.mainModule,\n        mainWorker: bundles.mvp.mainWorker,\n        pthreadWorker: null,\n    };\n}\n", "import DuckDBWasm from './duckdb.js';\nimport { DuckDBNodeBindings } from './bindings_node_base.js';\nimport { Logger } from '../log.js';\nimport { DuckDBModule } from './duckdb_module';\nimport { DuckDBRuntime } from './runtime';\n\n/** DuckDB bindings for node.js */\nexport class DuckDB extends DuckDBNodeBindings {\n    /** Constructor */\n    public constructor(\n        logger: Logger,\n        runtime: DuckDBRuntime,\n        mainModulePath: string,\n        pthreadWorkerPath: string | null = null,\n    ) {\n        super(logger, runtime, mainModulePath, pthreadWorkerPath);\n    }\n\n    /** Instantiate the bindings */\n    protected instantiateImpl(moduleOverrides: Partial<DuckDBModule>): Promise<DuckDBModule> {\n        return DuckDBWasm({\n            ...moduleOverrides,\n            instantiateWasm: this.instantiateWasm.bind(this),\n            locateFile: this.locateFile.bind(this),\n        });\n    }\n}\n\nexport default DuckDB;\n", "export * from '../log';\nexport * from '../status';\nexport * from '../bindings';\nexport * from '../bindings/bindings_node_eh';\nexport { DEFAULT_RUNTIME } from '../bindings/runtime';\nexport { NODE_RUNTIME } from '../bindings/runtime_node';\n\nimport { Logger } from '../log';\nimport { DuckDBRuntime } from '../bindings';\nimport { DuckDBNodeBindings } from '../bindings/bindings_node_base';\nimport { DuckDBBundles, getPlatformFeatures } from '../platform';\nimport { DuckDB as DuckDBMVP } from '../bindings/bindings_node';\nimport { DuckDB as DuckDBNext } from '../bindings/bindings_node_eh';\n\nexport async function createDuckDB(\n    bundles: DuckDBBundles,\n    logger: Logger,\n    runtime: DuckDBRuntime,\n): Promise<DuckDBNodeBindings> {\n    const platform = await getPlatformFeatures();\n    if (platform.wasmExceptions) {\n        if (bundles.eh) {\n            return new DuckDBNext(logger, runtime, bundles.eh!.mainModule);\n        }\n    }\n    return new DuckDBMVP(logger, runtime, bundles.mvp.mainModule);\n}\n", "import * as arrow from 'apache-arrow';\nimport { AsyncDuckDB } from './async_bindings';\nimport { LogLevel, LogTopic, LogOrigin, LogEvent } from '../log';\nimport { ArrowInsertOptions, CSVInsertOptions, JSONInsertOptions } from '../bindings/insert_options';\n\n/** A thin helper to memoize the connection id */\nexport class AsyncDuckDBConnection {\n    /** The async duckdb */\n    protected readonly _bindings: AsyncDuckDB;\n    /** The conn handle */\n    protected readonly _conn: number;\n\n    constructor(bindings: AsyncDuckDB, conn: number) {\n        this._bindings = bindings;\n        this._conn = conn;\n    }\n\n    /** Access the database bindings */\n    public get bindings(): AsyncDuckDB {\n        return this._bindings;\n    }\n\n    /** Disconnect from the database */\n    public async close(): Promise<void> {\n        return this._bindings.disconnect(this._conn);\n    }\n\n    /** Brave souls may use this function to consume the underlying connection id */\n    public useUnsafe<R>(callback: (bindings: AsyncDuckDB, conn: number) => R) {\n        return callback(this._bindings, this._conn);\n    }\n\n    /** Run a query */\n    public async query<T extends { [key: string]: arrow.DataType } = any>(text: string): Promise<arrow.Table<T>> {\n        this._bindings.logger.log({\n            timestamp: new Date(),\n            level: LogLevel.INFO,\n            origin: LogOrigin.ASYNC_DUCKDB,\n            topic: LogTopic.QUERY,\n            event: LogEvent.RUN,\n            value: text,\n        });\n        const buffer = await this._bindings.runQuery(this._conn, text);\n        const reader = arrow.RecordBatchReader.from<T>(buffer);\n        console.assert(reader.isSync());\n        console.assert(reader.isFile());\n        return arrow.Table.from(reader as arrow.RecordBatchFileReader);\n    }\n\n    /** Send a query */\n    public async send<T extends { [key: string]: arrow.DataType } = any>(\n        text: string,\n    ): Promise<arrow.AsyncRecordBatchStreamReader<T>> {\n        this._bindings.logger.log({\n            timestamp: new Date(),\n            level: LogLevel.INFO,\n            origin: LogOrigin.ASYNC_DUCKDB,\n            topic: LogTopic.QUERY,\n            event: LogEvent.RUN,\n            value: text,\n        });\n        const header = await this._bindings.sendQuery(this._conn, text);\n        const iter = new AsyncResultStreamIterator(this._bindings, this._conn, header);\n        const reader = await arrow.RecordBatchReader.from<T>(iter);\n        console.assert(reader.isAsync());\n        console.assert(reader.isStream());\n        return reader as unknown as arrow.AsyncRecordBatchStreamReader<T>; // XXX\n    }\n\n    /** Get table names */\n    public async getTableNames(query: string): Promise<string[]> {\n        return await this._bindings.getTableNames(this._conn, query);\n    }\n\n    /** Create a prepared statement */\n    public async prepare<T extends { [key: string]: arrow.DataType } = any>(\n        text: string,\n    ): Promise<AsyncPreparedStatement> {\n        const stmt = await this._bindings.createPrepared(this._conn, text);\n        return new AsyncPreparedStatement<T>(this._bindings, this._conn, stmt);\n    }\n\n    /** Insert an arrow table */\n    public async insertArrowTable(table: arrow.Table, options: ArrowInsertOptions): Promise<void> {\n        const buffer = table.serialize('binary', true);\n        await this.insertArrowFromIPCStream(buffer, options);\n    }\n    /** Insert an arrow table from an ipc stream */\n    public async insertArrowFromIPCStream(buffer: Uint8Array, options: ArrowInsertOptions): Promise<void> {\n        await this._bindings.insertArrowFromIPCStream(this._conn, buffer, options);\n    }\n    /** Insert csv file from path */\n    public async insertCSVFromPath(text: string, options: CSVInsertOptions): Promise<void> {\n        await this._bindings.insertCSVFromPath(this._conn, text, options);\n    }\n    /** Insert json file from path */\n    public async insertJSONFromPath(text: string, options: JSONInsertOptions): Promise<void> {\n        await this._bindings.insertJSONFromPath(this._conn, text, options);\n    }\n}\n\n/** An async result stream iterator */\nexport class AsyncResultStreamIterator implements AsyncIterable<Uint8Array> {\n    /** First chunk? */\n    protected _first: boolean;\n    /** Reached end of stream? */\n    protected _depleted: boolean;\n    /** In-flight */\n    protected _inFlight: Promise<Uint8Array> | null;\n\n    constructor(\n        protected readonly db: AsyncDuckDB,\n        protected readonly conn: number,\n        protected readonly header: Uint8Array,\n    ) {\n        this._first = true;\n        this._depleted = false;\n        this._inFlight = null;\n    }\n\n    async next(): Promise<IteratorResult<Uint8Array>> {\n        if (this._first) {\n            this._first = false;\n            return { done: false, value: this.header };\n        }\n        if (this._depleted) {\n            return { done: true, value: null };\n        }\n        let buffer: Uint8Array;\n        if (this._inFlight != null) {\n            buffer = await this._inFlight;\n            this._inFlight = null;\n        } else {\n            buffer = await this.db.fetchQueryResults(this.conn);\n        }\n        this._depleted = buffer.length == 0;\n        if (!this._depleted) {\n            this._inFlight = this.db.fetchQueryResults(this.conn);\n        }\n        return {\n            done: this._depleted,\n            value: buffer,\n        };\n    }\n\n    [Symbol.asyncIterator]() {\n        return this;\n    }\n}\n\n/** A thin helper to bind the prepared statement id */\nexport class AsyncPreparedStatement<T extends { [key: string]: arrow.DataType } = any> {\n    /** The bindings */\n    protected readonly bindings: AsyncDuckDB;\n    /** The connection id */\n    protected readonly connectionId: number;\n    /** The statement id */\n    protected readonly statementId: number;\n\n    /** Constructor */\n    constructor(bindings: AsyncDuckDB, connectionId: number, statementId: number) {\n        this.bindings = bindings;\n        this.connectionId = connectionId;\n        this.statementId = statementId;\n    }\n\n    /** Close a prepared statement */\n    public async close() {\n        await this.bindings.closePrepared(this.connectionId, this.statementId);\n    }\n\n    /** Run a prepared statement */\n    public async query(...params: any[]): Promise<arrow.Table<T>> {\n        const buffer = await this.bindings.runPrepared(this.connectionId, this.statementId, params);\n        const reader = arrow.RecordBatchReader.from<T>(buffer);\n        console.assert(reader.isSync());\n        console.assert(reader.isFile());\n        return arrow.Table.from(reader as arrow.RecordBatchFileReader);\n    }\n\n    /** Send a prepared statement */\n    public async send(...params: any[]): Promise<arrow.AsyncRecordBatchStreamReader<T>> {\n        const header = await this.bindings.sendPrepared(this.connectionId, this.statementId, params);\n        const iter = new AsyncResultStreamIterator(this.bindings, this.connectionId, header);\n        const reader = await arrow.RecordBatchReader.from<T>(iter);\n        console.assert(reader.isAsync());\n        console.assert(reader.isStream());\n        return reader as unknown as arrow.AsyncRecordBatchStreamReader<T>; // XXX\n    }\n}\n", "import { CSVInsertOptions, JSONInsertOptions, ArrowInsertOptions } from '../bindings/insert_options';\nimport { LogEntryVariant } from '../log';\nimport { ScriptTokens } from '../bindings/tokens';\nimport { FileStatistics } from '../bindings/file_stats';\nimport { DuckDBConfig } from '../bindings/config';\nimport { WebFile } from '../bindings/web_file';\n\nexport type ConnectionID = number;\nexport type StatementID = number;\n\nexport enum WorkerRequestType {\n    CLOSE_PREPARED = 'CLOSE_PREPARED',\n    COLLECT_FILE_STATISTICS = 'COLLECT_FILE_STATISTICS',\n    CONNECT = 'CONNECT',\n    COPY_FILE_TO_BUFFER = 'COPY_FILE_TO_BUFFER',\n    COPY_FILE_TO_PATH = 'COPY_FILE_TO_PATH',\n    CREATE_PREPARED = 'CREATE_PREPARED',\n    DISCONNECT = 'DISCONNECT',\n    DROP_FILE = 'DROP_FILE',\n    DROP_FILES = 'DROP_FILES',\n    EXPORT_FILE_STATISTICS = 'EXPORT_FILE_STATISTICS',\n    FETCH_QUERY_RESULTS = 'FETCH_QUERY_RESULTS',\n    FLUSH_FILES = 'FLUSH_FILES',\n    GET_FEATURE_FLAGS = 'GET_FEATURE_FLAGS',\n    GET_TABLE_NAMES = 'GET_TABLE_NAMES',\n    GET_VERSION = 'GET_VERSION',\n    GLOB_FILE_INFOS = 'GLOB_FILE_INFOS',\n    INSERT_ARROW_FROM_IPC_STREAM = 'INSERT_ARROW_FROM_IPC_STREAM',\n    INSERT_CSV_FROM_PATH = 'IMPORT_CSV_FROM_PATH',\n    INSERT_JSON_FROM_PATH = 'IMPORT_JSON_FROM_PATH',\n    INSTANTIATE = 'INSTANTIATE',\n    OPEN = 'OPEN',\n    PING = 'PING',\n    REGISTER_FILE_BUFFER = 'REGISTER_FILE_BUFFER',\n    REGISTER_FILE_HANDLE = 'REGISTER_FILE_HANDLE',\n    REGISTER_FILE_URL = 'REGISTER_FILE_URL',\n    RESET = 'RESET',\n    RUN_PREPARED = 'RUN_PREPARED',\n    RUN_QUERY = 'RUN_QUERY',\n    SEND_PREPARED = 'SEND_PREPARED',\n    SEND_QUERY = 'SEND_QUERY',\n    TOKENIZE = 'TOKENIZE',\n}\n\nexport enum WorkerResponseType {\n    CONNECTION_INFO = 'CONNECTION_INFO',\n    ERROR = 'ERROR',\n    FEATURE_FLAGS = 'FEATURE_FLAGS',\n    FILE_BUFFER = 'FILE_BUFFER',\n    FILE_INFOS = 'FILE_INFOS',\n    FILE_SIZE = 'FILE_SIZE',\n    FILE_STATISTICS = 'FILE_STATISTICS',\n    LOG = 'LOG',\n    OK = 'OK',\n    PREPARED_STATEMENT_ID = 'PREPARED_STATEMENT_ID',\n    QUERY_PLAN = 'QUERY_PLAN',\n    QUERY_RESULT = 'QUERY_RESULT',\n    QUERY_RESULT_CHUNK = 'QUERY_RESULT_CHUNK',\n    QUERY_START = 'QUERY_START',\n    REGISTERED_FILE = 'REGISTERED_FILE',\n    SCRIPT_TOKENS = 'SCRIPT_TOKENS',\n    SUCCESS = 'SUCCESS',\n    TABLE_NAMES = 'TABLE_NAMES',\n    VERSION_STRING = 'VERSION_STRING',\n}\n\nexport type WorkerRequest<T, P> = {\n    readonly messageId: number;\n    readonly type: T;\n    readonly data: P;\n};\n\nexport type WorkerResponse<T, P> = {\n    readonly messageId: number;\n    readonly requestId: number;\n    readonly type: T;\n    readonly data: P;\n};\n\nexport type WorkerTaskReturnType<T extends WorkerTaskVariant> = T extends WorkerTask<any, any, infer P> ? P : never;\n\nexport class WorkerTask<T, D, P> {\n    readonly type: T;\n    readonly data: D;\n    promise: Promise<P>;\n    promiseResolver: (value: P | PromiseLike<P>) => void = () => {};\n    promiseRejecter: (value: any) => void = () => {};\n\n    constructor(type: T, data: D) {\n        this.type = type;\n        this.data = data;\n        this.promise = new Promise<P>(\n            (resolve: (value: P | PromiseLike<P>) => void, reject: (reason?: void) => void) => {\n                this.promiseResolver = resolve;\n                this.promiseRejecter = reject;\n            },\n        );\n    }\n}\n\nexport type WorkerRequestVariant =\n    | WorkerRequest<WorkerRequestType.CLOSE_PREPARED, [ConnectionID, StatementID]>\n    | WorkerRequest<WorkerRequestType.COLLECT_FILE_STATISTICS, [string, boolean]>\n    | WorkerRequest<WorkerRequestType.CONNECT, null>\n    | WorkerRequest<WorkerRequestType.COPY_FILE_TO_BUFFER, string>\n    | WorkerRequest<WorkerRequestType.COPY_FILE_TO_PATH, [string, string]>\n    | WorkerRequest<WorkerRequestType.CREATE_PREPARED, [ConnectionID, string]>\n    | WorkerRequest<WorkerRequestType.DISCONNECT, number>\n    | WorkerRequest<WorkerRequestType.DROP_FILE, string>\n    | WorkerRequest<WorkerRequestType.DROP_FILES, null>\n    | WorkerRequest<WorkerRequestType.EXPORT_FILE_STATISTICS, string>\n    | WorkerRequest<WorkerRequestType.FETCH_QUERY_RESULTS, number>\n    | WorkerRequest<WorkerRequestType.FLUSH_FILES, null>\n    | WorkerRequest<WorkerRequestType.GET_FEATURE_FLAGS, null>\n    | WorkerRequest<WorkerRequestType.GET_TABLE_NAMES, [number, string]>\n    | WorkerRequest<WorkerRequestType.GET_VERSION, null>\n    | WorkerRequest<\n          WorkerRequestType.INSERT_ARROW_FROM_IPC_STREAM,\n          [number, Uint8Array, ArrowInsertOptions | undefined]\n      >\n    | WorkerRequest<WorkerRequestType.INSERT_CSV_FROM_PATH, [number, string, CSVInsertOptions]>\n    | WorkerRequest<WorkerRequestType.INSERT_JSON_FROM_PATH, [number, string, JSONInsertOptions]>\n    | WorkerRequest<WorkerRequestType.INSTANTIATE, [string, string | null]>\n    | WorkerRequest<WorkerRequestType.OPEN, DuckDBConfig>\n    | WorkerRequest<WorkerRequestType.PING, null>\n    | WorkerRequest<WorkerRequestType.REGISTER_FILE_BUFFER, [string, Uint8Array]>\n    | WorkerRequest<WorkerRequestType.REGISTER_FILE_HANDLE, [string, any]>\n    | WorkerRequest<WorkerRequestType.REGISTER_FILE_URL, [string, string]>\n    | WorkerRequest<WorkerRequestType.GLOB_FILE_INFOS, string>\n    | WorkerRequest<WorkerRequestType.RESET, null>\n    | WorkerRequest<WorkerRequestType.RUN_PREPARED, [number, number, any[]]>\n    | WorkerRequest<WorkerRequestType.RUN_QUERY, [number, string]>\n    | WorkerRequest<WorkerRequestType.SEND_PREPARED, [number, number, any[]]>\n    | WorkerRequest<WorkerRequestType.SEND_QUERY, [number, string]>\n    | WorkerRequest<WorkerRequestType.TOKENIZE, string>;\n\nexport type WorkerResponseVariant =\n    | WorkerResponse<WorkerResponseType.CONNECTION_INFO, number>\n    | WorkerResponse<WorkerResponseType.ERROR, any>\n    | WorkerResponse<WorkerResponseType.FEATURE_FLAGS, number>\n    | WorkerResponse<WorkerResponseType.FILE_BUFFER, Uint8Array>\n    | WorkerResponse<WorkerResponseType.FILE_INFOS, WebFile[]>\n    | WorkerResponse<WorkerResponseType.FILE_SIZE, number>\n    | WorkerResponse<WorkerResponseType.FILE_STATISTICS, FileStatistics>\n    | WorkerResponse<WorkerResponseType.LOG, LogEntryVariant>\n    | WorkerResponse<WorkerResponseType.OK, null>\n    | WorkerResponse<WorkerResponseType.PREPARED_STATEMENT_ID, number>\n    | WorkerResponse<WorkerResponseType.QUERY_PLAN, Uint8Array>\n    | WorkerResponse<WorkerResponseType.QUERY_RESULT, Uint8Array>\n    | WorkerResponse<WorkerResponseType.QUERY_RESULT_CHUNK, Uint8Array>\n    | WorkerResponse<WorkerResponseType.QUERY_START, Uint8Array>\n    | WorkerResponse<WorkerResponseType.SCRIPT_TOKENS, ScriptTokens>\n    | WorkerResponse<WorkerResponseType.SUCCESS, boolean>\n    | WorkerResponse<WorkerResponseType.TABLE_NAMES, string[]>\n    | WorkerResponse<WorkerResponseType.VERSION_STRING, string>;\n\nexport type WorkerTaskVariant =\n    | WorkerTask<WorkerRequestType.COLLECT_FILE_STATISTICS, [string, boolean], null>\n    | WorkerTask<WorkerRequestType.CLOSE_PREPARED, [number, number], null>\n    | WorkerTask<WorkerRequestType.CONNECT, null, ConnectionID>\n    | WorkerTask<WorkerRequestType.COPY_FILE_TO_BUFFER, string, Uint8Array>\n    | WorkerTask<WorkerRequestType.COPY_FILE_TO_PATH, [string, string], null>\n    | WorkerTask<WorkerRequestType.CREATE_PREPARED, [number, string], number>\n    | WorkerTask<WorkerRequestType.DISCONNECT, ConnectionID, null>\n    | WorkerTask<WorkerRequestType.DROP_FILE, string, boolean>\n    | WorkerTask<WorkerRequestType.DROP_FILES, null, null>\n    | WorkerTask<WorkerRequestType.EXPORT_FILE_STATISTICS, string, FileStatistics>\n    | WorkerTask<WorkerRequestType.FETCH_QUERY_RESULTS, ConnectionID, Uint8Array>\n    | WorkerTask<WorkerRequestType.FLUSH_FILES, null, null>\n    | WorkerTask<WorkerRequestType.GET_FEATURE_FLAGS, null, number>\n    | WorkerTask<WorkerRequestType.GET_TABLE_NAMES, [number, string], string[]>\n    | WorkerTask<WorkerRequestType.GET_VERSION, null, string>\n    | WorkerTask<\n          WorkerRequestType.INSERT_ARROW_FROM_IPC_STREAM,\n          [number, Uint8Array, ArrowInsertOptions | undefined],\n          null\n      >\n    | WorkerTask<WorkerRequestType.INSERT_CSV_FROM_PATH, [number, string, CSVInsertOptions], null>\n    | WorkerTask<WorkerRequestType.INSERT_JSON_FROM_PATH, [number, string, JSONInsertOptions], null>\n    | WorkerTask<WorkerRequestType.INSTANTIATE, [string, string | null], null>\n    | WorkerTask<WorkerRequestType.OPEN, DuckDBConfig, null>\n    | WorkerTask<WorkerRequestType.PING, null, null>\n    | WorkerTask<WorkerRequestType.REGISTER_FILE_BUFFER, [string, Uint8Array], null>\n    | WorkerTask<WorkerRequestType.REGISTER_FILE_HANDLE, [string, any], null>\n    | WorkerTask<WorkerRequestType.REGISTER_FILE_URL, [string, string], null>\n    | WorkerTask<WorkerRequestType.GLOB_FILE_INFOS, string, WebFile[]>\n    | WorkerTask<WorkerRequestType.RESET, null, null>\n    | WorkerTask<WorkerRequestType.RUN_PREPARED, [number, number, any[]], Uint8Array>\n    | WorkerTask<WorkerRequestType.RUN_QUERY, [ConnectionID, string], Uint8Array>\n    | WorkerTask<WorkerRequestType.SEND_PREPARED, [number, number, any[]], Uint8Array>\n    | WorkerTask<WorkerRequestType.SEND_QUERY, [ConnectionID, string], Uint8Array>\n    | WorkerTask<WorkerRequestType.TOKENIZE, string, ScriptTokens>;\n", "import {\n    WorkerRequestType,\n    WorkerResponseType,\n    WorkerResponseVariant,\n    WorkerTaskVariant,\n    WorkerTask,\n    ConnectionID,\n    WorkerTaskReturnType,\n} from './worker_request';\nimport { AsyncDuckDBBindings } from './async_bindings_interface';\nimport { Logger } from '../log';\nimport { AsyncDuckDBConnection } from './async_connection';\nimport { CSVInsertOptions, JSONInsertOptions, ArrowInsertOptions } from '../bindings/insert_options';\nimport { ScriptTokens } from '../bindings/tokens';\nimport { FileStatistics } from '../bindings/file_stats';\nimport { DuckDBConfig } from '../bindings/config';\nimport { flattenArrowField } from '../flat_arrow';\nimport { WebFile } from '../bindings/web_file';\n\nconst TEXT_ENCODER = new TextEncoder();\n\nexport class AsyncDuckDB implements AsyncDuckDBBindings {\n    /** The message handler */\n    protected readonly _onMessageHandler: (event: MessageEvent) => void;\n    /** The error handler */\n    protected readonly _onErrorHandler: (event: ErrorEvent) => void;\n    /** The close handler */\n    protected readonly _onCloseHandler: () => void;\n\n    /** The logger */\n    protected readonly _logger: Logger;\n    /** The worker */\n    protected _worker: Worker | null = null;\n    /** The promise for the worker shutdown */\n    protected _workerShutdownPromise: Promise<null> | null = null;\n    /** Make the worker as terminated */\n    protected _workerShutdownResolver: (value: PromiseLike<null> | null) => void = () => {};\n\n    /** The next message id */\n    protected _nextMessageId = 0;\n    /** The pending requests */\n    protected _pendingRequests: Map<number, WorkerTaskVariant> = new Map();\n\n    constructor(logger: Logger, worker: Worker | null = null) {\n        this._logger = logger;\n        this._onMessageHandler = this.onMessage.bind(this);\n        this._onErrorHandler = this.onError.bind(this);\n        this._onCloseHandler = this.onClose.bind(this);\n        if (worker != null) this.attach(worker);\n    }\n\n    /** Get the logger */\n    public get logger(): Logger {\n        return this._logger;\n    }\n\n    /** Attach to worker */\n    protected attach(worker: Worker): void {\n        this._worker = worker;\n        this._worker.addEventListener('message', this._onMessageHandler);\n        this._worker.addEventListener('error', this._onErrorHandler);\n        this._worker.addEventListener('close', this._onCloseHandler);\n        this._workerShutdownPromise = new Promise<null>(\n            (resolve: (value: PromiseLike<null> | null) => void, _reject: (reason?: void) => void) => {\n                this._workerShutdownResolver = resolve;\n            },\n        );\n    }\n\n    /** Detach from worker */\n    public detach(): void {\n        if (!this._worker) return;\n        this._worker.removeEventListener('message', this._onMessageHandler);\n        this._worker.removeEventListener('error', this._onErrorHandler);\n        this._worker.removeEventListener('close', this._onCloseHandler);\n        this._worker = null;\n        this._workerShutdownResolver(null);\n        this._workerShutdownPromise = null;\n        this._workerShutdownResolver = () => {};\n    }\n\n    /** Kill the worker */\n    public async terminate(): Promise<void> {\n        if (!this._worker) return;\n        this._worker.terminate();\n        //await this._workerShutdownPromise; TODO deadlocking in karma?\n        this._worker = null;\n        this._workerShutdownPromise = null;\n        this._workerShutdownResolver = () => {};\n    }\n\n    /** Post a task */\n    protected async postTask<W extends WorkerTaskVariant>(\n        task: W,\n        transfer: ArrayBuffer[] = [],\n    ): Promise<WorkerTaskReturnType<W>> {\n        if (!this._worker) {\n            console.error('cannot send a message since the worker is not set!');\n            return undefined as any;\n        }\n        const mid = this._nextMessageId++;\n        this._pendingRequests.set(mid, task);\n        this._worker.postMessage({\n            messageId: mid,\n            type: task.type,\n            data: task.data,\n        });\n        return (await task.promise) as WorkerTaskReturnType<W>;\n    }\n\n    /** Received a message */\n    protected onMessage(event: MessageEvent): void {\n        const response = event.data as WorkerResponseVariant;\n\n        // Short-circuit unassociated log entries\n        if (response.type == WorkerResponseType.LOG) {\n            this._logger.log(response.data);\n        }\n\n        // Get associated task\n        const task = this._pendingRequests.get(response.requestId);\n        if (!task) {\n            console.warn(`unassociated response: [${response.requestId}, ${response.type.toString()}]`);\n            return;\n        }\n        this._pendingRequests.delete(response.requestId);\n\n        // Request failed?\n        if (response.type == WorkerResponseType.ERROR) {\n            // Workaround for Firefox not being able to perform structured-clone on Native Errors\n            // https://bugzilla.mozilla.org/show_bug.cgi?id=1556604\n            const e = new Error(response.data.message);\n            e.name = response.data.name;\n            e.stack = response.data.stack;\n\n            task.promiseRejecter(e);\n            return;\n        }\n\n        // Otherwise differentiate between the tasks first\n        switch (task.type) {\n            case WorkerRequestType.CLOSE_PREPARED:\n            case WorkerRequestType.COLLECT_FILE_STATISTICS:\n            case WorkerRequestType.COPY_FILE_TO_PATH:\n            case WorkerRequestType.DISCONNECT:\n            case WorkerRequestType.DROP_FILES:\n            case WorkerRequestType.FLUSH_FILES:\n            case WorkerRequestType.INSERT_ARROW_FROM_IPC_STREAM:\n            case WorkerRequestType.INSERT_CSV_FROM_PATH:\n            case WorkerRequestType.INSERT_JSON_FROM_PATH:\n            case WorkerRequestType.INSTANTIATE:\n            case WorkerRequestType.OPEN:\n            case WorkerRequestType.PING:\n            case WorkerRequestType.REGISTER_FILE_BUFFER:\n            case WorkerRequestType.REGISTER_FILE_HANDLE:\n            case WorkerRequestType.REGISTER_FILE_URL:\n            case WorkerRequestType.RESET:\n                if (response.type == WorkerResponseType.OK) {\n                    task.promiseResolver(response.data);\n                    return;\n                }\n                break;\n            case WorkerRequestType.GLOB_FILE_INFOS:\n                if (response.type == WorkerResponseType.FILE_INFOS) {\n                    task.promiseResolver(response.data);\n                    return;\n                }\n                break;\n            case WorkerRequestType.GET_VERSION:\n                if (response.type == WorkerResponseType.VERSION_STRING) {\n                    task.promiseResolver(response.data);\n                    return;\n                }\n                break;\n            case WorkerRequestType.GET_FEATURE_FLAGS:\n                if (response.type == WorkerResponseType.FEATURE_FLAGS) {\n                    task.promiseResolver(response.data);\n                    return;\n                }\n                break;\n            case WorkerRequestType.GET_TABLE_NAMES:\n                if (response.type == WorkerResponseType.TABLE_NAMES) {\n                    task.promiseResolver(response.data);\n                    return;\n                }\n                break;\n            case WorkerRequestType.TOKENIZE:\n                if (response.type == WorkerResponseType.SCRIPT_TOKENS) {\n                    task.promiseResolver(response.data);\n                    return;\n                }\n                break;\n            case WorkerRequestType.DROP_FILE:\n                if (response.type == WorkerResponseType.SUCCESS) {\n                    task.promiseResolver(response.data);\n                    return;\n                }\n                break;\n            case WorkerRequestType.COPY_FILE_TO_BUFFER:\n                if (response.type == WorkerResponseType.FILE_BUFFER) {\n                    task.promiseResolver(response.data);\n                    return;\n                }\n                break;\n            case WorkerRequestType.EXPORT_FILE_STATISTICS:\n                if (response.type == WorkerResponseType.FILE_STATISTICS) {\n                    task.promiseResolver(response.data);\n                    return;\n                }\n                break;\n            case WorkerRequestType.CONNECT:\n                if (response.type == WorkerResponseType.CONNECTION_INFO) {\n                    task.promiseResolver(response.data);\n                    return;\n                }\n                break;\n            case WorkerRequestType.RUN_PREPARED:\n            case WorkerRequestType.RUN_QUERY:\n                if (response.type == WorkerResponseType.QUERY_RESULT) {\n                    task.promiseResolver(response.data);\n                    return;\n                }\n                break;\n            case WorkerRequestType.SEND_PREPARED:\n            case WorkerRequestType.SEND_QUERY:\n                if (response.type == WorkerResponseType.QUERY_START) {\n                    task.promiseResolver(response.data);\n                    return;\n                }\n                break;\n            case WorkerRequestType.FETCH_QUERY_RESULTS:\n                if (response.type == WorkerResponseType.QUERY_RESULT_CHUNK) {\n                    task.promiseResolver(response.data);\n                    return;\n                }\n                break;\n            case WorkerRequestType.CREATE_PREPARED:\n                if (response.type == WorkerResponseType.PREPARED_STATEMENT_ID) {\n                    task.promiseResolver(response.data);\n                    return;\n                }\n                break;\n        }\n        task.promiseRejecter(new Error(`unexpected response type: ${response.type.toString()}`));\n    }\n\n    /** Received an error */\n    protected onError(event: ErrorEvent): void {\n        console.error(event);\n        console.error(`error in duckdb worker: ${event.message}`);\n        this._pendingRequests.clear();\n    }\n\n    /** The worker was closed */\n    protected onClose(): void {\n        this._workerShutdownResolver(null);\n        if (this._pendingRequests.size != 0) {\n            console.warn(`worker terminated with ${this._pendingRequests.size} pending requests`);\n            return;\n        }\n        this._pendingRequests.clear();\n    }\n\n    /** Reset the duckdb */\n    public async reset(): Promise<null> {\n        const task = new WorkerTask<WorkerRequestType.RESET, null, null>(WorkerRequestType.RESET, null);\n        return await this.postTask(task);\n    }\n\n    /** Ping the worker thread */\n    public async ping(): Promise<any> {\n        const task = new WorkerTask<WorkerRequestType.PING, null, null>(WorkerRequestType.PING, null);\n        await this.postTask(task);\n    }\n    /** Try to drop a file */\n    public async dropFile(name: string): Promise<boolean> {\n        const task = new WorkerTask<WorkerRequestType.DROP_FILE, string, boolean>(WorkerRequestType.DROP_FILE, name);\n        return await this.postTask(task);\n    }\n    /** Try to drop files */\n    public async dropFiles(): Promise<null> {\n        const task = new WorkerTask<WorkerRequestType.DROP_FILES, null, null>(WorkerRequestType.DROP_FILES, null);\n        return await this.postTask(task);\n    }\n    /** Flush all files */\n    public async flushFiles(): Promise<null> {\n        const task = new WorkerTask<WorkerRequestType.FLUSH_FILES, null, null>(WorkerRequestType.FLUSH_FILES, null);\n        return await this.postTask(task);\n    }\n\n    /** Open the database */\n    public async instantiate(mainModuleURL: string, pthreadWorkerURL: string | null = null): Promise<null> {\n        const task = new WorkerTask<WorkerRequestType.INSTANTIATE, [string, string | null], null>(\n            WorkerRequestType.INSTANTIATE,\n            [mainModuleURL, pthreadWorkerURL],\n        );\n        return await this.postTask(task);\n    }\n\n    /** Get the version */\n    public async getVersion(): Promise<string> {\n        const task = new WorkerTask<WorkerRequestType.GET_VERSION, null, string>(WorkerRequestType.GET_VERSION, null);\n        const version = await this.postTask(task);\n        return version;\n    }\n\n    /** Get the feature flags */\n    public async getFeatureFlags(): Promise<number> {\n        const task = new WorkerTask<WorkerRequestType.GET_FEATURE_FLAGS, null, number>(\n            WorkerRequestType.GET_FEATURE_FLAGS,\n            null,\n        );\n        const feature = await this.postTask(task);\n        return feature;\n    }\n\n    /** Open a new database */\n    public async open(config: DuckDBConfig): Promise<void> {\n        const task = new WorkerTask<WorkerRequestType.OPEN, DuckDBConfig, null>(WorkerRequestType.OPEN, config);\n        await this.postTask(task);\n    }\n\n    /** Tokenize a script text */\n    public async tokenize(text: string): Promise<ScriptTokens> {\n        const task = new WorkerTask<WorkerRequestType.TOKENIZE, string, ScriptTokens>(WorkerRequestType.TOKENIZE, text);\n        const tokens = await this.postTask(task);\n        return tokens;\n    }\n\n    /** Connect to the database */\n    public async connectInternal(): Promise<number> {\n        const task = new WorkerTask<WorkerRequestType.CONNECT, null, ConnectionID>(WorkerRequestType.CONNECT, null);\n        return await this.postTask(task);\n    }\n\n    /** Connect to the database */\n    public async connect(): Promise<AsyncDuckDBConnection> {\n        const cid = await this.connectInternal();\n        return new AsyncDuckDBConnection(this, cid);\n    }\n\n    /** Disconnect from the database */\n    public async disconnect(conn: ConnectionID): Promise<void> {\n        const task = new WorkerTask<WorkerRequestType.DISCONNECT, ConnectionID, null>(\n            WorkerRequestType.DISCONNECT,\n            conn,\n        );\n        await this.postTask(task);\n    }\n\n    /** Run a query */\n    public async runQuery(conn: ConnectionID, text: string): Promise<Uint8Array> {\n        const task = new WorkerTask<WorkerRequestType.RUN_QUERY, [ConnectionID, string], Uint8Array>(\n            WorkerRequestType.RUN_QUERY,\n            [conn, text],\n        );\n        return await this.postTask(task);\n    }\n\n    /** Send a query */\n    public async sendQuery(conn: ConnectionID, text: string): Promise<Uint8Array> {\n        const task = new WorkerTask<WorkerRequestType.SEND_QUERY, [ConnectionID, string], Uint8Array>(\n            WorkerRequestType.SEND_QUERY,\n            [conn, text],\n        );\n        return await this.postTask(task);\n    }\n\n    /** Fetch query results */\n    public async fetchQueryResults(conn: ConnectionID): Promise<Uint8Array> {\n        const task = new WorkerTask<WorkerRequestType.FETCH_QUERY_RESULTS, ConnectionID, Uint8Array>(\n            WorkerRequestType.FETCH_QUERY_RESULTS,\n            conn,\n        );\n        return await this.postTask(task);\n    }\n\n    /** Get table names */\n    public async getTableNames(conn: number, text: string): Promise<string[]> {\n        const task = new WorkerTask<WorkerRequestType.GET_TABLE_NAMES, [number, string], string[]>(\n            WorkerRequestType.GET_TABLE_NAMES,\n            [conn, text],\n        );\n        return await this.postTask(task);\n    }\n\n    /** Prepare a statement and return its identifier */\n    public async createPrepared(conn: number, text: string): Promise<number> {\n        const task = new WorkerTask<WorkerRequestType.CREATE_PREPARED, [number, string], number>(\n            WorkerRequestType.CREATE_PREPARED,\n            [conn, text],\n        );\n        return await this.postTask(task);\n    }\n    /** Close a prepared statement */\n    public async closePrepared(conn: number, statement: number): Promise<void> {\n        const task = new WorkerTask<WorkerRequestType.CLOSE_PREPARED, [number, number], null>(\n            WorkerRequestType.CLOSE_PREPARED,\n            [conn, statement],\n        );\n        await this.postTask(task);\n    }\n    /** Execute a prepared statement and return the full result */\n    public async runPrepared(conn: number, statement: number, params: any[]): Promise<Uint8Array> {\n        const task = new WorkerTask<WorkerRequestType.RUN_PREPARED, [ConnectionID, number, any[]], Uint8Array>(\n            WorkerRequestType.RUN_PREPARED,\n            [conn, statement, params],\n        );\n        return await this.postTask(task);\n    }\n    /** Execute a prepared statement and stream the result */\n    public async sendPrepared(conn: number, statement: number, params: any[]): Promise<Uint8Array> {\n        const task = new WorkerTask<WorkerRequestType.SEND_PREPARED, [ConnectionID, number, any[]], Uint8Array>(\n            WorkerRequestType.SEND_PREPARED,\n            [conn, statement, params],\n        );\n        return await this.postTask(task);\n    }\n    /** Glob file infos */\n    public async globFiles(path: string): Promise<WebFile[]> {\n        const task = new WorkerTask<WorkerRequestType.GLOB_FILE_INFOS, string, WebFile[]>(\n            WorkerRequestType.GLOB_FILE_INFOS,\n            path,\n        );\n        return await this.postTask(task);\n    }\n    /** Register file text */\n    public async registerFileText(name: string, text: string): Promise<void> {\n        const buffer = TEXT_ENCODER.encode(text);\n        await this.registerFileBuffer(name, buffer);\n    }\n    /** Register a file path. */\n    public async registerFileURL(name: string, url: string): Promise<void> {\n        if (url === undefined) {\n            url = name;\n        }\n        const task = new WorkerTask<WorkerRequestType.REGISTER_FILE_URL, [string, string], null>(\n            WorkerRequestType.REGISTER_FILE_URL,\n            [name, url],\n        );\n        await this.postTask(task);\n    }\n\n    /** Register an empty file buffer. */\n    public async registerEmptyFileBuffer(name: string): Promise<void> {\n        const task = new WorkerTask<WorkerRequestType.REGISTER_FILE_BUFFER, [string, Uint8Array], null>(\n            WorkerRequestType.REGISTER_FILE_BUFFER,\n            [name, new Uint8Array()],\n        );\n        await this.postTask(task);\n    }\n\n    /** Register a file buffer. */\n    public async registerFileBuffer(name: string, buffer: Uint8Array): Promise<void> {\n        const task = new WorkerTask<WorkerRequestType.REGISTER_FILE_BUFFER, [string, Uint8Array], null>(\n            WorkerRequestType.REGISTER_FILE_BUFFER,\n            [name, buffer],\n        );\n        await this.postTask(task, [buffer.buffer]);\n    }\n\n    /** Register a file handle. */\n    public async registerFileHandle<HandleType>(name: string, handle: HandleType): Promise<void> {\n        const task = new WorkerTask<WorkerRequestType.REGISTER_FILE_HANDLE, [string, any], null>(\n            WorkerRequestType.REGISTER_FILE_HANDLE,\n            [name, handle],\n        );\n        await this.postTask(task, []);\n    }\n\n    /** Enable file statistics */\n    public async collectFileStatistics(name: string, enable: boolean): Promise<void> {\n        const task = new WorkerTask<WorkerRequestType.COLLECT_FILE_STATISTICS, [string, boolean], null>(\n            WorkerRequestType.COLLECT_FILE_STATISTICS,\n            [name, enable],\n        );\n        await this.postTask(task, []);\n    }\n\n    /** Export file statistics */\n    public async exportFileStatistics(name: string): Promise<FileStatistics> {\n        const task = new WorkerTask<WorkerRequestType.EXPORT_FILE_STATISTICS, string, FileStatistics>(\n            WorkerRequestType.EXPORT_FILE_STATISTICS,\n            name,\n        );\n        return await this.postTask(task, []);\n    }\n\n    /** Copy a file to a buffer. */\n    public async copyFileToBuffer(name: string): Promise<Uint8Array> {\n        const task = new WorkerTask<WorkerRequestType.COPY_FILE_TO_BUFFER, string, Uint8Array>(\n            WorkerRequestType.COPY_FILE_TO_BUFFER,\n            name,\n        );\n        return await this.postTask(task);\n    }\n\n    /** Copy a file to a path. */\n    public async copyFileToPath(name: string, path: string): Promise<void> {\n        const task = new WorkerTask<WorkerRequestType.COPY_FILE_TO_PATH, [string, string], null>(\n            WorkerRequestType.COPY_FILE_TO_PATH,\n            [name, path],\n        );\n        await this.postTask(task);\n    }\n\n    /** Insert arrow from an ipc stream */\n    public async insertArrowFromIPCStream(\n        conn: ConnectionID,\n        buffer: Uint8Array,\n        options?: ArrowInsertOptions,\n    ): Promise<void> {\n        if (buffer.length == 0) return;\n        // Pass to the worker\n        const task = new WorkerTask<\n            WorkerRequestType.INSERT_ARROW_FROM_IPC_STREAM,\n            [number, Uint8Array, ArrowInsertOptions | undefined],\n            null\n        >(WorkerRequestType.INSERT_ARROW_FROM_IPC_STREAM, [conn, buffer, options]);\n        await this.postTask(task, [buffer.buffer]);\n    }\n    /** Insert a csv file */\n    public async insertCSVFromPath(conn: ConnectionID, path: string, options: CSVInsertOptions): Promise<void> {\n        // Flatten the table options\n        if (options.columns !== undefined) {\n            const out = [];\n            for (const k in options.columns) {\n                const type = options.columns[k];\n                out.push(flattenArrowField(k, type));\n            }\n            options.columnsFlat = out;\n            delete options.columns;\n        }\n\n        // Pass to the worker\n        const task = new WorkerTask<WorkerRequestType.INSERT_CSV_FROM_PATH, [number, string, CSVInsertOptions], null>(\n            WorkerRequestType.INSERT_CSV_FROM_PATH,\n            [conn, path, options],\n        );\n        await this.postTask(task);\n    }\n    /** Insert a json file */\n    public async insertJSONFromPath(conn: ConnectionID, path: string, options: JSONInsertOptions): Promise<void> {\n        // Flatten the table options\n        if (options.columns !== undefined) {\n            const out = [];\n            for (const k in options.columns) {\n                const type = options.columns[k];\n                out.push(flattenArrowField(k, type));\n            }\n            options.columnsFlat = out;\n            delete options.columns;\n        }\n\n        // Pass to the worker\n        const task = new WorkerTask<WorkerRequestType.INSERT_JSON_FROM_PATH, [number, string, JSONInsertOptions], null>(\n            WorkerRequestType.INSERT_JSON_FROM_PATH,\n            [conn, path, options],\n        );\n        await this.postTask(task);\n    }\n}\n", "import * as duckdb_blocking from '../src/targets/duckdb-node-blocking';\nimport * as duckdb from '../src/targets/duckdb';\nimport path from 'path';\nimport Worker from 'web-worker';\nimport fs from 'fs';\n\n// Loading debug symbols, especially for WASM take insanely long so we just disable the test timeout\njasmine.DEFAULT_TIMEOUT_INTERVAL = 60000;\n\n// Resolve a buffer by fetching from disk\nconst dataDir = path.resolve(__dirname, '../../../data');\nconst resolveBuffer = (url: string) => {\n    const p = path.join(dataDir, url);\n    if (!fs.existsSync(p)) return null;\n    return new Uint8Array(fs.readFileSync(p));\n};\n\n// Resolve test data\nconst resolveData = async (url: string) => {\n    switch (url) {\n        case '/uni/all.zip':\n            return await resolveBuffer('/uni/all.zip');\n        case '/uni/assistenten.parquet':\n            return await resolveBuffer('/uni/assistenten.parquet');\n        case '/uni/studenten.parquet':\n            return await resolveBuffer('/uni/studenten.parquet');\n        case '/uni/hoeren.parquet':\n            return await resolveBuffer('/uni/hoeren.parquet');\n        case '/uni/vorlesungen.parquet':\n            return await resolveBuffer('/uni/vorlesungen.parquet');\n        default:\n            return null;\n    }\n};\n\n// Test environment\nlet db: duckdb_blocking.DuckDBBindings | null = null;\nlet adb: duckdb.AsyncDuckDB | null = null;\nlet worker: Worker | null = null;\n\nbeforeAll(async () => {\n    // Configure the worker\n    const DUCKDB_BUNDLES = {\n        mvp: {\n            mainModule: path.resolve(__dirname, './duckdb.wasm'),\n            mainWorker: path.resolve(__dirname, './duckdb-node.worker.cjs'),\n        },\n        eh: {\n            mainModule: path.resolve(__dirname, './duckdb-eh.wasm'),\n            mainWorker: path.resolve(__dirname, './duckdb-node-eh.worker.cjs'),\n        },\n    };\n    const DUCKDB_CONFIG = await duckdb.selectBundle(DUCKDB_BUNDLES);\n\n    const logger = new duckdb_blocking.VoidLogger();\n    db = await duckdb_blocking.createDuckDB(DUCKDB_BUNDLES, logger, duckdb_blocking.NODE_RUNTIME);\n    await db.instantiate();\n\n    worker = new Worker(DUCKDB_CONFIG.mainWorker);\n    adb = new duckdb.AsyncDuckDB(logger, worker);\n    await adb.instantiate(DUCKDB_CONFIG.mainModule, DUCKDB_CONFIG.pthreadWorker);\n});\n\nafterAll(async () => {\n    if (worker) worker.terminate();\n});\n\nimport { testAllTypes, testAllTypesAsync } from './all_types.test';\nimport { testBindings, testAsyncBindings } from './bindings.test';\nimport { testBatchStream } from './batch_stream.test';\nimport { testFilesystem } from './filesystem.test';\nimport { testAsyncBatchStream } from './batch_stream_async.test';\nimport { testArrowInsert, testArrowInsertAsync } from './insert_arrow.test';\nimport { testJSONInsert, testJSONInsertAsync } from './insert_json.test';\nimport { testCSVInsert, testCSVInsertAsync } from './insert_csv.test';\nimport { testTokenization, testTokenizationAsync } from './tokenizer.test';\nimport { testTableNames, testTableNamesAsync } from './tablenames.test';\nimport { testRegressionAsync } from './regression';\n\ntestTableNames(() => db!);\ntestTableNamesAsync(() => adb!);\ntestRegressionAsync(() => adb!);\ntestAllTypes(() => db!);\ntestAllTypesAsync(() => adb!);\ntestBindings(() => db!, dataDir);\ntestAsyncBindings(() => adb!, dataDir);\ntestBatchStream(() => db!);\ntestAsyncBatchStream(() => adb!);\ntestFilesystem(() => adb!, resolveData, dataDir);\ntestArrowInsert(() => db!);\ntestArrowInsertAsync(() => adb!);\ntestJSONInsert(() => db!);\ntestJSONInsertAsync(() => adb!);\ntestCSVInsert(() => db!);\ntestCSVInsertAsync(() => adb!);\ntestTokenization(() => db!);\ntestTokenizationAsync(() => adb!);\n", "import * as duckdb from '../src/';\nimport { Column, Vector } from 'apache-arrow';\nimport { DuckDBQueryConfig } from '../src/';\n\n// The max interval in microsec from DuckDB is 83 years 3 months 999 days 00:16:39.999999, with months as 30 days.\n// Note that due to Arrow JS not supporting the duration type, the castDurationToInterval option is used for intervals.\n// This has a side-effect that while the value is in microseconds, it only has millisecond accuracy. This is\n// because DuckDB emits intervals in milliseconds and the Arrow Time64 type does not support milliseconds as unit.\nconst MAX_INTERVAL_US = (((83 * (12 * 30) + 3 * 30 + 999) * 24 * 60 + 16) * 60 + 39) * 1000000 + 999000;\n\n// JS Date at +/-8640000000000000ms\nconst MINIMUM_DATE_STR = '-271821-04-20';\nconst MINIMUM_DATE = new Date(Date.UTC(-271821, 3, 20));\nconst MAXIMUM_DATE_STR = '275760-09-13';\nconst MAXIMUM_DATE = new Date(Date.UTC(275760, 8, 13));\n\n// All columns contain 3 values: [min_value, max_value, null]\ntype AnswerObjectType = {\n    [key: string]: any[];\n};\n\ninterface AllTypesTest {\n    name: string;\n    query: string;\n    skip: string[];\n    answerMap: AnswerObjectType;\n    answerCount: number;\n    queryConfig: DuckDBQueryConfig | null;\n}\n\n// These types currently do not work in DuckDB-WASM\n// timestamp_xx and date_tz types will soon be fully supported by duckdb and should be added then.\n// hugeint, dec_18_3, dec38_10 and uuid require JS BigInts for full support, which is currently not supported by ArrowJS\nconst NOT_IMPLEMENTED_TYPES = [\n    'timestamp_s',\n    'timestamp_ms',\n    'timestamp_ns',\n    'timestamp_tz',\n    'hugeint',\n    'dec_18_6',\n    'dec38_10',\n    'uuid',\n    'map',\n];\n\n// These types are supported, but not the full range returned from the test_all_types() table function, here we define\n// the limits we do expect to be supported.\nconst PARTIALLY_IMPLEMENTED_TYPES = ['ubigint', 'bigint', 'date', 'timestamp'];\nconst PARTIALLY_IMPLEMENTED_ANSWER_MAP: AnswerObjectType = {\n    ubigint: [0, Number.MAX_SAFE_INTEGER, null],\n    bigint: [Number.MIN_SAFE_INTEGER, Number.MAX_SAFE_INTEGER, null],\n    date: [MINIMUM_DATE.valueOf(), MAXIMUM_DATE.valueOf(), null],\n    timestamp: [MINIMUM_DATE.valueOf(), MAXIMUM_DATE.valueOf(), null],\n};\n\n// Subqueries that return the limits of the subset of the full range that is implemented\nconst PARTIALLY_IMPLEMENTED_TYPES_SUBSTITUTIONS = [\n    `(SELECT array_extract([0::UINT64,${Number.MAX_SAFE_INTEGER}::UINT64,null::UINT64],i)) as ubigint`,\n    `(SELECT array_extract([${Number.MIN_SAFE_INTEGER}::INT64,${Number.MAX_SAFE_INTEGER}::INT64,null],i)) as bigint`,\n    `(SELECT array_extract(['${MINIMUM_DATE_STR}'::Date,'${MAXIMUM_DATE_STR}'::Date,null],i)) as date`,\n    `(SELECT array_extract(['${MINIMUM_DATE_STR}'::Timestamp,'${MAXIMUM_DATE_STR}'::Timestamp,null],i)) as timestamp`,\n];\n\n// These types do not work with default configuration, but have\nconst TYPES_REQUIRING_CUSTOM_CONFIG = ['dec_4_1', 'dec_9_4'];\n\n// Types that are fully supported.\nconst FULLY_IMPLEMENTED_ANSWER_MAP: AnswerObjectType = {\n    bool: [false, true, null],\n    tinyint: [-128, 127, null],\n    smallint: [-32768, 32767, null],\n    int: [-2147483648, 2147483647, null],\n    utinyint: [0, 255, null],\n    usmallint: [0, 65535, null],\n    uint: [0, 4294967295, null],\n\n    // Note that we multiply by thousand (and add 999 for the max) because the value returned by DuckDB is in microseconds,\n    // whereas the Date object is in milliseconds.\n    time: [0, new Date('1970-01-01T23:59:59.999+00:00').valueOf() * 1000 + 999, null],\n    time_tz: [0, new Date('1970-01-01T23:59:59.999+00:00').valueOf() * 1000 + 999, null],\n    interval: [0, MAX_INTERVAL_US, null],\n\n    float: [-3.4028234663852886e38, 3.4028234663852886e38, null],\n    double: [-1.7976931348623157e308, 1.7976931348623157e308, null],\n    varchar: ['\uD83E\uDD86\uD83E\uDD86\uD83E\uDD86\uD83E\uDD86\uD83E\uDD86\uD83E\uDD86', 'goose', null],\n    small_enum: ['DUCK_DUCK_ENUM', 'GOOSE', null],\n    medium_enum: ['enum_0', 'enum_299', null],\n    large_enum: ['enum_0', 'enum_69999', null],\n\n    int_array: [[], [42, 999, null, null, -42], null],\n    varchar_array: [[], ['\uD83E\uDD86\uD83E\uDD86\uD83E\uDD86\uD83E\uDD86\uD83E\uDD86\uD83E\uDD86', 'goose', null, ''], null],\n    nested_int_array: [[], [[], [42, 999, null, null, -42], null, [], [42, 999, null, null, -42]], null],\n\n    struct: ['{\"a\":null,\"b\":null}', '{\"a\":42,\"b\":\"\uD83E\uDD86\uD83E\uDD86\uD83E\uDD86\uD83E\uDD86\uD83E\uDD86\uD83E\uDD86\"}', null],\n    struct_of_arrays: [\n        '{\"a\":null,\"b\":null}',\n        '{\"a\":[42,999,null,null,-42],\"b\":[\"\uD83E\uDD86\uD83E\uDD86\uD83E\uDD86\uD83E\uDD86\uD83E\uDD86\uD83E\uDD86\",\"goose\",null,\"\"]}',\n        null,\n    ],\n    array_of_structs: [[], ['{\"a\":null,\"b\":null}', '{\"a\":42,\"b\":\"\uD83E\uDD86\uD83E\uDD86\uD83E\uDD86\uD83E\uDD86\uD83E\uDD86\uD83E\uDD86\"}', null], null],\n\n    // XXX sometimes throws\n    // map: ['{}', '{\"key1\":\"\uD83E\uDD86\uD83E\uDD86\uD83E\uDD86\uD83E\uDD86\uD83E\uDD86\uD83E\uDD86\",\"key2\":\"goose\"}', null],\n    blob: [\n        Uint8Array.from([\n            116, 104, 105, 115, 105, 115, 97, 108, 111, 110, 103, 98, 108, 111, 98, 0, 119, 105, 116, 104, 110, 117,\n            108, 108, 98, 121, 116, 101, 115,\n        ]),\n        Uint8Array.from([92, 120, 48, 48, 92, 120, 48, 48, 92, 120, 48, 48, 97]),\n        null,\n    ],\n};\n\n// Replacements for the values we knowingly don't support from the test_all_types query\nconst REPLACE_COLUMNS = PARTIALLY_IMPLEMENTED_TYPES.concat(NOT_IMPLEMENTED_TYPES).concat(TYPES_REQUIRING_CUSTOM_CONFIG);\n\nfunction unpack(v: any): any {\n    if (v === null) return null;\n\n    if (v instanceof Vector) {\n        const ret = Array.from(v.toArray());\n        for (let i = 0; i < ret.length; i++) {\n            if (!v.isValid(i)) {\n                ret[i] = null;\n            }\n        }\n        return unpack(ret);\n    } else if (v instanceof Array) {\n        const ret: any = [];\n        for (let i = 0; i < v.length; i++) {\n            ret[i] = unpack(v[i]);\n        }\n        return ret;\n    } else if (v instanceof Uint8Array) {\n        return v;\n    } else if (v instanceof Object) {\n        return JSON.stringify(v.toJSON());\n    }\n\n    return v;\n}\n\nfunction getValue(x: any): any {\n    if (typeof x?.valueOf === 'function') {\n        return x.valueOf();\n    } else {\n        return x;\n    }\n}\n\nconst ALL_TYPES_TEST: AllTypesTest[] = [\n    {\n        name: 'fully supported types',\n        query: `SELECT * FROM test_all_types();`,\n        skip: REPLACE_COLUMNS,\n        answerMap: FULLY_IMPLEMENTED_ANSWER_MAP,\n        answerCount: REPLACE_COLUMNS.length + Object.keys(FULLY_IMPLEMENTED_ANSWER_MAP).length,\n        queryConfig: null,\n    },\n    {\n        name: 'partially supported types',\n        query: `SELECT ${PARTIALLY_IMPLEMENTED_TYPES_SUBSTITUTIONS.join(', ')}\n                FROM range(0, 3) tbl(i)`,\n        skip: [],\n        answerMap: PARTIALLY_IMPLEMENTED_ANSWER_MAP,\n        answerCount: PARTIALLY_IMPLEMENTED_TYPES.length,\n        queryConfig: null,\n    },\n    {\n        name: 'types with custom config',\n        query: `SELECT ${TYPES_REQUIRING_CUSTOM_CONFIG.join(',')} FROM test_all_types()`,\n        skip: [],\n        answerMap: {\n            dec_4_1: [-999.9000000000001, 999.9000000000001, null],\n            dec_9_4: [-99999.99990000001, 99999.99990000001, null],\n        },\n        answerCount: TYPES_REQUIRING_CUSTOM_CONFIG.length,\n        queryConfig: {\n            castDecimalToDouble: true,\n        },\n    },\n];\n\nexport function testAllTypes(db: () => duckdb.DuckDBBindings): void {\n    let conn: duckdb.DuckDBConnection | null;\n\n    beforeEach(() => {\n        db().flushFiles();\n    });\n\n    afterEach(() => {\n        if (conn) {\n            conn.close();\n            conn = null;\n        }\n        db().flushFiles();\n        db().dropFiles();\n    });\n    describe('Test All Types', () => {\n        for (const test of ALL_TYPES_TEST) {\n            it(test.name, () => {\n                if (test.queryConfig) db().open({ query: test.queryConfig });\n\n                conn = db().connect();\n\n                const results = conn.query(test.query);\n                expect(results.numCols).toEqual(test.answerCount);\n\n                const skip = new Map();\n                for (const s of test.skip) {\n                    skip.set(s, true);\n                }\n                for (let i = 0; i < results.numCols; i++) {\n                    const col = results.getColumnAt(i) as Column;\n                    if (skip.get(col.name)) continue;\n\n                    expect(unpack(getValue(col.get(0)))).toEqual(test.answerMap[col.name][0]); // Min\n                    expect(unpack(getValue(col.get(1)))).toEqual(test.answerMap[col.name][1]); // Max\n                    expect(col.get(2)).toEqual(test.answerMap[col.name][2]); // Null\n                }\n            });\n        }\n    });\n}\n\nexport function testAllTypesAsync(db: () => duckdb.AsyncDuckDB): void {\n    let conn: duckdb.AsyncDuckDBConnection | null = null;\n\n    beforeEach(async () => {\n        await db().flushFiles();\n    });\n    afterEach(async () => {\n        if (conn) {\n            await conn.close();\n            conn = null;\n        }\n        await db().flushFiles();\n        await db().dropFiles();\n    });\n\n    describe('Test All Types Async', () => {\n        for (const test of ALL_TYPES_TEST) {\n            it(test.name, async () => {\n                if (test.queryConfig) db().open({ query: test.queryConfig });\n\n                conn = await db().connect();\n                const results = await conn.query(test.query);\n                expect(results.numCols).toEqual(test.answerCount);\n\n                const skip = new Map();\n                for (const s of test.skip) {\n                    skip.set(s, true);\n                }\n                for (let i = 0; i < results.numCols; i++) {\n                    const col = results.getColumnAt(i) as Column;\n                    if (skip.get(col.name)) continue;\n\n                    expect(Object.keys(test.answerMap)).toContain(col.name);\n                    expect(unpack(getValue(col.get(0)))).toEqual(test.answerMap[col.name][0]); // Min\n                    expect(unpack(getValue(col.get(1)))).toEqual(test.answerMap[col.name][1]); // Max\n                    expect(col.get(2)).toEqual(test.answerMap[col.name][2]); // Null\n                }\n            });\n        }\n    });\n}\n", "import * as arrow from 'apache-arrow';\nimport * as duckdb from '../src/';\n\nexport function testBindings(db: () => duckdb.DuckDBBindings, baseURL: string): void {\n    let conn: duckdb.DuckDBConnection;\n\n    beforeEach(() => {\n        conn = db().connect();\n    });\n\n    afterEach(() => {\n        conn.close();\n        db().flushFiles();\n        db().dropFiles();\n    });\n\n    describe('DuckDBBindings', () => {\n        describe('error handling', () => {\n            it('INVALID SQL', async () => {\n                let error: Error | null = null;\n                try {\n                    conn.send('INVALID');\n                } catch (e: any) {\n                    error = e;\n                }\n                expect(error).not.toBe(null);\n            });\n        });\n\n        //describe('Open', () => {\n        // XXX apparently synchronous XHR on the main thread does not allow for arraybuffer response type?\n        // it('Remote TPCH 0_01', async () => {\n        //     await db().registerFileURL('tpch_0_01.db', `${baseURL}/tpch/0_01/duckdb/db`);\n        //     db().open('tpch_0_01.db');\n        // });\n        //});\n\n        describe('Reset', () => {\n            it('table must disappear', async () => {\n                await db().reset();\n                conn = db().connect();\n                conn.query('CREATE TABLE foo (a int)');\n                let table = conn.query<{ name: arrow.Utf8 }>('PRAGMA show_tables;');\n                let rows = table.toArray();\n                expect(rows.length).toEqual(1);\n                expect(rows[0].name).toEqual('foo');\n                await db().reset();\n                conn = db().connect();\n                table = conn.query<{ name: arrow.Utf8 }>('PRAGMA show_tables;');\n                rows = table.toArray();\n                expect(rows.length).toEqual(0);\n            });\n        });\n\n        describe('Prepared Statement', () => {\n            it('Materialized', async () => {\n                const stmt = conn.prepare('SELECT v::INTEGER + ? AS v FROM generate_series(0, 10000) as t(v);');\n                const result = stmt.query(234);\n                expect(result.length).toBe(10001);\n                stmt.close();\n            });\n\n            it('Streaming', async () => {\n                const stmt = conn.prepare('SELECT v::INTEGER + ? AS v FROM generate_series(0, 10000) as t(v);');\n                const stream = stmt.send(234);\n                let size = 0;\n                for (const batch of stream) {\n                    size += batch.length;\n                }\n                expect(size).toBe(10001);\n                conn.close();\n            });\n            it('Typecheck', async () => {\n                conn.query(`CREATE TABLE typecheck (\n                    a BOOLEAN DEFAULT NULL,\n                    b TINYINT DEFAULT NULL,\n                    c SMALLINT DEFAULT NULL,\n                    d INTEGER DEFAULT NULL,\n                    e BIGINT DEFAULT NULL,\n                    f FLOAT DEFAULT NULL,\n                    g DOUBLE DEFAULT NULL,\n                    h CHAR(11) DEFAULT NULL,\n                    i VARCHAR(11) DEFAULT NULL\n                )`);\n\n                const stmt = conn.prepare('INSERT INTO typecheck VALUES(?,?,?,?,?,?,?,?,?)');\n                expect(() =>\n                    stmt.query(true, 100, 10_000, 1_000_000, 5_000_000_000, 0.5, Math.PI, 'hello world', 'hi'),\n                ).not.toThrow();\n                expect(() =>\n                    stmt.query(\n                        'test', // varchar for bool\n                        100,\n                        10_000,\n                        1_000_000,\n                        5_000_000_000,\n                        0.5,\n                        Math.PI,\n                        'hello world',\n                        'hi',\n                    ),\n                ).toThrow();\n                expect(() =>\n                    stmt.query(\n                        true,\n                        10_000, // smallint for tinyint\n                        10_000,\n                        1_000_000,\n                        5_000_000_000,\n                        0.5,\n                        Math.PI,\n                        'hello world',\n                        'hi',\n                    ),\n                ).toThrow();\n                expect(() =>\n                    stmt.query(\n                        true,\n                        100,\n                        1_000_000, // int for smallint\n                        1_000_000,\n                        5_000_000_000,\n                        0.5,\n                        Math.PI,\n                        'hello world',\n                        'hi',\n                    ),\n                ).toThrow();\n                expect(() =>\n                    stmt.query(\n                        true,\n                        100,\n                        10_000,\n                        5_000_000_000, // bigint for int\n                        5_000_000_000,\n                        0.5,\n                        Math.PI,\n                        'hello world',\n                        'hi',\n                    ),\n                ).toThrow();\n                conn.close();\n            });\n        });\n    });\n}\n\nexport function testAsyncBindings(adb: () => duckdb.AsyncDuckDB, baseURL: string): void {\n    beforeEach(async () => {});\n\n    afterEach(async () => {\n        await adb().flushFiles();\n        await adb().dropFiles();\n        await adb().open({\n            path: ':memory:',\n        });\n    });\n\n    describe('Bindings', () => {\n        describe('Open', () => {\n            it('Remote TPCH 0_01', async () => {\n                await adb().registerFileURL('tpch_0_01.db', `${baseURL}/tpch/0_01/duckdb/db`);\n                await adb().open({\n                    path: 'tpch_0_01.db',\n                });\n                const conn = await adb().connect();\n                const table = await conn.query<{\n                    a: arrow.Int;\n                }>('select count(*)::INTEGER as a from lineitem');\n                const rows = table.toArray();\n                expect(rows.length).toEqual(1);\n                expect(rows[0].a).toEqual(60175);\n            });\n        });\n\n        describe('Patching', () => {\n            it('Count(*) Default', async () => {\n                await adb().open({\n                    path: ':memory:',\n                    query: {\n                        castBigIntToDouble: false,\n                    },\n                });\n                const conn = await adb().connect();\n                const table = await conn.query('select 1::BIGINT');\n                expect(table.schema.fields.length).toEqual(1);\n                expect(table.schema.fields[0].typeId).toEqual(arrow.Type.Int);\n            });\n\n            it('Count(*) No BigInt', async () => {\n                await adb().open({\n                    path: ':memory:',\n                    query: {\n                        castBigIntToDouble: true,\n                    },\n                });\n                const conn = await adb().connect();\n                const table = await conn.query('select 1::BIGINT');\n                expect(table.schema.fields.length).toEqual(1);\n                expect(table.schema.fields[0].typeId).toEqual(arrow.Type.Float);\n            });\n        });\n\n        describe('Prepared Statement', () => {\n            it('Materialized', async () => {\n                const conn = await adb().connect();\n                const stmt = await conn.prepare('SELECT v + ? FROM generate_series(0, 10000) as t(v);');\n                const result = await stmt.query(234);\n                expect(result.length).toBe(10001);\n                await stmt.close();\n            });\n\n            it('Streaming', async () => {\n                const conn = await adb().connect();\n                const stmt = await conn.prepare('SELECT v::INTEGER + ? AS v FROM generate_series(0, 10000) as t(v);');\n                const stream = await stmt.send(234);\n                let size = 0;\n                for await (const batch of stream) {\n                    size += batch.length;\n                }\n                expect(size).toBe(10001);\n                await conn.close();\n            });\n            it('Typecheck', async () => {\n                const conn = await adb().connect();\n                await conn.query(`CREATE TABLE typecheck (\n                    a BOOLEAN DEFAULT NULL,\n                    b TINYINT DEFAULT NULL,\n                    c SMALLINT DEFAULT NULL,\n                    d INTEGER DEFAULT NULL,\n                    e BIGINT DEFAULT NULL,\n                    f FLOAT DEFAULT NULL,\n                    g DOUBLE DEFAULT NULL,\n                    h CHAR(11) DEFAULT NULL,\n                    i VARCHAR(11) DEFAULT NULL\n                )`);\n\n                const stmt = await conn.prepare('INSERT INTO typecheck VALUES(?,?,?,?,?,?,?,?,?)');\n\n                const expectToThrow = async (fn: () => Promise<void>) => {\n                    let throwed = false;\n                    try {\n                        await fn();\n                    } catch (e) {\n                        throwed = true;\n                    }\n                    expect(throwed).toBe(true);\n                };\n                expectToThrow(async () => {\n                    await stmt.query(\n                        'test', // varchar for bool\n                        100,\n                        10_000,\n                        1_000_000,\n                        5_000_000_000,\n                        0.5,\n                        Math.PI,\n                        'hello world',\n                        'hi',\n                    );\n                });\n                expectToThrow(async () => {\n                    await stmt.query(\n                        true,\n                        10_000, // smallint for tinyint\n                        10_000,\n                        1_000_000,\n                        5_000_000_000,\n                        0.5,\n                        Math.PI,\n                        'hello world',\n                        'hi',\n                    );\n                });\n                expectToThrow(async () => {\n                    await stmt.query(\n                        true,\n                        100,\n                        1_000_000, // int for smallint\n                        1_000_000,\n                        5_000_000_000,\n                        0.5,\n                        Math.PI,\n                        'hello world',\n                        'hi',\n                    );\n                });\n                expectToThrow(async () => {\n                    await stmt.query(\n                        true,\n                        100,\n                        10_000,\n                        5_000_000_000, // bigint for int\n                        5_000_000_000,\n                        0.5,\n                        Math.PI,\n                        'hello world',\n                        'hi',\n                    );\n                });\n                await conn.close();\n            });\n        });\n    });\n}\n", "import * as duckdb from '../src/';\nimport * as arrow from 'apache-arrow';\n\nconst testRows = 10000;\n\nexport function testBatchStream(db: () => duckdb.DuckDBBindings): void {\n    let conn: duckdb.DuckDBConnection;\n\n    beforeEach(() => {\n        conn = db().connect();\n    });\n\n    afterEach(() => {\n        conn.close();\n        db().flushFiles();\n        db().dropFiles();\n    });\n\n    describe('Arrow Record-Batches Row-Major', () => {\n        describe('single column', () => {\n            it('TINYINT', () => {\n                const result = conn.send(`\n                    SELECT (v & 127)::TINYINT AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                let i = 0;\n                for (const batch of result) {\n                    expect(batch.numCols).toBe(1);\n                    for (const row of batch) {\n                        expect(row!.v).toBe(i++ & 127);\n                    }\n                }\n                expect(i).toBe(testRows + 1);\n            });\n\n            it('SMALLINT', () => {\n                const result = conn.send(`\n                    SELECT (v & 32767)::SMALLINT AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                let i = 0;\n                for (const batch of result) {\n                    expect(batch.numCols).toBe(1);\n                    for (const row of batch) {\n                        expect(row!.v).toBe(i++ & 32767);\n                    }\n                }\n                expect(i).toBe(testRows + 1);\n            });\n\n            it('INTEGER', () => {\n                const result = conn.send(`\n                    SELECT v::INTEGER AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                let i = 0;\n                for (const batch of result) {\n                    expect(batch.numCols).toBe(1);\n                    for (const row of batch) {\n                        expect(row!.v).toBe(i++);\n                    }\n                }\n                expect(i).toBe(testRows + 1);\n            });\n\n            it('BIGINT', () => {\n                const result = conn.send(`\n                    SELECT v::BIGINT AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                let i = 0;\n                for (const batch of result) {\n                    expect(batch.numCols).toBe(1);\n                    for (const row of batch) {\n                        expect(row!.v.valueOf()).toBe(i++);\n                    }\n                }\n                expect(i).toBe(testRows + 1);\n            });\n\n            it('STRING', () => {\n                const result = conn.send(`\n                    SELECT v::VARCHAR AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                let i = 0;\n                for (const batch of result) {\n                    expect(batch.numCols).toBe(1);\n                    for (const row of batch) {\n                        expect(row!.v).toBe(String(i++));\n                    }\n                }\n                expect(i).toBe(testRows + 1);\n            });\n        });\n    });\n\n    describe('Arrow Record-Batches Column-Major', () => {\n        describe('single column', () => {\n            it('TINYINT', () => {\n                const result = conn.send(`\n                    SELECT (v & 127)::TINYINT AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                let i = 0;\n                for (const batch of result) {\n                    expect(batch.numCols).toBe(1);\n                    for (const v of batch.getChildAt(0)!) {\n                        expect(v).toBe(i++ & 127);\n                    }\n                }\n                expect(i).toBe(testRows + 1);\n            });\n\n            it('SMALLINT', () => {\n                const result = conn.send(`\n                    SELECT (v & 32767)::SMALLINT AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                let i = 0;\n                for (const batch of result) {\n                    expect(batch.numCols).toBe(1);\n                    for (const v of batch.getChildAt(0)!) {\n                        expect(v).toBe(i++ & 32767);\n                    }\n                }\n                expect(i).toBe(testRows + 1);\n            });\n\n            it('INTEGER', () => {\n                const result = conn.send(`\n                    SELECT v::INTEGER AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                let i = 0;\n                for (const batch of result) {\n                    expect(batch.numCols).toBe(1);\n                    for (const v of batch.getChildAt(0)!) {\n                        expect(v).toBe(i++);\n                    }\n                }\n                expect(i).toBe(testRows + 1);\n            });\n\n            it('BIGINT', () => {\n                const result = conn.send(`\n                    SELECT v::BIGINT AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                let i = 0;\n                for (const batch of result) {\n                    expect(batch.numCols).toBe(1);\n                    for (const v of batch.getChildAt(0)!) {\n                        expect(v.valueOf()).toBe(i++);\n                    }\n                }\n                expect(i).toBe(testRows + 1);\n            });\n\n            it('STRING', () => {\n                const result = conn.send(`\n                    SELECT v::VARCHAR AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                let i = 0;\n                for (const batch of result) {\n                    expect(batch.numCols).toBe(1);\n                    for (const v of batch.getChildAt(0)!) {\n                        expect(v).toBe(String(i++));\n                    }\n                }\n                expect(i).toBe(testRows + 1);\n            });\n        });\n    });\n\n    describe('Arrow Table Row-Major', () => {\n        describe('single column', () => {\n            it('TINYINT', () => {\n                const result = conn.send(`\n                    SELECT (v & 127)::TINYINT AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                const table = arrow.Table.from(result);\n                let i = 0;\n                for (const row of table) {\n                    expect(row.v).toBe(i++ & 127);\n                }\n                expect(i).toBe(testRows + 1);\n            });\n\n            it('SMALLINT', () => {\n                const result = conn.send(`\n                    SELECT (v & 32767)::SMALLINT AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                const table = arrow.Table.from(result);\n                let i = 0;\n                for (const row of table) {\n                    expect(row.v).toBe(i++ & 32767);\n                }\n                expect(i).toBe(testRows + 1);\n            });\n\n            it('INTEGER', () => {\n                const result = conn.send(`\n                    SELECT v::INTEGER AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                const table = arrow.Table.from(result);\n                let i = 0;\n                for (const row of table) {\n                    expect(row.v).toBe(i++);\n                }\n                expect(i).toBe(testRows + 1);\n            });\n\n            it('BIGINT', () => {\n                const result = conn.send(`\n                    SELECT v::BIGINT AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                const table = arrow.Table.from(result);\n                let i = 0;\n                for (const row of table) {\n                    expect(row.v.valueOf()).toBe(i++);\n                }\n                expect(i).toBe(testRows + 1);\n            });\n\n            it('STRING', () => {\n                const result = conn.send(`\n                    SELECT v::VARCHAR AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                const table = arrow.Table.from(result);\n                let i = 0;\n                for (const row of table) {\n                    expect(row.v.valueOf()).toBe(String(i++));\n                }\n                expect(i).toBe(testRows + 1);\n            });\n        });\n    });\n\n    describe('Arrow Table Column-Major', () => {\n        describe('single column', () => {\n            it('TINYINT', () => {\n                const result = conn.send(`\n                    SELECT (v & 127)::TINYINT AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                const table = arrow.Table.from(result);\n                let i = 0;\n                for (const v of table.getColumnAt(0)!) {\n                    expect(v).toBe(i++ & 127);\n                }\n                expect(i).toBe(testRows + 1);\n            });\n\n            it('SMALLINT', () => {\n                const result = conn.send(`\n                    SELECT (v & 32767)::SMALLINT AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                const table = arrow.Table.from(result);\n                let i = 0;\n                for (const v of table.getColumnAt(0)!) {\n                    expect(v).toBe(i++ & 32767);\n                }\n                expect(i).toBe(testRows + 1);\n            });\n\n            it('INTEGER', () => {\n                const result = conn.send(`\n                    SELECT v::INTEGER AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                const table = arrow.Table.from(result);\n                let i = 0;\n                for (const v of table.getColumnAt(0)!) {\n                    expect(v).toBe(i++);\n                }\n                expect(i).toBe(testRows + 1);\n            });\n\n            it('BIGINT', () => {\n                const result = conn.send(`\n                    SELECT v::BIGINT AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                const table = arrow.Table.from(result);\n                let i = 0;\n                for (const v of table.getColumnAt(0)!) {\n                    expect(v.valueOf()).toBe(i++);\n                }\n                expect(i).toBe(testRows + 1);\n            });\n\n            it('STRING', () => {\n                const result = conn.send(`\n                    SELECT v::VARCHAR AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                const table = arrow.Table.from(result);\n                let i = 0;\n                for (const v of table.getColumnAt(0)!) {\n                    expect(v.valueOf()).toBe(String(i++));\n                }\n                expect(i).toBe(testRows + 1);\n            });\n        });\n    });\n}\n", "import * as duckdb from '../src/';\nimport * as arrow from 'apache-arrow';\n\nconst decoder = new TextDecoder();\n\nexport function testFilesystem(\n    db: () => duckdb.AsyncDuckDB,\n    resolveData: (url: string) => Promise<Uint8Array | null>,\n    baseDir: string,\n): void {\n    let conn: duckdb.AsyncDuckDBConnection;\n\n    beforeEach(async () => {\n        conn = await db().connect();\n    });\n\n    afterEach(async () => {\n        await conn.close();\n        await db().flushFiles();\n        await db().dropFiles();\n    });\n\n    describe('File buffer registration', () => {\n        const test = async () => {\n            const result = await conn.send(`SELECT matrnr FROM parquet_scan('studenten.parquet');`);\n            const table = await arrow.Table.from<{ matrnr: arrow.Int }>(result);\n            expect(table.getColumnAt(0)?.toArray()).toEqual(\n                new Int32Array([24002, 25403, 26120, 26830, 27550, 28106, 29120, 29555]),\n            );\n        };\n        it('File buffer used once', async () => {\n            const students = await resolveData('/uni/studenten.parquet');\n            expect(students).not.toBeNull();\n            await db().registerFileBuffer('studenten.parquet', students!);\n            await test();\n        });\n        it('File buffer registered twice', async () => {\n            const students = await resolveData('/uni/studenten.parquet');\n            expect(students).not.toBeNull();\n            await db().registerFileBuffer('studenten.parquet', students!);\n            await test();\n            await db().registerFileBuffer('studenten.parquet', students!);\n            await test();\n        });\n        it('File buffer used twice', async () => {\n            const students = await resolveData('/uni/studenten.parquet');\n            expect(students).not.toBeNull();\n            await db().registerFileBuffer('studenten.parquet', students!);\n            await test();\n            await test();\n        });\n    });\n\n    describe('Parquet Scans', () => {\n        it('single table from buffer', async () => {\n            const students = await resolveData('/uni/studenten.parquet');\n            expect(students).not.toBeNull();\n            await db().registerFileBuffer('studenten.parquet', students!);\n            const result = await conn.send(`SELECT matrnr FROM parquet_scan('studenten.parquet');`);\n            const table = await arrow.Table.from<{ matrnr: arrow.Int }>(result);\n            expect(table.getColumnAt(0)?.toArray()).toEqual(\n                new Int32Array([24002, 25403, 26120, 26830, 27550, 28106, 29120, 29555]),\n            );\n        });\n\n        it('simple join', async () => {\n            const students = await resolveData('/uni/studenten.parquet');\n            const hoeren = await resolveData('/uni/hoeren.parquet');\n            const vorlesungen = await resolveData('/uni/vorlesungen.parquet');\n            expect(students).not.toBeNull();\n            expect(hoeren).not.toBeNull();\n            expect(vorlesungen).not.toBeNull();\n            await db().registerFileBuffer('studenten.parquet', students!);\n            await db().registerFileBuffer('hoeren.parquet', hoeren!);\n            await db().registerFileBuffer('vorlesungen.parquet', vorlesungen!);\n\n            const result = await conn.send(`\n                    SELECT students.matrnr, vorlesungen.titel\n                    FROM parquet_scan('studenten.parquet') students\n                    INNER JOIN parquet_scan('hoeren.parquet') hoeren ON (students.matrnr = hoeren.matrnr)\n                    INNER JOIN parquet_scan('vorlesungen.parquet') vorlesungen ON (vorlesungen.vorlnr = hoeren.vorlnr);\n                `);\n            const table = await arrow.Table.from<{ matrnr: arrow.Int; titel: arrow.Utf8 }>(result);\n            expect(table.numCols).toBe(2);\n            const flat = [];\n            for (const row of table) {\n                flat.push({\n                    matrnr: row.matrnr,\n                    titel: row.titel?.toString(),\n                });\n            }\n            expect(flat).toEqual([\n                { matrnr: 26120, titel: 'Grundz\u00FCge' },\n                { matrnr: 27550, titel: 'Grundz\u00FCge' },\n                { matrnr: 27550, titel: 'Logik' },\n                { matrnr: 28106, titel: 'Ethik' },\n                { matrnr: 28106, titel: 'Wissenschaftstheorie' },\n                { matrnr: 28106, titel: 'Bioethik' },\n                { matrnr: 28106, titel: 'Der Wiener Kreis' },\n                { matrnr: 29120, titel: 'Grundz\u00FCge' },\n                { matrnr: 29120, titel: 'Ethik' },\n                { matrnr: 29120, titel: 'M\u00E4eutik' },\n                { matrnr: 29555, titel: 'Glaube und Wissen' },\n                { matrnr: 25403, titel: 'Glaube und Wissen' },\n            ]);\n        });\n    });\n\n    describe('Writing', () => {\n        it('Copy To CSV Buffer', async () => {\n            const students = await resolveData('/uni/studenten.parquet');\n            expect(students).not.toBeNull();\n            await db().registerFileBuffer('studenten.parquet', students!);\n            await db().registerEmptyFileBuffer('students.csv');\n            await conn.query(`CREATE TABLE students AS SELECT * FROM parquet_scan('studenten.parquet');`);\n            await conn.query(`COPY students TO 'students.csv' WITH (HEADER 1, DELIMITER ';', FORMAT CSV);`);\n            await conn.query(`DROP TABLE IF EXISTS students`);\n            const outBuffer = await db().copyFileToBuffer('students.csv');\n            expect(outBuffer).not.toBeNull();\n            const text = decoder.decode(outBuffer!);\n            expect(text).toBe(`matrnr;name;semester\n24002;Xenokrates;18\n25403;Jonas;12\n26120;Fichte;10\n26830;Aristoxenos;8\n27550;Schopenhauer;6\n28106;Carnap;3\n29120;Theophrastos;2\n29555;Feuerbach;2\n`);\n        });\n\n        it('Copy To Parquet', async () => {\n            const students = await resolveData('/uni/studenten.parquet');\n            expect(students).not.toBeNull();\n            await db().registerFileBuffer('studenten.parquet', students!);\n            await db().registerEmptyFileBuffer('students2.parquet');\n            await conn.query(`CREATE TABLE students2 AS SELECT * FROM parquet_scan('studenten.parquet');`);\n            await conn.query(`COPY students2 TO 'students2.parquet' (FORMAT PARQUET);`);\n            const url = await db().copyFileToBuffer('students2.parquet');\n            expect(url).not.toBeNull();\n        });\n\n        it('Copy To Parquet And Load Again', async () => {\n            const students = await resolveData('/uni/studenten.parquet');\n            expect(students).not.toBeNull();\n            await db().registerFileBuffer('studenten.parquet', students!);\n            await db().registerEmptyFileBuffer('students3.parquet');\n            await conn.query(`CREATE TABLE students3 AS SELECT * FROM parquet_scan('studenten.parquet');`);\n            await conn.query(`COPY students3 TO 'students3.parquet' (FORMAT PARQUET);`);\n            const url = await db().copyFileToBuffer('students3.parquet');\n            expect(url).not.toBeNull();\n            await conn.query(`CREATE TABLE students4 AS SELECT * FROM parquet_scan('students3.parquet');`);\n            const result = await conn.send(`SELECT matrnr FROM students4;`);\n            const table = await arrow.Table.from<{ matrnr: arrow.Int }>(result);\n            expect(table.getColumnAt(0)?.toArray()).toEqual(\n                new Int32Array([24002, 25403, 26120, 26830, 27550, 28106, 29120, 29555]),\n            );\n        });\n    });\n\n    describe('File access', () => {\n        it('Small Parquet file', async () => {\n            await db().registerFileURL('studenten.parquet', `${baseDir}/uni/studenten.parquet`);\n            const result = await conn.send(`SELECT matrnr FROM parquet_scan('studenten.parquet');`);\n            const table = await arrow.Table.from<{ matrnr: arrow.Int }>(result);\n            expect(table.getColumnAt(0)?.toArray()).toEqual(\n                new Int32Array([24002, 25403, 26120, 26830, 27550, 28106, 29120, 29555]),\n            );\n        });\n\n        it('Large Parquet file', async () => {\n            await db().registerFileURL('lineitem.parquet', `${baseDir}/tpch/0_01/parquet/lineitem.parquet`);\n            const result = await conn.send(`SELECT count(*)::INTEGER as cnt FROM parquet_scan('lineitem.parquet');`);\n            const table = await arrow.Table.from<{ cnt: arrow.Int }>(result);\n            expect(table.getColumnAt(0)?.get(0)).toBeGreaterThan(60_000);\n        });\n    });\n\n    describe('Export', () => {\n        it('Generate Series as CSV', async () => {\n            await conn.query('CREATE TABLE foo AS SELECT * FROM generate_series(1, 5) t(v)');\n            await conn.query(`EXPORT DATABASE '/tmp/duckdbexportcsv'`);\n\n            const results = await db().globFiles('/tmp/duckdbexportcsv/*');\n            expect(results).not.toEqual([]);\n            expect(results.length).toEqual(3);\n            const filenames = results.map(file => file.fileName).sort();\n            expect(filenames).toEqual([\n                '/tmp/duckdbexportcsv/0_foo.csv',\n                '/tmp/duckdbexportcsv/load.sql',\n                '/tmp/duckdbexportcsv/schema.sql',\n            ]);\n\n            const csv_buffer_utf8 = await db().copyFileToBuffer('/tmp/duckdbexportcsv/0_foo.csv');\n            const load_script_utf8 = await db().copyFileToBuffer('/tmp/duckdbexportcsv/load.sql');\n            const schema_script_utf8 = await db().copyFileToBuffer('/tmp/duckdbexportcsv/schema.sql');\n            expect(load_script_utf8.length).not.toEqual(0);\n            expect(schema_script_utf8.length).not.toEqual(0);\n            expect(csv_buffer_utf8.length).not.toEqual(0);\n\n            const load_script = decoder.decode(load_script_utf8);\n            const schema_script = decoder.decode(schema_script_utf8);\n            const csv_buffer = decoder.decode(csv_buffer_utf8);\n            expect(load_script.trim()).toEqual(\n                `COPY foo FROM '/tmp/duckdbexportcsv/0_foo.csv' (FORMAT 'csv', quote '\"', delimiter ',', header 0);`,\n            );\n            expect(schema_script.trim()).toEqual(`CREATE TABLE foo(v BIGINT);`);\n            expect(csv_buffer.trim()).toEqual(`1\\n2\\n3\\n4\\n5`);\n        });\n\n        it('Generate Series as Parquet', async () => {\n            await conn.query('CREATE TABLE foo AS SELECT * FROM generate_series(1, 5) t(v)');\n            await conn.query(`EXPORT DATABASE '/tmp/duckdbexportparquet' (FORMAT PARQUET)`);\n\n            const results = await db().globFiles('/tmp/duckdbexportparquet/*');\n            expect(results).not.toEqual([]);\n            expect(results.length).toEqual(3);\n            const filenames = results.map(file => file.fileName).sort();\n            expect(filenames).toEqual([\n                '/tmp/duckdbexportparquet/0_foo.parquet',\n                '/tmp/duckdbexportparquet/load.sql',\n                '/tmp/duckdbexportparquet/schema.sql',\n            ]);\n\n            const parquet_buffer = await db().copyFileToBuffer('/tmp/duckdbexportparquet/0_foo.parquet');\n            const load_script_utf8 = await db().copyFileToBuffer('/tmp/duckdbexportparquet/load.sql');\n            const schema_script_utf8 = await db().copyFileToBuffer('/tmp/duckdbexportparquet/schema.sql');\n            expect(load_script_utf8.length).not.toEqual(0);\n            expect(schema_script_utf8.length).not.toEqual(0);\n            expect(parquet_buffer.length).not.toEqual(0);\n\n            const content = await conn.query(\n                `SELECT v::integer FROM parquet_scan('/tmp/duckdbexportparquet/0_foo.parquet')`,\n            );\n            expect(content.nullCount).toEqual(0);\n            expect(content.length).toEqual(5);\n            expect(content.getColumnAt(0)?.toArray()).toEqual(new Int32Array([1, 2, 3, 4, 5]));\n        });\n    });\n\n    describe('Copy', () => {\n        it('Generate Series as Parquet', async () => {\n            await conn.query(\n                `COPY (SELECT * FROM generate_series(1, 5) t(v)) TO '/tmp/duckdbcopytest.parquet' (FORMAT 'parquet')`,\n            );\n            const results = await db().globFiles('/tmp/duckdbcopytest*');\n            expect(results).not.toEqual([]);\n            expect(results.length).toEqual(1);\n            const filenames = results.map(file => file.fileName).sort();\n            expect(filenames).toEqual(['/tmp/duckdbcopytest.parquet']);\n            const parquet_buffer = await db().copyFileToBuffer('/tmp/duckdbcopytest.parquet');\n            expect(parquet_buffer.length).not.toEqual(0);\n            const content = await conn.query(`SELECT v::integer FROM parquet_scan('/tmp/duckdbcopytest.parquet')`);\n            expect(content.length).toEqual(5);\n            expect(content.getColumnAt(0)?.toArray()).toEqual(new Int32Array([1, 2, 3, 4, 5]));\n        });\n    });\n}\n", "import * as duckdb from '../src/';\nimport * as arrow from 'apache-arrow';\n\nconst testRows = 10000;\n\nexport function testAsyncBatchStream(db: () => duckdb.AsyncDuckDB): void {\n    let conn: duckdb.AsyncDuckDBConnection;\n\n    beforeEach(async () => {\n        conn = await db().connect();\n    });\n\n    afterEach(async () => {\n        await conn.close();\n        await db().flushFiles();\n        await db().dropFiles();\n    });\n\n    describe('AsyncDuckDB', () => {\n        it('ping', async () => {\n            await db().ping();\n        });\n    });\n\n    describe('Arrow Record-Batches Row-Major', () => {\n        describe('single column', () => {\n            it('TINYINT', async () => {\n                const result = await conn.send(`\n                    SELECT (v & 127)::TINYINT AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                let i = 0;\n                for await (const batch of result) {\n                    expect(batch.numCols).toBe(1);\n                    for (const row of batch) {\n                        expect(row!.v).toBe(i++ & 127);\n                    }\n                }\n                expect(i).toBe(testRows + 1);\n            });\n\n            it('SMALLINT', async () => {\n                const result = await conn.send(`\n                    SELECT (v & 32767)::SMALLINT AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                let i = 0;\n                for await (const batch of result) {\n                    expect(batch.numCols).toBe(1);\n                    for (const v of batch.getChildAt(0)!) {\n                        expect(v).toBe(i++ & 32767);\n                    }\n                }\n                expect(i).toBe(testRows + 1);\n            });\n\n            it('INTEGER', async () => {\n                const result = await conn.send(`\n                    SELECT v::INTEGER AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                let i = 0;\n                for await (const batch of result) {\n                    expect(batch.numCols).toBe(1);\n                    for (const v of batch.getChildAt(0)!) {\n                        expect(v).toBe(i++);\n                    }\n                }\n                expect(i).toBe(testRows + 1);\n            });\n\n            it('BIGINT', async () => {\n                const result = await conn.send(`\n                    SELECT v::BIGINT AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                let i = 0;\n                for await (const batch of result) {\n                    expect(batch.numCols).toBe(1);\n                    for (const v of batch.getChildAt(0)!) {\n                        expect(v.valueOf()).toBe(i++);\n                    }\n                }\n                expect(i).toBe(testRows + 1);\n            });\n\n            it('STRING', async () => {\n                const result = await conn.send(`\n                    SELECT v::VARCHAR AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                let i = 0;\n                for await (const batch of result) {\n                    expect(batch.numCols).toBe(1);\n                    for (const v of batch.getChildAt(0)!) {\n                        expect(v).toBe(String(i++));\n                    }\n                }\n                expect(i).toBe(testRows + 1);\n            });\n        });\n\n        describe('scripts', () => {\n            it('test1', async () => {\n                const result = await conn.send(`\n                    SELECT v::INTEGER AS x, (sin(v) * 100 + 100)::INTEGER AS y FROM generate_series(0, ${testRows}) as t(v)\n                `);\n                let i = 0;\n                for await (const batch of result) {\n                    expect(batch.numCols).toBe(2);\n                    for (const row of batch) {\n                        expect(row!.x).toBe(i++);\n                    }\n                }\n                expect(i).toBe(testRows + 1);\n            });\n        });\n    });\n\n    describe('Arrow Record-Batches Column-Major', () => {\n        describe('single column', () => {\n            it('TINYINT', async () => {\n                const result = await conn.send(`\n                    SELECT (v & 127)::TINYINT AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                let i = 0;\n                for await (const batch of result) {\n                    expect(batch.numCols).toBe(1);\n                    for (const v of batch.getChildAt(0)!) {\n                        expect(v).toBe(i++ & 127);\n                    }\n                }\n                expect(i).toBe(testRows + 1);\n            });\n\n            it('SMALLINT', async () => {\n                const result = await conn.send(`\n                    SELECT (v & 32767)::SMALLINT AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                let i = 0;\n                for await (const batch of result) {\n                    expect(batch.numCols).toBe(1);\n                    for (const v of batch.getChildAt(0)!) {\n                        expect(v).toBe(i++ & 32767);\n                    }\n                }\n                expect(i).toBe(testRows + 1);\n            });\n\n            it('INTEGER', async () => {\n                const result = await conn.send(`\n                    SELECT v::INTEGER AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                let i = 0;\n                for await (const batch of result) {\n                    expect(batch.numCols).toBe(1);\n                    for (const v of batch.getChildAt(0)!) {\n                        expect(v).toBe(i++);\n                    }\n                }\n                expect(i).toBe(testRows + 1);\n            });\n\n            it('BIGINT', async () => {\n                const result = await conn.send(`\n                    SELECT v::BIGINT AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                let i = 0;\n                for await (const batch of result) {\n                    expect(batch.numCols).toBe(1);\n                    for (const v of batch.getChildAt(0)!) {\n                        expect(v.valueOf()).toBe(i++);\n                    }\n                }\n                expect(i).toBe(testRows + 1);\n            });\n\n            it('STRING', async () => {\n                const result = await conn.send(`\n                    SELECT v::VARCHAR AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                let i = 0;\n                for await (const batch of result) {\n                    expect(batch.numCols).toBe(1);\n                    for (const v of batch.getChildAt(0)!) {\n                        expect(v).toBe(String(i++));\n                    }\n                }\n                expect(i).toBe(testRows + 1);\n            });\n        });\n    });\n\n    describe('Arrow Table Row-Major', () => {\n        describe('single column', () => {\n            it('TINYINT', async () => {\n                const result = await conn.send(`\n                    SELECT (v & 127)::TINYINT AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                const table = await arrow.Table.from(result);\n                let i = 0;\n                for (const row of table) {\n                    expect(row.v).toBe(i++ & 127);\n                }\n                expect(i).toBe(testRows + 1);\n            });\n\n            it('SMALLINT', async () => {\n                const result = await conn.send(`\n                    SELECT (v & 32767)::SMALLINT AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                const table = await arrow.Table.from(result);\n                let i = 0;\n                for (const row of table) {\n                    expect(row.v).toBe(i++ & 32767);\n                }\n                expect(i).toBe(testRows + 1);\n            });\n\n            it('INTEGER', async () => {\n                const result = conn.send(`\n                    SELECT v::INTEGER AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                const table = await arrow.Table.from(result);\n                let i = 0;\n                for (const row of table) {\n                    expect(row.v).toBe(i++);\n                }\n                expect(i).toBe(testRows + 1);\n            });\n\n            it('BIGINT', async () => {\n                const result = conn.send(`\n                    SELECT v::BIGINT AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                const table = await arrow.Table.from(result);\n                let i = 0;\n                for (const row of table) {\n                    expect(row.v.valueOf()).toBe(i++);\n                }\n                expect(i).toBe(testRows + 1);\n            });\n\n            it('STRING', async () => {\n                const result = await conn.send(`\n                    SELECT v::VARCHAR AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                const table = await arrow.Table.from(result);\n                let i = 0;\n                for (const row of table) {\n                    expect(row.v.valueOf()).toBe(String(i++));\n                }\n                expect(i).toBe(testRows + 1);\n            });\n        });\n    });\n\n    describe('Arrow Table Column-Major', () => {\n        describe('single column', () => {\n            it('TINYINT', async () => {\n                const result = await conn.send(`\n                    SELECT (v & 127)::TINYINT AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                const table = await arrow.Table.from(result);\n                let i = 0;\n                for (const v of table.getColumnAt(0)!) {\n                    expect(v).toBe(i++ & 127);\n                }\n                expect(i).toBe(testRows + 1);\n            });\n\n            it('SMALLINT', async () => {\n                const result = await conn.send(`\n                    SELECT (v & 32767)::SMALLINT AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                const table = await arrow.Table.from(result);\n                let i = 0;\n                for (const v of table.getColumnAt(0)!) {\n                    expect(v).toBe(i++ & 32767);\n                }\n                expect(i).toBe(testRows + 1);\n            });\n\n            it('INTEGER', async () => {\n                const result = await conn.send(`\n                    SELECT v::INTEGER AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                const table = await arrow.Table.from(result);\n                let i = 0;\n                for (const v of table.getColumnAt(0)!) {\n                    expect(v).toBe(i++);\n                }\n                expect(i).toBe(testRows + 1);\n            });\n\n            it('BIGINT', async () => {\n                const result = await conn.send(`\n                    SELECT v::BIGINT AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                const table = await arrow.Table.from(result);\n                let i = 0;\n                for (const v of table.getColumnAt(0)!) {\n                    expect(v.valueOf()).toBe(i++);\n                }\n                expect(i).toBe(testRows + 1);\n            });\n\n            it('STRING', async () => {\n                const result = await conn.send(`\n                    SELECT v::VARCHAR AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                const table = await arrow.Table.from(result);\n                let i = 0;\n                for (const v of table.getColumnAt(0)!) {\n                    expect(v.valueOf()).toBe(String(i++));\n                }\n                expect(i).toBe(testRows + 1);\n            });\n        });\n    });\n}\n", "import * as arrow from 'apache-arrow';\nimport * as duckdb from '../src/';\nimport { Column, compareTable } from './table_test';\n\n/// Unfortunately, arrow.Table.from does not build a proper Schema.\n/// When it does, we might want to switch back to arrow.Table here instead\n/// of arrow Schema + ArrowBatch.\ninterface ArrowInsertTest {\n    name: string;\n    schema: arrow.Schema;\n    batches: ArrowBatch[];\n    options: duckdb.ArrowInsertOptions;\n    query: string;\n    expectedColumns: Column[];\n}\n\ninterface ArrowBatch {\n    numRows: number;\n    columns: arrow.Vector[];\n}\n\nexport function generateXInt32(n: number, cols: number): number[][] {\n    const columns = [];\n    for (let j = 0; j < cols; ++j) {\n        const column = [];\n        for (let i = 0; i < n; ++i) {\n            column.push(i);\n        }\n        columns.push(column);\n    }\n    return columns;\n}\n\nexport function generateArrowXInt32(n: number, cols: number): [arrow.Schema, arrow.RecordBatch[]] {\n    const columns = generateXInt32(n, cols);\n    const fields = [];\n    for (let j = 0; j < cols; ++j) {\n        fields.push(new arrow.Field(`v${j}`, new arrow.Int32()));\n    }\n    const schema = new arrow.Schema(fields);\n    const batches = [];\n    for (let i = 0; i < n; ) {\n        const rows = Math.min(1000, n - i);\n        batches.push(\n            new arrow.RecordBatch(\n                schema,\n                rows,\n                columns.map(c => arrow.Int32Vector.from(c.slice(i, i + n))),\n            ),\n        );\n        i += rows;\n    }\n    return [schema, batches];\n}\n\nconst ARROW_INSERT_TESTS: ArrowInsertTest[] = [\n    {\n        name: 'integers_1',\n        schema: new arrow.Schema([\n            new arrow.Field('a', new arrow.Int32()),\n            new arrow.Field('b', new arrow.Int32()),\n            new arrow.Field('c', new arrow.Int32()),\n        ]),\n        batches: [\n            {\n                numRows: 3,\n                columns: [\n                    arrow.Int32Vector.from([1, 4, 7]),\n                    arrow.Int32Vector.from([2, 5, 8]),\n                    arrow.Int32Vector.from([3, 6, 9]),\n                ],\n            },\n        ],\n        options: {\n            schema: 'main',\n            name: 'foo',\n        },\n        query: 'SELECT * FROM main.foo',\n        expectedColumns: [\n            { name: 'a', values: [1, 4, 7] },\n            { name: 'b', values: [2, 5, 8] },\n            { name: 'c', values: [3, 6, 9] },\n        ],\n    },\n    {\n        name: 'combined_1',\n        schema: new arrow.Schema([\n            new arrow.Field('a', new arrow.Int32()),\n            new arrow.Field('b', new arrow.Int16()),\n            new arrow.Field('c', new arrow.Utf8()),\n        ]),\n        batches: [\n            {\n                numRows: 3,\n                columns: [\n                    arrow.Int32Vector.from([1, 4, 7]),\n                    arrow.Int16Vector.from([2, 5, 8]),\n                    arrow.Utf8Vector.from(['3', '6', '9']),\n                ],\n            },\n        ],\n        options: {\n            schema: 'main',\n            name: 'foo',\n        },\n        query: 'SELECT * FROM main.foo',\n        expectedColumns: [\n            { name: 'a', values: [1, 4, 7] },\n            { name: 'b', values: [2, 5, 8] },\n            { name: 'c', values: ['3', '6', '9'] },\n        ],\n    },\n    {\n        name: 'combined_2',\n        schema: new arrow.Schema([\n            new arrow.Field('a', new arrow.Int32()),\n            new arrow.Field('b', new arrow.Int16()),\n            new arrow.Field('c', new arrow.Utf8()),\n        ]),\n        batches: [\n            {\n                numRows: 3,\n                columns: [\n                    arrow.Int32Vector.from([1, 4, 7]),\n                    arrow.Int16Vector.from([2, 5, 8]),\n                    arrow.Utf8Vector.from(['3', '6', '9']),\n                ],\n            },\n            {\n                numRows: 2,\n                columns: [\n                    arrow.Int32Vector.from([10, 13]),\n                    arrow.Int16Vector.from([11, 14]),\n                    arrow.Utf8Vector.from(['12', '15']),\n                ],\n            },\n        ],\n        options: {\n            schema: 'main',\n            name: 'foo',\n        },\n        query: 'SELECT * FROM main.foo',\n        expectedColumns: [\n            { name: 'a', values: [1, 4, 7, 10, 13] },\n            { name: 'b', values: [2, 5, 8, 11, 14] },\n            { name: 'c', values: ['3', '6', '9', '12', '15'] },\n        ],\n    },\n];\n\nexport function testArrowInsert(db: () => duckdb.DuckDBBindings): void {\n    let conn: duckdb.DuckDBConnection;\n\n    beforeEach(async () => {\n        db().flushFiles();\n        conn = db().connect();\n    });\n    afterEach(async () => {\n        conn.close();\n        await db().flushFiles();\n        await db().dropFiles();\n    });\n    describe('Arrow insert from iterable', () => {\n        for (const test of ARROW_INSERT_TESTS) {\n            it(test.name, () => {\n                conn.query(`DROP TABLE IF EXISTS ${test.options.schema || 'main'}.${test.options.name}`);\n                const table = new arrow.Table(\n                    test.schema,\n                    test.batches.map(b => new arrow.RecordBatch(test.schema, b.numRows, b.columns)),\n                );\n                conn.insertArrowTable(table, test.options);\n                const results = conn.query(test.query);\n                compareTable(results, test.expectedColumns);\n            });\n        }\n    });\n}\n\nexport function testArrowInsertAsync(db: () => duckdb.AsyncDuckDB): void {\n    let conn: duckdb.AsyncDuckDBConnection;\n\n    beforeEach(async () => {\n        await db().flushFiles();\n        conn = await db().connect();\n    });\n    afterEach(async () => {\n        await conn.close();\n        await db().flushFiles();\n        await db().dropFiles();\n    });\n    describe('Arrow async insert from iterable', () => {\n        for (const test of ARROW_INSERT_TESTS) {\n            it(test.name, async () => {\n                await conn.query(`DROP TABLE IF EXISTS ${test.options.schema || 'main'}.${test.options.name}`);\n                const table = new arrow.Table(\n                    test.schema,\n                    test.batches.map(b => new arrow.RecordBatch(test.schema, b.numRows, b.columns)),\n                );\n                await conn.insertArrowTable(table, test.options);\n                const results = await conn.query(test.query);\n                compareTable(results, test.expectedColumns);\n            });\n        }\n    });\n    describe('Arrow async insert from table', () => {\n        it('simple integers', async () => {\n            await conn.query(`DROP TABLE IF EXISTS insert_from_table`);\n            const table = arrow.Table.new(\n                [\n                    arrow.Int32Vector.from([1, 4, 7]),\n                    arrow.Int32Vector.from([2, 5, 8]),\n                    arrow.Utf8Vector.from(['3', '6', '9']),\n                ],\n                ['a', 'b', 'c'],\n            );\n            await conn.insertArrowTable(table, {\n                name: 'insert_from_vectors',\n            });\n            const results = await conn.query('select * from insert_from_vectors');\n            compareTable(results, [\n                { name: 'a', values: [1, 4, 7] },\n                { name: 'b', values: [2, 5, 8] },\n                { name: 'c', values: ['3', '6', '9'] },\n            ]);\n        });\n    });\n}\n", "import * as arrow from 'apache-arrow';\n\nexport interface Column {\n    name: string;\n    values: any[];\n}\n\nexport function compareTable(table: arrow.Table, expected: Column[]): void {\n    // Check column count\n    const colCount = expected.length;\n    expect(table.numCols).toEqual(colCount);\n    if (colCount == 0) return;\n\n    // Check columns\n    const rowCount = expected[0].values.length;\n    for (let i = 0; i < colCount; ++i) {\n        expect(expected[i].values.length).toEqual(rowCount);\n        expect(table.getColumnAt(i)?.length).toEqual(rowCount);\n        expect(table.getColumnAt(i)?.name).toEqual(expected[i].name);\n    }\n\n    // Compare the actual values\n    for (let i = 0; i < colCount; ++i) {\n        const col = table.getColumnAt(i)!;\n        const have = [];\n        for (let j = 0; j < rowCount; ++j) {\n            have.push(col.get(j));\n        }\n        expect(have).toEqual(expected[i].values);\n    }\n}\n", "import * as arrow from 'apache-arrow';\nimport * as duckdb from '../src/';\nimport { Column, compareTable } from './table_test';\n\nfunction describeBrowser(description: string, specDefinitions: () => void): void {\n    if (typeof window !== 'undefined') {\n        describe(description, specDefinitions);\n    }\n}\n\nconst encoder = new TextEncoder();\n\ninterface JSONInsertTest {\n    name: string;\n    input: string;\n    options: duckdb.JSONInsertOptions;\n    query: string;\n    expectedColumns: Column[];\n}\n\nconst JSON_INSERT_TESTS: JSONInsertTest[] = [\n    {\n        name: 'rows_integers',\n        input: `[\n            {\"a\":1, \"b\":2, \"c\":3},\n            {\"a\":4, \"b\":5, \"c\":6},\n            {\"a\":7, \"b\":8, \"c\":9},\n        ]`,\n        options: {\n            schema: 'main',\n            name: 'foo',\n        },\n        query: 'SELECT * FROM main.foo',\n        expectedColumns: [\n            { name: 'a', values: [1, 4, 7] },\n            { name: 'b', values: [2, 5, 8] },\n            { name: 'c', values: [3, 6, 9] },\n        ],\n    },\n    {\n        name: 'cols_integers',\n        input: `{\n            \"a\": [1, 4, 7],\n            \"b\": [2, 5, 8],\n            \"c\": [3, 6, 9]\n        }`,\n        options: {\n            schema: 'main',\n            name: 'foo',\n        },\n        query: 'SELECT * FROM main.foo',\n        expectedColumns: [\n            { name: 'a', values: [1, 4, 7] },\n            { name: 'b', values: [2, 5, 8] },\n            { name: 'c', values: [3, 6, 9] },\n        ],\n    },\n    {\n        name: 'options_1',\n        input: `[\n            {\"a\":1, \"b\":2, \"c\":3},\n            {\"a\":4, \"b\":5, \"c\":6},\n            {\"a\":7, \"b\":8, \"c\":9},\n        ]`,\n        options: {\n            schema: 'main',\n            name: 'foo',\n            shape: duckdb.JSONTableShape.ROW_ARRAY,\n            columns: {\n                a: new arrow.Int16(),\n                b: new arrow.Int32(),\n                c: new arrow.Utf8(),\n            },\n        },\n        query: 'SELECT * FROM main.foo',\n        expectedColumns: [\n            { name: 'a', values: [1, 4, 7] },\n            { name: 'b', values: [2, 5, 8] },\n            { name: 'c', values: ['3', '6', '9'] },\n        ],\n    },\n];\n\nconst TEST_FILE = 'TEST';\n\nexport function testJSONInsert(db: () => duckdb.DuckDBBindings): void {\n    let conn: duckdb.DuckDBConnection;\n\n    beforeEach(async () => {\n        db().flushFiles();\n        conn = db().connect();\n    });\n    afterEach(async () => {\n        conn.close();\n        await db().flushFiles();\n        await db().dropFiles();\n    });\n    describe('JSON Insert Sync', () => {\n        for (const test of JSON_INSERT_TESTS) {\n            it(test.name, () => {\n                conn.query(`DROP TABLE IF EXISTS ${test.options.schema || 'main'}.${test.options.name}`);\n                const buffer = encoder.encode(test.input);\n                db().registerFileBuffer(TEST_FILE, buffer);\n                conn.insertJSONFromPath(TEST_FILE, test.options);\n                const results = conn.query(test.query);\n                compareTable(results, test.expectedColumns);\n            });\n        }\n    });\n}\n\nexport function testJSONInsertAsync(db: () => duckdb.AsyncDuckDB): void {\n    let conn: duckdb.AsyncDuckDBConnection;\n\n    beforeEach(async () => {\n        await db().flushFiles();\n        conn = await db().connect();\n    });\n    afterEach(async () => {\n        await conn.close();\n        await db().flushFiles();\n        await db().dropFiles();\n    });\n    describe('JSON Insert Buffer Async', () => {\n        for (const test of JSON_INSERT_TESTS) {\n            it(test.name, async () => {\n                await conn.query(`DROP TABLE IF EXISTS ${test.options.schema || 'main'}.${test.options.name}`);\n                const buffer = encoder.encode(test.input);\n                await db().registerFileBuffer(TEST_FILE, buffer);\n                await conn.insertJSONFromPath(TEST_FILE, test.options);\n                const results = await conn.query(test.query);\n                compareTable(results, test.expectedColumns);\n            });\n        }\n    });\n\n    describeBrowser('JSON Insert Blob Async', () => {\n        for (const test of JSON_INSERT_TESTS) {\n            it(test.name, async () => {\n                await conn.query(`DROP TABLE IF EXISTS ${test.options.schema || 'main'}.${test.options.name}`);\n                const buffer = encoder.encode(test.input);\n                const blob = new Blob([buffer]);\n                await db().registerFileHandle(TEST_FILE, blob);\n                await conn.insertJSONFromPath(TEST_FILE, test.options);\n                const results = await conn.query(test.query);\n                compareTable(results, test.expectedColumns);\n            });\n        }\n    });\n}\n", "import * as arrow from 'apache-arrow';\nimport * as duckdb from '../src/';\nimport { Column, compareTable } from './table_test';\n\nfunction describeBrowser(description: string, specDefinitions: () => void): void {\n    if (typeof window !== 'undefined') {\n        describe(description, specDefinitions);\n    }\n}\n\nconst encoder = new TextEncoder();\n\ninterface CSVInsertTest {\n    name: string;\n    input: string;\n    options: duckdb.CSVInsertOptions;\n    query: string;\n    expectedColumns: Column[];\n}\n\nconst CSV_INSERT_TESTS: CSVInsertTest[] = [\n    {\n        name: 'integers_auto_1',\n        input: `\"a\",\"b\",\"c\"\n1,2,3\n4,5,6\n7,8,9\n`,\n        options: {\n            schema: 'main',\n            name: 'foo',\n        },\n        query: 'SELECT * FROM main.foo',\n        expectedColumns: [\n            { name: 'a', values: [1, 4, 7] },\n            { name: 'b', values: [2, 5, 8] },\n            { name: 'c', values: [3, 6, 9] },\n        ],\n    },\n    {\n        name: 'integers_auto_2',\n        input: `a,b,c\n1,2,3\n4,5,6\n7,8,9\n`,\n        options: {\n            schema: 'main',\n            name: 'foo',\n        },\n        query: 'SELECT * FROM main.foo',\n        expectedColumns: [\n            { name: 'a', values: [1, 4, 7] },\n            { name: 'b', values: [2, 5, 8] },\n            { name: 'c', values: [3, 6, 9] },\n        ],\n    },\n    {\n        name: 'integers_auto_3',\n        input: `a,b,c`,\n        options: {\n            schema: 'main',\n            name: 'foo',\n        },\n        query: 'SELECT * FROM main.foo',\n        expectedColumns: [\n            { name: 'column0', values: ['a'] },\n            { name: 'column1', values: ['b'] },\n            { name: 'column2', values: ['c'] },\n        ],\n    },\n    {\n        name: 'integers_auto_2',\n        input: `a\n1\n4\n7\n`,\n        options: {\n            schema: 'main',\n            name: 'foo',\n        },\n        query: 'SELECT * FROM main.foo',\n        expectedColumns: [{ name: 'a', values: [1, 4, 7] }],\n    },\n    {\n        name: 'options_1',\n        input: `1,2,3\n4,5,6\n7,8,9\n`,\n        options: {\n            schema: 'main',\n            name: 'foo2',\n            header: false,\n            detect: false,\n            columns: {\n                a: new arrow.Int16(),\n                b: new arrow.Int32(),\n                c: new arrow.Utf8(),\n            },\n        },\n        query: 'SELECT * FROM main.foo2',\n        expectedColumns: [\n            { name: 'a', values: [1, 4, 7] },\n            { name: 'b', values: [2, 5, 8] },\n            { name: 'c', values: ['3', '6', '9'] },\n        ],\n    },\n    {\n        name: 'options_2',\n        input: `1|2|01/02/2020\n4|5|01/03/2020\n7|8|01/04/2020\n`,\n        options: {\n            schema: 'main',\n            name: 'foo',\n            detect: false,\n            header: false,\n            delimiter: '|',\n            dateFormat: '%m/%d/%Y',\n            columns: {\n                a: new arrow.Int16(),\n                b: new arrow.Int32(),\n                c: new arrow.DateDay(),\n            },\n        },\n        query: 'SELECT * FROM main.foo',\n        expectedColumns: [\n            { name: 'a', values: [1, 4, 7] },\n            { name: 'b', values: [2, 5, 8] },\n            {\n                name: 'c',\n                values: [\n                    new Date(Date.UTC(2020, 0, 2)),\n                    new Date(Date.UTC(2020, 0, 3)),\n                    new Date(Date.UTC(2020, 0, 4)),\n                ],\n            },\n        ],\n    },\n    {\n        name: 'options_3',\n        input: `1|2|20:32:45 1992-03-02\n4|5|20:32:50 1992-03-02\n7|8|20:32:55 1992-03-02\n`,\n        options: {\n            schema: 'main',\n            name: 'foo',\n            detect: false,\n            header: false,\n            delimiter: '|',\n            quote: \"'\",\n            timestampFormat: '%H:%M:%S %Y-%m-%d',\n            columns: {\n                a: new arrow.Int16(),\n                b: new arrow.Int32(),\n                c: new arrow.TimestampSecond(),\n            },\n        },\n        query: 'SELECT * FROM main.foo',\n        expectedColumns: [\n            { name: 'a', values: [1, 4, 7] },\n            { name: 'b', values: [2, 5, 8] },\n            {\n                name: 'c',\n                values: [\n                    new Date(Date.UTC(1992, 2, 2, 20, 32, 45)).getTime(),\n                    new Date(Date.UTC(1992, 2, 2, 20, 32, 50)).getTime(),\n                    new Date(Date.UTC(1992, 2, 2, 20, 32, 55)).getTime(),\n                ],\n            },\n        ],\n    },\n];\n\nconst TEST_FILE = 'TEST';\n\nexport function testCSVInsert(db: () => duckdb.DuckDBBindings): void {\n    let conn: duckdb.DuckDBConnection;\n\n    beforeEach(async () => {\n        db().flushFiles();\n        conn = db().connect();\n    });\n    afterEach(async () => {\n        conn.close();\n        await db().flushFiles();\n        await db().dropFiles();\n    });\n    describe('CSV Insert Sync', () => {\n        for (const test of CSV_INSERT_TESTS) {\n            it(test.name, () => {\n                conn.query(`DROP TABLE IF EXISTS ${test.options.schema || 'main'}.${test.options.name}`);\n                const buffer = encoder.encode(test.input);\n                db().registerFileBuffer(TEST_FILE, buffer);\n                conn.insertCSVFromPath(TEST_FILE, test.options);\n                const results = conn.query(test.query);\n                compareTable(results, test.expectedColumns);\n            });\n        }\n    });\n}\n\nexport function testCSVInsertAsync(db: () => duckdb.AsyncDuckDB): void {\n    let conn: duckdb.AsyncDuckDBConnection;\n\n    beforeEach(async () => {\n        await db().flushFiles();\n        conn = await db().connect();\n    });\n    afterEach(async () => {\n        await conn.close();\n        await db().flushFiles();\n        await db().dropFiles();\n    });\n    describe('CSV Insert Buffer Async', () => {\n        for (const test of CSV_INSERT_TESTS) {\n            it(test.name, async () => {\n                await conn.query(`DROP TABLE IF EXISTS ${test.options.schema || 'main'}.${test.options.name}`);\n                const buffer = encoder.encode(test.input);\n                await db().registerFileBuffer(TEST_FILE, buffer);\n                await conn.insertCSVFromPath(TEST_FILE, test.options);\n                const results = await conn.query(test.query);\n                compareTable(results, test.expectedColumns);\n            });\n        }\n    });\n\n    describeBrowser('CSV Insert Blob Async', () => {\n        for (const test of CSV_INSERT_TESTS) {\n            it(test.name, async () => {\n                await conn.query(`DROP TABLE IF EXISTS ${test.options.schema || 'main'}.${test.options.name}`);\n                const buffer = encoder.encode(test.input);\n                const blob = new Blob([buffer]);\n                await db().registerFileHandle(TEST_FILE, blob);\n                await conn.insertCSVFromPath(TEST_FILE, test.options);\n                const results = await conn.query(test.query);\n                compareTable(results, test.expectedColumns);\n            });\n        }\n    });\n}\n", "import * as duckdb from '../src/';\n\nexport function testTokenization(db: () => duckdb.DuckDBBindings): void {\n    describe('Tokenizer', () => {\n        it('SELECT 1', async () => {\n            expect(db().tokenize('SELECT 1')).toEqual({\n                offsets: [0, 7],\n                types: [4, 1],\n            });\n        });\n        it('SELECT * FROM region', async () => {\n            expect(db().tokenize('SELECT * FROM region')).toEqual({\n                offsets: [0, 7, 9, 14],\n                types: [4, 3, 4, 0],\n            });\n        });\n    });\n}\n\nexport function testTokenizationAsync(db: () => duckdb.AsyncDuckDB): void {\n    describe('Tokenizer', () => {\n        it('SELECT 1', async () => {\n            expect(await db().tokenize('SELECT 1')).toEqual({\n                offsets: [0, 7],\n                types: [4, 1],\n            });\n        });\n        it('SELECT * FROM region', async () => {\n            expect(await db().tokenize('SELECT * FROM region')).toEqual({\n                offsets: [0, 7, 9, 14],\n                types: [4, 3, 4, 0],\n            });\n        });\n    });\n}\n", "import * as duckdb from '../src/';\n\ninterface TableNameTest {\n    name: string;\n    input: string;\n    tables: string[];\n}\n\nconst TABLENAME_TESTS: TableNameTest[] = [\n    {\n        name: 'standard',\n        input: 'SELECT * FROM my_table',\n        tables: ['my_table'],\n    },\n    {\n        name: 'fetch_specific',\n        input: 'SELECT col_a FROM my_table',\n        tables: ['my_table'],\n    },\n    {\n        name: 'multiple_tables',\n        input: 'SELECT * FROM my_table1, my_table2, my_table3',\n        tables: ['my_table1', 'my_table2', 'my_table3'],\n    },\n    {\n        name: 'same_table_multiple_times',\n        input: 'SELECT col_a FROM my_table, my_table m2, my_table m3',\n        tables: ['my_table'],\n    },\n    {\n        name: 'subqueries',\n        input: 'SELECT * FROM (SELECT * FROM (SELECT * FROM my_table) bla) bla3',\n        tables: ['my_table'],\n    },\n    {\n        name: 'join',\n        input: 'SELECT col_a FROM my_table JOIN my_table2 ON (my_table.col_b=my_table2.col_d)',\n        tables: ['my_table', 'my_table2'],\n    },\n    {\n        name: 'scalar_subquery',\n        input: 'SELECT (SELECT COUNT(*) FROM my_table)',\n        tables: ['my_table'],\n    },\n    {\n        name: 'set_operations',\n        input: 'SELECT * FROM my_table UNION ALL SELECT * FROM my_table2 INTERSECT SELECT * FROM my_table3',\n        tables: ['my_table', 'my_table2', 'my_table3'],\n    },\n    {\n        name: 'window_functions',\n        input: 'SELECT row_number() OVER (ORDER BY (SELECT i+j FROM my_table2)) FROM my_table',\n        tables: ['my_table', 'my_table2'],\n    },\n];\n\nexport function testTableNames(db: () => duckdb.DuckDBBindings): void {\n    let conn: duckdb.DuckDBConnection;\n    beforeEach(() => {\n        conn = db().connect();\n    });\n    afterEach(() => {\n        conn.close();\n    });\n    describe('TableNames', () => {\n        for (const test of TABLENAME_TESTS) {\n            it(test.name, () => {\n                const tables = conn.getTableNames(test.input);\n                expect(tables).toEqual(test.tables);\n            });\n        }\n    });\n}\n\nexport function testTableNamesAsync(db: () => duckdb.AsyncDuckDB): void {\n    let conn: duckdb.AsyncDuckDBConnection;\n    beforeEach(async () => {\n        conn = await db().connect();\n    });\n    afterEach(async () => {\n        await conn.close();\n    });\n    describe('TableNames Async', () => {\n        for (const test of TABLENAME_TESTS) {\n            it(test.name, async () => {\n                const tables = await conn.getTableNames(test.input);\n                expect(tables).toEqual(test.tables);\n            });\n        }\n    });\n}\n", "import * as duckdb from '../../src';\nimport * as arrow from 'apache-arrow';\n\n// https://github.com/duckdb/duckdb-wasm/issues/332\nexport function test332(db: () => duckdb.AsyncDuckDB): void {\n    let conn: duckdb.AsyncDuckDBConnection;\n    beforeEach(async () => {\n        await db().flushFiles();\n        conn = await db().connect();\n    });\n    afterEach(async () => {\n        await conn.close();\n        await db().flushFiles();\n        await db().dropFiles();\n    });\n    describe('GitHub issues', () => {\n        it('332', async () => {\n            await db().registerFileText(\n                'Products.csv',\n                `ProductGroup,Product,Year,Quarter,Revenue,Units,Count,Product Key,Reseller,Product Info,QuarterAsNumber\nElectronics,Phone,2018,Q1,103,7,1,2018-Q1,Sony,Format=XML; <Properties>\u2026,1\nElectronics,Phone,2018,Q1,102,4,1,2018-Q1,Sony,Format=XML; <Properties>\u2026,1\nElectronics,Phone,2019,Q1,98,12,1,2019-Q1,Sony,Format=XML; <Properties>\u2026,1\nElectronics,Computer,2018,Q1,104,3,1,2018-Q1,Samsung,Format=XML; <Properties>\u2026,1\nElectronics,Computer,2019,Q1,83,7,1,2019-Q1,Google,Format=XML; <Properties>\u2026,1\nMedia,Theater,2018,Q1,17,4,1,2018-Q1,Sony,Format=XML; <Properties>\u2026,1\nMedia,Theater,2019,Q1,20,7,1,2019-Q1,Sony,Format=XML; <Properties>\u2026,1\nMedia,Movies,2018,Q1,25,12,1,2018-Q1,Microsoft,Format=XML; <Properties>\u2026,1\nMedia,Movies,2019,Q1,26,13,1,2019-Q1,Sony,Format=XML; <Properties>\u2026,1\nElectronics,Phone,2018,Q2,105,5,1,2018-Q2,Samsung,Format=XML; <Properties>\u2026,2\nElectronics,Phone,2019,Q2,82,15,1,2019-Q2,LG,Format=XML; <Properties>\u2026,2\nElectronics,Computer,2018,Q2,99,4,1,2018-Q2,LG,Format=XML; <Properties>\u2026,2\nElectronics,Computer,2019,Q2,84,20,1,2019-Q2,Sony,Format=XML; <Properties>\u2026,2\nMedia,Theater,2018,Q2,17,4,1,2018-Q2,Microsoft,Format=XML; <Properties>\u2026,2\nMedia,Theater,2019,Q2,22,5,1,2019-Q2,Sony,Format=XML; <Properties>\u2026,2\nMedia,Movies,2018,Q2,25,12,1,2018-Q2,Samsung,Format=XML; <Properties>\u2026,2\nMedia,Movies,2019,Q2,26,14,1,2019-Q2,Google,Format=XML; <Properties>\u2026,2\nElectronics,Phone,2000,Q1,103,7,1,2000-Q1,Sony,Format=XML; <Properties>\u2026,1\nElectronics,Phone,2001,Q1,102,4,1,2001-Q1,Sony,Format=XML; <Properties>\u2026,1\nElectronics,Phone,2002,Q1,98,12,1,2002-Q1,Microsoft,Format=XML; <Properties>\u2026,1\nElectronics,Computer,2003,Q1,104,3,1,2003-Q1,Sony,Format=XML; <Properties>\u2026,1\nElectronics,Computer,2004,Q1,83,7,1,2004-Q1,Samsung,Format=XML; <Properties>\u2026,1\nMedia,Theater,2005,Q1,17,4,1,2005-Q1,Google,Format=XML; <Properties>\u2026,1\nMedia,Theater,2006,Q1,20,7,1,2006-Q1,Sony,Format=XML; <Properties>\u2026,1\nMedia,Movies,2007,Q1,25,12,1,2007-Q1,Sony,Format=XML; <Properties>\u2026,1\nMedia,Movies,2008,Q1,26,13,1,2008-Q1,Microsoft,Format=XML; <Properties>\u2026,1\nElectronics,Phone,2009,Q2,105,5,1,2009-Q2,Sony,Format=XML; <Properties>\u2026,2\nElectronics,Phone,2010,Q2,82,15,1,2010-Q2,Sony,Format=XML; <Properties>\u2026,2\nElectronics,Computer,2011,Q2,99,4,1,2011-Q2,Sony,Format=XML; <Properties>\u2026,2\nElectronics,Computer,2012,Q2,84,20,1,2012-Q2,Sony,Format=XML; <Properties>\u2026,2\nMedia,Theater,2013,Q2,17,4,1,2013-Q2,Sony,Format=XML; <Properties>\u2026,2\nMedia,Theater,2014,Q2,22,5,1,2014-Q2,Sony,Format=XML; <Properties>\u2026,2\nMedia,Movies,2015,Q2,25,12,1,2015-Q2,Sony,Format=XML; <Properties>\u2026,2\nMedia,Movies,2016,Q2,26,14,1,2016-Q2,Samsung,Format=XML; <Properties>\u2026,2\nMedia,Movies,2017,Q1,26,13,1,2017-Q1,Google,Format=XML; <Properties>\u2026,1\nElectronics,Phone,2018,Q2,105,5,1,2018-Q2,Sony,Format=XML; <Properties>\u2026,2\nElectronics,Phone,2019,Q2,82,15,1,2019-Q2,Sony,Format=XML; <Properties>\u2026,2\nElectronics,Computer,2020,Q2,99,4,1,2020-Q2,Microsoft,Format=XML; <Properties>\u2026,2\nElectronics,Phone,2020,Q1,103,7,1,2020-Q1,Sony,Format=XML; <Properties>\u2026,1\nElectronics,Phone,2020,Q2,102,4,1,2020-Q2,Samsung,Format=XML; <Properties>\u2026,2\nElectronics,Phone,2020,Q3,98,12,1,2020-Q3,LG,Format=XML; <Properties>\u2026,3\nElectronics,Computer,2020,Q4,104,3,1,2020-Q4,LG,Format=XML; <Properties>\u2026,4\nElectronics,Computer,2020,Q1,83,7,1,2020-Q1,Sony,Format=XML; <Properties>\u2026,1\nMedia,Theater,2020,Q1,17,4,1,2020-Q1,Microsoft,Format=XML; <Properties>\u2026,1\nMedia,Theater,2020,Q1,20,7,1,2020-Q1,Sony,Format=XML; <Properties>\u2026,1\n`,\n            );\n            await conn.query(\"CREATE TABLE products AS SELECT * FROM 'Products.csv'\");\n            const all = await conn.query('SELECT * FROM products');\n            expect(all.schema.fields.length).toBe(11);\n            expect(all.schema.fields[0].name).toBe('ProductGroup');\n            const insensitive = await conn.query<{\n                ProductGroup: arrow.Utf8;\n            }>('SELECT productgroup FROM products GROUP BY productgroup');\n            expect(insensitive.schema.fields.length).toBe(1);\n            expect(insensitive.schema.fields[0].name).toBe('ProductGroup');\n            expect(insensitive.toArray().length).toEqual(2);\n            await conn.query('DROP TABLE products');\n        });\n    });\n}\n", "import * as duckdb from '../../src';\nimport * as arrow from 'apache-arrow';\n\n// https://github.com/duckdb/duckdb-wasm/issues/334\nexport function test334(adb: () => duckdb.AsyncDuckDB): void {\n    describe('GitHub issues', () => {\n        describe('334', () => {\n            it('CSV insert', async () => {\n                await adb().registerFileText(`data.csv`, '1|foo\\n2|bar\\n');\n                const conn = await adb().connect();\n                await conn.insertCSVFromPath('data.csv', {\n                    schema: 'main',\n                    name: 'foo',\n                    detect: false,\n                    header: false,\n                    delimiter: '|',\n                    columns: {\n                        col1: new arrow.Int32(),\n                        col2: new arrow.Utf8(),\n                    },\n                });\n                await conn.query('DROP TABLE IF EXISTS foo');\n                await conn.close();\n                await adb().dropFile('data.csv');\n            });\n            it('JSON row insert', async () => {\n                await adb().registerFileText(\n                    'rows.json',\n                    `[\n                    { \"col1\": 1, \"col2\": \"foo\" },\n                    { \"col1\": 2, \"col2\": \"bar\" },\n                ]`,\n                );\n                const conn = await adb().connect();\n                await conn.insertJSONFromPath('rows.json', { name: 'rows' });\n                await conn.query('DROP TABLE IF EXISTS rows');\n                await conn.close();\n                await adb().dropFile('rows.json');\n            });\n            it('JSON column insert', async () => {\n                await adb().registerFileText(\n                    'columns.json',\n                    `{\n                    \"col1\": [1, 2],\n                    \"col2\": [\"foo\", \"bar\"]\n                }`,\n                );\n                const conn = await adb().connect();\n                await conn.insertJSONFromPath('columns.json', { name: 'columns' });\n                await conn.query('DROP TABLE IF EXISTS columns');\n                await conn.close();\n                await adb().dropFile('columns.json');\n            });\n            it('Query result materialized', async () => {\n                const conn = await adb().connect();\n                await conn.query<{ v: arrow.Int }>(`\n                SELECT * FROM generate_series(1, 100) t(v)\n            `);\n                await conn.close();\n            });\n            it('Query result streamed', async () => {\n                const conn = await adb().connect();\n                for await (const batch of await conn.send<{ v: arrow.Int }>(`\n                SELECT * FROM generate_series(1, 100) t(v)\n            `)) {\n                    expect(batch.length).toBeGreaterThan(0);\n                }\n                await conn.close();\n            });\n            it('Prepared statement materialized', async () => {\n                const conn = await adb().connect();\n                const stmt = await conn.prepare(`SELECT v + ? FROM generate_series(0, 10000) as t(v);`);\n                await stmt.query(234);\n                await stmt.close();\n                await conn.close();\n            });\n            it('Prepared statement streamed', async () => {\n                const conn = await adb().connect();\n                const stmt = await conn.prepare(`SELECT v + ? FROM generate_series(0, 10000) as t(v);`);\n                for await (const batch of await stmt.send(234)) {\n                    expect(batch.length).toBeGreaterThan(0);\n                }\n                await stmt.close();\n                await conn.close();\n            });\n        });\n    });\n}\n", "import * as duckdb from '../../src';\nimport * as arrow from 'apache-arrow';\n\n// https://github.com/duckdb/duckdb-wasm/issues/393\nexport function test393(db: () => duckdb.AsyncDuckDB): void {\n    let conn: duckdb.AsyncDuckDBConnection | null = null;\n    beforeEach(async () => {\n        await db().flushFiles();\n    });\n    afterEach(async () => {\n        if (conn) {\n            await conn.close();\n            conn = null;\n        }\n        await db().flushFiles();\n        await db().dropFiles();\n    });\n    describe('GitHub issues', () => {\n        it('393', async () => {\n            await db().open({\n                path: ':memory:',\n                query: {\n                    castTimestampToDate: false,\n                },\n            });\n            conn = await db().connect();\n            const resultWithoutCast = await conn.query<{\n                ts: arrow.TimestampMillisecond;\n            }>(`SELECT TIMESTAMP '1992-03-22 01:02:03' as ts`);\n            expect(resultWithoutCast.toArray()[0].ts).toEqual(new Date(Date.UTC(1992, 2, 22, 1, 2, 3)).getTime());\n\n            await db().open({\n                path: ':memory:',\n                query: {\n                    castTimestampToDate: true,\n                },\n            });\n            conn = await db().connect();\n            const resultWithCast = await conn.query<{\n                ts: arrow.DateMillisecond;\n            }>(`SELECT TIMESTAMP '1992-03-22 01:02:03' as ts`);\n            expect(resultWithCast.toArray()[0].ts).toEqual(new Date(Date.UTC(1992, 2, 22, 1, 2, 3)));\n        });\n    });\n}\n", "import * as duckdb from '../../src';\nimport * as arrow from 'apache-arrow';\n\n// https://github.com/duckdb/duckdb-wasm/issues/448\nexport function test448(db: () => duckdb.AsyncDuckDB): void {\n    let conn: duckdb.AsyncDuckDBConnection | null = null;\n    beforeEach(async () => {\n        await db().flushFiles();\n    });\n    afterEach(async () => {\n        if (conn) {\n            await conn.close();\n            conn = null;\n        }\n        await db().flushFiles();\n        await db().dropFiles();\n    });\n    describe('GitHub issues', () => {\n        it('448', async () => {\n            conn = await db().connect();\n            await conn.query(`create temp table test448(i integer)`);\n            await conn.query(`insert into test448 values (1),(2),(1)`);\n            let result = await conn.query(`select * from test448`);\n            expect(result.numCols).toBe(1);\n            expect(result.length).toBe(3);\n            expect(result.getColumnAt(0)?.toArray()).toEqual(new Int32Array([1, 2, 1]));\n            result = await conn.query<{ i: arrow.Map_<arrow.Int32, arrow.Uint64> }>(`select histogram(i) from test448`);\n            expect(result.numCols).toBe(1);\n            expect(result.length).toBe(1);\n            const array = result.getColumnAt(0)!.toArray();\n            expect(array.length).toEqual(1);\n            expect(array[0].toString()).toEqual('{ 1: 2, 2: 1 }');\n        });\n    });\n}\n", "import * as duckdb from '../../src';\nimport * as arrow from 'apache-arrow';\n\n// https://github.com/duckdb/duckdb-wasm/issues/470\nexport function test470(db: () => duckdb.AsyncDuckDB): void {\n    let conn: duckdb.AsyncDuckDBConnection | null = null;\n    beforeEach(async () => {\n        await db().flushFiles();\n    });\n    afterEach(async () => {\n        if (conn) {\n            await conn.close();\n            conn = null;\n        }\n        await db().flushFiles();\n        await db().dropFiles();\n    });\n    describe('GitHub issues', () => {\n        it('470', async () => {\n\n            // Baseline without cast: we expect an error to be thrown because of the duration type that is emitted\n            await db().open({\n                path: ':memory:',\n                query: {\n                    castDurationToTime64: false,\n                },\n            });\n            conn = await db().connect();\n            conn.query<{\n                interval: arrow.TimeMicrosecond;\n            }>(`SELECT INTERVAL '3' MONTH AS interval`)\n                .then((x) => fail(\"Query is expected to fail due to duration type not being implemented\"))\n                .catch(x => {expect(x).toEqual(new Error(\"Unrecognized type: \\\"Duration\\\" (18)\"))});\n\n            // Cast explicitly enabled: Time64 value is returned\n            await db().open({\n                path: ':memory:',\n                query: {\n                    castDurationToTime64: true,\n                },\n            });\n            conn = await db().connect();\n            const resultWithCast = await conn.query<{\n                interval:  arrow.TimeMicrosecond;\n            }>(`SELECT INTERVAL '3' MONTH AS interval`);\n            expect(resultWithCast.toArray()[0].interval?.toString()).toEqual(\"7776000000000\");\n\n            // Cast should be on by default\n            await db().open({\n                path: ':memory:',\n                query: {\n                },\n            });\n            conn = await db().connect();\n            const resultWithDefault = await conn.query<{\n                interval:  arrow.TimeMicrosecond;\n            }>(`SELECT INTERVAL '3' MONTH AS interval`);\n            expect(resultWithDefault.toArray()[0].interval?.toString()).toEqual(\"7776000000000\");\n        });\n    });\n}\n", "import * as duckdb from '../../src';\nimport * as arrow from 'apache-arrow';\n\n// https://github.com/duckdb/duckdb-wasm/issues/477\n// Note that when ArrowJS supports negative decimals, castDecimalToDouble should probably be deprecated.\nexport function test477(db: () => duckdb.AsyncDuckDB): void {\n    let conn: duckdb.AsyncDuckDBConnection | null = null;\n    beforeEach(async () => {\n        await db().flushFiles();\n    });\n    afterEach(async () => {\n        if (conn) {\n            await conn.close();\n            conn = null;\n        }\n        await db().flushFiles();\n        await db().dropFiles();\n    });\n    describe('GitHub issues', () => {\n        it('477', async () => {\n\n            // Baseline without cast: we expect the negative decimal values to not work accurately\n            await db().open({\n                path: ':memory:',\n                query: {\n                },\n            });\n            conn = await db().connect();\n            const resultWithoutCast = await conn.query(`SELECT (-1.9)::DECIMAL(2,1) as decimal`);\n            expect(resultWithoutCast.schema.fields[0].type.scale).toEqual(1);\n            expect(resultWithoutCast.schema.fields[0].type.precision).toEqual(2);\n            // If this assertion breaks, arrow JS was likely updated to handle negative values\n            expect(resultWithoutCast.toArray()[0].decimal.valueOf() == -19).toBe(false);\n\n\n            // Using castDecimalToDouble we force decimals to be cast to doubles, note the inevitable imprecision.\n            await db().open({\n                path: ':memory:',\n                query: {\n                    castDecimalToDouble : true\n                },\n            });\n            conn = await db().connect();\n            const resultWithCast = await conn.query<{\n                decimal: arrow.Float64\n            }>(`SELECT (-1.9)::DECIMAL(2,1) as decimal`);\n            expect(resultWithCast.toArray()[0].decimal?.valueOf()).toEqual(-1.9000000000000001);\n        });\n    });\n}\n", "import * as duckdb from '../../src/';\nimport { test332 } from './github_332.test';\nimport { test334 } from './github_334.test';\nimport { test393 } from './github_393.test';\nimport { test448 } from './github_448.test';\nimport { test470 } from './github_470.test';\nimport { test477 } from \"./github_477.test\";\n\nexport function testRegressionAsync(adb: () => duckdb.AsyncDuckDB): void {\n    test332(adb);\n    test334(adb);\n    test393(adb);\n    test448(adb);\n    test470(adb);\n    test477(adb);\n}\n"],
  "mappings": "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",
  "names": []
}
