memento-mcp-server 1.11.1 → 1.12.0-a

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 (124) hide show
  1. package/README.en.md +21 -6
  2. package/README.md +38 -7
  3. package/dist/algorithms/hybrid-search-engine.d.ts +34 -1
  4. package/dist/algorithms/hybrid-search-engine.d.ts.map +1 -1
  5. package/dist/algorithms/hybrid-search-engine.js +186 -17
  6. package/dist/algorithms/hybrid-search-engine.js.map +1 -1
  7. package/dist/algorithms/search-ranking.d.ts +15 -1
  8. package/dist/algorithms/search-ranking.d.ts.map +1 -1
  9. package/dist/algorithms/search-ranking.js +41 -4
  10. package/dist/algorithms/search-ranking.js.map +1 -1
  11. package/dist/config/environment.d.ts.map +1 -1
  12. package/dist/config/environment.js +4 -0
  13. package/dist/config/environment.js.map +1 -1
  14. package/dist/config/index.d.ts.map +1 -1
  15. package/dist/config/index.js +6 -0
  16. package/dist/config/index.js.map +1 -1
  17. package/dist/config/ranking-weights-loader.d.ts +37 -0
  18. package/dist/config/ranking-weights-loader.d.ts.map +1 -0
  19. package/dist/config/ranking-weights-loader.js +109 -0
  20. package/dist/config/ranking-weights-loader.js.map +1 -0
  21. package/dist/constants/relation-constants.d.ts +95 -0
  22. package/dist/constants/relation-constants.d.ts.map +1 -0
  23. package/dist/constants/relation-constants.js +95 -0
  24. package/dist/constants/relation-constants.js.map +1 -0
  25. package/dist/database/migration/migrations/005-relation-engine-schema.d.ts +65 -0
  26. package/dist/database/migration/migrations/005-relation-engine-schema.d.ts.map +1 -0
  27. package/dist/database/migration/migrations/005-relation-engine-schema.js +295 -0
  28. package/dist/database/migration/migrations/005-relation-engine-schema.js.map +1 -0
  29. package/dist/database/migration/migrations/005-relation-engine-schema.sql +64 -0
  30. package/dist/services/anchor/anchor-interfaces.d.ts +1 -0
  31. package/dist/services/anchor/anchor-interfaces.d.ts.map +1 -1
  32. package/dist/services/anchor/anchor-interfaces.js.map +1 -1
  33. package/dist/services/anchor/anchor-search-service.d.ts +16 -0
  34. package/dist/services/anchor/anchor-search-service.d.ts.map +1 -1
  35. package/dist/services/anchor/anchor-search-service.js +136 -17
  36. package/dist/services/anchor/anchor-search-service.js.map +1 -1
  37. package/dist/services/batch-scheduler.d.ts +11 -0
  38. package/dist/services/batch-scheduler.d.ts.map +1 -1
  39. package/dist/services/batch-scheduler.js +99 -0
  40. package/dist/services/batch-scheduler.js.map +1 -1
  41. package/dist/services/llm-based-relation-extractor.d.ts +156 -0
  42. package/dist/services/llm-based-relation-extractor.d.ts.map +1 -0
  43. package/dist/services/llm-based-relation-extractor.js +1350 -0
  44. package/dist/services/llm-based-relation-extractor.js.map +1 -0
  45. package/dist/services/relation-extractor.d.ts +73 -0
  46. package/dist/services/relation-extractor.d.ts.map +1 -0
  47. package/dist/services/relation-extractor.js +231 -0
  48. package/dist/services/relation-extractor.js.map +1 -0
  49. package/dist/services/relation-graph.d.ts +275 -0
  50. package/dist/services/relation-graph.d.ts.map +1 -0
  51. package/dist/services/relation-graph.js +869 -0
  52. package/dist/services/relation-graph.js.map +1 -0
  53. package/dist/services/relation-quality-validator.d.ts +211 -0
  54. package/dist/services/relation-quality-validator.d.ts.map +1 -0
  55. package/dist/services/relation-quality-validator.js +415 -0
  56. package/dist/services/relation-quality-validator.js.map +1 -0
  57. package/dist/services/rule-based-relation-extractor.d.ts +66 -0
  58. package/dist/services/rule-based-relation-extractor.d.ts.map +1 -0
  59. package/dist/services/rule-based-relation-extractor.js +258 -0
  60. package/dist/services/rule-based-relation-extractor.js.map +1 -0
  61. package/dist/tools/add-relation-tool.d.ts +34 -0
  62. package/dist/tools/add-relation-tool.d.ts.map +1 -0
  63. package/dist/tools/add-relation-tool.js +163 -0
  64. package/dist/tools/add-relation-tool.js.map +1 -0
  65. package/dist/tools/extract-relations-tool.d.ts +28 -0
  66. package/dist/tools/extract-relations-tool.d.ts.map +1 -0
  67. package/dist/tools/extract-relations-tool.js +159 -0
  68. package/dist/tools/extract-relations-tool.js.map +1 -0
  69. package/dist/tools/get-relations-tool.d.ts +34 -0
  70. package/dist/tools/get-relations-tool.d.ts.map +1 -0
  71. package/dist/tools/get-relations-tool.js +155 -0
  72. package/dist/tools/get-relations-tool.js.map +1 -0
  73. package/dist/tools/index.d.ts +6 -1
  74. package/dist/tools/index.d.ts.map +1 -1
  75. package/dist/tools/index.js +16 -2
  76. package/dist/tools/index.js.map +1 -1
  77. package/dist/tools/remember-tool.d.ts +17 -0
  78. package/dist/tools/remember-tool.d.ts.map +1 -1
  79. package/dist/tools/remember-tool.js +195 -26
  80. package/dist/tools/remember-tool.js.map +1 -1
  81. package/dist/tools/remove-relation-tool.d.ts +45 -0
  82. package/dist/tools/remove-relation-tool.d.ts.map +1 -0
  83. package/dist/tools/remove-relation-tool.js +142 -0
  84. package/dist/tools/remove-relation-tool.js.map +1 -0
  85. package/dist/tools/search-local-tool.d.ts.map +1 -1
  86. package/dist/tools/search-local-tool.js +10 -3
  87. package/dist/tools/search-local-tool.js.map +1 -1
  88. package/dist/tools/types.d.ts +2 -0
  89. package/dist/tools/types.d.ts.map +1 -1
  90. package/dist/tools/types.js.map +1 -1
  91. package/dist/tools/visualize-relations-tool.d.ts +46 -0
  92. package/dist/tools/visualize-relations-tool.d.ts.map +1 -0
  93. package/dist/tools/visualize-relations-tool.js +157 -0
  94. package/dist/tools/visualize-relations-tool.js.map +1 -0
  95. package/dist/types/index.d.ts +8 -0
  96. package/dist/types/index.d.ts.map +1 -1
  97. package/dist/types/index.js +1 -0
  98. package/dist/types/index.js.map +1 -1
  99. package/dist/types/relation-graph.d.ts +215 -0
  100. package/dist/types/relation-graph.d.ts.map +1 -0
  101. package/dist/types/relation-graph.js +6 -0
  102. package/dist/types/relation-graph.js.map +1 -0
  103. package/dist/types/relation.d.ts +112 -0
  104. package/dist/types/relation.d.ts.map +1 -0
  105. package/dist/types/relation.js +67 -0
  106. package/dist/types/relation.js.map +1 -0
  107. package/dist/utils/cache-key-generator.d.ts +63 -0
  108. package/dist/utils/cache-key-generator.d.ts.map +1 -0
  109. package/dist/utils/cache-key-generator.js +76 -0
  110. package/dist/utils/cache-key-generator.js.map +1 -0
  111. package/dist/utils/database.d.ts.map +1 -1
  112. package/dist/utils/database.js +37 -17
  113. package/dist/utils/database.js.map +1 -1
  114. package/dist/utils/relation-visualizer.d.ts +81 -0
  115. package/dist/utils/relation-visualizer.d.ts.map +1 -0
  116. package/dist/utils/relation-visualizer.js +239 -0
  117. package/dist/utils/relation-visualizer.js.map +1 -0
  118. package/dist/utils/type-guards.d.ts +100 -0
  119. package/dist/utils/type-guards.d.ts.map +1 -0
  120. package/dist/utils/type-guards.js +144 -0
  121. package/dist/utils/type-guards.js.map +1 -0
  122. package/package.json +7 -2
  123. package/scripts/generate-relation-report.ts +481 -0
  124. package/scripts/weekly-relation-validation.ts +423 -0
