botmux 2.29.0 → 2.30.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 (50) hide show
  1. package/dist/adapters/cli/claude-code.d.ts.map +1 -1
  2. package/dist/adapters/cli/claude-code.js +19 -1
  3. package/dist/adapters/cli/claude-code.js.map +1 -1
  4. package/dist/cli.js +79 -4
  5. package/dist/cli.js.map +1 -1
  6. package/dist/core/command-handler.d.ts.map +1 -1
  7. package/dist/core/command-handler.js +4 -2
  8. package/dist/core/command-handler.js.map +1 -1
  9. package/dist/core/session-manager.d.ts +11 -1
  10. package/dist/core/session-manager.d.ts.map +1 -1
  11. package/dist/core/session-manager.js +22 -1
  12. package/dist/core/session-manager.js.map +1 -1
  13. package/dist/core/types.d.ts +4 -0
  14. package/dist/core/types.d.ts.map +1 -1
  15. package/dist/core/types.js.map +1 -1
  16. package/dist/core/worker-pool.d.ts.map +1 -1
  17. package/dist/core/worker-pool.js +41 -33
  18. package/dist/core/worker-pool.js.map +1 -1
  19. package/dist/daemon.d.ts.map +1 -1
  20. package/dist/daemon.js +64 -5
  21. package/dist/daemon.js.map +1 -1
  22. package/dist/im/lark/card-builder.d.ts.map +1 -1
  23. package/dist/im/lark/card-builder.js +20 -16
  24. package/dist/im/lark/card-builder.js.map +1 -1
  25. package/dist/im/lark/card-handler.d.ts.map +1 -1
  26. package/dist/im/lark/card-handler.js +127 -22
  27. package/dist/im/lark/card-handler.js.map +1 -1
  28. package/dist/im/lark/client.d.ts +16 -3
  29. package/dist/im/lark/client.d.ts.map +1 -1
  30. package/dist/im/lark/client.js +32 -4
  31. package/dist/im/lark/client.js.map +1 -1
  32. package/dist/im/lark/event-dispatcher.d.ts +14 -0
  33. package/dist/im/lark/event-dispatcher.d.ts.map +1 -1
  34. package/dist/im/lark/event-dispatcher.js +101 -15
  35. package/dist/im/lark/event-dispatcher.js.map +1 -1
  36. package/dist/im/lark/identity-cache.d.ts +64 -0
  37. package/dist/im/lark/identity-cache.d.ts.map +1 -0
  38. package/dist/im/lark/identity-cache.js +264 -0
  39. package/dist/im/lark/identity-cache.js.map +1 -0
  40. package/dist/services/observed-bots-store.d.ts +33 -0
  41. package/dist/services/observed-bots-store.d.ts.map +1 -0
  42. package/dist/services/observed-bots-store.js +98 -0
  43. package/dist/services/observed-bots-store.js.map +1 -0
  44. package/dist/setup/verify-permissions.d.ts +5 -0
  45. package/dist/setup/verify-permissions.d.ts.map +1 -1
  46. package/dist/setup/verify-permissions.js +11 -3
  47. package/dist/setup/verify-permissions.js.map +1 -1
  48. package/dist/utils/user-token.js +1 -1
  49. package/dist/utils/user-token.js.map +1 -1
  50. package/package.json +4 -3
