@alan512/experienceengine 0.3.6 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/README.md +7 -2
  2. package/README.zh-CN.md +7 -2
  3. package/dist/cli/commands/doctor.js +56 -0
  4. package/dist/cli/commands/doctor.js.map +1 -1
  5. package/dist/cli/commands/inspect.js +78 -1
  6. package/dist/cli/commands/inspect.js.map +1 -1
  7. package/dist/cli/commands/maintenance.js +80 -2
  8. package/dist/cli/commands/maintenance.js.map +1 -1
  9. package/dist/compiler/command-normalizer.d.ts +27 -0
  10. package/dist/compiler/command-normalizer.js +263 -0
  11. package/dist/compiler/command-normalizer.js.map +1 -0
  12. package/dist/compiler/trajectory-compiler.d.ts +12 -0
  13. package/dist/compiler/trajectory-compiler.js +179 -0
  14. package/dist/compiler/trajectory-compiler.js.map +1 -0
  15. package/dist/compiler/trajectory-matcher.d.ts +18 -0
  16. package/dist/compiler/trajectory-matcher.js +419 -0
  17. package/dist/compiler/trajectory-matcher.js.map +1 -0
  18. package/dist/config/config-schema.d.ts +11 -0
  19. package/dist/config/config-schema.js +9 -0
  20. package/dist/config/config-schema.js.map +1 -1
  21. package/dist/config/default-config.js +1 -0
  22. package/dist/config/default-config.js.map +1 -1
  23. package/dist/controller/candidate-retriever.d.ts +3 -1
  24. package/dist/controller/candidate-retriever.js +247 -7
  25. package/dist/controller/candidate-retriever.js.map +1 -1
  26. package/dist/controller/intervention-controller.js +48 -21
  27. package/dist/controller/intervention-controller.js.map +1 -1
  28. package/dist/controller/trigger-evaluator.d.ts +2 -1
  29. package/dist/controller/trigger-evaluator.js +10 -4
  30. package/dist/controller/trigger-evaluator.js.map +1 -1
  31. package/dist/experience-management/node-lifecycle-governance.js +25 -6
  32. package/dist/experience-management/node-lifecycle-governance.js.map +1 -1
  33. package/dist/input/fingerprint-extractor.d.ts +53 -0
  34. package/dist/input/fingerprint-extractor.js +620 -0
  35. package/dist/input/fingerprint-extractor.js.map +1 -0
  36. package/dist/interaction/service.d.ts +11 -1
  37. package/dist/interaction/service.js +11 -1
  38. package/dist/interaction/service.js.map +1 -1
  39. package/dist/maintenance/vector-migrator.d.ts +37 -0
  40. package/dist/maintenance/vector-migrator.js +170 -0
  41. package/dist/maintenance/vector-migrator.js.map +1 -0
  42. package/dist/plugin/openclaw-plugin.d.ts +8 -0
  43. package/dist/runtime/prompt-service.js +10 -0
  44. package/dist/runtime/prompt-service.js.map +1 -1
  45. package/dist/runtime/service.d.ts +2 -0
  46. package/dist/runtime/service.js +127 -2
  47. package/dist/runtime/service.js.map +1 -1
  48. package/dist/store/sqlite/db.js +18 -1
  49. package/dist/store/sqlite/db.js.map +1 -1
  50. package/dist/store/sqlite/repositories/attribution-record-repo.js +12 -0
  51. package/dist/store/sqlite/repositories/attribution-record-repo.js.map +1 -1
  52. package/dist/store/sqlite/repositories/node-repo.d.ts +1 -0
  53. package/dist/store/sqlite/repositories/node-repo.js +47 -2
  54. package/dist/store/sqlite/repositories/node-repo.js.map +1 -1
  55. package/dist/store/sqlite/repositories/scope-fingerprint-repo.d.ts +8 -0
  56. package/dist/store/sqlite/repositories/scope-fingerprint-repo.js +23 -0
  57. package/dist/store/sqlite/repositories/scope-fingerprint-repo.js.map +1 -0
  58. package/dist/store/sqlite/schema.sql +26 -0
  59. package/dist/store/vector/embeddings.d.ts +4 -2
  60. package/dist/store/vector/embeddings.js +19 -6
  61. package/dist/store/vector/embeddings.js.map +1 -1
  62. package/dist/store/vector/local-provider.d.ts +1 -1
  63. package/dist/store/vector/local-provider.js +40 -8
  64. package/dist/store/vector/local-provider.js.map +1 -1
  65. package/dist/store/vector/offline-manifest.d.ts +7 -0
  66. package/dist/store/vector/offline-manifest.js +162 -0
  67. package/dist/store/vector/offline-manifest.js.map +1 -0
  68. package/dist/store/vector/provider-types.d.ts +1 -0
  69. package/dist/types/domain.d.ts +111 -1
  70. package/dist/types/plugin.d.ts +1 -0
  71. package/docs/releases/v0.4.0.md +39 -0
  72. package/docs/user-guide.md +41 -0
  73. package/openclaw.plugin.json +1 -1
  74. package/package.json +1 -1
@@ -77,8 +77,8 @@ const hardFilterNodes = (input, nodes, options) => {
77
77
  const filtered = nodes.filter((node) => (isInjectableState(node) ||
78
78
  (options.includeShadowDiagnosticCandidates === true &&
79
79
  node.scope_id === input.scope_id &&
80
- node.state === "candidate" &&
81
- resolveDeliveryState(node) === "shadow_only")) &&
80
+ ((node.state === "candidate" && resolveDeliveryState(node) === "shadow_only") ||
81
+ resolveDeliveryState(node) === "shadow_probe"))) &&
82
82
  passesCorrectionScopeGate(input, node));
83
83
  return {
84
84
  nodes: filtered,
@@ -313,11 +313,230 @@ const buildMatchScorecard = (input, node, retrievalContext) => {
313
313
  directInjectEligible: scopeMatch === "same" && overallMatchBand === "high" && negativeEvidence.length === 0
314
314
  };
315
315
  };
