@agentlensai/server 0.3.0 → 0.5.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/dist/db/embedding-store.d.ts +74 -0
- package/dist/db/embedding-store.d.ts.map +1 -0
- package/dist/db/embedding-store.js +177 -0
- package/dist/db/embedding-store.js.map +1 -0
- package/dist/db/lesson-store.d.ts +57 -0
- package/dist/db/lesson-store.d.ts.map +1 -0
- package/dist/db/lesson-store.js +217 -0
- package/dist/db/lesson-store.js.map +1 -0
- package/dist/db/migrate.d.ts.map +1 -1
- package/dist/db/migrate.js +237 -8
- package/dist/db/migrate.js.map +1 -1
- package/dist/db/schema.sqlite.d.ts +822 -47
- package/dist/db/schema.sqlite.d.ts.map +1 -1
- package/dist/db/schema.sqlite.js +79 -4
- package/dist/db/schema.sqlite.js.map +1 -1
- package/dist/db/session-summary-store.d.ts +45 -0
- package/dist/db/session-summary-store.d.ts.map +1 -0
- package/dist/db/session-summary-store.js +112 -0
- package/dist/db/session-summary-store.js.map +1 -0
- package/dist/db/sqlite-store.d.ts +14 -12
- package/dist/db/sqlite-store.d.ts.map +1 -1
- package/dist/db/sqlite-store.js +130 -44
- package/dist/db/sqlite-store.js.map +1 -1
- package/dist/db/tenant-scoped-store.d.ts +61 -0
- package/dist/db/tenant-scoped-store.d.ts.map +1 -0
- package/dist/db/tenant-scoped-store.js +94 -0
- package/dist/db/tenant-scoped-store.js.map +1 -0
- package/dist/index.d.ts +16 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +66 -5
- package/dist/index.js.map +1 -1
- package/dist/lib/alert-engine.d.ts +11 -0
- package/dist/lib/alert-engine.d.ts.map +1 -1
- package/dist/lib/alert-engine.js +62 -24
- package/dist/lib/alert-engine.js.map +1 -1
- package/dist/lib/analysis/cost-analysis.d.ts +20 -0
- package/dist/lib/analysis/cost-analysis.d.ts.map +1 -0
- package/dist/lib/analysis/cost-analysis.js +158 -0
- package/dist/lib/analysis/cost-analysis.js.map +1 -0
- package/dist/lib/analysis/error-patterns.d.ts +26 -0
- package/dist/lib/analysis/error-patterns.d.ts.map +1 -0
- package/dist/lib/analysis/error-patterns.js +155 -0
- package/dist/lib/analysis/error-patterns.js.map +1 -0
- package/dist/lib/analysis/index.d.ts +23 -0
- package/dist/lib/analysis/index.d.ts.map +1 -0
- package/dist/lib/analysis/index.js +144 -0
- package/dist/lib/analysis/index.js.map +1 -0
- package/dist/lib/analysis/performance-trends.d.ts +19 -0
- package/dist/lib/analysis/performance-trends.d.ts.map +1 -0
- package/dist/lib/analysis/performance-trends.js +118 -0
- package/dist/lib/analysis/performance-trends.js.map +1 -0
- package/dist/lib/analysis/tool-sequences.d.ts +19 -0
- package/dist/lib/analysis/tool-sequences.d.ts.map +1 -0
- package/dist/lib/analysis/tool-sequences.js +145 -0
- package/dist/lib/analysis/tool-sequences.js.map +1 -0
- package/dist/lib/context/index.d.ts +5 -0
- package/dist/lib/context/index.d.ts.map +1 -0
- package/dist/lib/context/index.js +5 -0
- package/dist/lib/context/index.js.map +1 -0
- package/dist/lib/context/retrieval.d.ts +56 -0
- package/dist/lib/context/retrieval.d.ts.map +1 -0
- package/dist/lib/context/retrieval.js +229 -0
- package/dist/lib/context/retrieval.js.map +1 -0
- package/dist/lib/embeddings/index.d.ts +31 -0
- package/dist/lib/embeddings/index.d.ts.map +1 -0
- package/dist/lib/embeddings/index.js +31 -0
- package/dist/lib/embeddings/index.js.map +1 -0
- package/dist/lib/embeddings/local.d.ts +15 -0
- package/dist/lib/embeddings/local.d.ts.map +1 -0
- package/dist/lib/embeddings/local.js +65 -0
- package/dist/lib/embeddings/local.js.map +1 -0
- package/dist/lib/embeddings/math.d.ts +13 -0
- package/dist/lib/embeddings/math.d.ts.map +1 -0
- package/dist/lib/embeddings/math.js +35 -0
- package/dist/lib/embeddings/math.js.map +1 -0
- package/dist/lib/embeddings/openai.d.ts +15 -0
- package/dist/lib/embeddings/openai.d.ts.map +1 -0
- package/dist/lib/embeddings/openai.js +58 -0
- package/dist/lib/embeddings/openai.js.map +1 -0
- package/dist/lib/embeddings/summarizer.d.ts +26 -0
- package/dist/lib/embeddings/summarizer.d.ts.map +1 -0
- package/dist/lib/embeddings/summarizer.js +181 -0
- package/dist/lib/embeddings/summarizer.js.map +1 -0
- package/dist/lib/embeddings/types.d.ts +17 -0
- package/dist/lib/embeddings/types.d.ts.map +1 -0
- package/dist/lib/embeddings/types.js +5 -0
- package/dist/lib/embeddings/types.js.map +1 -0
- package/dist/lib/embeddings/worker.d.ts +56 -0
- package/dist/lib/embeddings/worker.d.ts.map +1 -0
- package/dist/lib/embeddings/worker.js +109 -0
- package/dist/lib/embeddings/worker.js.map +1 -0
- package/dist/lib/sse.d.ts +1 -0
- package/dist/lib/sse.d.ts.map +1 -1
- package/dist/lib/sse.js +8 -1
- package/dist/lib/sse.js.map +1 -1
- package/dist/middleware/auth.d.ts +1 -0
- package/dist/middleware/auth.d.ts.map +1 -1
- package/dist/middleware/auth.js +2 -1
- package/dist/middleware/auth.js.map +1 -1
- package/dist/routes/agents.d.ts.map +1 -1
- package/dist/routes/agents.js +6 -3
- package/dist/routes/agents.js.map +1 -1
- package/dist/routes/alerts.d.ts.map +1 -1
- package/dist/routes/alerts.js +15 -7
- package/dist/routes/alerts.js.map +1 -1
- package/dist/routes/analytics.d.ts.map +1 -1
- package/dist/routes/analytics.js +16 -2
- package/dist/routes/analytics.js.map +1 -1
- package/dist/routes/api-keys.d.ts.map +1 -1
- package/dist/routes/api-keys.js +30 -5
- package/dist/routes/api-keys.js.map +1 -1
- package/dist/routes/context.d.ts +23 -0
- package/dist/routes/context.d.ts.map +1 -0
- package/dist/routes/context.js +52 -0
- package/dist/routes/context.js.map +1 -0
- package/dist/routes/events.d.ts +6 -1
- package/dist/routes/events.d.ts.map +1 -1
- package/dist/routes/events.js +61 -6
- package/dist/routes/events.js.map +1 -1
- package/dist/routes/ingest.d.ts +6 -0
- package/dist/routes/ingest.d.ts.map +1 -1
- package/dist/routes/ingest.js +23 -4
- package/dist/routes/ingest.js.map +1 -1
- package/dist/routes/lessons.d.ts +19 -0
- package/dist/routes/lessons.d.ts.map +1 -0
- package/dist/routes/lessons.js +164 -0
- package/dist/routes/lessons.js.map +1 -0
- package/dist/routes/recall.d.ts +20 -0
- package/dist/routes/recall.d.ts.map +1 -0
- package/dist/routes/recall.js +71 -0
- package/dist/routes/recall.js.map +1 -0
- package/dist/routes/reflect.d.ts +15 -0
- package/dist/routes/reflect.d.ts.map +1 -0
- package/dist/routes/reflect.js +55 -0
- package/dist/routes/reflect.js.map +1 -0
- package/dist/routes/sessions.d.ts.map +1 -1
- package/dist/routes/sessions.js +8 -6
- package/dist/routes/sessions.js.map +1 -1
- package/dist/routes/stats.d.ts.map +1 -1
- package/dist/routes/stats.js +3 -1
- package/dist/routes/stats.js.map +1 -1
- package/dist/routes/stream.d.ts +9 -2
- package/dist/routes/stream.d.ts.map +1 -1
- package/dist/routes/stream.js +55 -2
- package/dist/routes/stream.js.map +1 -1
- package/dist/routes/tenant-helper.d.ts +20 -0
- package/dist/routes/tenant-helper.d.ts.map +1 -0
- package/dist/routes/tenant-helper.js +23 -0
- package/dist/routes/tenant-helper.js.map +1 -0
- package/package.json +11 -11
- package/LICENSE +0 -21
- package/dist/__tests__/agents-stats.test.d.ts +0 -5
- package/dist/__tests__/agents-stats.test.d.ts.map +0 -1
- package/dist/__tests__/agents-stats.test.js +0 -134
- package/dist/__tests__/agents-stats.test.js.map +0 -1
- package/dist/__tests__/alerts.test.d.ts +0 -5
- package/dist/__tests__/alerts.test.d.ts.map +0 -1
- package/dist/__tests__/alerts.test.js +0 -245
- package/dist/__tests__/alerts.test.js.map +0 -1
- package/dist/__tests__/analytics.test.d.ts +0 -5
- package/dist/__tests__/analytics.test.d.ts.map +0 -1
- package/dist/__tests__/analytics.test.js +0 -218
- package/dist/__tests__/analytics.test.js.map +0 -1
- package/dist/__tests__/api-keys.test.d.ts +0 -5
- package/dist/__tests__/api-keys.test.d.ts.map +0 -1
- package/dist/__tests__/api-keys.test.js +0 -118
- package/dist/__tests__/api-keys.test.js.map +0 -1
- package/dist/__tests__/auth-no-db.test.d.ts +0 -2
- package/dist/__tests__/auth-no-db.test.d.ts.map +0 -1
- package/dist/__tests__/auth-no-db.test.js +0 -43
- package/dist/__tests__/auth-no-db.test.js.map +0 -1
- package/dist/__tests__/auth.test.d.ts +0 -5
- package/dist/__tests__/auth.test.d.ts.map +0 -1
- package/dist/__tests__/auth.test.js +0 -86
- package/dist/__tests__/auth.test.js.map +0 -1
- package/dist/__tests__/config.test.d.ts +0 -2
- package/dist/__tests__/config.test.d.ts.map +0 -1
- package/dist/__tests__/config.test.js +0 -37
- package/dist/__tests__/config.test.js.map +0 -1
- package/dist/__tests__/events-ingest.test.d.ts +0 -5
- package/dist/__tests__/events-ingest.test.d.ts.map +0 -1
- package/dist/__tests__/events-ingest.test.js +0 -248
- package/dist/__tests__/events-ingest.test.js.map +0 -1
- package/dist/__tests__/events-query.test.d.ts +0 -5
- package/dist/__tests__/events-query.test.d.ts.map +0 -1
- package/dist/__tests__/events-query.test.js +0 -205
- package/dist/__tests__/events-query.test.js.map +0 -1
- package/dist/__tests__/health.test.d.ts +0 -5
- package/dist/__tests__/health.test.d.ts.map +0 -1
- package/dist/__tests__/health.test.js +0 -40
- package/dist/__tests__/health.test.js.map +0 -1
- package/dist/__tests__/ingest.test.d.ts +0 -8
- package/dist/__tests__/ingest.test.d.ts.map +0 -1
- package/dist/__tests__/ingest.test.js +0 -469
- package/dist/__tests__/ingest.test.js.map +0 -1
- package/dist/__tests__/llm-tracking.test.d.ts +0 -10
- package/dist/__tests__/llm-tracking.test.d.ts.map +0 -1
- package/dist/__tests__/llm-tracking.test.js +0 -602
- package/dist/__tests__/llm-tracking.test.js.map +0 -1
- package/dist/__tests__/sessions.test.d.ts +0 -5
- package/dist/__tests__/sessions.test.d.ts.map +0 -1
- package/dist/__tests__/sessions.test.js +0 -176
- package/dist/__tests__/sessions.test.js.map +0 -1
- package/dist/__tests__/stream.test.d.ts +0 -5
- package/dist/__tests__/stream.test.d.ts.map +0 -1
- package/dist/__tests__/stream.test.js +0 -352
- package/dist/__tests__/stream.test.js.map +0 -1
- package/dist/__tests__/test-helpers.d.ts +0 -24
- package/dist/__tests__/test-helpers.d.ts.map +0 -1
- package/dist/__tests__/test-helpers.js +0 -45
- package/dist/__tests__/test-helpers.js.map +0 -1
- package/dist/db/__tests__/init.test.d.ts +0 -2
- package/dist/db/__tests__/init.test.d.ts.map +0 -1
- package/dist/db/__tests__/init.test.js +0 -73
- package/dist/db/__tests__/init.test.js.map +0 -1
- package/dist/db/__tests__/sqlite-store-read.test.d.ts +0 -2
- package/dist/db/__tests__/sqlite-store-read.test.d.ts.map +0 -1
- package/dist/db/__tests__/sqlite-store-read.test.js +0 -749
- package/dist/db/__tests__/sqlite-store-read.test.js.map +0 -1
- package/dist/db/__tests__/sqlite-store-write.test.d.ts +0 -2
- package/dist/db/__tests__/sqlite-store-write.test.d.ts.map +0 -1
- package/dist/db/__tests__/sqlite-store-write.test.js +0 -418
- package/dist/db/__tests__/sqlite-store-write.test.js.map +0 -1
- package/dist/lib/__tests__/alert-engine.test.d.ts +0 -5
- package/dist/lib/__tests__/alert-engine.test.d.ts.map +0 -1
- package/dist/lib/__tests__/alert-engine.test.js +0 -211
- package/dist/lib/__tests__/alert-engine.test.js.map +0 -1
- package/dist/lib/__tests__/retention.test.d.ts +0 -2
- package/dist/lib/__tests__/retention.test.d.ts.map +0 -1
- package/dist/lib/__tests__/retention.test.js +0 -238
- package/dist/lib/__tests__/retention.test.js.map +0 -1
package/dist/db/sqlite-store.js
CHANGED
|
@@ -42,6 +42,7 @@ export class SqliteEventStore {
|
|
|
42
42
|
this.db.transaction((tx) => {
|
|
43
43
|
// CRITICAL 3: Validate hash chain before inserting
|
|
44
44
|
const firstEvent = eventList[0];
|
|
45
|
+
const tenantId = firstEvent.tenantId ?? 'default';
|
|
45
46
|
// Check if the first event already exists (idempotent re-insert)
|
|
46
47
|
const existingFirst = tx
|
|
47
48
|
.select({ id: events.id })
|
|
@@ -53,7 +54,7 @@ export class SqliteEventStore {
|
|
|
53
54
|
const lastStoredEvent = tx
|
|
54
55
|
.select({ hash: events.hash })
|
|
55
56
|
.from(events)
|
|
56
|
-
.where(eq(events.sessionId, firstEvent.sessionId))
|
|
57
|
+
.where(and(eq(events.sessionId, firstEvent.sessionId), eq(events.tenantId, tenantId)))
|
|
57
58
|
.orderBy(desc(events.timestamp), desc(events.id))
|
|
58
59
|
.limit(1)
|
|
59
60
|
.get();
|
|
@@ -103,17 +104,18 @@ export class SqliteEventStore {
|
|
|
103
104
|
metadata: JSON.stringify(event.metadata),
|
|
104
105
|
prevHash: event.prevHash,
|
|
105
106
|
hash: event.hash,
|
|
107
|
+
tenantId,
|
|
106
108
|
})
|
|
107
109
|
.onConflictDoNothing({ target: events.id })
|
|
108
110
|
.run();
|
|
109
111
|
// Handle session management
|
|
110
|
-
this._handleSessionUpdate(tx, event);
|
|
112
|
+
this._handleSessionUpdate(tx, event, tenantId);
|
|
111
113
|
// Handle agent auto-creation
|
|
112
|
-
this._handleAgentUpsert(tx, event);
|
|
114
|
+
this._handleAgentUpsert(tx, event, tenantId);
|
|
113
115
|
}
|
|
114
116
|
});
|
|
115
117
|
}
|
|
116
|
-
_handleSessionUpdate(tx, event) {
|
|
118
|
+
_handleSessionUpdate(tx, event, tenantId) {
|
|
117
119
|
if (event.eventType === 'session_started') {
|
|
118
120
|
// Create new session
|
|
119
121
|
const payload = event.payload;
|
|
@@ -132,9 +134,10 @@ export class SqliteEventStore {
|
|
|
132
134
|
errorCount: 0,
|
|
133
135
|
totalCostUsd: 0,
|
|
134
136
|
tags: JSON.stringify(tags),
|
|
137
|
+
tenantId,
|
|
135
138
|
})
|
|
136
139
|
.onConflictDoUpdate({
|
|
137
|
-
target: sessions.id,
|
|
140
|
+
target: [sessions.id, sessions.tenantId],
|
|
138
141
|
set: {
|
|
139
142
|
agentName: agentName ?? sql `coalesce(${sessions.agentName}, NULL)`,
|
|
140
143
|
status: 'active',
|
|
@@ -157,8 +160,9 @@ export class SqliteEventStore {
|
|
|
157
160
|
errorCount: 0,
|
|
158
161
|
totalCostUsd: 0,
|
|
159
162
|
tags: '[]',
|
|
163
|
+
tenantId,
|
|
160
164
|
})
|
|
161
|
-
.onConflictDoNothing({ target: sessions.id })
|
|
165
|
+
.onConflictDoNothing({ target: [sessions.id, sessions.tenantId] })
|
|
162
166
|
.run();
|
|
163
167
|
// Build incremental updates
|
|
164
168
|
const isToolCall = event.eventType === 'tool_call';
|
|
@@ -186,7 +190,7 @@ export class SqliteEventStore {
|
|
|
186
190
|
? sql `${sessions.errorCount} + 1`
|
|
187
191
|
: sessions.errorCount,
|
|
188
192
|
})
|
|
189
|
-
.where(eq(sessions.id, event.sessionId))
|
|
193
|
+
.where(and(eq(sessions.id, event.sessionId), eq(sessions.tenantId, tenantId)))
|
|
190
194
|
.run();
|
|
191
195
|
return;
|
|
192
196
|
}
|
|
@@ -215,11 +219,12 @@ export class SqliteEventStore {
|
|
|
215
219
|
? sql `${sessions.totalOutputTokens} + ${llmOutputTokens}`
|
|
216
220
|
: sessions.totalOutputTokens,
|
|
217
221
|
})
|
|
218
|
-
.where(eq(sessions.id, event.sessionId))
|
|
222
|
+
.where(and(eq(sessions.id, event.sessionId), eq(sessions.tenantId, tenantId)))
|
|
219
223
|
.run();
|
|
220
224
|
}
|
|
221
|
-
_handleAgentUpsert(tx, event) {
|
|
225
|
+
_handleAgentUpsert(tx, event, tenantId) {
|
|
222
226
|
// CRITICAL 4: Use INSERT ... ON CONFLICT DO UPDATE for agents
|
|
227
|
+
// Agents are scoped per tenant — use composite key (id + tenant_id)
|
|
223
228
|
const payload = event.payload;
|
|
224
229
|
const agentName = payload.agentName ?? event.agentId;
|
|
225
230
|
tx.insert(agents)
|
|
@@ -229,9 +234,10 @@ export class SqliteEventStore {
|
|
|
229
234
|
firstSeenAt: event.timestamp,
|
|
230
235
|
lastSeenAt: event.timestamp,
|
|
231
236
|
sessionCount: event.eventType === 'session_started' ? 1 : 0,
|
|
237
|
+
tenantId,
|
|
232
238
|
})
|
|
233
239
|
.onConflictDoUpdate({
|
|
234
|
-
target: agents.id,
|
|
240
|
+
target: [agents.id, agents.tenantId],
|
|
235
241
|
set: {
|
|
236
242
|
lastSeenAt: event.timestamp,
|
|
237
243
|
sessionCount: event.eventType === 'session_started'
|
|
@@ -243,10 +249,11 @@ export class SqliteEventStore {
|
|
|
243
249
|
}
|
|
244
250
|
// ─── Sessions — Write ──────────────────────────────────────
|
|
245
251
|
async upsertSession(session) {
|
|
252
|
+
const tenantId = session.tenantId ?? 'default';
|
|
246
253
|
const existing = this.db
|
|
247
254
|
.select()
|
|
248
255
|
.from(sessions)
|
|
249
|
-
.where(eq(sessions.id, session.id))
|
|
256
|
+
.where(and(eq(sessions.id, session.id), eq(sessions.tenantId, tenantId)))
|
|
250
257
|
.get();
|
|
251
258
|
if (existing) {
|
|
252
259
|
const updates = {};
|
|
@@ -280,7 +287,7 @@ export class SqliteEventStore {
|
|
|
280
287
|
this.db
|
|
281
288
|
.update(sessions)
|
|
282
289
|
.set(updates)
|
|
283
|
-
.where(eq(sessions.id, session.id))
|
|
290
|
+
.where(and(eq(sessions.id, session.id), eq(sessions.tenantId, tenantId)))
|
|
284
291
|
.run();
|
|
285
292
|
}
|
|
286
293
|
}
|
|
@@ -302,16 +309,18 @@ export class SqliteEventStore {
|
|
|
302
309
|
totalInputTokens: session.totalInputTokens ?? 0,
|
|
303
310
|
totalOutputTokens: session.totalOutputTokens ?? 0,
|
|
304
311
|
tags: JSON.stringify(session.tags ?? []),
|
|
312
|
+
tenantId,
|
|
305
313
|
})
|
|
306
314
|
.run();
|
|
307
315
|
}
|
|
308
316
|
}
|
|
309
317
|
// ─── Agents — Write ────────────────────────────────────────
|
|
310
318
|
async upsertAgent(agent) {
|
|
319
|
+
const tenantId = agent.tenantId ?? 'default';
|
|
311
320
|
const existing = this.db
|
|
312
321
|
.select()
|
|
313
322
|
.from(agents)
|
|
314
|
-
.where(eq(agents.id, agent.id))
|
|
323
|
+
.where(and(eq(agents.id, agent.id), eq(agents.tenantId, tenantId)))
|
|
315
324
|
.get();
|
|
316
325
|
if (existing) {
|
|
317
326
|
const updates = {};
|
|
@@ -327,7 +336,7 @@ export class SqliteEventStore {
|
|
|
327
336
|
this.db
|
|
328
337
|
.update(agents)
|
|
329
338
|
.set(updates)
|
|
330
|
-
.where(eq(agents.id, agent.id))
|
|
339
|
+
.where(and(eq(agents.id, agent.id), eq(agents.tenantId, tenantId)))
|
|
331
340
|
.run();
|
|
332
341
|
}
|
|
333
342
|
}
|
|
@@ -342,6 +351,7 @@ export class SqliteEventStore {
|
|
|
342
351
|
firstSeenAt: agent.firstSeenAt ?? now,
|
|
343
352
|
lastSeenAt: agent.lastSeenAt ?? now,
|
|
344
353
|
sessionCount: agent.sessionCount ?? 0,
|
|
354
|
+
tenantId,
|
|
345
355
|
})
|
|
346
356
|
.run();
|
|
347
357
|
}
|
|
@@ -367,28 +377,37 @@ export class SqliteEventStore {
|
|
|
367
377
|
hasMore: offset + rows.length < total,
|
|
368
378
|
};
|
|
369
379
|
}
|
|
370
|
-
async getEvent(id) {
|
|
380
|
+
async getEvent(id, tenantId) {
|
|
381
|
+
const conditions = [eq(events.id, id)];
|
|
382
|
+
if (tenantId)
|
|
383
|
+
conditions.push(eq(events.tenantId, tenantId));
|
|
371
384
|
const row = this.db
|
|
372
385
|
.select()
|
|
373
386
|
.from(events)
|
|
374
|
-
.where(
|
|
387
|
+
.where(and(...conditions))
|
|
375
388
|
.get();
|
|
376
389
|
return row ? this._mapEventRow(row) : null;
|
|
377
390
|
}
|
|
378
|
-
async getSessionTimeline(sessionId) {
|
|
391
|
+
async getSessionTimeline(sessionId, tenantId) {
|
|
392
|
+
const conditions = [eq(events.sessionId, sessionId)];
|
|
393
|
+
if (tenantId)
|
|
394
|
+
conditions.push(eq(events.tenantId, tenantId));
|
|
379
395
|
const rows = this.db
|
|
380
396
|
.select()
|
|
381
397
|
.from(events)
|
|
382
|
-
.where(
|
|
398
|
+
.where(and(...conditions))
|
|
383
399
|
.orderBy(asc(events.timestamp))
|
|
384
400
|
.all();
|
|
385
401
|
return rows.map(this._mapEventRow);
|
|
386
402
|
}
|
|
387
|
-
async getLastEventHash(sessionId) {
|
|
403
|
+
async getLastEventHash(sessionId, tenantId) {
|
|
404
|
+
const conditions = [eq(events.sessionId, sessionId)];
|
|
405
|
+
if (tenantId)
|
|
406
|
+
conditions.push(eq(events.tenantId, tenantId));
|
|
388
407
|
const row = this.db
|
|
389
408
|
.select({ hash: events.hash })
|
|
390
409
|
.from(events)
|
|
391
|
-
.where(
|
|
410
|
+
.where(and(...conditions))
|
|
392
411
|
.orderBy(desc(events.timestamp), desc(events.id))
|
|
393
412
|
.limit(1)
|
|
394
413
|
.get();
|
|
@@ -426,28 +445,36 @@ export class SqliteEventStore {
|
|
|
426
445
|
total: totalResult?.count ?? 0,
|
|
427
446
|
};
|
|
428
447
|
}
|
|
429
|
-
async getSession(id) {
|
|
448
|
+
async getSession(id, tenantId) {
|
|
449
|
+
const conditions = [eq(sessions.id, id)];
|
|
450
|
+
if (tenantId)
|
|
451
|
+
conditions.push(eq(sessions.tenantId, tenantId));
|
|
430
452
|
const row = this.db
|
|
431
453
|
.select()
|
|
432
454
|
.from(sessions)
|
|
433
|
-
.where(
|
|
455
|
+
.where(and(...conditions))
|
|
434
456
|
.get();
|
|
435
457
|
return row ? this._mapSessionRow(row) : null;
|
|
436
458
|
}
|
|
437
459
|
// ─── Agents — Read ─────────────────────────────────────────
|
|
438
|
-
async listAgents() {
|
|
460
|
+
async listAgents(tenantId) {
|
|
461
|
+
const conditions = tenantId ? [eq(agents.tenantId, tenantId)] : [];
|
|
439
462
|
const rows = this.db
|
|
440
463
|
.select()
|
|
441
464
|
.from(agents)
|
|
465
|
+
.where(conditions.length > 0 ? and(...conditions) : undefined)
|
|
442
466
|
.orderBy(desc(agents.lastSeenAt))
|
|
443
467
|
.all();
|
|
444
468
|
return rows.map(this._mapAgentRow);
|
|
445
469
|
}
|
|
446
|
-
async getAgent(id) {
|
|
470
|
+
async getAgent(id, tenantId) {
|
|
471
|
+
const conditions = [eq(agents.id, id)];
|
|
472
|
+
if (tenantId)
|
|
473
|
+
conditions.push(eq(agents.tenantId, tenantId));
|
|
447
474
|
const row = this.db
|
|
448
475
|
.select()
|
|
449
476
|
.from(agents)
|
|
450
|
-
.where(
|
|
477
|
+
.where(and(...conditions))
|
|
451
478
|
.get();
|
|
452
479
|
return row ? this._mapAgentRow(row) : null;
|
|
453
480
|
}
|
|
@@ -482,6 +509,7 @@ export class SqliteEventStore {
|
|
|
482
509
|
WHERE timestamp >= ${params.from}
|
|
483
510
|
AND timestamp <= ${params.to}
|
|
484
511
|
${params.agentId ? sql `AND agent_id = ${params.agentId}` : sql ``}
|
|
512
|
+
${params.tenantId ? sql `AND tenant_id = ${params.tenantId}` : sql ``}
|
|
485
513
|
GROUP BY bucket
|
|
486
514
|
ORDER BY bucket ASC
|
|
487
515
|
`);
|
|
@@ -499,6 +527,7 @@ export class SqliteEventStore {
|
|
|
499
527
|
WHERE timestamp >= ${params.from}
|
|
500
528
|
AND timestamp <= ${params.to}
|
|
501
529
|
${params.agentId ? sql `AND agent_id = ${params.agentId}` : sql ``}
|
|
530
|
+
${params.tenantId ? sql `AND tenant_id = ${params.tenantId}` : sql ``}
|
|
502
531
|
`);
|
|
503
532
|
return {
|
|
504
533
|
buckets: bucketRows.map((row) => ({
|
|
@@ -536,11 +565,12 @@ export class SqliteEventStore {
|
|
|
536
565
|
notifyChannels: JSON.stringify(rule.notifyChannels),
|
|
537
566
|
createdAt: rule.createdAt,
|
|
538
567
|
updatedAt: rule.updatedAt,
|
|
568
|
+
tenantId: rule.tenantId ?? 'default',
|
|
539
569
|
})
|
|
540
570
|
.run();
|
|
541
571
|
}
|
|
542
572
|
// HIGH 8: Check affected row count and throw NotFoundError when zero
|
|
543
|
-
async updateAlertRule(id, updates) {
|
|
573
|
+
async updateAlertRule(id, updates, tenantId) {
|
|
544
574
|
const setValues = {};
|
|
545
575
|
if (updates.name !== undefined)
|
|
546
576
|
setValues.name = updates.name;
|
|
@@ -558,12 +588,15 @@ export class SqliteEventStore {
|
|
|
558
588
|
setValues.notifyChannels = JSON.stringify(updates.notifyChannels);
|
|
559
589
|
if (updates.updatedAt !== undefined)
|
|
560
590
|
setValues.updatedAt = updates.updatedAt;
|
|
591
|
+
const whereConditions = [eq(alertRules.id, id)];
|
|
592
|
+
if (tenantId)
|
|
593
|
+
whereConditions.push(eq(alertRules.tenantId, tenantId));
|
|
561
594
|
if (Object.keys(setValues).length === 0) {
|
|
562
595
|
// Even with no actual updates, verify the rule exists
|
|
563
596
|
const existing = this.db
|
|
564
597
|
.select({ id: alertRules.id })
|
|
565
598
|
.from(alertRules)
|
|
566
|
-
.where(
|
|
599
|
+
.where(and(...whereConditions))
|
|
567
600
|
.get();
|
|
568
601
|
if (!existing) {
|
|
569
602
|
throw new NotFoundError(`Alert rule not found: ${id}`);
|
|
@@ -573,27 +606,38 @@ export class SqliteEventStore {
|
|
|
573
606
|
const result = this.db
|
|
574
607
|
.update(alertRules)
|
|
575
608
|
.set(setValues)
|
|
576
|
-
.where(
|
|
609
|
+
.where(and(...whereConditions))
|
|
577
610
|
.run();
|
|
578
611
|
if (result.changes === 0) {
|
|
579
612
|
throw new NotFoundError(`Alert rule not found: ${id}`);
|
|
580
613
|
}
|
|
581
614
|
}
|
|
582
|
-
async deleteAlertRule(id) {
|
|
583
|
-
const
|
|
615
|
+
async deleteAlertRule(id, tenantId) {
|
|
616
|
+
const whereConditions = [eq(alertRules.id, id)];
|
|
617
|
+
if (tenantId)
|
|
618
|
+
whereConditions.push(eq(alertRules.tenantId, tenantId));
|
|
619
|
+
const result = this.db.delete(alertRules).where(and(...whereConditions)).run();
|
|
584
620
|
if (result.changes === 0) {
|
|
585
621
|
throw new NotFoundError(`Alert rule not found: ${id}`);
|
|
586
622
|
}
|
|
587
623
|
}
|
|
588
|
-
async listAlertRules() {
|
|
589
|
-
const
|
|
624
|
+
async listAlertRules(tenantId) {
|
|
625
|
+
const conditions = tenantId ? [eq(alertRules.tenantId, tenantId)] : [];
|
|
626
|
+
const rows = this.db
|
|
627
|
+
.select()
|
|
628
|
+
.from(alertRules)
|
|
629
|
+
.where(conditions.length > 0 ? and(...conditions) : undefined)
|
|
630
|
+
.all();
|
|
590
631
|
return rows.map(this._mapAlertRuleRow);
|
|
591
632
|
}
|
|
592
|
-
async getAlertRule(id) {
|
|
633
|
+
async getAlertRule(id, tenantId) {
|
|
634
|
+
const conditions = [eq(alertRules.id, id)];
|
|
635
|
+
if (tenantId)
|
|
636
|
+
conditions.push(eq(alertRules.tenantId, tenantId));
|
|
593
637
|
const row = this.db
|
|
594
638
|
.select()
|
|
595
639
|
.from(alertRules)
|
|
596
|
-
.where(
|
|
640
|
+
.where(and(...conditions))
|
|
597
641
|
.get();
|
|
598
642
|
return row ? this._mapAlertRuleRow(row) : null;
|
|
599
643
|
}
|
|
@@ -609,6 +653,7 @@ export class SqliteEventStore {
|
|
|
609
653
|
currentValue: entry.currentValue,
|
|
610
654
|
threshold: entry.threshold,
|
|
611
655
|
message: entry.message,
|
|
656
|
+
tenantId: entry.tenantId ?? 'default',
|
|
612
657
|
})
|
|
613
658
|
.run();
|
|
614
659
|
}
|
|
@@ -619,6 +664,9 @@ export class SqliteEventStore {
|
|
|
619
664
|
if (opts?.ruleId) {
|
|
620
665
|
conditions.push(eq(alertHistory.ruleId, opts.ruleId));
|
|
621
666
|
}
|
|
667
|
+
if (opts?.tenantId) {
|
|
668
|
+
conditions.push(eq(alertHistory.tenantId, opts.tenantId));
|
|
669
|
+
}
|
|
622
670
|
const rows = this.db
|
|
623
671
|
.select()
|
|
624
672
|
.from(alertHistory)
|
|
@@ -641,54 +689,82 @@ export class SqliteEventStore {
|
|
|
641
689
|
currentValue: row.currentValue,
|
|
642
690
|
threshold: row.threshold,
|
|
643
691
|
message: row.message,
|
|
692
|
+
tenantId: row.tenantId,
|
|
644
693
|
})),
|
|
645
694
|
total: totalResult?.count ?? 0,
|
|
646
695
|
};
|
|
647
696
|
}
|
|
648
697
|
// ─── Maintenance ───────────────────────────────────────────
|
|
649
|
-
async applyRetention(olderThan) {
|
|
698
|
+
async applyRetention(olderThan, tenantId) {
|
|
699
|
+
// Build conditions — always filter by timestamp, optionally by tenant
|
|
700
|
+
const countConditions = [lte(events.timestamp, olderThan)];
|
|
701
|
+
if (tenantId)
|
|
702
|
+
countConditions.push(eq(events.tenantId, tenantId));
|
|
650
703
|
// Count events to be deleted
|
|
651
704
|
const countResult = this.db
|
|
652
705
|
.select({ count: drizzleCount() })
|
|
653
706
|
.from(events)
|
|
654
|
-
.where(
|
|
707
|
+
.where(and(...countConditions))
|
|
655
708
|
.get();
|
|
656
709
|
const deletedCount = countResult?.count ?? 0;
|
|
657
710
|
if (deletedCount === 0)
|
|
658
711
|
return { deletedCount: 0 };
|
|
659
712
|
this.db.transaction((tx) => {
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
713
|
+
if (tenantId) {
|
|
714
|
+
// Tenant-scoped retention: only delete this tenant's old events
|
|
715
|
+
tx.delete(events)
|
|
716
|
+
.where(and(lte(events.timestamp, olderThan), eq(events.tenantId, tenantId)))
|
|
717
|
+
.run();
|
|
718
|
+
// Clean up this tenant's sessions that have no remaining events
|
|
719
|
+
tx.run(sql `
|
|
720
|
+
DELETE FROM sessions
|
|
721
|
+
WHERE tenant_id = ${tenantId}
|
|
722
|
+
AND id NOT IN (
|
|
723
|
+
SELECT DISTINCT session_id FROM events WHERE tenant_id = ${tenantId}
|
|
724
|
+
)
|
|
725
|
+
`);
|
|
726
|
+
}
|
|
727
|
+
else {
|
|
728
|
+
// Global retention (system-level, not exposed through TenantScopedStore)
|
|
729
|
+
tx.delete(events).where(lte(events.timestamp, olderThan)).run();
|
|
730
|
+
tx.run(sql `
|
|
731
|
+
DELETE FROM sessions
|
|
732
|
+
WHERE id NOT IN (SELECT DISTINCT session_id FROM events)
|
|
733
|
+
`);
|
|
734
|
+
}
|
|
667
735
|
});
|
|
668
736
|
return { deletedCount };
|
|
669
737
|
}
|
|
670
|
-
async getStats() {
|
|
738
|
+
async getStats(tenantId) {
|
|
739
|
+
const eventConditions = tenantId ? [eq(events.tenantId, tenantId)] : [];
|
|
740
|
+
const sessionConditions = tenantId ? [eq(sessions.tenantId, tenantId)] : [];
|
|
741
|
+
const agentConditions = tenantId ? [eq(agents.tenantId, tenantId)] : [];
|
|
671
742
|
const eventCount = this.db
|
|
672
743
|
.select({ count: drizzleCount() })
|
|
673
744
|
.from(events)
|
|
745
|
+
.where(eventConditions.length > 0 ? and(...eventConditions) : undefined)
|
|
674
746
|
.get()?.count ?? 0;
|
|
675
747
|
const sessionCount = this.db
|
|
676
748
|
.select({ count: drizzleCount() })
|
|
677
749
|
.from(sessions)
|
|
750
|
+
.where(sessionConditions.length > 0 ? and(...sessionConditions) : undefined)
|
|
678
751
|
.get()?.count ?? 0;
|
|
679
752
|
const agentCount = this.db
|
|
680
753
|
.select({ count: drizzleCount() })
|
|
681
754
|
.from(agents)
|
|
755
|
+
.where(agentConditions.length > 0 ? and(...agentConditions) : undefined)
|
|
682
756
|
.get()?.count ?? 0;
|
|
683
757
|
const oldest = this.db
|
|
684
758
|
.select({ timestamp: events.timestamp })
|
|
685
759
|
.from(events)
|
|
760
|
+
.where(eventConditions.length > 0 ? and(...eventConditions) : undefined)
|
|
686
761
|
.orderBy(asc(events.timestamp))
|
|
687
762
|
.limit(1)
|
|
688
763
|
.get();
|
|
689
764
|
const newest = this.db
|
|
690
765
|
.select({ timestamp: events.timestamp })
|
|
691
766
|
.from(events)
|
|
767
|
+
.where(eventConditions.length > 0 ? and(...eventConditions) : undefined)
|
|
692
768
|
.orderBy(desc(events.timestamp))
|
|
693
769
|
.limit(1)
|
|
694
770
|
.get();
|
|
@@ -709,6 +785,9 @@ export class SqliteEventStore {
|
|
|
709
785
|
// ─── Private Helpers ───────────────────────────────────────
|
|
710
786
|
_buildEventConditions(query) {
|
|
711
787
|
const conditions = [];
|
|
788
|
+
if (query.tenantId) {
|
|
789
|
+
conditions.push(eq(events.tenantId, query.tenantId));
|
|
790
|
+
}
|
|
712
791
|
if (query.sessionId) {
|
|
713
792
|
conditions.push(eq(events.sessionId, query.sessionId));
|
|
714
793
|
}
|
|
@@ -750,6 +829,9 @@ export class SqliteEventStore {
|
|
|
750
829
|
// HIGH 4: Use json_each() for exact tag matching with OR semantics
|
|
751
830
|
_buildSessionConditions(query) {
|
|
752
831
|
const conditions = [];
|
|
832
|
+
if (query.tenantId) {
|
|
833
|
+
conditions.push(eq(sessions.tenantId, query.tenantId));
|
|
834
|
+
}
|
|
753
835
|
if (query.agentId) {
|
|
754
836
|
conditions.push(eq(sessions.agentId, query.agentId));
|
|
755
837
|
}
|
|
@@ -796,6 +878,7 @@ export class SqliteEventStore {
|
|
|
796
878
|
metadata: safeJsonParse(row.metadata, {}),
|
|
797
879
|
prevHash: row.prevHash,
|
|
798
880
|
hash: row.hash,
|
|
881
|
+
tenantId: row.tenantId,
|
|
799
882
|
};
|
|
800
883
|
}
|
|
801
884
|
_mapSessionRow(row) {
|
|
@@ -814,6 +897,7 @@ export class SqliteEventStore {
|
|
|
814
897
|
totalInputTokens: row.totalInputTokens,
|
|
815
898
|
totalOutputTokens: row.totalOutputTokens,
|
|
816
899
|
tags: safeJsonParse(row.tags, []),
|
|
900
|
+
tenantId: row.tenantId,
|
|
817
901
|
};
|
|
818
902
|
}
|
|
819
903
|
_mapAgentRow(row) {
|
|
@@ -824,6 +908,7 @@ export class SqliteEventStore {
|
|
|
824
908
|
firstSeenAt: row.firstSeenAt,
|
|
825
909
|
lastSeenAt: row.lastSeenAt,
|
|
826
910
|
sessionCount: row.sessionCount,
|
|
911
|
+
tenantId: row.tenantId,
|
|
827
912
|
};
|
|
828
913
|
}
|
|
829
914
|
_mapAlertRuleRow(row) {
|
|
@@ -838,6 +923,7 @@ export class SqliteEventStore {
|
|
|
838
923
|
notifyChannels: safeJsonParse(row.notifyChannels, []),
|
|
839
924
|
createdAt: row.createdAt,
|
|
840
925
|
updatedAt: row.updatedAt,
|
|
926
|
+
tenantId: row.tenantId,
|
|
841
927
|
};
|
|
842
928
|
}
|
|
843
929
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite-store.js","sourceRoot":"","sources":["../../src/db/sqlite-store.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sqlite-store.js","sourceRoot":"","sources":["../../src/db/sqlite-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,IAAI,YAAY,EAAE,MAAM,aAAa,CAAC;AAChG,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAarD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACxF,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5D,8DAA8D;AAE9D;;GAEG;AACH,MAAM,UAAU,aAAa,CAAI,GAAW,EAAE,QAAW;IACvD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAM,CAAC;IAC9B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,QAAQ,CAAC;IAClB,CAAC;AACH,CAAC;AAED,MAAM,OAAO,gBAAgB;IACP;IAApB,YAAoB,EAAY;QAAZ,OAAE,GAAF,EAAE,CAAU;IAAG,CAAC;IAEpC,8DAA8D;IAE9D,KAAK,CAAC,YAAY,CAAC,SAA2B;QAC5C,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAEnC,qEAAqE;QACrE,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE;YACzB,mDAAmD;YACnD,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,CAAE,CAAC;YACjC,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,IAAI,SAAS,CAAC;YAElD,iEAAiE;YACjE,MAAM,aAAa,GAAG,EAAE;iBACrB,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;iBACzB,IAAI,CAAC,MAAM,CAAC;iBACZ,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC;iBACnC,GAAG,EAAE,CAAC;YAET,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,iEAAiE;gBACjE,MAAM,eAAe,GAAG,EAAE;qBACvB,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;qBAC7B,IAAI,CAAC,MAAM,CAAC;qBACZ,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;qBACrF,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;qBAChD,KAAK,CAAC,CAAC,CAAC;qBACR,GAAG,EAAE,CAAC;gBAET,MAAM,cAAc,GAAG,eAAe,EAAE,IAAI,IAAI,IAAI,CAAC;gBAErD,0EAA0E;gBAC1E,IAAI,UAAU,CAAC,QAAQ,KAAK,cAAc,EAAE,CAAC;oBAC3C,MAAM,IAAI,cAAc,CACtB,kCAAkC,UAAU,CAAC,EAAE,iBAAiB,UAAU,CAAC,QAAQ,4BAA4B,cAAc,EAAE,CAChI,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,yDAAyD;YACzD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC1C,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAE,CAAC;gBAE5B,mEAAmE;gBACnE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;oBACV,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC;oBACpC,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;wBACtC,MAAM,IAAI,cAAc,CACtB,+CAA+C,KAAK,CAAC,EAAE,iBAAiB,KAAK,CAAC,QAAQ,+BAA+B,SAAS,CAAC,IAAI,EAAE,CACtI,CAAC;oBACJ,CAAC;gBACH,CAAC;gBAED,wCAAwC;gBACxC,MAAM,cAAc,GAAG,gBAAgB,CAAC;oBACtC,EAAE,EAAE,KAAK,CAAC,EAAE;oBACZ,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;iBACzB,CAAC,CAAC;gBAEH,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;oBAClC,MAAM,IAAI,cAAc,CACtB,2BAA2B,KAAK,CAAC,EAAE,cAAc,KAAK,CAAC,IAAI,cAAc,cAAc,EAAE,CAC1F,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;gBAC9B,kEAAkE;gBAClE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;qBACd,MAAM,CAAC;oBACN,EAAE,EAAE,KAAK,CAAC,EAAE;oBACZ,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC;oBACtC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC;oBACxC,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,QAAQ;iBACT,CAAC;qBACD,mBAAmB,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;qBAC1C,GAAG,EAAE,CAAC;gBAET,4BAA4B;gBAC5B,IAAI,CAAC,oBAAoB,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;gBAE/C,6BAA6B;gBAC7B,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,oBAAoB,CAC1B,EAAyD,EACzD,KAAqB,EACrB,QAAgB;QAEhB,IAAI,KAAK,CAAC,SAAS,KAAK,iBAAiB,EAAE,CAAC;YAC1C,qBAAqB;YACrB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAkC,CAAC;YACzD,MAAM,IAAI,GAAI,OAAO,CAAC,IAAiB,IAAI,EAAE,CAAC;YAC9C,MAAM,SAAS,GAAI,OAAO,CAAC,SAAoB,IAAI,SAAS,CAAC;YAE7D,gEAAgE;YAChE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;iBAChB,MAAM,CAAC;gBACN,EAAE,EAAE,KAAK,CAAC,SAAS;gBACnB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,SAAS,EAAE,SAAS;gBACpB,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,MAAM,EAAE,QAAQ;gBAChB,UAAU,EAAE,CAAC;gBACb,aAAa,EAAE,CAAC;gBAChB,UAAU,EAAE,CAAC;gBACb,YAAY,EAAE,CAAC;gBACf,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;gBAC1B,QAAQ;aACT,CAAC;iBACD,kBAAkB,CAAC;gBAClB,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC;gBACxC,GAAG,EAAE;oBACH,SAAS,EAAE,SAAS,IAAI,GAAG,CAAA,YAAY,QAAQ,CAAC,SAAS,SAAS;oBAClE,MAAM,EAAE,QAAQ;oBAChB,UAAU,EAAE,GAAG,CAAA,GAAG,QAAQ,CAAC,UAAU,MAAM;oBAC3C,IAAI,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA,GAAG,QAAQ,CAAC,IAAI,EAAE;iBACrE;aACF,CAAC;iBACD,GAAG,EAAE,CAAC;YACT,OAAO;QACT,CAAC;QAED,yEAAyE;QACzE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;aAChB,MAAM,CAAC;YACN,EAAE,EAAE,KAAK,CAAC,SAAS;YACnB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,MAAM,EAAE,QAAQ;YAChB,UAAU,EAAE,CAAC;YACb,aAAa,EAAE,CAAC;YAChB,UAAU,EAAE,CAAC;YACb,YAAY,EAAE,CAAC;YACf,IAAI,EAAE,IAAI;YACV,QAAQ;SACT,CAAC;aACD,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;aACjE,GAAG,EAAE,CAAC;QAET,4BAA4B;QAC5B,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,KAAK,WAAW,CAAC;QACnD,MAAM,OAAO,GACX,KAAK,CAAC,QAAQ,KAAK,OAAO;YAC1B,KAAK,CAAC,QAAQ,KAAK,UAAU;YAC7B,KAAK,CAAC,SAAS,KAAK,YAAY,CAAC;QACnC,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,KAAK,cAAc,CAAC;QAClD,MAAM,aAAa,GAAG,KAAK,CAAC,SAAS,KAAK,cAAc,CAAC;QACzD,MAAM,WAAW,GAAG,KAAK,CAAC,OAAkC,CAAC;QAC7D,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChE,MAAM,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,MAAM,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAE,WAAW,CAAC,KAA6C,CAAC,CAAC,CAAC,SAAS,CAAC;QACxG,MAAM,cAAc,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,MAAM,eAAe,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAE5E,IAAI,KAAK,CAAC,SAAS,KAAK,eAAe,EAAE,CAAC;YACxC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAkC,CAAC;YACzD,MAAM,MAAM,GAAG,OAAO,CAAC,MAA4B,CAAC;YACpD,MAAM,MAAM,GAAG,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC;YAE1D,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;iBAChB,GAAG,CAAC;gBACH,OAAO,EAAE,KAAK,CAAC,SAAS;gBACxB,MAAM,EAAE,MAA0C;gBAClD,UAAU,EAAE,GAAG,CAAA,GAAG,QAAQ,CAAC,UAAU,MAAM;gBAC3C,UAAU,EAAE,OAAO;oBACjB,CAAC,CAAC,GAAG,CAAA,GAAG,QAAQ,CAAC,UAAU,MAAM;oBACjC,CAAC,CAAC,QAAQ,CAAC,UAAU;aACxB,CAAC;iBACD,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;iBAC7E,GAAG,EAAE,CAAC;YACT,OAAO;QACT,CAAC;QAED,qCAAqC;QACrC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;aAChB,GAAG,CAAC;YACH,UAAU,EAAE,GAAG,CAAA,GAAG,QAAQ,CAAC,UAAU,MAAM;YAC3C,aAAa,EAAE,UAAU;gBACvB,CAAC,CAAC,GAAG,CAAA,GAAG,QAAQ,CAAC,aAAa,MAAM;gBACpC,CAAC,CAAC,QAAQ,CAAC,aAAa;YAC1B,UAAU,EAAE,OAAO;gBACjB,CAAC,CAAC,GAAG,CAAA,GAAG,QAAQ,CAAC,UAAU,MAAM;gBACjC,CAAC,CAAC,QAAQ,CAAC,UAAU;YACvB,YAAY,EAAE,MAAM;gBAClB,CAAC,CAAC,GAAG,CAAA,GAAG,QAAQ,CAAC,YAAY,MAAM,OAAO,EAAE;gBAC5C,CAAC,CAAC,aAAa;oBACb,CAAC,CAAC,GAAG,CAAA,GAAG,QAAQ,CAAC,YAAY,MAAM,UAAU,EAAE;oBAC/C,CAAC,CAAC,QAAQ,CAAC,YAAY;YAC3B,YAAY,EAAE,aAAa;gBACzB,CAAC,CAAC,GAAG,CAAA,GAAG,QAAQ,CAAC,YAAY,MAAM;gBACnC,CAAC,CAAC,QAAQ,CAAC,YAAY;YACzB,gBAAgB,EAAE,aAAa;gBAC7B,CAAC,CAAC,GAAG,CAAA,GAAG,QAAQ,CAAC,gBAAgB,MAAM,cAAc,EAAE;gBACvD,CAAC,CAAC,QAAQ,CAAC,gBAAgB;YAC7B,iBAAiB,EAAE,aAAa;gBAC9B,CAAC,CAAC,GAAG,CAAA,GAAG,QAAQ,CAAC,iBAAiB,MAAM,eAAe,EAAE;gBACzD,CAAC,CAAC,QAAQ,CAAC,iBAAiB;SAC/B,CAAC;aACD,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;aAC7E,GAAG,EAAE,CAAC;IACX,CAAC;IAEO,kBAAkB,CACxB,EAAyD,EACzD,KAAqB,EACrB,QAAgB;QAEhB,8DAA8D;QAC9D,oEAAoE;QACpE,MAAM,OAAO,GAAG,KAAK,CAAC,OAAkC,CAAC;QACzD,MAAM,SAAS,GACZ,OAAO,CAAC,SAAoB,IAAI,KAAK,CAAC,OAAO,CAAC;QAEjD,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;aACd,MAAM,CAAC;YACN,EAAE,EAAE,KAAK,CAAC,OAAO;YACjB,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,KAAK,CAAC,SAAS;YAC5B,UAAU,EAAE,KAAK,CAAC,SAAS;YAC3B,YAAY,EAAE,KAAK,CAAC,SAAS,KAAK,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3D,QAAQ;SACT,CAAC;aACD,kBAAkB,CAAC;YAClB,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC;YACpC,GAAG,EAAE;gBACH,UAAU,EAAE,KAAK,CAAC,SAAS;gBAC3B,YAAY,EACV,KAAK,CAAC,SAAS,KAAK,iBAAiB;oBACnC,CAAC,CAAC,GAAG,CAAA,GAAG,MAAM,CAAC,YAAY,MAAM;oBACjC,CAAC,CAAC,MAAM,CAAC,YAAY;aAC1B;SACF,CAAC;aACD,GAAG,EAAE,CAAC;IACX,CAAC;IAED,8DAA8D;IAE9D,KAAK,CAAC,aAAa,CACjB,OAA0C;QAE1C,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,SAAS,CAAC;QAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE;aACrB,MAAM,EAAE;aACR,IAAI,CAAC,QAAQ,CAAC;aACd,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;aACxE,GAAG,EAAE,CAAC;QAET,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,OAAO,GAA4B,EAAE,CAAC;YAC5C,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS;gBAAE,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;YACrE,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS;gBAAE,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;YAC3E,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS;gBAAE,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;YAC3E,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS;gBAAE,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;YACrE,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS;gBAAE,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YAClE,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS;gBAAE,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;YAC9E,IAAI,OAAO,CAAC,aAAa,KAAK,SAAS;gBAAE,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;YACvF,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS;gBAAE,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;YAC9E,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS;gBAAE,OAAO,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;YACpF,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS;gBAAE,OAAO,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;YACpF,IAAI,OAAO,CAAC,gBAAgB,KAAK,SAAS;gBAAE,OAAO,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;YAChG,IAAI,OAAO,CAAC,iBAAiB,KAAK,SAAS;gBAAE,OAAO,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;YACnG,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;gBAAE,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAE5E,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpC,IAAI,CAAC,EAAE;qBACJ,MAAM,CAAC,QAAQ,CAAC;qBAChB,GAAG,CAAC,OAAO,CAAC;qBACZ,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;qBACxE,GAAG,EAAE,CAAC;YACX,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,EAAE;iBACJ,MAAM,CAAC,QAAQ,CAAC;iBAChB,MAAM,CAAC;gBACN,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE;gBAC9B,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACxD,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,QAAQ;gBAClC,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,CAAC;gBACnC,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,CAAC;gBACzC,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,CAAC;gBACnC,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,CAAC;gBACvC,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,CAAC;gBACvC,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,IAAI,CAAC;gBAC/C,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,IAAI,CAAC;gBACjD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;gBACxC,QAAQ;aACT,CAAC;iBACD,GAAG,EAAE,CAAC;QACX,CAAC;IACH,CAAC;IAED,8DAA8D;IAE9D,KAAK,CAAC,WAAW,CACf,KAAsC;QAEtC,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,SAAS,CAAC;QAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE;aACrB,MAAM,EAAE;aACR,IAAI,CAAC,MAAM,CAAC;aACZ,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;aAClE,GAAG,EAAE,CAAC;QAET,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,OAAO,GAA4B,EAAE,CAAC;YAC5C,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;gBAAE,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;YACxD,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS;gBAAE,OAAO,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;YAC7E,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS;gBAAE,OAAO,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;YAC1E,IAAI,KAAK,CAAC,YAAY,KAAK,SAAS;gBAAE,OAAO,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;YAEhF,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpC,IAAI,CAAC,EAAE;qBACJ,MAAM,CAAC,MAAM,CAAC;qBACd,GAAG,CAAC,OAAO,CAAC;qBACZ,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;qBAClE,GAAG,EAAE,CAAC;YACX,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACrC,IAAI,CAAC,EAAE;iBACJ,MAAM,CAAC,MAAM,CAAC;iBACd,MAAM,CAAC;gBACN,EAAE,EAAE,KAAK,CAAC,EAAE;gBACZ,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,EAAE;gBAC5B,WAAW,EAAE,KAAK,CAAC,WAAW;gBAC9B,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,GAAG;gBACrC,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,GAAG;gBACnC,YAAY,EAAE,KAAK,CAAC,YAAY,IAAI,CAAC;gBACrC,QAAQ;aACT,CAAC;iBACD,GAAG,EAAE,CAAC;QACX,CAAC;IACH,CAAC;IAED,8DAA8D;IAE9D,KAAK,CAAC,WAAW,CAAC,KAAiB;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;QACjC,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;QAEpD,MAAM,UAAU,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAErD,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE;aACjB,MAAM,EAAE;aACR,IAAI,CAAC,MAAM,CAAC;aACZ,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;aAC7D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;aACnC,KAAK,CAAC,KAAK,CAAC;aACZ,MAAM,CAAC,MAAM,CAAC;aACd,GAAG,EAAE,CAAC;QAET,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAE5C,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC;YACnC,KAAK;YACL,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,KAAK;SACtC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,EAAU,EAAE,QAAiB;QAC1C,MAAM,UAAU,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QACvC,IAAI,QAAQ;YAAE,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;QAE7D,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;aAChB,MAAM,EAAE;aACR,IAAI,CAAC,MAAM,CAAC;aACZ,KAAK,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;aACzB,GAAG,EAAE,CAAC;QAET,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,SAAiB,EAAE,QAAiB;QAC3D,MAAM,UAAU,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;QACrD,IAAI,QAAQ;YAAE,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;QAE7D,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE;aACjB,MAAM,EAAE;aACR,IAAI,CAAC,MAAM,CAAC;aACZ,KAAK,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;aACzB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;aAC9B,GAAG,EAAE,CAAC;QAET,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,SAAiB,EAAE,QAAiB;QACzD,MAAM,UAAU,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;QACrD,IAAI,QAAQ;YAAE,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;QAE7D,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;aAChB,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;aAC7B,IAAI,CAAC,MAAM,CAAC;aACZ,KAAK,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;aACzB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;aAChD,KAAK,CAAC,CAAC,CAAC;aACR,GAAG,EAAE,CAAC;QAET,OAAO,GAAG,EAAE,IAAI,IAAI,IAAI,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,WAAW,CACf,KAA2C;QAE3C,MAAM,UAAU,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAErD,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE;aACnB,MAAM,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,CAAC;aACjC,IAAI,CAAC,MAAM,CAAC;aACZ,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;aAC7D,GAAG,EAAE,CAAC;QAET,OAAO,MAAM,EAAE,KAAK,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,8DAA8D;IAE9D,KAAK,CAAC,aAAa,CACjB,KAAmB;QAEnB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;QAEjC,MAAM,UAAU,GAAG,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;QAEvD,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE;aACjB,MAAM,EAAE;aACR,IAAI,CAAC,QAAQ,CAAC;aACd,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;aAC7D,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;aACjC,KAAK,CAAC,KAAK,CAAC;aACZ,MAAM,CAAC,MAAM,CAAC;aACd,GAAG,EAAE,CAAC;QAET,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE;aACxB,MAAM,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,CAAC;aACjC,IAAI,CAAC,QAAQ,CAAC;aACd,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;aAC7D,GAAG,EAAE,CAAC;QAET,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC;YACvC,KAAK,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC;SAC/B,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,EAAU,EAAE,QAAiB;QAC5C,MAAM,UAAU,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QACzC,IAAI,QAAQ;YAAE,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;QAE/D,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;aAChB,MAAM,EAAE;aACR,IAAI,CAAC,QAAQ,CAAC;aACd,KAAK,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;aACzB,GAAG,EAAE,CAAC;QAET,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/C,CAAC;IAED,8DAA8D;IAE9D,KAAK,CAAC,UAAU,CAAC,QAAiB;QAChC,MAAM,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAEnE,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE;aACjB,MAAM,EAAE;aACR,IAAI,CAAC,MAAM,CAAC;aACZ,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;aAC7D,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;aAChC,GAAG,EAAE,CAAC;QAET,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,EAAU,EAAE,QAAiB;QAC1C,MAAM,UAAU,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QACvC,IAAI,QAAQ;YAAE,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;QAE7D,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;aAChB,MAAM,EAAE;aACR,IAAI,CAAC,MAAM,CAAC;aACZ,KAAK,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;aACzB,GAAG,EAAE,CAAC;QAET,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7C,CAAC;IAED,8DAA8D;IAE9D,KAAK,CAAC,YAAY,CAAC,MAMlB;QACC,kEAAkE;QAClE,MAAM,SAAS,GACb,MAAM,CAAC,WAAW,KAAK,MAAM;YAC3B,CAAC,CAAC,oBAAoB;YACtB,CAAC,CAAC,MAAM,CAAC,WAAW,KAAK,KAAK;gBAC5B,CAAC,CAAC,oBAAoB;gBACtB,CAAC,CAAC,OAAO,CAAC,CAAC,iCAAiC;QAElD,MAAM,UAAU,GAAG;YACjB,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC;YAClC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC;SACjC,CAAC;QACF,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QACtD,CAAC;QAED,kEAAkE;QAClE,iBAAiB;QACjB,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE;aACvB,GAAG,CASF,GAAG,CAAA;;uBAEY,SAAS;;;;;;;;+BAQD,MAAM,CAAC,IAAI;+BACX,MAAM,CAAC,EAAE;cAC1B,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAA,kBAAkB,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,GAAG,CAAA,EAAE;cAC9D,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAA,mBAAmB,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,CAAA,EAAE;;;SAGtE,CACF,CAAC;QAEJ,eAAe;QACf,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CAS3B,GAAG,CAAA;;;;;;;;;;6BAUoB,MAAM,CAAC,IAAI;6BACX,MAAM,CAAC,EAAE;YAC1B,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAA,kBAAkB,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,GAAG,CAAA,EAAE;YAC9D,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAA,mBAAmB,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,CAAA,EAAE;OACtE,CACF,CAAC;QAEF,OAAO;YACL,OAAO,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBAChC,SAAS,EAAE,GAAG,CAAC,MAAM;gBACrB,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC;gBAClC,aAAa,EAAE,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC;gBACxC,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC;gBAClC,YAAY,EAAE,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC;gBACtC,YAAY,EAAE,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC;gBACtC,cAAc,EAAE,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC;aAC3C,CAAC,CAAC;YACH,MAAM,EAAE;gBACN,UAAU,EAAE,MAAM,CAAC,SAAS,EAAE,UAAU,IAAI,CAAC,CAAC;gBAC9C,aAAa,EAAE,MAAM,CAAC,SAAS,EAAE,aAAa,IAAI,CAAC,CAAC;gBACpD,UAAU,EAAE,MAAM,CAAC,SAAS,EAAE,UAAU,IAAI,CAAC,CAAC;gBAC9C,YAAY,EAAE,MAAM,CAAC,SAAS,EAAE,YAAY,IAAI,CAAC,CAAC;gBAClD,YAAY,EAAE,MAAM,CAAC,SAAS,EAAE,YAAY,IAAI,CAAC,CAAC;gBAClD,cAAc,EAAE,MAAM,CAAC,SAAS,EAAE,cAAc,IAAI,CAAC,CAAC;gBACtD,YAAY,EAAE,MAAM,CAAC,SAAS,EAAE,YAAY,IAAI,CAAC,CAAC;aACnD;SACF,CAAC;IACJ,CAAC;IAED,8DAA8D;IAE9D,KAAK,CAAC,eAAe,CAAC,IAAe;QACnC,IAAI,CAAC,EAAE;aACJ,MAAM,CAAC,UAAU,CAAC;aAClB,MAAM,CAAC;YACN,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;YACjC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC;YACnD,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,SAAS;SACrC,CAAC;aACD,GAAG,EAAE,CAAC;IACX,CAAC;IAED,qEAAqE;IACrE,KAAK,CAAC,eAAe,CACnB,EAAU,EACV,OAA2B,EAC3B,QAAiB;QAEjB,MAAM,SAAS,GAA4B,EAAE,CAAC;QAC9C,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;YAAE,SAAS,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QAC9D,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS;YAAE,SAAS,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QACvE,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS;YAAE,SAAS,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QAC7E,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS;YAAE,SAAS,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QAC7E,IAAI,OAAO,CAAC,aAAa,KAAK,SAAS;YAAE,SAAS,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;QACzF,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS;YAAE,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACjF,IAAI,OAAO,CAAC,cAAc,KAAK,SAAS;YAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAC5G,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS;YAAE,SAAS,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QAE7E,MAAM,eAAe,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAChD,IAAI,QAAQ;YAAE,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;QAEtE,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxC,sDAAsD;YACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE;iBACrB,MAAM,CAAC,EAAE,EAAE,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC;iBAC7B,IAAI,CAAC,UAAU,CAAC;iBAChB,KAAK,CAAC,GAAG,CAAC,GAAG,eAAe,CAAC,CAAC;iBAC9B,GAAG,EAAE,CAAC;YACT,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,aAAa,CAAC,yBAAyB,EAAE,EAAE,CAAC,CAAC;YACzD,CAAC;YACD,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE;aACnB,MAAM,CAAC,UAAU,CAAC;aAClB,GAAG,CAAC,SAAS,CAAC;aACd,KAAK,CAAC,GAAG,CAAC,GAAG,eAAe,CAAC,CAAC;aAC9B,GAAG,EAAE,CAAC;QAET,IAAI,MAAM,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,aAAa,CAAC,yBAAyB,EAAE,EAAE,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,EAAU,EAAE,QAAiB;QACjD,MAAM,eAAe,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAChD,IAAI,QAAQ;YAAE,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;QAEtE,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;QAC/E,IAAI,MAAM,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,aAAa,CAAC,yBAAyB,EAAE,EAAE,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,QAAiB;QACpC,MAAM,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACvE,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE;aACjB,MAAM,EAAE;aACR,IAAI,CAAC,UAAU,CAAC;aAChB,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;aAC7D,GAAG,EAAE,CAAC;QACT,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,EAAU,EAAE,QAAiB;QAC9C,MAAM,UAAU,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAC3C,IAAI,QAAQ;YAAE,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;QAEjE,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;aAChB,MAAM,EAAE;aACR,IAAI,CAAC,UAAU,CAAC;aAChB,KAAK,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;aACzB,GAAG,EAAE,CAAC;QACT,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACjD,CAAC;IAED,8DAA8D;IAE9D,KAAK,CAAC,kBAAkB,CAAC,KAAmB;QAC1C,IAAI,CAAC,EAAE;aACJ,MAAM,CAAC,YAAY,CAAC;aACpB,MAAM,CAAC;YACN,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,IAAI;YACpC,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,SAAS;SACtC,CAAC;aACD,GAAG,EAAE,CAAC;IACX,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,IAKtB;QACC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,IAAI,EAAE,MAAM,IAAI,CAAC,CAAC;QAEjC,MAAM,UAAU,GAAG,EAAE,CAAC;QACtB,IAAI,IAAI,EAAE,MAAM,EAAE,CAAC;YACjB,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QACxD,CAAC;QACD,IAAI,IAAI,EAAE,QAAQ,EAAE,CAAC;YACnB,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC5D,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE;aACjB,MAAM,EAAE;aACR,IAAI,CAAC,YAAY,CAAC;aAClB,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;aAC7D,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;aACvC,KAAK,CAAC,KAAK,CAAC;aACZ,MAAM,CAAC,MAAM,CAAC;aACd,GAAG,EAAE,CAAC;QAET,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE;aACxB,MAAM,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,CAAC;aACjC,IAAI,CAAC,YAAY,CAAC;aAClB,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;aAC7D,GAAG,EAAE,CAAC;QAET,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBAC1B,EAAE,EAAE,GAAG,CAAC,EAAE;gBACV,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,WAAW,EAAE,GAAG,CAAC,WAAW;gBAC5B,UAAU,EAAE,GAAG,CAAC,UAAU,IAAI,SAAS;gBACvC,YAAY,EAAE,GAAG,CAAC,YAAY;gBAC9B,SAAS,EAAE,GAAG,CAAC,SAAS;gBACxB,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,QAAQ,EAAE,GAAG,CAAC,QAAQ;aACvB,CAAC,CAAC;YACH,KAAK,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC;SAC/B,CAAC;IACJ,CAAC;IAED,8DAA8D;IAE9D,KAAK,CAAC,cAAc,CAClB,SAAiB,EACjB,QAAiB;QAEjB,sEAAsE;QACtE,MAAM,eAAe,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;QAC3D,IAAI,QAAQ;YAAE,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;QAElE,6BAA6B;QAC7B,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE;aACxB,MAAM,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,CAAC;aACjC,IAAI,CAAC,MAAM,CAAC;aACZ,KAAK,CAAC,GAAG,CAAC,GAAG,eAAe,CAAC,CAAC;aAC9B,GAAG,EAAE,CAAC;QACT,MAAM,YAAY,GAAG,WAAW,EAAE,KAAK,IAAI,CAAC,CAAC;QAE7C,IAAI,YAAY,KAAK,CAAC;YAAE,OAAO,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;QAEnD,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE;YACzB,IAAI,QAAQ,EAAE,CAAC;gBACb,gEAAgE;gBAChE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;qBACd,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;qBAC3E,GAAG,EAAE,CAAC;gBAET,gEAAgE;gBAChE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA;;8BAEY,QAAQ;;yEAEmC,QAAQ;;SAExE,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,yEAAyE;gBACzE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;gBAEhE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA;;;SAGT,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,EAAE,YAAY,EAAE,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,QAAiB;QAC9B,MAAM,eAAe,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACxE,MAAM,iBAAiB,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5E,MAAM,eAAe,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAExE,MAAM,UAAU,GACd,IAAI,CAAC,EAAE;aACJ,MAAM,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,CAAC;aACjC,IAAI,CAAC,MAAM,CAAC;aACZ,KAAK,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;aACvE,GAAG,EAAE,EAAE,KAAK,IAAI,CAAC,CAAC;QAEvB,MAAM,YAAY,GAChB,IAAI,CAAC,EAAE;aACJ,MAAM,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,CAAC;aACjC,IAAI,CAAC,QAAQ,CAAC;aACd,KAAK,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;aAC3E,GAAG,EAAE,EAAE,KAAK,IAAI,CAAC,CAAC;QAEvB,MAAM,UAAU,GACd,IAAI,CAAC,EAAE;aACJ,MAAM,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,CAAC;aACjC,IAAI,CAAC,MAAM,CAAC;aACZ,KAAK,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;aACvE,GAAG,EAAE,EAAE,KAAK,IAAI,CAAC,CAAC;QAEvB,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE;aACnB,MAAM,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;aACvC,IAAI,CAAC,MAAM,CAAC;aACZ,KAAK,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;aACvE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;aAC9B,KAAK,CAAC,CAAC,CAAC;aACR,GAAG,EAAE,CAAC;QAET,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE;aACnB,MAAM,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;aACvC,IAAI,CAAC,MAAM,CAAC;aACZ,KAAK,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;aACvE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;aAC/B,KAAK,CAAC,CAAC,CAAC;aACR,GAAG,EAAE,CAAC;QAET,iDAAiD;QACjD,MAAM,SAAS,GACb,IAAI,CAAC,EAAE,CAAC,GAAG,CAAyB,GAAG,CAAA,mBAAmB,CAAC;YACzD,EAAE,UAAU,IAAI,CAAC,CAAC;QACtB,MAAM,QAAQ,GACZ,IAAI,CAAC,EAAE,CAAC,GAAG,CAAwB,GAAG,CAAA,kBAAkB,CAAC;YACvD,EAAE,SAAS,IAAI,CAAC,CAAC;QAErB,OAAO;YACL,WAAW,EAAE,UAAU;YACvB,aAAa,EAAE,YAAY;YAC3B,WAAW,EAAE,UAAU;YACvB,WAAW,EAAE,MAAM,EAAE,SAAS;YAC9B,WAAW,EAAE,MAAM,EAAE,SAAS;YAC9B,gBAAgB,EAAE,SAAS,GAAG,QAAQ;SACvC,CAAC;IACJ,CAAC;IAED,8DAA8D;IAEtD,qBAAqB,CAAC,KAA2C;QACvE,MAAM,UAAU,GAAG,EAAE,CAAC;QAEtB,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACnB,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;QACvD,CAAC;QACD,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YACpB,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;QACzD,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAClB,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YACpB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;gBACnC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;YAC9D,CAAC;iBAAM,CAAC;gBACN,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;QACD,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAClC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC5D,CAAC;iBAAM,CAAC;gBACN,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;YACvD,CAAC;QACH,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC;YACb,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;QACnD,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjB,0DAA0D;YAC1D,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM;iBACzB,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;iBACtB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;iBACpB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACxB,UAAU,CAAC,IAAI,CAAC,GAAG,CAAA,GAAG,MAAM,CAAC,OAAO,SAAS,GAAG,GAAG,OAAO,GAAG,GAAG,cAAc,CAAC,CAAC;QAClF,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,mEAAmE;IAC3D,uBAAuB,CAAC,KAAmB;QACjD,MAAM,UAAU,GAAG,EAAE,CAAC;QAEtB,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACnB,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;QACzD,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAClB,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACvD,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;gBAChC,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC9B,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACxD,CAAC;qBAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACnC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC1D,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;YACrD,CAAC;QACH,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QACvD,CAAC;QACD,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC;YACb,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxC,yDAAyD;YACzD,6DAA6D;YAC7D,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAA,GAAG,GAAG,EAAE,CAAC,CAAC;YAC7D,UAAU,CAAC,IAAI,CACb,GAAG,CAAA;oCACyB,QAAQ,CAAC,IAAI;+BAClB,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,CAAA,IAAI,CAAC;UACvD,CACH,CAAC;QACJ,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,uCAAuC;IAC/B,YAAY,CAAC,GAA+B;QAClD,OAAO;YACL,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,SAAS,EAAE,GAAG,CAAC,SAAwC;YACvD,QAAQ,EAAE,GAAG,CAAC,QAAsC;YACpD,OAAO,EAAE,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,EAA6B,CAAC;YAClE,QAAQ,EAAE,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,EAA6B,CAAC;YACpE,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,QAAQ,EAAE,GAAG,CAAC,QAAQ;SACvB,CAAC;IACJ,CAAC;IAEO,cAAc,CAAC,GAAiC;QACtD,OAAO;YACL,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,SAAS,EAAE,GAAG,CAAC,SAAS,IAAI,SAAS;YACrC,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,SAAS;YACjC,MAAM,EAAE,GAAG,CAAC,MAA2B;YACvC,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,aAAa,EAAE,GAAG,CAAC,aAAa;YAChC,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,YAAY,EAAE,GAAG,CAAC,YAAY;YAC9B,YAAY,EAAE,GAAG,CAAC,YAAY;YAC9B,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;YACtC,iBAAiB,EAAE,GAAG,CAAC,iBAAiB;YACxC,IAAI,EAAE,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,EAAc,CAAC;YAC7C,QAAQ,EAAE,GAAG,CAAC,QAAQ;SACvB,CAAC;IACJ,CAAC;IAEO,YAAY,CAAC,GAA+B;QAClD,OAAO;YACL,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,SAAS;YACzC,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,YAAY,EAAE,GAAG,CAAC,YAAY;YAC9B,QAAQ,EAAE,GAAG,CAAC,QAAQ;SACvB,CAAC;IACJ,CAAC;IAEO,gBAAgB,CAAC,GAAmC;QAC1D,OAAO;YACL,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,SAAS,EAAE,GAAG,CAAC,SAAmC;YAClD,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,aAAa,EAAE,GAAG,CAAC,aAAa;YAChC,KAAK,EAAE,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,EAAwB,CAAC;YACzD,cAAc,EAAE,aAAa,CAAC,GAAG,CAAC,cAAc,EAAE,EAAc,CAAC;YACjE,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,QAAQ,EAAE,GAAG,CAAC,QAAQ;SACvB,CAAC;IACJ,CAAC;CACF"}
|