@@ -72,6 +72,9 @@ export function getActiveSessionsRegistry() {
72
72
  function tag(ds) {
73
73
  return ds.session.sessionId.substring(0, 8);
74
74
  }
75
+ function sessionCliId(ds, botCfg) {
76
+ return ds.session.cliId ?? botCfg.cliId;
77
+ }
75
78
  const WORKER_ERROR_MARKER = '[botmux-worker-error]';
76
79
  function logWorkerStderr(t, line) {
77
80
  if (!line)
@@ -485,18 +488,19 @@ export function forkWorker(ds, prompt, resume = false) {
485
488
  };
486
489
  worker.send(initMsg);
487
490
  ds.initConfig = initMsg;
488
- // Use shared handler for IPC messages and exit
489
- setupWorkerHandlers(ds, worker);
490
- ds.worker = worker;
491
- ds.spawnedAt = Date.now();
492
- ds.cliVersion = currentCliVersion;
493
491
  // Stamp cliId on the persisted session so the dashboard can show a CLI badge
494
- // even after the session is closed. Subsequent updateSession spreads carry
495
- // this field forward for free.
492
+ // even after the session is closed. Do this before installing worker handlers:
493
+ // a fast worker can emit `ready` immediately after init, and card rendering
494
+ // must see the session-level CLI identity rather than the bot default.
496
495
  if (ds.session.cliId !== botCfg.cliId) {
497
496
  ds.session.cliId = botCfg.cliId;
498
497
  sessionStore.updateSession(ds.session);
499
498
  }
499
+ // Use shared handler for IPC messages and exit
500
+ setupWorkerHandlers(ds, worker);
501
+ ds.worker = worker;
502
+ ds.spawnedAt = Date.now();
503
+ ds.cliVersion = currentCliVersion;
500
504
  sessionStore.updateSessionPid(ds.session.sessionId, worker.pid ?? null);
501
505
  logger.info(`[${t}] Worker forked (pid: ${worker.pid}, active: ${cb.getActiveCount()})`);
502
506
  // Reset the exit-emit flag for the freshly spawned worker so a subsequent
@@ -520,6 +524,7 @@ function setupWorkerHandlers(ds, worker) {
520
524
  const isAdopt = !!ds.adoptedFrom;
521
525
  const showTakeover = false;
522
526
  worker.on('message', async (msg) => {
527
+ const effectiveCliId = sessionCliId(ds, botCfg);
523
528
  switch (msg.type) {
524
529
  case 'ready': {
525
530
  ds.workerPort = msg.port;
@@ -547,11 +552,11 @@ function setupWorkerHandlers(ds, worker) {
547
552
  : undefined;
548
553
  if (restoredCardId) {
549
554
  try {
550
- const initTitle = ds.currentTurnTitle || ds.session.title || getCliDisplayName(botCfg.cliId);
555
+ const initTitle = ds.currentTurnTitle || ds.session.title || getCliDisplayName(effectiveCliId);
551
556
  // Reuse persisted nonce so existing card buttons (toggle/etc) keep working.
552
557
  if (!ds.streamCardNonce)
553
558
  ds.streamCardNonce = randomBytes(4).toString('hex');
554
- const streamCardJson = buildStreamingCard(ds.session.sessionId, sessionAnchorId(ds), readOnlyUrl, initTitle, ds.lastScreenContent ?? '', 'starting', botCfg.cliId, ds.displayMode ?? 'hidden', ds.streamCardNonce, ds.currentImageKey, isAdopt, showTakeover, loc);
559
+ const streamCardJson = buildStreamingCard(ds.session.sessionId, sessionAnchorId(ds), readOnlyUrl, initTitle, ds.lastScreenContent ?? '', 'starting', effectiveCliId, ds.displayMode ?? 'hidden', ds.streamCardNonce, ds.currentImageKey, isAdopt, showTakeover, loc);
555
560
  await updateMessage(ds.larkAppId, restoredCardId, streamCardJson);
556
561
  persistStreamCardState(ds);
557
562
  // Re-sync worker's display mode (it starts fresh in 'hidden')
@@ -578,8 +583,8 @@ function setupWorkerHandlers(ds, worker) {
578
583
  ds.streamCardId = CARD_POSTING_SENTINEL;
579
584
  try {
580
585
  ds.streamCardNonce = randomBytes(4).toString('hex');
581
- const initTitle = ds.currentTurnTitle || ds.session.title || getCliDisplayName(botCfg.cliId);
582
- const streamCardJson = buildStreamingCard(ds.session.sessionId, sessionAnchorId(ds), readOnlyUrl, initTitle, '', 'starting', botCfg.cliId, ds.displayMode ?? 'hidden', ds.streamCardNonce, ds.currentImageKey, isAdopt, showTakeover, loc);
586
+ const initTitle = ds.currentTurnTitle || ds.session.title || getCliDisplayName(effectiveCliId);
587
+ const streamCardJson = buildStreamingCard(ds.session.sessionId, sessionAnchorId(ds), readOnlyUrl, initTitle, '', 'starting', effectiveCliId, ds.displayMode ?? 'hidden', ds.streamCardNonce, ds.currentImageKey, isAdopt, showTakeover, loc);
583
588
  ds.streamCardId = await cb.sessionReply(sessionAnchorId(ds), streamCardJson, 'interactive', ds.larkAppId);
584
589
  persistStreamCardState(ds);
585
590
  // New card is live — recall any cards frozen by previous turns.
@@ -600,7 +605,7 @@ function setupWorkerHandlers(ds, worker) {
600
605
  persistStreamCardState(ds);
601
606
  // Fallback: send static session card
602
607
  try {
603
- const cardJson = buildSessionCard(ds.session.sessionId, sessionAnchorId(ds), readOnlyUrl, ds.session.title || getCliDisplayName(botCfg.cliId), botCfg.cliId, undefined, !!ds.adoptedFrom, loc);
608
+ const cardJson = buildSessionCard(ds.session.sessionId, sessionAnchorId(ds), readOnlyUrl, ds.session.title || getCliDisplayName(effectiveCliId), effectiveCliId, undefined, !!ds.adoptedFrom, loc);
604
609
  await cb.sessionReply(sessionAnchorId(ds), cardJson, 'interactive', ds.larkAppId);
605
610
  }
606
611
  catch (fallbackErr) {
@@ -616,7 +621,7 @@ function setupWorkerHandlers(ds, worker) {
616
621
  break;
617
622
  }
618
623
  case 'prompt_ready': {
619
- logger.info(`[${t}] ${getCliDisplayName(botCfg.cliId)} is ready for input`);
624
+ logger.info(`[${t}] ${getCliDisplayName(effectiveCliId)} is ready for input`);
620
625
  break;
621
626
  }
622
627
  case 'screen_update': {
@@ -643,7 +648,7 @@ function setupWorkerHandlers(ds, worker) {
643
648
  });
644
649
  }
645
650
  const readUrl = `http://${config.web.externalHost}:${ds.workerPort}`;
646
- const turnTitle = ds.currentTurnTitle || ds.session.title || getCliDisplayName(botCfg.cliId);
651
+ const turnTitle = ds.currentTurnTitle || ds.session.title || getCliDisplayName(effectiveCliId);
647
652
  const mode = ds.displayMode ?? 'hidden';
648
653
  if (ds.streamCardPending || !ds.streamCardId) {
649
654
  // If a POST is already in-flight, drop this update — it will be
@@ -657,7 +662,7 @@ function setupWorkerHandlers(ds, worker) {
657
662
  // New turn → image_key from previous turn no longer valid
658
663
  if (isNewTurn)
659
664
  ds.currentImageKey = undefined;
660
- const cardJson = buildStreamingCard(ds.session.sessionId, sessionAnchorId(ds), readUrl, turnTitle, isNewTurn ? '' : msg.content, msg.status, botCfg.cliId, mode, ds.streamCardNonce, ds.currentImageKey, isAdopt, showTakeover, loc);
665
+ const cardJson = buildStreamingCard(ds.session.sessionId, sessionAnchorId(ds), readUrl, turnTitle, isNewTurn ? '' : msg.content, msg.status, effectiveCliId, mode, ds.streamCardNonce, ds.currentImageKey, isAdopt, showTakeover, loc);
661
666
  // Mark POST in-flight so subsequent screen_updates are dropped,
662
667
  // not POSTed as duplicate cards.
663
668
  ds.streamCardPending = false;
@@ -691,7 +696,7 @@ function setupWorkerHandlers(ds, worker) {
691
696
  const statusChanged = prevStatus !== msg.status;
692
697
  if (!statusChanged)
693
698
  break;
694
- const cardJson = buildStreamingCard(ds.session.sessionId, sessionAnchorId(ds), readUrl, turnTitle, msg.content, msg.status, botCfg.cliId, mode, ds.streamCardNonce, ds.currentImageKey, isAdopt, showTakeover, loc);
699
+ const cardJson = buildStreamingCard(ds.session.sessionId, sessionAnchorId(ds), readUrl, turnTitle, msg.content, msg.status, effectiveCliId, mode, ds.streamCardNonce, ds.currentImageKey, isAdopt, showTakeover, loc);
695
700
  scheduleCardPatch(ds, cardJson);
696
701
  }
697
702
  break;
@@ -709,8 +714,8 @@ function setupWorkerHandlers(ds, worker) {
709
714
  if (!ds.streamCardId || ds.streamCardId === CARD_POSTING_SENTINEL || !ds.workerPort)
710
715
  break;
711
716
  const readUrl = `http://${config.web.externalHost}:${ds.workerPort}`;
712
- const turnTitle = ds.currentTurnTitle || ds.session.title || getCliDisplayName(botCfg.cliId);
713
- const cardJson = buildStreamingCard(ds.session.sessionId, sessionAnchorId(ds), readUrl, turnTitle, ds.lastScreenContent ?? '', msg.status, botCfg.cliId, 'screenshot', ds.streamCardNonce, ds.currentImageKey, isAdopt, showTakeover, loc);
717
+ const turnTitle = ds.currentTurnTitle || ds.session.title || getCliDisplayName(effectiveCliId);
718
+ const cardJson = buildStreamingCard(ds.session.sessionId, sessionAnchorId(ds), readUrl, turnTitle, ds.lastScreenContent ?? '', msg.status, effectiveCliId, 'screenshot', ds.streamCardNonce, ds.currentImageKey, isAdopt, showTakeover, loc);
714
719
  scheduleCardPatch(ds, cardJson);
715
720
  break;
716
721
  }
@@ -758,7 +763,7 @@ function setupWorkerHandlers(ds, worker) {
758
763
  break;
759
764
  }
760
765
  case 'claude_exit': {
761
- logger.info(`[${t}] ${getCliDisplayName(botCfg.cliId)} exited (code: ${msg.code}, signal: ${msg.signal})`);
766
+ logger.info(`[${t}] ${getCliDisplayName(effectiveCliId)} exited (code: ${msg.code}, signal: ${msg.signal})`);
762
767
  ds.hasHistory = true;
763
768
  // Do NOT auto-restart in adopt mode — there's nothing to restart
764
769
  if (ds.adoptedFrom) {
@@ -766,8 +771,8 @@ function setupWorkerHandlers(ds, worker) {
766
771
  // Freeze the streaming card
767
772
  if (ds.streamCardId && ds.workerPort) {
768
773
  const readUrl = `http://${config.web.externalHost}:${ds.workerPort}`;
769
- const turnTitle = ds.currentTurnTitle || ds.session.title || getCliDisplayName(botCfg.cliId);
770
- const frozenCard = buildStreamingCard(ds.session.sessionId, sessionAnchorId(ds), readUrl, turnTitle, ds.lastScreenContent ?? '', 'idle', botCfg.cliId, ds.displayMode ?? 'hidden', ds.streamCardNonce, ds.currentImageKey, isAdopt, showTakeover);
774
+ const turnTitle = ds.currentTurnTitle || ds.session.title || getCliDisplayName(effectiveCliId);
775
+ const frozenCard = buildStreamingCard(ds.session.sessionId, sessionAnchorId(ds), readUrl, turnTitle, ds.lastScreenContent ?? '', 'idle', effectiveCliId, ds.displayMode ?? 'hidden', ds.streamCardNonce, ds.currentImageKey, isAdopt, showTakeover);
771
776
  scheduleCardPatch(ds, frozenCard);
772
777
  }
773
778
  killWorker(ds);
@@ -794,17 +799,17 @@ function setupWorkerHandlers(ds, worker) {
794
799
  rc.lastAt = now;
795
800
  restartCounts.set(key, rc);
796
801
  if (rc.count > 3) {
797
- logger.warn(`[${t}] ${getCliDisplayName(botCfg.cliId)} crashed ${rc.count} times in 1 min, not auto-restarting`);
802
+ logger.warn(`[${t}] ${getCliDisplayName(effectiveCliId)} crashed ${rc.count} times in 1 min, not auto-restarting`);
798
803
  // Freeze the last streaming card so it doesn't stay at "working" forever
799
804
  if (ds.streamCardId && ds.workerPort) {
800
805
  const readUrl = `http://${config.web.externalHost}:${ds.workerPort}`;
801
- const turnTitle = ds.currentTurnTitle || ds.session.title || getCliDisplayName(botCfg.cliId);
802
- const frozenCard = buildStreamingCard(ds.session.sessionId, sessionAnchorId(ds), readUrl, turnTitle, ds.lastScreenContent ?? '', 'idle', botCfg.cliId, ds.displayMode ?? 'hidden', ds.streamCardNonce, ds.currentImageKey, isAdopt, showTakeover, loc);
806
+ const turnTitle = ds.currentTurnTitle || ds.session.title || getCliDisplayName(effectiveCliId);
807
+ const frozenCard = buildStreamingCard(ds.session.sessionId, sessionAnchorId(ds), readUrl, turnTitle, ds.lastScreenContent ?? '', 'idle', effectiveCliId, ds.displayMode ?? 'hidden', ds.streamCardNonce, ds.currentImageKey, isAdopt, showTakeover, loc);
803
808
  scheduleCardPatch(ds, frozenCard);
804
809
  }
805
810
  // Kill the worker process to free resources
806
811
  killWorker(ds);
807
- const cliName = getCliDisplayName(botCfg.cliId);
812
+ const cliName = getCliDisplayName(effectiveCliId);
808
813
  try {
809
814
  await cb.sessionReply(sessionAnchorId(ds), tr('worker.crash_loop_stopped', { cliName, count: rc.count }, loc), 'text', ds.larkAppId);
810
815
  }
@@ -818,7 +823,7 @@ function setupWorkerHandlers(ds, worker) {
818
823
  }
819
824
  // Auto-restart CLI within the same worker
820
825
  if (ds.worker && !ds.worker.killed) {
821
- logger.info(`[${t}] Auto-restarting ${getCliDisplayName(botCfg.cliId)}...`);
826
+ logger.info(`[${t}] Auto-restarting ${getCliDisplayName(effectiveCliId)}...`);
822
827
  ds.worker.send({ type: 'restart' });
823
828
  }
824
829
  break;
@@ -871,7 +876,7 @@ function setupWorkerHandlers(ds, worker) {
871
876
  title: '📜 /adopt 前最后一轮',
872
877
  userText: msg.userText,
873
878
  assistantText: msg.assistantText,
874
- assistantLabel: getCliDisplayName(botCfg.cliId),
879
+ assistantLabel: getCliDisplayName(effectiveCliId),
875
880
  recipientOpenId: ds.session.ownerOpenId,
876
881
  });
877
882
  cb.sessionReply(sessionAnchorId(ds), cardJson, 'interactive', ds.larkAppId).catch((err) => {
@@ -913,6 +918,7 @@ const FINAL_OUTPUT_RETRY_BACKOFF_MS = [0, 5000, 15000]; // immediate, +5s, +15s
913
918
  * via an unbounded retry loop. */
914
919
  function deliverFinalOutput(ds, msg, t, attempt) {
915
920
  const cb = requireCallbacks();
921
+ const effectiveCliId = ds.session.cliId ?? getBot(ds.larkAppId).config.cliId;
916
922
  setTimeout(async () => {
917
923
  // Guard: if the user closed the session (or it was torn down for any
918
924
  // other reason) between attempts, don't post a stale final answer to
@@ -940,7 +946,7 @@ function deliverFinalOutput(ds, msg, t, attempt) {
940
946
  : '🖥️ 终端本地对话(在 adopted pane 中直接输入,已同步至飞书)',
941
947
  userText: msg.kind === 'local-turn' ? msg.userText ?? '' : undefined,
942
948
  assistantText: msg.content,
943
- assistantLabel: getCliDisplayName(getBot(ds.larkAppId).config.cliId),
949
+ assistantLabel: getCliDisplayName(effectiveCliId),
944
950
  recipientOpenId: ds.session.ownerOpenId,
945
951
  })
946
952
  : buildMarkdownCard(msg.content, ds.session.ownerOpenId);
@@ -1077,18 +1083,20 @@ export function forkAdoptWorker(ds, opts) {
1077
1083
  };
1078
1084
  worker.send(initMsg);
1079
1085
  ds.initConfig = initMsg;
1080
- // Use shared handler
1081
- setupWorkerHandlers(ds, worker);
1082
- ds.worker = worker;
1083
- ds.spawnedAt = Date.now();
1084
- ds.cliVersion = '';
1085
1086
  // Stamp cliId on the persisted session so the dashboard can show a CLI badge
1086
1087
  // even after the session is closed. Adopt sessions inherit the adopted CLI's id.
1088
+ // Do this before installing worker handlers: a fast worker can emit `ready`
1089
+ // immediately after init, and card rendering must use the adopted CLI identity.
1087
1090
  const adoptedCliIdTyped = adoptedCliId;
1088
1091
  if (ds.session.cliId !== adoptedCliIdTyped) {
1089
1092
  ds.session.cliId = adoptedCliIdTyped;
1090
1093
  sessionStore.updateSession(ds.session);
1091
1094
  }
1095
+ // Use shared handler
1096
+ setupWorkerHandlers(ds, worker);
1097
+ ds.worker = worker;
1098
+ ds.spawnedAt = Date.now();
1099
+ ds.cliVersion = '';
1092
1100
  logger.info(`[${t}] Adopt worker forked (pid: ${worker.pid}, target: ${adopted.tmuxTarget})`);
1093
1101
  ds.exitEventEmitted = false;
1094
1102
  dashboardEventBus.publish({
@@ -1 +1 @@
1
- {"version":3,"file":"worker-pool.js","sourceRoot":"","sources":["../../src/core/worker-pool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker-pool.js","sourceRoot":"","sources":["../../src/core/worker-pool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAqB,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,YAAY,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC3F,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACrJ,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACpF,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,SAAS,EAAgB,CAAC,IAAI,EAAE,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACpF,OAAO,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAClE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAG3D,OAAO,EAAE,UAAU,EAAE,eAAe,EAAsB,MAAM,YAAY,CAAC;AAE7E,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAYtC,IAAI,SAA0C,CAAC;AAE/C;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,EAAuB;IACpD,SAAS,GAAG,EAAE,CAAC;AACjB,CAAC;AAED,SAAS,gBAAgB;IACvB,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAC5F,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,+EAA+E;AAC/E,6EAA6E;AAC7E,gFAAgF;AAChF,4EAA4E;AAC5E,4BAA4B;AAC5B,IAAI,sBAA8D,CAAC;AAEnE,MAAM,UAAU,yBAAyB,CAAC,CAA6B;IACrE,sBAAsB,GAAG,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,kBAAkB;IAChC,OAAO,sBAAsB,CAAC,CAAC,CAAC,CAAC,GAAG,sBAAsB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC5E,CAAC;AAED;;+BAE+B;AAC/B,MAAM,UAAU,qBAAqB,CAAC,SAAiB;IACrD,IAAI,CAAC,sBAAsB;QAAE,OAAO,SAAS,CAAC;IAC9C,KAAK,MAAM,CAAC,IAAI,sBAAsB,CAAC,MAAM,EAAE;QAAE,IAAI,CAAC,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS;YAAE,OAAO,CAAC,CAAC;IACjG,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;wEAEwE;AACxE,MAAM,UAAU,yBAAyB;IACvC,OAAO,sBAAsB,CAAC;AAChC,CAAC;AAED,+EAA+E;AAE/E,SAAS,GAAG,CAAC,EAAiB;IAC5B,OAAO,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,YAAY,CAAC,EAAiB,EAAE,MAAwB;IAC/D,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC;AAC1C,CAAC;AAED,MAAM,mBAAmB,GAAG,uBAAuB,CAAC;AAEpD,SAAS,eAAe,CAAC,CAAS,EAAE,IAAY;IAC9C,IAAI,CAAC,IAAI;QAAE,OAAO;IAClB,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC;IACxC,IAAI,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;QACvC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACzB,OAAO;IACT,CAAC;IACD,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC1B,CAAC;AAED,wEAAwE;AACxE,2EAA2E;AAC3E,4CAA4C;AAC5C,MAAM,CAAC,MAAM,qBAAqB,GAAG,aAAa,CAAC;AAEnD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,cAAc,CAAC,EAAiB;IAC9C,IAAI,CAAC,EAAE,CAAC,YAAY,IAAI,EAAE,CAAC,YAAY,KAAK,qBAAqB;QAAE,OAAO;IAC1E,IAAI,CAAC,EAAE,CAAC,eAAe;QAAE,OAAO;IAChC,IAAI,CAAC,EAAE,CAAC,WAAW;QAAE,EAAE,CAAC,WAAW,GAAG,eAAe,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC5E,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,eAAe,EAAE;QACrC,SAAS,EAAE,EAAE,CAAC,YAAY;QAC1B,OAAO,EAAE,EAAE,CAAC,iBAAiB,IAAI,EAAE;QACnC,KAAK,EAAE,EAAE,CAAC,gBAAgB,IAAI,EAAE;QAChC,WAAW,EAAE,EAAE,CAAC,WAAW,IAAI,QAAQ;QACvC,QAAQ,EAAE,EAAE,CAAC,eAAe;KAC7B,CAAC,CAAC;IACH,eAAe,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC;AACxD,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,iBAAiB,CAAC,EAAiB;IACjD,IAAI,CAAC,EAAE,CAAC,WAAW;QAAE,EAAE,CAAC,WAAW,GAAG,eAAe,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC5E,IAAI,EAAE,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO;IACtC,MAAM,QAAQ,GAAG,EAAE,CAAC,YAAY,IAAI,EAAE,CAAC,YAAY,KAAK,qBAAqB;QAC3E,CAAC,CAAC,EAAE,CAAC,YAAY;QACjB,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;QACxD,IAAI,QAAQ,IAAI,EAAE,CAAC,SAAS,KAAK,QAAQ;YAAE,SAAS;QACpD,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;QAC3B,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IACjC,eAAe,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC;IACtD,KAAK,MAAM,SAAS,IAAI,OAAO,EAAE,CAAC;QAChC,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAqB,CAAC,CAAC,CAAC;IAC5E,CAAC;IACD,MAAM,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,cAAc,OAAO,CAAC,MAAM,6BAA6B,CAAC,CAAC;AACpF,CAAC;AAED,+EAA+E;AAC/E,uEAAuE;AACvE,wEAAwE;AACxE,sEAAsE;AACtE,oEAAoE;AACpE,iDAAiD;AAEjD;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,EAAiB,EAAE,QAAgB;IACnE,EAAE,CAAC,eAAe,GAAG,QAAQ,CAAC;IAC9B,6EAA6E;IAC7E,0EAA0E;IAC1E,EAAE,CAAC,aAAa,GAAG,EAAE,CAAC,YAAY,CAAC;IACnC,IAAI,EAAE,CAAC,iBAAiB;QAAE,OAAO;IACjC,cAAc,CAAC,EAAE,CAAC,CAAC;AACrB,CAAC;AAED,SAAS,cAAc,CAAC,EAAiB;IACvC,MAAM,IAAI,GAAG,EAAE,CAAC,eAAe,CAAC;IAChC,MAAM,MAAM,GAAG,EAAE,CAAC,aAAa,CAAC;IAChC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,qBAAqB,EAAE,CAAC;QACzD,EAAE,CAAC,eAAe,GAAG,SAAS,CAAC;QAC/B,EAAE,CAAC,aAAa,GAAG,SAAS,CAAC;QAC7B,OAAO;IACT,CAAC;IACD,EAAE,CAAC,eAAe,GAAG,SAAS,CAAC;IAC/B,EAAE,CAAC,aAAa,GAAG,SAAS,CAAC;IAC7B,EAAE,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAC5B,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC;SACtC,KAAK,CAAC,GAAG,CAAC,EAAE;QACX,IAAI,GAAG,YAAY,qBAAqB,EAAE,CAAC;YACzC,kEAAkE;YAClE,4DAA4D;YAC5D,oEAAoE;YACpE,mEAAmE;YACnE,iEAAiE;YACjE,oEAAoE;YACpE,iBAAiB;YACjB,IAAI,EAAE,CAAC,YAAY,KAAK,MAAM,EAAE,CAAC;gBAC/B,MAAM,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,6CAA6C,CAAC,CAAC;gBACtE,EAAE,CAAC,YAAY,GAAG,SAAS,CAAC;gBAC5B,sBAAsB,CAAC,EAAE,CAAC,CAAC;YAC7B,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,gBAAgB,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,wBAAwB,EAAE,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC;YACzI,CAAC;YACD,OAAO;QACT,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,sCAAsC,GAAG,EAAE,CAAC,CAAC;IACvE,CAAC,CAAC;SACD,OAAO,CAAC,GAAG,EAAE;QACZ,EAAE,CAAC,iBAAiB,GAAG,KAAK,CAAC;QAC7B,IAAI,EAAE,CAAC,eAAe,EAAE,CAAC;YACvB,cAAc,CAAC,EAAE,CAAC,CAAC;QACrB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC;AAED,+EAA+E;AAE/E,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,GAAG,EAA6C,CAAC;AAElF,+EAA+E;AAE/E,+EAA+E;AAC/E,MAAM,qBAAqB,GAAG,IAAI,GAAG,EAAU,CAAC;AAEhD;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,KAAY,EAAE,eAAwB;IACpE,IAAI,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO;IAC7C,MAAM,OAAO,GAAG,oBAAoB,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;IAC7D,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IACvC,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACnC,CAAC;AAED,+EAA+E;AAC/E,EAAE;AACF,8EAA8E;AAC9E,0EAA0E;AAC1E,4EAA4E;AAC5E,sEAAsE;AACtE,6DAA6D;AAC7D,EAAE;AACF,2EAA2E;AAC3E,6EAA6E;AAE7E,wFAAwF;AACxF,MAAM,sBAAsB,GAAG,IAAI,GAAG,EAAU,CAAC;AAEjD,kFAAkF;AAClF,SAAS,aAAa,CAAC,UAAkB,EAAE,YAAsB,EAAE,WAAmB;IACpF,IAAI,CAAC;QACH,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;YAAE,OAAO,KAAK,CAAC;QAC1C,MAAM,GAAG,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,IAAI,GAAQ,IAAI,CAAC;QACrB,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;YAC/B,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC;gBAAE,OAAO,KAAK,CAAC;YACtE,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;QACD,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,WAAW,IAAI,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QAC9E,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC;QACzB,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,SAAS,eAAe,CAAC,OAAe;IACtC,IAAI,CAAC;QACH,QAAQ,CAAC,GAAG,OAAO,oBAAoB,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QAC/E,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAY;IACjD,IAAI,sBAAsB,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO;IAC9C,sBAAsB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAElC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;QACvB,QAAQ,KAAK,EAAE,CAAC;YACd,KAAK,aAAa,CAAC,CAAC,CAAC;gBACnB,8CAA8C;gBAC9C,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC;oBACxE,MAAM,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;gBACvE,CAAC;gBACD,MAAM;YACR,CAAC;YACD,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,mEAAmE;gBACnE,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC;oBACtF,IAAI,aAAa,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC;wBAC/C,MAAM,CAAC,IAAI,CAAC,0CAA0C,CAAC,EAAE,CAAC,CAAC;oBAC7D,CAAC;gBACH,CAAC;gBACD,MAAM;YACR,CAAC;YACD,KAAK,UAAU,CAAC,CAAC,CAAC;gBAChB,uFAAuF;gBACvF,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC;gBAC7D,MAAM,OAAO,GACX,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC;oBACnC,aAAa,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC;oBAC1C,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,QAAQ,CAAC,CAAC;gBACjD,IAAI,OAAO;oBAAE,MAAM,CAAC,IAAI,CAAC,0CAA0C,CAAC,EAAE,CAAC,CAAC;gBACxE,MAAM;YACR,CAAC;YACD,KAAK,MAAM,CAAC;YACZ,KAAK,OAAO,CAAC;YACb,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,qEAAqE;gBACrE,oDAAoD;gBACpD,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC3B,MAAM,CAAC,IAAI,CAAC,sBAAsB,KAAK,sBAAsB,CAAC,CAAC;gBACjE,CAAC;gBACD,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,KAAK,CAAC,4BAA4B,KAAK,sBAAsB,GAAG,EAAE,CAAC,CAAC;IAC7E,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,KAAY,EAAE,eAAwB;IACjE,eAAe,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;IACxC,sBAAsB,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC;AAED,+EAA+E;AAE/E,MAAM,UAAU,UAAU,CAAC,EAAiB;IAC1C,IAAI,CAAC,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,MAAM,CAAC,MAAM;QAAE,OAAO;IAC3C,IAAI,CAAC;QACH,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAoB,CAAC,CAAC;IACtD,CAAC;IAAC,MAAM,CAAC,CAAC,wBAAwB,CAAC,CAAC;IACpC,8CAA8C;IAC9C,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC;IACpB,UAAU,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM;QAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAC9D,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC;IACjB,EAAE,CAAC,UAAU,GAAG,IAAI,CAAC;IACrB,EAAE,CAAC,WAAW,GAAG,IAAI,CAAC;AACxB,CAAC;AAED,+EAA+E;AAE/E;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,SAAiB;IAEjB,MAAM,EAAE,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAC;IAC5C,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,IAAI,EAAE,EAAE,CAAC;QACP,UAAU,CAAC,EAAE,CAAC,CAAC;QACf,sBAAsB,EAAE,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;QAC9E,UAAU,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC;YACzB,EAAE,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAC3B,iBAAiB,CAAC,OAAO,CAAC;gBACxB,IAAI,EAAE,gBAAgB;gBACtB,IAAI,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,iBAAiB,EAAE;aAC/C,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC;IACvD,IAAI,OAAO,EAAE,CAAC;QACZ,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QACrC,MAAM,KAAK,GAAG,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACjD,iBAAiB,CAAC,OAAO,CAAC;YACxB,IAAI,EAAE,gBAAgB;YACtB,IAAI,EAAE;gBACJ,SAAS;gBACT,KAAK,EAAE;oBACL,MAAM,EAAE,QAAQ;oBAChB,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;iBACpE;aACF;SACF,CAAC,CAAC;IACL,CAAC;IAED,mDAAmD;IACnD,MAAM,aAAa,GAAG,CAAC,UAAU,IAAI,CAAC,OAAO,CAAC;IAC9C,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;AACrC,CAAC;AAED,+EAA+E;AAE/E,MAAM,UAAU,UAAU,CAAC,EAAiB,EAAE,MAAc,EAAE,MAAM,GAAG,KAAK;IAC1E,MAAM,EAAE,GAAG,gBAAgB,EAAE,CAAC;IAC9B,MAAM,GAAG,GAAG,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;IACjC,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;IAC1B,4DAA4D;IAC5D,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;IACtD,MAAM,GAAG,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;IACxC,MAAM,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;IAElB,2EAA2E;IAC3E,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACnC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,kCAAkC,EAAE,CAAC,MAAM,CAAC,GAAG,2BAA2B,CAAC,CAAC;QAC7F,IAAI,CAAC;YAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAoB,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QACnF,IAAI,CAAC;YAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QAChD,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC;QACjB,EAAE,CAAC,UAAU,GAAG,IAAI,CAAC;QACrB,EAAE,CAAC,WAAW,GAAG,IAAI,CAAC;IACxB,CAAC;IAED,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC;IAEnD,oEAAoE;IACpE,gEAAgE;IAChE,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IACvD,MAAM,cAAc,GAAG,GAAG,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;IAEnE,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE;QAClC,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC;QACxC,GAAG;QACH,GAAG,EAAE;YACH,GAAG,OAAO,CAAC,GAAG;YACd,IAAI,EAAE,cAAc;YACpB,UAAU,EAAE,SAAS;YACrB,MAAM,EAAE,GAAG,EAAG,gEAAgE;YAC9E,gBAAgB,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO;YACxC,WAAW,EAAE,MAAM,CAAC,SAAS;YAC7B,eAAe,EAAE,MAAM,CAAC,aAAa;SACtC;KACF,CAAC,CAAC;IAEH,8CAA8C;IAC9C,0EAA0E;IAC1E,wEAAwE;IACxE,wEAAwE;IACxE,yEAAyE;IACzE,yEAAyE;IACzE,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;QACzC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAC5B,IAAI,OAAO;gBAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,OAAO,EAAE,CAAC,CAAC;QACpD,CAAC;IACH,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;QACzC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/C,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAClC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,0CAA0C;IAC1C,MAAM,OAAO,GAAmB;QAC9B,IAAI,EAAE,MAAM;QACZ,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS;QAC/B,MAAM,EAAE,EAAE,CAAC,MAAM;QACjB,aAAa,EAAE,eAAe,CAAC,EAAE,CAAC;QAClC,UAAU,EAAE,GAAG;QACf,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,eAAe,EAAE,MAAM,CAAC,eAAe;QACvC,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,MAAM,CAAC,WAAW;QAC5D,MAAM;QACN,MAAM;QACN,YAAY,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY;QACrC,WAAW,EAAE,EAAE,CAAC,WAAW;QAC3B,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO;QAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC;KAC1B,CAAC;IACF,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACrB,EAAE,CAAC,UAAU,GAAG,OAAO,CAAC;IAExB,6EAA6E;IAC7E,+EAA+E;IAC/E,4EAA4E;IAC5E,uEAAuE;IACvE,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC;QACtC,EAAE,CAAC,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAChC,YAAY,CAAC,aAAa,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;IAED,+CAA+C;IAC/C,mBAAmB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IAEhC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;IACnB,EAAE,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC1B,EAAE,CAAC,UAAU,GAAG,iBAAiB,CAAC;IAClC,YAAY,CAAC,gBAAgB,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC;IACxE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,MAAM,CAAC,GAAG,aAAa,EAAE,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;IAEzF,0EAA0E;IAC1E,gFAAgF;IAChF,EAAE,CAAC,gBAAgB,GAAG,KAAK,CAAC;IAC5B,0DAA0D;IAC1D,iBAAiB,CAAC,OAAO,CAAC;QACxB,IAAI,EAAE,iBAAiB;QACvB,IAAI,EAAE,EAAE,OAAO,EAAE,oBAAoB,CAAC,EAAE,CAAC,EAAE;KAC5C,CAAC,CAAC;AACL,CAAC;AAED,+EAA+E;AAE/E,SAAS,mBAAmB,CAAC,EAAiB,EAAE,MAAoB;IAClE,MAAM,EAAE,GAAG,gBAAgB,EAAE,CAAC;IAC9B,MAAM,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,MAAM,GAAG,GAAG,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;IACjC,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;IAC1B,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IAE9B,0EAA0E;IAC1E,4EAA4E;IAC5E,MAAM,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC;IACjC,MAAM,YAAY,GAAG,KAAK,CAAC;IAE3B,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,GAAmB,EAAE,EAAE;QACjD,MAAM,cAAc,GAAG,YAAY,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAChD,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;YACjB,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,EAAE,CAAC,UAAU,GAAG,GAAG,CAAC,IAAI,CAAC;gBACzB,EAAE,CAAC,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC;gBAC3B,wDAAwD;gBACxD,EAAE,CAAC,OAAO,CAAC,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC;gBAC9B,YAAY,CAAC,aAAa,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;gBACvC,MAAM,WAAW,GAAG,UAAU,MAAM,CAAC,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;gBACpE,MAAM,QAAQ,GAAG,GAAG,WAAW,UAAU,GAAG,CAAC,KAAK,EAAE,CAAC;gBACrD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,+BAA+B,WAAW,EAAE,CAAC,CAAC;gBAC/D,yEAAyE;gBACzE,iBAAiB,CAAC,OAAO,CAAC;oBACxB,IAAI,EAAE,gBAAgB;oBACtB,IAAI,EAAE;wBACJ,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS;wBAC/B,KAAK,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,IAAI,EAAE;qBAC7B;iBACF,CAAC,CAAC;gBAEH,sEAAsE;gBACtE,0EAA0E;gBAC1E,uEAAuE;gBACvE,yEAAyE;gBACzE,MAAM,cAAc,GAClB,EAAE,CAAC,YAAY,IAAI,EAAE,CAAC,YAAY,KAAK,qBAAqB,IAAI,CAAC,EAAE,CAAC,iBAAiB;oBACnF,CAAC,CAAC,EAAE,CAAC,YAAY;oBACjB,CAAC,CAAC,SAAS,CAAC;gBAChB,IAAI,cAAc,EAAE,CAAC;oBACnB,IAAI,CAAC;wBACH,MAAM,SAAS,GAAG,EAAE,CAAC,gBAAgB,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,IAAI,iBAAiB,CAAC,cAAc,CAAC,CAAC;wBAC/F,4EAA4E;wBAC5E,IAAI,CAAC,EAAE,CAAC,eAAe;4BAAE,EAAE,CAAC,eAAe,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;wBAC7E,MAAM,cAAc,GAAG,kBAAkB,CACvC,EAAE,CAAC,OAAO,CAAC,SAAS,EACpB,eAAe,CAAC,EAAE,CAAC,EACnB,WAAW,EACX,SAAS,EACT,EAAE,CAAC,iBAAiB,IAAI,EAAE,EAC1B,UAAU,EACV,cAAc,EACd,EAAE,CAAC,WAAW,IAAI,QAAQ,EAC1B,EAAE,CAAC,eAAe,EAClB,EAAE,CAAC,eAAe,EAClB,OAAO,EACP,YAAY,EACZ,GAAG,CACJ,CAAC;wBACF,MAAM,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC;wBAClE,sBAAsB,CAAC,EAAE,CAAC,CAAC;wBAC3B,8DAA8D;wBAC9D,IAAI,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,WAAW,IAAI,EAAE,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;4BAC/D,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,EAAE,CAAC,WAAW,EAAoB,CAAC,CAAC;wBACvF,CAAC;wBACD,+DAA+D;wBAC/D,kEAAkE;wBAClE,0BAA0B;wBAC1B,iBAAiB,CAAC,EAAE,CAAC,CAAC;wBACtB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,oCAAoC,cAAc,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,yBAAyB,CAAC,CAAC;wBAC/G,MAAM;oBACR,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACb,+EAA+E;wBAC/E,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,8CAA8C,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,oBAAoB,CAAC,CAAC;wBAC7H,EAAE,CAAC,YAAY,GAAG,SAAS,CAAC;wBAC5B,sBAAsB,CAAC,EAAE,CAAC,CAAC;oBAC7B,CAAC;gBACH,CAAC;gBAED,yFAAyF;gBACzF,iEAAiE;gBACjE,8EAA8E;gBAC9E,EAAE,CAAC,YAAY,GAAG,qBAAqB,CAAC;gBACxC,IAAI,CAAC;oBACH,EAAE,CAAC,eAAe,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;oBACpD,MAAM,SAAS,GAAG,EAAE,CAAC,gBAAgB,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,IAAI,iBAAiB,CAAC,cAAc,CAAC,CAAC;oBAC/F,MAAM,cAAc,GAAG,kBAAkB,CACvC,EAAE,CAAC,OAAO,CAAC,SAAS,EACpB,eAAe,CAAC,EAAE,CAAC,EACnB,WAAW,EACX,SAAS,EACT,EAAE,EACF,UAAU,EACV,cAAc,EACd,EAAE,CAAC,WAAW,IAAI,QAAQ,EAC1B,EAAE,CAAC,eAAe,EAClB,EAAE,CAAC,eAAe,EAClB,OAAO,EACP,YAAY,EACZ,GAAG,CACJ,CAAC;oBACF,EAAE,CAAC,YAAY,GAAG,MAAM,EAAE,CAAC,YAAY,CAAC,eAAe,CAAC,EAAE,CAAC,EAAE,cAAc,EAAE,aAAa,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC;oBAC1G,sBAAsB,CAAC,EAAE,CAAC,CAAC;oBAC3B,gEAAgE;oBAChE,oEAAoE;oBACpE,gDAAgD;oBAChD,iBAAiB,CAAC,EAAE,CAAC,CAAC;gBACxB,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,IAAI,GAAG,YAAY,qBAAqB,EAAE,CAAC;wBACzC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;wBACpE,UAAU,CAAC,EAAE,CAAC,CAAC;wBACf,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;wBACpB,MAAM;oBACR,CAAC;oBACD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,iEAAiE,GAAG,EAAE,CAAC,CAAC;oBACzF,qEAAqE;oBACrE,EAAE,CAAC,YAAY,GAAG,SAAS,CAAC;oBAC5B,sBAAsB,CAAC,EAAE,CAAC,CAAC;oBAC3B,qCAAqC;oBACrC,IAAI,CAAC;wBACH,MAAM,QAAQ,GAAG,gBAAgB,CAC/B,EAAE,CAAC,OAAO,CAAC,SAAS,EACpB,eAAe,CAAC,EAAE,CAAC,EACnB,WAAW,EACX,EAAE,CAAC,OAAO,CAAC,KAAK,IAAI,iBAAiB,CAAC,cAAc,CAAC,EACrD,cAAc,EACd,SAAS,EACT,CAAC,CAAC,EAAE,CAAC,WAAW,EAChB,GAAG,CACJ,CAAC;wBACF,MAAM,EAAE,CAAC,YAAY,CAAC,eAAe,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC;oBACpF,CAAC;oBAAC,OAAO,WAAW,EAAE,CAAC;wBACrB,IAAI,WAAW,YAAY,qBAAqB,EAAE,CAAC;4BACjD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;4BACpE,UAAU,CAAC,EAAE,CAAC,CAAC;4BACf,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;4BACpB,MAAM;wBACR,CAAC;wBACD,MAAM,WAAW,CAAC;oBACpB,CAAC;gBACH,CAAC;gBAED,MAAM;YACR,CAAC;YAED,KAAK,cAAc,CAAC,CAAC,CAAC;gBACpB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,iBAAiB,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC;gBAC9E,MAAM;YACR,CAAC;YAED,KAAK,eAAe,CAAC,CAAC,CAAC;gBACrB,IAAI,CAAC,EAAE,CAAC,UAAU;oBAAE,MAAM;gBAC1B,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CAAC;gBACvC,EAAE,CAAC,iBAAiB,GAAG,GAAG,CAAC,OAAO,CAAC;gBACnC,EAAE,CAAC,gBAAgB,GAAG,GAAG,CAAC,MAAM,CAAC;gBAEjC,qEAAqE;gBACrE,qEAAqE;gBACrE,iEAAiE;gBACjE,iEAAiE;gBACjE,0BAA0B;gBAC1B,IAAI,UAAU,KAAK,GAAG,CAAC,MAAM,EAAE,CAAC;oBAC9B,iBAAiB,CAAC,OAAO,CAAC;wBACxB,IAAI,EAAE,gBAAgB;wBACtB,IAAI,EAAE;4BACJ,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS;4BAC/B,KAAK,EAAE;gCACL,MAAM,EAAE,EAAE,CAAC,gBAAgB;gCAC3B,aAAa,EAAE,EAAE,CAAC,aAAa;6BAChC;yBACF;qBACF,CAAC,CAAC;gBACL,CAAC;gBAED,MAAM,OAAO,GAAG,UAAU,MAAM,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,UAAU,EAAE,CAAC;gBACrE,MAAM,SAAS,GAAG,EAAE,CAAC,gBAAgB,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,IAAI,iBAAiB,CAAC,cAAc,CAAC,CAAC;gBAC/F,MAAM,IAAI,GAAgB,EAAE,CAAC,WAAW,IAAI,QAAQ,CAAC;gBAErD,IAAI,EAAE,CAAC,iBAAiB,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC;oBAC7C,gEAAgE;oBAChE,iEAAiE;oBACjE,IAAI,EAAE,CAAC,YAAY,KAAK,qBAAqB;wBAAE,MAAM;oBAErD,sEAAsE;oBACtE,8DAA8D;oBAC9D,MAAM,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC,iBAAiB,CAAC;oBACzC,EAAE,CAAC,eAAe,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;oBACpD,0DAA0D;oBAC1D,IAAI,SAAS;wBAAE,EAAE,CAAC,eAAe,GAAG,SAAS,CAAC;oBAC9C,MAAM,QAAQ,GAAG,kBAAkB,CACjC,EAAE,CAAC,OAAO,CAAC,SAAS,EACpB,eAAe,CAAC,EAAE,CAAC,EACnB,OAAO,EACP,SAAS,EACT,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAC5B,GAAG,CAAC,MAAM,EACV,cAAc,EACd,IAAI,EACJ,EAAE,CAAC,eAAe,EAClB,EAAE,CAAC,eAAe,EAClB,OAAO,EACP,YAAY,EACZ,GAAG,CACJ,CAAC;oBACF,gEAAgE;oBAChE,iCAAiC;oBACjC,EAAE,CAAC,iBAAiB,GAAG,KAAK,CAAC;oBAC7B,EAAE,CAAC,YAAY,GAAG,qBAAqB,CAAC;oBACxC,EAAE,CAAC,YAAY,CAAC,eAAe,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,EAAE,CAAC,SAAS,CAAC;yBACxE,IAAI,CAAC,KAAK,CAAC,EAAE;wBACZ,EAAE,CAAC,YAAY,GAAG,KAAK,CAAC;wBACxB,sBAAsB,CAAC,EAAE,CAAC,CAAC;wBAC3B,4DAA4D;wBAC5D,6DAA6D;wBAC7D,gEAAgE;wBAChE,6DAA6D;wBAC7D,UAAU;wBACV,iBAAiB,CAAC,EAAE,CAAC,CAAC;oBACxB,CAAC,CAAC;yBACD,KAAK,CAAC,GAAG,CAAC,EAAE;wBACX,IAAI,GAAG,YAAY,qBAAqB,EAAE,CAAC;4BACzC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;4BACpE,UAAU,CAAC,EAAE,CAAC,CAAC;4BACf,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;4BACpB,OAAO;wBACT,CAAC;wBACD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,sCAAsC,GAAG,EAAE,CAAC,CAAC;wBAC/D,EAAE,CAAC,YAAY,GAAG,SAAS,CAAC;wBAC5B,sBAAsB,CAAC,EAAE,CAAC,CAAC;oBAC7B,CAAC,CAAC,CAAC;gBACP,CAAC;qBAAM,CAAC;oBACN,oEAAoE;oBACpE,oEAAoE;oBACpE,MAAM,aAAa,GAAG,UAAU,KAAK,GAAG,CAAC,MAAM,CAAC;oBAChD,IAAI,CAAC,aAAa;wBAAE,MAAM;oBAC1B,MAAM,QAAQ,GAAG,kBAAkB,CACjC,EAAE,CAAC,OAAO,CAAC,SAAS,EACpB,eAAe,CAAC,EAAE,CAAC,EACnB,OAAO,EACP,SAAS,EACT,GAAG,CAAC,OAAO,EACX,GAAG,CAAC,MAAM,EACV,cAAc,EACd,IAAI,EACJ,EAAE,CAAC,eAAe,EAClB,EAAE,CAAC,eAAe,EAClB,OAAO,EACP,YAAY,EACZ,GAAG,CACJ,CAAC;oBACF,iBAAiB,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;gBAClC,CAAC;gBACD,MAAM;YACR,CAAC;YAED,KAAK,qBAAqB,CAAC,CAAC,CAAC;gBAC3B,0EAA0E;gBAC1E,0EAA0E;gBAC1E,IAAI,EAAE,CAAC,iBAAiB;oBAAE,MAAM;gBAChC,EAAE,CAAC,eAAe,GAAG,GAAG,CAAC,QAAQ,CAAC;gBAClC,EAAE,CAAC,gBAAgB,GAAG,GAAG,CAAC,MAAM,CAAC;gBACjC,sBAAsB,CAAC,EAAE,CAAC,CAAC;gBAC3B,IAAI,CAAC,EAAE,CAAC,WAAW,IAAI,QAAQ,CAAC,KAAK,YAAY;oBAAE,MAAM;gBACzD,IAAI,CAAC,EAAE,CAAC,YAAY,IAAI,EAAE,CAAC,YAAY,KAAK,qBAAqB,IAAI,CAAC,EAAE,CAAC,UAAU;oBAAE,MAAM;gBAC3F,MAAM,OAAO,GAAG,UAAU,MAAM,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,UAAU,EAAE,CAAC;gBACrE,MAAM,SAAS,GAAG,EAAE,CAAC,gBAAgB,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,IAAI,iBAAiB,CAAC,cAAc,CAAC,CAAC;gBAC/F,MAAM,QAAQ,GAAG,kBAAkB,CACjC,EAAE,CAAC,OAAO,CAAC,SAAS,EACpB,eAAe,CAAC,EAAE,CAAC,EACnB,OAAO,EACP,SAAS,EACT,EAAE,CAAC,iBAAiB,IAAI,EAAE,EAC1B,GAAG,CAAC,MAAM,EACV,cAAc,EACd,YAAY,EACZ,EAAE,CAAC,eAAe,EAClB,EAAE,CAAC,eAAe,EAClB,OAAO,EACP,YAAY,EACZ,GAAG,CACJ,CAAC;gBACF,iBAAiB,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;gBAChC,MAAM;YACR,CAAC;YAED,KAAK,YAAY,CAAC,CAAC,CAAC;gBAClB,8DAA8D;gBAC9D,4DAA4D;gBAC5D,IAAI,EAAE,CAAC,eAAe,EAAE,CAAC;oBACvB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC;oBAC1E,MAAM;gBACR,CAAC;gBACD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,0BAA0B,GAAG,CAAC,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACzG,EAAE,CAAC,gBAAgB,GAAG,GAAG,CAAC,OAAO,CAAC;gBAClC,EAAE,CAAC,oBAAoB,GAAG,GAAG,CAAC,WAAW,CAAC;gBAC1C,EAAE,CAAC,iBAAiB,GAAG,EAAE,CAAC;gBAC1B,MAAM,gBAAgB,GAAG,EAAE,CAAC,gBAAgB,CAAC;gBAC7C,EAAE,CAAC,gBAAgB,GAAG,GAAG,CAAC,WAAW,CAAC,CAAE,iCAAiC;gBACzE,IAAI,gBAAgB,KAAK,EAAE,CAAC,gBAAgB,EAAE,CAAC;oBAC7C,iBAAiB,CAAC,OAAO,CAAC;wBACxB,IAAI,EAAE,gBAAgB;wBACtB,IAAI,EAAE;4BACJ,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS;4BAC/B,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,gBAAgB,EAAE;yBACtC;qBACF,CAAC,CAAC;gBACL,CAAC;gBACD,IAAI,CAAC;oBACH,MAAM,QAAQ,GAAG,kBAAkB,CACjC,eAAe,CAAC,EAAE,CAAC,EACnB,EAAE,CAAC,OAAO,CAAC,SAAS,EACpB,GAAG,CAAC,WAAW,EACf,GAAG,CAAC,OAAO,EACX,GAAG,CAAC,WAAW,EACf,SAAS,EACT,GAAG,CACJ,CAAC;oBACF,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,YAAY,CAAC,eAAe,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC;oBACpG,EAAE,CAAC,eAAe,GAAG,SAAS,CAAC;gBACjC,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,qCAAqC,GAAG,EAAE,CAAC,CAAC;gBAC/D,CAAC;gBACD,MAAM;YACR,CAAC;YAED,KAAK,qBAAqB,CAAC,CAAC,CAAC;gBAC3B,6DAA6D;gBAC7D,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAwB,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC5F,IAAI,EAAE,CAAC,eAAe,EAAE,CAAC;oBACvB,MAAM,YAAY,GAAG,0BAA0B,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,sBAAsB,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;oBACrH,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CACxE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,uCAAuC,GAAG,EAAE,CAAC,CAChE,CAAC;oBACF,EAAE,CAAC,eAAe,GAAG,SAAS,CAAC;oBAC/B,EAAE,CAAC,gBAAgB,GAAG,SAAS,CAAC;gBAClC,CAAC;gBACD,MAAM;YACR,CAAC;YAED,KAAK,aAAa,CAAC,CAAC,CAAC;gBACnB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,iBAAiB,CAAC,cAAc,CAAC,kBAAkB,GAAG,CAAC,IAAI,aAAa,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC7G,EAAE,CAAC,UAAU,GAAG,IAAI,CAAC;gBAErB,iEAAiE;gBACjE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;oBACnB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;oBAC5C,4BAA4B;oBAC5B,IAAI,EAAE,CAAC,YAAY,IAAI,EAAE,CAAC,UAAU,EAAE,CAAC;wBACrC,MAAM,OAAO,GAAG,UAAU,MAAM,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,UAAU,EAAE,CAAC;wBACrE,MAAM,SAAS,GAAG,EAAE,CAAC,gBAAgB,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,IAAI,iBAAiB,CAAC,cAAc,CAAC,CAAC;wBAC/F,MAAM,UAAU,GAAG,kBAAkB,CACnC,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,eAAe,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS,EAC7D,EAAE,CAAC,iBAAiB,IAAI,EAAE,EAAE,MAAM,EAAE,cAAc,EAClD,EAAE,CAAC,WAAW,IAAI,QAAQ,EAAE,EAAE,CAAC,eAAe,EAAE,EAAE,CAAC,eAAe,EAClE,OAAO,EAAE,YAAY,CACtB,CAAC;wBACF,iBAAiB,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;oBACpC,CAAC;oBACD,UAAU,CAAC,EAAE,CAAC,CAAC;oBACf,mEAAmE;oBACnE,4DAA4D;oBAC5D,8DAA8D;oBAC9D,gEAAgE;oBAChE,kDAAkD;oBAClD,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;wBACnC,IAAI,CAAC;4BACH,MAAM,EAAE,CAAC,YAAY,CAAC,eAAe,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,+BAA+B,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC;wBACxH,CAAC;wBAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;oBAC/B,CAAC;oBACD,MAAM;gBACR,CAAC;gBAED,iDAAiD;gBACjD,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC;gBACjC,MAAM,EAAE,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;gBAC7D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBACvB,IAAI,GAAG,GAAG,EAAE,CAAC,MAAM,GAAG,MAAM;oBAAE,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,oBAAoB;gBAChE,EAAE,CAAC,KAAK,EAAE,CAAC;gBACX,EAAE,CAAC,MAAM,GAAG,GAAG,CAAC;gBAChB,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBAE3B,IAAI,EAAE,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;oBACjB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,iBAAiB,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC,KAAK,sCAAsC,CAAC,CAAC;oBACnH,yEAAyE;oBACzE,IAAI,EAAE,CAAC,YAAY,IAAI,EAAE,CAAC,UAAU,EAAE,CAAC;wBACrC,MAAM,OAAO,GAAG,UAAU,MAAM,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,UAAU,EAAE,CAAC;wBACrE,MAAM,SAAS,GAAG,EAAE,CAAC,gBAAgB,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,IAAI,iBAAiB,CAAC,cAAc,CAAC,CAAC;wBAC/F,MAAM,UAAU,GAAG,kBAAkB,CACnC,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,eAAe,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS,EAC7D,EAAE,CAAC,iBAAiB,IAAI,EAAE,EAAE,MAAM,EAAE,cAAc,EAClD,EAAE,CAAC,WAAW,IAAI,QAAQ,EAAE,EAAE,CAAC,eAAe,EAAE,EAAE,CAAC,eAAe,EAClE,OAAO,EAAE,YAAY,EAAE,GAAG,CAC3B,CAAC;wBACF,iBAAiB,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;oBACpC,CAAC;oBACD,4CAA4C;oBAC5C,UAAU,CAAC,EAAE,CAAC,CAAC;oBACf,MAAM,OAAO,GAAG,iBAAiB,CAAC,cAAc,CAAC,CAAC;oBAClD,IAAI,CAAC;wBACH,MAAM,EAAE,CAAC,YAAY,CAAC,eAAe,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,2BAA2B,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC;oBACvI,CAAC;oBAAC,OAAO,QAAQ,EAAE,CAAC;wBAClB,IAAI,QAAQ,YAAY,qBAAqB,EAAE,CAAC;4BAC9C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;4BACpE,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;wBACtB,CAAC;oBACH,CAAC;oBACD,MAAM;gBACR,CAAC;gBAED,0CAA0C;gBAC1C,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;oBACnC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,iBAAiB,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;oBAC9E,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAoB,CAAC,CAAC;gBACxD,CAAC;gBACD,MAAM;YACR,CAAC;YAED,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;gBACpD,MAAM;YACR,CAAC;YAED,KAAK,aAAa,CAAC,CAAC,CAAC;gBACnB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;gBACzD,IAAI,CAAC;oBACH,MAAM,EAAE,CAAC,YAAY,CAAC,eAAe,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC;gBAChF,CAAC;gBAAC,OAAO,GAAQ,EAAE,CAAC;oBAClB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,4CAA4C,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC/E,CAAC;gBACD,MAAM;YACR,CAAC;YAED,KAAK,cAAc,CAAC,CAAC,CAAC;gBACpB,uEAAuE;gBACvE,kEAAkE;gBAClE,+DAA+D;gBAC/D,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE;oBAAE,MAAM;gBAC/C,IAAI,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,qBAAqB,KAAK,GAAG,CAAC,QAAQ,EAAE,CAAC;oBAC9D,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,gCAAgC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;oBACnF,MAAM;gBACR,CAAC;gBACD,kEAAkE;gBAClE,4DAA4D;gBAC5D,2BAA2B;gBAC3B,kBAAkB,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBAClC,MAAM;YACR,CAAC;YAED,KAAK,gBAAgB,CAAC,CAAC,CAAC;gBACtB,mEAAmE;gBACnE,iEAAiE;gBACjE,gEAAgE;gBAChE,kEAAkE;gBAClE,kEAAkE;gBAClE,gEAAgE;gBAChE,qDAAqD;gBACrD,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC;oBACpB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;oBACnE,MAAM;gBACR,CAAC;gBACD,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE;oBAAE,MAAM;gBAC7D,MAAM,QAAQ,GAAG,wBAAwB,CAAC;oBACxC,KAAK,EAAE,iBAAiB;oBACxB,QAAQ,EAAE,GAAG,CAAC,QAAQ;oBACtB,aAAa,EAAE,GAAG,CAAC,aAAa;oBAChC,cAAc,EAAE,iBAAiB,CAAC,cAAc,CAAC;oBACjD,eAAe,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW;iBACxC,CAAC,CAAC;gBACH,EAAE,CAAC,YAAY,CAAC,eAAe,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,GAAQ,EAAE,EAAE;oBAC7F,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,+CAA+C,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;gBACjF,CAAC,CAAC,CAAC;gBACH,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;QACzB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,kCAAkC,IAAI,GAAG,CAAC,CAAC;QAC5D,oEAAoE;QACpE,sEAAsE;QACtE,IAAI,EAAE,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YACzB,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC;YACjB,EAAE,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,CAAC;QACD,6DAA6D;QAC7D,mEAAmE;QACnE,oDAAoD;QACpD,IAAI,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC;YACzB,EAAE,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAC3B,iBAAiB,CAAC,OAAO,CAAC;gBACxB,IAAI,EAAE,gBAAgB;gBACtB,IAAI,EAAE;oBACJ,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS;oBAC/B,MAAM,EAAE,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,IAAI,EAAE;iBACtD;aACF,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,+EAA+E;AAE/E,MAAM,6BAA6B,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAE,uBAAuB;AAEhF;;;;mCAImC;AACnC,SAAS,kBAAkB,CACzB,EAAiB,EACjB,GAAsD,EACtD,CAAS,EACT,OAAe;IAEf,MAAM,EAAE,GAAG,gBAAgB,EAAE,CAAC;IAC9B,MAAM,cAAc,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;IAC7E,UAAU,CAAC,KAAK,IAAI,EAAE;QACpB,qEAAqE;QACrE,qEAAqE;QACrE,mBAAmB;QACnB,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YACnC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,0DAA0D,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAC1G,OAAO;QACT,CAAC;QACD,IAAI,CAAC;YACH,oEAAoE;YACpE,+DAA+D;YAC/D,sEAAsE;YACtE,iEAAiE;YACjE,8DAA8D;YAC9D,EAAE;YACF,oEAAoE;YACpE,kEAAkE;YAClE,4DAA4D;YAC5D,oEAAoE;YACpE,aAAa;YACb,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,KAAK,YAAY,IAAI,GAAG,CAAC,IAAI,KAAK,qBAAqB;gBAC9E,CAAC,CAAC,wBAAwB,CAAC;oBACvB,KAAK,EAAE,GAAG,CAAC,IAAI,KAAK,qBAAqB;wBACvC,CAAC,CAAC,gCAAgC;wBAClC,CAAC,CAAC,yCAAyC;oBAC7C,QAAQ,EAAE,GAAG,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS;oBACpE,aAAa,EAAE,GAAG,CAAC,OAAO;oBAC1B,cAAc,EAAE,iBAAiB,CAAC,cAAc,CAAC;oBACjD,eAAe,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW;iBACxC,CAAC;gBACJ,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAC3D,MAAM,EAAE,CAAC,YAAY,CAAC,eAAe,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC;YAClF,EAAE,CAAC,qBAAqB,GAAG,GAAG,CAAC,QAAQ,CAAC;YACxC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,yCAAyC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,OAAO,CAAC,MAAM,gBAAgB,GAAG,CAAC,IAAI,IAAI,QAAQ,aAAa,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9K,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,IAAI,GAAG,YAAY,qBAAqB,EAAE,CAAC;gBACzC,gEAAgE;gBAChE,iEAAiE;gBACjE,EAAE,CAAC,qBAAqB,GAAG,GAAG,CAAC,QAAQ,CAAC;gBACxC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,yEAAyE,CAAC,CAAC;gBAC5F,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;gBACpB,OAAO;YACT,CAAC;YACD,MAAM,IAAI,GAAG,OAAO,GAAG,CAAC,CAAC;YACzB,IAAI,IAAI,IAAI,6BAA6B,CAAC,MAAM,EAAE,CAAC;gBACjD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,uCAAuC,IAAI,mBAAmB,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC/H,4DAA4D;gBAC5D,0DAA0D;gBAC1D,OAAO;YACT,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,iCAAiC,IAAI,YAAY,GAAG,CAAC,OAAO,kBAAkB,6BAA6B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxI,kBAAkB,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;QACvC,CAAC;IACH,CAAC,EAAE,6BAA6B,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AAClD,CAAC;AAED;sEACsE;AACtE,MAAM,CAAC,MAAM,6BAA6B,GAAG,kBAAkB,CAAC;AAEhE,+EAA+E;AAE/E,MAAM,UAAU,eAAe,CAAC,EAAiB,EAAE,IAAyC;IAC1F,MAAM,EAAE,GAAG,gBAAgB,EAAE,CAAC;IAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;IACtD,MAAM,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC;IAC/B,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAE5E,MAAM,GAAG,GAAG,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;IACjC,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;IAE1B,4BAA4B;IAC5B,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACnC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;QACxE,IAAI,CAAC;YAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAoB,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;QACrE,IAAI,CAAC;YAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;QAClC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC;QACjB,EAAE,CAAC,UAAU,GAAG,IAAI,CAAC;QACrB,EAAE,CAAC,WAAW,GAAG,IAAI,CAAC;IACxB,CAAC;IAED,sEAAsE;IAEtE,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE;QAClC,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC;QACxC,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,EAAE,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,EAAE;QAClD,GAAG,EAAE;YACH,GAAG,OAAO,CAAC,GAAG;YACd,UAAU,EAAE,SAAS;YACrB,MAAM,EAAE,GAAG;YACX,WAAW,EAAE,MAAM,CAAC,SAAS;YAC7B,eAAe,EAAE,MAAM,CAAC,aAAa;SACtC;KACF,CAAC,CAAC;IAEH,yEAAyE;IACzE,oDAAoD;IACpD,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;QACzC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAC5B,IAAI,OAAO;gBAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,OAAO,EAAE,CAAC,CAAC;QACpD,CAAC;IACH,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;QACzC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/C,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAClC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,gCAAgC;IAChC,wEAAwE;IACxE,iEAAiE;IACjE,uEAAuE;IACvE,uEAAuE;IACvE,4DAA4D;IAC5D,8EAA8E;IAC9E,0EAA0E;IAC1E,4EAA4E;IAC5E,uDAAuD;IACvD,sDAAsD;IACtD,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,IAAI,aAAa,CAAC;IACpD,MAAM,eAAe,GACnB,YAAY,KAAK,aAAa,IAAI,OAAO,CAAC,SAAS;QACjD,CAAC,CAAC,yBAAyB,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC;QAC3D,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,kBAAkB,GAAG,YAAY,KAAK,OAAO,IAAI,YAAY,KAAK,MAAM,CAAC;IAE/E,MAAM,OAAO,GAAmB;QAC9B,IAAI,EAAE,MAAM;QACZ,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS;QAC/B,MAAM,EAAE,EAAE,CAAC,MAAM;QACjB,aAAa,EAAE,eAAe,CAAC,EAAE,CAAC;QAClC,UAAU,EAAE,OAAO,CAAC,GAAG;QACvB,KAAK,EAAE,YAAY;QACnB,YAAY,EAAE,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;QAChE,WAAW,EAAE,MAAM;QACnB,MAAM,EAAE,EAAE;QACV,MAAM,EAAE,KAAK;QACb,WAAW,EAAE,EAAE,CAAC,WAAW;QAC3B,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO;QAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC;QACzB,SAAS,EAAE,IAAI;QACf,eAAe,EAAE,OAAO,CAAC,UAAU;QACnC,aAAa,EAAE,OAAO,CAAC,QAAQ;QAC/B,aAAa,EAAE,OAAO,CAAC,QAAQ;QAC/B,eAAe;QACf,uEAAuE;QACvE,mEAAmE;QACnE,wDAAwD;QACxD,WAAW,EAAE,CAAC,YAAY,KAAK,aAAa,IAAI,kBAAkB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS;QACxG,QAAQ,EAAE,CAAC,YAAY,KAAK,aAAa,IAAI,kBAAkB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS;QAC1F,0EAA0E;QAC1E,wEAAwE;QACxE,sEAAsE;QACtE,iEAAiE;QACjE,wEAAwE;QACxE,mDAAmD;QACnD,yBAAyB,EAAE,IAAI,EAAE,oBAAoB,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;KAClF,CAAC;IACF,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACrB,EAAE,CAAC,UAAU,GAAG,OAAO,CAAC;IACxB,6EAA6E;IAC7E,iFAAiF;IACjF,4EAA4E;IAC5E,gFAAgF;IAChF,MAAM,iBAAiB,GAAG,YAAqB,CAAC;IAChD,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,KAAK,iBAAiB,EAAE,CAAC;QAC3C,EAAE,CAAC,OAAO,CAAC,KAAK,GAAG,iBAAiB,CAAC;QACrC,YAAY,CAAC,aAAa,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;IAED,qBAAqB;IACrB,mBAAmB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IAEhC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;IACnB,EAAE,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC1B,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC;IACnB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,+BAA+B,MAAM,CAAC,GAAG,aAAa,OAAO,CAAC,UAAU,GAAG,CAAC,CAAC;IAE9F,EAAE,CAAC,gBAAgB,GAAG,KAAK,CAAC;IAC5B,iBAAiB,CAAC,OAAO,CAAC;QACxB,IAAI,EAAE,iBAAiB;QACvB,IAAI,EAAE,EAAE,OAAO,EAAE,oBAAoB,CAAC,EAAE,CAAC,EAAE;KAC5C,CAAC,CAAC;AACL,CAAC;AAED,+EAA+E;AAE/E,MAAM,UAAU,aAAa,CAAC,eAA0B;IACtD,KAAK,MAAM,OAAO,IAAI,eAAe,EAAE,CAAC;QACtC,IAAI,CAAC,OAAO,CAAC,GAAG;YAAE,SAAS;QAC3B,IAAI,CAAC;YACH,+DAA+D;YAC/D,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YAC7B,0CAA0C;YAC1C,MAAM,CAAC,IAAI,CAAC,mCAAmC,OAAO,CAAC,GAAG,cAAc,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC;YAC9F,IAAI,CAAC;gBACH,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YACxC,CAAC;YAAC,MAAM,CAAC;gBACP,IAAI,CAAC;oBAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;YAC5E,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,6CAA6C;QAC/C,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,MAAM,CAAC;WACjG,MAAM,CAAC,MAAM,CAAC,WAAW,KAAK,MAAM,CAAC;IAC1C,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,QAAQ,GAAG,UAAU,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;QACzC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QAC9D,IAAI,SAA6B,CAAC;QAClC,IAAI,CAAC;YAAC,SAAS,GAAG,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC;QACtF,2DAA2D;QAC3D,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;QAEzC,IAAI,CAAC,QAAQ,IAAI,SAAS,IAAI,SAAS,KAAK,YAAY,EAAE,CAAC;YACzD,yEAAyE;YACzE,MAAM,CAAC,IAAI,CAAC,mBAAmB,SAAS,MAAM,YAAY,8BAA8B,CAAC,CAAC;YAC1F,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,kBAAkB,EAAE,EAAE,CAAC;gBACpD,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,6DAA6D;YAC7D,sEAAsE;YACtE,6DAA6D;YAC7D,MAAM,WAAW,GAAG,IAAI,GAAG,CACzB,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAC/D,CAAC;YACF,MAAM,UAAU,GAAG,IAAI,GAAG,CACxB,YAAY,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAC3E,CAAC;YACF,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,kBAAkB,EAAE,EAAE,CAAC;gBACpD,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;oBACnD,MAAM,CAAC,IAAI,CAAC,kCAAkC,IAAI,EAAE,CAAC,CAAC;oBACtD,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBAChC,CAAC;YACH,CAAC;YACD,wEAAwE;YACxE,mEAAmE;YACnE,qEAAqE;YACrE,qEAAqE;YACrE,qEAAqE;YACrE,wEAAwE;YACxE,+DAA+D;YAC/D,KAAK,MAAM,OAAO,IAAI,eAAe,EAAE,CAAC;gBACtC,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC;gBACnC,IAAI,CAAC,YAAY,IAAI,CAAC,OAAO,CAAC,SAAS;oBAAE,SAAS;gBAClD,IAAI,QAA2B,CAAC;gBAChC,IAAI,CAAC;oBAAC,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC;oBAAC,SAAS;gBAAC,CAAC;gBAC9E,IAAI,QAAQ,IAAI,YAAY,KAAK,QAAQ,EAAE,CAAC;oBAC1C,MAAM,IAAI,GAAG,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;oBACxD,MAAM,CAAC,IAAI,CAAC,oBAAoB,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,aAAa,YAAY,SAAS,QAAQ,mBAAmB,IAAI,EAAE,CAAC,CAAC;oBACtI,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBAChC,CAAC;YACH,CAAC;QACH,CAAC;QAED,2EAA2E;QAC3E,IAAI,CAAC;YACH,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACvD,aAAa,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QACzC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,mBAAmB,SAAS,KAAK,GAAG,EAAE,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;AACH,CAAC;AAED,6EAA6E;AAE7E,8EAA8E;AAC9E,IAAI,iBAAiB,GAAG,SAAS,CAAC;AAElC,MAAM,UAAU,oBAAoB,CAAC,CAAS;IAC5C,iBAAiB,GAAG,CAAC,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,oBAAoB;IAClC,OAAO,iBAAiB,CAAC;AAC3B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"AAuBA,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAg8BrD,wBAAsB,WAAW,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA+OlE"}
1
+ {"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"AAuBA,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AA0/BrD,wBAAsB,WAAW,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAwPlE"}
package/dist/daemon.js CHANGED
@@ -34,6 +34,8 @@ import { isCallbackUrl, handleCallbackUrl } from './utils/user-token.js';
34
34
  import { getSessionWorkingDir, getProjectScanDirs, expandHome, downloadResources, formatAttachmentsHint, buildNewTopicPrompt, buildFollowUpContent, buildBridgeInputContent, buildReforkPrompt, getAvailableBots, restoreActiveSessions, executeScheduledTask, persistStreamCardState, } from './core/session-manager.js';
35
35
  import { handleCardAction } from './im/lark/card-handler.js';
36
36
  import { isBotMentioned, probeBotOpenId, startLarkEventDispatcher, writeBotInfoFile, canOperate, isKnownPeerBot, checkRequiredScopes } from './im/lark/event-dispatcher.js';
37
+ import { learnFromMentions, resolveSender, flushIdentityCacheSync } from './im/lark/identity-cache.js';
38
+ import { renderSenderTag } from './core/session-manager.js';
37
39
  import { markSessionActivity } from './core/session-activity.js';
38
40
  // ─── State ───────────────────────────────────────────────────────────────────
39
41
  const activeSessions = new Map();
@@ -250,6 +252,7 @@ function beginNewTurn(ds, title) {
250
252
  }
251
253
  ds.streamCardPending = true;
252
254
  ds.currentTurnTitle = title.substring(0, 50);
255
+ ds.currentImageKey = undefined;
253
256
  persistStreamCardState(ds);
254
257
  }
255
258
  // Dependencies passed to command-handler
@@ -332,6 +335,10 @@ async function handleNewTopic(data, ctx) {
332
335
  const { extraResources } = await expandMergeForward(larkAppId, messageId, parsed);
333
336
  resources.push(...extraResources);
334
337
  }
338
+ // Free-path identity learning — mentions carry (name, open_id) pairs, so
339
+ // every event that flows through us teaches the cache without touching
340
+ // the contact API. Must run before any await on the sender resolver.
341
+ learnFromMentions(larkAppId, parsed.mentions);
335
342
  let content = parsed.content.trim();
336
343
  // Strip leading @<bot> mentions so "@bot /oncall bind" is recognized as a command.
337
344
  let cmdContent = stripLeadingMentions(content, parsed.mentions);
@@ -423,6 +430,10 @@ async function handleNewTopic(data, ctx) {
423
430
  // worker will see; promptContent wraps it for prompt-building paths but
424
431
  // leaves `content` untouched for title / log substring uses.
425
432
  const promptContent = buildQuoteHint(parsed, scope, anchor) + content;
433
+ // Resolve sender identity for <sender> tag injection. The first call to
434
+ // resolveSender for an unseen open_id may await contact.v3.user.get with a
435
+ // short budget; subsequent calls hit the cache and are sync-fast.
436
+ const newTopicSender = await resolveSender(larkAppId, senderOpenId, parsed.senderType);
426
437
  refreshCliVersion(botCfg.cliId, botCfg.cliPathOverride);
427
438
  // Create session in pending-repo state — don't spawn CLI yet.
428
439
  // For thread-scope, rootMessageId == anchor (the thread root). Critical
@@ -479,6 +490,7 @@ async function handleNewTopic(data, ctx) {
479
490
  pendingPrompt: promptContent,
480
491
  pendingAttachments: attachments.length > 0 ? attachments : undefined,
481
492
  pendingMentions: parsed.mentions,
493
+ pendingSender: newTopicSender,
482
494
  ownerOpenId: senderOpenId,
483
495
  currentTurnTitle: content.substring(0, 50),
484
496
  workingDir: pinnedWorkingDir,
@@ -491,7 +503,7 @@ async function handleNewTopic(data, ctx) {
491
503
  // Pinned (oncall binding or inherited from sibling bot): spawn CLI immediately.
492
504
  if (pinnedWorkingDir) {
493
505
  const selfBot = getBot(larkAppId);
494
- const prompt = buildNewTopicPrompt(promptContent, session.sessionId, botCfg.cliId, botCfg.cliPathOverride, attachments, parsed.mentions, await getAvailableBots(larkAppId, chatId), undefined, { name: selfBot.botName, openId: selfBot.botOpenId }, localeForBot(larkAppId));
506
+ const prompt = buildNewTopicPrompt(promptContent, session.sessionId, botCfg.cliId, botCfg.cliPathOverride, attachments, parsed.mentions, await getAvailableBots(larkAppId, chatId), undefined, { name: selfBot.botName, openId: selfBot.botOpenId }, localeForBot(larkAppId), newTopicSender);
495
507
  forkWorker(ds, prompt);
496
508
  const reason = oncallEntry
497
509
  ? `oncall-bound chat ${chatId}`
@@ -516,7 +528,7 @@ async function handleNewTopic(data, ctx) {
516
528
  // No projects found — skip repo selection, spawn directly
517
529
  ds.pendingRepo = false;
518
530
  const selfBot = getBot(larkAppId);
519
- const prompt = buildNewTopicPrompt(promptContent, session.sessionId, botCfg.cliId, botCfg.cliPathOverride, attachments, parsed.mentions, await getAvailableBots(larkAppId, chatId), undefined, { name: selfBot.botName, openId: selfBot.botOpenId }, localeForBot(larkAppId));
531
+ const prompt = buildNewTopicPrompt(promptContent, session.sessionId, botCfg.cliId, botCfg.cliPathOverride, attachments, parsed.mentions, await getAvailableBots(larkAppId, chatId), undefined, { name: selfBot.botName, openId: selfBot.botOpenId }, localeForBot(larkAppId), newTopicSender);
520
532
  forkWorker(ds, prompt);
521
533
  logger.info(`Session ${session.sessionId} ready (no projects to select), total active: ${getActiveCount()}`);
522
534
  }
@@ -565,6 +577,7 @@ async function handleThreadReply(data, ctx) {
565
577
  const { extraResources } = await expandMergeForward(larkAppId, parsed.messageId, parsed);
566
578
  resources.push(...extraResources);
567
579
  }
580
+ learnFromMentions(larkAppId, parsed.mentions);
568
581
  // Foreign bot @mention prefix: when sender is another botmux bot,把内容包成
569
582
  // [来自 X 的 @mention]\n<原文> 喂给 worker,让 CLI 知道这是另一个 bot 发的——
570
583
  // 不是用户直接发的——后续不需要按"对话用户"的方式处理。signal-file 路径
@@ -585,14 +598,29 @@ async function handleThreadReply(data, ctx) {
585
598
  senderOpenIdForPrefix !== selfBotOpenId &&
586
599
  (isBotSenderType ||
587
600
  isKnownPeerBot(config.session.dataDir, larkAppId, senderOpenIdForPrefix));
601
+ const foreignBotName = isForeignBot ? lookupForeignBotName(senderOpenIdForPrefix, larkAppId) : undefined;
588
602
  const botSenderPrefix = isForeignBot
589
- ? `${tr('daemon.foreign_bot_mention_prefix', { botName: lookupForeignBotName(senderOpenIdForPrefix, larkAppId) }, localeForBot(larkAppId))}\n`
603
+ ? `${tr('daemon.foreign_bot_mention_prefix', { botName: foreignBotName }, localeForBot(larkAppId))}\n`
590
604
  : '';
591
605
  const promptContent = buildQuoteHint(parsed, scope, anchor) + botSenderPrefix + parsed.content;
592
606
  if (isForeignBot) {
593
607
  logger.info(`[${larkAppId}] foreign-bot @mention prefix attached: sender=${senderOpenIdForPrefix?.substring(0, 12)} ` +
594
608
  `senderType=${parsed.senderType} via=${isBotSenderType ? 'sender_type' : 'cross-ref'}`);
595
609
  }
610
+ // resolveSender is deferred until we know the message actually needs prompt
611
+ // injection. callback URLs, daemon commands, and "other bot owns this
612
+ // anchor" all return early; routing them through resolveSender first would
613
+ // tack the 800ms budget onto paths that never see the sender tag. Use the
614
+ // helper below at every actual injection point.
615
+ let threadSenderCached;
616
+ let threadSenderResolved = false;
617
+ const getThreadSender = async () => {
618
+ if (threadSenderResolved)
619
+ return threadSenderCached;
620
+ threadSenderResolved = true;
621
+ threadSenderCached = await resolveSender(larkAppId, senderOpenIdForPrefix, parsed.senderType, isForeignBot ? { type: 'bot', name: foreignBotName !== 'Bot' ? foreignBotName : undefined } : undefined);
622
+ return threadSenderCached;
623
+ };
596
624
  const content = parsed.content.trim();
597
625
  // Strip leading @<bot> mentions so "@bot /restart" is recognized as a command.
598
626
  const cmdContent = stripLeadingMentions(content, parsed.mentions);
@@ -694,6 +722,13 @@ async function handleThreadReply(data, ctx) {
694
722
  });
695
723
  enriched += `\n\n${tr('daemon.enriched_mentions_label', undefined, localeForBot(larkAppId))}\n${mentionLines.join('\n')}`;
696
724
  }
725
+ // Stamp each buffered follow-up with its own <sender> tag — pendingFollowUps
726
+ // can contain messages from multiple users while a single ds.pendingSender
727
+ // is fixed at the first message, so without per-message attribution the
728
+ // CLI can't tell which user said what after repo selection unlocks the spawn.
729
+ const followUpSenderTag = renderSenderTag(await getThreadSender());
730
+ if (followUpSenderTag)
731
+ enriched = `${followUpSenderTag}\n${enriched}`;
697
732
  if (!ds.pendingFollowUps)
698
733
  ds.pendingFollowUps = [];
699
734
  ds.pendingFollowUps.push(enriched);
@@ -750,6 +785,11 @@ async function handleThreadReply(data, ctx) {
750
785
  })
751
786
  : null;
752
787
  const pinnedWorkingDir = oncallEntry?.workingDir ?? inheritedFrom?.workingDir;
788
+ // Now we know the message will spawn or pend a real session — resolve
789
+ // sender (may await contact API budget) since every downstream branch
790
+ // injects it either into the immediate prompt or stashes it on
791
+ // pendingSender for the deferred spawn.
792
+ const autoCreateSender = await getThreadSender();
753
793
  const newDs = {
754
794
  session,
755
795
  worker: null,
@@ -767,6 +807,7 @@ async function handleThreadReply(data, ctx) {
767
807
  pendingPrompt: promptContent,
768
808
  pendingAttachments: attachments.length > 0 ? attachments : undefined,
769
809
  pendingMentions: parsed.mentions,
810
+ pendingSender: autoCreateSender,
770
811
  ownerOpenId: senderOId,
771
812
  currentTurnTitle: parsed.content.substring(0, 50),
772
813
  workingDir: pinnedWorkingDir,
@@ -780,7 +821,7 @@ async function handleThreadReply(data, ctx) {
780
821
  // spawn CLI immediately, skip repo selection.
781
822
  if (pinnedWorkingDir) {
782
823
  const selfBot = getBot(larkAppId);
783
- const prompt = buildNewTopicPrompt(promptContent, session.sessionId, botCfg.cliId, botCfg.cliPathOverride, attachments, parsed.mentions, await getAvailableBots(larkAppId, autoCreateChatId), undefined, { name: selfBot.botName, openId: selfBot.botOpenId }, localeForBot(larkAppId));
824
+ const prompt = buildNewTopicPrompt(promptContent, session.sessionId, botCfg.cliId, botCfg.cliPathOverride, attachments, parsed.mentions, await getAvailableBots(larkAppId, autoCreateChatId), undefined, { name: selfBot.botName, openId: selfBot.botOpenId }, localeForBot(larkAppId), autoCreateSender);
784
825
  forkWorker(newDs, prompt);
785
826
  const reason = oncallEntry
786
827
  ? `oncall-bound chat ${autoCreateChatId}`
@@ -805,7 +846,7 @@ async function handleThreadReply(data, ctx) {
805
846
  // No projects found — skip repo selection, spawn directly
806
847
  newDs.pendingRepo = false;
807
848
  const selfBot = getBot(larkAppId);
808
- const prompt = buildNewTopicPrompt(promptContent, session.sessionId, botCfg.cliId, botCfg.cliPathOverride, attachments, parsed.mentions, await getAvailableBots(larkAppId, autoCreateChatId), undefined, { name: selfBot.botName, openId: selfBot.botOpenId }, localeForBot(larkAppId));
849
+ const prompt = buildNewTopicPrompt(promptContent, session.sessionId, botCfg.cliId, botCfg.cliPathOverride, attachments, parsed.mentions, await getAvailableBots(larkAppId, autoCreateChatId), undefined, { name: selfBot.botName, openId: selfBot.botOpenId }, localeForBot(larkAppId), autoCreateSender);
809
850
  forkWorker(newDs, prompt);
810
851
  }
811
852
  return;
@@ -835,6 +876,7 @@ async function handleThreadReply(data, ctx) {
835
876
  isAdoptMode: false,
836
877
  cliId: dsBotCfgForMsg.cliId,
837
878
  cliPathOverride: dsBotCfgForMsg.cliPathOverride,
879
+ sender: await getThreadSender(),
838
880
  });
839
881
  beginNewTurn(ds, parsed.content);
840
882
  ds.worker.send({ type: 'message', content: msgContent });
@@ -853,6 +895,14 @@ async function handleThreadReply(data, ctx) {
853
895
  parkStreamCard(ds);
854
896
  ds.streamCardId = undefined;
855
897
  ds.streamCardNonce = undefined;
898
+ // This is a new turn even though the worker is currently down. Force the
899
+ // first screen_update from the re-forked worker to POST a fresh card and
900
+ // drop any persisted screenshot from the previous turn. Otherwise a stale
901
+ // image_key (for example an old Claude Code frame) can be reused on the
902
+ // new Worker card until the next screenshot upload, which makes a fresh
903
+ // @mention appear to resurrect the wrong CLI UI.
904
+ ds.streamCardPending = true;
905
+ ds.currentImageKey = undefined;
856
906
  persistStreamCardState(ds);
857
907
  // Wrap the user message in the same `<user_message>` / `<session_id>` /
858
908
  // `<botmux_reminder>` envelope as live-worker turns. Without this, the
@@ -869,6 +919,7 @@ async function handleThreadReply(data, ctx) {
869
919
  cliId: dsBotCfgForFork.cliId,
870
920
  cliPathOverride: dsBotCfgForFork.cliPathOverride,
871
921
  selfMention: { name: selfBot.botName, openId: selfBot.botOpenId },
922
+ sender: await getThreadSender(),
872
923
  });
873
924
  forkWorker(ds, wrappedPrompt, ds.hasHistory);
874
925
  }
@@ -1100,6 +1151,10 @@ export async function startDaemon(botIndex) {
1100
1151
  logger.warn(`${stragglers}/${survivors.length} worker(s) didn't exit within ${SHUTDOWN_GRACE_MS}ms — SIGKILL'd to prevent ppid=1 orphans.`);
1101
1152
  }
1102
1153
  }
1154
+ // Flush any pending identity-cache writes before exit. The cache uses a
1155
+ // 2s debounce on disk persistence to dedupe writes from chatty groups; on
1156
+ // SIGTERM we want anything learned since the last flush to land.
1157
+ flushIdentityCacheSync();
1103
1158
  removePidFile();
1104
1159
  process.exit(0);
1105
1160
  };
@@ -1111,6 +1166,10 @@ export async function startDaemon(botIndex) {
1111
1166
  process.on('exit', () => {
1112
1167
  clearInterval(descriptorHeartbeat);
1113
1168
  removeDaemonDescriptor(cfg.larkAppId);
1169
+ // Plain-exit path (uncaught fatal, manual process.exit) bypasses the
1170
+ // graceful shutdown above. flushIdentityCacheSync is synchronous and
1171
+ // idempotent — safe to call here as a belt-and-suspenders save.
1172
+ flushIdentityCacheSync();
1114
1173
  });
1115
1174
  logger.info('Daemon is running. Press Ctrl+C to stop.');
1116
1175
  }