viberadar 0.3.16 → 0.3.18

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAM7B,OAAO,EAAE,UAAU,EAA0C,MAAM,YAAY,CAAC;AAEhF,UAAU,aAAa;IACrB,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,IAAI,CAAC;CAC7B;AAyTD,wBAAgB,WAAW,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CAyY1G"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAM7B,OAAO,EAAE,UAAU,EAA0C,MAAM,YAAY,CAAC;AAEhF,UAAU,aAAa;IACrB,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,IAAI,CAAC;CAC7B;AA4WD,wBAAgB,WAAW,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CAyf1G"}
@@ -135,17 +135,37 @@ function runTestFiles(files, projectRoot) {
135
135
  // vitest --reporter=json wraps output; find the JSON object
136
136
  const match = stdout.match(/\{[\s\S]*"testResults"[\s\S]*\}/);
137
137
  const json = JSON.parse(match ? match[0] : stdout);
138
+ // Extract per-file failure details
139
+ const fileDetails = {};
140
+ for (const tr of (json.testResults ?? [])) {
141
+ const fp = tr.testFilePath ?? '';
142
+ const errors = [];
143
+ for (const ar of (tr.assertionResults ?? [])) {
144
+ if (ar.status === 'failed') {
145
+ errors.push({
146
+ testName: ar.fullName ?? ar.title ?? 'unknown',
147
+ message: (ar.failureMessages?.[0] ?? '').split('\n')[0].slice(0, 300),
148
+ });
149
+ }
150
+ }
151
+ fileDetails[fp] = {
152
+ passed: (tr.assertionResults ?? []).filter((a) => a.status === 'passed').length,
153
+ failed: errors.length,
154
+ errors,
155
+ };
156
+ }
138
157
  resolve({
139
158
  passed: json.numPassedTests ?? 0,
140
159
  failed: json.numFailedTests ?? 0,
141
160
  files,
161
+ fileDetails,
142
162
  });
143
163
  }
144
164
  catch {
145
- resolve({ passed: 0, failed: 0, files });
165
+ resolve({ passed: 0, failed: 0, files, fileDetails: {} });
146
166
  }
147
167
  });
148
- proc.on('error', () => resolve({ passed: 0, failed: 0, files }));
168
+ proc.on('error', () => resolve({ passed: 0, failed: 0, files, fileDetails: {} }));
149
169
  });
150
170
  }
151
171
  // ─── Prompt builders ──────────────────────────────────────────────────────────
@@ -235,6 +255,22 @@ function buildWriteTestsForFilePrompt(filePath, feat, modules, testRunner) {
235
255
  `- Не изменяй существующие тесты`,
236
256
  ].filter(Boolean).join('\n');
237
257
  }
