rag-memory-epf-mcp 1.9.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -5,38 +5,19 @@
5
5
  [![GitHub license](https://img.shields.io/github/license/heesongkoh/rag-memory-epf-mcp)](https://github.com/heesongkoh/rag-memory-epf-mcp/blob/main/LICENSE)
6
6
  [![Platforms](https://img.shields.io/badge/Platform-Windows%20%7C%20macOS%20%7C%20Linux-blue)](https://github.com/heesongkoh/rag-memory-epf-mcp)
7
7
 
8
- An advanced MCP server for **project-local RAG memory** through a knowledge graph with **multilingual vector search** capabilities.
8
+ A **project-local RAG memory** MCP server knowledge graph + multilingual vector search + FTS5 full-text search, all in a single SQLite file per project.
9
9
 
10
- **Each project folder gets its own isolated memory database** — set `DB_FILE_PATH` to a project-local `.memory/rag-memory.db` so every project maintains its own entities, relations, and documents independently. Multiple projects can run simultaneously without interference since they read/write to separate SQLite databases while sharing the same server binary.
10
+ ## Key Features
11
11
 
12
- **Fork of:** [rag-memory-mcp](https://github.com/ttommyth/rag-memory-mcp) upgraded with **Qwen3-Embedding-0.6B** (1024-dim, 100+ languages) for significantly better multilingual semantic search.
13
-
14
- ## What's Different
15
-
16
- | | rag-memory-mcp (original) | rag-memory-epf-mcp (this fork) |
17
- |---|---|---|
18
- | **Embedding Model** | all-MiniLM-L12-v2 | **Qwen3-Embedding-0.6B** |
19
- | **Dimensions** | 384 | **1024** |
20
- | **Languages** | English only | **100+ (Korean, Chinese, Japanese, Arabic, etc.)** |
21
- | **MTEB Score** | ~49 | **63.0+** |
22
- | **Max Tokens** | 256 | **8192** |
23
- | **Unicode Support** | ASCII only fallback | **Full Unicode (CJK, Arabic, Cyrillic, etc.)** |
24
- | **Auto Entity Linking** | None | **Chunk-level with word boundary + CJK support** |
12
+ - **Project-local isolation**each project gets its own `.memory/rag-memory.db`. Multiple projects run simultaneously without interference.
13
+ - **3-signal hybrid search** — vector similarity (Qwen3-Embedding-0.6B, 1024-dim) + FTS5 BM25 keyword matching + knowledge graph re-ranking, combined via Reciprocal Rank Fusion
14
+ - **100+ languages** — Korean, Chinese, Japanese, Arabic, and more. Cross-lingual search works out of the box.
15
+ - **27 MCP tools** — entity/relation CRUD, document pipeline, multi-hop graph traversal, export/import, temporal queries
16
+ - **SQLite optimized** WAL mode, 32MB cache, 256MB mmap, FTS5 triggers, 7 indexes
17
+ - **MCP SDK 1.27.1** — Tool Annotations (readOnly/destructive/idempotent), latest protocol 2025-11-25
25
18
 
26
19
  ## Quick Start
27
20
 
28
- ```json
29
- {
30
- "mcpServers": {
31
- "rag-memory": {
32
- "command": "npx",
33
- "args": ["-y", "rag-memory-epf-mcp@latest"]
34
- }
35
- }
36
- }
37
- ```
38
-
39
- **Project-local memory (recommended):**
40
21
  ```json
41
22
  {
42
23
  "mcpServers": {
@@ -51,154 +32,137 @@ An advanced MCP server for **project-local RAG memory** through a knowledge grap
51
32
  }
52
33
  ```
53
34
 
54
- Place this `.mcp.json` in each project folder with its own `DB_FILE_PATH`. Each project maintains completely isolated memory — entities, relations, and documents are never mixed between projects.
35
+ Place this `.mcp.json` in each project folder with its own `DB_FILE_PATH`. Each project maintains completely isolated memory.
36
+
37
+ ## Tools (27)
38
+
39
+ ### Knowledge Graph (7)
40
+ | Tool | Description | Annotation |
41
+ |------|------------|------------|
42
+ | `createEntities` | Create entities with observations and types (upsert) | idempotent |
43
+ | `createRelations` | Establish relationships between entities | idempotent |
44
+ | `addObservations` | Add contextual information to entities (dedup) | idempotent |
45
+ | `updateRelations` | Update relationship confidence and metadata | idempotent |
46
+ | `deleteEntities` | Remove entities and relationships | destructive |
47
+ | `deleteRelations` | Remove specific relationships | destructive |
48
+ | `deleteObservations` | Remove specific observations | destructive |
49
+
50
+ ### Document Pipeline (8)
51
+ | Tool | Description | Annotation |
52
+ |------|------------|------------|
53
+ | `storeDocument` | Store documents with metadata | idempotent |
54
+ | `chunkDocument` | Create text chunks with configurable parameters | — |
55
+ | `embedChunks` | Generate 1024-dim embeddings + auto-link entities | idempotent |
56
+ | `embedAllEntities` | Batch embed all entities (32 parallel) | idempotent |
57
+ | `extractTerms` | Extract potential entity terms | — |
58
+ | `linkEntitiesToDocument` | Manually link entities to document chunks | idempotent |
59
+ | `deleteDocuments` | Remove documents and associated data | destructive |
60
+ | `listDocuments` | View all stored documents | readOnly |
61
+
62
+ ### Search & Retrieval (9)
63
+ | Tool | Description | Annotation |
64
+ |------|------------|------------|
65
+ | `hybridSearch` | Vector + FTS5 BM25 + graph traversal (3-signal) | readOnly |
66
+ | `searchNodes` | Semantic entity search with `since`/`until` temporal filtering | readOnly |
67
+ | `openNodes` | Retrieve specific entities by name | readOnly |
68
+ | `readGraph` | Get complete knowledge graph | readOnly |
69
+ | `getNeighbors` | Multi-hop graph traversal (depth 1-5, cycle detection) | readOnly |
70
+ | `getDetailedContext` | Get full context for a chunk | readOnly |
71
+ | `exportGraph` | Export full graph as JSON (backup) | readOnly |
72
+ | `importGraph` | Import graph from JSON (merge or replace) | destructive |
73
+ | `getKnowledgeGraphStats` | Knowledge base statistics | readOnly |
74
+
75
+ ### Migration (3)
76
+ | Tool | Description | Annotation |
77
+ |------|------------|------------|
78
+ | `getMigrationStatus` | Check database schema version | readOnly |
79
+ | `runMigrations` | Apply pending migrations | idempotent |
80
+ | `rollbackMigration` | Revert to a previous schema version | destructive |
55
81
 
56
82
  ## Document Processing Pipeline
57
83
 
58
- `embedChunks` automatically links entities to the specific chunks where they appear:
59
-
60
84
  ```
61
85
  storeDocument(id, content, metadata)
62
- |
63
- chunkDocument(documentId, maxTokens, overlap)
64
- |
65
- embedChunks(documentId)
66
- |-- generates vector embeddings for each chunk
67
- |-- auto-links entities to chunks where they appear (chunk-level precision)
68
- +-- returns { embeddedChunks, linkedEntities }
69
-
70
- linkEntitiesToDocument(documentId, entityNames)
71
- +-- [optional] manually link additional entities that auto-linking missed
86
+ → chunkDocument(documentId, maxTokens, overlap)
87
+ → embedChunks(documentId)
88
+ ├── generates vector embeddings for each chunk
89
+ ├── auto-links entities to chunks (word boundary + CJK aware)
90
+ └── returns { embeddedChunks, linkedEntities }
72
91
  ```
73
92
 
74
- ### Auto Entity Linking (v1.5.0+)
75
-
76
- When `embedChunks` runs, it automatically:
77
-
78
- - **Chunk-level matching** entities are linked only to chunks where they actually appear, not all chunks
79
- - **Word boundary matching** — for Latin text, prevents partial-word false matches (e.g. "Phase" won't match "multiphase")
80
- - **CJK-aware matching** — Korean/Chinese/Japanese entity names use substring matching (word boundaries don't apply)
81
- - **Observation-derived aliases** — file paths and identifiers from entity observations are also matched
82
- - **Smart length thresholds** — min 2 chars for CJK entities, min 4 chars for Latin entities
83
-
84
- ## Migration
85
-
86
- ### From rag-memory-mcp (original)
87
-
88
- 1. Replace `rag-memory-mcp` with `rag-memory-epf-mcp@latest` in your config
89
- 2. Migrations run automatically (384 -> 1024 dimensions)
90
- 3. Re-embed your data:
91
- - `embedAllEntities()` re-embeds all entities
92
- - `embedChunks(documentId)` — re-embeds each document's chunks
93
-
94
- ### From rag-memory-epf-mcp v1.2.x (jina-v5-nano)
95
-
96
- 1. Update to `rag-memory-epf-mcp@latest`
97
- 2. Migration v5 runs automatically (768 -> 1024 dimensions)
98
- 3. Re-embed your data (same commands as above)
99
-
100
- Your entities, relationships, documents, and chunk text are preserved. Only vector embeddings are regenerated.
101
-
102
- ## Tools
103
-
104
- ### Document Management
105
- - `storeDocument`: Store documents with metadata
106
- - `chunkDocument`: Create text chunks with configurable parameters
107
- - `embedChunks`: Generate 1024-dim vector embeddings + auto-link entities (chunk-level)
108
- - `extractTerms`: Extract potential entity terms
109
- - `linkEntitiesToDocument`: Manually create entity-document associations
110
- - `deleteDocuments`: Remove documents and associated data
111
- - `listDocuments`: View all stored documents
112
-
113
- ### Knowledge Graph
114
- - `createEntities`: Create entities with observations and types
115
- - `createRelations`: Establish relationships between entities
116
- - `addObservations`: Add contextual information to entities
117
- - `updateRelations`: Update relationship confidence and metadata
118
- - `deleteEntities`: Remove entities and relationships
119
- - `deleteRelations`: Remove specific relationships
120
- - `deleteObservations`: Remove specific observations
121
- - `embedAllEntities`: Generate embeddings for all entities (batch 32 parallel)
122
-
123
- ### Search & Retrieval
124
- - `hybridSearch`: Vector + FTS5 BM25 + graph traversal (3-signal hybrid)
125
- - `searchNodes`: Semantic entity search (multilingual, with since/until temporal filtering)
126
- - `openNodes`: Retrieve specific entities
127
- - `readGraph`: Get complete knowledge graph
128
- - `getDetailedContext`: Get full context for a chunk
129
-
130
- ### Backup & Migration
131
- - `exportGraph`: Export full knowledge graph as JSON (entities, relations, documents)
132
- - `importGraph`: Import knowledge graph from JSON (merge or replace mode)
133
- - `getKnowledgeGraphStats`: Knowledge base statistics
134
- - `getMigrationStatus`: Check database schema version
135
- - `runMigrations`: Apply pending migrations
136
- - `rollbackMigration`: Revert to a previous schema version
93
+ ## Architecture
94
+
95
+ ```
96
+ ┌─────────────────────────────────────────────┐
97
+ │ MCP Client (Claude Code, Gemini CLI, etc) │
98
+ └──────────────────┬──────────────────────────┘
99
+ stdio (MCP SDK 1.27.1)
100
+ ┌──────────────────▼──────────────────────────┐
101
+ │ rag-memory-epf-mcp │
102
+ │ ┌────────────┐ ┌─────────────┐ ┌────────┐ │
103
+ │ │ Knowledge │ │ RAG Document│ │ Search │ │
104
+ │ │ Graph CRUD │ │ Pipeline │ │ Engine │ │
105
+ │ └─────┬──────┘ └──────┬──────┘ └───┬────┘ │
106
+ │ │ │ │ │
107
+ │ ┌─────▼───────────────▼────────────▼─────┐ │
108
+ │ │ SQLite (WAL mode, per-project file) │ │
109
+ │ │ ├── entities + relationships │ │
110
+ │ │ ├── documents + chunk_metadata │ │
111
+ │ │ ├── chunks (sqlite-vec, 1024-dim) │ │
112
+ │ │ ├── entity_embeddings (sqlite-vec) │ │
113
+ │ │ ├── entities_fts + chunks_fts (FTS5) │ │
114
+ │ │ └── 7 migrations (auto-applied) │ │
115
+ │ └────────────────────────────────────────┘ │
116
+ │ │
117
+ │ Qwen3-Embedding-0.6B (ONNX, 100+ langs)
118
+ └──────────────────────────────────────────────┘
119
+ ```
120
+
121
+ ## Environment Variables
122
+
123
+ | Variable | Default | Description |
124
+ |----------|---------|-------------|
125
+ | `DB_FILE_PATH` | `rag-memory.db` (server dir) | Path to project-local SQLite database |
126
+ | `EMBEDDING_MODEL` | `onnx-community/Qwen3-Embedding-0.6B-ONNX` | HuggingFace model ID for embeddings |
137
127
 
138
128
  ## Changelog
139
129
 
140
- ### v1.7.0
130
+ ### v1.9.0
131
+ - **Multi-hop graph traversal** — `getNeighbors` tool with `WITH RECURSIVE` CTE, depth 1-5, cycle detection, bidirectional
132
+ - **Embedding LRU cache** — 500-entry in-memory cache, skips redundant re-computation
133
+ - **Configurable model** — `EMBEDDING_MODEL` env var to use alternative embedding models
134
+ - 27 tools total
135
+
136
+ ### v1.8.0
137
+ - **MCP SDK 1.27.1** — protocol 2025-11-25, security fix GHSA-345p-7cg4-v4c7 (CVSS 7.1)
138
+ - **Tool Annotations** — all 27 tools annotated (readOnlyHint, destructiveHint, idempotentHint)
139
+ - **SIGTERM graceful shutdown** — clean exit without ONNX mutex crash
141
140
 
142
- - **SQLite optimization** — WAL mode, 32MB cache, 256MB mmap, busy_timeout for concurrent access
143
- - **FTS5 full-text search** — keyword-exact matching via BM25, combined with vector search using Reciprocal Rank Fusion (RRF, k=60)
144
- - **updateRelations** — update relationship confidence scores and metadata without delete+recreate
145
- - **exportGraph / importGraph** — JSON backup and restore with merge or replace mode
146
- - **Batch embedding** — `embedAllEntities` processes 32 entities in parallel instead of sequential
147
- - **Temporal filtering** — `searchNodes` supports `since` and `until` (ISO 8601) date filters
141
+ ### v1.7.0
142
+ - **SQLite optimization** — WAL mode, 32MB cache, 256MB mmap, busy_timeout
143
+ - **FTS5 full-text search** — BM25 keyword matching + Reciprocal Rank Fusion with vector search
144
+ - **updateRelations** — update confidence scores and metadata without delete+recreate
145
+ - **exportGraph / importGraph** — JSON backup and restore (merge or replace)
146
+ - **Batch embedding** — `embedAllEntities` processes 32 entities in parallel
147
+ - **Temporal filtering** — `searchNodes` with `since`/`until` ISO 8601 date filters
148
148
  - **better-sqlite3 12.x** — SQLite 3.51.3 with query planner improvements
149
149
  - **sqlite-vec 0.1.7** — DELETE space reclaim, KNN distance constraints
150
- - **Missing indexes** — entityType, relationType, chunk lookups for faster queries
151
- - **SQL safety** — `safeRowid()` validation for vec0 virtual table operations
150
+ - **DB indexes** — entityType, relationType, chunk lookups
151
+ - **SQL safety** — `safeRowid()` validation for vec0 operations
152
152
 
153
153
  ### v1.6.0
154
-
155
- - **Entity upsert** — `createEntities` now merges new observations into existing entities instead of silently ignoring duplicates. Entity type is also updated if a more specific type is provided.
156
- - **Automatic observation timestamps** — all new observations are prefixed with `[YYYY-MM-DD]` for staleness tracking. Existing dated observations are preserved as-is.
157
- - **Dedup by content** — date prefixes are stripped when comparing observations to prevent duplicate entries with different dates.
154
+ - **Entity upsert** — merges new observations into existing entities instead of ignoring duplicates
155
+ - **Observation timestamps** — auto `[YYYY-MM-DD]` prefix for staleness tracking
156
+ - **Dedup by content** — date-stripped comparison prevents duplicate observations
158
157
 
159
158
  ### v1.5.0
159
+ - **Chunk-level entity linking** — precision linking to specific chunks, not all chunks
160
+ - **Word boundary + CJK matching** — Latin word boundaries, CJK substring matching
161
+ - **Observation-derived aliases** — file paths from observations matched against chunks
160
162
 
161
- - **Improved auto entity linking** — chunk-level precision instead of linking to all chunks
162
- - **Word boundary matching** Latin entity names use regex word boundaries to prevent partial matches
163
- - **CJK-aware matching** Korean/Chinese/Japanese names use substring matching with lower min-length threshold (2 chars vs 4)
164
- - **Observation-derived aliases** — file paths from entity observations are matched against chunk text
165
- - **README overhaul** — added pipeline diagram, auto-linking docs, changelog section
166
-
167
- ### v1.4.2
168
-
169
- - fp16 quantization for embeddings
170
- - Auto-link entities after `embedChunks` (document-level, basic substring match)
171
-
172
- ### v1.4.1
173
-
174
- - Qwen3 instruction prefix optimization
175
- - Entity embedding text format improvements
176
-
177
- ### v1.4.0
178
-
179
- - Switched embedding model to **Qwen3-Embedding-0.6B** (1024-dim, 100+ languages)
180
- - Replaced BGE-M3 for better multilingual performance
181
-
182
- ### v1.3.x
183
-
184
- - Cross-lingual graph boost via entity vector search
185
- - Korean + acronym + partial matching improvements
186
- - Unicode/Korean fallback embedding fixes
187
-
188
- ### v1.2.x
189
-
190
- - jina-v5-nano embedding model (768-dim)
191
- - Initial multilingual support
192
-
193
- ### v1.0.0
194
-
195
- - Initial fork from rag-memory-mcp
196
- - BGE-M3 embedding model (1024-dim)
197
- - sqlite-vec vector search
198
-
199
- ## Environment Variables
200
-
201
- - `DB_FILE_PATH`: Path to the SQLite database file (default: `rag-memory.db` in the server directory)
163
+ ### v1.4.x
164
+ - Switched to **Qwen3-Embedding-0.6B** (1024-dim, 100+ languages, MTEB 63.0+)
165
+ - fp16 quantization, instruction prefix optimization
202
166
 
203
167
  ## Development
204
168
 
@@ -211,17 +175,17 @@ npm run build
211
175
 
212
176
  ## License
213
177
 
214
- This MCP server code is licensed under the **MIT License**. See [LICENSE](LICENSE) for details.
178
+ MIT License. See [LICENSE](LICENSE).
215
179
 
216
180
  ### Third-Party Model Licenses
217
181
 
218
182
  | Component | License | Details |
219
183
  |-----------|---------|---------|
220
- | **Qwen3-Embedding-0.6B** | Apache 2.0 | Embedding model by Alibaba Qwen team. [Model card](https://huggingface.co/Qwen/Qwen3-Embedding-0.6B) |
184
+ | **Qwen3-Embedding-0.6B** | Apache 2.0 | [Model card](https://huggingface.co/Qwen/Qwen3-Embedding-0.6B) |
221
185
  | **@huggingface/transformers** | Apache 2.0 | JS inference runtime |
222
186
 
223
- Apache 2.0 is compatible with MIT for downstream use. The model weights are downloaded at runtime via Hugging Face and are not bundled in this package.
187
+ Model weights are downloaded at runtime and not bundled in this package.
224
188
 
225
189
  ---
226
190
 
227
- **Built with**: TypeScript, SQLite, sqlite-vec, Hugging Face Transformers (Qwen3-Embedding-0.6B), Model Context Protocol SDK
191
+ **Built with**: TypeScript, SQLite (WAL + FTS5 + sqlite-vec), Qwen3-Embedding-0.6B, MCP SDK 1.27.1
package/dist/index.js CHANGED
@@ -7,16 +7,11 @@ import * as sqliteVec from 'sqlite-vec';
7
7
  import { get_encoding } from 'tiktoken';
8
8
  import path from 'path';
9
9
  import { fileURLToPath } from 'url';
10
- import { pipeline, env } from '@huggingface/transformers';
11
10
  // Import our new structured tool system
12
11
  import { getAllMCPTools, validateToolArgs, getSystemInfo } from './src/tools/tool-registry.js';
13
12
  // Import migration system
14
13
  import { MigrationManager } from './src/migrations/migration-manager.js';
15
14
  import { migrations } from './src/migrations/migrations.js';
16
- // Configure Hugging Face transformers for better compatibility
17
- if (env.backends?.onnx?.wasm) {
18
- env.backends.onnx.wasm.wasmPaths = './node_modules/@huggingface/transformers/dist/';
19
- }
20
15
  // Define database file path using environment variable with fallback
21
16
  const defaultDbPath = path.join(path.dirname(fileURLToPath(import.meta.url)), 'rag-memory.db');
22
17
  const DB_FILE_PATH = process.env.DB_FILE_PATH
@@ -24,7 +19,9 @@ const DB_FILE_PATH = process.env.DB_FILE_PATH
24
19
  ? process.env.DB_FILE_PATH
25
20
  : path.join(path.dirname(fileURLToPath(import.meta.url)), process.env.DB_FILE_PATH)
26
21
  : defaultDbPath;
27
- const EMBEDDING_MODEL = process.env.EMBEDDING_MODEL || 'onnx-community/Qwen3-Embedding-0.6B-ONNX';
22
+ const EMBEDDING_MODEL = process.env.EMBEDDING_MODEL || 'qwen3-embedding:8b';
23
+ const OLLAMA_URL = process.env.OLLAMA_URL || 'http://localhost:11434';
24
+ const EMBEDDING_DIM = 4096;
28
25
  // Safe rowid for vec0 virtual tables (require literal integer, not parameterized)
29
26
  function safeRowid(value) {
30
27
  const n = Number(value);
@@ -37,7 +34,6 @@ function safeRowid(value) {
37
34
  class RAGKnowledgeGraphManager {
38
35
  db = null;
39
36
  encoding = null;
40
- embeddingModel = null;
41
37
  modelInitialized = false;
42
38
  embeddingCache = new Map();
43
39
  EMBEDDING_CACHE_MAX = 500;
@@ -68,20 +64,24 @@ class RAGKnowledgeGraphManager {
68
64
  }
69
65
  async initializeEmbeddingModel() {
70
66
  try {
71
- console.error(`🤖 Loading embedding model: ${EMBEDDING_MODEL} (1024-dim, 100+ languages)...`);
72
- // Configure environment to allow remote model downloads
73
- env.allowRemoteModels = true;
74
- env.allowLocalModels = true;
75
- this.embeddingModel = await pipeline('feature-extraction', EMBEDDING_MODEL, {
76
- revision: 'main',
77
- dtype: 'fp16',
78
- });
67
+ console.error(`🤖 Connecting to Ollama: ${OLLAMA_URL} (model: ${EMBEDDING_MODEL}, ${EMBEDDING_DIM}-dim)...`);
68
+ const response = await fetch(`${OLLAMA_URL}/api/tags`);
69
+ if (!response.ok) {
70
+ throw new Error(`Ollama not responding: ${response.status}`);
71
+ }
72
+ const data = await response.json();
73
+ const models = data.models || [];
74
+ const modelFound = models.some((m) => m.name.startsWith(EMBEDDING_MODEL.split(':')[0]));
75
+ if (!modelFound) {
76
+ console.error(`⚠️ Model ${EMBEDDING_MODEL} not found in Ollama. Run: ollama pull ${EMBEDDING_MODEL}`);
77
+ console.error(`📋 Available models: ${models.map((m) => m.name).join(', ') || 'none'}`);
78
+ }
79
79
  this.modelInitialized = true;
80
- console.error(`✅ ${EMBEDDING_MODEL} model loaded successfully`);
80
+ console.error(`✅ Ollama connected (${models.length} models available)`);
81
81
  }
82
82
  catch (error) {
83
- console.error('❌ Failed to load embedding model:', error);
84
- console.error('📋 Falling back to simple embedding generation');
83
+ console.error('❌ Failed to connect to Ollama:', error instanceof Error ? error.message : error);
84
+ console.error('📋 Falling back to simple embedding generation. Start Ollama: ollama serve');
85
85
  this.modelInitialized = false;
86
86
  }
87
87
  }
@@ -114,11 +114,7 @@ class RAGKnowledgeGraphManager {
114
114
  this.encoding.free();
115
115
  this.encoding = null;
116
116
  }
117
- if (this.embeddingModel) {
118
- // Clean up the embedding model if it has cleanup methods
119
- this.embeddingModel = null;
120
- this.modelInitialized = false;
121
- }
117
+ this.modelInitialized = false;
122
118
  this.embeddingCache.clear();
123
119
  if (this.db) {
124
120
  this.db.close();
@@ -502,8 +498,8 @@ class RAGKnowledgeGraphManager {
502
498
  if (!this.db)
503
499
  throw new Error('Database not initialized');
504
500
  console.error(`🔍 Semantic entity search: "${query}"`);
505
- // Generate query embedding (with instruction prefix for Qwen3)
506
- const queryEmbedding = await this.generateEmbedding(query, 1024, true);
501
+ // Generate query embedding
502
+ const queryEmbedding = await this.generateEmbedding(query);
507
503
  // Perform vector similarity search on entities
508
504
  const entityResults = this.db.prepare(`
509
505
  SELECT
@@ -922,55 +918,6 @@ class RAGKnowledgeGraphManager {
922
918
  console.error(` └─ Deleted ${metadata.changes} chunk metadata records`);
923
919
  }
924
920
  }
925
- // Simple configurable term extraction (replacing hardcoded patterns)
926
- // Cross-lingual query translation using entity DB + domain dictionary
927
- translateQueryCrossLingual(query) {
928
- if (!this.db)
929
- return null;
930
- // Domain-specific Korean→English dictionary
931
- const domainDict = {
932
- '할랄': 'halal', '인증': 'certification', '상호인정': 'mutual recognition',
933
- '인정': 'accreditation', '인증기관': 'certification body',
934
- '표준': 'standard', '감사': 'audit', '심사': 'audit review',
935
- '도축': 'slaughter', '식품': 'food', '화장품': 'cosmetics',
936
- '수출': 'export', '수입': 'import', '무역': 'trade',
937
- '방문': 'visit', '협력': 'cooperation', '협약': 'agreement',
938
- '제안': 'proposal', '회의': 'meeting', '이메일': 'email',
939
- '보고서': 'report', '전략': 'strategy', '사업': 'business',
940
- '정부': 'government', '지원': 'support', '바우처': 'voucher',
941
- '창업': 'startup', '대학': 'university',
942
- };
943
- // Build entity Korean→English mapping from observations
944
- try {
945
- const entities = this.db.prepare(`
946
- SELECT name, observations FROM entities
947
- `).all();
948
- for (const entity of entities) {
949
- try {
950
- const obs = JSON.parse(entity.observations);
951
- for (const o of obs) {
952
- const match = o.match(/한국어명:\s*(.+)/);
953
- if (match) {
954
- const koreanName = match[1].trim();
955
- domainDict[koreanName] = entity.name;
956
- }
957
- }
958
- }
959
- catch { }
960
- }
961
- }
962
- catch { }
963
- // Translate Korean terms in query
964
- let translated = query;
965
- // Sort by length descending to match longer terms first
966
- const sortedTerms = Object.entries(domainDict).sort((a, b) => b[0].length - a[0].length);
967
- for (const [ko, en] of sortedTerms) {
968
- translated = translated.replace(new RegExp(ko, 'g'), en);
969
- }
970
- // Remove remaining Korean characters and clean up
971
- translated = translated.replace(/[\uAC00-\uD7A3]+/g, ' ').replace(/\s+/g, ' ').trim();
972
- return translated.length > 2 ? translated : null;
973
- }
974
921
  extractTermsFromText(text, options = {}) {
975
922
  const { minLength = 3, includeCapitalized = true, customPatterns = [] } = options;
976
923
  const terms = new Set();
@@ -1030,25 +977,28 @@ class RAGKnowledgeGraphManager {
1030
977
  }
1031
978
  return chunks;
1032
979
  }
1033
- // Generate embeddings using sentence transformers
1034
- // isQuery: true for search queries (adds instruction prefix), false for documents/entities
1035
- async generateEmbedding(text, dimensions = 1024, isQuery = false) {
980
+ // Generate embeddings using Ollama API
981
+ async generateEmbedding(text) {
1036
982
  // Check cache first
1037
- const cacheKey = `${text.length > 100 ? text.substring(0, 100) : text}_${dimensions}_${isQuery}`;
983
+ const cacheKey = text.length > 100 ? text.substring(0, 100) : text;
1038
984
  const cached = this.embeddingCache.get(cacheKey);
1039
985
  if (cached)
1040
986
  return cached;
1041
- if (this.modelInitialized && this.embeddingModel) {
987
+ if (this.modelInitialized) {
1042
988
  try {
1043
- // Qwen3: add instruction prefix for queries (task-specific instruction improves accuracy)
1044
- const inputText = isQuery
1045
- ? `Instruct: Given a search query, retrieve relevant entities and documents from a knowledge graph about halal certification, accreditation, and standards\nQuery: ${text}`
1046
- : text;
1047
- // Use the real sentence transformer model (Qwen3: last_token pooling)
1048
- const result = await this.embeddingModel(inputText, { pooling: 'last_token', normalize: true });
1049
- // Extract the embedding array and convert to Float32Array
1050
- const embedding = result.data;
1051
- const modelResult = new Float32Array(embedding.slice(0, dimensions));
989
+ const response = await fetch(`${OLLAMA_URL}/api/embed`, {
990
+ method: 'POST',
991
+ headers: { 'Content-Type': 'application/json' },
992
+ body: JSON.stringify({
993
+ model: EMBEDDING_MODEL,
994
+ input: text
995
+ })
996
+ });
997
+ if (!response.ok) {
998
+ throw new Error(`Ollama API error: ${response.status} ${response.statusText}`);
999
+ }
1000
+ const data = await response.json();
1001
+ const modelResult = new Float32Array(data.embeddings[0]);
1052
1002
  // Cache the result (LRU: evict oldest if full)
1053
1003
  if (this.embeddingCache.size >= this.EMBEDDING_CACHE_MAX) {
1054
1004
  const firstKey = this.embeddingCache.keys().next().value;
@@ -1059,11 +1009,12 @@ class RAGKnowledgeGraphManager {
1059
1009
  return modelResult;
1060
1010
  }
1061
1011
  catch (error) {
1062
- console.error(`⚠️ Embedding model failed for text "${text.slice(0, 50)}...":`, error instanceof Error ? error.message : error);
1063
- // Fall through to enhanced general implementation
1012
+ console.error(`⚠️ Ollama embedding failed for text "${text.slice(0, 50)}...":`, error instanceof Error ? error.message : error);
1013
+ // Fall through to fallback implementation
1064
1014
  }
1065
1015
  }
1066
- // Enhanced general-purpose semantic embedding
1016
+ // Enhanced general-purpose semantic embedding (fallback)
1017
+ const dimensions = EMBEDDING_DIM;
1067
1018
  const embedding = new Array(dimensions).fill(0);
1068
1019
  // Normalize and tokenize text (preserve Unicode letters including Korean, Arabic, etc.)
1069
1020
  const normalizedText = text.toLowerCase().replace(/[^\p{L}\p{N}\s]/gu, ' ').replace(/\s+/g, ' ').trim();
@@ -1265,7 +1216,7 @@ class RAGKnowledgeGraphManager {
1265
1216
  if (!document) {
1266
1217
  throw new Error(`Document with ID ${documentId} not found`);
1267
1218
  }
1268
- const { maxTokens = 200, overlap = 20 } = options;
1219
+ const { maxTokens = 800, overlap = 160 } = options;
1269
1220
  console.error(`🔪 Chunking document: ${documentId} (maxTokens: ${maxTokens}, overlap: ${overlap})`);
1270
1221
  // Clean up existing chunks
1271
1222
  await this.cleanupDocument(documentId);
@@ -1733,18 +1684,8 @@ class RAGKnowledgeGraphManager {
1733
1684
  if (!this.encoding)
1734
1685
  throw new Error('Tokenizer not initialized');
1735
1686
  console.error(`🔍 Enhanced hybrid search: "${query}"`);
1736
- // Detect Korean in query and build cross-lingual translation
1737
- const hasKorean = /[\uAC00-\uD7A3]/.test(query);
1738
- let translatedQuery = null;
1739
- if (hasKorean) {
1740
- translatedQuery = this.translateQueryCrossLingual(query);
1741
- if (translatedQuery) {
1742
- console.error(`🌐 Cross-lingual: "${query}" → "${translatedQuery}"`);
1743
- }
1744
- }
1745
- // Generate query embedding(s) (with instruction prefix for Qwen3)
1746
- const queryEmbedding = await this.generateEmbedding(query, 1024, true);
1747
- const translatedEmbedding = translatedQuery ? await this.generateEmbedding(translatedQuery, 1024, true) : null;
1687
+ // Generate query embedding
1688
+ const queryEmbedding = await this.generateEmbedding(query);
1748
1689
  // Vector search helper
1749
1690
  const searchChunks = (embedding, k) => {
1750
1691
  return this.db.prepare(`
@@ -1770,21 +1711,8 @@ class RAGKnowledgeGraphManager {
1770
1711
  ORDER BY c.distance
1771
1712
  `).all(Buffer.from(embedding.buffer), k);
1772
1713
  };
1773
- // Dual search: original + translated (if available)
1774
- const originalResults = searchChunks(queryEmbedding, limit * 3);
1775
- const translatedResults = translatedEmbedding ? searchChunks(translatedEmbedding, limit * 3) : [];
1776
- // Merge and deduplicate by chunk_id, keeping best distance
1777
- const resultMap = new Map();
1778
- for (const r of originalResults) {
1779
- resultMap.set(r.chunk_id, r);
1780
- }
1781
- for (const r of translatedResults) {
1782
- const existing = resultMap.get(r.chunk_id);
1783
- if (!existing || r.distance < existing.distance) {
1784
- resultMap.set(r.chunk_id, r);
1785
- }
1786
- }
1787
- const vectorResults = Array.from(resultMap.values()).sort((a, b) => a.distance - b.distance);
1714
+ // Vector search
1715
+ const vectorResults = searchChunks(queryEmbedding, limit * 3);
1788
1716
  // FTS5 full-text search as additional signal (Reciprocal Rank Fusion)
1789
1717
  const ftsBoostMap = new Map();
1790
1718
  try {
@@ -1806,21 +1734,14 @@ class RAGKnowledgeGraphManager {
1806
1734
  LIMIT ?
1807
1735
  `).all(ftsExpr, limit * 3);
1808
1736
  };
1809
- const ftsOriginal = ftsSearchQuery(query);
1810
- const ftsTranslated = translatedQuery ? ftsSearchQuery(translatedQuery) : [];
1811
- // Merge FTS5 results, keeping best score per chunk_id
1737
+ const ftsResults = ftsSearchQuery(query);
1738
+ // Build FTS5 boost map
1812
1739
  const ftsResultMap = new Map();
1813
1740
  let rank = 1;
1814
- for (const r of ftsOriginal) {
1741
+ for (const r of ftsResults) {
1815
1742
  ftsResultMap.set(r.chunk_id, { chunk_id: r.chunk_id, fts_score: r.fts_score, rank });
1816
1743
  rank++;
1817
1744
  }
1818
- for (const r of ftsTranslated) {
1819
- if (!ftsResultMap.has(r.chunk_id)) {
1820
- ftsResultMap.set(r.chunk_id, { chunk_id: r.chunk_id, fts_score: r.fts_score, rank });
1821
- rank++;
1822
- }
1823
- }
1824
1745
  // Build vector rank map for RRF
1825
1746
  const vectorRankMap = new Map();
1826
1747
  vectorResults.forEach((r, idx) => vectorRankMap.set(r.chunk_id, idx + 1));
@@ -1832,7 +1753,7 @@ class RAGKnowledgeGraphManager {
1832
1753
  }
1833
1754
  // Add FTS5-only results to the vector result pool
1834
1755
  for (const [chunkId] of ftsResultMap) {
1835
- if (!resultMap.has(chunkId)) {
1756
+ if (!vectorResults.some(r => r.chunk_id === chunkId)) {
1836
1757
  const chunkRow = this.db.prepare(`
1837
1758
  SELECT
1838
1759
  cm.rowid,
@@ -1874,7 +1795,7 @@ class RAGKnowledgeGraphManager {
1874
1795
  let connectedEntities = new Set();
1875
1796
  let queryMatchedEntities = new Set();
1876
1797
  if (useGraph) {
1877
- // Vector search: find entities semantically similar to the query (dual search)
1798
+ // Vector search: find entities semantically similar to the query
1878
1799
  try {
1879
1800
  const searchEntities = (embedding) => {
1880
1801
  return this.db.prepare(`
@@ -1890,20 +1811,7 @@ class RAGKnowledgeGraphManager {
1890
1811
  ORDER BY ee.distance
1891
1812
  `).all(Buffer.from(embedding.buffer));
1892
1813
  };
1893
- // Merge original + translated entity results
1894
- const entityMap = new Map();
1895
- for (const e of searchEntities(queryEmbedding)) {
1896
- entityMap.set(e.entity_id, e);
1897
- }
1898
- if (translatedEmbedding) {
1899
- for (const e of searchEntities(translatedEmbedding)) {
1900
- const existing = entityMap.get(e.entity_id);
1901
- if (!existing || e.distance < existing.distance) {
1902
- entityMap.set(e.entity_id, e);
1903
- }
1904
- }
1905
- }
1906
- const similarEntities = Array.from(entityMap.values()).sort((a, b) => a.distance - b.distance);
1814
+ const similarEntities = searchEntities(queryEmbedding);
1907
1815
  for (const entity of similarEntities) {
1908
1816
  const similarity = Math.max(0, 1 - entity.distance / 2);
1909
1817
  if (similarity > 0.5) {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,SAAS,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAE1D,wCAAwC;AACxC,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAE/F,0BAA0B;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAE5D,+DAA+D;AAC/D,IAAI,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC7B,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,gDAAgD,CAAC;AACtF,CAAC;AAED,qEAAqE;AACrE,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC;AAC/F,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY;IAC3C,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;QACzC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY;QAC1B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;IACrF,CAAC,CAAC,aAAa,CAAC;AAElB,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,0CAA0C,CAAC;AAyFlG,kFAAkF;AAClF,SAAS,SAAS,CAAC,KAAc;IAC/B,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACxB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,kBAAkB,KAAK,EAAE,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,+CAA+C;AAC/C,MAAM,wBAAwB;IACpB,EAAE,GAA6B,IAAI,CAAC;IACpC,QAAQ,GAAQ,IAAI,CAAC;IACrB,cAAc,GAAQ,IAAI,CAAC;IAC3B,gBAAgB,GAAY,KAAK,CAAC;IAClC,cAAc,GAA8B,IAAI,GAAG,EAAE,CAAC;IAC7C,mBAAmB,GAAG,GAAG,CAAC;IAE3C,KAAK,CAAC,UAAU;QACd,OAAO,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;QAEnE,sBAAsB;QACtB,IAAI,CAAC,EAAE,GAAG,IAAI,QAAQ,CAAC,YAAY,CAAC,CAAC;QAErC,4BAA4B;QAC5B,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAExB,4CAA4C;QAC5C,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;QACrC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;QACvC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;QACtC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;QACtC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;QACtC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC;QACxC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;QAEpC,sBAAsB;QACtB,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;QAE5C,6BAA6B;QAC7B,MAAM,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAEtC,0BAA0B;QAC1B,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAE3B,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAE3D,kBAAkB;QAClB,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;QACnC,OAAO,CAAC,KAAK,CAAC,mBAAmB,UAAU,CAAC,UAAU,CAAC,KAAK,qBAAqB,UAAU,CAAC,UAAU,CAAC,cAAc,qBAAqB,UAAU,CAAC,UAAU,CAAC,GAAG,SAAS,UAAU,CAAC,UAAU,CAAC,UAAU,SAAS,CAAC,CAAC;IACzN,CAAC;IAEO,KAAK,CAAC,wBAAwB;QACpC,IAAI,CAAC;YACH,OAAO,CAAC,KAAK,CAAC,+BAA+B,eAAe,gCAAgC,CAAC,CAAC;YAE9F,wDAAwD;YACxD,GAAG,CAAC,iBAAiB,GAAG,IAAI,CAAC;YAC7B,GAAG,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAE5B,IAAI,CAAC,cAAc,GAAG,MAAM,QAAQ,CAClC,oBAAoB,EACpB,eAAe,EACf;gBACE,QAAQ,EAAE,MAAM;gBAChB,KAAK,EAAE,MAAM;aACd,CACF,CAAC;YAEF,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAC7B,OAAO,CAAC,KAAK,CAAC,KAAK,eAAe,4BAA4B,CAAC,CAAC;QAElE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;YAC1D,OAAO,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;YAChE,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAChC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAE1D,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;QAEnD,+BAA+B;QAC/B,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEvD,qBAAqB;QACrB,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;YAC7B,gBAAgB,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,6CAA6C;QAC7C,MAAM,aAAa,GAAG,gBAAgB,CAAC,oBAAoB,EAAE,CAAC;QAE9D,yBAAyB;QACzB,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,aAAa,EAAE,CAAC;QAEtD,OAAO,CAAC,KAAK,CAAC,qCAAqC,MAAM,CAAC,cAAc,KAAK,MAAM,CAAC,OAAO,sBAAsB,CAAC,CAAC;QAEnH,OAAO;YACL,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,iBAAiB,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAClE,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,WAAW,EAAE,CAAC,CAAC,WAAW;aAC3B,CAAC,CAAC;SACJ,CAAC;IACJ,CAAC;IAED,OAAO;QACL,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACrB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACvB,CAAC;QACD,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,yDAAyD;YACzD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAChC,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;QAC5B,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACZ,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;QACjB,CAAC;IACH,CAAC;IAED,qCAAqC;IAE7B,qBAAqB,CAAC,GAAW;QACvC,mEAAmE;QACnE,IAAI,wBAAwB,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,OAAO,GAAG,CAAC;QACnD,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACpD,OAAO,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,QAAkB;QACrC,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAE1D,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;KAGlC,CAAC,CAAC;QAEH,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;YAC9B,MAAM,QAAQ,GAAG,UAAU,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC,EAAE,CAAC;YAClF,MAAM,WAAW,GAAG,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;YAExF,mBAAmB;YACnB,MAAM,YAAY,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,CAAC;YAEjH,IAAI,YAAY,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;gBAC7B,qBAAqB;gBACrB,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC,CAAC;gBACtD,OAAO,CAAC,KAAK,CAAC,2CAA2C,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;gBACxE,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YACnC,CAAC;iBAAM,CAAC;gBACN,2EAA2E;gBAC3E,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,4DAA4D,CAAC;qBAC3F,GAAG,CAAC,QAAQ,CAA6D,CAAC;gBAE7E,IAAI,QAAQ,EAAE,CAAC;oBACb,MAAM,UAAU,GAAa,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;oBAC/D,yCAAyC;oBACzC,MAAM,SAAS,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,2BAA2B,EAAE,EAAE,CAAC,CAAC;oBAC5E,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;oBACvD,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACvE,MAAM,eAAe,GAAG,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,IAAI,MAAM,CAAC,UAAU,KAAK,QAAQ,CAAC,UAAU,CAAC;oBAE1H,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,eAAe,EAAE,CAAC;wBACzC,MAAM,SAAS,GAAG,CAAC,GAAG,UAAU,EAAE,GAAG,MAAM,CAAC,CAAC;wBAC7C,MAAM,WAAW,GAAG,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;wBAC9E,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,mEAAmE,CAAC;6BACjF,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;wBAEzD,OAAO,CAAC,KAAK,CAAC,uBAAuB,MAAM,CAAC,IAAI,MAAM,MAAM,CAAC,MAAM,OAAO,eAAe,CAAC,CAAC,CAAC,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;wBAC7H,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;wBACjC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC,CAAC;oBACtD,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,SAAqB;QACzC,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAE1D,MAAM,YAAY,GAAG,EAAE,CAAC;QAExB,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,wBAAwB;YACxB,MAAM,IAAI,CAAC,cAAc,CAAC;gBACxB,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,EAAE,EAAE;gBAChE,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,EAAE,EAAE;aAC/D,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,UAAU,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC,EAAE,CAAC;YACpF,MAAM,QAAQ,GAAG,UAAU,QAAQ,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC,EAAE,CAAC;YAClF,MAAM,UAAU,GAAG,OAAO,QAAQ,IAAI,QAAQ,CAAC,YAAY,IAAI,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC;YAExF,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;OAI5B,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;YAC1F,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;gBACvB,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QAED,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,YAA0D;QAC9E,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAE1D,MAAM,OAAO,GAAG,EAAE,CAAC;QAEnB,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;YAC/B,MAAM,QAAQ,GAAG,UAAU,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC,EAAE,CAAC;YAErF,2BAA2B;YAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;OAE9B,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAyC,CAAC;YAEzD,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,oBAAoB,GAAG,CAAC,UAAU,YAAY,CAAC,CAAC;YAClE,CAAC;YAED,MAAM,mBAAmB,GAAa,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YACtE,MAAM,SAAS,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,2BAA2B,EAAE,EAAE,CAAC,CAAC;YAC5E,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,mBAAmB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;YAChE,MAAM,WAAW,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;YACzE,MAAM,eAAe,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAEhF,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/B,MAAM,mBAAmB,GAAG,CAAC,GAAG,mBAAmB,EAAE,GAAG,eAAe,CAAC,CAAC;gBAEzE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;SAEf,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,EAAE,QAAQ,CAAC,CAAC;gBAEtD,8CAA8C;gBAC9C,OAAO,CAAC,KAAK,CAAC,iDAAiD,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;gBACjF,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YACnC,CAAC;YAED,OAAO,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,iBAAiB,EAAE,eAAe,EAAE,CAAC,CAAC;QACnF,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,WAAqB;QACxC,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAE1D,OAAO,CAAC,KAAK,CAAC,0BAA0B,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAElE,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;YAC/B,MAAM,QAAQ,GAAG,UAAU,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC,EAAE,CAAC;YAE3E,IAAI,CAAC;gBACH,+BAA+B;gBAC/B,MAAM,YAAY,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;SAEpC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAEjB,IAAI,CAAC,YAAY,EAAE,CAAC;oBAClB,OAAO,CAAC,IAAI,CAAC,cAAc,IAAI,uBAAuB,CAAC,CAAC;oBACxD,SAAS;gBACX,CAAC;gBAED,mCAAmC;gBACnC,MAAM,iBAAiB,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;SAEzC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAkC,CAAC;gBAElD,IAAI,iBAAiB,EAAE,CAAC;oBACtB,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;WAElC,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;oBAEhC,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;WAEhC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;oBAEjB,IAAI,UAAU,CAAC,OAAO,GAAG,CAAC,IAAI,QAAQ,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;wBACnD,OAAO,CAAC,KAAK,CAAC,uCAAuC,IAAI,GAAG,CAAC,CAAC;oBAChE,CAAC;gBACH,CAAC;gBAED,2CAA2C;gBAC3C,MAAM,iBAAiB,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;SAEzC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACjB,IAAI,iBAAiB,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;oBAClC,OAAO,CAAC,KAAK,CAAC,gBAAgB,iBAAiB,CAAC,OAAO,4BAA4B,IAAI,GAAG,CAAC,CAAC;gBAC9F,CAAC;gBAED,6DAA6D;gBAC7D,MAAM,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;SAGrC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;gBAC3B,IAAI,aAAa,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;oBAC9B,OAAO,CAAC,KAAK,CAAC,gBAAgB,aAAa,CAAC,OAAO,uBAAuB,IAAI,GAAG,CAAC,CAAC;gBACrF,CAAC;gBAED,2CAA2C;gBAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;SAE9B,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACjB,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;oBACvB,OAAO,CAAC,KAAK,CAAC,wBAAwB,IAAI,gBAAgB,CAAC,CAAC;gBAC9D,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,IAAI,CAAC,gBAAgB,IAAI,8CAA8C,CAAC,CAAC;gBACnF,CAAC;YAEH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,8BAA8B,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC;gBAC7D,6DAA6D;YAC/D,CAAC;QACH,CAAC;QAED,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,SAA2D;QAClF,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAE1D,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,MAAM,QAAQ,GAAG,UAAU,QAAQ,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC,EAAE,CAAC;YAE1F,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;OAE9B,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAyC,CAAC;YAEzD,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;gBAC5D,MAAM,oBAAoB,GAAG,mBAAmB,CAAC,MAAM,CACrD,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CACtD,CAAC;gBAEF,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;SAEf,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,EAAE,QAAQ,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,SAAqB;QACzC,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAE1D,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,MAAM,QAAQ,GAAG,UAAU,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC,EAAE,CAAC;YACpF,MAAM,QAAQ,GAAG,UAAU,QAAQ,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC,EAAE,CAAC;YAElF,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;OAGf,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,OAAkH;QACtI,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAE1D,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,IAAI,QAAQ,GAAG,CAAC,CAAC;QAEjB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,QAAQ,GAAG,UAAU,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC,EAAE,CAAC;YAClF,MAAM,QAAQ,GAAG,UAAU,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC,EAAE,CAAC;YAChF,MAAM,UAAU,GAAG,OAAO,QAAQ,IAAI,MAAM,CAAC,YAAY,IAAI,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC;YAEtF,2BAA2B;YAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;OAEhC,CAAC,CAAC,GAAG,CAAC,UAAU,CAA+B,CAAC;YAEjD,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,QAAQ,EAAE,CAAC;gBACX,SAAS;YACX,CAAC;YAED,uBAAuB;YACvB,MAAM,UAAU,GAAa,EAAE,CAAC;YAChC,MAAM,MAAM,GAAU,EAAE,CAAC;YAEzB,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;gBACpC,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBAClC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACjC,CAAC;YACD,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAClC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAChC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC/C,CAAC;YAED,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC5B,SAAS;YACX,CAAC;YAED,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACxB,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;mCACa,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;OACjD,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;YAClB,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,SAAS;QACb,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAE1D,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;KAEhC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,CAAC;YAC1B,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC;SAC3C,CAAC,CAAC,CAAC;QAEJ,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;;;;KAQjC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,CAAC;YAC1B,IAAI,EAAE,GAAG,CAAC,SAAS;YACnB,EAAE,EAAE,GAAG,CAAC,OAAO;YACf,YAAY,EAAE,GAAG,CAAC,YAAY;SAC/B,CAAC,CAAC,CAAC;QAEJ,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,WAAqB,EAAE,QAAgB,CAAC,EAAE,YAAqB;QAKhF,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAE1D,4CAA4C;QAC5C,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAEvD,8BAA8B;QAC9B,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QAEnG,8CAA8C;QAC9C,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAE1D,gCAAgC;QAChC,MAAM,cAAc,GAAG,YAAY;YACjC,CAAC,CAAC,wBAAwB;YAC1B,CAAC,CAAC,EAAE,CAAC;QAEP,MAAM,QAAQ,GAAG;;;sDAGiC,gBAAgB;;;;;;;;;;YAU1D,cAAc;;;;;;;KAOrB,CAAC;QAEF,mBAAmB;QACnB,MAAM,MAAM,GAAU,CAAC,GAAG,OAAO,EAAE,cAAc,CAAC,CAAC;QACnD,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC5B,CAAC;QAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAI9D,CAAC;QAEH,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClC,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;QACpD,CAAC;QAED,oCAAoC;QACpC,MAAM,aAAa,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC7D,MAAM,cAAc,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAE9D,uBAAuB;QACvB,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;6EACsC,cAAc;KACtF,CAAC,CAAC,GAAG,CAAC,GAAG,aAAa,CAKrB,CAAC;QAEH,wCAAwC;QACxC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC5C,KAAK,MAAM,CAAC,IAAI,gBAAgB,EAAE,CAAC;YACjC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;QAC1C,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC3C,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;YAC7B,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;QAED,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACtC,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC;YAC1C,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC;SAClC,CAAC,CAAC,CAAC;QAEJ,kDAAkD;QAClD,IAAI,QAAQ,GAAG;;;;;;;;;;kCAUe,cAAc;kCACd,cAAc;KAC3C,CAAC;QACF,MAAM,SAAS,GAAU,CAAC,GAAG,aAAa,EAAE,GAAG,aAAa,CAAC,CAAC;QAC9D,IAAI,YAAY,EAAE,CAAC;YACjB,QAAQ,IAAI,yBAAyB,CAAC;YACtC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC/B,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,CAM7D,CAAC;QAEH,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACzC,IAAI,EAAE,GAAG,CAAC,SAAS;YACnB,EAAE,EAAE,GAAG,CAAC,OAAO;YACf,YAAY,EAAE,GAAG,CAAC,YAAY;YAC9B,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;SAC9F,CAAC,CAAC,CAAC;QAEJ,qEAAqE;QACrE,MAAM,KAAK,GAAwD,EAAE,CAAC;QACtE,KAAK,MAAM,MAAM,IAAI,gBAAgB,EAAE,CAAC;YACtC,IAAI,MAAM,CAAC,SAAS,KAAK,CAAC;gBAAE,SAAS,CAAC,gCAAgC;YACtE,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACvC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC5E,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBAC1B,KAAK,CAAC,IAAI,CAAC;oBACT,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;oBAClB,EAAE,EAAE,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;oBACnC,IAAI,EAAE,SAAS;iBAChB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,CAAC,KAAK,CAAC,yBAAyB,QAAQ,CAAC,MAAM,cAAc,SAAS,CAAC,MAAM,eAAe,KAAK,CAAC,MAAM,iBAAiB,cAAc,GAAG,CAAC,CAAC;QAEnJ,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAa,EAAE,KAAK,GAAG,EAAE,EAAE,KAAc,EAAE,KAAc;QACzE,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAE1D,OAAO,CAAC,KAAK,CAAC,+BAA+B,KAAK,GAAG,CAAC,CAAC;QAEvD,+DAA+D;QAC/D,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAEvE,+CAA+C;QAC/C,MAAM,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;;;;;;;;;;;KAerC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,KAAK,CAQ9C,CAAC;QAEH,wCAAwC;QACxC,IAAI,eAAe,GAAG,aAAa,CAAC;QACpC,IAAI,KAAK,IAAI,KAAK,EAAE,CAAC;YACnB,eAAe,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;gBACzC,MAAM,MAAM,GAAG,IAAI,CAAC,EAAG,CAAC,OAAO,CAAC,8CAA8C,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAuC,CAAC;gBACvI,IAAI,CAAC,MAAM;oBAAE,OAAO,KAAK,CAAC;gBAC1B,IAAI,KAAK,IAAI,MAAM,CAAC,UAAU,GAAG,KAAK;oBAAE,OAAO,KAAK,CAAC;gBACrD,IAAI,KAAK,IAAI,MAAM,CAAC,UAAU,GAAG,KAAK;oBAAE,OAAO,KAAK,CAAC;gBACrD,OAAO,IAAI,CAAC;YACd,CAAC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjC,OAAO,CAAC,KAAK,CAAC,qCAAqC,KAAK,GAAG,CAAC,CAAC;YAC7D,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;QACzC,CAAC;QAED,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC9C,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC;YAC7C,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,oDAAoD;SACtG,CAAC,CAAC,CAAC;QAEJ,+CAA+C;QAC/C,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;;;;0BAQZ,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;0BACpC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;KACzD,CAAC,CAAC,GAAG,CAAC,GAAG,WAAW,EAAE,GAAG,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,CAAC;YACxD,IAAI,EAAE,GAAG,CAAC,SAAS;YACnB,EAAE,EAAE,GAAG,CAAC,OAAO;YACf,YAAY,EAAE,GAAG,CAAC,YAAY;SAC/B,CAAC,CAAC,CAAC;QAEJ,OAAO,CAAC,KAAK,CAAC,WAAW,QAAQ,CAAC,MAAM,uCAAuC,SAAS,CAAC,MAAM,gBAAgB,CAAC,CAAC;QAEjH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAAe;QAC7B,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAE1D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;QACzC,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;uBAEd,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;KAChD,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,CAAC;YAClC,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC;SAC3C,CAAC,CAAC,CAAC;QAEJ,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;;;;0BAQZ,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;0BAC9B,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;KACnD,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,CAAC;YAC5C,IAAI,EAAE,GAAG,CAAC,SAAS;YACnB,EAAE,EAAE,GAAG,CAAC,OAAO;YACf,YAAY,EAAE,GAAG,CAAC,YAAY;SAC/B,CAAC,CAAC,CAAC;QAEJ,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IACjC,CAAC;IAED,gCAAgC;IAEhC,gFAAgF;IACxE,2BAA2B,CAAC,MAAoE;QACtG,MAAM,gBAAgB,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1D,OAAO,GAAG,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,UAAU,QAAQ,gBAAgB,EAAE,CAAC,IAAI,EAAE,CAAC;IAC/E,CAAC;IAED,mDAAmD;IAC3C,kBAAkB,CAAC,IAAY;QACrC,0DAA0D;QAC1D,OAAO,IAAI;aACR,KAAK,CAAC,QAAQ,CAAC;aACf,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aAClB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,kCAAkC;aAC7D,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,wBAAwB;IACrE,CAAC;IAEO,KAAK,CAAC,6BAA6B,CAAC,SAAmB,EAAE,cAA4B;QAC3F,MAAM,YAAY,GAAa,EAAE,CAAC;QAElC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YACjE,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;YAC5E,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChC,CAAC;QAED,OAAO,YAAY,CAAC;IACtB,CAAC;IAEO,gBAAgB,CAAC,CAAe,EAAE,CAAe;QACvD,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,KAAK,GAAG,CAAC,CAAC;QAEd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAClC,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1B,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACrB,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACvB,CAAC;QAED,OAAO,UAAU,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5D,CAAC;IAEO,4BAA4B,CAAC,YAAsB,EAAE,SAAmB,EAAE,QAAkB;QAClG,MAAM,QAAQ,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC;QAEnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YAC5C,IAAI,YAAY,GAAG,CAAC,CAAC;YAErB,+DAA+D;YAC/D,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;gBAC9B,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;oBAC5C,YAAY,IAAI,GAAG,CAAC,CAAC,sCAAsC;gBAC7D,CAAC;YACH,CAAC;YAED,qEAAqE;YACrE,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC3B,YAAY,IAAI,IAAI,CAAC;YACvB,CAAC;YAED,oFAAoF;YACpF,MAAM,eAAe,GAAG,CAAC,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;YACxG,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC;gBACnC,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC5B,YAAY,IAAI,IAAI,CAAC;oBACrB,MAAM,CAAC,+BAA+B;gBACxC,CAAC;YACH,CAAC;YAED,QAAQ,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC;QAC9B,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAClC,SAAiB,EACjB,cAA4B,EAC5B,QAAkB,EAClB,YAAY,GAAG,CAAC;QAGhB,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAErD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO;gBACL,OAAO,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5E,YAAY,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjF,cAAc,EAAE,GAAG;aACpB,CAAC;QACJ,CAAC;QAED,kCAAkC;QAClC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,6BAA6B,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;QAEzF,oCAAoC;QACpC,MAAM,oBAAoB,GAAG,IAAI,CAAC,4BAA4B,CAAC,YAAY,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QAElG,8BAA8B;QAC9B,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;aACxE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC;QAErE,iEAAiE;QACjE,MAAM,iBAAiB,GAA0D,EAAE,CAAC;QACpF,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;QAEtC,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;YAChC,IAAI,iBAAiB,CAAC,MAAM,IAAI,YAAY;gBAAE,MAAM;YAEpD,oDAAoD;YACpD,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YAE1F,IAAI,CAAC,WAAW,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACnD,iBAAiB,CAAC,IAAI,CAAC;oBACrB,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC;oBACpB,KAAK,EAAE,oBAAoB,CAAC,GAAG,CAAC;oBAChC,KAAK,EAAE,GAAG;iBACX,CAAC,CAAC;gBACH,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;QAED,0EAA0E;QAC1E,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,iBAAiB,CAAC,IAAI,CAAC;gBACrB,IAAI,EAAE,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;gBACjC,KAAK,EAAE,oBAAoB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;gBAC7C,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC;aACxB,CAAC,CAAC;QACL,CAAC;QAED,iBAAiB;QACjB,MAAM,YAAY,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAE/C,IAAI,OAAe,CAAC;QACpB,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,OAAO,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,8CAA8C;YAC9C,MAAM,gBAAgB,GAAG,iBAAiB;iBACvC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;iBACjC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACpB,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7C,CAAC;QAED,MAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,oBAAoB,CAAC,CAAC;QAE5D,OAAO;YACL,OAAO,EAAE,OAAO;YAChB,YAAY,EAAE,YAAY;YAC1B,cAAc,EAAE,iBAAiB;SAClC,CAAC;IACJ,CAAC;IAED,mDAAmD;IAC3C,KAAK,CAAC,WAAW,CAAC,QAAgB;QACxC,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAE1D,kBAAkB;QAClB,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;KAE9B,CAAC,CAAC,GAAG,CAAC,QAAQ,CAA2E,CAAC;QAE3F,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,CAAC,UAAU,QAAQ,0BAA0B,CAAC,CAAC;YAC3D,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC3D,MAAM,aAAa,GAAG,IAAI,CAAC,2BAA2B,CAAC;YACrD,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,YAAY,EAAE,kBAAkB;SACjC,CAAC,CAAC;QAEH,qBAAqB;QACrB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;QAE9D,IAAI,CAAC;YACH,mCAAmC;YACnC,MAAM,gBAAgB,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;OAExC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAkC,CAAC;YAElD,IAAI,gBAAgB,EAAE,CAAC;gBACrB,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,+CAA+C,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;gBAC7F,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,2DAA2D,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC7F,CAAC;YAED,uBAAuB;YACvB,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;OAE9B,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;YAEtC,iBAAiB;YACjB,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;OAGf,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;YAExD,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,0BAA0B,QAAQ,GAAG,EAAE,KAAK,CAAC,CAAC;YAC5D,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,4CAA4C;IAC5C,KAAK,CAAC,gBAAgB;QACpB,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAE1D,OAAO,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAE9D,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;KAEhC,CAAC,CAAC,GAAG,EAA2B,CAAC;QAElC,IAAI,aAAa,GAAG,CAAC,CAAC;QAEtB,MAAM,SAAS,GAAG,EAAE,CAAC;QACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC;YACpD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC;YAC/C,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC1E,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;QAClD,CAAC;QAED,OAAO,CAAC,KAAK,CAAC,kCAAkC,aAAa,IAAI,QAAQ,CAAC,MAAM,oBAAoB,CAAC,CAAC;QAEtG,OAAO;YACL,aAAa,EAAE,QAAQ,CAAC,MAAM;YAC9B,gBAAgB,EAAE,aAAa;SAChC,CAAC;IACJ,CAAC;IAED,sEAAsE;IACtE,KAAK,CAAC,4BAA4B;QAChC,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAE1D,OAAO,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAEzD,2CAA2C;QAC3C,MAAM,IAAI,CAAC,2BAA2B,EAAE,CAAC;QAEzC,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,IAAI,kBAAkB,GAAG,CAAC,CAAC;QAE3B,yBAAyB;QACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;KAEhC,CAAC,CAAC,GAAG,EAAmF,CAAC;QAE1F,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;YAC9B,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YACrD,MAAM,SAAS,GAAG,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;YAC7F,MAAM,OAAO,GAAG,aAAa,MAAM,CAAC,EAAE,EAAE,CAAC;YAEzC,uBAAuB;YACvB,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;OAIf,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC;gBACrF,WAAW,EAAE,MAAM,CAAC,IAAI;gBACxB,WAAW,EAAE,MAAM,CAAC,UAAU;aAC/B,CAAC,CAAC,CAAC;YAEJ,YAAY,EAAE,CAAC;QACjB,CAAC;QAED,+BAA+B;QAC/B,MAAM,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;;;;;;KAUrC,CAAC,CAAC,GAAG,EAMJ,CAAC;QAEH,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;YAChC,MAAM,SAAS,GAAG,IAAI,CAAC,6BAA6B,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;YACzG,MAAM,OAAO,GAAG,mBAAmB,GAAG,CAAC,EAAE,EAAE,CAAC;YAE5C,uBAAuB;YACvB,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;OAIf,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC;gBACxF,aAAa,EAAE,GAAG,CAAC,WAAW;gBAC9B,aAAa,EAAE,GAAG,CAAC,WAAW;gBAC9B,aAAa,EAAE,GAAG,CAAC,YAAY;gBAC/B,UAAU,EAAE,GAAG,CAAC,UAAU;aAC3B,CAAC,CAAC,CAAC;YAEJ,kBAAkB,EAAE,CAAC;QACvB,CAAC;QAED,OAAO,CAAC,KAAK,CAAC,uCAAuC,YAAY,cAAc,kBAAkB,gBAAgB,CAAC,CAAC;QAEnH,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,CAAC;IAC9C,CAAC;IAED,oCAAoC;IACpC,KAAK,CAAC,yBAAyB;QAC7B,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAE1D,OAAO,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAExD,iCAAiC;QACjC,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;KAI9B,CAAC,CAAC,GAAG,EAA8D,CAAC;QAErE,IAAI,aAAa,GAAG,CAAC,CAAC;QAEtB,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,qBAAqB;YACrB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC3D,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAErC,IAAI,CAAC;gBACH,mCAAmC;gBACnC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,oCAAoC,KAAK,EAAE,CAAC,CAAC;gBAE1D,yEAAyE;gBACzE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;0DACkC,KAAK;SACtD,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;gBAEtC,aAAa,EAAE,CAAC;YAClB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,MAAM,GAAG,SAAS,KAAK,CAAC,QAAQ,WAAW,KAAK,UAAU,OAAO,KAAK,CAAC,KAAK,MAAM,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjJ,OAAO,CAAC,KAAK,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAC;gBAC3C,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;QAED,OAAO,CAAC,KAAK,CAAC,sCAAsC,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QAEtF,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IACjI,CAAC;IAED,yDAAyD;IACjD,uBAAuB,CAAC,IAAY,EAAE,UAAkB,EAAE,YAAsB;QACtF,MAAM,gBAAgB,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,sCAAsC,CAAC;QACpH,OAAO,GAAG,IAAI,SAAS,UAAU,KAAK,gBAAgB,EAAE,CAAC;IAC3D,CAAC;IAED,iEAAiE;IACzD,6BAA6B,CAAC,UAAkB,EAAE,UAAkB,EAAE,YAAoB;QAChG,iDAAiD;QACjD,MAAM,YAAY,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACnE,OAAO,GAAG,UAAU,IAAI,YAAY,IAAI,UAAU,EAAE,CAAC;IACvD,CAAC;IAED,gDAAgD;IACxC,KAAK,CAAC,2BAA2B;QACvC,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO;QAErB,OAAO,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;QAEnE,sCAAsC;QACtC,MAAM,cAAc,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;KAEtC,CAAC,CAAC,GAAG,EAAyB,CAAC;QAEhC,IAAI,cAAc,GAAG,CAAC,CAAC;QACvB,IAAI,mBAAmB,GAAG,CAAC,CAAC;QAE5B,kCAAkC;QAClC,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;YACnC,2EAA2E;YAC3E,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,oCAAoC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC3E,cAAc,EAAE,CAAC;YAEjB,mCAAmC;YACnC,MAAM,YAAY,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;OAEpC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACpB,mBAAmB,IAAI,YAAY,CAAC,OAAO,CAAC;QAC9C,CAAC;QAED,wBAAwB;QACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;KAEhC,CAAC,CAAC,GAAG,EAAE,CAAC;QAET,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,OAAO,CAAC,KAAK,CAAC,gBAAgB,cAAc,oBAAoB,CAAC,CAAC;YAClE,OAAO,CAAC,KAAK,CAAC,gBAAgB,mBAAmB,sBAAsB,CAAC,CAAC;YACzE,OAAO,CAAC,KAAK,CAAC,gBAAgB,QAAQ,CAAC,OAAO,yBAAyB,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IAED,qEAAqE;IACrE,sEAAsE;IAC9D,0BAA0B,CAAC,KAAa;QAC9C,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC;QAE1B,4CAA4C;QAC5C,MAAM,UAAU,GAA2B;YACzC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,oBAAoB;YAClE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,oBAAoB;YACnD,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc;YACrD,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW;YACnD,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO;YAC7C,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,WAAW;YACrD,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO;YACjD,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU;YACnD,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS;YACrD,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY;SACpC,CAAC;QAEF,wDAAwD;QACxD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;OAEhC,CAAC,CAAC,GAAG,EAAmD,CAAC;YAE1D,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;gBAC9B,IAAI,CAAC;oBACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAa,CAAC;oBACxD,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;wBACpB,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;wBACtC,IAAI,KAAK,EAAE,CAAC;4BACV,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;4BACnC,UAAU,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC;wBACvC,CAAC;oBACH,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC,CAAA,CAAC;YACZ,CAAC;QACH,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;QAEV,kCAAkC;QAClC,IAAI,UAAU,GAAG,KAAK,CAAC;QACvB,wDAAwD;QACxD,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACzF,KAAK,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,WAAW,EAAE,CAAC;YACnC,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3D,CAAC;QAED,kDAAkD;QAClD,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QAEtF,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;IACnD,CAAC;IAEO,oBAAoB,CAAC,IAAY,EAAE,UAIvC,EAAE;QACJ,MAAM,EAAE,SAAS,GAAG,CAAC,EAAE,kBAAkB,GAAG,IAAI,EAAE,cAAc,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC;QAClF,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;QAEhC,sDAAsD;QACtD,IAAI,kBAAkB,EAAE,CAAC;YACvB,0DAA0D;YAC1D,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,qCAAqC,CAAC,IAAI,EAAE,CAAC;YACjF,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBAC9B,IAAI,IAAI,CAAC,MAAM,IAAI,SAAS;oBAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YACvD,CAAC,CAAC,CAAC;YACH,kDAAkD;YAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;YACpD,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACnD,CAAC;QAED,iEAAiE;QACjE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,IAAI,EAAE,CAAC;QAC7D,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACzB,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC;gBAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEH,oCAAoC;QACpC,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;YAClC,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;gBAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBAC1C,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;oBACtB,IAAI,KAAK,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC;wBAC9B,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;oBAC1B,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAED,0BAA0B;IAClB,SAAS,CAAC,IAAY,EAAE,SAAS,GAAG,GAAG,EAAE,OAAO,GAAG,EAAE;QAC3D,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAEjE,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,MAAM,GAAY,EAAE,CAAC;QAE3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,SAAS,GAAG,OAAO,EAAE,CAAC;YAC5D,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC;YACnD,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YACvD,MAAM,SAAS,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YAEzD,MAAM,CAAC,IAAI,CAAC;gBACV,EAAE,EAAE,EAAE;gBACN,WAAW,EAAE,EAAE;gBACf,WAAW,EAAE,MAAM,CAAC,MAAM;gBAC1B,IAAI,EAAE,SAAS;gBACf,SAAS,EAAE,CAAC;gBACZ,OAAO,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM;aAChC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,kDAAkD;IAClD,2FAA2F;IACnF,KAAK,CAAC,iBAAiB,CAAC,IAAY,EAAE,UAAU,GAAG,IAAI,EAAE,OAAO,GAAG,KAAK;QAC9E,oBAAoB;QACpB,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,UAAU,IAAI,OAAO,EAAE,CAAC;QACjG,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACjD,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAE1B,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACjD,IAAI,CAAC;gBACH,0FAA0F;gBAC1F,MAAM,SAAS,GAAG,OAAO;oBACvB,CAAC,CAAC,mKAAmK,IAAI,EAAE;oBAC3K,CAAC,CAAC,IAAI,CAAC;gBACT,sEAAsE;gBACtE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBAEhG,0DAA0D;gBAC1D,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC;gBAC9B,MAAM,WAAW,GAAG,IAAI,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;gBACrE,+CAA+C;gBAC/C,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;oBACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;oBACzD,IAAI,QAAQ;wBAAE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACrD,CAAC;gBACD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;gBAC/C,OAAO,WAAW,CAAC;YAErB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,uCAAuC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBAC/H,kDAAkD;YACpD,CAAC;QACH,CAAC;QAED,8CAA8C;QAC9C,MAAM,SAAS,GAAG,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAEhD,wFAAwF;QACxF,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QACxG,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAExE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,WAAW,GAAG,IAAI,YAAY,CAAC,SAAS,CAAC,CAAC;YAChD,+CAA+C;YAC/C,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;gBACzD,IAAI,QAAQ;oBAAE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACrD,CAAC;YACD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;YAC/C,OAAO,WAAW,CAAC;QACrB,CAAC;QAED,uCAAuC;QACvC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC3C,MAAM,aAAa,GAAG,IAAI,GAAG,EAAoB,CAAC;QAElD,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE;YAC/B,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAClD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7B,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC9B,CAAC;YACD,aAAa,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC;QAChC,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC;QAClC,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QAE/C,yDAAyD;QACzD,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACxB,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrC,MAAM,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAEhD,8BAA8B;YAC9B,MAAM,EAAE,GAAG,IAAI,GAAG,UAAU,CAAC;YAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,qCAAqC;YAC9E,MAAM,KAAK,GAAG,EAAE,GAAG,GAAG,CAAC;YAEvB,uDAAuD;YACvD,MAAM,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC;YACpF,MAAM,cAAc,GAAG,IAAI,CAAC,uBAAuB,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;YAE7E,8CAA8C;YAC9C,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC;YAC/B,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;YACzD,MAAM,cAAc,GAAG,UAAU,GAAG,UAAU,CAAC;YAC/C,MAAM,UAAU,GAAG,UAAU,GAAG,UAAU,CAAC;YAC3C,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEnC,6BAA6B;YAC7B,MAAM,UAAU,GAAG,UAAU,GAAG,CAAC,CAAC;YAClC,MAAM,UAAU,GAAG,IAAI,KAAK,CAAC,IAAI,UAAU,GAAG,CAAC,CAAC;YAChD,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAEhE,2DAA2D;YAC3D,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACzC,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACzC,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACzC,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,WAAW,EAAE,CAAC,CAAC,CAAC;YAEvD,4CAA4C;YAC5C,IAAI,UAAU,GAAG,KAAK,GAAG,cAAc,CAAC;YAExC,wBAAwB;YACxB,IAAI,UAAU;gBAAE,UAAU,IAAI,GAAG,CAAC;YAClC,IAAI,UAAU;gBAAE,UAAU,IAAI,GAAG,CAAC;YAClC,IAAI,cAAc;gBAAE,UAAU,IAAI,GAAG,CAAC;YACtC,IAAI,WAAW;gBAAE,UAAU,IAAI,GAAG,CAAC;YAEnC,yDAAyD;YACzD,SAAS,CAAC,KAAK,GAAG,UAAU,CAAC,IAAI,UAAU,GAAG,GAAG,CAAC;YAClD,SAAS,CAAC,KAAK,GAAG,UAAU,CAAC,IAAI,UAAU,GAAG,GAAG,CAAC;YAClD,SAAS,CAAC,KAAK,GAAG,UAAU,CAAC,IAAI,UAAU,GAAG,GAAG,CAAC;YAElD,2BAA2B;YAC3B,SAAS,CAAC,KAAK,GAAG,UAAU,CAAC,IAAI,UAAU,GAAG,UAAU,GAAG,GAAG,CAAC;YAC/D,SAAS,CAAC,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,UAAU,GAAG,GAAG,CAAC;YAEvF,qCAAqC;YACrC,IAAI,WAAW,EAAE,CAAC;gBAChB,SAAS,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,UAAU,GAAG,GAAG,CAAC;YAC1D,CAAC;YACD,IAAI,UAAU,EAAE,CAAC;gBACf,SAAS,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,GAAG,UAAU,CAAC,IAAI,UAAU,GAAG,GAAG,CAAC;YAC3D,CAAC;YACD,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC,CAAE,sCAAsC;gBAC3D,SAAS,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,GAAG,UAAU,CAAC,IAAI,UAAU,GAAG,GAAG,CAAC;YAC3D,CAAC;YAED,+CAA+C;YAC/C,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAC3B,kBAAkB;gBAClB,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;oBACjB,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC;oBAChD,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;oBAChD,SAAS,CAAC,UAAU,GAAG,UAAU,CAAC,IAAI,UAAU,GAAG,GAAG,CAAC;gBACzD,CAAC;gBAED,IAAI,QAAQ,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAChC,MAAM,UAAU,GAAG,IAAI,GAAG,GAAG,GAAG,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;oBACpD,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;oBACxD,SAAS,CAAC,cAAc,GAAG,UAAU,CAAC,IAAI,UAAU,GAAG,GAAG,CAAC;gBAC7D,CAAC;gBAED,uCAAuC;gBACvC,IAAI,UAAU,IAAI,UAAU,EAAE,CAAC;oBAC7B,IAAI,QAAQ,GAAG,CAAC,IAAI,QAAQ,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAChD,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;wBAC7E,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;wBAClD,SAAS,CAAC,WAAW,GAAG,UAAU,CAAC,IAAI,UAAU,GAAG,GAAG,CAAC;oBAC1D,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,6DAA6D;YAC7D,IAAI,UAAU,IAAI,CAAC,EAAE,CAAC;gBACpB,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;gBAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;gBAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC;gBAE5D,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,GAAG,OAAO,EAAE,CAAC,CAAC,CAAC;gBAC5D,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,GAAG,OAAO,EAAE,CAAC,CAAC,CAAC;gBAC5D,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,GAAG,OAAO,EAAE,CAAC,CAAC,CAAC;gBAC5D,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,GAAG,OAAO,EAAE,EAAE,CAAC,CAAC;gBAE7D,SAAS,CAAC,WAAW,GAAG,UAAU,CAAC,IAAI,UAAU,GAAG,GAAG,CAAC;gBACxD,SAAS,CAAC,WAAW,GAAG,UAAU,CAAC,IAAI,UAAU,GAAG,GAAG,CAAC;gBACxD,SAAS,CAAC,WAAW,GAAG,UAAU,CAAC,IAAI,UAAU,GAAG,GAAG,CAAC;gBACxD,SAAS,CAAC,WAAW,GAAG,UAAU,CAAC,IAAI,UAAU,GAAG,GAAG,CAAC;YAC1D,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,gCAAgC;QAChC,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;QACvF,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QAC5D,MAAM,cAAc,GAAG,WAAW,GAAG,UAAU,CAAC;QAChD,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC;QAC7C,MAAM,gBAAgB,GAAG,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,2BAA2B;QAEzF,sCAAsC;QACtC,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC;QACjE,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;QAC9D,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;QAC7D,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;QAChE,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;QAE/D,SAAS,CAAC,WAAW,GAAG,UAAU,CAAC,IAAI,cAAc,GAAG,GAAG,CAAC;QAC5D,SAAS,CAAC,WAAW,GAAG,UAAU,CAAC,IAAI,WAAW,GAAG,GAAG,CAAC;QACzD,SAAS,CAAC,WAAW,GAAG,UAAU,CAAC,IAAI,aAAa,GAAG,IAAI,CAAC;QAC5D,SAAS,CAAC,WAAW,GAAG,UAAU,CAAC,IAAI,gBAAgB,GAAG,GAAG,CAAC;QAC9D,SAAS,CAAC,WAAW,GAAG,UAAU,CAAC,IAAI,aAAa,GAAG,IAAI,CAAC;QAE5D,yCAAyC;QACzC,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC;QAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;QAC7D,CAAC;QAED,yCAAyC;QACzC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QAChF,MAAM,mBAAmB,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAE9F,MAAM,cAAc,GAAG,IAAI,YAAY,CAAC,mBAAmB,CAAC,CAAC;QAC7D,+CAA+C;QAC/C,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;YACzD,IAAI,QAAQ;gBAAE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;QAClD,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,6CAA6C;IACrC,uBAAuB,CAAC,QAAgB,EAAE,UAAkB;QAClE,IAAI,UAAU,KAAK,CAAC;YAAE,OAAO,GAAG,CAAC;QAEjC,wDAAwD;QACxD,MAAM,WAAW,GAAG,QAAQ,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;QAEhD,yEAAyE;QACzE,MAAM,cAAc,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;QAEnE,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,yCAAyC;IACjC,YAAY,CAAC,GAAW,EAAE,IAAY;QAC5C,IAAI,IAAI,GAAG,IAAI,CAAC;QAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAC/B,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;YACnC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,4BAA4B;QAClD,CAAC;QACD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED,6BAA6B;IAE7B,KAAK,CAAC,aAAa,CAAC,EAAU,EAAE,OAAe,EAAE,WAAgC,EAAE;QACjF,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAE1D,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,EAAE,CAAC,CAAC;QAE5C,6BAA6B;QAC7B,MAAM,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QAE/B,iBAAiB;QACjB,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;KAGf,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;QAE9C,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAAC;QAC1C,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,UAAkB,EAAE,UAAoD,EAAE;QAC5F,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAE1D,eAAe;QACf,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;KAEhC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAoC,CAAC;QAEtD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,oBAAoB,UAAU,YAAY,CAAC,CAAC;QAC9D,CAAC;QAED,MAAM,EAAE,SAAS,GAAG,GAAG,EAAE,OAAO,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC;QAElD,OAAO,CAAC,KAAK,CAAC,yBAAyB,UAAU,gBAAgB,SAAS,cAAc,OAAO,GAAG,CAAC,CAAC;QAEpG,2BAA2B;QAC3B,MAAM,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QAEvC,gBAAgB;QAChB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QACpE,MAAM,YAAY,GAAG,EAAE,CAAC;QAExB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,OAAO,GAAG,GAAG,UAAU,UAAU,KAAK,CAAC,WAAW,EAAE,CAAC;YAE3D,0CAA0C;YAC1C,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;OAIf,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YAE3F,YAAY,CAAC,IAAI,CAAC;gBAChB,EAAE,EAAE,OAAO;gBACX,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,QAAQ,EAAE,KAAK,CAAC,SAAS;gBACzB,MAAM,EAAE,KAAK,CAAC,OAAO;aACtB,CAAC,CAAC;QACL,CAAC;QAED,OAAO,CAAC,KAAK,CAAC,uBAAuB,MAAM,CAAC,MAAM,iBAAiB,CAAC,CAAC;QACrE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,UAAkB;QAClC,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAE1D,OAAO,CAAC,KAAK,CAAC,qCAAqC,UAAU,EAAE,CAAC,CAAC;QAEjE,kCAAkC;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;KAE9B,CAAC,CAAC,GAAG,CAAC,UAAU,CAA6D,CAAC;QAE/E,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,gCAAgC,UAAU,4BAA4B,CAAC,CAAC;QAC1F,CAAC;QAED,IAAI,aAAa,GAAG,CAAC,CAAC;QAEtB,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,qBAAqB;YACrB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC3D,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAElC,wBAAwB;YACxB,IAAI,CAAC;gBACH,sDAAsD;gBACtD,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,oCAAoC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBAErE,mEAAmE;gBACnE,sEAAsE;gBACtE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;0DACkC,KAAK;SACtD,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;gBAEtC,aAAa,EAAE,CAAC;YAClB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,MAAM,GAAG,SAAS,KAAK,CAAC,QAAQ,WAAW,KAAK,UAAU,OAAO,KAAK,CAAC,KAAK,MAAM,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjJ,OAAO,CAAC,KAAK,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAC;gBAC3C,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;QAED,OAAO,CAAC,KAAK,CAAC,sBAAsB,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QAEtE,iDAAiD;QACjD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAE5D,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAC1K,CAAC;IAED,sEAAsE;IAC9D,MAAM,CAAC,IAAY;QACzB,OAAO,2CAA2C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChE,CAAC;IAED,wFAAwF;IAChF,kBAAkB,CAAC,IAAY;QACrC,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACjC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YACtB,4DAA4D;YAC5D,OAAO,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC9D,CAAC;QACD,mEAAmE;QACnE,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;YAC7D,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,MAAM,OAAO,KAAK,EAAE,GAAG,CAAC,CAAC;YAC/C,OAAO,CAAC,IAAY,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAED,uEAAuE;IAC/D,KAAK,CAAC,gBAAgB,CAAC,UAAkB;QAC/C,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO,CAAC,CAAC;QAEvB,IAAI,CAAC;YACH,uCAAuC;YACvC,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAC5B,8DAA8D,CAC/D,CAAC,GAAG,CAAC,UAAU,CAA2C,CAAC;YAE5D,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,CAAC,CAAC;YAElC,yDAAyD;YACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAC9B;;;;uBAIe,CAChB,CAAC,GAAG,EAA0F,CAAC;YAEhG,+EAA+E;YAC/E,MAAM,WAAW,GAAG,CAAC,CAAC;YACtB,MAAM,aAAa,GAAG,CAAC,CAAC;YAExB,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;OAElC,CAAC,CAAC;YAEH,IAAI,WAAW,GAAG,CAAC,CAAC;YAEpB,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;gBAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC;gBACtE,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM;oBAAE,SAAS;gBAE1C,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAEzD,8EAA8E;gBAC9E,MAAM,OAAO,GAAkC,EAAE,CAAC;gBAClD,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;oBACxB,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBAC/C,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;wBACrB,2FAA2F;wBAC3F,MAAM,SAAS,GAAG,EAAE,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;wBAClD,IAAI,SAAS,EAAE,CAAC;4BACd,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;gCAC1B,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;oCAClB,OAAO,CAAC,IAAI,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;gCAC/E,CAAC;4BACH,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,0EAA0E;gBAC1E,IAAI,YAAY,GAAG,KAAK,CAAC;gBACzB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;oBAC3B,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;oBAC9E,IAAI,OAAO,EAAE,CAAC;wBACZ,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;wBACvC,YAAY,GAAG,IAAI,CAAC;oBACtB,CAAC;gBACH,CAAC;gBAED,IAAI,YAAY;oBAAE,WAAW,EAAE,CAAC;YAClC,CAAC;YAED,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;gBACpB,OAAO,CAAC,KAAK,CAAC,kBAAkB,WAAW,yBAAyB,UAAU,gBAAgB,CAAC,CAAC;YAClG,CAAC;YAED,OAAO,WAAW,CAAC;QACrB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,oCAAoC,UAAU,GAAG,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YACjH,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,UAAkB,EAAE,UAInC,EAAE;QACJ,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAE1D,eAAe;QACf,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;KAEhC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAoC,CAAC;QAEtD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,oBAAoB,UAAU,YAAY,CAAC,CAAC;QAC9D,CAAC;QAED,OAAO,CAAC,KAAK,CAAC,sCAAsC,UAAU,EAAE,CAAC,CAAC;QAElE,MAAM,KAAK,GAAG,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAEnE,OAAO,CAAC,KAAK,CAAC,sBAAsB,KAAK,CAAC,MAAM,cAAc,CAAC,CAAC;QAChE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,UAAkB,EAAE,WAAqB;QACpE,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAE1D,OAAO,CAAC,KAAK,CAAC,oCAAoC,UAAU,EAAE,CAAC,CAAC;QAEhE,yBAAyB;QACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;KAEhC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAEnB,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,oBAAoB,UAAU,YAAY,CAAC,CAAC;QAC9D,CAAC;QAED,+BAA+B;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;KAE9B,CAAC,CAAC,GAAG,CAAC,UAAU,CAA6B,CAAC;QAE/C,IAAI,WAAW,GAAG,CAAC,CAAC;QAEpB,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,MAAM,QAAQ,GAAG,UAAU,UAAU,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC,EAAE,CAAC;YAEjF,uBAAuB;YACvB,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;OAE9B,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAEjB,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO,CAAC,IAAI,CAAC,UAAU,UAAU,sBAAsB,CAAC,CAAC;gBACzD,SAAS;YACX,CAAC;YAED,4CAA4C;YAC5C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;SAGf,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YAChC,CAAC;YAED,WAAW,EAAE,CAAC;QAChB,CAAC;QAED,OAAO,CAAC,KAAK,CAAC,sBAAsB,WAAW,8BAA8B,CAAC,CAAC;QAC/E,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC;IACrD,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,UAAkB;QAC9C,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO;QAErB,OAAO,CAAC,KAAK,CAAC,4BAA4B,UAAU,EAAE,CAAC,CAAC;QAExD,sBAAsB;QACtB,MAAM,cAAc,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;KAEtC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAwB,CAAC;QAE1C,IAAI,mBAAmB,GAAG,CAAC,CAAC;QAC5B,IAAI,cAAc,GAAG,CAAC,CAAC;QAEvB,kCAAkC;QAClC,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;YACnC,mCAAmC;YACnC,MAAM,YAAY,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;OAEpC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACpB,mBAAmB,IAAI,YAAY,CAAC,OAAO,CAAC;YAE5C,2EAA2E;YAC3E,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,oCAAoC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC3E,cAAc,EAAE,CAAC;QACnB,CAAC;QAED,wBAAwB;QACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;KAEhC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAEnB,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,OAAO,CAAC,KAAK,CAAC,gBAAgB,mBAAmB,sBAAsB,CAAC,CAAC;YACzE,OAAO,CAAC,KAAK,CAAC,gBAAgB,cAAc,oBAAoB,CAAC,CAAC;YAClE,OAAO,CAAC,KAAK,CAAC,gBAAgB,QAAQ,CAAC,OAAO,yBAAyB,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,UAAkB;QACrC,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAE1D,OAAO,CAAC,KAAK,CAAC,0BAA0B,UAAU,EAAE,CAAC,CAAC;QAEtD,IAAI,CAAC;YACH,2BAA2B;YAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;OAEhC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAEnB,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,OAAO,CAAC,IAAI,CAAC,gBAAgB,UAAU,aAAa,CAAC,CAAC;gBACtD,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;YACxC,CAAC;YAED,+BAA+B;YAC/B,MAAM,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;YAEvC,6BAA6B;YAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;OAE9B,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAEnB,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;gBACvB,OAAO,CAAC,KAAK,CAAC,eAAe,UAAU,wBAAwB,CAAC,CAAC;gBACjE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YACvC,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,gBAAgB,UAAU,mBAAmB,CAAC,CAAC;gBAC5D,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;YACxC,CAAC;QAEH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,gCAAgC,UAAU,IAAI,EAAE,KAAK,CAAC,CAAC;YACrE,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,uBAAuB,CAAC,WAAqB;QACjD,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAE1D,OAAO,CAAC,KAAK,CAAC,qBAAqB,WAAW,CAAC,MAAM,YAAY,CAAC,CAAC;QAEnE,MAAM,OAAO,GAAoD,EAAE,CAAC;QACpE,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,IAAI,WAAW,GAAG,CAAC,CAAC;QAEpB,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;gBACrD,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACrB,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;oBACnB,YAAY,EAAE,CAAC;gBACjB,CAAC;qBAAM,CAAC;oBACN,WAAW,EAAE,CAAC;gBAChB,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,gCAAgC,UAAU,IAAI,EAAE,KAAK,CAAC,CAAC;gBACrE,OAAO,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;gBAC7C,WAAW,EAAE,CAAC;YAChB,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG;YACd,OAAO,EAAE,YAAY;YACrB,MAAM,EAAE,WAAW;YACnB,KAAK,EAAE,WAAW,CAAC,MAAM;SAC1B,CAAC;QAEF,OAAO,CAAC,KAAK,CAAC,8BAA8B,YAAY,aAAa,WAAW,YAAY,WAAW,CAAC,MAAM,QAAQ,CAAC,CAAC;QAExH,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,WAA8B;QAClD,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAE1D,wCAAwC;QACxC,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QAC1E,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAE9C,OAAO,CAAC,KAAK,CAAC,gBAAgB,QAAQ,CAAC,MAAM,YAAY,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAE3F,MAAM,OAAO,GAAoD,EAAE,CAAC;QACpE,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,IAAI,WAAW,GAAG,CAAC,CAAC;QAEpB,KAAK,MAAM,UAAU,IAAI,QAAQ,EAAE,CAAC;YAClC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;gBACrD,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACrB,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;oBACnB,YAAY,EAAE,CAAC;gBACjB,CAAC;qBAAM,CAAC;oBACN,WAAW,EAAE,CAAC;gBAChB,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,gCAAgC,UAAU,IAAI,EAAE,KAAK,CAAC,CAAC;gBACrE,OAAO,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;gBAC7C,WAAW,EAAE,CAAC;YAChB,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG;YACd,OAAO,EAAE,YAAY;YACrB,MAAM,EAAE,WAAW;YACnB,KAAK,EAAE,QAAQ,CAAC,MAAM;SACvB,CAAC;QAEF,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,mBAAmB,CAAC;QACrE,OAAO,CAAC,KAAK,CAAC,KAAK,SAAS,eAAe,YAAY,aAAa,WAAW,YAAY,QAAQ,CAAC,MAAM,QAAQ,CAAC,CAAC;QAEpH,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,eAAe,GAAG,IAAI;QACxC,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAE1D,OAAO,CAAC,KAAK,CAAC,uCAAuC,eAAe,GAAG,CAAC,CAAC;QAEzE,MAAM,KAAK,GAAG,eAAe;YAC3B,CAAC,CAAC,yEAAyE;YAC3E,CAAC,CAAC,+DAA+D,CAAC;QAEpE,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,EAAkE,CAAC;QAE1G,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACjC,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,GAAG,CAAC,eAAe,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAClF,UAAU,EAAE,GAAG,CAAC,UAAU;SAC3B,CAAC,CAAC,CAAC;QAEJ,OAAO,CAAC,KAAK,CAAC,WAAW,SAAS,CAAC,MAAM,YAAY,CAAC,CAAC;QAEvD,OAAO,EAAE,SAAS,EAAE,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,WAAW;QACf,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAE1D,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;QAEjD,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;KAEhC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,CAAC;YAC1B,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC;YAC1C,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,IAAI,IAAI,CAAC;YAC1C,UAAU,EAAE,GAAG,CAAC,UAAU;SAC3B,CAAC,CAAC,CAAC;QAEJ,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;KAEjC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,CAAC;YAC1B,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,aAAa,EAAE,GAAG,CAAC,aAAa;YAChC,aAAa,EAAE,GAAG,CAAC,aAAa;YAChC,YAAY,EAAE,GAAG,CAAC,YAAY;YAC9B,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,IAAI,IAAI,CAAC;YAC1C,UAAU,EAAE,GAAG,CAAC,UAAU;SAC3B,CAAC,CAAC,CAAC;QAEJ,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;KAEjC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,CAAC;YAC1B,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,IAAI,IAAI,CAAC;YAC1C,UAAU,EAAE,GAAG,CAAC,UAAU;SAC3B,CAAC,CAAC,CAAC;QAEJ,OAAO,CAAC,KAAK,CAAC,uBAAuB,QAAQ,CAAC,MAAM,cAAc,SAAS,CAAC,MAAM,eAAe,SAAS,CAAC,MAAM,YAAY,CAAC,CAAC;QAE/H,OAAO;YACL,QAAQ;YACR,SAAS;YACT,SAAS;YACT,QAAQ,EAAE;gBACR,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACpC,OAAO,EAAE,OAAO;gBAChB,WAAW,EAAE,QAAQ,CAAC,MAAM;gBAC5B,aAAa,EAAE,SAAS,CAAC,MAAM;gBAC/B,aAAa,EAAE,SAAS,CAAC,MAAM;aAChC;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,IAAgE,EAAE,UAA+B,EAAE,KAAK,EAAE,IAAI,EAAE;QAChI,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAE1D,OAAO,CAAC,KAAK,CAAC,wCAAwC,OAAO,CAAC,KAAK,KAAK,KAAK,MAAM,CAAC,CAAC;QAErF,MAAM,QAAQ,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;QAC7D,MAAM,OAAO,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;QAE5D,4CAA4C;QAC5C,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;YAC5B,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;YAC1C,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;YACrC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACtC,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC7D,CAAC;QAED,yCAAyC;QACzC,IAAI,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAClD,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;OAG5B,CAAC,CAAC;YACH,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACnC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CACrB,MAAM,CAAC,EAAE,EACT,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,UAAU,IAAI,SAAS,EAC9B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC,EACzC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,EACrC,MAAM,CAAC,UAAU,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAC9C,CAAC;gBACF,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;oBACvB,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBACtB,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACrB,CAAC;YACH,CAAC;QACH,CAAC;QAED,0CAA0C;QAC1C,IAAI,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YACpD,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;OAG5B,CAAC,CAAC;YACH,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACtC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CACrB,QAAQ,CAAC,EAAE,EACX,QAAQ,CAAC,aAAa,EACtB,QAAQ,CAAC,aAAa,EACtB,QAAQ,CAAC,YAAY,EACrB,QAAQ,CAAC,UAAU,IAAI,GAAG,EAC1B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC,EACvC,QAAQ,CAAC,UAAU,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAChD,CAAC;gBACF,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;oBACvB,QAAQ,CAAC,SAAS,EAAE,CAAC;gBACvB,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,SAAS,EAAE,CAAC;gBACtB,CAAC;YACH,CAAC;QACH,CAAC;QAED,2CAA2C;QAC3C,IAAI,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YACpD,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;OAG5B,CAAC,CAAC;YACH,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACjC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CACrB,GAAG,CAAC,EAAE,EACN,GAAG,CAAC,OAAO,EACX,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,EAClC,GAAG,CAAC,UAAU,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAC3C,CAAC;gBACF,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;oBACvB,QAAQ,CAAC,SAAS,EAAE,CAAC;gBACvB,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,SAAS,EAAE,CAAC;gBACtB,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,CAAC,KAAK,CAAC,uBAAuB,QAAQ,CAAC,QAAQ,cAAc,QAAQ,CAAC,SAAS,eAAe,QAAQ,CAAC,SAAS,qBAAqB,CAAC,CAAC;QAE9I,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,KAAa,EAAE,KAAK,GAAG,CAAC,EAAE,QAAQ,GAAG,IAAI;QAC1D,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC1D,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAEjE,OAAO,CAAC,KAAK,CAAC,+BAA+B,KAAK,GAAG,CAAC,CAAC;QAEvD,6DAA6D;QAC7D,MAAM,SAAS,GAAG,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChD,IAAI,eAAe,GAAkB,IAAI,CAAC;QAE1C,IAAI,SAAS,EAAE,CAAC;YACd,eAAe,GAAG,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC;YACzD,IAAI,eAAe,EAAE,CAAC;gBACpB,OAAO,CAAC,KAAK,CAAC,sBAAsB,KAAK,QAAQ,eAAe,GAAG,CAAC,CAAC;YACvE,CAAC;QACH,CAAC;QAED,kEAAkE;QAClE,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACvE,MAAM,mBAAmB,GAAG,eAAe,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,iBAAiB,CAAC,eAAe,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAE/G,uBAAuB;QACvB,MAAM,YAAY,GAAG,CAAC,SAAuB,EAAE,CAAS,EAAE,EAAE;YAC1D,OAAO,IAAI,CAAC,EAAG,CAAC,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;OAqBvB,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAcrC,CAAC;QACL,CAAC,CAAC;QAEF,oDAAoD;QACpD,MAAM,eAAe,GAAG,YAAY,CAAC,cAAc,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QAChE,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,CAAC,CAAC,YAAY,CAAC,mBAAmB,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAElG,2DAA2D;QAC3D,MAAM,SAAS,GAAG,IAAI,GAAG,EAAqC,CAAC;QAC/D,KAAK,MAAM,CAAC,IAAI,eAAe,EAAE,CAAC;YAChC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC/B,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,iBAAiB,EAAE,CAAC;YAClC,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC3C,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBAChD,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;QACD,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;QAE7F,sEAAsE;QACtE,MAAM,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC9C,IAAI,CAAC;YACH,MAAM,cAAc,GAAG,CAAC,CAAS,EAAE,EAAE;gBACnC,yEAAyE;gBACzE,MAAM,SAAS,GAAG,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;gBACxD,IAAI,CAAC,SAAS;oBAAE,OAAO,EAAE,CAAC;gBAC1B,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAC/D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;oBAAE,OAAO,EAAE,CAAC;gBAClC,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACtD,OAAO,IAAI,CAAC,EAAG,CAAC,OAAO,CAAC;;;;;;;SAOvB,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,GAAG,CAAC,CAIvB,CAAC;YACL,CAAC,CAAC;YAEF,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;YAC1C,MAAM,aAAa,GAAG,eAAe,CAAC,CAAC,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAE7E,sDAAsD;YACtD,MAAM,YAAY,GAAG,IAAI,GAAG,EAAiE,CAAC;YAC9F,IAAI,IAAI,GAAG,CAAC,CAAC;YACb,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;gBAC5B,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBACrF,IAAI,EAAE,CAAC;YACT,CAAC;YACD,KAAK,MAAM,CAAC,IAAI,aAAa,EAAE,CAAC;gBAC9B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAClC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;oBACrF,IAAI,EAAE,CAAC;gBACT,CAAC;YACH,CAAC;YAED,gCAAgC;YAChC,MAAM,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;YAChD,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;YAE1E,wCAAwC;YACxC,MAAM,CAAC,GAAG,EAAE,CAAC;YACb,KAAK,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,YAAY,EAAE,CAAC;gBAChD,MAAM,YAAY,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;gBAC9C,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YACzC,CAAC;YAED,kDAAkD;YAClD,KAAK,MAAM,CAAC,OAAO,CAAC,IAAI,YAAY,EAAE,CAAC;gBACrC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAG,CAAC,OAAO,CAAC;;;;;;;;;;;;;;;;;WAiBjC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAQ,CAAC;oBACvB,IAAI,QAAQ,EAAE,CAAC;wBACb,aAAa,CAAC,IAAI,CAAC;4BACjB,GAAG,QAAQ;4BACX,QAAQ,EAAE,GAAG;yBACd,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;YAED,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC;YACnC,MAAM,YAAY,GAAG,CAAC,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;YAC1F,OAAO,CAAC,KAAK,CAAC,mBAAmB,QAAQ,aAAa,YAAY,gBAAgB,WAAW,CAAC,IAAI,UAAU,CAAC,CAAC;QAChH,CAAC;QAAC,OAAO,QAAQ,EAAE,CAAC;YAClB,OAAO,CAAC,KAAK,CAAC,oDAAoD,EAAE,QAAQ,YAAY,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC/H,CAAC;QAED,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,OAAO,CAAC,KAAK,CAAC,2CAA2C,KAAK,GAAG,CAAC,CAAC;YACnE,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,qEAAqE;QACrE,IAAI,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAC;QAC1C,IAAI,oBAAoB,GAAG,IAAI,GAAG,EAAU,CAAC;QAC7C,IAAI,QAAQ,EAAE,CAAC;YACb,+EAA+E;YAC/E,IAAI,CAAC;gBACH,MAAM,cAAc,GAAG,CAAC,SAAuB,EAAE,EAAE;oBACjD,OAAO,IAAI,CAAC,EAAG,CAAC,OAAO,CAAC;;;;;;;;;;;WAWvB,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAiE,CAAC;gBACxG,CAAC,CAAC;gBAEF,6CAA6C;gBAC7C,MAAM,SAAS,GAAG,IAAI,GAAG,EAAiE,CAAC;gBAC3F,KAAK,MAAM,CAAC,IAAI,cAAc,CAAC,cAAc,CAAC,EAAE,CAAC;oBAC/C,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;gBAChC,CAAC;gBACD,IAAI,mBAAmB,EAAE,CAAC;oBACxB,KAAK,MAAM,CAAC,IAAI,cAAc,CAAC,mBAAmB,CAAC,EAAE,CAAC;wBACpD,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;wBAC5C,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC;4BAChD,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;wBAChC,CAAC;oBACH,CAAC;gBACH,CAAC;gBACD,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;gBAE/F,KAAK,MAAM,MAAM,IAAI,eAAe,EAAE,CAAC;oBACrC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;oBACxD,IAAI,UAAU,GAAG,GAAG,EAAE,CAAC;wBACrB,oBAAoB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;wBAEtC,2CAA2C;wBAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;;;;;;aAUjC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAiC,CAAC;wBAE7F,SAAS,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;oBACxE,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,uDAAuD,EAAE,KAAK,CAAC,CAAC;gBAC9E,oDAAoD;gBACpD,MAAM,aAAa,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;gBACvD,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;oBACnC,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;;;;;;WAUjC,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAiC,CAAC;oBACvD,SAAS,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;gBACxE,CAAC;YACH,CAAC;QACH,CAAC;QAED,0CAA0C;QAC1C,MAAM,eAAe,GAA2B,EAAE,CAAC;QAEnD,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;YACnC,gEAAgE;YAChE,IAAI,aAAa,GAAa,EAAE,CAAC;YACjC,IAAI,MAAM,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;gBACrC,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;SAK/B,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACnD,CAAC;iBAAM,IAAI,MAAM,CAAC,UAAU,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gBAC9D,yCAAyC;gBACzC,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;SAE9B,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAiC,CAAC;gBACzD,IAAI,MAAM,EAAE,CAAC;oBACX,aAAa,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAChC,CAAC;YACH,CAAC;iBAAM,IAAI,MAAM,CAAC,UAAU,KAAK,cAAc,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;gBAC1E,6CAA6C;gBAC7C,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;;SAMnC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,CAA6D,CAAC;gBAC3F,IAAI,WAAW,EAAE,CAAC;oBAChB,aAAa,GAAG,CAAC,WAAW,CAAC,WAAW,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;gBACrE,CAAC;YACH,CAAC;YAED,mCAAmC;YACnC,IAAI,UAAU,GAAG,CAAC,CAAC;YACnB,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,aAAa,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;gBAEvD,wCAAwC;gBACxC,IAAI,MAAM,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;oBACnC,UAAU,IAAI,IAAI,CAAC,CAAC,mCAAmC;gBACzD,CAAC;qBAAM,IAAI,MAAM,CAAC,UAAU,KAAK,cAAc,EAAE,CAAC;oBAChD,UAAU,IAAI,IAAI,CAAC,CAAC,iCAAiC;gBACvD,CAAC;gBAED,sCAAsC;gBACtC,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;gBACvC,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;oBACnC,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;oBACzC,yDAAyD;oBACzD,IAAI,oBAAoB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;wBACrC,UAAU,IAAI,GAAG,CAAC;oBACpB,CAAC;oBACD,wCAAwC;yBACnC,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,WAAW,CAAC,EAAE,CAAC;wBACpE,UAAU,IAAI,GAAG,CAAC;oBACpB,CAAC;oBACD,4DAA4D;yBACvD,IAAI,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;wBAC9E,UAAU,IAAI,GAAG,CAAC;oBACpB,CAAC;oBACD,2BAA2B;yBACtB,IAAI,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;wBAC9F,UAAU,IAAI,IAAI,CAAC;oBACrB,CAAC;oBACD,uCAAuC;oBACvC,IAAI,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;wBAClC,UAAU,IAAI,IAAI,CAAC;oBACrB,CAAC;gBACH,CAAC;YACH,CAAC;YAED,4BAA4B;YAC5B,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,GAAG,MAAM,IAAI,CAAC,sBAAsB,CACjF,MAAM,CAAC,IAAI,EACX,cAAc,EACd,aAAa,EACb,MAAM,CAAC,UAAU,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,oCAAoC;aAClF,CAAC;YAEF,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;YAC9D,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACvD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,cAAc,CAAC,GAAG,UAAU,GAAG,QAAQ,CAAC;YAEtF,yCAAyC;YACzC,IAAI,aAAqB,CAAC;YAC1B,IAAI,QAAgB,CAAC;YAErB,IAAI,MAAM,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;gBACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;gBACjD,aAAa,GAAG,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,IAAI,IAAI,MAAM,CAAC,WAAW,IAAI,kBAAkB,CAAC;gBAC5F,QAAQ,GAAG,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC;YACtC,CAAC;iBAAM,IAAI,MAAM,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;gBAC1C,aAAa,GAAG,wBAAwB,CAAC;gBACzC,QAAQ,GAAG,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC;YACpC,CAAC;iBAAM,IAAI,MAAM,CAAC,UAAU,KAAK,cAAc,EAAE,CAAC;gBAChD,aAAa,GAAG,8BAA8B,CAAC;gBAC/C,QAAQ,GAAG,MAAM,CAAC,eAAe,IAAI,EAAE,CAAC;YAC1C,CAAC;iBAAM,CAAC;gBACN,aAAa,GAAG,gBAAgB,CAAC;gBACjC,QAAQ,GAAG,EAAE,CAAC;YAChB,CAAC;YAED,eAAe,CAAC,IAAI,CAAC;gBACnB,eAAe,EAAE,UAAU;gBAC3B,aAAa,EAAE,YAAY;gBAC3B,eAAe,EAAE,OAAO;gBACxB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,cAAc,EAAE,aAAa;gBAC7B,QAAQ,EAAE,aAAa;gBACvB,iBAAiB,EAAE,gBAAgB;gBACnC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;gBAC9C,SAAS,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;gBAC9C,sBAAsB,EAAE,IAAI;gBAC5B,UAAU,EAAE,MAAM,CAAC,UAAoD;gBACvE,SAAS,EAAE,QAAQ;aACpB,CAAC,CAAC;QACL,CAAC;QAED,2CAA2C;QAC3C,MAAM,YAAY,GAAG,eAAe;aACjC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,GAAG,CAAC,CAAC,eAAe,CAAC;aACrD,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAEnB,wBAAwB;QACxB,MAAM,UAAU,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC,MAAM,CAAC;QAChF,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,MAAM,CAAC;QACjF,MAAM,UAAU,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,cAAc,CAAC,CAAC,MAAM,CAAC;QAEpF,OAAO,CAAC,KAAK,CAAC,uCAAuC,YAAY,CAAC,MAAM,aAAa,UAAU,UAAU,aAAa,cAAc,UAAU,iBAAiB,CAAC,CAAC;QAEjK,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,iDAAiD;IACjD,KAAK,CAAC,kBAAkB,CAAC,OAAe,EAAE,kBAAkB,GAAG,IAAI;QACjE,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAE1D,OAAO,CAAC,KAAK,CAAC,0CAA0C,OAAO,EAAE,CAAC,CAAC;QAEnE,qBAAqB;QACrB,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;;;;;;;KAW7B,CAAC,CAAC,GAAG,CAAC,OAAO,CAOD,CAAC;QAEd,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,iBAAiB,OAAO,YAAY,CAAC,CAAC;QACxD,CAAC;QAED,8BAA8B;QAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;;KAMhC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAE5C,IAAI,iBAAiB,GAA4E,EAAE,CAAC;QAEpG,IAAI,kBAAkB,EAAE,CAAC;YACvB,4DAA4D;YAC5D,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;OAInC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,WAAW,GAAG,CAAC,CAAmD,CAAC;YAEnG,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;OAIlC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,WAAW,GAAG,CAAC,CAAmD,CAAC;YAEnG,IAAI,WAAW,EAAE,CAAC;gBAChB,iBAAiB,CAAC,IAAI,CAAC;oBACrB,QAAQ,EAAE,WAAW,CAAC,QAAQ;oBAC9B,IAAI,EAAE,WAAW,CAAC,IAAI;oBACtB,QAAQ,EAAE,QAAQ;iBACnB,CAAC,CAAC;YACL,CAAC;YAED,IAAI,UAAU,EAAE,CAAC;gBACf,iBAAiB,CAAC,IAAI,CAAC;oBACrB,QAAQ,EAAE,UAAU,CAAC,QAAQ;oBAC7B,IAAI,EAAE,UAAU,CAAC,IAAI;oBACrB,QAAQ,EAAE,OAAO;iBAClB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAChD,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,IAAI,IAAI,KAAK,CAAC,WAAW,CAAC;QAE3E,OAAO,CAAC,KAAK,CAAC,qCAAqC,iBAAiB,CAAC,MAAM,qBAAqB,CAAC,CAAC;QAElG,OAAO;YACL,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,SAAS,EAAE,KAAK,CAAC,IAAI;YACrB,cAAc,EAAE,aAAa;YAC7B,kBAAkB,EAAE,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS;YAChF,QAAQ,EAAE,QAAQ;YAClB,QAAQ,EAAE,QAAQ;SACnB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,sBAAsB;QAC1B,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAE1D,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;KAInC,CAAC,CAAC,GAAG,EAA6C,CAAC;QAEpD,MAAM,iBAAiB,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;KAIzC,CAAC,CAAC,GAAG,EAA+C,CAAC;QAEtD,MAAM,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;KAErC,CAAC,CAAC,GAAG,EAAuB,CAAC;QAE9B,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;KAElC,CAAC,CAAC,GAAG,EAAuB,CAAC;QAE9B,OAAO;YACL,QAAQ,EAAE;gBACR,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;gBAC7D,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;aAC3E;YACD,aAAa,EAAE;gBACb,KAAK,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;gBACnE,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;aACnF;YACD,SAAS,EAAE,aAAa,CAAC,KAAK;YAC9B,MAAM,EAAE,UAAU,CAAC,KAAK;SACzB,CAAC;IACJ,CAAC;IAED,0BAA0B;IAE1B,KAAK,CAAC,kBAAkB;QACtB,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAE1D,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEvD,qBAAqB;QACrB,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;YAC7B,gBAAgB,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,MAAM,cAAc,GAAG,gBAAgB,CAAC,iBAAiB,EAAE,CAAC;QAC5D,MAAM,aAAa,GAAG,gBAAgB,CAAC,cAAc,EAAE,CAAC;QACxD,MAAM,YAAY,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;QAElE,OAAO;YACL,cAAc;YACd,UAAU,EAAE,aAAa;YACzB,YAAY;SACb,CAAC;IACJ,CAAC;IAID,KAAK,CAAC,iBAAiB,CAAC,aAAqB;QAC3C,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAE1D,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEvD,qBAAqB;QACrB,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;YAC7B,gBAAgB,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,MAAM,cAAc,GAAG,gBAAgB,CAAC,iBAAiB,EAAE,CAAC;QAE5D,IAAI,aAAa,IAAI,cAAc,EAAE,CAAC;YACpC,OAAO;gBACL,UAAU,EAAE,CAAC;gBACb,cAAc;gBACd,oBAAoB,EAAE,EAAE;aACzB,CAAC;QACJ,CAAC;QAED,MAAM,oBAAoB,GAAG,UAAU;aACpC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,GAAG,aAAa,IAAI,CAAC,CAAC,OAAO,IAAI,cAAc,CAAC;aACrE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;QAEzC,gBAAgB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QAEzC,OAAO;YACL,UAAU,EAAE,oBAAoB,CAAC,MAAM;YACvC,cAAc,EAAE,gBAAgB,CAAC,iBAAiB,EAAE;YACpD,oBAAoB,EAAE,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACnD,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,WAAW,EAAE,CAAC,CAAC,WAAW;aAC3B,CAAC,CAAC;SACJ,CAAC;IACJ,CAAC;CACF;AAED,yBAAyB;AACzB,MAAM,YAAY,GAAG,IAAI,wBAAwB,EAAE,CAAC;AAEpD,mBAAmB;AACnB,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC;IACxB,IAAI,EAAE,mBAAmB;IACzB,OAAO,EAAE,OAAO;CACjB,EAAE;IACC,YAAY,EAAE;QACZ,KAAK,EAAE,EAAE;KACV;CACJ,CAAC,CAAC;AAEH,uDAAuD;AACvD,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;IAC1D,MAAM,KAAK,GAAG,cAAc,EAAE,CAAC;IAC/B,OAAO,CAAC,KAAK,CAAC,cAAc,KAAK,CAAC,MAAM,yCAAyC,CAAC,CAAC;IACnF,OAAO,EAAE,KAAK,EAAE,CAAC;AACnB,CAAC,CAAC,CAAC;AAEH,6CAA6C;AAC7C,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAY,EAAE,EAAE;IACrE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAEjD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,mCAAmC,IAAI,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,IAAI,CAAC;QACH,iDAAiD;QACjD,MAAM,aAAa,GAAG,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAEnD,QAAQ,IAAI,EAAE,CAAC;YACb,qBAAqB;YACrB,KAAK,gBAAgB;gBACnB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,YAAY,CAAC,cAAc,CAAE,aAAqB,CAAC,QAAoB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;YACxJ,KAAK,iBAAiB;gBACpB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,YAAY,CAAC,eAAe,CAAE,aAAqB,CAAC,SAAuB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;YAC5J,KAAK,iBAAiB;gBACpB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,YAAY,CAAC,eAAe,CAAE,aAAqB,CAAC,YAA4D,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;YACjM,KAAK,gBAAgB;gBACnB,MAAM,YAAY,CAAC,cAAc,CAAE,aAAqB,CAAC,WAAuB,CAAC,CAAC;gBAClF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,+BAA+B,EAAE,CAAC,EAAE,CAAC;YAChF,KAAK,oBAAoB;gBACvB,MAAM,YAAY,CAAC,kBAAkB,CAAE,aAAqB,CAAC,SAA6D,CAAC,CAAC;gBAC5H,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,mCAAmC,EAAE,CAAC,EAAE,CAAC;YACpF,KAAK,iBAAiB;gBACpB,MAAM,YAAY,CAAC,eAAe,CAAE,aAAqB,CAAC,SAAuB,CAAC,CAAC;gBACnF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,gCAAgC,EAAE,CAAC,EAAE,CAAC;YACjF,KAAK,iBAAiB;gBACpB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,YAAY,CAAC,eAAe,CAAE,aAAqB,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;YAC5I,KAAK,WAAW;gBACd,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,YAAY,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;YACxG,KAAK,aAAa;gBAChB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,YAAY,CAAC,WAAW,CAAE,aAAqB,CAAC,KAAe,EAAG,aAAqB,CAAC,KAAK,IAAI,EAAE,EAAG,aAAqB,CAAC,KAAK,EAAG,aAAqB,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;YAChP,KAAK,WAAW;gBACd,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,YAAY,CAAC,SAAS,CAAE,aAAqB,CAAC,KAAiB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;YAChJ,KAAK,cAAc;gBACjB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,YAAY,CAAC,YAAY,CACpF,aAAqB,CAAC,WAAuB,EAC7C,aAAqB,CAAC,KAAK,IAAI,CAAC,EAChC,aAAqB,CAAC,YAAY,CACpC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;YAEnB,gBAAgB;YAChB,KAAK,eAAe;gBAClB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,YAAY,CAAC,aAAa,CAAE,aAAqB,CAAC,EAAY,EAAG,aAAqB,CAAC,OAAiB,EAAG,aAAqB,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;YAChO,KAAK,eAAe;gBAClB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,YAAY,CAAC,aAAa,CAAE,aAAqB,CAAC,UAAoB,EAAE,EAAE,SAAS,EAAG,aAAqB,CAAC,SAAS,EAAE,OAAO,EAAG,aAAqB,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;YACjP,KAAK,aAAa;gBAChB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,YAAY,CAAC,WAAW,CAAE,aAAqB,CAAC,UAAoB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;YACrJ,KAAK,cAAc;gBACjB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,YAAY,CAAC,YAAY,CAAE,aAAqB,CAAC,UAAoB,EAAE,EAAE,SAAS,EAAG,aAAqB,CAAC,SAAS,EAAE,kBAAkB,EAAG,aAAqB,CAAC,kBAAkB,EAAE,cAAc,EAAG,aAAqB,CAAC,cAAc,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;YAC7T,KAAK,wBAAwB;gBAC3B,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,YAAY,CAAC,sBAAsB,CAAE,aAAqB,CAAC,UAAoB,EAAG,aAAqB,CAAC,WAAuB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;YAChN,KAAK,cAAc;gBACjB,MAAM,KAAK,GAAG,OAAQ,aAAqB,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAE,aAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBAClG,MAAM,QAAQ,GAAI,aAAqB,CAAC,QAAQ,KAAK,KAAK,CAAC;gBAC3D,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,YAAY,CAAC,YAAY,CAAE,aAAqB,CAAC,KAAe,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;YAClK,KAAK,oBAAoB;gBACvB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,YAAY,CAAC,kBAAkB,CAAE,aAAqB,CAAC,OAAiB,EAAG,aAAqB,CAAC,kBAAkB,KAAK,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;YAC9M,KAAK,wBAAwB;gBAC3B,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,YAAY,CAAC,sBAAsB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;YACrH,KAAK,iBAAiB;gBACpB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,YAAY,CAAC,eAAe,CAAE,aAAqB,CAAC,WAAgC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;YACrK,KAAK,eAAe;gBAClB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,YAAY,CAAC,aAAa,CAAE,aAAqB,CAAC,eAAe,KAAK,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;YAE5J,8BAA8B;YAC9B,KAAK,kBAAkB;gBACrB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,YAAY,CAAC,gBAAgB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;YAE/G,2BAA2B;YAC3B,KAAK,aAAa;gBAChB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,YAAY,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;YAC1G,KAAK,aAAa;gBAChB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,YAAY,CAAC,WAAW,CAAE,aAAqB,CAAC,IAAI,EAAE,EAAE,KAAK,EAAG,aAAqB,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;YAExL,uBAAuB;YACvB,KAAK,oBAAoB;gBACvB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,YAAY,CAAC,kBAAkB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;YACjH,KAAK,eAAe;gBAClB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,YAAY,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;YAC5G,KAAK,mBAAmB;gBACtB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,YAAY,CAAC,iBAAiB,CAAE,aAAqB,CAAC,aAAuB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;YAE9J;gBACE,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,OAAO,CAAC,KAAK,CAAC,8BAA8B,IAAI,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YACpE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC;QAC1E,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,KAAK,UAAU,IAAI;IACjB,IAAI,CAAC;QACH,MAAM,YAAY,CAAC,UAAU,EAAE,CAAC;QAEhC,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAChC,OAAO,CAAC,KAAK,CAAC,6DAA6D,CAAC,CAAC;QAE7E,6EAA6E;QAC7E,MAAM,QAAQ,GAAG,GAAG,EAAE;YACpB,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;YACrC,IAAI,CAAC;gBAAC,YAAY,CAAC,OAAO,EAAE,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;QAC1C,CAAC,CAAC;QACF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC/B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAChC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAE/B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;QACrD,YAAY,CAAC,OAAO,EAAE,CAAC;QACvB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;IAC/C,YAAY,CAAC,OAAO,EAAE,CAAC;IACvB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
Binary file
@@ -1 +1 @@
1
- {"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../../../src/migrations/migrations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnD,eAAO,MAAM,UAAU,EAAE,SAAS,EAuXjC,CAAC"}
1
+ {"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../../../src/migrations/migrations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnD,eAAO,MAAM,UAAU,EAAE,SAAS,EA+ZjC,CAAC"}
@@ -335,6 +335,41 @@ export const migrations = [
335
335
  db.exec(`DROP TABLE IF EXISTS entities_fts`);
336
336
  db.exec(`DROP TABLE IF EXISTS chunks_fts`);
337
337
  }
338
+ },
339
+ {
340
+ version: 8,
341
+ description: 'Upgrade embedding dimensions from 1024 to 4096 (Ollama Qwen3-Embedding-8B)',
342
+ up: (db) => {
343
+ db.exec(`DROP TABLE IF EXISTS chunks`);
344
+ db.exec(`DROP TABLE IF EXISTS entity_embeddings`);
345
+ db.exec(`
346
+ CREATE VIRTUAL TABLE chunks USING vec0(
347
+ embedding FLOAT[4096]
348
+ )
349
+ `);
350
+ db.exec(`
351
+ CREATE VIRTUAL TABLE entity_embeddings USING vec0(
352
+ embedding FLOAT[4096]
353
+ )
354
+ `);
355
+ // Clear stale embedding metadata (embeddings need to be regenerated)
356
+ db.exec(`DELETE FROM entity_embedding_metadata`);
357
+ },
358
+ down: (db) => {
359
+ db.exec(`DROP TABLE IF EXISTS chunks`);
360
+ db.exec(`DROP TABLE IF EXISTS entity_embeddings`);
361
+ db.exec(`
362
+ CREATE VIRTUAL TABLE chunks USING vec0(
363
+ embedding FLOAT[1024]
364
+ )
365
+ `);
366
+ db.exec(`
367
+ CREATE VIRTUAL TABLE entity_embeddings USING vec0(
368
+ embedding FLOAT[1024]
369
+ )
370
+ `);
371
+ db.exec(`DELETE FROM entity_embedding_metadata`);
372
+ }
338
373
  }
339
374
  ];
340
375
  //# sourceMappingURL=migrations.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"migrations.js","sourceRoot":"","sources":["../../../src/migrations/migrations.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,UAAU,GAAgB;IACrC;QACE,OAAO,EAAE,CAAC;QACV,WAAW,EAAE,+DAA+D;QAC5E,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE;YACT,2DAA2D;YAC3D,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;YAEhC,qCAAqC;YACrC,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;OAUP,CAAC,CAAC;YAEH,+FAA+F;YAC/F,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;OAYP,CAAC,CAAC;YAEH,0BAA0B;YAC1B,EAAE,CAAC,IAAI,CAAC;;;;;;;OAOP,CAAC,CAAC;YAEH,yDAAyD;YACzD,EAAE,CAAC,IAAI,CAAC;;;;OAIP,CAAC,CAAC;YAEH,kDAAkD;YAClD,EAAE,CAAC,IAAI,CAAC;;;;OAIP,CAAC,CAAC;YAEH,uEAAuE;YACvE,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;OAaP,CAAC,CAAC;YAEH,4BAA4B;YAC5B,EAAE,CAAC,IAAI,CAAC;;;;;;;;OAQP,CAAC,CAAC;YAEH,4BAA4B;YAC5B,EAAE,CAAC,IAAI,CAAC;;;;;;;;OAQP,CAAC,CAAC;YAEH,iBAAiB;YACjB,EAAE,CAAC,IAAI,CAAC;;;;;;;OAOP,CAAC,CAAC;QACL,CAAC;QACD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;YACX,EAAE,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;YAC/C,EAAE,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;YAC1D,EAAE,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;YAClD,EAAE,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;YACvC,EAAE,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;YAC/C,EAAE,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;YAC1C,EAAE,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;YAC9C,EAAE,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;QAC3C,CAAC;KACF;IAED;QACE,OAAO,EAAE,CAAC;QACV,WAAW,EAAE,4EAA4E;QACzF,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE;YACT,sEAAsE;YACtE,EAAE,CAAC,IAAI,CAAC;;OAEP,CAAC,CAAC;YAEH,EAAE,CAAC,IAAI,CAAC;;OAEP,CAAC,CAAC;YAEH,EAAE,CAAC,IAAI,CAAC;;OAEP,CAAC,CAAC;YAEH,kCAAkC;YAClC,EAAE,CAAC,IAAI,CAAC;;;;OAIP,CAAC,CAAC;YAEH,uDAAuD;YACvD,EAAE,CAAC,IAAI,CAAC;;OAEP,CAAC,CAAC;QACL,CAAC;QACD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;YACX,8EAA8E;YAC9E,kDAAkD;YAClD,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;QACjF,CAAC;KACF;IAED;QACE,OAAO,EAAE,CAAC;QACV,WAAW,EAAE,sEAAsE;QACnF,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE;YACT,iCAAiC;YACjC,EAAE,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;YACvC,EAAE,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;YAElD,+BAA+B;YAC/B,EAAE,CAAC,IAAI,CAAC;;;;OAIP,CAAC,CAAC;YACH,EAAE,CAAC,IAAI,CAAC;;;;OAIP,CAAC,CAAC;YAEH,qEAAqE;YACrE,EAAE,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;QACnD,CAAC;QACD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;YACX,2BAA2B;YAC3B,EAAE,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;YACvC,EAAE,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;YAElD,EAAE,CAAC,IAAI,CAAC;;;;OAIP,CAAC,CAAC;YACH,EAAE,CAAC,IAAI,CAAC;;;;OAIP,CAAC,CAAC;YAEH,EAAE,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;QACnD,CAAC;KACF;IAED;QACE,OAAO,EAAE,CAAC;QACV,WAAW,EAAE,iDAAiD;QAC9D,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE;YACT,+EAA+E;YAC/E,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC,GAAG,EAA6B,CAAC;YACjG,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;YACjE,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,EAAE,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC;YAC9E,CAAC;QACH,CAAC;QACD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;YACX,gEAAgE;YAChE,gDAAgD;QAClD,CAAC;KACF;IAED;QACE,OAAO,EAAE,CAAC;QACV,WAAW,EAAE,wDAAwD;QACrE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE;YACT,iCAAiC;YACjC,EAAE,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;YACvC,EAAE,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;YAElD,gCAAgC;YAChC,EAAE,CAAC,IAAI,CAAC;;;;OAIP,CAAC,CAAC;YACH,EAAE,CAAC,IAAI,CAAC;;;;OAIP,CAAC,CAAC;YAEH,qEAAqE;YACrE,EAAE,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;QACnD,CAAC;QACD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;YACX,2BAA2B;YAC3B,EAAE,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;YACvC,EAAE,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;YAElD,EAAE,CAAC,IAAI,CAAC;;;;OAIP,CAAC,CAAC;YACH,EAAE,CAAC,IAAI,CAAC;;;;OAIP,CAAC,CAAC;YAEH,EAAE,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;QACnD,CAAC;KACF;IAED;QACE,OAAO,EAAE,CAAC;QACV,WAAW,EAAE,qEAAqE;QAClF,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE;YACT,EAAE,CAAC,IAAI,CAAC;;;;;OAKP,CAAC,CAAC;QACL,CAAC;QACD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;YACX,EAAE,CAAC,IAAI,CAAC;;;;;OAKP,CAAC,CAAC;QACL,CAAC;KACF;IAED;QACE,OAAO,EAAE,CAAC;QACV,WAAW,EAAE,4EAA4E;QACzF,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE;YACT,yCAAyC;YACzC,EAAE,CAAC,IAAI,CAAC;;;;;;OAMP,CAAC,CAAC;YAEH,+CAA+C;YAC/C,EAAE,CAAC,IAAI,CAAC;;;;;;OAMP,CAAC,CAAC;YAEH,0CAA0C;YAC1C,EAAE,CAAC,IAAI,CAAC;;;OAGP,CAAC,CAAC;YAEH,EAAE,CAAC,IAAI,CAAC;;;OAGP,CAAC,CAAC;YAEH,+CAA+C;YAC/C,EAAE,CAAC,IAAI,CAAC;;;;;OAKP,CAAC,CAAC;YAEH,EAAE,CAAC,IAAI,CAAC;;;;;OAKP,CAAC,CAAC;YAEH,EAAE,CAAC,IAAI,CAAC;;;;;;;OAOP,CAAC,CAAC;YAEH,qDAAqD;YACrD,EAAE,CAAC,IAAI,CAAC;;;;;OAKP,CAAC,CAAC;YAEH,EAAE,CAAC,IAAI,CAAC;;;;;OAKP,CAAC,CAAC;YAEH,EAAE,CAAC,IAAI,CAAC;;;;;;;OAOP,CAAC,CAAC;QACL,CAAC;QACD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;YACX,sBAAsB;YACtB,EAAE,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;YACtD,EAAE,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;YACtD,EAAE,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;YACtD,EAAE,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;YACpD,EAAE,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;YACpD,EAAE,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;YAEpD,2BAA2B;YAC3B,EAAE,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;YAC7C,EAAE,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QAC7C,CAAC;KACF;CACF,CAAC"}
1
+ {"version":3,"file":"migrations.js","sourceRoot":"","sources":["../../../src/migrations/migrations.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rag-memory-epf-mcp",
3
- "version": "1.9.0",
3
+ "version": "2.0.0",
4
4
  "description": "MCP server for project-local RAG memory with knowledge graph and multilingual vector search",
5
5
  "license": "MIT",
6
6
  "author": "bripin123",
@@ -23,7 +23,6 @@
23
23
  "watch": "tsc --watch"
24
24
  },
25
25
  "dependencies": {
26
- "@huggingface/transformers": "^3.5.1",
27
26
  "@modelcontextprotocol/sdk": "^1.27.1",
28
27
  "better-sqlite3": "^12.8.0",
29
28
  "sqlite-vec": "^0.1.7",