@simpletoolsindiaorg/engi-mcp 1.0.0 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,256 +3,224 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.RetrievalEngine = void 0;
4
4
  exports.getRetrievalEngine = getRetrievalEngine;
5
5
  const indexer_js_1 = require("../indexer/indexer.js");
6
+ // Stop words as module-level Set — created once, O(1) lookup
7
+ const STOP_WORDS = new Set([
8
+ 'function', 'class', 'method', 'variable', 'const', 'let', 'var',
9
+ 'return', 'import', 'export', 'async', 'await', 'the', 'and', 'for',
10
+ 'with', 'this', 'that', 'from', 'type', 'interface', 'new', 'not'
11
+ ]);
6
12
  class RetrievalEngine {
7
- /**
8
- * Find the minimum relevant scope for a task
9
- */
13
+ // ── Public API ─────────────────────────────────────────────────────────────
10
14
  async findScope(query) {
11
- const indexer = (0, indexer_js_1.getIndexer)();
12
- const index = indexer.getIndex();
13
- if (!index) {
14
- return {
15
- files: [],
16
- modules: [],
17
- symbols: [],
18
- tests: [],
19
- docs: [],
20
- confidence: 0
21
- };
22
- }
15
+ const index = (0, indexer_js_1.getIndexer)().getIndex();
16
+ if (!index)
17
+ return { files: [], modules: [], symbols: [], tests: [], docs: [], confidence: 0 };
23
18
  const limit = query.limit || 10;
24
19
  const keywords = this.normalizeKeywords(query.task, query.keywords || []);
25
- // Find relevant files
20
+ // Pre-build module set from files for O(1) test-module checks
21
+ const fileModuleMap = new Map(); // filePath → module
22
+ for (const [fp] of index.files)
23
+ fileModuleMap.set(fp, fp.split('/')[0] ?? 'root');
26
24
  const rankedFiles = this.rankFiles(index.files, keywords, query.taskType);
27
- // Get top files
28
25
  const topFiles = rankedFiles.slice(0, limit).map(r => r.file);
29
- // Extract modules (unique directories)
30
- const modules = this.extractModules(topFiles);
31
- // Find relevant symbols
32
- const symbols = this.findRelevantSymbols(index.symbols, keywords, topFiles);
33
- // Find relevant tests
34
- const tests = this.findRelevantTests(index.tests, topFiles, keywords);
35
- // Find relevant docs
36
- const docs = this.findRelevantDocs(index.docs, keywords, topFiles);
37
- // Calculate confidence based on match quality
38
- const confidence = this.calculateConfidence(rankedFiles.slice(0, limit), keywords);
26
+ // Build a Set of top-file paths for O(1) membership tests downstream
27
+ const topFilePathSet = new Set(topFiles.map(f => f.path));
28
+ const topModules = new Set(topFiles.map(f => f.path.split('/')[0] ?? 'root'));
29
+ const [symbols, tests, docs] = [
30
+ this.findRelevantSymbols(index.symbols, keywords, topFilePathSet),
31
+ this.findRelevantTests(index.tests, topFiles, topModules),
32
+ this.findRelevantDocs(index.docs, keywords, topModules)
33
+ ];
39
34
  return {
40
35
  files: topFiles,
41
- modules,
36
+ modules: [...topModules],
42
37
  symbols,
43
38
  tests,
44
39
  docs,
45
- confidence
40
+ confidence: this.calculateConfidence(rankedFiles.slice(0, limit), keywords)
46
41
  };
47
42
  }
48
- /**
49
- * Find files that match imports (dependency resolution)
50
- */
51
43
  async findByImport(importPath) {
52
- const indexer = (0, indexer_js_1.getIndexer)();
53
- const index = indexer.getIndex();
44
+ const index = (0, indexer_js_1.getIndexer)().getIndex();
54
45
  if (!index)
55
46
  return null;
56
- // Try to find by exact path match
57
- for (const [path, file] of index.files) {
58
- if (path === importPath || path.endsWith(importPath)) {
47
+ // Build name→file map on first call if needed (O(1) lookups after)
48
+ for (const [p, file] of index.files) {
49
+ if (p === importPath || p.endsWith(importPath))
59
50
  return file;
60
- }
61
51
  }
62
- // Try to find by name match
63
52
  const importName = importPath.split('/').pop() || '';
64
- for (const [path, file] of index.files) {
65
- if (file.name === importName) {
53
+ for (const [, file] of index.files) {
54
+ if (file.name === importName)
66
55
  return file;
67
- }
68
56
  }
69
57
  return null;
70
58
  }
71
- /**
72
- * Find tests related to a file
73
- */
74
59
  async findRelatedTests(filePath) {
75
- const indexer = (0, indexer_js_1.getIndexer)();
76
- const index = indexer.getIndex();
60
+ const index = (0, indexer_js_1.getIndexer)().getIndex();
77
61
  if (!index)
78
62
  return [];
79
- const fileName = filePath.split('/').pop() || '';
80
- // Direct tests for this file
81
- const directTests = index.tests.filter(t => t.targetFile === filePath ||
82
- t.name.includes(fileName.replace(/\.[^.]+$/, '')));
83
- // Tests in same directory
63
+ const baseName = filePath.split('/').pop()?.replace(/\.[^.]+$/, '') ?? '';
84
64
  const dir = filePath.substring(0, filePath.lastIndexOf('/'));
85
- const dirTests = index.tests.filter(t => t.path.startsWith(dir) && !directTests.includes(t));
86
- return [...directTests, ...dirTests];
65
+ const seen = new Set();
66
+ const results = [];
67
+ for (const t of index.tests) {
68
+ if (seen.has(t.path))
69
+ continue;
70
+ if (t.targetFile === filePath || t.name.includes(baseName)) {
71
+ results.push(t);
72
+ seen.add(t.path);
73
+ }
74
+ }
75
+ for (const t of index.tests) {
76
+ if (!seen.has(t.path) && t.path.startsWith(dir)) {
77
+ results.push(t);
78
+ seen.add(t.path);
79
+ }
80
+ }
81
+ return results;
87
82
  }
88
- /**
89
- * Find files that import a specific file
90
- */
91
83
  async findDependents(filePath) {
92
- const indexer = (0, indexer_js_1.getIndexer)();
93
- const index = indexer.getIndex();
84
+ const index = (0, indexer_js_1.getIndexer)().getIndex();
94
85
  if (!index)
95
86
  return [];
96
87
  const dependents = [];
97
- for (const [path, file] of index.files) {
98
- if (file.imports.some(imp => imp === filePath || imp.endsWith(filePath) || path.endsWith(imp))) {
88
+ for (const [, file] of index.files) {
89
+ if (file.imports.some(imp => imp === filePath || imp.endsWith(filePath))) {
99
90
  dependents.push(file);
100
91
  }
101
92
  }
102
93
  return dependents;
103
94
  }
104
- // =========================================================================
105
- // Private Helpers
106
- // =========================================================================
95
+ // ── Private helpers ────────────────────────────────────────────────────────
107
96
  normalizeKeywords(task, extra) {
108
- // Extract meaningful words from task
109
- const taskWords = task
110
- .toLowerCase()
111
- .replace(/[^\w\s]/g, ' ')
112
- .split(/\s+/)
113
- .filter(w => w.length > 2);
114
- // Combine with extra keywords, remove duplicates
115
- const combined = [...new Set([...taskWords, ...extra.map(k => k.toLowerCase())])];
116
- // Remove common programming words
117
- const stopWords = ['function', 'class', 'method', 'variable', 'const', 'let', 'var', 'return', 'import', 'export', 'async', 'await'];
118
- return combined.filter(w => !stopWords.includes(w));
97
+ const words = task.toLowerCase().replace(/[^\w\s]/g, ' ').split(/\s+/);
98
+ const combined = new Set();
99
+ for (const w of words) {
100
+ if (w.length > 2 && !STOP_WORDS.has(w))
101
+ combined.add(w);
102
+ }
103
+ for (const k of extra) {
104
+ const kl = k.toLowerCase();
105
+ if (!STOP_WORDS.has(kl))
106
+ combined.add(kl);
107
+ }
108
+ return [...combined];
119
109
  }
120
110
  rankFiles(files, keywords, taskType) {
121
111
  const scored = [];
122
- for (const [path, file] of files) {
123
- // Skip non-source files for most tasks
124
- if (file.type !== 'source' && file.type !== 'test' && taskType !== 'documentation') {
112
+ const isDocTask = taskType === 'documentation';
113
+ const isBugOrFeature = taskType === 'bug' || taskType === 'feature';
114
+ for (const [filePath, file] of files) {
115
+ // Skip irrelevant types early
116
+ if (!isDocTask && file.type !== 'source' && file.type !== 'test')
125
117
  continue;
126
- }
127
118
  let score = 0;
128
- let reasons = [];
129
- const lowerPath = path.toLowerCase();
119
+ const reasons = [];
120
+ const lowerPath = filePath.toLowerCase();
130
121
  const lowerName = file.name.toLowerCase();
131
- // Direct keyword match in path or name
132
- for (const keyword of keywords) {
133
- if (lowerPath.includes(keyword) || lowerName.includes(keyword)) {
122
+ // Pre-lowercase exports once
123
+ const lowerExports = file.exports.map(e => e.toLowerCase());
124
+ for (const kw of keywords) {
125
+ if (lowerPath.includes(kw) || lowerName.includes(kw)) {
134
126
  score += 10;
135
- reasons.push(`keyword match: ${keyword}`);
127
+ reasons.push(`path:${kw}`);
136
128
  }
137
- }
138
- // Export match (exports often indicate public API)
139
- for (const keyword of keywords) {
140
- if (file.exports.some(e => e.toLowerCase().includes(keyword))) {
141
- score += 15;
142
- reasons.push(`exports: ${keyword}`);
129
+ for (const exp of lowerExports) {
130
+ if (exp.includes(kw)) {
131
+ score += 15;
132
+ reasons.push(`export:${kw}`);
133
+ break;
134
+ }
143
135
  }
144
136
  }
145
- // File type preference based on task type
146
- if (taskType === 'bug' || taskType === 'feature') {
147
- if (file.type === 'source') {
148
- score += 5;
149
- reasons.push('source file');
150
- }
137
+ if (isBugOrFeature && file.type === 'source') {
138
+ score += 5;
139
+ reasons.push('source');
151
140
  }
152
- // Test files for bug fixing
153
141
  if (taskType === 'bug' && file.type === 'test') {
154
142
  score += 8;
155
- reasons.push('test file');
143
+ reasons.push('test');
156
144
  }
157
- // Documentation tasks prefer docs
158
- if (taskType === 'documentation' && file.type === 'doc') {
145
+ if (isDocTask && file.type === 'doc') {
159
146
  score += 20;
160
- reasons.push('documentation file');
161
- }
162
- if (score > 0) {
163
- scored.push({
164
- file,
165
- score,
166
- reason: reasons.join(', ')
167
- });
147
+ reasons.push('doc');
168
148
  }
149
+ if (score > 0)
150
+ scored.push({ file, score, reason: reasons.join(',') });
169
151
  }
170
- // Sort by score descending
171
152
  return scored.sort((a, b) => b.score - a.score);
172
153
  }
173
- extractModules(files) {
174
- const modules = new Set();
175
- for (const file of files) {
176
- const parts = file.path.split('/');
177
- if (parts.length > 1) {
178
- modules.add(parts[0]);
179
- }
180
- }
181
- return Array.from(modules);
182
- }
183
- findRelevantSymbols(symbols, keywords, files) {
154
+ findRelevantSymbols(symbols, keywords, topFilePathSet) {
184
155
  const relevant = [];
185
- const filePaths = new Set(files.map(f => f.path));
186
156
  for (const [, fileSymbols] of symbols) {
187
- for (const symbol of fileSymbols) {
188
- if (!filePaths.has(symbol.file))
157
+ for (const sym of fileSymbols) {
158
+ if (!topFilePathSet.has(sym.file))
189
159
  continue;
190
- for (const keyword of keywords) {
191
- if (symbol.name.toLowerCase().includes(keyword)) {
192
- relevant.push(symbol);
160
+ const lname = sym.name.toLowerCase();
161
+ for (const kw of keywords) {
162
+ if (lname.includes(kw)) {
163
+ relevant.push(sym);
193
164
  break;
194
165
  }
195
166
  }
167
+ if (relevant.length >= 20)
168
+ return relevant;
196
169
  }
197
170
  }
198
- return relevant.slice(0, 20); // Limit to top 20
171
+ return relevant;
199
172
  }
200
- findRelevantTests(tests, files, keywords) {
173
+ findRelevantTests(tests, topFiles, topModules) {
174
+ const topFilePaths = new Set(topFiles.map(f => f.path));
201
175
  const relevant = [];
202
- const fileNames = new Set(files.map(f => f.name.toLowerCase()));
176
+ const seen = new Set();
203
177
  for (const test of tests) {
204
- // Tests targeting our files
205
- if (test.targetFile && files.some(f => f.path === test.targetFile)) {
206
- relevant.push(test);
178
+ if (seen.has(test.path))
207
179
  continue;
208
- }
209
- // Tests in same module
210
- const testModule = test.path.split('/')[0];
211
- const hasFileInModule = files.some(f => f.path.split('/')[0] === testModule);
212
- if (hasFileInModule) {
180
+ const inScope = (test.targetFile && topFilePaths.has(test.targetFile)) ||
181
+ topModules.has(test.path.split('/')[0] ?? '');
182
+ if (inScope) {
213
183
  relevant.push(test);
184
+ seen.add(test.path);
214
185
  }
186
+ if (relevant.length >= 10)
187
+ break;
215
188
  }
216
- return relevant.slice(0, 10);
189
+ return relevant;
217
190
  }
218
- findRelevantDocs(docs, keywords, files) {
191
+ findRelevantDocs(docs, keywords, topModules) {
219
192
  const relevant = [];
220
- const fileModules = new Set(files.map(f => f.path.split('/')[0]));
193
+ const seen = new Set();
221
194
  for (const doc of docs) {
222
- // Keyword match
223
- for (const keyword of keywords) {
224
- if (doc.name.toLowerCase().includes(keyword) || doc.path.toLowerCase().includes(keyword)) {
225
- relevant.push(doc);
226
- break;
227
- }
228
- }
229
- // Docs related to our modules
230
- if (!relevant.includes(doc)) {
231
- const docModule = doc.path.split('/')[0];
232
- if (fileModules.has(docModule)) {
233
- relevant.push(doc);
234
- }
235
- }
195
+ if (seen.has(doc.path))
196
+ continue;
197
+ const lname = doc.name.toLowerCase();
198
+ const lpath = doc.path.toLowerCase();
199
+ const keyMatch = keywords.some(kw => lname.includes(kw) || lpath.includes(kw));
200
+ const modMatch = topModules.has(doc.path.split('/')[0] ?? '');
201
+ if (keyMatch || modMatch) {
202
+ relevant.push(doc);
203
+ seen.add(doc.path);
204
+ }
205
+ if (relevant.length >= 5)
206
+ break;
236
207
  }
237
- return relevant.slice(0, 5);
208
+ return relevant;
238
209
  }
239
210
  calculateConfidence(rankedFiles, keywords) {
240
- if (rankedFiles.length === 0)
211
+ if (rankedFiles.length === 0 || keywords.length === 0)
241
212
  return 0;
242
- const avgScore = rankedFiles.reduce((sum, r) => sum + r.score, 0) / rankedFiles.length;
243
- const maxPossibleScore = keywords.length * 25; // Max score per keyword
244
- // Normalize to 0-1 range
245
- const confidence = Math.min(avgScore / maxPossibleScore, 1);
246
- return Math.round(confidence * 100) / 100;
213
+ const avgScore = rankedFiles.reduce((s, r) => s + r.score, 0) / rankedFiles.length;
214
+ const maxPossible = keywords.length * 25;
215
+ return Math.round(Math.min(avgScore / maxPossible, 1) * 100) / 100;
247
216
  }
248
217
  }
249
218
  exports.RetrievalEngine = RetrievalEngine;
250
- // Singleton instance
219
+ // ─── Singleton ────────────────────────────────────────────────────────────────
251
220
  let retrievalInstance = null;
252
221
  function getRetrievalEngine() {
253
- if (!retrievalInstance) {
222
+ if (!retrievalInstance)
254
223
  retrievalInstance = new RetrievalEngine();
255
- }
256
224
  return retrievalInstance;
257
225
  }
258
226
  //# sourceMappingURL=retriever.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"retriever.js","sourceRoot":"","sources":["../../../src/core/retrieval/retriever.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"retriever.js","sourceRoot":"","sources":["../../../src/core/retrieval/retriever.ts"],"names":[],"mappings":"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"}
@@ -1,44 +1,19 @@
1
1
  import { MemoryCheckpoint, MemoryScope, MemoryDecision, MemoryRestoreResult, TaskType } from '../core/types.js';
2
2
  export declare class MemoryStore {
3
3
  private checkpoints;
4
+ private taskIndex;
4
5
  private storagePath;
5
- /**
6
- * Initialize memory store with optional persistence
7
- */
8
6
  initialize(options?: {
9
7
  storagePath?: string;
10
8
  }): void;
11
- /**
12
- * Save a memory checkpoint
13
- */
14
9
  saveCheckpoint(checkpoint: Omit<MemoryCheckpoint, 'id' | 'timestamp'>): MemoryCheckpoint;
15
- /**
16
- * Get a checkpoint by ID
17
- */
18
10
  getCheckpoint(id: string): MemoryCheckpoint | null;
19
- /**
20
- * Get all checkpoints
21
- */
22
11
  getAllCheckpoints(): MemoryCheckpoint[];
23
- /**
24
- * Get latest checkpoint for a task
25
- */
12
+ /** O(1) — reads last entry from taskIndex instead of scanning all checkpoints */
26
13
  getLatestForTask(taskId: string): MemoryCheckpoint | null;
27
- /**
28
- * Delete a checkpoint
29
- */
30
14
  deleteCheckpoint(id: string): boolean;
31
- /**
32
- * Restore memory state from checkpoint
33
- */
34
15
  restore(id: string): MemoryRestoreResult | null;
35
- /**
36
- * Update checkpoint with new information
37
- */
38
16
  updateCheckpoint(id: string, updates: Partial<MemoryCheckpoint>): boolean;
39
- /**
40
- * Clear all checkpoints
41
- */
42
17
  clear(): void;
43
18
  private generateId;
44
19
  private buildProgressSummary;
@@ -1 +1 @@
1
- {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../src/memory/memory.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,mBAAmB,EACnB,QAAQ,EACT,MAAM,kBAAkB,CAAC;AAE1B,qBAAa,WAAW;IACtB,OAAO,CAAC,WAAW,CAA4C;IAC/D,OAAO,CAAC,WAAW,CAAuB;IAE1C;;OAEG;IACH,UAAU,CAAC,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE;IAO7C;;OAEG;IACH,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,GAAG,WAAW,CAAC,GAAG,gBAAgB;IAaxF;;OAEG;IACH,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI;IAIlD;;OAEG;IACH,iBAAiB,IAAI,gBAAgB,EAAE;IAIvC;;OAEG;IACH,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI;IAczD;;OAEG;IACH,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAQrC;;OAEG;IACH,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI;IAwB/C;;OAEG;IACH,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,OAAO;IAezE;;OAEG;IACH,KAAK,IAAI,IAAI;IASb,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,oBAAoB;IAmB5B,OAAO,CAAC,OAAO;IAef,OAAO,CAAC,IAAI;CAWb;AAGD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,EAAE,WAAW,CAAC;IACnB,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,IAAI,CAAC,gBAAgB,EAAE,IAAI,GAAG,WAAW,CAAC,CAW7C;AAKD,wBAAgB,cAAc,IAAI,WAAW,CAK5C"}
1
+ {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../src/memory/memory.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,mBAAmB,EACnB,QAAQ,EACT,MAAM,kBAAkB,CAAC;AAE1B,qBAAa,WAAW;IACtB,OAAO,CAAC,WAAW,CAA4C;IAE/D,OAAO,CAAC,SAAS,CAA+C;IAChE,OAAO,CAAC,WAAW,CAAuB;IAE1C,UAAU,CAAC,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE;IAO7C,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,GAAG,WAAW,CAAC,GAAG,gBAAgB;IAWxF,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI;IAIlD,iBAAiB,IAAI,gBAAgB,EAAE;IAIvC,iFAAiF;IACjF,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI;IAMzD,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAerC,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI;IAW/C,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,OAAO;IAQzE,KAAK,IAAI,IAAI;IAQb,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,oBAAoB;IAY5B,OAAO,CAAC,OAAO;IASf,OAAO,CAAC,IAAI;CAgBb;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,EAAE,WAAW,CAAC;IACnB,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,IAAI,CAAC,gBAAgB,EAAE,IAAI,GAAG,WAAW,CAAC,CAW7C;AAID,wBAAgB,cAAc,IAAI,WAAW,CAG5C"}