258
+ function buildFixTestsPrompt(filePath, errors) {
259
+ const normalPath = filePath.replace(/\\/g, '/');
260
+ return [
261
+ `Исправь падающие тесты в файле \`${normalPath}\`.`,
262
+ ``,
263
+ `Упавшие тесты (${errors.length}):`,
264
+ ...errors.map(e => `• "${e.testName}"\n ${e.message}`),
265
+ ``,
266
+ `Требования:`,
267
+ `- Исправь только падающие тесты, не трогай проходящие`,
268
+ `- Не удаляй тесты — исправь логику или моки`,
269
+ `- Если тест проверяет несуществующее поведение — адаптируй под реальное поведение кода`,
270
+ `- Если ошибка в исходном коде, а не в тесте — исправь код`,
271
+ `- После исправления запусти тест, чтобы убедиться что он проходит`,
272
+ ].join('\n');
273
+ }
238
274
  function buildMapUnmappedPrompt(modules, features) {
239
275
  const unmapped = modules
240
276
  .filter(m => m.type !== 'test' && !m.isInfra && (!m.featureKeys || m.featureKeys.length === 0))
@@ -321,6 +357,9 @@ function startServer({ data: initialData, port, projectRoot }) {
321
357
  let coverageRunning = false;
322
358
  let coverageError = false;
323
359
  let agentRunning = false;
360
+ let testsRunning = false;
361
+ // Keyed by absolute file path → per-file failure details from last test run
362
+ const lastTestResults = new Map();
324
363
  // ── SSE clients ────────────────────────────────────────────────────────────
325
364
  const sseClients = new Set();
326
365
  function broadcast(event, payload = {}) {
@@ -450,6 +489,28 @@ function startServer({ data: initialData, port, projectRoot }) {
450
489
  const fileName = filePath.replace(/\\/g, '/').split('/').pop() || filePath;
451
490
  title = `${agentLabel} — тест для "${fileName}"`;
452
491
  }
492
+ else if (task === 'fix-tests') {
493
+ if (!filePath) {
494
+ broadcast('agent-error', { message: 'Не указан файл для исправления' });
495
+ return;
496
+ }
497
+ // Look up stored errors for this file (match by absolute or relative path)
498
+ let storedErrors;
499
+ for (const [fp, detail] of lastTestResults) {
500
+ const rel = path.relative(projectRoot, fp).replace(/\\/g, '/');
501
+ if (rel === filePath.replace(/\\/g, '/') || fp === filePath) {
502
+ storedErrors = detail.errors;
503
+ break;
504
+ }
505
+ }
506
+ if (!storedErrors || storedErrors.length === 0) {
507
+ broadcast('agent-error', { message: `Нет сохранённых ошибок для ${filePath}. Сначала запусти тесты.` });
508
+ return;
509
+ }
510
+ prompt = buildFixTestsPrompt(filePath, storedErrors);
511
+ const fileName = filePath.replace(/\\/g, '/').split('/').pop() || filePath;
512
+ title = `${agentLabel} — исправить тесты в "${fileName}"`;
513
+ }
453
514
  else {
454
515
  prompt = buildMapUnmappedPrompt(currentData.modules, currentData.features || []);
455
516
  title = `${agentLabel} — разобрать unmapped`;
@@ -531,15 +592,34 @@ function startServer({ data: initialData, port, projectRoot }) {
531
592
  proc.on('close', async (code) => {
532
593
  agentRunning = false;
533
594
  if (code === 0) {
534
- // Auto-run created test files and show results
535
- if ((task === 'write-tests' || task === 'write-tests-file') && createdTestFiles.length > 0) {
595
+ // Auto-run created/fixed test files and show results
596
+ const testFilesToRun = task === 'fix-tests' && filePath ? [filePath] : createdTestFiles;
597
+ if ((task === 'write-tests' || task === 'write-tests-file' || task === 'fix-tests') && testFilesToRun.length > 0) {
536
598
  broadcast('agent-output', { line: '─────────────────────────────' });
537
- broadcast('agent-output', { line: `🧪 Запускаю тесты (${createdTestFiles.length} файлов)...` });
538
- const result = await runTestFiles(createdTestFiles, projectRoot);
599
+ broadcast('agent-output', { line: `🧪 Запускаю тесты (${testFilesToRun.length} файлов)...` });
600
+ const result = await runTestFiles(testFilesToRun, projectRoot);
601
+ // Store per-file results for "fix-tests" feature
602
+ lastTestResults.clear();
603
+ for (const [fp, detail] of Object.entries(result.fileDetails)) {
604
+ if (detail.failed > 0)
605
+ lastTestResults.set(fp, { failed: detail.failed, errors: detail.errors });
606
+ }
539
607
  const summary = result.failed === 0
540
608
  ? `✅ Все тесты прошли: ${result.passed} passed`
541
609
  : `⚠️ ${result.passed} passed, ${result.failed} failed`;
542
610
  broadcast('agent-output', { line: summary });
611
+ if (result.failed > 0) {
612
+ for (const [fp, detail] of Object.entries(result.fileDetails)) {
613
+ if (detail.failed > 0) {
614
+ const rel = path.relative(projectRoot, fp).replace(/\\/g, '/');
615
+ broadcast('agent-output', { line: ` ❌ ${rel} — ${detail.failed} упало` });
616
+ for (const e of detail.errors.slice(0, 3)) {
617
+ broadcast('agent-output', { line: ` • ${e.testName}`, isDim: true });
618
+ }
619
+ }
620
+ }
621
+ broadcast('agent-output', { line: ' → Нажми 🔧 исправить в дашборде чтобы агент починил' });
622
+ }
543
623
  broadcast('agent-summary', result);
544
624
  }
545
625
  process.stdout.write(' ✅ Agent done, rescanning...\n');
@@ -586,8 +666,14 @@ function startServer({ data: initialData, port, projectRoot }) {
586
666
  return;
587
667
  }
588
668
  if (url === '/api/data') {
669
+ // Include per-file test errors from last test run (keyed by relative path)
670
+ const testErrors = {};
671
+ for (const [fp, detail] of lastTestResults) {
672
+ const rel = path.relative(projectRoot, fp).replace(/\\/g, '/');
673
+ testErrors[rel] = detail;
674
+ }
589
675
  res.writeHead(200, { 'Content-Type': 'application/json' });
590
- res.end(JSON.stringify(currentData));
676
+ res.end(JSON.stringify({ ...currentData, testErrors }));
591
677
  return;
592
678
  }
593
679
  if (url === '/api/status') {
@@ -601,6 +687,66 @@ function startServer({ data: initialData, port, projectRoot }) {
601
687
  res.end(JSON.stringify({ ok: true }));
602
688
  return;
603
689
  }
690
+ if (url === '/api/run-tests' && req.method === 'POST') {
691
+ let body = '';
692
+ req.on('data', d => body += d);
693
+ req.on('end', async () => {
694
+ if (testsRunning) {
695
+ res.writeHead(409);
696
+ res.end(JSON.stringify({ error: 'Tests already running' }));
697
+ return;
698
+ }
699
+ try {
700
+ const { featureKey, testType } = JSON.parse(body);
701
+ const testFiles = (currentData.modules || [])
702
+ .filter(m => m.type === 'test' && m.testType === testType && m.featureKeys?.includes(featureKey))
703
+ .map(m => m.path);
704
+ res.writeHead(200, { 'Content-Type': 'application/json' });
705
+ res.end(JSON.stringify({ ok: true, count: testFiles.length }));
706
+ if (testFiles.length === 0) {
707
+ broadcast('tests-started', { featureKey, testType, count: 0 });
708
+ broadcast('agent-output', { line: `Нет ${testType} тест-файлов для этой фичи` });
709
+ broadcast('tests-done', { passed: 0, failed: 0 });
710
+ return;
711
+ }
712
+ testsRunning = true;
713
+ broadcast('tests-started', { featureKey, testType, count: testFiles.length });
714
+ broadcast('agent-output', { line: `🧪 Запускаю ${testType} тесты (${testFiles.length} файлов)…` });
715
+ process.stdout.write(` 🧪 run-tests: ${testType} ×${testFiles.length}\n`);
716
+ const result = await runTestFiles(testFiles, projectRoot);
717
+ testsRunning = false;
718
+ // Store per-file errors
719
+ lastTestResults.clear();
720
+ for (const [fp, detail] of Object.entries(result.fileDetails)) {
721
+ if (detail.failed > 0)
722
+ lastTestResults.set(fp, { failed: detail.failed, errors: detail.errors });
723
+ }
724
+ const summary = result.failed === 0
725
+ ? `✅ Все тесты прошли: ${result.passed} passed`
726
+ : `⚠️ ${result.passed} passed, ${result.failed} failed`;
727
+ broadcast('agent-output', { line: summary });
728
+ if (result.failed > 0) {
729
+ for (const [fp, detail] of Object.entries(result.fileDetails)) {
730
+ if (detail.failed > 0) {
731
+ const rel = path.relative(projectRoot, fp).replace(/\\/g, '/');
732
+ broadcast('agent-output', { line: ` ❌ ${rel} — ${detail.failed} упало` });
733
+ for (const e of detail.errors.slice(0, 3)) {
734
+ broadcast('agent-output', { line: ` • ${e.testName}`, isDim: true });
735
+ }
736
+ }
737
+ }
738
+ broadcast('agent-output', { line: ' → Нажми 🔧 исправить рядом с файлом чтобы агент починил' });
739
+ }
740
+ broadcast('tests-done', { passed: result.passed, failed: result.failed });
741
+ }
742
+ catch (err) {
743
+ testsRunning = false;
744
+ res.writeHead(400);
745
+ res.end(JSON.stringify({ error: err.message }));
746
+ }
747
+ });
748
+ return;
749
+ }
604
750
  if (url === '/api/run-agent' && req.method === 'POST') {
605
751
  process.stdout.write(' 📥 /api/run-agent received\n');
606
752
  let body = '';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0UA,kCAyYC;AAntBD,2CAA6B;AAC7B,uCAAyB;AACzB,2CAA6B;AAC7B,iDAAsC;AACtC,mDAAqC;AACrC,wDAAgC;AAChC,wCAAgF;AAahF,MAAM,cAAc,GAAG,EAAE,CAAC,YAAY,CACpC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,sBAAsB,CAAC,EAC5C,OAAO,CACR,CAAC;AAEF,iFAAiF;AAEjF,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC;AAEzC;;;;GAIG;AACH,SAAS,kBAAkB,CAAC,KAAa,EAAE,QAAgB;IACzD,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAChD,IAAI,GAAG,EAAE,CAAC;QACR,IAAI,KAAK,KAAK,QAAQ;YAAE,OAAO,SAAS,OAAO,8DAA8D,CAAC;QAC9G,IAAI,KAAK,KAAK,OAAO;YAAG,OAAO,SAAS,OAAO,eAAe,CAAC;IACjE,CAAC;SAAM,CAAC;QACN,IAAI,KAAK,KAAK,QAAQ;YAAE,OAAO,2DAA2D,OAAO,GAAG,CAAC;QACrG,IAAI,KAAK,KAAK,OAAO;YAAG,OAAO,YAAY,OAAO,GAAG,CAAC;IACxD,CAAC;IACD,OAAO,2DAA2D,OAAO,GAAG,CAAC;AAC/E,CAAC;AAED,wFAAwF;AACxF,SAAS,gBAAgB,CAAC,GAAW;IACnC,IAAI,KAAU,CAAC;IACf,IAAI,CAAC;QAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,GAAG,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC;IAAC,CAAC;IAErE,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,MAAM,MAAM,GAAU,KAAK,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC;YACnD,MAAM,KAAK,GAAa,EAAE,CAAC;YAC3B,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;gBACvB,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC;oBACxC,mDAAmD;oBACnD,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;oBACrE,IAAI,IAAI;wBAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBAC5E,CAAC;gBACD,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU;oBAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YAClE,CAAC;YACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;QAClC,CAAC;QACD,KAAK,UAAU;YACb,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1C,KAAK,QAAQ;YACX,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBAChD,wDAAwD;gBACxD,OAAO,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YAC1C,CAAC;YACD,IAAI,KAAK,CAAC,OAAO,KAAK,wBAAwB;gBAAE,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,OAAO,CAAC,CAAC;YACvF,OAAO,IAAI,CAAC;QACd,KAAK,QAAQ,CAAC;QACd,KAAK,aAAa;YAChB,OAAO,IAAI,CAAC,CAAC,aAAa;QAC5B;YACE,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC;AAED,SAAS,OAAO,CAAC,IAAY,EAAE,QAAa,EAAE;IAC5C,MAAM,EAAE,GAAG,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,aAAa,IAAI,EAAE,CAAC;IACtE,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,OAAO,CAAC,CAAQ,OAAO,aAAa,EAAE,EAAE,CAAC;QAC9C,KAAK,MAAM,CAAC,CAAS,OAAO,eAAe,EAAE,EAAE,CAAC;QAChD,KAAK,MAAM,CAAC,CAAS,OAAO,aAAa,EAAE,EAAE,CAAC;QAC9C,KAAK,MAAM,CAAC,CAAS,OAAO,OAAO,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;QACzE,KAAK,MAAM,CAAC,CAAS,OAAO,YAAY,KAAK,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;QAC9D,KAAK,MAAM,CAAC,CAAS,OAAO,YAAY,KAAK,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;QAC9D,KAAK,cAAc,CAAC,CAAC,OAAO,iBAAiB,EAAE,EAAE,CAAC;QAClD,OAAO,CAAC,CAAa,OAAO,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACjE,CAAC;AACH,CAAC;AAED,iFAAiF;AAEjF,MAAM,YAAY,GAAG,iCAAiC,CAAC;AAQvD,SAAS,YAAY,CAAC,KAAe,EAAE,WAAmB;IACxD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,IAAI,GAAG,IAAA,qBAAK,EAChB,KAAK,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,iBAAiB,EAAE,GAAG,KAAK,CAAC,EACrD,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CACjD,CAAC;QACF,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,MAAM,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC/D,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACpB,IAAI,CAAC;gBACH,4DAA4D;gBAC5D,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;gBAC9D,MAAM,IAAI,GAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gBACpD,OAAO,CAAC;oBACN,MAAM,EAAE,IAAI,CAAC,cAAc,IAAK,CAAC;oBACjC,MAAM,EAAE,IAAI,CAAC,cAAc,IAAK,CAAC;oBACjC,KAAK;iBACN,CAAC,CAAC;YACL,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;AACL,CAAC;AAED,iFAAiF;AAEjF,SAAS,qBAAqB,CAC5B,IAAmB,EACnB,OAAqB,EACrB,UAAkB;IAElB,MAAM,YAAY,GAAG,OAAO;SACzB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAEnG,MAAM,aAAa,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;IAEvF,MAAM,QAAQ,GAAG,OAAO;SACrB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;SAClE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;IAEvD,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;IAE3E,qDAAqD;IACrD,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,iBAAiB,IAAI,MAAM,CAAC,KAAK,MAAM,CAAC,CAAC;IACvF,MAAM,gBAAgB,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,KAAK,aAAa,CAAC,CAAC;IACzF,MAAM,WAAW,GAAG;QAClB,SAAS,CAAC,MAAM,GAAG,CAAC;YAClB,CAAC,CAAC,eAAe,SAAS,CAAC,MAAM,kFAAkF;YACnH,CAAC,CAAC,EAAE;QACN,gBAAgB,CAAC,MAAM,GAAG,CAAC;YACzB,CAAC,CAAC,sBAAsB,gBAAgB,CAAC,MAAM,+DAA+D;YAC9G,CAAC,CAAC,EAAE;KACP,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE7B,OAAO;QACL,0BAA0B,IAAI,CAAC,KAAK,IAAI;QACxC,EAAE;QACF,sBAAsB,YAAY,CAAC,MAAM,IAAI;QAC7C,GAAG,aAAa;QAChB,EAAE;QACF,WAAW,CAAC,CAAC,CAAC,kCAAkC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE;QAClE,EAAE;QACF,QAAQ,CAAC,MAAM,GAAG,CAAC;YACjB,CAAC,CAAC,wDAAwD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAC/E,CAAC,CAAC,EAAE;QACN,EAAE;QACF,cAAc;YACZ,CAAC,CAAC,oIAAoI;YACtI,CAAC,CAAC,EAAE;QACN,EAAE;QACF,aAAa;QACb,eAAe,UAAU,EAAE;QAC3B,kDAAkD;QAClD,sDAAsD;QACtD,iCAAiC;KAClC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,4BAA4B,CACnC,QAAgB,EAChB,IAAmB,EACnB,OAAqB,EACrB,UAAkB;IAElB,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAEhD,qFAAqF;IACrF,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CACpC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,UAAU,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,CACzE,CAAC;IACF,MAAM,iBAAiB,GAAG,YAAY,EAAE,iBAAiB,IAAI,MAAM,CAAC;IAEpE,MAAM,QAAQ,GAAG,OAAO;SACrB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;SAClE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;IAEvD,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;IAE3E,MAAM,aAAa,GAAG,iBAAiB,KAAK,aAAa;QACvD,CAAC,CAAC;YACE,wBAAwB;YACxB,0DAA0D;YAC1D,+DAA+D;YAC/D,uDAAuD;SACxD,CAAC,IAAI,CAAC,IAAI,CAAC;QACd,CAAC,CAAC;YACE,iBAAiB;YACjB,wDAAwD;YACxD,iDAAiD;YACjD,yDAAyD;SAC1D,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEjB,OAAO;QACL,2BAA2B,UAAU,KAAK;QAC1C,UAAU,IAAI,CAAC,KAAK,GAAG;QACvB,EAAE;QACF,aAAa;QACb,EAAE;QACF,QAAQ,CAAC,MAAM,GAAG,CAAC;YACjB,CAAC,CAAC,0DAA0D,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACjF,CAAC,CAAC,4EAA4E;QAChF,EAAE;QACF,cAAc;YACZ,CAAC,CAAC,oIAAoI;YACtI,CAAC,CAAC,EAAE;QACN,EAAE;QACF,aAAa;QACb,eAAe,UAAU,EAAE;QAC3B,iCAAiC,UAAU,IAAI;QAC/C,oDAAoD;QACpD,kDAAkD;QAClD,iCAAiC;KAClC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,sBAAsB,CAAC,OAAqB,EAAE,QAAyB;IAC9E,MAAM,QAAQ,GAAG,OAAO;SACrB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;SAC9F,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;IAEvD,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE9E,OAAO;QACL,aAAa,QAAQ,CAAC,MAAM,+BAA+B;QAC3D,EAAE;QACF,yBAAyB;QACzB,8FAA8F;QAC9F,8FAA8F;QAC9F,8DAA8D;QAC9D,yBAAyB;QACzB,EAAE;QACF,oBAAoB;QACpB,WAAW;QACX,EAAE;QACF,QAAQ;QACR,GAAG,QAAQ;KACZ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,gFAAgF;AAEhF,SAAS,2BAA2B,CAAC,WAAmB;IACtD,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;QAC3B,6DAA6D;QAC7D,IAAI,aAAa,GAAG,QAAQ,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;YACzF,MAAM,IAAI,GAAG,EAAE,GAAG,GAAG,CAAC,YAAY,EAAE,GAAG,GAAG,CAAC,eAAe,EAAE,CAAC;YAC7D,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAuB,CAAC;YACjD,IAAI,GAAG;gBAAE,aAAa,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,IAAI,QAAQ,CAAC;QACtE,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;QAEV,MAAM,GAAG,GAAG,uBAAuB,aAAa,EAAE,CAAC;QACnD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,GAAG,OAAO,CAAC,CAAC;QAErD,MAAM,IAAI,GAAG,IAAA,qBAAK,EAAC,KAAK,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,oBAAoB,EAAE,GAAG,CAAC,EAAE;YAC9E,GAAG,EAAE,WAAW;YAChB,KAAK,EAAE,IAAI;YACX,KAAK,EAAE,MAAM;SACd,CAAC,CAAC;QAEH,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,CAAS,EAAE,EAAE,GAAG,MAAM,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAEpE,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACxB,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBACf,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC;gBAChD,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,GAAG,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;gBACjF,OAAO,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACvB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC;YAC7D,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,iFAAiF;AAEjF,SAAS,qBAAqB,CAAC,WAAmB;IAChD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QACvD,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;YAC1D,MAAM,IAAI,GAAG,EAAE,GAAG,GAAG,CAAC,YAAY,EAAE,GAAG,GAAG,CAAC,eAAe,EAAE,CAAC;YAC7D,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;YAClC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC1D,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,YAAY,CAAC,EAAE,CAAC;YAC/D,CAAC;YACD,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBACtD,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,kCAAkC,CAAC,EAAE,CAAC;YAC1F,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IACV,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,YAAY,CAAC,EAAE,CAAC;AAC5D,CAAC;AAED,iFAAiF;AAEjF,SAAgB,WAAW,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAiB;IACjF,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAErC,IAAI,WAAW,GAAG,WAAW,CAAC;QAE9B,8EAA8E;QAC9E,IAAI,eAAe,GAAG,KAAK,CAAC;QAC5B,IAAI,aAAa,GAAK,KAAK,CAAC;QAC5B,IAAI,YAAY,GAAM,KAAK,CAAC;QAE5B,8EAA8E;QAC9E,MAAM,UAAU,GAAG,IAAI,GAAG,EAAuB,CAAC;QAElD,SAAS,SAAS,CAAC,KAAa,EAAE,UAAmC,EAAE;YACrE,MAAM,GAAG,GAAG,UAAU,KAAK,WAAW,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC;YACpE,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE,CAAC;gBAChC,IAAI,CAAC;oBAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC;oBAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAAC,CAAC;YACjE,CAAC;QACH,CAAC;QAED,8EAA8E;QAC9E,IAAI,YAAY,GAAyC,IAAI,CAAC;QAE9D,KAAK,UAAU,cAAc,CAAC,WAAoB;YAChD,IAAI,YAAY;gBAAE,YAAY,CAAC,YAAY,CAAC,CAAC;YAC7C,YAAY,GAAG,UAAU,CAAC,KAAK,IAAI,EAAE;gBACnC,IAAI,CAAC;oBACH,MAAM,KAAK,GAAG,WAAW;wBACvB,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;wBAC7D,CAAC,CAAC,GAAG,CAAC;oBACR,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,KAAK,8BAA8B,CAAC,CAAC;oBACrE,WAAW,GAAG,MAAM,IAAA,qBAAW,EAAC,WAAW,CAAC,CAAC;oBAC7C,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,UAAU,WAAW,CAAC,OAAO,CAAC,MAAM,UAAU;wBAC9C,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,QAAQ,CAAC,MAAM,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;wBACzE,cAAc,CACf,CAAC;oBACF,SAAS,CAAC,cAAc,CAAC,CAAC;gBAC5B,CAAC;gBAAC,OAAO,GAAQ,EAAE,CAAC;oBAClB,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;gBAChD,CAAC;YACH,CAAC,EAAE,GAAG,CAAC,CAAC;QACV,CAAC;QAED,8EAA8E;QAC9E,SAAS,eAAe;YACtB,IAAI,eAAe,EAAE,CAAC;gBACpB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;gBAClE,OAAO;YACT,CAAC;YACD,eAAe,GAAG,IAAI,CAAC;YACvB,aAAa,GAAK,KAAK,CAAC;YACxB,SAAS,CAAC,kBAAkB,CAAC,CAAC;YAE9B,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,qBAAqB,CAAC,WAAW,CAAC,CAAC;YACzD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAE3E,MAAM,IAAI,GAAG,IAAA,qBAAK,EAAC,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;YAEhF,IAAI,cAAc,GAAG,EAAE,CAAC;YACxB,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,CAAS,EAAE,EAAE,GAAG,cAAc,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAE5E,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;gBAC9B,eAAe,GAAG,KAAK,CAAC;gBACxB,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;oBACf,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;oBAC5D,IAAI,CAAC;wBACH,WAAW,GAAG,MAAM,IAAA,qBAAW,EAAC,WAAW,CAAC,CAAC;wBAC7C,SAAS,CAAC,cAAc,CAAC,CAAC;wBAC1B,SAAS,CAAC,eAAe,CAAC,CAAC;oBAC7B,CAAC;oBAAC,OAAO,GAAQ,EAAE,CAAC;wBAClB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,qCAAqC,GAAG,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;wBACjF,SAAS,CAAC,gBAAgB,CAAC,CAAC;oBAC9B,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,MAAM,iBAAiB,GACrB,cAAc,CAAC,QAAQ,CAAC,kBAAkB,CAAC;wBAC3C,cAAc,CAAC,QAAQ,CAAC,mBAAmB,CAAC;wBAC5C,cAAc,CAAC,QAAQ,CAAC,qBAAqB,CAAC;wBAC9C,cAAc,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;oBAElD,IAAI,iBAAiB,IAAI,WAAW,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;wBAC7D,4CAA4C;wBAC5C,2BAA2B,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;4BACjD,IAAI,EAAE,EAAE,CAAC;gCACP,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;gCACnE,eAAe,EAAE,CAAC;4BACpB,CAAC;iCAAM,CAAC;gCACN,aAAa,GAAG,IAAI,CAAC;gCACrB,SAAS,CAAC,gBAAgB,CAAC,CAAC;4BAC9B,CAAC;wBACH,CAAC,CAAC,CAAC;oBACL,CAAC;yBAAM,CAAC;wBACN,aAAa,GAAG,IAAI,CAAC;wBACrB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,mCAAmC,IAAI,KAAK,CAAC,CAAC;wBACnE,SAAS,CAAC,gBAAgB,CAAC,CAAC;oBAC9B,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBACvB,eAAe,GAAG,KAAK,CAAC;gBACxB,aAAa,GAAK,IAAI,CAAC;gBACvB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,GAAG,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;gBACzE,SAAS,CAAC,gBAAgB,CAAC,CAAC;YAC9B,CAAC,CAAC,CAAC;QACL,CAAC;QAED,8EAA8E;QAC9E,SAAS,QAAQ,CAAC,IAAyD,EAAE,UAAmB,EAAE,QAAiB;YACjH,IAAI,YAAY,EAAE,CAAC;gBACjB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;gBACrD,OAAO;YACT,CAAC;YAED,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;YAChC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,SAAS,CAAC,aAAa,EAAE,EAAE,OAAO,EAAE,sDAAsD,EAAE,CAAC,CAAC;gBAC9F,OAAO;YACT,CAAC;YAED,eAAe;YACf,IAAI,MAAc,CAAC;YACnB,IAAI,KAAa,CAAC;YAElB,MAAM,UAAU,GAAG,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC;YAEhE,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;gBAC3B,MAAM,IAAI,GAAG,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,UAAU,CAAC,CAAC;gBACnE,IAAI,CAAC,IAAI,EAAE,CAAC;oBACV,SAAS,CAAC,aAAa,EAAE,EAAE,OAAO,EAAE,oBAAoB,UAAU,EAAE,EAAE,CAAC,CAAC;oBACxE,OAAO;gBACT,CAAC;gBACD,MAAM,GAAG,qBAAqB,CAAC,IAAI,EAAE,WAAW,CAAC,OAAO,EAAE,WAAW,CAAC,UAAU,IAAI,QAAQ,CAAC,CAAC;gBAC9F,KAAK,GAAI,GAAG,UAAU,iBAAiB,IAAI,CAAC,KAAK,GAAG,CAAC;YACvD,CAAC;iBAAM,IAAI,IAAI,KAAK,kBAAkB,EAAE,CAAC;gBACvC,MAAM,IAAI,GAAG,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,UAAU,CAAC,CAAC;gBACnE,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACvB,SAAS,CAAC,aAAa,EAAE,EAAE,OAAO,EAAE,0BAA0B,EAAE,CAAC,CAAC;oBAClE,OAAO;gBACT,CAAC;gBACD,MAAM,GAAG,4BAA4B,CAAC,QAAQ,EAAE,IAAI,EAAE,WAAW,CAAC,OAAO,EAAE,WAAW,CAAC,UAAU,IAAI,QAAQ,CAAC,CAAC;gBAC/G,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,QAAQ,CAAC;gBAC3E,KAAK,GAAI,GAAG,UAAU,gBAAgB,QAAQ,GAAG,CAAC;YACpD,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,sBAAsB,CAAC,WAAW,CAAC,OAAO,EAAE,WAAW,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;gBACjF,KAAK,GAAI,GAAG,UAAU,uBAAuB,CAAC;YAChD,CAAC;YAED,YAAY,GAAG,IAAI,CAAC;YACpB,SAAS,CAAC,eAAe,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;YACxD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC;YAElE,mDAAmD;YACnD,MAAM,OAAO,GAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;YACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YAC/C,IAAI,CAAC;gBACH,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC3C,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;YAC9C,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;YAEV,mFAAmF;YACnF,MAAM,QAAQ,GAAG,kBAAkB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YACrD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,QAAQ,IAAI,CAAC,CAAC;YACvD,MAAM,IAAI,GAAG,IAAA,qBAAK,EAAC,QAAQ,EAAE,EAAE,EAAE;gBAC/B,GAAG,EAAE,WAAW;gBAChB,KAAK,EAAE,IAAI;gBACX,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;aAClC,CAAC,CAAC;YACH,SAAS,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,gBAAgB,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACpG,SAAS,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,yCAAyC,EAAE,CAAC,CAAC;YAE/E,gEAAgE;YAChE,MAAM,gBAAgB,GAAa,EAAE,CAAC;YAEtC,SAAS,iBAAiB,CAAC,GAAW;gBACpC,IAAI,CAAC;oBACH,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBAC3B,MAAM,MAAM,GAAG,EAAE,CAAC,IAAI,KAAK,WAAW;wBACpC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC;wBAC7B,CAAC,CAAC,EAAE,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBACvC,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;wBACvB,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC;4BACpE,MAAM,EAAE,GAAW,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC;4BACrC,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;gCAC5D,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;4BAC5B,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC,CAAA,CAAC;YACZ,CAAC;YAED,sEAAsE;YACtE,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,MAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;YAClF,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,GAAW,EAAE,EAAE;gBAC5B,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;oBAAE,OAAO;gBACxB,iBAAiB,CAAC,GAAG,CAAC,CAAC;gBACvB,MAAM,MAAM,GAAG,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;gBAChE,8FAA8F;gBAC9F,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,SAAS,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;oBACpE,OAAO;gBACT,CAAC;gBAED,IAAI,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;oBAClC,gEAAgE;oBAChE,SAAS,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,+BAA+B,EAAE,CAAC,CAAC;oBACrE,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC5D,IAAI,CAAC,CAAC,IAAI,EAAE;4BAAE,SAAS,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC;oBAC9D,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;wBACnC,IAAI,CAAC,CAAC,IAAI,EAAE;4BAAE,SAAS,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;oBACvD,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,sDAAsD;YACtD,IAAI,CAAC,MAAO,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;gBACxC,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC3D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,SAAS,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;gBACrD,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;gBAC9B,YAAY,GAAG,KAAK,CAAC;gBACrB,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;oBACf,+CAA+C;oBAC/C,IAAI,CAAC,IAAI,KAAK,aAAa,IAAI,IAAI,KAAK,kBAAkB,CAAC,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC3F,SAAS,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,+BAA+B,EAAE,CAAC,CAAC;wBACrE,SAAS,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,sBAAsB,gBAAgB,CAAC,MAAM,aAAa,EAAE,CAAC,CAAC;wBAChG,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;wBACjE,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC;4BACjC,CAAC,CAAC,uBAAuB,MAAM,CAAC,MAAM,SAAS;4BAC/C,CAAC,CAAC,OAAO,MAAM,CAAC,MAAM,YAAY,MAAM,CAAC,MAAM,SAAS,CAAC;wBAC3D,SAAS,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;wBAC7C,SAAS,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;oBACrC,CAAC;oBAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;oBACzD,IAAI,CAAC;wBACH,WAAW,GAAG,MAAM,IAAA,qBAAW,EAAC,WAAW,CAAC,CAAC;wBAC7C,SAAS,CAAC,cAAc,CAAC,CAAC;oBAC5B,CAAC;oBAAC,MAAM,CAAC,CAAA,CAAC;oBACV,SAAS,CAAC,YAAY,CAAC,CAAC;gBAC1B,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gCAAgC,IAAI,KAAK,CAAC,CAAC;oBAChE,SAAS,CAAC,aAAa,EAAE,EAAE,OAAO,EAAE,4BAA4B,IAAI,EAAE,EAAE,CAAC,CAAC;gBAC5E,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBACvB,YAAY,GAAG,KAAK,CAAC;gBACrB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,GAAG,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;gBACtE,SAAS,CAAC,aAAa,EAAE,EAAE,OAAO,EAAE,wBAAwB,KAAK,KAAK,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACzF,CAAC,CAAC,CAAC;QACL,CAAC;QAED,8EAA8E;QAC9E,kBAAQ,CAAC,KAAK,CAAC;YACb,iCAAiC;YACjC,uBAAuB;SACxB,EAAE;YACD,GAAG,EAAE,WAAW;YAChB,OAAO,EAAE;gBACP,oBAAoB,EAAE,YAAY,EAAE,YAAY;gBAChD,gBAAgB,EAAK,aAAa,EAAE,cAAc;aACnD;YACD,aAAa,EAAE,IAAI;YACnB,UAAU,EAAE,IAAI;SACjB,CAAC;aACC,EAAE,CAAC,KAAK,EAAK,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;aAC5D,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;aAC5D,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAEhE,8EAA8E;QAC9E,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAC5C,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC;YAE3B,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;gBAChB,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,0BAA0B,EAAE,CAAC,CAAC;gBACnE,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;gBACxB,OAAO;YACT,CAAC;YAED,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;gBACxB,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;gBAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC;gBACrC,OAAO;YACT,CAAC;YAED,IAAI,GAAG,KAAK,aAAa,EAAE,CAAC;gBAC1B,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;gBAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;gBAC1E,OAAO;YACT,CAAC;YAED,IAAI,GAAG,KAAK,mBAAmB,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBACzD,eAAe,EAAE,CAAC;gBAClB,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;gBAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;gBACtC,OAAO;YACT,CAAC;YAED,IAAI,GAAG,KAAK,gBAAgB,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBACtD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;gBACxD,IAAI,IAAI,GAAG,EAAE,CAAC;gBACd,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;gBAC/B,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;oBACjB,IAAI,CAAC;wBACH,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBACxD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,IAAI,eAAe,UAAU,aAAa,QAAQ,IAAI,CAAC,CAAC;wBACtG,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;wBACrC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;wBAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;oBACxC,CAAC;oBAAC,OAAO,GAAQ,EAAE,CAAC;wBAClB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,+BAA+B,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC;wBACrE,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;wBACnB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;oBAClD,CAAC;gBACH,CAAC,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YAED,IAAI,GAAG,KAAK,mBAAmB,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBACzD,YAAY,GAAG,KAAK,CAAC;gBACrB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;gBACzD,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;gBAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;gBACtC,OAAO;YACT,CAAC;YAED,IAAI,GAAG,KAAK,gBAAgB,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBACtD,IAAI,IAAI,GAAG,EAAE,CAAC;gBACd,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;gBAC/B,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;oBACjB,IAAI,CAAC;wBACH,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBACnC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,uBAAuB,CAAC,CAAC;wBACnE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;wBAChE,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;wBACrB,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;wBACvE,cAAc,EAAE,CAAC;wBACjB,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;wBAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;oBAC/C,CAAC;oBAAC,OAAO,GAAQ,EAAE,CAAC;wBAClB,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;wBACnB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;oBAClD,CAAC;gBACH,CAAC,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YAED,8BAA8B;YAC9B,IAAI,GAAG,KAAK,aAAa,EAAE,CAAC;gBAC1B,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE;oBACjB,cAAc,EAAG,mBAAmB;oBACpC,eAAe,EAAE,UAAU;oBAC3B,YAAY,EAAK,YAAY;iBAC9B,CAAC,CAAC;gBACH,GAAG,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;gBACjC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACpB,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC9C,OAAO;YACT,CAAC;YAED,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACnB,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAA0B,EAAE,EAAE;YAChD,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBAC9B,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,IAAI,mDAAmD,CAAC,CAAC,CAAC;YACrF,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,GAAG,CAAC,CAAC;YACd,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;QAE7E,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE;YAC1B,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;YACvC,8EAA8E;YAC9E,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE,CAAC;gBAChC,IAAI,CAAC;oBAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAA,CAAC;YACpC,CAAC;YACD,UAAU,CAAC,KAAK,EAAE,CAAC;YACnB,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACpC,4DAA4D;YAC5D,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;QACjD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"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"}
@@ -455,6 +455,16 @@
455
455
  background: var(--bg-hover);
456
456
  border-width: 2px;
457
457
  }
458
+ .tt-run-btn {
459
+ display: block; width: 100%; margin-top: 8px;
460
+ padding: 3px 0;
461
+ background: transparent; border: 1px solid var(--border);
462
+ border-radius: 4px; color: var(--muted); font-size: 10px;
463
+ cursor: pointer; text-align: center;
464
+ transition: background 0.1s, color 0.1s, border-color 0.1s;
465
+ }
466
+ .tt-run-btn:hover { background: var(--bg-hover); color: var(--text); border-color: var(--dim); }
467
+ .tt-run-btn:disabled { opacity: 0.4; cursor: not-allowed; }
458
468
  .file-rows { display: flex; flex-direction: column; gap: 2px; }
459
469
  .file-row {
460
470
  display: flex;
@@ -489,6 +499,22 @@
489
499
  .file-row-agent-btn:hover { background: var(--accent); color: #000 !important; border-color: var(--accent); }
490
500
  .file-row-agent-btn.stale { border-color: var(--yellow); color: var(--yellow); }
491
501
  .file-row-agent-btn.stale:hover { background: var(--yellow) !important; color: #000 !important; }
502
+ .file-row-fix-btn { border-color: var(--red) !important; color: var(--red) !important; }
503
+ .file-row-fix-btn:hover { background: var(--red) !important; color: #fff !important; border-color: var(--red) !important; }
504
+ .file-row-err-badge {
505
+ display: inline-flex; align-items: center;
506
+ font-size: 11px; padding: 1px 6px; border-radius: 10px;
507
+ background: #3a1a1a; color: var(--red);
508
+ cursor: pointer; white-space: nowrap; flex-shrink: 0;
509
+ }
510
+ .file-row.has-errors { border-left: 2px solid var(--red); padding-left: 8px; }
511
+ .file-row-errors {
512
+ padding: 4px 10px 6px 32px;
513
+ display: flex; flex-direction: column; gap: 3px;
514
+ }
515
+ .err-item { display: flex; flex-direction: column; gap: 1px; }
516
+ .err-name { font-size: 11px; color: var(--muted); }
517
+ .err-msg { font-size: 10px; color: var(--red); font-family: monospace; opacity: 0.85; }
492
518
 
493
519
  /* ── Agent setup banner ──────────────────────────────────────────────────── */
494
520
  .agent-setup-banner {
@@ -712,6 +738,19 @@ async function runAgentTask(task, featureKey, filePath) {
712
738
  });
713
739
  }
714
740
 
741
+ async function runTests(featureKey, testType) {
742
+ document.getElementById('agentTerminal').innerHTML = '';
743
+ document.getElementById('agentPanelTitle').textContent = `🧪 ${testType} тесты`;
744
+ document.getElementById('agentPanelStatus').textContent = 'запускаю…';
745
+ document.getElementById('agentPanel').classList.add('open');
746
+ document.getElementById('termBtn').classList.add('term-active');
747
+ await fetch('/api/run-tests', {
748
+ method: 'POST',
749
+ headers: { 'Content-Type': 'application/json' },
750
+ body: JSON.stringify({ featureKey, testType }),
751
+ });
752
+ }
753
+
715
754
  function closeAgentPanel() {
716
755
  document.getElementById('agentPanel').classList.remove('open');
717
756
  document.getElementById('termBtn').classList.remove('term-active');
@@ -1028,9 +1067,12 @@ function renderFeatureCards(c) {
1028
1067
  }
1029
1068
  }
1030
1069
 
1031
- function testTypeCard(type, label, icon, color, count, active) {
1070
+ function testTypeCard(type, label, icon, color, count, active, featureKey) {
1032
1071
  const empty = count === 0 && type !== 'source';
1033
1072
  const subLabel = empty ? 'нет тестов' : (type === 'source' ? 'код приложения' : pluralFiles(count));
1073
+ const runBtn = !empty && type !== 'source' && featureKey
1074
+ ? `<button class="tt-run-btn" onclick="event.stopPropagation();runTests('${featureKey}','${type}')">▶ запустить</button>`
1075
+ : '';
1034
1076
  return `
1035
1077
  <div class="test-type-card${empty ? ' tt-empty' : ''}${active ? ' tt-active' : ''}" data-testtype="${type}"
1036
1078
  style="${active ? 'border-color:' + color : ''}">
@@ -1038,6 +1080,7 @@ function testTypeCard(type, label, icon, color, count, active) {
1038
1080
  <div class="tt-label">${icon} ${label}</div>
1039
1081
  <div class="tt-count" style="color:${active || !empty ? color : 'var(--dim)'}">${count}</div>
1040
1082
  <div class="tt-sub">${subLabel}</div>
1083
+ ${runBtn}
1041
1084
  </div>`;
1042
1085
  }
1043
1086
 
@@ -1089,10 +1132,10 @@ function renderFeatureDetail(c) {
1089
1132
  ${feat.description ? `<div class="drill-desc">${feat.description}</div>` : ''}
1090
1133
 
1091
1134
  <div class="test-type-grid">
1092
- ${testTypeCard('source', 'Файлы', '📁', feat.color, src.length, activeTab === 'source')}
1093
- ${testTypeCard('unit', 'Unit', '🧪', '#e3b341', unitCount, activeTab === 'unit')}
1094
- ${testTypeCard('integration', 'Integration', '🔗', '#58a6ff', integrationCount, activeTab === 'integration')}
1095
- ${testTypeCard('e2e', 'E2E', '🎭', '#d2a8ff', e2eCount, activeTab === 'e2e')}
1135
+ ${testTypeCard('source', 'Файлы', '📁', feat.color, src.length, activeTab === 'source', drillFeatureKey)}
1136
+ ${testTypeCard('unit', 'Unit', '🧪', '#e3b341', unitCount, activeTab === 'unit', drillFeatureKey)}
1137
+ ${testTypeCard('integration', 'Integration', '🔗', '#58a6ff', integrationCount, activeTab === 'integration', drillFeatureKey)}
1138
+ ${testTypeCard('e2e', 'E2E', '🎭', '#d2a8ff', e2eCount, activeTab === 'e2e', drillFeatureKey)}
1096
1139
  </div>
1097
1140
 
1098
1141
  <div class="drill-section-label">${listLabel}</div>
@@ -1259,28 +1302,58 @@ function renderUnmappedDetail(c) {
1259
1302
  }
1260
1303
 
1261
1304
  function fileRow(m, isTest = false, featureKey = null) {
1262
- const parts = m.relativePath.replace(/\\/g, '/').split('/');
1263
- const name = parts[parts.length - 1];
1264
- const dir = parts.slice(0, -1).join('/');
1265
- const icon = isTest ? '🧪' : (m.testStale ? '⚠️' : m.hasTests ? '' : '⬜');
1305
+ const relPath = m.relativePath.replace(/\\/g, '/');
1306
+ const parts = relPath.split('/');
1307
+ const name = parts[parts.length - 1];
1308
+ const dir = parts.slice(0, -1).join('/');
1309
+
1310
+ // Test errors from last run
1311
+ const testErr = isTest && D.testErrors && D.testErrors[relPath];
1312
+ const icon = testErr ? '❌' : isTest ? '🧪' : (m.testStale ? '⚠️' : m.hasTests ? '✅' : '⬜');
1266
1313
  const isActive = activePanelKey === m.id;
1267
- // Agent button: "написать тест" for untested, "обновить тест" for stale
1314
+
1315
+ // Write-test button for source files
1268
1316
  const showAgentBtn = D.agent && !isTest && !m.isInfra && featureKey && (!m.hasTests || m.testStale);
1269
1317
  const agentBtnLabel = m.testStale ? '↻ обновить тест' : '✍ написать тест';
1270
1318
  const agentBtnTitle = m.testStale ? 'Файл изменился — обновить тесты' : 'Написать тест для этого файла';
1271
- const agentTask = m.testStale ? 'write-tests-file' : 'write-tests-file';
1272
1319
  const agentBtn = showAgentBtn
1273
1320
  ? `<button class="file-row-agent-btn${m.testStale ? ' stale' : ''}" title="${agentBtnTitle}"
1274
- onclick="event.stopPropagation();runAgentTask('${agentTask}','${featureKey}','${m.relativePath.replace(/\\/g, '/')}')">
1321
+ onclick="event.stopPropagation();runAgentTask('write-tests-file','${featureKey}','${relPath}')">
1275
1322
  ${agentBtnLabel}</button>`
1276
1323
  : '';
1324
+
1325
+ // Fix button for test files with errors
1326
+ const errBadge = testErr
1327
+ ? `<span class="file-row-err-badge" title="${testErr.failed} тестов упало">❌ ${testErr.failed}</span>`
1328
+ : '';
1329
+ const fixBtn = testErr && D.agent
1330
+ ? `<button class="file-row-agent-btn file-row-fix-btn" title="Попросить агента исправить упавшие тесты"
1331
+ onclick="event.stopPropagation();runAgentTask('fix-tests','${featureKey || ''}','${relPath}')">
1332
+ 🔧 исправить</button>`
1333
+ : '';
1334
+
1335
+ // Inline error list (always shown when there are errors)
1336
+ const errHtml = testErr
1337
+ ? `<div class="file-row-errors">
1338
+ ${testErr.errors.slice(0, 5).map(e => `
1339
+ <div class="err-item">
1340
+ <span class="err-name">• ${e.testName}</span>
1341
+ <span class="err-msg">${e.message}</span>
1342
+ </div>`).join('')}
1343
+ ${testErr.errors.length > 5 ? `<span class="err-name" style="color:var(--dim)">… ещё ${testErr.errors.length - 5}</span>` : ''}
1344
+ </div>`
1345
+ : '';
1346
+
1277
1347
  return `
1278
- <div class="file-row${isActive ? ' active' : ''}" data-id="${m.id}">
1348
+ <div class="file-row${isActive ? ' active' : ''}${testErr ? ' has-errors' : ''}" data-id="${m.id}">
1279
1349
  <span class="file-row-icon">${icon}</span>
1280
1350
  <span class="file-row-name">${name}</span>
1351
+ ${errBadge}
1281
1352
  ${agentBtn}
1353
+ ${fixBtn}
1282
1354
  <span class="file-row-dir">${dir}</span>
1283
- </div>`;
1355
+ </div>
1356
+ ${errHtml}`;
1284
1357
  }
1285
1358
 
1286
1359
  function renderModuleGrid(c) {
@@ -1676,6 +1749,20 @@ function connectSSE() {
1676
1749
  appendTerminalLine('❌ ' + (message || 'Ошибка агента'), true);
1677
1750
  });
1678
1751
 
1752
+ es.addEventListener('tests-started', (e) => {
1753
+ const { testType, count } = JSON.parse(e.data);
1754
+ document.getElementById('agentPanelTitle').textContent = `🧪 ${testType} тесты`;
1755
+ document.getElementById('agentPanelStatus').textContent = `запускаю ${count} файлов…`;
1756
+ });
1757
+
1758
+ es.addEventListener('tests-done', (e) => {
1759
+ const { passed, failed } = JSON.parse(e.data);
1760
+ document.getElementById('agentPanelStatus').textContent =
1761
+ failed === 0 ? `✅ ${passed} passed` : `⚠️ ${passed} passed, ${failed} failed`;
1762
+ // Refresh data to show updated error badges
1763
+ fetch('/api/data').then(r => r.json()).then(data => { D = data; renderContent(); });
1764
+ });
1765
+
1679
1766
  es.onerror = () => {
1680
1767
  setLiveDot('var(--dim)', 'Нет соединения — переподключаюсь…');
1681
1768
  es.close();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "viberadar",
3
- "version": "0.3.16",
3
+ "version": "0.3.18",
4
4
  "description": "Live module map with test coverage for vibecoding projects",
5
5
  "main": "./dist/cli.js",
6
6
  "bin": {