316
+ export const buildPortabilityScorecard = (input, node, retrievalContext) => {
317
+ const db = retrievalContext?.db;
318
+ const defaultScorecard = (band, score, why) => ({
319
+ portabilityBand: band,
320
+ score,
321
+ matchedLanguage: true,
322
+ sharedDependencies: [],
323
+ penalties: [],
324
+ negativeEvidence: [],
325
+ whyScore: why
326
+ });
327
+ if (node.scope_id === input.scope_id) {
328
+ return defaultScorecard("validated_portable", 1.0, "Same scope experience node.");
329
+ }
330
+ if (!db) {
331
+ return defaultScorecard("weakly_related", 0.5, "Missing database context for fingerprint check.");
332
+ }
333
+ let sourceFingerprint;
334
+ let targetFingerprint;
335
+ try {
336
+ const sourceRow = db.prepare("SELECT fingerprint_json FROM scope_fingerprints WHERE scope_id = ? LIMIT 1").get(input.scope_id);
337
+ if (sourceRow?.fingerprint_json) {
338
+ sourceFingerprint = JSON.parse(sourceRow.fingerprint_json);
339
+ }
340
+ }
341
+ catch (err) {
342
+ }
343
+ try {
344
+ const targetRow = db.prepare("SELECT fingerprint_json FROM scope_fingerprints WHERE scope_id = ? LIMIT 1").get(node.scope_id);
345
+ if (targetRow?.fingerprint_json) {
346
+ targetFingerprint = JSON.parse(targetRow.fingerprint_json);
347
+ }
348
+ }
349
+ catch (err) {
350
+ }
351
+ if (!sourceFingerprint || !targetFingerprint) {
352
+ return defaultScorecard("weakly_related", 0.5, "One or both scope fingerprints are missing.");
353
+ }
354
+ const penalties = [];
355
+ const negativeEvidence = [];
356
+ const sharedDependencies = [];
357
+ const langMatch = sourceFingerprint.primaryLanguage &&
358
+ targetFingerprint.primaryLanguage &&
359
+ sourceFingerprint.primaryLanguage !== "unknown" &&
360
+ targetFingerprint.primaryLanguage !== "unknown"
361
+ ? sourceFingerprint.primaryLanguage === targetFingerprint.primaryLanguage
362
+ : true;
363
+ const isDestructiveCrossRepo = (n) => {
364
+ const text = [
365
+ n.trigger_pattern,
366
+ n.compact_hint,
367
+ n.goal,
368
+ n.recommended_steps?.join(" "),
369
+ n.avoid_steps?.join(" "),
370
+ n.success_signal,
371
+ n.stop_condition,
372
+ n.escalation_condition
373
+ ]
374
+ .filter(Boolean)
375
+ .join(" ")
376
+ .toLowerCase();
377
+ return /\b(rm\s+-rf|git\s+reset\s+--hard|git\s+clean\b|drop\s+table|delete\s+database|force\s+push|rewrite\s+history)/i.test(text);
378
+ };
379
+ if (isDestructiveCrossRepo(node)) {
380
+ negativeEvidence.push("destructive_guidance");
381
+ return {
382
+ portabilityBand: "incompatible",
383
+ score: 0.0,
384
+ matchedLanguage: langMatch,
385
+ sharedDependencies: [],
386
+ penalties: [],
387
+ negativeEvidence,
388
+ whyScore: "Destructive or irreversible guidance detected in cross-repo transfer."
389
+ };
390
+ }
391
+ if (!langMatch) {
392
+ return {
393
+ portabilityBand: "incompatible",
394
+ score: 0.0,
395
+ matchedLanguage: false,
396
+ sharedDependencies: [],
397
+ penalties: [{
398
+ dependency: "Language Mismatch",
399
+ category: "language",
400
+ penalty: 1.0,
401
+ reason: `Source language (${sourceFingerprint.primaryLanguage}) mismatches target language (${targetFingerprint.primaryLanguage}).`
402
+ }],
403
+ negativeEvidence: ["language_mismatch"],
404
+ whyScore: "Primary languages mismatch between scopes."
405
+ };
406
+ }
407
+ let currentScore = 1.0;
408
+ let hasCoreMismatch = false;
409
+ const compareCategory = (categoryName, isCore) => {
410
+ const sourceDeps = sourceFingerprint[categoryName] || {};
411
+ const targetDeps = targetFingerprint[categoryName] || {};
412
+ const allKeys = new Set([...Object.keys(sourceDeps), ...Object.keys(targetDeps)]);
413
+ for (const key of allKeys) {
414
+ if (key in sourceDeps && key in targetDeps) {
415
+ sharedDependencies.push(key);
416
+ const sourceVer = sourceDeps[key];
417
+ const targetVer = targetDeps[key];
418
+ if (sourceVer === 0 || targetVer === 0 || sourceVer === undefined || targetVer === undefined) {
419
+ const p = 0.05;
420
+ currentScore = Math.max(0, currentScore - p);
421
+ penalties.push({
422
+ dependency: key,
423
+ category: categoryName,
424
+ penalty: p,
425
+ reason: `Unknown version for shared dependency ${key} (${sourceVer ?? "none"} vs ${targetVer ?? "none"}).`
426
+ });
427
+ }
428
+ else if (sourceVer !== targetVer) {
429
+ const p = isCore ? 0.3 : 0.1;
430
+ currentScore = Math.max(0, currentScore - p);
431
+ if (isCore) {
432
+ hasCoreMismatch = true;
433
+ }
434
+ penalties.push({
435
+ dependency: key,
436
+ category: categoryName,
437
+ penalty: p,
438
+ reason: `Major version mismatch for shared dependency ${key} (v${sourceVer} vs v${targetVer}).`
439
+ });
440
+ }
441
+ }
442
+ }
443
+ };
444
+ compareCategory("frameworks", true);
445
+ compareCategory("databaseOrORM", true);
446
+ compareCategory("hostRuntimeAdapters", true);
447
+ compareCategory("testBuildTools", false);
448
+ if (node.harmed_count > 0) {
449
+ negativeEvidence.push("historical_causal_harm");
450
+ }
451
+ let band = "weakly_related";
452
+ let why = "Portability score falls into weakly related band.";
453
+ if (currentScore < 0.4) {
454
+ band = "incompatible";
455
+ why = "Portability score is below 0.4.";
456
+ }
457
+ else if (hasCoreMismatch || currentScore < 0.7) {
458
+ band = "weakly_related";
459
+ if (hasCoreMismatch) {
460
+ why = "Contains major version mismatch in core dependency (frameworks, ORM, or runtime).";
461
+ }
462
+ else {
463
+ why = "Portability score is between 0.4 and 0.7.";
464
+ }
465
+ }
466
+ else {
467
+ if (negativeEvidence.length > 0) {
468
+ band = "weakly_related";
469
+ why = "Contains negative evidence (historical harm).";
470
+ }
471
+ else {
472
+ band = "same_family";
473
+ why = "Strong portability match with no core mismatch or negative evidence.";
474
+ }
475
+ }
476
+ let successReuseCount;
477
+ let harmCount;
478
+ if (sourceFingerprint && node.portable_validation_evidence) {
479
+ const evidence = node.portable_validation_evidence;
480
+ const currentHash = sourceFingerprint.fingerprintHash;
481
+ if (evidence?.compatibilityClasses?.[currentHash]) {
482
+ const record = evidence.compatibilityClasses[currentHash];
483
+ successReuseCount = record.successReuseCount;
484
+ harmCount = record.harmCount;
485
+ if (band === "same_family" && record.successReuseCount >= 3 && record.harmCount === 0) {
486
+ band = "validated_portable";
487
+ why = `Validated portable through ${record.successReuseCount} successful reuse counts under compatibility class ${currentHash.slice(0, 8)}.`;
488
+ }
489
+ }
490
+ }
491
+ return {
492
+ portabilityBand: band,
493
+ score: currentScore,
494
+ matchedLanguage: langMatch,
495
+ sharedDependencies,
496
+ penalties,
497
+ negativeEvidence,
498
+ whyScore: why,
499
+ successReuseCount,
500
+ harmCount
501
+ };
502
+ };
316
503
  export const retrieveCandidates = async (input, nodes, options = {}) => {
317
504
  const bundle = await retrieveCandidateBundle(input, nodes, options);
318
505
  return bundle.candidates.map(({ node }) => node);
319
506
  };
