@polpo-ai/server 0.15.133 → 0.15.134

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 (50) hide show
  1. package/dist/deps.d.ts +5 -1
  2. package/dist/deps.d.ts.map +1 -1
  3. package/dist/index.d.ts +1 -0
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +1 -0
  6. package/dist/index.js.map +1 -1
  7. package/dist/routes/completions/chat-handler.d.ts +5 -0
  8. package/dist/routes/completions/chat-handler.d.ts.map +1 -1
  9. package/dist/routes/completions/chat-handler.js +25 -5
  10. package/dist/routes/completions/chat-handler.js.map +1 -1
  11. package/dist/routes/completions/chat-via-run-handler.d.ts.map +1 -1
  12. package/dist/routes/completions/chat-via-run-handler.js +25 -9
  13. package/dist/routes/completions/chat-via-run-handler.js.map +1 -1
  14. package/dist/routes/completions/chat-via-run-handler.test.js +99 -0
  15. package/dist/routes/completions/chat-via-run-handler.test.js.map +1 -1
  16. package/dist/routes/completions/conversation-turn.d.ts +3 -0
  17. package/dist/routes/completions/conversation-turn.d.ts.map +1 -1
  18. package/dist/routes/completions/conversation-turn.js +75 -5
  19. package/dist/routes/completions/conversation-turn.js.map +1 -1
  20. package/dist/routes/completions/project-loop-runner.d.ts +3 -1
  21. package/dist/routes/completions/project-loop-runner.d.ts.map +1 -1
  22. package/dist/routes/completions/project-loop-runner.js +25 -5
  23. package/dist/routes/completions/project-loop-runner.js.map +1 -1
  24. package/dist/routes/completions/tool-mapping.d.ts +14 -1
  25. package/dist/routes/completions/tool-mapping.d.ts.map +1 -1
  26. package/dist/routes/completions/tool-mapping.js +40 -11
  27. package/dist/routes/completions/tool-mapping.js.map +1 -1
  28. package/dist/routes/completions/tool-mapping.test.js +52 -0
  29. package/dist/routes/completions/tool-mapping.test.js.map +1 -1
  30. package/dist/routes/completions.d.ts +3 -0
  31. package/dist/routes/completions.d.ts.map +1 -1
  32. package/dist/routes/completions.js +2 -0
  33. package/dist/routes/completions.js.map +1 -1
  34. package/dist/routes/memory-candidates.d.ts +4 -0
  35. package/dist/routes/memory-candidates.d.ts.map +1 -0
  36. package/dist/routes/memory-candidates.js +282 -0
  37. package/dist/routes/memory-candidates.js.map +1 -0
  38. package/dist/routes/memory-candidates.test.d.ts +2 -0
  39. package/dist/routes/memory-candidates.test.d.ts.map +1 -0
  40. package/dist/routes/memory-candidates.test.js +131 -0
  41. package/dist/routes/memory-candidates.test.js.map +1 -0
  42. package/dist/routes/schedules.test.js +7 -3
  43. package/dist/routes/schedules.test.js.map +1 -1
  44. package/dist/schemas.d.ts +40 -0
  45. package/dist/schemas.d.ts.map +1 -1
  46. package/dist/schemas.js +14 -1
  47. package/dist/schemas.js.map +1 -1
  48. package/dist/schemas.test.js +12 -0
  49. package/dist/schemas.test.js.map +1 -1
  50. package/package.json +7 -7
@@ -1,5 +1,5 @@
1
1
  import { nanoid } from "nanoid";
2
- import { agentMemoryScope, createToolInvocationContext, createRuntimePromptContextSegment, compileExecutionRouteManifest, createExecutionRouteResolvedEvent, createExplicitExecutionRoute, createRuntimePlanResolvedEvent, executionRouteRuntimePlanFields, normalizeRuntimeContextTrustMode, normalizeRuntimePlan, renderRuntimePromptContextSegment, renderRuntimePromptContextSegments, renderRuntimeContextPrompt, replacesLegacyAgentMemory, replacesLegacySharedMemory, resolveRuntimeContext, resolveExecutionRoute, resolveLoopSelection, validateExecutionRouterConfig, } from "@polpo-ai/core";
2
+ import { agentMemoryScope, createToolInvocationContext, createRuntimePromptContextSegment, compileExecutionRouteManifest, createExecutionRouteResolvedEvent, createExplicitExecutionRoute, createRuntimePlanResolvedEvent, executionRouteRuntimePlanFields, normalizeAgentMemorySettings, normalizeRuntimeContextTrustMode, normalizeRuntimePlan, renderRuntimePromptContextSegment, renderRuntimePromptContextSegments, renderRuntimeContextPrompt, replacesLegacyAgentMemory, replacesLegacySharedMemory, resolveRuntimeContext, resolveExecutionRoute, resolveLoopSelection, validateExecutionRouterConfig, } from "@polpo-ai/core";
3
3
  import { normalizeChatInteractionSettings, resolveChatInteractionCapabilities, } from "@polpo-ai/core/chat-interactions";
4
4
  import { prepareModelMessagesForProvider } from "@polpo-ai/llm";
5
5
  import { convertMessages, extractText, sessionMessagesToCompletionMessages, } from "./message-mapping.js";
