@singapore-editor/spellcheck 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +106 -0
- package/THIRD_PARTY_NOTICES +611 -0
- package/dist/assets/spellcheck.worker-Dx-kt277.js +8971 -0
- package/dist/assets/spellcheck.worker-Dx-kt277.js.map +1 -0
- package/dist/controller.d.ts +51 -0
- package/dist/controller.d.ts.map +1 -0
- package/dist/controller.js +307 -0
- package/dist/controller.js.map +1 -0
- package/dist/dictionaryAssets.d.ts +4 -0
- package/dist/dictionaryAssets.d.ts.map +1 -0
- package/dist/dictionaryData.d.ts +13 -0
- package/dist/dictionaryData.d.ts.map +1 -0
- package/dist/engine.d.ts +18 -0
- package/dist/engine.d.ts.map +1 -0
- package/dist/feature.d.ts +19 -0
- package/dist/feature.d.ts.map +1 -0
- package/dist/feature.js +8 -0
- package/dist/feature.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -0
- package/dist/plugin.d.ts +12 -0
- package/dist/plugin.d.ts.map +1 -0
- package/dist/plugin.js +27 -0
- package/dist/plugin.js.map +1 -0
- package/dist/proseRanges.d.ts +25 -0
- package/dist/proseRanges.d.ts.map +1 -0
- package/dist/proseRanges.js +75 -0
- package/dist/proseRanges.js.map +1 -0
- package/dist/protocol.d.ts +27 -0
- package/dist/protocol.d.ts.map +1 -0
- package/dist/service.d.ts +38 -0
- package/dist/service.d.ts.map +1 -0
- package/dist/service.js +128 -0
- package/dist/service.js.map +1 -0
- package/dist/spellcheck.worker.d.ts +2 -0
- package/dist/spellcheck.worker.d.ts.map +1 -0
- package/dist/styles.d.ts +7 -0
- package/dist/styles.d.ts.map +1 -0
- package/dist/styles.js +13 -0
- package/dist/styles.js.map +1 -0
- package/dist/tokenizer.d.ts +23 -0
- package/dist/tokenizer.d.ts.map +1 -0
- package/dist/tokenizer.js +140 -0
- package/dist/tokenizer.js.map +1 -0
- package/package.json +52 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spellcheck.worker-Dx-kt277.js","names":["english"],"sources":["../../src/dictionaries/english.trie.gz?url","../../src/dictionaries/suggestion-weights.json","../../src/dictionaryAssets.ts","../../src/dictionaryData.ts","../../../../node_modules/.bun/cspell-trie-lib@10.3.4+81acc666c6129100/node_modules/cspell-trie-lib/dist/index.js","../../src/engine.ts","../../src/spellcheck.worker.ts"],"sourcesContent":["export default \"data:application/gzip;base64,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\"","{\n \"locale\": \"en-US\",\n \"alphabet\": \"a-zA-Z\",\n \"suggestionEditCosts\": [\n {\n \"description\": \"Words like 'break' and 'brake'\",\n \"map\": \"(ate)(eat)|(ake)(eak)\",\n \"replace\": 75\n },\n {\n \"description\": \"Sounds alike\",\n \"map\": \"f(ph)(gh)|(sion)(tion)(cion)|(ail)(ale)|(r)(ur)(er)(ure)(or)\",\n \"replace\": 75\n },\n {\n \"description\": \"Double letter score\",\n \"map\": \"l(ll)|s(ss)|t(tt)|e(ee)|b(bb)|d(dd)\",\n \"replace\": 75\n },\n {\n \"map\": \"aeiou\",\n \"replace\": 98,\n \"swap\": 75,\n \"insDel\": 90\n },\n {\n \"description\": \"Common vowel sounds.\",\n \"map\": \"o(oh)(oo)|(oo)(ou)|(oa)(ou)|(ee)(ea)\",\n \"replace\": 75\n },\n {\n \"map\": \"o(oo)|a(aa)|e(ee)|u(uu)|(eu)(uu)|(ou)(ui)(ow)|(ie)(ei)|i(ie)|e(en)|e(ie)\",\n \"replace\": 50\n },\n {\n \"description\": \"Do not rank `'s` high on the list.\",\n \"map\": \"($)('$)('s$)|(s$)(s'$)(s's$)\",\n \"replace\": 10,\n \"penalty\": 180\n },\n {\n \"description\": \"Plurals ending in 'y'\",\n \"map\": \"(ys)(ies)\",\n \"replace\": 75\n },\n {\n \"map\": \"(d$)(t$)(dt$)\",\n \"replace\": 75\n }\n ]\n}\n","import english from './dictionaries/english.trie.gz?url'\nimport suggestionWeights from './dictionaries/suggestion-weights.json'\nimport type { SpellDictionaryUrls } from './dictionaryData'\n\n/** US and British spellings are both accepted, with software vocabulary on top. */\nexport const ENGLISH_DICTIONARIES: SpellDictionaryUrls = {\n dictionaries: [english],\n suggestionWeights,\n}\n","import type { SpellEngineSource } from './engine'\n\nexport type SpellDictionaryUrls = {\n readonly dictionaries: readonly string[]\n readonly suggestionWeights: SpellEngineSource['suggestionWeights']\n}\n\n/** Fetches and inflates each dictionary. Every fetch starts before any is awaited. */\nexport async function loadSpellEngineSource(urls: SpellDictionaryUrls): Promise<SpellEngineSource> {\n const dictionaries = await Promise.all(urls.dictionaries.map(fetchDictionary))\n return { dictionaries, suggestionWeights: urls.suggestionWeights }\n}\n\nasync function fetchDictionary(url: string): Promise<Uint8Array<ArrayBuffer>> {\n const response = await fetch(url)\n if (!response.ok) throw new Error(`Spellcheck dictionary failed to load: HTTP ${response.status}`)\n return inflateDictionary(new Uint8Array(await response.arrayBuffer()))\n}\n\n/**\n * A server that labels `.gz` files `Content-Encoding: gzip` hands fetch the inflated bytes, so the\n * gzip magic number decides whether there is anything left to inflate.\n */\nexport async function inflateDictionary(\n bytes: Uint8Array<ArrayBuffer>,\n): Promise<Uint8Array<ArrayBuffer>> {\n if (bytes[0] !== 0x1f || bytes[1] !== 0x8b) return bytes\n\n const stream = new Blob([bytes]).stream().pipeThrough(new DecompressionStream('gzip'))\n return new Uint8Array(await new Response(stream).arrayBuffer())\n}\n","//#region ../cspell-pipe/dist/helpers/iteratorToIterable.js\nfunction* iteratorToIterable(iterator) {\n\ttry {\n\t\tlet n;\n\t\twhile (!(n = iterator.next()).done) yield n.value;\n\t} catch (e) {\n\t\tif (iterator.throw) return iterator.throw(e);\n\t\tthrow e;\n\t} finally {\n\t\titerator.return?.();\n\t}\n}\n//#endregion\n//#region ../cspell-pipe/dist/operators/append.js\n/**\n* Append values onto the end of an iterable.\n* @param iterablesToAppend - the iterables in the order to be appended.\n* @returns\n*/\nfunction opAppendSync(...iterablesToAppend) {\n\tfunction* fnAppend(iter) {\n\t\tyield* iter;\n\t\tfor (const i of iterablesToAppend) yield* i;\n\t}\n\treturn fnAppend;\n}\n//#endregion\n//#region ../cspell-pipe/dist/operators/combine.js\nfunction opCombineSync(...fns) {\n\tfunction combine(iter) {\n\t\tfor (const fn of fns) iter = fn(iter);\n\t\treturn iter;\n\t}\n\treturn combine;\n}\n//#endregion\n//#region ../cspell-pipe/dist/operators/concatMap.js\nfunction opConcatMapSync(mapFn) {\n\tfunction fnConcatMapSync(iterable) {\n\t\tfunction opConcatMapIterator() {\n\t\t\tconst iter = iterable[Symbol.iterator]();\n\t\t\tlet resultsIter = void 0;\n\t\t\tfunction nextConcatMap() {\n\t\t\t\twhile (true) {\n\t\t\t\t\tif (resultsIter) {\n\t\t\t\t\t\tconst { done, value } = resultsIter.next();\n\t\t\t\t\t\tif (!done) return { value };\n\t\t\t\t\t\tresultsIter = void 0;\n\t\t\t\t\t}\n\t\t\t\t\tconst { done, value } = iter.next();\n\t\t\t\t\tif (done) return {\n\t\t\t\t\t\tdone,\n\t\t\t\t\t\tvalue: void 0\n\t\t\t\t\t};\n\t\t\t\t\tresultsIter = mapFn(value)[Symbol.iterator]();\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn { next: nextConcatMap };\n\t\t}\n\t\treturn { [Symbol.iterator]: opConcatMapIterator };\n\t}\n\treturn fnConcatMapSync;\n}\n//#endregion\n//#region ../cspell-pipe/dist/operators/filter.js\nfunction opFilterSync(filterFn) {\n\tfunction opFilterIterable(iterable) {\n\t\tfunction opFilterIterator() {\n\t\t\tconst iter = iterable[Symbol.iterator]();\n\t\t\tfunction nextOpFilter() {\n\t\t\t\twhile (true) {\n\t\t\t\t\tconst { done, value } = iter.next();\n\t\t\t\t\tif (done) return {\n\t\t\t\t\t\tdone,\n\t\t\t\t\t\tvalue: void 0\n\t\t\t\t\t};\n\t\t\t\t\tif (filterFn(value)) return { value };\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn { next: nextOpFilter };\n\t\t}\n\t\treturn { [Symbol.iterator]: opFilterIterator };\n\t}\n\treturn opFilterIterable;\n}\n//#endregion\n//#region ../cspell-pipe/dist/operators/flatten.js\nfunction opFlattenSync() {\n\tfunction* fn(iter) {\n\t\tfor (const v of iter) yield* v;\n\t}\n\treturn fn;\n}\n//#endregion\n//#region ../cspell-pipe/dist/operators/map.js\nfunction opMapSync(mapFn) {\n\tfunction opMapIterable(iterable) {\n\t\tfunction opMapIterator() {\n\t\t\tconst iter = iterable[Symbol.iterator]();\n\t\t\tfunction nextOpMap() {\n\t\t\t\tconst { done, value } = iter.next();\n\t\t\t\tif (done) return {\n\t\t\t\t\tdone,\n\t\t\t\t\tvalue: void 0\n\t\t\t\t};\n\t\t\t\treturn { value: mapFn(value) };\n\t\t\t}\n\t\t\treturn { next: nextOpMap };\n\t\t}\n\t\treturn { [Symbol.iterator]: opMapIterator };\n\t}\n\treturn opMapIterable;\n}\n//#endregion\n//#region ../cspell-pipe/dist/operators/reduce.js\nfunction opReduceSync(reduceFn, initialValue) {\n\tfunction* reduce(head, tail) {\n\t\tfor (const v of tail) head = reduceFn(head, v);\n\t\tyield head;\n\t}\n\tfunction* fn(iter) {\n\t\tconst ht = initialValue === void 0 ? headTail(iter) : {\n\t\t\thead: initialValue,\n\t\t\ttail: iter\n\t\t};\n\t\tif (!ht) return;\n\t\tyield* reduce(ht.head, ht.tail);\n\t}\n\treturn fn;\n}\nfunction headTail(iter) {\n\tconst iterator = iter[Symbol.iterator]();\n\tconst first = iterator.next();\n\tif (first.done) return void 0;\n\treturn {\n\t\thead: first.value,\n\t\ttail: iteratorToIterable(iterator)\n\t};\n}\n//#endregion\n//#region ../cspell-pipe/dist/operators/unique.js\nfunction opUniqueSync(k) {\n\tfunction fnK(key) {\n\t\tfunction* fn(iter) {\n\t\t\tconst s = /* @__PURE__ */ new Set();\n\t\t\tfor (const v of iter) {\n\t\t\t\tconst kk = key(v);\n\t\t\t\tif (s.has(kk)) continue;\n\t\t\t\ts.add(kk);\n\t\t\t\tyield v;\n\t\t\t}\n\t\t}\n\t\treturn fn;\n\t}\n\tfunction* fn(iter) {\n\t\tconst s = /* @__PURE__ */ new Set();\n\t\tfor (const v of iter) {\n\t\t\tif (s.has(v)) continue;\n\t\t\ts.add(v);\n\t\t\tyield v;\n\t\t}\n\t}\n\treturn k ? fnK(k) : fn;\n}\n//#endregion\n//#region ../cspell-pipe/dist/pipe.js\nfunction pipeSync(i, ...fns) {\n\treturn opCombineSync(...fns)(i);\n}\n//#endregion\n//#region ../cspell-pipe/dist/reduce.js\nfunction reduceSync(iter, reduceFn, initialValue) {\n\treturn [...initialValue === void 0 ? pipeSync(iter, opReduceSync(reduceFn)) : pipeSync(iter, opReduceSync(reduceFn, initialValue))][0];\n}\n//#endregion\n//#region src/lib/utils/memorizeLastCall.ts\nconst SymEmpty = Symbol(\"memorizeLastCall\");\nfunction memorizeLastCall(fn) {\n\tlet lastP = void 0;\n\tlet lastR = SymEmpty;\n\tfunction calc(p) {\n\t\tif (lastP === p && lastR !== SymEmpty) return lastR;\n\t\tlastP = p;\n\t\tlastR = fn(p);\n\t\treturn lastR;\n\t}\n\treturn calc;\n}\n//#endregion\n//#region src/lib/ITrieNode/find.ts\nconst defaultLegacyMinCompoundLength$2 = 3;\nconst _defaultFindOptions$1 = {\n\tmatchCase: false,\n\tcompoundMode: \"compound\",\n\tlegacyMinCompoundLength: defaultLegacyMinCompoundLength$2\n};\nObject.freeze(_defaultFindOptions$1);\nconst knownCompoundModes$1 = new Map([\n\t\"none\",\n\t\"compound\",\n\t\"legacy\"\n].map((a) => [a, a]));\nconst notFound = {\n\tfound: false,\n\tcompoundUsed: false,\n\tcaseMatched: false,\n\tforbidden: void 0\n};\nObject.freeze(notFound);\n/**\n*\n* @param root Trie root node. root.c contains the compound root and forbidden root.\n* @param word A pre normalized word use `normalizeWord` or `normalizeWordToLowercase`\n* @param options\n*/\nfunction findWordNode$1(root, word, options) {\n\treturn _findWordNode$1(root, word, options);\n}\n/**\n*\n* @param root Trie root node. root.c contains the compound root and forbidden root.\n* @param word A pre normalized word use `normalizeWord` or `normalizeWordToLowercase`\n* @param options\n*/\nfunction findWord$1(root, word, options) {\n\tif (root.find && !options?.compoundSeparator) {\n\t\tconst found = root.find(word, options?.matchCase || false);\n\t\tif (found) {\n\t\t\tif (options?.checkForbidden && found.forbidden === void 0) found.forbidden = isForbiddenWord$1(root, word, root.forbidPrefix);\n\t\t\treturn found;\n\t\t}\n\t\tif (!root.hasCompoundWords) return notFound;\n\t}\n\tconst { found, compoundUsed, caseMatched, forbidden } = _findWordNode$1(root, word, options);\n\tconst result = {\n\t\tfound,\n\t\tcompoundUsed,\n\t\tcaseMatched,\n\t\tforbidden\n\t};\n\tif (options?.checkForbidden && forbidden === void 0) result.forbidden = isForbiddenWord$1(root, word, root.forbidPrefix);\n\treturn result;\n}\n/**\n*\n* @param root Trie root node. root.c contains the compound root and forbidden root.\n* @param word A pre normalized word use `normalizeWord` or `normalizeWordToLowercase`\n* @param options\n*/\nfunction _findWordNode$1(root, word, options) {\n\tconst trieInfo = root.info;\n\tconst matchCase = options?.matchCase || false;\n\tconst compoundMode = knownCompoundModes$1.get(options?.compoundMode) || _defaultFindOptions$1.compoundMode;\n\tconst compoundPrefix = compoundMode === \"compound\" ? trieInfo.compoundCharacter ?? root.compoundFix : \"\";\n\tconst ignoreCasePrefix = matchCase ? \"\" : trieInfo.stripCaseAndAccentsPrefix ?? root.caseInsensitivePrefix;\n\tconst mustCheckForbidden = options?.checkForbidden === true;\n\tconst checkForbidden = options?.checkForbidden ?? true;\n\tconst compoundSeparator = options?.compoundSeparator || \"\";\n\tfunction __findCompound() {\n\t\tconst f = findCompoundWord$1(root, word, compoundPrefix, ignoreCasePrefix, compoundSeparator);\n\t\tif (f.found !== false && (mustCheckForbidden || f.compoundUsed && checkForbidden)) f.forbidden = isForbiddenWord$1(!f.caseMatched ? walk$2(root, root.caseInsensitivePrefix) : root, word, root.forbidPrefix);\n\t\treturn f;\n\t}\n\tfunction __findExact() {\n\t\tconst n = root.getNode ? root.getNode(word) : walk$2(root, word);\n\t\treturn {\n\t\t\tfound: isEndOfWordNode$1(n) && word,\n\t\t\tcompoundUsed: false,\n\t\t\tforbidden: checkForbidden ? isForbiddenWord$1(root, word, root.forbidPrefix) : void 0,\n\t\t\tnode: n,\n\t\t\tcaseMatched: true\n\t\t};\n\t}\n\tswitch (compoundMode) {\n\t\tcase \"none\": return matchCase ? __findExact() : __findCompound();\n\t\tcase \"compound\": return __findCompound();\n\t\tcase \"legacy\": return findLegacyCompound$1(root, word, options);\n\t}\n}\nfunction findLegacyCompound$1(root, word, options) {\n\tconst roots = [root];\n\tif (!options?.matchCase) roots.push(walk$2(root, root.caseInsensitivePrefix));\n\treturn findLegacyCompoundNode$1(roots, word, options?.legacyMinCompoundLength || defaultLegacyMinCompoundLength$2, options?.compoundSeparator ?? \"+\");\n}\nfunction findCompoundNode$1(root, word, compoundCharacter, ignoreCasePrefix, compoundSeparator) {\n\tconst stack = [{\n\t\tn: root,\n\t\tcompoundPrefix: ignoreCasePrefix,\n\t\tcr: void 0,\n\t\tcaseMatched: true,\n\t\ts: \"\"\n\t}];\n\tconst compoundPrefix = compoundCharacter || ignoreCasePrefix;\n\tconst possibleCompoundPrefix = ignoreCasePrefix && compoundCharacter ? ignoreCasePrefix + compoundCharacter : \"\";\n\tconst nw = word.normalize();\n\tconst w = [...nw];\n\tfunction determineRoot(s) {\n\t\tconst prefix = s.compoundPrefix;\n\t\tlet r = root;\n\t\tlet i = 0;\n\t\tfor (; i < prefix.length && r; ++i) r = r.get(prefix[i]);\n\t\tconst caseMatched = s.caseMatched && prefix[0] !== ignoreCasePrefix;\n\t\treturn {\n\t\t\tn: s.n,\n\t\t\tcompoundPrefix: prefix === compoundPrefix ? possibleCompoundPrefix : \"\",\n\t\t\tcr: r,\n\t\t\tcaseMatched,\n\t\t\ts: prefix.endsWith(compoundCharacter) ? compoundSeparator : \"\"\n\t\t};\n\t}\n\tlet compoundUsed = false;\n\tlet caseMatched = true;\n\tlet i = 0;\n\tlet node;\n\twhile (true) {\n\t\tconst s = stack[i];\n\t\tconst h = w[i++];\n\t\tconst n = s.cr || s.n;\n\t\tconst c = h && n?.get(h) || void 0;\n\t\tif (c && i < word.length) {\n\t\t\tcaseMatched = s.caseMatched;\n\t\t\tstack[i] = {\n\t\t\t\tn: c,\n\t\t\t\tcompoundPrefix,\n\t\t\t\tcr: void 0,\n\t\t\t\tcaseMatched,\n\t\t\t\ts: \"\"\n\t\t\t};\n\t\t} else if (!c || !c.eow) {\n\t\t\tnode = node || c;\n\t\t\twhile (--i > 0) {\n\t\t\t\tconst s = stack[i];\n\t\t\t\tif (!s.compoundPrefix || !s.n?.hasChildren()) continue;\n\t\t\t\tif (s.n.get(compoundCharacter)) break;\n\t\t\t}\n\t\t\tif (i >= 0 && stack[i].compoundPrefix) {\n\t\t\t\tcompoundUsed = i > 0;\n\t\t\t\tconst r = determineRoot(stack[i]);\n\t\t\t\tstack[i] = r;\n\t\t\t\tif (!r.cr) break;\n\t\t\t\tif (!i && !r.caseMatched && nw !== nw.toLowerCase()) break;\n\t\t\t} else break;\n\t\t} else {\n\t\t\tnode = c;\n\t\t\tcaseMatched = s.caseMatched;\n\t\t\tbreak;\n\t\t}\n\t}\n\tfunction joinCompoundWord() {\n\t\treturn stack.map((s) => s.s).map((c, i) => c + w[i]).join(\"\");\n\t}\n\tconst f = i === word.length && word || false;\n\treturn {\n\t\tfound: f && (compoundSeparator ? joinCompoundWord() : f),\n\t\tcompoundUsed,\n\t\tnode,\n\t\tforbidden: void 0,\n\t\tcaseMatched\n\t};\n}\nfunction findCompoundWord$1(root, word, compoundCharacter, ignoreCasePrefix, compoundSeparator) {\n\tconst { found, compoundUsed, node, caseMatched } = findCompoundNode$1(root, word, compoundCharacter, ignoreCasePrefix, compoundSeparator);\n\tif (!node || !node.eow) return {\n\t\tfound: false,\n\t\tcompoundUsed,\n\t\tnode,\n\t\tforbidden: void 0,\n\t\tcaseMatched\n\t};\n\treturn {\n\t\tfound,\n\t\tcompoundUsed,\n\t\tnode,\n\t\tforbidden: void 0,\n\t\tcaseMatched\n\t};\n}\nfunction findWordExact$1(root, word) {\n\tconst r = root;\n\tif (r?.findExact) return r.findExact(word);\n\treturn isEndOfWordNode$1(walk$2(root, word));\n}\nfunction isEndOfWordNode$1(n) {\n\treturn !!n?.eow;\n}\nfunction walk$2(root, word) {\n\tconst w = [...word];\n\tlet n = root;\n\tlet i = 0;\n\twhile (n && i < w.length) {\n\t\tconst h = w[i++];\n\t\tn = n.get(h);\n\t}\n\treturn n;\n}\nfunction findLegacyCompoundNode$1(roots, word, minCompoundLength, compoundSeparator) {\n\tconst root = roots[0];\n\tconst numRoots = roots.length;\n\tconst stack = [{\n\t\tn: root,\n\t\tusedRoots: 1,\n\t\tsubLength: 0,\n\t\tisCompound: false,\n\t\tcr: void 0,\n\t\tcaseMatched: true\n\t}];\n\tconst w = word;\n\tconst wLen = w.length;\n\tlet compoundUsed = false;\n\tlet caseMatched = true;\n\tlet i = 0;\n\tlet node;\n\twhile (true) {\n\t\tconst s = stack[i];\n\t\tconst h = w[i++];\n\t\tconst c = (s.cr || s.n)?.get(h);\n\t\tif (c && i < wLen) stack[i] = {\n\t\t\tn: c,\n\t\t\tusedRoots: 0,\n\t\t\tsubLength: s.subLength + 1,\n\t\t\tisCompound: s.isCompound,\n\t\t\tcr: void 0,\n\t\t\tcaseMatched: s.caseMatched\n\t\t};\n\t\telse if (!c || !c.eow || c.eow && s.subLength < minCompoundLength - 1) {\n\t\t\twhile (--i > 0) {\n\t\t\t\tconst s = stack[i];\n\t\t\t\tif (s.usedRoots < numRoots && s.n?.eow && (s.subLength >= minCompoundLength || !s.subLength) && wLen - i >= minCompoundLength) break;\n\t\t\t}\n\t\t\tif (i > 0 || stack[i].usedRoots < numRoots) {\n\t\t\t\tcompoundUsed = i > 0;\n\t\t\t\tconst s = stack[i];\n\t\t\t\ts.cr = roots[s.usedRoots++];\n\t\t\t\ts.subLength = 0;\n\t\t\t\ts.isCompound = compoundUsed;\n\t\t\t\ts.caseMatched = s.caseMatched && s.usedRoots <= 1;\n\t\t\t} else break;\n\t\t} else {\n\t\t\tnode = c;\n\t\t\tcaseMatched = s.caseMatched;\n\t\t\tbreak;\n\t\t}\n\t}\n\tfunction extractWord() {\n\t\tif (!word || i < word.length) return false;\n\t\tconst letters = [];\n\t\tlet subLen = 0;\n\t\tfor (let j = 0; j < i; ++j) {\n\t\t\tconst { subLength } = stack[j];\n\t\t\tif (subLength < subLen) letters.push(compoundSeparator);\n\t\t\tletters.push(word[j]);\n\t\t\tsubLen = subLength;\n\t\t}\n\t\treturn letters.join(\"\");\n\t}\n\treturn {\n\t\tfound: extractWord(),\n\t\tcompoundUsed,\n\t\tnode,\n\t\tforbidden: void 0,\n\t\tcaseMatched\n\t};\n}\nfunction isForbiddenWord$1(root, word, forbiddenPrefix) {\n\tconst r = root;\n\tif (r?.isForbidden) return r.isForbidden(word);\n\treturn findWordExact$1(root?.get(forbiddenPrefix), word);\n}\nconst createFindOptions$1 = memorizeLastCall(_createFindOptions$1);\nfunction _createFindOptions$1(options) {\n\tif (!options) return _defaultFindOptions$1;\n\tconst d = _defaultFindOptions$1;\n\treturn {\n\t\tmatchCase: options.matchCase ?? d.matchCase,\n\t\tcompoundMode: options.compoundMode ?? d.compoundMode,\n\t\tlegacyMinCompoundLength: options.legacyMinCompoundLength ?? d.legacyMinCompoundLength,\n\t\tcheckForbidden: options.checkForbidden ?? d.checkForbidden,\n\t\tcompoundSeparator: options.compoundSeparator ?? d.compoundSeparator\n\t};\n}\n//#endregion\n//#region src/lib/walker/walkerTypes.ts\nconst JOIN_SEPARATOR = \"+\";\nconst WORD_SEPARATOR = \" \";\nconst CompoundWordsMethod = {\n\t/**\n\t* Do not compound words.\n\t*/\n\tNONE: 0,\n\t/**\n\t* Create word compounds separated by spaces.\n\t*/\n\tSEPARATE_WORDS: 1,\n\t/**\n\t* Create word compounds without separation.\n\t*/\n\tJOIN_WORDS: 2,\n\t0: \"NONE\",\n\t1: \"SEPARATE_WORDS\",\n\t2: \"JOIN_WORDS\"\n};\n//#endregion\n//#region src/lib/ITrieNode/walker/walker.ts\n/**\n* Walks the Trie and yields a value at each node.\n* next(goDeeper: boolean):\n*/\nfunction* compoundWalker$1(root, compoundingMethod) {\n\tconst empty = Object.freeze([]);\n\tconst roots = {\n\t\t[CompoundWordsMethod.NONE]: empty,\n\t\t[CompoundWordsMethod.JOIN_WORDS]: [[\"+\", root]],\n\t\t[CompoundWordsMethod.SEPARATE_WORDS]: [[\" \", root]]\n\t};\n\tconst rc = roots[compoundingMethod].length ? roots[compoundingMethod] : void 0;\n\tfunction children(n) {\n\t\tif (n.hasChildren()) {\n\t\t\tconst entries = n.entries();\n\t\t\tconst c = Array.isArray(entries) ? entries : [...entries];\n\t\t\treturn n.eow && rc ? [...c, ...rc] : c;\n\t\t}\n\t\tif (n.eow) return roots[compoundingMethod];\n\t\treturn empty;\n\t}\n\tlet depth = 0;\n\tconst stack = [];\n\tstack[depth] = {\n\t\tt: \"\",\n\t\tc: children(root),\n\t\tci: 0\n\t};\n\twhile (depth >= 0) {\n\t\tlet s = stack[depth];\n\t\tlet baseText = s.t;\n\t\twhile (s.ci < s.c.length) {\n\t\t\tconst [char, node] = s.c[s.ci++];\n\t\t\tconst text = baseText + char;\n\t\t\tif ((yield {\n\t\t\t\ttext,\n\t\t\t\tnode,\n\t\t\t\tdepth\n\t\t\t}) ?? true) {\n\t\t\t\tdepth++;\n\t\t\t\tbaseText = text;\n\t\t\t\tstack[depth] = {\n\t\t\t\t\tt: text,\n\t\t\t\t\tc: children(node),\n\t\t\t\t\tci: 0\n\t\t\t\t};\n\t\t\t}\n\t\t\ts = stack[depth];\n\t\t}\n\t\tdepth -= 1;\n\t}\n}\n/**\n* Walks the Trie and yields a value at each node.\n* next(goDeeper: boolean):\n*/\nfunction* nodeWalker$1(root) {\n\tlet depth = 0;\n\tconst stack = [];\n\tconst entries = root.entries();\n\tstack[depth] = {\n\t\tt: \"\",\n\t\tn: root,\n\t\tc: Array.isArray(entries) ? entries : [...entries],\n\t\tci: 0\n\t};\n\twhile (depth >= 0) {\n\t\tlet s = stack[depth];\n\t\tlet baseText = s.t;\n\t\twhile (s.ci < s.c.length && s.n) {\n\t\t\tconst idx = s.ci++;\n\t\t\tconst [char, node] = s.c[idx];\n\t\t\tconst text = baseText + char;\n\t\t\tif ((yield {\n\t\t\t\ttext,\n\t\t\t\tnode,\n\t\t\t\tdepth\n\t\t\t}) !== false) {\n\t\t\t\tdepth++;\n\t\t\t\tbaseText = text;\n\t\t\t\tconst s = stack[depth];\n\t\t\t\tconst entries = node.entries();\n\t\t\t\tconst c = Array.isArray(entries) ? entries : [...entries];\n\t\t\t\tif (s) {\n\t\t\t\t\ts.t = text;\n\t\t\t\t\ts.n = node;\n\t\t\t\t\ts.c = c;\n\t\t\t\t\ts.ci = 0;\n\t\t\t\t} else stack[depth] = {\n\t\t\t\t\tt: text,\n\t\t\t\t\tn: node,\n\t\t\t\t\tc,\n\t\t\t\t\tci: 0\n\t\t\t\t};\n\t\t\t}\n\t\t\ts = stack[depth];\n\t\t}\n\t\tdepth -= 1;\n\t}\n}\nfunction walker$1(root, compoundingMethod = CompoundWordsMethod.NONE) {\n\treturn compoundingMethod === CompoundWordsMethod.NONE ? nodeWalker$1(root) : compoundWalker$1(root, compoundingMethod);\n}\nfunction walkerWords$1(root) {\n\treturn walkerWordsITrie(root);\n}\n/**\n* Walks the Trie and yields each word.\n*/\nfunction* walkerWordsITrie(root) {\n\tlet depth = 0;\n\tconst stack = [];\n\tconst entries = root.entries();\n\tconst c = Array.isArray(entries) ? entries : [...entries];\n\tstack[depth] = {\n\t\tt: \"\",\n\t\tn: root,\n\t\tc,\n\t\tci: 0\n\t};\n\twhile (depth >= 0) {\n\t\tlet s = stack[depth];\n\t\tlet baseText = s.t;\n\t\twhile (s.ci < s.c.length && s.n) {\n\t\t\tconst [char, node] = s.c[s.ci++];\n\t\t\tif (!node) continue;\n\t\t\tconst text = baseText + char;\n\t\t\tif (node.eow) yield text;\n\t\t\tdepth++;\n\t\t\tbaseText = text;\n\t\t\tconst entries = node.entries();\n\t\t\tconst c = Array.isArray(entries) ? entries : [...entries];\n\t\t\tif (stack[depth]) {\n\t\t\t\ts = stack[depth];\n\t\t\t\ts.t = text;\n\t\t\t\ts.n = node;\n\t\t\t\ts.c = c;\n\t\t\t\ts.ci = 0;\n\t\t\t} else stack[depth] = {\n\t\t\t\tt: text,\n\t\t\t\tn: node,\n\t\t\t\tc,\n\t\t\t\tci: 0\n\t\t\t};\n\t\t\ts = stack[depth];\n\t\t}\n\t\tdepth -= 1;\n\t}\n}\n//#endregion\n//#region src/lib/ITrieNode/trie-util.ts\n/**\n* Generate a Iterator that can walk a Trie and yield the words.\n*/\nfunction iteratorTrieWords$1(node) {\n\treturn walkerWords$1(node);\n}\nfunction findNode$1(node, word) {\n\tfor (let i = 0; i < word.length; ++i) {\n\t\tconst n = node.get(word[i]);\n\t\tif (!n) return void 0;\n\t\tnode = n;\n\t}\n\treturn node;\n}\nfunction countWords$1(root) {\n\tconst visited = /* @__PURE__ */ new Map();\n\tfunction walk(n) {\n\t\tconst nestedCount = visited.get(n.id);\n\t\tif (nestedCount !== void 0) return nestedCount;\n\t\tlet cnt = n.eow ? 1 : 0;\n\t\tvisited.set(n, cnt);\n\t\tfor (const c of n.values()) cnt += walk(c);\n\t\tvisited.set(n, cnt);\n\t\treturn cnt;\n\t}\n\treturn walk(root);\n}\n//#endregion\n//#region src/lib/utils/debugger.ts\nlet debuggerIsAttached = false;\nfunction isDebuggerAttached() {\n\treturn debuggerIsAttached;\n}\n//#endregion\n//#region src/lib/utils/isDefined.ts\nfunction isDefined(t) {\n\treturn t !== void 0;\n}\n//#endregion\n//#region src/lib/walker/hintedWalker.ts\nfunction hintedWalker(root, ignoreCase, hint, compoundingMethod, emitWordSeparator) {\n\treturn hintedWalkerNext(root, ignoreCase, hint, compoundingMethod, emitWordSeparator);\n}\n/**\n* Walks the Trie and yields a value at each node.\n* next(goDeeper: boolean):\n*/\nfunction* hintedWalkerNext(root, ignoreCase, hint, compoundingMethod, emitWordSeparator = \"\") {\n\tconst _compoundingMethod = compoundingMethod ?? CompoundWordsMethod.NONE;\n\tconst compoundCharacter = root.compoundCharacter;\n\tconst noCaseCharacter = root.stripCaseAndAccentsPrefix;\n\tconst rawRoots = [root, ignoreCase ? root.c[noCaseCharacter] : void 0].filter(isDefined);\n\tconst specialRootsPrefix = existMap([\n\t\tcompoundCharacter,\n\t\tnoCaseCharacter,\n\t\troot.forbiddenWordPrefix\n\t]);\n\tfunction filterRoot(root) {\n\t\tconst c = (root.c && Object.entries(root.c))?.filter(([v]) => !(v in specialRootsPrefix));\n\t\treturn { c: c && Object.fromEntries(c) };\n\t}\n\tconst roots = rawRoots.map(filterRoot);\n\tconst compoundRoots = rawRoots.map((r) => r.c?.[compoundCharacter]).filter(isDefined);\n\tconst setOfCompoundRoots = new Set(compoundRoots);\n\tconst rootsForCompoundMethods = [...roots, ...compoundRoots];\n\tconst compoundMethodRoots = {\n\t\t[CompoundWordsMethod.NONE]: [],\n\t\t[CompoundWordsMethod.JOIN_WORDS]: rootsForCompoundMethods.map((r) => [\"+\", r]),\n\t\t[CompoundWordsMethod.SEPARATE_WORDS]: rootsForCompoundMethods.map((r) => [\" \", r])\n\t};\n\tfunction* children(n, hintOffset) {\n\t\tif (n.c) {\n\t\t\tconst h = hint.slice(hintOffset, hintOffset + 3) + hint.slice(Math.max(0, hintOffset - 2), hintOffset);\n\t\t\tconst hints = new Set(h);\n\t\t\tconst c = n.c;\n\t\t\tyield* [...hints].filter((a) => a in c).map((letter) => ({\n\t\t\t\tletter,\n\t\t\t\tnode: c[letter],\n\t\t\t\thintOffset: hintOffset + 1\n\t\t\t}));\n\t\t\thints.add(compoundCharacter);\n\t\t\tyield* Object.entries(c).filter((a) => !hints.has(a[0])).map(([letter, node]) => ({\n\t\t\t\tletter,\n\t\t\t\tnode,\n\t\t\t\thintOffset: hintOffset + 1\n\t\t\t}));\n\t\t\tif (compoundCharacter in c && !setOfCompoundRoots.has(n)) for (const compoundRoot of compoundRoots) for (const child of children(compoundRoot, hintOffset)) {\n\t\t\t\tconst { letter, node, hintOffset } = child;\n\t\t\t\tyield {\n\t\t\t\t\tletter: emitWordSeparator + letter,\n\t\t\t\t\tnode,\n\t\t\t\t\thintOffset\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t\tif (n.f) yield* [...compoundMethodRoots[_compoundingMethod]].map(([letter, node]) => ({\n\t\t\tletter,\n\t\t\tnode,\n\t\t\thintOffset\n\t\t}));\n\t}\n\tfor (const root of roots) {\n\t\tlet depth = 0;\n\t\tconst stack = [];\n\t\tconst stackText = [\"\"];\n\t\tstack[depth] = children(root, depth);\n\t\tlet ir;\n\t\twhile (depth >= 0) {\n\t\t\twhile (!(ir = stack[depth].next()).done) {\n\t\t\t\tconst { letter: char, node, hintOffset } = ir.value;\n\t\t\t\tconst text = stackText[depth] + char;\n\t\t\t\tconst hinting = yield {\n\t\t\t\t\ttext,\n\t\t\t\t\tnode,\n\t\t\t\t\tdepth\n\t\t\t\t};\n\t\t\t\tif (hinting && hinting.goDeeper) {\n\t\t\t\t\tdepth++;\n\t\t\t\t\tstackText[depth] = text;\n\t\t\t\t\tstack[depth] = children(node, hintOffset);\n\t\t\t\t}\n\t\t\t}\n\t\t\tdepth -= 1;\n\t\t}\n\t}\n}\nfunction existMap(values) {\n\tconst m = Object.create(null);\n\tfor (const v of values) m[v] = true;\n\treturn m;\n}\n//#endregion\n//#region src/lib/TrieNode/trie.ts\nfunction trieRootToITrieRoot(root) {\n\treturn ImplITrieRoot.toITrieNode(root);\n}\nconst EmptyKeys = Object.freeze([]);\nconst EmptyValues = Object.freeze([]);\nconst EmptyEntries = Object.freeze([]);\nvar ImplITrieNode = class ImplITrieNode {\n\tid;\n\t_keys;\n\tnode;\n\tconstructor(node) {\n\t\tthis.node = node;\n\t\tthis.id = node;\n\t}\n\t/** flag End of Word */\n\tget eow() {\n\t\treturn !!this.node.f;\n\t}\n\t/** number of children */\n\tget size() {\n\t\tif (!this.node.c) return 0;\n\t\treturn this.keys().length;\n\t}\n\t/** get keys to children */\n\tkeys() {\n\t\tif (this._keys) return this._keys;\n\t\tconst keys = this.node.c ? Object.keys(this.node.c) : EmptyKeys;\n\t\tthis._keys = keys;\n\t\treturn keys;\n\t}\n\t/** get the child nodes */\n\tvalues() {\n\t\treturn !this.node.c ? EmptyValues : Object.values(this.node.c).map((n) => ImplITrieNode.toITrieNode(n));\n\t}\n\tentries() {\n\t\treturn !this.node.c ? EmptyEntries : Object.entries(this.node.c).map(([k, n]) => [k, ImplITrieNode.toITrieNode(n)]);\n\t}\n\t/** get child ITrieNode */\n\tget(char) {\n\t\tconst n = this.node.c?.[char];\n\t\tif (!n) return void 0;\n\t\treturn ImplITrieNode.toITrieNode(n);\n\t}\n\tgetNode(chars) {\n\t\treturn this.findNode(chars);\n\t}\n\thas(char) {\n\t\tconst c = this.node.c;\n\t\treturn c && char in c || false;\n\t}\n\tchild(keyIdx) {\n\t\tconst char = this.keys()[keyIdx];\n\t\tconst n = char && this.get(char);\n\t\tif (!n) throw new Error(\"Index out of range.\");\n\t\treturn n;\n\t}\n\thasChildren() {\n\t\treturn !!this.node.c;\n\t}\n\t#findTrieNode(word) {\n\t\tlet node = this.node;\n\t\tfor (const char of word) {\n\t\t\tif (!node) return void 0;\n\t\t\tnode = node.c?.[char];\n\t\t}\n\t\treturn node;\n\t}\n\tfindNode(word) {\n\t\tconst node = this.#findTrieNode(word);\n\t\treturn node && ImplITrieNode.toITrieNode(node);\n\t}\n\tfindExact(word) {\n\t\tconst node = this.#findTrieNode(word);\n\t\treturn !!node && !!node.f;\n\t}\n\tstatic toITrieNode(node) {\n\t\treturn new this(node);\n\t}\n};\nvar ImplITrieRoot = class extends ImplITrieNode {\n\tinfo;\n\thasForbiddenWords;\n\thasCompoundWords;\n\thasNonStrictWords;\n\troot;\n\tconstructor(root) {\n\t\tsuper(root);\n\t\tthis.root = root;\n\t\tconst { stripCaseAndAccentsPrefix, compoundCharacter, forbiddenWordPrefix, suggestionPrefix } = root;\n\t\tthis.info = {\n\t\t\tstripCaseAndAccentsPrefix,\n\t\t\tcompoundCharacter,\n\t\t\tforbiddenWordPrefix,\n\t\t\tsuggestionPrefix\n\t\t};\n\t\tthis.hasForbiddenWords = !!root.c[forbiddenWordPrefix];\n\t\tthis.hasCompoundWords = !!root.c[compoundCharacter];\n\t\tthis.hasNonStrictWords = !!root.c[stripCaseAndAccentsPrefix];\n\t}\n\tget eow() {\n\t\treturn false;\n\t}\n\tresolveId(id) {\n\t\treturn new ImplITrieNode(id);\n\t}\n\tget forbidPrefix() {\n\t\treturn this.root.forbiddenWordPrefix;\n\t}\n\tget compoundFix() {\n\t\treturn this.root.compoundCharacter;\n\t}\n\tget caseInsensitivePrefix() {\n\t\treturn this.root.stripCaseAndAccentsPrefix;\n\t}\n\tget suggestionPrefix() {\n\t\treturn this.root.suggestionPrefix;\n\t}\n\tstatic toITrieNode(node) {\n\t\treturn new this(node);\n\t}\n};\n//#endregion\n//#region src/lib/walker/walker.ts\n/**\n* Walks the Trie and yields a value at each node.\n* next(goDeeper: boolean):\n*/\nfunction* compoundWalker(root, compoundingMethod) {\n\tconst roots = {\n\t\t[CompoundWordsMethod.NONE]: [],\n\t\t[CompoundWordsMethod.JOIN_WORDS]: [[\"+\", root]],\n\t\t[CompoundWordsMethod.SEPARATE_WORDS]: [[\" \", root]]\n\t};\n\tconst rc = roots[compoundingMethod].length ? roots[compoundingMethod] : void 0;\n\tconst empty = [];\n\tfunction children(n) {\n\t\tif (n.c && n.f && rc) return [...Object.entries(n.c), ...rc];\n\t\tif (n.c) return Object.entries(n.c);\n\t\tif (n.f && rc) return rc;\n\t\treturn empty;\n\t}\n\tlet depth = 0;\n\tconst stack = [];\n\tstack[depth] = {\n\t\tt: \"\",\n\t\tc: children(root),\n\t\tci: 0\n\t};\n\twhile (depth >= 0) {\n\t\tlet s = stack[depth];\n\t\tlet baseText = s.t;\n\t\twhile (s.ci < s.c.length) {\n\t\t\tconst [char, node] = s.c[s.ci++];\n\t\t\tconst text = baseText + char;\n\t\t\tif ((yield {\n\t\t\t\ttext,\n\t\t\t\tnode,\n\t\t\t\tdepth\n\t\t\t}) ?? true) {\n\t\t\t\tdepth++;\n\t\t\t\tbaseText = text;\n\t\t\t\tstack[depth] = {\n\t\t\t\t\tt: text,\n\t\t\t\t\tc: children(node),\n\t\t\t\t\tci: 0\n\t\t\t\t};\n\t\t\t}\n\t\t\ts = stack[depth];\n\t\t}\n\t\tdepth -= 1;\n\t}\n}\n/**\n* Walks the Trie and yields a value at each node.\n* next(goDeeper: boolean):\n*/\nfunction* nodeWalker(root) {\n\tconst empty = [];\n\tfunction children(n) {\n\t\tif (n.c) return Object.keys(n.c);\n\t\treturn empty;\n\t}\n\tlet depth = 0;\n\tconst stack = [];\n\tstack[depth] = {\n\t\tt: \"\",\n\t\tn: root.c,\n\t\tc: children(root),\n\t\tci: 0\n\t};\n\twhile (depth >= 0) {\n\t\tlet s = stack[depth];\n\t\tlet baseText = s.t;\n\t\twhile (s.ci < s.c.length && s.n) {\n\t\t\tconst char = s.c[s.ci++];\n\t\t\tconst node = s.n[char];\n\t\t\tconst text = baseText + char;\n\t\t\tif ((yield {\n\t\t\t\ttext,\n\t\t\t\tnode,\n\t\t\t\tdepth\n\t\t\t}) !== false) {\n\t\t\t\tdepth++;\n\t\t\t\tbaseText = text;\n\t\t\t\tconst s = stack[depth];\n\t\t\t\tconst c = children(node);\n\t\t\t\tif (s) {\n\t\t\t\t\ts.t = text;\n\t\t\t\t\ts.n = node.c;\n\t\t\t\t\ts.c = c;\n\t\t\t\t\ts.ci = 0;\n\t\t\t\t} else stack[depth] = {\n\t\t\t\t\tt: text,\n\t\t\t\t\tn: node.c,\n\t\t\t\t\tc,\n\t\t\t\t\tci: 0\n\t\t\t\t};\n\t\t\t}\n\t\t\ts = stack[depth];\n\t\t}\n\t\tdepth -= 1;\n\t}\n}\nconst walkerWords = _walkerWords;\n/**\n* Walks the Trie and yields each word.\n*/\nfunction* _walkerWords(root) {\n\tconst empty = [];\n\tfunction children(n) {\n\t\tif (n.c) return Object.keys(n.c);\n\t\treturn empty;\n\t}\n\tlet depth = 0;\n\tconst stack = [];\n\tstack[depth] = {\n\t\tt: \"\",\n\t\tn: root.c,\n\t\tc: children(root),\n\t\tci: 0\n\t};\n\twhile (depth >= 0) {\n\t\tlet s = stack[depth];\n\t\tlet baseText = s.t;\n\t\twhile (s.ci < s.c.length && s.n) {\n\t\t\tconst char = s.c[s.ci++];\n\t\t\tconst node = s.n[char];\n\t\t\tconst text = baseText + char;\n\t\t\tif (node.f) yield text;\n\t\t\tdepth++;\n\t\t\tbaseText = text;\n\t\t\tconst c = children(node);\n\t\t\tif (stack[depth]) {\n\t\t\t\ts = stack[depth];\n\t\t\t\ts.t = text;\n\t\t\t\ts.n = node.c;\n\t\t\t\ts.c = c;\n\t\t\t\ts.ci = 0;\n\t\t\t} else stack[depth] = {\n\t\t\t\tt: text,\n\t\t\t\tn: node.c,\n\t\t\t\tc,\n\t\t\t\tci: 0\n\t\t\t};\n\t\t\ts = stack[depth];\n\t\t}\n\t\tdepth -= 1;\n\t}\n}\nfunction walker(root, compoundingMethod = CompoundWordsMethod.NONE) {\n\treturn compoundingMethod === CompoundWordsMethod.NONE ? nodeWalker(root) : compoundWalker(root, compoundingMethod);\n}\nconst defaultSuggestionOptions = {\n\tcompoundMethod: CompoundWordsMethod.NONE,\n\tignoreCase: true,\n\tchangeLimit: 5,\n\tnumSuggestions: 8,\n\tincludeTies: true,\n\tget timeout() {\n\t\treturn isDebuggerAttached() ? 1e6 : 1e3;\n\t}\n};\nconst keyMapOfSuggestionOptionsStrict = {\n\tchangeLimit: \"changeLimit\",\n\tcompoundMethod: \"compoundMethod\",\n\tignoreCase: \"ignoreCase\",\n\tcompoundSeparator: \"compoundSeparator\",\n\tfilter: \"filter\",\n\tincludeTies: \"includeTies\",\n\tnumSuggestions: \"numSuggestions\",\n\ttimeout: \"timeout\",\n\tweightMap: \"weightMap\"\n};\n/**\n* Create suggestion options using composition.\n* @param opts - partial options.\n* @returns Options - with defaults.\n*/\nfunction createSuggestionOptions(...opts) {\n\tconst options = { ...defaultSuggestionOptions };\n\tconst keys = Object.keys(keyMapOfSuggestionOptionsStrict);\n\tfor (const opt of opts) for (const key of keys) assign(options, opt, key);\n\treturn options;\n}\nfunction assign(dest, src, k) {\n\tdest[k] = src[k] ?? dest[k];\n}\n//#endregion\n//#region src/lib/utils/PairingHeap.ts\nvar PairingHeap = class {\n\t_heap;\n\t_size = 0;\n\tcompare;\n\tconstructor(compare) {\n\t\tthis.compare = compare;\n\t}\n\t/** Add an item to the heap. */\n\tadd(v) {\n\t\tthis._heap = insert$1(this.compare, this._heap, v);\n\t\t++this._size;\n\t\treturn this;\n\t}\n\t/** take an item from the heap. */\n\tdequeue() {\n\t\tconst n = this.next();\n\t\tif (n.done) return void 0;\n\t\treturn n.value;\n\t}\n\t/** Add items to the heap */\n\tappend(i) {\n\t\tfor (const v of i) this.add(v);\n\t\treturn this;\n\t}\n\t/** get the next value */\n\tnext() {\n\t\tif (!this._heap) return {\n\t\t\tvalue: void 0,\n\t\t\tdone: true\n\t\t};\n\t\tconst value = this._heap.v;\n\t\t--this._size;\n\t\tthis._heap = removeHead(this.compare, this._heap);\n\t\treturn { value };\n\t}\n\t/** peek at the next value without removing it. */\n\tpeek() {\n\t\treturn this._heap?.v;\n\t}\n\t[Symbol.iterator]() {\n\t\treturn this;\n\t}\n\t/** alias of `size` */\n\tget length() {\n\t\treturn this._size;\n\t}\n\t/** number of entries in the heap. */\n\tget size() {\n\t\treturn this._size;\n\t}\n};\nfunction removeHead(compare, heap) {\n\tif (!heap || !heap.c) return void 0;\n\treturn mergeSiblings(compare, heap.c);\n}\nfunction insert$1(compare, heap, v) {\n\tconst n = {\n\t\tv,\n\t\ts: void 0,\n\t\tc: void 0\n\t};\n\tif (!heap || compare(v, heap.v) <= 0) {\n\t\tn.c = heap;\n\t\treturn n;\n\t}\n\tn.s = heap.c;\n\theap.c = n;\n\treturn heap;\n}\nfunction merge(compare, a, b) {\n\tif (compare(a.v, b.v) <= 0) {\n\t\ta.s = void 0;\n\t\tb.s = a.c;\n\t\ta.c = b;\n\t\treturn a;\n\t}\n\tb.s = void 0;\n\ta.s = b.c;\n\tb.c = a;\n\treturn b;\n}\nfunction mergeSiblings(compare, n) {\n\tif (!n.s) return n;\n\tconst s = n.s;\n\tconst ss = s.s;\n\tconst m = merge(compare, n, s);\n\treturn ss ? merge(compare, m, mergeSiblings(compare, ss)) : m;\n}\n//#endregion\n//#region src/lib/suggestions/constants.ts\nconst opCosts = {\n\tbaseCost: 100,\n\tswapCost: 75,\n\tduplicateLetterCost: 80,\n\tcompound: 1,\n\tvisuallySimilar: 1,\n\tfirstLetterBias: 5,\n\twordBreak: 99,\n\twordLengthCostFactor: .5\n};\nnew Intl.Collator(\"en\", { sensitivity: \"base\" }).compare;\n/**\n* This a set of letters that look like each other.\n* There can be a maximum of 30 groups.\n* It is possible for a letter to appear in more than 1 group, but not encouraged.\n*/\nconst visualLetterGroups = [\n\tforms(\"ǎàåÄÀAãâáǟặắấĀāăąaäæɐɑαаᾳ\") + \"ᾳ\",\n\tforms(\"Bbḃвъь\"),\n\tforms(\"ċČčcĉçCÇćĊСсς\"),\n\tforms(\"ḎḋḏḑďđḍDd\"),\n\tforms(\"ēëÈÊËềéèếệĕeEĒėęěêəɛёЁеʒ\"),\n\tforms(\"fḟFff\"),\n\tforms(\"ġĠĞǧĝģGgɣ\"),\n\tforms(\"ħĦĥḥHhḤȟн\"),\n\tforms(\"IįïİÎÍīiÌìíîıɪɨїΊΙ\"),\n\tforms(\"jJĵ\"),\n\tforms(\"ķKkκкќ\"),\n\tforms(\"ḷłľļLlĺḶίι\"),\n\tforms(\"Mṃṁm\"),\n\tforms(\"nņÑNṇňŇñńŋѝий\"),\n\tforms(\"ÒOøȭŌōőỏoÖòȱȯóôõöơɔόδо\"),\n\tforms(\"PṗpрРρ\"),\n\tforms(\"Qq\"),\n\tforms(\"řRṛrŕŗѓгя\"),\n\tforms(\"ṣšȘṢsSŠṡŞŝśșʃΣ\"),\n\tforms(\"tțȚťTṭṬṫ\"),\n\tforms(\"ÜüûŪưůūűúÛŭÙùuųU\"),\n\tforms(\"Vvν\"),\n\tforms(\"ŵwWẃẅẁωш\"),\n\tforms(\"xXх\"),\n\tforms(\"ÿýYŷyÝỳУўу\"),\n\tforms(\"ZẓžŽżŻźz\")\n];\nfunction forms(letters) {\n\tconst n = letters.normalize(\"NFC\").replaceAll(/\\p{M}/gu, \"\");\n\tconst na = n.normalize(\"NFD\").replaceAll(/\\p{M}/gu, \"\");\n\treturn [...new Set(n + n.toLowerCase() + n.toUpperCase() + na + na.toLowerCase() + na.toUpperCase())].join(\"\");\n}\n/**\n* This is a map of letters to groups mask values.\n* If two letters are part of the same group then `visualLetterMaskMap[a] & visualLetterMaskMap[b] !== 0`\n*/\nconst visualLetterMaskMap = calcVisualLetterMasks(visualLetterGroups);\n/**\n*\n* @param groups\n* @returns\n*/\nfunction calcVisualLetterMasks(groups) {\n\tconst map = Object.create(null);\n\tfor (let i = 0; i < groups.length; ++i) {\n\t\tconst m = 1 << i;\n\t\tconst g = groups[i];\n\t\tfor (const c of g) map[c] = (map[c] || 0) | m;\n\t}\n\treturn map;\n}\n//#endregion\n//#region src/lib/utils/assert.ts\nfunction assert(condition, message = \"Assert Failed\") {\n\tif (condition) return;\n\tthrow new Error(message);\n}\n//#endregion\n//#region src/lib/distance/weightedMaps.ts\nconst matchPossibleWordSeparators = /[+∙•・●]/g;\nfunction createWeightMap(...defs) {\n\tconst map = _createWeightMap();\n\taddDefsToWeightMap(map, defs);\n\treturn map;\n}\nfunction addDefToWeightMap(map, ...defs) {\n\treturn addDefsToWeightMap(map, defs);\n}\nfunction addAdjustment(map, ...adjustments) {\n\tfor (const adj of adjustments) map.adjustments.set(adj.id, adj);\n\treturn map;\n}\nfunction addDefsToWeightMap(map, defs) {\n\tfunction addSet(set, def) {\n\t\taddSetToTrieCost(map.insDel, set, def.insDel, def.penalty);\n\t\taddSetToTrieTrieCost(map.replace, set, def.replace, def.penalty);\n\t\taddSetToTrieTrieCost(map.swap, set, def.swap, def.penalty);\n\t}\n\tfor (const _def of defs) {\n\t\tconst def = normalizeDef(_def);\n\t\tsplitMap$1(def).forEach((s) => addSet(s, def));\n\t}\n\treturn map;\n}\nfunction _createWeightMap() {\n\treturn {\n\t\tinsDel: {},\n\t\treplace: {},\n\t\tswap: {},\n\t\tadjustments: /* @__PURE__ */ new Map()\n\t};\n}\nfunction lowest(a, b) {\n\tif (a === void 0) return b;\n\tif (b === void 0) return a;\n\treturn a <= b ? a : b;\n}\nfunction highest(a, b) {\n\tif (a === void 0) return b;\n\tif (b === void 0) return a;\n\treturn a >= b ? a : b;\n}\nfunction normalize(s) {\n\tconst f = /* @__PURE__ */ new Set([s]);\n\tf.add(s.normalize(\"NFC\"));\n\tf.add(s.normalize(\"NFD\"));\n\treturn f;\n}\nfunction* splitMapSubstringsIterable(map) {\n\tlet seq = \"\";\n\tlet mode = 0;\n\tfor (const char of map) {\n\t\tif (mode && char === \")\") {\n\t\t\tyield* normalize(seq);\n\t\t\tmode = 0;\n\t\t\tcontinue;\n\t\t}\n\t\tif (mode) {\n\t\t\tseq += char;\n\t\t\tcontinue;\n\t\t}\n\t\tif (char === \"(\") {\n\t\t\tmode = 1;\n\t\t\tseq = \"\";\n\t\t\tcontinue;\n\t\t}\n\t\tyield* normalize(char);\n\t}\n}\nfunction splitMapSubstrings(map) {\n\treturn [...splitMapSubstringsIterable(map)];\n}\n/**\n* Splits a WeightedMapDef.map\n* @param map\n*/\nfunction splitMap$1(def) {\n\tconst { map } = def;\n\treturn map.split(\"|\").map(splitMapSubstrings).filter((s) => s.length > 0);\n}\nfunction addToTrieCost(trie, str, cost, penalties) {\n\tif (!str) return;\n\tlet t = trie;\n\tfor (const c of str) {\n\t\tconst n = t.n = t.n || Object.create(null);\n\t\tt = n[c] = n[c] || Object.create(null);\n\t}\n\tt.c = lowest(t.c, cost);\n\tt.p = highest(t.p, penalties);\n}\nfunction addToTrieTrieCost(trie, left, right, cost, penalties) {\n\tlet t = trie;\n\tfor (const c of left) {\n\t\tconst n = t.n = t.n || Object.create(null);\n\t\tt = n[c] = n[c] || Object.create(null);\n\t}\n\taddToTrieCost(t.t = t.t || Object.create(null), right, cost, penalties);\n}\nfunction addSetToTrieCost(trie, set, cost, penalties) {\n\tif (cost === void 0) return;\n\tfor (const str of set) addToTrieCost(trie, str, cost, penalties);\n}\nfunction addSetToTrieTrieCost(trie, set, cost, penalties) {\n\tif (cost === void 0) return;\n\tfor (const left of set) for (const right of set) {\n\t\tif (left === right) continue;\n\t\taddToTrieTrieCost(trie, left, right, cost, penalties);\n\t}\n}\nfunction* searchTrieNodes(trie, str, i) {\n\tconst len = str.length;\n\tfor (let n = trie.n; i < len && n;) {\n\t\tconst t = n[str[i]];\n\t\tif (!t) return;\n\t\t++i;\n\t\tyield {\n\t\t\ti,\n\t\t\tt\n\t\t};\n\t\tn = t.n;\n\t}\n}\nfunction* findTrieCostPrefixes(trie, str, i) {\n\tfor (const n of searchTrieNodes(trie, str, i)) {\n\t\tconst { c, p } = n.t;\n\t\tif (c !== void 0) yield {\n\t\t\ti: n.i,\n\t\t\tc,\n\t\t\tp: p || 0\n\t\t};\n\t}\n}\nfunction* findTrieTrieCostPrefixes(trie, str, i) {\n\tfor (const n of searchTrieNodes(trie, str, i)) {\n\t\tconst t = n.t.t;\n\t\tif (t !== void 0) yield {\n\t\t\ti: n.i,\n\t\t\tt\n\t\t};\n\t}\n}\nfunction createWeightCostCalculator(weightMap) {\n\treturn new _WeightCostCalculator(weightMap);\n}\nvar _WeightCostCalculator = class {\n\tweightMap;\n\tconstructor(weightMap) {\n\t\tthis.weightMap = weightMap;\n\t}\n\t*calcInsDelCosts(pos) {\n\t\tconst { a, ai, b, bi, c, p } = pos;\n\t\tfor (const del of findTrieCostPrefixes(this.weightMap.insDel, a, ai)) yield {\n\t\t\ta,\n\t\t\tb,\n\t\t\tai: del.i,\n\t\t\tbi,\n\t\t\tc: c + del.c,\n\t\t\tp: p + del.p\n\t\t};\n\t\tfor (const ins of findTrieCostPrefixes(this.weightMap.insDel, b, bi)) yield {\n\t\t\ta,\n\t\t\tb,\n\t\t\tai,\n\t\t\tbi: ins.i,\n\t\t\tc: c + ins.c,\n\t\t\tp: p + ins.p\n\t\t};\n\t}\n\t*calcReplaceCosts(pos) {\n\t\tconst { a, ai, b, bi, c, p } = pos;\n\t\tfor (const del of findTrieTrieCostPrefixes(this.weightMap.replace, a, ai)) for (const ins of findTrieCostPrefixes(del.t, b, bi)) yield {\n\t\t\ta,\n\t\t\tb,\n\t\t\tai: del.i,\n\t\t\tbi: ins.i,\n\t\t\tc: c + ins.c,\n\t\t\tp: p + ins.p\n\t\t};\n\t}\n\t*calcSwapCosts(pos) {\n\t\tconst { a, ai, b, bi, c, p } = pos;\n\t\tconst swap = this.weightMap.swap;\n\t\tfor (const left of findTrieTrieCostPrefixes(swap, a, ai)) for (const right of findTrieCostPrefixes(left.t, a, left.i)) {\n\t\t\tconst sw = a.slice(left.i, right.i) + a.slice(ai, left.i);\n\t\t\tif (b.slice(bi).startsWith(sw)) {\n\t\t\t\tconst len = sw.length;\n\t\t\t\tyield {\n\t\t\t\t\ta,\n\t\t\t\t\tb,\n\t\t\t\t\tai: ai + len,\n\t\t\t\t\tbi: bi + len,\n\t\t\t\t\tc: c + right.c,\n\t\t\t\t\tp: p + right.p\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t}\n\tcalcAdjustment(word) {\n\t\tlet penalty = 0;\n\t\tfor (const adj of this.weightMap.adjustments.values()) if (adj.regexp.global) for (const _m of word.matchAll(adj.regexp)) penalty += adj.penalty;\n\t\telse if (adj.regexp.test(word)) penalty += adj.penalty;\n\t\treturn penalty;\n\t}\n};\nfunction normalizeDef(def) {\n\tconst { map, ...rest } = def;\n\treturn {\n\t\t...rest,\n\t\tmap: normalizeMap(map)\n\t};\n}\nfunction normalizeMap(map) {\n\treturn map.replaceAll(matchPossibleWordSeparators, \"∙\");\n}\n//#endregion\n//#region src/lib/distance/distanceAStarWeighted.ts\n/**\n* Calculate the edit distance between two words using an A* algorithm.\n*\n* Using basic weights, this algorithm has the same results as the Damerau-Levenshtein algorithm.\n*/\nfunction distanceAStarWeighted(wordA, wordB, map, cost = 100) {\n\tconst calc = createWeightCostCalculator(map);\n\tconst best = _distanceAStarWeightedEx(wordA, wordB, calc, cost);\n\tconst penalty = calc.calcAdjustment(wordB);\n\treturn best.c + best.p + penalty;\n}\nfunction _distanceAStarWeightedEx(wordA, wordB, map, cost = 100) {\n\tconst a = \"^\" + wordA + \"$\";\n\tconst b = \"^\" + wordB + \"$\";\n\tconst aN = a.length;\n\tconst bN = b.length;\n\tconst candidates = new CandidatePool(aN, bN);\n\tcandidates.add({\n\t\tai: 0,\n\t\tbi: 0,\n\t\tc: 0,\n\t\tp: 0,\n\t\tf: void 0\n\t});\n\t/** Substitute / Replace */\n\tfunction opSub(n) {\n\t\tconst { ai, bi, c, p } = n;\n\t\tif (ai < aN && bi < bN) {\n\t\t\tconst cc = a[ai] === b[bi] ? c : c + cost;\n\t\t\tcandidates.add({\n\t\t\t\tai: ai + 1,\n\t\t\t\tbi: bi + 1,\n\t\t\t\tc: cc,\n\t\t\t\tp,\n\t\t\t\tf: n\n\t\t\t});\n\t\t}\n\t}\n\t/** Insert */\n\tfunction opIns(n) {\n\t\tconst { ai, bi, c, p } = n;\n\t\tif (bi < bN) candidates.add({\n\t\t\tai,\n\t\t\tbi: bi + 1,\n\t\t\tc: c + cost,\n\t\t\tp,\n\t\t\tf: n\n\t\t});\n\t}\n\t/** Delete */\n\tfunction opDel(n) {\n\t\tconst { ai, bi, c, p } = n;\n\t\tif (ai < aN) candidates.add({\n\t\t\tai: ai + 1,\n\t\t\tbi,\n\t\t\tc: c + cost,\n\t\t\tp,\n\t\t\tf: n\n\t\t});\n\t}\n\t/** Swap adjacent letters */\n\tfunction opSwap(n) {\n\t\tconst { ai, bi, c, p } = n;\n\t\tif (a[ai] === b[bi + 1] && a[ai + 1] === b[bi]) candidates.add({\n\t\t\tai: ai + 2,\n\t\t\tbi: bi + 2,\n\t\t\tc: c + cost,\n\t\t\tp,\n\t\t\tf: n\n\t\t});\n\t}\n\tfunction opMap(n) {\n\t\tconst { ai, bi, c, p } = n;\n\t\tconst pos = {\n\t\t\ta,\n\t\t\tb,\n\t\t\tai,\n\t\t\tbi,\n\t\t\tc,\n\t\t\tp\n\t\t};\n\t\t[\n\t\t\tmap.calcInsDelCosts(pos),\n\t\t\tmap.calcSwapCosts(pos),\n\t\t\tmap.calcReplaceCosts(pos)\n\t\t].forEach((iter) => {\n\t\t\tfor (const nn of iter) candidates.add({\n\t\t\t\t...nn,\n\t\t\t\tf: n\n\t\t\t});\n\t\t});\n\t}\n\tlet best;\n\twhile (best = candidates.next()) {\n\t\tif (best.ai === aN && best.bi === bN) break;\n\t\topSwap(best);\n\t\topIns(best);\n\t\topDel(best);\n\t\topMap(best);\n\t\topSub(best);\n\t}\n\tassert(best);\n\treturn best;\n}\nvar CandidatePool = class {\n\tpool = new PairingHeap(compare$1);\n\tgrid = [];\n\taN;\n\tbN;\n\tconstructor(aN, bN) {\n\t\tthis.aN = aN;\n\t\tthis.bN = bN;\n\t}\n\tnext() {\n\t\tlet n;\n\t\twhile (n = this.pool.dequeue()) if (!n.d) return n;\n\t}\n\tadd(n) {\n\t\tconst i = idx(n.ai, n.bi, this.bN);\n\t\tconst g = this.grid[i];\n\t\tif (!g) {\n\t\t\tthis.grid[i] = n;\n\t\t\tthis.pool.add(n);\n\t\t\treturn;\n\t\t}\n\t\tif (g.c <= n.c) return;\n\t\tg.d = true;\n\t\tthis.grid[i] = n;\n\t\tthis.pool.add(n);\n\t}\n};\nfunction idx(r, c, cols) {\n\treturn r * cols + c;\n}\nfunction compare$1(a, b) {\n\treturn a.c - b.c || b.ai + b.bi - a.ai - a.bi;\n}\n//#endregion\n//#region src/lib/distance/levenshtein.ts\nconst initialRow = [...\".\".repeat(50)].map((_, i) => i);\nObject.freeze(initialRow);\n/**\n* Damerau–Levenshtein distance\n* [Damerau–Levenshtein distance - Wikipedia](https://en.wikipedia.org/wiki/Damerau%E2%80%93Levenshtein_distance)\n* @param a - first word\n* @param b - second word\n* @returns Distance value\n*/\nfunction levenshteinDistance(a, b) {\n\tconst aa = \" \" + a;\n\tconst bb = \" \" + b;\n\tconst nA = a.length + 1;\n\tconst nB = b.length + 1;\n\tconst firstRow = initialRow.slice(0, nA + 1);\n\tfor (let i = firstRow.length; i <= nA; ++i) firstRow[i] = i;\n\tconst matrix = [\n\t\tfirstRow,\n\t\t[1, ...firstRow],\n\t\t[\n\t\t\t2,\n\t\t\t1,\n\t\t\t...firstRow\n\t\t]\n\t];\n\tlet ppRow = matrix[0];\n\tlet pRow = matrix[1];\n\tfor (let j = 2; j <= nB; ++j) {\n\t\tconst row = matrix[j % 3];\n\t\trow[0] = pRow[0] + 1;\n\t\trow[1] = pRow[1] + 1;\n\t\tconst bp = bb[j - 1];\n\t\tconst bc = bb[j];\n\t\tlet ap = aa[0];\n\t\tfor (let i = 2, i1 = 1; i <= nA; i1 = i, ++i) {\n\t\t\tconst ac = aa[i];\n\t\t\tconst c = pRow[i1] + (ac === bc ? 0 : 1);\n\t\t\tconst ct = ac === bp && ap === bc ? ppRow[i1 - 1] + 1 : c;\n\t\t\trow[i] = Math.min(c, ct, pRow[i] + 1, row[i1] + 1);\n\t\t\tap = ac;\n\t\t}\n\t\tppRow = pRow;\n\t\tpRow = row;\n\t}\n\treturn pRow[nA];\n}\n//#endregion\n//#region src/lib/distance/distance.ts\nconst defaultCost = 100;\n/**\n* Calculate the edit distance between any two words.\n* Use the Damerau–Levenshtein distance algorithm.\n* @param wordA\n* @param wordB\n* @param editCost - the cost of each edit (defaults to 100)\n* @returns the edit distance.\n*/\nfunction editDistance(wordA, wordB, editCost = defaultCost) {\n\treturn levenshteinDistance(wordA, wordB) * editCost;\n}\n/**\n* Calculate the weighted edit distance between any two words.\n* @param wordA\n* @param wordB\n* @param weights - the weights to use\n* @param editCost - the cost of each edit (defaults to 100)\n* @returns the edit distance\n*/\nfunction editDistanceWeighted(wordA, wordB, weights, editCost = defaultCost) {\n\treturn distanceAStarWeighted(wordA, wordB, weights, editCost);\n}\n/**\n* Collect Map definitions into a single weighted map.\n* @param defs - list of definitions\n* @returns A Weighted Map to be used with distance calculations.\n*/\nfunction createWeightedMap(defs) {\n\treturn createWeightMap(...defs);\n}\n//#endregion\n//#region src/lib/utils/timer.ts\nfunction startTimer() {\n\tconst start = performance.now();\n\treturn () => performance.now() - start;\n}\n//#endregion\n//#region src/lib/utils/util.ts\nfunction isDefined$1(a) {\n\treturn a !== void 0;\n}\n/**\n* Remove any fields with an `undefined` value.\n* @param t - object to clean\n* @returns t\n*/\nfunction cleanCopy(t) {\n\treturn clean$1({ ...t });\n}\n/**\n* Remove any fields with an `undefined` value.\n* **MODIFIES THE OBJECT**\n* @param t - object to clean\n* @returns t\n*/\nfunction clean$1(t) {\n\tfor (const prop in t) if (t[prop] === void 0) delete t[prop];\n\treturn t;\n}\nfunction unique(a) {\n\treturn [...new Set(a)];\n}\n/**\n*\n* @param text verbatim text to be inserted into a regexp\n* @returns text that can be used in a regexp.\n*/\nfunction regexQuote(text) {\n\treturn text.replaceAll(/([[\\]\\-+(){},|*.\\\\])/g, \"\\\\$1\");\n}\n/**\n* Factory to create a function that will replace all occurrences of `match` with `withText`\n* @param match - string to match\n* @param replaceWithText - the text to substitute.\n*/\nfunction replaceAllFactory(match, replaceWithText) {\n\tconst r = RegExp(regexQuote(match), \"g\");\n\treturn (text) => text.replace(r, replaceWithText);\n}\n//#endregion\n//#region src/lib/suggestions/suggestCollector.ts\nconst defaultMaxNumberSuggestions = 10;\nconst BASE_COST = 100;\nconst MAX_NUM_CHANGES = 5;\nconst MAX_ALLOWED_COST_SCALE = .515;\nconst collator = new Intl.Collator();\nconst regexSeparator = new RegExp(`[${regexQuote(\" \")}]`, \"g\");\nconst wordLengthCost = [\n\t0,\n\t50,\n\t25,\n\t5,\n\t0\n];\nconst EXTRA_WORD_COST = 5;\n/** time in ms */\nconst DEFAULT_COLLECTOR_TIMEOUT = 1e3;\nconst symStopProcessing = Symbol(\"Collector Stop Processing\");\nfunction compSuggestionResults(a, b) {\n\treturn (a.isPreferred && -1 || 0) - (b.isPreferred && -1 || 0) || a.cost - b.cost || a.word.length - b.word.length || collator.compare(a.word, b.word);\n}\nconst defaultSuggestionCollectorOptions = Object.freeze({\n\tnumSuggestions: defaultMaxNumberSuggestions,\n\tfilter: () => true,\n\tchangeLimit: MAX_NUM_CHANGES,\n\tincludeTies: false,\n\tignoreCase: true,\n\ttimeout: DEFAULT_COLLECTOR_TIMEOUT,\n\tweightMap: void 0,\n\tcompoundSeparator: \"\",\n\tcompoundMethod: void 0\n});\nfunction suggestionCollector(wordToMatch, options) {\n\tconst { filter = () => true, changeLimit = MAX_NUM_CHANGES, includeTies = false, ignoreCase = true, timeout = DEFAULT_COLLECTOR_TIMEOUT, weightMap, compoundSeparator = defaultSuggestionCollectorOptions.compoundSeparator } = options;\n\tconst numSuggestions = Math.max(options.numSuggestions, 0) || 0;\n\tconst numSugToHold = weightMap ? numSuggestions * 2 : numSuggestions;\n\tconst sugs = /* @__PURE__ */ new Map();\n\tlet maxCost = BASE_COST * Math.min(wordToMatch.length * MAX_ALLOWED_COST_SCALE, changeLimit);\n\tconst useSeparator = compoundSeparator || (weightMap ? \"∙\" : defaultSuggestionCollectorOptions.compoundSeparator);\n\tconst fnCleanWord = !useSeparator || useSeparator === compoundSeparator ? (w) => w : replaceAllFactory(useSeparator, \"\");\n\tif (useSeparator && weightMap) addDefToWeightMap(weightMap, {\n\t\tmap: useSeparator,\n\t\tinsDel: 50\n\t});\n\tconst genSuggestionOptions = clean$1({\n\t\tchangeLimit,\n\t\tignoreCase,\n\t\tcompoundMethod: options.compoundMethod,\n\t\tcompoundSeparator: useSeparator\n\t});\n\tlet timeRemaining = timeout;\n\tfunction dropMax() {\n\t\tif (sugs.size < 2 || !numSuggestions) {\n\t\t\tsugs.clear();\n\t\t\treturn;\n\t\t}\n\t\tconst sorted = [...sugs.values()].sort(compSuggestionResults);\n\t\tlet i = numSugToHold - 1;\n\t\tmaxCost = sorted[i].cost;\n\t\tfor (; i < sorted.length && sorted[i].cost <= maxCost; ++i);\n\t\tfor (; i < sorted.length; ++i) sugs.delete(sorted[i].word);\n\t}\n\tfunction adjustCost(sug) {\n\t\tif (sug.isPreferred) return sug;\n\t\tconst words = sug.word.split(regexSeparator);\n\t\tconst extraCost = words.map((w) => wordLengthCost[w.length] || 0).reduce((a, b) => a + b, 0) + (words.length - 1) * EXTRA_WORD_COST;\n\t\treturn {\n\t\t\tword: sug.word,\n\t\t\tcost: sug.cost + extraCost\n\t\t};\n\t}\n\tfunction collectSuggestion(suggestion) {\n\t\tconst { word, cost, isPreferred } = adjustCost(suggestion);\n\t\tif (cost <= maxCost && filter(suggestion.word, cost)) {\n\t\t\tconst known = sugs.get(word);\n\t\t\tif (known) {\n\t\t\t\tknown.cost = Math.min(known.cost, cost);\n\t\t\t\tknown.isPreferred = known.isPreferred || isPreferred;\n\t\t\t} else {\n\t\t\t\tsugs.set(word, {\n\t\t\t\t\tword,\n\t\t\t\t\tcost,\n\t\t\t\t\tisPreferred\n\t\t\t\t});\n\t\t\t\tif (cost < maxCost && sugs.size > numSugToHold) dropMax();\n\t\t\t}\n\t\t}\n\t\treturn maxCost;\n\t}\n\t/**\n\t* Collection suggestions from a SuggestionIterator\n\t* @param src - the SuggestionIterator used to generate suggestions.\n\t* @param timeout - the amount of time in milliseconds to allow for suggestions.\n\t*/\n\tfunction collect(src, timeout, filter) {\n\t\tlet stop = false;\n\t\ttimeout = timeout ?? timeRemaining;\n\t\ttimeout = Math.min(timeout, timeRemaining);\n\t\tif (timeout < 0) return;\n\t\tconst timer = startTimer();\n\t\tlet ir;\n\t\twhile (!(ir = src.next(stop || maxCost)).done) {\n\t\t\tif (timer() > timeout) stop = symStopProcessing;\n\t\t\tconst { value } = ir;\n\t\t\tif (!value) continue;\n\t\t\tif (isSuggestionResult(value)) {\n\t\t\t\tif (!filter || filter(value.word, value.cost)) collectSuggestion(value);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\t\ttimeRemaining -= timer();\n\t}\n\tfunction cleanCompoundResult(sr) {\n\t\tconst { word, cost } = sr;\n\t\tconst cWord = fnCleanWord(word);\n\t\tif (cWord !== word) return {\n\t\t\tword: cWord,\n\t\t\tcost,\n\t\t\tcompoundWord: word,\n\t\t\tisPreferred: void 0\n\t\t};\n\t\treturn { ...sr };\n\t}\n\tfunction suggestions() {\n\t\tif (numSuggestions < 1 || !sugs.size) return [];\n\t\tconst NF = \"NFD\";\n\t\tconst nWordToMatch = wordToMatch.normalize(NF);\n\t\tconst rawValues = [...sugs.values()];\n\t\tconst sorted = (weightMap ? rawValues.map(({ word, cost, isPreferred }) => ({\n\t\t\tword,\n\t\t\tcost: isPreferred ? cost : editDistanceWeighted(nWordToMatch, word.normalize(NF), weightMap, 110),\n\t\t\tisPreferred\n\t\t})) : rawValues).sort(compSuggestionResults).map(cleanCompoundResult);\n\t\tlet i = Math.min(sorted.length, numSuggestions) - 1;\n\t\tconst limit = includeTies ? sorted.length : Math.min(sorted.length, numSuggestions);\n\t\tconst iCost = sorted[i].cost;\n\t\tconst maxCost = Math.min(iCost, weightMap ? changeLimit * BASE_COST - 1 : iCost);\n\t\tfor (i = 1; i < limit && sorted[i].cost <= maxCost; ++i);\n\t\tsorted.length = i;\n\t\treturn sorted;\n\t}\n\treturn {\n\t\tcollect,\n\t\tadd: function(suggestion) {\n\t\t\tcollectSuggestion(suggestion);\n\t\t\treturn this;\n\t\t},\n\t\tget suggestions() {\n\t\t\treturn suggestions();\n\t\t},\n\t\tget maxCost() {\n\t\t\treturn maxCost;\n\t\t},\n\t\tget word() {\n\t\t\treturn wordToMatch;\n\t\t},\n\t\tget maxNumSuggestions() {\n\t\t\treturn numSuggestions;\n\t\t},\n\t\tget changeLimit() {\n\t\t\treturn changeLimit;\n\t\t},\n\t\tincludesTies: includeTies,\n\t\tignoreCase,\n\t\tsymbolStopProcessing: symStopProcessing,\n\t\tgenSuggestionOptions\n\t};\n}\n/**\n* Impersonating a Collector, allows searching for multiple variants on the same word.\n* The collection is still in the original collector.\n* @param collector - collector to impersonate\n* @param word - word to present instead of `collector.word`.\n* @returns a SuggestionCollector\n*/\nfunction impersonateCollector(collector, word) {\n\tconst r = Object.create(collector);\n\tObject.defineProperty(r, \"word\", {\n\t\tvalue: word,\n\t\twritable: false\n\t});\n\treturn r;\n}\nfunction isSuggestionResult(s) {\n\tconst r = s;\n\treturn !!r && typeof r === \"object\" && r?.cost !== void 0 && r.word !== void 0;\n}\n//#endregion\n//#region src/lib/suggestions/suggestAStar.ts\n/**\n* Compare Path Nodes.\n* Balance the calculation between depth vs cost\n*/\nfunction comparePath(a, b) {\n\treturn a.c / (a.i + 1) - b.c / (b.i + 1) + (b.i - a.i);\n}\nfunction suggestAStar(trie, word, options = {}) {\n\tconst opts = createSuggestionOptions(options);\n\tconst collector = suggestionCollector(word, opts);\n\tcollector.collect(getSuggestionsAStar(trie, word, opts));\n\treturn collector.suggestions;\n}\nfunction* getSuggestionsAStar(trie, srcWord, options = {}) {\n\tconst { compoundMethod, changeLimit, ignoreCase, weightMap } = createSuggestionOptions(options);\n\tconst visMap = visualLetterMaskMap;\n\tconst root = trie.getRoot();\n\tconst rootIgnoreCase = ignoreCase && root.get(root.info.stripCaseAndAccentsPrefix) || void 0;\n\tconst pathHeap = new PairingHeap(comparePath);\n\tconst resultHeap = new PairingHeap(compareSuggestion);\n\tconst rootPNode = {\n\t\tn: root,\n\t\ti: 0,\n\t\tc: 0,\n\t\ts: \"\",\n\t\tp: void 0,\n\t\tt: createCostTrie()\n\t};\n\tconst BC = opCosts.baseCost;\n\tconst VC = opCosts.visuallySimilar;\n\tconst DL = opCosts.duplicateLetterCost;\n\tconst wordSeparator = compoundMethod === CompoundWordsMethod.JOIN_WORDS ? \"+\" : \" \";\n\tconst sc = specialChars(trie.info);\n\tconst comp = trie.info.compoundCharacter;\n\tconst compRoot = root.get(comp);\n\tconst compRootIgnoreCase = rootIgnoreCase && rootIgnoreCase.get(comp);\n\tconst emitted = Object.create(null);\n\tconst debug = isDebuggerAttached();\n\tconst srcLetters = [...srcWord];\n\t/** Initial limit is based upon the length of the word. */\n\tlet limit = BC * Math.min(srcLetters.length * opCosts.wordLengthCostFactor, changeLimit);\n\tpathHeap.add(rootPNode);\n\tif (rootIgnoreCase) pathHeap.add({\n\t\tn: rootIgnoreCase,\n\t\ti: 0,\n\t\tc: 0,\n\t\ts: \"\",\n\t\tp: void 0,\n\t\tt: createCostTrie()\n\t});\n\tlet best = pathHeap.dequeue();\n\tlet maxSize = pathHeap.size;\n\tlet suggestionsGenerated = 0;\n\tlet nodesProcessed = 0;\n\tlet nodesProcessedLimit = 1e3;\n\tlet minGen = 1;\n\twhile (best) {\n\t\tif (++nodesProcessed > nodesProcessedLimit) {\n\t\t\tnodesProcessedLimit += 1e3;\n\t\t\tif (suggestionsGenerated < minGen) break;\n\t\t\tminGen += suggestionsGenerated;\n\t\t}\n\t\tif (best.c > limit) {\n\t\t\tbest = pathHeap.dequeue();\n\t\t\tmaxSize = Math.max(maxSize, pathHeap.size);\n\t\t\tcontinue;\n\t\t}\n\t\tprocessPath(best);\n\t\tfor (const sug of resultHeap) {\n\t\t\t++suggestionsGenerated;\n\t\t\tif (sug.cost > limit) continue;\n\t\t\tif (sug.word in emitted && emitted[sug.word] <= sug.cost) continue;\n\t\t\tconst action = yield sug;\n\t\t\temitted[sug.word] = sug.cost;\n\t\t\tif (typeof action === \"number\") limit = Math.min(action, limit);\n\t\t\tif (typeof action === \"symbol\") return;\n\t\t}\n\t\tbest = pathHeap.dequeue();\n\t\tmaxSize = Math.max(maxSize, pathHeap.size);\n\t}\n\treturn;\n\tfunction compareSuggestion(a, b) {\n\t\tconst pa = a.isPreferred && 1 || 0;\n\t\treturn (b.isPreferred && 1 || 0) - pa || a.cost - b.cost || Math.abs(a.word.charCodeAt(0) - srcWord.charCodeAt(0)) - Math.abs(b.word.charCodeAt(0) - srcWord.charCodeAt(0));\n\t}\n\tfunction processPath(p) {\n\t\tconst len = srcLetters.length;\n\t\tif (p.n.eow && p.i === len) {\n\t\t\tconst result = {\n\t\t\t\tword: pNodeToWord(p),\n\t\t\t\tcost: p.c\n\t\t\t};\n\t\t\tif (debug) console.log(\"add possible suggestion: %o\", {\n\t\t\t\t...result,\n\t\t\t\tnodes: pNodeToDbgInfo(p).map(({ id, s, c, a }) => `${a}{${s || \"∅\"}} $${c}-> ${id} `).join(\"\")\n\t\t\t});\n\t\t\tresultHeap.add(result);\n\t\t}\n\t\tcalcEdges(p);\n\t}\n\tfunction calcEdges(p) {\n\t\tconst { n, i, t } = p;\n\t\tconst s = srcLetters[i];\n\t\tconst sg = visMap[s] || 0;\n\t\tconst cost0 = p.c;\n\t\tconst cost = cost0 + BC + (i ? 0 : opCosts.firstLetterBias);\n\t\tconst costVis = cost0 + VC;\n\t\tconst costLegacyCompound = cost0 + opCosts.wordBreak;\n\t\tconst costCompound = cost0 + opCosts.compound;\n\t\tif (s) {\n\t\t\tconst m = n.get(s);\n\t\t\tif (m) storePath(t, m, i + 1, cost0, s, p, \"=\", s);\n\t\t\tif (weightMap) processWeightMapEdges(p, weightMap);\n\t\t\tconst ns = srcLetters[i + 1];\n\t\t\tif (s === ns && m) storePath(t, m, i + 2, cost0 + DL, s, p, \"dd\", s);\n\t\t\tstorePath(t, n, i + 1, cost, \"\", p, \"d\", \"\");\n\t\t\tfor (const [ss, node] of n.entries()) {\n\t\t\t\tif (ss === s || ss in sc) continue;\n\t\t\t\tconst c = sg & (visMap[ss] || 0) ? costVis : cost;\n\t\t\t\tstorePath(t, node, i + 1, c, ss, p, \"r\", ss);\n\t\t\t}\n\t\t\tif (n.eow && i && compoundMethod) storePath(t, root, i, costLegacyCompound, wordSeparator, p, \"L\", wordSeparator);\n\t\t\tif (ns) {\n\t\t\t\tconst n2 = n.get(ns)?.get(s);\n\t\t\t\tif (n2) {\n\t\t\t\t\tconst ss = ns + s;\n\t\t\t\t\tstorePath(t, n2, i + 2, cost0 + opCosts.swapCost, ss, p, \"s\", ss);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (compRoot && costCompound <= limit && n.get(comp)) {\n\t\t\tif (compRootIgnoreCase) storePath(t, compRootIgnoreCase, i, costCompound, \"\", p, \"~+\", \"~+\");\n\t\t\tstorePath(t, compRoot, i, costCompound, \"\", p, \"+\", \"+\");\n\t\t}\n\t\tif (cost <= limit) for (const [char, node] of n.entries()) {\n\t\t\tif (char in sc) continue;\n\t\t\tstorePath(t, node, i, cost, char, p, \"i\", char);\n\t\t}\n\t}\n\tfunction processWeightMapEdges(p, weightMap) {\n\t\tdelLetters(p, weightMap, srcLetters, storePath);\n\t\tinsLetters(p, weightMap, srcLetters, storePath);\n\t\trepLetters(p, weightMap, srcLetters, storePath);\n\t}\n\t/**\n\t* Apply a cost to the current step.\n\t* @param t - trie node\n\t* @param s - letter to apply, empty string means to apply to the current node\n\t* @param i - index\n\t* @param c - cost\n\t* @returns PNode if it was applied, otherwise undefined\n\t*/\n\tfunction storePath(t, n, i, c, s, p, a, ss) {\n\t\tconst tt = getCostTrie(t, ss);\n\t\tif (tt.c[i] <= c || c > limit) return void 0;\n\t\ttt.c[i] = c;\n\t\tpathHeap.add({\n\t\t\tn,\n\t\t\ti,\n\t\t\tc,\n\t\t\ts,\n\t\t\tp,\n\t\t\tt: tt,\n\t\t\ta\n\t\t});\n\t}\n}\nfunction delLetters(pNode, weightMap, letters, storePath) {\n\tconst { t, n } = pNode;\n\tconst trie = weightMap.insDel;\n\tlet ii = pNode.i;\n\tconst cost0 = pNode.c - pNode.i;\n\tconst len = letters.length;\n\tfor (let nn = trie.n; ii < len && nn;) {\n\t\tconst tt = nn[letters[ii]];\n\t\tif (!tt) return;\n\t\t++ii;\n\t\tif (tt.c !== void 0) storePath(t, n, ii, cost0 + tt.c, \"\", pNode, \"d\", \"\");\n\t\tnn = tt.n;\n\t}\n}\nfunction insLetters(p, weightMap, _letters, storePath) {\n\tconst { t, i, c, n } = p;\n\tconst cost0 = c;\n\tsearchTrieCostNodesMatchingTrie2(weightMap.insDel, n, (s, tc, n) => {\n\t\tif (tc.c !== void 0) storePath(t, n, i, cost0 + tc.c, s, p, \"i\", s);\n\t});\n}\nfunction repLetters(pNode, weightMap, letters, storePath) {\n\tconst node = pNode.n;\n\tconst pt = pNode.t;\n\tconst cost0 = pNode.c;\n\tconst len = letters.length;\n\tconst trie = weightMap.replace;\n\tlet i = pNode.i;\n\tfor (let n = trie.n; i < len && n;) {\n\t\tconst t = n[letters[i]];\n\t\tif (!t) return;\n\t\t++i;\n\t\tconst tInsert = t.t;\n\t\tif (tInsert) searchTrieCostNodesMatchingTrie2(tInsert, node, (s, tt, n) => {\n\t\t\tconst c = tt.c;\n\t\t\tif (c === void 0) return;\n\t\t\tstorePath(pt, n, i, cost0 + c + (tt.p || 0), s, pNode, \"r\", s);\n\t\t});\n\t\tn = t.n;\n\t}\n}\nfunction createCostTrie() {\n\treturn {\n\t\tc: [],\n\t\tt: Object.create(null)\n\t};\n}\nfunction getCostTrie(t, s) {\n\tif (s.length === 1) return t.t[s] ??= createCostTrie();\n\tif (!s) return t;\n\tlet tt = t;\n\tfor (const c of s) tt = tt.t[c] ??= createCostTrie();\n\treturn tt;\n}\nfunction pNodeToDbgInfo(p) {\n\tconst parts = [];\n\tlet n = p;\n\twhile (n) {\n\t\tconst id = formatNodeId(n.n.id);\n\t\tparts.push({\n\t\t\tid,\n\t\t\ts: n.s,\n\t\t\tc: n.c,\n\t\t\ta: n.a || \"\"\n\t\t});\n\t\tn = n.p;\n\t}\n\tparts.reverse();\n\treturn parts;\n}\nfunction formatNodeId(id) {\n\tconst s = id.toString(16).padStart(16, \"0\");\n\tconst upper = s.slice(0, 8).replace(/^0+/, \"\").padStart(4, \"0\");\n\tconst lower = s.slice(8).replace(/^0+/, \"\");\n\treturn `${upper}${lower ? \".\" + lower : \"\"}`;\n}\nfunction pNodeToWord(p) {\n\tconst parts = [];\n\tlet n = p;\n\twhile (n) {\n\t\tparts.push(n.s);\n\t\tn = n.p;\n\t}\n\tparts.reverse();\n\treturn parts.join(\"\");\n}\nfunction specialChars(options) {\n\tconst charSet = Object.create(null);\n\tfor (const c of Object.values(options)) if (typeof c === \"string\") charSet[c] = true;\n\treturn charSet;\n}\nfunction searchTrieCostNodesMatchingTrie2(trie, node, emit, s = \"\") {\n\tconst n = trie.n;\n\tif (!n) return;\n\tfor (const [key, c] of node.entries()) {\n\t\tconst t = n[key];\n\t\tif (!t) continue;\n\t\tconst pfx = s + key;\n\t\temit(pfx, t, c);\n\t\tif (t.n) searchTrieCostNodesMatchingTrie2(t, c, emit, pfx);\n\t}\n}\n//#endregion\n//#region src/lib/ITrieNode/TrieInfo.ts\nconst defaultTrieInfoSettings = {\n\tforbiddenWordPrefix: \"!\",\n\tstripCaseAndAccentsPrefix: \"~\",\n\tcompoundCharacter: \"+\",\n\tsuggestionPrefix: \":\"\n};\nconst revMapDefaultTrieInfoSettings = {\n\t\"!\": \"forbiddenWordPrefix\",\n\t\"~\": \"stripCaseAndAccentsPrefix\",\n\t\"+\": \"compoundCharacter\",\n\t\":\": \"suggestionPrefix\"\n};\nconst defaultTrieCharacteristics = {\n\thasForbiddenWords: \"!\",\n\thasNonStrictWords: \"~\",\n\thasCompoundWords: \"+\",\n\thasPreferredSuggestions: \":\"\n};\nconst mapInfoToCharacteristics = {\n\tcompoundCharacter: \"hasCompoundWords\",\n\tstripCaseAndAccentsPrefix: \"hasNonStrictWords\",\n\tforbiddenWordPrefix: \"hasForbiddenWords\",\n\tsuggestionPrefix: \"hasPreferredSuggestions\"\n};\nconst mapCharacteristicToInfo = {\n\thasCompoundWords: \"compoundCharacter\",\n\thasNonStrictWords: \"stripCaseAndAccentsPrefix\",\n\thasForbiddenWords: \"forbiddenWordPrefix\",\n\thasPreferredSuggestions: \"suggestionPrefix\"\n};\nconst keysTrieCharacteristics = Object.keys(defaultTrieCharacteristics);\nconst keysTrieInfo = Object.keys(defaultTrieInfoSettings);\nconst revMapDefaultTrieCharacteristics = {\n\t\"!\": \"hasForbiddenWords\",\n\t\"+\": \"hasCompoundWords\",\n\t\"~\": \"hasNonStrictWords\",\n\t\":\": \"hasPreferredSuggestions\"\n};\nfunction parseTrieInfoFlags(info) {\n\tconst trieInfo = {};\n\tfor (let i = 0; i < info.length; i += 2) {\n\t\tconst k = info[i];\n\t\tconst c = info[i + 1];\n\t\tif (!charInRevMapDefaultTrieInfoSettings(k) || !c) continue;\n\t\tconst key = revMapDefaultTrieInfoSettings[k];\n\t\ttrieInfo[key] = c;\n\t}\n\treturn trieInfo;\n}\nfunction normalizeTrieInfo(info, defaultInfo = defaultTrieInfoSettings) {\n\treturn {\n\t\tcompoundCharacter: info?.compoundCharacter || defaultInfo.compoundCharacter,\n\t\tstripCaseAndAccentsPrefix: info?.stripCaseAndAccentsPrefix || defaultInfo.stripCaseAndAccentsPrefix,\n\t\tforbiddenWordPrefix: info?.forbiddenWordPrefix || defaultInfo.forbiddenWordPrefix,\n\t\tsuggestionPrefix: info?.suggestionPrefix || defaultInfo.suggestionPrefix\n\t};\n}\n/**\n* Extract the TrieInfo a source PartialTrieInfo\n* @param info - The source PartialTrieInfo\n* @returns a new object with only the defined TrieInfo properties.\n*/\nfunction extractTrieInfo(info) {\n\treturn partialInfoToInfo(info);\n}\nfunction cvtTrieInfoToFlags(info) {\n\tlet flags = \"\";\n\tfor (const k of keysTrieInfo) {\n\t\tconst c = info[k];\n\t\tif (!c) continue;\n\t\tassert(c.length === 1, `Expected single character for trie info ${k}, got '${c}'`);\n\t\tconst flagChar = defaultTrieInfoSettings[k];\n\t\tflags += flagChar + c;\n\t}\n\treturn flags;\n}\nfunction charInRevMapDefaultTrieInfoSettings(c) {\n\treturn c in revMapDefaultTrieInfoSettings;\n}\nfunction parseTrieCharacteristics(chars) {\n\tconst characteristics = {};\n\tfor (const c of chars) {\n\t\tif (!charInRevMapDefaultTrieCharacteristics(c)) continue;\n\t\tconst key = revMapDefaultTrieCharacteristics[c];\n\t\tcharacteristics[key] = true;\n\t}\n\treturn characteristics;\n}\nfunction mapTrieCharacteristics(characteristics, info) {\n\tlet chars = \"\";\n\tfor (const k of keysTrieCharacteristics) if (characteristics[k] === true) {\n\t\tconst c = info[mapCharacteristicToInfo[k]] || \"\";\n\t\tchars += c;\n\t}\n\treturn chars;\n}\nfunction cvtTrieCharacteristicsToFlags(characteristics) {\n\treturn mapTrieCharacteristics(characteristics, defaultTrieInfoSettings);\n}\nfunction charInRevMapDefaultTrieCharacteristics(c) {\n\treturn c in revMapDefaultTrieCharacteristics;\n}\nfunction mapTrieCharacteristicToInfoValues(char, info) {\n\treturn keysTrieCharacteristics.map((k) => [k, char[k]]).filter((kvp) => kvp[1] === true).map(([k]) => mapCharacteristicToInfo[k]).map((k) => info[k]);\n}\nvar TrieInfoBuilder = class {\n\t#givenInfo;\n\t#givenCharacteristics;\n\t#srcInfo;\n\t#knownChars;\n\t#foundChars;\n\tconstructor(info, characteristics) {\n\t\tthis.#givenInfo = info;\n\t\tthis.#srcInfo = normalizeTrieInfo(info);\n\t\tthis.#knownChars = revTrieInfo(this.#srcInfo);\n\t\tthis.#givenCharacteristics = characteristics || {};\n\t\tthis.#foundChars = new Set(mapTrieCharacteristicToInfoValues(this.#givenCharacteristics, this.#srcInfo));\n\t}\n\tsetInfo(info) {\n\t\tthis.#givenInfo = info;\n\t\tthis.#srcInfo = normalizeTrieInfo(info);\n\t\tthis.#knownChars = revTrieInfo(this.#srcInfo);\n\t\tthis.#foundChars = new Set(mapTrieCharacteristicToInfoValues(this.#givenCharacteristics, this.#srcInfo));\n\t}\n\tgetActiveInfo() {\n\t\treturn this.#srcInfo;\n\t}\n\taddWord(word) {\n\t\tif (word[0] in this.#knownChars) this.#foundChars.add(word[0]);\n\t}\n\t#getCharacteristics() {\n\t\tconst characteristics = {};\n\t\tfor (const char of this.#foundChars) {\n\t\t\tconst key = this.#knownChars[char];\n\t\t\tif (!key) continue;\n\t\t\tconst charToCharacteristic = mapInfoToCharacteristics[key];\n\t\t\tif (!charToCharacteristic) continue;\n\t\t\tcharacteristics[charToCharacteristic] = true;\n\t\t}\n\t\treturn characteristics;\n\t}\n\t#getInfo() {\n\t\tconst info = partialInfoToInfo(this.#givenInfo);\n\t\tfor (const char of this.#foundChars) {\n\t\t\tconst key = this.#knownChars[char];\n\t\t\tif (!key) continue;\n\t\t\tinfo[key] = this.#srcInfo[key];\n\t\t}\n\t\treturn info;\n\t}\n\tbuild() {\n\t\treturn {\n\t\t\tinfo: this.#getInfo(),\n\t\t\tcharacteristics: this.#getCharacteristics()\n\t\t};\n\t}\n};\nfunction partialInfoToInfo(info) {\n\tif (!info) return {};\n\treturn Object.fromEntries(keysTrieInfo.map((k) => [k, info[k]]).filter(([_k, v]) => !!v));\n}\nfunction revTrieInfo(info) {\n\tconst rev = {};\n\tfor (const k of keysTrieInfo) {\n\t\tconst v = info[k];\n\t\tif (typeof v !== \"string\") continue;\n\t\trev[v] = k;\n\t}\n\treturn rev;\n}\n//#endregion\n//#region src/lib/utils/endian.ts\nlet cachedEndianness;\nfunction endianness() {\n\tif (cachedEndianness) return cachedEndianness;\n\tconst uint32s = new Uint32Array([168496141]);\n\tcachedEndianness = new Uint8Array(uint32s.buffer)[0] === 10 ? \"BE\" : \"LE\";\n\treturn cachedEndianness;\n}\n//#endregion\n//#region src/lib/binary/binaryFormat.ts\nconst isLittleEndian = endianness() === \"LE\";\nconst BytesSize = {\n\tuint8: 1,\n\tuint16: 2,\n\tuint32: 4,\n\tuint64: 8,\n\tstring: 1\n};\n/**\n* BinaryFormatBuilder is used to define the structure and layout of binary data.\n* It provides methods to add various data types (uint8, uint16, uint32, strings, arrays)\n* and pointers to the format definition. Each element is automatically aligned and positioned\n* based on its type and size. Once all elements are added, call build() to create an\n* immutable BinaryFormat that can be used with BinaryDataBuilder and BinaryDataReader.\n*/\nvar BinaryFormatBuilder = class {\n\t#elements = [];\n\t#elementsByName = /* @__PURE__ */ new Map();\n\t#offset = 0;\n\t#textEncoder = new TextEncoder();\n\taddUint8(name, description, value) {\n\t\tconst uValue = value === void 0 || typeof value === \"number\" ? new Uint8Array([value || 0]) : new Uint8Array(value);\n\t\treturn this.addData(name, description, \"value\", uValue);\n\t}\n\taddUint16(name, description, value) {\n\t\tconst uValue = value !== void 0 ? rawNumberToUint16Array(value) : rawNumberToUint16Array(0);\n\t\treturn this.addData(name, description, \"value\", uValue);\n\t}\n\taddUint32(name, description, value) {\n\t\tconst uValue = value !== void 0 ? rawNumberToUint32Array(value) : rawNumberToUint32Array(0);\n\t\treturn this.addData(name, description, \"value\", uValue);\n\t}\n\t/**\n\t* A pointer to a uint32 array, it has two parts, the offset and the length.\n\t* @param name - name of pointer\n\t* @param description - the description of the field\n\t* @param overload - optional name of element to overload\n\t* @returns this\n\t*/\n\taddUint32ArrayPtr(name, description, overload) {\n\t\treturn this.addPointer(BytesSize.uint32, name, description, overload);\n\t}\n\t/**\n\t* A pointer to a uint16 array, it has two parts, the offset and the length.\n\t* @param name - name of pointer\n\t* @param description - the description of the field\n\t* @param overload - optional name of element to overload\n\t* @returns this\n\t*/\n\taddUint16ArrayPtr(name, description, overload) {\n\t\treturn this.addPointer(BytesSize.uint16, name, description, overload);\n\t}\n\t/**\n\t* A pointer to a uint8 array, it has two parts, the offset and the length.\n\t* @param name - name of pointer\n\t* @param description - the description of the field\n\t* @param overload - optional name of element to overload\n\t* @returns this\n\t*/\n\taddUint8ArrayPtr(name, description, overload) {\n\t\treturn this.addPointer(BytesSize.uint8, name, description, overload);\n\t}\n\t/**\n\t* A pointer to a string of UTF-8 bytes, it has two parts, the offset and the length.\n\t* @param name - name of pointer\n\t* @param description - the description of the field\n\t* @param overload - optional name of element to overload\n\t* @returns this\n\t*/\n\taddStringPtr(name, description, overload) {\n\t\treturn this.addPointer(BytesSize.string, name, description, overload);\n\t}\n\t/**\n\t* Add a pointer element.\n\t* @param byteSize - size of each element pointed to\n\t* @param name - name of the pointer\n\t* @param description - description of the pointer\n\t* @param overload - optional name of element to overload\n\t* @returns this\n\t*/\n\taddPointer(byteSize, name, description, overload) {\n\t\tconst alignment = 4;\n\t\tlet offset = byteAlign(this.#offset, alignment);\n\t\tif (overload) {\n\t\t\tconst existing = this.#elementsByName.get(overload);\n\t\t\tassert(existing, `Overload target not found: ${overload}`);\n\t\t\toffset = byteAlign(existing.offset, alignment);\n\t\t\tassert(existing.offset === offset, `Overload target offset mismatch: ${overload}`);\n\t\t}\n\t\tconst element = {\n\t\t\tname,\n\t\t\tdescription,\n\t\t\ttype: \"ptr+size\",\n\t\t\talignment,\n\t\t\toffset,\n\t\t\tsize: 8,\n\t\t\tvalue: void 0,\n\t\t\tbyteSize,\n\t\t\toverload\n\t\t};\n\t\tthis.#addElement(element);\n\t\treturn this;\n\t}\n\taddString(name, description, length) {\n\t\tconst value = typeof length === \"string\" ? this.#textEncoder.encode(length) : new Uint8Array(length);\n\t\tthis.addData(name, description, \"value\", value);\n\t\treturn this;\n\t}\n\taddUint8Array(name, description, length) {\n\t\tconst value = new Uint8Array(length);\n\t\tthis.addData(name, description, \"value\", value);\n\t\treturn this;\n\t}\n\taddData(name, description, formatType, data) {\n\t\tconst byteSize = data.byteLength / data.length;\n\t\tassert(isByteAlignment(byteSize), `Invalid byte size: ${byteSize} for field: ${name}`);\n\t\tconst alignment = byteSize;\n\t\tconst offset = byteAlign(this.#offset, byteSize);\n\t\tconst value = new Uint8Array(data.buffer, data.byteOffset, data.byteLength);\n\t\tconst size = value.byteLength;\n\t\tthis.#addElement({\n\t\t\tname,\n\t\t\tdescription,\n\t\t\ttype: formatType,\n\t\t\talignment,\n\t\t\toffset,\n\t\t\tsize,\n\t\t\tvalue,\n\t\t\tbyteSize\n\t\t});\n\t\treturn this;\n\t}\n\t#addElement(element) {\n\t\tassert(!this.#elementsByName.has(element.name), `Duplicate element name: ${element.name}`);\n\t\tconst expectedOffset = byteAlign(element.offset, element.alignment);\n\t\tassert(element.offset === expectedOffset, `Element alignment mismatch for ${element.name} with alignment ${element.alignment}. Expected: ${expectedOffset}, Found: ${element.offset}`);\n\t\tthis.#elementsByName.set(element.name, element);\n\t\tthis.#elements.push(element);\n\t\tif (!element.overload) this.#offset = element.offset + element.size;\n\t}\n\tbuild() {\n\t\treturn new BinaryFormat([...this.#elements]);\n\t}\n};\n/**\n* BinaryFormat represents the structure and layout of binary data.\n* It contains a collection of format elements that describe the fields,\n* their types, offsets, sizes, and byte alignment within the binary data.\n*\n* This class is typically created using BinaryFormatBuilder and is used\n* by BinaryDataBuilder and BinaryDataReader to write and read binary data\n* according to the defined format.\n*/\nvar BinaryFormat = class {\n\telements;\n\t#fieldsByName = /* @__PURE__ */ new Map();\n\t#offset;\n\tconstructor(elements) {\n\t\tthis.elements = elements;\n\t\tthis.#fieldsByName = new Map(elements.map((el) => [el.name, el]));\n\t\tthis.#offset = Math.max(...elements.map((el) => el.offset + el.size), 0);\n\t}\n\tget size() {\n\t\treturn this.#offset;\n\t}\n\tgetField(name) {\n\t\treturn this.#fieldsByName.get(name);\n\t}\n\ttoJSON() {\n\t\treturn this.elements.map(formatElementToJSON);\n\t}\n\ttoString() {\n\t\tconst nameWidth = Math.max(4, ...this.elements.map((el) => el.name.length), 4);\n\t\tconst offsetWidth = 8;\n\t\tconst sizeWidth = 6;\n\t\tconst typeWidth = Math.max(4, ...this.elements.map((el) => el.type.length), 4);\n\t\tconst lines = [];\n\t\taddHeaderLines();\n\t\tthis.elements.forEach(addElement);\n\t\treturn lines.join(\"\\n\");\n\t\tfunction addHeaderLines() {\n\t\t\tconst line = formatLine([\n\t\t\t\t\"name\",\n\t\t\t\t\"offset\",\n\t\t\t\t\"size\",\n\t\t\t\t\"type\",\n\t\t\t\t\"mask\",\n\t\t\t\t\"description\",\n\t\t\t\t\"value\"\n\t\t\t]);\n\t\t\tlines.push(\"Binary Format:\");\n\t\t\tlines.push(line);\n\t\t\tlines.push(\"-\".repeat(line.length));\n\t\t}\n\t\tfunction addElement(e) {\n\t\t\tlines.push(formatLine([\n\t\t\t\te.name,\n\t\t\t\te.offset.toString(),\n\t\t\t\te.size.toString(),\n\t\t\t\te.type,\n\t\t\t\te.byteSize.toString(2).padStart(4, \"0\"),\n\t\t\t\te.description,\n\t\t\t\te.value ? `${e.value}` : \"\"\n\t\t\t]));\n\t\t}\n\t\tfunction formatLine([name, offset, size, type, mask, description, value]) {\n\t\t\tname = name.padEnd(nameWidth, \" \");\n\t\t\toffset = offset.padStart(offsetWidth, \" \");\n\t\t\tsize = size.padStart(sizeWidth, \" \");\n\t\t\ttype = type.padEnd(typeWidth, \" \");\n\t\t\tvalue = value ? `(${value})` : \"\";\n\t\t\treturn `${name} ${offset} ${size} ${type} ${mask} ${description} ${value}`.trim();\n\t\t}\n\t}\n};\nvar BinaryDataBuilder = class {\n\t#dataElementMap = /* @__PURE__ */ new Map();\n\t#offset = 0;\n\t#endian;\n\t#useLE;\n\t#encoder = new TextEncoder();\n\t#dataByOffset = /* @__PURE__ */ new Map();\n\tformat;\n\tconstructor(format, endian = endianness()) {\n\t\tthis.format = format;\n\t\tthis.#offset = format.size;\n\t\tthis.#endian = endian;\n\t\tthis.#useLE = endian === \"LE\";\n\t\tthis.#dataElementMap = /* @__PURE__ */ new Map();\n\t\tthis.#populateDataElementMap();\n\t}\n\t#populateDataElementMap() {\n\t\tfor (const ref of this.format.elements) {\n\t\t\tconst { name, offset, size } = ref;\n\t\t\tlet data = this.#dataByOffset.get(offset);\n\t\t\tif (!data || data.byteLength < size) {\n\t\t\t\tdata = new Uint8Array(size);\n\t\t\t\tthis.#dataByOffset.set(offset, data);\n\t\t\t}\n\t\t\tif (ref.value) data.set(ref.value);\n\t\t\tconst de = {\n\t\t\t\tname,\n\t\t\t\toffset,\n\t\t\t\tsize,\n\t\t\t\tdata,\n\t\t\t\tref\n\t\t\t};\n\t\t\tthis.#dataElementMap.set(de.name, de);\n\t\t\tthis.#offset = Math.max(this.#offset, offset + size);\n\t\t}\n\t}\n\tsetString(name, value) {\n\t\tconst element = this.getDataElement(name);\n\t\tassert(element, `Field not found: ${name}`);\n\t\tconst formatElement = element.ref;\n\t\tassert(formatElement, `Field Format not found: ${name}`);\n\t\tassert(formatElement.byteSize === BytesSize.string, `Field is not a string: ${name}`);\n\t\tassert(this.#encoder.encodeInto(value, element.data).read === value.length, `String too long for field ${name}: ${value}`);\n\t\treturn this;\n\t}\n\tsetUint32(name, value) {\n\t\tconst element = this.getDataElement(name);\n\t\tassert(element, `Field not found: ${name}`);\n\t\tconst formatElement = element.ref;\n\t\tassert(formatElement, `Field Format not found: ${name}`);\n\t\tassert(formatElement.byteSize === BytesSize.uint32, `Field is not a uint32: ${name}`);\n\t\tconst view = new DataView(element.data.buffer, element.data.byteOffset, element.data.byteLength);\n\t\tconst useLittle = this.#endian === \"LE\";\n\t\tview.setUint32(0, value, useLittle);\n\t\treturn this;\n\t}\n\tsetUint16(name, value) {\n\t\tconst element = this.getDataElement(name);\n\t\tassert(element, `Field not found: ${name}`);\n\t\tconst formatElement = element.ref;\n\t\tassert(formatElement, `Field Format not found: ${name}`);\n\t\tassert(formatElement.byteSize === BytesSize.uint16, `Field is not a uint16: ${name}`);\n\t\tconst view = new DataView(element.data.buffer, element.data.byteOffset, element.data.byteLength);\n\t\tconst useLittle = this.#endian === \"LE\";\n\t\tview.setUint16(0, value, useLittle);\n\t\treturn this;\n\t}\n\tsetUint8(name, value) {\n\t\tconst element = this.getDataElement(name);\n\t\tassert(element, `Field not found: ${name}`);\n\t\tconst formatElement = element.ref;\n\t\tassert(formatElement, `Field Format not found: ${name}`);\n\t\tassert(formatElement.byteSize === BytesSize.uint8, `Field is not a uint8: ${name}`);\n\t\telement.data[0] = value;\n\t\treturn this;\n\t}\n\t/**\n\t* Adjust the offset so it lands on the alignment boundary.\n\t* 1 = byte align\n\t* 2 = 16bit align\n\t* 4 = 32bit align\n\t* 8 = 64bit align\n\t* @param alignment - the byte alignment\n\t*/\n\talignTo(alignment) {\n\t\tconst aMask = alignment - 1;\n\t\tthis.#offset = this.#offset + aMask & ~aMask;\n\t}\n\t/**\n\t* Append a data element to the binary data.\n\t* @param data - the data to add\n\t* @returns the DataElement added\n\t*/\n\taddDataElement(data, alignment) {\n\t\tthis.alignTo(alignment);\n\t\tconst offset = this.#offset;\n\t\tconst name = `data_${offset}`;\n\t\tconst size = data.byteLength;\n\t\tconst de = {\n\t\t\tname,\n\t\t\toffset,\n\t\t\tsize,\n\t\t\tdata\n\t\t};\n\t\tthis.#dataElementMap.set(de.name, de);\n\t\tthis.#offset = offset + size;\n\t\treturn de;\n\t}\n\t/**\n\t* Append the data and set the pointer to it.\n\t* The Uint32Array will be converted to the proper endianness if necessary.\n\t* @param name - name of the pointer field\n\t* @param data - the data to add\n\t* @param alignment - the alignment for the data, default 4\n\t* @returns this\n\t*/\n\tsetPtrUint32Array(name, data, alignment = 4) {\n\t\treturn this.#setPtrData(name, convertUint32ArrayToUint8Array(data, this.#useLE), alignment);\n\t}\n\t/**\n\t* Append the data and set the pointer to it.\n\t* The Uint16Array will be converted to the proper endianness if necessary.\n\t* @param name - name of the pointer field\n\t* @param data - the data to add\n\t* @param alignment - the alignment for the data, default 2\n\t* @returns this\n\t*/\n\tsetPtrUint16Array(name, data, alignment = 2) {\n\t\treturn this.#setPtrData(name, convertUint16ArrayToUint8Array(data, this.#useLE), alignment);\n\t}\n\t/**\n\t* Append the data and set the pointer to it.\n\t* @param name - name of the pointer field\n\t* @param data - the data to add\n\t* @param alignment - the alignment for the data, default 1\n\t* @returns this\n\t*/\n\tsetPtrUint8Array(name, data, alignment = 1) {\n\t\treturn this.#setPtrData(name, data, alignment);\n\t}\n\t/**\n\t* Append the string and set the pointer to it. It will be encoded as UTF-8.\n\t* Note: the alignment is 1. Use alignTo() if you need a different alignment.\n\t* @param name - name of the pointer field\n\t* @param str - the data to add\n\t* @returns this\n\t*/\n\tsetPtrString(name, str) {\n\t\treturn this.#setPtrData(name, this.#encoder.encode(str), 1);\n\t}\n\t#setPtrData(name, dataView, alignment) {\n\t\tconst element = this.getDataElement(name);\n\t\tassert(element, `Field not found: ${name}`);\n\t\tconst formatElement = element.ref;\n\t\tassert(formatElement, `Field Format not found: ${name}`);\n\t\tassert(formatElement.type === \"ptr+size\", `Field is not a pointer: ${name}`);\n\t\tassert(formatElement.byteSize === alignment, `Pointer byte size mismatch: ${name}`);\n\t\tconst data = new Uint8Array(dataView.buffer, dataView.byteOffset, dataView.byteLength);\n\t\tconst de = this.addDataElement(data, alignment);\n\t\tthis.#setPtr(element, de.offset, de.size);\n\t\treturn this;\n\t}\n\t#setPtr(element, dataOffset, dataLength) {\n\t\tassert(element.data.byteLength >= 8, `Pointer data too small: ${element.name}`);\n\t\tconst view = new DataView(element.data.buffer, element.data.byteOffset, element.data.byteLength);\n\t\tview.setUint32(0, dataOffset, this.#useLE);\n\t\tview.setUint32(4, dataLength, this.#useLE);\n\t}\n\tget offset() {\n\t\treturn this.#offset;\n\t}\n\tget endian() {\n\t\treturn this.#endian;\n\t}\n\tgetDataElement(name) {\n\t\treturn this.#dataElementMap.get(name);\n\t}\n\tbuild() {\n\t\tconst buffer = new Uint8Array(this.#offset);\n\t\tfor (const element of this.#dataElementMap.values()) buffer.set(element.data, element.offset);\n\t\treturn buffer;\n\t}\n};\nfunction convertUint32ArrayEndiannessInPlace(data) {\n\tconst view = new DataView(data.buffer, data.byteOffset, data.byteLength);\n\tconst byteLength = data.length * 4;\n\tfor (let i = 0; i < byteLength; i += 4) {\n\t\tconst v = view.getUint32(i, true);\n\t\tview.setUint32(i, v, false);\n\t}\n\treturn data;\n}\nfunction convertUint16ArrayEndiannessInPlace(data) {\n\tconst view = new DataView(data.buffer, data.byteOffset, data.byteLength);\n\tconst byteLength = data.length * 2;\n\tfor (let i = 0; i < byteLength; i += 2) {\n\t\tconst v = view.getUint16(i, true);\n\t\tview.setUint16(i, v, false);\n\t}\n\treturn data;\n}\nfunction convertUint32ArrayToUint8Array(data, useLittle, isLE = isLittleEndian) {\n\tif (isLE === useLittle) return new Uint8Array(data.buffer, data.byteOffset, data.byteLength);\n\tconst target = new Uint32Array(data.length);\n\ttarget.set(data);\n\tconvertUint32ArrayEndiannessInPlace(target);\n\treturn new Uint8Array(target.buffer, target.byteOffset, target.byteLength);\n}\nfunction convertUint16ArrayToUint8Array(data, useLittle, isLE = isLittleEndian) {\n\tif (isLE === useLittle) return new Uint8Array(data.buffer, data.byteOffset, data.byteLength);\n\tconst target = new Uint16Array(data.length);\n\ttarget.set(data);\n\tconvertUint16ArrayEndiannessInPlace(target);\n\treturn new Uint8Array(target.buffer, target.byteOffset, target.byteLength);\n}\nfunction rawNumberToUint32Array(value) {\n\treturn new Uint32Array([value]);\n}\nfunction rawNumberToUint16Array(value) {\n\treturn new Uint16Array([value]);\n}\nvar BinaryDataReader = class {\n\tdata;\n\tformat;\n\t#decoder = new TextDecoder();\n\t#useLE;\n\t/**\n\t* Binary Data Reader\n\t* @param data - the raw binary data\n\t* @param format - the expected format\n\t* @param endian - the endian of the data (can be changed later)\n\t*/\n\tconstructor(data, format, endian = endianness()) {\n\t\tthis.data = new Uint8Array(data.buffer, data.byteOffset, data.byteLength);\n\t\tthis.format = format;\n\t\tthis.#useLE = endian === \"LE\";\n\t}\n\t/**\n\t* Get a string from the data.\n\t* It will decode the string as UTF-8 from the following field types: 'string', 'ptrString', 'ptrUint8Array'.\n\t* @param name - name of the string field\n\t* @returns string value\n\t*/\n\tgetString(name) {\n\t\tconst element = this.getDataElement(name);\n\t\tconst formatElement = element.ref;\n\t\tassert(formatElement.byteSize === BytesSize.string, `Field is not a string: ${name}`);\n\t\tif (formatElement.type === \"value\") return this.#decoder.decode(element.data);\n\t\tassert(formatElement.type === \"ptr+size\", `Field is not a string: ${name}`);\n\t\tconst strData = this.#getPtrData(element);\n\t\treturn this.#decoder.decode(strData);\n\t}\n\t/**\n\t* Get a Uint32 from the data.\n\t* @param name - name of the Uint32 field\n\t* @returns number value\n\t*/\n\tgetUint32(name) {\n\t\tconst element = this.getDataElement(name);\n\t\tconst formatElement = element.ref;\n\t\tassert(formatElement.type === \"value\" && formatElement.byteSize === BytesSize.uint32, `Field is not a uint32: ${name}`);\n\t\treturn new DataView(element.data.buffer, element.data.byteOffset, element.data.byteLength).getUint32(0, this.#useLE);\n\t}\n\t/**\n\t* Get a Uint16 from the data.\n\t* @param name - name of the Uint16 field\n\t* @returns number value\n\t*/\n\tgetUint16(name) {\n\t\tconst element = this.getDataElement(name);\n\t\tconst formatElement = element.ref;\n\t\tassert(formatElement.type === \"value\" && formatElement.byteSize === BytesSize.uint16, `Field is not a uint16: ${name}`);\n\t\treturn new DataView(element.data.buffer, element.data.byteOffset, element.data.byteLength).getUint16(0, this.#useLE);\n\t}\n\t/**\n\t* Read a field as Uint16 starting at the given byte offset.\n\t* @param name - name of field\n\t* @param byteOffset - offset of in bytes from the beginning of the field\n\t* @returns the value read.\n\t*/\n\tgetAsUint16(name, byteOffset = 0) {\n\t\tconst element = this.getDataElement(name);\n\t\treturn new DataView(element.data.buffer, element.data.byteOffset, element.data.byteLength).getUint16(byteOffset, this.#useLE);\n\t}\n\t/**\n\t* Get a Uint8 from the data.\n\t* @param name - name of the Uint8 field\n\t* @returns number value\n\t*/\n\tgetUint8(name) {\n\t\tconst element = this.getDataElement(name);\n\t\tconst formatElement = element.ref;\n\t\tassert(formatElement.type === \"value\" && formatElement.byteSize === BytesSize.uint8, `Field is not a uint8: ${name}`);\n\t\treturn element.data[0];\n\t}\n\t/**\n\t* Gets Uint32Array data from a pointer field.\n\t* Note: The returned Uint32Array may be a view of the underlying data.\n\t* If the endianness does not match, a copy will be made.\n\t* @param name - name of the field\n\t* @returns Uint32Array value\n\t*/\n\tgetPtrUint32Array(name) {\n\t\tconst element = this.getDataElement(name);\n\t\tconst ref = element.ref;\n\t\tassert(ref.type === \"ptr+size\" && ref.byteSize === BytesSize.uint32, `Field is not a ptrUint32Array: ${name}`);\n\t\tconst arrData = this.#getPtrData(element);\n\t\tconst rawData32 = new Uint32Array(arrData.buffer, arrData.byteOffset, arrData.byteLength / ref.byteSize);\n\t\tif (isLittleEndian === this.#useLE) return rawData32;\n\t\treturn convertUint32ArrayEndiannessInPlace(new Uint32Array(rawData32));\n\t}\n\t/**\n\t* Gets Uint16Array data from a pointer field.\n\t* Note: The returned Uint16Array may be a view of the underlying data.\n\t* If the endianness does not match, a copy will be made.\n\t* @param name - name of the field\n\t* @returns Uint16Array value\n\t*/\n\tgetPtrUint16Array(name) {\n\t\tconst element = this.getDataElement(name);\n\t\tconst ref = element.ref;\n\t\tassert(ref.type === \"ptr+size\" && ref.byteSize === BytesSize.uint16, `Field is not a ptrUint16Array: ${name}`);\n\t\tconst arrData = this.#getPtrData(element);\n\t\tconst rawData16 = new Uint16Array(arrData.buffer, arrData.byteOffset, arrData.byteLength / ref.byteSize);\n\t\tif (isLittleEndian === this.#useLE) return rawData16;\n\t\treturn convertUint16ArrayEndiannessInPlace(new Uint16Array(rawData16));\n\t}\n\t/**\n\t* Gets Uint8Array data from a pointer field.\n\t* Note: The returned Uint8Array is a view of the underlying data.\n\t* @param name - name of the field\n\t* @returns Uint8Array value\n\t*/\n\tgetPtrUint8Array(name) {\n\t\tconst element = this.getDataElement(name);\n\t\tassert(element.ref.type === \"ptr+size\", `Field is not a ptr+size: ${name}`);\n\t\treturn this.#getPtrData(element);\n\t}\n\t/**\n\t* Gets string data from a pointer field.\n\t* @param name - name of the field\n\t* @returns string value\n\t*/\n\tgetPtrString(name) {\n\t\tconst element = this.getDataElement(name);\n\t\tassert(element.ref.type === \"ptr+size\", `Field is not a ptr+size: ${name}`);\n\t\tconst strData = this.#getPtrData(element);\n\t\treturn this.#decoder.decode(strData);\n\t}\n\t#getPtrData(element) {\n\t\tconst formatElement = element.ref;\n\t\tassert(formatElement.type === \"ptr+size\", `Field is not a ptr+size: ${element.name} (${formatElement.type})`);\n\t\tconst view = new DataView(element.data.buffer, element.data.byteOffset, element.data.byteLength);\n\t\tconst offset = view.getUint32(0, this.#useLE);\n\t\tconst length = view.getUint32(4, this.#useLE);\n\t\treturn this.data.subarray(offset, offset + length);\n\t}\n\t/**\n\t* Get the Element information by name\n\t* @param name - name of the field\n\t* @returns DataElementWithRef\n\t*/\n\tgetDataElement(name) {\n\t\tconst element = this.format.getField(name);\n\t\tassert(element, `Field not found: ${name}`);\n\t\tconst data = this.data.subarray(element.offset, element.offset + element.size);\n\t\treturn {\n\t\t\tname: element.name,\n\t\t\toffset: element.offset,\n\t\t\tsize: element.size,\n\t\t\tdata,\n\t\t\tref: element\n\t\t};\n\t}\n\tset endian(endian) {\n\t\tthis.#useLE = endian === \"LE\";\n\t}\n\tget endian() {\n\t\treturn this.#useLE ? \"LE\" : \"BE\";\n\t}\n\treverseEndian() {\n\t\tthis.#useLE = !this.#useLE;\n\t}\n\t/**\n\t* Get the raw bytes for a field.\n\t* @param name - name of the field\n\t* @returns the bytes or undefined\n\t*/\n\tgetUint8Array(name) {\n\t\tconst element = this.getDataElement(name);\n\t\tif (!element) return void 0;\n\t\treturn element.data;\n\t}\n\t/**\n\t* Get the FormatElement for a field.\n\t* @param name - name of the field\n\t* @returns the element or undefined\n\t*/\n\tgetField(name) {\n\t\treturn this.format.getField(name);\n\t}\n};\nfunction formatElementToJSON(fe) {\n\tconst { value } = fe;\n\tconst v = value ? [...value] : void 0;\n\treturn {\n\t\t...fe,\n\t\tvalue: v\n\t};\n}\nfunction byteAlign(offset, alignment) {\n\tconst aMask = alignment - 1;\n\treturn offset + aMask & ~aMask;\n}\nfunction isByteAlignment(value) {\n\treturn value === 1 || value === 2 || value === 4 || value === 8;\n}\n//#endregion\n//#region src/lib/GTrie/GTrie.ts\nvar GTrieNode = class {\n\tchildren;\n\tvalue;\n\tconstructor(value, children) {\n\t\tthis.value = value;\n\t\tthis.children = children;\n\t}\n};\n/**\n* ### Generic Tries\n*\n* This is a Trie class that can contain any data. It is used in optimizing the dictionary and storing lookup data.\n* The performance is \"good enough\" for most uses, but may need to be optimized for large data sets.\n*\n* K - Key type\n* V - Value type\n*/\nvar GTrie = class GTrie {\n\troot;\n\tconstructor() {\n\t\tthis.root = new GTrieNode();\n\t}\n\t/**\n\t*\n\t* @param keys - the path to the child node\n\t* @param value - the value to set / insert\n\t* @return the previous value if one existed\n\t*/\n\tinsert(keys, value) {\n\t\tconst node = this.insertNode(keys);\n\t\tconst prev = node.value;\n\t\tnode.value = value;\n\t\treturn prev;\n\t}\n\t/**\n\t* Insert nodes for the given keys into the trie.\n\t* Existing nodes are reused.\n\t* @param keys\n\t* @returns the final node inserted or found\n\t*/\n\tinsertNode(keys) {\n\t\tlet currentNode = this.root;\n\t\tfor (const key of keys) {\n\t\t\tlet children = currentNode.children;\n\t\t\tif (!children) {\n\t\t\t\tchildren = /* @__PURE__ */ new Map();\n\t\t\t\tcurrentNode.children = children;\n\t\t\t}\n\t\t\tlet child = children.get(key);\n\t\t\tif (!child) {\n\t\t\t\tchild = new GTrieNode();\n\t\t\t\tchildren.set(key, child);\n\t\t\t}\n\t\t\tcurrentNode = child;\n\t\t}\n\t\treturn currentNode;\n\t}\n\tfindNode(keys) {\n\t\tlet currentNode = this.root;\n\t\tfor (const key of keys) {\n\t\t\tconst children = currentNode.children;\n\t\t\tif (!children) return;\n\t\t\tconst child = children.get(key);\n\t\t\tif (!child) return;\n\t\t\tcurrentNode = child;\n\t\t}\n\t\treturn currentNode;\n\t}\n\thas(keys) {\n\t\treturn this.findNode(keys)?.value !== void 0;\n\t}\n\thasNode(keys) {\n\t\treturn this.findNode(keys) !== void 0;\n\t}\n\tget(keys) {\n\t\tconst node = this.findNode(keys);\n\t\treturn node ? node.value : void 0;\n\t}\n\tstatic fromEntries(entries) {\n\t\tconst trie = new GTrie();\n\t\tfor (const [keys, value] of entries) trie.insert(keys, value);\n\t\treturn trie;\n\t}\n};\n//#endregion\n//#region ../cspell-performance-monitor/dist/index.js\nconst symbolCSpell = Symbol.for(\"cspell\");\nconst globalThisCSpell = globalThis;\nfunction getGlobalCSpellSettings() {\n\treturn globalThisCSpell[symbolCSpell] ??= {};\n}\nfunction _measurePerfStart(name, enabled) {\n\tif (!enabled) return;\n\tperformance.mark(name + \"-start\");\n}\nfunction _measurePerfEnd(name, enabled) {\n\tif (!enabled) return;\n\tperformance.mark(name + \"-end\");\n\tperformance.measure(name, name + \"-start\", name + \"-end\");\n}\n/**\n* Creates performance marks and measures the time taken between them.\n* @param name - name of the performance entry\n* @returns a function to stop the timer.\n*/\nfunction measurePerf(name) {\n\tconst enabled = isEnabledPerformanceMeasurements();\n\t_measurePerfStart(name, enabled);\n\treturn makeDisposableFunction(() => {\n\t\t_measurePerfEnd(name, enabled);\n\t});\n}\nfunction makeDisposableFunction(fn) {\n\tconst disposableFn = fn;\n\tdisposableFn[Symbol.dispose] = fn;\n\tdisposableFn[Symbol.asyncDispose] = () => (fn(), Promise.resolve());\n\treturn disposableFn;\n}\nfunction isEnabledPerformanceMeasurements() {\n\treturn !!getGlobalCSpellSettings().enablePerformanceMeasurements;\n}\n//#endregion\n//#region src/lib/StringTable/StringTable.ts\n/**\n* This is a set of strings stored in a compact form.\n*\n* Strings are stored as UTF-8 encoded bytes in a single contiguous buffer.\n* Each string is referenced by its starting index and length within the buffer.\n*\n* This design minimizes memory overhead by avoiding individual string objects,\n* allowing efficient storage and retrieval of a large number of strings.\n*\n* Strings are retrieved based on their index.\n*\n* The internal index table contains the offset and length of each string in the buffer.\n*\n*/\nvar StringTable = class {\n\t#index;\n\t#data;\n\t#strLenBits;\n\t#strLenMask;\n\t#decoder = new TextDecoder();\n\t/**\n\t*\n\t* @param index - the lookup index format: `offset|len` where the low bits are the length\n\t* @param utf8ByteData - the UTF-8 encoded byte data for all the strings\n\t* @param strLenBits - number of bits used to store the length of the string in the index entry\n\t*/\n\tconstructor(index, utf8ByteData, strLenBits) {\n\t\tthis.#index = index;\n\t\tthis.#data = utf8ByteData;\n\t\tthis.#strLenBits = strLenBits;\n\t\tthis.#strLenMask = (1 << strLenBits) - 1;\n\t}\n\tget index() {\n\t\treturn this.#index;\n\t}\n\tget charData() {\n\t\treturn this.#data;\n\t}\n\tget strLenBits() {\n\t\treturn this.#strLenBits;\n\t}\n\tget length() {\n\t\treturn this.#index.length;\n\t}\n\tgetStringBytes(idx) {\n\t\tif (idx < 0 || idx >= this.#index.length) return void 0;\n\t\treturn this.#getBytesByIndexValue(this.#index[idx]);\n\t}\n\tgetString(idx) {\n\t\tconst bytes = this.getStringBytes(idx);\n\t\tif (!bytes) return void 0;\n\t\treturn this.#decoder.decode(bytes);\n\t}\n\t#getBytesByIndexValue(value) {\n\t\tconst offset = value >>> this.#strLenBits;\n\t\tconst length = value & this.#strLenMask;\n\t\treturn this.#data.subarray(offset, offset + length);\n\t}\n\tdataByteLength() {\n\t\treturn this.#data.byteLength;\n\t}\n\tbitInfo() {\n\t\tconst strLenBits = this.strLenBits;\n\t\tconst offsetBits = Math.ceil(Math.log2(this.charData.length + 1));\n\t\treturn {\n\t\t\tstrLenBits,\n\t\t\toffsetBits,\n\t\t\tminIndexBits: strLenBits + offsetBits\n\t\t};\n\t}\n\tvalues() {\n\t\treturn [...this.#index].map((v) => this.#getBytesByIndexValue(v));\n\t}\n\ttoString() {\n\t\treturn [...this.#index].map((_, i) => this.getString(i) || \"\").join(\", \");\n\t}\n\ttoJSON() {\n\t\treturn {\n\t\t\tindex: [...this.#index],\n\t\t\tdata: [...this.#data],\n\t\t\tstrLenBits: this.#strLenBits\n\t\t};\n\t}\n};\nvar StringTableBuilder = class StringTableBuilder {\n\t#data = [];\n\t#encoder = new TextEncoder();\n\t#lookupTrie = new GTrie();\n\t#locked = false;\n\t#maxStrLen = 0;\n\taddStringBytes(bytes) {\n\t\tassert(!this.#locked, \"StringTableBuilder is locked and cannot be modified.\");\n\t\tconst found = this.#lookupTrie.get(bytes);\n\t\tif (found !== void 0) return found;\n\t\tconst idx = this.#data.push(bytes) - 1;\n\t\tthis.#lookupTrie.insert(bytes, idx);\n\t\tthis.#maxStrLen = Math.max(this.#maxStrLen, bytes.length);\n\t\treturn idx;\n\t}\n\taddString(str) {\n\t\tconst bytes = this.#encoder.encode(str);\n\t\treturn this.addStringBytes(bytes);\n\t}\n\tgetEntry(idx) {\n\t\treturn this.#data[idx];\n\t}\n\tget length() {\n\t\treturn this.#data.length;\n\t}\n\tbuild() {\n\t\tconst endPerf = measurePerf(\"StringTableBuilder.build\");\n\t\tconst table = this.#build();\n\t\tendPerf();\n\t\treturn table;\n\t}\n\t#build() {\n\t\tthis.#locked = true;\n\t\tif (!this.#data.length) return new StringTable([], /* @__PURE__ */ new Uint8Array(0), 8);\n\t\tconst sortedBySize = this.#data.map((b, i) => ({\n\t\t\tb,\n\t\t\ti\n\t\t})).sort((a, b) => b.b.length - a.b.length);\n\t\tconst byteValues = [];\n\t\tconst strLenBits = Math.ceil(Math.log2(this.#maxStrLen + 1));\n\t\tconst strLenMask = (1 << strLenBits) - 1;\n\t\tconst index = new Array(this.#data.length);\n\t\tfor (const { b, i } of sortedBySize) {\n\t\t\tlet offset = findValues(b);\n\t\t\tif (offset < 0) offset = appendValues(b);\n\t\t\tconst length = b.length;\n\t\t\tassert(length <= strLenMask, `String length ${length} exceeds maximum of ${strLenMask}`);\n\t\t\tindex[i] = offset << strLenBits | length;\n\t\t}\n\t\treturn new StringTable(index, new Uint8Array(byteValues), strLenBits);\n\t\tfunction findValues(buf) {\n\t\t\tconst bufLen = buf.length;\n\t\t\tconst maxOffset = byteValues.length - bufLen;\n\t\t\tfor (let i = 0; i <= maxOffset; i++) {\n\t\t\t\tlet match = true;\n\t\t\t\tfor (let j = 0; j < bufLen; j++) if (byteValues[i + j] !== buf[j]) {\n\t\t\t\t\tmatch = false;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif (match) return i;\n\t\t\t}\n\t\t\treturn -1;\n\t\t}\n\t\tfunction appendValues(buf) {\n\t\t\tconst offset = byteValues.length;\n\t\t\tbyteValues.push(...buf);\n\t\t\treturn offset;\n\t\t}\n\t}\n\tstatic fromStringTable(table) {\n\t\tconst builder = new StringTableBuilder();\n\t\tconst values = table.values();\n\t\tconst len = values.length;\n\t\tfor (let i = 0; i < len; ++i) builder.addStringBytes(values[i]);\n\t\treturn builder;\n\t}\n};\n/**\n* The endian code used to identify endianness in the binary format.\n* We use the 16-bit value 0x5453 (corresponding to the characters 'S' (0x53) and 'T' (0x54)).\n* In little-endian representation, 0x5453 is stored as bytes 0x53 0x54 ('S', 'T').\n* In big-endian representation, 0x5453 is stored as bytes 0x54 0x53 ('T', 'S').\n*\n* The value stored should match the value retrieved, otherwise the endianness is incorrect.\n*/\nconst bomCode = 21587;\nfunction getStringTableBinaryFormat() {\n\treturn new BinaryFormatBuilder().addUint8(\"indexBits\", \"The number of bits needed for each index entry\", 32).addUint8(\"strLenBits\", \"The number of bits needed to store the max length of a string in the table.\", 8).addUint16(\"bom\", \"The Byte Order Mark.\", bomCode).addString(\"reserved\", \"Reserved for future use\", 4).addUint32ArrayPtr(\"index32\", \"String index array of 32 bit entries\").addUint16ArrayPtr(\"index16\", \"String index array of 16 bit entries\", \"index32\").addUint8ArrayPtr(\"index\", \"String index array of 8 bit entries\", \"index32\").addUint8ArrayPtr(\"data\", \"String byte data\").build();\n}\n/**\n* Encodes a StringTable into binary data so that it can be stored or transmitted.\n* @param table - the string table to encode\n* @param endian - the resulting endianness of the data.\n* @returns The encoded string table binary data.\n*/\nfunction encodeStringTableToBinary(table, endian) {\n\tconst strLenBits = table.strLenBits;\n\tconst minIndexBits = strLenBits + Math.ceil(Math.log2(table.charData.length + 1));\n\tconst indexBits = minIndexBits <= 16 ? 16 : 32;\n\tassert(minIndexBits <= indexBits, `Index bits ${indexBits} is too small for required bits ${minIndexBits}`);\n\tconst builder = new BinaryDataBuilder(getStringTableBinaryFormat(), endian);\n\tbuilder.setUint8(\"indexBits\", indexBits);\n\tbuilder.setUint8(\"strLenBits\", strLenBits);\n\tbuilder.setUint16(\"bom\", bomCode);\n\tif (indexBits === 16) builder.setPtrUint16Array(\"index16\", toU16Array(table.index));\n\telse builder.setPtrUint32Array(\"index32\", toU32Array(table.index));\n\tbuilder.setPtrUint8Array(\"data\", table.charData);\n\treturn builder.build();\n}\n/**\n* Decodes binary data into a StringTable.\n* @param data - the byte data of the string table.\n* @param endian - the endianness of the encoded data.\n* @returns The decoded StringTable.\n*/\nfunction decodeStringTableFromBinary(data, endian) {\n\tif (!data?.length) return new StringTable([], /* @__PURE__ */ new Uint8Array(0), 8);\n\tconst reader = new BinaryDataReader(data, getStringTableBinaryFormat(), endian);\n\tconst indexBits = reader.getUint8(\"indexBits\");\n\tconst strLenBits = reader.getUint8(\"strLenBits\");\n\tconst bomStored = reader.getUint16(\"bom\");\n\tassert(!bomStored || bomStored === bomCode, \"Endian mismatch\");\n\treturn new StringTable(indexBits === 16 ? reader.getPtrUint16Array(\"index16\") : reader.getPtrUint32Array(\"index32\"), reader.getPtrUint8Array(\"data\"), strLenBits);\n}\nfunction toU16Array(data) {\n\tif (data instanceof Uint16Array) return data;\n\treturn new Uint16Array(data);\n}\nfunction toU32Array(data) {\n\tif (data instanceof Uint32Array) return data;\n\treturn new Uint32Array(data);\n}\n//#endregion\n//#region src/lib/utils/text.ts\n/**\n* Expand a line into a set of characters.\n*\n* Example:\n* - `a-c` -> `<a,b,c>`\n* - `ac-` -> `<a,c,->`\n* - `-abz` -> `<-,a,b,z>`\n* - `\\u0300-\\u0308` -> `<accents>`\n*\n* @param line - set of characters\n* @param rangeChar - the character to indicate ranges, set to empty to not have ranges.\n*/\nfunction expandCharacterSet(line, rangeChar = \"-\") {\n\tconst charSet = /* @__PURE__ */ new Set();\n\tlet mode = 0;\n\tlet prev = \"\";\n\tfor (const char of line) {\n\t\tif (mode) {\n\t\t\texpandRange(prev, char).forEach((a) => charSet.add(a));\n\t\t\tmode = 0;\n\t\t}\n\t\tif (char === rangeChar && prev) {\n\t\t\tmode = 1;\n\t\t\tcontinue;\n\t\t}\n\t\tcharSet.add(char);\n\t\tprev = char;\n\t}\n\tif (mode) charSet.add(rangeChar);\n\treturn charSet;\n}\n/**\n* Expands a range between two characters.\n* - `a <= b` -- `[a, b]`\n* - `a > b` -- `[]`\n* @param a - staring character\n* @param b - ending character\n* @returns array of unicode characters.\n*/\nfunction expandRange(a, b) {\n\tconst values = [];\n\tconst end = b.codePointAt(0);\n\tconst begin = a.codePointAt(0);\n\tif (!(begin && end)) return values;\n\tfor (let i = begin; i <= end; ++i) values.push(String.fromCodePoint(i));\n\treturn values;\n}\n/**\n* Tries to find the different cases for a letter.\n* It can generate multiple forms:\n* - `ß` => `['ß', 'SS', 'ss']`\n* - `a` => `['a', 'A']`\n* - `A` => `['A', 'z']`\n* - `Å` => `['A', 'z']`\n* @param letter - the letter to generate upper and lower cases.\n* @param locale - the locale to use for changing case.\n* @returns the set of found cases.\n*/\nfunction caseForms(letter, locale) {\n\tconst forms = /* @__PURE__ */ new Set([letter]);\n\tfunction tryCases(s) {\n\t\tforms.add(s.toLocaleLowerCase(locale));\n\t\tforms.add(s.toLocaleUpperCase(locale));\n\t}\n\ttryCases(letter);\n\t[...forms].forEach(tryCases);\n\treturn [...forms].filter((a) => !!a);\n}\n/**\n* Generate the different normalized forms of the letters.\n* @param letter - letter to normalize.\n* @returns combined set of possible forms.\n*/\nfunction accentForms(letter) {\n\treturn /* @__PURE__ */ new Set([\n\t\tletter,\n\t\tletter.normalize(\"NFC\"),\n\t\tletter.normalize(\"NFD\")\n\t]);\n}\n/**\n* Remove all accents.\n* @param characters - unicode characters\n* @returns characters with accents removed (if it was possible)\n*/\nfunction stripAccents(characters) {\n\treturn characters.normalize(\"NFD\").replaceAll(/\\p{M}/gu, \"\");\n}\n/**\n* Remove all non accent characters from a string.\n* @param characters - characters with accents.\n* @returns - only the accents.\n*/\nfunction stripNonAccents(characters) {\n\treturn characters.normalize(\"NFD\").replaceAll(/[^\\p{M}]/gu, \"\");\n}\nfunction isValidUtf16Character(char) {\n\tconst len = char.length;\n\tconst code = char.charCodeAt(0) & 64512;\n\treturn len === 1 && (code & 63488) !== 55296 || len === 2 && (code & 64512) === 55296 && (char.charCodeAt(1) & 64512) === 56320;\n}\nfunction assertValidUtf16Character(char) {\n\tif (!isValidUtf16Character(char)) {\n\t\tconst len = char.length;\n\t\tconst codes = toCharCodes(char.slice(0, 2)).map((c) => \"0x\" + (\"0000\" + c.toString(16)).slice(-4));\n\t\tlet message;\n\t\tif (len === 1) message = `Invalid utf16 character, lone surrogate: ${codes[0]}`;\n\t\telse if (len === 2) message = `Invalid utf16 character, not a valid surrogate pair: [${codes.join(\", \")}]`;\n\t\telse message = `Invalid utf16 character, must be a single character, found: ${len}`;\n\t\tthrow new Error(message);\n\t}\n}\nfunction toCharCodes(s) {\n\tconst values = [];\n\tfor (let i = 0; i < s.length; ++i) values.push(s.charCodeAt(i));\n\treturn values;\n}\n//#endregion\n//#region src/lib/TrieBlob/Utf8.ts\n/**\n* Encode a CodePoint into a Big Endian utf8 value, up to 4 bytes.\n* These numbers sort into the correct order for utf8.\n*\n* hightest byte lowest byte Code Point Range\n* - 1 byte: 00000000 00000000 00000000 0xxxxxxx - 0x0000_0000 - 0x0000_007f\n* - 2 bytes: 00000000 00000000 110xxxxx 10xxxxxx - 0x0000_0080 - 0x0000_07ff\n* - 3 bytes: 00000000 1110xxxx 10xxxxxx 10xxxxxx - 0x0000_0800 - 0x0000_ffff\n* - 4 bytes: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx - 0x0001_0000 - 0x001f_ffff\n*\n* @param code - the code point to encode\n* @returns number containing the utf8 value.\n*/\nfunction encodeToUtf8_32(code) {\n\tif (code < 128) return code;\n\tif (code < 2048) return 49280 | (code & 1984) << 2 | code & 63;\n\tif (code < 65536) return 14712960 | (code & 61440) << 4 | (code & 4032) << 2 | code & 63;\n\treturn 4034953344 + ((code & 1835008) << 6 | (code & 258048) << 4 | (code & 4032) << 2 | code & 63);\n}\n/**\n* Encode a CodePoint into a Little Endian utf8 value, up to 4 bytes.\n*\n* These numbers DO NOT sort into the correct order for utf8.\n*\n* hightest byte lowest byte Code Point Range\n* - 1 byte: 00000000 00000000 00000000 0xxxxxxx - 0x0000_0000 - 0x0000_007f\n* - 2 bytes: 00000000 00000000 10xxxxxx 110xxxxx - 0x0000_0080 - 0x0000_07ff\n* - 3 bytes: 00000000 10xxxxxx 10xxxxxx 1110xxxx - 0x0000_0800 - 0x0000_ffff\n* - 4 bytes: 10xxxxxx 10xxxxxx 10xxxxxx 11110xxx - 0x0001_0000 - 0x001f_ffff\n*\n* @param code - the code point to encode\n* @returns number containing the utf8 value.\n*/\nfunction encodeToUtf8_32Rev(code) {\n\tif (code < 128) return code;\n\tif (code < 2048) return 32960 | (code & 1984) >> 6 | (code & 63) << 8;\n\tif (code < 65536) return 8421600 | (code & 61440) >>> 12 | (code & 4032) << 2 | (code & 63) << 16;\n\treturn 2155905264 + ((code & 1835008) >>> 18 | (code & 258048) >>> 4 | (code & 4032) << 10 | (code & 63) << 24);\n}\n/**\n* Incrementally decodes a stream of UTF‑8 bytes into Unicode code points.\n*\n* This class keeps a small amount of state (`remaining` and `value`) so that callers can\n* feed it one byte at a time via {@link Utf8Accumulator.decode}, and receive a complete\n* code point whenever enough continuation bytes have been seen. If a full code point has\n* not yet been assembled, `decode` returns `undefined`. On invalid byte sequences, the\n* accumulator is reset to a known-good state.\n*\n* The design is similar in spirit to {@link TextDecoderStream} (it copes with multi-byte\n* sequences and boundaries that may fall between input chunks), but it is implemented as a\n* lightweight, allocation-free helper object that can be cheaply cloned and reset. This\n* makes it suitable for performance‑sensitive code and for environments where\n* `TextDecoderStream` is not available or where creating full stream instances would be\n* unnecessarily expensive.\n*/\nvar Utf8Accumulator = class Utf8Accumulator {\n\t/**\n\t* Number of remaining continuation bytes expected for the current code point being decoded.\n\t*/\n\tremaining = 0;\n\t/**\n\t* Partially decoded code point value being accumulated.\n\t*/\n\tvalue = 0;\n\t/**\n\t* Decode a single utf8 byte\n\t* @param byte\n\t* @returns a CodePoint if a full code point has been decoded, undefined if more bytes are needed, or 0xfffd on error.\n\t*/\n\tdecode(byte) {\n\t\tlet remaining = this.remaining;\n\t\tif (byte & -256) return this.reset();\n\t\tif ((byte & 128) === 0) {\n\t\t\tif (remaining) return this.reset();\n\t\t\treturn byte;\n\t\t}\n\t\tif (remaining) {\n\t\t\tif ((byte & 192) !== 128) return this.reset();\n\t\t\tlet value = this.value;\n\t\t\tvalue = value << 6 | byte & 63;\n\t\t\tthis.value = value;\n\t\t\tremaining -= 1;\n\t\t\tthis.remaining = remaining;\n\t\t\treturn remaining ? void 0 : value;\n\t\t}\n\t\tif ((byte & 224) === 192) {\n\t\t\tthis.value = byte & 31;\n\t\t\tthis.remaining = 1;\n\t\t\treturn;\n\t\t}\n\t\tif ((byte & 240) === 224) {\n\t\t\tthis.value = byte & 15;\n\t\t\tthis.remaining = 2;\n\t\t\treturn;\n\t\t}\n\t\tif ((byte & 248) === 240) {\n\t\t\tthis.value = byte & 7;\n\t\t\tthis.remaining = 3;\n\t\t\treturn;\n\t\t}\n\t\treturn this.reset();\n\t}\n\tget codePoint() {\n\t\treturn this.remaining ? void 0 : this.value;\n\t}\n\tdecodeBytesToString(bytes) {\n\t\tlet value = \"\";\n\t\tconst len = bytes.length;\n\t\tfor (let i = 0; i < len; ++i) {\n\t\t\tconst code = this.decode(bytes[i]);\n\t\t\tif (code) value += String.fromCodePoint(code);\n\t\t}\n\t\treturn value;\n\t}\n\treset() {\n\t\tthis.remaining = 0;\n\t\tthis.value = 0;\n\t\treturn 65533;\n\t}\n\tclone(into = new Utf8Accumulator()) {\n\t\tinto.remaining = this.remaining;\n\t\tinto.value = this.value;\n\t\treturn into;\n\t}\n\tstatic isMultiByte(v) {\n\t\treturn (v & 128) !== 0;\n\t}\n\tstatic isSingleByte(v) {\n\t\treturn (v & 128) === 0;\n\t}\n\tstatic create() {\n\t\treturn new this();\n\t}\n};\nfunction encodeTextToUtf8_32Rev(offset) {\n\tconst text = offset.text;\n\tlet code = text.charCodeAt(offset.i) & 65535;\n\tcode = (code & 63488) === 55296 ? text.codePointAt(offset.i++) || 0 : code;\n\toffset.i++;\n\tif (code < 128) return code;\n\tif (code < 2048) return 32960 | (code & 1984) >> 6 | (code & 63) << 8;\n\tif (code < 65536) return 8421600 | (code & 61440) >>> 12 | (code & 4032) << 2 | (code & 63) << 16;\n\treturn 2155905264 + ((code & 1835008) >>> 18 | (code & 258048) >>> 4 | (code & 4032) << 10 | (code & 63) << 24);\n}\nfunction encodeTextToUtf8Into(text, into, offset = 0) {\n\tconst t = {\n\t\ttext,\n\t\ti: 0\n\t};\n\tlet i = offset;\n\tfor (; t.i < text.length;) {\n\t\tconst code = encodeTextToUtf8_32Rev(t);\n\t\tfor (let utf8_32Rev = code; utf8_32Rev !== 0; utf8_32Rev >>>= 8) into[i++] = utf8_32Rev & 255;\n\t}\n\treturn i - offset;\n}\nfunction encodeTextToUtf8(text) {\n\tconst into = new Array(text.length);\n\tencodeTextToUtf8Into(text, into);\n\treturn into;\n}\n//#endregion\n//#region src/lib/TrieBlob/CharIndex.ts\nObject.freeze([0]);\nvar CharIndex = class CharIndex {\n\t#charToUtf8SeqMap;\n\t#lastWord = \"\";\n\t#lastWordSeq = [];\n\t#multiByteChars;\n\tcharIndex;\n\tconstructor(charIndex = /* @__PURE__ */ new Set()) {\n\t\tthis.charIndex = charIndex;\n\t\tthis.#charToUtf8SeqMap = buildCharIndexSequenceMap(charIndex);\n\t\tthis.#multiByteChars = [...this.#charToUtf8SeqMap.values()].some((c) => c.length > 1);\n\t}\n\tgetCharUtf8Seq(c) {\n\t\tconst found = this.#charToUtf8SeqMap.get(c);\n\t\tif (found) return found;\n\t\tconst s = encodeTextToUtf8(c);\n\t\tthis.#charToUtf8SeqMap.set(c, s);\n\t\treturn s;\n\t}\n\twordToUtf8Seq(word) {\n\t\tif (this.#lastWord === word) return this.#lastWordSeq;\n\t\tconst seq = encodeTextToUtf8(word);\n\t\tthis.#lastWord = word;\n\t\tthis.#lastWordSeq = seq;\n\t\treturn seq;\n\t}\n\tindexContainsMultiByteChars() {\n\t\treturn this.#multiByteChars;\n\t}\n\tget size() {\n\t\treturn this.charIndex.size;\n\t}\n\ttoJSON() {\n\t\treturn { charIndex: [...this.charIndex].join(\"\") };\n\t}\n\tstatic fromJSON(json) {\n\t\tconst charIndex = new Set(json.charIndex);\n\t\treturn new CharIndex(charIndex);\n\t}\n\tstatic fromIterable(charIndex) {\n\t\tconst charSet = /* @__PURE__ */ new Set();\n\t\tfor (const s of charIndex) for (const c of s) charSet.add(c);\n\t\treturn new CharIndex(charSet);\n\t}\n};\nfunction buildCharIndexSequenceMap(charIndex) {\n\tconst map = /* @__PURE__ */ new Map();\n\tfor (const key of charIndex) map.set(key, encodeTextToUtf8(key));\n\treturn map;\n}\nvar CharIndexBuilder = class {\n\tcharIndex = /* @__PURE__ */ new Set();\n\tcharIndexMap = /* @__PURE__ */ new Map();\n\tcharIndexSeqMap = /* @__PURE__ */ new Map();\n\t#mapIdxToSeq = /* @__PURE__ */ new Map();\n\tconstructor() {\n\t\tthis.getUtf8Value(\"\");\n\t}\n\tgetUtf8Value(c) {\n\t\tconst found = this.charIndexMap.get(c);\n\t\tif (found !== void 0) return found;\n\t\tconst nc = c.normalize(\"NFC\");\n\t\tthis.charIndex.add(nc);\n\t\tconst utf8 = encodeToUtf8_32(nc.codePointAt(0) || 0);\n\t\tthis.charIndexMap.set(c, utf8);\n\t\tthis.charIndexMap.set(nc, utf8);\n\t\tthis.charIndexMap.set(c.normalize(\"NFD\"), utf8);\n\t\treturn utf8;\n\t}\n\tutf8ValueToUtf8Seq(idx) {\n\t\tconst found = this.#mapIdxToSeq.get(idx);\n\t\tif (found !== void 0) return found;\n\t\tconst seq = splitUtf8(idx);\n\t\tthis.#mapIdxToSeq.set(idx, seq);\n\t\treturn seq;\n\t}\n\tcharToUtf8Seq(c) {\n\t\tconst idx = this.getUtf8Value(c);\n\t\treturn this.utf8ValueToUtf8Seq(idx);\n\t}\n\twordToUtf8Seq(word) {\n\t\tconst seq = new Array(word.length);\n\t\tlet i = 0;\n\t\tfor (const c of word) {\n\t\t\tconst idx = this.getUtf8Value(c);\n\t\t\tconst cSep = this.utf8ValueToUtf8Seq(idx);\n\t\t\tif (typeof cSep === \"number\") {\n\t\t\t\tseq[i++] = cSep;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tfor (const cIdx of cSep) seq[i++] = cIdx;\n\t\t}\n\t\tif (seq.length !== i) seq.length = i;\n\t\treturn seq;\n\t}\n\tget size() {\n\t\treturn this.charIndex.size;\n\t}\n\tbuild() {\n\t\treturn new CharIndex(this.charIndex);\n\t}\n};\nfunction splitUtf8(utf8) {\n\tutf8 = utf8 < 0 ? 4294967296 + utf8 : utf8;\n\tif (utf8 <= 255) return [utf8];\n\tif (utf8 <= 65535) return [utf8 >> 8 & 255, utf8 & 255];\n\tif (utf8 <= 16777215) return [\n\t\tutf8 >> 16 & 255,\n\t\tutf8 >> 8 & 255,\n\t\tutf8 & 255\n\t];\n\treturn [\n\t\tutf8 >> 24 & 255,\n\t\tutf8 >> 16 & 255,\n\t\tutf8 >> 8 & 255,\n\t\tutf8 & 255\n\t].filter((v) => v);\n}\n//#endregion\n//#region src/lib/TrieBlob/TrieBlobFormat.ts\nconst NodeHeaderPrefixMask = 1073741312;\n//#endregion\n//#region src/lib/TrieBlob/optimizeNodes.ts\nconst MAX_AUTO_ADD_TO_STRING_TABLE = 4;\n/**\n* Convert from a Trie to a DAWG by merging identical nodes.\n* @param nodes - the nodes to optimize. This array and the contents WILL BE CHANGED and used as a scratch space.\n* @returns the optimized nodes.\n*/\nfunction optimizeNodes(nodes) {\n\tconst endPerf = measurePerf(\"TrieBlob.optimizeNodes\");\n\t/** the has map to look up locked nodes. */\n\tconst nodeHashMap = /* @__PURE__ */ new Map();\n\tconst lockedNodes = /* @__PURE__ */ new WeakMap();\n\tconst eowNode = nodes[1];\n\tgetHashList(eowNode).push(eowNode);\n\tlockNode(eowNode, 1);\n\twalk(0);\n\tconst n = compactNodes(nodes);\n\tendPerf();\n\treturn n;\n\tfunction getHashList(node) {\n\t\tconst hash = xorNode(node);\n\t\tlet list = nodeHashMap.get(hash);\n\t\tif (list) return list;\n\t\tlist = [];\n\t\tnodeHashMap.set(hash, list);\n\t\treturn list;\n\t}\n\tfunction lockNode(node, index) {\n\t\tlockedNodes.set(node, index);\n\t\treturn index;\n\t}\n\tfunction findMatchingLockedNode(hash, node) {\n\t\tconst candidates = nodeHashMap.get(hash);\n\t\tif (!candidates) return void 0;\n\t\treturn findMatchingNode(node, candidates);\n\t}\n\tfunction registerNode(nodeIdx, node) {\n\t\tif (!nodeIdx) return nodeIdx;\n\t\tconst match = findMatchingLockedNode(xorNode(node), node);\n\t\tif (!match) {\n\t\t\tgetHashList(node).push(node);\n\t\t\treturn lockNode(node, nodeIdx);\n\t\t}\n\t\treturn lockNode(node, lockedNodes.get(match) || 0);\n\t}\n\tfunction walk(nodeIdx) {\n\t\tconst node = nodes[nodeIdx];\n\t\tif (lockedNodes.has(node)) return nodeIdx;\n\t\tconst count = node.length - 1;\n\t\tfor (let i = 1; i <= count; ++i) {\n\t\t\tconst entry = node[i];\n\t\t\tconst childIdx = entry >> 8;\n\t\t\tconst newChildIdx = walk(childIdx);\n\t\t\tif (newChildIdx !== childIdx) node[i] = entry & 255 | newChildIdx << 8;\n\t\t}\n\t\treturn registerNode(nodeIdx, node);\n\t}\n}\nfunction xorNode(a) {\n\tlet xor = 0;\n\tfor (let i = 0; i < a.length; ++i) xor ^= a[i];\n\treturn xor;\n}\nfunction findMatchingNode(node, candidates) {\n\tfor (let i = candidates.length - 1; i >= 0; --i) {\n\t\tconst candidate = candidates[i];\n\t\tif (compareNodes(node, candidate)) return candidate;\n\t}\n}\nfunction compareNodes(a, b) {\n\tif (a.length !== b.length) return false;\n\tlet diff = 0;\n\tfor (let i = 0; i < a.length && diff === 0; ++i) diff = a[i] - b[i];\n\treturn !diff;\n}\n/**\n* Walk the trie and remove any nodes that are not reachable.\n* @param nodes - the nodes to compact they will get modified.\n* @returns the compacted nodes.\n*/\nfunction compactNodes(nodes) {\n\tconst nodeMap = /* @__PURE__ */ new Map();\n\tconst compacted = [];\n\tnodeMap.set(0, 0);\n\tnodeMap.set(1, 1);\n\tcompacted.push(nodes[0], nodes[1]);\n\twalk(0);\n\treturn compacted;\n\tfunction walk(nodeIdx) {\n\t\tconst found = nodeMap.get(nodeIdx);\n\t\tif (found) return found;\n\t\tconst node = nodes[nodeIdx];\n\t\tconst count = node.length - 1;\n\t\tfor (let i = 1; i <= count; ++i) {\n\t\t\tconst entry = node[i];\n\t\t\tconst newChildIdx = walk(entry >> 8);\n\t\t\tnode[i] = entry & 255 | newChildIdx << 8;\n\t\t}\n\t\tif (!nodeIdx) return nodeIdx;\n\t\tconst newIndex = compacted.push(node) - 1;\n\t\tnodeMap.set(nodeIdx, newIndex);\n\t\treturn newIndex;\n\t}\n}\nfunction calculateByteSize(nodes) {\n\tlet count = 0;\n\tfor (let i = nodes.length - 1; i >= 0; --i) count += nodes[i].length;\n\treturn count * 4;\n}\nfunction copyNodes(nodes) {\n\tconst size = calculateByteSize(nodes);\n\tconst dst = Array(nodes.length);\n\tconst buffer = new ArrayBuffer(size);\n\tfor (let i = 0, offset = 0; i < nodes.length; ++i) {\n\t\tconst node = nodes[i];\n\t\tconst nodeCopy = new Uint32Array(buffer, offset, node.length);\n\t\tnodeCopy.set(node);\n\t\tdst[i] = nodeCopy;\n\t\toffset += nodeCopy.byteLength;\n\t}\n\treturn dst;\n}\nfunction copyNodesAndStringTable(src) {\n\treturn {\n\t\tnodes: copyNodes(src.nodes),\n\t\tstringTableBuilder: StringTableBuilder.fromStringTable(src.stringTable)\n\t};\n}\nfunction optimizeNodesWithStringTable(src) {\n\tconst endPerf = measurePerf(\"TrieBlob.optimizeNodesWithStringTable\");\n\tconst { nodes, stringTableBuilder: builder } = copyNodesAndStringTable(src);\n\tconst multipleNodeRefs = calcHasMultipleReferences(nodes);\n\tconst multiStringRefs = /* @__PURE__ */ new Set([0]);\n\tif (!builder.length) builder.addString(\"\");\n\twalkNodes(nodes, 0, { after: processNode });\n\tconst r = {\n\t\tnodes: optimizeNodes(nodes),\n\t\tstringTable: builder.build()\n\t};\n\tendPerf();\n\treturn r;\n\t/**\n\t* If possible, replace the current node with a prefix node.\n\t* @param nodeIdx - node to process\n\t*/\n\tfunction processNode(nodeIdx) {\n\t\tconst node = nodes[nodeIdx];\n\t\tif (node.length !== 2) return;\n\t\tconst header = node[0];\n\t\tif ((header & 256) !== 0) return;\n\t\tif (header & 1073741312) return;\n\t\tconst childEntry = node[1];\n\t\tconst charByte = childEntry & 255;\n\t\tconst childIdx = childEntry >>> 8;\n\t\tif (multipleNodeRefs.has(childIdx)) return;\n\t\tconst childNode = nodes[childIdx];\n\t\tconst childHeader = childNode[0];\n\t\tconst childPrefixIdx = (childHeader & NodeHeaderPrefixMask) >>> 9;\n\t\tconst childBytes = builder.getEntry(childPrefixIdx) || [];\n\t\tif (!multiStringRefs.has(childPrefixIdx)) {\n\t\t\tmultiStringRefs.add(childPrefixIdx);\n\t\t\tif (childBytes.length >= MAX_AUTO_ADD_TO_STRING_TABLE) return;\n\t\t}\n\t\tconst prefixBytes = [charByte, ...childBytes];\n\t\tconst prefixIdx = builder.addStringBytes(prefixBytes);\n\t\tconst newNode = Uint32Array.from(childNode);\n\t\tnewNode[0] = prefixIdx << 9 | childHeader & -1073741313;\n\t\tnodes[nodeIdx] = newNode;\n\t}\n}\nfunction calcHasMultipleReferences(nodes) {\n\tconst seen = /* @__PURE__ */ new Set();\n\tconst multiple = /* @__PURE__ */ new Set();\n\twalkNodes(nodes, 0, { before: (nodeIdx) => {\n\t\tif (seen.has(nodeIdx)) {\n\t\t\tmultiple.add(nodeIdx);\n\t\t\treturn true;\n\t\t}\n\t\tseen.add(nodeIdx);\n\t\treturn false;\n\t} });\n\treturn multiple;\n}\nfunction walkNodes(nodes, nodeIdx, options) {\n\tconst after = options.after || (() => void 0);\n\tconst before = options.before || (() => void 0);\n\tfunction walk(nodeIdx) {\n\t\tif (before(nodeIdx)) return;\n\t\tconst node = nodes[nodeIdx];\n\t\tconst count = node.length - 1;\n\t\tfor (let i = 1; i <= count; ++i) walk(node[i] >> 8);\n\t\tafter(nodeIdx);\n\t}\n\twalk(nodeIdx);\n}\n//#endregion\n//#region src/lib/TrieBlob/resolveMap.ts\nfunction resolveMap(map, key, resolve) {\n\tconst r = map.get(key);\n\tif (r !== void 0) return r;\n\tconst v = resolve(key);\n\tmap.set(key, v);\n\treturn v;\n}\n//#endregion\n//#region src/lib/constants.ts\nconst COMPOUND_FIX = \"+\";\nconst OPTIONAL_COMPOUND_FIX = \"*\";\nconst CASE_INSENSITIVE_PREFIX = \"~\";\nconst FORBID_PREFIX = \"!\";\nconst defaultTrieInfo = Object.freeze({\n\tcompoundCharacter: \"+\",\n\tforbiddenWordPrefix: \"!\",\n\tstripCaseAndAccentsPrefix: \"~\",\n\tsuggestionPrefix: \":\"\n});\n//#endregion\n//#region src/lib/utils/mergeDefaults.ts\n/**\n* Creates a new object of type T based upon the field values from `value`.\n* n[k] = value[k] ?? default[k] where k must be a field in default.\n* Note: it will remove fields not in defaultValue!\n* @param value\n* @param defaultValue\n*/\nfunction mergeDefaults(value, defaultValue) {\n\tconst result = { ...defaultValue };\n\tif (value) {\n\t\tfor (const [k, v] of Object.entries(value)) if (k in result) result[k] = v ?? result[k];\n\t}\n\treturn result;\n}\n//#endregion\n//#region src/lib/utils/mergeOptionalWithDefaults.ts\nfunction mergeOptionalWithDefaults(...options) {\n\treturn options.reduce((acc, opt) => mergeDefaults(opt, acc), defaultTrieInfo);\n}\n//#endregion\n//#region src/lib/TrieBlob/prefix.ts\nfunction matchEntirePrefix(text, prefix) {\n\twhile (!prefix.done) {\n\t\tconst byte = prefix.cur();\n\t\tconst charVal = text.cur();\n\t\tif (text.done || byte !== charVal) return false;\n\t\tprefix.next();\n\t\ttext.next();\n\t}\n\treturn true;\n}\n//#endregion\n//#region src/lib/utils/rawData.ts\nfunction toUint8Array(data) {\n\treturn data instanceof Uint8Array ? data : new Uint8Array(data.buffer, data.byteOffset, data.byteLength);\n}\n//#endregion\n//#region src/lib/TrieBlob/TrieBlobEncoder.ts\nconst headerSig = \"TrieBlob\";\nconst version = \"00.01.00\";\nconst endianSig = 67305985;\nfunction getBinaryFormat() {\n\treturn new BinaryFormatBuilder().addString(\"sig\", \"Signature \\\"TrieBlob\\\"\", headerSig).addUint32(\"endian\", \"Endianness signature\", endianSig).addString(\"version\", \"Version string\", version).addUint32ArrayPtr(\"nodes\", \"Pointer to nodes array\").addString(\"reserved0\", \"Old Pointer to TrieInfo JSON string\", 8).addString(\"trieInfo\", \"Pointer to TrieInfo JSON string\", 16).addString(\"characteristics\", \"Available characteristic values\", 8).addUint8ArrayPtr(\"stringTable\", \"Pointer to String Table data\").addString(\"reserved\", \"Reserved space\", 64).build();\n}\nfunction encodeTrieBlobToBTrie(blob) {\n\tconst builder = new BinaryDataBuilder(getBinaryFormat());\n\tbuilder.setPtrUint32Array(\"nodes\", blob.nodes);\n\tbuilder.setString(\"trieInfo\", cvtTrieInfoToFlags(blob.info));\n\tbuilder.setString(\"characteristics\", cvtTrieCharacteristicsToFlags(blob.characteristics));\n\tif (blob.stringTable.length) {\n\t\tconst stringTableData = encodeStringTableToBinary(blob.stringTable, builder.endian);\n\t\tbuilder.setPtrUint8Array(\"stringTable\", stringTableData);\n\t}\n\treturn builder.build();\n}\nfunction decodeTrieBlobToBTrie(blob) {\n\tconst reader = new BinaryDataReader(blob, getBinaryFormat());\n\tif (reader.getString(\"sig\") !== headerSig) throw new ErrorDecodeTrieBlob(\"Invalid TrieBlob Header\");\n\tif (reader.getUint32(\"endian\") !== endianSig) {\n\t\treader.reverseEndian();\n\t\tassert(reader.getUint32(\"endian\") === endianSig, \"Invalid TrieBlob Header after endian conversion\");\n\t}\n\tconst fileVersion = reader.getString(\"version\");\n\tif (fileVersion !== version) {\n\t\tconsole.warn(`Warning: TrieBlob version mismatch. Expected: ${version}, Found: ${fileVersion}`);\n\t\tassert(fileVersion.startsWith(version.slice(0, 6)), \"Unsupported TrieBlob version\");\n\t}\n\tconst nodes = reader.getPtrUint32Array(\"nodes\");\n\tconst info = parseTrieInfoFlags(reader.getString(\"trieInfo\"));\n\tconst characteristics = parseTrieCharacteristics(reader.getString(\"characteristics\"));\n\treturn {\n\t\tnodes,\n\t\tstringTable: decodeStringTableFromBinary(reader.getPtrUint8Array(\"stringTable\"), reader.endian),\n\t\tinfo,\n\t\tcharacteristics\n\t};\n}\nvar ErrorDecodeTrieBlob = class extends Error {\n\tconstructor(message) {\n\t\tsuper(message);\n\t}\n};\nfunction isBTrieData(data) {\n\tconst buf = toUint8Array(data);\n\tif (buf.length < 8) return false;\n\tfor (let i = 0; i < 8; i++) if (buf[i] !== headerSig.codePointAt(i)) return false;\n\treturn true;\n}\n//#endregion\n//#region src/lib/TrieBlob/TrieBlobNodeRef.ts\nfunction trieBlobNodeRefToITrieNodeId(ref) {\n\treturn (BigInt(ref.nodeIdx) << 32n) + BigInt(ref.pfx);\n}\nfunction iTrieNodeIdToTrieBlobNodeRefParts(id) {\n\tassert(typeof id === \"bigint\", \"iTrieNodeIdToTrieBlobNodeRefParts: id must be a bigint\");\n\treturn {\n\t\tnodeIdx: Number(id >> 32n) & 2147483647,\n\t\tpfx: Number(id & 4294967295n)\n\t};\n}\n//#endregion\n//#region src/lib/TrieBlob/TrieBlobIRoot.ts\nconst EMPTY_KEYS = Object.freeze([]);\nconst EMPTY_NODES = Object.freeze([]);\nconst EMPTY_ENTRIES = Object.freeze([]);\nvar TrieBlobINode = class TrieBlobINode {\n\tid;\n\tnode;\n\teow;\n\t_keys;\n\t_hasChildren;\n\t_size;\n\t_nodesEntries;\n\t_entries;\n\t_values;\n\tcharToIdx;\n\ttrie;\n\tconstructor(trie, node) {\n\t\tthis.trie = trie;\n\t\tthis.node = node;\n\t\tthis.eow = trie.isEow(node);\n\t\tthis.id = trieBlobNodeRefToITrieNodeId(node);\n\t}\n\t/** get keys to children */\n\tkeys() {\n\t\tif (this._keys) return this._keys;\n\t\tif (!this.hasChildren) return EMPTY_KEYS;\n\t\tthis._keys = this.getNodesEntries().map(([key]) => key);\n\t\treturn this._keys;\n\t}\n\tvalues() {\n\t\tif (!this.hasChildren) return EMPTY_NODES;\n\t\tif (this._values) return this._values;\n\t\tthis._values = this.entries().map(([, value]) => value);\n\t\treturn this._values;\n\t}\n\tvalueAt(keyIdx) {\n\t\tif (this._values) return this._values[keyIdx];\n\t\treturn this.entryAt(keyIdx)[1];\n\t}\n\tentries() {\n\t\tif (this._entries) return this._entries;\n\t\tif (!this.hasChildren) return EMPTY_ENTRIES;\n\t\tconst entries = this.getNodesEntries();\n\t\tthis._entries = entries.map(([key, value]) => [key, new TrieBlobINode(this.trie, value)]);\n\t\treturn this._entries;\n\t}\n\tentryAt(keyIdx) {\n\t\tif (this._entries) return this._entries[keyIdx];\n\t\treturn this.entries()[keyIdx];\n\t}\n\t/** get child ITrieNode */\n\tget(char) {\n\t\treturn this.#getChildNode(char);\n\t}\n\thas(char) {\n\t\treturn this.trie.nodeGetChild(this.node, char) !== void 0;\n\t}\n\thasChildren() {\n\t\treturn this._hasChildren ??= this.trie.hasChildren(this.node);\n\t}\n\tchild(keyIdx) {\n\t\treturn this.valueAt(keyIdx);\n\t}\n\t#getChildNodeRef(char) {\n\t\treturn this.trie.nodeGetChild(this.node, char);\n\t}\n\t#getChildNode(char) {\n\t\tif (this.charToIdx) {\n\t\t\tconst keyIdx = this.charToIdx[char];\n\t\t\tif (keyIdx === void 0) return void 0;\n\t\t\treturn this.child(keyIdx);\n\t\t}\n\t\tconst idx = this.#getChildNodeRef(char);\n\t\tif (idx === void 0) return void 0;\n\t\treturn new TrieBlobINode(this.trie, idx);\n\t}\n\tgetNode(word) {\n\t\tconst n = this.trie.nodeFindNode(this.node, word);\n\t\treturn n === void 0 ? void 0 : new TrieBlobINode(this.trie, n);\n\t}\n\tfindExact(word) {\n\t\treturn this.trie.nodeFindExact(this.node, word);\n\t}\n\tgetNodesEntries() {\n\t\treturn this._nodesEntries ??= this.trie.getChildEntries(this.node);\n\t}\n\tget size() {\n\t\treturn this._size ??= this.getNodesEntries().length;\n\t}\n};\nvar TrieBlobIRoot = class extends TrieBlobINode {\n\tfind;\n\tisForbidden;\n\thasForbiddenWords;\n\thasCompoundWords;\n\thasNonStrictWords;\n\tinfo;\n\tconstructor(trie, nodeIdx) {\n\t\tsuper(trie, nodeIdx);\n\t\tthis.info = trie.info;\n\t\tthis.find = trie.find;\n\t\tthis.isForbidden = trie.isForbidden;\n\t\tthis.hasForbiddenWords = trie.hasForbiddenWords;\n\t\tthis.hasCompoundWords = trie.hasCompoundWords;\n\t\tthis.hasNonStrictWords = trie.hasNonStrictWords;\n\t}\n\tresolveId(id) {\n\t\treturn new TrieBlobINode(this.trie, this.trie.fromITrieNodeId(id));\n\t}\n\tget forbidPrefix() {\n\t\treturn this.info.forbiddenWordPrefix;\n\t}\n\tget compoundFix() {\n\t\treturn this.info.compoundCharacter;\n\t}\n\tget caseInsensitivePrefix() {\n\t\treturn this.info.stripCaseAndAccentsPrefix;\n\t}\n\tget suggestionPrefix() {\n\t\treturn this.info.suggestionPrefix;\n\t}\n};\n//#endregion\n//#region src/lib/TrieBlob/TypedArrayCursor.ts\nvar TypedArrayCursor = class {\n\tarray;\n\ti;\n\tdone;\n\tlength;\n\tconstructor(array, i = 0, done) {\n\t\tthis.array = array;\n\t\tthis.i = i;\n\t\tthis.length = array.length;\n\t\tthis.done = (done ?? (i >= this.length ? true : void 0)) || void 0;\n\t}\n\tcur() {\n\t\treturn this.done ? void 0 : this.array[this.i];\n\t}\n\tnext() {\n\t\tif (this.done) return void 0;\n\t\tconst i = ++this.i;\n\t\tif (i >= this.array.length) {\n\t\t\tthis.done = true;\n\t\t\treturn;\n\t\t}\n\t\treturn this.array[i];\n\t}\n};\nfunction createUint8ArrayCursor(array, i = 0) {\n\treturn new TypedArrayCursor(array, i);\n}\n//#endregion\n//#region src/lib/TrieBlob/Utf8Cursor.ts\nvar Utf8CursorImpl = class {\n\ttext;\n\ti;\n\tcode;\n\tdone;\n\tconstructor(text, i = 0) {\n\t\tthis.text = text;\n\t\tthis.i = i < 0 ? i = text.length : i;\n\t\tthis.code = 0;\n\t\tthis.done = i < 0 || i >= text.length ? true : void 0;\n\t\tthis.cur();\n\t}\n\tcur() {\n\t\tif (this.done) return 0;\n\t\tthis.code ||= encodeTextToUtf8_32Rev(this);\n\t\treturn this.code & 255;\n\t}\n\tnext() {\n\t\tif (this.done) return 0;\n\t\tthis.code >>>= 8;\n\t\tthis.code ||= encodeTextToUtf8_32Rev(this);\n\t\tthis.done = !this.code && this.i >= this.text.length;\n\t\treturn this.code & 255;\n\t}\n};\nfunction createTextToUtf8Cursor(text, offset = 0) {\n\treturn new Utf8CursorImpl(text, offset);\n}\n//#endregion\n//#region src/lib/TrieBlob/TrieBlob.ts\nvar TrieBlob = class TrieBlob {\n\tinfo;\n\t#forbidIdx;\n\t#compoundIdx;\n\t#nonStrictIdx;\n\t#suggestIdx;\n\t#size;\n\t#iTrieRoot;\n\t/** the nodes data in 8 bits */\n\t#nodes8;\n\t#stringTable;\n\t#beAdj = endianness() === \"BE\" ? 3 : 0;\n\t#rootRef;\n\twordToCharacters = (word) => [...word];\n\thasForbiddenWords;\n\thasCompoundWords;\n\thasNonStrictWords;\n\tnodes;\n\tNodeMaskNumChildren;\n\tNodeChildRefShift;\n\thasPreferredSuggestions;\n\tconstructor(nodes, stringTable, info) {\n\t\tthis.nodes = nodes;\n\t\tthis.#stringTable = stringTable;\n\t\ttrieBlobSort(nodes);\n\t\tthis.info = mergeOptionalWithDefaults(info);\n\t\tthis.#rootRef = this.toRef(0);\n\t\tthis.#nodes8 = new Uint8Array(nodes.buffer, nodes.byteOffset + this.#beAdj);\n\t\tthis.#forbidIdx = this.#findNode(this.#rootRef, this.info.forbiddenWordPrefix);\n\t\tthis.#compoundIdx = this.#findNode(this.#rootRef, this.info.compoundCharacter);\n\t\tthis.#nonStrictIdx = this.#findNode(this.#rootRef, this.info.stripCaseAndAccentsPrefix);\n\t\tthis.#suggestIdx = this.#findNode(this.#rootRef, this.info.suggestionPrefix);\n\t\tthis.hasForbiddenWords = !!this.#forbidIdx;\n\t\tthis.hasCompoundWords = !!this.#compoundIdx;\n\t\tthis.hasNonStrictWords = !!this.#nonStrictIdx;\n\t\tthis.NodeMaskNumChildren = 255;\n\t\tthis.NodeChildRefShift = 8;\n\t\tthis.hasPreferredSuggestions = !!this.#suggestIdx;\n\t}\n\thas(word) {\n\t\treturn this.#hasWord(this.rootRef, word);\n\t}\n\tisForbiddenWord(word) {\n\t\treturn !!this.#forbidIdx && this.#hasWord(this.#forbidIdx, word);\n\t}\n\t/**\n\t* Try to find the word in the trie. The word must be normalized.\n\t* If `strict` is `true` the case and accents must match.\n\t* Compound words are supported assuming that the compound character is in the trie.\n\t*\n\t* @param word - the word to find (normalized)\n\t* @param strict - if `true` the case and accents must match.\n\t*/\n\tfind(word, strict) {\n\t\tconst found = this.#hasWord(this.rootRef, word);\n\t\tif (found || !this.hasCompoundWords) {\n\t\t\tif (found) return {\n\t\t\t\tfound: word,\n\t\t\t\tcompoundUsed: false,\n\t\t\t\tcaseMatched: true,\n\t\t\t\tforbidden: void 0\n\t\t\t};\n\t\t\tif (strict || !this.#nonStrictIdx) return {\n\t\t\t\tfound: false,\n\t\t\t\tcompoundUsed: false,\n\t\t\t\tcaseMatched: false,\n\t\t\t\tforbidden: void 0\n\t\t\t};\n\t\t\treturn {\n\t\t\t\tfound: this.#hasWord(this.#nonStrictIdx, word) && word,\n\t\t\t\tcompoundUsed: false,\n\t\t\t\tcaseMatched: false,\n\t\t\t\tforbidden: void 0\n\t\t\t};\n\t\t}\n\t}\n\tgetRoot() {\n\t\treturn this.#iTrieRoot ??= this._getRoot();\n\t}\n\t_getRoot() {\n\t\treturn new TrieBlobIRoot({\n\t\t\tinfo: this.info,\n\t\t\tnodes: this.nodes,\n\t\t\tnodeFindExact: this.#hasWord.bind(this),\n\t\t\tnodeGetChild: this.#findNode.bind(this),\n\t\t\tnodeFindNode: this.#findNode.bind(this),\n\t\t\tisEow: this.isRefEOW.bind(this),\n\t\t\tgetChildEntries: this.#getChildrenFromRef.bind(this),\n\t\t\thasChildren: this.hasChildren.bind(this),\n\t\t\tisForbidden: this.isForbiddenWord.bind(this),\n\t\t\tfindExact: this.has.bind(this),\n\t\t\tfind: this.find.bind(this),\n\t\t\tnodeToITrieNodeId: trieBlobNodeRefToITrieNodeId,\n\t\t\tfromITrieNodeId: iTrieNodeIdToTrieBlobNodeRefParts,\n\t\t\thasCompoundWords: this.hasCompoundWords,\n\t\t\thasForbiddenWords: this.hasForbiddenWords,\n\t\t\thasNonStrictWords: this.hasNonStrictWords,\n\t\t\thasPreferredSuggestions: this.hasPreferredSuggestions\n\t\t}, this.rootRef);\n\t}\n\tgetNode(prefix) {\n\t\treturn findNode$1(this.getRoot(), prefix);\n\t}\n\tget stringTable() {\n\t\treturn this.#stringTable;\n\t}\n\t/**\n\t* Check if the word is in the trie starting at the given node index.\n\t*/\n\t#hasWord(nodeRef, word) {\n\t\tconst nodeIdxFound = this.#findNode(nodeRef, word);\n\t\tif (!nodeIdxFound) return false;\n\t\treturn this.isRefEOW(nodeIdxFound);\n\t}\n\t/**\n\t* Find the node index for the given Utf8 character sequence.\n\t* @param nodeIdx - node index to start the search\n\t* @param seq - the byte sequence of the character to look for\n\t* @returns\n\t*/\n\t#findNode(nodeRef, text) {\n\t\tif (!nodeRef) return void 0;\n\t\tconst _nodes = this.nodes;\n\t\tconst _nodes8 = this.#nodes8;\n\t\tconst pfxShift = 9;\n\t\tlet { nodeIdx, pfx, prefix } = nodeRef;\n\t\tconst t = createTextToUtf8Cursor(text);\n\t\tfor (; !t.done; t.next()) {\n\t\t\tconst nodes = _nodes;\n\t\t\tconst nodes8 = _nodes8;\n\t\t\tconst node = nodes[nodeIdx];\n\t\t\tconst prefixIdx = node >>> pfxShift;\n\t\t\tprefix ||= prefixIdx ? this.#stringTable.getStringBytes(prefixIdx) : void 0;\n\t\t\tconst pfxCursor = prefix && createUint8ArrayCursor(prefix, pfx);\n\t\t\tif (pfxCursor && !matchEntirePrefix(t, pfxCursor)) return t.done ? {\n\t\t\t\tnodeIdx,\n\t\t\t\tpfx: pfxCursor.i,\n\t\t\t\tprefix\n\t\t\t} : void 0;\n\t\t\tprefix = void 0;\n\t\t\tpfx = 0;\n\t\t\tconst charVal = t.cur() & 255;\n\t\t\tconst count = node & 255;\n\t\t\tconst idx4 = nodeIdx << 2;\n\t\t\tif (count > 15) {\n\t\t\t\tconst pEnd = idx4 + (count << 2);\n\t\t\t\tlet i = idx4 + 4;\n\t\t\t\tlet j = pEnd;\n\t\t\t\twhile (j - i >= 4) {\n\t\t\t\t\tconst m = i + j >> 1 & -4;\n\t\t\t\t\tif (nodes8[m] < charVal) i = m + 4;\n\t\t\t\t\telse j = m;\n\t\t\t\t}\n\t\t\t\tif (i > pEnd || nodes8[i] !== charVal) return void 0;\n\t\t\t\tnodeIdx = nodes[i >> 2] >>> 8;\n\t\t\t} else {\n\t\t\t\tlet i = idx4 + count * 4;\n\t\t\t\tfor (; i > idx4; i -= 4) if (nodes8[i] === charVal) break;\n\t\t\t\tif (i <= idx4) return void 0;\n\t\t\t\tnodeIdx = nodes[i >> 2] >>> 8;\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\tnodeIdx,\n\t\t\tpfx,\n\t\t\tprefix\n\t\t};\n\t}\n\t/**\n\t* get an iterable for all the words in the dictionary.\n\t* @param prefix - optional prefix to filter the words returned. The words will be prefixed with this value.\n\t*/\n\t*words(prefix) {\n\t\tif (!prefix) {\n\t\t\tyield* this.#walkWords(this.rootRef);\n\t\t\treturn;\n\t\t}\n\t\tconst nodeIdx = this.#findNode(this.rootRef, prefix);\n\t\tif (!nodeIdx) return;\n\t\tfor (const suffix of this.#walkWords(nodeIdx)) yield prefix + suffix;\n\t}\n\t*#walkWords(rootRef) {\n\t\tconst NodeMaskNumChildren = 255;\n\t\tconst NodeMaskEOW = 256;\n\t\tconst NodeMaskChildCharIndex = 255;\n\t\tconst NodeChildRefShift = 8;\n\t\tconst nodeHeaderPrefixShift = 9;\n\t\tconst nodes = this.nodes;\n\t\tconst st = this.#stringTable;\n\t\tconst stack = [{\n\t\t\tnodeIdx: rootRef.nodeIdx,\n\t\t\tpfx: rootRef.pfx,\n\t\t\tpos: 0,\n\t\t\tword: \"\",\n\t\t\tacc: Utf8Accumulator.create()\n\t\t}];\n\t\tlet depth = 0;\n\t\twhile (depth >= 0) {\n\t\t\tconst s = stack[depth];\n\t\t\tif (!s.pos) applyPrefixString(s);\n\t\t\tconst { nodeIdx, pos, word, acc } = s;\n\t\t\tconst node = nodes[nodeIdx];\n\t\t\tif (!pos && node & NodeMaskEOW) yield word;\n\t\t\tif (pos >= (node & NodeMaskNumChildren)) {\n\t\t\t\t--depth;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst entry = nodes[nodeIdx + ++stack[depth].pos];\n\t\t\tconst nAcc = acc.clone();\n\t\t\tconst codePoint = nAcc.decode(entry & NodeMaskChildCharIndex);\n\t\t\tconst letter = codePoint && String.fromCodePoint(codePoint) || \"\";\n\t\t\t++depth;\n\t\t\tstack[depth] = {\n\t\t\t\tnodeIdx: entry >>> NodeChildRefShift,\n\t\t\t\tpos: 0,\n\t\t\t\tpfx: 0,\n\t\t\t\tword: word + letter,\n\t\t\t\tacc: nAcc\n\t\t\t};\n\t\t}\n\t\tfunction applyPrefixString(s) {\n\t\t\tconst prefixIdx = nodes[s.nodeIdx] >>> nodeHeaderPrefixShift;\n\t\t\tconst fullPrefix = prefixIdx ? st.getStringBytes(prefixIdx) : void 0;\n\t\t\tif (!fullPrefix || s.pfx >= fullPrefix.length) return;\n\t\t\tlet prefix = fullPrefix;\n\t\t\tif (s.pfx) prefix = prefix.subarray(s.pfx);\n\t\t\ts.word += s.acc.decodeBytesToString(prefix);\n\t\t\ts.pfx = fullPrefix.length;\n\t\t}\n\t}\n\tget size() {\n\t\tif (this.#size) return this.#size;\n\t\tconst NodeMaskNumChildren = 255;\n\t\tconst nodes = this.nodes;\n\t\tlet p = 0;\n\t\tlet count = 0;\n\t\twhile (p < nodes.length) {\n\t\t\t++count;\n\t\t\tp += (nodes[p] & NodeMaskNumChildren) + 1;\n\t\t}\n\t\tthis.#size = count;\n\t\treturn count;\n\t}\n\ttoJSON() {\n\t\treturn {\n\t\t\toptions: this.info,\n\t\t\tnodes: nodesToJson(this.nodes)\n\t\t};\n\t}\n\tencodeToBTrie() {\n\t\treturn this.encodeBin();\n\t}\n\tencodeBin() {\n\t\treturn encodeTrieBlobToBTrie({\n\t\t\tnodes: this.nodes,\n\t\t\tstringTable: this.stringTable,\n\t\t\tinfo: this.info,\n\t\t\tcharacteristics: this\n\t\t});\n\t}\n\tstatic decodeBin(blob) {\n\t\tconst info = decodeTrieBlobToBTrie(blob);\n\t\treturn new TrieBlob(info.nodes, info.stringTable, info.info);\n\t}\n\t/**\n\t* Walk the trie starting at the given reference at position 0 (or depth).\n\t* @param stack - the stack used while walking - updated\n\t* @param depth - that starting depth in the stack\n\t* @yields the depth in the stack. The stack will contain the current Reference.\n\t*/\n\t*#walk(stack, depth = 0) {\n\t\tconst MaskNumChildren = 255;\n\t\tconst NodeRefShift = 8;\n\t\tconst CharMask = 255;\n\t\tconst PrefixMask = NodeHeaderPrefixMask;\n\t\tconst PrefixShift = 9;\n\t\tconst nodes = this.nodes;\n\t\tstack[0] ||= {\n\t\t\tnodeIdx: 0,\n\t\t\tpfx: 0,\n\t\t\tpos: 0,\n\t\t\tprefix: void 0,\n\t\t\tbChar: 0\n\t\t};\n\t\twhile (depth >= 0) {\n\t\t\tlet s = stack[depth];\n\t\t\tconst { nodeIdx, pos, pfx, prefix } = s;\n\t\t\tif (!pos) {\n\t\t\t\tif (!(yield depth)) {\n\t\t\t\t\t--depth;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (prefix) {\n\t\t\t\tif (pos) {\n\t\t\t\t\t--depth;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\ts.pos = 1;\n\t\t\t\t++depth;\n\t\t\t\tstack[depth] ||= {\n\t\t\t\t\tnodeIdx: 0,\n\t\t\t\t\tpfx: 0,\n\t\t\t\t\tpos: 0,\n\t\t\t\t\tprefix: void 0,\n\t\t\t\t\tbChar: 0\n\t\t\t\t};\n\t\t\t\ts = stack[depth];\n\t\t\t\ts.nodeIdx = nodeIdx;\n\t\t\t\ts.pfx = pfx + 1;\n\t\t\t\ts.pos = 0;\n\t\t\t\ts.prefix = s.pfx < prefix.length ? prefix : void 0;\n\t\t\t\ts.bChar = prefix[pfx];\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (pos >= (nodes[nodeIdx] & MaskNumChildren)) {\n\t\t\t\t--depth;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst entry = nodes[nodeIdx + ++s.pos];\n\t\t\tconst eNodeIdx = entry >>> NodeRefShift;\n\t\t\t++depth;\n\t\t\tstack[depth] ||= {\n\t\t\t\tnodeIdx: 0,\n\t\t\t\tpfx: 0,\n\t\t\t\tpos: 0,\n\t\t\t\tprefix: void 0,\n\t\t\t\tbChar: 0\n\t\t\t};\n\t\t\ts = stack[depth];\n\t\t\ts.nodeIdx = eNodeIdx;\n\t\t\ts.pfx = 0;\n\t\t\ts.pos = 0;\n\t\t\tconst pfxV = nodes[eNodeIdx] & PrefixMask;\n\t\t\ts.prefix = pfxV ? this.#stringTable.getStringBytes(pfxV >>> PrefixShift) : void 0;\n\t\t\ts.bChar = entry & CharMask;\n\t\t}\n\t}\n\tgetChildrenFromRef(ref) {\n\t\treturn this.#getChildrenFromRef(this.#cvtToRefPfx(ref));\n\t}\n\thasChildren(ref) {\n\t\tconst node = this.nodes[ref.nodeIdx];\n\t\tconst pfxV = node & NodeHeaderPrefixMask;\n\t\tconst has = (node & 255) !== 0;\n\t\tif (!pfxV) return has;\n\t\tif (isRefPfx(ref)) return ref.prefix ? true : has;\n\t\tref = this.#cvtToRefPfx(ref);\n\t\treturn ref.prefix ? true : has;\n\t}\n\t#getChildrenFromRef(ref) {\n\t\tconst accStack = [Utf8Accumulator.create()];\n\t\tconst stack = [{\n\t\t\t...ref,\n\t\t\tpos: 0,\n\t\t\tbChar: 0\n\t\t}];\n\t\tconst results = [];\n\t\tconst iterable = this.#walk(stack);\n\t\tlet deeper = false;\n\t\tfor (let next = iterable.next(true); !next.done; next = iterable.next(deeper)) {\n\t\t\tconst depth = next.value;\n\t\t\tif (depth <= 0) {\n\t\t\t\tif (!depth) {\n\t\t\t\t\tdeeper = true;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tconst s = stack[depth];\n\t\t\taccStack[depth] = accStack[depth - 1].clone(accStack[depth]);\n\t\t\tconst char = accStack[depth].decode(s.bChar);\n\t\t\tif (char) {\n\t\t\t\tdeeper = false;\n\t\t\t\tresults.push([String.fromCodePoint(char), {\n\t\t\t\t\tnodeIdx: s.nodeIdx,\n\t\t\t\t\tpfx: s.pfx,\n\t\t\t\t\tprefix: s.prefix\n\t\t\t\t}]);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tdeeper = true;\n\t\t}\n\t\treturn results;\n\t}\n\t/**\n\t* Checks if a location is at an end-of-word node.\n\t* @param ref\n\t* @returns\n\t*/\n\tisRefEOW(ref) {\n\t\tif (ref.prefix && ref.pfx < ref.prefix.length) return false;\n\t\treturn !!(this.nodes[ref.nodeIdx] & 256);\n\t}\n\t#getNodePrefix(nodeIdx, pfx) {\n\t\tconst pfxV = this.nodes[nodeIdx] & NodeHeaderPrefixMask;\n\t\tconst prefix = pfxV ? this.#stringTable.getStringBytes(pfxV >>> 9) : void 0;\n\t\tif (!prefix) return void 0;\n\t\tif (pfx >= prefix.length) return void 0;\n\t\treturn prefix;\n\t}\n\t#cvtToRefPfx(ref) {\n\t\tif (isRefPfx(ref)) return ref;\n\t\tconst refPfx = ref;\n\t\trefPfx.prefix = this.#getNodePrefix(ref.nodeIdx, ref.pfx);\n\t\treturn refPfx;\n\t}\n\ttoRef(nodeIdx, pfx = 0) {\n\t\treturn this.#cvtToRefPfx({\n\t\t\tnodeIdx,\n\t\t\tpfx\n\t\t});\n\t}\n\tget rootRef() {\n\t\treturn this.#rootRef;\n\t}\n\tgetNodeDebugInfo(ref) {\n\t\tconst node = this.nodes[ref.nodeIdx];\n\t\tconst isEOW = !!(node & 256);\n\t\tconst count = node & 255;\n\t\tconst children = /* @__PURE__ */ new Map();\n\t\tfor (let i = 1; i <= count; ++i) {\n\t\t\tconst entry = this.nodes[ref.nodeIdx + i];\n\t\t\tconst c = entry & 255;\n\t\t\tconst idx = entry >>> 8;\n\t\t\tchildren.set(charToHex(c), numberToHex(idx) + \" \" + idx);\n\t\t}\n\t\treturn {\n\t\t\t...ref,\n\t\t\tprefix: ref.prefix ? [...ref.prefix].map(charToHex).join(\", \") : \"\",\n\t\t\tisEOW,\n\t\t\tcount,\n\t\t\tchildren\n\t\t};\n\t}\n\tstatic copyNodes(trie) {\n\t\treturn new Uint32Array(trie.nodes);\n\t}\n};\nfunction nodesToJson(nodes) {\n\tfunction nodeElement(offset) {\n\t\tconst node = nodes[offset];\n\t\tconst numChildren = node & 255;\n\t\tconst eow = !!(node & 256);\n\t\tconst children = [];\n\t\tfor (let i = 1; i <= numChildren; ++i) children.push({\n\t\t\tc: (\"00\" + (nodes[offset + i] & 255).toString(16)).slice(-2),\n\t\t\to: nodes[offset + i] >>> 8\n\t\t});\n\t\treturn {\n\t\t\tid: offset,\n\t\t\teow,\n\t\t\tn: offset + numChildren + 1,\n\t\t\tc: children\n\t\t};\n\t}\n\tconst elements = [];\n\tlet offset = 0;\n\twhile (offset < nodes.length) {\n\t\tconst e = nodeElement(offset);\n\t\telements.push(e);\n\t\toffset = e.n;\n\t}\n\treturn elements;\n}\n/**\n* Sorts the child nodes in the trie to ensure binary lookup works.\n* @param data\n*/\nfunction trieBlobSort(data) {\n\tconst MaskNumChildren = 255;\n\tconst MaskChildCharIndex = 255;\n\tconst limit = data.length;\n\tlet idx = 0;\n\tlet node = data[0];\n\tlet nc = node & MaskNumChildren;\n\tfor (; idx < limit; idx += nc + 1, node = data[idx], nc = node & MaskNumChildren) {\n\t\tif (!nc) continue;\n\t\tconst start = idx + 1;\n\t\tconst end = start + nc;\n\t\tlet last = 0;\n\t\tlet i = start;\n\t\tfor (; i < end; ++i) {\n\t\t\tconst cIdx = data[i] & MaskChildCharIndex;\n\t\t\tif (last >= cIdx) break;\n\t\t\tlast = cIdx;\n\t\t}\n\t\tif (i === end) continue;\n\t\tdata.slice(start, end).sort((a, b) => (a & MaskChildCharIndex) - (b & MaskChildCharIndex)).forEach((v, i) => data[start + i] = v);\n\t}\n}\nfunction numberToHex(n) {\n\tconst digits = n.toString(16).padStart(8, \"0\");\n\treturn \"0x\" + digits.slice(0, 4) + \"_\" + digits.slice(4);\n}\nfunction charToHex(c) {\n\treturn c.toString(16).padStart(2, \"0\") + \" \" + (c >= 32 && c <= 126 ? String.fromCodePoint(c) : \".\");\n}\nfunction isRefPfx(ref) {\n\treturn \"prefix\" in ref;\n}\n//#endregion\n//#region src/lib/TrieBlob/TrieBuilderUtils.ts\n/**\n* Sorts the nodes in place if possible.\n* @param nodes\n* @param mask\n* @returns\n*/\nfunction sortNodes(nodes, mask) {\n\tconst endPerf = measurePerf(\"TrieBlobBuilder.sortNodes\");\n\tfor (let i = 0; i < nodes.length; ++i) {\n\t\tconst node = nodes[i];\n\t\tif (node.length <= 2 || isSorted(node, mask, 1)) continue;\n\t\tsortSubArray(node, mask, 1);\n\t}\n\tendPerf();\n\treturn nodes;\n}\nfunction sortSubArray(node, mask, startAt) {\n\tconst compare = (a, b) => !a ? -1 : !b ? 1 : (a & mask) - (b & mask);\n\tif (node.subarray === void 0) {\n\t\tconst header = node[0];\n\t\tnode[0] = Number.MIN_SAFE_INTEGER;\n\t\tnode.sort(compare);\n\t\tnode[0] = header;\n\t\treturn;\n\t}\n\tnode.subarray(startAt).sort(compare);\n}\nfunction isSorted(node, mask, start, end) {\n\tif (node.length > 2) {\n\t\tconst limit = end ?? node.length;\n\t\tlet last = -1;\n\t\tfor (let j = start; j < limit; ++j) {\n\t\t\tconst n = node[j] & mask;\n\t\t\tif (n < last) return false;\n\t\t\tlast = n;\n\t\t}\n\t}\n\treturn true;\n}\nfunction toTrieBlob(nodes, stringTable, info) {\n\tconst endPerf = measurePerf(\"TrieBlob.toTrieBlob\");\n\tconst nodeMaskChildCharIndex = 255;\n\tconst nodeChildRefShift = 8;\n\tfunction calcNodeToIndex(nodes) {\n\t\tlet offset = 0;\n\t\tconst idx = Array(nodes.length + 1);\n\t\tfor (let i = 0; i < nodes.length; ++i) {\n\t\t\tidx[i] = offset;\n\t\t\toffset += nodes[i].length;\n\t\t}\n\t\tidx[nodes.length] = offset;\n\t\treturn idx;\n\t}\n\tconst nodeToIndex = calcNodeToIndex(nodes);\n\tconst nodeElementCount = nodeToIndex[nodeToIndex.length - 1];\n\tconst binNodes = new Uint32Array(nodeElementCount);\n\tconst lenShift = 0;\n\tconst refShift = 8;\n\tconst NodeHeaderMask = -256;\n\tlet offset = 0;\n\tfor (let i = 0; i < nodes.length; ++i) {\n\t\tconst node = nodes[i];\n\t\tbinNodes[offset++] = node.length - 1 << lenShift | node[0] & NodeHeaderMask;\n\t\tfor (let j = 1; j < node.length; ++j) {\n\t\t\tconst v = node[j];\n\t\t\tconst nodeRef = v >>> nodeChildRefShift;\n\t\t\tconst charIndex = v & nodeMaskChildCharIndex;\n\t\t\tbinNodes[offset++] = nodeToIndex[nodeRef] << refShift | charIndex;\n\t\t}\n\t}\n\tconst t = new TrieBlob(binNodes, stringTable, info);\n\tendPerf();\n\treturn t;\n}\n//#endregion\n//#region src/lib/TrieBlob/TrieBlobBuilder.ts\nconst AUTO_OPTIMIZE_NODE_COUNT = 0;\nvar TrieBlobBuilder = class TrieBlobBuilder {\n\tcharIndex = new CharIndexBuilder();\n\tnodes;\n\t_readonly = false;\n\tIdxEOW;\n\t_cursor;\n\t_cursorId = 0;\n\twordToCharacters = (word) => [...word];\n\t#infoBuilder;\n\tconstructor(options, characteristics) {\n\t\tthis.nodes = [[0], Object.freeze([256])];\n\t\tthis.IdxEOW = 1;\n\t\tthis.#infoBuilder = new TrieInfoBuilder(options, characteristics);\n\t}\n\tsetOptions(options) {\n\t\tthis.#infoBuilder.setInfo(options);\n\t\treturn this.#infoBuilder.getActiveInfo();\n\t}\n\tget options() {\n\t\treturn this.#infoBuilder.getActiveInfo();\n\t}\n\twordToUtf8Seq(word) {\n\t\treturn this.charIndex.wordToUtf8Seq(word);\n\t}\n\tletterToUtf8Seq(letter) {\n\t\treturn this.charIndex.charToUtf8Seq(letter);\n\t}\n\tinsert(word) {\n\t\tthis.#assertNotReadonly();\n\t\tif (typeof word === \"string\") return this.#insertWord(word);\n\t\treturn this.insertWords(word);\n\t}\n\tgetCursor() {\n\t\tthis.#assertNotReadonly();\n\t\tthis._cursor ??= this.createCursor(++this._cursorId);\n\t\treturn this._cursor;\n\t}\n\tcreateCursor(id) {\n\t\tconst endPerf = measurePerf(\"TrieBlobBuilder.cursor\");\n\t\tconst nodeChildRefShift = 8;\n\t\tconst NodeMaskEOW = 256;\n\t\tconst LetterMask = 255;\n\t\tconst refNodes = [0, 1];\n\t\tconst lookupCharCode = createCharUtf8_32RevLookup();\n\t\tlet disposed = false;\n\t\tconst dispose = () => {\n\t\t\tif (disposed) return;\n\t\t\tendPerf();\n\t\t\tdisposed = true;\n\t\t\tif (this._cursorId === id) this._cursor = void 0;\n\t\t};\n\t\tfunction childPos(node, letterIdx) {\n\t\t\tfor (let i = 1; i < node.length; ++i) if ((node[i] & LetterMask) === letterIdx) return i;\n\t\t\treturn 0;\n\t\t}\n\t\tassert(this.nodes.length === 2);\n\t\tconst eowNodeIndex = 1;\n\t\tconst eowShifted = 256;\n\t\tconst nodes = this.nodes;\n\t\tconst stack = [{\n\t\t\tnodeIdx: 0,\n\t\t\tpos: 0,\n\t\t\tpDepth: -1\n\t\t}];\n\t\tlet nodeIdx = 0;\n\t\tlet depth = 0;\n\t\t/**\n\t\t* Asserts that the cursor has not been disposed and is still valid.\n\t\t* There can be only one valid cursor per builder at a time.\n\t\t*/\n\t\tconst assertNotDisposed = () => {\n\t\t\tassert(!disposed, \"Cursor has been disposed\");\n\t\t\tassert(id === this._cursorId, \"Cursor is no longer valid\");\n\t\t};\n\t\t/**\n\t\t* A single character can result in multiple nodes being created\n\t\t* because it takes multiple bytes to represent a character.\n\t\t* @param char - character to insert.\n\t\t*/\n\t\tfunction insertChar(char) {\n\t\t\tassertNotDisposed();\n\t\t\tif (!nodes[nodeIdx]) refNodes.push(nodeIdx);\n\t\t\tconst pDepth = depth;\n\t\t\tfor (let encoded = lookupCharCode(char); encoded; encoded >>>= 8) insertCharByteCode(encoded & 255, pDepth);\n\t\t}\n\t\t/**\n\t\t* A single character can result in multiple nodes being created\n\t\t* because it takes multiple bytes to represent a character.\n\t\t* @param byte - partial character index.\n\t\t*/\n\t\tfunction insertCharByteCode(byte, pDepth) {\n\t\t\tif (nodes[nodeIdx] && Object.isFrozen(nodes[nodeIdx])) {\n\t\t\t\tnodeIdx = nodes.push([...nodes[nodeIdx]]) - 1;\n\t\t\t\tconst { pos, nodeIdx: pNodeIdx } = stack[depth];\n\t\t\t\tconst pNode = nodes[pNodeIdx];\n\t\t\t\tpNode[pos] = pNode[pos] & LetterMask | nodeIdx << nodeChildRefShift;\n\t\t\t}\n\t\t\tconst node = nodes[nodeIdx] || [0];\n\t\t\tnodes[nodeIdx] = node;\n\t\t\tconst hasIdx = childPos(node, byte);\n\t\t\tconst childIdx = hasIdx ? node[hasIdx] >>> nodeChildRefShift : nodes.length;\n\t\t\tconst pos = hasIdx || node.push(childIdx << nodeChildRefShift | byte) - 1;\n\t\t\t++depth;\n\t\t\tconst s = stack[depth];\n\t\t\tif (s) {\n\t\t\t\ts.nodeIdx = nodeIdx;\n\t\t\t\ts.pos = pos;\n\t\t\t\ts.pDepth = pDepth;\n\t\t\t} else stack[depth] = {\n\t\t\t\tnodeIdx,\n\t\t\t\tpos,\n\t\t\t\tpDepth\n\t\t\t};\n\t\t\tnodeIdx = childIdx;\n\t\t}\n\t\tfunction markEOW() {\n\t\t\tassertNotDisposed();\n\t\t\tif (nodeIdx === eowNodeIndex) return;\n\t\t\tconst node = nodes[nodeIdx];\n\t\t\tif (!node) {\n\t\t\t\tconst { pos, nodeIdx: pNodeIdx } = stack[depth];\n\t\t\t\tconst pNode = nodes[pNodeIdx];\n\t\t\t\tpNode[pos] = pNode[pos] & LetterMask | eowShifted;\n\t\t\t} else {\n\t\t\t\tnodes[nodeIdx] = node;\n\t\t\t\tnode[0] |= NodeMaskEOW;\n\t\t\t}\n\t\t\tnodeIdx = eowNodeIndex;\n\t\t}\n\t\tfunction reference(refId) {\n\t\t\tassertNotDisposed();\n\t\t\tconst refNodeIdx = refNodes[refId];\n\t\t\tassert(refNodeIdx !== void 0);\n\t\t\tassert(nodes[nodeIdx] === void 0);\n\t\t\tassert(nodes[refNodeIdx]);\n\t\t\tObject.freeze(nodes[refNodeIdx]);\n\t\t\tconst s = stack[depth];\n\t\t\tnodeIdx = s.nodeIdx;\n\t\t\tconst pos = s.pos;\n\t\t\tconst node = nodes[nodeIdx];\n\t\t\tnode[pos] = refNodeIdx << nodeChildRefShift | node[pos] & LetterMask;\n\t\t}\n\t\tfunction backStep(num) {\n\t\t\tassertNotDisposed();\n\t\t\tif (!num) return;\n\t\t\tassert(num <= depth && num > 0);\n\t\t\tfor (let n = num; n > 0; --n) depth = stack[depth].pDepth;\n\t\t\tnodeIdx = stack[depth + 1].nodeIdx;\n\t\t}\n\t\treturn {\n\t\t\tinsertChar,\n\t\t\tmarkEOW,\n\t\t\treference,\n\t\t\tbackStep,\n\t\t\tdispose,\n\t\t\t[Symbol.dispose]: dispose\n\t\t};\n\t}\n\t/**\n\t* Insert multiple words. Performance is (~10%) better if the words are sorted.\n\t* @param words - words to insert\n\t* @returns this\n\t*/\n\tinsertWords(words) {\n\t\tfor (const word of words) this.#insertWord(word);\n\t\treturn this;\n\t}\n\t#insertWord(word) {\n\t\tword = word.trim();\n\t\tif (!word) return this;\n\t\tthis.#infoBuilder.addWord(word);\n\t\tconst NodeMaskChildCharIndex = 255;\n\t\tconst nodeChildRefShift = 8;\n\t\tconst NodeMaskEOW = 256;\n\t\tconst IdxEOW = this.IdxEOW;\n\t\tconst nodes = this.nodes;\n\t\tlet nodeIdx = 0;\n\t\tconst wLen = word.length;\n\t\tconst bytes = [];\n\t\tfor (const t = {\n\t\t\ttext: word,\n\t\t\ti: 0\n\t\t}; t.i < wLen;) {\n\t\t\tconst isLastChar = t.i >= wLen - 1;\n\t\t\tfor (let utf8Code = encodeTextToUtf8_32Rev(t); utf8Code; utf8Code >>>= 8) {\n\t\t\t\tconst seq = utf8Code & 255;\n\t\t\t\tbytes.push(seq);\n\t\t\t\tconst node = nodes[nodeIdx];\n\t\t\t\tlet i = node.length - 1;\n\t\t\t\tfor (; i > 0; --i) if ((node[i] & NodeMaskChildCharIndex) === seq) break;\n\t\t\t\tconst isEow = isLastChar && utf8Code <= 255;\n\t\t\t\tif (i > 0) {\n\t\t\t\t\tnodeIdx = node[i] >>> nodeChildRefShift;\n\t\t\t\t\tif (nodeIdx === 1 && !isEow) {\n\t\t\t\t\t\tnodeIdx = this.nodes.push([NodeMaskEOW]) - 1;\n\t\t\t\t\t\tnode[i] = nodeIdx << nodeChildRefShift | seq;\n\t\t\t\t\t}\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tnodeIdx = isEow ? IdxEOW : this.nodes.push([0]) - 1;\n\t\t\t\tnode.push(nodeIdx << nodeChildRefShift | seq);\n\t\t\t}\n\t\t}\n\t\tif (nodeIdx > 1) {\n\t\t\tconst node = nodes[nodeIdx];\n\t\t\tnode[0] |= NodeMaskEOW;\n\t\t}\n\t\treturn this;\n\t}\n\thas(word) {\n\t\tconst NodeMaskChildCharIndex = 255;\n\t\tconst nodeChildRefShift = 8;\n\t\tconst NodeMaskEOW = 256;\n\t\tconst nodes = this.nodes;\n\t\tconst charIndexes = this.wordToUtf8Seq(word);\n\t\tconst len = charIndexes.length;\n\t\tlet nodeIdx = 0;\n\t\tlet node = nodes[nodeIdx];\n\t\tfor (let p = 0; p < len; ++p, node = nodes[nodeIdx]) {\n\t\t\tconst letterIdx = charIndexes[p];\n\t\t\tlet i = node.length - 1;\n\t\t\tfor (; i > 0; --i) if ((node[i] & NodeMaskChildCharIndex) === letterIdx) break;\n\t\t\tif (i < 1) return false;\n\t\t\tnodeIdx = node[i] >>> nodeChildRefShift;\n\t\t}\n\t\treturn !!(node[0] & NodeMaskEOW);\n\t}\n\tisReadonly() {\n\t\treturn this._readonly;\n\t}\n\tfreeze() {\n\t\tthis._readonly = true;\n\t\treturn this;\n\t}\n\tcopyNodes() {\n\t\treturn this.nodes.map((n) => [...n]);\n\t}\n\tbuild(buildOptions) {\n\t\tthis._cursor?.dispose?.();\n\t\tthis._readonly = true;\n\t\tthis.freeze();\n\t\tconst endPerf = measurePerf(\"TrieBlobBuilder.build\");\n\t\tconst { optimize, useStringTable } = buildOptions || {};\n\t\tconst info = this.#infoBuilder.build();\n\t\tconst bNodes = this.nodes;\n\t\tlet sortedNodes = sortNodes(bNodes, 255);\n\t\tif (optimize ?? sortNodes.length < AUTO_OPTIMIZE_NODE_COUNT) sortedNodes = optimizeNodes(sortedNodes);\n\t\tconst stringTable = new StringTableBuilder().build();\n\t\tconst r = useStringTable ? optimizeNodesWithStringTable({\n\t\t\tnodes: sortedNodes,\n\t\t\tstringTable\n\t\t}) : {\n\t\t\tnodes: sortedNodes,\n\t\t\tstringTable\n\t\t};\n\t\tconst data = toTrieBlob(r.nodes, r.stringTable, normalizeTrieInfo(info.info));\n\t\tendPerf();\n\t\treturn data;\n\t}\n\ttoJSON() {\n\t\treturn {\n\t\t\toptions: this.options,\n\t\t\tnodes: this.nodes\n\t\t};\n\t}\n\t#assertNotReadonly() {\n\t\tassert(!this.isReadonly(), \"FastTrieBlobBuilder is readonly\");\n\t}\n\tstatic fromWordList(words, options, buildOptions) {\n\t\treturn new TrieBlobBuilder(options).insert(words).build(buildOptions);\n\t}\n\t/**\n\t* Create a TrieBlob from a TrieRoot.\n\t*\n\t* This is equivalent to, but slightly faster because it avoids creating an ITrieNodes\n\t* ```ts\n\t* static fromTrieRoot(root: TrieRoot, optimize?: boolean): TrieBlob {\n\t* return this.fromITrieRoot(trieRootToITrieRoot(root), optimize);\n\t* }\n\t* ```\n\t*\n\t* @param root - TrieRoot\n\t* @param buildOptions - optional build options\n\t* @returns TrieBlob\n\t*/\n\tstatic fromTrieRoot(root, buildOptions) {\n\t\tconst endPerf = measurePerf(\"TrieBlobBuilder.fromTrieRoot\");\n\t\tconst NodeCharIndexMask = 255;\n\t\tconst nodeChildRefShift = 8;\n\t\tconst NodeMaskEOW = 256;\n\t\tconst tf = new TrieBlobBuilder(void 0, root);\n\t\tconst IdxEOW = tf.IdxEOW;\n\t\tconst known = /* @__PURE__ */ new Map([[root, 0]]);\n\t\tfunction resolveNode(n) {\n\t\t\tif (n.f && !n.c) return IdxEOW;\n\t\t\tconst node = [n.f ? NodeMaskEOW : 0];\n\t\t\treturn tf.nodes.push(node) - 1;\n\t\t}\n\t\tfunction walk(n) {\n\t\t\tconst found = known.get(n);\n\t\t\tif (found) return found;\n\t\t\tconst nodeIdx = resolveMap(known, n, resolveNode);\n\t\t\tconst node = tf.nodes[nodeIdx];\n\t\t\tif (!n.c) return nodeIdx;\n\t\t\tconst children = Object.entries(n.c);\n\t\t\tfor (let p = 0; p < children.length; ++p) {\n\t\t\t\tconst [char, childNode] = children[p];\n\t\t\t\taddCharToNode(node, char, childNode);\n\t\t\t}\n\t\t\treturn nodeIdx;\n\t\t}\n\t\tfunction resolveChild(node, charIndex) {\n\t\t\tlet i = 1;\n\t\t\tfor (; i < node.length && (node[i] & NodeCharIndexMask) !== charIndex; ++i);\n\t\t\treturn i;\n\t\t}\n\t\tfunction addCharToNode(node, char, n) {\n\t\t\tconst indexSeq = tf.letterToUtf8Seq(char);\n\t\t\tassertValidUtf16Character(char);\n\t\t\tfor (const idx of indexSeq.slice(0, -1)) {\n\t\t\t\tconst pos = resolveChild(node, idx);\n\t\t\t\tif (pos < node.length) node = tf.nodes[node[pos] >>> nodeChildRefShift];\n\t\t\t\telse {\n\t\t\t\t\tconst next = [0];\n\t\t\t\t\tconst nodeIdx = tf.nodes.push(next) - 1;\n\t\t\t\t\tnode[pos] = nodeIdx << nodeChildRefShift | idx;\n\t\t\t\t\tnode = next;\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst letterIdx = indexSeq[indexSeq.length - 1];\n\t\t\tconst i = node.push(letterIdx) - 1;\n\t\t\tnode[i] = walk(n) << nodeChildRefShift | letterIdx;\n\t\t}\n\t\twalk(root);\n\t\tconst result = tf.build(buildOptions);\n\t\tendPerf();\n\t\treturn result;\n\t}\n\t/**\n\t* Create a TrieBlob from a TrieRoot.\n\t*\n\t* @param root - root node\n\t* @param buildOptions - optional build options\n\t* @returns TrieBlob\n\t*/\n\tstatic fromITrieRoot(root, buildOptions) {\n\t\tconst endPerf = measurePerf(\"TrieBlobBuilder.fromITrieRoot\");\n\t\tconst NodeCharIndexMask = 255;\n\t\tconst nodeChildRefShift = 8;\n\t\tconst NodeMaskEOW = 256;\n\t\tconst tf = new TrieBlobBuilder(void 0, root);\n\t\tconst IdxEOW = tf.IdxEOW;\n\t\tconst known = /* @__PURE__ */ new Map([[root.id, 0]]);\n\t\tfunction resolveNode(n) {\n\t\t\tif (n.eow && !n.hasChildren()) return IdxEOW;\n\t\t\tconst node = [n.eow ? NodeMaskEOW : 0];\n\t\t\treturn tf.nodes.push(node) - 1;\n\t\t}\n\t\tfunction walk(n) {\n\t\t\tconst found = known.get(n.id);\n\t\t\tif (found) return found;\n\t\t\tconst nodeIdx = resolveMap(known, n.id, () => resolveNode(n));\n\t\t\tconst node = tf.nodes[nodeIdx];\n\t\t\tif (!n.hasChildren()) return nodeIdx;\n\t\t\tconst children = n.entries();\n\t\t\tfor (const [char, childNode] of children) addCharToNode(node, char, childNode);\n\t\t\treturn nodeIdx;\n\t\t}\n\t\tfunction resolveChild(node, charIndex) {\n\t\t\tlet i = 1;\n\t\t\tfor (; i < node.length && (node[i] & NodeCharIndexMask) !== charIndex; ++i);\n\t\t\treturn i;\n\t\t}\n\t\tfunction addCharToNode(node, char, n) {\n\t\t\tconst indexSeq = tf.letterToUtf8Seq(char);\n\t\t\tassertValidUtf16Character(char);\n\t\t\tfor (const idx of indexSeq.slice(0, -1)) {\n\t\t\t\tconst pos = resolveChild(node, idx);\n\t\t\t\tif (pos < node.length) node = tf.nodes[node[pos] >>> nodeChildRefShift];\n\t\t\t\telse {\n\t\t\t\t\tconst next = [0];\n\t\t\t\t\tconst nodeIdx = tf.nodes.push(next) - 1;\n\t\t\t\t\tnode[pos] = nodeIdx << nodeChildRefShift | idx;\n\t\t\t\t\tnode = next;\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst letterIdx = indexSeq[indexSeq.length - 1];\n\t\t\tconst i = node.push(letterIdx) - 1;\n\t\t\tnode[i] = walk(n) << nodeChildRefShift | letterIdx;\n\t\t}\n\t\twalk(root);\n\t\tconst result = tf.build(buildOptions);\n\t\tendPerf();\n\t\treturn result;\n\t}\n};\nfunction createCharUtf8_32RevLookup(maxSize = 256) {\n\tlet size = 0;\n\tlet map = Object.create(null);\n\treturn (char) => {\n\t\tlet code = map[char];\n\t\tif (!code) {\n\t\t\tsize++;\n\t\t\tif (size >= maxSize) {\n\t\t\t\tsize = 1;\n\t\t\t\tmap = Object.create(null);\n\t\t\t}\n\t\t\tcode = encodeToUtf8_32Rev(char.codePointAt(0) || 0);\n\t\t\tmap[char] = code;\n\t\t}\n\t\treturn code;\n\t};\n}\n//#endregion\n//#region src/lib/utils/clean.ts\nfunction clean(t) {\n\tconst copy = { ...t };\n\tfor (const key of Object.keys(copy)) if (copy[key] === void 0) delete copy[key];\n\treturn copy;\n}\n//#endregion\n//#region src/lib/ITrie.ts\nconst defaultLegacyMinCompoundLength$1 = 3;\nconst cvtFindWordOptions = memorizeLastCall(_cvtFindWordOptions);\nfunction _cvtFindWordOptions(options) {\n\treturn createFindOptions$1({\n\t\tmatchCase: options?.caseSensitive,\n\t\tcheckForbidden: options?.checkForbidden,\n\t\tcompoundSeparator: options?.compoundSeparator\n\t});\n}\nvar ITrieImpl = class ITrieImpl {\n\t_info;\n\troot;\n\tcount;\n\tweightMap;\n\t#optionsCompound = this.createFindOptions({ compoundMode: \"compound\" });\n\t#findOptionsT = {\n\t\tcaseSensitive: true,\n\t\tcheckForbidden: true\n\t};\n\t#findOptionsF = {\n\t\tcaseSensitive: false,\n\t\tcheckForbidden: true\n\t};\n\thasForbiddenWords;\n\thasCompoundWords;\n\thasNonStrictWords;\n\tdata;\n\tconstructor(data) {\n\t\tthis.data = data;\n\t\tthis.root = data.getRoot();\n\t\tthis._info = mergeOptionalWithDefaults(data.info);\n\t\tthis.hasForbiddenWords = data.hasForbiddenWords;\n\t\tthis.hasCompoundWords = data.hasCompoundWords;\n\t\tthis.hasNonStrictWords = data.hasNonStrictWords;\n\t}\n\t/**\n\t* Number of words in the Trie, the first call to this method might be expensive.\n\t* Use `size` to get the number of nodes.\n\t*/\n\tnumWords() {\n\t\tthis.count ??= countWords$1(this.root);\n\t\treturn this.count;\n\t}\n\tisNumWordsKnown() {\n\t\treturn this.count !== void 0;\n\t}\n\tget size() {\n\t\treturn this.data.size;\n\t}\n\tget info() {\n\t\treturn this._info;\n\t}\n\t/**\n\t* @param text - text to find in the Trie\n\t*/\n\tfind(text) {\n\t\treturn findWordNode$1(this.data.getRoot(), text, this.#optionsCompound).node;\n\t}\n\t/**\n\t* A case sensitive search for the word.\n\t* @param word - the word to search for.\n\t* @param minLegacyCompoundLength - minimum length of legacy compounds to consider.\n\t* @returns true if the word is found and not forbidden.\n\t*/\n\thas(word, minLegacyCompoundLength) {\n\t\tif (minLegacyCompoundLength !== void 0) return this.#hasLegacy(word, minLegacyCompoundLength);\n\t\treturn this.hasWord(word, true);\n\t}\n\t#hasLegacy(word, minLegacyCompoundLength) {\n\t\tif (this.hasWord(word, false)) return true;\n\t\tif (minLegacyCompoundLength) {\n\t\t\tconst f = this.findWord(word, {\n\t\t\t\tuseLegacyWordCompounds: minLegacyCompoundLength,\n\t\t\t\tcaseSensitive: false,\n\t\t\t\tcheckForbidden: true\n\t\t\t});\n\t\t\treturn !!f.found && !f.forbidden;\n\t\t}\n\t\treturn false;\n\t}\n\t/**\n\t* Determine if a word is in the dictionary.\n\t* @param word - the exact word to search for - must be normalized.\n\t* @param caseSensitive - false means also searching a dictionary where the words were normalized to lower case and accents removed.\n\t* @returns true if the word was found and is not forbidden.\n\t*/\n\thasWord(word, caseSensitive) {\n\t\tconst options = caseSensitive ? this.#findOptionsT : this.#findOptionsF;\n\t\tconst r = this.findWord(word, options);\n\t\treturn !r.forbidden && !!r.found;\n\t}\n\tfindWord(word, options) {\n\t\tif (options?.useLegacyWordCompounds) {\n\t\t\tconst len = options.useLegacyWordCompounds !== true ? options.useLegacyWordCompounds : defaultLegacyMinCompoundLength$1;\n\t\t\tconst findOptions = this.createFindOptions({\n\t\t\t\tlegacyMinCompoundLength: len,\n\t\t\t\tmatchCase: options.caseSensitive || false,\n\t\t\t\tcompoundSeparator: void 0\n\t\t\t});\n\t\t\treturn findLegacyCompound$1(this.root, word, findOptions);\n\t\t}\n\t\treturn findWord$1(this.root, word, cvtFindWordOptions(options));\n\t}\n\t/**\n\t* Determine if a word is in the forbidden word list.\n\t* @param word the word to lookup.\n\t*/\n\tisForbiddenWord(word) {\n\t\treturn this.hasForbiddenWords && isForbiddenWord$1(this.root, word, this.info.forbiddenWordPrefix);\n\t}\n\t/**\n\t* Provides an ordered sequence of words with the prefix of text.\n\t*/\n\tcompleteWord(text) {\n\t\tconst n = this.find(text);\n\t\tconst compoundChar = this.info.compoundCharacter;\n\t\tconst subNodes = pipeSync(n ? iteratorTrieWords$1(n) : [], opFilterSync((w) => w[w.length - 1] !== compoundChar), opMapSync((suffix) => text + suffix));\n\t\treturn pipeSync(n && n.eow ? [text] : [], opAppendSync(subNodes));\n\t}\n\t/**\n\t* Checks to see if there are preferred suggestions for the given text.\n\t* @param text\n\t*/\n\twordHasPreferredSuggestions(text) {\n\t\treturn this.has(this.info.suggestionPrefix + text);\n\t}\n\t/**\n\t* Get preferred suggestions for the given text.\n\t* @param text - the exact word to search for.\n\t*/\n\tgetPreferredSuggestions(text) {\n\t\tconst prefix = text + this.info.suggestionPrefix;\n\t\treturn pipeSync(this.getAllPreferredSuggestions(prefix), opMapSync((s) => s.slice(prefix.length)));\n\t}\n\t/**\n\t* Get a list of all preferred suggestions in the trie.\n\t* They are returned in order and in the following format:\n\t* ```\n\t* <word1>:<suggestion1>\n\t* <word1>:<suggestion2>\n\t* <word2>:<suggestion1>\n\t* ```\n\t*\n\t* If `startingWith` is provided, only words that start with the prefix are returned.\n\t*\n\t* @param startingWith - optional prefix to filter the words returned.\n\t*/\n\tgetAllPreferredSuggestions(startingWith = \"\") {\n\t\tconst regexpSugIndex = /:[0-9a-f]{1,2}:/;\n\t\tconst sugPrefix = this.info.suggestionPrefix;\n\t\treturn pipeSync(this.data.words(sugPrefix + startingWith), opMapSync((result) => result.slice(1).replace(regexpSugIndex, \":\")), opFilterSync((w) => w.includes(\":\")));\n\t}\n\t/**\n\t* Checks to see if the trie contains preferred suggestions for any words.\n\t*/\n\tget hasPreferredSuggestions() {\n\t\treturn this.data.hasPreferredSuggestions;\n\t}\n\t/**\n\t* Suggest spellings for `text`. The results are sorted by edit distance with changes near the beginning of a word having a greater impact.\n\t* @param text - the text to search for\n\t* @param maxNumSuggestions - the maximum number of suggestions to return.\n\t* @param compoundMethod - Use to control splitting words.\n\t* @param numChanges - the maximum number of changes allowed to text. This is an approximate value, since some changes cost less than others.\n\t* the lower the value, the faster results are returned. Values less than 4 are best.\n\t*/\n\tsuggest(text, options) {\n\t\treturn this.suggestWithCost(text, options).map((a) => a.word);\n\t}\n\t/**\n\t* Suggest spellings for `text`. The results are sorted by edit distance with changes near the beginning of a word having a greater impact.\n\t* The results include the word and adjusted edit cost. This is useful for merging results from multiple tries.\n\t*/\n\tsuggestWithCost(text, options) {\n\t\tconst sep = options.compoundSeparator;\n\t\tconst weightMap = options.weightMap || this.weightMap;\n\t\tconst adjWord = sep ? replaceAllFactory(sep, \"\") : (a) => a;\n\t\tconst optFilter = options.filter;\n\t\tconst filter = optFilter ? (word, cost) => {\n\t\t\tconst w = adjWord(word);\n\t\t\treturn !this.isForbiddenWord(w) && optFilter(w, cost);\n\t\t} : (word) => !this.isForbiddenWord(adjWord(word));\n\t\tconst opts = {\n\t\t\t...options,\n\t\t\tfilter,\n\t\t\tweightMap\n\t\t};\n\t\treturn suggestAStar(this.data, text, opts);\n\t}\n\t/**\n\t* genSuggestions will generate suggestions and send them to `collector`. `collector` is responsible for returning the max acceptable cost.\n\t* Costs are measured in weighted changes. A cost of 100 is the same as 1 edit. Some edits are considered cheaper.\n\t* Returning a MaxCost < 0 will effectively cause the search for suggestions to stop.\n\t*/\n\tgenSuggestions(collector, compoundMethod) {\n\t\tconst filter = (word) => !this.isForbiddenWord(word);\n\t\tconst options = createSuggestionOptions(clean({\n\t\t\tcompoundMethod,\n\t\t\t...collector.genSuggestionOptions\n\t\t}));\n\t\tconst suggestions = getSuggestionsAStar(this.data, collector.word, options);\n\t\tcollector.collect(suggestions, void 0, filter);\n\t}\n\t/**\n\t* Returns an iterator that can be used to get all words in the trie. For some dictionaries, this can result in millions of words.\n\t* Note: this will not compound words automatically.\n\t* @param prefix - optional prefix to filter the words returned. The words will be prefixed with this value.\n\t*/\n\twords(prefix) {\n\t\treturn this.data.words(prefix);\n\t}\n\t/**\n\t* Allows iteration over the entire tree.\n\t* On the returned Iterator, calling .next(goDeeper: boolean), allows for controlling the depth.\n\t*/\n\titerate() {\n\t\treturn walker$1(this.root);\n\t}\n\tstatic create(words, info) {\n\t\tconst builder = new TrieBlobBuilder(info);\n\t\tbuilder.insert(words);\n\t\tconst root = builder.build();\n\t\treturn new ITrieImpl(root);\n\t}\n\tcreateFindOptions(options) {\n\t\treturn createFindOptions$1(options);\n\t}\n};\n//#endregion\n//#region src/lib/buildITrie.ts\nfunction buildITrieFromWords(words, info = {}, buildOptions) {\n\tconst endPerf = measurePerf(\"buildITrieFromWords\");\n\ttry {\n\t\tconst builder = new TrieBlobBuilder(info);\n\t\tbuilder.insert(words);\n\t\treturn new ITrieImpl(builder.build(buildOptions));\n\t} finally {\n\t\tendPerf();\n\t}\n}\n//#endregion\n//#region src/lib/utils/isValidChar.ts\nfunction isValidChar(char) {\n\treturn isValidUtf16Character(char);\n}\nfunction assertIsValidChar(char, message) {\n\tif (!isValidChar(char)) assert(false, `${message} \"${char}\" ${formatCharCodes(char)}`);\n}\nfunction formatCharCodes(char) {\n\treturn char.split(\"\").map((c) => \"0x\" + c.charCodeAt(0).toString(16).padStart(4, \"0\").toUpperCase()).join(\":\");\n}\n//#endregion\n//#region src/lib/TrieNode/TrieNode.ts\nconst FLAG_WORD = 1;\n//#endregion\n//#region src/lib/TrieNode/trie-util.ts\nfunction insert(word, root = {}) {\n\tconst text = [...word];\n\tlet node = root;\n\tfor (let i = 0; i < text.length; ++i) {\n\t\tconst head = text[i];\n\t\tconst c = node.c || Object.create(null);\n\t\tnode.c = c;\n\t\tnode = c[head] || {};\n\t\tc[head] = node;\n\t}\n\tnode.f = (node.f || 0) | 1;\n\treturn root;\n}\nfunction isWordTerminationNode(node) {\n\treturn ((node.f || 0) & 1) === 1;\n}\n/**\n* Sorts the nodes in a trie in place.\n*/\nfunction orderTrie(node) {\n\tif (!node.c) return;\n\tconst nodes = Object.entries(node.c).sort(([a], [b]) => a < b ? -1 : 1);\n\tnode.c = Object.fromEntries(nodes);\n\tfor (const n of nodes) orderTrie(n[1]);\n}\n/**\n* Generator an iterator that will walk the Trie parent then children in a depth first fashion that preserves sorted order.\n*/\nfunction walk(node) {\n\treturn walker(node);\n}\nconst iterateTrie = walk;\n/**\n* Generate a Iterator that can walk a Trie and yield the words.\n*/\nfunction iteratorTrieWords(node) {\n\treturn walkerWords(node);\n}\nfunction createTrieRoot(options) {\n\treturn new CTrieRoot(options);\n}\nfunction createTrieRootFromList(words, options) {\n\tconst root = createTrieRoot(options);\n\tfor (const word of words) if (word.length) insert(word, root);\n\treturn root;\n}\nfunction has(node, word) {\n\tlet h = word.slice(0, 1);\n\tlet t = word.slice(1);\n\twhile (node.c && h in node.c) {\n\t\tnode = node.c[h];\n\t\th = t.slice(0, 1);\n\t\tt = t.slice(1);\n\t}\n\treturn !h.length && !!((node.f || 0) & 1);\n}\nfunction findNode(node, word) {\n\tfor (let i = 0; i < word.length; ++i) {\n\t\tconst n = node.c?.[word[i]];\n\t\tif (!n) return void 0;\n\t\tnode = n;\n\t}\n\treturn node;\n}\nfunction countNodes(root) {\n\tconst seen = /* @__PURE__ */ new Set();\n\tfunction walk(n) {\n\t\tif (seen.has(n)) return;\n\t\tseen.add(n);\n\t\tif (n.c) Object.values(n.c).forEach((n) => walk(n));\n\t}\n\twalk(root);\n\treturn seen.size;\n}\nfunction countWords(root) {\n\tconst visited = /* @__PURE__ */ new Map();\n\tfunction walk(n) {\n\t\tif (visited.has(n)) return visited.get(n);\n\t\tlet cnt = n.f ? 1 : 0;\n\t\tvisited.set(n, cnt);\n\t\tif (!n.c) return cnt;\n\t\tfor (const c of Object.values(n.c)) cnt += walk(c);\n\t\tvisited.set(n, cnt);\n\t\treturn cnt;\n\t}\n\treturn walk(root);\n}\nfunction checkCircular(root) {\n\tconst seen = /* @__PURE__ */ new Set();\n\tconst inStack = /* @__PURE__ */ new Set();\n\tfunction walk(n) {\n\t\tif (seen.has(n)) return {\n\t\t\tisCircular: false,\n\t\t\tallSeen: true\n\t\t};\n\t\tif (inStack.has(n)) {\n\t\t\tconst stack = [...inStack, n];\n\t\t\treturn {\n\t\t\t\tisCircular: true,\n\t\t\t\tallSeen: false,\n\t\t\t\tref: {\n\t\t\t\t\tstack,\n\t\t\t\t\tword: trieStackToWord(stack),\n\t\t\t\t\tpos: stack.indexOf(n)\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\tinStack.add(n);\n\t\tlet r = {\n\t\t\tisCircular: false,\n\t\t\tallSeen: true\n\t\t};\n\t\tif (n.c) r = Object.values(n.c).reduce((acc, n) => {\n\t\t\tif (acc.isCircular) return acc;\n\t\t\tconst r = walk(n);\n\t\t\tr.allSeen = r.allSeen && acc.allSeen;\n\t\t\treturn r;\n\t\t}, r);\n\t\tif (r.allSeen) seen.add(n);\n\t\tinStack.delete(n);\n\t\treturn r;\n\t}\n\treturn walk(root);\n}\nfunction reverseMapTrieNode(node) {\n\treturn node.c && new Map(Object.entries(node.c).map(([c, n]) => [n, c]));\n}\nfunction trieStackToWord(stack) {\n\tlet word = \"\";\n\tlet lastMap = reverseMapTrieNode(stack[0]);\n\tfor (let i = 1; i < stack.length; ++i) {\n\t\tconst n = stack[i];\n\t\tconst char = lastMap?.get(n);\n\t\tif (char) word += char;\n\t\tlastMap = reverseMapTrieNode(n);\n\t}\n\treturn word;\n}\nfunction isCircular(root) {\n\treturn checkCircular(root).isCircular;\n}\nfunction trieNodeToRoot(node, options) {\n\treturn CTrieRoot.createFrom(node, options);\n}\nvar CTrieRoot = class CTrieRoot {\n\tc;\n\tcompoundCharacter;\n\tstripCaseAndAccentsPrefix;\n\tforbiddenWordPrefix;\n\tsuggestionPrefix;\n\tconstructor(options) {\n\t\tconst newOptions = mergeOptionalWithDefaults(options);\n\t\tthis.c = Object.create(null);\n\t\tthis.compoundCharacter = newOptions.compoundCharacter;\n\t\tthis.stripCaseAndAccentsPrefix = newOptions.stripCaseAndAccentsPrefix;\n\t\tthis.forbiddenWordPrefix = newOptions.forbiddenWordPrefix;\n\t\tthis.suggestionPrefix = newOptions.suggestionPrefix;\n\t}\n\tget hasForbiddenWords() {\n\t\treturn !!this.c[this.forbiddenWordPrefix];\n\t}\n\tget hasCompoundWords() {\n\t\treturn !!this.c[this.compoundCharacter];\n\t}\n\tget hasNonStrictWords() {\n\t\treturn !!this.c[this.stripCaseAndAccentsPrefix];\n\t}\n\tget hasPreferredSuggestions() {\n\t\treturn !!this.c[this.suggestionPrefix];\n\t}\n\tstatic createFrom(trie, options) {\n\t\tconst root = new CTrieRoot(options);\n\t\troot.c = trie.c || Object.create(null);\n\t\treturn root;\n\t}\n};\n//#endregion\n//#region src/lib/consolidate.ts\n/**\n* Consolidate to DAWG\n* @param root the root of the Trie tree\n*/\nfunction consolidate(root) {\n\tlet count = 0;\n\tconst signatures = /* @__PURE__ */ new Map();\n\tconst cached = /* @__PURE__ */ new Map();\n\tconst knownMap = /* @__PURE__ */ new Map();\n\tif (isCircular(root)) throw new Error(\"Trie is circular.\");\n\tfunction signature(n) {\n\t\treturn (n.f ? \"*\" : \"\") + (n.c ? JSON.stringify(Object.entries(n.c).map(([k, n]) => [k, cached.get(n)])) : \"\");\n\t}\n\tfunction findEow(n) {\n\t\tif (n.f && !n.c) return n;\n\t\tlet r;\n\t\t// istanbul ignore else\n\t\tif (n.c) for (const c of Object.values(n.c)) {\n\t\t\tr = findEow(c);\n\t\t\t// istanbul ignore else\n\t\t\tif (r) break;\n\t\t}\n\t\treturn r;\n\t}\n\tfunction compareMaps(a, b) {\n\t\tfor (const e of a) if (b[e[0]] !== e[1]) return false;\n\t\treturn a.length === b.size;\n\t}\n\tfunction deepCopy(n) {\n\t\tconst k = knownMap.get(n);\n\t\tif (k) return k;\n\t\tconst orig = n;\n\t\tif (n.c) {\n\t\t\tconst children = Object.entries(n.c).map((c) => [c[0], deepCopy(c[1])]);\n\t\t\tif (!compareMaps(children, n.c)) n = {\n\t\t\t\tf: n.f,\n\t\t\t\tc: Object.fromEntries(children)\n\t\t\t};\n\t\t}\n\t\tconst sig = signature(n);\n\t\tconst ref = signatures.get(sig);\n\t\tif (ref) {\n\t\t\tknownMap.set(orig, ref);\n\t\t\treturn ref;\n\t\t}\n\t\tObject.freeze(n);\n\t\tsignatures.set(sig, n);\n\t\tcached.set(n, count++);\n\t\tknownMap.set(orig, n);\n\t\treturn n;\n\t}\n\tfunction process(n) {\n\t\tif (cached.has(n)) return n;\n\t\tif (Object.isFrozen(n)) return knownMap.get(n) || deepCopy(n);\n\t\tif (n.c) {\n\t\t\tconst children = Object.entries(n.c).sort((a, b) => a[0] < b[0] ? -1 : 1).map(([k, n]) => [k, process(n)]);\n\t\t\tn.c = Object.fromEntries(children);\n\t\t}\n\t\tconst sig = signature(n);\n\t\tconst ref = signatures.get(sig);\n\t\tif (ref) return ref;\n\t\tsignatures.set(sig, n);\n\t\tcached.set(n, count++);\n\t\treturn n;\n\t}\n\tconst eow = findEow(root) || {\n\t\tf: 1,\n\t\tc: void 0\n\t};\n\tsignatures.set(signature(eow), eow);\n\tcached.set(eow, count++);\n\treturn trieNodeToRoot(process(root), root);\n}\n//#endregion\n//#region src/lib/TrieBlob/trieDataEncoder.ts\nfunction encodeITrieToBTrie(trie, buildOptions) {\n\treturn encodeTrieDataToBTrie(trie.data, buildOptions);\n}\nfunction encodeTrieDataToBTrie(data, buildOptions) {\n\tif (!(buildOptions?.optimize || buildOptions?.useStringTable) && data.encodeToBTrie) return data.encodeToBTrie();\n\treturn TrieBlobBuilder.fromITrieRoot(data.getRoot(), buildOptions).encodeToBTrie();\n}\nfunction decodeBTrie(data) {\n\treturn TrieBlob.decodeBin(data);\n}\n//#endregion\n//#region src/lib/TrieNode/find.ts\nconst _defaultFindOptions = {\n\tmatchCase: false,\n\tcompoundMode: \"compound\",\n\tforbidPrefix: \"!\",\n\tcompoundFix: \"+\",\n\tcaseInsensitivePrefix: \"~\",\n\tlegacyMinCompoundLength: 3,\n\tcompoundSeparator: void 0\n};\nconst knownCompoundModes = new Map([\n\t\"none\",\n\t\"compound\",\n\t\"legacy\"\n].map((a) => [a, a]));\n/**\n*\n* @param root Trie root node. root.c contains the compound root and forbidden root.\n* @param word A pre normalized word use `normalizeWord` or `normalizeWordToLowercase`\n* @param options\n*/\nfunction findWord(root, word, options) {\n\treturn _findWord(root, word, createFindOptions(options));\n}\n/**\n*\n* @param root Trie root node. root.c contains the compound root and forbidden root.\n* @param word A pre normalized word use `normalizeWord` or `normalizeWordToLowercase`\n* @param options\n*/\nfunction findWordNode(root, word, options) {\n\treturn _findWordNode(root, word, createFindOptions(options));\n}\n/**\n*\n* @param root Trie root node. root.c contains the compound root and forbidden root.\n* @param word A pre normalized word use `normalizeWord` or `normalizeWordToLowercase`\n* @param options\n*/\nfunction _findWord(root, word, options) {\n\tconst { node: _, ...result } = _findWordNode(root, word, options);\n\treturn result;\n}\n/**\n*\n* @param root Trie root node. root.c contains the compound root and forbidden root.\n* @param word A pre normalized word use `normalizeWord` or `normalizeWordToLowercase`\n* @param options\n*/\nfunction _findWordNode(root, word, options) {\n\tconst compoundMode = knownCompoundModes.get(options.compoundMode) || _defaultFindOptions.compoundMode;\n\tconst compoundPrefix = options.compoundMode === \"compound\" ? root.compoundCharacter ?? options.compoundFix : \"\";\n\tconst ignoreCasePrefix = options.matchCase ? \"\" : root.stripCaseAndAccentsPrefix ?? options.caseInsensitivePrefix;\n\tfunction __findCompound() {\n\t\tconst f = findCompoundWord(root, word, compoundPrefix, ignoreCasePrefix, options.compoundSeparator || \"\");\n\t\tconst result = { ...f };\n\t\tif (f.found !== false && f.compoundUsed) result.forbidden = isForbiddenWord(!f.caseMatched ? walk$1(root, options.caseInsensitivePrefix) : root, word, options.forbidPrefix);\n\t\treturn result;\n\t}\n\tfunction __findExact() {\n\t\tconst n = walk$1(root, word);\n\t\treturn {\n\t\t\tfound: isEndOfWordNode(n) && word,\n\t\t\tcompoundUsed: false,\n\t\t\tforbidden: isForbiddenWord(root, word, options.forbidPrefix),\n\t\t\tnode: n,\n\t\t\tcaseMatched: true\n\t\t};\n\t}\n\tswitch (compoundMode) {\n\t\tcase \"none\": return options.matchCase ? __findExact() : __findCompound();\n\t\tcase \"compound\": return __findCompound();\n\t\tcase \"legacy\": return findLegacyCompound(root, word, options);\n\t}\n}\nfunction findLegacyCompound(root, word, options) {\n\tconst roots = [root];\n\tif (!options.matchCase) roots.push(walk$1(root, options.caseInsensitivePrefix));\n\treturn findLegacyCompoundNode(roots, word, options.legacyMinCompoundLength, options.compoundSeparator);\n}\nfunction findCompoundNode(root, word, compoundCharacter, ignoreCasePrefix, compoundSeparator) {\n\tconst stack = [{\n\t\tn: root,\n\t\tcompoundPrefix: ignoreCasePrefix,\n\t\tcr: void 0,\n\t\tcaseMatched: true,\n\t\ts: \"\"\n\t}];\n\tconst compoundPrefix = compoundCharacter || ignoreCasePrefix;\n\tconst possibleCompoundPrefix = ignoreCasePrefix && compoundCharacter ? ignoreCasePrefix + compoundCharacter : \"\";\n\tconst nw = word.normalize();\n\tconst w = [...nw];\n\tfunction determineRoot(s) {\n\t\tconst prefix = s.compoundPrefix;\n\t\tlet r = root;\n\t\tlet i = 0;\n\t\tfor (; i < prefix.length && r; ++i) r = r.c?.[prefix[i]];\n\t\tconst caseMatched = s.caseMatched && prefix[0] !== ignoreCasePrefix;\n\t\treturn {\n\t\t\tn: s.n,\n\t\t\tcompoundPrefix: prefix === compoundPrefix ? possibleCompoundPrefix : \"\",\n\t\t\tcr: r,\n\t\t\tcaseMatched,\n\t\t\ts: prefix.endsWith(compoundCharacter) ? compoundSeparator : \"\"\n\t\t};\n\t}\n\tlet compoundUsed = false;\n\tlet caseMatched = true;\n\tlet i = 0;\n\tlet node;\n\twhile (true) {\n\t\tconst s = stack[i];\n\t\tconst h = w[i++];\n\t\tconst c = (s.cr || s.n)?.c?.[h];\n\t\tif (c && i < word.length) {\n\t\t\tcaseMatched = s.caseMatched;\n\t\t\tstack[i] = {\n\t\t\t\tn: c,\n\t\t\t\tcompoundPrefix,\n\t\t\t\tcr: void 0,\n\t\t\t\tcaseMatched,\n\t\t\t\ts: \"\"\n\t\t\t};\n\t\t} else if (!c || !c.f) {\n\t\t\tnode = node || c;\n\t\t\twhile (--i > 0) {\n\t\t\t\tconst s = stack[i];\n\t\t\t\tif (!s.compoundPrefix || !s.n?.c) continue;\n\t\t\t\tif (compoundCharacter in s.n.c) break;\n\t\t\t}\n\t\t\tif (i >= 0 && stack[i].compoundPrefix) {\n\t\t\t\tcompoundUsed = i > 0;\n\t\t\t\tconst r = determineRoot(stack[i]);\n\t\t\t\tstack[i] = r;\n\t\t\t\tif (!r.cr) break;\n\t\t\t\tif (!i && !r.caseMatched && nw !== nw.toLowerCase()) break;\n\t\t\t} else break;\n\t\t} else {\n\t\t\tnode = c;\n\t\t\tcaseMatched = s.caseMatched;\n\t\t\tbreak;\n\t\t}\n\t}\n\tfunction joinCompoundWord() {\n\t\treturn stack.map((s) => s.s).map((c, i) => c + w[i]).join(\"\");\n\t}\n\tconst f = i && i === word.length && word || false;\n\treturn {\n\t\tfound: f && (compoundSeparator ? joinCompoundWord() : f),\n\t\tcompoundUsed,\n\t\tnode,\n\t\tforbidden: void 0,\n\t\tcaseMatched\n\t};\n}\nfunction findCompoundWord(root, word, compoundCharacter, ignoreCasePrefix, compoundSeparator) {\n\tconst { found, compoundUsed, node, caseMatched } = findCompoundNode(root, word, compoundCharacter, ignoreCasePrefix, compoundSeparator);\n\tif (!node || !node.f) return {\n\t\tfound: false,\n\t\tcompoundUsed,\n\t\tnode,\n\t\tforbidden: void 0,\n\t\tcaseMatched\n\t};\n\treturn {\n\t\tfound,\n\t\tcompoundUsed,\n\t\tnode,\n\t\tforbidden: void 0,\n\t\tcaseMatched\n\t};\n}\nfunction findWordExact(root, word) {\n\treturn isEndOfWordNode(walk$1(root, word));\n}\nfunction isEndOfWordNode(n) {\n\treturn n?.f === 1;\n}\nfunction walk$1(root, word) {\n\tconst w = [...word];\n\tlet n = root;\n\tlet i = 0;\n\twhile (n && i < w.length) {\n\t\tconst h = w[i++];\n\t\tn = n.c?.[h];\n\t}\n\treturn n;\n}\nfunction findLegacyCompoundNode(roots, word, minCompoundLength, compoundSeparator) {\n\tconst root = roots[0];\n\tconst numRoots = roots.length;\n\tconst stack = [{\n\t\tn: root,\n\t\tusedRoots: 1,\n\t\tsubLength: 0,\n\t\tisCompound: false,\n\t\tcr: void 0,\n\t\tcaseMatched: true\n\t}];\n\tconst sep = compoundSeparator ?? \"+\";\n\tconst w = word;\n\tconst wLen = w.length;\n\tlet compoundUsed = false;\n\tlet caseMatched = true;\n\tlet i = 0;\n\tlet node;\n\twhile (true) {\n\t\tconst s = stack[i];\n\t\tconst h = w[i++];\n\t\tconst c = (s.cr || s.n)?.c?.[h];\n\t\tif (c && i < wLen) stack[i] = {\n\t\t\tn: c,\n\t\t\tusedRoots: 0,\n\t\t\tsubLength: s.subLength + 1,\n\t\t\tisCompound: s.isCompound,\n\t\t\tcr: void 0,\n\t\t\tcaseMatched: s.caseMatched\n\t\t};\n\t\telse if (!c || !c.f || c.f && s.subLength < minCompoundLength - 1) {\n\t\t\twhile (--i > 0) {\n\t\t\t\tconst s = stack[i];\n\t\t\t\tif (s.usedRoots < numRoots && s.n?.f && (s.subLength >= minCompoundLength || !s.subLength) && wLen - i >= minCompoundLength) break;\n\t\t\t}\n\t\t\tif (i > 0 || stack[i].usedRoots < numRoots) {\n\t\t\t\tcompoundUsed = i > 0;\n\t\t\t\tconst s = stack[i];\n\t\t\t\ts.cr = roots[s.usedRoots++];\n\t\t\t\ts.subLength = 0;\n\t\t\t\ts.isCompound = compoundUsed;\n\t\t\t\ts.caseMatched = s.caseMatched && s.usedRoots <= 1;\n\t\t\t} else break;\n\t\t} else {\n\t\t\tnode = c;\n\t\t\tcaseMatched = s.caseMatched;\n\t\t\tbreak;\n\t\t}\n\t}\n\tfunction extractWord() {\n\t\tif (!word || i < word.length) return false;\n\t\tconst letters = [];\n\t\tlet subLen = 0;\n\t\tfor (let j = 0; j < i; ++j) {\n\t\t\tconst { subLength } = stack[j];\n\t\t\tif (subLength < subLen) letters.push(sep);\n\t\t\tletters.push(word[j]);\n\t\t\tsubLen = subLength;\n\t\t}\n\t\treturn letters.join(\"\");\n\t}\n\treturn {\n\t\tfound: extractWord(),\n\t\tcompoundUsed,\n\t\tnode,\n\t\tforbidden: void 0,\n\t\tcaseMatched\n\t};\n}\nfunction isForbiddenWord(root, word, forbiddenPrefix) {\n\treturn findWordExact(root?.c?.[forbiddenPrefix], word);\n}\nconst createFindOptions = memorizeLastCall(_createFindOptions);\nfunction _createFindOptions(options) {\n\treturn mergeDefaults(options, _defaultFindOptions);\n}\n//#endregion\n//#region src/lib/TrieNode/TrieNodeTrie.ts\nvar TrieNodeTrie = class TrieNodeTrie {\n\t_iTrieRoot;\n\tinfo;\n\t_size;\n\thasForbiddenWords;\n\thasCompoundWords;\n\thasNonStrictWords;\n\thasPreferredSuggestions;\n\troot;\n\tconstructor(root) {\n\t\tthis.root = root;\n\t\tthis.info = mergeOptionalWithDefaults(root);\n\t\tthis.hasForbiddenWords = root.hasForbiddenWords;\n\t\tthis.hasCompoundWords = root.hasCompoundWords;\n\t\tthis.hasNonStrictWords = root.hasNonStrictWords;\n\t\tthis.hasPreferredSuggestions = root.hasPreferredSuggestions;\n\t}\n\twordToCharacters = (word) => [...word];\n\tget iTrieRoot() {\n\t\treturn this._iTrieRoot || (this._iTrieRoot = trieRootToITrieRoot(this.root));\n\t}\n\tgetRoot() {\n\t\treturn this.iTrieRoot;\n\t}\n\tgetNode(prefix) {\n\t\treturn findNode$1(this.getRoot(), prefix);\n\t}\n\t*words(prefix) {\n\t\tif (!prefix) {\n\t\t\tyield* iteratorTrieWords$1(this.getRoot());\n\t\t\treturn;\n\t\t}\n\t\tconst node = this.getNode(prefix);\n\t\tif (!node) return;\n\t\tif (node.eow) yield prefix;\n\t\tfor (const suffix of iteratorTrieWords$1(node)) yield prefix + suffix;\n\t}\n\thas(word) {\n\t\treturn findWordExact(this.root, word);\n\t}\n\tisForbiddenWord(word) {\n\t\treturn findWordExact(this.root.c[this.root.forbiddenWordPrefix], word);\n\t}\n\tget size() {\n\t\treturn this._size ??= countNodes(this.root);\n\t}\n\tstatic createFromWords(words, options) {\n\t\tconst root = createTrieRootFromList(words, options);\n\t\treturn new TrieNodeTrie(root);\n\t}\n\tstatic createFromWordsAndConsolidate(words, options) {\n\t\tconst root = createTrieRootFromList(words, options);\n\t\treturn new TrieNodeTrie(consolidate(root));\n\t}\n};\n//#endregion\n//#region ../../node_modules/.pnpm/gensequence@8.0.8/node_modules/gensequence/dist/util/util.js\nfunction* toIterableIterator$2(i) {\n\tyield* i;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/gensequence@8.0.8/node_modules/gensequence/dist/operators/operatorsBase.js\n/**\n* Operators used by Sequence\n*/\nfunction* filter$1(i, fnFilter) {\n\tfor (const v of i) if (fnFilter(v)) yield v;\n}\nfunction* skip$1(i, n) {\n\tlet a = 0;\n\tfor (const t of i) {\n\t\tif (a >= n) yield t;\n\t\ta += 1;\n\t}\n}\nfunction* take$1(i, n) {\n\tlet a = 0;\n\tif (n) for (const t of i) {\n\t\tif (a >= n) break;\n\t\tyield t;\n\t\ta += 1;\n\t}\n}\n/**\n* Concat two iterables together\n*/\nfunction* concat$1(i, j) {\n\tyield* i;\n\tyield* j;\n}\nfunction* concatMap$1(i, fn) {\n\tfor (const t of i) yield* fn(t);\n}\n/**\n* Combine two iterables together using fnMap function.\n*/\nfunction* combine$1(i, j, fnMap) {\n\tconst jit = j[Symbol.iterator]();\n\tfor (const r of i) {\n\t\tconst s = jit.next().value;\n\t\tyield fnMap(r, s);\n\t}\n}\n/**\n* apply a mapping function to an Iterable.\n*/\nfunction map$1(i, fnMap) {\n\tfunction* fn(i, fnMap) {\n\t\tfor (const v of i) yield fnMap(v);\n\t}\n\treturn fn(i, fnMap);\n}\nfunction* scan$1(i, fnReduce, initValue) {\n\tlet index = 0;\n\tif (initValue === void 0) {\n\t\tindex = 1;\n\t\tconst iter = i[Symbol.iterator]();\n\t\tlet r = iter.next();\n\t\tif (!r.done) yield r.value;\n\t\tinitValue = r.value;\n\t\ti = makeIterable(iter);\n\t}\n\tlet prevValue = initValue;\n\tfor (const t of i) {\n\t\tconst nextValue = fnReduce(prevValue, t, index);\n\t\tyield nextValue;\n\t\tprevValue = nextValue;\n\t\tindex += 1;\n\t}\n}\nfunction all$1(i, fn) {\n\tfor (const t of i) if (!fn(t)) return false;\n\treturn true;\n}\nfunction any$1(i, fn) {\n\tfor (const t of i) if (fn(t)) return true;\n\treturn false;\n}\nfunction count$1(i) {\n\treturn reduce$1(i, (p) => p + 1, 0);\n}\nfunction first$1(i, fn, defaultValue) {\n\tfn = fn || (() => true);\n\tfor (const t of i) if (fn(t)) return t;\n\treturn defaultValue;\n}\nfunction forEach$1(i, fn) {\n\tlet index = 0;\n\tfor (const t of i) {\n\t\tfn(t, index);\n\t\tindex += 1;\n\t}\n}\nfunction max$1(i, selector = (t) => t) {\n\treturn reduce$1(i, (p, c) => selector(c) > selector(p) ? c : p, void 0);\n}\nfunction min$1(i, selector = (t) => t) {\n\treturn reduce$1(i, (p, c) => selector(c) < selector(p) ? c : p, void 0);\n}\nfunction reduce$1(i, fnReduce, initialValue) {\n\tconst iter = makeIterable(i[Symbol.iterator]());\n\tlet index = 0;\n\tif (initialValue === void 0) {\n\t\tindex = 1;\n\t\tinitialValue = iter.next().value;\n\t}\n\tlet prevValue = initialValue;\n\tfor (const t of iter) {\n\t\tprevValue = fnReduce(prevValue, t, index);\n\t\tindex += 1;\n\t}\n\treturn prevValue;\n}\nasync function reduceAsync$1(i, fnReduce, initialValue) {\n\tconst iter = makeIterable(i[Symbol.iterator]());\n\tlet index = 0;\n\tif (initialValue === void 0) {\n\t\tindex = 1;\n\t\tinitialValue = iter.next().value;\n\t}\n\tlet previousValue = await initialValue;\n\tfor (const p of iter) {\n\t\tconst t = await p;\n\t\tpreviousValue = await fnReduce(previousValue, t, index);\n\t\tindex += 1;\n\t}\n\treturn previousValue;\n}\n/**\n* Convert an Iterator into an IterableIterator\n*/\nfunction makeIterable(i) {\n\tfunction* fromIterator(i) {\n\t\tfor (let r = i.next(); !r.done; r = i.next()) yield r.value;\n\t}\n\tfunction* fromIterable(i) {\n\t\tyield* i;\n\t}\n\treturn isIterable(i) ? isIterableIterator(i) ? i : fromIterable(i) : fromIterator(i);\n}\nfunction isIterable(i) {\n\treturn !!i[Symbol.iterator];\n}\nfunction isIterableIterator(i) {\n\treturn typeof i.next == \"function\";\n}\n//#endregion\n//#region ../../node_modules/.pnpm/gensequence@8.0.8/node_modules/gensequence/dist/operators/operators.js\n/**\n* Operators used by Sequence\n*/\nfunction filter(fnFilter) {\n\treturn (i) => filter$1(i, fnFilter);\n}\nfunction skip(n) {\n\treturn (i) => skip$1(i, n);\n}\nfunction take(n) {\n\treturn (i) => take$1(i, n);\n}\n/**\n* Concat two iterables together\n*/\nfunction concat(j) {\n\treturn (i) => concat$1(i, j);\n}\nfunction concatMap(fn) {\n\treturn (i) => concatMap$1(i, fn);\n}\n/**\n* Combine two iterables together using fnMap function.\n*/\nfunction combine(fnMap, j) {\n\treturn (i) => combine$1(i, j, fnMap);\n}\n/**\n* apply a mapping function to an Iterable.\n*/\nfunction map(fnMap) {\n\treturn (i) => map$1(i, fnMap);\n}\nfunction scan(fnReduce, initValue) {\n\treturn (i) => scan$1(i, fnReduce, initValue);\n}\nfunction all(fn) {\n\treturn (i) => all$1(i, fn);\n}\nfunction any(fn) {\n\treturn (i) => any$1(i, fn);\n}\nfunction count() {\n\treturn (i) => count$1(i);\n}\nfunction first(fn, defaultValue) {\n\treturn (i) => first$1(i, fn, defaultValue);\n}\nfunction forEach(fn) {\n\treturn (i) => forEach$1(i, fn);\n}\nfunction max(selector) {\n\treturn (i) => max$1(i, selector);\n}\nfunction min(selector) {\n\treturn (i) => min$1(i, selector);\n}\nfunction reduce(fnReduce, initialValue) {\n\treturn (i) => reduce$1(i, fnReduce, initialValue);\n}\nfunction reduceAsync(fnReduceAsync, initialValue) {\n\treturn (i) => reduceAsync$1(i, fnReduceAsync, initialValue);\n}\nfunction pipe(...fns) {\n\treturn (i) => {\n\t\tfor (const fn of fns) i = fn ? fn(i) : i;\n\t\treturn i;\n\t};\n}\n//#endregion\n//#region ../../node_modules/.pnpm/gensequence@8.0.8/node_modules/gensequence/dist/ImplSequence.js\nvar ImplSequence = class ImplSequence {\n\ti;\n\t_iterator;\n\tconstructor(i) {\n\t\tthis.i = i;\n\t}\n\tget iter() {\n\t\treturn typeof this.i === \"function\" ? this.i() : this.i;\n\t}\n\tget iterator() {\n\t\tif (!this._iterator) this._iterator = this.iter[Symbol.iterator]();\n\t\treturn this._iterator;\n\t}\n\tinject(fn) {\n\t\tconst iter = this.i;\n\t\treturn () => fn(typeof iter === \"function\" ? iter() : iter);\n\t}\n\tchain(fn) {\n\t\treturn new ImplSequence(this.inject(fn));\n\t}\n\t[Symbol.iterator]() {\n\t\treturn this.iter[Symbol.iterator]();\n\t}\n\tnext() {\n\t\treturn this.iterator.next();\n\t}\n\tfilter(fnFilter) {\n\t\treturn this.chain(filter(fnFilter));\n\t}\n\tskip(n) {\n\t\treturn this.chain(skip(n));\n\t}\n\ttake(n) {\n\t\treturn this.chain(take(n));\n\t}\n\tconcat(j) {\n\t\treturn this.chain(concat(j));\n\t}\n\tconcatMap(fn) {\n\t\treturn this.chain(concatMap(fn));\n\t}\n\tcombine(fn, j) {\n\t\treturn this.chain(combine(fn, j));\n\t}\n\tmap(fn) {\n\t\treturn this.chain(map(fn));\n\t}\n\tscan(fnReduce, initValue) {\n\t\treturn this.chain(scan(fnReduce, initValue));\n\t}\n\tpipe(...fns) {\n\t\tif (!fns.length) return this;\n\t\treturn this.chain(pipe.apply(null, fns));\n\t}\n\tall(fnFilter) {\n\t\treturn all(fnFilter)(this.iter);\n\t}\n\tany(fnFilter) {\n\t\treturn any(fnFilter)(this.iter);\n\t}\n\tcount() {\n\t\treturn count()(this.iter);\n\t}\n\tfirst(fnFilter, defaultValue) {\n\t\treturn first(fnFilter, defaultValue)(this.iter);\n\t}\n\tforEach(fn) {\n\t\treturn forEach(fn)(this.iter);\n\t}\n\tmax(fnSelector) {\n\t\treturn max(fnSelector)(this.iter);\n\t}\n\tmin(fnSelector) {\n\t\treturn min(fnSelector)(this.iter);\n\t}\n\treduce(fnReduce, initValue) {\n\t\treturn reduce(fnReduce, initValue)(this.iter);\n\t}\n\treduceAsync(fnReduceAsync, initialValue) {\n\t\treturn reduceAsync(fnReduceAsync, initialValue)(this.iter);\n\t}\n\treduceToSequence(fnReduce, initialValue) {\n\t\treturn this.chain(reduce(fnReduce, initialValue));\n\t}\n\ttoArray() {\n\t\treturn [...this.iter];\n\t}\n\ttoIterable() {\n\t\treturn toIterableIterator$2(this.iter);\n\t}\n};\n//#endregion\n//#region ../../node_modules/.pnpm/gensequence@8.0.8/node_modules/gensequence/dist/GenSequence.js\nfunction genSequence(i) {\n\treturn new ImplSequence(i);\n}\n//#endregion\n//#region src/lib/convertToTrieRefNodes.ts\nconst MinReferenceCount = 3;\n/**\n* An iterator that will emit TrieRefNodes mostly in descending frequency\n* @param root Root of the Trie -- a DAWG is preferred to keep the number of duplicates down.\n*/\nfunction convertToTrieRefNodes(root) {\n\tconst eow = {\n\t\tf: 1,\n\t\tc: void 0\n\t};\n\tconst tallies = /* @__PURE__ */ new Map([[eow, 0]]);\n\tlet count = 0;\n\tconst cached = /* @__PURE__ */ new Map();\n\tconst rollupTally = /* @__PURE__ */ new Map();\n\tfunction tally(n) {\n\t\tif (n.f && !n.c) {\n\t\t\ttallies.set(eow, (tallies.get(eow) || 0) + 1);\n\t\t\treturn;\n\t\t}\n\t\tconst t = tallies.get(n);\n\t\tif (t) {\n\t\t\ttallies.set(n, t + 1);\n\t\t\treturn;\n\t\t}\n\t\ttallies.set(n, 1);\n\t\tfor (const c of n.c && Object.values(n.c) || []) tally(c);\n\t}\n\tfunction rollup(n) {\n\t\tconst c = rollupTally.get(n);\n\t\tif (c) return c;\n\t\tif (!n.c) {\n\t\t\tconst sum = tallies.get(eow) || 0;\n\t\t\trollupTally.set(n, sum);\n\t\t\treturn sum;\n\t\t}\n\t\tconst sum = Object.values(n.c).reduce((acc, v) => acc + rollup(v), tallies.get(n) || 0);\n\t\trollupTally.set(n, sum);\n\t\treturn sum;\n\t}\n\tfunction* walkByTallies(tallies) {\n\t\tconst nodes = genSequence(tallies).filter((a) => a[1] >= MinReferenceCount);\n\t\tfor (const [n] of [...nodes].sort((a, b) => b[1] - a[1])) yield* walkByRollup(n);\n\t}\n\tfunction* walkByRollup(n) {\n\t\tif (cached.has(n)) return;\n\t\tif (n.f && !n.c) {\n\t\t\tcached.set(n, cached.get(eow));\n\t\t\treturn;\n\t\t}\n\t\tconst children = (n.c && Object.values(n.c) || []).sort((a, b) => (rollupTally.get(b) || 0) - (rollupTally.get(a) || 0));\n\t\tfor (const c of children) yield* walkByRollup(c);\n\t\tcached.set(n, count++);\n\t\tyield convert(n);\n\t}\n\tfunction convert(n) {\n\t\tconst { f, c } = n;\n\t\tconst r = c ? Object.entries(c).sort((a, b) => a[0] < b[0] ? -1 : 1).map(([s, n]) => [s, cached.get(n)]) : void 0;\n\t\treturn r ? f ? {\n\t\t\tf,\n\t\t\tr\n\t\t} : { r } : { f };\n\t}\n\tfunction* walk(root) {\n\t\tcached.set(eow, count++);\n\t\tyield convert(eow);\n\t\tyield* walkByTallies(tallies);\n\t\tyield* walkByRollup(root);\n\t}\n\ttally(root);\n\trollup(root);\n\treturn walk(root);\n}\n//#endregion\n//#region src/lib/io/importExportV1.ts\nconst EOW$2 = \"*\";\nfunction toReferences(node) {\n\treturn genSequence(convertToTrieRefNodes(node));\n}\nconst regExpEscapeChars = /([[\\]\\\\,:{}*])/g;\nconst regExTrailingComma = /,(\\}|\\n)/g;\nfunction escapeChar(char) {\n\treturn char.replaceAll(regExpEscapeChars, \"\\\\$1\");\n}\nfunction trieToExportString(node, base) {\n\tfunction* walk(node) {\n\t\tif (node.f) yield EOW$2;\n\t\tif (node.r) {\n\t\t\tconst refs = [...node.r].sort((a, b) => a[0] < b[0] ? -1 : 1);\n\t\t\tfor (const n of refs) {\n\t\t\t\tconst [c, r] = n;\n\t\t\t\tconst ref = r ? r.toString(base) : \"\";\n\t\t\t\tyield escapeChar(c) + ref + \",\";\n\t\t\t}\n\t\t}\n\t}\n\treturn genSequence(walk(node));\n}\nfunction generateHeader$3(base, comment) {\n\treturn genSequence([\n\t\t...[\n\t\t\t\"#!/usr/bin/env cspell-trie reader\",\n\t\t\t\"TrieXv1\",\n\t\t\t\"base=\" + base\n\t\t],\n\t\t...comment ? comment.split(\"\\n\").map((a) => \"# \" + a) : [],\n\t\t...[\"# Data:\"]\n\t]).map((a) => a + \"\\n\");\n}\n/**\n* Serialize a TrieNode.\n* Note: This is destructive. The node will no longer be usable.\n* Even though it is possible to preserve the trie, dealing with very large tries can consume a lot of memory.\n* Considering this is the last step before exporting, it was decided to let this be destructive.\n*/\nfunction serializeTrie$4(root, options = 16) {\n\toptions = typeof options === \"number\" ? { base: options } : options;\n\tconst { base = 16, comment = \"\" } = options;\n\tconst radix = base > 36 ? 36 : base < 10 ? 10 : base;\n\tconst rows = toReferences(root).map((node) => {\n\t\treturn [...trieToExportString(node, radix), \"\\n\"].join(\"\").replaceAll(regExTrailingComma, \"$1\");\n\t});\n\treturn generateHeader$3(radix, comment).concat(rows);\n}\nfunction* toIterableIterator$1(iter) {\n\tyield* iter;\n}\nfunction importTrie$5(linesX) {\n\tlet radix = 16;\n\tconst comment = /^\\s*#/;\n\tconst iter = toIterableIterator$1(linesX);\n\tfunction parseHeaderRows(headerRows) {\n\t\tconst header = headerRows.slice(0, 2).join(\"\\n\");\n\t\tconst headerReg = /^TrieXv1\\nbase=(\\d+)$/;\n\t\t/* istanbul ignore if */\n\t\tif (!headerReg.test(header)) throw new Error(\"Unknown file format\");\n\t\tradix = Number.parseInt(header.replace(headerReg, \"$1\"), 10);\n\t}\n\tfunction readHeader(iter) {\n\t\tconst headerRows = [];\n\t\twhile (true) {\n\t\t\tconst next = iter.next();\n\t\t\tif (next.done) break;\n\t\t\tconst line = next.value.trim();\n\t\t\tif (!line || comment.test(line)) continue;\n\t\t\tif (line === \"*\") break;\n\t\t\theaderRows.push(line);\n\t\t}\n\t\tparseHeaderRows(headerRows);\n\t}\n\tconst regNotEscapedCommas = /(^|[^\\\\]),/g;\n\tconst regUnescapeCommas = /__COMMA__/g;\n\tconst regUnescape = /[\\\\](.)/g;\n\tconst flagsWord = { f: 1 };\n\tfunction splitLine(line) {\n\t\treturn line.replaceAll(regNotEscapedCommas, \"$1__COMMA__\").split(regUnescapeCommas).map((a) => a.replaceAll(regUnescape, \"$1\"));\n\t}\n\tfunction decodeLine(line, nodes) {\n\t\tconst isWord = line[0] === EOW$2;\n\t\tline = isWord ? line.slice(1) : line;\n\t\tconst flags = isWord ? flagsWord : {};\n\t\tconst children = splitLine(line).filter((a) => !!a).map((a) => [a[0], Number.parseInt(a.slice(1) || \"0\", radix)]).map(([k, i]) => [k, nodes[i]]);\n\t\treturn {\n\t\t\t...children.length ? { c: Object.fromEntries(children) } : {},\n\t\t\t...flags\n\t\t};\n\t}\n\treadHeader(iter);\n\treturn trieNodeToRoot(genSequence([\"*\"]).concat(iter).map((a) => a.replace(/\\r?\\n/, \"\")).filter((a) => !!a).reduce((acc, line) => {\n\t\tconst { lines, nodes } = acc;\n\t\tconst root = decodeLine(line, nodes);\n\t\tnodes[lines] = root;\n\t\treturn {\n\t\t\tlines: lines + 1,\n\t\t\troot,\n\t\t\tnodes\n\t\t};\n\t}, {\n\t\tlines: 0,\n\t\tnodes: [],\n\t\troot: {}\n\t}).root, {});\n}\n//#endregion\n//#region src/lib/io/importExportV2.ts\nconst EOW$1 = \"*\";\nconst DATA$3 = \"__DATA__\";\nfunction leaves(node) {\n\tfunction toRefNode(node, k) {\n\t\tconst refNode = node;\n\t\trefNode.s = refNode.s ?? k;\n\t\treturn refNode;\n\t}\n\tfunction* walk(node, k, p) {\n\t\tconst ref = toRefNode(node, k);\n\t\tif (!ref.c) yield {\n\t\t\tn: ref,\n\t\t\tp\n\t\t};\n\t\telse for (const n of Object.entries(ref.c)) yield* walk(n[1], n[0], ref);\n\t}\n\treturn genSequence(walk(node, \"\"));\n}\nfunction flattenToReferences(node) {\n\tfunction* walk() {\n\t\tlet iterations = 100;\n\t\tlet processed = 0;\n\t\tlet index = 0;\n\t\tdo {\n\t\t\tprocessed = 0;\n\t\t\tconst signatureMap = /* @__PURE__ */ new Map();\n\t\t\tfor (const leaf of leaves(node)) {\n\t\t\t\tconst h = signature(leaf.n);\n\t\t\t\tlet m = signatureMap.get(h);\n\t\t\t\tif (m === void 0) {\n\t\t\t\t\tyield leaf.n;\n\t\t\t\t\tm = index;\n\t\t\t\t\tsignatureMap.set(h, m);\n\t\t\t\t\tindex += 1;\n\t\t\t\t}\n\t\t\t\t/* istanbul ignore else */\n\t\t\t\tif (leaf.p && leaf.p.c) {\n\t\t\t\t\tleaf.p.r = leaf.p.r || [];\n\t\t\t\t\tleaf.p.r.push(m);\n\t\t\t\t\tdelete leaf.p.c[leaf.n.s];\n\t\t\t\t\tif (!Object.entries(leaf.p.c).length) delete leaf.p.c;\n\t\t\t\t}\n\t\t\t\tprocessed += 1;\n\t\t\t}\n\t\t\titerations -= 1;\n\t\t} while (processed && iterations && node.c);\n\t\tyield node;\n\t}\n\treturn genSequence(walk());\n}\nfunction signature(node) {\n\tconst flags = node.f ? EOW$1 : \"\";\n\tconst refs = node.r ? node.r.sort((a, b) => a - b).join(\",\") : \"\";\n\treturn node.s + flags + refs;\n}\nfunction toLine(node, base) {\n\tconst flags = node.f ? EOW$1 : \"\";\n\tconst refs = node.r ? node.r.sort((a, b) => a - b).map((r) => r.toString(base)).join(\",\") : \"\";\n\treturn node.s + flags + refs;\n}\nfunction generateHeader$2(base, comment) {\n\treturn genSequence([\n\t\t\"#!/usr/bin/env cspell-trie reader\",\n\t\t\"TrieXv2\",\n\t\t\"base=\" + base,\n\t\t...comment ? comment.split(\"\\n\").map((a) => \"# \" + a) : [],\n\t\t\"# Data:\",\n\t\tDATA$3\n\t]);\n}\n/**\n* Serialize a TrieNode.\n* Note: This is destructive. The node will no longer be usable.\n* Even though it is possible to preserve the trie, dealing with very large tries can consume a lot of memory.\n* Considering this is the last step before exporting, it was decided to let this be destructive.\n*/\nfunction serializeTrie$3(root, options = 16) {\n\toptions = typeof options === \"number\" ? { base: options } : options;\n\tconst { base = 16, comment = \"\" } = options;\n\tconst radix = base > 36 ? 36 : base < 10 ? 10 : base;\n\tconst rows = flattenToReferences({\n\t\t...root,\n\t\ts: \"^\"\n\t}).map((n) => toLine(n, base));\n\treturn generateHeader$2(radix, comment).concat(rows).map((a) => a + \"\\n\");\n}\nfunction* toIterableIterator(iter) {\n\tyield* iter;\n}\nfunction importTrie$4(linesX) {\n\tlet radix = 16;\n\tconst comment = /^\\s*#/;\n\tconst iter = toIterableIterator(linesX);\n\tfunction parseHeaderRows(headerRows) {\n\t\tconst header = headerRows.slice(0, 2).join(\"\\n\");\n\t\tconst headerReg = /^TrieXv2\\nbase=(\\d+)$/;\n\t\t/* istanbul ignore if */\n\t\tif (!headerReg.test(header)) throw new Error(\"Unknown file format\");\n\t\tradix = Number.parseInt(header.replace(headerReg, \"$1\"), 10);\n\t}\n\tfunction readHeader(iter) {\n\t\tconst headerRows = [];\n\t\twhile (true) {\n\t\t\tconst next = iter.next();\n\t\t\tif (next.done) break;\n\t\t\tconst line = next.value.trim();\n\t\t\tif (!line || comment.test(line)) continue;\n\t\t\tif (line === \"__DATA__\") break;\n\t\t\theaderRows.push(line);\n\t\t}\n\t\tparseHeaderRows(headerRows);\n\t}\n\tfunction parseLine(line, base) {\n\t\tconst isWord = line[1] === EOW$1;\n\t\tconst refOffset = isWord ? 2 : 1;\n\t\tconst refs = line.slice(refOffset).split(\",\").filter((a) => !!a).map((r) => Number.parseInt(r, base));\n\t\treturn {\n\t\t\tletter: line[0],\n\t\t\tisWord,\n\t\t\trefs\n\t\t};\n\t}\n\tconst flagsWord = { f: 1 };\n\tfunction decodeLine(line, nodes) {\n\t\tconst { letter, isWord, refs } = parseLine(line, radix);\n\t\tconst flags = isWord ? flagsWord : {};\n\t\tconst children = refs.map((r) => nodes[r]).sort((a, b) => a.s < b.s ? -1 : 1).map((n) => [n.s, n]);\n\t\treturn {\n\t\t\ts: letter,\n\t\t\t...children.length ? { c: Object.fromEntries(children) } : {},\n\t\t\t...flags\n\t\t};\n\t}\n\treadHeader(iter);\n\treturn trieNodeToRoot(genSequence(iter).map((a) => a.replace(/\\r?\\n/, \"\")).filter((a) => !!a).reduce((acc, line) => {\n\t\tconst { nodes } = acc;\n\t\tconst root = decodeLine(line, nodes);\n\t\tnodes.push(root);\n\t\treturn {\n\t\t\troot,\n\t\t\tnodes\n\t\t};\n\t}, {\n\t\tnodes: [],\n\t\troot: {\n\t\t\ts: \"\",\n\t\t\tc: Object.create(null)\n\t\t}\n\t}).root, {});\n}\n//#endregion\n//#region src/lib/utils/bufferLines.ts\nfunction* buffer(iter, bufferSize) {\n\tconst buffer = [];\n\tfor (const s of iter) {\n\t\tbuffer.push(s);\n\t\tif (buffer.length >= bufferSize) {\n\t\t\tyield buffer;\n\t\t\tbuffer.length = 0;\n\t\t}\n\t}\n\tif (buffer.length) {\n\t\tyield buffer;\n\t\tbuffer.length = 0;\n\t}\n}\nfunction* bufferLines(iter, bufferSize, eol) {\n\tif (eol) for (const s of buffer(iter, bufferSize)) yield s.join(\"\") + eol;\n\telse for (const s of buffer(iter, bufferSize)) yield s.join(\"\");\n}\n//#endregion\n//#region src/lib/io/importExportV4.ts\n/**\n* Trie file format v4\n*\n* Trie format v4 is very similar to v3. The v4 reader can even read v3 files.\n* The motivation behind v4 is to reduce the cost of storing `.trie` files in git.\n* When a word is added in v3, nearly the entire file is changed due to the absolute\n* references. V4 adds an index sorted by the most frequently used reference to the least.\n* Because git diff is line based, it is important to add line breaks at logical points.\n* V3 added line breaks just to make sure the lines were not too long, V4 takes a different\n* approach. Line breaks are added at two distinct points. First, at the start of each two\n* letter prefix and second after approximately 50 words have been emitted.\n*\n* To improve readability and git diff, at the beginning of each two letter prefix,\n* a comment is emitted.\n*\n* Example:\n*\n* ```\n* /* ab */\n* ```\n*/\nconst REF_INDEX_BEGIN = \"[\";\nconst REF_INDEX_END = \"]\";\nconst INLINE_DATA_COMMENT_LINE = \"/\";\nconst specialCharacters$1 = stringToCharSet$2([\n\t\"$\",\n\t\"<\",\n\t\"\\n\",\n\t\"#\",\n\t\"@\",\n\t\";\",\n\t\"\\\\\",\n\t\"\\r\",\n\tREF_INDEX_BEGIN,\n\tREF_INDEX_END,\n\tINLINE_DATA_COMMENT_LINE,\n\t...\"0123456789\",\n\t...\"`~!@#$%^&*()_-+=[]{};:'\\\"<>,./?\\\\|\"\n].join(\"\"));\nconst SPECIAL_CHARACTERS_MAP = [\n\t[\"\\n\", \"\\\\n\"],\n\t[\"\\r\", \"\\\\r\"],\n\t[\"\\\\\", \"\\\\\\\\\"]\n];\nconst specialCharacterMap$1 = stringToCharMap(SPECIAL_CHARACTERS_MAP);\nconst characterMap$1 = stringToCharMap(SPECIAL_CHARACTERS_MAP.map((a) => [a[1], a[0]]));\nconst specialPrefix$1 = stringToCharSet$2(\"~!\");\nconst WORDS_PER_LINE$1 = 20;\nconst DATA$2 = \"__DATA__\";\nfunction generateHeader$1(base, comment) {\n\treturn `\\\n#!/usr/bin/env cspell-trie reader\nTrieXv4\nbase=${base}\n${comment.split(\"\\n\").map((a) => \"# \" + a.trimEnd()).join(\"\\n\")}\n# Data:\n${DATA$2}\n`;\n}\n/**\n* Serialize a TrieRoot.\n*/\nfunction serializeTrie$2(root, options = 16) {\n\toptions = typeof options === \"number\" ? { base: options } : options;\n\tconst { base = 10, comment = \"\" } = options;\n\tconst radix = base > 36 ? 36 : base < 10 ? 10 : base;\n\tconst cache = /* @__PURE__ */ new Map();\n\tconst refMap = buildReferenceMap(root, base);\n\tconst nodeToIndexMap = new Map(refMap.refCounts.map(([node], index) => [node, index]));\n\tlet count = 0;\n\tconst backBuffer = {\n\t\tlast: \"\",\n\t\tcount: 0,\n\t\twords: 0,\n\t\teol: false\n\t};\n\tconst wordChars = [];\n\tfunction ref(n, idx) {\n\t\tconst r = idx === void 0 || n < idx ? \"#\" + n.toString(radix) : \"@\" + idx.toString(radix);\n\t\treturn radix === 10 ? r : r + \";\";\n\t}\n\tfunction escape(s) {\n\t\treturn s in specialCharacters$1 ? \"\\\\\" + (specialCharacterMap$1[s] || s) : s;\n\t}\n\tfunction* flush() {\n\t\twhile (backBuffer.count) {\n\t\t\tconst n = Math.min(9, backBuffer.count);\n\t\t\tyield n > 1 ? backBuffer.last + n : backBuffer.last;\n\t\t\tbackBuffer.last = \"<\";\n\t\t\tbackBuffer.count -= n;\n\t\t}\n\t\tif (backBuffer.eol) {\n\t\t\tyield \"\\n\";\n\t\t\tbackBuffer.eol = false;\n\t\t\tbackBuffer.words = 0;\n\t\t}\n\t}\n\tfunction* emit(s) {\n\t\tswitch (s) {\n\t\t\tcase \"$\":\n\t\t\t\tyield* flush();\n\t\t\t\tbackBuffer.last = \"$\";\n\t\t\t\tbackBuffer.count = 0;\n\t\t\t\tbackBuffer.words++;\n\t\t\t\tbreak;\n\t\t\tcase \"<\":\n\t\t\t\tbackBuffer.count++;\n\t\t\t\tbreak;\n\t\t\tcase \"\\n\":\n\t\t\t\tbackBuffer.eol = true;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tif (backBuffer.words >= WORDS_PER_LINE$1) backBuffer.eol = true;\n\t\t\t\tyield* flush();\n\t\t\t\tif (s.startsWith(\"#\") || s.startsWith(\"@\")) backBuffer.words++;\n\t\t\t\tyield s;\n\t\t}\n\t}\n\tconst comment_begin = `\n${INLINE_DATA_COMMENT_LINE}* `;\n\tconst comment_end = ` *${INLINE_DATA_COMMENT_LINE}\n`;\n\tfunction* walk(node, depth) {\n\t\tconst nodeNumber = cache.get(node);\n\t\tconst refIndex = nodeToIndexMap.get(node);\n\t\tif (nodeNumber !== void 0) {\n\t\t\tyield* emit(ref(nodeNumber, refIndex));\n\t\t\treturn;\n\t\t}\n\t\tif (node.c) {\n\t\t\tif (depth > 0 && depth <= 2) {\n\t\t\t\tconst chars = wordChars.slice(0, depth).map(escape).join(\"\");\n\t\t\t\tyield* emit(comment_begin + chars + comment_end);\n\t\t\t}\n\t\t\tcache.set(node, count++);\n\t\t\tconst c = Object.entries(node.c).sort((a, b) => a[0] < b[0] ? -1 : 1);\n\t\t\tfor (const [s, n] of c) {\n\t\t\t\twordChars[depth] = s;\n\t\t\t\tyield* emit(escape(s));\n\t\t\t\tyield* walk(n, depth + 1);\n\t\t\t\tyield* emit(\"<\");\n\t\t\t\tif (depth === 0) yield* emit(\"\\n\");\n\t\t\t}\n\t\t}\n\t\tif (node.f) yield* emit(\"$\");\n\t\tif (depth === 2 || depth === 3 && wordChars[0] in specialPrefix$1) yield* emit(\"\\n\");\n\t}\n\tfunction* serialize(node) {\n\t\tyield* walk(node, 0);\n\t\tyield* flush();\n\t}\n\tconst lines = [...bufferLines(serialize(root), 1e3, \"\")];\n\tconst reference = \"[\\n\" + refMap.refCounts.map(([node]) => cache.get(node) || 0).map((n) => n.toString(radix)).join(\",\").replaceAll(/.{110,130}[,]/g, \"$&\\n\") + \"\\n]\\n\";\n\treturn pipeSync([generateHeader$1(radix, comment), reference], opAppendSync(lines));\n}\nfunction buildReferenceMap(root, base) {\n\tconst refCount = /* @__PURE__ */ new Map();\n\tlet nodeCount = 0;\n\tfunction walk(node) {\n\t\tconst ref = refCount.get(node);\n\t\tif (ref) {\n\t\t\tref.c++;\n\t\t\treturn;\n\t\t}\n\t\trefCount.set(node, {\n\t\t\tc: 1,\n\t\t\tn: nodeCount++\n\t\t});\n\t\tif (!node.c) return;\n\t\tfor (const child of Object.values(node.c)) walk(child);\n\t}\n\twalk(root);\n\tconst refCountAndNode = [...pipeSync(refCount, opFilterSync(([_, ref]) => ref.c >= 2))].sort((a, b) => b[1].c - a[1].c || a[1].n - b[1].n);\n\tlet adj = 0;\n\tconst baseLogScale = 1 / Math.log(base);\n\treturn { refCounts: refCountAndNode.filter(([_, ref], idx) => {\n\t\tconst i = idx - adj;\n\t\tconst charsIdx = Math.ceil(Math.log(i) * baseLogScale);\n\t\tconst charsNode = Math.ceil(Math.log(ref.n) * baseLogScale);\n\t\tconst keep = ref.c * (charsNode - charsIdx) - charsIdx > 0;\n\t\tadj += keep ? 0 : 1;\n\t\treturn keep;\n\t}).map(([n, ref]) => [n, ref.c]) };\n}\nfunction importTrie$3(linesX) {\n\tlinesX = typeof linesX === \"string\" ? linesX.split(/^/m) : linesX;\n\tlet radix = 10;\n\tconst comment = /^\\s*#/;\n\tconst iter = tapIterable(pipeSync(linesX, opConcatMapSync((a) => a.split(/^/m))));\n\tfunction parseHeaderRows(headerRows) {\n\t\tconst header = headerRows.slice(0, 2).join(\"\\n\");\n\t\tconst headerReg = /^TrieXv[34]\\nbase=(\\d+)$/;\n\t\t/* istanbul ignore if */\n\t\tif (!headerReg.test(header)) throw new Error(\"Unknown file format\");\n\t\tradix = Number.parseInt(header.replace(headerReg, \"$1\"), 10);\n\t}\n\tfunction readHeader(iter) {\n\t\tconst headerRows = [];\n\t\tfor (const value of iter) {\n\t\t\tconst line = value.trim();\n\t\t\tif (!line || comment.test(line)) continue;\n\t\t\tif (line === \"__DATA__\") break;\n\t\t\theaderRows.push(line);\n\t\t}\n\t\tparseHeaderRows(headerRows);\n\t}\n\treadHeader(iter);\n\treturn parseStream$1(radix, iter);\n}\nconst numbersSet = stringToCharSet$2(\"0123456789\");\nfunction parseStream$1(radix, iter) {\n\tconst eow = Object.freeze({ f: 1 });\n\tlet refIndex = [];\n\tconst root = trieNodeToRoot({}, {});\n\tfunction parseReference(acc, s) {\n\t\tconst isIndexRef = s === \"@\";\n\t\tlet ref = \"\";\n\t\tfunction parser(acc, s) {\n\t\t\tif (s === \";\" || radix === 10 && !(s in numbersSet)) {\n\t\t\t\tconst { root, nodes, stack } = acc;\n\t\t\t\tconst r = Number.parseInt(ref, radix);\n\t\t\t\tconst top = stack[stack.length - 1];\n\t\t\t\tconst p = stack[stack.length - 2].node;\n\t\t\t\tconst n = isIndexRef ? refIndex[r] : r;\n\t\t\t\tp.c && (p.c[top.s] = nodes[n]);\n\t\t\t\tconst rr = {\n\t\t\t\t\troot,\n\t\t\t\t\tnodes,\n\t\t\t\t\tstack,\n\t\t\t\t\tparser: void 0\n\t\t\t\t};\n\t\t\t\treturn s === \";\" ? rr : parserMain(rr, s);\n\t\t\t}\n\t\t\tref = ref + s;\n\t\t\treturn acc;\n\t\t}\n\t\tconst { nodes } = acc;\n\t\tnodes.pop();\n\t\treturn {\n\t\t\t...acc,\n\t\t\tnodes,\n\t\t\tparser\n\t\t};\n\t}\n\tfunction parseEscapeCharacter(acc, _) {\n\t\tlet prev = \"\";\n\t\tconst parser = function(acc, s) {\n\t\t\tif (prev) {\n\t\t\t\ts = characterMap$1[prev + s] || s;\n\t\t\t\treturn parseCharacter({\n\t\t\t\t\t...acc,\n\t\t\t\t\tparser: void 0\n\t\t\t\t}, s);\n\t\t\t}\n\t\t\tif (s === \"\\\\\") {\n\t\t\t\tprev = s;\n\t\t\t\treturn acc;\n\t\t\t}\n\t\t\treturn parseCharacter({\n\t\t\t\t...acc,\n\t\t\t\tparser: void 0\n\t\t\t}, s);\n\t\t};\n\t\treturn {\n\t\t\t...acc,\n\t\t\tparser\n\t\t};\n\t}\n\tfunction parseComment(acc, s) {\n\t\tconst endOfComment = s;\n\t\tlet isEscaped = false;\n\t\tfunction parser(acc, s) {\n\t\t\tif (isEscaped) {\n\t\t\t\tisEscaped = false;\n\t\t\t\treturn acc;\n\t\t\t}\n\t\t\tif (s === \"\\\\\") {\n\t\t\t\tisEscaped = true;\n\t\t\t\treturn acc;\n\t\t\t}\n\t\t\tif (s === endOfComment) return {\n\t\t\t\t...acc,\n\t\t\t\tparser: void 0\n\t\t\t};\n\t\t\treturn acc;\n\t\t}\n\t\treturn {\n\t\t\t...acc,\n\t\t\tparser\n\t\t};\n\t}\n\tfunction parseCharacter(acc, s) {\n\t\tconst parser = void 0;\n\t\tconst { root, nodes, stack } = acc;\n\t\tconst node = stack[stack.length - 1].node;\n\t\tconst c = node.c ?? Object.create(null);\n\t\tconst n = {\n\t\t\tf: void 0,\n\t\t\tc: void 0,\n\t\t\tn: nodes.length\n\t\t};\n\t\tc[s] = n;\n\t\tnode.c = c;\n\t\tstack.push({\n\t\t\tnode: n,\n\t\t\ts\n\t\t});\n\t\tnodes.push(n);\n\t\treturn {\n\t\t\troot,\n\t\t\tnodes,\n\t\t\tstack,\n\t\t\tparser\n\t\t};\n\t}\n\tfunction parseEOW(acc, _) {\n\t\tconst parser = parseBack;\n\t\tconst { root, nodes, stack } = acc;\n\t\tconst top = stack[stack.length - 1];\n\t\tconst node = top.node;\n\t\tnode.f = 1;\n\t\tif (!node.c) {\n\t\t\ttop.node = eow;\n\t\t\tconst p = stack[stack.length - 2].node;\n\t\t\tp.c && (p.c[top.s] = eow);\n\t\t\tnodes.pop();\n\t\t}\n\t\tstack.pop();\n\t\treturn {\n\t\t\troot,\n\t\t\tnodes,\n\t\t\tstack,\n\t\t\tparser\n\t\t};\n\t}\n\tconst charactersBack = stringToCharSet$2(\"<23456789\");\n\tfunction parseBack(acc, s) {\n\t\tif (!(s in charactersBack)) return parserMain({\n\t\t\t...acc,\n\t\t\tparser: void 0\n\t\t}, s);\n\t\tlet n = s === \"<\" ? 1 : Number.parseInt(s, 10) - 1;\n\t\tconst { stack } = acc;\n\t\twhile (n-- > 0) stack.pop();\n\t\treturn {\n\t\t\t...acc,\n\t\t\tparser: parseBack\n\t\t};\n\t}\n\tfunction parseIgnore(acc, _) {\n\t\treturn acc;\n\t}\n\tconst parsers = createStringLookupMap([\n\t\t[\"$\", parseEOW],\n\t\t[\"<\", parseBack],\n\t\t[\"#\", parseReference],\n\t\t[\"@\", parseReference],\n\t\t[\"\\\\\", parseEscapeCharacter],\n\t\t[\"\\n\", parseIgnore],\n\t\t[\"\\r\", parseIgnore],\n\t\t[INLINE_DATA_COMMENT_LINE, parseComment]\n\t]);\n\tfunction parserMain(acc, s) {\n\t\treturn (acc.parser ?? parsers[s] ?? parseCharacter)(acc, s);\n\t}\n\tconst charsetSpaces = stringToCharSet$2(\" \\r\\n\t\");\n\tfunction parseReferenceIndex(acc, s) {\n\t\tlet json = \"\";\n\t\tfunction parserStart(acc, s) {\n\t\t\tif (s === REF_INDEX_BEGIN) {\n\t\t\t\tjson = json + s;\n\t\t\t\treturn {\n\t\t\t\t\t...acc,\n\t\t\t\t\tparser\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (s in charsetSpaces) return acc;\n\t\t\treturn parserMain({\n\t\t\t\t...acc,\n\t\t\t\tparser: void 0\n\t\t\t}, s);\n\t\t}\n\t\tfunction parser(acc, s) {\n\t\t\tjson = json + s;\n\t\t\tif (s === REF_INDEX_END) {\n\t\t\t\trefIndex = json.replaceAll(/[\\s[\\]]/g, \"\").split(\",\").map((n) => Number.parseInt(n, radix));\n\t\t\t\treturn {\n\t\t\t\t\t...acc,\n\t\t\t\t\tparser: void 0\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn acc;\n\t\t}\n\t\treturn parserStart({\n\t\t\t...acc,\n\t\t\tparser: parserStart\n\t\t}, s);\n\t}\n\treduceSync(pipeSync(iter, opConcatMapSync((a) => [...a])), parserMain, {\n\t\tnodes: [root],\n\t\troot,\n\t\tstack: [{\n\t\t\tnode: root,\n\t\t\ts: \"\"\n\t\t}],\n\t\tparser: parseReferenceIndex\n\t});\n\treturn root;\n}\nfunction stringToCharSet$2(values) {\n\tconst set = Object.create(null);\n\tconst len = values.length;\n\tfor (let i = 0; i < len; ++i) set[values[i]] = true;\n\treturn set;\n}\nfunction stringToCharMap(values) {\n\treturn createStringLookupMap(values);\n}\nfunction createStringLookupMap(values) {\n\tconst map = Object.create(null);\n\tconst len = values.length;\n\tfor (let i = 0; i < len; ++i) map[values[i][0]] = values[i][1];\n\treturn map;\n}\n/**\n* Allows an iterable to be shared by multiple consumers.\n* Each consumer takes from the iterable.\n* @param iterable - the iterable to share\n*/\nfunction tapIterable(iterable) {\n\tlet lastValue;\n\tlet iter;\n\tfunction getNext() {\n\t\tif (lastValue && lastValue.done) return { ...lastValue };\n\t\titer = iter || iterable[Symbol.iterator]();\n\t\tlastValue = iter.next();\n\t\treturn lastValue;\n\t}\n\tfunction* iterableFn() {\n\t\tlet next;\n\t\twhile (!(next = getNext()).done) yield next.value;\n\t}\n\treturn { [Symbol.iterator]: iterableFn };\n}\n//#endregion\n//#region src/lib/TrieNode/TrieNodeBuilder.ts\nconst EOW = Object.freeze({\n\tf: 1,\n\tk: true\n});\nconst compare = new Intl.Collator().compare;\nvar TrieNodeBuilder = class {\n\t#cursor;\n\troot = createTrieRoot();\n\t#trieInfoBuilder = new TrieInfoBuilder(this.root);\n\tshouldSort = false;\n\tsuggestionPrefix = this.root.suggestionPrefix;\n\twordToCharacters = (word) => [...word];\n\tsetOptions(options) {\n\t\tconst opts = mergeOptionalWithDefaults(options, this.root);\n\t\tObject.assign(this.root, opts);\n\t\treturn opts;\n\t}\n\tbuild() {\n\t\treturn new TrieNodeTrie(this.root);\n\t}\n\tgetCursor() {\n\t\tthis.#cursor ??= this.createCursor();\n\t\treturn this.#cursor;\n\t}\n\tcreateCursor() {\n\t\tconst root = this.root;\n\t\tconst sug = this.suggestionPrefix;\n\t\tconst nodes = [root, EOW];\n\t\tconst eow = EOW;\n\t\tassert(Object.keys(root.c).length === 0, \"The Trie MUST be empty for cursors to work.\");\n\t\tconst stack = [{\n\t\t\tn: root,\n\t\t\tc: \"\"\n\t\t}];\n\t\tlet currNode = root;\n\t\tlet depth = 0;\n\t\tconst insertChar = (char) => {\n\t\t\tassertIsValidChar(char);\n\t\t\tif (!depth || char === sug) this.#trieInfoBuilder.addWord(char);\n\t\t\tif (currNode.k) {\n\t\t\t\tconst s = stack[depth];\n\t\t\t\tconst { k: _, c, ...copy } = currNode;\n\t\t\t\tcurrNode = s.n.c[s.c] = copy;\n\t\t\t\tif (c) currNode.c = Object.assign(Object.create(null), c);\n\t\t\t\tnodes.push(currNode);\n\t\t\t}\n\t\t\tconst c = currNode.c || Object.create(null);\n\t\t\tcurrNode.c = c;\n\t\t\tconst n = currNode;\n\t\t\tconst next = c[char] = c[char] || {};\n\t\t\tnodes.push(next);\n\t\t\t++depth;\n\t\t\tconst s = stack[depth];\n\t\t\tif (s) {\n\t\t\t\ts.n = n;\n\t\t\t\ts.c = char;\n\t\t\t} else stack.push({\n\t\t\t\tn,\n\t\t\t\tc: char\n\t\t\t});\n\t\t\tcurrNode = next;\n\t\t};\n\t\tconst markEOW = () => {\n\t\t\tif (!currNode.c) {\n\t\t\t\tconst s = stack[depth];\n\t\t\t\ts.n.c[s.c] = eow;\n\t\t\t\tif (nodes[nodes.length - 1] === currNode) nodes.pop();\n\t\t\t\tcurrNode = eow;\n\t\t\t} else currNode.f = 1;\n\t\t};\n\t\tconst reference = (nodeId) => {\n\t\t\tconst s = stack[depth];\n\t\t\ts.n.c[s.c] = nodes[nodeId];\n\t\t\tnodes.pop();\n\t\t};\n\t\tconst backStep = (num) => {\n\t\t\tif (!num) return;\n\t\t\tassert(num <= depth && num > 0);\n\t\t\tdepth -= num;\n\t\t\tcurrNode = stack[depth + 1].n;\n\t\t};\n\t\treturn {\n\t\t\tinsertChar,\n\t\t\tmarkEOW,\n\t\t\treference,\n\t\t\tbackStep\n\t\t};\n\t}\n\tsortChildren(node) {\n\t\tconst entries = Object.entries(node.c).sort((a, b) => compare(a[0], b[0]));\n\t\tnode.c = Object.fromEntries(entries);\n\t\tfor (const c of Object.values(node.c)) if (c.c) this.sortChildren(c);\n\t}\n\tsortNodes() {\n\t\tif (this.shouldSort) this.sortChildren(this.root);\n\t}\n};\n//#endregion\n//#region src/lib/io/importV3.ts\nconst characterMap = new Map([.../* @__PURE__ */ new Map([\n\t[\"\\n\", \"\\\\n\"],\n\t[\"\\r\", \"\\\\r\"],\n\t[\"\\\\\", \"\\\\\\\\\"]\n])].map((a) => [a[1], a[0]]));\nconst DATA$1 = \"__DATA__\";\nfunction importTrieV3AsTrieRoot(srcLines) {\n\treturn importTrieV3WithBuilder(new TrieNodeBuilder(), srcLines);\n}\nfunction importTrieV3WithBuilder(builder, srcLines) {\n\tconst timerStart = measurePerf(\"importTrieV3\");\n\tconst dataLines = typeof srcLines === \"string\" ? srcLines.split(\"\\n\") : Array.isArray(srcLines) ? srcLines : [...srcLines];\n\tlet radix = 16;\n\tconst comment = /^\\s*#/;\n\tfunction parseHeaderRows(headerRows) {\n\t\tconst header = headerRows.slice(0, 2).join(\"\\n\");\n\t\tconst headerReg = /^TrieXv3\\nbase=(\\d+)$/;\n\t\t/* istanbul ignore if */\n\t\tif (!headerReg.test(header)) throw new Error(\"Unknown file format\");\n\t\tradix = Number.parseInt(header.replace(headerReg, \"$1\"), 10);\n\t}\n\tfunction findStartOfData(data) {\n\t\tfor (let i = 0; i < data.length; ++i) if (data[i].includes(DATA$1)) return i;\n\t\treturn -1;\n\t}\n\tfunction readHeader(data) {\n\t\tconst headerRows = [];\n\t\tfor (const hLine of data) {\n\t\t\tconst line = hLine.trim();\n\t\t\tif (!line || comment.test(line)) continue;\n\t\t\tif (line === DATA$1) break;\n\t\t\theaderRows.push(line);\n\t\t}\n\t\tparseHeaderRows(headerRows);\n\t}\n\tconst startOfData = findStartOfData(dataLines);\n\tif (startOfData < 0) throw new Error(\"Unknown file format\");\n\treadHeader(dataLines.slice(0, startOfData));\n\tlet node = {\n\t\tcursor: builder.getCursor(),\n\t\tparser: void 0\n\t};\n\tconst parser = parseStream(radix);\n\tconst timerParse = measurePerf(\"importTrieV3.parse\");\n\tfor (let i = startOfData + 1; i < dataLines.length; ++i) {\n\t\tconst line = dataLines[i];\n\t\tfor (const c of line) node = parser(node, c);\n\t}\n\ttimerParse();\n\ttimerStart();\n\treturn builder.build();\n}\nfunction parseStream(radix) {\n\tfunction parseReference(acc, _) {\n\t\tlet ref = \"\";\n\t\tfunction parser(acc, s) {\n\t\t\tif (s === \";\") {\n\t\t\t\tconst { cursor } = acc;\n\t\t\t\tconst r = Number.parseInt(ref, radix);\n\t\t\t\tcursor.reference(r + 1);\n\t\t\t\tacc.parser = void 0;\n\t\t\t\treturn acc;\n\t\t\t}\n\t\t\tref = ref + s;\n\t\t\treturn acc;\n\t\t}\n\t\tacc.parser = parser;\n\t\treturn acc;\n\t}\n\tfunction parseEscapeCharacter(acc, _) {\n\t\tlet prev = \"\";\n\t\tconst parser = function(acc, s) {\n\t\t\tif (prev) {\n\t\t\t\ts = characterMap.get(prev + s) || s;\n\t\t\t\tacc.parser = void 0;\n\t\t\t\treturn parseCharacter(acc, s);\n\t\t\t}\n\t\t\tif (s === \"\\\\\") {\n\t\t\t\tprev = s;\n\t\t\t\treturn acc;\n\t\t\t}\n\t\t\tacc.parser = void 0;\n\t\t\treturn parseCharacter(acc, s);\n\t\t};\n\t\tacc.parser = parser;\n\t\treturn acc;\n\t}\n\tfunction parseCharacter(acc, s) {\n\t\tacc.cursor.insertChar(s);\n\t\tacc.parser = void 0;\n\t\treturn acc;\n\t}\n\tfunction parseEOW(acc, _) {\n\t\tacc.parser = parseBack;\n\t\tacc.cursor.markEOW();\n\t\tacc.cursor.backStep(1);\n\t\treturn acc;\n\t}\n\tconst charactersBack = stringToCharSet$1(\"<23456789\");\n\tfunction parseBack(acc, s) {\n\t\tif (!(s in charactersBack)) {\n\t\t\tacc.parser = void 0;\n\t\t\treturn parserMain(acc, s);\n\t\t}\n\t\tconst n = s === \"<\" ? 1 : Number.parseInt(s, 10) - 1;\n\t\tacc.cursor.backStep(n);\n\t\tacc.parser = parseBack;\n\t\treturn acc;\n\t}\n\tfunction parseIgnore(acc, _) {\n\t\treturn acc;\n\t}\n\tconst parsers = /* @__PURE__ */ new Map([\n\t\t[\"$\", parseEOW],\n\t\t[\"<\", parseBack],\n\t\t[\"#\", parseReference],\n\t\t[\"\\\\\", parseEscapeCharacter],\n\t\t[\"\\n\", parseIgnore],\n\t\t[\"\\r\", parseIgnore]\n\t]);\n\tfunction parserMain(acc, s) {\n\t\treturn (acc.parser ?? parsers.get(s) ?? parseCharacter)(acc, s);\n\t}\n\treturn parserMain;\n}\nfunction stringToCharSet$1(values) {\n\tconst set = Object.create(null);\n\tconst len = values.length;\n\tfor (let i = 0; i < len; ++i) set[values[i]] = true;\n\treturn set;\n}\n//#endregion\n//#region src/lib/io/importV3FastBlob.ts\nfunction importTrieV3AsTrieBlob(srcLines) {\n\treturn importTrieV3WithBuilder(new TrieBlobBuilder(), srcLines);\n}\n//#endregion\n//#region src/lib/io/decode.ts\nfunction decodeTrieData(raw) {\n\tif (typeof raw === \"string\") return decodeStringFormat(raw);\n\tconst data = toUint8Array(raw);\n\tif (isBTrieData(data)) return decodeBTrie(data);\n\treturn decodeStringFormat(new TextDecoder().decode(data));\n}\nfunction decodeStringFormat(data) {\n\treturn importTrie$2(data);\n}\nconst deserializers$1 = [\n\t(data) => new TrieNodeTrie(importTrie$5(data)),\n\t(data) => new TrieNodeTrie(importTrie$5(data)),\n\t(data) => new TrieNodeTrie(importTrie$4(data)),\n\t(data) => importTrieV3AsTrieBlob(data),\n\t(data) => new TrieNodeTrie(importTrie$3(data))\n];\nconst headerReg$1 = /^\\s*TrieXv(\\d+)/m;\nfunction importTrie$2(input) {\n\tconst lines = Array.isArray(input) ? input : typeof input === \"string\" ? input.split(\"\\n\") : [...input];\n\tfunction parseHeaderRows(headerRows) {\n\t\tfor (let i = 0; i < headerRows.length; ++i) {\n\t\t\tconst match = headerRows[i].match(headerReg$1);\n\t\t\tif (match) return Number.parseInt(match[1], 10);\n\t\t}\n\t\tthrow new Error(\"Unknown file format\");\n\t}\n\tfunction readHeader(iter) {\n\t\tconst headerRows = [];\n\t\tfor (const entry of iter) {\n\t\t\tconst line = entry.trim();\n\t\t\theaderRows.push(line);\n\t\t\tif (line === \"*\" || line === \"__DATA__\") break;\n\t\t}\n\t\treturn headerRows;\n\t}\n\tconst version = parseHeaderRows(readHeader(lines));\n\tconst method = deserializers$1[version];\n\tif (!method) throw new Error(`Unsupported version: ${version}`);\n\treturn method(lines);\n}\n//#endregion\n//#region src/lib/suggestions/suggest.ts\nconst baseCost = opCosts.baseCost;\nconst postSwapCost = opCosts.swapCost - baseCost;\nconst insertSpaceCost = -1;\nconst mapSubCost = opCosts.visuallySimilar;\nconst maxCostScale = opCosts.wordLengthCostFactor;\nconst discourageInsertCost = baseCost;\nconst setOfSeparators = /* @__PURE__ */ new Set([\"+\", \" \"]);\nfunction suggest(root, word, options = {}) {\n\tconst opts = createSuggestionOptions(options);\n\tconst collector = suggestionCollector(word, clean(opts));\n\tcollector.collect(genSuggestions(root, word, {\n\t\t...opts,\n\t\t...collector.genSuggestionOptions\n\t}));\n\treturn collector.suggestions;\n}\nfunction* genSuggestions(root, word, options = {}) {\n\tconst roots = Array.isArray(root) ? root : [root];\n\tfor (const r of roots) yield* genCompoundableSuggestions(r, word, options);\n}\nfunction* genCompoundableSuggestions(root, word, options = {}) {\n\tconst { compoundMethod = CompoundWordsMethod.NONE, changeLimit, ignoreCase } = createSuggestionOptions(options);\n\tconst history = [];\n\tconst historyTags = /* @__PURE__ */ new Map();\n\tconst bc = baseCost;\n\tconst psc = postSwapCost;\n\tconst matrix = [[]];\n\tconst stack = [];\n\tconst x = \" \" + word;\n\tconst mx = x.length - 1;\n\tconst specialInsCosts = Object.assign(Object.create(null), {\n\t\t[\" \"]: insertSpaceCost,\n\t\t[\"+\"]: insertSpaceCost\n\t});\n\tconst specialSubCosts = Object.assign(Object.create(null), { \"-\": discourageInsertCost });\n\tlet stopNow = false;\n\tlet costLimit = bc * Math.min(word.length * maxCostScale, changeLimit);\n\tfunction updateCostLimit(maxCost) {\n\t\tswitch (typeof maxCost) {\n\t\t\tcase \"number\":\n\t\t\t\tcostLimit = maxCost;\n\t\t\t\tbreak;\n\t\t\tcase \"symbol\": stopNow = true;\n\t\t}\n\t}\n\tconst a = 0;\n\tlet b = 0;\n\tfor (let i = 0, c = 0; i <= mx && c <= costLimit; ++i) {\n\t\tc = i * baseCost;\n\t\tmatrix[0][i] = c;\n\t\tb = i;\n\t}\n\tstack[0] = {\n\t\ta,\n\t\tb\n\t};\n\tconst iWalk = hintedWalker(root, ignoreCase, word, compoundMethod, options.compoundSeparator);\n\tlet goDeeper = true;\n\tfor (let r = iWalk.next({ goDeeper }); !stopNow && !r.done; r = iWalk.next({ goDeeper })) {\n\t\tconst { text, node, depth } = r.value;\n\t\tlet { a, b } = stack[depth];\n\t\t/** Current character from word */\n\t\tconst w = text.slice(-1);\n\t\t/** Current character visual letter group */\n\t\tconst wG = visualLetterMaskMap[w] || 0;\n\t\tif (setOfSeparators.has(w)) {\n\t\t\tconst mxRange = matrix[depth].slice(a, b + 1);\n\t\t\tconst mxMin = Math.min(...mxRange);\n\t\t\tconst tag = [a, ...mxRange.map((c) => c - mxMin)].join(\",\");\n\t\t\tconst ht = historyTags.get(tag);\n\t\t\tif (ht && ht.m <= mxMin) {\n\t\t\t\tgoDeeper = false;\n\t\t\t\tconst { i, w, m } = ht;\n\t\t\t\tif (i >= history.length) continue;\n\t\t\t\tif (history[i].word.slice(0, w.length) !== w) continue;\n\t\t\t\tconst dc = mxMin - m;\n\t\t\t\tfor (let p = i; p < history.length; ++p) {\n\t\t\t\t\tconst { word, cost: hCost } = history[p];\n\t\t\t\t\tif (word.slice(0, w.length) !== w) break;\n\t\t\t\t\tconst cost = hCost + dc;\n\t\t\t\t\tif (cost <= costLimit) updateCostLimit(yield {\n\t\t\t\t\t\tword: text + word.slice(w.length),\n\t\t\t\t\t\tcost\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t} else historyTags.set(tag, {\n\t\t\t\tw: text,\n\t\t\t\ti: history.length,\n\t\t\t\tm: mxMin\n\t\t\t});\n\t\t}\n\t\t/** current depth */\n\t\tconst d = depth + 1;\n\t\tconst lastSugLetter = d > 1 ? text[d - 2] : \"\";\n\t\t/** standard cost */\n\t\tconst c = bc - d + (specialSubCosts[w] || 0);\n\t\t/** insert cost */\n\t\tconst ci = c + (specialInsCosts[w] || 0);\n\t\tmatrix[d] = matrix[d] || [];\n\t\tmatrix[d][a] = matrix[d - 1][a] + ci + d - a;\n\t\tlet lastLetter = x[a];\n\t\tlet min = matrix[d][a];\n\t\tlet i;\n\t\tfor (i = a + 1; i <= b; ++i) {\n\t\t\tconst curLetter = x[i];\n\t\t\t/** current group */\n\t\t\tconst cG = visualLetterMaskMap[curLetter] || 0;\n\t\t\tconst subCost = w === curLetter ? 0 : wG & cG ? mapSubCost : curLetter === lastSugLetter ? w === lastLetter ? psc : c : c;\n\t\t\tconst e = Math.min(matrix[d - 1][i - 1] + subCost, matrix[d - 1][i] + ci, matrix[d][i - 1] + c);\n\t\t\tmin = Math.min(min, e);\n\t\t\tmatrix[d][i] = e;\n\t\t\tlastLetter = curLetter;\n\t\t}\n\t\tconst { b: bb } = stack[d - 1];\n\t\twhile (b < mx) {\n\t\t\tb += 1;\n\t\t\ti = b;\n\t\t\tconst curLetter = x[i];\n\t\t\tconst cG = visualLetterMaskMap[curLetter] || 0;\n\t\t\tconst subCost = w === curLetter ? 0 : wG & cG ? mapSubCost : curLetter === lastSugLetter ? w === lastLetter ? psc : c : c;\n\t\t\tconst j = Math.min(bb, i - 1);\n\t\t\tconst e = Math.min(matrix[d - 1][j] + subCost, matrix[d][i - 1] + c);\n\t\t\tmin = Math.min(min, e);\n\t\t\tmatrix[d][i] = e;\n\t\t\tlastLetter = curLetter;\n\t\t\tif (e > costLimit) break;\n\t\t}\n\t\tfor (; b > a && matrix[d][b] > costLimit; b -= 1);\n\t\tfor (; a < b && matrix[d][a] > costLimit; a += 1);\n\t\tb = Math.min(b + 1, mx);\n\t\tstack[d] = {\n\t\t\ta,\n\t\t\tb\n\t\t};\n\t\tconst cost = matrix[d][b];\n\t\tif (node.f && isWordTerminationNode(node) && cost <= costLimit) {\n\t\t\tconst r = {\n\t\t\t\tword: text,\n\t\t\t\tcost\n\t\t\t};\n\t\t\thistory.push(r);\n\t\t\tupdateCostLimit(yield r);\n\t\t} else updateCostLimit(yield void 0);\n\t\tgoDeeper = min <= costLimit;\n\t}\n}\n//#endregion\n//#region src/lib/trie.ts\nconst defaultLegacyMinCompoundLength = 3;\nvar Trie = class Trie {\n\t_options;\n\t_findOptionsDefaults;\n\t_findOptionsExact;\n\tisLegacy;\n\thasForbidden;\n\troot;\n\tcount;\n\tconstructor(root, count) {\n\t\tthis.root = root;\n\t\tthis.count = count;\n\t\tthis._options = mergeOptionalWithDefaults(root);\n\t\tthis.isLegacy = this.calcIsLegacy();\n\t\tthis.hasForbidden = !!root.c[root.forbiddenWordPrefix];\n\t\tthis._findOptionsDefaults = {\n\t\t\tcaseInsensitivePrefix: this._options.stripCaseAndAccentsPrefix,\n\t\t\tcompoundFix: this._options.compoundCharacter,\n\t\t\tforbidPrefix: this._options.forbiddenWordPrefix\n\t\t};\n\t\tthis._findOptionsExact = this.createFindOptions({ compoundMode: \"none\" });\n\t}\n\t/**\n\t* Number of words in the Trie\n\t*/\n\tsize() {\n\t\tthis.count = this.count ?? countWords(this.root);\n\t\treturn this.count;\n\t}\n\tisSizeKnown() {\n\t\treturn this.count !== void 0;\n\t}\n\tget options() {\n\t\treturn this._options;\n\t}\n\t/**\n\t* @param text - text to find in the Trie\n\t* @param minCompoundLength - deprecated - allows words to be glued together\n\t*/\n\tfind(text, minCompoundLength = false) {\n\t\tconst minLength = !minCompoundLength ? void 0 : minCompoundLength === true ? defaultLegacyMinCompoundLength : minCompoundLength;\n\t\tconst options = this.createFindOptions({\n\t\t\tcompoundMode: minLength ? \"legacy\" : \"compound\",\n\t\t\tlegacyMinCompoundLength: minLength\n\t\t});\n\t\treturn findWordNode(this.root, text, options).node;\n\t}\n\t/**\n\t* A case sensitive search for the word.\n\t* @param word - the word to search for.\n\t* @param minLegacyCompoundLength - minimum length of legacy compounds to consider.\n\t* @returns true if the word is found and not forbidden.\n\t*/\n\thas(word, minLegacyCompoundLength) {\n\t\tif (minLegacyCompoundLength !== void 0) return this.#hasLegacy(word, minLegacyCompoundLength);\n\t\treturn this.hasWord(word, true);\n\t}\n\t#hasLegacy(word, minLegacyCompoundLength) {\n\t\tif (this.hasWord(word, false)) return true;\n\t\tif (minLegacyCompoundLength) return !!this.findWord(word, {\n\t\t\tuseLegacyWordCompounds: minLegacyCompoundLength,\n\t\t\tcaseSensitive: false\n\t\t}).found;\n\t\treturn false;\n\t}\n\t/**\n\t* Determine if a word is in the dictionary.\n\t* @param word - the exact word to search for - must be normalized.\n\t* @param caseSensitive - false means also searching a dictionary where the words were normalized to lower case and accents removed.\n\t* @returns true if the word was found and is not forbidden.\n\t*/\n\thasWord(word, caseSensitive) {\n\t\tconst f = this.findWord(word, { caseSensitive });\n\t\treturn !!f.found && !f.forbidden;\n\t}\n\tfindWord(word, options) {\n\t\tif (options?.useLegacyWordCompounds) {\n\t\t\tconst len = options.useLegacyWordCompounds !== true ? options.useLegacyWordCompounds : defaultLegacyMinCompoundLength;\n\t\t\tconst findOptions = this.createFindOptions({\n\t\t\t\tlegacyMinCompoundLength: len,\n\t\t\t\tmatchCase: options.caseSensitive,\n\t\t\t\tcompoundSeparator: void 0\n\t\t\t});\n\t\t\treturn findLegacyCompound(this.root, word, findOptions);\n\t\t}\n\t\tif (options?.compoundSeparator) return findWord(this.root, word, this.createFindOptions({\n\t\t\tmatchCase: options.caseSensitive,\n\t\t\tcompoundSeparator: options.compoundSeparator\n\t\t}));\n\t\tconst findOptions = this.createFindOptionsMatchCase(options?.caseSensitive);\n\t\treturn findWord(this.root, word, findOptions);\n\t}\n\t/**\n\t* Determine if a word is in the forbidden word list.\n\t* @param word the word to lookup.\n\t*/\n\tisForbiddenWord(word) {\n\t\treturn this.hasForbidden && isForbiddenWord(this.root, word, this.options.forbiddenWordPrefix);\n\t}\n\t/**\n\t* Provides an ordered sequence of words with the prefix of text.\n\t*/\n\tcompleteWord(text) {\n\t\tconst n = this.find(text);\n\t\tconst compoundChar = this.options.compoundCharacter;\n\t\tconst subNodes = pipeSync(iteratorTrieWords(n || {}), opFilterSync((w) => w[w.length - 1] !== compoundChar), opMapSync((suffix) => text + suffix));\n\t\treturn pipeSync(n && isWordTerminationNode(n) ? [text] : [], opAppendSync(subNodes));\n\t}\n\t/**\n\t* Suggest spellings for `text`. The results are sorted by edit distance with changes near the beginning of a word having a greater impact.\n\t* @param text - the text to search for\n\t* @param maxNumSuggestions - the maximum number of suggestions to return.\n\t* @param compoundMethod - Use to control splitting words.\n\t* @param numChanges - the maximum number of changes allowed to text. This is an approximate value, since some changes cost less than others.\n\t* the lower the value, the faster results are returned. Values less than 4 are best.\n\t*/\n\tsuggest(text, options) {\n\t\treturn this.suggestWithCost(text, options).map((a) => a.word);\n\t}\n\t/**\n\t* Suggest spellings for `text`. The results are sorted by edit distance with changes near the beginning of a word having a greater impact.\n\t* The results include the word and adjusted edit cost. This is useful for merging results from multiple tries.\n\t*/\n\tsuggestWithCost(text, options) {\n\t\tconst sep = options.compoundSeparator;\n\t\tconst adjWord = sep ? replaceAllFactory(sep, \"\") : (a) => a;\n\t\tconst optFilter = options.filter;\n\t\tconst filter = optFilter ? (word, cost) => {\n\t\t\tconst w = adjWord(word);\n\t\t\treturn !this.isForbiddenWord(w) && optFilter(w, cost);\n\t\t} : (word) => !this.isForbiddenWord(adjWord(word));\n\t\tconst opts = {\n\t\t\t...options,\n\t\t\tfilter\n\t\t};\n\t\treturn suggest(this.root, text, opts);\n\t}\n\t/**\n\t* genSuggestions will generate suggestions and send them to `collector`. `collector` is responsible for returning the max acceptable cost.\n\t* Costs are measured in weighted changes. A cost of 100 is the same as 1 edit. Some edits are considered cheaper.\n\t* Returning a MaxCost < 0 will effectively cause the search for suggestions to stop.\n\t*/\n\tgenSuggestions(collector, compoundMethod) {\n\t\tconst filter = (word) => !this.isForbiddenWord(word);\n\t\tconst options = clean({\n\t\t\tcompoundMethod,\n\t\t\t...collector.genSuggestionOptions\n\t\t});\n\t\tconst suggestions = genSuggestions(this.root, collector.word, options);\n\t\tcollector.collect(suggestions, void 0, filter);\n\t}\n\t/**\n\t* Returns an iterator that can be used to get all words in the trie. For some dictionaries, this can result in millions of words.\n\t*/\n\t*words(prefix) {\n\t\tif (!prefix) {\n\t\t\tyield* iteratorTrieWords(this.root);\n\t\t\treturn;\n\t\t}\n\t\tconst node = this.find(prefix);\n\t\tif (!node) return;\n\t\tif (node.f) yield prefix;\n\t\tfor (const suffix of iteratorTrieWords(node)) yield prefix + suffix;\n\t}\n\t/**\n\t* Allows iteration over the entire tree.\n\t* On the returned Iterator, calling .next(goDeeper: boolean), allows for controlling the depth.\n\t*/\n\titerate() {\n\t\treturn walker(this.root);\n\t}\n\tinsert(word) {\n\t\tinsert(word, this.root);\n\t\treturn this;\n\t}\n\tcalcIsLegacy() {\n\t\tconst c = this.root.c;\n\t\treturn !(c && c[this._options.compoundCharacter] || c[this._options.stripCaseAndAccentsPrefix] || c[this._options.forbiddenWordPrefix]);\n\t}\n\tstatic create(words, options) {\n\t\tconst root = createTrieRootFromList(words, options);\n\t\torderTrie(root);\n\t\treturn new Trie(root, void 0);\n\t}\n\tcreateFindOptions(options = {}) {\n\t\treturn createFindOptions({\n\t\t\t...this._findOptionsDefaults,\n\t\t\t...options\n\t\t});\n\t}\n\tlastCreateFindOptionsMatchCaseMap = /* @__PURE__ */ new Map();\n\tcreateFindOptionsMatchCase(matchCase) {\n\t\tconst f = this.lastCreateFindOptionsMatchCaseMap.get(matchCase);\n\t\tif (f !== void 0) return f;\n\t\tconst findOptions = this.createFindOptions({ matchCase });\n\t\tthis.lastCreateFindOptionsMatchCaseMap.set(matchCase, findOptions);\n\t\treturn findOptions;\n\t}\n};\n//#endregion\n//#region src/lib/utils/secondChanceCache.ts\nvar SecondChanceCache = class {\n\tmap0 = /* @__PURE__ */ new Map();\n\tmap1 = /* @__PURE__ */ new Map();\n\tmaxL0Size;\n\tconstructor(maxL0Size) {\n\t\tthis.maxL0Size = maxL0Size;\n\t}\n\thas(key) {\n\t\tif (this.map0.has(key)) return true;\n\t\tif (this.map1.has(key)) {\n\t\t\tthis.set(key, this.get1(key));\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tget(key) {\n\t\treturn this.map0.get(key) ?? this.get1(key);\n\t}\n\tset(key, value) {\n\t\tif (this.map0.size >= this.maxL0Size && !this.map0.has(key)) {\n\t\t\tthis.map1 = this.map0;\n\t\t\tthis.map0 = /* @__PURE__ */ new Map();\n\t\t}\n\t\tthis.map0.set(key, value);\n\t\treturn this;\n\t}\n\tget size() {\n\t\treturn this.map0.size + this.map1.size;\n\t}\n\tget size0() {\n\t\treturn this.map0.size;\n\t}\n\tget size1() {\n\t\treturn this.map1.size;\n\t}\n\tclear() {\n\t\tthis.map0.clear();\n\t\tthis.map1.clear();\n\t\treturn this;\n\t}\n\tget1(key) {\n\t\tif (this.map1.has(key)) {\n\t\t\tconst v = this.map1.get(key);\n\t\t\tthis.map1.delete(key);\n\t\t\tthis.map0.set(key, v);\n\t\t\treturn v;\n\t\t}\n\t}\n\ttoArray() {\n\t\treturn [...this.map1, ...this.map0];\n\t}\n};\n//#endregion\n//#region src/lib/TrieBuilder.ts\n/**\n* Builds an optimized Trie from a Iterable<string>. It attempts to reduce the size of the trie\n* by finding common endings.\n* @param words Iterable set of words -- no processing is done on the words, they are inserted as is.\n* @param trieOptions options for the Trie\n*/\nfunction buildTrie(words, trieOptions) {\n\treturn new TrieBuilder(words, trieOptions).build();\n}\n/**\n* Builds a Trie from a Iterable<string>. NO attempt a reducing the size of the Trie is done.\n* @param words Iterable set of words -- no processing is done on the words, they are inserted as is.\n* @param trieOptions options for the Trie\n*/\nfunction buildTrieFast(words, trieOptions) {\n\treturn new Trie(createTrieRootFromList(words, trieOptions), void 0);\n}\nconst MAX_NUM_SIGS = 1e5;\nconst MAX_TRANSFORMS = 1e6;\nconst MAX_CACHE_SIZE = 1e6;\nvar TrieBuilder = class {\n\tcount = 0;\n\tsignatures = new SecondChanceCache(MAX_NUM_SIGS);\n\tcached = new SecondChanceCache(MAX_CACHE_SIZE);\n\ttransforms = new SecondChanceCache(MAX_TRANSFORMS);\n\t_eow;\n\t/** position 0 of lastPath is always the root */\n\tlastPath = [{\n\t\ts: \"\",\n\t\tn: {\n\t\t\tid: 0,\n\t\t\tf: void 0,\n\t\t\tc: void 0\n\t\t}\n\t}];\n\ttails = /* @__PURE__ */ new Map();\n\ttrieOptions;\n\tnumWords = 0;\n\t_debug_lastWordsInserted = [];\n\t_debug_mode = false;\n\tconstructor(words, trieOptions) {\n\t\tthis._eow = this.#createNodeFrozen(1);\n\t\tthis.tails.set(\"\", this._eow);\n\t\tthis.#canBeCached(this._eow);\n\t\tthis.signatures.set(this.#signature(this._eow), this._eow);\n\t\tthis.cached.set(this._eow, this._eow.id ?? ++this.count);\n\t\tthis.trieOptions = Object.freeze(mergeOptionalWithDefaults(trieOptions));\n\t\tif (words) this.insert(words);\n\t}\n\tget _root() {\n\t\treturn trieNodeToRoot(this.lastPath[0].n, this.trieOptions);\n\t}\n\t#signature(n) {\n\t\tconst isWord = n.f ? \"*\" : \"\";\n\t\tconst entries = n.c ? Object.entries(n.c) : void 0;\n\t\tconst c = entries ? entries.map(([k, n]) => [k, this.cached.get(n)]) : void 0;\n\t\treturn isWord + (c ? JSON.stringify(c) : \"\");\n\t}\n\t#canBeCached(n) {\n\t\tif (!n.c) return true;\n\t\tfor (const v of Object.values(n.c)) if (!this.cached.has(v)) return false;\n\t\treturn true;\n\t}\n\t#tryCacheFrozen(n) {\n\t\tassertFrozen(n);\n\t\tif (this.cached.has(n)) return n;\n\t\tthis.cached.set(n, n.id ?? ++this.count);\n\t\treturn n;\n\t}\n\t#freeze(n) {\n\t\tif (Object.isFrozen(n)) return n;\n\t\t// istanbul ignore else\n\t\tif (n.c) {\n\t\t\tconst c = Object.entries(n.c).sort((a, b) => a[0] < b[0] ? -1 : 1).map(([k, n]) => [k, this.#freeze(n)]);\n\t\t\tn.c = Object.fromEntries(c);\n\t\t\tObject.freeze(n.c);\n\t\t}\n\t\treturn Object.freeze(n);\n\t}\n\t#tryToCache(n) {\n\t\tif (!this.#canBeCached(n)) return n;\n\t\tconst sig = this.#signature(n);\n\t\tconst ref = this.signatures.get(sig);\n\t\tif (ref !== void 0) return this.#tryCacheFrozen(ref);\n\t\tthis.signatures.set(sig, this.#freeze(n));\n\t\treturn n;\n\t}\n\t#storeTransform(src, s, result) {\n\t\tif (!Object.isFrozen(result) || !Object.isFrozen(src)) return;\n\t\tthis.#logDebug(\"storeTransform\", () => ({\n\t\t\ts,\n\t\t\tsrc: this.#debNodeInfo(src),\n\t\t\tresult: this.#debNodeInfo(result)\n\t\t}));\n\t\tconst t = this.transforms.get(src) ?? /* @__PURE__ */ new Map();\n\t\tt.set(s, result);\n\t\tthis.transforms.set(src, t);\n\t}\n\t#addChild(node, head, child) {\n\t\tif (node.c?.[head] !== child) {\n\t\t\tlet c = node.c || Object.create(null);\n\t\t\tif (Object.isFrozen(c)) c = Object.assign(Object.create(null), c);\n\t\t\tc[head] = child;\n\t\t\tif (Object.isFrozen(node)) node = this.#createNode(node.f, c);\n\t\t\telse node.c = c;\n\t\t}\n\t\treturn Object.isFrozen(child) ? this.#tryToCache(node) : node;\n\t}\n\t#buildTail(s) {\n\t\tconst ss = s.join(\"\");\n\t\tconst v = this.tails.get(ss);\n\t\tif (v) return v;\n\t\tconst head = s[0];\n\t\tconst tail = s.slice(1);\n\t\tconst t = this.tails.get(tail.join(\"\"));\n\t\tconst c = t || this.#buildTail(tail);\n\t\tconst n = this.#addChild(this.#createNode(), head, c);\n\t\tif (!t) return n;\n\t\tconst cachedNode = this.#tryCacheFrozen(this.#freeze(n));\n\t\tthis.tails.set(ss, cachedNode);\n\t\treturn cachedNode;\n\t}\n\t#_insert(node, s, d) {\n\t\tthis.#logDebug(\"_insert\", () => ({\n\t\t\tn: this.#debNodeInfo(node),\n\t\t\ts,\n\t\t\td,\n\t\t\tw: this.lastPath.map((a) => a.s).join(\"\")\n\t\t}));\n\t\tconst orig = node;\n\t\tif (Object.isFrozen(node)) {\n\t\t\tconst n = this.transforms.get(node)?.get(s.join(\"\"));\n\t\t\tif (n) return this.#tryCacheFrozen(n);\n\t\t}\n\t\tif (!s.length) {\n\t\t\tif (!node.c) return this._eow;\n\t\t\telse {\n\t\t\t\tnode = this.#copyIfFrozen(node);\n\t\t\t\tnode.f = this._eow.f;\n\t\t\t\treturn node;\n\t\t\t}\n\t\t}\n\t\tconst head = s[0];\n\t\tconst tail = s.slice(1);\n\t\tconst cNode = node.c?.[head];\n\t\tconst child = cNode ? this.#_insert(cNode, tail, d + 1) : this.#buildTail(tail);\n\t\tnode = this.#addChild(node, head, child);\n\t\tthis.#storeTransform(orig, s.join(\"\"), node);\n\t\tthis.lastPath[d] = {\n\t\t\ts: head,\n\t\t\tn: child\n\t\t};\n\t\treturn node;\n\t}\n\tinsertWord(word) {\n\t\tthis.#logDebug(\"insertWord\", word);\n\t\tthis._debug_lastWordsInserted[this.numWords & 15] = word;\n\t\tthis.numWords++;\n\t\tconst chars = [...word];\n\t\tlet d = 1;\n\t\tfor (const s of chars) {\n\t\t\tif (this.lastPath[d]?.s !== s) break;\n\t\t\td++;\n\t\t}\n\t\tif (chars.length < d) d = chars.length;\n\t\tthis.lastPath.length = d;\n\t\td -= 1;\n\t\tconst { n } = this.lastPath[d];\n\t\tconst tail = chars.slice(d);\n\t\tthis.lastPath[d].n = this.#_insert(n, tail, d + 1);\n\t\twhile (d > 0) {\n\t\t\tconst { s, n } = this.lastPath[d];\n\t\t\td -= 1;\n\t\t\tconst parent = this.lastPath[d];\n\t\t\tconst pn = parent.n;\n\t\t\tparent.n = this.#addChild(pn, s, n);\n\t\t\tif (pn === parent.n) break;\n\t\t\tconst tail = chars.slice(d);\n\t\t\tthis.#storeTransform(pn, tail.join(\"\"), parent.n);\n\t\t}\n\t}\n\tinsert(words) {\n\t\tfor (const w of words) w && this.insertWord(w);\n\t}\n\t/**\n\t* Resets the builder\n\t*/\n\treset() {\n\t\tthis.lastPath = [{\n\t\t\ts: \"\",\n\t\t\tn: {\n\t\t\t\tid: 0,\n\t\t\t\tf: void 0,\n\t\t\t\tc: void 0\n\t\t\t}\n\t\t}];\n\t\tthis.cached.clear();\n\t\tthis.signatures.clear();\n\t\tthis.signatures.set(this.#signature(this._eow), this._eow);\n\t\tthis.count = 0;\n\t\tthis.cached.set(this._eow, this._eow.id ?? ++this.count);\n\t}\n\tbuild(consolidateSuffixes = false) {\n\t\tconst root = this._root;\n\t\tthis.reset();\n\t\tconst check = checkCircular(this._root);\n\t\tif (check.isCircular) {\n\t\t\tconst { word, pos } = check.ref;\n\t\t\tconsole.error(\"Circular Reference %o\", {\n\t\t\t\tword,\n\t\t\t\tpos\n\t\t\t});\n\t\t\tthrow new Error(\"Trie: Circular Reference\");\n\t\t}\n\t\treturn new Trie(consolidateSuffixes ? consolidate(root) : root);\n\t}\n\t#debNodeInfo(node) {\n\t\treturn {\n\t\t\tid: node.id ?? \"?\",\n\t\t\tcid: this.cached.get(node) ?? \"?\",\n\t\t\tf: node.f || 0,\n\t\t\tc: node.c ? Object.fromEntries(Object.entries(node.c).map(([k, n]) => [k, {\n\t\t\t\tid: n.id,\n\t\t\t\tr: this.cached.get(n)\n\t\t\t}])) : void 0,\n\t\t\tL: Object.isFrozen(node)\n\t\t};\n\t}\n\t#logDebug(methodName, contentOrFunction) {\n\t\tthis.#runDebug(() => {\n\t\t\tconst content = typeof contentOrFunction === \"function\" ? contentOrFunction() : contentOrFunction;\n\t\t\tconsole.warn(\"%s: %o\", methodName, content);\n\t\t});\n\t}\n\t#runDebug(method) {\n\t\tif (this._debug_mode) method();\n\t}\n\t#copyIfFrozen(n) {\n\t\tif (!Object.isFrozen(n)) return n;\n\t\tconst c = n.c ? Object.assign(Object.create(null), n.c) : void 0;\n\t\treturn this.#createNode(n.f, c);\n\t}\n\t#createNodeFrozen(f, c) {\n\t\treturn this.#freeze(this.#createNode(f, c));\n\t}\n\t#createNode(f, c) {\n\t\treturn {\n\t\t\tid: ++this.count,\n\t\t\tf,\n\t\t\tc\n\t\t};\n\t}\n};\nfunction assertFrozen(n) {\n\tif (!(\"id\" in n)) console.warn(\"%o\", n);\n\tif (!Object.isFrozen(n) || !(\"id\" in n)) throw new Error(\"Must be TrieNodeExFrozen\");\n}\n//#endregion\n//#region src/lib/utils/normalizeWord.ts\n/**\n* Normalize word unicode.\n* @param text - text to normalize\n* @returns returns a word normalized to `NFC`\n*/\nconst normalizeWord = (text) => text.normalize();\n/**\n* converts text to lower case and removes any accents.\n* @param text - text to convert\n* @returns lowercase word without accents\n* @deprecated true\n*/\nconst normalizeWordToLowercase = (text) => text.toLowerCase().normalize(\"NFD\").replaceAll(/\\p{M}/gu, \"\");\n/**\n* generate case insensitive forms of a word\n* @param text - text to convert\n* @returns the forms of the word.\n*/\nconst normalizeWordForCaseInsensitive = (text) => {\n\tconst t = text.toLowerCase();\n\treturn [t, t.normalize(\"NFD\").replaceAll(/\\p{M}/gu, \"\")];\n};\n//#endregion\n//#region src/lib/SimpleDictionaryParser.ts\nconst BATCH_SIZE = 0;\nconst _defaultOptions = {\n\tcommentCharacter: \"#\",\n\toptionalCompoundCharacter: \"*\",\n\tcompoundCharacter: \"+\",\n\tforbiddenPrefix: \"!\",\n\tcaseInsensitivePrefix: \"~\",\n\tkeepExactPrefix: \"=\",\n\tstripCaseAndAccents: true,\n\tstripCaseAndAccentsKeepDuplicate: false,\n\tstripCaseAndAccentsOnForbidden: false,\n\tsplit: false,\n\tsplitKeepBoth: false,\n\tsplitSeparator: /[\\s,;]/g,\n\tkeepOptionalCompoundCharacter: false,\n\tsuggestionPrefix: \":\",\n\tdisableSuggestionHandling: false,\n\tmakeWordsForbidden: false\n};\nObject.freeze(_defaultOptions);\nconst cSpellToolDirective = \"cspell-dictionary:\";\n/**\n* Normalizes a dictionary words based upon prefix / suffixes.\n* Case insensitive versions are also generated.\n* @param options - defines prefixes used when parsing lines.\n* @returns words that have been normalized.\n*/\nfunction createDictionaryLineParserMapper(options) {\n\tconst _options = options || _defaultOptions;\n\tconst { commentCharacter = _defaultOptions.commentCharacter, optionalCompoundCharacter: optionalCompound = _defaultOptions.optionalCompoundCharacter, compoundCharacter: compound = _defaultOptions.compoundCharacter, caseInsensitivePrefix: ignoreCase = _defaultOptions.caseInsensitivePrefix, forbiddenPrefix: forbidden = _defaultOptions.forbiddenPrefix, keepExactPrefix: keepCase = _defaultOptions.keepExactPrefix, splitSeparator = _defaultOptions.splitSeparator, splitKeepBoth = _defaultOptions.splitKeepBoth, stripCaseAndAccentsKeepDuplicate = _defaultOptions.stripCaseAndAccentsKeepDuplicate, stripCaseAndAccentsOnForbidden = _defaultOptions.stripCaseAndAccentsOnForbidden, keepOptionalCompoundCharacter = _defaultOptions.keepOptionalCompoundCharacter, makeWordsForbidden = _defaultOptions.makeWordsForbidden } = _options;\n\tlet { stripCaseAndAccents = !makeWordsForbidden && _defaultOptions.stripCaseAndAccents, split = _defaultOptions.split, suggestionPrefix = _defaultOptions.suggestionPrefix } = _options;\n\tconst disableSuggestionHandling = _options.disableSuggestionHandling || [\n\t\t\"\",\n\t\t\" \",\n\t\t\"\t\",\n\t\t\"\\0\"\n\t].includes(suggestionPrefix);\n\tif (disableSuggestionHandling) suggestionPrefix = \" \";\n\tfunction isString(line) {\n\t\treturn typeof line === \"string\";\n\t}\n\tfunction trim(line) {\n\t\treturn line.trim();\n\t}\n\tfunction removeComments(line) {\n\t\tconst idx = line.indexOf(commentCharacter);\n\t\tif (idx < 0) return line;\n\t\tconst idxDirective = line.indexOf(cSpellToolDirective, idx);\n\t\tif (idxDirective >= 0) {\n\t\t\tconst flags = line.slice(idxDirective).split(/[\\s,;]/g).map((s) => s.trim()).filter((a) => !!a);\n\t\t\tfor (const flag of flags) switch (flag) {\n\t\t\t\tcase \"split\":\n\t\t\t\t\tsplit = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"no-split\":\n\t\t\t\t\tsplit = false;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"no-generate-alternatives\":\n\t\t\t\t\tstripCaseAndAccents = false;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"generate-alternatives\": stripCaseAndAccents = true;\n\t\t\t}\n\t\t}\n\t\treturn line.slice(0, idx).trim();\n\t}\n\tfunction filterEmptyLines(line) {\n\t\treturn !!line;\n\t}\n\tfunction* mapOptionalPrefix(line) {\n\t\tif (line[0] === optionalCompound) {\n\t\t\tconst t = line.slice(1);\n\t\t\tyield t;\n\t\t\tyield compound + t;\n\t\t} else yield line;\n\t}\n\tfunction* mapOptionalSuffix(line) {\n\t\tif (line.slice(-1) === optionalCompound) {\n\t\t\tconst t = line.slice(0, -1);\n\t\t\tyield t;\n\t\t\tyield t + compound;\n\t\t} else yield line;\n\t}\n\tconst doNotNormalizePrefix = Object.create(null);\n\t[\n\t\tignoreCase,\n\t\tkeepCase,\n\t\t\"\\\"\"\n\t].forEach((prefix) => doNotNormalizePrefix[prefix] = true);\n\tif (!stripCaseAndAccentsOnForbidden) doNotNormalizePrefix[forbidden] = true;\n\tfunction removeDoublePrefix(w) {\n\t\treturn w.startsWith(ignoreCase + ignoreCase) ? w.slice(1) : w;\n\t}\n\tfunction stripKeepCasePrefixAndQuotes(word) {\n\t\tword = word.replaceAll(/\"(.*?)\"/g, \"$1\");\n\t\treturn word[0] === keepCase ? word.slice(1) : word;\n\t}\n\tfunction _normalize(word) {\n\t\treturn normalizeWord(stripKeepCasePrefixAndQuotes(word));\n\t}\n\tfunction* handleForbiddenPrefix(words) {\n\t\tif (!makeWordsForbidden) {\n\t\t\tyield* words;\n\t\t\treturn;\n\t\t}\n\t\tconst f = forbidden;\n\t\tconst ff = f + f;\n\t\tconst sug = suggestionPrefix;\n\t\tfor (const word of words) {\n\t\t\tif (word.startsWith(sug)) {\n\t\t\t\tyield word;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tyield (f + word).replaceAll(ff, \"\");\n\t\t}\n\t}\n\tfunction* mapNormalize(word) {\n\t\tconst nWord = _normalize(word);\n\t\tconst forms = /* @__PURE__ */ new Set();\n\t\tforms.add(nWord);\n\t\tif (stripCaseAndAccents && !(word[0] in doNotNormalizePrefix)) for (const n of normalizeWordForCaseInsensitive(nWord)) (stripCaseAndAccentsKeepDuplicate || n !== nWord) && forms.add(ignoreCase + n);\n\t\tyield* forms;\n\t}\n\tfunction* splitWords(lines) {\n\t\tfor (const line of lines) {\n\t\t\tif (split) {\n\t\t\t\tyield* splitLine(line.includes(\"\\\"\") ? line.replaceAll(/\".*?\"/g, (quoted) => \" \" + quoted.replaceAll(/(\\s)/g, \"\\\\$1\") + \" \") : line, splitSeparator).map((escaped) => escaped.replaceAll(\"\\\\\", \"\"));\n\t\t\t\tif (!splitKeepBoth) continue;\n\t\t\t}\n\t\t\tyield line;\n\t\t}\n\t}\n\tfunction* splitLines(paragraphs) {\n\t\tfor (const paragraph of paragraphs) yield* paragraph.split(\"\\n\");\n\t}\n\t/**\n\t* Handle suggestion lines.\n\t* `:` is the default suggestions prefix.\n\t*\n\t* The format can be:\n\t* - `:word:suggestion1` # word with a single preferred suggestion (note: it is only a suggestion.)\n\t* - `:word : suggestion1` # word with a single preferred suggestion (space will be removed).\n\t* - `:word:suggestion1,suggestion2` # word with multiple preferred suggestions\n\t* - `:word -> suggestion1, suggestion2` # word with multiple preferred suggestions (alternate format)\n\t* - `:word:suggestion1,suggestion2` # this is purely a suggestion entry.\n\t* - `!word:suggestion1,suggestion2` # forbidden word with suggestions.\n\t* - `word:suggestion1,suggestion2` # normal word with suggestions, the word is included in the dictionary.\n\t*\n\t* They are stored in the dictionary with the following format:\n\t* `<prefix><word><suggestionPrefix><index><suggestionPrefix><suggestion>`\n\t*\n\t*\n\t* Example forbidden word with suggestions:\n\t* - `!word` the word itself\n\t* - `!word:0:first_suggestion` the word itself\n\t* - `!word:1:second_suggestion` the word itself\n\t* @param lines\n\t*/\n\tfunction* handleSuggestions(lines) {\n\t\tif (disableSuggestionHandling) {\n\t\t\tyield* lines;\n\t\t\treturn;\n\t\t}\n\t\tfor (const line of lines) yield* handleSuggestion(line);\n\t}\n\tconst r = /^\\s*(?<prefix>[!:~]*)(?<word>.*?)(?:->|:([0-9a-f]{1,2}:)?)(?<suggestions>.*)$/;\n\tconst suggestionSequence = /* @__PURE__ */ new Map();\n\tconst knownSuggestions = /* @__PURE__ */ new Set();\n\tfunction addSuggestion(word, suggestion) {\n\t\tconst p = suggestionPrefix;\n\t\tconst pp = p + p;\n\t\tconst n = suggestionSequence.get(word) || 0;\n\t\tconst k = word + pp + suggestion;\n\t\tif (knownSuggestions.has(k)) return;\n\t\tknownSuggestions.add(k);\n\t\tsuggestionSequence.set(word, n + 1);\n\t\treturn k.replace(pp, p + n.toString(16) + p);\n\t}\n\tfunction* handleSuggestion(line) {\n\t\tconst hasAltFormat = line.includes(\"->\");\n\t\tif (!line.includes(\":\") && !hasAltFormat) {\n\t\t\tyield line;\n\t\t\treturn;\n\t\t}\n\t\tconst m = line.match(r);\n\t\tif (!m || !m.groups) {\n\t\t\tyield line;\n\t\t\treturn;\n\t\t}\n\t\tconst prefix = m.groups[\"prefix\"] || \"\";\n\t\tconst word = (m.groups[\"word\"] || \"\").trim();\n\t\tconst suggestions = (m.groups[\"suggestions\"] || \"\").split(\",\").map((s) => s.trim()).filter((s) => !!s);\n\t\tif (!prefix.includes(\":\")) yield prefix + word;\n\t\tconst ww = \":\" + word;\n\t\tyield ww;\n\t\tfor (let i = 0; i < suggestions.length; i++) {\n\t\t\tconst sug = addSuggestion(ww, suggestions[i]);\n\t\t\tif (sug) yield sug;\n\t\t}\n\t}\n\tconst mapCompounds = keepOptionalCompoundCharacter ? [] : [opConcatMapSync(mapOptionalPrefix), opConcatMapSync(mapOptionalSuffix)];\n\tconst optionalOperators = [];\n\tif (options?.sortBatchSize) optionalOperators.push(createBatchAndSortLines(options.sortBatchSize));\n\treturn opCombineSync(opFilterSync(isString), splitLines, opMapSync(removeComments), splitWords, opMapSync(trim), opFilterSync(filterEmptyLines), handleSuggestions, ...mapCompounds, opConcatMapSync(mapNormalize), handleForbiddenPrefix, opMapSync(removeDoublePrefix), ...optionalOperators);\n}\n/**\n* Normalizes a dictionary words based upon prefix / suffixes.\n* Case insensitive versions are also generated.\n* @param lines - one word per line\n* @param _options - defines prefixes used when parsing lines.\n* @returns words that have been normalized.\n*/\nfunction parseDictionaryLines(lines, options) {\n\treturn createDictionaryLineParserMapper(options)(typeof lines === \"string\" ? [lines] : lines);\n}\nfunction parseLinesToDictionaryLegacy(lines, options) {\n\tconst dictLines = parseDictionaryLines(lines, mergeOptions(_defaultOptions, options, { disableSuggestionHandling: true }));\n\treturn buildTrieFast([...new Set(dictLines)].sort(), trieInfoFromOptions(options));\n}\nfunction parseDictionaryLegacy(text, options) {\n\treturn parseLinesToDictionaryLegacy(typeof text === \"string\" ? text.split(\"\\n\") : text, options);\n}\nfunction parseLinesToDictionary(lines, options) {\n\tconst endPerf = measurePerf(\"parseLinesToDictionary\");\n\tconst dictLines = parseDictionaryLines(lines, mergeOptions(_defaultOptions, options));\n\tconst words = [...new Set(dictLines)].sort();\n\tconst { optimize, useStringTable } = options || {};\n\tconst t = buildITrieFromWords(words, trieInfoFromOptions(options), {\n\t\toptimize,\n\t\tuseStringTable\n\t});\n\tendPerf();\n\treturn t;\n}\nfunction parseDictionary(text, options) {\n\treturn parseLinesToDictionary(typeof text === \"string\" ? text.split(\"\\n\") : text, options);\n}\nfunction trieInfoFromOptions(options) {\n\tconst info = extractTrieInfo(options);\n\tconst sugPrefix = info.suggestionPrefix ?? \":\";\n\tif (options?.disableSuggestionHandling || sugPrefix !== \":\") info.suggestionPrefix = \" \";\n\treturn info;\n}\nfunction mergeOptions(base, ...partials) {\n\tconst opt = { ...base };\n\tfor (const p of partials) {\n\t\tif (!p) continue;\n\t\tObject.assign(opt, p);\n\t}\n\treturn opt;\n}\nconst RegExpToEncode = /\\\\([\\s,;])/g;\nconst RegExpDecode = /<<(%[\\da-f]{2})>>/gi;\nfunction encodeLine(line) {\n\treturn line.replaceAll(RegExpToEncode, (_, v) => \"<<\" + encodeURIComponent(v) + \">>\");\n}\nfunction decodeLine(line) {\n\treturn line.replaceAll(RegExpDecode, (_, v) => \"\\\\\" + decodeURIComponent(v));\n}\nfunction splitLine(line, regExp) {\n\treturn encodeLine(line).split(regExp).map((line) => decodeLine(line));\n}\nfunction createBatchAndSortLines(batchSize = BATCH_SIZE) {\n\tif (batchSize <= 1) return (s) => s;\n\tfunction* batchAndSortLines(lines) {\n\t\tconst maxSize = batchSize;\n\t\tconst batch = Array(maxSize);\n\t\tlet i = 0;\n\t\tfor (const line of lines) {\n\t\t\tbatch[i++] = line;\n\t\t\tif (i >= maxSize) {\n\t\t\t\tbatch.sort();\n\t\t\t\tyield* batch;\n\t\t\t\ti = 0;\n\t\t\t}\n\t\t}\n\t\tbatch.length = i;\n\t\tbatch.sort();\n\t\tyield* batch;\n\t}\n\treturn batchAndSortLines;\n}\n//#endregion\n//#region src/lib/utils/decompress.ts\nasync function decompress(data, method = \"gzip\") {\n\tconst ds = new DecompressionStream(method);\n\tconst writer = ds.writable.getWriter();\n\tconst reader = ds.readable.getReader();\n\ttry {\n\t\tconst pWrite = writer.write(data).then(() => writer.close());\n\t\tconst chunks = [];\n\t\tlet size = 0;\n\t\twhile (true) {\n\t\t\tconst chunk = await reader.read();\n\t\t\tif (chunk.done) break;\n\t\t\tchunks.push(chunk.value);\n\t\t\tsize += chunk.value.length;\n\t\t}\n\t\tconst result = new Uint8Array(size);\n\t\tfor (let offset = 0, i = 0; i < chunks.length; i++) {\n\t\t\tresult.set(chunks[i], offset);\n\t\t\toffset += chunks[i].length;\n\t\t}\n\t\tawait pWrite;\n\t\treturn result;\n\t} finally {\n\t\treader.releaseLock();\n\t\twriter.releaseLock();\n\t}\n}\n//#endregion\n//#region src/lib/decodeTrie.ts\nfunction decodeTrie(raw) {\n\tconst endPerf = measurePerf(\"decodeTrie\");\n\tconst t = new ITrieImpl(decodeTrieData(raw));\n\tendPerf();\n\treturn t;\n}\nasync function decodeFile(file, options) {\n\tlet pathname = file.url.pathname;\n\tlet content = file.content;\n\tif (pathname.endsWith(\".gz\")) {\n\t\tpathname = pathname.slice(0, -3);\n\t\tif (typeof content !== \"string\") content = await decompress(content, \"gzip\");\n\t}\n\tif (pathname.endsWith(\".trie\") || pathname.endsWith(\".btrie\")) return decodeTrie(content);\n\treturn parseDictionary(typeof content === \"string\" ? content : new TextDecoder().decode(content), options);\n}\nasync function convertToBTrie(file, options) {\n\tconst bTrieData = encodeITrieToBTrie(await decodeFile(file, options), options);\n\tconst url = new URL(file.url);\n\turl.pathname = url.pathname.replaceAll(/\\.gz$/g, \"\");\n\turl.pathname = url.pathname.split(\".\").slice(0, -1).join(\".\") + \".btrie\";\n\treturn {\n\t\turl,\n\t\tcontent: bTrieData\n\t};\n}\n//#endregion\n//#region src/lib/io/importExportV3.ts\nconst specialCharacters = stringToCharSet([\n\t\"$\",\n\t\"<\",\n\t\"\\n\",\n\t\"#\",\n\t\";\",\n\t\"\\\\\",\n\t\"\\r\",\n\t\"0123456789\",\n\t\"`~!@#$%^&*()_-+=[]{};:'\\\"<>,./?\\\\|\"\n].join(\"\"));\nconst specialCharacterMap = /* @__PURE__ */ new Map([\n\t[\"\\n\", \"\\\\n\"],\n\t[\"\\r\", \"\\\\r\"],\n\t[\"\\\\\", \"\\\\\\\\\"]\n]);\nconst specialPrefix = stringToCharSet(\"~!\");\nconst WORDS_PER_LINE = 20;\nconst DATA = \"__DATA__\";\nfunction generateHeader(base, comment) {\n\treturn [\n\t\t\"#!/usr/bin/env cspell-trie reader\",\n\t\t\"TrieXv3\",\n\t\t\"base=\" + base,\n\t\t...comment ? comment.split(\"\\n\").map((a) => \"# \" + a) : [],\n\t\t\"# Data:\",\n\t\tDATA\n\t].map((a) => a + \"\\n\");\n}\n/**\n* Serialize a TrieRoot.\n*/\nfunction serializeTrie$1(root, options = 16) {\n\toptions = typeof options === \"number\" ? {\n\t\tbase: options,\n\t\taddLineBreaksToImproveDiffs: false\n\t} : options;\n\tconst { base = 16, comment = \"\", addLineBreaksToImproveDiffs: addBreaks = true } = options;\n\tconst radix = base > 36 ? 36 : base < 10 ? 10 : base;\n\tconst cache = /* @__PURE__ */ new Map();\n\tconst cacheShouldRef = /* @__PURE__ */ new Map();\n\tlet count = 0;\n\tconst backBuffer = {\n\t\tlast: \"\",\n\t\tcount: 0,\n\t\twords: 0,\n\t\teol: false\n\t};\n\tconst optimizeSimpleReferences = options.optimizeSimpleReferences ?? false;\n\tconst wordChars = [];\n\tfunction ref(n) {\n\t\treturn \"#\" + n.toString(radix) + \";\";\n\t}\n\tfunction escape(s) {\n\t\treturn s in specialCharacters ? \"\\\\\" + (specialCharacterMap.get(s) || s) : s;\n\t}\n\tfunction* flush() {\n\t\twhile (backBuffer.count) {\n\t\t\tconst n = Math.min(9, backBuffer.count);\n\t\t\tyield n > 1 ? backBuffer.last + n : backBuffer.last;\n\t\t\tbackBuffer.last = \"<\";\n\t\t\tbackBuffer.count -= n;\n\t\t}\n\t\tif (backBuffer.eol) {\n\t\t\tyield \"\\n\";\n\t\t\tbackBuffer.eol = false;\n\t\t\tbackBuffer.words = 0;\n\t\t}\n\t}\n\tfunction* emit(s) {\n\t\tswitch (s) {\n\t\t\tcase \"$\":\n\t\t\t\tyield* flush();\n\t\t\t\tbackBuffer.last = \"$\";\n\t\t\t\tbackBuffer.count = 0;\n\t\t\t\tbackBuffer.words++;\n\t\t\t\tbreak;\n\t\t\tcase \"<\":\n\t\t\t\tbackBuffer.count++;\n\t\t\t\tbreak;\n\t\t\tcase \"\\n\":\n\t\t\t\tbackBuffer.eol = true;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tif (backBuffer.words >= WORDS_PER_LINE) backBuffer.eol = true;\n\t\t\t\tyield* flush();\n\t\t\t\tif (s.startsWith(\"#\")) backBuffer.words++;\n\t\t\t\tyield s;\n\t\t}\n\t}\n\tfunction* walk(node, depth) {\n\t\tconst r = cache.get(node);\n\t\tif (r !== void 0 && (!optimizeSimpleReferences || !shouldSimpleRef(node))) {\n\t\t\tyield* emit(ref(r));\n\t\t\treturn;\n\t\t}\n\t\tif (node.c) {\n\t\t\tif (addBreaks && depth > 0 && depth <= 2) yield* emit(\"\\n\");\n\t\t\tcache.set(node, count++);\n\t\t\tconst c = Object.entries(node.c).sort((a, b) => a[0] < b[0] ? -1 : 1);\n\t\t\tfor (const [s, n] of c) {\n\t\t\t\twordChars[depth] = s;\n\t\t\t\tyield* emit(escape(s));\n\t\t\t\tyield* walk(n, depth + 1);\n\t\t\t\tyield* emit(\"<\");\n\t\t\t\tif (depth === 0) yield* emit(\"\\n\");\n\t\t\t}\n\t\t}\n\t\tif (node.f) yield* emit(\"$\");\n\t\tif (addBreaks && (depth === 2 || depth === 3 && wordChars[0] in specialPrefix)) yield* emit(\"\\n\");\n\t}\n\tfunction* serialize(node) {\n\t\tyield* walk(node, 0);\n\t\tyield* flush();\n\t}\n\tfunction _calcShouldSimpleRef(node) {\n\t\tif (!node.c) return false;\n\t\tconst values = Object.values(node.c);\n\t\tif (values.length !== 1) return false;\n\t\tconst n = values[0];\n\t\treturn !!n.f && (!n.c || !Object.values(n.c).length);\n\t}\n\tfunction shouldSimpleRef(node) {\n\t\tconst r = cacheShouldRef.get(node);\n\t\tif (r !== void 0) return r;\n\t\tconst rr = _calcShouldSimpleRef(node);\n\t\tcacheShouldRef.set(node, rr);\n\t\treturn rr;\n\t}\n\treturn pipeSync(generateHeader(radix, comment), opAppendSync(bufferLines(serialize(root), 1200, \"\")));\n}\nfunction importTrie$1(srcLines) {\n\treturn importTrieV3AsTrieRoot(srcLines).root;\n}\nfunction stringToCharSet(values) {\n\tconst set = Object.create(null);\n\tconst len = values.length;\n\tfor (let i = 0; i < len; ++i) set[values[i]] = true;\n\treturn set;\n}\n//#endregion\n//#region src/lib/io/importExport.ts\nconst serializers = [\n\tserializeTrie$4,\n\tserializeTrie$4,\n\tserializeTrie$3,\n\tserializeTrie$1,\n\tserializeTrie$2\n];\nconst deserializers = [\n\timportTrie$5,\n\timportTrie$5,\n\timportTrie$4,\n\timportTrie$1,\n\timportTrie$3\n];\nconst DEFAULT_VERSION = 3;\n/**\n* Serialize a TrieNode.\n* Note: This is destructive. The node will no longer be usable.\n* Even though it is possible to preserve the trie, dealing with very large tries can consume a lot of memory.\n* Considering this is the last step before exporting, it was decided to let this be destructive.\n*/\nfunction serializeTrie(root, options = 16) {\n\tconst version = typeof options !== \"number\" && options.version ? options.version : DEFAULT_VERSION;\n\tconst method = serializers[version];\n\tif (!method) throw new Error(`Unknown version: ${version}`);\n\treturn method(root, options);\n}\nconst headerReg = /^\\s*TrieXv(\\d+)/m;\nfunction importTrie(input) {\n\tconst lines = Array.isArray(input) ? input : typeof input === \"string\" ? input.split(\"\\n\") : [...input];\n\tfunction parseHeaderRows(headerRows) {\n\t\tfor (let i = 0; i < headerRows.length; ++i) {\n\t\t\tconst match = headerRows[i].match(headerReg);\n\t\t\tif (match) return Number.parseInt(match[1], 10);\n\t\t}\n\t\tthrow new Error(\"Unknown file format\");\n\t}\n\tfunction readHeader(iter) {\n\t\tconst headerRows = [];\n\t\tfor (const entry of iter) {\n\t\t\tconst line = entry.trim();\n\t\t\theaderRows.push(line);\n\t\t\tif (line === \"*\" || line === \"__DATA__\") break;\n\t\t}\n\t\treturn headerRows;\n\t}\n\tconst version = parseHeaderRows(readHeader(lines));\n\tconst method = deserializers[version];\n\tif (!method) throw new Error(`Unsupported version: ${version}`);\n\treturn method(lines);\n}\n//#endregion\n//#region src/lib/models/locale/knownLocales.ts\nconst codes = [\n\t[\"af\", \"Afrikaans\"],\n\t[\n\t\t\"af-NA\",\n\t\t\"Afrikaans\",\n\t\t\"Namibia\"\n\t],\n\t[\n\t\t\"af-ZA\",\n\t\t\"Afrikaans\",\n\t\t\"South Africa\"\n\t],\n\t[\"ak\", \"Akan\"],\n\t[\n\t\t\"ak-GH\",\n\t\t\"Akan\",\n\t\t\"Ghana\"\n\t],\n\t[\"am\", \"Amharic\"],\n\t[\n\t\t\"am-ET\",\n\t\t\"Amharic\",\n\t\t\"Ethiopia\"\n\t],\n\t[\"ar\", \"Arabic\"],\n\t[\"ar-1\", \"Arabic\"],\n\t[\n\t\t\"ar-AE\",\n\t\t\"Arabic\",\n\t\t\"United Arab Emirates\"\n\t],\n\t[\n\t\t\"ar-BH\",\n\t\t\"Arabic\",\n\t\t\"Bahrain\"\n\t],\n\t[\n\t\t\"ar-DJ\",\n\t\t\"Arabic\",\n\t\t\"Djibouti\"\n\t],\n\t[\n\t\t\"ar-DZ\",\n\t\t\"Arabic\",\n\t\t\"Algeria\"\n\t],\n\t[\n\t\t\"ar-EG\",\n\t\t\"Arabic\",\n\t\t\"Egypt\"\n\t],\n\t[\"ar-EH\", \"Arabic\"],\n\t[\n\t\t\"ar-ER\",\n\t\t\"Arabic\",\n\t\t\"Eritrea\"\n\t],\n\t[\n\t\t\"ar-IL\",\n\t\t\"Arabic\",\n\t\t\"Israel\"\n\t],\n\t[\n\t\t\"ar-IQ\",\n\t\t\"Arabic\",\n\t\t\"Iraq\"\n\t],\n\t[\n\t\t\"ar-JO\",\n\t\t\"Arabic\",\n\t\t\"Jordan\"\n\t],\n\t[\n\t\t\"ar-KM\",\n\t\t\"Arabic\",\n\t\t\"Comoros\"\n\t],\n\t[\n\t\t\"ar-KW\",\n\t\t\"Arabic\",\n\t\t\"Kuwait\"\n\t],\n\t[\n\t\t\"ar-LB\",\n\t\t\"Arabic\",\n\t\t\"Lebanon\"\n\t],\n\t[\n\t\t\"ar-LY\",\n\t\t\"Arabic\",\n\t\t\"Libya\"\n\t],\n\t[\n\t\t\"ar-MA\",\n\t\t\"Arabic\",\n\t\t\"Morocco\"\n\t],\n\t[\n\t\t\"ar-MR\",\n\t\t\"Arabic\",\n\t\t\"Mauritania\"\n\t],\n\t[\n\t\t\"ar-OM\",\n\t\t\"Arabic\",\n\t\t\"Oman\"\n\t],\n\t[\"ar-PS\", \"Arabic\"],\n\t[\n\t\t\"ar-QA\",\n\t\t\"Arabic\",\n\t\t\"Qatar\"\n\t],\n\t[\n\t\t\"ar-SA\",\n\t\t\"Arabic\",\n\t\t\"Saudi Arabia\"\n\t],\n\t[\n\t\t\"ar-SD\",\n\t\t\"Arabic\",\n\t\t\"Sudan\"\n\t],\n\t[\n\t\t\"ar-SO\",\n\t\t\"Arabic\",\n\t\t\"Somalia\"\n\t],\n\t[\"ar-SS\", \"Arabic\"],\n\t[\n\t\t\"ar-SY\",\n\t\t\"Arabic\",\n\t\t\"Syria\"\n\t],\n\t[\n\t\t\"ar-TD\",\n\t\t\"Arabic\",\n\t\t\"Chad\"\n\t],\n\t[\n\t\t\"ar-TN\",\n\t\t\"Arabic\",\n\t\t\"Tunisia\"\n\t],\n\t[\n\t\t\"ar-YE\",\n\t\t\"Arabic\",\n\t\t\"Yemen\"\n\t],\n\t[\"as\", \"Assamese\"],\n\t[\n\t\t\"as-IN\",\n\t\t\"Assamese\",\n\t\t\"India\"\n\t],\n\t[\"az\", \"Azerbaijani\"],\n\t[\n\t\t\"az-AZ\",\n\t\t\"Azerbaijani\",\n\t\t\"Azerbaijan\"\n\t],\n\t[\"be\", \"Belarusian\"],\n\t[\n\t\t\"be-BY\",\n\t\t\"Belarusian\",\n\t\t\"Belarus\"\n\t],\n\t[\"bg\", \"Bulgarian\"],\n\t[\n\t\t\"bg-BG\",\n\t\t\"Bulgarian\",\n\t\t\"Bulgaria\"\n\t],\n\t[\"bm\", \"Bambara\"],\n\t[\n\t\t\"bm-ML\",\n\t\t\"Bambara\",\n\t\t\"Mali\"\n\t],\n\t[\"bn\", \"Bengali\"],\n\t[\n\t\t\"bn-BD\",\n\t\t\"Bengali\",\n\t\t\"Bangladesh\"\n\t],\n\t[\n\t\t\"bn-IN\",\n\t\t\"Bengali\",\n\t\t\"India\"\n\t],\n\t[\"bo\", \"Tibetan\"],\n\t[\n\t\t\"bo-CN\",\n\t\t\"Tibetan\",\n\t\t\"China\"\n\t],\n\t[\n\t\t\"bo-IN\",\n\t\t\"Tibetan\",\n\t\t\"India\"\n\t],\n\t[\"br\", \"Breton\"],\n\t[\n\t\t\"br-FR\",\n\t\t\"Breton\",\n\t\t\"France\"\n\t],\n\t[\"bs\", \"Bosnian\"],\n\t[\n\t\t\"bs-BA\",\n\t\t\"Bosnian\",\n\t\t\"Bosnia and Herzegovina\"\n\t],\n\t[\"ca\", \"Catalan\"],\n\t[\n\t\t\"ca-AD\",\n\t\t\"Catalan\",\n\t\t\"Andorra\"\n\t],\n\t[\n\t\t\"ca-ES\",\n\t\t\"Catalan\",\n\t\t\"Spain\"\n\t],\n\t[\n\t\t\"ca-FR\",\n\t\t\"Catalan\",\n\t\t\"France\"\n\t],\n\t[\n\t\t\"ca-IT\",\n\t\t\"Catalan\",\n\t\t\"Italy\"\n\t],\n\t[\"ce\", \"Chechen\"],\n\t[\n\t\t\"ce-RU\",\n\t\t\"Chechen\",\n\t\t\"Russia\"\n\t],\n\t[\"cs\", \"Czech\"],\n\t[\n\t\t\"cs-CZ\",\n\t\t\"Czech\",\n\t\t\"Czech Republic\"\n\t],\n\t[\"cu\", \"Old Slavonic\"],\n\t[\n\t\t\"cu-RU\",\n\t\t\"Old Slavonic\",\n\t\t\"Russia\"\n\t],\n\t[\"cy\", \"Welsh\"],\n\t[\n\t\t\"cy-GB\",\n\t\t\"Welsh\",\n\t\t\"United Kingdom\"\n\t],\n\t[\"da\", \"Danish\"],\n\t[\n\t\t\"da-DK\",\n\t\t\"Danish\",\n\t\t\"Denmark\"\n\t],\n\t[\n\t\t\"da-GL\",\n\t\t\"Danish\",\n\t\t\"Greenland\"\n\t],\n\t[\"de\", \"German\"],\n\t[\n\t\t\"de-AT\",\n\t\t\"German\",\n\t\t\"Austria\"\n\t],\n\t[\n\t\t\"de-BE\",\n\t\t\"German\",\n\t\t\"Belgium\"\n\t],\n\t[\n\t\t\"de-CH\",\n\t\t\"German\",\n\t\t\"Switzerland\"\n\t],\n\t[\n\t\t\"de-DE\",\n\t\t\"German\",\n\t\t\"Germany\"\n\t],\n\t[\n\t\t\"de-IT\",\n\t\t\"German\",\n\t\t\"Italy\"\n\t],\n\t[\n\t\t\"de-LI\",\n\t\t\"German\",\n\t\t\"Liechtenstein\"\n\t],\n\t[\n\t\t\"de-LU\",\n\t\t\"German\",\n\t\t\"Luxembourg\"\n\t],\n\t[\"dz\", \"Dzongkha\"],\n\t[\n\t\t\"dz-BT\",\n\t\t\"Dzongkha\",\n\t\t\"Bhutan\"\n\t],\n\t[\"ee\", \"Ewe\"],\n\t[\n\t\t\"ee-GH\",\n\t\t\"Ewe\",\n\t\t\"Ghana\"\n\t],\n\t[\n\t\t\"ee-TG\",\n\t\t\"Ewe\",\n\t\t\"Togo\"\n\t],\n\t[\n\t\t\"el\",\n\t\t\"Greek\",\n\t\t\"Modern (1453-)\"\n\t],\n\t[\n\t\t\"el-CY\",\n\t\t\"Greek\",\n\t\t\"Cyprus\"\n\t],\n\t[\n\t\t\"el-GR\",\n\t\t\"Greek\",\n\t\t\"Greece\"\n\t],\n\t[\"en\", \"English\"],\n\t[\n\t\t\"en-AG\",\n\t\t\"English\",\n\t\t\"Antigua and Barbuda\"\n\t],\n\t[\n\t\t\"en-AI\",\n\t\t\"English\",\n\t\t\"Anguilla\"\n\t],\n\t[\n\t\t\"en-AS\",\n\t\t\"English\",\n\t\t\"American Samoa\"\n\t],\n\t[\n\t\t\"en-AT\",\n\t\t\"English\",\n\t\t\"Austria\"\n\t],\n\t[\n\t\t\"en-AU\",\n\t\t\"English\",\n\t\t\"Australia\"\n\t],\n\t[\n\t\t\"en-BB\",\n\t\t\"English\",\n\t\t\"Barbados\"\n\t],\n\t[\n\t\t\"en-BE\",\n\t\t\"English\",\n\t\t\"Belgium\"\n\t],\n\t[\n\t\t\"en-BI\",\n\t\t\"English\",\n\t\t\"Burundi\"\n\t],\n\t[\n\t\t\"en-BM\",\n\t\t\"English\",\n\t\t\"Bermuda\"\n\t],\n\t[\n\t\t\"en-BS\",\n\t\t\"English\",\n\t\t\"Bahamas\"\n\t],\n\t[\n\t\t\"en-BW\",\n\t\t\"English\",\n\t\t\"Botswana\"\n\t],\n\t[\n\t\t\"en-BZ\",\n\t\t\"English\",\n\t\t\"Belize\"\n\t],\n\t[\n\t\t\"en-CA\",\n\t\t\"English\",\n\t\t\"Canada\"\n\t],\n\t[\n\t\t\"en-CC\",\n\t\t\"English\",\n\t\t\"Cocos (Keeling) Islands\"\n\t],\n\t[\n\t\t\"en-CH\",\n\t\t\"English\",\n\t\t\"Switzerland\"\n\t],\n\t[\n\t\t\"en-CK\",\n\t\t\"English\",\n\t\t\"Cook Islands\"\n\t],\n\t[\n\t\t\"en-CM\",\n\t\t\"English\",\n\t\t\"Cameroon\"\n\t],\n\t[\n\t\t\"en-CX\",\n\t\t\"English\",\n\t\t\"Christmas Island\"\n\t],\n\t[\n\t\t\"en-CY\",\n\t\t\"English\",\n\t\t\"Cyprus\"\n\t],\n\t[\n\t\t\"en-DE\",\n\t\t\"English\",\n\t\t\"Germany\"\n\t],\n\t[\"en-DG\", \"English\"],\n\t[\n\t\t\"en-DK\",\n\t\t\"English\",\n\t\t\"Denmark\"\n\t],\n\t[\n\t\t\"en-DM\",\n\t\t\"English\",\n\t\t\"Dominica\"\n\t],\n\t[\n\t\t\"en-ER\",\n\t\t\"English\",\n\t\t\"Eritrea\"\n\t],\n\t[\n\t\t\"en-FI\",\n\t\t\"English\",\n\t\t\"Finland\"\n\t],\n\t[\n\t\t\"en-FJ\",\n\t\t\"English\",\n\t\t\"Fiji\"\n\t],\n\t[\n\t\t\"en-FK\",\n\t\t\"English\",\n\t\t\"Falkland Islands (Islas Malvinas)\"\n\t],\n\t[\n\t\t\"en-FM\",\n\t\t\"English\",\n\t\t\"Micronesia\"\n\t],\n\t[\n\t\t\"en-GB\",\n\t\t\"English\",\n\t\t\"United Kingdom\"\n\t],\n\t[\n\t\t\"en-GD\",\n\t\t\"English\",\n\t\t\"Grenada\"\n\t],\n\t[\n\t\t\"en-GG\",\n\t\t\"English\",\n\t\t\"Guernsey\"\n\t],\n\t[\n\t\t\"en-GH\",\n\t\t\"English\",\n\t\t\"Ghana\"\n\t],\n\t[\n\t\t\"en-GI\",\n\t\t\"English\",\n\t\t\"Gibraltar\"\n\t],\n\t[\n\t\t\"en-GM\",\n\t\t\"English\",\n\t\t\"Gambia\"\n\t],\n\t[\n\t\t\"en-GU\",\n\t\t\"English\",\n\t\t\"Guam\"\n\t],\n\t[\n\t\t\"en-GY\",\n\t\t\"English\",\n\t\t\"Guyana\"\n\t],\n\t[\n\t\t\"en-HK\",\n\t\t\"English\",\n\t\t\"Hong Kong\"\n\t],\n\t[\n\t\t\"en-IE\",\n\t\t\"English\",\n\t\t\"Ireland\"\n\t],\n\t[\n\t\t\"en-IL\",\n\t\t\"English\",\n\t\t\"Israel\"\n\t],\n\t[\n\t\t\"en-IM\",\n\t\t\"English\",\n\t\t\"Isle of Man\"\n\t],\n\t[\n\t\t\"en-IN\",\n\t\t\"English\",\n\t\t\"India\"\n\t],\n\t[\n\t\t\"en-IO\",\n\t\t\"English\",\n\t\t\"British Indian Ocean Territory\"\n\t],\n\t[\n\t\t\"en-JE\",\n\t\t\"English\",\n\t\t\"Jersey\"\n\t],\n\t[\n\t\t\"en-JM\",\n\t\t\"English\",\n\t\t\"Jamaica\"\n\t],\n\t[\n\t\t\"en-KE\",\n\t\t\"English\",\n\t\t\"Kenya\"\n\t],\n\t[\n\t\t\"en-KI\",\n\t\t\"English\",\n\t\t\"Kiribati\"\n\t],\n\t[\n\t\t\"en-KN\",\n\t\t\"English\",\n\t\t\"Saint Kitts and Nevis\"\n\t],\n\t[\n\t\t\"en-KY\",\n\t\t\"English\",\n\t\t\"Cayman Islands\"\n\t],\n\t[\n\t\t\"en-LC\",\n\t\t\"English\",\n\t\t\"Saint Lucia\"\n\t],\n\t[\n\t\t\"en-LR\",\n\t\t\"English\",\n\t\t\"Liberia\"\n\t],\n\t[\n\t\t\"en-LS\",\n\t\t\"English\",\n\t\t\"Lesotho\"\n\t],\n\t[\n\t\t\"en-MG\",\n\t\t\"English\",\n\t\t\"Madagascar\"\n\t],\n\t[\n\t\t\"en-MH\",\n\t\t\"English\",\n\t\t\"Marshall Islands\"\n\t],\n\t[\n\t\t\"en-MO\",\n\t\t\"English\",\n\t\t\"Macau\"\n\t],\n\t[\n\t\t\"en-MP\",\n\t\t\"English\",\n\t\t\"Northern Mariana Islands\"\n\t],\n\t[\n\t\t\"en-MS\",\n\t\t\"English\",\n\t\t\"Montserrat\"\n\t],\n\t[\n\t\t\"en-MT\",\n\t\t\"English\",\n\t\t\"Malta\"\n\t],\n\t[\n\t\t\"en-MU\",\n\t\t\"English\",\n\t\t\"Mauritius\"\n\t],\n\t[\n\t\t\"en-MW\",\n\t\t\"English\",\n\t\t\"Malawi\"\n\t],\n\t[\n\t\t\"en-MY\",\n\t\t\"English\",\n\t\t\"Malaysia\"\n\t],\n\t[\n\t\t\"en-NA\",\n\t\t\"English\",\n\t\t\"Namibia\"\n\t],\n\t[\n\t\t\"en-NF\",\n\t\t\"English\",\n\t\t\"Norfolk Island\"\n\t],\n\t[\n\t\t\"en-NG\",\n\t\t\"English\",\n\t\t\"Nigeria\"\n\t],\n\t[\n\t\t\"en-NL\",\n\t\t\"English\",\n\t\t\"Netherlands\"\n\t],\n\t[\n\t\t\"en-NR\",\n\t\t\"English\",\n\t\t\"Nauru\"\n\t],\n\t[\n\t\t\"en-NU\",\n\t\t\"English\",\n\t\t\"Niue\"\n\t],\n\t[\n\t\t\"en-NZ\",\n\t\t\"English\",\n\t\t\"New Zealand\"\n\t],\n\t[\n\t\t\"en-PG\",\n\t\t\"English\",\n\t\t\"Papua New Guinea\"\n\t],\n\t[\n\t\t\"en-PH\",\n\t\t\"English\",\n\t\t\"Philippines\"\n\t],\n\t[\n\t\t\"en-PK\",\n\t\t\"English\",\n\t\t\"Pakistan\"\n\t],\n\t[\n\t\t\"en-PN\",\n\t\t\"English\",\n\t\t\"Pitcairn Islands\"\n\t],\n\t[\n\t\t\"en-PR\",\n\t\t\"English\",\n\t\t\"Puerto Rico\"\n\t],\n\t[\n\t\t\"en-PW\",\n\t\t\"English\",\n\t\t\"Palau\"\n\t],\n\t[\n\t\t\"en-RW\",\n\t\t\"English\",\n\t\t\"Rwanda\"\n\t],\n\t[\n\t\t\"en-SB\",\n\t\t\"English\",\n\t\t\"Solomon Islands\"\n\t],\n\t[\n\t\t\"en-SC\",\n\t\t\"English\",\n\t\t\"Seychelles\"\n\t],\n\t[\n\t\t\"en-SD\",\n\t\t\"English\",\n\t\t\"Sudan\"\n\t],\n\t[\n\t\t\"en-SE\",\n\t\t\"English\",\n\t\t\"Sweden\"\n\t],\n\t[\n\t\t\"en-SG\",\n\t\t\"English\",\n\t\t\"Singapore\"\n\t],\n\t[\n\t\t\"en-SH\",\n\t\t\"English\",\n\t\t\"Saint Helena\"\n\t],\n\t[\n\t\t\"en-SI\",\n\t\t\"English\",\n\t\t\"Slovenia\"\n\t],\n\t[\n\t\t\"en-SL\",\n\t\t\"English\",\n\t\t\"Sierra Leone\"\n\t],\n\t[\"en-SS\", \"English\"],\n\t[\"en-SX\", \"English\"],\n\t[\n\t\t\"en-SZ\",\n\t\t\"English\",\n\t\t\"Swaziland\"\n\t],\n\t[\n\t\t\"en-TC\",\n\t\t\"English\",\n\t\t\"Turks and Caicos Islands\"\n\t],\n\t[\n\t\t\"en-TK\",\n\t\t\"English\",\n\t\t\"Tokelau\"\n\t],\n\t[\n\t\t\"en-TO\",\n\t\t\"English\",\n\t\t\"Tonga\"\n\t],\n\t[\n\t\t\"en-TT\",\n\t\t\"English\",\n\t\t\"Trinidad and Tobago\"\n\t],\n\t[\n\t\t\"en-TV\",\n\t\t\"English\",\n\t\t\"Tuvalu\"\n\t],\n\t[\n\t\t\"en-TZ\",\n\t\t\"English\",\n\t\t\"Tanzania\"\n\t],\n\t[\n\t\t\"en-UG\",\n\t\t\"English\",\n\t\t\"Uganda\"\n\t],\n\t[\n\t\t\"en-UM\",\n\t\t\"English\",\n\t\t\"Baker Island\"\n\t],\n\t[\n\t\t\"en-US\",\n\t\t\"English\",\n\t\t\"United States\"\n\t],\n\t[\n\t\t\"en-VC\",\n\t\t\"English\",\n\t\t\"Saint Vincent and the Grenadines\"\n\t],\n\t[\n\t\t\"en-VG\",\n\t\t\"English\",\n\t\t\"British Virgin Islands\"\n\t],\n\t[\n\t\t\"en-VI\",\n\t\t\"English\",\n\t\t\"U.S. Virgin Islands\"\n\t],\n\t[\n\t\t\"en-VU\",\n\t\t\"English\",\n\t\t\"Vanuatu\"\n\t],\n\t[\n\t\t\"en-WS\",\n\t\t\"English\",\n\t\t\"Samoa\"\n\t],\n\t[\n\t\t\"en-ZA\",\n\t\t\"English\",\n\t\t\"South Africa\"\n\t],\n\t[\n\t\t\"en-ZM\",\n\t\t\"English\",\n\t\t\"Zambia\"\n\t],\n\t[\n\t\t\"en-ZW\",\n\t\t\"English\",\n\t\t\"Zimbabwe\"\n\t],\n\t[\"eo\", \"Esperanto\"],\n\t[\"es\", \"Spanish\"],\n\t[\n\t\t\"es-AR\",\n\t\t\"Spanish\",\n\t\t\"Argentina\"\n\t],\n\t[\n\t\t\"es-BO\",\n\t\t\"Spanish\",\n\t\t\"Bolivia\"\n\t],\n\t[\n\t\t\"es-BR\",\n\t\t\"Spanish\",\n\t\t\"Brazil\"\n\t],\n\t[\n\t\t\"es-BZ\",\n\t\t\"Spanish\",\n\t\t\"Belize\"\n\t],\n\t[\n\t\t\"es-CL\",\n\t\t\"Spanish\",\n\t\t\"Chile\"\n\t],\n\t[\n\t\t\"es-CO\",\n\t\t\"Spanish\",\n\t\t\"Colombia\"\n\t],\n\t[\n\t\t\"es-CR\",\n\t\t\"Spanish\",\n\t\t\"Costa Rica\"\n\t],\n\t[\n\t\t\"es-CU\",\n\t\t\"Spanish\",\n\t\t\"Cuba\"\n\t],\n\t[\n\t\t\"es-DO\",\n\t\t\"Spanish\",\n\t\t\"Dominican Republic\"\n\t],\n\t[\"es-EA\", \"Spanish\"],\n\t[\n\t\t\"es-EC\",\n\t\t\"Spanish\",\n\t\t\"Ecuador\"\n\t],\n\t[\n\t\t\"es-ES\",\n\t\t\"Spanish\",\n\t\t\"Spain\"\n\t],\n\t[\n\t\t\"es-GQ\",\n\t\t\"Spanish\",\n\t\t\"Equatorial Guinea\"\n\t],\n\t[\n\t\t\"es-GT\",\n\t\t\"Spanish\",\n\t\t\"Guatemala\"\n\t],\n\t[\n\t\t\"es-HN\",\n\t\t\"Spanish\",\n\t\t\"Honduras\"\n\t],\n\t[\"es-IC\", \"Spanish\"],\n\t[\n\t\t\"es-MX\",\n\t\t\"Spanish\",\n\t\t\"Mexico\"\n\t],\n\t[\n\t\t\"es-NI\",\n\t\t\"Spanish\",\n\t\t\"Nicaragua\"\n\t],\n\t[\n\t\t\"es-PA\",\n\t\t\"Spanish\",\n\t\t\"Panama\"\n\t],\n\t[\n\t\t\"es-PE\",\n\t\t\"Spanish\",\n\t\t\"Peru\"\n\t],\n\t[\n\t\t\"es-PH\",\n\t\t\"Spanish\",\n\t\t\"Philippines\"\n\t],\n\t[\n\t\t\"es-PR\",\n\t\t\"Spanish\",\n\t\t\"Puerto Rico\"\n\t],\n\t[\n\t\t\"es-PY\",\n\t\t\"Spanish\",\n\t\t\"Paraguay\"\n\t],\n\t[\n\t\t\"es-SV\",\n\t\t\"Spanish\",\n\t\t\"El Salvador\"\n\t],\n\t[\n\t\t\"es-US\",\n\t\t\"Spanish\",\n\t\t\"United States\"\n\t],\n\t[\n\t\t\"es-UY\",\n\t\t\"Spanish\",\n\t\t\"Uruguay\"\n\t],\n\t[\n\t\t\"es-VE\",\n\t\t\"Spanish\",\n\t\t\"Venezuela\"\n\t],\n\t[\"et\", \"Estonian\"],\n\t[\n\t\t\"et-EE\",\n\t\t\"Estonian\",\n\t\t\"Estonia\"\n\t],\n\t[\"eu\", \"Basque\"],\n\t[\n\t\t\"eu-ES\",\n\t\t\"Basque\",\n\t\t\"Spain\"\n\t],\n\t[\"fa\", \"Persian\"],\n\t[\n\t\t\"fa-AF\",\n\t\t\"Persian\",\n\t\t\"Afghanistan\"\n\t],\n\t[\n\t\t\"fa-IR\",\n\t\t\"Persian\",\n\t\t\"Iran\"\n\t],\n\t[\"ff\", \"Fulah\"],\n\t[\n\t\t\"ff-CM\",\n\t\t\"Fulah\",\n\t\t\"Cameroon\"\n\t],\n\t[\n\t\t\"ff-GN\",\n\t\t\"Fulah\",\n\t\t\"Guinea\"\n\t],\n\t[\n\t\t\"ff-MR\",\n\t\t\"Fulah\",\n\t\t\"Mauritania\"\n\t],\n\t[\n\t\t\"ff-SN\",\n\t\t\"Fulah\",\n\t\t\"Senegal\"\n\t],\n\t[\"fi\", \"Finnish\"],\n\t[\n\t\t\"fi-FI\",\n\t\t\"Finnish\",\n\t\t\"Finland\"\n\t],\n\t[\"fo\", \"Faroese\"],\n\t[\n\t\t\"fo-DK\",\n\t\t\"Faroese\",\n\t\t\"Denmark\"\n\t],\n\t[\n\t\t\"fo-FO\",\n\t\t\"Faroese\",\n\t\t\"Faroe Islands\"\n\t],\n\t[\"fr\", \"French\"],\n\t[\n\t\t\"fr-BE\",\n\t\t\"French\",\n\t\t\"Belgium\"\n\t],\n\t[\n\t\t\"fr-BF\",\n\t\t\"French\",\n\t\t\"Burkina Faso\"\n\t],\n\t[\n\t\t\"fr-BI\",\n\t\t\"French\",\n\t\t\"Burundi\"\n\t],\n\t[\n\t\t\"fr-BJ\",\n\t\t\"French\",\n\t\t\"Benin\"\n\t],\n\t[\"fr-BL\", \"French\"],\n\t[\n\t\t\"fr-CA\",\n\t\t\"French\",\n\t\t\"Canada\"\n\t],\n\t[\n\t\t\"fr-CD\",\n\t\t\"French\",\n\t\t\"Congo\"\n\t],\n\t[\n\t\t\"fr-CF\",\n\t\t\"French\",\n\t\t\"Central African Republic\"\n\t],\n\t[\n\t\t\"fr-CG\",\n\t\t\"French\",\n\t\t\"Congo\"\n\t],\n\t[\n\t\t\"fr-CH\",\n\t\t\"French\",\n\t\t\"Switzerland\"\n\t],\n\t[\"fr-CI\", \"French, Cote d'Ivoire (Ivory Coast)\"],\n\t[\n\t\t\"fr-CM\",\n\t\t\"French\",\n\t\t\"Cameroon\"\n\t],\n\t[\n\t\t\"fr-DJ\",\n\t\t\"French\",\n\t\t\"Djibouti\"\n\t],\n\t[\n\t\t\"fr-DZ\",\n\t\t\"French\",\n\t\t\"Algeria\"\n\t],\n\t[\n\t\t\"fr-FR\",\n\t\t\"French\",\n\t\t\"France\"\n\t],\n\t[\n\t\t\"fr-GA\",\n\t\t\"French\",\n\t\t\"Gabon\"\n\t],\n\t[\n\t\t\"fr-GF\",\n\t\t\"French\",\n\t\t\"French Guiana\"\n\t],\n\t[\n\t\t\"fr-GN\",\n\t\t\"French\",\n\t\t\"Guinea\"\n\t],\n\t[\n\t\t\"fr-GP\",\n\t\t\"French\",\n\t\t\"Saint Barthelemy\"\n\t],\n\t[\n\t\t\"fr-GQ\",\n\t\t\"French\",\n\t\t\"Equatorial Guinea\"\n\t],\n\t[\n\t\t\"fr-HT\",\n\t\t\"French\",\n\t\t\"Haiti\"\n\t],\n\t[\n\t\t\"fr-KM\",\n\t\t\"French\",\n\t\t\"Comoros\"\n\t],\n\t[\n\t\t\"fr-LU\",\n\t\t\"French\",\n\t\t\"Luxembourg\"\n\t],\n\t[\n\t\t\"fr-MA\",\n\t\t\"French\",\n\t\t\"Morocco\"\n\t],\n\t[\n\t\t\"fr-MC\",\n\t\t\"French\",\n\t\t\"Monaco\"\n\t],\n\t[\"fr-MF\", \"French\"],\n\t[\n\t\t\"fr-MG\",\n\t\t\"French\",\n\t\t\"Madagascar\"\n\t],\n\t[\n\t\t\"fr-ML\",\n\t\t\"French\",\n\t\t\"Mali\"\n\t],\n\t[\n\t\t\"fr-MQ\",\n\t\t\"French\",\n\t\t\"Martinique\"\n\t],\n\t[\n\t\t\"fr-MR\",\n\t\t\"French\",\n\t\t\"Mauritania\"\n\t],\n\t[\n\t\t\"fr-MU\",\n\t\t\"French\",\n\t\t\"Mauritius\"\n\t],\n\t[\n\t\t\"fr-NC\",\n\t\t\"French\",\n\t\t\"New Caledonia\"\n\t],\n\t[\n\t\t\"fr-NE\",\n\t\t\"French\",\n\t\t\"Niger\"\n\t],\n\t[\n\t\t\"fr-PF\",\n\t\t\"French\",\n\t\t\"French Polynesia\"\n\t],\n\t[\n\t\t\"fr-PM\",\n\t\t\"French\",\n\t\t\"Saint Pierre and Miquelon\"\n\t],\n\t[\n\t\t\"fr-RE\",\n\t\t\"French\",\n\t\t\"Reunion\"\n\t],\n\t[\n\t\t\"fr-RW\",\n\t\t\"French\",\n\t\t\"Rwanda\"\n\t],\n\t[\n\t\t\"fr-SC\",\n\t\t\"French\",\n\t\t\"Seychelles\"\n\t],\n\t[\n\t\t\"fr-SN\",\n\t\t\"French\",\n\t\t\"Senegal\"\n\t],\n\t[\n\t\t\"fr-SY\",\n\t\t\"French\",\n\t\t\"Syria\"\n\t],\n\t[\n\t\t\"fr-TD\",\n\t\t\"French\",\n\t\t\"Chad\"\n\t],\n\t[\n\t\t\"fr-TG\",\n\t\t\"French\",\n\t\t\"Togo\"\n\t],\n\t[\n\t\t\"fr-TN\",\n\t\t\"French\",\n\t\t\"Tunisia\"\n\t],\n\t[\n\t\t\"fr-VU\",\n\t\t\"French\",\n\t\t\"Vanuatu\"\n\t],\n\t[\n\t\t\"fr-WF\",\n\t\t\"French\",\n\t\t\"Wallis and Futuna\"\n\t],\n\t[\n\t\t\"fr-YT\",\n\t\t\"French\",\n\t\t\"Mayotte\"\n\t],\n\t[\"fy\", \"Western Frisian\"],\n\t[\n\t\t\"fy-NL\",\n\t\t\"Western Frisian\",\n\t\t\"Netherlands\"\n\t],\n\t[\"ga\", \"Irish\"],\n\t[\n\t\t\"ga-IE\",\n\t\t\"Irish\",\n\t\t\"Ireland\"\n\t],\n\t[\"gd\", \"Gaelic\"],\n\t[\n\t\t\"gd-GB\",\n\t\t\"Gaelic\",\n\t\t\"United Kingdom\"\n\t],\n\t[\"gl\", \"Galician\"],\n\t[\n\t\t\"gl-ES\",\n\t\t\"Galician\",\n\t\t\"Spain\"\n\t],\n\t[\"gu\", \"Gujarati\"],\n\t[\n\t\t\"gu-IN\",\n\t\t\"Gujarati\",\n\t\t\"India\"\n\t],\n\t[\"gv\", \"Manx\"],\n\t[\n\t\t\"gv-IM\",\n\t\t\"Manx\",\n\t\t\"Isle of Man\"\n\t],\n\t[\"ha\", \"Hausa\"],\n\t[\n\t\t\"ha-GH\",\n\t\t\"Hausa\",\n\t\t\"Ghana\"\n\t],\n\t[\n\t\t\"ha-NE\",\n\t\t\"Hausa\",\n\t\t\"Niger\"\n\t],\n\t[\n\t\t\"ha-NG\",\n\t\t\"Hausa\",\n\t\t\"Nigeria\"\n\t],\n\t[\"he\", \"Hebrew\"],\n\t[\n\t\t\"he-IL\",\n\t\t\"Hebrew\",\n\t\t\"Israel\"\n\t],\n\t[\"hi\", \"Hindi\"],\n\t[\n\t\t\"hi-IN\",\n\t\t\"Hindi\",\n\t\t\"India\"\n\t],\n\t[\"hr\", \"Croatian\"],\n\t[\n\t\t\"hr-BA\",\n\t\t\"Croatian\",\n\t\t\"Bosnia and Herzegovina\"\n\t],\n\t[\n\t\t\"hr-HR\",\n\t\t\"Croatian\",\n\t\t\"Croatia\"\n\t],\n\t[\"hu\", \"Hungarian\"],\n\t[\n\t\t\"hu-HU\",\n\t\t\"Hungarian\",\n\t\t\"Hungary\"\n\t],\n\t[\"hy\", \"Armenian\"],\n\t[\n\t\t\"hy-AM\",\n\t\t\"Armenian\",\n\t\t\"Armenia\"\n\t],\n\t[\"id\", \"Indonesian\"],\n\t[\n\t\t\"id-ID\",\n\t\t\"Indonesian\",\n\t\t\"Indonesia\"\n\t],\n\t[\"ig\", \"Igbo\"],\n\t[\n\t\t\"ig-NG\",\n\t\t\"Igbo\",\n\t\t\"Nigeria\"\n\t],\n\t[\"ii\", \"Sichuan Yi\"],\n\t[\n\t\t\"ii-CN\",\n\t\t\"Sichuan Yi\",\n\t\t\"China\"\n\t],\n\t[\"is\", \"Icelandic\"],\n\t[\n\t\t\"is-IS\",\n\t\t\"Icelandic\",\n\t\t\"Iceland\"\n\t],\n\t[\"it\", \"Italian\"],\n\t[\n\t\t\"it-CH\",\n\t\t\"Italian\",\n\t\t\"Switzerland\"\n\t],\n\t[\n\t\t\"it-IT\",\n\t\t\"Italian\",\n\t\t\"Italy\"\n\t],\n\t[\n\t\t\"it-SM\",\n\t\t\"Italian\",\n\t\t\"San Marino\"\n\t],\n\t[\n\t\t\"it-VA\",\n\t\t\"Italian\",\n\t\t\"Vatican City\"\n\t],\n\t[\"ja\", \"Japanese\"],\n\t[\n\t\t\"ja-JP\",\n\t\t\"Japanese\",\n\t\t\"Japan\"\n\t],\n\t[\"ka\", \"Georgian\"],\n\t[\n\t\t\"ka-GE\",\n\t\t\"Georgian\",\n\t\t\"Georgia\"\n\t],\n\t[\"ki\", \"Kikuyu\"],\n\t[\n\t\t\"ki-KE\",\n\t\t\"Kikuyu\",\n\t\t\"Kenya\"\n\t],\n\t[\"kk\", \"Kazakh\"],\n\t[\n\t\t\"kk-KZ\",\n\t\t\"Kazakh\",\n\t\t\"Kazakhstan\"\n\t],\n\t[\"kl\", \"Kalaallisut\"],\n\t[\n\t\t\"kl-GL\",\n\t\t\"Kalaallisut\",\n\t\t\"Greenland\"\n\t],\n\t[\"km\", \"Central Khmer\"],\n\t[\n\t\t\"km-KH\",\n\t\t\"Central Khmer\",\n\t\t\"Cambodia\"\n\t],\n\t[\"kn\", \"Kannada\"],\n\t[\n\t\t\"kn-IN\",\n\t\t\"Kannada\",\n\t\t\"India\"\n\t],\n\t[\"ko\", \"Korean\"],\n\t[\n\t\t\"ko-KP\",\n\t\t\"Korean\",\n\t\t\"Korea\"\n\t],\n\t[\n\t\t\"ko-KR\",\n\t\t\"Korean\",\n\t\t\"Korea\"\n\t],\n\t[\"ks\", \"Kashmiri\"],\n\t[\n\t\t\"ks-IN\",\n\t\t\"Kashmiri\",\n\t\t\"India\"\n\t],\n\t[\"kw\", \"Cornish\"],\n\t[\n\t\t\"kw-GB\",\n\t\t\"Cornish\",\n\t\t\"United Kingdom\"\n\t],\n\t[\"ky\", \"Kirghiz\"],\n\t[\n\t\t\"ky-KG\",\n\t\t\"Kirghiz\",\n\t\t\"Kyrgyzstan\"\n\t],\n\t[\"lb\", \"Luxembourgish\"],\n\t[\n\t\t\"lb-LU\",\n\t\t\"Luxembourgish\",\n\t\t\"Luxembourg\"\n\t],\n\t[\"lg\", \"Ganda\"],\n\t[\n\t\t\"lg-UG\",\n\t\t\"Ganda\",\n\t\t\"Uganda\"\n\t],\n\t[\"ln\", \"Lingala\"],\n\t[\n\t\t\"ln-AO\",\n\t\t\"Lingala\",\n\t\t\"Angola\"\n\t],\n\t[\n\t\t\"ln-CD\",\n\t\t\"Lingala\",\n\t\t\"Congo\"\n\t],\n\t[\n\t\t\"ln-CF\",\n\t\t\"Lingala\",\n\t\t\"Central African Republic\"\n\t],\n\t[\n\t\t\"ln-CG\",\n\t\t\"Lingala\",\n\t\t\"Congo\"\n\t],\n\t[\"lo\", \"Lao\"],\n\t[\n\t\t\"lo-LA\",\n\t\t\"Lao\",\n\t\t\"Laos\"\n\t],\n\t[\"lt\", \"Lithuanian\"],\n\t[\n\t\t\"lt-LT\",\n\t\t\"Lithuanian\",\n\t\t\"Lithuania\"\n\t],\n\t[\"lu\", \"Luba-Katanga\"],\n\t[\n\t\t\"lu-CD\",\n\t\t\"Luba-Katanga\",\n\t\t\"Congo\"\n\t],\n\t[\"lv\", \"Latvian\"],\n\t[\n\t\t\"lv-LV\",\n\t\t\"Latvian\",\n\t\t\"Latvia\"\n\t],\n\t[\"mg\", \"Malagasy\"],\n\t[\n\t\t\"mg-MG\",\n\t\t\"Malagasy\",\n\t\t\"Madagascar\"\n\t],\n\t[\"mk\", \"Macedonian\"],\n\t[\n\t\t\"mk-MK\",\n\t\t\"Macedonian\",\n\t\t\"Macedonia\"\n\t],\n\t[\"ml\", \"Malayalam\"],\n\t[\n\t\t\"ml-IN\",\n\t\t\"Malayalam\",\n\t\t\"India\"\n\t],\n\t[\"mn\", \"Mongolian\"],\n\t[\n\t\t\"mn-MN\",\n\t\t\"Mongolian\",\n\t\t\"Mongolia\"\n\t],\n\t[\"mr\", \"Marathi\"],\n\t[\n\t\t\"mr-IN\",\n\t\t\"Marathi\",\n\t\t\"India\"\n\t],\n\t[\"ms\", \"Malay\"],\n\t[\n\t\t\"ms-BN\",\n\t\t\"Malay\",\n\t\t\"Brunei\"\n\t],\n\t[\n\t\t\"ms-MY\",\n\t\t\"Malay\",\n\t\t\"Malaysia\"\n\t],\n\t[\n\t\t\"ms-SG\",\n\t\t\"Malay\",\n\t\t\"Singapore\"\n\t],\n\t[\"mt\", \"Maltese\"],\n\t[\n\t\t\"mt-MT\",\n\t\t\"Maltese\",\n\t\t\"Malta\"\n\t],\n\t[\"my\", \"Burmese\"],\n\t[\n\t\t\"my-MM\",\n\t\t\"Burmese\",\n\t\t\"Myanmar (Burma)\"\n\t],\n\t[\"nb\", \"Bokmål Norwegian\"],\n\t[\n\t\t\"nb-NO\",\n\t\t\"Bokmål Norwegian\",\n\t\t\"Norway\"\n\t],\n\t[\n\t\t\"nb-SJ\",\n\t\t\"Bokmål Norwegian\",\n\t\t\"Svalbard\"\n\t],\n\t[\"nd\", \"Ndebele, North\"],\n\t[\n\t\t\"nd-ZW\",\n\t\t\"Ndebele, North\",\n\t\t\"Zimbabwe\"\n\t],\n\t[\"ne\", \"Nepali\"],\n\t[\n\t\t\"ne-IN\",\n\t\t\"Nepali\",\n\t\t\"India\"\n\t],\n\t[\n\t\t\"ne-NP\",\n\t\t\"Nepali\",\n\t\t\"Nepal\"\n\t],\n\t[\"nl\", \"Dutch\"],\n\t[\n\t\t\"nl-AW\",\n\t\t\"Dutch\",\n\t\t\"Aruba\"\n\t],\n\t[\n\t\t\"nl-BE\",\n\t\t\"Dutch\",\n\t\t\"Belgium\"\n\t],\n\t[\"nl-BQ\", \"Dutch\"],\n\t[\"nl-CW\", \"Dutch\"],\n\t[\n\t\t\"nl-NL\",\n\t\t\"Dutch\",\n\t\t\"Netherlands\"\n\t],\n\t[\n\t\t\"nl-SR\",\n\t\t\"Dutch\",\n\t\t\"Suriname\"\n\t],\n\t[\"nl-SX\", \"Dutch\"],\n\t[\"nn\", \"Norwegian Nynorsk\"],\n\t[\n\t\t\"nn-NO\",\n\t\t\"Norwegian Nynorsk\",\n\t\t\"Norway\"\n\t],\n\t[\"om\", \"Oromo\"],\n\t[\n\t\t\"om-ET\",\n\t\t\"Oromo\",\n\t\t\"Ethiopia\"\n\t],\n\t[\n\t\t\"om-KE\",\n\t\t\"Oromo\",\n\t\t\"Kenya\"\n\t],\n\t[\"or\", \"Oriya\"],\n\t[\n\t\t\"or-IN\",\n\t\t\"Oriya\",\n\t\t\"India\"\n\t],\n\t[\"os\", \"Ossetian\"],\n\t[\n\t\t\"os-GE\",\n\t\t\"Ossetian\",\n\t\t\"Georgia\"\n\t],\n\t[\n\t\t\"os-RU\",\n\t\t\"Ossetian\",\n\t\t\"Russia\"\n\t],\n\t[\"pa\", \"Panjabi\"],\n\t[\n\t\t\"pa-IN\",\n\t\t\"Panjabi\",\n\t\t\"India\"\n\t],\n\t[\n\t\t\"pa-PK\",\n\t\t\"Panjabi\",\n\t\t\"Pakistan\"\n\t],\n\t[\"pl\", \"Polish\"],\n\t[\n\t\t\"pl-PL\",\n\t\t\"Polish\",\n\t\t\"Poland\"\n\t],\n\t[\"ps\", \"Pushto\"],\n\t[\n\t\t\"ps-AF\",\n\t\t\"Pushto\",\n\t\t\"Afghanistan\"\n\t],\n\t[\"pt\", \"Portuguese\"],\n\t[\n\t\t\"pt-AO\",\n\t\t\"Portuguese\",\n\t\t\"Angola\"\n\t],\n\t[\n\t\t\"pt-BR\",\n\t\t\"Portuguese\",\n\t\t\"Brazil\"\n\t],\n\t[\n\t\t\"pt-CH\",\n\t\t\"Portuguese\",\n\t\t\"Switzerland\"\n\t],\n\t[\n\t\t\"pt-CV\",\n\t\t\"Portuguese\",\n\t\t\"Cape Verde\"\n\t],\n\t[\n\t\t\"pt-GQ\",\n\t\t\"Portuguese\",\n\t\t\"Equatorial Guinea\"\n\t],\n\t[\n\t\t\"pt-GW\",\n\t\t\"Portuguese\",\n\t\t\"Guinea-Bissau\"\n\t],\n\t[\n\t\t\"pt-LU\",\n\t\t\"Portuguese\",\n\t\t\"Luxembourg\"\n\t],\n\t[\n\t\t\"pt-MO\",\n\t\t\"Portuguese\",\n\t\t\"Macau\"\n\t],\n\t[\n\t\t\"pt-MZ\",\n\t\t\"Portuguese\",\n\t\t\"Mozambique\"\n\t],\n\t[\n\t\t\"pt-PT\",\n\t\t\"Portuguese\",\n\t\t\"Portugal\"\n\t],\n\t[\n\t\t\"pt-ST\",\n\t\t\"Portuguese\",\n\t\t\"Sao Tome and Principe\"\n\t],\n\t[\n\t\t\"pt-TL\",\n\t\t\"Portuguese\",\n\t\t\"Timor-Leste (East Timor)\"\n\t],\n\t[\"qu\", \"Quechua\"],\n\t[\n\t\t\"qu-BO\",\n\t\t\"Quechua\",\n\t\t\"Bolivia\"\n\t],\n\t[\n\t\t\"qu-EC\",\n\t\t\"Quechua\",\n\t\t\"Ecuador\"\n\t],\n\t[\n\t\t\"qu-PE\",\n\t\t\"Quechua\",\n\t\t\"Peru\"\n\t],\n\t[\"rm\", \"Romansh\"],\n\t[\n\t\t\"rm-CH\",\n\t\t\"Romansh\",\n\t\t\"Switzerland\"\n\t],\n\t[\"rn\", \"Rundi\"],\n\t[\n\t\t\"rn-BI\",\n\t\t\"Rundi\",\n\t\t\"Burundi\"\n\t],\n\t[\"ro\", \"Romanian\"],\n\t[\n\t\t\"ro-MD\",\n\t\t\"Romanian\",\n\t\t\"Moldova\"\n\t],\n\t[\n\t\t\"ro-RO\",\n\t\t\"Romanian\",\n\t\t\"Romania\"\n\t],\n\t[\"ru\", \"Russian\"],\n\t[\n\t\t\"ru-BY\",\n\t\t\"Russian\",\n\t\t\"Belarus\"\n\t],\n\t[\n\t\t\"ru-KG\",\n\t\t\"Russian\",\n\t\t\"Kyrgyzstan\"\n\t],\n\t[\n\t\t\"ru-KZ\",\n\t\t\"Russian\",\n\t\t\"Kazakhstan\"\n\t],\n\t[\n\t\t\"ru-MD\",\n\t\t\"Russian\",\n\t\t\"Moldova\"\n\t],\n\t[\n\t\t\"ru-RU\",\n\t\t\"Russian\",\n\t\t\"Russia\"\n\t],\n\t[\n\t\t\"ru-UA\",\n\t\t\"Russian\",\n\t\t\"Ukraine\"\n\t],\n\t[\"rw\", \"Kinyarwanda\"],\n\t[\n\t\t\"rw-RW\",\n\t\t\"Kinyarwanda\",\n\t\t\"Rwanda\"\n\t],\n\t[\"se\", \"Northern Sami\"],\n\t[\n\t\t\"se-FI\",\n\t\t\"Northern Sami\",\n\t\t\"Finland\"\n\t],\n\t[\n\t\t\"se-NO\",\n\t\t\"Northern Sami\",\n\t\t\"Norway\"\n\t],\n\t[\n\t\t\"se-SE\",\n\t\t\"Northern Sami\",\n\t\t\"Sweden\"\n\t],\n\t[\"sg\", \"Sango\"],\n\t[\n\t\t\"sg-CF\",\n\t\t\"Sango\",\n\t\t\"Central African Republic\"\n\t],\n\t[\"si\", \"Sinhala\"],\n\t[\n\t\t\"si-LK\",\n\t\t\"Sinhala\",\n\t\t\"Sri Lanka\"\n\t],\n\t[\"sk\", \"Slovak\"],\n\t[\n\t\t\"sk-SK\",\n\t\t\"Slovak\",\n\t\t\"Slovakia\"\n\t],\n\t[\"sl\", \"Slovenian\"],\n\t[\n\t\t\"sl-SI\",\n\t\t\"Slovenian\",\n\t\t\"Slovenia\"\n\t],\n\t[\"sn\", \"Shona\"],\n\t[\n\t\t\"sn-ZW\",\n\t\t\"Shona\",\n\t\t\"Zimbabwe\"\n\t],\n\t[\"so\", \"Somali\"],\n\t[\n\t\t\"so-DJ\",\n\t\t\"Somali\",\n\t\t\"Djibouti\"\n\t],\n\t[\n\t\t\"so-ET\",\n\t\t\"Somali\",\n\t\t\"Ethiopia\"\n\t],\n\t[\n\t\t\"so-KE\",\n\t\t\"Somali\",\n\t\t\"Kenya\"\n\t],\n\t[\n\t\t\"so-SO\",\n\t\t\"Somali\",\n\t\t\"Somalia\"\n\t],\n\t[\"sq\", \"Albanian\"],\n\t[\n\t\t\"sq-AL\",\n\t\t\"Albanian\",\n\t\t\"Albania\"\n\t],\n\t[\n\t\t\"sq-MK\",\n\t\t\"Albanian\",\n\t\t\"Macedonia\"\n\t],\n\t[\"sq-XK\", \"Albanian\"],\n\t[\"sr\", \"Serbian\"],\n\t[\n\t\t\"sr-BA\",\n\t\t\"Serbian\",\n\t\t\"Bosnia and Herzegovina\"\n\t],\n\t[\n\t\t\"sr-ME\",\n\t\t\"Serbian\",\n\t\t\"Montenegro\"\n\t],\n\t[\n\t\t\"sr-RS\",\n\t\t\"Serbian\",\n\t\t\"Serbia\"\n\t],\n\t[\"sr-XK\", \"Serbian\"],\n\t[\"sv\", \"Swedish\"],\n\t[\n\t\t\"sv-AX\",\n\t\t\"Swedish\",\n\t\t\"Aland\"\n\t],\n\t[\n\t\t\"sv-FI\",\n\t\t\"Swedish\",\n\t\t\"Finland\"\n\t],\n\t[\n\t\t\"sv-SE\",\n\t\t\"Swedish\",\n\t\t\"Sweden\"\n\t],\n\t[\"sw\", \"Swahili\"],\n\t[\n\t\t\"sw-CD\",\n\t\t\"Swahili\",\n\t\t\"Congo\"\n\t],\n\t[\n\t\t\"sw-KE\",\n\t\t\"Swahili\",\n\t\t\"Kenya\"\n\t],\n\t[\n\t\t\"sw-TZ\",\n\t\t\"Swahili\",\n\t\t\"Tanzania\"\n\t],\n\t[\n\t\t\"sw-UG\",\n\t\t\"Swahili\",\n\t\t\"Uganda\"\n\t],\n\t[\"ta\", \"Tamil\"],\n\t[\n\t\t\"ta-IN\",\n\t\t\"Tamil\",\n\t\t\"India\"\n\t],\n\t[\n\t\t\"ta-LK\",\n\t\t\"Tamil\",\n\t\t\"Sri Lanka\"\n\t],\n\t[\n\t\t\"ta-MY\",\n\t\t\"Tamil\",\n\t\t\"Malaysia\"\n\t],\n\t[\n\t\t\"ta-SG\",\n\t\t\"Tamil\",\n\t\t\"Singapore\"\n\t],\n\t[\"te\", \"Telugu\"],\n\t[\n\t\t\"te-IN\",\n\t\t\"Telugu\",\n\t\t\"India\"\n\t],\n\t[\"th\", \"Thai\"],\n\t[\n\t\t\"th-TH\",\n\t\t\"Thai\",\n\t\t\"Thailand\"\n\t],\n\t[\"ti\", \"Tigrinya\"],\n\t[\n\t\t\"ti-ER\",\n\t\t\"Tigrinya\",\n\t\t\"Eritrea\"\n\t],\n\t[\n\t\t\"ti-ET\",\n\t\t\"Tigrinya\",\n\t\t\"Ethiopia\"\n\t],\n\t[\"tk\", \"Turkmen\"],\n\t[\n\t\t\"tk-TM\",\n\t\t\"Turkmen\",\n\t\t\"Turkmenistan\"\n\t],\n\t[\"to\", \"Tonga (Tonga Islands)\"],\n\t[\n\t\t\"to-TO\",\n\t\t\"Tonga (Tonga Islands)\",\n\t\t\"Tonga\"\n\t],\n\t[\"tr\", \"Turkish\"],\n\t[\n\t\t\"tr-CY\",\n\t\t\"Turkish\",\n\t\t\"Cyprus\"\n\t],\n\t[\n\t\t\"tr-TR\",\n\t\t\"Turkish\",\n\t\t\"Turkey\"\n\t],\n\t[\"ug\", \"Uighur\"],\n\t[\n\t\t\"ug-CN\",\n\t\t\"Uighur\",\n\t\t\"China\"\n\t],\n\t[\"uk\", \"Ukrainian\"],\n\t[\n\t\t\"uk-UA\",\n\t\t\"Ukrainian\",\n\t\t\"Ukraine\"\n\t],\n\t[\"ur\", \"Urdu\"],\n\t[\n\t\t\"ur-IN\",\n\t\t\"Urdu\",\n\t\t\"India\"\n\t],\n\t[\n\t\t\"ur-PK\",\n\t\t\"Urdu\",\n\t\t\"Pakistan\"\n\t],\n\t[\"uz\", \"Uzbek\"],\n\t[\n\t\t\"uz-AF\",\n\t\t\"Uzbek\",\n\t\t\"Afghanistan\"\n\t],\n\t[\n\t\t\"uz-UZ\",\n\t\t\"Uzbek\",\n\t\t\"Uzbekistan\"\n\t],\n\t[\"vi\", \"Vietnamese\"],\n\t[\n\t\t\"vi-VN\",\n\t\t\"Vietnamese\",\n\t\t\"Vietnam\"\n\t],\n\t[\"vo\", \"Volapük\"],\n\t[\"yi\", \"Yiddish\"],\n\t[\"yi-1\", \"Yiddish\"],\n\t[\"yo\", \"Yoruba\"],\n\t[\n\t\t\"yo-BJ\",\n\t\t\"Yoruba\",\n\t\t\"Benin\"\n\t],\n\t[\n\t\t\"yo-NG\",\n\t\t\"Yoruba\",\n\t\t\"Nigeria\"\n\t],\n\t[\"zh\", \"Chinese\"],\n\t[\n\t\t\"zh-CN\",\n\t\t\"Chinese\",\n\t\t\"China\"\n\t],\n\t[\n\t\t\"zh-HK\",\n\t\t\"Chinese\",\n\t\t\"Hong Kong\"\n\t],\n\t[\n\t\t\"zh-MO\",\n\t\t\"Chinese\",\n\t\t\"Macau\"\n\t],\n\t[\n\t\t\"zh-SG\",\n\t\t\"Chinese\",\n\t\t\"Singapore\"\n\t],\n\t[\n\t\t\"zh-TW\",\n\t\t\"Chinese\",\n\t\t\"China\"\n\t],\n\t[\"zu\", \"Zulu\"],\n\t[\n\t\t\"zu-ZA\",\n\t\t\"Zulu\",\n\t\t\"South Africa\"\n\t]\n];\n//#endregion\n//#region src/lib/models/locale/locale.ts\nlet codesByLocale;\nvar Locale = class {\n\t_raw;\n\t_locale;\n\tconstructor(locale) {\n\t\tthis._raw = locale;\n\t\tthis._locale = normalizeLocale(locale);\n\t}\n\tget locale() {\n\t\treturn this._locale;\n\t}\n\tlocalInfo() {\n\t\treturn lookupLocaleInfo(this._locale);\n\t}\n\tisValid() {\n\t\treturn isStandardLocale(this._locale);\n\t}\n\ttoJSON() {\n\t\treturn this.locale;\n\t}\n\ttoString() {\n\t\treturn this.locale;\n\t}\n};\nconst regExTwoLetter = /^[a-z]{2}$/i;\nconst regExLocaleWithCountry = /^([a-z]{2})[_-]?([a-z]{2,3})$/i;\nconst regExValidLocale = /^([a-z]{2})(?:-([A-Z]{2,3}))?$/;\n/**\n* Attempt to normalize a locale.\n* @param locale a locale string\n*/\nfunction normalizeLocale(locale) {\n\tlocale = locale.trim();\n\tif (regExTwoLetter.test(locale)) return locale.toLowerCase();\n\tconst m = locale.match(regExLocaleWithCountry);\n\tif (!m) return locale;\n\treturn `${m[1].toLowerCase()}-${m[2].toUpperCase()}`;\n}\nfunction isStandardLocale(locale) {\n\treturn regExValidLocale.test(locale);\n}\nfunction lookupLocaleInfo(locale) {\n\tcodesByLocale = codesByLocale || buildLocaleLookup();\n\treturn codesByLocale.get(locale);\n}\nfunction buildLocaleLookup() {\n\tconst info = codes.map(([locale, language, country]) => ({\n\t\tlocale,\n\t\tlanguage,\n\t\tcountry\n\t}));\n\treturn new Map(info.map((i) => [i.locale, i]));\n}\nfunction createLocale(locale) {\n\treturn new Locale(locale);\n}\nfunction parseLocale(locales) {\n\tlocales = typeof locales === \"string\" ? locales.split(\",\") : locales;\n\treturn locales.map(createLocale);\n}\n//#endregion\n//#region src/lib/mappers/mapCosts.ts\nconst defaultEditCosts = {\n\taccentCosts: 1,\n\tbaseCost: 100,\n\tcapsCosts: 1,\n\tfirstLetterPenalty: 4,\n\tnonAlphabetCosts: 110\n};\nconst defaultHunspellCosts = {\n\t...defaultEditCosts,\n\tioConvertCost: 30,\n\tkeyboardCost: 99,\n\tmapCost: 25,\n\treplaceCosts: 75,\n\ttryCharCost: 100\n};\nfunction mapHunspellCosts(costs = {}) {\n\treturn {\n\t\t...defaultHunspellCosts,\n\t\t...cleanCopy(costs)\n\t};\n}\nfunction mapEditCosts(costs = {}) {\n\treturn {\n\t\t...defaultEditCosts,\n\t\t...cleanCopy(costs)\n\t};\n}\n//#endregion\n//#region src/lib/mappers/joinLetters.ts\n/**\n* Bring letters / strings together.\n* - `['a', 'b'] => 'ab'`\n* - `['a', 'bc'] => 'a(bc)'`\n* @param letters - letters to join\n*/\nfunction joinLetters(letters) {\n\treturn [...letters].map((a) => a.length > 1 || !a.length ? `(${a})` : a).join(\"\");\n}\n//#endregion\n//#region src/lib/mappers/mapToSuggestionCostDef.ts\nfunction parseAlphabet(cs, locale, editCost) {\n\tconst { cost, penalty } = cs;\n\tconst alphabet = joinLetters([...pipeSync([...pipeSync(expandCharacterSet(cs.characters), opMapSync((c) => caseForms(c, locale).sort()))], opFlattenSync(), opMapSync((letter) => accentForms(letter)), opFlattenSync(), opUniqueSync())].sort());\n\treturn [\n\t\tclean$1({\n\t\t\tmap: alphabet,\n\t\t\treplace: cost,\n\t\t\tinsDel: cost,\n\t\t\tswap: cost,\n\t\t\tpenalty\n\t\t}),\n\t\tparseAlphabetCaps(cs.characters, locale, editCost),\n\t\t...calcCostsForAccentedLetters(alphabet, locale, editCost)\n\t];\n}\nfunction parseAlphabetCaps(alphabet, locale, editCost) {\n\treturn {\n\t\tmap: [...pipeSync(expandCharacterSet(alphabet), opMapSync((c) => caseForms(c, locale).sort()))].map((a) => joinLetters(a)).join(\"|\"),\n\t\treplace: editCost.capsCosts\n\t};\n}\nfunction calcFirstCharacterReplaceDefs(alphabets, editCost) {\n\treturn alphabets.map((cs) => calcFirstCharacterReplace(cs, editCost));\n}\nfunction calcFirstCharacterReplace(cs, editCost) {\n\tconst mapOfFirstLetters = [...pipeSync(expandCharacterSet(cs.characters), opUniqueSync(), opMapSync((letter) => `(^${letter})`))].sort().join(\"\") + \"(^)\";\n\tconst penalty = editCost.firstLetterPenalty;\n\treturn {\n\t\tmap: mapOfFirstLetters,\n\t\treplace: cs.cost - penalty,\n\t\tpenalty: penalty * 2\n\t};\n}\nfunction parseAccents(cs, _editCost) {\n\tconst { cost, penalty } = cs;\n\tconst accents = joinLetters([...pipeSync(expandCharacterSet(cs.characters), opMapSync((char) => stripNonAccents(char)))]);\n\tif (!accents) return void 0;\n\treturn clean$1({\n\t\tmap: accents,\n\t\treplace: cost,\n\t\tinsDel: cost,\n\t\tpenalty\n\t});\n}\nfunction calcCostsForAccentedLetters(simpleMap, locale, costs) {\n\tconst charactersWithAccents = [...pipeSync(splitMap(simpleMap), opMapSync((char) => caseForms(char, locale)), opFlattenSync(), opMapSync((char) => [...accentForms(char)]), opFilterSync((forms) => forms.length > 1))];\n\tconst replaceAccentMap = [...pipeSync(charactersWithAccents, opMapSync((forms) => /* @__PURE__ */ new Set([...forms, ...forms.map((char) => stripAccents(char))])), opMapSync((forms) => [...forms].sort()), opFilterSync((forms) => forms.length > 1), opMapSync(joinLetters), opUniqueSync())].join(\"|\");\n\tconst cost = costs.accentCosts;\n\tconst costToReplaceAccent = !replaceAccentMap ? [] : [{\n\t\tmap: replaceAccentMap,\n\t\treplace: cost\n\t}];\n\tconst normalizeMap = charactersWithAccents.map((a) => a.sort()).map(joinLetters).join(\"|\");\n\tconst costToNormalizeAccent = !normalizeMap ? [] : [{\n\t\tmap: normalizeMap,\n\t\treplace: 0\n\t}];\n\treturn [...costToReplaceAccent, ...costToNormalizeAccent];\n}\n/**\n* Splits a simple map string into its parts.\n* - `abc` => `a`, `b`, `c`\n* - `a(bc)` => `a`, `bc`\n* @param map - string of characters\n*/\nfunction* splitMap(map) {\n\tlet seq = \"\";\n\tlet mode = 0;\n\tfor (const char of map) {\n\t\tif (mode && char === \")\") {\n\t\t\tyield seq;\n\t\t\tmode = 0;\n\t\t\tcontinue;\n\t\t}\n\t\tif (mode) {\n\t\t\tseq += char;\n\t\t\tcontinue;\n\t\t}\n\t\tif (char === \"(\") {\n\t\t\tmode = 1;\n\t\t\tseq = \"\";\n\t\t\tcontinue;\n\t\t}\n\t\tyield char;\n\t}\n}\n//#endregion\n//#region src/lib/mappers/mapHunspellInformation.ts\nfunction hunspellInformationToSuggestionCostDef(hunInfo, locales) {\n\tconst costs = calcCosts(hunInfo.costs, locales);\n\tconst operations = [\n\t\taffKey,\n\t\taffKeyCaps,\n\t\taffMap,\n\t\taffMapAccents,\n\t\taffMapCaps,\n\t\taffNoTry,\n\t\taffRepConv,\n\t\taffTry,\n\t\taffTryAccents,\n\t\taffTryFirstCharacterReplace\n\t];\n\tfunction parseAff(aff, costs) {\n\t\tconst regSupportedAff = /^(?:MAP|KEY|TRY|NO-TRY|ICONV|OCONV|REP)\\s/;\n\t\tconst rejectAff = /^(?:MAP|KEY|TRY|ICONV|OCONV|REP)\\s+\\d+$/;\n\t\treturn [...pipeSync(aff.split(\"\\n\").map((a) => a.replace(/#.*/, \"\")).map((a) => a.trim()).filter((a) => regSupportedAff.test(a)).filter((a) => !rejectAff.test(a)), opMapSync((line) => pipeSync(operations, opMapSync((fn) => fn(line, costs)), opMapSync(asArrayOf), opFlattenSync())), opFlattenSync(), opFilterSync(isDefined$1))];\n\t}\n\treturn parseAff(hunInfo.aff, costs);\n}\nfunction calcCosts(costs = {}, locale) {\n\tconst useLocale = locale?.length ? locale.map((loc) => loc.locale) : void 0;\n\treturn {\n\t\t...mapHunspellCosts(costs),\n\t\tlocale: useLocale\n\t};\n}\nconst regExpMap = /^(?:MAP)\\s+(\\S+)$/;\nfunction affMap(line, costs) {\n\tconst m = line.match(regExpMap);\n\tif (!m) return void 0;\n\tconst map = m[1];\n\tconst cost = costs.mapCost;\n\treturn {\n\t\tmap,\n\t\treplace: cost,\n\t\tswap: cost\n\t};\n}\nconst regExpTry = /^(?:TRY)\\s+(\\S+)$/;\nfunction affTry(line, costs) {\n\tconst m = line.match(regExpTry);\n\tif (!m) return void 0;\n\tconst cost = costs.tryCharCost;\n\tconst characters = m[1];\n\treturn parseAlphabet({\n\t\tcharacters,\n\t\tcost\n\t}, costs.locale, costs);\n}\nfunction affTryFirstCharacterReplace(line, costs) {\n\tconst m = line.match(regExpTry);\n\tif (!m) return void 0;\n\tconst characters = m[1];\n\tconst cost = costs.tryCharCost;\n\treturn calcFirstCharacterReplace({\n\t\tcharacters,\n\t\tcost\n\t}, costs);\n}\nconst regExpNoTry = /^NO-TRY\\s+(\\S+)$/;\nfunction affNoTry(line, costs) {\n\tconst m = line.match(regExpNoTry);\n\tif (!m) return void 0;\n\treturn {\n\t\tmap: m[1],\n\t\tinsDel: Math.max(costs.nonAlphabetCosts - costs.tryCharCost, 0),\n\t\tpenalty: costs.nonAlphabetCosts + costs.tryCharCost\n\t};\n}\nconst regExpRepConv = /^(?:REP|(?:I|O)CONV)\\s+(\\S+)\\s+(\\S+)$/;\nfunction affRepConv(line, costs) {\n\tconst m = line.match(regExpRepConv);\n\tif (!m) return void 0;\n\tconst cost = line.startsWith(\"REP\") ? costs.replaceCosts : costs.ioConvertCost;\n\tconst from = m[1];\n\tlet into = m[2];\n\tinto = into.replace(/^0$/, \"\");\n\tif (from.startsWith(\"^\") && !into.startsWith(\"^\")) into = \"^\" + into;\n\tif (from.endsWith(\"$\") && !into.endsWith(\"$\")) into = into + \"$\";\n\treturn {\n\t\tmap: joinLetters([from, into]),\n\t\treplace: cost\n\t};\n}\nconst regExpKey = /^(?:KEY)\\s+(\\S+)$/;\nfunction affKey(line, costs) {\n\tconst m = line.match(regExpKey);\n\tif (!m) return void 0;\n\tconst kbd = m[1];\n\tconst pairs = [...splitMap(kbd)].map(reducer((p, v) => ({\n\t\ta: p.b,\n\t\tb: v\n\t}), {\n\t\ta: \"|\",\n\t\tb: \"|\"\n\t})).filter((ab) => ab.a !== \"|\" && ab.b !== \"|\").map(({ a, b }) => joinLetters([a, b]));\n\tconst pairsUpper = pairs.map((p) => p.toLocaleUpperCase(costs.locale));\n\tconst map = unique([...pairs, ...pairsUpper]).join(\"|\");\n\tconst cost = costs.keyboardCost;\n\treturn {\n\t\tmap,\n\t\treplace: cost,\n\t\tswap: cost\n\t};\n}\nfunction affKeyCaps(line, costs) {\n\tconst m = line.match(regExpKey);\n\tif (!m) return void 0;\n\treturn parseCaps(m[1], costs);\n}\nfunction affMapCaps(line, costs) {\n\tconst m = line.match(regExpMap);\n\tif (!m) return void 0;\n\treturn parseCaps(m[1], costs);\n}\nfunction affTryAccents(line, costs) {\n\tconst m = line.match(regExpTry);\n\tif (!m) return void 0;\n\treturn calcCostsForAccentedLetters(m[1], costs.locale, costs);\n}\nfunction affMapAccents(line, costs) {\n\tconst m = line.match(regExpMap);\n\tif (!m) return void 0;\n\treturn calcCostsForAccentedLetters(m[1], costs.locale, costs);\n}\nfunction parseCaps(value, costs) {\n\tconst locale = costs.locale;\n\tconst map = unique([...splitMap(value)].filter((a) => a !== \"|\").map((s) => caseForms(s, locale)).filter((forms) => forms.length > 1).map(joinLetters)).join(\"|\");\n\tconst cost = costs.capsCosts;\n\tif (!map) return void 0;\n\treturn {\n\t\tmap,\n\t\treplace: cost\n\t};\n}\nfunction reducer(fn, initialVal) {\n\tlet acc = initialVal;\n\treturn (val, i) => acc = fn(acc, val, i);\n}\nfunction asArrayOf(v) {\n\treturn Array.isArray(v) ? v : [v];\n}\n//#endregion\n//#region src/lib/mappers/mapDictionaryInfo.ts\nfunction mapDictionaryInformation(dictInfo) {\n\tconst _locale = dictInfo.locale;\n\tconst locale = _locale ? parseLocale(_locale).filter((loc) => loc.isValid()) : void 0;\n\tconst locales = locale?.map((loc) => loc.locale);\n\tconst costs = mapEditCosts(dictInfo.costs);\n\tconst defsEC = dictInfo.suggestionEditCosts || [];\n\tconst defsHI = dictInfo.hunspellInformation ? hunspellInformationToSuggestionCostDef(dictInfo.hunspellInformation, locale) : [];\n\treturn [\n\t\t...defsEC,\n\t\t...processAlphabet(dictInfo.alphabet, locales, costs),\n\t\t...processAccents(dictInfo.accents, costs),\n\t\t...defsHI\n\t];\n}\nfunction processAlphabet(alphabet, locale, editCost) {\n\tconst csAlphabet = toCharSets(alphabet, \"a-zA-Z\", editCost.baseCost);\n\treturn [...pipeSync(csAlphabet, opMapSync((cs) => parseAlphabet(cs, locale, editCost)), opFlattenSync()), ...calcFirstCharacterReplaceDefs(csAlphabet, editCost)];\n}\nfunction toCharSets(cs, defaultValue, cost, penalty) {\n\tcs = cs ?? defaultValue;\n\tif (!cs) return [];\n\tif (typeof cs === \"string\") cs = [{\n\t\tcharacters: cs,\n\t\tcost\n\t}];\n\tif (penalty !== void 0) cs.forEach((cs) => cs.penalty = penalty);\n\treturn cs;\n}\nfunction processAccents(accents, editCost) {\n\treturn toCharSets(accents, \"̀-́\", editCost.accentCosts).map((cs) => parseAccents(cs, editCost)).filter(isDefined$1);\n}\nfunction mapDictionaryInformationToAdjustment(dictInfo) {\n\tif (!dictInfo.adjustments) return [];\n\treturn dictInfo.adjustments.map(mapAdjustment);\n}\nfunction mapAdjustment(adj) {\n\tconst { id, regexp, penalty } = adj;\n\treturn {\n\t\tid,\n\t\tregexp: new RegExp(regexp),\n\t\tpenalty\n\t};\n}\n//#endregion\n//#region src/lib/mappers/mapDictionaryInfoToWeightMap.ts\nconst defaultDefs = [{\n\tmap: \"1234567890-.\",\n\tinsDel: 1,\n\tpenalty: 200\n}];\nconst defaultAdjustments = [\n\t{\n\t\tid: \"compound-case-change\",\n\t\tregexp: /\\p{Ll}∙\\p{Lu}/gu,\n\t\tpenalty: 1e3\n\t},\n\t{\n\t\tid: \"short-compounds-1\",\n\t\tregexp: /^[^∙]{0,2}(?=∙)|∙[^∙]{0,2}(?=∙|$)/gm,\n\t\tpenalty: 100\n\t},\n\t{\n\t\tid: \"short-compounds-3\",\n\t\tregexp: /^[^∙]{3}(?=∙)|∙[^∙]{3}(?=∙|$)/gm,\n\t\tpenalty: 50\n\t}\n];\nfunction mapDictionaryInformationToWeightMap(dictInfo) {\n\tconst defs = [...mapDictionaryInformation(dictInfo), ...defaultDefs];\n\tconst adjustments = mapDictionaryInformationToAdjustment(dictInfo);\n\tconst map = createWeightMap(...defs);\n\taddAdjustment(map, ...defaultAdjustments, ...adjustments);\n\treturn map;\n}\n//#endregion\nexport { CASE_INSENSITIVE_PREFIX, COMPOUND_FIX, CompoundWordsMethod, FLAG_WORD, FORBID_PREFIX, GTrie, GTrieNode, JOIN_SEPARATOR, OPTIONAL_COMPOUND_FIX, Trie, TrieBuilder, WORD_SEPARATOR, buildITrieFromWords, buildTrie, buildTrieFast, consolidate, convertToBTrie, countNodes, countWords, createDictionaryLineParserMapper as createDictionaryLineParser, createTrieRoot, createTrieRootFromList, createWeightedMap, decodeFile, decodeTrie, defaultTrieInfo, defaultTrieInfo as defaultTrieOptions, editDistance, editDistanceWeighted, encodeITrieToBTrie, encodeTrieDataToBTrie, expandCharacterSet, findNode, has, hintedWalker, impersonateCollector, importTrie, insert, isCircular, isDefined, isWordTerminationNode, iterateTrie, iteratorTrieWords, mapDictionaryInformationToWeightMap, mergeDefaults, mergeOptionalWithDefaults, normalizeWord, normalizeWordForCaseInsensitive, normalizeWordToLowercase, orderTrie, parseDictionary, parseDictionaryLegacy, parseDictionaryLines, serializeTrie, suggestionCollector, trieNodeToRoot, walk, walker };\n\n//# sourceMappingURL=index.js.map","import {\n buildITrieFromWords,\n decodeTrie,\n type ITrie,\n mapDictionaryInformationToWeightMap,\n type SuggestionResult,\n type WeightMap,\n} from 'cspell-trie-lib'\n\ntype DictionaryInformation = Parameters<typeof mapDictionaryInformationToWeightMap>[0]\n\nexport type SpellEngine = {\n isCorrect(word: string): boolean\n /** The words among `words` that are misspelled, each once, in first-seen order. */\n check(words: readonly string[]): readonly string[]\n suggest(word: string, limit: number): readonly string[]\n /** Replaces the accepted list. Accepted words are never misspelled and can be suggested. */\n setAcceptedWords(words: readonly string[]): void\n}\n\nexport type SpellEngineSource = {\n /** Decompressed tries, in either of cspell-trie-lib's encodings. */\n readonly dictionaries: readonly Uint8Array<ArrayBuffer>[]\n readonly suggestionWeights: DictionaryInformation\n}\n\ntype Suggestion = { readonly word: string; readonly cost: number }\n\nexport function createSpellEngine(source: SpellEngineSource): SpellEngine {\n const tries = source.dictionaries.map((bytes) => decodeTrie(bytes))\n const weightMap = mapDictionaryInformationToWeightMap(source.suggestionWeights)\n let accepted = new Set<string>()\n let acceptedTrie: ITrie | null = null\n\n const isCorrect = (word: string): boolean => {\n if (accepted.has(word) || accepted.has(word.toLowerCase())) return true\n return tries.some((trie) => inTrie(trie, word))\n }\n\n return {\n isCorrect,\n check: (words) => [...new Set(words)].filter((word) => !isCorrect(word)),\n suggest(word, limit) {\n const sources = acceptedTrie ? [...tries, acceptedTrie] : tries\n return rankedSuggestions(sources, word, limit, weightMap)\n },\n setAcceptedWords(words) {\n accepted = new Set(words)\n acceptedTrie = words.length === 0 ? null : buildITrieFromWords(words)\n },\n }\n}\n\nfunction inTrie(trie: ITrie, word: string): boolean {\n if (trie.hasWord(word, true)) return true\n if (isCapitalized(word) && trie.hasWord(word.toLowerCase(), true)) return true\n return trie.hasWord(word, false)\n}\n\nfunction rankedSuggestions(\n tries: readonly ITrie[],\n word: string,\n limit: number,\n weightMap: WeightMap,\n): readonly string[] {\n const options = { numSuggestions: limit, weightMap, ignoreCase: true }\n const candidates = tries.flatMap((trie) => trie.suggestWithCost(word, options))\n const best = new Map<string, Suggestion>()\n\n for (const candidate of candidates.toSorted(byCost)) {\n const shaped = matchCase(word, candidate.word)\n const key = shaped.toLowerCase()\n if (key === word.toLowerCase() || best.has(key)) continue\n best.set(key, { word: shaped, cost: candidate.cost })\n }\n\n return [...best.values()].slice(0, limit).map((suggestion) => suggestion.word)\n}\n\nfunction byCost(left: SuggestionResult, right: SuggestionResult): number {\n return left.cost - right.cost\n}\n\n/** A capitalized word at a sentence start should be offered capitalized replacements. */\nfunction matchCase(original: string, suggestion: string): string {\n if (!isCapitalized(original)) return suggestion\n if (suggestion.length === 0 || /[A-Z]/.test(suggestion[0] ?? '')) return suggestion\n return (suggestion[0] ?? '').toUpperCase() + suggestion.slice(1)\n}\n\nfunction isCapitalized(word: string): boolean {\n return /^[A-Z][^A-Z]*$/.test(word)\n}\n","import { ENGLISH_DICTIONARIES } from './dictionaryAssets'\nimport { loadSpellEngineSource } from './dictionaryData'\nimport { createSpellEngine, type SpellEngine } from './engine'\nimport type { SpellcheckWorkerRequest, SpellcheckWorkerResponse } from './protocol'\n\nconst scope = self as unknown as DedicatedWorkerGlobalScope\n// Every request waits on the one load, so requests are answered in the order they were posted.\nconst engine: Promise<SpellEngine> =\n loadSpellEngineSource(ENGLISH_DICTIONARIES).then(createSpellEngine)\n\nscope.onmessage = (event: MessageEvent<SpellcheckWorkerRequest>) => {\n const request = event.data\n engine.then(\n (loaded) => respond(loaded, request),\n (error: unknown) =>\n post({ type: 'error', id: requestId(request), message: errorMessage(error) }),\n )\n}\n\nfunction respond(loaded: SpellEngine, request: SpellcheckWorkerRequest): void {\n if (request.type === 'setAcceptedWords') {\n loaded.setAcceptedWords(request.words)\n return\n }\n if (request.type === 'check') {\n post({ type: 'check', id: request.id, misspelled: loaded.check(request.words) })\n return\n }\n post({\n type: 'suggest',\n id: request.id,\n suggestions: loaded.suggest(request.word, request.limit),\n })\n}\n\nfunction requestId(request: SpellcheckWorkerRequest): number | null {\n return request.type === 'setAcceptedWords' ? null : request.id\n}\n\nfunction errorMessage(error: unknown): string {\n return error instanceof Error ? error.message : String(error)\n}\n\nfunction post(response: SpellcheckWorkerResponse): void {\n scope.postMessage(response)\n}\n"],"x_google_ignoreList":[4],"mappings":"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CA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA,CAAC,SAAS,QAAQ;CAClB;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA,CAAC,SAAS,QAAQ;CAClB;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,UAAU;CACjB;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,aAAa;CACpB;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,YAAY;CACnB;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,WAAW;CAClB;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,SAAS;CAChB;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,SAAS;CAChB;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,SAAS;CAChB;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,QAAQ;CACf;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,SAAS;CAChB;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,SAAS;CAChB;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,SAAS;CAChB;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,OAAO;CACd;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,cAAc;CACrB;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,OAAO;CACd;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,QAAQ;CACf;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,QAAQ;CACf;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,UAAU;CACjB;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,KAAK;CACZ;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,SAAS;CAChB;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA,CAAC,SAAS,SAAS;CACnB;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA,CAAC,SAAS,SAAS;CACnB,CAAC,SAAS,SAAS;CACnB;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,WAAW;CAClB,CAAC,MAAM,SAAS;CAChB;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA,CAAC,SAAS,SAAS;CACnB;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA,CAAC,SAAS,SAAS;CACnB;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,UAAU;CACjB;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,QAAQ;CACf;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,SAAS;CAChB;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,OAAO;CACd;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,SAAS;CAChB;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,SAAS;CAChB;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,QAAQ;CACf;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA,CAAC,SAAS,QAAQ;CAClB;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA,CAAC,SAAS,qCAAqC;CAC/C;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA,CAAC,SAAS,QAAQ;CAClB;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,iBAAiB;CACxB;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,OAAO;CACd;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,QAAQ;CACf;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,UAAU;CACjB;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,UAAU;CACjB;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,MAAM;CACb;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,OAAO;CACd;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,QAAQ;CACf;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,OAAO;CACd;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,UAAU;CACjB;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,WAAW;CAClB;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,UAAU;CACjB;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,YAAY;CACnB;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,MAAM;CACb;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,YAAY;CACnB;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,WAAW;CAClB;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,SAAS;CAChB;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,UAAU;CACjB;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,UAAU;CACjB;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,QAAQ;CACf;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,QAAQ;CACf;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,aAAa;CACpB;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,eAAe;CACtB;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,SAAS;CAChB;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,QAAQ;CACf;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,UAAU;CACjB;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,SAAS;CAChB;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,SAAS;CAChB;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,eAAe;CACtB;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,OAAO;CACd;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,SAAS;CAChB;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,KAAK;CACZ;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,YAAY;CACnB;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,cAAc;CACrB;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,SAAS;CAChB;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,UAAU;CACjB;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,YAAY;CACnB;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,WAAW;CAClB;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,WAAW;CAClB;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,SAAS;CAChB;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,OAAO;CACd;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,SAAS;CAChB;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,SAAS;CAChB;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,kBAAkB;CACzB;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,gBAAgB;CACvB;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,QAAQ;CACf;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,OAAO;CACd;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA,CAAC,SAAS,OAAO;CACjB,CAAC,SAAS,OAAO;CACjB;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA,CAAC,SAAS,OAAO;CACjB,CAAC,MAAM,mBAAmB;CAC1B;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,OAAO;CACd;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,OAAO;CACd;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,UAAU;CACjB;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,SAAS;CAChB;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,QAAQ;CACf;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,QAAQ;CACf;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,YAAY;CACnB;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,SAAS;CAChB;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,SAAS;CAChB;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,OAAO;CACd;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,UAAU;CACjB;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,SAAS;CAChB;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,aAAa;CACpB;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,eAAe;CACtB;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,OAAO;CACd;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,SAAS;CAChB;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,QAAQ;CACf;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,WAAW;CAClB;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,OAAO;CACd;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,QAAQ;CACf;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,UAAU;CACjB;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA,CAAC,SAAS,UAAU;CACpB,CAAC,MAAM,SAAS;CAChB;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA,CAAC,SAAS,SAAS;CACnB,CAAC,MAAM,SAAS;CAChB;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,SAAS;CAChB;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,OAAO;CACd;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,QAAQ;CACf;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,MAAM;CACb;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,UAAU;CACjB;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,SAAS;CAChB;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,uBAAuB;CAC9B;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,SAAS;CAChB;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,QAAQ;CACf;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,WAAW;CAClB;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,MAAM;CACb;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,OAAO;CACd;EACC;EACA;EACA;CACD;CACA;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,YAAY;CACnB;EACC;EACA;EACA;CACD;CACA,CAAC,MAAM,SAAS;CAChB,CAAC,MAAM,SAAS;CAChB,CAAC,QAAQ,SAAS;CAClB,CAAC,MAAM,QAAQ;CACf;EACC;EACA;EACA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"}
|