agentera 3.0.0-dev.32 → 3.0.0-dev.39

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 (196) hide show
  1. package/bundle/CHANGELOG.md +75 -5
  2. package/bundle/references/adapters/package-publication.json +43 -0
  3. package/bundle/references/adapters/package-surface-characterization.md +12 -0
  4. package/bundle/references/analysis/evidence-tier-authority.yaml +23 -21
  5. package/bundle/references/analysis/verification-policy.yaml +1 -0
  6. package/bundle/references/artifacts/artifact-registry-interface-model.yaml +11 -2
  7. package/bundle/references/artifacts/glossary-entry-contract.yaml +1241 -0
  8. package/bundle/references/artifacts/state-storage-authority.yaml +149 -80
  9. package/bundle/references/cli/agent-ready-state-contract.yaml +84 -2
  10. package/bundle/references/cli/audience-namespace-cli-migration.yaml +12 -1
  11. package/bundle/references/cli/prime-consumer-compatibility.yaml +7 -1
  12. package/bundle/skills/agentera/SKILL.md +26 -26
  13. package/bundle/skills/agentera/capabilities/audit/schemas/validation.yaml +26 -8
  14. package/bundle/skills/agentera/capabilities/build/schemas/artifacts.yaml +21 -4
  15. package/bundle/skills/agentera/capabilities/build/schemas/exit.yaml +5 -4
  16. package/bundle/skills/agentera/capabilities/build/schemas/validation.yaml +67 -3
  17. package/bundle/skills/agentera/capabilities/discuss/schemas/artifacts.yaml +3 -2
  18. package/bundle/skills/agentera/capabilities/discuss/schemas/validation.yaml +64 -0
  19. package/bundle/skills/agentera/capabilities/plan/schemas/artifacts.yaml +4 -1
  20. package/bundle/skills/agentera/capabilities/plan/schemas/validation.yaml +30 -0
  21. package/bundle/skills/agentera/capabilities/profile/schemas/artifacts.yaml +5 -2
  22. package/bundle/skills/agentera/capabilities/profile/schemas/exit.yaml +3 -2
  23. package/bundle/skills/agentera/capabilities/profile/schemas/validation.yaml +30 -0
  24. package/bundle/skills/agentera/schemas/artifacts/glossary.yaml +82 -0
  25. package/bundle/skills/agentera/schemas/artifacts/plan.yaml +19 -4
  26. package/bundle/skills/agentera/schemas/artifacts/progress.yaml +92 -0
  27. package/dist/analytics/extractCorpus/evidenceTiers.js +46 -3
  28. package/dist/analytics/extractCorpus/evidenceTiers.js.map +1 -1
  29. package/dist/analytics/extractCorpus/tierReader.js +1 -1
  30. package/dist/analytics/extractCorpus/tierReader.js.map +1 -1
  31. package/dist/analytics/glossaryAdviceResolution.js +167 -0
  32. package/dist/analytics/glossaryAdviceResolution.js.map +1 -0
  33. package/dist/analytics/glossaryInputAcquisition.js +320 -0
  34. package/dist/analytics/glossaryInputAcquisition.js.map +1 -0
  35. package/dist/analytics/personalGlossaryAdmission.js +134 -0
  36. package/dist/analytics/personalGlossaryAdmission.js.map +1 -0
  37. package/dist/analytics/personalGlossaryProfile.js +219 -0
  38. package/dist/analytics/personalGlossaryProfile.js.map +1 -0
  39. package/dist/audit/terminologyDrift.js +282 -0
  40. package/dist/audit/terminologyDrift.js.map +1 -0
  41. package/dist/capabilities/audit/instructions.js +2 -1
  42. package/dist/capabilities/audit/instructions.js.map +1 -1
  43. package/dist/capabilities/build/instructions.js +41 -2
  44. package/dist/capabilities/build/instructions.js.map +1 -1
  45. package/dist/capabilities/discuss/instructions.js +14 -1
  46. package/dist/capabilities/discuss/instructions.js.map +1 -1
  47. package/dist/capabilities/index.js +1 -1
  48. package/dist/capabilities/index.js.map +1 -1
  49. package/dist/capabilities/orchestrate/instructions.js +2 -2
  50. package/dist/capabilities/plan/instructions.js +19 -2
  51. package/dist/capabilities/plan/instructions.js.map +1 -1
  52. package/dist/capabilities/profile/instructions.js +67 -1
  53. package/dist/capabilities/profile/instructions.js.map +1 -1
  54. package/dist/cli/capabilityContext/bespoke.js +4 -3
  55. package/dist/cli/capabilityContext/bespoke.js.map +1 -1
  56. package/dist/cli/capabilityContext/build.js +77 -24
  57. package/dist/cli/capabilityContext/build.js.map +1 -1
  58. package/dist/cli/capabilityContext/closeout.js +2 -2
  59. package/dist/cli/capabilityContext/closeout.js.map +1 -1
  60. package/dist/cli/capabilityContext/evidence.js +2 -6
  61. package/dist/cli/capabilityContext/evidence.js.map +1 -1
  62. package/dist/cli/capabilityContext/planState.js +59 -78
  63. package/dist/cli/capabilityContext/planState.js.map +1 -1
  64. package/dist/cli/capabilityContext/projectVerification.js +410 -0
  65. package/dist/cli/capabilityContext/projectVerification.js.map +1 -0
  66. package/dist/cli/capabilityContext/startup.js +21 -4
  67. package/dist/cli/capabilityContext/startup.js.map +1 -1
  68. package/dist/cli/commands/glossaryAdvice.js +139 -0
  69. package/dist/cli/commands/glossaryAdvice.js.map +1 -0
  70. package/dist/cli/commands/personalGlossary.js +177 -0
  71. package/dist/cli/commands/personalGlossary.js.map +1 -0
  72. package/dist/cli/commands/prime/buildExecutionRequest.js +165 -0
  73. package/dist/cli/commands/prime/buildExecutionRequest.js.map +1 -0
  74. package/dist/cli/commands/prime/collectEntityOrientation.js +18 -2
  75. package/dist/cli/commands/prime/collectEntityOrientation.js.map +1 -1
  76. package/dist/cli/commands/prime/collectOrientationState.js +7 -1
  77. package/dist/cli/commands/prime/collectOrientationState.js.map +1 -1
  78. package/dist/cli/commands/prime/orientationOutput.js +12 -2
  79. package/dist/cli/commands/prime/orientationOutput.js.map +1 -1
  80. package/dist/cli/commands/prime.js +37 -2
  81. package/dist/cli/commands/prime.js.map +1 -1
  82. package/dist/cli/commands/profileGrounding.js +77 -0
  83. package/dist/cli/commands/profileGrounding.js.map +1 -0
  84. package/dist/cli/commands/query.js +14 -4
  85. package/dist/cli/commands/query.js.map +1 -1
  86. package/dist/cli/commands/schema.js +10 -0
  87. package/dist/cli/commands/schema.js.map +1 -1
  88. package/dist/cli/commands/state/write.js +4 -1
  89. package/dist/cli/commands/state/write.js.map +1 -1
  90. package/dist/cli/dispatch/lifecycle.js +45 -0
  91. package/dist/cli/dispatch/lifecycle.js.map +1 -1
  92. package/dist/cli/dispatch/prime.js +22 -1
  93. package/dist/cli/dispatch/prime.js.map +1 -1
  94. package/dist/cli/dispatch/shared.js +1 -1
  95. package/dist/cli/dispatch/shared.js.map +1 -1
  96. package/dist/cli/help.js +23 -1
  97. package/dist/cli/help.js.map +1 -1
  98. package/dist/cli/migrationRequired.js +2 -0
  99. package/dist/cli/migrationRequired.js.map +1 -1
  100. package/dist/cli/orientation/attention.js +3 -1
  101. package/dist/cli/orientation/attention.js.map +1 -1
  102. package/dist/cli/orientation.js +2 -2
  103. package/dist/cli/orientation.js.map +1 -1
  104. package/dist/registries/artifactProtocolIds.js +2 -0
  105. package/dist/registries/artifactProtocolIds.js.map +1 -1
  106. package/dist/registries/artifactRegistry.js +2 -0
  107. package/dist/registries/artifactRegistry.js.map +1 -1
  108. package/dist/registries/evidenceTierContract.js +26 -16
  109. package/dist/registries/evidenceTierContract.js.map +1 -1
  110. package/dist/registries/glossaryAdviceContract.js +79 -0
  111. package/dist/registries/glossaryAdviceContract.js.map +1 -0
  112. package/dist/registries/glossaryCaveatContract.js +68 -0
  113. package/dist/registries/glossaryCaveatContract.js.map +1 -0
  114. package/dist/registries/glossaryConsumerContractValidation.js +792 -0
  115. package/dist/registries/glossaryConsumerContractValidation.js.map +1 -0
  116. package/dist/registries/glossaryEntryContract.js +747 -0
  117. package/dist/registries/glossaryEntryContract.js.map +1 -0
  118. package/dist/registries/glossaryTermIdentity.js +18 -0
  119. package/dist/registries/glossaryTermIdentity.js.map +1 -0
  120. package/dist/registries/glossaryTermOccurrence.js +21 -0
  121. package/dist/registries/glossaryTermOccurrence.js.map +1 -0
  122. package/dist/state/changelog.js +222 -0
  123. package/dist/state/changelog.js.map +1 -0
  124. package/dist/state/decisionEntities.js +18 -11
  125. package/dist/state/decisionEntities.js.map +1 -1
  126. package/dist/state/decisionMigrationProvenance.js +84 -1
  127. package/dist/state/decisionMigrationProvenance.js.map +1 -1
  128. package/dist/state/decisionOverlay.js +9 -32
  129. package/dist/state/decisionOverlay.js.map +1 -1
  130. package/dist/state/decisionRevision.js +69 -444
  131. package/dist/state/decisionRevision.js.map +1 -1
  132. package/dist/state/decisionRevisionMigration.js +90 -0
  133. package/dist/state/decisionRevisionMigration.js.map +1 -0
  134. package/dist/state/directRetrieval.js +3 -52
  135. package/dist/state/directRetrieval.js.map +1 -1
  136. package/dist/state/entityCutover.js +6 -6
  137. package/dist/state/entityCutover.js.map +1 -1
  138. package/dist/state/entityGlossaryAuthority.js +14 -0
  139. package/dist/state/entityGlossaryAuthority.js.map +1 -0
  140. package/dist/state/entityMigrationIdentity.js +6 -0
  141. package/dist/state/entityMigrationIdentity.js.map +1 -0
  142. package/dist/state/entityMigrationPreview.js +14 -23
  143. package/dist/state/entityMigrationPreview.js.map +1 -1
  144. package/dist/state/entityPublicationContext.js +374 -71
  145. package/dist/state/entityPublicationContext.js.map +1 -1
  146. package/dist/state/entityStorage.js +45 -29
  147. package/dist/state/entityStorage.js.map +1 -1
  148. package/dist/state/healthEntities.js +2 -4
  149. package/dist/state/healthEntities.js.map +1 -1
  150. package/dist/state/listRetrieval.js +7 -38
  151. package/dist/state/listRetrieval.js.map +1 -1
  152. package/dist/state/migrationSourceBinding.js +1 -1
  153. package/dist/state/migrationSourceBinding.js.map +1 -1
  154. package/dist/state/objectiveExperimentEntities.js +9 -9
  155. package/dist/state/objectiveExperimentEntities.js.map +1 -1
  156. package/dist/state/planEntities.js +57 -16
  157. package/dist/state/planEntities.js.map +1 -1
  158. package/dist/state/progressEntities.js +177 -39
  159. package/dist/state/progressEntities.js.map +1 -1
  160. package/dist/state/progressGlossaryCaveat.js +169 -0
  161. package/dist/state/progressGlossaryCaveat.js.map +1 -0
  162. package/dist/state/progressPublicationOrder.js +20 -0
  163. package/dist/state/progressPublicationOrder.js.map +1 -0
  164. package/dist/state/safeProjectFile.js +4 -1
  165. package/dist/state/safeProjectFile.js.map +1 -1
  166. package/dist/state/startupProjection.js +2 -70
  167. package/dist/state/startupProjection.js.map +1 -1
  168. package/dist/state/stateStorageAuthority.js +48 -0
  169. package/dist/state/stateStorageAuthority.js.map +1 -0
  170. package/dist/state/summarySourceRowAuthority.js +1 -1
  171. package/dist/state/summarySourceRowAuthority.js.map +1 -1
  172. package/dist/state/todoDocsEntities.js +8 -9
  173. package/dist/state/todoDocsEntities.js.map +1 -1
  174. package/dist/state/write/explain.js +101 -92
  175. package/dist/state/write/explain.js.map +1 -1
  176. package/dist/state/write/glossaryPublication.js +264 -0
  177. package/dist/state/write/glossaryPublication.js.map +1 -0
  178. package/dist/state/write/index.js +1 -0
  179. package/dist/state/write/index.js.map +1 -1
  180. package/dist/state/write/operations.js +25 -27
  181. package/dist/state/write/operations.js.map +1 -1
  182. package/dist/state/write/planEvaluation.js +6 -2
  183. package/dist/state/write/planEvaluation.js.map +1 -1
  184. package/dist/state/write/transaction.js +7 -4
  185. package/dist/state/write/transaction.js.map +1 -1
  186. package/dist/upgrade/upgradeOrchestrator.js +15 -10
  187. package/dist/upgrade/upgradeOrchestrator.js.map +1 -1
  188. package/dist/validate/crossCapability.js +3 -0
  189. package/dist/validate/crossCapability.js.map +1 -1
  190. package/dist/validate/v1LegacyCruft.js +141 -0
  191. package/dist/validate/v1LegacyCruft.js.map +1 -0
  192. package/dist/validate/vocabularyAuthority.js +2 -0
  193. package/dist/validate/vocabularyAuthority.js.map +1 -1
  194. package/package.json +4 -3
  195. package/dist/state/decisionRevisionPublication.js +0 -532
  196. package/dist/state/decisionRevisionPublication.js.map +0 -1