@@ -11,7 +11,7 @@ import { assertCompletionMessageContent, assertModelPreflightValue, assertRuntim
11
11
  import { agentConfigForModelPrimary, modelSelectionForAgent, modelSelectionForResolvedModel, } from "./agent-step-runner.js";
12
12
  import { runChatTurnViaRun, } from "./chat-via-run-handler.js";
13
13
  import { runProjectLoopCompletion } from "./project-loop-runner.js";
14
- import { persistAssistantMessage } from "./tool-mapping.js";
14
+ import { persistAssistantMessage, notifyCanonicalTurnCommitted, } from "./tool-mapping.js";
15
15
  import { applyCompletionOutputPolicy } from "./output-guardrails.js";
16
16
  import { guardrailErrorEnvelope } from "./sse.js";
17
17
  import { MODEL_CONTROLLED_TOOL_PROMPT, createModelControlledToolPool, forcedModelToolName, resolveToolLoadingDecision, } from "./tool-disclosure.js";
@@ -341,6 +341,8 @@ export async function prepareChatCompletionExecution(deps, body, options = {}) {
341
341
  let activatedSkills = [];
342
342
  let deferredAgentTools = false;
343
343
  let completionId = options.completionId ?? `chatcmpl-${nanoid(24)}`;
344
+ let turnId;
345
+ let userMessageId;
344
346
  const sessionStore = deps.getSessionStore();
345
347
  const invocation = completionInvocation(options.runtime);
346
348
  const interactionSettings = normalizeChatInteractionSettings(initialAgentConfig?.chat);
@@ -458,6 +460,10 @@ export async function prepareChatCompletionExecution(deps, body, options = {}) {
458
460
  runId: completionId,
459
461
  });
460
462
  completionId = prepared.runId;
463
+ turnId = prepared.turnId;
464
+ userMessageId = turnId
465
+ ? prepared.messages.find((message) => message.role === "user" && message.turnId === turnId)?.id
466
+ : undefined;
461
467
  const canonicalMessages = sessionMessagesToCompletionMessages(prepared.messages);
462
468
  body = { ...body, messages: canonicalMessages };
463
469
  const canonical = convertMessages(body.messages, contextTrust);
@@ -691,6 +697,16 @@ export async function prepareChatCompletionExecution(deps, body, options = {}) {
691
697
  if (projectLoopRuntime && isStructuredResponseFormat(body.response_format)) {
692
698
  return completionError("response_format is not supported with project loop execution", 400, "unsupported_response_format");
693
699
  }
700
+ const canonicalSurface = invocation.surface === "channel" ? "channel" : "chat";
701
+ const memoryLearning = agentMode && resolvedAgentConfig
702
+ ? normalizeAgentMemorySettings(resolvedAgentConfig.memory).learning
703
+ : undefined;
704
+ const memoryLearningEnabled = Boolean(memoryLearning
705
+ && memoryLearning.mode !== "off"
706
+ && memoryLearning.surfaces.includes(canonicalSurface));
707
+ if (!body.polpo?.continuation && memoryLearningEnabled) {
708
+ turnId = `turn-${completionId}`;
709
+ }
694
710
  let sessionId = options.sessionId ?? null;
695
711
  if (sessionStore) {
696
712
  if (!sessionId) {
@@ -707,7 +723,15 @@ export async function prepareChatCompletionExecution(deps, body, options = {}) {
707
723
  }
708
724
  const lastUserMsg = [...body.messages].reverse().find((message) => message.role === "user");
709
725
  if (!body.polpo?.continuation && lastUserMsg && sessionId) {
710
- await sessionStore.addMessage(sessionId, "user", lastUserMsg.content);
726
+ const userMessage = turnId
727
+ ? await sessionStore.addMessage(sessionId, "user", lastUserMsg.content, { turnId })
728
+ : await sessionStore.addMessage(sessionId, "user", lastUserMsg.content);
729
+ if (turnId) {
730
+ if (!userMessage || typeof userMessage.id !== "string" || !userMessage.id) {
731
+ throw new Error("Session store did not return the canonical user message identity");
732
+ }
733
+ userMessageId = userMessage.id;
734
+ }
711
735
  }
712
736
  if (!body.polpo?.continuation && sessionId && sessionStore.getSession) {
713
737
  const current = await sessionStore.getSession(sessionId);
@@ -715,6 +739,38 @@ export async function prepareChatCompletionExecution(deps, body, options = {}) {
715
739
  options.setHeader?.("x-session-version", String(Number(current.version ?? 0) + 1));
716
740
  }
717
741
  }
742
+ let canonicalTurn;
743
+ if (agentMode
744
+ && resolvedAgentConfig
745
+ && sessionId
746
+ && turnId
747
+ && userMessageId
748
+ && typeof sessionStore?.commitCanonicalTurn === "function") {
749
+ if (memoryLearningEnabled) {
750
+ canonicalTurn = {
751
+ turnId,
752
+ userMessageId,
753
+ agentName: resolvedAgentConfig.name,
754
+ surface: canonicalSurface,
755
+ requestId: completionId,
756
+ runId: completionId,
757
+ trustedInvocation: {
758
+ ...(options.runtime?.user ?? body.user
759
+ ? { externalUserId: options.runtime?.user ?? body.user }
760
+ : {}),
761
+ ...(options.runtime?.channelId
762
+ ? { channelId: options.runtime.channelId }
763
+ : {}),
764
+ ...(options.runtime?.scope ? { scope: options.runtime.scope } : {}),
765
+ },
766
+ learningPolicy: {
767
+ mode: memoryLearning.mode,
768
+ surfaces: memoryLearning.surfaces,
769
+ kinds: memoryLearning.kinds,
770
+ },
771
+ };
772
+ }
773
+ }
718
774
  if (deferredAgentTools) {
719
775
  const toolInvocation = createCompletionToolInvocation({
720
776
  body,
@@ -864,6 +920,8 @@ export async function prepareChatCompletionExecution(deps, body, options = {}) {
864
920
  contextTrust,
865
921
  sessionStore,
866
922
  sessionId,
923
+ ...(turnId ? { turnId } : {}),
924
+ ...(canonicalTurn ? { canonicalTurn } : {}),
867
925
  runtimePlan,
868
926
  runtimeContext,
869
927
  runtimeInvocation: options.runtime,
@@ -902,6 +960,8 @@ export async function prepareChatCompletionExecution(deps, body, options = {}) {
902
960
  aiMessages,
903
961
  sessionStore,
904
962
  sessionId,
963
+ turnId,
964
+ canonicalTurn,
905
965
  onResponseFinished,
906
966
  runtimePlan,
907
967
  contextTrust,
@@ -943,9 +1003,12 @@ export async function runConversationTurn(deps, input) {
943
1003
  let model = "polpo";
944
1004
  let resolvedModel;
945
1005
  let providerMetadata;
1006
+ let canonicalTurnSucceeded = false;
946
1007
  try {
947
1008
  if (prepared.sessionStore && prepared.sessionId) {
948
- const placeholder = await prepared.sessionStore.addMessage(prepared.sessionId, "assistant", "");
1009
+ const placeholder = prepared.turnId
1010
+ ? await prepared.sessionStore.addMessage(prepared.sessionId, "assistant", "", { turnId: prepared.turnId })
1011
+ : await prepared.sessionStore.addMessage(prepared.sessionId, "assistant", "");
949
1012
  assistantMessageId = placeholder.id;
950
1013
  }
951
1014
  const result = await runProjectLoopCompletion({
@@ -990,6 +1053,7 @@ export async function runConversationTurn(deps, input) {
990
1053
  model = result.model;
991
1054
  resolvedModel = result.resolvedModel;
992
1055
  providerMetadata = result.providerMetadata;
1056
+ canonicalTurnSucceeded = true;
993
1057
  return {
994
1058
  completionId: prepared.completionId,
995
1059
  sessionId: prepared.sessionId,
@@ -1008,7 +1072,13 @@ export async function runConversationTurn(deps, input) {
1008
1072
  };
1009
1073
  }
1010
1074
  finally {
1011
- await persistAssistantMessage(prepared.sessionStore, prepared.sessionId, assistantMessageId, finalText, toolCalls, { reasoning: finalReasoning });
1075
+ const committedTurn = await persistAssistantMessage(prepared.sessionStore, prepared.sessionId, assistantMessageId, finalText, toolCalls, {
1076
+ reasoning: finalReasoning,
1077
+ ...(canonicalTurnSucceeded && prepared.canonicalTurn
1078
+ ? { canonicalTurn: prepared.canonicalTurn }
1079
+ : {}),
1080
+ });
1081
+ notifyCanonicalTurnCommitted(prepared.deps.onCanonicalTurnCommitted, committedTurn);
1012
1082
  prepared.deps.onCompletionFinished?.({
1013
1083
  usage,
1014
1084
  model,
@@ -1 +1 @@
1
- {"version":3,"file":"conversation-turn.js","sourceRoot":"","sources":["../../../src/routes/completions/conversation-turn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EACL,gBAAgB,EAChB,2BAA2B,EAC3B,iCAAiC,EACjC,6BAA6B,EAC7B,iCAAiC,EACjC,4BAA4B,EAC5B,8BAA8B,EAC9B,+BAA+B,EAC/B,gCAAgC,EAChC,oBAAoB,EACpB,iCAAiC,EACjC,kCAAkC,EAClC,0BAA0B,EAC1B,yBAAyB,EACzB,0BAA0B,EAC1B,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,6BAA6B,GAW9B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,gCAAgC,EAChC,kCAAkC,GACnC,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,+BAA+B,EAAE,MAAM,eAAe,CAAC;AAOhE,OAAO,EACL,eAAe,EACf,WAAW,EACX,mCAAmC,GACpC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,EACL,8BAA8B,EAC9B,cAAc,GACf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,sBAAsB,EACtB,qCAAqC,EACrC,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,mCAAmC,GAEpC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,8BAA8B,EAC9B,yBAAyB,EACzB,8BAA8B,GAC/B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,0BAA0B,EAC1B,sBAAsB,EACtB,8BAA8B,GAE/B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,iBAAiB,GAElB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,EACL,4BAA4B,EAC5B,6BAA6B,EAC7B,mBAAmB,EACnB,0BAA0B,GAE3B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,0BAA0B,EAC1B,4BAA4B,GAC7B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,+BAA+B,EAC/B,6BAA6B,EAC7B,wBAAwB,EACxB,0BAA0B,EAC1B,mBAAmB,GAEpB,MAAM,0BAA0B,CAAC;AAoClC,SAAS,uBAAuB,CAAC,IAAuB;IACtD,MAAM,SAAS,GAAG,IAEjB,CAAC;IACF,IAAI,SAAS,CAAC,KAAK,IAAI,OAAO,SAAS,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC3D,OAAO,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;IAC9E,CAAC;IACD,OAAO,OAAO,CACZ,SAAS,CAAC,KAAK;WACZ,OAAO,SAAS,CAAC,KAAK,KAAK,QAAQ;WACnC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAC3C,CAAC;AACJ,CAAC;AA4BD,SAAS,eAAe,CACtB,OAAe,EACf,MAAc,EACd,IAAa,EACb,IAAI,GAAG,uBAAuB;IAE9B,OAAO;QACL,IAAI,EAAE,OAAO;QACb,MAAM;QACN,IAAI,EAAE;YACJ,KAAK,EAAE;gBACL,OAAO;gBACP,IAAI;gBACJ,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC1B;SACF;KACF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,wBAAwB,CACrC,OAA0C;IAE1C,IAAI,CAAC,OAAO;QAAE,OAAO;IACrB,IAAI,CAAC;QACH,MAAM,OAAO,EAAE,CAAC;IAClB,CAAC;IAAC,MAAM,CAAC;QACP,2EAA2E;IAC7E,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,MAAM,SAAS,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;IAChD,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,eAAe,CACpB,SAAS,CAAC,OAAO,EACjB,SAAS,CAAC,IAAI,KAAK,6BAA6B,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAC5D,SAAS,CAAC,IAAI,EACd,SAAS,CAAC,IAAI,CACf,CAAC;IACJ,CAAC;IACD,OAAO,eAAe,CACpB,oCAAoC,EACpC,GAAG,EACH,4BAA4B,EAC5B,cAAc,CACf,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CACvB,OAAuC,EACvC,KAAc,EACd,IAAa;IAEb,OAAO;QACL,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,IAAI,OAAO;QAC5C,MAAM,EAAE,OAAO,CAAC,OAAO,EAAE,MAAM,IAAI,SAAS;QAC5C,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3B,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9D,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC/C,CAAC;AACb,CAAC;AAED,KAAK,UAAU,oBAAoB,CACjC,IAAyB,EACzB,IAA2B,EAC3B,OAAuC,EACvC,KAAc;IAEd,IAAI,CAAC,IAAI,CAAC,kBAAkB;QAAE,OAAO,IAAI,CAAC;IAC1C,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;IACf,KAAK,IAAI,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC;QAClE,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC;YAC3C,KAAK,GAAG,MAAM,CAAC;YACf,MAAM;QACR,CAAC;IACH,CAAC;IACD,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAE,CAAC;IACtC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC;QACvD,KAAK,EAAE,OAAO;QACd,KAAK,EAAE,OAAO,CAAC,OAAO;QACtB,IAAI,EAAE,IAAI,CAAC,sBAAsB,IAAI,SAAS;QAC9C,OAAO,EAAE,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC;QACpD,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;IACH,8BAA8B,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACrE,IAAI,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7D,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;IACpC,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,KAAK,EAAoB,CAAC;IAC7E,OAAO,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,CAAC;AAC/B,CAAC;AAED,KAAK,UAAU,mBAAmB,CAChC,IAAyB,EACzB,KAA2C,EAC3C,IAA2B,EAC3B,OAAuC,EACvC,KAAc;IAEd,IAAI,CAAC,IAAI,CAAC,kBAAkB,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACrD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC;QACvD,KAAK,EAAE,SAAS;QAChB,KAAK;QACL,IAAI,EAAE,IAAI,CAAC,sBAAsB,IAAI,SAAS;QAC9C,OAAO,EAAE,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC;QACpD,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;IACH,8BAA8B,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACrE,OAAO,SAAS,CAAC,KAAK,CAAC;AACzB,CAAC;AAED,KAAK,UAAU,mBAAmB,CAKhC,IAAyB,EACzB,KAAQ,EACR,IAA2B,EAC3B,OAAuC,EACvC,KAAc;IAEd,IAAI,CAAC,IAAI,CAAC,kBAAkB;QAAE,OAAO,KAAK,CAAC;IAC3C,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC;QACvD,KAAK,EAAE,iBAAiB;QACxB,KAAK;QACL,IAAI,EAAE,IAAI,CAAC,sBAAsB,IAAI,SAAS;QAC9C,OAAO,EAAE,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC;QACpD,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;IACH,yBAAyB,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAChE,OAAO,SAAS,CAAC,KAAK,CAAC;AACzB,CAAC;AAED,SAAS,mBAAmB,CAAI,KAAQ;IACtC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAChF,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,KAAgC,CAAC,EAAE,CAAC;QACrE,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,mBAAmB,CAC1B,SAA6C;IAE7C,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAClE,IAAI,SAAS,IAAI,SAAS;QAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC;IAClE,MAAM,WAAW,GAAG,CAAC,MAAmB,EAAe,EAAE,CACvD,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;IACpE,OAAO;QACL,OAAO,EAAE,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC;QACvC,GAAG,CAAC,SAAS,CAAC,SAAS,KAAK,SAAS;YACnC,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;YACrD,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,4BAA4B,CACzC,IAAyB,EACzB,IAA2B,EAC3B,UAAmD,EACnD,WAA4B,EAC5B,SAAkD;IAElD,IAAI,CAAC,IAAI,CAAC,kBAAkB;QAAE,OAAO,SAAS,CAAC;IAE/C,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,UAAU,IAAI;QACxC,OAAO,EAAE,OAAO;QAChB,MAAM,EAAE,SAAS;KACT,CAAC;IACX,MAAM,KAAK,GAA+B,mBAAmB,CAAC;QAC5D,OAAO;QACP,MAAM;QACN,SAAS;QACT,OAAO,EAAE;YACP,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5C,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzC,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB;QACD,GAAG,CAAC,WAAW;YACb,CAAC,CAAC;gBACE,KAAK,EAAE;oBACL,IAAI,EAAE,WAAW,CAAC,IAAI;oBACtB,KAAK,EAAE,mBAAmB,CAAC,WAAW,CAAC,KAAK,CAAC;oBAC7C,OAAO,EAAE,WAAW,CAAC,OAAO;wBAC1B,CAAC,CAAC;4BACE,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS;gCAC/B,CAAC,CAAC,EAAE,SAAS,EAAE,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE;gCAC9C,CAAC,CAAC,EAAE,CAAC;4BACP,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS;gCAC/B,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE;gCACrD,CAAC,CAAC,EAAE,CAAC;4BACP,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC;gCAC5C,CAAC,CAAC;oCACE,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CACtC,CAAC,MAA+B,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC,CACrD;iCACF;gCACH,CAAC,CAAC,EAAE,CAAC;yBACR;wBACH,CAAC,CAAC,SAAS;oBACb,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC;wBACnD,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,YAAY,CAAC;wBAC/B,CAAC,CAAC,SAAS;iBACd;aACF;YACH,CAAC,CAAC,EAAE,CAAC;KACR,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,oBAAoB,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;IACxE,IACE,IAAI,CAAC,OAAO,KAAK,OAAO;QACxB,IAAI,CAAC,MAAM,KAAK,MAAM;QACtB,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI;QACtC,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI;QACtC,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM,EAC1C,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC3E,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,8BAA8B,CAAC,IAAI,CAAC,CAAC,CAAC;IAChE,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,oBAAoB,CAC3B,UAAmD;IAEnD,OAAO,UAAU,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AAC/D,CAAC;AAED,SAAS,qBAAqB,CAC5B,UAAuC,EACvC,IAAa;IAEb,IAAI,IAAI,IAAI,UAAU,CAAC,MAAM,KAAK,WAAW;QAAE,OAAO,MAAM,CAAC;IAC7D,IAAI,UAAU,CAAC,OAAO,KAAK,SAAS,IAAI,UAAU,CAAC,MAAM,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1F,IAAI,UAAU,CAAC,MAAM,KAAK,UAAU;QAAE,OAAO,UAAU,CAAC;IACxD,IAAI,UAAU,CAAC,OAAO,KAAK,MAAM,IAAI,UAAU,CAAC,MAAM,KAAK,MAAM;QAAE,OAAO,MAAM,CAAC;IACjF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,KAM9C;IACC,MAAM,UAAU,GAAG,oBAAoB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACvD,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;IAChD,OAAO,2BAA2B,CAAC;QACjC,SAAS,EAAE,UAAU,CAAC,SAAS,IAAI,KAAK,CAAC,YAAY;QACrD,KAAK,EAAE,UAAU,CAAC,KAAK,IAAI,KAAK,CAAC,YAAY;QAC7C,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1D,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzB,QAAQ,EAAE,CAAC,UAAU,CAAC,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAG1D;QACD,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxD,OAAO,EAAE,qBAAqB,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC;KAChE,CAAC,CAAC;AACL,CAAC;AAED,SAAS,gBAAgB;IACvB,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AAC/C,CAAC;AAED,SAAS,iBAAiB,CACxB,KAAyC;IAEzC,OAAO,KAAK;QACV,CAAC,CAAC,+BAA+B,CAAC,KAAK,CAAC,CAAC,SAAS;QAClD,CAAC,CAAC,gBAAgB,EAAE,CAAC;AACzB,CAAC;AAED,KAAK,UAAU,8BAA8B,CAC3C,IAAyB,EACzB,WAAgB,EAChB,IAA2B,EAC3B,OAAuC;IAKvC,6BAA6B,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;IAC3D,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC;QAC5D,CAAC,CAAC,WAAW,CAAC,aAAa;QAC3B,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,sBAAsB,GAAG,KAAK,CAAC,OAAO,CAC1C,WAAW,CAAC,eAAe,EAAE,YAAY,CAC1C;QACC,CAAC,CAAC,WAAW,CAAC,eAAe,CAAC,YAAY;QAC1C,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,sBAAsB,CAAC,CAAC;IAChD,MAAM,cAAc,GAAG,CAAC,GAAG,IAAI,GAAG,CAChC,aAAa,CAAC,MAAM,CAAC,CAAC,IAAa,EAAE,EAAE,CACrC,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CACjD,CAAa,CAAC;IACf,MAAM,YAAY,GAAG,IAAI,GAAG,EAA6B,CAAC;IAC1D,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAC9B,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;YAClC,IAAI;YACJ,IAAI,EAAE,MAAM,IAAI,CAAC,cAAe,CAAC,IAAI,CAAC;SACvC,CAAC,CAAC,CACJ,CAAC;QACF,KAAK,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,MAAM,EAAE,CAAC;YACpC,IAAI,IAAI;gBAAE,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IACD,MAAM,eAAe,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;SACvC,OAAO,EAAE;SACT,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;IAC9C,MAAM,UAAU,GAAG,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACzD,MAAM,KAAK,GAAG,MAAM,qBAAqB,CAAC;QACxC,OAAO,EAAE,UAAU,CAAC,OAAO;QAC3B,MAAM,EAAE,UAAU,CAAC,MAAM;QACzB,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;QAClE,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM;QAC5B,QAAQ,EAAE,6BAA6B,CAAC;YACtC,aAAa,EAAE,cAAc;YAC7B,YAAY,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC;SACzC,CAAC;QACF,MAAM,EAAE,WAAW,CAAC,eAAe;KACpC,EAAE;QACD,iBAAiB,EAAE,IAAI,CAAC,+BAA+B;YACrD,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,+BAAgC,CAAC;gBAC1C,OAAO,EAAE,UAAU,CAAC,OAAO;gBAC3B,MAAM,EAAE,UAAU,CAAC,MAAM;gBACzB,SAAS,EAAE,WAAW,CAAC,IAAI;gBAC3B,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC5C,CAAC;YACJ,CAAC,CAAC,SAAS;QACb,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;IACH,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;AACjC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAClD,IAAyB,EACzB,IAA2B,EAC3B,UAA0C,EAAE;IAE5C,MAAM,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;IAC/B,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,EAAE,MAAM,IAAI,EAAE,CAAC;IACjD,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QAC7C,OAAO,eAAe,CACpB,8CAA8C,EAC9C,GAAG,EACH,iCAAiC,CAClC,CAAC;IACJ,CAAC;IACD,IAAI,aAAa,GAAG,IAAI,CAAC;IACzB,IAAI,kBAAuB,CAAC;IAC5B,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACtC,kBAAkB,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5E,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACxB,OAAO,eAAe,CAAC,UAAU,IAAI,CAAC,KAAK,aAAa,EAAE,GAAG,EAAE,iBAAiB,CAAC,CAAC;QACpF,CAAC;IACH,CAAC;IACD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC;YACnC,OAAO,eAAe,CACpB,+DAA+D,EAC/D,GAAG,EACH,0BAA0B,CAC3B,CAAC;QACJ,CAAC;QACD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACtE,IACE,CAAC,QAAQ,CAAC,kBAAkB;mBACzB,CAAC,QAAQ,CAAC,iBAAiB;mBAC3B,CAAC,QAAQ,CAAC,eAAe,EAC5B,CAAC;gBACD,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;YAC1E,CAAC;YACD,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,QAAQ,EAAE,CAAC;QAClC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,SAAS,EAAE,CAAC;gBAC/B,OAAO,eAAe,CACpB,KAAK,CAAC,OAAO,EACb,GAAG,EACH,0BAA0B,CAC3B,CAAC;YACJ,CAAC;YACD,OAAO,eAAe,CACpB,4CAA4C,EAC5C,GAAG,EACH,6BAA6B,EAC7B,cAAc,CACf,CAAC;QACJ,CAAC;IACH,CAAC;IACD,IAAI,CAAC;QACH,aAAa,GAAG,MAAM,oBAAoB,CACxC,IAAI,EACJ,IAAI,EACJ,OAAO,EACP,kBAAkB,EAAE,IAAI,CACzB,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,cAAc,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IACD,IAAI,GAAG,aAAa,CAAC;IACrB,IAAI,gBAAwB,CAAC;IAC7B,IAAI,CAAoB,CAAC;IACzB,IAAI,YAA6C,CAAC;IAClD,IAAI,cAA0C,CAAC;IAC/C,IAAI,eAAoC,CAAC;IACzC,IAAI,cAAqB,CAAC;IAC1B,IAAI,qBAA6C,CAAC;IAClD,IAAI,cAA+D,CAAC;IACpE,IAAI,eAA6C,CAAC;IAClD,IAAI,qBAAgD,CAAC;IACrD,IAAI,YAA6C,CAAC;IAClD,IAAI,eAAwD,CAAC;IAC7D,IAAI,kBAAoF,CAAC;IACzF,IAAI,kBAAqD,CAAC;IAC1D,IAAI,mBAAwB,CAAC;IAC7B,IAAI,WAAoC,CAAC;IACzC,IAAI,cAAoD,CAAC;IACzD,IAAI,cAAkD,CAAC;IACvD,IAAI,wBAAuD,CAAC;IAC5D,IAAI,eAAe,GAAa,EAAE,CAAC;IACnC,IAAI,kBAAkB,GAAG,KAAK,CAAC;IAC/B,IAAI,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,YAAY,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;IACpE,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;IAE5C,MAAM,UAAU,GAAG,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACzD,MAAM,mBAAmB,GAAG,gCAAgC,CAC1D,kBAAkB,EAAE,IAAI,CACzB,CAAC;IACF,MAAM,uBAAuB,GAAG,kCAAkC,CAAC;QACjE,OAAO,EAAE,UAAU,CAAC,OAAO;QAC3B,QAAQ,EAAE,mBAAmB;QAC7B,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,YAAY;KACjC,CAAC,CAAC;IACH,MAAM,sBAAsB,GAAG,8BAA8B,CAAC,uBAAuB,CAAC,CAAC;IACvF,IAAI,CAAC;QACH,qCAAqC,CACnC,IAAI,CAAC,KAAK,EACV,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CACpC,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,sBAAsB,EAAE,CAAC;YAC5C,OAAO,eAAe,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACzD,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;IACD,MAAM,sBAAsB,GAAG,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpE,IAAI,eAAe,GAAG;QACpB,GAAG,sBAAsB;QACzB,GAAG,sBAAsB;KAC1B,CAAC;IACF,IAAI,mBAAmB,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;IAEhE,MAAM,YAAY,GAAG,gCAAgC,CACnD,IAAI,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,YAAY,CACzC,CAAC;IACF,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IAC/D,IAAI,EACF,UAAU,EACV,gBAAgB,EAChB,qBAAqB,GACtB,GAAG,SAAS,CAAC;IACd,IAAI,iBAAiB,GAAG,YAAY,KAAK,SAAS,IAAI,qBAAqB,CAAC,MAAM,GAAG,CAAC;QACpF,CAAC,CAAC,CAAC,kCAAkC,CAAC,qBAAqB,CAAC,CAAC;QAC7D,CAAC,CAAC,gBAAgB,CAAC;IAErB,IAAI,SAAS,EAAE,CAAC;QACd,IAAI,WAAW,GAAG,kBAAkB,CAAC;QAErC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,oBAAoB,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC/D,IAAI,CAAC,SAAS;oBAAE,MAAM,IAAI,KAAK,CAAC,SAAS,IAAI,CAAC,IAAI,oBAAoB,CAAC,CAAC;gBACxE,WAAW,GAAG,SAAS,CAAC,KAAK,CAAC;gBAC9B,wBAAwB,GAAG,SAAS,CAAC,YAAY,CAAC;gBAClD,OAAO,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;gBAC9C,MAAM,UAAU,GAAG,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBACzD,cAAc,GAAG,4BAA4B,CAAC;oBAC5C,OAAO,EAAE,UAAU,CAAC,OAAO;oBAC3B,MAAM,EAAE,UAAU,CAAC,MAAM;oBACzB,IAAI,EAAE,SAAS,CAAC,IAAI;iBACrB,CAAC,CAAC;gBACH,IAAI,CAAC,IAAI,CACP,yBAAyB,EACzB,iCAAiC,CAAC,cAAc,CAAC,CAClD,CAAC;gBACF,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC;oBAC5D,CAAC,CAAC,WAAW,CAAC,aAAa;oBAC3B,CAAC,CAAC,EAAE,CAAC;gBACP,IAAI,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC3C,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;wBACzB,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;oBAC7D,CAAC;oBACD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;oBAC9D,IAAI,CAAC,WAAW,EAAE,CAAC;wBACjB,MAAM,IAAI,KAAK,CACb,0BAA0B,SAAS,CAAC,IAAI,iBAAiB,CAC1D,CAAC;oBACJ,CAAC;oBACD,kBAAkB,GAAG,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC;gBACpD,CAAC;YACH,CAAC;YAAC,OAAO,OAAO,EAAE,CAAC;gBACjB,MAAM,GAAG,GAAG,OAAO,YAAY,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACzE,OAAO,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,gBAAgB,CAAC,CAAC;YACrD,CAAC;QACH,CAAC;aAAM,IAAI,WAAW,CAAC,eAAe,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC;YACxD,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,8BAA8B,CACjD,IAAI,EACJ,WAAW,EACX,IAAI,EACJ,OAAO,CACR,CAAC;gBACF,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC;gBAC9B,IAAI,CAAC,IAAI,CACP,yBAAyB,EACzB,iCAAiC,CAAC,cAAc,CAAC,CAClD,CAAC;gBACF,IAAI,cAAc,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBACnC,MAAM,SAAS,GAAG,oBAAoB,CACpC,WAAW,EACX,cAAc,CAAC,IAAI,CACpB,CAAC;oBACF,IAAI,CAAC,SAAS,EAAE,CAAC;wBACf,MAAM,IAAI,KAAK,CACb,0BAA0B,cAAc,CAAC,IAAI,oBAAoB,CAClE,CAAC;oBACJ,CAAC;oBACD,MAAM,WAAW,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;oBAC5D,IAAI,CAAC,WAAW,EAAE,CAAC;wBACjB,MAAM,IAAI,KAAK,CACb,0BAA0B,SAAS,CAAC,IAAI,kBAAkB,CAC3D,CAAC;oBACJ,CAAC;oBACD,WAAW,GAAG,SAAS,CAAC,KAAK,CAAC;oBAC9B,wBAAwB,GAAG,SAAS,CAAC,YAAY,CAAC;oBAClD,kBAAkB,GAAG,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC;oBAClD,OAAO,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;gBAChD,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,eAAe,CACpB,kCAAkC,EAClC,GAAG,EACH,kCAAkC,EAClC,cAAc,CACf,CAAC;YACJ,CAAC;QACH,CAAC;QACD,mBAAmB,GAAG,WAAW,CAAC;QAClC,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC;QAC9C,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBACrC,OAAO,eAAe,CACpB,sDAAsD,EACtD,GAAG,EACH,oBAAoB,CACrB,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;gBAChD,OAAO,eAAe,CACpB,2EAA2E,EAC3E,GAAG,EACH,8BAA8B,CAC/B,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,YAAY,EAAE,mBAAmB,EAAE,CAAC;gBACvC,OAAO,eAAe,CACpB,+DAA+D,EAC/D,GAAG,EACH,kCAAkC,CACnC,CAAC;YACJ,CAAC;YACD,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC;YACrC,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,mBAAmB,CAAC;oBACtD,SAAS,EAAE,OAAO,CAAC,SAAS;oBAC5B,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI;oBACxC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACnE,UAAU,EAAE,YAAY,CAAC,YAAY;oBACrC,MAAM,EAAE,UAAU,CAAC,OAAO;oBAC1B,sBAAsB,EAAE,YAAY,CAAC,wBAAwB;oBAC7D,cAAc,EAAE,OAAO,CAAC,YAAY,CAAC,cAAc;oBACnD,WAAW,EAAE,OAAO,CAAC,YAAY,CAAC,WAAW;oBAC7C,KAAK,EAAE,YAAY;iBACpB,CAAC,CAAC;gBACH,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC;gBAC9B,MAAM,iBAAiB,GAAG,mCAAmC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBACjF,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,iBAAiB,EAA2B,CAAC;gBACzE,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;gBAC/D,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC;gBAClC,gBAAgB,GAAG,SAAS,CAAC,gBAAgB,CAAC;gBAC9C,qBAAqB,GAAG,SAAS,CAAC,qBAAqB,CAAC;gBACxD,iBAAiB,GAAG,YAAY,KAAK,SAAS,IAAI,qBAAqB,CAAC,MAAM,GAAG,CAAC;oBAChF,CAAC,CAAC,CAAC,kCAAkC,CAAC,qBAAqB,CAAC,CAAC;oBAC7D,CAAC,CAAC,gBAAgB,CAAC;gBACrB,OAAO,CAAC,SAAS,EAAE,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC;gBACpD,OAAO,CAAC,SAAS,EAAE,CAAC,mBAAmB,EAAE,MAAM,CAAC,QAAQ,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC;YAChF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,KAAK,YAAY,wBAAwB,EAAE,CAAC;oBAC9C,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,KAAK,mBAAmB;wBAC/C,CAAC,CAAC,GAAG;wBACL,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,6BAA6B;4BAC5C,CAAC,CAAC,GAAG;4BACL,CAAC,CAAC,GAAG,CAAC;oBACV,OAAO,eAAe,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC5D,CAAC;gBACD,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;QACD,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAC;YAC5C,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAC;YAC5C,IAAI,iBAAiB,GAAG,KAAK,CAAC;YAC9B,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACpC,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;oBACjC,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,UAAU,IAAI,EAAE;wBAAE,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBAC5E,SAAS;gBACX,CAAC;gBACD,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM;oBAAE,SAAS;gBACtC,IACE,CAAC,OAAO,CAAC,YAAY;uBAClB,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC;uBAC5C,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,EAC9C,CAAC;oBACD,iBAAiB,GAAG,IAAI,CAAC;oBACzB,MAAM;gBACR,CAAC;gBACD,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAC9C,CAAC;YACD,IAAI,iBAAiB,EAAE,CAAC;gBACtB,OAAO,eAAe,CACpB,yHAAyH,EACzH,GAAG,EACH,mCAAmC,CACpC,CAAC;YACJ,CAAC;QACH,CAAC;QACD,IACE,YAAY;eACT,CAAC,kBAAkB;eACnB,+BAA+B,CAAC,UAAU,CAAC,CAAC,MAAM,KAAK,CAAC,EAC3D,CAAC;YACD,OAAO,eAAe,CACpB,sEAAsE,EACtE,GAAG,EACH,0CAA0C,CAC3C,CAAC;QACJ,CAAC;QACD,IACE,kBAAkB;eACf,uBAAuB,CAAC,kBAAkB,CAAC,WAAW,CAAC;eACvD,+BAA+B,CAAC,UAAU,CAAC,CAAC,MAAM,KAAK,CAAC,EAC3D,CAAC;YACD,MAAM,cAAc,GAAG,CAAC,YAAY;mBAC/B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;YAC9D,IAAI,cAAc,IAAI,YAAY,EAAE,CAAC;gBACnC,OAAO,eAAe,CACpB,cAAc;oBACZ,CAAC,CAAC,gFAAgF;oBAClF,CAAC,CAAC,sEAAsE,EAC1E,GAAG,EACH,cAAc;oBACZ,CAAC,CAAC,mCAAmC;oBACrC,CAAC,CAAC,8BAA8B,CACnC,CAAC;YACJ,CAAC;QACH,CAAC;QACD,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,MAAM,cAAc,GAAG,IAAI,GAAG,CAC5B,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC;gBAC/B,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAc,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC;gBAC3F,CAAC,CAAC,EAAE,CACP,CAAC;YACF,MAAM,WAAW,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;YAChF,IAAI,WAAW,EAAE,CAAC;gBAChB,OAAO,eAAe,CACpB,UAAU,WAAW,+BAA+B,WAAW,CAAC,IAAI,GAAG,EACvE,GAAG,EACH,oBAAoB,CACrB,CAAC;YACJ,CAAC;YACD,eAAe,GAAG,CAAC,GAAG,eAAe,CAAC,CAAC;QACzC,CAAC;QACD,eAAe,GAAG,cAAc,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QAEzD,IAAI,CAAC;YACH,WAAW,GAAG,MAAM,4BAA4B,CAC9C,IAAI,EACJ,IAAI,EACJ,OAAO,CAAC,OAAO,EACf,mBAAmB,EACnB,iBAAiB,CAAC,cAAc,CAAC,CAClC,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,eAAe,CACpB,yBAAyB,EACzB,GAAG,EACH,yBAAyB,EACzB,cAAc,CACf,CAAC;QACJ,CAAC;QAED,MAAM,eAAe,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;aACvC,OAAO,EAAE;aACT,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;QAC9C,MAAM,cAAc,GAAG,eAAe;YACpC,CAAC,CAAC,WAAW,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE;YAC7C,CAAC,CAAC,EAAE,CAAC;QACP,IAAI,cAAc,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YAC1C,IAAI,CAAC;gBACH,cAAc,GAAG,MAAM,qBAAqB,CAAC,IAAI,CAAC,cAAc,EAAE;oBAChE,SAAS,EAAE,mBAAmB,CAAC,IAAI;oBACnC,KAAK,EAAE,cAAc;oBACrB,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,IAAI,OAAO;oBAC5C,MAAM,EAAE,OAAO,CAAC,OAAO,EAAE,MAAM,IAAI,SAAS;oBAC5C,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACnD,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC9D,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS;wBAC5B,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE;wBAC1C,CAAC,CAAC,EAAE,CAAC;oBACP,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS;wBAC5B,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE;wBAC1C,CAAC,CAAC,EAAE,CAAC;oBACP,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACnE,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACnE,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACtD,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IACE,CAAC,KAAK,YAAY,YAAY,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC;uBAC3D,CAAC,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC,EAC1D,CAAC;oBACD,MAAM,KAAK,CAAC;gBACd,CAAC;gBACD,OAAO,eAAe,CACpB,kCAAkC,EAClC,GAAG,EACH,wBAAwB,EACxB,cAAc,CACf,CAAC;YACJ,CAAC;QACH,CAAC;QACD,IAAI,CAAC;YACH,cAAc,GAAG,MAAM,mBAAmB,CACxC,IAAI,EACJ,cAAc,EACd,IAAI,EACJ,OAAO,EACP,mBAAmB,CAAC,IAAI,CACzB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,cAAc,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;QAED,IAAI,kBAAkB,EAAE,CAAC;YACvB,gBAAgB,GAAG,EAAE,CAAC;YACtB,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,SAAgB,EAAE,CAAC;YAC9F,cAAc,GAAG,EAAE,CAAC;YACpB,qBAAqB,GAAG,KAAK,IAAI,EAAE,CAAC,oDAAoD,CAAC;QAC3F,CAAC;aAAM,CAAC;YACN,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC5B,gBAAgB,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE;oBAC5D,IAAI,EAAE,MAAM;oBACZ,gBAAgB,EAAE,iBAAiB;oBACnC,kBAAkB,EAAE,CAAC,yBAAyB,CAAC,cAAc,CAAC;oBAC9D,mBAAmB,EAAE,CAAC,0BAA0B,CAAC,cAAc,CAAC;oBAChE,GAAG,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC3D,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,gBAAgB,CACnD,WAAW,EACX,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,SAAS,CAC7D,CAAC;gBACF,MAAM,sBAAsB,GAAG;oBAC7B,6DAA6D;oBAC7D,iFAAiF;oBACjF,8DAA8D;oBAC9D,kEAAkE;iBACnE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAEb,MAAM,UAAU,GAAG,GAAG,sBAAsB,OAAO,iBAAiB,EAAE,CAAC;gBACvE,gBAAgB,GAAG,iBAAiB,CAAC,MAAM,GAAG,CAAC;oBAC7C,CAAC,CAAC,GAAG,UAAU,4CAA4C,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;oBAC3F,CAAC,CAAC,UAAU,CAAC;gBAEf,IAAI,CAAC,yBAAyB,CAAC,cAAc,CAAC,EAAE,CAAC;oBAC/C,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;oBAC1C,MAAM,WAAW,GAAG,MAAM,WAAW,EAAE,GAAG,CAAC,gBAAgB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;oBAC/E,IAAI,WAAW,EAAE,CAAC;wBAChB,gBAAgB,IAAI,YAAY,KAAK,SAAS;4BAC5C,CAAC,CAAC,OAAO,iCAAiC,CAAC,iCAAiC,CAAC;gCACzE,IAAI,EAAE,cAAc;gCACpB,QAAQ,EAAE,WAAW,CAAC,IAAI;gCAC1B,KAAK,EAAE,WAAW;gCAClB,OAAO,EAAE,WAAW;6BACrB,CAAC,CAAC,EAAE;4BACP,CAAC,CAAC,oCAAoC,WAAW,EAAE,CAAC;oBACxD,CAAC;gBACH,CAAC;YACH,CAAC;YACD,MAAM,oBAAoB,GAAG,0BAA0B,CAAC,cAAc,CAAC,CAAC;YACxE,IAAI,oBAAoB,EAAE,CAAC;gBACzB,gBAAgB,IAAI,OAAO,oBAAoB,EAAE,CAAC;YACpD,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,mBAAmB,CACvC,IAAI,EACJ;oBACE,YAAY,EAAE,gBAAgB;oBAC9B,QAAQ,EAAE,UAAU;oBACpB,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC9C,EACD,IAAI,EACJ,OAAO,EACP,mBAAmB,CAAC,IAAI,CACzB,CAAC;gBACF,gBAAgB,GAAG,OAAO,CAAC,YAAY,CAAC;gBACxC,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC;gBAC9B,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;YAC1C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,cAAc,CAAC,KAAK,CAAC,CAAC;YAC/B,CAAC;YAED,MAAM,SAAS,GAAG,WAAW,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,SAAS,CAAC;YACjF,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,EAAE,QAAQ,CAAC;YAC5C,IAAI,QAAQ,CAAC;YACb,IAAI,CAAC;gBACH,QAAQ,GAAG,MAAM,IAAI,CAAC,iBAAiB,CACrC,0BAA0B,CAAC,WAAW,EAAE,QAAQ,CAAC,EACjD,SAAS,CACV,CAAC;YACJ,CAAC;YAAC,OAAO,QAAQ,EAAE,CAAC;gBAClB,MAAM,GAAG,GAAG,QAAQ,YAAY,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAC5E,OAAO,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACnC,CAAC;YACD,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;YACnB,YAAY,GAAG,QAAQ,CAAC,eAAe,CAAC;YACxC,cAAc,GAAG,sBAAsB,CACrC,WAAW,EACX,8BAA8B,CAAC,CAAC,CAAC,EACjC,QAAQ,CACT,CAAC;YAEF,cAAc,GAAG,EAAE,CAAC;YACpB,qBAAqB,GAAG,KAAK,IAAI,EAAE,CAAC,2CAA2C,CAAC;YAChF,kBAAkB,GAAG,IAAI,CAAC;QAC5B,CAAC;IACH,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,IAAI,CAAC,0BAA0B,EAAE,CAAC;YACrC,OAAO,eAAe,CACpB,4FAA4F,EAC5F,GAAG,EACH,0BAA0B,CAC3B,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,WAAW,GAAG,MAAM,4BAA4B,CAC9C,IAAI,EACJ,IAAI,EACJ,OAAO,CAAC,OAAO,EACf,SAAS,EACT,gBAAgB,EAAE,CACnB,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,eAAe,CACpB,yBAAyB,EACzB,GAAG,EACH,yBAAyB,EACzB,cAAc,CACf,CAAC;QACJ,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,0BAA0B,EAAE,CAAC;QACpD,gBAAgB,GAAG,iBAAiB,CAAC,MAAM,GAAG,CAAC;YAC7C,CAAC,CAAC,GAAG,GAAG,CAAC,YAAY,4CAA4C,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;YACjG,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC;QACrB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,mBAAmB,CACvC,IAAI,EACJ,EAAE,YAAY,EAAE,gBAAgB,EAAE,QAAQ,EAAE,UAAU,EAAE,EACxD,IAAI,EACJ,OAAO,CACR,CAAC;YACF,gBAAgB,GAAG,OAAO,CAAC,YAAY,CAAC;YACxC,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC;QAChC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,cAAc,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;QACD,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC;QACd,YAAY,GAAG,GAAG,CAAC,eAAe,CAAC;QACnC,cAAc,GAAG,8BAA8B,CAAC,CAAC,CAAC,CAAC;QACnD,cAAc,GAAG,GAAG,CAAC,KAAK,CAAC;QAC3B,qBAAqB,GAAG,GAAG,CAAC,QAAQ,CAAC;QACrC,eAAe,GAAG,GAAG,CAAC,aAAa,CAAC;IACtC,CAAC;IAED,IAAI,kBAAkB,IAAI,0BAA0B,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;QAC3E,OAAO,eAAe,CACpB,8DAA8D,EAC9D,GAAG,EACH,6BAA6B,CAC9B,CAAC;IACJ,CAAC;IAED,IAAI,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC;IAE1C,IAAI,YAAY,EAAE,CAAC;QACjB,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;YAC9E,MAAM,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC/F,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAM,CAAC,CAAC,CAAC,IAAI,CAAC;YAElD,SAAS,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC;gBACpC,KAAK,EAAE,YAAY;gBACnB,KAAK,EAAE,UAAU,IAAI,SAAS;gBAC9B,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI;gBACxC,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACpE,CAAC,CAAC;QACL,CAAC;QAED,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;QAC5F,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,IAAI,WAAW,IAAI,SAAS,EAAE,CAAC;YAC1D,MAAM,YAAY,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;QACxE,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,IAAI,SAAS,IAAI,YAAY,CAAC,UAAU,EAAE,CAAC;YACtE,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YACzD,IAAI,OAAO;gBAAE,OAAO,CAAC,SAAS,EAAE,CAAC,mBAAmB,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAClG,CAAC;IACH,CAAC;IAED,IAAI,kBAAkB,EAAE,CAAC;QACvB,MAAM,cAAc,GAAG,8BAA8B,CAAC;YACpD,IAAI;YACJ,YAAY;YACZ,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,SAAS;SACV,CAAC,CAAC;QACH,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAChD,mBAAmB,EACnB,SAAS,EACT,cAAc,CACf,CAAC;QACF,cAAc,GAAG,aAAa,CAAC,KAAK,CAAC;QACrC,qBAAqB,GAAG,aAAa,CAAC,QAAQ,CAAC;QAC/C,cAAc,GAAG,aAAa,CAAC,UAAU,CAAC;QAC1C,kBAAkB,GAAG,aAAa,CAAC,OAAO,CAAC;QAC3C,YAAY,GAAG,aAAa,CAAC,YAAY,CAAC;IAC5C,CAAC;IAED,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACxB,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAChE,MAAM,UAAU,GAA4B,IAAI,CAAC,IAAI;eAC9C,iBAAiB,CAAC,MAAM,KAAK,WAAW;YAC7C,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,iBAAiB,CAAC,OAAO,KAAK,SAAS;mBAClC,iBAAiB,CAAC,MAAM,KAAK,SAAS;gBAC3C,CAAC,CAAC,UAAU;gBACZ,CAAC,CAAC,MAAM,CAAC;QACb,MAAM,UAAU,GAAG,0BAA0B,CAAC;YAC5C,KAAK,EAAE,mBAAmB;YAC1B,IAAI,EAAE,UAAU;YAChB,iBAAiB,EAAE,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,iBAAiB;YACjE,mBAAmB,EAAE,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,YAAY;YACxD,qBAAqB,EAAE,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,qBAAqB;YACzE,gBAAgB,EAAE,wBAAwB;YAC1C,iBAAiB,EAAE,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,iBAAiB;SAClE,CAAC,CAAC;QACH,MAAM,kBAAkB,GAAG;YACzB,GAAG,cAAc;iBACd,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;iBACzB,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC;YAC7D,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC;YAClC,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC;SAChC,CAAC;QACF,IAAI,CAAC;YACH,qCAAqC,CAAC,IAAI,CAAC,KAAK,EAAE;gBAChD,GAAG,cAAc;qBACd,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;qBACzB,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC;gBAC7D,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC;aACnC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,sBAAsB,EAAE,CAAC;gBAC5C,MAAM,wBAAwB,CAAC,kBAAkB,CAAC,CAAC;gBACnD,OAAO,eAAe,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACzD,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;QACD,cAAc,GAAG,6BAA6B,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;QAC3E,YAAY,GAAG,wBAAwB,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QAClE,eAAe,GAAG,wBAAwB,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;QACxE,mBAAmB,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;QAC5D,qBAAqB,GAAG,+BAA+B,CACrD,qBAAqB,EACrB,UAAU,CACX,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,mBAAmB,CAAC;YACnD,MAAM,EAAE,UAAU;YAClB,SAAS,EAAE,kBAAkB;YAC7B,IAAI,EAAE,UAAU;SACjB,CAAC,CAAC,CAAC;QAEJ,MAAM,UAAU,GAAG,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ;YACrD,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI;YAChC,CAAC,CAAC,mBAAmB,CAAC,eAAe,CAAC,CAAC;QACzC,IAAI,UAAU,IAAI,CAAC;YACjB,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;YAC3C,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;YAC5B,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC;SAChC,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACvB,MAAM,wBAAwB,CAAC,kBAAkB,CAAC,CAAC;YACnD,OAAO,eAAe,CACpB,SAAS,UAAU,oDAAoD,EACvE,GAAG,EACH,oBAAoB,CACrB,CAAC;QACJ,CAAC;QAED,qBAAqB,GAAG,mCAAmC,CAAC;YAC1D,QAAQ,EAAE,qBAAqB;YAC/B,KAAK,EAAE,cAAc;YACrB,UAAU,EAAE,IAAI,CAAC,iBAAiB;YAClC,OAAO,EAAE;gBACP,MAAM,EAAE,WAAW,EAAE,EAAE;gBACvB,OAAO,EAAE,WAAW,EAAE,OAAO;gBAC7B,MAAM,EAAE,WAAW,EAAE,MAAM;gBAC3B,KAAK,EAAE,mBAAmB,EAAE,IAAI;gBAChC,SAAS,EAAE,SAAS,IAAI,SAAS;aAClC;SACF,CAAC,CAAC;QAEH,MAAM,mBAAmB,GAAG,0BAA0B,CACpD,cAAc,EACd,cAAc,CACf,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE;YAChC,GAAG,mBAAmB;YACtB,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,mBAAmB,EAAE,IAAI;YAChC,SAAS,EAAE,YAAY;YACvB,KAAK,EAAE,YAAY;YACnB,SAAS,EAAE,SAAS,IAAI,SAAS;SAClC,CAAC,CAAC;QAEH,IAAI,mBAAmB,CAAC,aAAa,KAAK,aAAa,EAAE,CAAC;YACxD,MAAM,iBAAiB,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,eAAe,IAAI,EAAE,CAAC,CAAC,CAAC;YACvE,MAAM,UAAU,GAAG,mBAAmB,CAAC,eAAe,CAAC,CAAC;YACxD,IAAI,UAAU,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,UAAU,CAAC,EAAE,CAAC;gBAC3E,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACrC,CAAC;YACD,MAAM,IAAI,GAAG,6BAA6B,CAAC;gBACzC,KAAK,EAAE,cAAc;gBACrB,QAAQ,EAAE,qBAAqB;gBAC/B,eAAe,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,iBAAiB,CAAC,CAAC;gBAChD,cAAc,EAAE,cAAc,EAAE,cAAc;gBAC9C,YAAY,EAAE,cAAc,EAAE,YAAY;gBAC1C,gBAAgB,EAAE,cAAc,EAAE,gBAAgB;aACnD,CAAC,CAAC;YACH,IAAI,CAAC;gBACH,qCAAqC,CACnC,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,KAAK;qBACP,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;qBACzB,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAC9D,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,KAAK,YAAY,sBAAsB,EAAE,CAAC;oBAC5C,MAAM,wBAAwB,CAAC,kBAAkB,CAAC,CAAC;oBACnD,OAAO,eAAe,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBACzD,CAAC;gBACD,MAAM,KAAK,CAAC;YACd,CAAC;YACD,MAAM,YAAY,GAAG;gBACnB,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC;gBAClC,GAAG,mBAAmB;aACvB,CAAC;YACF,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC;YAC5B,qBAAqB,GAAG,IAAI,CAAC,QAAQ,CAAC;YACtC,gBAAgB,GAAG,GAAG,gBAAgB,OAAO,4BAA4B,EAAE,CAAC;YAC5E,eAAe,GAAG,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC;oBAClC,GAAG,IAAI,CAAC,cAAc,EAAE;oBACxB,GAAG,YAAY;iBAChB,CAAC,CAAC,CAAC;YACJ,qBAAqB,GAAG,IAAI,CAAC,WAAW,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,IAAI,kBAAkB,EAAE,CAAC;QACvB,OAAO;YACL,IAAI,EAAE,cAAc;YACpB,IAAI;YACJ,IAAI;YACJ,YAAY;YACZ,WAAW,EAAE,kBAAkB,CAAC,WAAW;YAC3C,WAAW,EAAE,kBAAkB,CAAC,WAAW;YAC3C,UAAU;YACV,gBAAgB,EAAE,iBAAiB;YACnC,YAAY;YACZ,YAAY;YACZ,SAAS;YACT,WAAW;YACX,cAAc;YACd,iBAAiB,EAAE,OAAO,CAAC,OAAO;YAClC,cAAc;YACd,eAAe;YACf,mBAAmB,EAAE,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,YAAY;YACxD,qBAAqB,EAAE,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,qBAAqB;YACzE,iBAAiB,EAAE,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,iBAAiB;SAClE,CAAC;IACJ,CAAC;IAED,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACnC,eAAe,GAAG,qBAAqB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,SAAS,GAA4B;QACzC,IAAI;QACJ,IAAI;QACJ,YAAY;QACZ,WAAW,EAAE,mBAAmB;QAChC,SAAS;QACT,gBAAgB;QAChB,CAAC;QACD,YAAY;QACZ,cAAc;QACd,eAAe;QACf,WAAW,EAAE,4BAA4B,CAAC,IAAI,CAAC,eAAe,CAAC;QAC/D,cAAc;QACd,qBAAqB;QACrB,mBAAmB;QACnB,uBAAuB;QACvB,eAAe;QACf,mBAAmB;QACnB,eAAe;QACf,qBAAqB;QACrB,YAAY;QACZ,eAAe;QACf,UAAU;QACV,YAAY;QACZ,SAAS;QACT,kBAAkB;QAClB,WAAW;QACX,YAAY;QACZ,cAAc;QACd,cAAc;KACf,CAAC;IAEF,MAAM,MAAM,GACV,IAAI,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,aAAa,KAAK,KAAK;QACnD,CAAC,CAAC,IAAI,CAAC,aAAa;QACpB,SAAS;QACT,CAAC,kBAAkB,CAAC;IAEtB,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;AAC7C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,IAAyB,EACzB,KAA+B;IAE/B,IAAI,cAAkC,CAAC;IACvC,MAAM,QAAQ,GAAG,MAAM,8BAA8B,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE;QACtE,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,SAAS,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YACzB,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,mBAAmB,EAAE,CAAC;gBAC/C,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBAC1C,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC;oBAAE,cAAc,GAAG,MAAM,CAAC;YACvE,CAAC;YACD,KAAK,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACjC,CAAC;QACD,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,YAAY,EAAE,KAAK,CAAC,YAAY;KACjC,CAAC,CAAC;IAEH,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC;IACD,IAAI,QAAQ,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;QACrC,IAAI,kBAAkB,GAAkB,IAAI,CAAC;QAC7C,IAAI,SAAS,GAAG,EAAE,CAAC;QACnB,IAAI,cAAc,GAAG,EAAE,CAAC;QACxB,IAAI,SAAS,GAAU,EAAE,CAAC;QAC1B,IAAI,KAAK,GAAG,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;QAChE,IAAI,KAAK,GAAG,OAAO,CAAC;QACpB,IAAI,aAAa,CAAC;QAClB,IAAI,gBAAqD,CAAC;QAC1D,IAAI,CAAC;YACH,IAAI,QAAQ,CAAC,YAAY,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;gBAChD,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC,UAAU,CACxD,QAAQ,CAAC,SAAS,EAClB,WAAW,EACX,EAAE,CACH,CAAC;gBACF,kBAAkB,GAAG,WAAW,CAAC,EAAE,CAAC;YACtC,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,wBAAwB,CAAC;gBAC5C,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,WAAW,EAAE,QAAQ,CAAC,WAAW;gBACjC,WAAW,EAAE,QAAQ,CAAC,WAAW;gBACjC,UAAU,EAAE,QAAQ,CAAC,UAAU;gBAC/B,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB;gBAC3C,YAAY,EAAE,QAAQ,CAAC,YAAY;gBACnC,cAAc,EAAE,QAAQ,CAAC,cAAc;gBACvC,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB;gBAC7C,SAAS,EAAE,QAAQ,CAAC,SAAS;gBAC7B,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI;gBACxB,eAAe,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ;gBACvC,WAAW,EAAE,QAAQ,CAAC,WAAW;gBACjC,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,cAAc,EAAE,QAAQ,CAAC,cAAc;gBACvC,eAAe,EAAE,QAAQ,CAAC,eAAe;gBACzC,iBAAiB,EAAE,QAAQ,CAAC,IAAI,CAAC,mBAAmB;gBACpD,mBAAmB,EAAE,QAAQ,CAAC,mBAAmB;gBACjD,qBAAqB,EAAE,QAAQ,CAAC,qBAAqB;gBACrD,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB;aAC9C,CAAC,CAAC;YACH,SAAS,GAAG,MAAM,2BAA2B,CAAC;gBAC5C,YAAY,EAAE,QAAQ,CAAC,IAAI,CAAC,eAAe;gBAC3C,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,QAAQ,CAAC,WAAW;gBACjC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK;gBAC1B,KAAK,EAAE,MAAM,CAAC,SAAS;gBACvB,SAAS,EAAE,QAAQ,CAAC,SAAS;gBAC7B,MAAM,EAAE,KAAK,CAAC,MAAM;aACrB,CAAC,CAAC;YACH,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;YAC7B,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC;YAClC,KAAK,GAAG;gBACN,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC;gBAC1C,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,YAAY,IAAI,CAAC;gBAC5C,WAAW,EACT,MAAM,CAAC,KAAK,CAAC,WAAW;uBACrB,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC;aACxE,CAAC;YACF,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;YACrB,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;YACrC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;YAC3C,OAAO;gBACL,YAAY,EAAE,QAAQ,CAAC,YAAY;gBACnC,SAAS,EAAE,QAAQ,CAAC,SAAS;gBAC7B,GAAG,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3D,IAAI,EAAE,SAAS;gBACf,SAAS;gBACT,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxD,KAAK;gBACL,gBAAgB;gBAChB,GAAG,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC;gBAC7E,GAAG,CAAC,MAAM,CAAC,gBAAgB,KAAK,SAAS;oBACvC,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC,EAAE,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,EAAE,CAAC;gBAClD,SAAS,EAAE,WAAW;gBACtB,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE;aAC1D,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,MAAM,uBAAuB,CAC3B,QAAQ,CAAC,YAAY,EACrB,QAAQ,CAAC,SAAS,EAClB,kBAAkB,EAClB,SAAS,EACT,SAAS,EACT,EAAE,SAAS,EAAE,cAAc,EAAE,CAC9B,CAAC;YACF,QAAQ,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBACnC,KAAK;gBACL,KAAK;gBACL,aAAa;gBACb,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK;gBAC1B,SAAS,EAAE,QAAQ,CAAC,SAAS,IAAI,SAAS;gBAC1C,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI;gBACxB,gBAAgB;aACjB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACpE,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,QAAQ,CAAC,SAAS,EAAE;QACzD,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,MAAM,EAAE,KAAK,CAAC,MAAM;KACrB,CAAC,CAAC;IACH,OAAO;QACL,GAAG,MAAM;QACT,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,SAAS;QACvC,YAAY,EAAE,QAAQ,CAAC,SAAS,CAAC,YAAY;QAC7C,GAAG,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5D,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"conversation-turn.js","sourceRoot":"","sources":["../../../src/routes/completions/conversation-turn.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,7 @@ import { type ContextBag, type LoopApprovedGate, type LoopRunRecord, type LoopRe
10
10
  import type { LanguageModelUsage } from "ai";
11
11
  import type { CompletionRouteDeps, CompletionRuntimeInvocation } from "../completions.js";
12
12
  import { type CompletionResolvedModelInfo } from "./agent-step-runner.js";
13
- import { type LoopRuntimeToolCall } from "./tool-mapping.js";
13
+ import { type CanonicalTurnPersistenceContext, type LoopRuntimeToolCall } from "./tool-mapping.js";
14
14
  import type { CompletionSseWriter } from "./chat-handler.js";
15
15
  export interface ProjectLoopRunResult {
16
16
  text: string;
@@ -93,6 +93,8 @@ export interface ProjectLoopCompletionOptions {
93
93
  runtimeInvocation?: CompletionRuntimeInvocation;
94
94
  sessionStore: any;
95
95
  sessionId: string | null;
96
+ turnId?: string;
97
+ canonicalTurn?: CanonicalTurnPersistenceContext;
96
98
  runtimePlan?: RuntimePlan;
97
99
  executionRoute?: ResolvedExecutionRoute;
98
100
  activatedSkills?: readonly string[];
@@ -1 +1 @@
1
- {"version":3,"file":"project-loop-runner.d.ts","sourceRoot":"","sources":["../../../src/routes/completions/project-loop-runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project-loop-runner.d.ts","sourceRoot":"","sources":["../../../src/routes/completions/project-loop-runner.ts"],"names":[],"mappings":"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"}
@@ -13,7 +13,7 @@ import { validateToolInput } from "@polpo-ai/llm";
13
13
  import { agentConfigForModelPrimary, addUsage, runAgentStepCompletion, } from "./agent-step-runner.js";
14
14
  import { completionResponse, guardrailErrorEnvelope, loopRuntimeErrorEnvelope, modelNotFoundEnvelope, sseChunk, } from "./sse.js";
15
15
  import { completionRuntimeErrorEnvelope } from "./runtime-error.js";
16
- import { appendReasoningSummary, emitFileChanged, persistAssistantMessage } from "./tool-mapping.js";
16
+ import { appendReasoningSummary, emitFileChanged, persistAssistantMessage, notifyCanonicalTurnCommitted, } from "./tool-mapping.js";
17
17
  import { createGuardedCompletionToolExecutor } from "./tool-guardrails.js";
18
18
  import { createPolicyGuardedToolExecutor, filterToolDefinitionsByPolicy, resolveExecutionToolPolicy, toolPolicyAuditData, } from "./tool-policy-runtime.js";
19
19
  import { applyCompletionOutputPolicy, streamingOutputPolicyMode, } from "./output-guardrails.js";
@@ -799,11 +799,16 @@ export async function executeStreamingProjectLoopCompletion(stream, options, sig
799
799
  let resolvedModel;
800
800
  let providerMetadata;
801
801
  let toolCalls = [];
802
+ let canonicalTurnSucceeded = false;
802
803
  const outputMode = streamingOutputPolicyMode(deps.runOutputPolicy);
803
804
  try {
804
805
  await stream.writeSSE({ data: sseChunk(completionId, { role: "assistant" }) });
805
806
  if (sessionStore && sessionId) {
806
- const placeholder = await sessionStore.addMessage(sessionId, "assistant", "");
807
+ const placeholder = options.turnId
808
+ ? await sessionStore.addMessage(sessionId, "assistant", "", {
809
+ turnId: options.turnId,
810
+ })
811
+ : await sessionStore.addMessage(sessionId, "assistant", "");
807
812
  assistantMsgId = placeholder.id;
808
813
  }
809
814
  const run = await runProjectLoopCompletion({
@@ -878,6 +883,7 @@ export async function executeStreamingProjectLoopCompletion(stream, options, sig
878
883
  }),
879
884
  });
880
885
  await stream.writeSSE({ data: "[DONE]" });
886
+ canonicalTurnSucceeded = true;
881
887
  }
882
888
  }
883
889
  catch (err) {
@@ -912,9 +918,13 @@ export async function executeStreamingProjectLoopCompletion(stream, options, sig
912
918
  throw err;
913
919
  }
914
920
  finally {
915
- await persistAssistantMessage(sessionStore, sessionId, assistantMsgId, finalText, toolCalls, {
921
+ const committedTurn = await persistAssistantMessage(sessionStore, sessionId, assistantMsgId, finalText, toolCalls, {
916
922
  reasoning: finalReasoning,
923
+ ...(canonicalTurnSucceeded && options.canonicalTurn
924
+ ? { canonicalTurn: options.canonicalTurn }
925
+ : {}),
917
926
  });
927
+ notifyCanonicalTurnCommitted(deps.onCanonicalTurnCommitted, committedTurn);
918
928
  try {
919
929
  deps.onCompletionFinished?.({
920
930
  usage: runUsage,
@@ -940,9 +950,14 @@ async function runNonStreamingProjectLoopCompletion(c, options) {
940
950
  let toolCalls = [];
941
951
  let finalText = "";
942
952
  let finalReasoning = "";
953
+ let canonicalTurnSucceeded = false;
943
954
  try {
944
955
  if (sessionStore && sessionId) {
945
- const placeholder = await sessionStore.addMessage(sessionId, "assistant", "");
956
+ const placeholder = options.turnId
957
+ ? await sessionStore.addMessage(sessionId, "assistant", "", {
958
+ turnId: options.turnId,
959
+ })
960
+ : await sessionStore.addMessage(sessionId, "assistant", "");
946
961
  assistantMsgId = placeholder.id;
947
962
  }
948
963
  const run = await runProjectLoopCompletion({
@@ -983,6 +998,7 @@ async function runNonStreamingProjectLoopCompletion(c, options) {
983
998
  runId: run.loopRunId,
984
999
  sessionId,
985
1000
  });
1001
+ canonicalTurnSucceeded = true;
986
1002
  return c.json(completionResponse(completionId, finalText, runUsage, {
987
1003
  loop_trace: run.trace,
988
1004
  loop_run_id: run.loopRunId,
@@ -1020,9 +1036,13 @@ async function runNonStreamingProjectLoopCompletion(c, options) {
1020
1036
  throw err;
1021
1037
  }
1022
1038
  finally {
1023
- await persistAssistantMessage(sessionStore, sessionId, assistantMsgId, finalText, toolCalls, {
1039
+ const committedTurn = await persistAssistantMessage(sessionStore, sessionId, assistantMsgId, finalText, toolCalls, {
1024
1040
  reasoning: finalReasoning,
1041
+ ...(canonicalTurnSucceeded && options.canonicalTurn
1042
+ ? { canonicalTurn: options.canonicalTurn }
1043
+ : {}),
1025
1044
  });
1045
+ notifyCanonicalTurnCommitted(deps.onCanonicalTurnCommitted, committedTurn);
1026
1046
  try {
1027
1047
  deps.onCompletionFinished?.({
1028
1048
  usage: runUsage,