320
507
  export const retrieveCandidateBundle = async (input, nodes, options = {}) => {
508
+ const db = options.retrievalContext?.db;
509
+ if (db) {
510
+ try {
511
+ const nowIso = new Date().toISOString();
512
+ const expiredRows = db.prepare(`SELECT id FROM experience_nodes
513
+ WHERE delivery_state = 'quarantined'
514
+ AND quarantine_lease_expires_at <= ?`).all(nowIso);
515
+ if (expiredRows.length > 0) {
516
+ const stmt = db.prepare(`UPDATE experience_nodes
517
+ SET delivery_state = 'shadow_probe',
518
+ quarantine_release_attempt_count = COALESCE(quarantine_release_attempt_count, 0) + 1,
519
+ quarantine_last_release_attempt_at = ?,
520
+ quarantine_no_harm_pass_count = 0,
521
+ updated_at = ?
522
+ WHERE id = ?`);
523
+ for (const row of expiredRows) {
524
+ stmt.run(nowIso, nowIso, row.id);
525
+ const inMemNode = nodes.find(n => n.id === row.id);
526
+ if (inMemNode) {
527
+ inMemNode.delivery_state = "shadow_probe";
528
+ inMemNode.quarantine_release_attempt_count = (inMemNode.quarantine_release_attempt_count ?? 0) + 1;
529
+ inMemNode.quarantine_last_release_attempt_at = nowIso;
530
+ inMemNode.quarantine_no_harm_pass_count = 0;
531
+ inMemNode.updated_at = nowIso;
532
+ }
533
+ }
534
+ }
535
+ }
536
+ catch (err) {
537
+ // Gracefully ignore database issues
538
+ }
539
+ }
321
540
  const retrievalSource = resolveRetrievalSource(input, options.retrievalContext);
322
541
  const retrievalQuery = buildRetrievalQuery(retrievalSource.taskSummary, retrievalSource.contextSummary);
323
542
  const queryText = retrievalQuery.retrievalQueryText;
@@ -371,14 +590,23 @@ export const retrieveCandidateBundle = async (input, nodes, options = {}) => {
371
590
  ? "backfill"
372
591
  : "rerank";
373
592
  const semanticPool = semanticMode === "backfill" ? scopeLocalNodes : lexicalShortlist;
593
+ const hasActiveSpace = localQuery && localQuery.space.provider !== "legacy";
374
594
  const localSemanticRecords = semanticPool
375
- .filter((node) => localQuery && isMatchingEmbeddingSpace(node, localQuery.space))
595
+ .filter((node) => localQuery &&
596
+ node.migration_status !== "pending" &&
597
+ node.migration_status !== "migrating" &&
598
+ isMatchingEmbeddingSpace(node, localQuery.space))
376
599
  .map((node) => ({
377
600
  id: node.id,
378
601
  embedding: node.embedding
379
602
  }));
380
603
  const legacyRecords = semanticPool
381
- .filter((node) => !localQuery || !isMatchingEmbeddingSpace(node, localQuery.space))
604
+ .filter((node) => !hasActiveSpace
605
+ ? (!localQuery ||
606
+ node.migration_status === "pending" ||
607
+ node.migration_status === "migrating" ||
608
+ !isMatchingEmbeddingSpace(node, localQuery.space))
609
+ : false)
382
610
  .map((node) => ({
383
611
  id: node.id,
384
612
  embedding: isCompatibleEmbedding(node.embedding)
@@ -416,7 +644,8 @@ export const retrieveCandidateBundle = async (input, nodes, options = {}) => {
416
644
  const retrievalScore = fusedScore * 0.68;
417
645
  const policy = enrichPolicyForCandidate(input, node, options.retrievalContext);
418
646
  const matchScorecard = buildMatchScorecard(input, node, options.retrievalContext);
419
- const retrievalReasons = buildRetrievalReasons({
647
+ const portabilityScorecard = buildPortabilityScorecard(input, node, options.retrievalContext);
648
+ const rawRetrievalReasons = buildRetrievalReasons({
420
649
  semanticScore,
421
650
  lexicalScore,
422
651
  fusedScore,
@@ -424,6 +653,15 @@ export const retrieveCandidateBundle = async (input, nodes, options = {}) => {
424
653
  familyScore: policy.familyScore,
425
654
  queryRewriteApplied: retrievalQuery.rewriteApplied
426
655
  });
656
+ const reasons = [...rawRetrievalReasons];
657
+ if (localQuery) {
658
+ if (node.migration_status === "pending" || node.migration_status === "migrating") {
659
+ reasons.push("semantic:excluded_due_to_pending_migration");
660
+ }
661
+ else if (!isMatchingEmbeddingSpace(node, localQuery.space)) {
662
+ reasons.push("semantic:excluded_due_to_incompatible_space");
663
+ }
664
+ }
427
665
  const totalScore = retrievalScore + policy.policyAdjustment;
428
666
  return {
429
667
  node,
@@ -431,13 +669,14 @@ export const retrieveCandidateBundle = async (input, nodes, options = {}) => {
431
669
  lexicalScore,
432
670
  fusedScore,
433
671
  retrievalScore,
434
- retrievalReasons,
672
+ retrievalReasons: reasons,
435
673
  policyAdjustment: policy.policyAdjustment,
436
674
  policyScore: policy.policyScore,
437
675
  policyReasons: policy.reasons,
438
676
  policyComponents: policy.components,
439
677
  familyScore: policy.familyScore,
440
678
  matchScorecard,
679
+ portabilityScorecard,
441
680
  totalScore,
442
681
  scopeMatch: node.scope_id === input.scope_id,
443
682
  taskFamilyMatch: node.task_type === input.task_type
@@ -471,7 +710,7 @@ export const retrieveCandidateBundle = async (input, nodes, options = {}) => {
471
710
  const rerankInput = {
472
711
  queryText: queryText || retrievalSource.taskSummary,
473
712
  taskType: inputTaskType,
474
- candidates: rerankCandidates.map(({ node, semanticScore, lexicalScore, fusedScore, retrievalScore, retrievalReasons, policyAdjustment, policyScore, policyReasons, policyComponents, familyScore, matchScorecard, totalScore, scopeMatch, taskFamilyMatch }) => ({
713
+ candidates: rerankCandidates.map(({ node, semanticScore, lexicalScore, fusedScore, retrievalScore, retrievalReasons, policyAdjustment, policyScore, policyReasons, policyComponents, familyScore, matchScorecard, portabilityScorecard, totalScore, scopeMatch, taskFamilyMatch }) => ({
475
714
  node,
476
715
  semanticScore,
477
716
  lexicalScore,
@@ -484,6 +723,7 @@ export const retrieveCandidateBundle = async (input, nodes, options = {}) => {
484
723
  policyComponents,
485
724
  familyScore,
486
725
  matchScorecard,
726
+ portabilityScorecard,
487
727
  totalScore,
488
728
  scopeMatch,
489
729
  taskFamilyMatch
@@ -1 +1 @@
1
- {"version":3,"file":"candidate-retriever.js","sourceRoot":"","sources":["../../src/controller/candidate-retriever.ts"],"names":[],"mappings":"AAWA,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,qBAAqB,EACrB,wBAAwB,EACzB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAuB,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EAAE,6BAA6B,EAAE,MAAM,wBAAwB,CAAC;AAEvE,OAAO,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAClF,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAqCpE,MAAM,qBAAqB,GAAG,CAAC,CAAC;AAChC,MAAM,uBAAuB,GAAG,CAAC,CAAC;AAClC,MAAM,uBAAuB,GAAG,CAAC,CAAC;AAClC,MAAM,2BAA2B,GAAG,IAAI,CAAC;AACzC,MAAM,8BAA8B,GAAG,IAAI,CAAC;AAC5C,MAAM,wCAAwC,GAAG,GAAG,CAAC;AACrD,MAAM,wCAAwC,GAAG,IAAI,CAAC;AACtD,MAAM,gCAAgC,GACpC,6JAA6J,CAAC;AAEhK,MAAM,mCAAmC,GAAmF;IAC1H,SAAS,EAAE,aAAa;IACxB,kBAAkB,EAAE,mBAAmB;IACvC,MAAM,EAAE,UAAU;IAClB,OAAO,EAAE,mBAAmB;IAC5B,OAAO,EAAE,aAAa;CACvB,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAC3B,IAAsD,EACP,EAAE,CAAC,IAAI,CAAC,cAAc,IAAI,mCAAmC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAE3H,MAAM,iBAAiB,GAAG,CAAC,IAAoB,EAAW,EAAE,CAC1D,oBAAoB,CAAC,IAAI,CAAC,KAAK,UAAU,IAAI,oBAAoB,CAAC,IAAI,CAAC,KAAK,mBAAmB,CAAC;AAElG,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC;IACtC,IAAI;IACJ,MAAM;IACN,KAAK;IACL,KAAK;IACL,QAAQ;IACR,KAAK;IACL,MAAM;IACN,UAAU;IACV,IAAI;IACJ,KAAK;IACL,OAAO;CACR,CAAC,CAAC;AAEH,MAAM,2BAA2B,GAAG,CAAC,KAAsB,EAAE,SAAiB,EAAW,EAAE;IACzF,IAAI,KAAK,CAAC,eAAe,EAAE,IAAI,EAAE,EAAE,CAAC;QAClC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;IACnC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,uBAAuB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QACxE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,uBAAuB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QACtF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,yBAAyB,GAAG,CAAC,KAAsB,EAAE,IAAoB,EAAW,EAAE;IAC1F,IAAI,IAAI,CAAC,eAAe,KAAK,wBAAwB,EAAE,CAAC;QACtD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,gBAAgB,KAAK,YAAY,EAAE,CAAC;QAC/E,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,gBAAgB,KAAK,YAAY,EAAE,CAAC;QAC/E,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,gBAAgB,KAAK,gBAAgB,EAAE,CAAC;QACnF,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,mBAAmB,KAAK,kBAAkB,EAAE,CAAC;QACxF,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CACrB,KAA8C,EAC9C,KAAoD,EACpB,EAAE,CAAC,CAAC;IACpC,KAAK;IACL,GAAG,KAAK;CACT,CAAC,CAAC;AAEH,MAAM,eAAe,GAAG,CACtB,KAAsB,EACtB,KAAuB,EACvB,OAAmE,EACM,EAAE;IAC3E,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CACrC,CACE,iBAAiB,CAAC,IAAI,CAAC;QACvB,CACE,OAAO,CAAC,iCAAiC,KAAK,IAAI;YAClD,IAAI,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ;YAChC,IAAI,CAAC,KAAK,KAAK,WAAW;YAC1B,oBAAoB,CAAC,IAAI,CAAC,KAAK,aAAa,CAC7C,CACF;QACD,yBAAyB,CAAC,KAAK,EAAE,IAAI,CAAC,CACvC,CAAC;IAEF,OAAO;QACL,KAAK,EAAE,QAAQ;QACf,UAAU,EAAE,cAAc,CAAC,aAAa,EAAE;YACxC,aAAa,EAAE,QAAQ,CAAC,MAAM;YAC9B,aAAa,EAAE,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM;YAC7C,WAAW,EAAE;gBACX,qBAAqB;gBACrB,mCAAmC;gBACnC,uBAAuB;aACxB;SACF,CAAC;KACH,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,wBAAwB,GAAG,CAC/B,cAAsB,EACtB,aAAqB,EACrB,gBAAyB,EACO,EAAE,CAAC,cAAc,CAAC,WAAW,EAAE;IAC/D,aAAa,EAAE,cAAc;IAC7B,aAAa,EAAE,aAAa,GAAG,cAAc;IAC7C,WAAW,EAAE;QACX,yBAAyB;QACzB,wBAAwB;QACxB,mBAAmB;QACnB,gBAAgB,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,sBAAsB;KACzE;CACF,CAAC,CAAC;AAEH,MAAM,uBAAuB,GAAG,CAC9B,IAAuC,EACvC,sBAA8B,EAC9B,eAAwB,EACQ,EAAE,CAAC,cAAc,CAAC,0BAA0B,EAAE;IAC9E,WAAW,EAAE,sBAAsB;IACnC,WAAW,EAAE;QACX,iBAAiB,IAAI,EAAE;QACvB,eAAe,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC,qCAAqC;QAC7F,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,gCAAgC;KACrF;CACF,CAAC,CAAC;AAEH,MAAM,+BAA+B,GAAG,CACtC,cAAsB,EACU,EAAE,CAAC,cAAc,CAAC,mBAAmB,EAAE;IACvE,WAAW,EAAE,cAAc;IAC3B,WAAW,EAAE;QACX,2BAA2B;QAC3B,uBAAuB;QACvB,sCAAsC;KACvC;CACF,CAAC,CAAC;AA6BH,MAAM,sBAAsB,GAAG,CAC7B,KAAsB,EACtB,gBAAmC,EACuB,EAAE,CAAC,CAAC;IAC9D,WAAW,EAAE,gBAAgB,EAAE,WAAW,IAAI,KAAK,CAAC,YAAY;IAChE,cAAc,EAAE,gBAAgB,EAAE,cAAc,IAAI,KAAK,CAAC,eAAe;CAC1E,CAAC,CAAC;AAEH,MAAM,YAAY,GAAG,CAAC,OAA6C,EAAuB,EAAE,CAC1F,IAAI,GAAG,CACL,CAAC,GAAG,OAAO,CAAC;KACT,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;KAClC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;KAC/C,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAChD,CAAC;AAEJ,MAAM,gBAAgB,GAAG,CACvB,cAAmC,EACnC,aAAkC,EAClC,GAAa,EACQ,EAAE;IACvB,MAAM,aAAa,GAAG,YAAY,CAAC,CAAC,GAAG,cAAc,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;IACxG,MAAM,YAAY,GAAG,YAAY,CAAC,CAAC,GAAG,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;IACtG,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC3C,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,MAAM,YAAY,GAAG,EAAE,CAAC;IAExB,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;QACrB,MAAM,YAAY,GAAG,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC3C,MAAM,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACzC,MAAM,KAAK,GACT,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACtD,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvD,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QACxB,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;QAClB,OAAO,IAAI,GAAG,EAAE,CAAC;IACnB,CAAC;IAED,OAAO,IAAI,GAAG,CACZ,CAAC,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE;QAC1C,MAAM,eAAe,GAAG,KAAK,GAAG,QAAQ,CAAC;QACzC,MAAM,aAAa,GAAG,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QAClD,MAAM,YAAY,GAAG,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QAChD,MAAM,iBAAiB,GAAG,aAAa,GAAG,CAAC,IAAI,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3E,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CACpB,CAAC,EACD,eAAe,GAAG,IAAI,GAAG,aAAa,GAAG,GAAG,GAAG,YAAY,GAAG,GAAG,GAAG,iBAAiB,CACtF,CAAC;QAEF,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,0BAA0B,GAAG,CACjC,SAAiB,EACjB,UAA6B,EACR,EAAE;IACvB,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;QAC5C,OAAO,IAAI,GAAG,EAAE,CAAC;IACnB,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC5C,IAAI,QAAQ,GAAG,CAAC,CAAC;IAEjB,KAAK,MAAM,SAAS,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,qBAAqB,CAAC,EAAE,CAAC;QACnE,MAAM,YAAY,GAAG,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;QACjF,MAAM,SAAS,GAAG,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QAC3E,MAAM,SAAS,GAAG,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACnE,MAAM,SAAS,GAAG,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,CAAC;QAC5F,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;QACtF,MAAM,WAAW,GAAG,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACzD,MAAM,eAAe,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9G,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAC5B,IAAI,EACJ,SAAS,CAAC,IAAI,CAAC,YAAY,GAAG,KAAK;YACjC,SAAS,CAAC,IAAI,CAAC,aAAa,GAAG,IAAI;YACnC,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,KAAK,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CACxE,CAAC;QACF,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;QAEvE,MAAM,KAAK,GACT,YAAY,GAAG,IAAI;YACnB,SAAS,GAAG,GAAG;YACf,SAAS,GAAG,IAAI;YAChB,SAAS,GAAG,IAAI;YAChB,kBAAkB,GAAG,IAAI;YACzB,WAAW;YACX,eAAe;YACf,aAAa;YACb,WAAW,CAAC;QAEd,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QACxC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;QAClB,OAAO,IAAI,GAAG,EAAE,CAAC;IACnB,CAAC;IAED,OAAO,IAAI,GAAG,CACZ,CAAC,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,KAAK,GAAG,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAC3F,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,qBAAqB,GAAG,CAAC,KAO9B,EAAY,EAAE;IACb,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,IAAI,KAAK,CAAC,aAAa,GAAG,CAAC,EAAE,CAAC;QAC5B,OAAO,CAAC,IAAI,CAAC,YAAY,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC7D,CAAC;IACD,IAAI,KAAK,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,IAAI,CAAC,WAAW,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC3D,CAAC;IACD,IAAI,KAAK,CAAC,aAAa,GAAG,CAAC,IAAI,KAAK,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC;QACtD,OAAO,CAAC,IAAI,CAAC,iBAAiB,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC/D,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,IAAI,CAAC,mBAAmB,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,mBAAmB,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACzG,IAAI,KAAK,CAAC,mBAAmB,EAAE,CAAC;QAC9B,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IACxC,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,sBAAsB,GAAG;IAC7B,MAAM;IACN,QAAQ;IACR,aAAa;IACb,OAAO;IACP,YAAY;IACZ,QAAQ;IACR,QAAQ;IACR,YAAY;IACZ,YAAY;CACb,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAAC,KAAc,EAAU,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;AAE1F,MAAM,mBAAmB,GAAG,CAAC,IAAoB,EAAU,EAAE,CAC3D;IACE,IAAI,CAAC,eAAe;IACpB,IAAI,CAAC,YAAY;IACjB,IAAI,CAAC,gBAAgB;IACrB,IAAI,CAAC,cAAc;IACnB,IAAI,CAAC,IAAI;IACT,IAAI,CAAC,cAAc;IACnB,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,GAAG,CAAC;CAClC;KACE,MAAM,CAAC,OAAO,CAAC;KACf,IAAI,CAAC,GAAG,CAAC;KACT,WAAW,EAAE,CAAC;AAEnB,MAAM,YAAY,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AAE7F,MAAM,SAAS,GAAG,CAAC,QAAgB,EAAE,MAAe,EAAW,EAAE;IAC/D,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACrD,OAAO,OAAO,CAAC,gBAAgB,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;AAC1E,CAAC,CAAC;AAEF,MAAM,uBAAuB,GAAG,CAAC,IAAY,EAAe,EAAE;IAC5D,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IACnC,MAAM,gBAAgB,GAAG,kBAAkB,CAAC;IAC5C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACpD,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC/B,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,sBAAsB,EAAE,CAAC;QAC1C,IAAI,IAAI,MAAM,CAAC,MAAM,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9D,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AAChD,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,IAAiB,EAAE,KAAkB,EAAW,EAAE,CACzE,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AAE9C,MAAM,aAAa,GAAG,CAAC,KAAa,EAAa,EAAE;IACjD,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QAClB,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,KAAK,IAAI,GAAG,EAAE,CAAC;QACjB,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAC1B,KAAsB,EACtB,IAAoB,EACpB,gBAAmC,EACnB,EAAE;IAClB,MAAM,QAAQ,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,QAAQ,GAAG,mBAAmB,CAClC,GAAG,gBAAgB,EAAE,WAAW,IAAI,KAAK,CAAC,YAAY,IAAI,gBAAgB,EAAE,cAAc,IAAI,KAAK,CAAC,eAAe,IAAI,EAAE,EAAE,CAC5H,CAAC;IACF,MAAM,gBAAgB,GAAa,EAAE,CAAC;IAEtC,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;IACvE,MAAM,aAAa,GACjB,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,gBAAgB,EAAE,QAAQ;QACjF,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS;YAC7D,CAAC,CAAC,QAAQ;YACV,CAAC,CAAC,KAAK,CAAC;IAEd,MAAM,cAAc,GAAG,mBAAmB,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;IAC/E,MAAM,qBAAqB,GAAc,cAAc;QACrD,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,cAAc,CAAC;YACnC,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,KAAK;QACT,CAAC,CAAC,QAAQ,CAAC;IACb,IAAI,cAAc,IAAI,qBAAqB,KAAK,KAAK,EAAE,CAAC;QACtD,gBAAgB,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,gBAAgB,GAAG,uBAAuB,CAC9C,GAAG,gBAAgB,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,QAAQ,EAAE,CAChE,CAAC;IACF,MAAM,aAAa,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IACxD,MAAM,aAAa,GACjB,gBAAgB,CAAC,IAAI,KAAK,CAAC;QACzB,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,eAAe,CAAC,gBAAgB,EAAE,aAAa,CAAC;YAChD,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,KAAK,CAAC;IACd,IAAI,gBAAgB,CAAC,IAAI,GAAG,CAAC,IAAI,aAAa,CAAC,IAAI,GAAG,CAAC,IAAI,aAAa,KAAK,KAAK,EAAE,CAAC;QACnF,gBAAgB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,cAAc,GAAc,aAAa,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;IACpH,MAAM,WAAW,GAAG,aAAa,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;IAExE,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,YAAY,IAAI,UAAU,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IACpD,YAAY,IAAI,aAAa,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACtF,YAAY,IAAI,qBAAqB,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,qBAAqB,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACxG,YAAY,IAAI,aAAa,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACxF,YAAY,IAAI,WAAW,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACpF,IAAI,gBAAgB,CAAC,MAAM,EAAE,CAAC;QAC5B,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,gBAAgB,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC;IAErD,OAAO;QACL,UAAU;QACV,aAAa;QACb,cAAc;QACd,qBAAqB;QACrB,aAAa;QACb,WAAW;QACX,gBAAgB;QAChB,gBAAgB;QAChB,oBAAoB,EAAE,UAAU,KAAK,MAAM,IAAI,gBAAgB,KAAK,MAAM,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC;KAC5G,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,EACrC,KAAsB,EACtB,KAAuB,EACvB,UAA2B,EAAE,EACF,EAAE;IAC7B,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IACpE,OAAO,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AACnD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,EAC1C,KAAsB,EACtB,KAAuB,EACvB,UAA2B,EAAE,EACM,EAAE;IACrC,MAAM,eAAe,GAAG,sBAAsB,CAAC,KAAK,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAChF,MAAM,cAAc,GAAG,mBAAmB,CAAC,eAAe,CAAC,WAAW,EAAE,eAAe,CAAC,cAAc,CAAC,CAAC;IACxG,MAAM,SAAS,GAAG,cAAc,CAAC,kBAAkB,CAAC;IAEpD,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QAClC,OAAO;YACL,UAAU,EAAE,EAAE;YACd,cAAc;YACd,SAAS;YACT,eAAe,EAAE,IAAI;YACrB,0BAA0B,EAAE;gBAC1B,MAAM,EAAE;oBACN,cAAc,CAAC,mBAAmB,EAAE;wBAClC,WAAW,EAAE,CAAC;wBACd,WAAW,EAAE,CAAC,6BAA6B,EAAE,iCAAiC,CAAC;qBAChF,CAAC;oBACF,cAAc,CAAC,aAAa,EAAE;wBAC5B,aAAa,EAAE,CAAC;wBAChB,aAAa,EAAE,KAAK,CAAC,MAAM;wBAC3B,WAAW,EAAE,CAAC,mBAAmB,CAAC;qBACnC,CAAC;oBACF,wBAAwB,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC;oBACpC,uBAAuB,CAAC,SAAS,EAAE,CAAC,EAAE,IAAI,CAAC;oBAC3C,+BAA+B,CAAC,CAAC,CAAC;iBACnC;aACF;SACF,CAAC;IACJ,CAAC;IAED,MAAM,aAAa,GAAG,KAAK,CAAC,SAAS,CAAC;IACtC,MAAM,eAAe,GAAG,2BAA2B,CACjD;QACE,GAAG,KAAK;QACR,eAAe,EAAE,eAAe,CAAC,cAAc;KAChD,EACD,SAAS,IAAI,eAAe,CAAC,WAAW,CACzC,CAAC;IACF,MAAM,0BAA0B,GAAG,CAAC,eAAe,CAAC;IACpD,MAAM,UAAU,GAAG,0BAA0B;QAC3C,CAAC,CAAC,MAAM,cAAc,CAAC,SAAS,IAAI,eAAe,CAAC,WAAW,EAAE,OAAO,CAAC;QACzE,CAAC,CAAC,IAAI,CAAC;IACT,MAAM,WAAW,GAAG,oBAAoB,CAAC,SAAS,IAAI,eAAe,CAAC,WAAW,CAAC,CAAC;IACnF,MAAM,WAAW,GAAG,eAAe,EAAE,CAAC;IACtC,MAAM,gBAAgB,GAAG,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAChE,MAAM,eAAe,GAAG,gBAAgB,CAAC,KAAK,CAAC;IAE/C,MAAM,uBAAuB,GAAG,6BAA6B,CAAC,SAAS,IAAI,KAAK,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;IAChH,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAC9B,CAAC,GAAG,uBAAuB,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAC/E,CAAC;IACF,MAAM,gBAAgB,GAAG,CAAC,GAAG,eAAe,CAAC;SAC1C,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,2BAA2B,CAAC;SACrF,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;SACnG,KAAK,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAAC;IACrC,MAAM,qBAAqB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjH,MAAM,YAAY,GAAsC,eAAe;QACrE,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC,IAAI,qBAAqB,GAAG,8BAA8B;YACvF,CAAC,CAAC,UAAU;YACZ,CAAC,CAAC,QAAQ,CAAC;IACf,MAAM,YAAY,GAAG,YAAY,KAAK,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,gBAAgB,CAAC;IAEtF,MAAM,oBAAoB,GAAG,YAAY;SACtC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,IAAI,wBAAwB,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;SAChF,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACd,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,SAAS,EAAE,IAAI,CAAC,SAAU;KAC3B,CAAC,CAAC,CAAC;IACN,MAAM,aAAa,GAAG,YAAY;SAC/B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,UAAU,IAAI,CAAC,wBAAwB,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;SAClF,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACd,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,SAAS,EAAE,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC;YAC9C,CAAC,CAAC,IAAI,CAAC,SAAS;YAChB,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,IAAI,GAAG,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,SAAS;KAC1G,CAAC,CAAC,CAAC;IAEN,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC5C,IAAI,UAAU,EAAE,CAAC;QACf,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,KAAK,CAAC,oBAAoB,EAAE,UAAU,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE,CAAC;YACtF,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,KAAK,CAAC,aAAa,EAAE,WAAW,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE,CAAC;QAChF,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IACjH,CAAC;IACD,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9C,IAAI,YAAY,KAAK,UAAU,EAAE,CAAC;QAChC,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7E,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC;aAC/C,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,IAAI,IAAI,CAAC;aACpC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;aACzC,KAAK,CAAC,CAAC,EAAE,uBAAuB,CAAC,EAAE,CAAC;YACrC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;gBACjC,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;IACH,CAAC;IACD,MAAM,aAAa,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CACpD,gBAAgB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,IAAI,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAC3F,CAAC;IACF,MAAM,cAAc,GAAG,gBAAgB,CACrC,SAAS,EACT,gBAAgB,EAChB,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CACrC,CAAC;IAEF,MAAM,MAAM,GAAG,aAAa;SACzB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACZ,MAAM,aAAa,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QAClD,MAAM,YAAY,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QACxD,MAAM,UAAU,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;QACxF,MAAM,cAAc,GAAG,UAAU,GAAG,IAAI,CAAC;QACzC,MAAM,MAAM,GAAG,wBAAwB,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAC/E,MAAM,cAAc,GAAG,mBAAmB,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAClF,MAAM,gBAAgB,GAAG,qBAAqB,CAAC;YAC7C,aAAa;YACb,YAAY;YACZ,UAAU;YACV,eAAe,EAAE,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS;YACnD,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,mBAAmB,EAAE,cAAc,CAAC,cAAc;SACnD,CAAC,CAAC;QACH,MAAM,UAAU,GAAG,cAAc,GAAG,MAAM,CAAC,gBAAgB,CAAC;QAC5D,OAAO;YACL,IAAI;YACJ,aAAa;YACb,YAAY;YACZ,UAAU;YACV,cAAc;YACd,gBAAgB;YAChB,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;YACzC,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,aAAa,EAAE,MAAM,CAAC,OAAO;YAC7B,gBAAgB,EAAE,MAAM,CAAC,UAAU;YACnC,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,cAAc;YACd,UAAU;YACV,UAAU,EAAE,IAAI,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ;YAC5C,eAAe,EAAE,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS;SACpD,CAAC;IACJ,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,EAAE,EAAE;QACzE,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;QAC1E,IAAI,eAAe,GAAG,IAAI,EAAE,CAAC;YAC3B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAChC,OAAO,WAAW,IAAI,IAAI,CAAC;QAC7B,CAAC;QAED,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,iBAAiB,GACrB,IAAI,CAAC,YAAY,IAAI,CAAC;YACtB,IAAI,CAAC,gBAAgB,KAAK,oBAAoB;YAC9C,CAAC,IAAI,CAAC,iBAAiB,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC;YACzC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAE7B,OAAO,gCAAgC,CAAC,IAAI,CAAC,SAAS,IAAI,eAAe,CAAC,WAAW,CAAC,IAAI,CACxF,WAAW,IAAI,wCAAwC;YACvD,eAAe,IAAI,wCAAwC;YAC3D,iBAAiB,CAClB,CAAC;IACJ,CAAC,CAAC;SACD,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;SACzD,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAEf,MAAM,gBAAgB,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;IAC/F,MAAM,eAAe,GAAG,IAAI,GAAG,EAAkB,CAAC;IAClD,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAiC,CAAC;IAClE,IAAI,gBAAgB,CAAC,MAAM,EAAE,CAAC;QAC5B,MAAM,WAAW,GAAG;YAClB,SAAS,EAAE,SAAS,IAAI,eAAe,CAAC,WAAW;YACnD,QAAQ,EAAE,aAAa;YACvB,UAAU,EAAE,gBAAgB,CAAC,GAAG,CAC9B,CAAC,EACC,IAAI,EACJ,aAAa,EACb,YAAY,EACZ,UAAU,EACV,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,UAAU,EACV,UAAU,EACV,eAAe,EAChB,EAAE,EAAE,CAAC,CAAC;gBACL,IAAI;gBACJ,aAAa;gBACb,YAAY;gBACZ,UAAU;gBACV,cAAc;gBACd,gBAAgB;gBAChB,gBAAgB;gBAChB,WAAW;gBACX,aAAa;gBACb,gBAAgB;gBAChB,WAAW;gBACX,cAAc;gBACd,UAAU;gBACV,UAAU;gBACV,eAAe;aAChB,CAAC,CACH;SACF,CAAC;QACF,MAAM,mBAAmB,GAAG,0BAA0B,CAAC,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;QACtG,MAAM,sBAAsB,GAC1B,CAAC,OAAO,CAAC,QAAQ;YACjB,OAAO,CAAC,MAAM;YACd,wBAAwB,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC;QACvD,MAAM,kBAAkB,GAAG,sBAAsB;YAC/C,CAAC,CAAC,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,yBAAyB,EAAE,EAAE,EAAE,CACzE,yBAAyB,CAAC,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,UAAU,EAAE;gBACvE,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,eAAe,EAAE,OAAO,CAAC,uBAAuB;aACjD,CAAC,CACH;YACH,CAAC,CAAC,IAAI,CAAC;QACT,MAAM,aAAa,GAAG,OAAO,CAAC,QAAQ;YACpC,CAAC,CAAC,MAAM,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;YACrC,CAAC,CAAC,kBAAkB;gBAClB,WAAW,CAAC,UAAU;qBACnB,KAAK,CAAC,CAAC,EAAE,qBAAqB,CAAC;qBAC/B,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;oBACnB,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE;oBACrB,KAAK,EAAE,mBAAmB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;iBACvD,CAAC,CAAC,CAAC;QACV,MAAM,YAAY,GAChB,OAAO,CAAC,QAAQ,IAAI,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC;QAC1E,MAAM,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,IAAI,kBAAkB,EAAE,MAAM,CAAC,CAAC;QAEpF,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CACvB,CAAC,EACD,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACrF,CAAC;QACF,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;YACnC,MAAM,UAAU,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3E,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9D,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;QAChD,CAAC;QACD,gBAAgB,CAAC,GAAG,CAAC,cAAc,EAAE,mBAAmB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IACpF,CAAC;IAED,MAAM,QAAQ,GAAG,gBAAgB;SAC9B,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACb,MAAM,WAAW,GAAG,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACvD,MAAM,mBAAmB,GAAG,gBAAgB,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,OAAO,CAAC;QAC7E,MAAM,WAAW,GACf,OAAO,WAAW,KAAK,QAAQ;YAC7B,CAAC,CAAC,mBAAmB;gBACnB,CAAC,CAAC,WAAW,GAAG,GAAG,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBAClF,CAAC,CAAC,WAAW,GAAG,IAAI,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACxD,CAAC,CAAC,CAAC,CAAC;QACR,OAAO;YACL,GAAG,KAAK;YACR,WAAW;YACX,YAAY,EAAE,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACjD,UAAU,EAAE,KAAK,CAAC,UAAU,GAAG,WAAW;SAC3C,CAAC;IACJ,CAAC,CAAC;SACD,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;IAE7D,OAAO;QACL,UAAU,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YAC1C,GAAG,KAAK;YACR,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,GAAG,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,UAAU,IAAI,CAAC,CAAC,CAAC;SACpF,CAAC,CAAC;QACH,cAAc;QACd,SAAS;QACT,eAAe;QACf,0BAA0B,EAAE;YAC1B,MAAM,EAAE;gBACN,cAAc,CAAC,mBAAmB,EAAE;oBAClC,WAAW,EAAE,CAAC;oBACd,WAAW,EAAE;wBACX,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,6BAA6B;wBACvF,2BAA2B;qBAC5B;iBACF,CAAC;gBACF,gBAAgB,CAAC,UAAU;gBAC3B,wBAAwB,CAAC,gBAAgB,CAAC,MAAM,EAAE,eAAe,CAAC,MAAM,EAAE,YAAY,KAAK,UAAU,CAAC;gBACtG,uBAAuB,CAAC,YAAY,EAAE,SAAS,CAAC,IAAI,EAAE,eAAe,CAAC;gBACtE,+BAA+B,CAAC,QAAQ,CAAC,MAAM,CAAC;aACjD;SACF;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,EAC3C,KAAsB,EACtB,KAAuB,EACvB,UAA2B,EAAE,EACE,EAAE;IACjC,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IACpE,OAAO,MAAM,CAAC,UAAU,CAAC;AAC3B,CAAC,CAAC"}
1
+ {"version":3,"file":"candidate-retriever.js","sourceRoot":"","sources":["../../src/controller/candidate-retriever.ts"],"names":[],"mappings":"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"}
@@ -14,20 +14,25 @@ const isLiveInjectableNode = (node) => {
14
14
  const deliveryState = resolveDeliveryState(node);
15
15
  return deliveryState === "eligible" || deliveryState === "conservative_only";
16
16
  };
17
- const isTrustedSameFamilyCluster = (quality, runnerUpQuality) => Boolean(runnerUpQuality &&
18
- quality.scopeMatch &&
19
- quality.taskFamilyMatch &&
20
- runnerUpQuality.scopeMatch &&
21
- runnerUpQuality.taskFamilyMatch &&
22
- quality.state === "active" &&
23
- runnerUpQuality.state === "active" &&
24
- quality.helpedCount >= 2 &&
25
- runnerUpQuality.helpedCount >= 2 &&
26
- quality.totalScore >= 1.1 &&
27
- runnerUpQuality.totalScore >= 0.95 &&
28
- quality.helpedCount >= runnerUpQuality.helpedCount);
17
+ const isTrustedSameFamilyCluster = (quality, runnerUpQuality) => {
18
+ const qualityScopeMatch = quality.scopeMatch || quality.portabilityScorecard?.portabilityBand === "validated_portable";
19
+ const runnerUpScopeMatch = runnerUpQuality ? (runnerUpQuality.scopeMatch || runnerUpQuality.portabilityScorecard?.portabilityBand === "validated_portable") : false;
20
+ return Boolean(runnerUpQuality &&
21
+ qualityScopeMatch &&
22
+ quality.taskFamilyMatch &&
23
+ runnerUpScopeMatch &&
24
+ runnerUpQuality.taskFamilyMatch &&
25
+ quality.state === "active" &&
26
+ runnerUpQuality.state === "active" &&
27
+ quality.helpedCount >= 2 &&
28
+ runnerUpQuality.helpedCount >= 2 &&
29
+ quality.totalScore >= 1.1 &&
30
+ runnerUpQuality.totalScore >= 0.95 &&
31
+ quality.helpedCount >= runnerUpQuality.helpedCount);
32
+ };
29
33
  const isStrongCandidate = (quality, runnerUpQuality) => {
30
- return quality.scopeMatch &&
34
+ const qualityScopeMatch = quality.scopeMatch || quality.portabilityScorecard?.portabilityBand === "validated_portable";
35
+ return qualityScopeMatch &&
31
36
  quality.taskFamilyMatch &&
32
37
  quality.state === "active" &&
33
38
  quality.totalScore >= 0.75 &&
@@ -37,13 +42,19 @@ const isStrongCandidate = (quality, runnerUpQuality) => {
37
42
  runnerUpQuality.helpedCount === 0 &&
38
43
  runnerUpQuality.validationState !== "validated_by_reuse") ||
39
44
  isTrustedSameFamilyCluster(quality, runnerUpQuality)) &&
40
- (quality.helpedCount >= 2 || quality.validationState === "validated_by_reuse") &&
45
+ (quality.helpedCount >= 2 || quality.validationState === "validated_by_reuse" || (!quality.scopeMatch && quality.portabilityScorecard?.portabilityBand === "validated_portable")) &&
41
46
  quality.helpedCount >= quality.harmedCount;
42
47
  };
43
48
  const toCandidateQuality = (input, node, candidate) => {
44
49
  if (!node || !candidate) {
45
50
  return undefined;
46
51
  }
52
+ const helpedCount = (!candidate.scopeMatch && candidate.portabilityScorecard)
53
+ ? (candidate.portabilityScorecard.successReuseCount ?? 0)
54
+ : node.helped_count;
55
+ const harmedCount = (!candidate.scopeMatch && candidate.portabilityScorecard)
56
+ ? (candidate.portabilityScorecard.harmCount ?? 0)
57
+ : node.harmed_count;
47
58
  return {
48
59
  semanticScore: candidate.semanticScore,
49
60
  retrievalScore: candidate.retrievalScore,
@@ -55,16 +66,18 @@ const toCandidateQuality = (input, node, candidate) => {
55
66
  scopeMatch: candidate.scopeMatch,
56
67
  taskFamilyMatch: candidate.taskFamilyMatch || node.task_type === input.task_type,
57
68
  state: node.state,
58
- helpedCount: node.helped_count,
59
- harmedCount: node.harmed_count,
69
+ helpedCount,
70
+ harmedCount,
60
71
  validationState: node.validation_state,
61
72
  matchScorecard: candidate.matchScorecard,
73
+ portabilityScorecard: candidate.portabilityScorecard,
62
74
  scoreMargin: candidate.scoreMargin
63
75
  };
64
76
  };
65
77
  const toScorecardCandidate = (candidate) => ({
66
78
  id: candidate.node.id,
67
79
  matchScorecard: candidate.matchScorecard,
80
+ portabilityScorecard: candidate.portabilityScorecard,
68
81
  semanticScore: Number(candidate.semanticScore.toFixed(4)),
69
82
  lexicalScore: Number(candidate.lexicalScore.toFixed(4)),
70
83
  fusedScore: Number(candidate.fusedScore.toFixed(4)),
@@ -147,13 +160,17 @@ const isDestructiveOrIrreversibleGuidance = (node) => {
147
160
  .toLowerCase();
148
161
  return /\b(rm\s+-rf|git\s+reset\s+--hard|drop\s+table|delete\s+database|force\s+push|rewrite\s+history)\b/i.test(text);
149
162
  };
150
- const isDiagnosticCandidate = (candidate) => candidate.node.state === "candidate" && resolveDeliveryState(candidate.node) === "shadow_only";
163
+ const isDiagnosticCandidate = (candidate) => (candidate.node.state === "candidate" && resolveDeliveryState(candidate.node) === "shadow_only") ||
164
+ resolveDeliveryState(candidate.node) === "shadow_probe";
151
165
  const DIAGNOSTIC_GATE_THRESHOLDS = {
152
166
  safe: { totalScore: 0.6, scoreMargin: 0.05 },
153
167
  fast_learning: { totalScore: 0.55, scoreMargin: 0.03 },
154
168
  strict: { totalScore: 0.6, scoreMargin: 0.05 }
155
169
  };
156
170
  const passesDiagnosticLiveGate = (candidate, repoPolicy) => {
171
+ if (resolveDeliveryState(candidate.node) === "shadow_probe") {
172
+ return false;
173
+ }
157
174
  const mode = repoPolicy?.effective_mode ?? "safe";
158
175
  const thresholds = DIAGNOSTIC_GATE_THRESHOLDS[mode];
159
176
  const strictCircuitSuppressed = mode === "strict" && repoPolicy?.live_diagnostics_disabled;
@@ -248,7 +265,9 @@ export const selectInjectableNodes = (ranked, maxHints = 3, preferredTaskType) =
248
265
  const selectionCap = exactFamilyStrategies.length >= 2 ? Math.min(maxHints, 2) : maxHints;
249
266
  return fallback.slice(0, selectionCap);
250
267
  };
251
- export const decideIntervention = (input, nodes, stats, threshold = 0.6, maxHints = 3, config, retrievalContext, repoPolicy) => decideInterventionInternal(input, nodes, stats, threshold, maxHints, config, retrievalContext, repoPolicy);
268
+ export const decideIntervention = (input, nodes, stats, threshold = 0.6, maxHints = 3, config, retrievalContext, repoPolicy) => {
269
+ return decideInterventionInternal(input, nodes, stats, threshold, maxHints, config, retrievalContext, repoPolicy);
270
+ };
252
271
  const decideInterventionInternal = async (input, nodes, stats, threshold = 0.6, maxHints = 3, config, retrievalContext, repoPolicy) => {
253
272
  const retrievalBundle = await retrieveCandidateBundle(input, nodes, {
254
273
  config,
@@ -345,9 +364,17 @@ const decideInterventionInternal = async (input, nodes, stats, threshold = 0.6,
345
364
  })
346
365
  };
347
366
  }
348
- const mode = liveCorrectionAwareRanked[0] && resolveDeliveryState(liveCorrectionAwareRanked[0]) === "conservative_only"
349
- ? "inject_conservative"
350
- : "inject";
367
+ const topCandidate = liveCorrectionAwareRanked[0];
368
+ const topCandidateInBundle = topCandidate ? candidateById.get(topCandidate.id) : undefined;
369
+ let mode = "inject";
370
+ if (topCandidate) {
371
+ const isCrossRepo = topCandidateInBundle ? !topCandidateInBundle.scopeMatch : false;
372
+ const isConservativeOnly = resolveDeliveryState(topCandidate) === "conservative_only";
373
+ const portabilityBand = topCandidateInBundle?.portabilityScorecard?.portabilityBand;
374
+ if (isConservativeOnly || (isCrossRepo && portabilityBand === "same_family")) {
375
+ mode = "inject_conservative";
376
+ }
377
+ }
351
378
  const selected = selectInjectableNodes(liveCorrectionAwareRanked, mode === "inject_conservative" ? 1 : maxHints, input.task_type);
352
379
  const topCandidateQuality = toCandidateQuality(input, selected[0], selected[0] ? candidateById.get(selected[0].id) : undefined);
353
380
  const runnerUpQuality = toCandidateQuality(input, selected[1], selected[1] ? candidateById.get(selected[1].id) : undefined);