semantic-complexity 0.0.1-44fdea25

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.
Files changed (54) hide show
  1. package/LICENSE +21 -0
  2. package/dist/ast/index.d.ts +2 -0
  3. package/dist/ast/index.d.ts.map +1 -0
  4. package/dist/ast/index.js +2 -0
  5. package/dist/ast/index.js.map +1 -0
  6. package/dist/ast/parser.d.ts +27 -0
  7. package/dist/ast/parser.d.ts.map +1 -0
  8. package/dist/ast/parser.js +273 -0
  9. package/dist/ast/parser.js.map +1 -0
  10. package/dist/compare.d.ts +31 -0
  11. package/dist/compare.d.ts.map +1 -0
  12. package/dist/compare.js +354 -0
  13. package/dist/compare.js.map +1 -0
  14. package/dist/context/index.d.ts +41 -0
  15. package/dist/context/index.d.ts.map +1 -0
  16. package/dist/context/index.js +253 -0
  17. package/dist/context/index.js.map +1 -0
  18. package/dist/graph/call.d.ts +63 -0
  19. package/dist/graph/call.d.ts.map +1 -0
  20. package/dist/graph/call.js +240 -0
  21. package/dist/graph/call.js.map +1 -0
  22. package/dist/graph/dependency.d.ts +52 -0
  23. package/dist/graph/dependency.d.ts.map +1 -0
  24. package/dist/graph/dependency.js +296 -0
  25. package/dist/graph/dependency.js.map +1 -0
  26. package/dist/graph/index.d.ts +3 -0
  27. package/dist/graph/index.d.ts.map +1 -0
  28. package/dist/graph/index.js +3 -0
  29. package/dist/graph/index.js.map +1 -0
  30. package/dist/index.d.ts +21 -0
  31. package/dist/index.d.ts.map +1 -0
  32. package/dist/index.js +34 -0
  33. package/dist/index.js.map +1 -0
  34. package/dist/metrics/cognitive.d.ts +42 -0
  35. package/dist/metrics/cognitive.d.ts.map +1 -0
  36. package/dist/metrics/cognitive.js +204 -0
  37. package/dist/metrics/cognitive.js.map +1 -0
  38. package/dist/metrics/cyclomatic.d.ts +31 -0
  39. package/dist/metrics/cyclomatic.d.ts.map +1 -0
  40. package/dist/metrics/cyclomatic.js +121 -0
  41. package/dist/metrics/cyclomatic.js.map +1 -0
  42. package/dist/metrics/dimensional.d.ts +32 -0
  43. package/dist/metrics/dimensional.d.ts.map +1 -0
  44. package/dist/metrics/dimensional.js +560 -0
  45. package/dist/metrics/dimensional.js.map +1 -0
  46. package/dist/metrics/index.d.ts +26 -0
  47. package/dist/metrics/index.d.ts.map +1 -0
  48. package/dist/metrics/index.js +120 -0
  49. package/dist/metrics/index.js.map +1 -0
  50. package/dist/types.d.ts +341 -0
  51. package/dist/types.d.ts.map +1 -0
  52. package/dist/types.js +22 -0
  53. package/dist/types.js.map +1 -0
  54. package/package.json +71 -0