@@ -0,0 +1,68 @@
1
+ import { loadYamlMappingFile } from "../core/yaml.js";
2
+ import { glossaryEntryAuthorityPath } from "./glossaryEntryContract.js";
3
+ function mapping(value) {
4
+ return value !== null && typeof value === "object" && !Array.isArray(value)
5
+ ? value
6
+ : null;
7
+ }
8
+ function strings(value) {
9
+ return Array.isArray(value) && value.every((item) => typeof item === "string") ? value : [];
10
+ }
11
+ function fixedValues(value) {
12
+ const source = mapping(value);
13
+ if (!source)
14
+ return {};
15
+ return Object.fromEntries(Object.entries(source).filter((entry) => typeof entry[1] === "string" || entry[1] === null));
16
+ }
17
+ function allowedPairs(value) {
18
+ if (!Array.isArray(value))
19
+ return [];
20
+ return value.flatMap((candidate) => {
21
+ const pair = mapping(candidate);
22
+ return typeof pair?.reason === "string" && typeof pair.ownership_state === "string"
23
+ ? [{ reason: pair.reason, ownershipState: pair.ownership_state }]
24
+ : [];
25
+ });
26
+ }
27
+ export function glossaryCaveatPairAllowed(contract, reason, ownershipState) {
28
+ return contract.allowedCurrentPairs.some((pair) => pair.reason === reason && pair.ownershipState === ownershipState);
29
+ }
30
+ export function glossaryCaveatContract(pathname = glossaryEntryAuthorityPath()) {
31
+ return glossaryCaveatContractFromDocument(loadYamlMappingFile(pathname));
32
+ }
33
+ export function glossaryCaveatContractFromDocument(authority) {
34
+ const caveat = mapping(mapping(authority.consumer_boundary)?.autonomous_caveat);
35
+ const identity = mapping(caveat?.identity);
36
+ const envelope = mapping(caveat?.envelope);
37
+ const currentAppend = mapping(envelope?.current_append);
38
+ const primeProjection = mapping(caveat?.prime_projection);
39
+ const primeSource = mapping(primeProjection?.source);
40
+ const primeCapacity = mapping(primeProjection?.capacity);
41
+ return {
42
+ fields: strings(envelope?.fields),
43
+ currentAppendCallerFields: strings(currentAppend?.caller_fields),
44
+ currentAppendCallerFixedValues: Object.fromEntries(Object.entries(fixedValues(currentAppend?.caller_fixed_values)).filter((entry) => typeof entry[1] === "string")),
45
+ currentAppendWriterFields: strings(currentAppend?.writer_fields),
46
+ currentAppendWriterFixedValues: fixedValues(currentAppend?.writer_fixed_values),
47
+ events: strings(envelope?.events),
48
+ capabilities: strings(envelope?.capabilities),
49
+ reasons: strings(envelope?.reasons),
50
+ ownershipStates: strings(envelope?.ownership_states),
51
+ allowedCurrentPairs: allowedPairs(caveat?.allowed_current_pairs),
52
+ idAlphabet: typeof identity?.alphabet === "string" ? identity.alphabet : "",
53
+ idLength: typeof identity?.length === "number" ? identity.length : 0,
54
+ idPattern: new RegExp(typeof identity?.pattern === "string" ? identity.pattern : "a^"),
55
+ maxStringUtf8Bytes: typeof envelope?.max_string_utf8_bytes === "number" ? envelope.max_string_utf8_bytes : 0,
56
+ primeAttentionText: typeof primeProjection?.attention_text === "string" ? primeProjection.attention_text : "",
57
+ primeSourceArtifact: typeof primeSource?.artifact === "string" ? primeSource.artifact : "",
58
+ primeSourceBoundary: typeof primeSource?.boundary === "string" ? primeSource.boundary : "",
59
+ primeSourceCapability: typeof primeSource?.capability === "string" ? primeSource.capability : "",
60
+ primePublicAttentionLimit: typeof primeCapacity?.public_attention_limit === "number"
61
+ ? primeCapacity.public_attention_limit
62
+ : 0,
63
+ primeReservedGlossarySlots: typeof primeCapacity?.reserved_glossary_slots === "number"
64
+ ? primeCapacity.reserved_glossary_slots
65
+ : 0,
66
+ };
67
+ }
68
+ //# sourceMappingURL=glossaryCaveatContract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glossaryCaveatContract.js","sourceRoot":"","sources":["../../../../../home/jgabor/git/agentera/packages/cli/src/registries/glossaryCaveatContract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AA2BxE,SAAS,OAAO,CAAC,KAAc;IAC7B,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACzE,CAAC,CAAE,KAAiB;QACpB,CAAC,CAAC,IAAI,CAAC;AACX,CAAC;AAED,SAAS,OAAO,CAAC,KAAc;IAC7B,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AAC9F,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAC9B,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACvB,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAC3B,CAAC,KAAK,EAAoC,EAAE,CAC1C,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,CACpD,CACF,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACrC,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;QACjC,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;QAChC,OAAO,OAAO,IAAI,EAAE,MAAM,KAAK,QAAQ,IAAI,OAAO,IAAI,CAAC,eAAe,KAAK,QAAQ;YACjF,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC;YACjE,CAAC,CAAC,EAAE,CAAC;IACT,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,QAAgC,EAChC,MAAc,EACd,cAAsB;IAEtB,OAAO,QAAQ,CAAC,mBAAmB,CAAC,IAAI,CACtC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM,IAAI,IAAI,CAAC,cAAc,KAAK,cAAc,CAC3E,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,WAAmB,0BAA0B,EAAE;IAE/C,OAAO,kCAAkC,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC3E,CAAC;AAED,MAAM,UAAU,kCAAkC,CAChD,SAAkC;IAElC,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC,CAAC;IAChF,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC3C,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC3C,MAAM,aAAa,GAAG,OAAO,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IACxD,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC1D,MAAM,WAAW,GAAG,OAAO,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;IACrD,MAAM,aAAa,GAAG,OAAO,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;IACzD,OAAO;QACL,MAAM,EAAE,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC;QACjC,yBAAyB,EAAE,OAAO,CAAC,aAAa,EAAE,aAAa,CAAC;QAChE,8BAA8B,EAAE,MAAM,CAAC,WAAW,CAChD,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,aAAa,EAAE,mBAAmB,CAAC,CAAC,CAAC,MAAM,CACpE,CAAC,KAAK,EAA6B,EAAE,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,CACnE,CACF;QACD,yBAAyB,EAAE,OAAO,CAAC,aAAa,EAAE,aAAa,CAAC;QAChE,8BAA8B,EAAE,WAAW,CAAC,aAAa,EAAE,mBAAmB,CAAC;QAC/E,MAAM,EAAE,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC;QACjC,YAAY,EAAE,OAAO,CAAC,QAAQ,EAAE,YAAY,CAAC;QAC7C,OAAO,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC;QACnC,eAAe,EAAE,OAAO,CAAC,QAAQ,EAAE,gBAAgB,CAAC;QACpD,mBAAmB,EAAE,YAAY,CAAC,MAAM,EAAE,qBAAqB,CAAC;QAChE,UAAU,EAAE,OAAO,QAAQ,EAAE,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;QAC3E,QAAQ,EAAE,OAAO,QAAQ,EAAE,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACpE,SAAS,EAAE,IAAI,MAAM,CAAC,OAAO,QAAQ,EAAE,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;QACtF,kBAAkB,EAChB,OAAO,QAAQ,EAAE,qBAAqB,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAC1F,kBAAkB,EAChB,OAAO,eAAe,EAAE,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;QAC3F,mBAAmB,EAAE,OAAO,WAAW,EAAE,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;QAC1F,mBAAmB,EAAE,OAAO,WAAW,EAAE,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;QAC1F,qBAAqB,EAAE,OAAO,WAAW,EAAE,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;QAChG,yBAAyB,EACvB,OAAO,aAAa,EAAE,sBAAsB,KAAK,QAAQ;YACvD,CAAC,CAAC,aAAa,CAAC,sBAAsB;YACtC,CAAC,CAAC,CAAC;QACP,0BAA0B,EACxB,OAAO,aAAa,EAAE,uBAAuB,KAAK,QAAQ;YACxD,CAAC,CAAC,aAAa,CAAC,uBAAuB;YACvC,CAAC,CAAC,CAAC;KACR,CAAC;AACJ,CAAC"}