@@ -5,6 +5,7 @@
5
5
  */
6
6
  import { UnifiedEmbeddingService } from '../unified-embedding-service.js';
7
7
  import { logger } from '../../utils/logger.js';
8
+ import { RelationGraph } from '../relation-graph.js';
8
9
  /**
9
10
  * Anchor Search Service 구현
10
11
  */
@@ -14,6 +15,7 @@ export class AnchorSearchService {
14
15
  hybridSearchEngine = null;
15
16
  vectorSearchEngine = null;
16
17
  queryEmbeddingService = new UnifiedEmbeddingService();
18
+ relationGraph = null;
17
19
  /**
18
20
  * 생성자
19
21
  */
@@ -21,6 +23,12 @@ export class AnchorSearchService {
21
23
  this.cacheService = cacheService;
22
24
  logger.info('AnchorSearchService 초기화 완료');
23
25
  }
26
+ /**
27
+ * RelationGraph 설정 (선택적)
28
+ */
29
+ setRelationGraph(relationGraph) {
30
+ this.relationGraph = relationGraph;
31
+ }
24
32
  /**
25
33
  * 데이터베이스 설정
26
34
  */
@@ -67,12 +75,14 @@ export class AnchorSearchService {
67
75
  // 검색 옵션 기본값
68
76
  const limit = options?.limit ?? 10;
69
77
  const minResults = options?.min_results ?? 3;
78
+ const useRelations = options?.use_relations ?? true; // 기본값: true
70
79
  // VectorSearchEngine이 없으면 에러
71
80
  if (!this.vectorSearchEngine) {
72
81
  throw new Error('VectorSearchEngine is not set. Call setVectorSearchEngine() first.');
73
82
  }
74
- // N-hop 검색 구현
75
- const allHopResults = await this.searchNHop(anchorEmbedding.embedding, anchorEmbedding.provider, anchorMemoryId, vectorThreshold, finalHopLimit, limit * 2 // 더 많이 가져와서 필터링 후 최종 limit 적용
83
+ // N-hop 검색 구현 (use_relations 옵션에 따라 관계 그래프 사용 여부 결정)
84
+ const allHopResults = await this.searchNHop(anchorEmbedding.embedding, anchorEmbedding.provider, anchorMemoryId, vectorThreshold, finalHopLimit, limit * 2, // 더 많이 가져와서 필터링 후 최종 limit 적용
85
+ useRelations // 관계 그래프 사용 여부 전달
76
86
  );
77
87
  // 쿼리가 있는 경우 쿼리 기반 필터링
78
88
  let filteredResults = allHopResults;
@@ -209,7 +219,7 @@ export class AnchorSearchService {
209
219
  /**
210
220
  * N-hop 검색: 앵커를 기준으로 최대 N-hop까지 확장 검색
211
221
  */
212
- async searchNHop(anchorEmbedding, provider, anchorMemoryId, threshold, maxHops, limit) {
222
+ async searchNHop(anchorEmbedding, provider, anchorMemoryId, threshold, maxHops, limit, useRelations = true) {
213
223
  if (!this.vectorSearchEngine || !this.db) {
214
224
  throw new Error('VectorSearchEngine or Database is not set.');
215
225
  }
@@ -233,8 +243,11 @@ export class AnchorSearchService {
233
243
  // 현재 hop의 각 메모리에 대해 검색 수행
234
244
  for (const currentMemory of currentHopMemories) {
235
245
  try {
236
- // memory_link를 활용한 직접 연결된 메모리 조회 (최적화)
237
- const linkedMemories = await this.getLinkedMemories(currentMemory.memory_id);
246
+ // 관계 그래프 또는 memory_link를 활용한 직접 연결된 메모리 조회
247
+ // use_relations가 false이면 관계 그래프를 사용하지 않음
248
+ const linkedMemories = useRelations
249
+ ? await this.getLinkedMemories(currentMemory.memory_id)
250
+ : [];
238
251
  // 벡터 검색 실행
239
252
  const vectorSearchResults = await this.vectorSearchEngine.search(currentMemory.embedding, {
240
253
  limit: Math.ceil(limit / maxHops) + 10, // 각 hop당 충분한 결과 가져오기
@@ -289,7 +302,8 @@ export class AnchorSearchService {
289
302
  similarity: candidate.similarity,
290
303
  importance: candidate.importance,
291
304
  created_at: candidate.created_at,
292
- tags: candidate.tags
305
+ tags: candidate.tags,
306
+ hasRelation: candidate.isLinked // 관계가 있는 기억 표시
293
307
  });
294
308
  // 다음 hop을 위한 임베딩 조회
295
309
  if (hop < maxHops) {
@@ -325,7 +339,8 @@ export class AnchorSearchService {
325
339
  for (const result of hopResults) {
326
340
  allResults.push({
327
341
  ...result,
328
- hop_distance: hop
342
+ hop_distance: hop,
343
+ hasRelation: result.hasRelation ?? false
329
344
  });
330
345
  }
331
346
  // limit에 도달했으면 중단
@@ -339,16 +354,51 @@ export class AnchorSearchService {
339
354
  // 다음 hop을 위한 메모리로 업데이트
340
355
  currentHopMemories = nextHopMemories;
341
356
  }
342
- // 랭킹 점수 계산 및 적용
343
- const rankedResults = allResults.map(result => {
344
- const rankingScore = this.calculateRankingScore(result.similarity, result.hop_distance, result.importance);
357
+ // 랭킹 점수 계산 및 적용 (관계 그래프 가중치 포함)
358
+ const rankedResults = await Promise.all(allResults.map(async (result) => {
359
+ // 관계 가중치 계산 (관계 그래프가 있고 use_relations가 true인 경우)
360
+ let relationWeight = 0;
361
+ let hasRelation = result.hasRelation ?? false;
362
+ if (useRelations && this.relationGraph) {
363
+ try {
364
+ const relations = await this.relationGraph.getRelations(result.memory_id, {
365
+ direction: 'both',
366
+ minConfidence: 0.5
367
+ });
368
+ if (relations.length > 0) {
369
+ hasRelation = true; // 관계가 있음을 표시
370
+ // 관계 가중치 계산 (간단한 평균)
371
+ const avgConfidence = relations.reduce((sum, r) => sum + r.confidence, 0) / relations.length;
372
+ const avgBoost = relations.reduce((sum, r) => sum + this.getRelationTypeBoost(r.relation_type), 0) / relations.length;
373
+ relationWeight = Math.min(1.0, avgConfidence * avgBoost);
374
+ }
375
+ }
376
+ catch (error) {
377
+ // 관계 조회 실패는 무시
378
+ logger.debug('Relation weight calculation failed', {
379
+ memoryId: result.memory_id,
380
+ error: error instanceof Error ? error.message : String(error)
381
+ });
382
+ }
383
+ }
384
+ const rankingScore = this.calculateRankingScore(result.similarity, result.hop_distance, result.importance, relationWeight, hasRelation // 관계가 있는 기억에 우선순위 부여
385
+ );
345
386
  return {
346
387
  ...result,
347
- similarity: rankingScore
388
+ similarity: rankingScore,
389
+ hasRelation
348
390
  };
349
- });
350
- // 랭킹 점수 기준으로 정렬
391
+ }));
392
+ // 랭킹 점수 기준으로 정렬 (관계가 있는 기억 우선)
351
393
  rankedResults.sort((a, b) => {
394
+ // 관계가 있는 기억에 우선순위 부여
395
+ if (a.hasRelation && !b.hasRelation) {
396
+ return -1; // a가 우선
397
+ }
398
+ if (!a.hasRelation && b.hasRelation) {
399
+ return 1; // b가 우선
400
+ }
401
+ // 둘 다 관계가 있거나 둘 다 없는 경우, similarity 기준 정렬
352
402
  if (Math.abs(a.similarity - b.similarity) < 0.001) {
353
403
  return a.hop_distance - b.hop_distance;
354
404
  }
@@ -396,7 +446,8 @@ export class AnchorSearchService {
396
446
  const matchCount = queryWords.filter(word => contentLower.includes(word)).length;
397
447
  querySim = matchCount / Math.max(queryWords.length, 1);
398
448
  }
399
- const baseRankingScore = this.calculateRankingScore(result.similarity, result.hop_distance, result.importance);
449
+ const baseRankingScore = this.calculateRankingScore(result.similarity, result.hop_distance, result.importance, 0 // query filtering에서는 관계 가중치 미사용 (이미 searchNHop에서 적용됨)
450
+ );
400
451
  const combinedSimilarity = baseRankingScore * 0.6 + querySim * 0.4;
401
452
  return {
402
453
  ...result,
@@ -496,11 +547,54 @@ export class AnchorSearchService {
496
547
  /**
497
548
  * memory_link 테이블을 활용한 직접 연결된 메모리 조회
498
549
  */
550
+ /**
551
+ * 연결된 메모리 조회
552
+ * 관계 그래프가 있으면 우선 사용, 없으면 memory_link 사용
553
+ */
499
554
  async getLinkedMemories(memoryId) {
500
555
  if (!this.db) {
501
556
  return [];
502
557
  }
503
558
  try {
559
+ // 관계 그래프가 있으면 우선 사용
560
+ if (this.relationGraph) {
561
+ const relations = await this.relationGraph.getRelations(memoryId, {
562
+ direction: 'outgoing',
563
+ minConfidence: 0.5
564
+ });
565
+ if (relations.length > 0) {
566
+ // 관계를 메모리 정보와 결합
567
+ const memoryIds = relations.map(r => r.target_id);
568
+ const placeholders = memoryIds.map(() => '?').join(',');
569
+ const memoryRecords = this.db.prepare(`
570
+ SELECT id, content, type, importance, created_at, tags
571
+ FROM memory_item
572
+ WHERE id IN (${placeholders})
573
+ `).all(...memoryIds);
574
+ // 관계 정보와 메모리 정보 결합
575
+ const memoryMap = new Map(memoryRecords.map(m => [m.id, m]));
576
+ return relations.map(relation => {
577
+ const memory = memoryMap.get(relation.target_id);
578
+ if (!memory) {
579
+ return null;
580
+ }
581
+ // 관계 confidence를 similarity로 사용 (관계가 있으면 높은 유사도)
582
+ // 관계 유형별 부스트 적용
583
+ const typeBoost = this.getRelationTypeBoost(relation.relation_type);
584
+ const similarity = Math.min(1.0, relation.confidence * typeBoost);
585
+ return {
586
+ memory_id: memory.id,
587
+ content: memory.content,
588
+ type: memory.type,
589
+ similarity,
590
+ importance: memory.importance,
591
+ created_at: memory.created_at,
592
+ tags: memory.tags ? JSON.parse(memory.tags) : undefined
593
+ };
594
+ }).filter((item) => item !== null);
595
+ }
596
+ }
597
+ // 관계 그래프가 없거나 관계가 없으면 memory_link 사용 (하위 호환성)
504
598
  const linkedRecords = this.db.prepare(`
505
599
  SELECT
506
600
  ml.target_id as memory_id,
@@ -519,7 +613,7 @@ export class AnchorSearchService {
519
613
  memory_id: record.memory_id,
520
614
  content: record.content,
521
615
  type: record.type,
522
- similarity: 0.9,
616
+ similarity: 0.9, // memory_link는 기본 유사도 0.9
523
617
  importance: record.importance,
524
618
  created_at: record.created_at,
525
619
  tags: record.tags ? (typeof record.tags === 'string' ? JSON.parse(record.tags) : record.tags) : undefined
@@ -533,15 +627,40 @@ export class AnchorSearchService {
533
627
  return [];
534
628
  }
535
629
  }
630
+ /**
631
+ * 관계 유형별 부스트 가중치 반환
632
+ */
633
+ getRelationTypeBoost(relationType) {
634
+ const boostMap = {
635
+ 'CAUSES': 1.2,
636
+ 'DEPENDS_ON': 1.1,
637
+ 'FOLLOWS': 1.0,
638
+ 'CONTRASTS_WITH': 0.9,
639
+ 'REFERENCES': 0.8,
640
+ 'BELONGS_TO': 1.0
641
+ };
642
+ return boostMap[relationType] || 1.0;
643
+ }
536
644
  /**
537
645
  * 검색 결과 랭킹 점수 계산
646
+ * 관계 그래프와 벡터 유사도를 결합한 하이브리드 hop 점수 계산
647
+ * 관계가 있는 기억에 우선순위 부여
538
648
  */
539
- calculateRankingScore(similarity, hopDistance, importance = 0.5) {
649
+ calculateRankingScore(similarity, hopDistance, importance = 0.5, relationWeight = 0, hasRelation = false) {
540
650
  const hopDecayFactor = 1.0 / (1.0 + (hopDistance - 1) * 0.3);
541
651
  const anchorProximityBoost = hopDistance === 1 ? 1.2 : 1.0;
542
652
  const importanceWeight = 0.1;
543
653
  const importanceBoost = 1.0 + (importance - 0.5) * importanceWeight;
544
- const rankingScore = Math.min(1.0, similarity * hopDecayFactor * anchorProximityBoost * importanceBoost);
654
+ // 관계 가중치가 있으면 벡터 유사도와 결합
655
+ let combinedSimilarity = similarity;
656
+ if (relationWeight > 0) {
657
+ // 관계 가중치와 벡터 유사도를 가중 평균으로 결합
658
+ // 관계 가중치: 30%, 벡터 유사도: 70%
659
+ combinedSimilarity = similarity * 0.7 + relationWeight * 0.3;
660
+ }
661
+ // 관계가 있는 기억에 우선순위 부스트 적용
662
+ const relationPriorityBoost = hasRelation ? 1.15 : 1.0; // 15% 부스트
663
+ const rankingScore = Math.min(1.0, combinedSimilarity * hopDecayFactor * anchorProximityBoost * importanceBoost * relationPriorityBoost);
545
664
  return rankingScore;
546
665
  }
547
666
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"anchor-search-service.js","sourceRoot":"","sources":["../../../src/services/anchor/anchor-search-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"anchor-search-service.js","sourceRoot":"","sources":["../../../src/services/anchor/anchor-search-service.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAE1E,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD;;GAEG;AACH,MAAM,OAAO,mBAAmB;IACtB,EAAE,GAA6B,IAAI,CAAC;IACpC,YAAY,CAAsB;IAClC,kBAAkB,GAA8B,IAAI,CAAC;IACrD,kBAAkB,GAA8B,IAAI,CAAC;IACrD,qBAAqB,GAA4B,IAAI,uBAAuB,EAAE,CAAC;IAC/E,aAAa,GAAyB,IAAI,CAAC;IAEnD;;OAEG;IACH,YAAY,YAAiC;QAC3C,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,aAA4B;QAC3C,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,EAAqB;QAC/B,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACnD,CAAC;QACD,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,CAAC;IAED;;OAEG;IACH,qBAAqB,CAAC,kBAAsC;QAC1D,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;IAC/C,CAAC;IAED;;OAEG;IACH,qBAAqB,CAAC,kBAAsC;QAC1D,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC7C,0BAA0B;QAC1B,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACZ,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,WAAW,CACf,OAAe,EACf,IAAgB,EAChB,KAAyB,EACzB,QAA4B,EAC5B,OAAkC,EAClC,cAAsB,EACtB,eAA0D,EAC1D,SAAiB;QAEjB,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;QACpE,CAAC;QAED,cAAc;QACd,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,aAAa,GAAG,QAAQ,IAAI,UAAU,CAAC,SAAS,CAAC;QACvD,MAAM,eAAe,GAAG,UAAU,CAAC,gBAAgB,CAAC;QAEpD,YAAY;QACZ,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC;QACnC,MAAM,UAAU,GAAG,OAAO,EAAE,WAAW,IAAI,CAAC,CAAC;QAC7C,MAAM,YAAY,GAAG,OAAO,EAAE,aAAa,IAAI,IAAI,CAAC,CAAC,YAAY;QAEjE,6BAA6B;QAC7B,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;QACxF,CAAC;QAED,qDAAqD;QACrD,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,UAAU,CACzC,eAAe,CAAC,SAAS,EACzB,eAAe,CAAC,QAAQ,EACxB,cAAc,EACd,eAAe,EACf,aAAa,EACb,KAAK,GAAG,CAAC,EAAE,8BAA8B;QACzC,YAAY,CAAC,kBAAkB;SAChC,CAAC;QAEF,sBAAsB;QACtB,IAAI,eAAe,GAAG,aAAa,CAAC;QACpC,IAAI,yBAA+C,CAAC;QACpD,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrC,eAAe,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,aAAa,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;YAE3F,oCAAoC;YACpC,IAAI,CAAC;gBACH,MAAM,oBAAoB,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;gBACvF,IAAI,oBAAoB,IAAI,oBAAoB,CAAC,SAAS,EAAE,CAAC;oBAC3D,yBAAyB,GAAG,oBAAoB,CAAC,SAAS,CAAC;gBAC7D,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,gCAAgC;gBAChC,MAAM,CAAC,KAAK,CAAC,0DAA0D,EAAE;oBACvE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;iBAC9D,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,SAAS;QACT,MAAM,gBAAgB,GAAG,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACtD,EAAE,EAAE,MAAM,CAAC,SAAS;YACpB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,IAAI,EAAE,MAAM,CAAC,IAAI;SAClB,CAAC,CAAC,CAAC;QAEJ,cAAc;QACd,MAAM,YAAY,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QACtD,MAAM,UAAU,GAAG,YAAY,CAAC,MAAM,CAAC;QAEvC,+CAA+C;QAC/C,IAAI,YAAY,GAAG,KAAK,CAAC;QACzB,IAAI,YAAY,GAAG,YAAY,CAAC;QAChC,IAAI,UAAU,GAAG,UAAU,CAAC;QAE5B,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU,GAAG,UAAU,EAAE,CAAC;YAChE,IAAI,CAAC;gBACH,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE;oBACvC,UAAU;oBACV,UAAU;iBACX,CAAC,CAAC;gBAEH,cAAc;gBACd,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,sBAAsB,CACtD,KAAK,EACL,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG,UAAU,EAAE,EAAE,eAAe;gBAC1D,SAAS,CACV,CAAC;gBAEF,YAAY,GAAG,IAAI,CAAC;gBAEpB,2BAA2B;gBAC3B,uCAAuC;gBACvC,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC5D,MAAM,aAAa,GASd,cAAc,CAAC,KAAK;qBACtB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;qBAC5C,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACZ,EAAE,EAAE,IAAI,CAAC,EAAE;oBACX,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,CAAC;oBAChC,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,GAAG,EAAE,2CAA2C;oBACnF,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,GAAG;oBAClC,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBACvD,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,SAAS;iBAC7B,CAAC,CAAC,CAAC;gBAEN,qCAAqC;gBACrC,YAAY,GAAG,CAAC,GAAG,YAAY,EAAE,GAAG,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;gBACnE,UAAU,GAAG,YAAY,CAAC,MAAM,CAAC;gBAEjC,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE;oBAChC,UAAU;oBACV,aAAa,EAAE,aAAa,CAAC,MAAM;oBACnC,UAAU;iBACX,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,CAAC,iBAAiB,EAAE;oBAC9B,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;iBAC9D,CAAC,CAAC;gBACH,6BAA6B;gBAC7B,YAAY,GAAG,KAAK,CAAC;YACvB,CAAC;QACH,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QACzC,OAAO;YACL,KAAK,EAAE,YAAY;YACnB,WAAW,EAAE,UAAU;YACvB,mBAAmB,EAAE,UAAU;YAC/B,aAAa,EAAE,YAAY;YAC3B,UAAU,EAAE,SAAS;YACrB,WAAW,EAAE;gBACX,QAAQ,EAAE,OAAO;gBACjB,IAAI,EAAE,IAAI;gBACV,SAAS,EAAE,cAAc;aAC1B;SACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,YAAY,CACxB,eAAyB,EACzB,QAAgB,EAChB,cAAsB,EACtB,SAAiB,EACjB,KAAa;QAUb,IAAI,CAAC,IAAI,CAAC,kBAAkB,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAChE,CAAC;QAED,IAAI,CAAC;YACH,4BAA4B;YAC5B,IAAI,OAAQ,IAAI,CAAC,kBAA0B,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;gBACrE,IAAI,CAAC,kBAA0B,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACvD,CAAC;YAED,kCAAkC;YAClC,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CACxD,eAAe,EACf;gBACE,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,kBAAkB;gBACpC,SAAS,EAAE,GAAG,EAAE,oBAAoB;gBACpC,cAAc,EAAE,IAAI;gBACpB,eAAe,EAAE,IAAI;aACtB,EACD,QAAQ,CACT,CAAC;YAEF,oCAAoC;YACpC,MAAM,eAAe,GAAG,aAAa;iBAClC,MAAM,CAAC,MAAM,CAAC,EAAE;gBACf,YAAY;gBACZ,IAAI,MAAM,CAAC,SAAS,KAAK,cAAc,EAAE,CAAC;oBACxC,OAAO,KAAK,CAAC;gBACf,CAAC;gBACD,iBAAiB;gBACjB,OAAO,MAAM,CAAC,UAAU,IAAI,SAAS,CAAC;YACxC,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,cAAc;YAElC,OAAO,eAAe,CAAC;QACzB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,qBAAqB,EAAE;gBAClC,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC,CAAC;YACH,MAAM,IAAI,KAAK,CAAC,mCAAmC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;QACjH,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,UAAU,CACtB,eAAyB,EACzB,QAAgB,EAChB,cAAsB,EACtB,SAAiB,EACjB,OAAe,EACf,KAAa,EACb,eAAwB,IAAI;QAW5B,IAAI,CAAC,IAAI,CAAC,kBAAkB,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAChE,CAAC;QAED,4BAA4B;QAC5B,IAAI,OAAQ,IAAI,CAAC,kBAA0B,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;YACrE,IAAI,CAAC,kBAA0B,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACvD,CAAC;QAED,2BAA2B;QAC3B,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAS,CAAC,cAAc,CAAC,CAAC,CAAC;QAE9D,mBAAmB;QACnB,MAAM,UAAU,GAUX,EAAE,CAAC;QAER,2BAA2B;QAC3B,oBAAoB;QACpB,IAAI,kBAAkB,GAAsD;YAC1E,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,eAAe,EAAE;SAC1D,CAAC;QAEF,mBAAmB;QACnB,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,IAAI,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC;YACxC,MAAM,eAAe,GAAsD,EAAE,CAAC;YAC9E,MAAM,UAAU,GASX,EAAE,CAAC;YAER,0BAA0B;YAC1B,KAAK,MAAM,aAAa,IAAI,kBAAkB,EAAE,CAAC;gBAC/C,IAAI,CAAC;oBACH,2CAA2C;oBAC3C,yCAAyC;oBACzC,MAAM,cAAc,GAAG,YAAY;wBACjC,CAAC,CAAC,MAAM,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,SAAS,CAAC;wBACvD,CAAC,CAAC,EAAE,CAAC;oBAEP,WAAW;oBACX,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAC9D,aAAa,CAAC,SAAS,EACvB;wBACE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE,EAAE,qBAAqB;wBAC7D,SAAS,EAAE,GAAG,EAAE,oBAAoB;wBACpC,cAAc,EAAE,IAAI;wBACpB,eAAe,EAAE,IAAI;qBACtB,EACD,QAAQ,CACT,CAAC;oBAEF,+BAA+B;oBAC/B,MAAM,aAAa,GAAG,IAAI,GAAG,EASzB,CAAC;oBAEL,8BAA8B;oBAC9B,KAAK,MAAM,MAAM,IAAI,cAAc,EAAE,CAAC;wBACpC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;4BAC/C,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE;gCAClC,GAAG,MAAM;gCACT,QAAQ,EAAE,IAAI;6BACf,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;oBAED,cAAc;oBACd,MAAM,gBAAgB,GAAG,SAAS,GAAG,GAAG,CAAC;oBACzC,KAAK,MAAM,MAAM,IAAI,mBAAmB,EAAE,CAAC;wBACzC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;4BACvF,IAAI,MAAM,CAAC,UAAU,IAAI,gBAAgB,EAAE,CAAC;gCAC1C,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE;oCAClC,GAAG,MAAM;oCACT,QAAQ,EAAE,KAAK;iCAChB,CAAC,CAAC;4BACL,CAAC;wBACH,CAAC;6BAAM,IAAI,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;4BAC/C,sCAAsC;4BACtC,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAE,CAAC;4BACtD,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;wBACzE,CAAC;oBACH,CAAC;oBAED,cAAc;oBACd,KAAK,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,aAAa,CAAC,OAAO,EAAE,EAAE,CAAC;wBAC5D,IAAI,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;4BACtC,SAAS;wBACX,CAAC;wBAED,MAAM,kBAAkB,GAAG,SAAS,CAAC,QAAQ;4BAC3C,CAAC,CAAC,SAAS,GAAG,GAAG;4BACjB,CAAC,CAAC,SAAS,CAAC;wBAEd,IAAI,SAAS,CAAC,UAAU,GAAG,kBAAkB,EAAE,CAAC;4BAC9C,SAAS;wBACX,CAAC;wBAED,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;wBAClC,UAAU,CAAC,IAAI,CAAC;4BACd,SAAS,EAAE,SAAS,CAAC,SAAS;4BAC9B,OAAO,EAAE,SAAS,CAAC,OAAO;4BAC1B,IAAI,EAAE,SAAS,CAAC,IAAI;4BACpB,UAAU,EAAE,SAAS,CAAC,UAAU;4BAChC,UAAU,EAAE,SAAS,CAAC,UAAU;4BAChC,UAAU,EAAE,SAAS,CAAC,UAAU;4BAChC,IAAI,EAAE,SAAS,CAAC,IAAI;4BACpB,WAAW,EAAE,SAAS,CAAC,QAAQ,CAAC,eAAe;yBAChD,CAAC,CAAC;wBAEH,oBAAoB;wBACpB,IAAI,GAAG,GAAG,OAAO,EAAE,CAAC;4BAClB,IAAI,CAAC;gCACH,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;gCACtF,IAAI,aAAa,IAAI,aAAa,CAAC,SAAS,EAAE,CAAC;oCAC7C,eAAe,CAAC,IAAI,CAAC;wCACnB,SAAS,EAAE,SAAS,CAAC,SAAS;wCAC9B,SAAS,EAAE,aAAa,CAAC,SAAS;qCACnC,CAAC,CAAC;gCACL,CAAC;4BACH,CAAC;4BAAC,OAAO,KAAK,EAAE,CAAC;gCACf,0BAA0B;gCAC1B,MAAM,CAAC,KAAK,CAAC,6CAA6C,EAAE;oCAC1D,QAAQ,EAAE,SAAS,CAAC,SAAS;oCAC7B,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;iCAC9D,CAAC,CAAC;4BACL,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE;wBAChC,GAAG;wBACH,QAAQ,EAAE,aAAa,CAAC,SAAS;wBACjC,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;qBAC9D,CAAC,CAAC;oBACH,SAAS;gBACX,CAAC;YACH,CAAC;YAED,wBAAwB;YACxB,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE,CAAC;gBAChC,UAAU,CAAC,IAAI,CAAC;oBACd,GAAG,MAAM;oBACT,YAAY,EAAE,GAAG;oBACjB,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,KAAK;iBACzC,CAAC,CAAC;YACL,CAAC;YAED,kBAAkB;YAClB,IAAI,UAAU,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC;gBAC/B,MAAM;YACR,CAAC;YAED,yBAAyB;YACzB,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACjC,MAAM;YACR,CAAC;YAED,uBAAuB;YACvB,kBAAkB,GAAG,eAAe,CAAC;QACvC,CAAC;QAED,gCAAgC;QAChC,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,GAAG,CACrC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;YAC9B,iDAAiD;YACjD,IAAI,cAAc,GAAG,CAAC,CAAC;YACvB,IAAI,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,KAAK,CAAC;YAE9C,IAAI,YAAY,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBACvC,IAAI,CAAC;oBACH,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,EAAE;wBACxE,SAAS,EAAE,MAAM;wBACjB,aAAa,EAAE,GAAG;qBACnB,CAAC,CAAC;oBAEH,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACzB,WAAW,GAAG,IAAI,CAAC,CAAC,aAAa;wBACjC,qBAAqB;wBACrB,MAAM,aAAa,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC;wBAC7F,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC;wBACtH,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,aAAa,GAAG,QAAQ,CAAC,CAAC;oBAC3D,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,eAAe;oBACf,MAAM,CAAC,KAAK,CAAC,oCAAoC,EAAE;wBACjD,QAAQ,EAAE,MAAM,CAAC,SAAS;wBAC1B,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;qBAC9D,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,MAAM,YAAY,GAAG,IAAI,CAAC,qBAAqB,CAC7C,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,YAAY,EACnB,MAAM,CAAC,UAAU,EACjB,cAAc,EACd,WAAW,CAAC,qBAAqB;aAClC,CAAC;YACF,OAAO;gBACL,GAAG,MAAM;gBACT,UAAU,EAAE,YAAY;gBACxB,WAAW;aACZ,CAAC;QACJ,CAAC,CAAC,CACH,CAAC;QAEF,+BAA+B;QAC/B,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAC1B,qBAAqB;YACrB,IAAI,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;gBACpC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ;YACrB,CAAC;YACD,IAAI,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;gBACpC,OAAO,CAAC,CAAC,CAAC,QAAQ;YACpB,CAAC;YAED,0CAA0C;YAC1C,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,GAAG,KAAK,EAAE,CAAC;gBAClD,OAAO,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,YAAY,CAAC;YACzC,CAAC;YACD,OAAO,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC;QACrC,CAAC,CAAC,CAAC;QAEH,cAAc;QACd,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,aAAa,CACzB,KAAa,EACb,OASE,EACF,QAAgB;QAWhB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,IAAI,CAAC;YACH,YAAY;YACZ,MAAM,oBAAoB,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YACvF,IAAI,CAAC,oBAAoB,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,CAAC;gBAC7D,MAAM,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;gBAClE,OAAO,OAAO,CAAC;YACjB,CAAC;YAED,MAAM,cAAc,GAAG,oBAAoB,CAAC,SAAS,CAAC;YAEtD,+BAA+B;YAC/B,MAAM,0BAA0B,GAAG,MAAM,OAAO,CAAC,GAAG,CAClD,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;gBAC3B,IAAI,CAAC;oBACH,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;oBACrF,IAAI,CAAC,eAAe,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;wBACnD,OAAO;4BACL,GAAG,MAAM;4BACT,gBAAgB,EAAE,CAAC;4BACnB,mBAAmB,EAAE,MAAM,CAAC,UAAU,GAAG,GAAG;yBAC7C,CAAC;oBACJ,CAAC;oBAED,2BAA2B;oBAC3B,IAAI,QAAQ,GAAG,CAAC,CAAC;oBACjB,IAAI,cAAc,CAAC,MAAM,KAAK,eAAe,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;wBAC/D,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC;oBAC9E,CAAC;yBAAM,CAAC;wBACN,wBAAwB;wBACxB,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;wBACvC,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;wBAClD,MAAM,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;wBAC3C,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;wBACjF,QAAQ,GAAG,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;oBACzD,CAAC;oBAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,qBAAqB,CACjD,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,YAAY,EACnB,MAAM,CAAC,UAAU,EACjB,CAAC,CAAC,sDAAsD;qBACzD,CAAC;oBAEF,MAAM,kBAAkB,GAAG,gBAAgB,GAAG,GAAG,GAAG,QAAQ,GAAG,GAAG,CAAC;oBAEnE,OAAO;wBACL,GAAG,MAAM;wBACT,gBAAgB,EAAE,QAAQ;wBAC1B,mBAAmB,EAAE,kBAAkB;qBACxC,CAAC;gBACJ,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,CAAC,KAAK,CAAC,mCAAmC,EAAE;wBAChD,QAAQ,EAAE,MAAM,CAAC,SAAS;wBAC1B,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;qBAC9D,CAAC,CAAC;oBACH,OAAO;wBACL,GAAG,MAAM;wBACT,gBAAgB,EAAE,CAAC;wBACnB,mBAAmB,EAAE,MAAM,CAAC,UAAU,GAAG,GAAG;qBAC7C,CAAC;gBACJ,CAAC;YACH,CAAC,CAAC,CACH,CAAC;YAEF,gBAAgB;YAChB,MAAM,cAAc,GAAG,GAAG,CAAC;YAC3B,MAAM,QAAQ,GAAG,0BAA0B,CAAC,MAAM,CAChD,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,IAAI,cAAc,IAAI,CAAC,CAAC,mBAAmB,IAAI,GAAG,CAC1E,CAAC;YAEF,kBAAkB;YAClB,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACrB,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,mBAAmB,GAAG,CAAC,CAAC,mBAAmB,CAAC,GAAG,KAAK,EAAE,CAAC;oBACpE,OAAO,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,YAAY,CAAC;gBACzC,CAAC;gBACD,OAAO,CAAC,CAAC,mBAAmB,GAAG,CAAC,CAAC,mBAAmB,CAAC;YACvD,CAAC,CAAC,CAAC;YAEH,gDAAgD;YAChD,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACxB,GAAG,CAAC;gBACJ,UAAU,EAAE,CAAC,CAAC,mBAAmB;aAClC,CAAC,CAAC,CAAC;QACN,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,8BAA8B,EAAE;gBAC3C,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC,CAAC;YACH,OAAO,OAAO,CAAC;QACjB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,sBAAsB,CAC1B,KAAa,EACb,OAAkC,EAClC,SAA6B;QAE7B,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;QACxF,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC1C,CAAC;QAED,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC;QACnC,MAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAErC,IAAI,CAAC;YACH,gCAAgC;YAChC,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE;gBACvE,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,KAAK;gBACZ,YAAY,EAAE,OAAO,EAAE,aAAa;gBACpC,UAAU,EAAE,OAAO,EAAE,WAAW;aACjC,CAAC,CAAC;YAEH,2CAA2C;YAC3C,MAAM,cAAc,GAAG,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC3D,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,YAAY,EAAE,SAAS;aACxB,CAAC,CAAC,CAAC;YAEJ,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,iBAAiB,CAAC;YAEtF,OAAO;gBACL,KAAK,EAAE,cAAc;gBACrB,WAAW,EAAE,cAAc,CAAC,MAAM;gBAClC,mBAAmB,EAAE,CAAC;gBACtB,aAAa,EAAE,IAAI;gBACnB,UAAU,EAAE,SAAS;aACtB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,+BAA+B,EAAE;gBAC5C,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC,CAAC;YACH,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YAEzD,OAAO;gBACL,KAAK,EAAE,EAAE;gBACT,WAAW,EAAE,CAAC;gBACd,mBAAmB,EAAE,CAAC;gBACtB,aAAa,EAAE,IAAI;gBACnB,UAAU,EAAE,SAAS;aACtB,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACH;;;OAGG;IACK,KAAK,CAAC,iBAAiB,CAAC,QAAgB;QAS9C,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,IAAI,CAAC;YACH,oBAAoB;YACpB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBACvB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,QAAQ,EAAE;oBAChE,SAAS,EAAE,UAAU;oBACrB,aAAa,EAAE,GAAG;iBACnB,CAAC,CAAC;gBAEH,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACzB,iBAAiB;oBACjB,MAAM,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;oBAClD,MAAM,YAAY,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACxD,MAAM,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;2BAGrB,YAAY;WAC5B,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,CAOjB,CAAC;oBAEH,mBAAmB;oBACnB,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;oBAE7D,OAAO,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;wBAC9B,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;wBACjD,IAAI,CAAC,MAAM,EAAE,CAAC;4BACZ,OAAO,IAAI,CAAC;wBACd,CAAC;wBAED,iDAAiD;wBACjD,gBAAgB;wBAChB,MAAM,SAAS,GAAG,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;wBACpE,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,UAAU,GAAG,SAAS,CAAC,CAAC;wBAElE,OAAO;4BACL,SAAS,EAAE,MAAM,CAAC,EAAE;4BACpB,OAAO,EAAE,MAAM,CAAC,OAAO;4BACvB,IAAI,EAAE,MAAM,CAAC,IAAI;4BACjB,UAAU;4BACV,UAAU,EAAE,MAAM,CAAC,UAAU;4BAC7B,UAAU,EAAE,MAAM,CAAC,UAAU;4BAC7B,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;yBACxD,CAAC;oBACJ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAoC,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;gBACvE,CAAC;YACH,CAAC;YAED,8CAA8C;YAC9C,MAAM,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;;;;;;;;;OAarC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAQb,CAAC;YAEH,OAAO,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAClC,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,UAAU,EAAE,GAAG,EAAE,0BAA0B;gBAC3C,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;aAC1G,CAAC,CAAC,CAAC;QACN,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,8BAA8B,EAAE;gBAC3C,QAAQ;gBACR,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC,CAAC;YACH,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,oBAAoB,CAAC,YAAoB;QAC/C,MAAM,QAAQ,GAA2B;YACvC,QAAQ,EAAE,GAAG;YACb,YAAY,EAAE,GAAG;YACjB,SAAS,EAAE,GAAG;YACd,gBAAgB,EAAE,GAAG;YACrB,YAAY,EAAE,GAAG;YACjB,YAAY,EAAE,GAAG;SAClB,CAAC;QACF,OAAO,QAAQ,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC;IACvC,CAAC;IAED;;;;OAIG;IACK,qBAAqB,CAC3B,UAAkB,EAClB,WAAmB,EACnB,aAAqB,GAAG,EACxB,iBAAyB,CAAC,EAC1B,cAAuB,KAAK;QAE5B,MAAM,cAAc,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;QAC7D,MAAM,oBAAoB,GAAG,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QAC3D,MAAM,gBAAgB,GAAG,GAAG,CAAC;QAC7B,MAAM,eAAe,GAAG,GAAG,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,GAAG,gBAAgB,CAAC;QAEpE,yBAAyB;QACzB,IAAI,kBAAkB,GAAG,UAAU,CAAC;QACpC,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;YACvB,6BAA6B;YAC7B,2BAA2B;YAC3B,kBAAkB,GAAG,UAAU,GAAG,GAAG,GAAG,cAAc,GAAG,GAAG,CAAC;QAC/D,CAAC;QAED,yBAAyB;QACzB,MAAM,qBAAqB,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU;QAElE,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAC3B,GAAG,EACH,kBAAkB,GAAG,cAAc,GAAG,oBAAoB,GAAG,eAAe,GAAG,qBAAqB,CACrG,CAAC;QAEF,OAAO,YAAY,CAAC;IACtB,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,CAAW,EAAE,CAAW;QAC/C,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACtC,CAAC;QAED,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,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACvB,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACvB,UAAU,IAAI,IAAI,GAAG,IAAI,CAAC;YAC1B,KAAK,IAAI,IAAI,GAAG,IAAI,CAAC;YACrB,KAAK,IAAI,IAAI,GAAG,IAAI,CAAC;QACvB,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtD,OAAO,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,SAAS,CAAC;IACtD,CAAC;IAED;;OAEG;IACK,aAAa,CAAC,IAAgB;QACpC,MAAM,UAAU,GAAG;YACjB,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,gBAAgB,EAAE,GAAG,EAAE;YAC1C,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,gBAAgB,EAAE,GAAG,EAAE;YAC1C,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,gBAAgB,EAAE,GAAG,EAAE;SAClC,CAAC;QACX,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,sBAAsB,CAC1B,QAAgB,EAChB,cAAyB,EACzB,eAA0B;QAE1B,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,OAAO,CAAC,CAAC;QACX,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;;;;;;OAU9B,CAAC,CAAC,GAAG,CAAC,QAAQ,CAOF,CAAC;YAEd,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO,CAAC,CAAC;YACX,CAAC;YAED,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CACzB,GAAG,EACH,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC;gBAC/B,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC;gBACnC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,CAC7C,CAAC;YAEF,IAAI,YAAY,GAAG,GAAG,CAAC;YACvB,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;gBACzB,MAAM,YAAY,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;gBACpD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;gBACvB,MAAM,eAAe,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,YAAY,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;gBACzF,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,eAAe,GAAG,EAAE,CAAC,CAAC;YACzD,CAAC;YAED,MAAM,eAAe,GAAG,MAAM,CAAC,UAAU,IAAI,GAAG,CAAC;YAEjD,IAAI,aAAa,GAAG,GAAG,CAAC;YACxB,IAAI,cAAc,EAAE,CAAC;gBACnB,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;gBAC7E,IAAI,eAAe,IAAI,eAAe,CAAC,SAAS,EAAE,CAAC;oBACjD,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC;oBACpF,aAAa,GAAG,UAAU,CAAC;gBAC7B,CAAC;YACH,CAAC;YAED,IAAI,qBAAqB,GAAG,GAAG,CAAC;YAChC,IAAI,eAAe,EAAE,CAAC;gBACpB,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;gBAC7E,IAAI,eAAe,IAAI,eAAe,CAAC,SAAS,EAAE,CAAC;oBACjD,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,eAAe,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC;oBACrF,qBAAqB,GAAG,GAAG,GAAG,UAAU,CAAC;gBAC3C,CAAC;YACH,CAAC;YAED,MAAM,UAAU,GACd,UAAU,GAAG,GAAG;gBAChB,YAAY,GAAG,GAAG;gBAClB,eAAe,GAAG,GAAG;gBACrB,aAAa,GAAG,GAAG;gBACnB,qBAAqB,GAAG,GAAG,CAAC;YAE9B,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC;QAClD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,mCAAmC,EAAE;gBAChD,QAAQ;gBACR,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC,CAAC;YACH,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB,CACtB,OAAe,EACf,IAAgB,EAChB,cAAsB,EACtB,eAA0D,EAC1D,cAAyB;QAEzB,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC1C,CAAC;QAED,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YAC5C,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,UAAU,CAC1C,eAAe,CAAC,SAAS,EACzB,eAAe,CAAC,QAAQ,EACxB,cAAc,EACd,UAAU,CAAC,gBAAgB,GAAG,GAAG,EACjC,UAAU,CAAC,SAAS,EACpB,EAAE,CACH,CAAC;YAEF,MAAM,UAAU,GAAgE,EAAE,CAAC;YAEnF,KAAK,MAAM,MAAM,IAAI,cAAc,EAAE,CAAC;gBACpC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAC7C,MAAM,CAAC,SAAS,EAChB,cAAc,EACd,eAAe,CAAC,SAAS,CAC1B,CAAC;gBAEF,IAAI,KAAK,GAAG,GAAG,EAAE,CAAC;oBAChB,MAAM,MAAM,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;oBAC1D,UAAU,CAAC,IAAI,CAAC;wBACd,SAAS,EAAE,MAAM,CAAC,SAAS;wBAC3B,KAAK;wBACL,MAAM;qBACP,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;YAC7C,OAAO,UAAU,CAAC;QACpB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,8BAA8B,EAAE;gBAC3C,OAAO;gBACP,IAAI;gBACJ,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC,CAAC;YACH,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,sBAAsB,CAC5B,MAA0F,EAC1F,KAAa;QAEb,MAAM,OAAO,GAAa,EAAE,CAAC;QAE7B,IAAI,KAAK,GAAG,GAAG,EAAE,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC3B,CAAC;QACD,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,GAAG,GAAG,EAAE,CAAC;YACjD,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC7B,CAAC;QACD,IAAI,MAAM,CAAC,YAAY,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC5B,CAAC;QAED,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;IAC9D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAChB,OAAe,EACf,IAAgB,EAChB,aAA6B,EAC7B,cAAyB,EACzB,YAAoB,GAAG,EACvB,WAAoC,SAAS;QAQ7C,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC1C,CAAC;QAED,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,MAAM,aAAa,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACnE,IAAI,CAAC,aAAa,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC;gBAC/E,OAAO;oBACL,KAAK,EAAE,KAAK;oBACZ,UAAU,EAAE,IAAI;oBAChB,UAAU,EAAE,IAAI;oBAChB,KAAK,EAAE,CAAC;oBACR,MAAM,EAAE,gBAAgB;iBACzB,CAAC;YACJ,CAAC;YAED,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;YAC5F,IAAI,CAAC,eAAe,EAAE,CAAC;gBACrB,OAAO;oBACL,KAAK,EAAE,KAAK;oBACZ,UAAU,EAAE,aAAa,CAAC,SAAS;oBACnC,UAAU,EAAE,IAAI;oBAChB,KAAK,EAAE,CAAC;oBACR,MAAM,EAAE,mBAAmB;iBAC5B,CAAC;YACJ,CAAC;YAED,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAC9C,OAAO,EACP,IAAI,EACJ,aAAa,CAAC,SAAS,EACvB,eAAe,EACf,cAAc,CACf,CAAC;YAEF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,SAAS,EAAE,CAAC;gBACjF,OAAO;oBACL,KAAK,EAAE,KAAK;oBACZ,UAAU,EAAE,aAAa,CAAC,SAAS;oBACnC,UAAU,EAAE,IAAI;oBAChB,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC;oBAChC,MAAM,EAAE,OAAO,SAAS,eAAe;iBACxC,CAAC;YACJ,CAAC;YAED,MAAM,aAAa,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YACpC,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,OAAO;oBACL,KAAK,EAAE,KAAK;oBACZ,UAAU,EAAE,aAAa,CAAC,SAAS;oBACnC,UAAU,EAAE,IAAI;oBAChB,KAAK,EAAE,CAAC;oBACR,MAAM,EAAE,OAAO;iBAChB,CAAC;YACJ,CAAC;YAED,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;oBACjB,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;oBAC5D,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;wBAC5D,MAAM,aAAa,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;oBACjE,CAAC;oBACD,MAAM,aAAa,CAAC,SAAS,CAAC,OAAO,EAAE,aAAa,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;gBACvE,CAAC;qBAAM,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;oBACxB,MAAM,aAAa,CAAC,SAAS,CAAC,OAAO,EAAE,aAAa,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;gBACvE,CAAC;gBACD,MAAM,aAAa,CAAC,SAAS,CAAC,OAAO,EAAE,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YACxE,CAAC;iBAAM,CAAC;gBACN,MAAM,aAAa,CAAC,SAAS,CAAC,OAAO,EAAE,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YACxE,CAAC;YAED,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE;gBACrC,OAAO;gBACP,IAAI;gBACJ,SAAS,EAAE,aAAa,CAAC,SAAS;gBAClC,SAAS,EAAE,aAAa,CAAC,SAAS;gBAClC,KAAK,EAAE,aAAa,CAAC,KAAK;gBAC1B,MAAM,EAAE,aAAa,CAAC,MAAM;aAC7B,CAAC,CAAC;YAEH,OAAO;gBACL,KAAK,EAAE,IAAI;gBACX,UAAU,EAAE,aAAa,CAAC,SAAS;gBACnC,UAAU,EAAE,aAAa,CAAC,SAAS;gBACnC,KAAK,EAAE,aAAa,CAAC,KAAK;gBAC1B,MAAM,EAAE,aAAa,CAAC,MAAM;aAC7B,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE;gBACnC,OAAO;gBACP,IAAI;gBACJ,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC,CAAC;YACH,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,oBAAoB,CACxB,OAAe,EACf,IAAgB,EAChB,aAA6B,EAC7B,cAAyB,EACzB,kBAA2B,KAAK;QAQhC,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAC/F,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,sCAAsC,EAAE;gBACnD,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;CACF"}
@@ -11,6 +11,9 @@ export interface BatchJobConfig {
11
11
  consolidationScoreIncrementalInterval: number;
12
12
  consolidationScoreFullSweepInterval: number;
13
13
  consolidationScoreFullSweepHour: number;
14
+ relationValidationInterval: number;
15
+ relationValidationDayOfWeek: number;
16
+ relationValidationHour: number;
14
17
  maxBatchSize: number;
15
18
  enableLogging: boolean;
16
19
  enableNotifications: boolean;
@@ -105,6 +108,14 @@ export declare class BatchScheduler {
105
108
  * 지정된 시간에 하루 1회 실행
106
109
  */
107
110
  private scheduleConsolidationScoreFullSweep;
111
+ /**
112
+ * 주간 관계 추출 품질 검증 작업 스케줄링
113
+ */
114
+ private scheduleWeeklyRelationValidation;
115
+ /**
116
+ * 주간 관계 추출 품질 검증 실행
117
+ */
118
+ private runWeeklyRelationValidation;
108
119
  /**
109
120
  * Consolidation Score 전체 스윕 작업 실행
110
121
  */
@@ -1 +1 @@
1
- {"version":3,"file":"batch-scheduler.d.ts","sourceRoot":"","sources":["../../src/services/batch-scheduler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"batch-scheduler.d.ts","sourceRoot":"","sources":["../../src/services/batch-scheduler.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,8 @@ import fs from 'fs';
11
11
  import path from 'path';
12
12
  import { ConsolidationScoreWorker } from '../workers/consolidation-score-worker.js';
13
13
  import { mementoConfig } from '../config/index.js';
14
+ import { spawn } from 'child_process';
15
+ import { join } from 'path';
14
16
  export class BatchScheduler {
15
17
  config;
16
18
  forgettingService;
@@ -33,6 +35,9 @@ export class BatchScheduler {
33
35
  consolidationScoreIncrementalInterval: 60 * 60 * 1000, // 1시간
34
36
  consolidationScoreFullSweepInterval: 24 * 60 * 60 * 1000, // 24시간
35
37
  consolidationScoreFullSweepHour: 3, // 새벽 3시
38
+ relationValidationInterval: 7 * 24 * 60 * 60 * 1000, // 7일
39
+ relationValidationDayOfWeek: 0, // 일요일
40
+ relationValidationHour: 2, // 새벽 2시
36
41
  maxBatchSize: 1000,
37
42
  enableLogging: true,
38
43
  enableNotifications: false,
@@ -78,6 +83,8 @@ export class BatchScheduler {
78
83
  // 야간 전체 스윕 (하루 1회, 지정된 시간에 실행)
79
84
  this.scheduleConsolidationScoreFullSweep();
80
85
  }
86
+ // 주간 관계 추출 품질 검증 작업 스케줄링
87
+ this.scheduleWeeklyRelationValidation();
81
88
  // 작업 큐 처리 시작
82
89
  this.startJobProcessor();
83
90
  this.log('BatchScheduler started', {
@@ -475,6 +482,98 @@ export class BatchScheduler {
475
482
  // 즉시 한 번 체크 (현재 시간이 지정된 시간이면 실행)
476
483
  checkAndRun();
477
484
  }
485
+ /**
486
+ * 주간 관계 추출 품질 검증 작업 스케줄링
487
+ */
488
+ scheduleWeeklyRelationValidation() {
489
+ const checkAndRun = async () => {
490
+ const now = new Date();
491
+ const currentDayOfWeek = now.getDay(); // 0=일요일, 6=토요일
492
+ const currentHour = now.getHours();
493
+ // 지정된 요일과 시간에 실행
494
+ if (currentDayOfWeek === this.config.relationValidationDayOfWeek &&
495
+ currentHour === this.config.relationValidationHour) {
496
+ // 이미 오늘 실행했는지 확인 (lastExecution 체크)
497
+ const lastExecution = this.lastExecution.get('weekly_relation_validation');
498
+ const today = new Date(now.getFullYear(), now.getMonth(), now.getDate());
499
+ if (!lastExecution || lastExecution < today) {
500
+ await this.runWeeklyRelationValidation();
501
+ }
502
+ }
503
+ };
504
+ // 매 시간마다 체크
505
+ const checkInterval = 60 * 60 * 1000; // 1시간마다 체크
506
+ const intervalId = setInterval(checkAndRun, checkInterval);
507
+ this.intervals.set('weekly_relation_validation', intervalId);
508
+ // 즉시 한 번 체크 (시작 시점이 실행 시간이면 바로 실행)
509
+ checkAndRun();
510
+ }
511
+ /**
512
+ * 주간 관계 추출 품질 검증 실행
513
+ */
514
+ async runWeeklyRelationValidation() {
515
+ const startTime = new Date();
516
+ const result = {
517
+ jobType: 'weekly_relation_validation',
518
+ startTime,
519
+ endTime: new Date(),
520
+ duration: 0,
521
+ success: false,
522
+ processed: 0,
523
+ errors: [],
524
+ warnings: []
525
+ };
526
+ try {
527
+ this.log('Starting weekly relation validation...');
528
+ // 주간 검증 스크립트 실행
529
+ const scriptPath = join(process.cwd(), 'scripts', 'weekly-relation-validation.ts');
530
+ const scriptArgs = ['--method', 'hybrid', '--allow-soft-fail'];
531
+ const childProcess = spawn('npx', ['tsx', scriptPath, ...scriptArgs], {
532
+ cwd: process.cwd(),
533
+ stdio: ['ignore', 'pipe', 'pipe'],
534
+ env: { ...process.env }
535
+ });
536
+ let stdout = '';
537
+ let stderr = '';
538
+ childProcess.stdout?.on('data', (data) => {
539
+ stdout += data.toString();
540
+ });
541
+ childProcess.stderr?.on('data', (data) => {
542
+ stderr += data.toString();
543
+ });
544
+ await new Promise((resolve, reject) => {
545
+ childProcess.on('close', (code) => {
546
+ if (code === 0) {
547
+ resolve();
548
+ }
549
+ else {
550
+ reject(new Error(`Script exited with code ${code}\n${stderr}`));
551
+ }
552
+ });
553
+ childProcess.on('error', (error) => {
554
+ reject(error);
555
+ });
556
+ });
557
+ result.success = true;
558
+ result.endTime = new Date();
559
+ result.duration = result.endTime.getTime() - startTime.getTime();
560
+ result.processed = 1;
561
+ this.log('Weekly relation validation completed successfully', {
562
+ duration: result.duration,
563
+ stdout: stdout.substring(0, 500) // 처음 500자만 로그
564
+ });
565
+ }
566
+ catch (error) {
567
+ result.endTime = new Date();
568
+ result.duration = result.endTime.getTime() - startTime.getTime();
569
+ result.errors.push(error instanceof Error ? error.message : String(error));
570
+ this.log('Weekly relation validation failed', {
571
+ error: error instanceof Error ? error.message : String(error),
572
+ duration: result.duration
573
+ }, 'error');
574
+ }
575
+ return result;
576
+ }
478
577
  /**
479
578
  * Consolidation Score 전체 스윕 작업 실행
480
579
  */