codebase-context 1.7.0 → 1.8.0
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 +149 -90
- package/dist/analyzers/angular/index.d.ts.map +1 -1
- package/dist/analyzers/angular/index.js +85 -39
- package/dist/analyzers/angular/index.js.map +1 -1
- package/dist/analyzers/generic/index.d.ts.map +1 -1
- package/dist/analyzers/generic/index.js +5 -4
- package/dist/analyzers/generic/index.js.map +1 -1
- package/dist/cli-formatters.d.ts +47 -0
- package/dist/cli-formatters.d.ts.map +1 -0
- package/dist/cli-formatters.js +803 -0
- package/dist/cli-formatters.js.map +1 -0
- package/dist/cli-memory.d.ts +5 -0
- package/dist/cli-memory.d.ts.map +1 -0
- package/dist/cli-memory.js +218 -0
- package/dist/cli-memory.js.map +1 -0
- package/dist/cli.d.ts +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +168 -178
- package/dist/cli.js.map +1 -1
- package/dist/core/auto-refresh.d.ts +16 -0
- package/dist/core/auto-refresh.d.ts.map +1 -0
- package/dist/core/auto-refresh.js +25 -0
- package/dist/core/auto-refresh.js.map +1 -0
- package/dist/core/file-watcher.d.ts +15 -0
- package/dist/core/file-watcher.d.ts.map +1 -0
- package/dist/core/file-watcher.js +59 -0
- package/dist/core/file-watcher.js.map +1 -0
- package/dist/core/index-meta.d.ts +3 -0
- package/dist/core/index-meta.d.ts.map +1 -1
- package/dist/core/index-meta.js +9 -1
- package/dist/core/index-meta.js.map +1 -1
- package/dist/core/indexer.d.ts.map +1 -1
- package/dist/core/indexer.js +74 -15
- package/dist/core/indexer.js.map +1 -1
- package/dist/core/reranker.d.ts.map +1 -1
- package/dist/core/reranker.js +3 -0
- package/dist/core/reranker.js.map +1 -1
- package/dist/core/search-quality.js +2 -2
- package/dist/core/search-quality.js.map +1 -1
- package/dist/core/search.d.ts.map +1 -1
- package/dist/core/search.js +20 -7
- package/dist/core/search.js.map +1 -1
- package/dist/core/symbol-references.d.ts +2 -3
- package/dist/core/symbol-references.d.ts.map +1 -1
- package/dist/core/symbol-references.js +111 -16
- package/dist/core/symbol-references.js.map +1 -1
- package/dist/embeddings/index.d.ts +8 -0
- package/dist/embeddings/index.d.ts.map +1 -1
- package/dist/embeddings/index.js +17 -2
- package/dist/embeddings/index.js.map +1 -1
- package/dist/embeddings/openai.d.ts +1 -1
- package/dist/embeddings/openai.d.ts.map +1 -1
- package/dist/embeddings/openai.js +3 -1
- package/dist/embeddings/openai.js.map +1 -1
- package/dist/embeddings/transformers.d.ts +6 -0
- package/dist/embeddings/transformers.d.ts.map +1 -1
- package/dist/embeddings/transformers.js +12 -5
- package/dist/embeddings/transformers.js.map +1 -1
- package/dist/embeddings/types.d.ts +1 -0
- package/dist/embeddings/types.d.ts.map +1 -1
- package/dist/embeddings/types.js +7 -1
- package/dist/embeddings/types.js.map +1 -1
- package/dist/grammars/manifest.d.ts.map +1 -1
- package/dist/grammars/manifest.js +2 -1
- package/dist/grammars/manifest.js.map +1 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +46 -3
- package/dist/index.js.map +1 -1
- package/dist/patterns/semantics.d.ts +2 -1
- package/dist/patterns/semantics.d.ts.map +1 -1
- package/dist/patterns/semantics.js +0 -2
- package/dist/patterns/semantics.js.map +1 -1
- package/dist/storage/index.d.ts +4 -1
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/index.js +2 -2
- package/dist/storage/index.js.map +1 -1
- package/dist/storage/lancedb.d.ts +2 -0
- package/dist/storage/lancedb.d.ts.map +1 -1
- package/dist/storage/lancedb.js +20 -4
- package/dist/storage/lancedb.js.map +1 -1
- package/dist/storage/types.d.ts +4 -1
- package/dist/storage/types.d.ts.map +1 -1
- package/dist/storage/types.js.map +1 -1
- package/dist/tools/detect-circular-dependencies.d.ts.map +1 -1
- package/dist/tools/detect-circular-dependencies.js.map +1 -1
- package/dist/tools/get-team-patterns.d.ts.map +1 -1
- package/dist/tools/get-team-patterns.js +30 -14
- package/dist/tools/get-team-patterns.js.map +1 -1
- package/dist/tools/search-codebase.d.ts.map +1 -1
- package/dist/tools/search-codebase.js +296 -189
- package/dist/tools/search-codebase.js.map +1 -1
- package/dist/tools/types.d.ts +193 -1
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/types/index.d.ts +73 -11
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +0 -1
- package/dist/types/index.js.map +1 -1
- package/dist/utils/language-detection.d.ts.map +1 -1
- package/dist/utils/language-detection.js +6 -1
- package/dist/utils/language-detection.js.map +1 -1
- package/dist/utils/tree-sitter.d.ts +11 -0
- package/dist/utils/tree-sitter.d.ts.map +1 -1
- package/dist/utils/tree-sitter.js +111 -0
- package/dist/utils/tree-sitter.js.map +1 -1
- package/dist/utils/usage-tracker.d.ts +30 -40
- package/dist/utils/usage-tracker.d.ts.map +1 -1
- package/dist/utils/usage-tracker.js +66 -8
- package/dist/utils/usage-tracker.js.map +1 -1
- package/docs/capabilities.md +22 -8
- package/docs/cli.md +196 -0
- package/grammars/tree-sitter-kotlin.wasm +0 -0
- package/package.json +6 -4
- package/dist/tools/get-component-usage.d.ts +0 -5
- package/dist/tools/get-component-usage.d.ts.map +0 -1
- package/dist/tools/get-component-usage.js +0 -83
- package/dist/tools/get-component-usage.js.map +0 -1
package/dist/core/search.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Hybrid search combining semantic vector search with keyword matching
|
|
3
3
|
*/
|
|
4
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
5
4
|
import Fuse from 'fuse.js';
|
|
6
5
|
import path from 'path';
|
|
7
6
|
import { promises as fs } from 'fs';
|
|
@@ -96,7 +95,15 @@ export class CodebaseSearcher {
|
|
|
96
95
|
await validateIndexArtifacts(this.rootPath, this.indexMeta);
|
|
97
96
|
await this.loadKeywordIndex();
|
|
98
97
|
await this.loadPatternIntelligence();
|
|
99
|
-
|
|
98
|
+
// Use the embedding config the index was built with, not the current env-var defaults.
|
|
99
|
+
// This ensures query vectors are in the same space as stored vectors.
|
|
100
|
+
// Legacy indexes (no embeddingProvider stored) fall back to env-var defaults.
|
|
101
|
+
const storedProvider = this.indexMeta.artifacts.vectorDb.embeddingProvider;
|
|
102
|
+
const storedModel = this.indexMeta.artifacts.vectorDb.embeddingModel;
|
|
103
|
+
const embeddingConfig = storedProvider
|
|
104
|
+
? { provider: storedProvider, model: storedModel }
|
|
105
|
+
: {};
|
|
106
|
+
this.embeddingProvider = await getEmbeddingProvider(embeddingConfig);
|
|
100
107
|
this.storageProvider = await getStorageProvider({
|
|
101
108
|
path: this.storagePath
|
|
102
109
|
});
|
|
@@ -118,7 +125,10 @@ export class CodebaseSearcher {
|
|
|
118
125
|
if (Array.isArray(parsed)) {
|
|
119
126
|
throw new IndexCorruptedError('Legacy keyword index format detected (missing header). Rebuild required.');
|
|
120
127
|
}
|
|
121
|
-
const
|
|
128
|
+
const parsedObj = parsed;
|
|
129
|
+
const chunks = parsedObj && typeof parsedObj === 'object' && Array.isArray(parsedObj.chunks)
|
|
130
|
+
? parsedObj.chunks
|
|
131
|
+
: null;
|
|
122
132
|
if (!chunks) {
|
|
123
133
|
throw new IndexCorruptedError('Keyword index corrupted: expected { header, chunks }');
|
|
124
134
|
}
|
|
@@ -159,8 +169,7 @@ export class CodebaseSearcher {
|
|
|
159
169
|
const patternWarnings = new Map();
|
|
160
170
|
// Extract pattern indicators from intelligence data
|
|
161
171
|
if (intelligence.patterns) {
|
|
162
|
-
for (const [_category,
|
|
163
|
-
const patternData = data;
|
|
172
|
+
for (const [_category, patternData] of Object.entries(intelligence.patterns)) {
|
|
164
173
|
// Track primary pattern
|
|
165
174
|
if (patternData.primary?.trend === 'Rising') {
|
|
166
175
|
risingPatterns.add(patternData.primary.name.toLowerCase());
|
|
@@ -180,7 +189,9 @@ export class CodebaseSearcher {
|
|
|
180
189
|
}
|
|
181
190
|
}
|
|
182
191
|
this.patternIntelligence = { decliningPatterns, risingPatterns, patternWarnings };
|
|
183
|
-
|
|
192
|
+
if (process.env.CODEBASE_CONTEXT_DEBUG) {
|
|
193
|
+
console.error(`[search] Loaded pattern intelligence: ${decliningPatterns.size} declining, ${risingPatterns.size} rising patterns`);
|
|
194
|
+
}
|
|
184
195
|
this.importCentrality = new Map();
|
|
185
196
|
if (intelligence.internalFileGraph && intelligence.internalFileGraph.imports) {
|
|
186
197
|
// Count how many files import each file (in-degree centrality)
|
|
@@ -196,7 +207,9 @@ export class CodebaseSearcher {
|
|
|
196
207
|
for (const [file, count] of importCounts) {
|
|
197
208
|
this.importCentrality.set(file, count / maxImports);
|
|
198
209
|
}
|
|
199
|
-
|
|
210
|
+
if (process.env.CODEBASE_CONTEXT_DEBUG) {
|
|
211
|
+
console.error(`[search] Computed import centrality for ${importCounts.size} files`);
|
|
212
|
+
}
|
|
200
213
|
}
|
|
201
214
|
}
|
|
202
215
|
catch (error) {
|
package/dist/core/search.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/core/search.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,uDAAuD;AACvD,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,IAAI,CAAC;AAEpC,OAAO,EAAqB,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACjF,OAAO,EAAyB,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAkB,aAAa,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACxF,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,EAClB,MAAM,kCAAkC,CAAC;AA6B1C,MAAM,sBAAsB,GAAkB;IAC5C,iBAAiB,EAAE,IAAI;IACvB,gBAAgB,EAAE,IAAI;IACtB,uDAAuD;IACvD,oDAAoD;IACpD,yDAAyD;IACzD,OAAO,EAAE,SAAS;IAClB,oBAAoB,EAAE,IAAI;IAC1B,yBAAyB,EAAE,IAAI;IAC/B,cAAc,EAAE,EAAE;IAClB,cAAc,EAAE,IAAI;CACrB,CAAC;AAEF,MAAM,qBAAqB,GAAgD;IACzE;QACE,OAAO,EAAE,qEAAqE;QAC9E,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC;KAC/D;IACD;QACE,OAAO,EAAE,sEAAsE;QAC/E,KAAK,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,CAAC;KAC7D;IACD;QACE,OAAO,EAAE,mFAAmF;QAC5F,KAAK,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,CAAC;KAChE;IACD;QACE,OAAO,EAAE,6EAA6E;QACtF,KAAK,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC;KAC7D;IACD;QACE,OAAO,EAAE,qDAAqD;QAC9D,KAAK,EAAE,CAAC,aAAa,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC;KACpE;IACD;QACE,OAAO,EAAE,4DAA4D;QACrE,KAAK,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC;KACrE;CACF,CAAC;AAEF,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC;IAC/B,KAAK;IACL,GAAG;IACH,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,KAAK;IACL,KAAK;IACL,IAAI;IACJ,MAAM;IACN,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,KAAK;IACL,KAAK;IACL,IAAI;IACJ,OAAO;IACP,QAAQ;CACT,CAAC,CAAC;AAEH,MAAM,OAAO,gBAAgB;IACnB,QAAQ,CAAS;IACjB,WAAW,CAAS;IAEpB,SAAS,GAAqB,IAAI,CAAC;IAEnC,SAAS,GAA2B,IAAI,CAAC;IACzC,MAAM,GAAgB,EAAE,CAAC;IAEzB,iBAAiB,GAA6B,IAAI,CAAC;IACnD,eAAe,GAAiC,IAAI,CAAC;IAErD,WAAW,GAAG,KAAK,CAAC;IAE5B,2CAA2C;IACnC,mBAAmB,GAIhB,IAAI,CAAC;IAER,gBAAgB,GAA+B,IAAI,CAAC;IAE5D,YAAY,QAAgB;QAC1B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,wBAAwB,EAAE,iBAAiB,CAAC,CAAC;IACtF,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO;QAE7B,IAAI,CAAC;YACH,yEAAyE;YACzE,IAAI,CAAC,SAAS,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACpD,MAAM,sBAAsB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YAE5D,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC9B,MAAM,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAErC,IAAI,CAAC,iBAAiB,GAAG,MAAM,oBAAoB,EAAE,CAAC;YACtD,IAAI,CAAC,eAAe,GAAG,MAAM,kBAAkB,CAAC;gBAC9C,IAAI,EAAE,IAAI,CAAC,WAAW;aACvB,CAAC,CAAC;YAEH,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAC1B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,mBAAmB,EAAE,CAAC;gBACzC,MAAM,KAAK,CAAC,CAAC,qCAAqC;YACpD,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,+CAA+C,EAAE,KAAK,CAAC,CAAC;YACrE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAC1B,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,gBAAgB;QAC5B,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,wBAAwB,EAAE,sBAAsB,CAAC,CAAC;YAC7F,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YACtD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAQ,CAAC;YAE1C,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1B,MAAM,IAAI,mBAAmB,CAC3B,0EAA0E,CAC3E,CAAC;YACJ,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;YAC7E,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,mBAAmB,CAAC,sDAAsD,CAAC,CAAC;YACxF,CAAC;YAED,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YAErB,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gBACrC,IAAI,EAAE;oBACJ,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE;oBAChC,EAAE,IAAI,EAAE,wBAAwB,EAAE,MAAM,EAAE,IAAI,EAAE;oBAChD,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE;oBAClC,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE;oBACtC,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,IAAI,EAAE;oBACvC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE;oBAC9B,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE;iBAC/B;gBACD,YAAY,EAAE,IAAI;gBAClB,SAAS,EAAE,GAAG;gBACd,iBAAiB,EAAE,IAAI;gBACvB,cAAc,EAAE,IAAI;aACrB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,mBAAmB,EAAE,CAAC;gBACzC,MAAM,KAAK,CAAC;YACd,CAAC;YACD,MAAM,IAAI,mBAAmB,CAC3B,iDAAiD,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAC1G,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,uBAAuB;QACnC,IAAI,CAAC;YACH,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAChC,IAAI,CAAC,QAAQ,EACb,wBAAwB,EACxB,qBAAqB,CACtB,CAAC;YACF,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;YAC7D,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAEzC,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAC;YAC5C,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;YACzC,MAAM,eAAe,GAAG,IAAI,GAAG,EAAkB,CAAC;YAElD,oDAAoD;YACpD,IAAI,YAAY,CAAC,QAAQ,EAAE,CAAC;gBAC1B,KAAK,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACtE,MAAM,WAAW,GAAG,IAAW,CAAC;oBAEhC,wBAAwB;oBACxB,IAAI,WAAW,CAAC,OAAO,EAAE,KAAK,KAAK,QAAQ,EAAE,CAAC;wBAC5C,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;oBAC7D,CAAC;oBAED,+BAA+B;oBAC/B,IAAI,WAAW,CAAC,YAAY,EAAE,CAAC;wBAC7B,KAAK,MAAM,GAAG,IAAI,WAAW,CAAC,YAAY,EAAE,CAAC;4BAC3C,IAAI,GAAG,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;gCAC9B,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;gCAC9C,eAAe,CAAC,GAAG,CACjB,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,EACtB,oCAAoC,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,QAAQ,IAAI,8BAA8B,GAAG,CACnG,CAAC;4BACJ,CAAC;iCAAM,IAAI,GAAG,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gCAClC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;4BAC7C,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAED,IAAI,CAAC,mBAAmB,GAAG,EAAE,iBAAiB,EAAE,cAAc,EAAE,eAAe,EAAE,CAAC;YAClF,OAAO,CAAC,KAAK,CACX,yCAAyC,iBAAiB,CAAC,IAAI,eAAe,cAAc,CAAC,IAAI,kBAAkB,CACpH,CAAC;YAEF,IAAI,CAAC,gBAAgB,GAAG,IAAI,GAAG,EAAkB,CAAC;YAClD,IAAI,YAAY,CAAC,iBAAiB,IAAI,YAAY,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC;gBAC7E,+DAA+D;gBAC/D,MAAM,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;gBAE/C,KAAK,MAAM,CAAC,cAAc,EAAE,aAAa,CAAC,IAAI,MAAM,CAAC,OAAO,CAC1D,YAAY,CAAC,iBAAiB,CAAC,OAAO,CACvC,EAAE,CAAC;oBACF,MAAM,OAAO,GAAG,aAAyB,CAAC;oBAC1C,KAAK,MAAM,QAAQ,IAAI,OAAO,EAAE,CAAC;wBAC/B,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oBACpE,CAAC;gBACH,CAAC;gBAED,oCAAoC;gBACpC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACrE,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,YAAY,EAAE,CAAC;oBACzC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,GAAG,UAAU,CAAC,CAAC;gBACtD,CAAC;gBAED,OAAO,CAAC,KAAK,CAAC,2CAA2C,YAAY,CAAC,IAAI,QAAQ,CAAC,CAAC;YACtF,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CACV,0EAA0E,EAC1E,KAAK,CACN,CAAC;YACF,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;YAChC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC/B,CAAC;IACH,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,KAAgB;QAIvC,IAAI,CAAC,IAAI,CAAC,mBAAmB,IAAI,KAAK,CAAC,OAAO,IAAI,IAAI,EAAE,CAAC;YACvD,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QAC9B,CAAC;QAED,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QAC5C,MAAM,EAAE,iBAAiB,EAAE,cAAc,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC;QAExF,+BAA+B;QAC/B,KAAK,MAAM,OAAO,IAAI,iBAAiB,EAAE,CAAC;YACxC,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC9B,OAAO;oBACL,KAAK,EAAE,WAAW;oBAClB,OAAO,EAAE,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC;iBACtC,CAAC;YACJ,CAAC;QACH,CAAC;QAED,4BAA4B;QAC5B,KAAK,MAAM,OAAO,IAAI,cAAc,EAAE,CAAC;YACrC,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC9B,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;YAC7B,CAAC;QACH,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IAC7B,CAAC;IAEO,UAAU,CAAC,QAAgB;QACjC,MAAM,UAAU,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC9D,OAAO,CACL,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAC7B,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAC7B,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC;YAC5B,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC,CACnC,CAAC;IACJ,CAAC;IAEO,mBAAmB,CAAC,KAAa;QACvC,OAAO,KAAK;aACT,WAAW,EAAE;aACb,KAAK,CAAC,aAAa,CAAC;aACpB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IACtE,CAAC;IAED;;OAEG;IACK,mBAAmB,CAAC,KAAa;QACvC,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QAEvC,sFAAsF;QACtF,IAAI,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/D,OAAO;gBACL,MAAM,EAAE,YAAY;gBACpB,OAAO,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,2CAA2C;aACrF,CAAC;QACJ,CAAC;QAED,sCAAsC;QACtC,MAAM,cAAc,GAAG;YACrB,QAAQ;YACR,OAAO;YACP,SAAS;YACT,WAAW;YACX,eAAe;YACf,WAAW;SACZ,CAAC;QACF,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YACzD,OAAO;gBACL,MAAM,EAAE,QAAQ;gBAChB,OAAO,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW;aACrD,CAAC;QACJ,CAAC;QAED,kCAAkC;QAClC,MAAM,cAAc,GAAG;YACrB,SAAS;YACT,QAAQ;YACR,YAAY;YACZ,UAAU;YACV,MAAM;YACN,WAAW;YACX,QAAQ;SACT,CAAC;QACF,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YACzD,OAAO;gBACL,MAAM,EAAE,QAAQ;gBAChB,OAAO,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW;aACrD,CAAC;QACJ,CAAC;QAED,kCAAkC;QAClC,MAAM,SAAS,GAAG;YAChB,UAAU;YACV,UAAU;YACV,OAAO;YACP,QAAQ;YACR,SAAS;YACT,SAAS;YACT,SAAS;YACT,UAAU;SACX,CAAC;QACF,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YACxD,OAAO;gBACL,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,yCAAyC;aACnF,CAAC;QACJ,CAAC;QAED,6DAA6D;QAC7D,OAAO;YACL,MAAM,EAAE,YAAY;YACpB,OAAO,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,kCAAkC;SAC5E,CAAC;IACJ,CAAC;IAEO,kBAAkB,CAAC,KAAa,EAAE,aAAqB;QAC7D,MAAM,QAAQ,GAAmB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;QACxD,IAAI,aAAa,IAAI,CAAC;YAAE,OAAO,QAAQ,CAAC;QAExC,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;QAEvD,KAAK,MAAM,IAAI,IAAI,qBAAqB,EAAE,CAAC;YACzC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;gBAAE,SAAS;YACxC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBAC9B,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC/B,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAClB,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QAClF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,QAAQ,CAAC;QAE7C,MAAM,cAAc,GAAG,GAAG,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;QAC7E,IAAI,cAAc,KAAK,KAAK,EAAE,CAAC;YAC7B,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QACzD,CAAC;QAED,IAAI,aAAa,GAAG,CAAC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/C,MAAM,eAAe,GAAG,GAAG,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;YAC/E,IAAI,eAAe,KAAK,KAAK,EAAE,CAAC;gBAC9B,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,CAAC;IAC9C,CAAC;IAEO,qBAAqB,CAAC,QAAgB;QAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;QACjD,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC7E,CAAC;IAEO,qBAAqB,CAAC,QAAgB;QAC5C,MAAM,UAAU,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC9D,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAEvC,IAAI,mCAAmC,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QAEhE,OAAO,CACL,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC;YAC9B,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC;YAC/B,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC;YAC9B,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC;YAC9B,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,CAClC,CAAC;IACJ,CAAC;IAEO,qBAAqB,CAAC,QAAgB,EAAE,KAAa;QAC3D,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5D,IAAI,UAAU,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC;QAEpC,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;QACzE,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1F,CAAC;IAEO,yBAAyB,CAAC,KAAa;QAC7C,OAAO,kJAAkJ,CAAC,IAAI,CAC5J,KAAK,CACN,CAAC;IACJ,CAAC;IAEO,kBAAkB,CAAC,KAAa;QACtC,OAAO,+IAA+I,CAAC,IAAI,CACzJ,KAAK,CACN,CAAC;IACJ,CAAC;IAEO,uBAAuB,CAAC,KAAgB;QAC9C,MAAM,cAAc,GAAG,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACxE,MAAM,aAAa,GAAG,CAAC,KAAK,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QAEhE,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC;YAAE,OAAO,IAAI,CAAC;QAEnF,OAAO,CACL,cAAc,CAAC,QAAQ,CAAC,UAAU,CAAC;YACnC,cAAc,CAAC,QAAQ,CAAC,cAAc,CAAC;YACvC,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC;YAClC,cAAc,CAAC,QAAQ,CAAC,YAAY,CAAC,CACtC,CAAC;IACJ,CAAC;IAEO,mBAAmB,CACzB,KAAa,EACb,KAAa,EACb,OAGC,EACD,OAA4B,EAC5B,MAAmB,EACnB,kBAA0B;QAE1B,MAAM,iBAAiB,GAAG,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC;QAChE,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAEnD,qGAAqG;QACrG,MAAM,KAAK,GAAG,EAAE,CAAC;QAEjB,yDAAyD;QACzD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAqB,CAAC;QAC/C,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;QAE5C,oBAAoB;QACpB,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YAC3C,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;QACD,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YAC1C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;gBACvB,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;QAED,8DAA8D;QAC9D,KAAK,MAAM,CAAC,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC;YAC7B,IAAI,QAAQ,GAAG,CAAC,CAAC;YAEjB,wCAAwC;YACxC,MAAM,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC/C,IAAI,aAAa,EAAE,CAAC;gBAClB,KAAK,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,aAAa,CAAC,KAAK,EAAE,CAAC;oBACnD,QAAQ,IAAI,MAAM,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;gBACtC,CAAC;YACH,CAAC;YAED,uCAAuC;YACvC,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC7C,IAAI,YAAY,EAAE,CAAC;gBACjB,KAAK,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,YAAY,CAAC,KAAK,EAAE,CAAC;oBAClD,QAAQ,IAAI,MAAM,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;gBACtC,CAAC;YACH,CAAC;YAED,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QAC9B,CAAC;QAED,8EAA8E;QAC9E,oFAAoF;QACpF,MAAM,iBAAiB,GAAG,kBAAkB,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAC3D,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;QAEtD,+DAA+D;QAC/D,MAAM,cAAc,GAAG,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;QACrD,MAAM,oBAAoB,GAA+B,EAAE,CAAC;QAC5D,MAAM,UAAU,GAA+B,EAAE,CAAC;QAElD,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC;YAC9C,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACpC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;YAC/B,CAAC;iBAAM,CAAC;gBACN,oBAAoB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;QAED,uHAAuH;QACvH,MAAM,aAAa,GAAG,cAAc,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;QAE9F,MAAM,aAAa,GAAG,aAAa;aAChC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE;YACnB,kEAAkE;YAClE,sEAAsE;YACtE,IAAI,aAAa,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE,CAAE,GAAG,WAAW,CAAC;YAErD,kEAAkE;YAClE,IAAI,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;gBAC7D,aAAa,IAAI,GAAG,CAAC;YACvB,CAAC;YAED,6BAA6B;YAC7B,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC7C,aAAa,IAAI,GAAG,CAAC;YACvB,CAAC;YAED,IAAI,WAAW,IAAI,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,EAAE,CAAC;gBACvD,aAAa,IAAI,IAAI,CAAC;YACxB,CAAC;YAED,IACE,WAAW;gBACX,CAAC,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,QAAQ,CAC7E,CAAC,KAAK,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAC1C,EACD,CAAC;gBACD,aAAa,IAAI,IAAI,CAAC;YACxB,CAAC;YAED,qEAAqE;YACrE,oDAAoD;YACpD,IACE,CAAC,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,QAAQ,IAAI,WAAW,CAAC;gBACzD,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,QAAQ,CAAC,EAC1C,CAAC;gBACD,aAAa,IAAI,IAAI,CAAC;YACxB,CAAC;YAED,oEAAoE;YACpE,IAAI,iBAAiB,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC/C,IAAI,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC/C,aAAa,IAAI,IAAI,CAAC;gBACxB,CAAC;YACH,CAAC;YAED,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;gBACtB,sEAAsE;gBACtE,IACE,CAAC,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC,QAAQ,CACxD,CAAC,KAAK,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAC1C,EACD,CAAC;oBACD,aAAa,IAAI,IAAI,CAAC;gBACxB,CAAC;YACH,CAAC;iBAAM,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC/B,yDAAyD;gBACzD,IAAI,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC/C,aAAa,IAAI,GAAG,CAAC;gBACvB,CAAC;YACH,CAAC;iBAAM,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC/B,2CAA2C;gBAC3C,IACE,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAC7C,CAAC,KAAK,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CACzD,EACD,CAAC;oBACD,aAAa,IAAI,IAAI,CAAC;gBACxB,CAAC;gBACD,IAAI,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC/C,aAAa,IAAI,IAAI,CAAC;gBACxB,CAAC;YACH,CAAC;YAED,MAAM,WAAW,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YACtE,IAAI,WAAW,IAAI,CAAC,EAAE,CAAC;gBACrB,aAAa,IAAI,IAAI,CAAC;YACxB,CAAC;YAED,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAC1B,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;gBAC9E,MAAM,cAAc,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;gBACtF,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;gBAC7D,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,GAAG,GAAG,EAAE,CAAC;oBACjD,kDAAkD;oBAClD,MAAM,eAAe,GAAG,GAAG,GAAG,UAAU,GAAG,IAAI,CAAC,CAAC,gCAAgC;oBACjF,aAAa,IAAI,eAAe,CAAC;gBACnC,CAAC;YACH,CAAC;YAED,gDAAgD;YAChD,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;YACxD,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACvB,aAAa,IAAI,IAAI,CAAC,CAAC,2BAA2B;YACpD,CAAC;iBAAM,IAAI,KAAK,KAAK,WAAW,EAAE,CAAC;gBACjC,aAAa,IAAI,GAAG,CAAC,CAAC,2BAA2B;YACnD,CAAC;YAED,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;YAE1D,OAAO;gBACL,OAAO;gBACP,OAAO;gBACP,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,KAAK,EAAE,aAAa;gBACpB,eAAe,EAAE,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,KAAK,CAAC;gBAC3D,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,aAAa,EAAE,KAAK,CAAC,aAAa;gBAClC,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,KAAK;gBACL,cAAc,EAAE,OAAO;aACR,CAAC;QACpB,CAAC,CAAC;aACD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QAErC,0DAA0D;QAC1D,kEAAkE;QAClE,IAAI,MAAM,KAAK,YAAY,EAAE,CAAC;YAC5B,MAAM,eAAe,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;YAC5C,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;gBACnC,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC;gBAC/C,IAAI,UAAU,IAAI,UAAU,CAAC,WAAW,EAAE,KAAK,eAAe,EAAE,CAAC;oBAC/D,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,4BAA4B;gBACpD,CAAC;YACH,CAAC;YACD,sBAAsB;YACtB,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QAClD,CAAC;QAED,2BAA2B;QAC3B,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;QACpC,MAAM,OAAO,GAAmB,EAAE,CAAC;QACnC,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;YACnC,MAAM,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YACzE,IAAI,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC;gBAAE,SAAS;YAC5C,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YAC9B,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACrB,IAAI,OAAO,CAAC,MAAM,IAAI,KAAK;gBAAE,MAAM;QACrC,CAAC;QAED,wCAAwC;QACxC,6EAA6E;QAC7E,MAAM,WAAW,GAAG,IAAI,GAAG,EAAwB,CAAC;QACpD,MAAM,aAAa,GAAmB,EAAE,CAAC;QACzC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC;YAC/C,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,6BAA6B;gBAC7B,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC3B,SAAS;YACX,CAAC;YAED,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAC5F,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAChD,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC;gBAC/C,IAAI,QAAQ,EAAE,CAAC;oBACb,gCAAgC;oBAChC,MAAM,GAAG,GAAG,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;oBAC5C,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;wBACb,aAAa,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;oBAC9B,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC7B,CAAC;gBACD,WAAW,CAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;QAED,MAAM,YAAY,GAAG,aAAa,CAAC;QAEnC,IACE,cAAc;YACd,YAAY,CAAC,MAAM,GAAG,CAAC;YACvB,YAAY,CAAC,MAAM,GAAG,KAAK;YAC3B,UAAU,CAAC,MAAM,GAAG,CAAC,EACrB,CAAC;YACD,qCAAqC;YACrC,MAAM,aAAa,GAAG,UAAU;iBAC7B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;gBACrB,EAAE;gBACF,KAAK;gBACL,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAE,GAAG,WAAW;aACxC,CAAC,CAAC;iBACF,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAExC,IAAI,aAAa,EAAE,CAAC;gBAClB,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBACtE,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;gBAExE,YAAY,CAAC,IAAI,CAAC;oBAChB,OAAO;oBACP,OAAO;oBACP,QAAQ,EAAE,aAAa,CAAC,KAAK,CAAC,QAAQ;oBACtC,SAAS,EAAE,aAAa,CAAC,KAAK,CAAC,SAAS;oBACxC,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,OAAO;oBACpC,KAAK,EAAE,aAAa,CAAC,KAAK,GAAG,GAAG,EAAE,oCAAoC;oBACtE,eAAe,EACb,IAAI,CAAC,uBAAuB,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,cAAc;oBAC3E,QAAQ,EAAE,aAAa,CAAC,KAAK,CAAC,QAAQ;oBACtC,SAAS,EAAE,aAAa,CAAC,KAAK,CAAC,SAAS;oBACxC,aAAa,EAAE,aAAa,CAAC,KAAK,CAAC,aAAa;oBAChD,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,KAAK;oBAChC,QAAQ,EAAE,aAAa,CAAC,KAAK,CAAC,QAAQ;oBACtC,KAAK;oBACL,cAAc,EAAE,OAAO;iBACR,CAAC,CAAC;YACrB,CAAC;QACH,CAAC;QAED,OAAO,YAAY,CAAC;IACtB,CAAC;IAEO,mBAAmB,CACzB,KAAa,EACb,OAAuB,EACvB,MAAsB;QAEtB,MAAM,cAAc,GAAG,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC3D,MAAM,aAAa,GAAG,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAEzD,IACE,aAAa,CAAC,MAAM,KAAK,IAAI;YAC7B,cAAc,CAAC,MAAM,KAAK,gBAAgB;YAC1C,aAAa,CAAC,UAAU,IAAI,cAAc,CAAC,UAAU,EACrD,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,IAAI,aAAa,CAAC,UAAU,IAAI,cAAc,CAAC,UAAU,GAAG,IAAI,EAAE,CAAC;YACjE,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,KAAK,CAAC,oBAAoB,CAChC,aAA6B,EAC7B,cAAsB,EACtB,OAAkC,EAClC,iBAA0B,EAC1B,gBAAyB,EACzB,cAAsB,EACtB,aAAqB;QAKrB,MAAM,aAAa,GAGf,IAAI,GAAG,EAAE,CAAC;QACd,MAAM,YAAY,GAGd,IAAI,GAAG,EAAE,CAAC;QAEd,yDAAyD;QACzD,IAAI,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACxE,IAAI,CAAC;gBACH,KAAK,MAAM,OAAO,IAAI,aAAa,EAAE,CAAC;oBACpC,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;oBAExF,oDAAoD;oBACpD,aAAa,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;wBACtC,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;wBAC3B,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,iBAAiB;wBACrC,MAAM,MAAM,GAAG,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;wBAC/C,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;wBAEvC,IAAI,QAAQ,EAAE,CAAC;4BACb,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;wBACxC,CAAC;6BAAM,CAAC;4BACN,aAAa,CAAC,GAAG,CAAC,EAAE,EAAE;gCACpB,KAAK,EAAE,MAAM,CAAC,KAAK;gCACnB,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;6BAC1B,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,KAAK,YAAY,mBAAmB,EAAE,CAAC;oBACzC,MAAM,KAAK,CAAC,CAAC,qCAAqC;gBACpD,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;QAED,IAAI,gBAAgB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACvC,IAAI,CAAC;gBACH,KAAK,MAAM,OAAO,IAAI,aAAa,EAAE,CAAC;oBACpC,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;oBAExF,oDAAoD;oBACpD,cAAc,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;wBACvC,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;wBAC3B,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,iBAAiB;wBACrC,MAAM,MAAM,GAAG,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;wBAC9C,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;wBAEtC,IAAI,QAAQ,EAAE,CAAC;4BACb,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;wBACxC,CAAC;6BAAM,CAAC;4BACN,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE;gCACnB,KAAK,EAAE,MAAM,CAAC,KAAK;gCACnB,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;6BAC1B,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;QAED,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,MAAM,CACV,KAAa,EACb,QAAgB,CAAC,EACjB,OAAuB,EACvB,UAAyB,sBAAsB;QAE/C,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QAC1B,CAAC;QAED,MAAM,MAAM,GAAG;YACb,GAAG,sBAAsB;YACzB,GAAG,OAAO;SACX,CAAC;QACF,MAAM,EACJ,iBAAiB,EACjB,gBAAgB,EAChB,OAAO,EACP,oBAAoB,EACpB,yBAAyB,EACzB,cAAc,EACd,cAAc,EACf,GAAG,MAAM,CAAC;QAEX,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAC3E,wEAAwE;QACxE,MAAM,mBAAmB,GAAG,MAAM,CAAC,cAAc,IAAI,aAAa,CAAC,QAAQ,CAAC;QAC5E,MAAM,kBAAkB,GAAG,MAAM,CAAC,aAAa,IAAI,aAAa,CAAC,OAAO,CAAC;QAEzE,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,cAAc,IAAI,EAAE,CAAC,CAAC;QACjE,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAErF,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,oBAAoB,CACpD,eAAe,EACf,cAAc,EACd,OAAO,EACP,OAAO,CAAC,iBAAiB,CAAC,EAC1B,OAAO,CAAC,gBAAgB,CAAC,EACzB,mBAAmB,EACnB,kBAAkB,CACnB,CAAC;QAEF,MAAM,kBAAkB,GACtB,eAAe,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;YACrD,CAAC,mBAAmB,GAAG,kBAAkB,CAAC,CAAC;QAC7C,MAAM,cAAc,GAAG,IAAI,CAAC,mBAAmB,CAC7C,KAAK,EACL,KAAK,EACL,cAAc,EACd,CAAC,OAAO,IAAI,SAAS,CAAwB,EAC7C,MAAM,EACN,kBAAkB,CACnB,CAAC;QAEF,IAAI,WAAW,GAAG,cAAc,CAAC;QAEjC,IAAI,yBAAyB,EAAE,CAAC;YAC9B,MAAM,cAAc,GAAG,mBAAmB,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;YAClE,IAAI,cAAc,CAAC,MAAM,KAAK,gBAAgB,EAAE,CAAC;gBAC/C,MAAM,cAAc,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAClE,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC9B,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,oBAAoB,CACnD,cAAc,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;wBACtC,KAAK,EAAE,OAAO,CAAC,KAAK;wBACpB,MAAM,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;qBAC9B,CAAC,CAAC,EACH,cAAc,EACd,OAAO,EACP,OAAO,CAAC,iBAAiB,CAAC,EAC1B,OAAO,CAAC,gBAAgB,CAAC,EACzB,mBAAmB,EACnB,kBAAkB,CACnB,CAAC;oBAEF,MAAM,oBAAoB,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oBAC/E,MAAM,iBAAiB,GACrB,oBAAoB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;wBACnD,CAAC,mBAAmB,GAAG,kBAAkB,CAAC,CAAC;oBAC7C,MAAM,aAAa,GAAG,IAAI,CAAC,mBAAmB,CAC5C,KAAK,EACL,KAAK,EACL,aAAa,EACb,CAAC,OAAO,IAAI,SAAS,CAAwB,EAC7C,MAAM,EACN,iBAAiB,CAClB,CAAC;oBAEF,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC;gBAC/E,CAAC;YACH,CAAC;QACH,CAAC;QAED,iEAAiE;QACjE,IAAI,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC;gBACH,WAAW,GAAG,MAAM,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;YACjD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,6DAA6D;gBAC7D,OAAO,CAAC,IAAI,CAAC,8CAA8C,EAAE,KAAK,CAAC,CAAC;YACtE,CAAC;QACH,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAEO,eAAe,CAAC,KAAgB;QACtC,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAEhF,IAAI,QAAQ,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;YACnC,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBAC1C,0EAA0E;gBAC1E,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;oBAChF,OAAO,OAAO,CAAC;gBACjB,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;QAED,2BAA2B;QAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC/C,MAAM,aAAa,GAAG,KAAK,CAAC,QAAQ,EAAE,aAAa,CAAC;QACpD,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC;QAE1C,gDAAgD;QAChD,MAAM,UAAU,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,KAAK,CAC5C,8DAA8D,CAC/D,CAAC;QACF,MAAM,IAAI,GAAG,aAAa,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAElE,IAAI,IAAI,IAAI,aAAa,EAAE,CAAC;YAC1B,OAAO,GACL,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAC/D,KAAK,IAAI,QAAQ,QAAQ,GAAG,CAAC;QAC/B,CAAC;aAAM,IAAI,IAAI,EAAE,CAAC;YAChB,OAAO,IAAI,IAAI,gBAAgB,QAAQ,GAAG,CAAC;QAC7C,CAAC;aAAM,IAAI,aAAa,EAAE,CAAC;YACzB,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,QAAQ,GAAG,CAAC;QAC7F,CAAC;QAED,sCAAsC;QACtC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC5C,MAAM,OAAO,GAA2B;YACtC,EAAE,EAAE,YAAY;YAChB,EAAE,EAAE,YAAY;YAChB,IAAI,EAAE,eAAe;YACrB,IAAI,EAAE,aAAa;YACnB,GAAG,EAAE,YAAY;YACjB,IAAI,EAAE,aAAa;SACpB,CAAC;QACF,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,WAAW,EAAE,OAAO,QAAQ,GAAG,CAAC;IAChE,CAAC;IAEO,eAAe,CAAC,OAAe,EAAE,WAAmB,EAAE;QAC5D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,KAAK,CAAC,MAAM,IAAI,QAAQ,EAAE,CAAC;YAC7B,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpD,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC;QAC1C,OAAO,GAAG,OAAO,YAAY,SAAS,cAAc,CAAC;IACvD,CAAC;IAEO,KAAK,CAAC,cAAc,CAC1B,KAAa,EACb,KAAa,EACb,OAAuB;QAEvB,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YACrD,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAE9D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAE/E,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACzB,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,KAAK,EAAE,CAAC,CAAC,KAAK;SACf,CAAC,CAAC,CAAC;IACN,CAAC;IAEO,KAAK,CAAC,aAAa,CACzB,KAAa,EACb,KAAa,EACb,OAAuB;QAEvB,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChD,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,IAAI,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAE/C,IAAI,OAAO,EAAE,CAAC;YACZ,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;gBACrC,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC;gBAErB,IAAI,OAAO,CAAC,aAAa,IAAI,KAAK,CAAC,aAAa,KAAK,OAAO,CAAC,aAAa,EAAE,CAAC;oBAC3E,OAAO,KAAK,CAAC;gBACf,CAAC;gBACD,IAAI,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,EAAE,CAAC;oBACnD,OAAO,KAAK,CAAC;gBACf,CAAC;gBACD,IAAI,OAAO,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,KAAK,OAAO,CAAC,SAAS,EAAE,CAAC;oBAC/D,OAAO,KAAK,CAAC;gBACf,CAAC;gBACD,IAAI,OAAO,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,KAAK,OAAO,CAAC,QAAQ,EAAE,CAAC;oBAC5D,OAAO,KAAK,CAAC;gBACf,CAAC;gBACD,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC5C,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;oBACnC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;wBACzD,OAAO,KAAK,CAAC;oBACf,CAAC;gBACH,CAAC;gBAED,OAAO,IAAI,CAAC;YACd,CAAC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC3C,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC;YACrB,IAAI,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;YAE/B,iDAAiD;YACjD,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;YACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7D,MAAM,iBAAiB,GAAG,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;YAC3D,MAAM,aAAa,GAAG,KAAK,CAAC,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;YAEzE,yBAAyB;YACzB,IAAI,aAAa,IAAI,UAAU,KAAK,aAAa,EAAE,CAAC;gBAClD,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,GAAG,GAAG,CAAC,CAAC;YACrC,CAAC;YAED,wBAAwB;YACxB,IACE,QAAQ,KAAK,UAAU;gBACvB,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,EACjE,CAAC;gBACD,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,GAAG,GAAG,CAAC,CAAC;YACrC,CAAC;YAED,2BAA2B;YAC3B,IACE,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC;gBACjD,iBAAiB,CAAC,QAAQ,CAAC,UAAU,CAAC,EACtC,CAAC;gBACD,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,GAAG,GAAG,CAAC,CAAC;YACrC,CAAC;YAED,OAAO;gBACL,KAAK;gBACL,KAAK;aACN,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,uBAAuB,CAAC,KAAgB,EAAE,KAAa;QAC7D,MAAM,OAAO,GAAa,EAAE,CAAC;QAE7B,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;YACxB,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC;QACzC,CAAC;QAED,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,QAAQ,CAAC,CAAC;QACvC,CAAC;QAED,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QACvC,MAAM,YAAY,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAChG,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,IAAI,CAAC,SAAS,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnD,CAAC;QAED,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;IACnE,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,OAAO,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC5C,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IAC5B,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/core/search.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,IAAI,CAAC;AAEpC,OAAO,EAAsC,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAClG,OAAO,EAAyB,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAkB,aAAa,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACxF,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,EAClB,MAAM,kCAAkC,CAAC;AA6B1C,MAAM,sBAAsB,GAAkB;IAC5C,iBAAiB,EAAE,IAAI;IACvB,gBAAgB,EAAE,IAAI;IACtB,uDAAuD;IACvD,oDAAoD;IACpD,yDAAyD;IACzD,OAAO,EAAE,SAAS;IAClB,oBAAoB,EAAE,IAAI;IAC1B,yBAAyB,EAAE,IAAI;IAC/B,cAAc,EAAE,EAAE;IAClB,cAAc,EAAE,IAAI;CACrB,CAAC;AAEF,MAAM,qBAAqB,GAAgD;IACzE;QACE,OAAO,EAAE,qEAAqE;QAC9E,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC;KAC/D;IACD;QACE,OAAO,EAAE,sEAAsE;QAC/E,KAAK,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,CAAC;KAC7D;IACD;QACE,OAAO,EAAE,mFAAmF;QAC5F,KAAK,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,CAAC;KAChE;IACD;QACE,OAAO,EAAE,6EAA6E;QACtF,KAAK,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC;KAC7D;IACD;QACE,OAAO,EAAE,qDAAqD;QAC9D,KAAK,EAAE,CAAC,aAAa,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC;KACpE;IACD;QACE,OAAO,EAAE,4DAA4D;QACrE,KAAK,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC;KACrE;CACF,CAAC;AAEF,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC;IAC/B,KAAK;IACL,GAAG;IACH,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,KAAK;IACL,KAAK;IACL,IAAI;IACJ,MAAM;IACN,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,KAAK;IACL,KAAK;IACL,IAAI;IACJ,OAAO;IACP,QAAQ;CACT,CAAC,CAAC;AAEH,MAAM,OAAO,gBAAgB;IACnB,QAAQ,CAAS;IACjB,WAAW,CAAS;IAEpB,SAAS,GAAqB,IAAI,CAAC;IAEnC,SAAS,GAA2B,IAAI,CAAC;IACzC,MAAM,GAAgB,EAAE,CAAC;IAEzB,iBAAiB,GAA6B,IAAI,CAAC;IACnD,eAAe,GAAiC,IAAI,CAAC;IAErD,WAAW,GAAG,KAAK,CAAC;IAE5B,2CAA2C;IACnC,mBAAmB,GAIhB,IAAI,CAAC;IAER,gBAAgB,GAA+B,IAAI,CAAC;IAE5D,YAAY,QAAgB;QAC1B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,wBAAwB,EAAE,iBAAiB,CAAC,CAAC;IACtF,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO;QAE7B,IAAI,CAAC;YACH,yEAAyE;YACzE,IAAI,CAAC,SAAS,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACpD,MAAM,sBAAsB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YAE5D,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC9B,MAAM,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAErC,uFAAuF;YACvF,sEAAsE;YACtE,8EAA8E;YAC9E,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YAC3E,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC;YACrE,MAAM,eAAe,GAA6B,cAAc;gBAC9D,CAAC,CAAC,EAAE,QAAQ,EAAE,cAA6C,EAAE,KAAK,EAAE,WAAW,EAAE;gBACjF,CAAC,CAAC,EAAE,CAAC;YACP,IAAI,CAAC,iBAAiB,GAAG,MAAM,oBAAoB,CAAC,eAAe,CAAC,CAAC;YACrE,IAAI,CAAC,eAAe,GAAG,MAAM,kBAAkB,CAAC;gBAC9C,IAAI,EAAE,IAAI,CAAC,WAAW;aACvB,CAAC,CAAC;YAEH,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAC1B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,mBAAmB,EAAE,CAAC;gBACzC,MAAM,KAAK,CAAC,CAAC,qCAAqC;YACpD,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,+CAA+C,EAAE,KAAK,CAAC,CAAC;YACrE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAC1B,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,gBAAgB;QAC5B,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,wBAAwB,EAAE,sBAAsB,CAAC,CAAC;YAC7F,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YACtD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAY,CAAC;YAE9C,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1B,MAAM,IAAI,mBAAmB,CAC3B,0EAA0E,CAC3E,CAAC;YACJ,CAAC;YAED,MAAM,SAAS,GAAG,MAA8B,CAAC;YACjD,MAAM,MAAM,GACV,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC;gBAC3E,CAAC,CAAE,SAAS,CAAC,MAAsB;gBACnC,CAAC,CAAC,IAAI,CAAC;YACX,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,mBAAmB,CAAC,sDAAsD,CAAC,CAAC;YACxF,CAAC;YAED,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YAErB,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gBACrC,IAAI,EAAE;oBACJ,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE;oBAChC,EAAE,IAAI,EAAE,wBAAwB,EAAE,MAAM,EAAE,IAAI,EAAE;oBAChD,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE;oBAClC,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE;oBACtC,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,IAAI,EAAE;oBACvC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE;oBAC9B,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE;iBAC/B;gBACD,YAAY,EAAE,IAAI;gBAClB,SAAS,EAAE,GAAG;gBACd,iBAAiB,EAAE,IAAI;gBACvB,cAAc,EAAE,IAAI;aACrB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,mBAAmB,EAAE,CAAC;gBACzC,MAAM,KAAK,CAAC;YACd,CAAC;YACD,MAAM,IAAI,mBAAmB,CAC3B,iDAAiD,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAC1G,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,uBAAuB;QACnC,IAAI,CAAC;YACH,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAChC,IAAI,CAAC,QAAQ,EACb,wBAAwB,EACxB,qBAAqB,CACtB,CAAC;YACF,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;YAC7D,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAqB,CAAC;YAE7D,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAC;YAC5C,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;YACzC,MAAM,eAAe,GAAG,IAAI,GAAG,EAAkB,CAAC;YAElD,oDAAoD;YACpD,IAAI,YAAY,CAAC,QAAQ,EAAE,CAAC;gBAC1B,KAAK,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC7E,wBAAwB;oBACxB,IAAI,WAAW,CAAC,OAAO,EAAE,KAAK,KAAK,QAAQ,EAAE,CAAC;wBAC5C,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;oBAC7D,CAAC;oBAED,+BAA+B;oBAC/B,IAAI,WAAW,CAAC,YAAY,EAAE,CAAC;wBAC7B,KAAK,MAAM,GAAG,IAAI,WAAW,CAAC,YAAY,EAAE,CAAC;4BAC3C,IAAI,GAAG,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;gCAC9B,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;gCAC9C,eAAe,CAAC,GAAG,CACjB,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,EACtB,oCAAoC,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,QAAQ,IAAI,8BAA8B,GAAG,CACnG,CAAC;4BACJ,CAAC;iCAAM,IAAI,GAAG,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gCAClC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;4BAC7C,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAED,IAAI,CAAC,mBAAmB,GAAG,EAAE,iBAAiB,EAAE,cAAc,EAAE,eAAe,EAAE,CAAC;YAClF,IAAI,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,CAAC;gBACvC,OAAO,CAAC,KAAK,CACX,yCAAyC,iBAAiB,CAAC,IAAI,eAAe,cAAc,CAAC,IAAI,kBAAkB,CACpH,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,gBAAgB,GAAG,IAAI,GAAG,EAAkB,CAAC;YAClD,IAAI,YAAY,CAAC,iBAAiB,IAAI,YAAY,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC;gBAC7E,+DAA+D;gBAC/D,MAAM,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;gBAE/C,KAAK,MAAM,CAAC,cAAc,EAAE,aAAa,CAAC,IAAI,MAAM,CAAC,OAAO,CAC1D,YAAY,CAAC,iBAAiB,CAAC,OAAO,CACvC,EAAE,CAAC;oBACF,MAAM,OAAO,GAAG,aAAyB,CAAC;oBAC1C,KAAK,MAAM,QAAQ,IAAI,OAAO,EAAE,CAAC;wBAC/B,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oBACpE,CAAC;gBACH,CAAC;gBAED,oCAAoC;gBACpC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACrE,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,YAAY,EAAE,CAAC;oBACzC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,GAAG,UAAU,CAAC,CAAC;gBACtD,CAAC;gBAED,IAAI,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,CAAC;oBACvC,OAAO,CAAC,KAAK,CAAC,2CAA2C,YAAY,CAAC,IAAI,QAAQ,CAAC,CAAC;gBACtF,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CACV,0EAA0E,EAC1E,KAAK,CACN,CAAC;YACF,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;YAChC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC/B,CAAC;IACH,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,KAAgB;QAIvC,IAAI,CAAC,IAAI,CAAC,mBAAmB,IAAI,KAAK,CAAC,OAAO,IAAI,IAAI,EAAE,CAAC;YACvD,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QAC9B,CAAC;QAED,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QAC5C,MAAM,EAAE,iBAAiB,EAAE,cAAc,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC;QAExF,+BAA+B;QAC/B,KAAK,MAAM,OAAO,IAAI,iBAAiB,EAAE,CAAC;YACxC,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC9B,OAAO;oBACL,KAAK,EAAE,WAAW;oBAClB,OAAO,EAAE,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC;iBACtC,CAAC;YACJ,CAAC;QACH,CAAC;QAED,4BAA4B;QAC5B,KAAK,MAAM,OAAO,IAAI,cAAc,EAAE,CAAC;YACrC,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC9B,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;YAC7B,CAAC;QACH,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IAC7B,CAAC;IAEO,UAAU,CAAC,QAAgB;QACjC,MAAM,UAAU,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC9D,OAAO,CACL,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAC7B,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAC7B,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC;YAC5B,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC,CACnC,CAAC;IACJ,CAAC;IAEO,mBAAmB,CAAC,KAAa;QACvC,OAAO,KAAK;aACT,WAAW,EAAE;aACb,KAAK,CAAC,aAAa,CAAC;aACpB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IACtE,CAAC;IAED;;OAEG;IACK,mBAAmB,CAAC,KAAa;QACvC,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QAEvC,sFAAsF;QACtF,IAAI,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/D,OAAO;gBACL,MAAM,EAAE,YAAY;gBACpB,OAAO,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,2CAA2C;aACrF,CAAC;QACJ,CAAC;QAED,sCAAsC;QACtC,MAAM,cAAc,GAAG;YACrB,QAAQ;YACR,OAAO;YACP,SAAS;YACT,WAAW;YACX,eAAe;YACf,WAAW;SACZ,CAAC;QACF,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YACzD,OAAO;gBACL,MAAM,EAAE,QAAQ;gBAChB,OAAO,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW;aACrD,CAAC;QACJ,CAAC;QAED,kCAAkC;QAClC,MAAM,cAAc,GAAG;YACrB,SAAS;YACT,QAAQ;YACR,YAAY;YACZ,UAAU;YACV,MAAM;YACN,WAAW;YACX,QAAQ;SACT,CAAC;QACF,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YACzD,OAAO;gBACL,MAAM,EAAE,QAAQ;gBAChB,OAAO,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW;aACrD,CAAC;QACJ,CAAC;QAED,kCAAkC;QAClC,MAAM,SAAS,GAAG;YAChB,UAAU;YACV,UAAU;YACV,OAAO;YACP,QAAQ;YACR,SAAS;YACT,SAAS;YACT,SAAS;YACT,UAAU;SACX,CAAC;QACF,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YACxD,OAAO;gBACL,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,yCAAyC;aACnF,CAAC;QACJ,CAAC;QAED,6DAA6D;QAC7D,OAAO;YACL,MAAM,EAAE,YAAY;YACpB,OAAO,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,kCAAkC;SAC5E,CAAC;IACJ,CAAC;IAEO,kBAAkB,CAAC,KAAa,EAAE,aAAqB;QAC7D,MAAM,QAAQ,GAAmB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;QACxD,IAAI,aAAa,IAAI,CAAC;YAAE,OAAO,QAAQ,CAAC;QAExC,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;QAEvD,KAAK,MAAM,IAAI,IAAI,qBAAqB,EAAE,CAAC;YACzC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;gBAAE,SAAS;YACxC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBAC9B,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC/B,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAClB,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QAClF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,QAAQ,CAAC;QAE7C,MAAM,cAAc,GAAG,GAAG,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;QAC7E,IAAI,cAAc,KAAK,KAAK,EAAE,CAAC;YAC7B,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QACzD,CAAC;QAED,IAAI,aAAa,GAAG,CAAC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/C,MAAM,eAAe,GAAG,GAAG,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;YAC/E,IAAI,eAAe,KAAK,KAAK,EAAE,CAAC;gBAC9B,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,CAAC;IAC9C,CAAC;IAEO,qBAAqB,CAAC,QAAgB;QAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;QACjD,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC7E,CAAC;IAEO,qBAAqB,CAAC,QAAgB;QAC5C,MAAM,UAAU,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC9D,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAEvC,IAAI,mCAAmC,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QAEhE,OAAO,CACL,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC;YAC9B,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC;YAC/B,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC;YAC9B,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC;YAC9B,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,CAClC,CAAC;IACJ,CAAC;IAEO,qBAAqB,CAAC,QAAgB,EAAE,KAAa;QAC3D,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5D,IAAI,UAAU,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC;QAEpC,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;QACzE,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1F,CAAC;IAEO,yBAAyB,CAAC,KAAa;QAC7C,OAAO,kJAAkJ,CAAC,IAAI,CAC5J,KAAK,CACN,CAAC;IACJ,CAAC;IAEO,kBAAkB,CAAC,KAAa;QACtC,OAAO,+IAA+I,CAAC,IAAI,CACzJ,KAAK,CACN,CAAC;IACJ,CAAC;IAEO,uBAAuB,CAAC,KAAgB;QAC9C,MAAM,cAAc,GAAG,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACxE,MAAM,aAAa,GAAG,CAAC,KAAK,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QAEhE,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC;YAAE,OAAO,IAAI,CAAC;QAEnF,OAAO,CACL,cAAc,CAAC,QAAQ,CAAC,UAAU,CAAC;YACnC,cAAc,CAAC,QAAQ,CAAC,cAAc,CAAC;YACvC,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC;YAClC,cAAc,CAAC,QAAQ,CAAC,YAAY,CAAC,CACtC,CAAC;IACJ,CAAC;IAEO,mBAAmB,CACzB,KAAa,EACb,KAAa,EACb,OAGC,EACD,OAA4B,EAC5B,MAAmB,EACnB,kBAA0B;QAE1B,MAAM,iBAAiB,GAAG,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC;QAChE,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAEnD,qGAAqG;QACrG,MAAM,KAAK,GAAG,EAAE,CAAC;QAEjB,yDAAyD;QACzD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAqB,CAAC;QAC/C,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;QAE5C,oBAAoB;QACpB,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YAC3C,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;QACD,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YAC1C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;gBACvB,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;QAED,8DAA8D;QAC9D,KAAK,MAAM,CAAC,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC;YAC7B,IAAI,QAAQ,GAAG,CAAC,CAAC;YAEjB,wCAAwC;YACxC,MAAM,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC/C,IAAI,aAAa,EAAE,CAAC;gBAClB,KAAK,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,aAAa,CAAC,KAAK,EAAE,CAAC;oBACnD,QAAQ,IAAI,MAAM,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;gBACtC,CAAC;YACH,CAAC;YAED,uCAAuC;YACvC,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC7C,IAAI,YAAY,EAAE,CAAC;gBACjB,KAAK,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,YAAY,CAAC,KAAK,EAAE,CAAC;oBAClD,QAAQ,IAAI,MAAM,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;gBACtC,CAAC;YACH,CAAC;YAED,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QAC9B,CAAC;QAED,8EAA8E;QAC9E,oFAAoF;QACpF,MAAM,iBAAiB,GAAG,kBAAkB,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAC3D,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;QAEtD,+DAA+D;QAC/D,MAAM,cAAc,GAAG,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;QACrD,MAAM,oBAAoB,GAA+B,EAAE,CAAC;QAC5D,MAAM,UAAU,GAA+B,EAAE,CAAC;QAElD,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC;YAC9C,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACpC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;YAC/B,CAAC;iBAAM,CAAC;gBACN,oBAAoB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;QAED,uHAAuH;QACvH,MAAM,aAAa,GAAG,cAAc,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;QAE9F,MAAM,aAAa,GAAG,aAAa;aAChC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE;YACnB,kEAAkE;YAClE,sEAAsE;YACtE,IAAI,aAAa,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE,CAAE,GAAG,WAAW,CAAC;YAErD,kEAAkE;YAClE,IAAI,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;gBAC7D,aAAa,IAAI,GAAG,CAAC;YACvB,CAAC;YAED,6BAA6B;YAC7B,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC7C,aAAa,IAAI,GAAG,CAAC;YACvB,CAAC;YAED,IAAI,WAAW,IAAI,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,EAAE,CAAC;gBACvD,aAAa,IAAI,IAAI,CAAC;YACxB,CAAC;YAED,IACE,WAAW;gBACX,CAAC,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,QAAQ,CAC7E,CAAC,KAAK,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAC1C,EACD,CAAC;gBACD,aAAa,IAAI,IAAI,CAAC;YACxB,CAAC;YAED,qEAAqE;YACrE,oDAAoD;YACpD,IACE,CAAC,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,QAAQ,IAAI,WAAW,CAAC;gBACzD,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,QAAQ,CAAC,EAC1C,CAAC;gBACD,aAAa,IAAI,IAAI,CAAC;YACxB,CAAC;YAED,oEAAoE;YACpE,IAAI,iBAAiB,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC/C,IAAI,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC/C,aAAa,IAAI,IAAI,CAAC;gBACxB,CAAC;YACH,CAAC;YAED,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;gBACtB,sEAAsE;gBACtE,IACE,CAAC,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC,QAAQ,CACxD,CAAC,KAAK,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAC1C,EACD,CAAC;oBACD,aAAa,IAAI,IAAI,CAAC;gBACxB,CAAC;YACH,CAAC;iBAAM,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC/B,yDAAyD;gBACzD,IAAI,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC/C,aAAa,IAAI,GAAG,CAAC;gBACvB,CAAC;YACH,CAAC;iBAAM,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC/B,2CAA2C;gBAC3C,IACE,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAC7C,CAAC,KAAK,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CACzD,EACD,CAAC;oBACD,aAAa,IAAI,IAAI,CAAC;gBACxB,CAAC;gBACD,IAAI,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC/C,aAAa,IAAI,IAAI,CAAC;gBACxB,CAAC;YACH,CAAC;YAED,MAAM,WAAW,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YACtE,IAAI,WAAW,IAAI,CAAC,EAAE,CAAC;gBACrB,aAAa,IAAI,IAAI,CAAC;YACxB,CAAC;YAED,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAC1B,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;gBAC9E,MAAM,cAAc,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;gBACtF,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;gBAC7D,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,GAAG,GAAG,EAAE,CAAC;oBACjD,kDAAkD;oBAClD,MAAM,eAAe,GAAG,GAAG,GAAG,UAAU,GAAG,IAAI,CAAC,CAAC,gCAAgC;oBACjF,aAAa,IAAI,eAAe,CAAC;gBACnC,CAAC;YACH,CAAC;YAED,gDAAgD;YAChD,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;YACxD,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACvB,aAAa,IAAI,IAAI,CAAC,CAAC,2BAA2B;YACpD,CAAC;iBAAM,IAAI,KAAK,KAAK,WAAW,EAAE,CAAC;gBACjC,aAAa,IAAI,GAAG,CAAC,CAAC,2BAA2B;YACnD,CAAC;YAED,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;YAE1D,OAAO;gBACL,OAAO;gBACP,OAAO;gBACP,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,KAAK,EAAE,aAAa;gBACpB,eAAe,EAAE,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,KAAK,CAAC;gBAC3D,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,aAAa,EAAE,KAAK,CAAC,aAAa;gBAClC,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,KAAK;gBACL,cAAc,EAAE,OAAO;aACR,CAAC;QACpB,CAAC,CAAC;aACD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QAErC,0DAA0D;QAC1D,kEAAkE;QAClE,IAAI,MAAM,KAAK,YAAY,EAAE,CAAC;YAC5B,MAAM,eAAe,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;YAC5C,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;gBACnC,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC;gBAC/C,IAAI,UAAU,IAAI,UAAU,CAAC,WAAW,EAAE,KAAK,eAAe,EAAE,CAAC;oBAC/D,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,4BAA4B;gBACpD,CAAC;YACH,CAAC;YACD,sBAAsB;YACtB,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QAClD,CAAC;QAED,2BAA2B;QAC3B,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;QACpC,MAAM,OAAO,GAAmB,EAAE,CAAC;QACnC,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;YACnC,MAAM,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YACzE,IAAI,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC;gBAAE,SAAS;YAC5C,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YAC9B,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACrB,IAAI,OAAO,CAAC,MAAM,IAAI,KAAK;gBAAE,MAAM;QACrC,CAAC;QAED,wCAAwC;QACxC,6EAA6E;QAC7E,MAAM,WAAW,GAAG,IAAI,GAAG,EAAwB,CAAC;QACpD,MAAM,aAAa,GAAmB,EAAE,CAAC;QACzC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC;YAC/C,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,6BAA6B;gBAC7B,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC3B,SAAS;YACX,CAAC;YAED,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAC5F,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAChD,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC;gBAC/C,IAAI,QAAQ,EAAE,CAAC;oBACb,gCAAgC;oBAChC,MAAM,GAAG,GAAG,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;oBAC5C,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;wBACb,aAAa,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;oBAC9B,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC7B,CAAC;gBACD,WAAW,CAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;QAED,MAAM,YAAY,GAAG,aAAa,CAAC;QAEnC,IACE,cAAc;YACd,YAAY,CAAC,MAAM,GAAG,CAAC;YACvB,YAAY,CAAC,MAAM,GAAG,KAAK;YAC3B,UAAU,CAAC,MAAM,GAAG,CAAC,EACrB,CAAC;YACD,qCAAqC;YACrC,MAAM,aAAa,GAAG,UAAU;iBAC7B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;gBACrB,EAAE;gBACF,KAAK;gBACL,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAE,GAAG,WAAW;aACxC,CAAC,CAAC;iBACF,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAExC,IAAI,aAAa,EAAE,CAAC;gBAClB,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBACtE,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;gBAExE,YAAY,CAAC,IAAI,CAAC;oBAChB,OAAO;oBACP,OAAO;oBACP,QAAQ,EAAE,aAAa,CAAC,KAAK,CAAC,QAAQ;oBACtC,SAAS,EAAE,aAAa,CAAC,KAAK,CAAC,SAAS;oBACxC,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,OAAO;oBACpC,KAAK,EAAE,aAAa,CAAC,KAAK,GAAG,GAAG,EAAE,oCAAoC;oBACtE,eAAe,EACb,IAAI,CAAC,uBAAuB,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,cAAc;oBAC3E,QAAQ,EAAE,aAAa,CAAC,KAAK,CAAC,QAAQ;oBACtC,SAAS,EAAE,aAAa,CAAC,KAAK,CAAC,SAAS;oBACxC,aAAa,EAAE,aAAa,CAAC,KAAK,CAAC,aAAa;oBAChD,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,KAAK;oBAChC,QAAQ,EAAE,aAAa,CAAC,KAAK,CAAC,QAAQ;oBACtC,KAAK;oBACL,cAAc,EAAE,OAAO;iBACR,CAAC,CAAC;YACrB,CAAC;QACH,CAAC;QAED,OAAO,YAAY,CAAC;IACtB,CAAC;IAEO,mBAAmB,CACzB,KAAa,EACb,OAAuB,EACvB,MAAsB;QAEtB,MAAM,cAAc,GAAG,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC3D,MAAM,aAAa,GAAG,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAEzD,IACE,aAAa,CAAC,MAAM,KAAK,IAAI;YAC7B,cAAc,CAAC,MAAM,KAAK,gBAAgB;YAC1C,aAAa,CAAC,UAAU,IAAI,cAAc,CAAC,UAAU,EACrD,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,IAAI,aAAa,CAAC,UAAU,IAAI,cAAc,CAAC,UAAU,GAAG,IAAI,EAAE,CAAC;YACjE,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,KAAK,CAAC,oBAAoB,CAChC,aAA6B,EAC7B,cAAsB,EACtB,OAAkC,EAClC,iBAA0B,EAC1B,gBAAyB,EACzB,cAAsB,EACtB,aAAqB;QAKrB,MAAM,aAAa,GAGf,IAAI,GAAG,EAAE,CAAC;QACd,MAAM,YAAY,GAGd,IAAI,GAAG,EAAE,CAAC;QAEd,yDAAyD;QACzD,IAAI,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACxE,IAAI,CAAC;gBACH,KAAK,MAAM,OAAO,IAAI,aAAa,EAAE,CAAC;oBACpC,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;oBAExF,oDAAoD;oBACpD,aAAa,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;wBACtC,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;wBAC3B,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,iBAAiB;wBACrC,MAAM,MAAM,GAAG,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;wBAC/C,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;wBAEvC,IAAI,QAAQ,EAAE,CAAC;4BACb,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;wBACxC,CAAC;6BAAM,CAAC;4BACN,aAAa,CAAC,GAAG,CAAC,EAAE,EAAE;gCACpB,KAAK,EAAE,MAAM,CAAC,KAAK;gCACnB,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;6BAC1B,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,KAAK,YAAY,mBAAmB,EAAE,CAAC;oBACzC,MAAM,KAAK,CAAC,CAAC,qCAAqC;gBACpD,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;QAED,IAAI,gBAAgB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACvC,IAAI,CAAC;gBACH,KAAK,MAAM,OAAO,IAAI,aAAa,EAAE,CAAC;oBACpC,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;oBAExF,oDAAoD;oBACpD,cAAc,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;wBACvC,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;wBAC3B,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,iBAAiB;wBACrC,MAAM,MAAM,GAAG,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;wBAC9C,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;wBAEtC,IAAI,QAAQ,EAAE,CAAC;4BACb,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;wBACxC,CAAC;6BAAM,CAAC;4BACN,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE;gCACnB,KAAK,EAAE,MAAM,CAAC,KAAK;gCACnB,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;6BAC1B,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;QAED,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,MAAM,CACV,KAAa,EACb,QAAgB,CAAC,EACjB,OAAuB,EACvB,UAAyB,sBAAsB;QAE/C,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QAC1B,CAAC;QAED,MAAM,MAAM,GAAG;YACb,GAAG,sBAAsB;YACzB,GAAG,OAAO;SACX,CAAC;QACF,MAAM,EACJ,iBAAiB,EACjB,gBAAgB,EAChB,OAAO,EACP,oBAAoB,EACpB,yBAAyB,EACzB,cAAc,EACd,cAAc,EACf,GAAG,MAAM,CAAC;QAEX,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAC3E,wEAAwE;QACxE,MAAM,mBAAmB,GAAG,MAAM,CAAC,cAAc,IAAI,aAAa,CAAC,QAAQ,CAAC;QAC5E,MAAM,kBAAkB,GAAG,MAAM,CAAC,aAAa,IAAI,aAAa,CAAC,OAAO,CAAC;QAEzE,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,cAAc,IAAI,EAAE,CAAC,CAAC;QACjE,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAErF,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,oBAAoB,CACpD,eAAe,EACf,cAAc,EACd,OAAO,EACP,OAAO,CAAC,iBAAiB,CAAC,EAC1B,OAAO,CAAC,gBAAgB,CAAC,EACzB,mBAAmB,EACnB,kBAAkB,CACnB,CAAC;QAEF,MAAM,kBAAkB,GACtB,eAAe,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;YACrD,CAAC,mBAAmB,GAAG,kBAAkB,CAAC,CAAC;QAC7C,MAAM,cAAc,GAAG,IAAI,CAAC,mBAAmB,CAC7C,KAAK,EACL,KAAK,EACL,cAAc,EACd,CAAC,OAAO,IAAI,SAAS,CAAwB,EAC7C,MAAM,EACN,kBAAkB,CACnB,CAAC;QAEF,IAAI,WAAW,GAAG,cAAc,CAAC;QAEjC,IAAI,yBAAyB,EAAE,CAAC;YAC9B,MAAM,cAAc,GAAG,mBAAmB,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;YAClE,IAAI,cAAc,CAAC,MAAM,KAAK,gBAAgB,EAAE,CAAC;gBAC/C,MAAM,cAAc,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAClE,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC9B,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,oBAAoB,CACnD,cAAc,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;wBACtC,KAAK,EAAE,OAAO,CAAC,KAAK;wBACpB,MAAM,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;qBAC9B,CAAC,CAAC,EACH,cAAc,EACd,OAAO,EACP,OAAO,CAAC,iBAAiB,CAAC,EAC1B,OAAO,CAAC,gBAAgB,CAAC,EACzB,mBAAmB,EACnB,kBAAkB,CACnB,CAAC;oBAEF,MAAM,oBAAoB,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oBAC/E,MAAM,iBAAiB,GACrB,oBAAoB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;wBACnD,CAAC,mBAAmB,GAAG,kBAAkB,CAAC,CAAC;oBAC7C,MAAM,aAAa,GAAG,IAAI,CAAC,mBAAmB,CAC5C,KAAK,EACL,KAAK,EACL,aAAa,EACb,CAAC,OAAO,IAAI,SAAS,CAAwB,EAC7C,MAAM,EACN,iBAAiB,CAClB,CAAC;oBAEF,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC;gBAC/E,CAAC;YACH,CAAC;QACH,CAAC;QAED,iEAAiE;QACjE,IAAI,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC;gBACH,WAAW,GAAG,MAAM,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;YACjD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,6DAA6D;gBAC7D,OAAO,CAAC,IAAI,CAAC,8CAA8C,EAAE,KAAK,CAAC,CAAC;YACtE,CAAC;QACH,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAEO,eAAe,CAAC,KAAgB;QACtC,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAEhF,IAAI,QAAQ,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;YACnC,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBAC1C,0EAA0E;gBAC1E,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;oBAChF,OAAO,OAAO,CAAC;gBACjB,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;QAED,2BAA2B;QAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC/C,MAAM,aAAa,GAAG,KAAK,CAAC,QAAQ,EAAE,aAAa,CAAC;QACpD,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC;QAE1C,gDAAgD;QAChD,MAAM,UAAU,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,KAAK,CAC5C,8DAA8D,CAC/D,CAAC;QACF,MAAM,IAAI,GAAG,aAAa,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAElE,IAAI,IAAI,IAAI,aAAa,EAAE,CAAC;YAC1B,OAAO,GACL,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAC/D,KAAK,IAAI,QAAQ,QAAQ,GAAG,CAAC;QAC/B,CAAC;aAAM,IAAI,IAAI,EAAE,CAAC;YAChB,OAAO,IAAI,IAAI,gBAAgB,QAAQ,GAAG,CAAC;QAC7C,CAAC;aAAM,IAAI,aAAa,EAAE,CAAC;YACzB,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,QAAQ,GAAG,CAAC;QAC7F,CAAC;QAED,sCAAsC;QACtC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC5C,MAAM,OAAO,GAA2B;YACtC,EAAE,EAAE,YAAY;YAChB,EAAE,EAAE,YAAY;YAChB,IAAI,EAAE,eAAe;YACrB,IAAI,EAAE,aAAa;YACnB,GAAG,EAAE,YAAY;YACjB,IAAI,EAAE,aAAa;SACpB,CAAC;QACF,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,WAAW,EAAE,OAAO,QAAQ,GAAG,CAAC;IAChE,CAAC;IAEO,eAAe,CAAC,OAAe,EAAE,WAAmB,EAAE;QAC5D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,KAAK,CAAC,MAAM,IAAI,QAAQ,EAAE,CAAC;YAC7B,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpD,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC;QAC1C,OAAO,GAAG,OAAO,YAAY,SAAS,cAAc,CAAC;IACvD,CAAC;IAEO,KAAK,CAAC,cAAc,CAC1B,KAAa,EACb,KAAa,EACb,OAAuB;QAEvB,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YACrD,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAE9D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAE/E,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACzB,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,KAAK,EAAE,CAAC,CAAC,KAAK;SACf,CAAC,CAAC,CAAC;IACN,CAAC;IAEO,KAAK,CAAC,aAAa,CACzB,KAAa,EACb,KAAa,EACb,OAAuB;QAEvB,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChD,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,IAAI,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAE/C,IAAI,OAAO,EAAE,CAAC;YACZ,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;gBACrC,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC;gBAErB,IAAI,OAAO,CAAC,aAAa,IAAI,KAAK,CAAC,aAAa,KAAK,OAAO,CAAC,aAAa,EAAE,CAAC;oBAC3E,OAAO,KAAK,CAAC;gBACf,CAAC;gBACD,IAAI,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,EAAE,CAAC;oBACnD,OAAO,KAAK,CAAC;gBACf,CAAC;gBACD,IAAI,OAAO,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,KAAK,OAAO,CAAC,SAAS,EAAE,CAAC;oBAC/D,OAAO,KAAK,CAAC;gBACf,CAAC;gBACD,IAAI,OAAO,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,KAAK,OAAO,CAAC,QAAQ,EAAE,CAAC;oBAC5D,OAAO,KAAK,CAAC;gBACf,CAAC;gBACD,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC5C,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;oBACnC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;wBACzD,OAAO,KAAK,CAAC;oBACf,CAAC;gBACH,CAAC;gBAED,OAAO,IAAI,CAAC;YACd,CAAC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC3C,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC;YACrB,IAAI,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;YAE/B,iDAAiD;YACjD,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;YACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7D,MAAM,iBAAiB,GAAG,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;YAC3D,MAAM,aAAa,GAAG,KAAK,CAAC,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;YAEzE,yBAAyB;YACzB,IAAI,aAAa,IAAI,UAAU,KAAK,aAAa,EAAE,CAAC;gBAClD,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,GAAG,GAAG,CAAC,CAAC;YACrC,CAAC;YAED,wBAAwB;YACxB,IACE,QAAQ,KAAK,UAAU;gBACvB,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,EACjE,CAAC;gBACD,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,GAAG,GAAG,CAAC,CAAC;YACrC,CAAC;YAED,2BAA2B;YAC3B,IACE,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC;gBACjD,iBAAiB,CAAC,QAAQ,CAAC,UAAU,CAAC,EACtC,CAAC;gBACD,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,GAAG,GAAG,CAAC,CAAC;YACrC,CAAC;YAED,OAAO;gBACL,KAAK;gBACL,KAAK;aACN,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,uBAAuB,CAAC,KAAgB,EAAE,KAAa;QAC7D,MAAM,OAAO,GAAa,EAAE,CAAC;QAE7B,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;YACxB,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC;QACzC,CAAC;QAED,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,QAAQ,CAAC,CAAC;QACvC,CAAC;QAED,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QACvC,MAAM,YAAY,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAChG,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,IAAI,CAAC,SAAS,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnD,CAAC;QAED,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;IACnE,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,OAAO,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC5C,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IAC5B,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"symbol-references.d.ts","sourceRoot":"","sources":["../../src/core/symbol-references.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"symbol-references.d.ts","sourceRoot":"","sources":["../../src/core/symbol-references.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAWvD,MAAM,WAAW,WAAY,SAAQ,aAAa;IAChD,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,uBAAuB;IAC/B,MAAM,EAAE,SAAS,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,UAAU,EAAE,WAAW,CAAC;IACxB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,UAAU,qBAAqB;IAC7B,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,sBAAsB,GAAG,uBAAuB,GAAG,qBAAqB,CAAC;AAsErF,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,KAAK,SAAK,GACT,OAAO,CAAC,sBAAsB,CAAC,CAmJjC"}
|
|
@@ -2,6 +2,8 @@ import { promises as fs } from 'fs';
|
|
|
2
2
|
import path from 'path';
|
|
3
3
|
import { CODEBASE_CONTEXT_DIRNAME, KEYWORD_INDEX_FILENAME } from '../constants/codebase-context.js';
|
|
4
4
|
import { IndexCorruptedError } from '../errors/index.js';
|
|
5
|
+
import { detectLanguage } from '../utils/language-detection.js';
|
|
6
|
+
import { findIdentifierOccurrences } from '../utils/tree-sitter.js';
|
|
5
7
|
function escapeRegex(value) {
|
|
6
8
|
return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
7
9
|
}
|
|
@@ -25,6 +27,41 @@ function buildPreview(content, lineOffset) {
|
|
|
25
27
|
const previewLines = lines.slice(start, end);
|
|
26
28
|
return previewLines.join('\n').trim();
|
|
27
29
|
}
|
|
30
|
+
function buildPreviewFromFileLines(lines, line) {
|
|
31
|
+
const start = Math.max(0, line - 2);
|
|
32
|
+
const end = Math.min(lines.length, line + 1);
|
|
33
|
+
return lines.slice(start, end).join('\n').trim();
|
|
34
|
+
}
|
|
35
|
+
function resolveAbsoluteChunkPath(rootPath, chunk) {
|
|
36
|
+
const resolvedRoot = path.resolve(rootPath);
|
|
37
|
+
const isWithinRoot = (candidate) => {
|
|
38
|
+
const resolvedCandidate = path.resolve(candidate);
|
|
39
|
+
const relative = path.relative(resolvedRoot, resolvedCandidate);
|
|
40
|
+
return Boolean(relative) && !relative.startsWith('..') && !path.isAbsolute(relative);
|
|
41
|
+
};
|
|
42
|
+
if (typeof chunk.filePath === 'string' && chunk.filePath.trim()) {
|
|
43
|
+
const raw = chunk.filePath.trim();
|
|
44
|
+
if (path.isAbsolute(raw)) {
|
|
45
|
+
return isWithinRoot(raw) ? raw : null;
|
|
46
|
+
}
|
|
47
|
+
const resolved = path.resolve(resolvedRoot, raw);
|
|
48
|
+
return isWithinRoot(resolved) ? resolved : null;
|
|
49
|
+
}
|
|
50
|
+
if (typeof chunk.relativePath === 'string' && chunk.relativePath.trim()) {
|
|
51
|
+
const resolved = path.resolve(resolvedRoot, chunk.relativePath.trim());
|
|
52
|
+
return isWithinRoot(resolved) ? resolved : null;
|
|
53
|
+
}
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
56
|
+
async function fileExists(targetPath) {
|
|
57
|
+
try {
|
|
58
|
+
const stat = await fs.stat(targetPath);
|
|
59
|
+
return stat.isFile();
|
|
60
|
+
}
|
|
61
|
+
catch {
|
|
62
|
+
return false;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
28
65
|
export async function findSymbolReferences(rootPath, symbol, limit = 10) {
|
|
29
66
|
const normalizedSymbol = symbol.trim();
|
|
30
67
|
const normalizedLimit = Number.isFinite(limit) && limit > 0 ? Math.floor(limit) : 10;
|
|
@@ -46,7 +83,10 @@ export async function findSymbolReferences(rootPath, symbol, limit = 10) {
|
|
|
46
83
|
if (Array.isArray(chunksRaw)) {
|
|
47
84
|
throw new IndexCorruptedError('Legacy keyword index format detected (missing header). Rebuild required.');
|
|
48
85
|
}
|
|
49
|
-
const chunks = chunksRaw
|
|
86
|
+
const chunks = chunksRaw !== null &&
|
|
87
|
+
typeof chunksRaw === 'object' &&
|
|
88
|
+
'chunks' in chunksRaw &&
|
|
89
|
+
Array.isArray(chunksRaw.chunks)
|
|
50
90
|
? chunksRaw.chunks
|
|
51
91
|
: null;
|
|
52
92
|
if (!chunks) {
|
|
@@ -55,28 +95,83 @@ export async function findSymbolReferences(rootPath, symbol, limit = 10) {
|
|
|
55
95
|
const usages = [];
|
|
56
96
|
let usageCount = 0;
|
|
57
97
|
const escapedSymbol = escapeRegex(normalizedSymbol);
|
|
98
|
+
const prefilter = new RegExp(`\\b${escapedSymbol}\\b`);
|
|
58
99
|
const matcher = new RegExp(`\\b${escapedSymbol}\\b`, 'g');
|
|
100
|
+
// Prefilter candidate files from the keyword index. We do not trust chunk contents for
|
|
101
|
+
// exact reference counting when Tree-sitter is available; chunks only guide which files to scan.
|
|
102
|
+
const chunksByFile = new Map();
|
|
59
103
|
for (const chunkRaw of chunks) {
|
|
60
104
|
const chunk = chunkRaw;
|
|
61
|
-
if (typeof chunk.content !== 'string')
|
|
105
|
+
if (typeof chunk.content !== 'string')
|
|
106
|
+
continue;
|
|
107
|
+
if (!prefilter.test(chunk.content))
|
|
62
108
|
continue;
|
|
109
|
+
const relPath = getUsageFile(rootPath, chunk);
|
|
110
|
+
const absPath = resolveAbsoluteChunkPath(rootPath, chunk);
|
|
111
|
+
const entry = chunksByFile.get(relPath);
|
|
112
|
+
if (entry) {
|
|
113
|
+
entry.chunks.push(chunk);
|
|
114
|
+
// Prefer a real absolute path when available
|
|
115
|
+
if (!entry.absPath && absPath) {
|
|
116
|
+
entry.absPath = absPath;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
chunksByFile.set(relPath, { relPath, absPath, chunks: [chunk] });
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
for (const entry of chunksByFile.values()) {
|
|
124
|
+
const relPath = entry.relPath;
|
|
125
|
+
const absPath = entry.absPath;
|
|
126
|
+
// Preferred: Tree-sitter identifier walk on the real file content.
|
|
127
|
+
if (absPath && (await fileExists(absPath))) {
|
|
128
|
+
try {
|
|
129
|
+
const raw = await fs.readFile(absPath, 'utf-8');
|
|
130
|
+
const content = raw.replace(/\r\n/g, '\n');
|
|
131
|
+
const language = detectLanguage(absPath);
|
|
132
|
+
const occurrences = await findIdentifierOccurrences(content, language, normalizedSymbol);
|
|
133
|
+
if (occurrences) {
|
|
134
|
+
usageCount += occurrences.length;
|
|
135
|
+
if (usages.length < normalizedLimit && occurrences.length > 0) {
|
|
136
|
+
const lines = content.split('\n');
|
|
137
|
+
for (const occ of occurrences) {
|
|
138
|
+
if (usages.length >= normalizedLimit)
|
|
139
|
+
break;
|
|
140
|
+
usages.push({
|
|
141
|
+
file: relPath,
|
|
142
|
+
line: occ.line,
|
|
143
|
+
preview: buildPreviewFromFileLines(lines, occ.line)
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
continue;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
catch {
|
|
151
|
+
// Fall through to chunk-regex fallback (missing grammar, parse failure, etc.)
|
|
152
|
+
}
|
|
63
153
|
}
|
|
64
|
-
|
|
65
|
-
const
|
|
66
|
-
|
|
67
|
-
let match;
|
|
68
|
-
while ((match = matcher.exec(chunkContent)) !== null) {
|
|
69
|
-
usageCount += 1;
|
|
70
|
-
if (usages.length >= normalizedLimit) {
|
|
154
|
+
// Fallback: regex scan inside the matched chunks (legacy behavior).
|
|
155
|
+
for (const chunk of entry.chunks) {
|
|
156
|
+
if (typeof chunk.content !== 'string')
|
|
71
157
|
continue;
|
|
158
|
+
const chunkContent = chunk.content;
|
|
159
|
+
const startLine = typeof chunk.startLine === 'number' ? chunk.startLine : 1;
|
|
160
|
+
matcher.lastIndex = 0;
|
|
161
|
+
let match;
|
|
162
|
+
while ((match = matcher.exec(chunkContent)) !== null) {
|
|
163
|
+
usageCount += 1;
|
|
164
|
+
if (usages.length >= normalizedLimit) {
|
|
165
|
+
continue;
|
|
166
|
+
}
|
|
167
|
+
const prefix = chunkContent.slice(0, match.index);
|
|
168
|
+
const lineOffset = prefix.split('\n').length - 1;
|
|
169
|
+
usages.push({
|
|
170
|
+
file: relPath,
|
|
171
|
+
line: startLine + lineOffset,
|
|
172
|
+
preview: buildPreview(chunkContent, lineOffset)
|
|
173
|
+
});
|
|
72
174
|
}
|
|
73
|
-
const prefix = chunkContent.slice(0, match.index);
|
|
74
|
-
const lineOffset = prefix.split('\n').length - 1;
|
|
75
|
-
usages.push({
|
|
76
|
-
file: getUsageFile(rootPath, chunk),
|
|
77
|
-
line: startLine + lineOffset,
|
|
78
|
-
preview: buildPreview(chunkContent, lineOffset)
|
|
79
|
-
});
|
|
80
175
|
}
|
|
81
176
|
}
|
|
82
177
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"symbol-references.js","sourceRoot":"","sources":["../../src/core/symbol-references.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AACpG,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"symbol-references.js","sourceRoot":"","sources":["../../src/core/symbol-references.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
export * from './types.js';
|
|
2
2
|
export * from './transformers.js';
|
|
3
3
|
import { EmbeddingProvider, EmbeddingConfig } from './types.js';
|
|
4
|
+
/**
|
|
5
|
+
* Returns expected embedding dimensions for a given config without initializing any provider.
|
|
6
|
+
* Used for LanceDB dimension validation before committing to an incremental update.
|
|
7
|
+
*
|
|
8
|
+
* Looks up dimensions from MODEL_CONFIGS (the authoritative source shared with the provider
|
|
9
|
+
* implementation) so new models are automatically handled without updating this function.
|
|
10
|
+
*/
|
|
11
|
+
export declare function getConfiguredDimensions(config?: Partial<EmbeddingConfig>): number;
|
|
4
12
|
export declare function getEmbeddingProvider(config?: Partial<EmbeddingConfig>): Promise<EmbeddingProvider>;
|
|
5
13
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/embeddings/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAElC,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/embeddings/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAElC,OAAO,EACL,iBAAiB,EACjB,eAAe,EAIhB,MAAM,YAAY,CAAC;AAGpB;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,GAAE,OAAO,CAAC,eAAe,CAAM,GAAG,MAAM,CAOrF;AAKD,wBAAsB,oBAAoB,CACxC,MAAM,GAAE,OAAO,CAAC,eAAe,CAAM,GACpC,OAAO,CAAC,iBAAiB,CAAC,CAmC5B"}
|
package/dist/embeddings/index.js
CHANGED
|
@@ -1,7 +1,22 @@
|
|
|
1
1
|
export * from './types.js';
|
|
2
2
|
export * from './transformers.js';
|
|
3
|
-
import { DEFAULT_EMBEDDING_CONFIG } from './types.js';
|
|
4
|
-
import { TransformersEmbeddingProvider } from './transformers.js';
|
|
3
|
+
import { DEFAULT_EMBEDDING_CONFIG, DEFAULT_MODEL, parseEmbeddingProviderName } from './types.js';
|
|
4
|
+
import { TransformersEmbeddingProvider, MODEL_CONFIGS } from './transformers.js';
|
|
5
|
+
/**
|
|
6
|
+
* Returns expected embedding dimensions for a given config without initializing any provider.
|
|
7
|
+
* Used for LanceDB dimension validation before committing to an incremental update.
|
|
8
|
+
*
|
|
9
|
+
* Looks up dimensions from MODEL_CONFIGS (the authoritative source shared with the provider
|
|
10
|
+
* implementation) so new models are automatically handled without updating this function.
|
|
11
|
+
*/
|
|
12
|
+
export function getConfiguredDimensions(config = {}) {
|
|
13
|
+
const provider = config.provider ?? parseEmbeddingProviderName(process.env.EMBEDDING_PROVIDER) ?? 'transformers';
|
|
14
|
+
const model = config.model ?? process.env.EMBEDDING_MODEL ?? DEFAULT_MODEL;
|
|
15
|
+
if (provider === 'openai')
|
|
16
|
+
return model.includes('large') ? 3072 : 1536; // text-embedding-3-large: 3072, all others: 1536
|
|
17
|
+
// Look up from the same MODEL_CONFIGS the provider uses — avoids stale hardcoded guesses
|
|
18
|
+
return MODEL_CONFIGS[model]?.dimensions ?? 384;
|
|
19
|
+
}
|
|
5
20
|
let cachedProvider = null;
|
|
6
21
|
let cachedProviderType = null;
|
|
7
22
|
export async function getEmbeddingProvider(config = {}) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/embeddings/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAElC,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/embeddings/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAElC,OAAO,EAGL,wBAAwB,EACxB,aAAa,EACb,0BAA0B,EAC3B,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,6BAA6B,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEjF;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CAAC,SAAmC,EAAE;IAC3E,MAAM,QAAQ,GACZ,MAAM,CAAC,QAAQ,IAAI,0BAA0B,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,cAAc,CAAC;IAClG,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,aAAa,CAAC;IAC3E,IAAI,QAAQ,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,iDAAiD;IAC1H,yFAAyF;IACzF,OAAO,aAAa,CAAC,KAAK,CAAC,EAAE,UAAU,IAAI,GAAG,CAAC;AACjD,CAAC;AAED,IAAI,cAAc,GAA6B,IAAI,CAAC;AACpD,IAAI,kBAAkB,GAAkB,IAAI,CAAC;AAE7C,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,SAAmC,EAAE;IAErC,MAAM,YAAY,GAAG,EAAE,GAAG,wBAAwB,EAAE,GAAG,MAAM,EAAE,CAAC;IAChE,MAAM,WAAW,GAAG,GAAG,YAAY,CAAC,QAAQ,IAAI,YAAY,CAAC,KAAK,EAAE,CAAC;IAErE,IAAI,cAAc,IAAI,kBAAkB,KAAK,WAAW,EAAE,CAAC;QACzD,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,IAAI,YAAY,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACvC,MAAM,EAAE,uBAAuB,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QAChE,MAAM,QAAQ,GAAG,IAAI,uBAAuB,CAC1C,YAAY,CAAC,KAAK,IAAI,wBAAwB,EAC9C,YAAY,CAAC,MAAM,EACnB,YAAY,CAAC,WAAW,CACzB,CAAC;QACF,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAC;QAC5B,cAAc,GAAG,QAAQ,CAAC;QAC1B,kBAAkB,GAAG,WAAW,CAAC;QACjC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,IAAI,YAAY,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;IACtF,CAAC;IAED,IAAI,YAAY,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACvC,OAAO,CAAC,IAAI,CAAC,sEAAsE,CAAC,CAAC;IACvF,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,6BAA6B,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IACvE,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAC;IAC5B,cAAc,GAAG,QAAQ,CAAC;IAC1B,kBAAkB,GAAG,WAAW,CAAC;IAEjC,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -9,7 +9,7 @@ export declare class OpenAIEmbeddingProvider implements EmbeddingProvider {
|
|
|
9
9
|
private apiKey?;
|
|
10
10
|
private apiEndpoint;
|
|
11
11
|
readonly name = "openai";
|
|
12
|
-
|
|
12
|
+
get dimensions(): number;
|
|
13
13
|
constructor(modelName?: string, apiKey?: string | undefined, apiEndpoint?: string);
|
|
14
14
|
initialize(): Promise<void>;
|
|
15
15
|
isReady(): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../src/embeddings/openai.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../src/embeddings/openai.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAM/C;;;;GAIG;AACH,qBAAa,uBAAwB,YAAW,iBAAiB;IAO7D,QAAQ,CAAC,SAAS,EAAE,MAAM;IAC1B,OAAO,CAAC,MAAM,CAAC;IACf,OAAO,CAAC,WAAW;IARrB,QAAQ,CAAC,IAAI,YAAY;IACzB,IAAI,UAAU,IAAI,MAAM,CAEvB;gBAGU,SAAS,GAAE,MAAiC,EAC7C,MAAM,CAAC,EAAE,MAAM,YAAA,EACf,WAAW,GAAE,MAAoC;IAGrD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAQjC,OAAO,IAAI,OAAO;IAIZ,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAKtC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;CA+BvD"}
|
|
@@ -8,7 +8,9 @@ export class OpenAIEmbeddingProvider {
|
|
|
8
8
|
apiKey;
|
|
9
9
|
apiEndpoint;
|
|
10
10
|
name = 'openai';
|
|
11
|
-
dimensions
|
|
11
|
+
get dimensions() {
|
|
12
|
+
return this.modelName.includes('large') ? 3072 : 1536;
|
|
13
|
+
}
|
|
12
14
|
constructor(modelName = 'text-embedding-3-small', apiKey, apiEndpoint = 'https://api.openai.com/v1') {
|
|
13
15
|
this.modelName = modelName;
|
|
14
16
|
this.apiKey = apiKey;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai.js","sourceRoot":"","sources":["../../src/embeddings/openai.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"openai.js","sourceRoot":"","sources":["../../src/embeddings/openai.ts"],"names":[],"mappings":"AAMA;;;;GAIG;AACH,MAAM,OAAO,uBAAuB;IAOvB;IACD;IACA;IARD,IAAI,GAAG,QAAQ,CAAC;IACzB,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IACxD,CAAC;IAED,YACW,YAAoB,wBAAwB,EAC7C,MAAe,EACf,cAAsB,2BAA2B;QAFhD,cAAS,GAAT,SAAS,CAAmC;QAC7C,WAAM,GAAN,MAAM,CAAS;QACf,gBAAW,GAAX,WAAW,CAAsC;IACxD,CAAC;IAEJ,KAAK,CAAC,UAAU;QACd,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CACb,yGAAyG,CAC1G,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO;QACL,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,IAAY;QACtB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5C,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,KAAe;QAC9B,IAAI,CAAC,KAAK,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QAE7B,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,WAAW,aAAa,EAAE;gBAC7D,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;oBAClC,aAAa,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE;iBACvC;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACnB,KAAK,EAAE,IAAI,CAAC,SAAS;oBACrB,KAAK,EAAE,KAAK;oBACZ,eAAe,EAAE,OAAO;iBACzB,CAAC;aACH,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACpC,MAAM,IAAI,KAAK,CAAC,oBAAoB,QAAQ,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC,CAAC;YACnE,CAAC;YAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAA4B,CAAC;YAEhE,wCAAwC;YACxC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACjD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;YACjD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;CACF"}
|
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
import { EmbeddingProvider } from './types.js';
|
|
2
|
+
interface ModelConfig {
|
|
3
|
+
dimensions: number;
|
|
4
|
+
maxContext: number;
|
|
5
|
+
}
|
|
6
|
+
export declare const MODEL_CONFIGS: Record<string, ModelConfig>;
|
|
2
7
|
export declare class TransformersEmbeddingProvider implements EmbeddingProvider {
|
|
3
8
|
readonly name = "transformers";
|
|
4
9
|
readonly modelName: string;
|
|
@@ -14,4 +19,5 @@ export declare class TransformersEmbeddingProvider implements EmbeddingProvider
|
|
|
14
19
|
isReady(): boolean;
|
|
15
20
|
}
|
|
16
21
|
export declare function createEmbeddingProvider(modelName?: string): Promise<EmbeddingProvider>;
|
|
22
|
+
export {};
|
|
17
23
|
//# sourceMappingURL=transformers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transformers.d.ts","sourceRoot":"","sources":["../../src/embeddings/transformers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"transformers.d.ts","sourceRoot":"","sources":["../../src/embeddings/transformers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAiB,MAAM,YAAY,CAAC;AAG9D,UAAU,WAAW;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAKrD,CAAC;AAYF,qBAAa,6BAA8B,YAAW,iBAAiB;IACrE,QAAQ,CAAC,IAAI,kBAAkB;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B,OAAO,CAAC,QAAQ,CAA8C;IAC9D,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,WAAW,CAA8B;gBAErC,SAAS,GAAE,MAAsB;IAKvC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;YAQnB,WAAW;IA8BnB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAoBtC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;IA2BtD,OAAO,IAAI,OAAO;CAGnB;AAED,wBAAsB,uBAAuB,CAC3C,SAAS,GAAE,MAAsB,GAChC,OAAO,CAAC,iBAAiB,CAAC,CAI5B"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
1
|
import { DEFAULT_MODEL } from './types.js';
|
|
3
|
-
const MODEL_CONFIGS = {
|
|
2
|
+
export const MODEL_CONFIGS = {
|
|
4
3
|
'Xenova/bge-small-en-v1.5': { dimensions: 384, maxContext: 512 },
|
|
5
4
|
'Xenova/all-MiniLM-L6-v2': { dimensions: 384, maxContext: 512 },
|
|
6
5
|
'Xenova/bge-base-en-v1.5': { dimensions: 768, maxContext: 512 },
|
|
@@ -36,14 +35,18 @@ export class TransformersEmbeddingProvider {
|
|
|
36
35
|
}
|
|
37
36
|
async _initialize() {
|
|
38
37
|
try {
|
|
39
|
-
|
|
40
|
-
|
|
38
|
+
if (process.env.CODEBASE_CONTEXT_DEBUG) {
|
|
39
|
+
console.error(`Loading embedding model: ${this.modelName}`);
|
|
40
|
+
console.error('(First run will download the model - this may take a moment)');
|
|
41
|
+
}
|
|
41
42
|
const { pipeline } = await import('@huggingface/transformers');
|
|
42
43
|
this.pipeline = await pipeline('feature-extraction', this.modelName, {
|
|
43
44
|
dtype: 'q8'
|
|
44
45
|
});
|
|
45
46
|
this.ready = true;
|
|
46
|
-
|
|
47
|
+
if (process.env.CODEBASE_CONTEXT_DEBUG) {
|
|
48
|
+
console.error(`Model loaded successfully: ${this.modelName}`);
|
|
49
|
+
}
|
|
47
50
|
}
|
|
48
51
|
catch (error) {
|
|
49
52
|
console.error('Failed to initialize embedding model:', error);
|
|
@@ -54,6 +57,8 @@ export class TransformersEmbeddingProvider {
|
|
|
54
57
|
if (!this.ready) {
|
|
55
58
|
await this.initialize();
|
|
56
59
|
}
|
|
60
|
+
if (!this.pipeline)
|
|
61
|
+
throw new Error('Pipeline not initialized');
|
|
57
62
|
try {
|
|
58
63
|
const output = await this.pipeline(text, {
|
|
59
64
|
pooling: 'mean',
|
|
@@ -70,6 +75,8 @@ export class TransformersEmbeddingProvider {
|
|
|
70
75
|
if (!this.ready) {
|
|
71
76
|
await this.initialize();
|
|
72
77
|
}
|
|
78
|
+
if (!this.pipeline)
|
|
79
|
+
throw new Error('Pipeline not initialized');
|
|
73
80
|
const embeddings = [];
|
|
74
81
|
const batchSize = computeSafeBatchSize(this.modelName);
|
|
75
82
|
for (let i = 0; i < texts.length; i += batchSize) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transformers.js","sourceRoot":"","sources":["../../src/embeddings/transformers.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"transformers.js","sourceRoot":"","sources":["../../src/embeddings/transformers.ts"],"names":[],"mappings":"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"}
|