@@ -0,0 +1,354 @@
1
+ /**
2
+ * McCabe 순환복잡도 vs 차원 복잡도 비교 분석기
3
+ *
4
+ * 사용법:
5
+ * npx tsx src/compare.ts <파일경로>
6
+ * npx tsx src/compare.ts <파일경로> --json
7
+ * npx tsx src/compare.ts <파일경로> --threshold=10
8
+ */
9
+ import * as fs from 'node:fs';
10
+ import * as path from 'node:path';
11
+ import ts from 'typescript';
12
+ import { parseSourceFile, extractFunctionInfo } from './ast/parser.js';
13
+ import { analyzeFunctionExtended } from './metrics/index.js';
14
+ // ─────────────────────────────────────────────────────────────────
15
+ // 등급 판정
16
+ // ─────────────────────────────────────────────────────────────────
17
+ function getMcCabeGrade(complexity) {
18
+ if (complexity <= 5)
19
+ return 'low';
20
+ if (complexity <= 10)
21
+ return 'moderate';
22
+ if (complexity <= 20)
23
+ return 'high';
24
+ return 'very-high';
25
+ }
26
+ function getCognitiveGrade(complexity) {
27
+ if (complexity <= 5)
28
+ return 'low';
29
+ if (complexity <= 10)
30
+ return 'moderate';
31
+ if (complexity <= 15)
32
+ return 'high';
33
+ return 'very-high';
34
+ }
35
+ // ─────────────────────────────────────────────────────────────────
36
+ // 스칼라 점수 계산 (dimensional.ts와 동일 로직)
37
+ // ─────────────────────────────────────────────────────────────────
38
+ function scoreState(result) {
39
+ const s = result.dimensional.state;
40
+ return (s.enumStates * 1 +
41
+ s.stateMutations * 2 +
42
+ s.stateReads * 0.5 +
43
+ s.stateBranches * 3 +
44
+ s.stateMachinePatterns.length * 5);
45
+ }
46
+ function scoreAsync(result) {
47
+ const a = result.dimensional.async;
48
+ return (a.asyncBoundaries * 1 +
49
+ a.promiseChains * 2 +
50
+ a.retryPatterns * 3 +
51
+ a.timeouts * 2 +
52
+ a.callbackDepth * 3 +
53
+ a.concurrencyPatterns.length * 4 +
54
+ a.asyncErrorBoundaries * 1);
55
+ }
56
+ function scoreCoupling(result) {
57
+ const c = result.dimensional.coupling;
58
+ return (c.globalAccess.length * 2 +
59
+ c.implicitIO.length * 2 +
60
+ c.sideEffects.length * 3 +
61
+ c.envDependency.length * 2 +
62
+ c.closureCaptures.length * 1);
63
+ }
64
+ // ─────────────────────────────────────────────────────────────────
65
+ // 인사이트 생성
66
+ // ─────────────────────────────────────────────────────────────────
67
+ function generateInsights(result) {
68
+ const insights = [];
69
+ const d = result.dimensional;
70
+ // McCabe vs 차원 복잡도 비교
71
+ const mccabe = result.cyclomatic;
72
+ const weighted = d.weighted;
73
+ if (weighted > mccabe * 2) {
74
+ insights.push(`⚠️ 차원 복잡도(${weighted.toFixed(1)})가 McCabe(${mccabe})의 2배 이상 - 숨은 복잡도 존재`);
75
+ }
76
+ // 차원별 분석
77
+ const stateScore = scoreState(result);
78
+ const asyncScore = scoreAsync(result);
79
+ const couplingScore = scoreCoupling(result);
80
+ // 3D 상태
81
+ if (d.state.stateMutations > 3) {
82
+ insights.push(`🔄 상태 변경 ${d.state.stateMutations}회 - 상태 관리 복잡도 높음`);
83
+ }
84
+ if (d.state.stateMachinePatterns.length > 0) {
85
+ insights.push(`🎛️ 상태 머신 패턴 ${d.state.stateMachinePatterns.length}개 탐지`);
86
+ }
87
+ // 4D 비동기
88
+ if (d.async.callbackDepth > 2) {
89
+ insights.push(`📥 콜백 중첩 깊이 ${d.async.callbackDepth} - 콜백 지옥 위험`);
90
+ }
91
+ if (d.async.concurrencyPatterns.length > 1) {
92
+ insights.push(`⚡ 동시성 패턴 ${d.async.concurrencyPatterns.length}개 - 레이스 컨디션 주의`);
93
+ }
94
+ if (d.async.asyncErrorBoundaries === 0 && d.async.asyncBoundaries > 0) {
95
+ insights.push(`🚨 비동기 코드에 에러 처리 없음`);
96
+ }
97
+ // 5D 결합
98
+ if (d.coupling.globalAccess.length > 2) {
99
+ insights.push(`🌐 전역 접근 ${d.coupling.globalAccess.length}회 - 테스트 어려움`);
100
+ }
101
+ if (d.coupling.sideEffects.length > 2) {
102
+ insights.push(`💥 부작용 ${d.coupling.sideEffects.length}개 - 예측 불가능성 증가`);
103
+ }
104
+ if (d.coupling.closureCaptures.length > 3) {
105
+ insights.push(`🔒 클로저 캡처 ${d.coupling.closureCaptures.length}개 - 메모리 누수 주의`);
106
+ }
107
+ // 차원 불균형 분석
108
+ const scores = [
109
+ { name: '상태(3D)', score: stateScore },
110
+ { name: '비동기(4D)', score: asyncScore },
111
+ { name: '결합(5D)', score: couplingScore },
112
+ ].filter((s) => s.score > 0);
113
+ if (scores.length > 0) {
114
+ const maxScore = Math.max(...scores.map((s) => s.score));
115
+ const dominant = scores.find((s) => s.score === maxScore);
116
+ if (dominant && maxScore > 5) {
117
+ insights.push(`📊 주요 복잡도 원인: ${dominant.name} (점수: ${maxScore.toFixed(1)})`);
118
+ }
119
+ }
120
+ return insights;
121
+ }
122
+ // ─────────────────────────────────────────────────────────────────
123
+ // 파일 분석
124
+ // ─────────────────────────────────────────────────────────────────
125
+ export function analyzeFile(filePath) {
126
+ const content = fs.readFileSync(filePath, 'utf-8');
127
+ const sourceFile = parseSourceFile(filePath, content);
128
+ const results = [];
129
+ function visit(node) {
130
+ const funcInfo = extractFunctionInfo(node, sourceFile);
131
+ if (funcInfo) {
132
+ const result = analyzeFunctionExtended(node, sourceFile, funcInfo);
133
+ const loc = funcInfo.location;
134
+ const stateScore = scoreState(result);
135
+ const asyncScore = scoreAsync(result);
136
+ const couplingScore = scoreCoupling(result);
137
+ const comparison = {
138
+ function: funcInfo.name,
139
+ location: `${path.basename(filePath)}:${loc.startLine}`,
140
+ mccabe: result.cyclomatic,
141
+ mccabeGrade: getMcCabeGrade(result.cyclomatic),
142
+ cognitive: result.cognitive,
143
+ cognitiveGrade: getCognitiveGrade(result.cognitive),
144
+ dimensional: {
145
+ weighted: result.dimensional.weighted,
146
+ control: result.dimensional.control,
147
+ nesting: result.dimensional.nesting,
148
+ state: stateScore,
149
+ async: asyncScore,
150
+ coupling: couplingScore,
151
+ },
152
+ insights: generateInsights(result),
153
+ hotspots: result.dimensional.hotspots,
154
+ dimensionalRatio: result.cyclomatic > 0
155
+ ? Math.round((result.dimensional.weighted / result.cyclomatic) * 100) / 100
156
+ : 0,
157
+ };
158
+ results.push(comparison);
159
+ }
160
+ ts.forEachChild(node, visit);
161
+ }
162
+ ts.forEachChild(sourceFile, visit);
163
+ return results;
164
+ }
165
+ // ─────────────────────────────────────────────────────────────────
166
+ // 콘솔 출력
167
+ // ─────────────────────────────────────────────────────────────────
168
+ function printComparison(results, threshold = 0) {
169
+ const filtered = results.filter((r) => r.mccabe >= threshold || r.dimensional.weighted >= threshold);
170
+ if (filtered.length === 0) {
171
+ console.log(`\n임계값 ${threshold} 이상인 함수가 없습니다.\n`);
172
+ return;
173
+ }
174
+ console.log('\n' + '═'.repeat(80));
175
+ console.log(' McCabe vs 차원 복잡도 비교 분석');
176
+ console.log('═'.repeat(80));
177
+ // 헤더
178
+ console.log('\n' +
179
+ '함수명'.padEnd(30) +
180
+ 'McCabe'.padStart(8) +
181
+ 'Cognitive'.padStart(10) +
182
+ 'Dimensional'.padStart(12) +
183
+ 'Ratio'.padStart(8));
184
+ console.log('-'.repeat(68));
185
+ for (const r of filtered.sort((a, b) => b.dimensional.weighted - a.dimensional.weighted)) {
186
+ console.log(r.function.slice(0, 28).padEnd(30) +
187
+ `${r.mccabe}`.padStart(8) +
188
+ `${r.cognitive}`.padStart(10) +
189
+ `${r.dimensional.weighted.toFixed(1)}`.padStart(12) +
190
+ `${r.dimensionalRatio}x`.padStart(8));
191
+ // 차원별 분포
192
+ const dims = r.dimensional;
193
+ const bar = (score, max = 20) => {
194
+ const filled = Math.min(Math.round((score / max) * 10), 10);
195
+ return '█'.repeat(filled) + '░'.repeat(10 - filled);
196
+ };
197
+ console.log(` └─ 1D 제어: ${bar(dims.control)} ${dims.control.toFixed(1)}`);
198
+ console.log(` 2D 중첩: ${bar(dims.nesting)} ${dims.nesting.toFixed(1)}`);
199
+ console.log(` 3D 상태: ${bar(dims.state)} ${dims.state.toFixed(1)}`);
200
+ console.log(` 4D 비동기: ${bar(dims.async)} ${dims.async.toFixed(1)}`);
201
+ console.log(` 5D 결합: ${bar(dims.coupling)} ${dims.coupling.toFixed(1)}`);
202
+ // 인사이트
203
+ if (r.insights.length > 0) {
204
+ console.log(' 인사이트:');
205
+ for (const insight of r.insights) {
206
+ console.log(` ${insight}`);
207
+ }
208
+ }
209
+ console.log();
210
+ }
211
+ // 요약 통계
212
+ console.log('─'.repeat(80));
213
+ console.log('📊 요약 통계');
214
+ console.log('─'.repeat(80));
215
+ const avgMccabe = filtered.reduce((s, r) => s + r.mccabe, 0) / filtered.length;
216
+ const avgDimensional = filtered.reduce((s, r) => s + r.dimensional.weighted, 0) / filtered.length;
217
+ const avgRatio = filtered.reduce((s, r) => s + r.dimensionalRatio, 0) / filtered.length;
218
+ console.log(` 분석 함수: ${filtered.length}개`);
219
+ console.log(` 평균 McCabe: ${avgMccabe.toFixed(1)}`);
220
+ console.log(` 평균 차원 복잡도: ${avgDimensional.toFixed(1)}`);
221
+ console.log(` 평균 비율 (차원/McCabe): ${avgRatio.toFixed(2)}x`);
222
+ // 고위험 함수
223
+ const highRisk = filtered.filter((r) => r.dimensionalRatio > 2 || r.dimensional.weighted > 20);
224
+ if (highRisk.length > 0) {
225
+ console.log(`\n ⚠️ 고위험 함수 (ratio > 2x 또는 weighted > 20):`);
226
+ for (const r of highRisk) {
227
+ console.log(` - ${r.function} @ ${r.location}`);
228
+ }
229
+ }
230
+ console.log('\n' + '═'.repeat(80));
231
+ }
232
+ // ─────────────────────────────────────────────────────────────────
233
+ // 해석 가이드 출력
234
+ // ─────────────────────────────────────────────────────────────────
235
+ function printGuide() {
236
+ console.log(`
237
+ ╔════════════════════════════════════════════════════════════════════════════╗
238
+ ║ McCabe vs 차원 복잡도 해석 가이드 ║
239
+ ╠════════════════════════════════════════════════════════════════════════════╣
240
+ ║ ║
241
+ ║ 📐 McCabe 순환복잡도 (1976) ║
242
+ ║ ───────────────────────────────────────────────────────────────────────── ║
243
+ ║ • 정의: 분기점 개수 + 1 ║
244
+ ║ • 측정: if, switch case, for, while, catch, &&, ||, ?: ║
245
+ ║ • 한계: 중첩 무시, 상태/비동기/결합 미반영 ║
246
+ ║ ║
247
+ ║ 등급 기준: ║
248
+ ║ 🟢 1-5: Low (단순, 테스트 용이) ║
249
+ ║ 🟡 6-10: Moderate (적정) ║
250
+ ║ 🟠 11-20: High (리팩토링 권장) ║
251
+ ║ 🔴 21+: Very High (반드시 리팩토링) ║
252
+ ║ ║
253
+ ╠════════════════════════════════════════════════════════════════════════════╣
254
+ ║ ║
255
+ ║ 🧠 차원 복잡도 (Dimensional Complexity) ║
256
+ ║ ───────────────────────────────────────────────────────────────────────── ║
257
+ ║ ║
258
+ ║ 1D 제어 (×1.0): 순환복잡도 기반 ║
259
+ ║ 2D 중첩 (×1.5): 중첩으로 인한 인지 부하 ║
260
+ ║ 3D 상태 (×2.0): 상태 변수, 상태 머신 패턴 ║
261
+ ║ 4D 비동기 (×2.5): async/await, Promise, 콜백 ║
262
+ ║ 5D 결합 (×3.0): 전역 접근, I/O, 부작용, 환경 의존 ║
263
+ ║ ║
264
+ ║ 가중치 근거: ║
265
+ ║ • 상태: 버그 발생률 2배 (IBM 연구) ║
266
+ ║ • 비동기: 디버깅 시간 2.5배 (Salesforce 연구) ║
267
+ ║ • 결합: 테스트 커버리지 달성 3배 어려움 ║
268
+ ║ ║
269
+ ╠════════════════════════════════════════════════════════════════════════════╣
270
+ ║ ║
271
+ ║ 📊 비율 (Ratio) 해석 ║
272
+ ║ ───────────────────────────────────────────────────────────────────────── ║
273
+ ║ ║
274
+ ║ Ratio = 차원 복잡도 / McCabe ║
275
+ ║ ║
276
+ ║ • < 1.5: 순수한 제어 흐름 중심 (McCabe로 충분) ║
277
+ ║ • 1.5-2.0: 중첩/상태가 추가됨 (주의 필요) ║
278
+ ║ • 2.0-3.0: 비동기/결합 복잡도 높음 (리팩토링 권장) ║
279
+ ║ • > 3.0: 숨은 복잡도 심각 (McCabe가 과소평가) ║
280
+ ║ ║
281
+ ╠════════════════════════════════════════════════════════════════════════════╣
282
+ ║ ║
283
+ ║ 🎯 실무 권장 임계값 ║
284
+ ║ ───────────────────────────────────────────────────────────────────────── ║
285
+ ║ ║
286
+ ║ PoC/MVP 단계: ║
287
+ ║ • McCabe ≤ 15 ║
288
+ ║ • 차원 복잡도 ≤ 30 ║
289
+ ║ ║
290
+ ║ Production 단계: ║
291
+ ║ • McCabe ≤ 10 ║
292
+ ║ • 차원 복잡도 ≤ 20 ║
293
+ ║ • Ratio ≤ 2.0 ║
294
+ ║ ║
295
+ ║ Mission Critical: ║
296
+ ║ • McCabe ≤ 5 ║
297
+ ║ • 차원 복잡도 ≤ 10 ║
298
+ ║ • 5D 결합 = 0 (순수 함수) ║
299
+ ║ ║
300
+ ╚════════════════════════════════════════════════════════════════════════════╝
301
+ `);
302
+ }
303
+ // ─────────────────────────────────────────────────────────────────
304
+ // CLI 엔트리포인트
305
+ // ─────────────────────────────────────────────────────────────────
306
+ function main() {
307
+ const args = process.argv.slice(2);
308
+ if (args.length === 0 || args.includes('--help') || args.includes('-h')) {
309
+ console.log(`
310
+ 사용법:
311
+ npx tsx src/compare.ts <파일경로> [옵션]
312
+
313
+ 옵션:
314
+ --json JSON 형식으로 출력
315
+ --threshold=N 복잡도 N 이상인 함수만 표시 (기본: 0)
316
+ --guide 해석 가이드 표시
317
+ --help, -h 도움말
318
+
319
+ 예제:
320
+ npx tsx src/compare.ts ./src/components/Signup.tsx
321
+ npx tsx src/compare.ts ./src/api/handler.ts --threshold=5
322
+ npx tsx src/compare.ts ./src/utils.ts --json
323
+ npx tsx src/compare.ts --guide
324
+ `);
325
+ return;
326
+ }
327
+ if (args.includes('--guide')) {
328
+ printGuide();
329
+ return;
330
+ }
331
+ const filePath = args.find((a) => !a.startsWith('--'));
332
+ if (!filePath) {
333
+ console.error('파일 경로를 지정해주세요.');
334
+ process.exit(1);
335
+ }
336
+ const resolvedPath = path.resolve(filePath);
337
+ if (!fs.existsSync(resolvedPath)) {
338
+ console.error(`파일을 찾을 수 없습니다: ${resolvedPath}`);
339
+ process.exit(1);
340
+ }
341
+ const isJson = args.includes('--json');
342
+ const thresholdArg = args.find((a) => a.startsWith('--threshold='));
343
+ const threshold = thresholdArg ? parseInt(thresholdArg.split('=')[1], 10) : 0;
344
+ const results = analyzeFile(resolvedPath);
345
+ if (isJson) {
346
+ console.log(JSON.stringify(results, null, 2));
347
+ }
348
+ else {
349
+ printGuide();
350
+ printComparison(results, threshold);
351
+ }
352
+ }
353
+ main();
354
+ //# sourceMappingURL=compare.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compare.js","sourceRoot":"","sources":["../src/compare.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import type { AnalysisContext, AnalysisOptions } from '../types.js';
2
+ /**
3
+ * MCP용 분석 컨텍스트 수집기
4
+ *
5
+ * LLM이 인지복잡도를 정확히 판단할 수 있도록
6
+ * 코드와 관련된 모든 컨텍스트를 수집합니다.
7
+ */
8
+ export declare class ContextCollector {
9
+ private options;
10
+ private projectRoot;
11
+ private dependencyGraph;
12
+ private projectInfo?;
13
+ constructor(projectRoot: string, options?: Partial<AnalysisOptions>);
14
+ /**
15
+ * 파일에 대한 전체 분석 컨텍스트 수집
16
+ */
17
+ collectContext(filePath: string): Promise<AnalysisContext>;
18
+ /**
19
+ * MCP 응답용 프롬프트 생성
20
+ *
21
+ * LLM이 인지복잡도를 판단할 수 있도록
22
+ * 구조화된 프롬프트를 생성합니다.
23
+ */
24
+ generatePrompt(context: AnalysisContext, functionName?: string): string;
25
+ /**
26
+ * 관련 파일 분석
27
+ */
28
+ private analyzeRelatedFiles;
29
+ /**
30
+ * 프로젝트 정보 감지
31
+ */
32
+ private detectProjectInfo;
33
+ }
34
+ /**
35
+ * 단일 파일 빠른 분석 (MCP 도구용)
36
+ */
37
+ export declare function quickAnalyze(filePath: string, functionName?: string): Promise<{
38
+ context: AnalysisContext;
39
+ prompt: string;
40
+ }>;
41
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/context/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EAGhB,MAAM,aAAa,CAAC;AAMrB;;;;;GAKG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,WAAW,CAAC,CAAc;gBAEtB,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC;IAOnE;;OAEG;IACG,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IA8BhE;;;;;OAKG;IACH,cAAc,CAAC,OAAO,EAAE,eAAe,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM;IA6FvE;;OAEG;YACW,mBAAmB;IAuBjC;;OAEG;IACH,OAAO,CAAC,iBAAiB;CAsD1B;AAgBD;;GAEG;AACH,wBAAsB,YAAY,CAChC,QAAQ,EAAE,MAAM,EAChB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC;IAAE,OAAO,EAAE,eAAe,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAOvD"}