@astroanywhere/agent 0.1.31 → 0.1.33
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.
- package/dist/lib/branch-lock.d.ts +46 -0
- package/dist/lib/branch-lock.d.ts.map +1 -0
- package/dist/lib/branch-lock.js +111 -0
- package/dist/lib/branch-lock.js.map +1 -0
- package/dist/lib/git-pr.d.ts +28 -0
- package/dist/lib/git-pr.d.ts.map +1 -1
- package/dist/lib/git-pr.js +62 -0
- package/dist/lib/git-pr.js.map +1 -1
- package/dist/lib/prompt-templates.js +4 -4
- package/dist/lib/prompt-templates.js.map +1 -1
- package/dist/lib/repo-context.d.ts.map +1 -1
- package/dist/lib/repo-context.js +70 -3
- package/dist/lib/repo-context.js.map +1 -1
- package/dist/lib/task-executor.d.ts +6 -0
- package/dist/lib/task-executor.d.ts.map +1 -1
- package/dist/lib/task-executor.js +119 -16
- package/dist/lib/task-executor.js.map +1 -1
- package/dist/lib/websocket-client.d.ts +10 -0
- package/dist/lib/websocket-client.d.ts.map +1 -1
- package/dist/lib/websocket-client.js +74 -0
- package/dist/lib/websocket-client.js.map +1 -1
- package/dist/lib/worktree.d.ts +5 -1
- package/dist/lib/worktree.d.ts.map +1 -1
- package/dist/lib/worktree.js +83 -26
- package/dist/lib/worktree.js.map +1 -1
- package/dist/providers/claude-sdk-adapter.d.ts.map +1 -1
- package/dist/providers/claude-sdk-adapter.js +246 -118
- package/dist/providers/claude-sdk-adapter.js.map +1 -1
- package/dist/types.d.ts +8 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -9,6 +9,7 @@ import { createProviderAdapter } from '../providers/index.js';
|
|
|
9
9
|
import { ClaudeSdkAdapter } from '../providers/claude-sdk-adapter.js';
|
|
10
10
|
import { SlurmJobMonitor } from './slurm-job-monitor.js';
|
|
11
11
|
import { createWorktree } from './worktree.js';
|
|
12
|
+
import { BranchLockManager } from './branch-lock.js';
|
|
12
13
|
import { pushAndCreatePR } from './git-pr.js';
|
|
13
14
|
import { checkWorkdirSafety, isGitAvailable, isGitRepo, createSandbox, WorkdirSafetyTier, } from './workdir-safety.js';
|
|
14
15
|
export class TaskExecutor {
|
|
@@ -27,6 +28,7 @@ export class TaskExecutor {
|
|
|
27
28
|
maxSandboxSize;
|
|
28
29
|
gitAvailable = false;
|
|
29
30
|
hpcCapability;
|
|
31
|
+
branchLockManager = new BranchLockManager();
|
|
30
32
|
// Safety tracking
|
|
31
33
|
tasksByDirectory = new Map(); // workdir -> taskIds
|
|
32
34
|
pendingSafetyChecks = new Map(); // taskId -> pending check
|
|
@@ -49,6 +51,7 @@ export class TaskExecutor {
|
|
|
49
51
|
}).catch(() => {
|
|
50
52
|
this.gitAvailable = false;
|
|
51
53
|
});
|
|
54
|
+
console.log('[executor] Tip: Filter logs for a specific task with: npx @astroanywhere/agent logs -f | grep "taskId"');
|
|
52
55
|
}
|
|
53
56
|
/**
|
|
54
57
|
* Submit a task for execution (with safety checks)
|
|
@@ -254,6 +257,8 @@ export class TaskExecutor {
|
|
|
254
257
|
});
|
|
255
258
|
}
|
|
256
259
|
this.taskQueue = [];
|
|
260
|
+
// Release all branch locks to unblock any waiting tasks
|
|
261
|
+
this.branchLockManager.releaseAll();
|
|
257
262
|
// Stop job monitor
|
|
258
263
|
this.jobMonitor.stop();
|
|
259
264
|
}
|
|
@@ -540,6 +545,24 @@ export class TaskExecutor {
|
|
|
540
545
|
const tasks = this.tasksByDirectory.get(workdir);
|
|
541
546
|
return tasks ? tasks.size : 0;
|
|
542
547
|
}
|
|
548
|
+
/**
|
|
549
|
+
* Determine whether a task will create a git worktree.
|
|
550
|
+
* Used to decide if the branch lock should be acquired.
|
|
551
|
+
*/
|
|
552
|
+
taskWillCreateWorktree(task) {
|
|
553
|
+
const isTextOnly = task.type === 'summarize' || task.type === 'chat' || task.type === 'plan';
|
|
554
|
+
if (isTextOnly)
|
|
555
|
+
return false;
|
|
556
|
+
if (task.useWorktree === false)
|
|
557
|
+
return false;
|
|
558
|
+
if (!this.useWorktree)
|
|
559
|
+
return false;
|
|
560
|
+
if (task.deliveryMode === 'direct')
|
|
561
|
+
return false;
|
|
562
|
+
if (task.deliveryMode === 'copy')
|
|
563
|
+
return false;
|
|
564
|
+
return true;
|
|
565
|
+
}
|
|
543
566
|
async executeTask(task, useSandbox = false) {
|
|
544
567
|
console.log(`[executor] Task ${task.id}: workingDirectory=${task.workingDirectory} sandbox=${useSandbox}`);
|
|
545
568
|
// Setup sandbox if requested
|
|
@@ -633,11 +656,47 @@ export class TaskExecutor {
|
|
|
633
656
|
};
|
|
634
657
|
this.runningTasks.set(normalizedTask.id, runningTask);
|
|
635
658
|
this.wsClient.addActiveTask(normalizedTask.id);
|
|
659
|
+
// Acquire per-branch lock to prevent concurrent worktree creation on the same branch.
|
|
660
|
+
// Tasks sharing a branch (same project) serialize; different branches run in parallel.
|
|
661
|
+
let branchLock;
|
|
662
|
+
if (this.taskWillCreateWorktree(normalizedTask)) {
|
|
663
|
+
const lockKey = BranchLockManager.computeLockKey(normalizedTask.workingDirectory, normalizedTask.shortProjectId, normalizedTask.shortNodeId, normalizedTask.id);
|
|
664
|
+
const queueLength = this.branchLockManager.getQueueLength(lockKey);
|
|
665
|
+
if (queueLength > 0 || this.branchLockManager.isLocked(lockKey)) {
|
|
666
|
+
console.log(`[executor] Task ${task.id}: waiting for branch lock (${queueLength} ahead)`);
|
|
667
|
+
this.wsClient.sendTaskStatus(normalizedTask.id, 'running', 0, 'Waiting for branch lock...');
|
|
668
|
+
}
|
|
669
|
+
branchLock = await this.branchLockManager.acquire(lockKey, normalizedTask.id);
|
|
670
|
+
// If task was cancelled while waiting for the lock, bail out early
|
|
671
|
+
if (abortController.signal.aborted) {
|
|
672
|
+
branchLock.release();
|
|
673
|
+
this.runningTasks.delete(normalizedTask.id);
|
|
674
|
+
this.wsClient.removeActiveTask(normalizedTask.id);
|
|
675
|
+
this.untrackTaskDirectory(task);
|
|
676
|
+
this.processQueue();
|
|
677
|
+
return;
|
|
678
|
+
}
|
|
679
|
+
}
|
|
636
680
|
// Text-only tasks (plan/chat/summarize) without a working directory skip workspace prep
|
|
637
681
|
const isTextOnly = normalizedTask.type === 'summarize' || normalizedTask.type === 'chat' || normalizedTask.type === 'plan';
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
682
|
+
let prepared;
|
|
683
|
+
try {
|
|
684
|
+
prepared = isTextOnly && !normalizedTask.workingDirectory
|
|
685
|
+
? { workingDirectory: '', cleanup: async () => { } }
|
|
686
|
+
: await this.prepareTaskWorkspace(normalizedTask, stream);
|
|
687
|
+
}
|
|
688
|
+
catch (prepErr) {
|
|
689
|
+
// Release branch lock on workspace preparation failure to avoid deadlocking
|
|
690
|
+
// subsequent tasks in the same project (fix from PR #26).
|
|
691
|
+
// Note: processQueue() is NOT called here — the finally block in the outer
|
|
692
|
+
// try-catch handles queue draining for all exit paths, avoiding double-dequeue.
|
|
693
|
+
if (branchLock)
|
|
694
|
+
branchLock.release();
|
|
695
|
+
this.runningTasks.delete(normalizedTask.id);
|
|
696
|
+
this.wsClient.removeActiveTask(normalizedTask.id);
|
|
697
|
+
this.untrackTaskDirectory(task);
|
|
698
|
+
throw prepErr;
|
|
699
|
+
}
|
|
641
700
|
const taskWithWorkspace = { ...normalizedTask, workingDirectory: prepared.workingDirectory };
|
|
642
701
|
runningTask.task = taskWithWorkspace;
|
|
643
702
|
console.log(`[executor] Task ${task.id}: workspace prepared, cwd=${prepared.workingDirectory}`);
|
|
@@ -650,9 +709,25 @@ export class TaskExecutor {
|
|
|
650
709
|
try {
|
|
651
710
|
// Notify task started
|
|
652
711
|
this.wsClient.sendTaskStatus(task.id, 'running', 0, 'Starting');
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
712
|
+
// Resume existing Claude session if resumeSessionId is provided
|
|
713
|
+
const canResume = taskWithWorkspace.resumeSessionId
|
|
714
|
+
&& adapter instanceof ClaudeSdkAdapter
|
|
715
|
+
&& isTextOnly;
|
|
716
|
+
let result;
|
|
717
|
+
if (canResume) {
|
|
718
|
+
console.log(`[executor] Task ${task.id}: resuming session ${taskWithWorkspace.resumeSessionId} with ${adapter.name}...`);
|
|
719
|
+
const resumeResult = await adapter.resumeTask(taskWithWorkspace.id, taskWithWorkspace.prompt, taskWithWorkspace.workingDirectory || process.cwd(), taskWithWorkspace.resumeSessionId, stream, abortController.signal);
|
|
720
|
+
result = {
|
|
721
|
+
taskId: taskWithWorkspace.id,
|
|
722
|
+
status: resumeResult.success ? 'completed' : 'failed',
|
|
723
|
+
output: resumeResult.output,
|
|
724
|
+
error: resumeResult.error,
|
|
725
|
+
};
|
|
726
|
+
}
|
|
727
|
+
else {
|
|
728
|
+
console.log(`[executor] Task ${task.id}: executing with ${adapter.name}...`);
|
|
729
|
+
result = await adapter.execute(taskWithWorkspace, stream, abortController.signal);
|
|
730
|
+
}
|
|
656
731
|
// Delivery-mode-aware result handling
|
|
657
732
|
const deliveryMode = task.deliveryMode ?? 'pr';
|
|
658
733
|
// Build PR title: prefer summary.workCompleted (agent knows what it did),
|
|
@@ -669,6 +744,7 @@ export class TaskExecutor {
|
|
|
669
744
|
? `[${task.shortProjectId}/${task.shortNodeId}] ${rawTitle}`
|
|
670
745
|
: rawTitle;
|
|
671
746
|
if (prepared.branchName && result.status === 'completed') {
|
|
747
|
+
this.wsClient.sendTaskStatus(task.id, 'running', 90, 'Delivering changes...');
|
|
672
748
|
// Build PR body: enrich with summary data when available
|
|
673
749
|
const prBodyParts = [];
|
|
674
750
|
if (summary) {
|
|
@@ -715,6 +791,7 @@ export class TaskExecutor {
|
|
|
715
791
|
}
|
|
716
792
|
else if (deliveryMode === 'push') {
|
|
717
793
|
// Push branch to remote, but don't create a PR — user creates PR manually
|
|
794
|
+
this.wsClient.sendTaskStatus(task.id, 'running', 95, 'Pushing branch...');
|
|
718
795
|
console.log(`[executor] Task ${task.id}: push mode, pushing branch ${prepared.branchName}`);
|
|
719
796
|
const prResult = await pushAndCreatePR(prepared.workingDirectory, {
|
|
720
797
|
branchName: prepared.branchName,
|
|
@@ -741,22 +818,37 @@ export class TaskExecutor {
|
|
|
741
818
|
}
|
|
742
819
|
}
|
|
743
820
|
else {
|
|
744
|
-
// 'pr' — push + create PR
|
|
821
|
+
// 'pr' — push + create PR, auto-merge into project branch if applicable
|
|
822
|
+
this.wsClient.sendTaskStatus(task.id, 'running', 95, 'Creating pull request...');
|
|
745
823
|
console.log(`[executor] Task ${task.id}: pr mode, attempting PR creation for branch ${prepared.branchName}`);
|
|
824
|
+
const hasProjectBranch = !!task.projectBranch;
|
|
746
825
|
const prResult = await pushAndCreatePR(prepared.workingDirectory, {
|
|
747
826
|
branchName: prepared.branchName,
|
|
748
827
|
taskTitle: prTitle,
|
|
749
828
|
taskDescription: task.description || task.prompt.slice(0, 500),
|
|
750
829
|
body: prBody,
|
|
751
830
|
baseBranch: prepared.baseBranch,
|
|
831
|
+
autoMerge: hasProjectBranch,
|
|
832
|
+
commitBeforeSha: prepared.commitBeforeSha,
|
|
752
833
|
});
|
|
753
834
|
result.branchName = prResult.branchName;
|
|
754
835
|
if (prResult.prUrl) {
|
|
755
836
|
result.prUrl = prResult.prUrl;
|
|
756
837
|
result.prNumber = prResult.prNumber;
|
|
757
|
-
result.
|
|
838
|
+
result.commitBeforeSha = prResult.commitBeforeSha;
|
|
839
|
+
result.commitAfterSha = prResult.commitAfterSha;
|
|
758
840
|
keepBranch = true;
|
|
759
|
-
|
|
841
|
+
if (prResult.autoMergeFailed) {
|
|
842
|
+
// PR was created but auto-merge into project branch failed —
|
|
843
|
+
// subsequent tasks won't see this task's changes
|
|
844
|
+
result.deliveryStatus = 'failed';
|
|
845
|
+
result.deliveryError = 'PR created but auto-merge into project branch failed';
|
|
846
|
+
console.error(`[executor] Task ${task.id}: PR created at ${prResult.prUrl} but auto-merge failed`);
|
|
847
|
+
}
|
|
848
|
+
else {
|
|
849
|
+
result.deliveryStatus = 'success';
|
|
850
|
+
console.log(`[executor] Task ${task.id}: PR created at ${prResult.prUrl}`);
|
|
851
|
+
}
|
|
760
852
|
}
|
|
761
853
|
else if (prResult.error) {
|
|
762
854
|
// Delivery failure — don't override execution status
|
|
@@ -809,7 +901,8 @@ export class TaskExecutor {
|
|
|
809
901
|
// Don't send final result — the SlurmJobMonitor will send it when jobs finish
|
|
810
902
|
}
|
|
811
903
|
else {
|
|
812
|
-
// Send final result
|
|
904
|
+
// Send final status + result
|
|
905
|
+
this.wsClient.sendTaskStatus(task.id, 'completed', 100, 'Task complete');
|
|
813
906
|
this.wsClient.sendTaskResult(result);
|
|
814
907
|
}
|
|
815
908
|
}
|
|
@@ -826,14 +919,16 @@ export class TaskExecutor {
|
|
|
826
919
|
}
|
|
827
920
|
finally {
|
|
828
921
|
clearTimeout(timeoutId);
|
|
829
|
-
//
|
|
830
|
-
//
|
|
831
|
-
//
|
|
832
|
-
|
|
833
|
-
|
|
922
|
+
// Always cleanup the local worktree directory to reclaim disk space
|
|
923
|
+
// (node_modules alone is ~680MB per worktree). When keepBranch is true
|
|
924
|
+
// (PR created or branch pushed), we preserve the git branch but still
|
|
925
|
+
// remove the working copy — the branch lives on remote/local refs,
|
|
926
|
+
// and re-execution will create a fresh worktree if needed.
|
|
927
|
+
if (this.preserveWorktrees) {
|
|
928
|
+
console.log(`[executor] Task ${task.id}: worktree preserved (debug mode)`);
|
|
834
929
|
}
|
|
835
930
|
else {
|
|
836
|
-
await prepared.cleanup({ keepBranch
|
|
931
|
+
await prepared.cleanup({ keepBranch });
|
|
837
932
|
}
|
|
838
933
|
// Sandbox: copy back results then cleanup
|
|
839
934
|
if (sandbox) {
|
|
@@ -848,6 +943,13 @@ export class TaskExecutor {
|
|
|
848
943
|
console.log(`[executor] Task ${task.id}: cleaning up sandbox`);
|
|
849
944
|
await sandbox.cleanup();
|
|
850
945
|
}
|
|
946
|
+
// Release branch lock after execution + delivery (auto-merge) completes.
|
|
947
|
+
// The accumulative model requires the lock to be held through auto-merge
|
|
948
|
+
// so the next task branches from the updated project branch tip.
|
|
949
|
+
if (branchLock) {
|
|
950
|
+
branchLock.release();
|
|
951
|
+
console.log(`[executor] Task ${task.id}: branch lock released after delivery`);
|
|
952
|
+
}
|
|
851
953
|
// Untrack task from directory
|
|
852
954
|
this.untrackTaskDirectory(task);
|
|
853
955
|
this.runningTasks.delete(task.id);
|
|
@@ -920,6 +1022,7 @@ export class TaskExecutor {
|
|
|
920
1022
|
shortNodeId: task.shortNodeId,
|
|
921
1023
|
agentDir: task.agentDir,
|
|
922
1024
|
baseBranch: task.baseBranch,
|
|
1025
|
+
projectBranch: task.projectBranch,
|
|
923
1026
|
stdout: stream.stdout,
|
|
924
1027
|
stderr: stream.stderr,
|
|
925
1028
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-executor.js","sourceRoot":"","sources":["../../src/lib/task-executor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"task-executor.js","sourceRoot":"","sources":["../../src/lib/task-executor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAGlC,OAAO,EAAE,qBAAqB,EAAwB,MAAM,uBAAuB,CAAC;AACpF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAyB,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,SAAS,EACT,aAAa,EACb,iBAAiB,GAGlB,MAAM,qBAAqB,CAAC;AA6B7B,MAAM,OAAO,YAAY;IACf,QAAQ,CAAkB;IAC1B,YAAY,GAA6B,IAAI,GAAG,EAAE,CAAC;IACnD,SAAS,GAAW,EAAE,CAAC;IACvB,kBAAkB,CAAS;IAC3B,cAAc,CAAS;IACvB,QAAQ,GAAuC,IAAI,GAAG,EAAE,CAAC;IACzD,WAAW,CAAU;IACrB,YAAY,CAAU;IACtB,iBAAiB,CAAU;IAC3B,UAAU,CAAkB;IAC5B,WAAW,CAAU;IACrB,UAAU,CAAU;IACpB,cAAc,CAAS;IACvB,YAAY,GAAY,KAAK,CAAC;IAC9B,aAAa,CAAuB;IACpC,iBAAiB,GAAG,IAAI,iBAAiB,EAAE,CAAC;IAEpD,kBAAkB;IACV,gBAAgB,GAA6B,IAAI,GAAG,EAAE,CAAC,CAAC,qBAAqB;IAC7E,mBAAmB,GAAoC,IAAI,GAAG,EAAE,CAAC,CAAC,0BAA0B;IAEpG,YAAY,OAA4B;QACtC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,IAAI,EAAE,CAAC;QAC3D,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,OAAO,CAAC,CAAC,SAAS;QAClE,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC;QAC/C,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QACzC,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,IAAI,KAAK,CAAC;QAC5D,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,KAAK,CAAC;QAChD,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,KAAK,CAAC;QAC9C,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,QAAQ;QAC3E,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC;QACnD,IAAI,CAAC,UAAU,GAAG,IAAI,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAExD,oCAAoC;QACpC,cAAc,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE;YAClC,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,kBAAkB,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;QAC7E,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;YACZ,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,wGAAwG,CAAC,CAAC;IACxH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,IAAU;QACzB,2FAA2F;QAC3F,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,KAAK,WAAW,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC;QAEjG,MAAM,cAAc,GAAG;YACrB,GAAG,IAAI;YACP,gBAAgB,EAAE,cAAc,IAAI,CAAC,IAAI,CAAC,gBAAgB;gBACxD,CAAC,CAAC,SAAU,CAAE,sDAAsD;gBACpE,CAAC,CAAC,uBAAuB,CAAC,IAAI,CAAC,gBAAgB,CAAC;SACnD,CAAC;QAEF,8DAA8D;QAC9D,MAAM,eAAe,GAAG,IAAI,CAAC,WAAW;eACnC,cAAc,CAAC,WAAW,KAAK,KAAK;eACpC,cAAc,CAAC,YAAY,KAAK,QAAQ,CAAC;QAE9C,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YAC5C,uEAAuE;YACvE,+DAA+D;YAC/D,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,MAAM,SAAS,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAC;YAC9F,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;YAC5D,CAAC;YACD,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;YACxC,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBACrD,MAAM,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;YAChD,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBACpC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,4BAA4B,CAAC,CAAC;YAC7F,CAAC;YACD,OAAO;QACT,CAAC;QAED,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,+DAA+D;YAC/D,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;YAEnF,sBAAsB;YACtB,IAAI,WAAW,CAAC,IAAI,KAAK,iBAAiB,CAAC,MAAM,EAAE,CAAC;gBAClD,kFAAkF;gBAClF,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;oBAC3B,MAAM,EAAE,cAAc,CAAC,EAAE;oBACzB,MAAM,EAAE,QAAQ;oBAChB,KAAK,EAAE,WAAW,CAAC,WAAW;oBAC9B,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;iBACtC,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YAED,IAAI,WAAW,CAAC,IAAI,KAAK,iBAAiB,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACtE,iDAAiD;gBACjD,MAAM,IAAI,CAAC,qBAAqB,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;gBAC9D,oDAAoD;gBACpD,OAAO;YACT,CAAC;YAED,IAAI,WAAW,CAAC,IAAI,KAAK,iBAAiB,CAAC,OAAO,EAAE,CAAC;gBACnD,iCAAiC;gBACjC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;YACpF,CAAC;QACH,CAAC;QAED,0BAA0B;QAC1B,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;QAExC,kCAAkC;QAClC,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACrD,MAAM,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1D,CAAC;aAAM,CAAC;YACN,iBAAiB;YACjB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACpC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,4BAA4B,CAAC,CAAC;QAC7F,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,oBAAoB,CACxB,MAAc,EACd,QAAuD;QAEvD,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACrD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,kCAAkC,MAAM,uBAAuB,CAAC,CAAC;YAC9E,OAAO;QACT,CAAC;QAED,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACxC,OAAO,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,MAAc;QACvB,sBAAsB;QACtB,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC9C,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,cAAc;QACd,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;QACpE,IAAI,UAAU,IAAI,CAAC,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;YACrC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;gBAC3B,MAAM;gBACN,MAAM,EAAE,WAAW;gBACnB,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACtC,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,WAAW,CAAC,MAAc,EAAE,UAAmB;QACnD,OAAO,CAAC,GAAG,CAAC,mBAAmB,MAAM,sBAAsB,UAAU,CAAC,CAAC,CAAC,aAAa,UAAU,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAE3G,gDAAgD;QAChD,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC9C,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,GAAG,CAAC,mBAAmB,MAAM,0CAA0C,CAAC,CAAC;YACjF,OAAO,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAClC,CAAC;QAED,6CAA6C;QAC7C,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,CAAC;gBACH,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;gBACxD,sCAAsC;gBACtC,MAAM,YAAY,GAAG,QAAQ,CAAC,+BAA+B,EAAE;oBAC7D,QAAQ,EAAE,OAAO;oBACjB,OAAO,EAAE,MAAM;iBAChB,CAAC,CAAC;gBAEH,IAAI,YAAgC,CAAC;gBACrC,IAAI,WAA+B,CAAC;gBACpC,KAAK,MAAM,IAAI,IAAI,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC5C,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;wBACjC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;oBACtD,CAAC;yBAAM,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;wBACnE,YAAY,GAAG,WAAW,CAAC;wBAC3B,MAAM;oBACR,CAAC;gBACH,CAAC;gBAED,IAAI,YAAY,EAAE,CAAC;oBACjB,OAAO,CAAC,GAAG,CAAC,mBAAmB,MAAM,0BAA0B,YAAY,EAAE,CAAC,CAAC;oBAC/E,IAAI,CAAC;wBACH,QAAQ,CAAC,gCAAgC,YAAY,GAAG,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;oBACpG,CAAC;oBAAC,MAAM,CAAC;wBACP,sDAAsD;wBACtD,QAAQ,CAAC,WAAW,YAAY,GAAG,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;wBAC7E,QAAQ,CAAC,oBAAoB,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;oBACzE,CAAC;oBACD,OAAO,CAAC,GAAG,CAAC,mBAAmB,MAAM,oBAAoB,CAAC,CAAC;gBAC7D,CAAC;gBAED,sBAAsB;gBACtB,IAAI,CAAC;oBACH,QAAQ,CAAC,kBAAkB,UAAU,GAAG,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;oBAClF,OAAO,CAAC,GAAG,CAAC,mBAAmB,MAAM,kBAAkB,UAAU,UAAU,CAAC,CAAC;gBAC/E,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,CAAC,GAAG,CAAC,mBAAmB,MAAM,kBAAkB,UAAU,+BAA+B,CAAC,CAAC;gBACpG,CAAC;gBAED,uBAAuB;gBACvB,IAAI,CAAC;oBACH,QAAQ,CAAC,6BAA6B,UAAU,GAAG,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;oBAC7F,OAAO,CAAC,GAAG,CAAC,mBAAmB,MAAM,mBAAmB,UAAU,UAAU,CAAC,CAAC;gBAChF,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,CAAC,GAAG,CAAC,mBAAmB,MAAM,mBAAmB,UAAU,+BAA+B,CAAC,CAAC;gBACrG,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACnE,OAAO,CAAC,KAAK,CAAC,mBAAmB,MAAM,qBAAqB,GAAG,EAAE,CAAC,CAAC;YACrE,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACH,aAAa;QACX,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI;YAC/B,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM;SAC9B,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,SAAS;QACP,2BAA2B;QAC3B,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YAClD,OAAO,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;YAChC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;gBAC3B,MAAM;gBACN,MAAM,EAAE,WAAW;gBACnB,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACtC,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAE1B,cAAc;QACd,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAClC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;gBAC3B,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,MAAM,EAAE,WAAW;gBACnB,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACtC,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QAEpB,wDAAwD;QACxD,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,CAAC;QAEpC,mBAAmB;QACnB,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,qBAAqB,CAAC,GAAW;QAC/B,IAAI,CAAC,kBAAkB,GAAG,GAAG,CAAC;QAC9B,kDAAkD;QAClD,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,SAAS,CAAC,MAAc,EAAE,OAAe,EAAE,SAAS,GAAG,KAAK;QAChE,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAE9C,IAAI,OAAO,EAAE,CAAC;YACZ,+DAA+D;YAC/D,IAAI,OAAO,CAAC,OAAO,YAAY,gBAAgB,IAAI,OAAO,OAAO,CAAC,OAAO,CAAC,aAAa,KAAK,UAAU,EAAE,CAAC;gBACvG,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;gBACjF,IAAI,QAAQ,EAAE,CAAC;oBACb,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;gBAC5B,CAAC;gBACD,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,+CAA+C,EAAE,CAAC;YACtF,CAAC;YACD,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,kDAAkD,EAAE,CAAC;QACzF,CAAC;QAED,wEAAwE;QACxE,MAAM,OAAO,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;QACpD,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;YAC/C,IAAI,OAAO,EAAE,CAAC;gBACZ,4CAA4C;gBAC5C,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;gBAC5D,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YAC5B,CAAC;QACH,CAAC;QAED,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,mCAAmC,EAAE,CAAC;IAC1E,CAAC;IAED;;OAEG;IACK,sBAAsB,CAAC,MAAc;QAC3C,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YAC7C,IAAI,OAAO,YAAY,gBAAgB,EAAE,CAAC;gBACxC,MAAM,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;gBAC/C,IAAI,OAAO;oBAAE,OAAO,OAAO,CAAC;YAC9B,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,mBAAmB,CAC/B,MAAc,EACd,OAAe,EACf,OAAyB,EACzB,OAAyD;QAEzD,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;QAC9C,IAAI,YAAY,GAAG,CAAC,CAAC;QAErB,MAAM,MAAM,GAAG;YACb,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;gBACvB,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAC1D,CAAC;YACD,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;gBACvB,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAC1D,CAAC;YACD,MAAM,EAAE,CAAC,MAAkB,EAAE,QAAiB,EAAE,aAAsB,EAAE,EAAE;gBACxE,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;YACxE,CAAC;YACD,SAAS,EAAE,CAAC,QAAgB,EAAE,SAAmB,EAAE,UAAoB,EAAE,OAAiB,EAAE,EAAE;gBAC5F,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;YAChF,CAAC;YACD,IAAI,EAAE,CAAC,IAAY,EAAE,EAAE;gBACrB,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;YAC3D,CAAC;YACD,OAAO,EAAE,CAAC,QAAgB,EAAE,SAAkB,EAAE,EAAE;gBAChD,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;YAC7D,CAAC;YACD,UAAU,EAAE,CAAC,QAAgB,EAAE,MAAe,EAAE,OAAgB,EAAE,EAAE;gBAClE,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;YACtE,CAAC;YACD,UAAU,EAAE,CAAC,IAAY,EAAE,MAA0C,EAAE,UAAmB,EAAE,YAAqB,EAAE,IAAa,EAAE,EAAE;gBAClI,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;YACzF,CAAC;YACD,WAAW,EAAE,CAAC,SAAiB,EAAE,KAAc,EAAE,EAAE;gBACjD,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;YAC9D,CAAC;YACD,eAAe,EAAE,KAAK,EAAE,QAAgB,EAAE,OAAiB,EAAE,EAAE;gBAC7D,OAAO,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;YACtE,CAAC;SACF,CAAC;QAEF,IAAI,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,CAAC,CAAC;YAC1E,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,CACrC,MAAM,EACN,OAAO,EACP,OAAO,CAAC,gBAAgB,IAAI,OAAO,CAAC,GAAG,EAAE,EACzC,OAAO,CAAC,SAAS,EACjB,MAAM,EACN,eAAe,CAAC,MAAM,CACvB,CAAC;YAEF,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;gBAC3B,MAAM;gBACN,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ;gBAC/C,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACtC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,QAAQ,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACxE,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;gBAC3B,MAAM;gBACN,MAAM,EAAE,QAAQ;gBAChB,KAAK,EAAE,kBAAkB,QAAQ,EAAE;gBACnC,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACtC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,+EAA+E;IAC/E,kBAAkB;IAClB,+EAA+E;IAE/E;;OAEG;IACK,KAAK,CAAC,kBAAkB,CAAC,IAAU,EAAE,eAAwB;QACnE,MAAM,gBAAgB,GAAG,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC/E,OAAO,MAAM,kBAAkB,CAAC,IAAI,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,IAAI,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;IAC/G,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,qBAAqB,CACjC,IAAU,EACV,WAA8B;QAE9B,sDAAsD;QACtD,MAAM,OAAO,GAAG;YACd,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,+CAA+C,EAAE;YACzG,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,sBAAsB,EAAE,WAAW,EAAE,wCAAwC,EAAE;YACxG,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,gDAAgD,EAAE;YAC3G,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,0BAA0B,EAAE;SAChF,CAAC;QAEF,sFAAsF;QACtF,MAAM,0BAA0B,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,SAAS;QACrE,MAAM,eAAe,GAAG,IAAI,OAAO,CAAgD,CAAC,OAAO,EAAE,EAAE;YAC7F,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE;gBACpC,IAAI;gBACJ,YAAY,EAAE,WAAW;gBACzB,eAAe,EAAE,OAAO;aACzB,CAAC,CAAC;YAEH,4CAA4C;YAC5C,UAAU,CAAC,GAAG,EAAE;gBACd,IAAI,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;oBAC1C,OAAO,CAAC,IAAI,CAAC,uCAAuC,IAAI,CAAC,EAAE,oBAAoB,0BAA0B,GAAG,IAAI,oBAAoB,CAAC,CAAC;oBACtI,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACzC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACpB,CAAC;YACH,CAAC,EAAE,0BAA0B,CAAC,CAAC,KAAK,EAAE,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,cAAc;QACd,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,EAAE,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAExF,oBAAoB;QACpB,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC;QAEvC,kBAAkB;QAClB,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,SAAS;gBACZ,+BAA+B;gBAC/B,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;gBAC9B,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;oBACrD,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBACtC,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC1B,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,4BAA4B,CAAC,CAAC;gBACnF,CAAC;gBACD,MAAM;YAER,KAAK,SAAS;gBACZ,0BAA0B;gBAC1B,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;gBAC9B,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;oBACrD,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,qBAAqB;gBAC3D,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC1B,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,sCAAsC,CAAC,CAAC;gBAC7F,CAAC;gBACD,MAAM;YAER,KAAK,UAAU;gBACb,2BAA2B;gBAC3B,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;oBAChD,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,gCAAgC,CAAC,CAAC;oBACrF,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;oBAC9B,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;wBACrD,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;oBACtC,CAAC;yBAAM,CAAC;wBACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBAC1B,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,4BAA4B,CAAC,CAAC;oBACnF,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;wBAC3B,MAAM,EAAE,IAAI,CAAC,EAAE;wBACf,MAAM,EAAE,QAAQ;wBAChB,KAAK,EAAE,6BAA6B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;wBAC5F,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;qBACtC,CAAC,CAAC;gBACL,CAAC;gBACD,MAAM;YAER,KAAK,QAAQ;gBACX,kBAAkB;gBAClB,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;oBAC3B,MAAM,EAAE,IAAI,CAAC,EAAE;oBACf,MAAM,EAAE,WAAW;oBACnB,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;iBACtC,CAAC,CAAC;gBACH,MAAM;QACV,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,aAAa,CAAC,OAAe;QACzC,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;QACxD,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;QAChD,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;QAC/D,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;QAC3C,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;QAE1C,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QAEtF,8DAA8D;QAC9D,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QAClD,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAEhD,IAAI,CAAC;YAAC,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC;YAC1C,MAAM,SAAS,CAAC,aAAa,EAAE,0CAA0C,CAAC,CAAC;QAC7E,CAAC;QACD,IAAI,CAAC;YAAC,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC;YACzC,MAAM,SAAS,CAAC,YAAY,EAAE,kDAAkD,CAAC,CAAC;QACpF,CAAC;QAED,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QAC5E,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,gBAAgB,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;IACpG,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,cAAc,CAAC,OAAe;QAC1C,IAAI,CAAC;YACH,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;YACxD,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;YAChD,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;YAC1C,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;YAClH,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QACzC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;OAEG;IACK,kBAAkB,CAAC,IAAU;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC;QAC5E,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnB,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;IAC1D,CAAC;IAED;;OAEG;IACK,oBAAoB,CAAC,IAAU;QACrC,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC/D,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACtB,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBACrB,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACtD,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACK,yBAAyB,CAAC,OAAe;QAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACjD,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC;IAED;;;OAGG;IACK,sBAAsB,CAAC,IAAU;QACvC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,KAAK,WAAW,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC;QAC7F,IAAI,UAAU;YAAE,OAAO,KAAK,CAAC;QAC7B,IAAI,IAAI,CAAC,WAAW,KAAK,KAAK;YAAE,OAAO,KAAK,CAAC;QAC7C,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO,KAAK,CAAC;QACpC,IAAI,IAAI,CAAC,YAAY,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QACjD,IAAI,IAAI,CAAC,YAAY,KAAK,MAAM;YAAE,OAAO,KAAK,CAAC;QAC/C,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,IAAU,EAAE,UAAU,GAAG,KAAK;QACtD,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAAC,EAAE,sBAAsB,IAAI,CAAC,gBAAgB,YAAY,UAAU,EAAE,CAAC,CAAC;QAE3G,6BAA6B;QAC7B,IAAI,OAAiC,CAAC;QACtC,IAAI,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAEpC,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,CAAC;gBACH,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,CAAC,CAAC;gBAC3E,OAAO,GAAG,MAAM,aAAa,CAAC;oBAC5B,OAAO,EAAE,IAAI,CAAC,gBAAgB;oBAC9B,MAAM,EAAE,IAAI,CAAC,EAAE;oBACf,OAAO,EAAE,IAAI,CAAC,cAAc;iBAC7B,CAAC,CAAC;gBACH,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC;gBAC9B,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAAC,EAAE,wBAAwB,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;YACvF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,QAAQ,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACxE,OAAO,CAAC,KAAK,CAAC,mBAAmB,IAAI,CAAC,EAAE,8BAA8B,QAAQ,EAAE,CAAC,CAAC;gBAClF,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;oBAC3B,MAAM,EAAE,IAAI,CAAC,EAAE;oBACf,MAAM,EAAE,QAAQ;oBAChB,KAAK,EAAE,4BAA4B,QAAQ,EAAE;oBAC7C,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;iBACtC,CAAC,CAAC;gBACH,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;gBAChC,IAAI,CAAC,YAAY,EAAE,CAAC;gBACpB,OAAO;YACT,CAAC;QACH,CAAC;QAED,MAAM,cAAc,GAAG,EAAE,GAAG,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC;QAE9D,0CAA0C;QAC1C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC/D,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,mBAAmB,IAAI,CAAC,EAAE,cAAc,cAAc,CAAC,QAAQ,gBAAgB,CAAC,CAAC;YAC/F,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;gBAC3B,MAAM,EAAE,cAAc,CAAC,EAAE;gBACzB,MAAM,EAAE,QAAQ;gBAChB,KAAK,EAAE,YAAY,cAAc,CAAC,QAAQ,gBAAgB;gBAC1D,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACtC,CAAC,CAAC;YACH,IAAI,OAAO;gBAAE,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;YACrC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;YAChC,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAAC,EAAE,aAAa,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,SAAS,CAAC,CAAC;QAE3F,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;QAC9C,MAAM,cAAc,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;QAEhD,2EAA2E;QAC3E,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,MAAM,MAAM,GAAG;YACb,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;gBACvB,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC;YAC3F,CAAC;YACD,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;gBACvB,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC;YAC3F,CAAC;YACD,MAAM,EAAE,CAAC,MAAkB,EAAE,QAAiB,EAAE,OAAgB,EAAE,EAAE;gBAClE,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;YAC7E,CAAC;YACD,SAAS,EAAE,CAAC,QAAgB,EAAE,SAAmB,EAAE,UAAoB,EAAE,OAAiB,EAAE,EAAE;gBAC5F,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;YAC3F,CAAC;YACD,IAAI,EAAE,CAAC,IAAY,EAAE,EAAE;gBACrB,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,cAAc,CAAC,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;YACtE,CAAC;YACD,OAAO,EAAE,CAAC,QAAgB,EAAE,SAAkB,EAAE,EAAE;gBAChD,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,cAAc,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;YACxE,CAAC;YACD,UAAU,EAAE,CAAC,QAAgB,EAAE,MAAe,EAAE,OAAgB,EAAE,EAAE;gBAClE,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,cAAc,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;YACjF,CAAC;YACD,UAAU,EAAE,CAAC,IAAY,EAAE,MAA0C,EAAE,UAAmB,EAAE,YAAqB,EAAE,IAAa,EAAE,EAAE;gBAClI,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,cAAc,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;YACpG,CAAC;YACD,WAAW,EAAE,CAAC,SAAiB,EAAE,KAAc,EAAE,EAAE;gBACjD,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,cAAc,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;YACzE,CAAC;YACD,eAAe,EAAE,KAAK,EAAE,QAAgB,EAAE,OAAiB,EAAE,EAAE;gBAC7D,OAAO,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,cAAc,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;YACjF,CAAC;SACF,CAAC;QAEF,MAAM,WAAW,GAAgB;YAC/B,IAAI,EAAE,cAAc;YACpB,eAAe;YACf,OAAO;YACP,cAAc;YACd,OAAO;SACR,CAAC;QAEF,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;QACtD,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;QAE/C,sFAAsF;QACtF,uFAAuF;QACvF,IAAI,UAAwC,CAAC;QAC7C,IAAI,IAAI,CAAC,sBAAsB,CAAC,cAAc,CAAC,EAAE,CAAC;YAChD,MAAM,OAAO,GAAG,iBAAiB,CAAC,cAAc,CAC9C,cAAc,CAAC,gBAAgB,EAC/B,cAAc,CAAC,cAAc,EAC7B,cAAc,CAAC,WAAW,EAC1B,cAAc,CAAC,EAAE,CAClB,CAAC;YACF,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;YACnE,IAAI,WAAW,GAAG,CAAC,IAAI,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAChE,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAAC,EAAE,8BAA8B,WAAW,SAAS,CAAC,CAAC;gBAC1F,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,4BAA4B,CAAC,CAAC;YAC9F,CAAC;YACD,UAAU,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC,EAAE,CAAC,CAAC;YAC9E,mEAAmE;YACnE,IAAI,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnC,UAAU,CAAC,OAAO,EAAE,CAAC;gBACrB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;gBAC5C,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;gBAClD,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;gBAChC,IAAI,CAAC,YAAY,EAAE,CAAC;gBACpB,OAAO;YACT,CAAC;QACH,CAAC;QAED,wFAAwF;QACxF,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,KAAK,WAAW,IAAI,cAAc,CAAC,IAAI,KAAK,MAAM,IAAI,cAAc,CAAC,IAAI,KAAK,MAAM,CAAC;QAC3H,IAAI,QAA+D,CAAC;QACpE,IAAI,CAAC;YACH,QAAQ,GAAG,UAAU,IAAI,CAAC,cAAc,CAAC,gBAAgB;gBACvD,CAAC,CAAC,EAAE,gBAAgB,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC,EAAE;gBACnD,CAAC,CAAC,MAAM,IAAI,CAAC,oBAAoB,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;QAC9D,CAAC;QAAC,OAAO,OAAO,EAAE,CAAC;YACjB,4EAA4E;YAC5E,0DAA0D;YAC1D,2EAA2E;YAC3E,gFAAgF;YAChF,IAAI,UAAU;gBAAE,UAAU,CAAC,OAAO,EAAE,CAAC;YACrC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;YAC5C,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;YAClD,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;YAChC,MAAM,OAAO,CAAC;QAChB,CAAC;QACD,MAAM,iBAAiB,GAAG,EAAE,GAAG,cAAc,EAAE,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB,EAAE,CAAC;QAC7F,WAAW,CAAC,IAAI,GAAG,iBAAiB,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAAC,EAAE,6BAA6B,QAAQ,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAEhG,uBAAuB;QACvB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,cAAc,CAAC;QACpD,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;YAChC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC1B,CAAC,EAAE,OAAO,CAAC,CAAC;QAEZ,IAAI,UAAU,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC;YACH,sBAAsB;YACtB,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;YAEhE,gEAAgE;YAChE,MAAM,SAAS,GAAG,iBAAiB,CAAC,eAAe;mBAC9C,OAAO,YAAY,gBAAgB;mBACnC,UAAU,CAAC;YAEhB,IAAI,MAAmD,CAAC;YACxD,IAAI,SAAS,EAAE,CAAC;gBACd,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAAC,EAAE,sBAAsB,iBAAiB,CAAC,eAAe,SAAS,OAAO,CAAC,IAAI,KAAK,CAAC,CAAC;gBACzH,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,UAAU,CAC3C,iBAAiB,CAAC,EAAE,EACpB,iBAAiB,CAAC,MAAM,EACxB,iBAAiB,CAAC,gBAAgB,IAAI,OAAO,CAAC,GAAG,EAAE,EACnD,iBAAiB,CAAC,eAAgB,EAClC,MAAM,EACN,eAAe,CAAC,MAAM,CACvB,CAAC;gBACF,MAAM,GAAG;oBACP,MAAM,EAAE,iBAAiB,CAAC,EAAE;oBAC5B,MAAM,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ;oBACrD,MAAM,EAAE,YAAY,CAAC,MAAM;oBAC3B,KAAK,EAAE,YAAY,CAAC,KAAK;iBAC1B,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAAC,EAAE,oBAAoB,OAAO,CAAC,IAAI,KAAK,CAAC,CAAC;gBAC7E,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,iBAAiB,EAAE,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;YACpF,CAAC;YAED,sCAAsC;YACtC,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC;YAC/C,0EAA0E;YAC1E,iCAAiC;YACjC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;YAC/B,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAAC,EAAE,gCAAgC,OAAO,CAAC,MAAM,mBAAmB,CAAC,CAAC,OAAO,CAAC,aAAa,sBAAsB,CAAC,CAAC,OAAO,CAAC,gBAAgB,iBAAiB,OAAO,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC,kBAAkB,OAAO,CAAC,YAAY,EAAE,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC;YACxR,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,EAAE,oCAAoC,CAAC,CAAC;YAC/E,CAAC;YACD,MAAM,QAAQ,GAAG,OAAO,EAAE,aAAa,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YACnF,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,WAAW;gBACrD,CAAC,CAAC,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,WAAW,KAAK,QAAQ,EAAE;gBAC5D,CAAC,CAAC,QAAQ,CAAC;YACb,IAAI,QAAQ,CAAC,UAAU,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;gBACzD,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,uBAAuB,CAAC,CAAC;gBAC9E,yDAAyD;gBACzD,MAAM,WAAW,GAAa,EAAE,CAAC;gBACjC,IAAI,OAAO,EAAE,CAAC;oBACZ,qDAAqD;oBACrD,WAAW,CAAC,IAAI,CAAC,iBAAiB,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;oBAC3D,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;wBAC7B,WAAW,CAAC,IAAI,CAAC,kBAAkB,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;oBACjE,CAAC;oBACD,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACnC,WAAW,CAAC,IAAI,CAAC,iBAAiB,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACzF,CAAC;oBACD,IAAI,OAAO,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACpC,WAAW,CAAC,IAAI,CAAC,uBAAuB,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACpG,CAAC;gBACH,CAAC;qBAAM,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;oBAC3C,WAAW,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;gBAClF,CAAC;gBACD,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;oBAC3D,WAAW,CAAC,IAAI,CAAC,oCAAoC,IAAI,CAAC,YAAY,YAAY,IAAI,CAAC,SAAS,SAAS,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;gBAC/H,CAAC;gBACD,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;oBACxB,WAAW,CAAC,IAAI,CAAC,8BAA8B,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;gBACxE,CAAC;qBAAM,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;oBAClC,WAAW,CAAC,IAAI,CAAC,+BAA+B,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;gBAC5E,CAAC;gBACD,WAAW,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;gBAC5D,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAExC,IAAI,CAAC;oBACH,IAAI,YAAY,KAAK,QAAQ,EAAE,CAAC;wBAC9B,4CAA4C;wBAC5C,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAAC,EAAE,sCAAsC,CAAC,CAAC;oBAChF,CAAC;yBAAM,IAAI,YAAY,KAAK,MAAM,EAAE,CAAC;wBACnC,mDAAmD;wBACnD,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAAC,EAAE,sCAAsC,QAAQ,CAAC,gBAAgB,EAAE,CAAC,CAAC;oBAC3G,CAAC;yBAAM,IAAI,YAAY,KAAK,QAAQ,EAAE,CAAC;wBACrC,kDAAkD;wBAClD,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAAC,EAAE,mCAAmC,CAAC,CAAC;wBAC3E,MAAM,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;wBACxC,UAAU,GAAG,IAAI,CAAC;oBACpB,CAAC;yBAAM,IAAI,YAAY,KAAK,MAAM,EAAE,CAAC;wBACnC,0EAA0E;wBAC1E,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,mBAAmB,CAAC,CAAC;wBAC1E,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAAC,EAAE,+BAA+B,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;wBAC5F,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,QAAQ,CAAC,gBAAgB,EAAE;4BAChE,UAAU,EAAE,QAAQ,CAAC,UAAU;4BAC/B,SAAS,EAAE,OAAO;4BAClB,eAAe,EAAE,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;4BAC9D,MAAM,EAAE,IAAI;4BACZ,UAAU,EAAE,QAAQ,CAAC,UAAU;yBAChC,CAAC,CAAC;wBACH,MAAM,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;wBACxC,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;4BACnB,qDAAqD;4BACrD,MAAM,CAAC,cAAc,GAAG,QAAQ,CAAC;4BACjC,MAAM,CAAC,aAAa,GAAG,yBAAyB,QAAQ,CAAC,KAAK,EAAE,CAAC;4BACjE,OAAO,CAAC,KAAK,CAAC,mBAAmB,IAAI,CAAC,EAAE,2BAA2B,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;wBACvF,CAAC;6BAAM,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;4BAC3B,MAAM,CAAC,cAAc,GAAG,SAAS,CAAC;4BAClC,UAAU,GAAG,IAAI,CAAC;4BAClB,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAAC,EAAE,oBAAoB,QAAQ,CAAC,UAAU,GAAG,CAAC,CAAC;wBACpF,CAAC;6BAAM,CAAC;4BACN,MAAM,CAAC,cAAc,GAAG,SAAS,CAAC;4BAClC,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAAC,EAAE,sBAAsB,CAAC,CAAC;wBAChE,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,wEAAwE;wBACxE,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,0BAA0B,CAAC,CAAC;wBACjF,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAAC,EAAE,gDAAgD,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;wBAC7G,MAAM,gBAAgB,GAAG,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC;wBAC9C,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,QAAQ,CAAC,gBAAgB,EAAE;4BAChE,UAAU,EAAE,QAAQ,CAAC,UAAU;4BAC/B,SAAS,EAAE,OAAO;4BAClB,eAAe,EAAE,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;4BAC9D,IAAI,EAAE,MAAM;4BACZ,UAAU,EAAE,QAAQ,CAAC,UAAU;4BAC/B,SAAS,EAAE,gBAAgB;4BAC3B,eAAe,EAAE,QAAQ,CAAC,eAAe;yBAC1C,CAAC,CAAC;wBACH,MAAM,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;wBACxC,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;4BACnB,MAAM,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;4BAC9B,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;4BACpC,MAAM,CAAC,eAAe,GAAG,QAAQ,CAAC,eAAe,CAAC;4BAClD,MAAM,CAAC,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAC;4BAChD,UAAU,GAAG,IAAI,CAAC;4BAClB,IAAI,QAAQ,CAAC,eAAe,EAAE,CAAC;gCAC7B,6DAA6D;gCAC7D,iDAAiD;gCACjD,MAAM,CAAC,cAAc,GAAG,QAAQ,CAAC;gCACjC,MAAM,CAAC,aAAa,GAAG,sDAAsD,CAAC;gCAC9E,OAAO,CAAC,KAAK,CAAC,mBAAmB,IAAI,CAAC,EAAE,mBAAmB,QAAQ,CAAC,KAAK,wBAAwB,CAAC,CAAC;4BACrG,CAAC;iCAAM,CAAC;gCACN,MAAM,CAAC,cAAc,GAAG,SAAS,CAAC;gCAClC,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAAC,EAAE,mBAAmB,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;4BAC7E,CAAC;wBACH,CAAC;6BAAM,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;4BAC1B,qDAAqD;4BACrD,MAAM,CAAC,cAAc,GAAG,QAAQ,CAAC;4BACjC,MAAM,CAAC,aAAa,GAAG,uBAAuB,QAAQ,CAAC,KAAK,EAAE,CAAC;4BAC/D,UAAU,GAAG,QAAQ,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,+BAA+B;4BACtE,OAAO,CAAC,KAAK,CAAC,mBAAmB,IAAI,CAAC,EAAE,yBAAyB,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;wBACrF,CAAC;6BAAM,CAAC;4BACN,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAAC,EAAE,sBAAsB,CAAC,CAAC;wBAChE,CAAC;oBACH,CAAC;gBACH,CAAC;gBAAC,OAAO,OAAO,EAAE,CAAC;oBACjB,MAAM,KAAK,GAAG,OAAO,YAAY,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;oBAC3E,OAAO,CAAC,KAAK,CAAC,mBAAmB,IAAI,CAAC,EAAE,eAAe,YAAY,aAAa,KAAK,EAAE,CAAC,CAAC;oBACzF,qDAAqD;oBACrD,MAAM,CAAC,cAAc,GAAG,QAAQ,CAAC;oBACjC,MAAM,CAAC,aAAa,GAAG,oBAAoB,KAAK,EAAE,CAAC;gBACrD,CAAC;YACH,CAAC;YAED,oFAAoF;YACpF,iEAAiE;YACjE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;gBAClB,IAAI,OAAO,EAAE,KAAK,IAAI,OAAO,EAAE,QAAQ,EAAE,CAAC;oBACxC,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;oBAC7B,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;oBACnC,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAAC,EAAE,gCAAgC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;gBACzF,CAAC;qBAAM,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;oBACzB,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;oBACxF,IAAI,OAAO,EAAE,CAAC;wBACZ,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;wBAC1B,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBAC3C,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAAC,EAAE,yCAAyC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;oBACjG,CAAC;gBACH,CAAC;YACH,CAAC;YACD,wFAAwF;YACxF,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,OAAO,EAAE,UAAU,EAAE,CAAC;gBAC9C,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;YACzC,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAAC,EAAE,2BAA2B,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,aAAa,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAErM,qEAAqE;YACrE,0EAA0E;YAC1E,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACjE,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3B,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAAC,EAAE,KAAK,WAAW,CAAC,MAAM,mDAAmD,CAAC,CAAC;gBAClH,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,eAAe,WAAW,CAAC,MAAM,kBAAkB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAClI,8EAA8E;YAChF,CAAC;iBAAM,CAAC;gBACN,6BAA6B;gBAC7B,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,eAAe,CAAC,CAAC;gBACzE,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,oCAAoC;YACpC,MAAM,QAAQ,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACxE,OAAO,CAAC,KAAK,CAAC,mBAAmB,IAAI,CAAC,EAAE,sBAAsB,QAAQ,EAAE,CAAC,CAAC;YAC1E,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;gBAC3B,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,MAAM,EAAE,QAAQ;gBAChB,KAAK,EAAE,QAAQ;gBACf,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACtC,CAAC,CAAC;QACL,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,SAAS,CAAC,CAAC;YAExB,oEAAoE;YACpE,uEAAuE;YACvE,sEAAsE;YACtE,mEAAmE;YACnE,2DAA2D;YAC3D,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC3B,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAAC,EAAE,mCAAmC,CAAC,CAAC;YAC7E,CAAC;iBAAM,CAAC;gBACN,MAAM,QAAQ,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;YACzC,CAAC;YAED,0CAA0C;YAC1C,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,CAAC;oBACH,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAAC,EAAE,gCAAgC,CAAC,CAAC;oBACxE,MAAM,OAAO,CAAC,QAAQ,EAAE,CAAC;gBAC3B,CAAC;gBAAC,OAAO,WAAW,EAAE,CAAC;oBACrB,MAAM,GAAG,GAAG,WAAW,YAAY,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;oBACrF,OAAO,CAAC,KAAK,CAAC,mBAAmB,IAAI,CAAC,EAAE,8BAA8B,GAAG,EAAE,CAAC,CAAC;gBAC/E,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAAC,EAAE,uBAAuB,CAAC,CAAC;gBAC/D,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;YAC1B,CAAC;YAED,yEAAyE;YACzE,yEAAyE;YACzE,iEAAiE;YACjE,IAAI,UAAU,EAAE,CAAC;gBACf,UAAU,CAAC,OAAO,EAAE,CAAC;gBACrB,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAAC,EAAE,uCAAuC,CAAC,CAAC;YACjF,CAAC;YAED,8BAA8B;YAC9B,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;YAEhC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAClC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACxC,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,oBAAoB,CAChC,IAAU,EACV,MAA0E;QAQ1E,qEAAqE;QACrE,IAAI,IAAI,CAAC,WAAW,KAAK,KAAK,EAAE,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAAC,EAAE,8DAA8D,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;YAC7H,OAAO,EAAE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,OAAO,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC,EAAE,CAAC;QAC9E,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,EAAE,4DAA4D,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;YAC5H,OAAO,EAAE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,OAAO,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC,EAAE,CAAC;QAC9E,CAAC;QAED,qDAAqD;QACrD,IAAI,IAAI,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAAC,EAAE,8CAA8C,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;YAC7G,OAAO,EAAE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,OAAO,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC,EAAE,CAAC;QAC9E,CAAC;QAED,6DAA6D;QAC7D,IAAI,IAAI,CAAC,YAAY,KAAK,MAAM,EAAE,CAAC;YACjC,IAAI,CAAC;gBACH,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC;gBAC/C,IAAI,IAAI,CAAC,gBAAgB,KAAK,WAAW,EAAE,CAAC;oBAC1C,MAAM,EAAE,uBAAuB,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;oBACvE,MAAM,GAAG,GAAG,MAAM,uBAAuB,CAAC,IAAI,CAAC,gBAAgB,EAAE,YAAY,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;oBACxF,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAAC,EAAE,2BAA2B,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC;oBACrF,OAAO,EAAE,gBAAgB,EAAE,GAAG,CAAC,YAAY,EAAE,OAAO,EAAE,KAAK,IAAI,EAAE,GAAG,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/F,CAAC;gBACD,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;gBAClE,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,gBAAgB,EAAE,YAAY,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;gBACpF,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAAC,EAAE,sBAAsB,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;gBACjF,OAAO,EAAE,gBAAgB,EAAE,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,KAAK,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjG,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,QAAQ,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACxE,OAAO,CAAC,KAAK,CAAC,mBAAmB,IAAI,CAAC,EAAE,2BAA2B,QAAQ,qBAAqB,CAAC,CAAC;gBAClG,OAAO,EAAE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,OAAO,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC,EAAE,CAAC;YAC9E,CAAC;QACH,CAAC;QAED,2EAA2E;QAC3E,0EAA0E;QAC1E,2EAA2E;QAC3E,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,MAAM,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC;YACnE,OAAO,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,EAAE,qBAAqB,IAAI,CAAC,gBAAgB,qCAAqC,CAAC,CAAC;YACxH,OAAO,EAAE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,OAAO,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC,EAAE,CAAC;QAC9E,CAAC;QAED,+EAA+E;QAC/E,4DAA4D;QAC5D,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC;YAC7E,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAAC,EAAE,6CAA6C,CAAC,CAAC;YACrF,MAAM,CAAC,MAAM,CAAC,+DAA+D,CAAC,CAAC;YAC/E,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAClD,CAAC;QAED,uEAAuE;QACvE,uEAAuE;QACvE,wCAAwC;QACxC,IAAI,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAAC,EAAE,mCAAmC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;YAClG,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC;gBACpC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;gBACvC,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,MAAM,EAAE,IAAI,CAAC,UAAU;gBACvB,cAAc,EAAE,IAAI,CAAC,cAAc;gBACnC,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,MAAM,EAAE,MAAM,CAAC,MAAM;aACtB,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,KAAK,CAAC,uCAAuC,IAAI,CAAC,gBAAgB,qCAAqC,CAAC,CAAC;YACrH,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAAC,EAAE,yBAAyB,QAAQ,CAAC,gBAAgB,aAAa,QAAQ,CAAC,UAAU,GAAG,CAAC,CAAC;YAC7H,OAAO,QAAQ,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,QAAQ,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACxE,OAAO,CAAC,KAAK,CAAC,mBAAmB,IAAI,CAAC,EAAE,+BAA+B,QAAQ,EAAE,CAAC,CAAC;YACnF,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,0BAA0B,QAAQ,EAAE,CAAC,CAAC;YACzF,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,IAAkB;QACzC,cAAc;QACd,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,qFAAqF;QACrF,MAAM,OAAO,GAAG,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAChE,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,IAAI,CAAC;QACd,CAAC;QAED,6CAA6C;QAC7C,IAAI,OAAO,YAAY,gBAAgB,EAAE,CAAC;YACxC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACzC,CAAC;QAED,qBAAqB;QACrB,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC;QAC9C,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,IAAI,CAAC;QACd,CAAC;QAED,mBAAmB;QACnB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACjC,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,YAAY;QAClB,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrF,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;YACpC,IAAI,IAAI,EAAE,CAAC;gBACT,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;oBACnC,OAAO,CAAC,KAAK,CAAC,0BAA0B,IAAI,CAAC,EAAE,yBAAyB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC9H,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAED;;;;;GAKG;AACH,SAAS,uBAAuB,CAAC,KAAyB;IACxD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CACb,qDAAqD;YACrD,uEAAuE,CACxE,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACzG,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,6EAA6E,CAAC,CAAC;IACjG,CAAC;IAED,6CAA6C;IAC7C,mFAAmF;IACnF,+EAA+E;IAC/E,0FAA0F;IAC1F,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;QAClB,OAAO,OAAO,EAAE,CAAC;IACnB,CAAC;IACD,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3B,OAAO,OAAO,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -38,9 +38,12 @@ export declare class WebSocketClient {
|
|
|
38
38
|
private reconnectAttempts;
|
|
39
39
|
private reconnectTimeout;
|
|
40
40
|
private heartbeatInterval;
|
|
41
|
+
private tokenRefreshTimeout;
|
|
41
42
|
private isConnecting;
|
|
42
43
|
private shouldReconnect;
|
|
43
44
|
private activeTasks;
|
|
45
|
+
private pendingMessages;
|
|
46
|
+
private static MAX_PENDING;
|
|
44
47
|
private pendingApprovals;
|
|
45
48
|
private onEvent?;
|
|
46
49
|
private onTaskDispatch?;
|
|
@@ -71,6 +74,12 @@ export declare class WebSocketClient {
|
|
|
71
74
|
* Returns null in dev mode when no token is configured (allows unauthenticated connections).
|
|
72
75
|
*/
|
|
73
76
|
private ensureValidToken;
|
|
77
|
+
/**
|
|
78
|
+
* Schedule a proactive token refresh before the current token expires.
|
|
79
|
+
* Refreshes at 80% of the token's lifetime so we never hit expiry while connected.
|
|
80
|
+
*/
|
|
81
|
+
private scheduleTokenRefresh;
|
|
82
|
+
private cancelTokenRefresh;
|
|
74
83
|
/**
|
|
75
84
|
* Connect to the relay server
|
|
76
85
|
*/
|
|
@@ -222,6 +231,7 @@ export declare class WebSocketClient {
|
|
|
222
231
|
sendSessionsListResponse(correlationId: string, sessions: import('../types.js').ClaudeCodeSessionInfo[], error?: string): void;
|
|
223
232
|
private handleClose;
|
|
224
233
|
private send;
|
|
234
|
+
private drainPendingMessages;
|
|
225
235
|
private startHeartbeat;
|
|
226
236
|
private stopHeartbeat;
|
|
227
237
|
private scheduleReconnect;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocket-client.d.ts","sourceRoot":"","sources":["../../src/lib/websocket-client.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAIV,iBAAiB,EAwBjB,4BAA4B,EAG5B,uBAAuB,EACvB,wBAAwB,EAGxB,wBAAwB,EACxB,yBAAyB,EACzB,wBAAwB,EACxB,yBAAyB,EACzB,qBAAqB,EACrB,sBAAsB,EACtB,YAAY,EACZ,qBAAqB,EACrB,YAAY,EAEZ,kBAAkB,EAClB,UAAU,EACV,IAAI,EACL,MAAM,aAAa,CAAC;AAerB,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,YAAY,EAAE,CAAC;IAC1B,mBAAmB,CAAC,EAAE,qBAAqB,EAAE,CAAC;IAC9C,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACtC,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC9F,oBAAoB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,KAAK,IAAI,CAAC;IACzG,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9D,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3D,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,KAAK,IAAI,CAAC;IAChE,iBAAiB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,KAAK,IAAI,CAAC;IACtF,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,uBAAuB,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC;IACpE,eAAe,CAAC,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7E,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,wBAAwB,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC;IACtE,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,wBAAwB,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC;IACtE,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,qBAAqB,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC;IAChE,cAAc,CAAC,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACpE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AA8BD,qBAAa,eAAe;IAC1B,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,mBAAmB,CAAC,CAA0B;IACtD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAC,CAAS;IAEzB,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,gBAAgB,CAA+B;IACvD,OAAO,CAAC,iBAAiB,CAA+B;IACxD,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,eAAe,CAAQ;IAC/B,OAAO,CAAC,WAAW,CAA0B;IAC7C,OAAO,CAAC,gBAAgB,CAAmJ;IAE3K,OAAO,CAAC,OAAO,CAAC,CAAqB;IACrC,OAAO,CAAC,cAAc,CAAC,CAAuB;IAC9C,OAAO,CAAC,YAAY,CAAC,CAA2B;IAChD,OAAO,CAAC,WAAW,CAAC,CAAkF;IACtG,OAAO,CAAC,oBAAoB,CAAC,CAAoF;IACjH,OAAO,CAAC,aAAa,CAAC,CAAgD;IACtE,OAAO,CAAC,UAAU,CAAC,CAAgD;IACnE,OAAO,CAAC,eAAe,CAAC,CAAgD;IACxE,OAAO,CAAC,iBAAiB,CAAC,CAAoE;IAC9F,OAAO,CAAC,WAAW,CAAC,CAAwD;IAC5E,OAAO,CAAC,eAAe,CAAC,CAA6D;IACrF,OAAO,CAAC,YAAY,CAAC,CAAyD;IAC9E,OAAO,CAAC,YAAY,CAAC,CAAyD;IAC9E,OAAO,CAAC,SAAS,CAAC,CAAsD;IACxE,OAAO,CAAC,cAAc,CAAC,CAAqD;gBAEhE,OAAO,EAAE,sBAAsB;IAyB3C;;OAEG;IACH,OAAO,CAAC,eAAe;IAcvB;;OAEG;YACW,kBAAkB;IAqChC;;;OAGG;YACW,gBAAgB;IAkC9B;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAoE9B;;OAEG;IACH,UAAU,IAAI,IAAI;IAUlB;;OAEG;IACH,cAAc,CACZ,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,EAC9C,QAAQ,CAAC,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,MAAM,GACf,IAAI;IASP;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IASjG;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAYxC;;OAEG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI;IASnH;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IASlE;;OAEG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI;IAS3E;;OAEG;IACH,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAS7F;;OAEG;IACH,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI;IAS7J;;OAEG;IACH,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAS5E;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,OAAO,GAAG,IAAI;IAY9F;;;OAGG;IACH,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAmB3I;;OAEG;IACH,gBAAgB,CACd,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,EACnD,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,OAAO,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,GAClE,IAAI;IAgBP;;OAEG;IACG,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;IAUzC;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;OAEG;IACH,SAAS,IAAI,YAAY;IAIzB;;OAEG;IACH,kBAAkB,IAAI,MAAM;IAI5B;;OAEG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAInC;;OAEG;IACH,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;YAQxB,UAAU;
|
|
1
|
+
{"version":3,"file":"websocket-client.d.ts","sourceRoot":"","sources":["../../src/lib/websocket-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,9 +27,12 @@ export class WebSocketClient {
|
|
|
27
27
|
reconnectAttempts = 0;
|
|
28
28
|
reconnectTimeout = null;
|
|
29
29
|
heartbeatInterval = null;
|
|
30
|
+
tokenRefreshTimeout = null;
|
|
30
31
|
isConnecting = false;
|
|
31
32
|
shouldReconnect = true;
|
|
32
33
|
activeTasks = new Set();
|
|
34
|
+
pendingMessages = [];
|
|
35
|
+
static MAX_PENDING = 5000;
|
|
33
36
|
pendingApprovals = new Map();
|
|
34
37
|
onEvent;
|
|
35
38
|
onTaskDispatch;
|
|
@@ -154,6 +157,54 @@ export class WebSocketClient {
|
|
|
154
157
|
}
|
|
155
158
|
return token;
|
|
156
159
|
}
|
|
160
|
+
/**
|
|
161
|
+
* Schedule a proactive token refresh before the current token expires.
|
|
162
|
+
* Refreshes at 80% of the token's lifetime so we never hit expiry while connected.
|
|
163
|
+
*/
|
|
164
|
+
scheduleTokenRefresh() {
|
|
165
|
+
this.cancelTokenRefresh();
|
|
166
|
+
const token = this.wsToken || configManager.getWsToken();
|
|
167
|
+
if (!token)
|
|
168
|
+
return; // Dev mode, no token needed
|
|
169
|
+
try {
|
|
170
|
+
const decoded = jwt.decode(token);
|
|
171
|
+
if (!decoded?.exp)
|
|
172
|
+
return;
|
|
173
|
+
const now = Math.floor(Date.now() / 1000);
|
|
174
|
+
const expiresInSec = decoded.exp - now;
|
|
175
|
+
if (expiresInSec <= 0)
|
|
176
|
+
return; // Already expired
|
|
177
|
+
// Refresh at 80% of lifetime (e.g., 48 min for a 60-min token), minimum 60s
|
|
178
|
+
const refreshInMs = Math.max(expiresInSec * 0.8, 60) * 1000;
|
|
179
|
+
console.log(`[ws-client] Token refresh scheduled in ${Math.round(refreshInMs / 1000 / 60)}min`);
|
|
180
|
+
this.tokenRefreshTimeout = setTimeout(async () => {
|
|
181
|
+
try {
|
|
182
|
+
console.log('[ws-client] Proactively refreshing token before expiry...');
|
|
183
|
+
const newToken = await this.refreshAccessToken();
|
|
184
|
+
this.wsToken = newToken;
|
|
185
|
+
console.log('[ws-client] ✅ Token refreshed, reconnecting with new token');
|
|
186
|
+
// Close gracefully — handleClose will trigger reconnect with the new token
|
|
187
|
+
if (this.ws?.readyState === WebSocket.OPEN) {
|
|
188
|
+
this.ws.close(1000, 'Token refresh');
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
catch (error) {
|
|
192
|
+
console.error('[ws-client] ❌ Proactive token refresh failed:', error instanceof Error ? error.message : String(error));
|
|
193
|
+
// Retry in 5 minutes
|
|
194
|
+
this.tokenRefreshTimeout = setTimeout(() => this.scheduleTokenRefresh(), 5 * 60 * 1000);
|
|
195
|
+
}
|
|
196
|
+
}, refreshInMs);
|
|
197
|
+
}
|
|
198
|
+
catch {
|
|
199
|
+
// Can't decode token, skip scheduling
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
cancelTokenRefresh() {
|
|
203
|
+
if (this.tokenRefreshTimeout) {
|
|
204
|
+
clearTimeout(this.tokenRefreshTimeout);
|
|
205
|
+
this.tokenRefreshTimeout = null;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
157
208
|
/**
|
|
158
209
|
* Connect to the relay server
|
|
159
210
|
*/
|
|
@@ -445,8 +496,12 @@ export class WebSocketClient {
|
|
|
445
496
|
},
|
|
446
497
|
};
|
|
447
498
|
this.send(registerMsg);
|
|
499
|
+
// Drain any messages buffered while disconnected
|
|
500
|
+
this.drainPendingMessages();
|
|
448
501
|
// Start heartbeat
|
|
449
502
|
this.startHeartbeat();
|
|
503
|
+
// Schedule proactive token refresh before expiry
|
|
504
|
+
this.scheduleTokenRefresh();
|
|
450
505
|
this.emitEvent({ type: 'connected' });
|
|
451
506
|
}
|
|
452
507
|
handleMessage(data) {
|
|
@@ -869,6 +924,24 @@ export class WebSocketClient {
|
|
|
869
924
|
if (this.ws?.readyState === WebSocket.OPEN) {
|
|
870
925
|
this.ws.send(JSON.stringify(message));
|
|
871
926
|
}
|
|
927
|
+
else {
|
|
928
|
+
if (this.pendingMessages.length >= WebSocketClient.MAX_PENDING) {
|
|
929
|
+
this.pendingMessages.shift();
|
|
930
|
+
console.warn('[ws-client] Pending buffer full, dropping oldest message');
|
|
931
|
+
}
|
|
932
|
+
this.pendingMessages.push(message);
|
|
933
|
+
console.log(`[ws-client] Buffered ${message.type} message (${this.pendingMessages.length} pending, WS state: ${this.ws?.readyState ?? 'null'})`);
|
|
934
|
+
}
|
|
935
|
+
}
|
|
936
|
+
drainPendingMessages() {
|
|
937
|
+
if (this.pendingMessages.length === 0)
|
|
938
|
+
return;
|
|
939
|
+
const count = this.pendingMessages.length;
|
|
940
|
+
console.log(`[ws-client] Draining ${count} buffered messages after reconnect`);
|
|
941
|
+
const messages = this.pendingMessages.splice(0);
|
|
942
|
+
for (const msg of messages) {
|
|
943
|
+
this.send(msg);
|
|
944
|
+
}
|
|
872
945
|
}
|
|
873
946
|
startHeartbeat() {
|
|
874
947
|
this.heartbeatInterval = setInterval(async () => {
|
|
@@ -918,6 +991,7 @@ export class WebSocketClient {
|
|
|
918
991
|
}
|
|
919
992
|
cleanup() {
|
|
920
993
|
this.stopHeartbeat();
|
|
994
|
+
this.cancelTokenRefresh();
|
|
921
995
|
if (this.reconnectTimeout) {
|
|
922
996
|
clearTimeout(this.reconnectTimeout);
|
|
923
997
|
this.reconnectTimeout = null;
|