bernard-agent 0.3.0 → 0.4.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/.env.example +10 -0
- package/README.md +54 -38
- package/dist/agent.d.ts +3 -0
- package/dist/agent.js +25 -4
- package/dist/agent.js.map +1 -1
- package/dist/config.js +17 -11
- package/dist/config.js.map +1 -1
- package/dist/context.d.ts +1 -0
- package/dist/context.js +29 -20
- package/dist/context.js.map +1 -1
- package/dist/cron/cli.d.ts +1 -0
- package/dist/cron/cli.js +53 -5
- package/dist/cron/cli.js.map +1 -1
- package/dist/cron/client.js.map +1 -1
- package/dist/cron/daemon.js +4 -1
- package/dist/cron/daemon.js.map +1 -1
- package/dist/cron/log-store.js +21 -13
- package/dist/cron/log-store.js.map +1 -1
- package/dist/cron/notify.js.map +1 -1
- package/dist/cron/runner.js +17 -10
- package/dist/cron/runner.js.map +1 -1
- package/dist/cron/scheduler.js +8 -7
- package/dist/cron/scheduler.js.map +1 -1
- package/dist/cron/store.js +19 -9
- package/dist/cron/store.js.map +1 -1
- package/dist/domains.js +37 -6
- package/dist/domains.js.map +1 -1
- package/dist/embeddings.js.map +1 -1
- package/dist/facts-cli.d.ts +7 -0
- package/dist/facts-cli.js +200 -0
- package/dist/facts-cli.js.map +1 -0
- package/dist/history.js.map +1 -1
- package/dist/index.js +33 -1
- package/dist/index.js.map +1 -1
- package/dist/logger.js +1 -2
- package/dist/logger.js.map +1 -1
- package/dist/mcp.js +10 -14
- package/dist/mcp.js.map +1 -1
- package/dist/memory-context.js +2 -1
- package/dist/memory-context.js.map +1 -1
- package/dist/memory.js +1 -3
- package/dist/memory.js.map +1 -1
- package/dist/output.d.ts +1 -1
- package/dist/output.js +15 -11
- package/dist/output.js.map +1 -1
- package/dist/rag-query.d.ts +31 -0
- package/dist/rag-query.js +97 -0
- package/dist/rag-query.js.map +1 -0
- package/dist/rag.d.ts +38 -1
- package/dist/rag.js +174 -26
- package/dist/rag.js.map +1 -1
- package/dist/repl.js +93 -37
- package/dist/repl.js.map +1 -1
- package/dist/setup.js +1 -1
- package/dist/setup.js.map +1 -1
- package/dist/theme.js +30 -5
- package/dist/theme.js.map +1 -1
- package/dist/tools/cron-logs.js +11 -4
- package/dist/tools/cron-logs.js.map +1 -1
- package/dist/tools/cron.d.ts +11 -0
- package/dist/tools/cron.js +60 -11
- package/dist/tools/cron.js.map +1 -1
- package/dist/tools/datetime.js.map +1 -1
- package/dist/tools/index.d.ts +11 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/mcp-url.js.map +1 -1
- package/dist/tools/mcp.js +19 -12
- package/dist/tools/mcp.js.map +1 -1
- package/dist/tools/memory.js +2 -2
- package/dist/tools/memory.js.map +1 -1
- package/dist/tools/shell.js +1 -1
- package/dist/tools/shell.js.map +1 -1
- package/dist/tools/subagent.js +9 -6
- package/dist/tools/subagent.js.map +1 -1
- package/dist/tools/time.js +8 -4
- package/dist/tools/time.js.map +1 -1
- package/dist/tools/web.js +18 -5
- package/dist/tools/web.js.map +1 -1
- package/dist/update.js +4 -2
- package/dist/update.js.map +1 -1
- package/package.json +10 -2
package/dist/rag.js
CHANGED
|
@@ -42,6 +42,7 @@ const logger_js_1 = require("./logger.js");
|
|
|
42
42
|
const domains_js_1 = require("./domains.js");
|
|
43
43
|
const RAG_DIR = path.join(os.homedir(), '.bernard', 'rag');
|
|
44
44
|
const MEMORIES_FILE = path.join(RAG_DIR, 'memories.json');
|
|
45
|
+
const LAST_SESSION_FILE = path.join(RAG_DIR, 'last-session.txt');
|
|
45
46
|
const DEFAULT_TOP_K_PER_DOMAIN = 3;
|
|
46
47
|
const DEFAULT_MAX_RESULTS = 9;
|
|
47
48
|
const DEFAULT_SIMILARITY_THRESHOLD = 0.35;
|
|
@@ -49,19 +50,24 @@ const DEFAULT_MAX_MEMORIES = 5000;
|
|
|
49
50
|
const DEDUP_THRESHOLD = 0.92;
|
|
50
51
|
const PRUNE_HALF_LIFE_DAYS = 90;
|
|
51
52
|
const STALE_TEMP_MAX_AGE_MS = 60 * 60 * 1000; // 1 hour
|
|
53
|
+
const DEFAULT_RAG_TTL_DAYS = 90;
|
|
52
54
|
class RAGStore {
|
|
53
55
|
memories = [];
|
|
54
56
|
topKPerDomain;
|
|
55
57
|
maxResults;
|
|
56
58
|
similarityThreshold;
|
|
57
59
|
maxMemories;
|
|
60
|
+
ragTtlDays;
|
|
58
61
|
constructor(config) {
|
|
59
62
|
this.topKPerDomain = config?.topKPerDomain ?? DEFAULT_TOP_K_PER_DOMAIN;
|
|
60
63
|
this.maxResults = config?.maxResults ?? DEFAULT_MAX_RESULTS;
|
|
61
64
|
this.similarityThreshold = config?.similarityThreshold ?? DEFAULT_SIMILARITY_THRESHOLD;
|
|
62
65
|
this.maxMemories = config?.maxMemories ?? DEFAULT_MAX_MEMORIES;
|
|
66
|
+
this.ragTtlDays = config?.ragTtlDays ?? DEFAULT_RAG_TTL_DAYS;
|
|
63
67
|
fs.mkdirSync(RAG_DIR, { recursive: true });
|
|
64
68
|
this.load();
|
|
69
|
+
this.saveSessionDate();
|
|
70
|
+
this.pruneExpired();
|
|
65
71
|
RAGStore.cleanupStaleTemp();
|
|
66
72
|
}
|
|
67
73
|
/** Delete .pending-*.json temp files older than 1 hour (handles crashed workers). */
|
|
@@ -103,7 +109,7 @@ class RAGStore {
|
|
|
103
109
|
}
|
|
104
110
|
let embeddings;
|
|
105
111
|
try {
|
|
106
|
-
embeddings = await provider.embed(facts);
|
|
112
|
+
embeddings = (await provider.embed(facts)).map((e) => Array.from(e));
|
|
107
113
|
}
|
|
108
114
|
catch (err) {
|
|
109
115
|
(0, logger_js_1.debugLog)('rag:addFacts', `Embedding failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
@@ -128,6 +134,7 @@ class RAGStore {
|
|
|
128
134
|
domain,
|
|
129
135
|
createdAt: now,
|
|
130
136
|
accessCount: 0,
|
|
137
|
+
expiresAt: new Date(Date.now() + this.ragTtlDays * 86400000).toISOString(),
|
|
131
138
|
});
|
|
132
139
|
added++;
|
|
133
140
|
}
|
|
@@ -139,26 +146,10 @@ class RAGStore {
|
|
|
139
146
|
return added;
|
|
140
147
|
}
|
|
141
148
|
/**
|
|
142
|
-
*
|
|
143
|
-
*
|
|
144
|
-
* then merges and caps at maxResults total.
|
|
149
|
+
* Score, group by domain (top-k per domain), and cap at maxResults.
|
|
150
|
+
* Shared by search() and searchWithIds().
|
|
145
151
|
*/
|
|
146
|
-
|
|
147
|
-
if (this.memories.length === 0)
|
|
148
|
-
return [];
|
|
149
|
-
const provider = await (0, embeddings_js_1.getEmbeddingProvider)();
|
|
150
|
-
if (!provider)
|
|
151
|
-
return [];
|
|
152
|
-
let queryEmbedding;
|
|
153
|
-
try {
|
|
154
|
-
const embeddings = await provider.embed([query]);
|
|
155
|
-
queryEmbedding = embeddings[0];
|
|
156
|
-
}
|
|
157
|
-
catch (err) {
|
|
158
|
-
(0, logger_js_1.debugLog)('rag:search', `Query embedding failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
159
|
-
return [];
|
|
160
|
-
}
|
|
161
|
-
// Score all memories
|
|
152
|
+
scoreAndRank(queryEmbedding) {
|
|
162
153
|
const scored = this.memories
|
|
163
154
|
.map((m) => ({
|
|
164
155
|
memory: m,
|
|
@@ -166,7 +157,6 @@ class RAGStore {
|
|
|
166
157
|
}))
|
|
167
158
|
.filter((s) => s.similarity >= this.similarityThreshold)
|
|
168
159
|
.sort((a, b) => b.similarity - a.similarity);
|
|
169
|
-
// Group by domain, take top-k per domain
|
|
170
160
|
const byDomain = new Map();
|
|
171
161
|
for (const entry of scored) {
|
|
172
162
|
const d = entry.memory.domain;
|
|
@@ -177,15 +167,48 @@ class RAGStore {
|
|
|
177
167
|
group.push(entry);
|
|
178
168
|
}
|
|
179
169
|
}
|
|
180
|
-
// Merge all domain groups, sort by similarity, cap at maxResults
|
|
181
170
|
const merged = Array.from(byDomain.values()).flat();
|
|
182
171
|
merged.sort((a, b) => b.similarity - a.similarity);
|
|
183
|
-
|
|
184
|
-
|
|
172
|
+
return merged.slice(0, this.maxResults);
|
|
173
|
+
}
|
|
174
|
+
/** Embed a query string, returning the embedding vector or null on failure. */
|
|
175
|
+
async embedQuery(query, logLabel) {
|
|
176
|
+
const provider = await (0, embeddings_js_1.getEmbeddingProvider)();
|
|
177
|
+
if (!provider)
|
|
178
|
+
return null;
|
|
179
|
+
try {
|
|
180
|
+
return Array.from((await provider.embed([query]))[0]);
|
|
181
|
+
}
|
|
182
|
+
catch (err) {
|
|
183
|
+
(0, logger_js_1.debugLog)(logLabel, `Query embedding failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
184
|
+
return null;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Search for memories relevant to the query.
|
|
189
|
+
* Per-domain top-k: takes up to topKPerDomain results per domain,
|
|
190
|
+
* then merges and caps at maxResults total.
|
|
191
|
+
*/
|
|
192
|
+
async search(query) {
|
|
193
|
+
if (this.memories.length === 0)
|
|
194
|
+
return [];
|
|
195
|
+
const queryEmbedding = await this.embedQuery(query, 'rag:search');
|
|
196
|
+
if (!queryEmbedding)
|
|
197
|
+
return [];
|
|
198
|
+
const capped = this.scoreAndRank(queryEmbedding);
|
|
199
|
+
(0, logger_js_1.debugLog)('rag:search', { query: query.slice(0, 100), returned: capped.length });
|
|
200
|
+
// Update access metadata and extend expiration
|
|
185
201
|
const now = new Date().toISOString();
|
|
202
|
+
const nowMs = Date.now();
|
|
186
203
|
for (const { memory } of capped) {
|
|
187
204
|
memory.accessCount++;
|
|
188
205
|
memory.lastAccessed = now;
|
|
206
|
+
// Extend expiresAt: base of 7d + log scaling by access count, capped at half TTL
|
|
207
|
+
const extensionDays = Math.min(this.ragTtlDays * 0.5, 7 + Math.log2(memory.accessCount + 1) * 3);
|
|
208
|
+
const newExpiry = nowMs + extensionDays * 86400000;
|
|
209
|
+
if (!memory.expiresAt || newExpiry > new Date(memory.expiresAt).getTime()) {
|
|
210
|
+
memory.expiresAt = new Date(newExpiry).toISOString();
|
|
211
|
+
}
|
|
189
212
|
}
|
|
190
213
|
if (capped.length > 0) {
|
|
191
214
|
this.persist();
|
|
@@ -198,9 +221,13 @@ class RAGStore {
|
|
|
198
221
|
}
|
|
199
222
|
/** List all facts as plain text lines. */
|
|
200
223
|
listFacts() {
|
|
224
|
+
const now = Date.now();
|
|
201
225
|
return this.memories.map((m) => {
|
|
202
226
|
const date = m.createdAt.slice(0, 10);
|
|
203
|
-
|
|
227
|
+
const daysLeft = m.expiresAt
|
|
228
|
+
? Math.max(0, Math.ceil((new Date(m.expiresAt).getTime() - now) / 86400000))
|
|
229
|
+
: '?';
|
|
230
|
+
return `[${date}] [${m.domain}] (accessed ${m.accessCount}x, expires in ${daysLeft}d) ${m.fact}`;
|
|
204
231
|
});
|
|
205
232
|
}
|
|
206
233
|
/** Clear all memories. */
|
|
@@ -220,12 +247,68 @@ class RAGStore {
|
|
|
220
247
|
}
|
|
221
248
|
return counts;
|
|
222
249
|
}
|
|
250
|
+
/**
|
|
251
|
+
* Search for memories relevant to the query, returning rich metadata.
|
|
252
|
+
* Same scoring/grouping/capping as search() but does NOT update access metadata.
|
|
253
|
+
*/
|
|
254
|
+
async searchWithIds(query) {
|
|
255
|
+
if (this.memories.length === 0)
|
|
256
|
+
return [];
|
|
257
|
+
const queryEmbedding = await this.embedQuery(query, 'rag:searchWithIds');
|
|
258
|
+
if (!queryEmbedding)
|
|
259
|
+
return [];
|
|
260
|
+
const capped = this.scoreAndRank(queryEmbedding);
|
|
261
|
+
return capped.map((s) => ({
|
|
262
|
+
id: s.memory.id,
|
|
263
|
+
fact: s.memory.fact,
|
|
264
|
+
similarity: s.similarity,
|
|
265
|
+
domain: s.memory.domain,
|
|
266
|
+
createdAt: s.memory.createdAt,
|
|
267
|
+
accessCount: s.memory.accessCount,
|
|
268
|
+
}));
|
|
269
|
+
}
|
|
270
|
+
/** Return all memories as RAGSearchResultWithId (similarity=1.0 placeholder). */
|
|
271
|
+
listMemories() {
|
|
272
|
+
return this.memories.map((m) => ({
|
|
273
|
+
id: m.id,
|
|
274
|
+
fact: m.fact,
|
|
275
|
+
similarity: 1.0,
|
|
276
|
+
domain: m.domain,
|
|
277
|
+
createdAt: m.createdAt,
|
|
278
|
+
accessCount: m.accessCount,
|
|
279
|
+
}));
|
|
280
|
+
}
|
|
281
|
+
/** Delete memories by ID. Returns the number of memories deleted. */
|
|
282
|
+
deleteByIds(ids) {
|
|
283
|
+
const idSet = new Set(ids);
|
|
284
|
+
const before = this.memories.length;
|
|
285
|
+
this.memories = this.memories.filter((m) => !idSet.has(m.id));
|
|
286
|
+
const deleted = before - this.memories.length;
|
|
287
|
+
if (deleted > 0) {
|
|
288
|
+
this.persist();
|
|
289
|
+
}
|
|
290
|
+
return deleted;
|
|
291
|
+
}
|
|
292
|
+
/** Remove facts whose expiresAt has passed. Returns the number removed. */
|
|
293
|
+
pruneExpired() {
|
|
294
|
+
const now = Date.now();
|
|
295
|
+
const before = this.memories.length;
|
|
296
|
+
this.memories = this.memories.filter((m) => !m.expiresAt || new Date(m.expiresAt).getTime() > now);
|
|
297
|
+
const expired = before - this.memories.length;
|
|
298
|
+
if (expired > 0) {
|
|
299
|
+
(0, logger_js_1.debugLog)('rag:pruneExpired', { expired });
|
|
300
|
+
this.persist();
|
|
301
|
+
}
|
|
302
|
+
return expired;
|
|
303
|
+
}
|
|
223
304
|
/**
|
|
224
305
|
* Prune memories if over the cap.
|
|
306
|
+
* First removes expired facts, then applies capacity-based scoring.
|
|
225
307
|
* Score = recency decay (half-life 90 days) + log2(accessCount + 1)
|
|
226
308
|
* Keeps top N by score.
|
|
227
309
|
*/
|
|
228
310
|
prune() {
|
|
311
|
+
this.pruneExpired();
|
|
229
312
|
if (this.memories.length <= this.maxMemories)
|
|
230
313
|
return;
|
|
231
314
|
const now = Date.now();
|
|
@@ -240,7 +323,7 @@ class RAGStore {
|
|
|
240
323
|
this.memories = scored.slice(0, this.maxMemories).map((s) => s.memory);
|
|
241
324
|
(0, logger_js_1.debugLog)('rag:prune', { kept: this.memories.length });
|
|
242
325
|
}
|
|
243
|
-
/** Load memories from disk. Backfills
|
|
326
|
+
/** Load memories from disk. Backfills domain, expiresAt, and compensates for idle days. */
|
|
244
327
|
load() {
|
|
245
328
|
try {
|
|
246
329
|
if (!fs.existsSync(MEMORIES_FILE))
|
|
@@ -251,12 +334,77 @@ class RAGStore {
|
|
|
251
334
|
this.memories = parsed.map((m) => ({
|
|
252
335
|
...m,
|
|
253
336
|
domain: m.domain ?? domains_js_1.DEFAULT_DOMAIN,
|
|
337
|
+
embedding: Array.isArray(m.embedding) ? m.embedding : Object.values(m.embedding),
|
|
254
338
|
}));
|
|
255
339
|
}
|
|
256
340
|
}
|
|
257
341
|
catch (err) {
|
|
258
342
|
(0, logger_js_1.debugLog)('rag:load', `Failed to load memories: ${err instanceof Error ? err.message : String(err)}`);
|
|
259
343
|
this.memories = [];
|
|
344
|
+
return;
|
|
345
|
+
}
|
|
346
|
+
if (this.memories.length === 0)
|
|
347
|
+
return;
|
|
348
|
+
let dirty = false;
|
|
349
|
+
// Backfill expiresAt for legacy facts without one (must run before idle-day shift)
|
|
350
|
+
const now = Date.now();
|
|
351
|
+
const ttlMs = this.ragTtlDays * 86400000;
|
|
352
|
+
const gracePeriodMs = 14 * 86400000;
|
|
353
|
+
for (const m of this.memories) {
|
|
354
|
+
if (!m.expiresAt) {
|
|
355
|
+
const ageMs = now - new Date(m.createdAt).getTime();
|
|
356
|
+
const remainingMs = ttlMs - ageMs;
|
|
357
|
+
m.expiresAt = new Date(now + Math.max(remainingMs, gracePeriodMs)).toISOString();
|
|
358
|
+
dirty = true;
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
// Compensate for idle days — TTL only counts days Bernard was used
|
|
362
|
+
const idleDays = this.getIdleDays();
|
|
363
|
+
if (idleDays > 0) {
|
|
364
|
+
const shiftMs = idleDays * 86400000;
|
|
365
|
+
for (const m of this.memories) {
|
|
366
|
+
if (m.expiresAt) {
|
|
367
|
+
m.expiresAt = new Date(new Date(m.expiresAt).getTime() + shiftMs).toISOString();
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
(0, logger_js_1.debugLog)('rag:load', { idleDaysCompensated: idleDays });
|
|
371
|
+
dirty = true;
|
|
372
|
+
}
|
|
373
|
+
if (dirty) {
|
|
374
|
+
this.persist();
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
/**
|
|
378
|
+
* Compute the number of idle calendar days since the last session.
|
|
379
|
+
* Returns 0 if no previous session recorded or if used today/yesterday.
|
|
380
|
+
*/
|
|
381
|
+
getIdleDays() {
|
|
382
|
+
try {
|
|
383
|
+
if (!fs.existsSync(LAST_SESSION_FILE))
|
|
384
|
+
return 0;
|
|
385
|
+
const lastDateStr = fs.readFileSync(LAST_SESSION_FILE, 'utf-8').trim();
|
|
386
|
+
if (!/^\d{4}-\d{2}-\d{2}$/.test(lastDateStr))
|
|
387
|
+
return 0;
|
|
388
|
+
const todayStr = new Date().toISOString().slice(0, 10);
|
|
389
|
+
const lastDate = new Date(lastDateStr + 'T00:00:00Z');
|
|
390
|
+
const today = new Date(todayStr + 'T00:00:00Z');
|
|
391
|
+
const daysBetween = Math.round((today.getTime() - lastDate.getTime()) / 86400000);
|
|
392
|
+
// 0 = same day, 1 = consecutive days (normal), 2+ = idle gap
|
|
393
|
+
return Math.max(0, daysBetween - 1);
|
|
394
|
+
}
|
|
395
|
+
catch {
|
|
396
|
+
return 0;
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
/** Write today's date as the last session date. */
|
|
400
|
+
saveSessionDate() {
|
|
401
|
+
try {
|
|
402
|
+
const todayStr = new Date().toISOString().slice(0, 10);
|
|
403
|
+
fs.writeFileSync(LAST_SESSION_FILE, todayStr, 'utf-8');
|
|
404
|
+
}
|
|
405
|
+
catch {
|
|
406
|
+
// Non-critical — just log
|
|
407
|
+
(0, logger_js_1.debugLog)('rag:saveSessionDate', 'Failed to save session date');
|
|
260
408
|
}
|
|
261
409
|
}
|
|
262
410
|
/** Persist memories to disk atomically (write to tmp, then rename). */
|
package/dist/rag.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rag.js","sourceRoot":"","sources":["../src/rag.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAA8B;AAC9B,gDAAkC;AAClC,4CAA8B;AAC9B,mDAAyE;AACzE,2CAAuC;AACvC,6CAA8C;AAE9C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;AAC3D,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;AAE1D,MAAM,wBAAwB,GAAG,CAAC,CAAC;AACnC,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAC9B,MAAM,4BAA4B,GAAG,IAAI,CAAC;AAC1C,MAAM,oBAAoB,GAAG,IAAI,CAAC;AAClC,MAAM,eAAe,GAAG,IAAI,CAAC;AAC7B,MAAM,oBAAoB,GAAG,EAAE,CAAC;AAChC,MAAM,qBAAqB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,SAAS;AA0BvD,MAAa,QAAQ;IACX,QAAQ,GAAgB,EAAE,CAAC;IAC3B,aAAa,CAAS;IACtB,UAAU,CAAS;IACnB,mBAAmB,CAAS;IAC5B,WAAW,CAAS;IAE5B,YAAY,MAAuB;QACjC,IAAI,CAAC,aAAa,GAAG,MAAM,EAAE,aAAa,IAAI,wBAAwB,CAAC;QACvE,IAAI,CAAC,UAAU,GAAG,MAAM,EAAE,UAAU,IAAI,mBAAmB,CAAC;QAC5D,IAAI,CAAC,mBAAmB,GAAG,MAAM,EAAE,mBAAmB,IAAI,4BAA4B,CAAC;QACvF,IAAI,CAAC,WAAW,GAAG,MAAM,EAAE,WAAW,IAAI,oBAAoB,CAAC;QAE/D,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3C,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,QAAQ,CAAC,gBAAgB,EAAE,CAAC;IAC9B,CAAC;IAED,qFAAqF;IACrF,MAAM,CAAC,gBAAgB;QACrB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YACxC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;oBAAE,SAAS;gBACzE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gBAC3C,IAAI,CAAC;oBACH,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;oBACnC,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,GAAG,qBAAqB,EAAE,CAAC;wBAC/C,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;wBACxB,IAAA,oBAAQ,EAAC,sBAAsB,EAAE,4BAA4B,KAAK,EAAE,CAAC,CAAC;oBACxE,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,yBAAyB;gBAC3B,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,uCAAuC;QACzC,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,QAAQ,CAAC,KAAe,EAAE,MAAc,EAAE,SAAiB,2BAAc;QAC7E,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC;QAEjC,MAAM,QAAQ,GAAG,MAAM,IAAA,oCAAoB,GAAE,CAAC;QAC9C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,IAAA,oBAAQ,EAAC,cAAc,EAAE,2CAA2C,CAAC,CAAC;YACtE,OAAO,CAAC,CAAC;QACX,CAAC;QAED,IAAI,UAAsB,CAAC;QAC3B,IAAI,CAAC;YACH,UAAU,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC3C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAA,oBAAQ,EAAC,cAAc,EAAE,qBAAqB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAClG,OAAO,CAAC,CAAC;QACX,CAAC;QAED,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAErC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACtB,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YAEhC,yDAAyD;YACzD,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CACpC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,gCAAgB,EAAC,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,GAAG,eAAe,CAClE,CAAC;YACF,IAAI,WAAW,EAAE,CAAC;gBAChB,IAAA,oBAAQ,EAAC,WAAW,EAAE,4BAA4B,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;gBACvE,SAAS;YACX,CAAC;YAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACjB,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;gBAC7D,IAAI;gBACJ,SAAS;gBACT,MAAM;gBACN,MAAM;gBACN,SAAS,EAAE,GAAG;gBACd,WAAW,EAAE,CAAC;aACf,CAAC,CAAC;YACH,KAAK,EAAE,CAAC;QACV,CAAC;QAED,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC;QAED,IAAA,oBAAQ,EAAC,cAAc,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QACzE,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,MAAM,CAAC,KAAa;QACxB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAE1C,MAAM,QAAQ,GAAG,MAAM,IAAA,oCAAoB,GAAE,CAAC;QAC9C,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,CAAC;QAEzB,IAAI,cAAwB,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACjD,cAAc,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QACjC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAA,oBAAQ,EAAC,YAAY,EAAE,2BAA2B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACtG,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,qBAAqB;QACrB,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ;aACzB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACX,MAAM,EAAE,CAAC;YACT,UAAU,EAAE,IAAA,gCAAgB,EAAC,cAAc,EAAE,CAAC,CAAC,SAAS,CAAC;SAC1D,CAAC,CAAC;aACF,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,mBAAmB,CAAC;aACvD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;QAE/C,yCAAyC;QACzC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAyB,CAAC;QAClD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;YAC9B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;gBAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC1C,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC;YAC/B,IAAI,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;gBACtC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;QAED,iEAAiE;QACjE,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACpD,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;QACnD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAEhD,yBAAyB;QACzB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,KAAK,MAAM,EAAE,MAAM,EAAE,IAAI,MAAM,EAAE,CAAC;YAChC,MAAM,CAAC,WAAW,EAAE,CAAC;YACrB,MAAM,CAAC,YAAY,GAAG,GAAG,CAAC;QAC5B,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC;QAED,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACxB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI;YACnB,UAAU,EAAE,CAAC,CAAC,UAAU;YACxB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM;SACxB,CAAC,CAAC,CAAC;IACN,CAAC;IAED,0CAA0C;IAC1C,SAAS;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC7B,MAAM,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACtC,OAAO,IAAI,IAAI,MAAM,CAAC,CAAC,MAAM,eAAe,CAAC,CAAC,WAAW,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;QAC1E,CAAC,CAAC,CAAC;IACL,CAAC;IAED,0BAA0B;IAC1B,KAAK;QACH,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAED,uCAAuC;IACvC,KAAK;QACH,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;IAC9B,CAAC;IAED,wCAAwC;IACxC,aAAa;QACX,MAAM,MAAM,GAA2B,EAAE,CAAC;QAC1C,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC9B,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACK,KAAK;QACX,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO;QAErD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,UAAU,GAAG,oBAAoB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QAE9D,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACrC,MAAM,KAAK,GAAG,GAAG,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;YACpD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,GAAG,UAAU,CAAC,CAAC;YAClD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;YAC5C,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAEvE,IAAA,oBAAQ,EAAC,WAAW,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,8EAA8E;IACtE,IAAI;QACV,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC;gBAAE,OAAO;YAC1C,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;YACrD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAChC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1B,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC;oBACtC,GAAG,CAAC;oBACJ,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,2BAAc;iBACnC,CAAC,CAAC,CAAC;YACN,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAA,oBAAQ,EAAC,UAAU,EAAE,4BAA4B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACrG,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACrB,CAAC;IACH,CAAC;IAED,uEAAuE;IAC/D,OAAO;QACb,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,aAAa,GAAG,MAAM,CAAC;YACvC,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC;YAClE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAA,oBAAQ,EAAC,aAAa,EAAE,+BAA+B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC7G,CAAC;IACH,CAAC;CACF;AAjPD,4BAiPC"}
|
|
1
|
+
{"version":3,"file":"rag.js","sourceRoot":"","sources":["../src/rag.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAA8B;AAC9B,gDAAkC;AAClC,4CAA8B;AAC9B,mDAAyE;AACzE,2CAAuC;AACvC,6CAA8C;AAE9C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;AAC3D,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;AAC1D,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;AAEjE,MAAM,wBAAwB,GAAG,CAAC,CAAC;AACnC,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAC9B,MAAM,4BAA4B,GAAG,IAAI,CAAC;AAC1C,MAAM,oBAAoB,GAAG,IAAI,CAAC;AAClC,MAAM,eAAe,GAAG,IAAI,CAAC;AAC7B,MAAM,oBAAoB,GAAG,EAAE,CAAC;AAChC,MAAM,qBAAqB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,SAAS;AACvD,MAAM,oBAAoB,GAAG,EAAE,CAAC;AAqChC,MAAa,QAAQ;IACX,QAAQ,GAAgB,EAAE,CAAC;IAC3B,aAAa,CAAS;IACtB,UAAU,CAAS;IACnB,mBAAmB,CAAS;IAC5B,WAAW,CAAS;IACpB,UAAU,CAAS;IAE3B,YAAY,MAAuB;QACjC,IAAI,CAAC,aAAa,GAAG,MAAM,EAAE,aAAa,IAAI,wBAAwB,CAAC;QACvE,IAAI,CAAC,UAAU,GAAG,MAAM,EAAE,UAAU,IAAI,mBAAmB,CAAC;QAC5D,IAAI,CAAC,mBAAmB,GAAG,MAAM,EAAE,mBAAmB,IAAI,4BAA4B,CAAC;QACvF,IAAI,CAAC,WAAW,GAAG,MAAM,EAAE,WAAW,IAAI,oBAAoB,CAAC;QAC/D,IAAI,CAAC,UAAU,GAAG,MAAM,EAAE,UAAU,IAAI,oBAAoB,CAAC;QAE7D,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3C,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,QAAQ,CAAC,gBAAgB,EAAE,CAAC;IAC9B,CAAC;IAED,qFAAqF;IACrF,MAAM,CAAC,gBAAgB;QACrB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YACxC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;oBAAE,SAAS;gBACzE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gBAC3C,IAAI,CAAC;oBACH,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;oBACnC,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,GAAG,qBAAqB,EAAE,CAAC;wBAC/C,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;wBACxB,IAAA,oBAAQ,EAAC,sBAAsB,EAAE,4BAA4B,KAAK,EAAE,CAAC,CAAC;oBACxE,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,yBAAyB;gBAC3B,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,uCAAuC;QACzC,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,QAAQ,CACZ,KAAe,EACf,MAAc,EACd,SAAiB,2BAAc;QAE/B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC;QAEjC,MAAM,QAAQ,GAAG,MAAM,IAAA,oCAAoB,GAAE,CAAC;QAC9C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,IAAA,oBAAQ,EAAC,cAAc,EAAE,2CAA2C,CAAC,CAAC;YACtE,OAAO,CAAC,CAAC;QACX,CAAC;QAED,IAAI,UAAsB,CAAC;QAC3B,IAAI,CAAC;YACH,UAAU,GAAG,CAAC,MAAM,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAA,oBAAQ,EACN,cAAc,EACd,qBAAqB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CACxE,CAAC;YACF,OAAO,CAAC,CAAC;QACX,CAAC;QAED,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAErC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACtB,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YAEhC,yDAAyD;YACzD,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CACpC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,gCAAgB,EAAC,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,GAAG,eAAe,CAClE,CAAC;YACF,IAAI,WAAW,EAAE,CAAC;gBAChB,IAAA,oBAAQ,EAAC,WAAW,EAAE,4BAA4B,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;gBACvE,SAAS;YACX,CAAC;YAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACjB,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;gBAC7D,IAAI;gBACJ,SAAS;gBACT,MAAM;gBACN,MAAM;gBACN,SAAS,EAAE,GAAG;gBACd,WAAW,EAAE,CAAC;gBACd,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,CAAC,WAAW,EAAE;aAC3E,CAAC,CAAC;YACH,KAAK,EAAE,CAAC;QACV,CAAC;QAED,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC;QAED,IAAA,oBAAQ,EAAC,cAAc,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QACzE,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;OAGG;IACK,YAAY,CAAC,cAAwB;QAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ;aACzB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACX,MAAM,EAAE,CAAC;YACT,UAAU,EAAE,IAAA,gCAAgB,EAAC,cAAc,EAAE,CAAC,CAAC,SAAS,CAAC;SAC1D,CAAC,CAAC;aACF,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,mBAAmB,CAAC;aACvD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;QAE/C,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAyB,CAAC;QAClD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;YAC9B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;gBAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC1C,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC;YAC/B,IAAI,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;gBACtC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACpD,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;QACnD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAC1C,CAAC;IAED,+EAA+E;IACvE,KAAK,CAAC,UAAU,CAAC,KAAa,EAAE,QAAgB;QACtD,MAAM,QAAQ,GAAG,MAAM,IAAA,oCAAoB,GAAE,CAAC;QAC9C,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC;QAE3B,IAAI,CAAC;YACH,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAA,oBAAQ,EACN,QAAQ,EACR,2BAA2B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAC9E,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,MAAM,CAAC,KAAa;QACxB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAE1C,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QAClE,IAAI,CAAC,cAAc;YAAE,OAAO,EAAE,CAAC;QAE/B,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;QAEjD,IAAA,oBAAQ,EAAC,YAAY,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QAEhF,+CAA+C;QAC/C,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,KAAK,MAAM,EAAE,MAAM,EAAE,IAAI,MAAM,EAAE,CAAC;YAChC,MAAM,CAAC,WAAW,EAAE,CAAC;YACrB,MAAM,CAAC,YAAY,GAAG,GAAG,CAAC;YAE1B,iFAAiF;YACjF,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAC5B,IAAI,CAAC,UAAU,GAAG,GAAG,EACrB,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,CAC1C,CAAC;YACF,MAAM,SAAS,GAAG,KAAK,GAAG,aAAa,GAAG,QAAQ,CAAC;YACnD,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,SAAS,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC1E,MAAM,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;YACvD,CAAC;QACH,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC;QAED,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACxB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI;YACnB,UAAU,EAAE,CAAC,CAAC,UAAU;YACxB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM;SACxB,CAAC,CAAC,CAAC;IACN,CAAC;IAED,0CAA0C;IAC1C,SAAS;QACP,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC7B,MAAM,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACtC,MAAM,QAAQ,GAAG,CAAC,CAAC,SAAS;gBAC1B,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;gBAC5E,CAAC,CAAC,GAAG,CAAC;YACR,OAAO,IAAI,IAAI,MAAM,CAAC,CAAC,MAAM,eAAe,CAAC,CAAC,WAAW,iBAAiB,QAAQ,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;QACnG,CAAC,CAAC,CAAC;IACL,CAAC;IAED,0BAA0B;IAC1B,KAAK;QACH,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAED,uCAAuC;IACvC,KAAK;QACH,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;IAC9B,CAAC;IAED,wCAAwC;IACxC,aAAa;QACX,MAAM,MAAM,GAA2B,EAAE,CAAC;QAC1C,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC9B,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,aAAa,CAAC,KAAa;QAC/B,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAE1C,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC;QACzE,IAAI,CAAC,cAAc;YAAE,OAAO,EAAE,CAAC;QAE/B,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;QAEjD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACxB,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE;YACf,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI;YACnB,UAAU,EAAE,CAAC,CAAC,UAAU;YACxB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM;YACvB,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS;YAC7B,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,WAAW;SAClC,CAAC,CAAC,CAAC;IACN,CAAC;IAED,iFAAiF;IACjF,YAAY;QACV,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC/B,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,UAAU,EAAE,GAAG;YACf,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,SAAS,EAAE,CAAC,CAAC,SAAS;YACtB,WAAW,EAAE,CAAC,CAAC,WAAW;SAC3B,CAAC,CAAC,CAAC;IACN,CAAC;IAED,qEAAqE;IACrE,WAAW,CAAC,GAAa;QACvB,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QACpC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9D,MAAM,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC9C,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YAChB,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,2EAA2E;IACnE,YAAY;QAClB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QACpC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAClC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,GAAG,CAC7D,CAAC;QACF,MAAM,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC9C,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YAChB,IAAA,oBAAQ,EAAC,kBAAkB,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YAC1C,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;OAKG;IACK,KAAK;QACX,IAAI,CAAC,YAAY,EAAE,CAAC;QAEpB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO;QAErD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,UAAU,GAAG,oBAAoB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QAE9D,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACrC,MAAM,KAAK,GAAG,GAAG,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;YACpD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,GAAG,UAAU,CAAC,CAAC;YAClD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;YAC5C,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAEvE,IAAA,oBAAQ,EAAC,WAAW,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,2FAA2F;IACnF,IAAI;QACV,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC;gBAAE,OAAO;YAC1C,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;YACrD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAChC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1B,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC;oBACtC,GAAG,CAAC;oBACJ,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,2BAAc;oBAClC,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;iBACjF,CAAC,CAAC,CAAC;YACN,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAA,oBAAQ,EACN,UAAU,EACV,4BAA4B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAC/E,CAAC;YACF,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;YACnB,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAEvC,IAAI,KAAK,GAAG,KAAK,CAAC;QAElB,mFAAmF;QACnF,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;QACzC,MAAM,aAAa,GAAG,EAAE,GAAG,QAAQ,CAAC;QAEpC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC9B,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;gBACjB,MAAM,KAAK,GAAG,GAAG,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;gBACpD,MAAM,WAAW,GAAG,KAAK,GAAG,KAAK,CAAC;gBAClC,CAAC,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;gBACjF,KAAK,GAAG,IAAI,CAAC;YACf,CAAC;QACH,CAAC;QAED,mEAAmE;QACnE,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACpC,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;YACjB,MAAM,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;YACpC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC9B,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;oBAChB,CAAC,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;gBAClF,CAAC;YACH,CAAC;YACD,IAAA,oBAAQ,EAAC,UAAU,EAAE,EAAE,mBAAmB,EAAE,QAAQ,EAAE,CAAC,CAAC;YACxD,KAAK,GAAG,IAAI,CAAC;QACf,CAAC;QAED,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,WAAW;QACjB,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC;gBAAE,OAAO,CAAC,CAAC;YAChD,MAAM,WAAW,GAAG,EAAE,CAAC,YAAY,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;YACvE,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,WAAW,CAAC;gBAAE,OAAO,CAAC,CAAC;YAEvD,MAAM,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACvD,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC,CAAC;YACtD,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC,CAAC;YAChD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC;YAElF,6DAA6D;YAC7D,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,GAAG,CAAC,CAAC,CAAC;QACtC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IAED,mDAAmD;IAC3C,eAAe;QACrB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACvD,EAAE,CAAC,aAAa,CAAC,iBAAiB,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QACzD,CAAC;QAAC,MAAM,CAAC;YACP,0BAA0B;YAC1B,IAAA,oBAAQ,EAAC,qBAAqB,EAAE,6BAA6B,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED,uEAAuE;IAC/D,OAAO;QACb,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,aAAa,GAAG,MAAM,CAAC;YACvC,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC;YAClE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAA,oBAAQ,EACN,aAAa,EACb,+BAA+B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAClF,CAAC;QACJ,CAAC;IACH,CAAC;CACF;AAtaD,4BAsaC"}
|