@vybestack/llxprt-code-core 0.4.3 → 0.4.5

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 (89) hide show
  1. package/README.md +8 -0
  2. package/dist/prompt-config/defaults/default-prompts.json +42 -0
  3. package/dist/src/config/config.d.ts +2 -6
  4. package/dist/src/config/config.js +60 -17
  5. package/dist/src/config/config.js.map +1 -1
  6. package/dist/src/config/index.d.ts +1 -1
  7. package/dist/src/config/index.js.map +1 -1
  8. package/dist/src/core/client.d.ts +10 -6
  9. package/dist/src/core/client.js +128 -68
  10. package/dist/src/core/client.js.map +1 -1
  11. package/dist/src/core/geminiChat.d.ts +6 -5
  12. package/dist/src/core/geminiChat.js +90 -56
  13. package/dist/src/core/geminiChat.js.map +1 -1
  14. package/dist/src/core/prompts.js +8 -3
  15. package/dist/src/core/prompts.js.map +1 -1
  16. package/dist/src/prompt-config/TemplateEngine.js +46 -9
  17. package/dist/src/prompt-config/TemplateEngine.js.map +1 -1
  18. package/dist/src/prompt-config/defaults/core-defaults.js +15 -1
  19. package/dist/src/prompt-config/defaults/core-defaults.js.map +1 -1
  20. package/dist/src/prompt-config/defaults/core.md +15 -1
  21. package/dist/src/prompt-config/defaults/manifest-loader.d.ts +9 -0
  22. package/dist/src/prompt-config/defaults/manifest-loader.js +98 -0
  23. package/dist/src/prompt-config/defaults/manifest-loader.js.map +1 -0
  24. package/dist/src/prompt-config/defaults/prompt-warnings.d.ts +8 -0
  25. package/dist/src/prompt-config/defaults/prompt-warnings.js +29 -0
  26. package/dist/src/prompt-config/defaults/prompt-warnings.js.map +1 -0
  27. package/dist/src/prompt-config/defaults/provider-defaults.js +15 -1
  28. package/dist/src/prompt-config/defaults/provider-defaults.js.map +1 -1
  29. package/dist/src/prompt-config/defaults/providers/anthropic/core.md +16 -0
  30. package/dist/src/prompt-config/defaults/providers/gemini/core.md +7 -2
  31. package/dist/src/prompt-config/defaults/providers/gemini/models/gemini-2.5-flash/core.md +6 -2
  32. package/dist/src/prompt-config/defaults/providers/gemini/models/gemini-2.5-flash/gemini-2-5-flash/core.md +6 -2
  33. package/dist/src/prompt-config/defaults/providers/openai/core.md +16 -0
  34. package/dist/src/prompt-config/defaults/providers/openai/tools/todo-pause.md +1 -1
  35. package/dist/src/prompt-config/defaults/tool-defaults.js +14 -1
  36. package/dist/src/prompt-config/defaults/tool-defaults.js.map +1 -1
  37. package/dist/src/prompt-config/defaults/tools/memory.md +1 -1
  38. package/dist/src/prompt-config/defaults/tools/save-memory.md +1 -0
  39. package/dist/src/prompt-config/defaults/tools/todo-pause.md +28 -0
  40. package/dist/src/prompt-config/types.d.ts +3 -0
  41. package/dist/src/providers/BaseProvider.d.ts +4 -0
  42. package/dist/src/providers/BaseProvider.js +18 -0
  43. package/dist/src/providers/BaseProvider.js.map +1 -1
  44. package/dist/src/providers/anthropic/AnthropicProvider.d.ts +2 -0
  45. package/dist/src/providers/anthropic/AnthropicProvider.js +30 -1
  46. package/dist/src/providers/anthropic/AnthropicProvider.js.map +1 -1
  47. package/dist/src/providers/gemini/GeminiProvider.d.ts +3 -0
  48. package/dist/src/providers/gemini/GeminiProvider.js +105 -80
  49. package/dist/src/providers/gemini/GeminiProvider.js.map +1 -1
  50. package/dist/src/providers/openai/OpenAIProvider.d.ts +10 -5
  51. package/dist/src/providers/openai/OpenAIProvider.js +291 -62
  52. package/dist/src/providers/openai/OpenAIProvider.js.map +1 -1
  53. package/dist/src/providers/openai/parseResponsesStream.js +14 -3
  54. package/dist/src/providers/openai/parseResponsesStream.js.map +1 -1
  55. package/dist/src/providers/openai-responses/OpenAIResponsesProvider.d.ts +2 -0
  56. package/dist/src/providers/openai-responses/OpenAIResponsesProvider.js +42 -12
  57. package/dist/src/providers/openai-responses/OpenAIResponsesProvider.js.map +1 -1
  58. package/dist/src/services/complexity-analyzer.d.ts +10 -1
  59. package/dist/src/services/complexity-analyzer.js +57 -10
  60. package/dist/src/services/complexity-analyzer.js.map +1 -1
  61. package/dist/src/services/history/HistoryService.d.ts +8 -0
  62. package/dist/src/services/history/HistoryService.js +37 -4
  63. package/dist/src/services/history/HistoryService.js.map +1 -1
  64. package/dist/src/services/todo-reminder-service.d.ts +5 -0
  65. package/dist/src/services/todo-reminder-service.js +26 -3
  66. package/dist/src/services/todo-reminder-service.js.map +1 -1
  67. package/dist/src/telemetry/constants.d.ts +0 -1
  68. package/dist/src/telemetry/constants.js +0 -1
  69. package/dist/src/telemetry/constants.js.map +1 -1
  70. package/dist/src/telemetry/index.d.ts +2 -2
  71. package/dist/src/telemetry/index.js +2 -2
  72. package/dist/src/telemetry/index.js.map +1 -1
  73. package/dist/src/telemetry/loggers.d.ts +1 -2
  74. package/dist/src/telemetry/loggers.js +1 -17
  75. package/dist/src/telemetry/loggers.js.map +1 -1
  76. package/dist/src/telemetry/types.d.ts +1 -7
  77. package/dist/src/telemetry/types.js +0 -10
  78. package/dist/src/telemetry/types.js.map +1 -1
  79. package/dist/src/tools/mcp-tool.d.ts +9 -0
  80. package/dist/src/tools/mcp-tool.js +13 -1
  81. package/dist/src/tools/mcp-tool.js.map +1 -1
  82. package/dist/src/tools/tool-registry.js +7 -8
  83. package/dist/src/tools/tool-registry.js.map +1 -1
  84. package/dist/src/utils/errorParsing.js +70 -5
  85. package/dist/src/utils/errorParsing.js.map +1 -1
  86. package/dist/src/utils/retry.d.ts +4 -2
  87. package/dist/src/utils/retry.js +129 -86
  88. package/dist/src/utils/retry.js.map +1 -1
  89. package/package.json +1 -1
@@ -37,6 +37,11 @@ export declare class GeminiClient {
37
37
  private readonly complexitySuggestionCooldown;
38
38
  private lastSentIdeContext;
39
39
  private forceFullIdeContext;
40
+ private lastTodoToolTurn?;
41
+ private consecutiveComplexTurns;
42
+ private lastComplexitySuggestionTurn?;
43
+ private toolActivityCount;
44
+ private toolCallReminderLevel;
40
45
  /**
41
46
  * At any point in this conversation, was compression triggered without
42
47
  * being forced and did it fail?
@@ -47,6 +52,11 @@ export declare class GeminiClient {
47
52
  private lazyInitialize;
48
53
  getContentGenerator(): ContentGenerator;
49
54
  getUserTier(): UserTierId | undefined;
55
+ private processComplexityAnalysis;
56
+ private shouldEscalateReminder;
57
+ private isTodoToolCall;
58
+ private appendTodoSuffixToRequest;
59
+ private recordModelActivity;
50
60
  addHistory(content: Content): Promise<void>;
51
61
  getChat(): GeminiChat;
52
62
  /**
@@ -86,10 +96,4 @@ export declare class GeminiClient {
86
96
  */
87
97
  tryCompressChat(prompt_id: string, force?: boolean): Promise<ChatCompressionInfo>;
88
98
  private getEnabledToolNamesForPrompt;
89
- /**
90
- * Handles falling back to Flash model when persistent 429 errors occur for OAuth users.
91
- * Uses a fallback handler if provided by the config; otherwise, returns null.
92
- * Note: This only applies to OAuth users with Gemini models, not for other providers.
93
- */
94
- private handleFlashFallback;
95
99
  }
@@ -15,16 +15,20 @@ import { HistoryService } from '../services/history/HistoryService.js';
15
15
  import { ContentConverters } from '../services/history/ContentConverters.js';
16
16
  import { retryWithBackoff } from '../utils/retry.js';
17
17
  import { getErrorMessage } from '../utils/errors.js';
18
- import { AuthType, createContentGenerator, } from './contentGenerator.js';
18
+ import { createContentGenerator, } from './contentGenerator.js';
19
19
  import { ProxyAgent, setGlobalDispatcher } from 'undici';
20
- import { DEFAULT_GEMINI_FLASH_MODEL } from '../config/models.js';
21
20
  import { tokenLimit } from './tokenLimits.js';
22
21
  import { COMPRESSION_TOKEN_THRESHOLD, COMPRESSION_PRESERVE_THRESHOLD, } from './compression-config.js';
23
22
  import { LoopDetectionService } from '../services/loopDetectionService.js';
24
23
  import { ideContext } from '../ide/ideContext.js';
25
- import { ComplexityAnalyzer } from '../services/complexity-analyzer.js';
24
+ import { ComplexityAnalyzer, } from '../services/complexity-analyzer.js';
26
25
  import { TodoReminderService } from '../services/todo-reminder-service.js';
27
26
  import { isFunctionResponse } from '../utils/messageInspectors.js';
27
+ import { estimateTokens as estimateTextTokens } from '../utils/toolOutputLimiter.js';
28
+ const COMPLEXITY_ESCALATION_TURN_THRESHOLD = 3;
29
+ const TODO_PROMPT_SUFFIX = 'Use TODO List to organize this effort.';
30
+ const TOOL_BASE_TODO_MESSAGE = 'After this next tool call I need to call todo_write and create a todo list to organize this effort.';
31
+ const TOOL_ESCALATED_TODO_MESSAGE = 'I have already made several tool calls without a todo list. Immediately call todo_write after this next tool call to organize the work.';
28
32
  function isThinkingSupported(model) {
29
33
  if (model.startsWith('gemini-2.5'))
30
34
  return true;
@@ -88,6 +92,11 @@ export class GeminiClient {
88
92
  complexitySuggestionCooldown;
89
93
  lastSentIdeContext;
90
94
  forceFullIdeContext = true;
95
+ lastTodoToolTurn;
96
+ consecutiveComplexTurns = 0;
97
+ lastComplexitySuggestionTurn;
98
+ toolActivityCount = 0;
99
+ toolCallReminderLevel = 'none';
91
100
  /**
92
101
  * At any point in this conversation, was compression triggered without
93
102
  * being forced and did it fail?
@@ -150,6 +159,71 @@ export class GeminiClient {
150
159
  getUserTier() {
151
160
  return this.contentGenerator?.userTier;
152
161
  }
162
+ processComplexityAnalysis(analysis) {
163
+ if (!analysis.isComplex || !analysis.shouldSuggestTodos) {
164
+ this.consecutiveComplexTurns = 0;
165
+ return undefined;
166
+ }
167
+ this.consecutiveComplexTurns += 1;
168
+ const alreadySuggestedThisTurn = this.lastComplexitySuggestionTurn === this.sessionTurnCount;
169
+ const currentTime = Date.now();
170
+ const withinCooldown = currentTime - this.lastComplexitySuggestionTime <
171
+ this.complexitySuggestionCooldown;
172
+ if (alreadySuggestedThisTurn || withinCooldown) {
173
+ return undefined;
174
+ }
175
+ const reminder = this.shouldEscalateReminder()
176
+ ? this.todoReminderService.getEscalatedComplexTaskSuggestion(analysis.detectedTasks)
177
+ : this.todoReminderService.getComplexTaskSuggestion(analysis.detectedTasks);
178
+ this.lastComplexitySuggestionTime = currentTime;
179
+ this.lastComplexitySuggestionTurn = this.sessionTurnCount;
180
+ return reminder;
181
+ }
182
+ shouldEscalateReminder() {
183
+ if (this.consecutiveComplexTurns < COMPLEXITY_ESCALATION_TURN_THRESHOLD) {
184
+ return false;
185
+ }
186
+ const turnsSinceTodo = this.lastTodoToolTurn === undefined
187
+ ? Number.POSITIVE_INFINITY
188
+ : this.sessionTurnCount - this.lastTodoToolTurn;
189
+ return turnsSinceTodo >= COMPLEXITY_ESCALATION_TURN_THRESHOLD;
190
+ }
191
+ isTodoToolCall(name) {
192
+ if (typeof name !== 'string') {
193
+ return false;
194
+ }
195
+ const normalized = name.toLowerCase();
196
+ return normalized === 'todo_write' || normalized === 'todo_read';
197
+ }
198
+ appendTodoSuffixToRequest(request) {
199
+ if (!Array.isArray(request)) {
200
+ return request;
201
+ }
202
+ const suffixAlreadyPresent = request.some((part) => typeof part === 'object' &&
203
+ part !== null &&
204
+ 'text' in part &&
205
+ typeof part.text === 'string' &&
206
+ part.text.includes(TODO_PROMPT_SUFFIX));
207
+ if (suffixAlreadyPresent) {
208
+ return request;
209
+ }
210
+ request.push({ text: TODO_PROMPT_SUFFIX });
211
+ return request;
212
+ }
213
+ recordModelActivity(event) {
214
+ if (event.type !== GeminiEventType.Content &&
215
+ event.type !== GeminiEventType.ToolCallRequest) {
216
+ return;
217
+ }
218
+ this.toolActivityCount += 1;
219
+ if (this.toolActivityCount > 4) {
220
+ this.toolCallReminderLevel = 'escalated';
221
+ }
222
+ else if (this.toolActivityCount === 4 &&
223
+ this.toolCallReminderLevel === 'none') {
224
+ this.toolCallReminderLevel = 'base';
225
+ }
226
+ }
153
227
  async addHistory(content) {
154
228
  // Ensure chat is initialized before adding history
155
229
  if (!this.hasChatInitialized()) {
@@ -339,6 +413,15 @@ export class GeminiClient {
339
413
  if (envContextText) {
340
414
  systemInstruction = `${envContextText}\n\n${systemInstruction}`;
341
415
  }
416
+ let systemPromptTokens = 0;
417
+ try {
418
+ systemPromptTokens = await historyService.estimateTokensForText(systemInstruction, model);
419
+ }
420
+ catch (error) {
421
+ this.logger.debug(() => `Failed to count system instruction tokens for model ${model}, using fallback`, { error });
422
+ systemPromptTokens = estimateTextTokens(systemInstruction);
423
+ }
424
+ historyService.setBaseTokenOffset(systemPromptTokens);
342
425
  logger.debug(() => `DEBUG [client.startChat]: System instruction includes Flash instructions: ${systemInstruction.includes('IMPORTANT: You MUST use the provided tools')}`);
343
426
  const generateContentConfigWithThinking = isThinkingSupported(this.config.getModel())
344
427
  ? {
@@ -534,6 +617,8 @@ export class GeminiClient {
534
617
  this.lastPromptId = prompt_id;
535
618
  }
536
619
  this.sessionTurnCount++;
620
+ this.toolActivityCount = 0;
621
+ this.toolCallReminderLevel = 'none';
537
622
  if (this.config.getMaxSessionTurns() > 0 &&
538
623
  this.sessionTurnCount > this.config.getMaxSessionTurns()) {
539
624
  yield { type: GeminiEventType.MaxSessionTurns };
@@ -577,32 +662,29 @@ export class GeminiClient {
577
662
  this.lastSentIdeContext = newIdeContext;
578
663
  this.forceFullIdeContext = false;
579
664
  }
580
- // Complexity detection for proactive todo suggestions
581
- if (this.sessionTurnCount === 1 && // Only on first user message
582
- Array.isArray(request) &&
583
- request.length > 0) {
584
- // Extract user message text
665
+ let shouldAppendTodoSuffix = false;
666
+ if (Array.isArray(request) && request.length > 0) {
585
667
  const userMessage = request
586
668
  .filter((part) => typeof part === 'object' && 'text' in part)
587
669
  .map((part) => part.text)
588
- .join(' ');
589
- if (userMessage) {
670
+ .join(' ')
671
+ .trim();
672
+ if (userMessage.length > 0) {
590
673
  const analysis = this.complexityAnalyzer.analyzeComplexity(userMessage);
591
- // Check if we should suggest todos (with cooldown)
592
- const currentTime = Date.now();
593
- if (analysis.shouldSuggestTodos &&
594
- currentTime - this.lastComplexitySuggestionTime >
595
- this.complexitySuggestionCooldown) {
596
- // Generate suggestion reminder
597
- const suggestionReminder = this.todoReminderService.getComplexTaskSuggestion(analysis.detectedTasks);
598
- // Inject reminder into request
599
- request = [
600
- ...(Array.isArray(request) ? request : [request]),
601
- { text: suggestionReminder },
602
- ];
603
- this.lastComplexitySuggestionTime = currentTime;
674
+ const complexityReminder = this.processComplexityAnalysis(analysis);
675
+ if (complexityReminder) {
676
+ shouldAppendTodoSuffix = true;
604
677
  }
605
678
  }
679
+ else {
680
+ this.consecutiveComplexTurns = 0;
681
+ }
682
+ }
683
+ else {
684
+ this.consecutiveComplexTurns = 0;
685
+ }
686
+ if (shouldAppendTodoSuffix) {
687
+ request = this.appendTodoSuffixToRequest(request);
606
688
  }
607
689
  // Get provider name for error messages
608
690
  const contentGenConfig = this.config.getContentGeneratorConfig();
@@ -620,11 +702,32 @@ export class GeminiClient {
620
702
  yield { type: GeminiEventType.LoopDetected };
621
703
  return turn;
622
704
  }
705
+ this.recordModelActivity(event);
623
706
  yield event;
707
+ if (event.type === GeminiEventType.ToolCallRequest &&
708
+ this.isTodoToolCall(event.value?.name)) {
709
+ this.lastTodoToolTurn = this.sessionTurnCount;
710
+ this.consecutiveComplexTurns = 0;
711
+ }
624
712
  if (event.type === GeminiEventType.Error) {
625
713
  return turn;
626
714
  }
627
715
  }
716
+ if (this.toolCallReminderLevel !== 'none') {
717
+ const reminderText = this.toolCallReminderLevel === 'escalated'
718
+ ? TOOL_ESCALATED_TODO_MESSAGE
719
+ : TOOL_BASE_TODO_MESSAGE;
720
+ this.getChat().addHistory({
721
+ role: 'model',
722
+ parts: [{ text: reminderText }],
723
+ });
724
+ const currentTime = Date.now();
725
+ this.lastComplexitySuggestionTime = currentTime;
726
+ this.lastComplexitySuggestionTurn = this.sessionTurnCount;
727
+ this.consecutiveComplexTurns = 0;
728
+ this.toolCallReminderLevel = 'none';
729
+ this.toolActivityCount = 0;
730
+ }
628
731
  if (!turn.pendingToolCalls.length && signal && !signal.aborted) {
629
732
  // Check if model was switched during the call (likely due to quota error)
630
733
  const currentModel = this.config.getModel();
@@ -659,10 +762,7 @@ export class GeminiClient {
659
762
  },
660
763
  contents,
661
764
  }, this.lastPromptId || this.config.getSessionId());
662
- const result = await retryWithBackoff(apiCall, {
663
- onPersistent429: async (authType, error) => await this.handleFlashFallback(authType, error),
664
- authType: this.config.getContentGeneratorConfig()?.authType,
665
- });
765
+ const result = await retryWithBackoff(apiCall);
666
766
  let text = getResponseText(result);
667
767
  if (!text) {
668
768
  const error = new Error('API returned an empty response for generateJson.');
@@ -735,10 +835,7 @@ export class GeminiClient {
735
835
  config: requestConfig,
736
836
  contents,
737
837
  }, this.lastPromptId || this.config.getSessionId());
738
- const result = await retryWithBackoff(apiCall, {
739
- onPersistent429: async (authType, error) => await this.handleFlashFallback(authType, error),
740
- authType: this.config.getContentGeneratorConfig()?.authType,
741
- });
838
+ const result = await retryWithBackoff(apiCall);
742
839
  return result;
743
840
  }
744
841
  catch (error) {
@@ -921,42 +1018,5 @@ export class GeminiClient {
921
1018
  .map((tool) => tool.name)
922
1019
  .filter(Boolean)));
923
1020
  }
924
- /**
925
- * Handles falling back to Flash model when persistent 429 errors occur for OAuth users.
926
- * Uses a fallback handler if provided by the config; otherwise, returns null.
927
- * Note: This only applies to OAuth users with Gemini models, not for other providers.
928
- */
929
- async handleFlashFallback(authType, error) {
930
- // Only handle fallback for OAuth users with Gemini models, not for providers
931
- if (authType !== AuthType.LOGIN_WITH_GOOGLE) {
932
- return null;
933
- }
934
- const currentModel = this.config.getModel();
935
- const fallbackModel = DEFAULT_GEMINI_FLASH_MODEL;
936
- // Don't fallback if already using Flash model
937
- if (currentModel === fallbackModel) {
938
- return null;
939
- }
940
- // Check if config has a fallback handler (set by CLI package)
941
- const fallbackHandler = this.config.flashFallbackHandler;
942
- if (typeof fallbackHandler === 'function') {
943
- try {
944
- const accepted = await fallbackHandler(currentModel, fallbackModel, error);
945
- if (accepted !== false && accepted !== null) {
946
- this.config.setModel(fallbackModel);
947
- this.config.setFallbackMode(true);
948
- return fallbackModel;
949
- }
950
- // Check if the model was switched manually in the handler
951
- if (this.config.getModel() === fallbackModel) {
952
- return null; // Model was switched but don't continue with current prompt
953
- }
954
- }
955
- catch (error) {
956
- this.logger.warn(() => 'Flash fallback handler failed:', { error });
957
- }
958
- }
959
- return null;
960
- }
961
1021
  }
962
1022
  //# sourceMappingURL=client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/core/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/core/client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAWH,OAAO,EACL,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,IAAI,EAA2B,eAAe,EAAE,MAAM,WAAW,CAAC;AAE3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAG9C,OAAO,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,8CAA8C,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAGL,sBAAsB,GACvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EACL,2BAA2B,EAC3B,8BAA8B,GAC/B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAoB,MAAM,sBAAsB,CAAC;AACpE,OAAO,EACL,kBAAkB,GAEnB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,cAAc,IAAI,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAErF,MAAM,oCAAoC,GAAG,CAAC,CAAC;AAC/C,MAAM,kBAAkB,GAAG,wCAAwC,CAAC;AACpE,MAAM,sBAAsB,GAC1B,qGAAqG,CAAC;AACxG,MAAM,2BAA2B,GAC/B,yIAAyI,CAAC;AAE5I,SAAS,mBAAmB,CAAC,KAAa;IACxC,IAAI,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC;QAAE,OAAO,IAAI,CAAC;IAChD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,SAAS,uBAAuB,CAAC,IAAY;IAC3C,8CAA8C;IAC9C,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACvE,IAAI,aAAa,IAAI,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;QACtC,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACjC,CAAC;IAED,qDAAqD;IACrD,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;AACrB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CACpC,OAAkB,EAClB,QAAgB;IAEhB,IAAI,QAAQ,IAAI,CAAC,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAChC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,MAAM,CAC5C,CAAC;IAEF,MAAM,eAAe,GAAG,cAAc,CAAC,MAAM,CAC3C,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,GAAG,GAAG,MAAM,EAC7B,CAAC,CACF,CAAC;IACF,MAAM,gBAAgB,GAAG,eAAe,GAAG,QAAQ,CAAC;IAEpD,IAAI,eAAe,GAAG,CAAC,CAAC;IACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/C,eAAe,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC;QACrC,IAAI,eAAe,IAAI,gBAAgB,EAAE,CAAC;YACxC,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IACD,OAAO,cAAc,CAAC,MAAM,CAAC;AAC/B,CAAC;AAED,MAAM,OAAO,YAAY;IAmCM;IAlCrB,IAAI,CAAc;IAClB,gBAAgB,CAAoB;IACpC,cAAc,CAAS;IACvB,MAAM,CAAc;IACpB,qBAAqB,GAA0B;QACrD,WAAW,EAAE,CAAC;QACd,IAAI,EAAE,CAAC;KACR,CAAC;IACM,gBAAgB,GAAG,CAAC,CAAC;IACZ,SAAS,GAAG,GAAG,CAAC;IACzB,cAAc,CAA0B;IACxC,gBAAgB,CAAa;IAC7B,qBAAqB,CAAkB;IAE9B,YAAY,CAAuB;IAC5C,YAAY,CAAU;IACb,kBAAkB,CAAqB;IACvC,mBAAmB,CAAsB;IAClD,4BAA4B,GAAW,CAAC,CAAC;IAChC,4BAA4B,CAAS;IAC9C,kBAAkB,CAAyB;IAC3C,mBAAmB,GAAG,IAAI,CAAC;IAC3B,gBAAgB,CAAU;IAC1B,uBAAuB,GAAG,CAAC,CAAC;IAC5B,4BAA4B,CAAU;IACtC,iBAAiB,GAAG,CAAC,CAAC;IACtB,qBAAqB,GAAkC,MAAM,CAAC;IAEtE;;;OAGG;IACK,2BAA2B,GAAG,KAAK,CAAC;IAE5C,YAA6B,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;QACzC,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;YACtB,mBAAmB,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAY,CAAC,CAAC,CAAC;QACnE,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,IAAI,WAAW,CAAC,oBAAoB,CAAC,CAAC;QACpD,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,iBAAiB,EAAE,CAAC;QACjD,IAAI,CAAC,YAAY,GAAG,IAAI,oBAAoB,CAAC,MAAM,CAAC,CAAC;QACrD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;QAE/C,sDAAsD;QACtD,MAAM,kBAAkB,GAAG,MAAM,CAAC,6BAA6B,EAAE,CAAC;QAClE,IAAI,CAAC,kBAAkB,GAAG,IAAI,kBAAkB,CAAC;YAC/C,mBAAmB,EAAE,kBAAkB,CAAC,mBAAmB;YAC3D,qBAAqB,EAAE,kBAAkB,CAAC,qBAAqB;SAChE,CAAC,CAAC;QACH,IAAI,CAAC,4BAA4B;YAC/B,kBAAkB,CAAC,oBAAoB,IAAI,MAAM,CAAC;QAEpD,IAAI,CAAC,mBAAmB,GAAG,IAAI,mBAAmB,EAAE,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,sBAA8C;QAC7D,2FAA2F;QAC3F,gEAAgE;QAChE,MAAM,eAAe,GAAG,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC;QAEzE,2DAA2D;QAC3D,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;QAClC,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;QAEtB,oEAAoE;QACpE,2EAA2E;QAC3E,6DAA6D;QAC7D,IAAI,CAAC,cAAc,GAAG,sBAAsB,CAAC;QAC7C,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;IAC1C,CAAC;IAEO,KAAK,CAAC,cAAc;QAC1B,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;YACzB,OAAO;QACT,CAAC;QACD,kGAAkG;QAClG,MAAM,gBAAgB,GACpB,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,MAAM,CAAC,yBAAyB,EAAE,CAAC;QACjE,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CACb,4EAA4E,CAC7E,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,gBAAgB,GAAG,MAAM,sBAAsB,CAClD,gBAAgB,EAChB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAC3B,CAAC;QAEF,2EAA2E;QAC3E,uCAAuC;QAEvC,uDAAuD;QACvD,kFAAkF;QAClF,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;IAClC,CAAC;IAED,mBAAmB;QACjB,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACvD,CAAC;QACD,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,gBAAgB,EAAE,QAAQ,CAAC;IACzC,CAAC;IAEO,yBAAyB,CAC/B,QAAkC;QAElC,IAAI,CAAC,QAAQ,CAAC,SAAS,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE,CAAC;YACxD,IAAI,CAAC,uBAAuB,GAAG,CAAC,CAAC;YACjC,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,IAAI,CAAC,uBAAuB,IAAI,CAAC,CAAC;QAElC,MAAM,wBAAwB,GAC5B,IAAI,CAAC,4BAA4B,KAAK,IAAI,CAAC,gBAAgB,CAAC;QAC9D,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC/B,MAAM,cAAc,GAClB,WAAW,GAAG,IAAI,CAAC,4BAA4B;YAC/C,IAAI,CAAC,4BAA4B,CAAC;QAEpC,IAAI,wBAAwB,IAAI,cAAc,EAAE,CAAC;YAC/C,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,sBAAsB,EAAE;YAC5C,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,iCAAiC,CACxD,QAAQ,CAAC,aAAa,CACvB;YACH,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,wBAAwB,CAC/C,QAAQ,CAAC,aAAa,CACvB,CAAC;QAEN,IAAI,CAAC,4BAA4B,GAAG,WAAW,CAAC;QAChD,IAAI,CAAC,4BAA4B,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAE1D,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,sBAAsB;QAC5B,IAAI,IAAI,CAAC,uBAAuB,GAAG,oCAAoC,EAAE,CAAC;YACxE,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,cAAc,GAClB,IAAI,CAAC,gBAAgB,KAAK,SAAS;YACjC,CAAC,CAAC,MAAM,CAAC,iBAAiB;YAC1B,CAAC,CAAC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAEpD,OAAO,cAAc,IAAI,oCAAoC,CAAC;IAChE,CAAC;IAEO,cAAc,CAAC,IAAa;QAClC,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACtC,OAAO,UAAU,KAAK,YAAY,IAAI,UAAU,KAAK,WAAW,CAAC;IACnE,CAAC;IAEO,yBAAyB,CAAC,OAAsB;QACtD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,MAAM,oBAAoB,GAAG,OAAO,CAAC,IAAI,CACvC,CAAC,IAAI,EAAE,EAAE,CACP,OAAO,IAAI,KAAK,QAAQ;YACxB,IAAI,KAAK,IAAI;YACb,MAAM,IAAI,IAAI;YACd,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ;YAC7B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CACzC,CAAC;QAEF,IAAI,oBAAoB,EAAE,CAAC;YACzB,OAAO,OAAO,CAAC;QACjB,CAAC;QAEA,OAAkB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAU,CAAC,CAAC;QAC/D,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,mBAAmB,CAAC,KAA8B;QACxD,IACE,KAAK,CAAC,IAAI,KAAK,eAAe,CAAC,OAAO;YACtC,KAAK,CAAC,IAAI,KAAK,eAAe,CAAC,eAAe,EAC9C,CAAC;YACD,OAAO;QACT,CAAC;QAED,IAAI,CAAC,iBAAiB,IAAI,CAAC,CAAC;QAE5B,IAAI,IAAI,CAAC,iBAAiB,GAAG,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,qBAAqB,GAAG,WAAW,CAAC;QAC3C,CAAC;aAAM,IACL,IAAI,CAAC,iBAAiB,KAAK,CAAC;YAC5B,IAAI,CAAC,qBAAqB,KAAK,MAAM,EACrC,CAAC;YACD,IAAI,CAAC,qBAAqB,GAAG,MAAM,CAAC;QACtC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,OAAgB;QAC/B,mDAAmD;QACnD,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;YAC/B,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACzB,CAAC;QACD,IAAI,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IAED,OAAO;QACL,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC1C,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED;;;OAGG;IACH,iBAAiB;QACf,gCAAgC;QAChC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;YAC/B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,iBAAiB,EAAE,CAAC;QAC1D,gCAAgC;QAChC,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,kBAAkB;QAChB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC;QACvC,gCAAgC;QAChC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS,CAAC;IACxE,CAAC;IAED,KAAK,CAAC,UAAU;QACd,mEAAmE;QACnE,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxD,OAAO,IAAI,CAAC,gBAAgB,CAAC;QAC/B,CAAC;QAED,kDAAkD;QAClD,IAAI,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE,CAAC;QACrC,CAAC;QAED,uBAAuB;QACvB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,KAAK,CAAC,UAAU,CACd,OAAkB,EAClB,EAAE,aAAa,GAAG,KAAK,KAAkC,EAAE;QAE3D,MAAM,YAAY,GAAG,aAAa;YAChC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;gBACtB,MAAM,UAAU,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;gBAClC,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;oBACrB,UAAU,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;wBAC/C,IACE,IAAI;4BACJ,OAAO,IAAI,KAAK,QAAQ;4BACxB,kBAAkB,IAAI,IAAI,EAC1B,CAAC;4BACD,MAAM,OAAO,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;4BAC5B,OAAQ,OAAyC;iCAC9C,gBAAgB,CAAC;4BACpB,OAAO,OAAO,CAAC;wBACjB,CAAC;wBACD,OAAO,IAAI,CAAC;oBACd,CAAC,CAAC,CAAC;gBACL,CAAC;gBACD,OAAO,UAAU,CAAC;YACpB,CAAC,CAAC;YACJ,CAAC,CAAC,OAAO,CAAC;QAEZ,kCAAkC;QAClC,IAAI,CAAC,gBAAgB,GAAG,YAAY,CAAC;QAErC,wDAAwD;QACxD,IAAI,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;YAC9B,IAAI,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QAC1C,CAAC;QACD,mEAAmE;QAEnE,kDAAkD;QAClD,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAClC,CAAC;IAED;;;;OAIG;IACH,uBAAuB,CAAC,OAAkB;QACxC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+BAA+B,EAAE;YACjD,aAAa,EAAE,OAAO,CAAC,MAAM;SAC9B,CAAC,CAAC;QACH,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC;IAClC,CAAC;IAED;;;OAGG;IACH,2BAA2B,CAAC,cAA8B;QACxD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kCAAkC,EAAE;YACpD,iBAAiB,EAAE,CAAC,CAAC,cAAc;SACpC,CAAC,CAAC;QACH,IAAI,CAAC,qBAAqB,GAAG,cAAc,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;QACnD,MAAM,gBAAgB,GAAG,YAAY,CAAC,uBAAuB,EAAE,CAAC;QAEhE,yCAAyC;QACzC,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,wBAAwB,CAAC,CAAC;QACzD,MAAM,CAAC,KAAK,CACV,GAAG,EAAE,CAAC,wCAAwC,gBAAgB,CAAC,MAAM,EAAE,CACxE,CAAC;QAEF,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClC,MAAM,CAAC,IAAI,CACT,GAAG,EAAE,CAAC,yDAAyD,EAC/D;gBACE,UAAU,EAAE,IAAI,KAAK,EAAE,CAAC,KAAK;aAC9B,CACF,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAW,CAAC,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,CAAC,CAAC;QACnE,kDAAkD;QAClD,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;YAC/B,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACzB,CAAC;QACD,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,SAAS;QACb,4CAA4C;QAC5C,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACrD,IAAI,cAAc,EAAE,CAAC;gBACnB,qCAAqC;gBACrC,cAAc,CAAC,KAAK,EAAE,CAAC;YACzB,CAAC;iBAAM,CAAC;gBACN,wDAAwD;gBACxD,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YAC3B,CAAC;YACD,kCAAkC;YAClC,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAClC,CAAC;aAAM,CAAC;YACN,oDAAoD;YACpD,IAAI,CAAC,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACvC,CAAC;QACD,mCAAmC;QACnC,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,mBAAmB;QACvB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,OAAO;QACT,CAAC;QAED,IAAI,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC;YACxB,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;SAChE,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,YAAwB;QACtC,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAChC,IAAI,CAAC,2BAA2B,GAAG,KAAK,CAAC;QAEzC,+DAA+D;QAC/D,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1D,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;QACnD,MAAM,gBAAgB,GAAG,YAAY,CAAC,uBAAuB,EAAE,CAAC;QAChE,MAAM,KAAK,GAAW,CAAC,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,CAAC,CAAC;QACnE,MAAM,gBAAgB,GAAG,IAAI,CAAC,4BAA4B,EAAE,CAAC;QAE7D,yFAAyF;QACzF,kFAAkF;QAClF,IAAI,cAA8B,CAAC;QACnC,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,2DAA2D,CAC5D,CAAC;YACF,cAAc,GAAG,IAAI,CAAC,qBAAqB,CAAC;YAC5C,4CAA4C;YAC5C,IAAI,CAAC,qBAAqB,GAAG,SAAS,CAAC;QACzC,CAAC;aAAM,CAAC;YACN,+DAA+D;YAC/D,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC;QACxC,CAAC;QAED,+BAA+B;QAC/B,IAAI,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5C,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YAC5C,KAAK,MAAM,OAAO,IAAI,YAAY,EAAE,CAAC;gBACnC,cAAc,CAAC,GAAG,CAAC,iBAAiB,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC,CAAC;YAC1E,CAAC;QACH,CAAC;QAED,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;YAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACrC,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,qBAAqB,CAAC,CAAC;YACtD,MAAM,CAAC,KAAK,CACV,GAAG,EAAE,CAAC,gDAAgD,KAAK,EAAE,CAC9D,CAAC;YACF,IAAI,iBAAiB,GAAG,MAAM,wBAAwB,CACpD,UAAU,EACV,KAAK,EACL,gBAAgB,CACjB,CAAC;YAEF,gDAAgD;YAChD,MAAM,cAAc,GAAG,QAAQ;iBAC5B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;iBAChD,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,IAAI,cAAc,EAAE,CAAC;gBACnB,iBAAiB,GAAG,GAAG,cAAc,OAAO,iBAAiB,EAAE,CAAC;YAClE,CAAC;YAED,IAAI,kBAAkB,GAAG,CAAC,CAAC;YAC3B,IAAI,CAAC;gBACH,kBAAkB,GAAG,MAAM,cAAc,CAAC,qBAAqB,CAC7D,iBAAiB,EACjB,KAAK,CACN,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,GAAG,EAAE,CACH,uDAAuD,KAAK,kBAAkB,EAChF,EAAE,KAAK,EAAE,CACV,CAAC;gBACF,kBAAkB,GAAG,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;YAC7D,CAAC;YACD,cAAc,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,CAAC;YAEtD,MAAM,CAAC,KAAK,CACV,GAAG,EAAE,CACH,6EAA6E,iBAAiB,CAAC,QAAQ,CACrG,4CAA4C,CAC7C,EAAE,CACN,CAAC;YAEF,MAAM,iCAAiC,GAAG,mBAAmB,CAC3D,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CACvB;gBACC,CAAC,CAAC;oBACE,GAAG,IAAI,CAAC,qBAAqB;oBAC7B,cAAc,EAAE;wBACd,cAAc,EAAE,CAAC,CAAC;wBAClB,eAAe,EAAE,IAAI;qBACtB;iBACF;gBACH,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC;YAC/B,OAAO,IAAI,UAAU,CACnB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,mBAAmB,EAAE,EAC1B;gBACE,iBAAiB;gBACjB,GAAG,iCAAiC;gBACpC,KAAK;aACN,EACD,EAAE,EAAE,yDAAyD;YAC7D,cAAc,CACf,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,WAAW,CACf,KAAK,EACL,kCAAkC,EAClC,YAAY,IAAI,EAAE,EAClB,WAAW,CACZ,CAAC;YACF,MAAM,IAAI,KAAK,CAAC,8BAA8B,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IAEO,kBAAkB,CAAC,gBAAyB;QAIlD,MAAM,iBAAiB,GAAG,UAAU,CAAC,aAAa,EAAE,CAAC;QACrD,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvB,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC;QACxD,CAAC;QAED,IAAI,gBAAgB,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACjD,4BAA4B;YAC5B,MAAM,SAAS,GAAG,iBAAiB,CAAC,cAAc,EAAE,SAAS,IAAI,EAAE,CAAC;YACpE,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YACrD,MAAM,cAAc,GAAG,SAAS;iBAC7B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;iBAC1B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAEtB,MAAM,WAAW,GAA4B,EAAE,CAAC;YAEhD,IAAI,UAAU,EAAE,CAAC;gBACf,WAAW,CAAC,UAAU,GAAG;oBACvB,IAAI,EAAE,UAAU,CAAC,IAAI;oBACrB,MAAM,EAAE,UAAU,CAAC,MAAM;wBACvB,CAAC,CAAC;4BACE,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI;4BAC5B,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,SAAS;yBACvC;wBACH,CAAC,CAAC,SAAS;oBACb,YAAY,EAAE,UAAU,CAAC,YAAY,IAAI,SAAS;iBACnD,CAAC;YACJ,CAAC;YAED,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9B,WAAW,CAAC,cAAc,GAAG,cAAc,CAAC;YAC9C,CAAC;YAED,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1C,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE,aAAa,EAAE,iBAAiB,EAAE,CAAC;YAChE,CAAC;YAED,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACxD,MAAM,YAAY,GAAG;gBACnB,wFAAwF;gBACxF,SAAS;gBACT,UAAU;gBACV,KAAK;aACN,CAAC;YAEF,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,CAAC;gBAC/B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,cAAc,EAAE;oBACtC,OAAO,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;iBACjC,CAAC,CAAC;YACL,CAAC;YACD,OAAO;gBACL,YAAY;gBACZ,aAAa,EAAE,iBAAiB;aACjC,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,mCAAmC;YACnC,MAAM,KAAK,GAA4B,EAAE,CAAC;YAC1C,MAAM,OAAO,GAA4B,EAAE,CAAC;YAE5C,MAAM,SAAS,GAAG,IAAI,GAAG,CACvB,CAAC,IAAI,CAAC,kBAAkB,CAAC,cAAc,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC,GAAG,CAC3D,CAAC,CAAO,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CACzB,CACF,CAAC;YACF,MAAM,YAAY,GAAG,IAAI,GAAG,CAC1B,CAAC,iBAAiB,CAAC,cAAc,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAO,EAAE,EAAE,CAAC;gBACnE,CAAC,CAAC,IAAI;gBACN,CAAC;aACF,CAAC,CACH,CAAC;YAEF,MAAM,WAAW,GAAa,EAAE,CAAC;YACjC,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC5C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;oBACzB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACzB,CAAC;YACH,CAAC;YACD,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3B,OAAO,CAAC,WAAW,GAAG,WAAW,CAAC;YACpC,CAAC;YAED,MAAM,WAAW,GAAa,EAAE,CAAC;YACjC,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC;gBACzC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC5B,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACzB,CAAC;YACH,CAAC;YACD,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3B,OAAO,CAAC,WAAW,GAAG,WAAW,CAAC;YACpC,CAAC;YAED,MAAM,cAAc,GAAG,CACrB,IAAI,CAAC,kBAAkB,CAAC,cAAc,EAAE,SAAS,IAAI,EAAE,CACxD,CAAC,IAAI,CAAC,CAAC,CAAO,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAChC,MAAM,iBAAiB,GAAG,CACxB,iBAAiB,CAAC,cAAc,EAAE,SAAS,IAAI,EAAE,CAClD,CAAC,IAAI,CAAC,CAAC,CAAO,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAEhC,IAAI,iBAAiB,EAAE,CAAC;gBACtB,IAAI,CAAC,cAAc,IAAI,cAAc,CAAC,IAAI,KAAK,iBAAiB,CAAC,IAAI,EAAE,CAAC;oBACtE,OAAO,CAAC,iBAAiB,GAAG;wBAC1B,IAAI,EAAE,iBAAiB,CAAC,IAAI;wBAC5B,MAAM,EAAE,iBAAiB,CAAC,MAAM;4BAC9B,CAAC,CAAC;gCACE,IAAI,EAAE,iBAAiB,CAAC,MAAM,CAAC,IAAI;gCACnC,SAAS,EAAE,iBAAiB,CAAC,MAAM,CAAC,SAAS;6BAC9C;4BACH,CAAC,CAAC,SAAS;wBACb,YAAY,EAAE,iBAAiB,CAAC,YAAY,IAAI,SAAS;qBAC1D,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC;oBACzC,MAAM,aAAa,GAAG,iBAAiB,CAAC,MAAM,CAAC;oBAC/C,IACE,aAAa;wBACb,CAAC,CAAC,UAAU;4BACV,UAAU,CAAC,IAAI,KAAK,aAAa,CAAC,IAAI;4BACtC,UAAU,CAAC,SAAS,KAAK,aAAa,CAAC,SAAS,CAAC,EACnD,CAAC;wBACD,OAAO,CAAC,WAAW,GAAG;4BACpB,IAAI,EAAE,iBAAiB,CAAC,IAAI;4BAC5B,MAAM,EAAE;gCACN,IAAI,EAAE,aAAa,CAAC,IAAI;gCACxB,SAAS,EAAE,aAAa,CAAC,SAAS;6BACnC;yBACF,CAAC;oBACJ,CAAC;oBAED,MAAM,gBAAgB,GAAG,cAAc,CAAC,YAAY,IAAI,EAAE,CAAC;oBAC3D,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,YAAY,IAAI,EAAE,CAAC;oBACjE,IAAI,gBAAgB,KAAK,mBAAmB,EAAE,CAAC;wBAC7C,OAAO,CAAC,gBAAgB,GAAG;4BACzB,IAAI,EAAE,iBAAiB,CAAC,IAAI;4BAC5B,YAAY,EAAE,mBAAmB;yBAClC,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,IAAI,cAAc,EAAE,CAAC;gBAC1B,OAAO,CAAC,iBAAiB,GAAG;oBAC1B,IAAI,EAAE,IAAI;oBACV,YAAY,EAAE,cAAc,CAAC,IAAI;iBAClC,CAAC;YACJ,CAAC;YAED,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtC,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE,aAAa,EAAE,iBAAiB,EAAE,CAAC;YAChE,CAAC;YAED,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;YACxB,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAClD,MAAM,YAAY,GAAG;gBACnB,+GAA+G;gBAC/G,SAAS;gBACT,UAAU;gBACV,KAAK;aACN,CAAC;YAEF,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,CAAC;gBAC/B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,cAAc,EAAE;oBACtC,OAAO,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;iBACjC,CAAC,CAAC;YACL,CAAC;YACD,OAAO;gBACL,YAAY;gBACZ,aAAa,EAAE,iBAAiB;aACjC,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,CAAC,iBAAiB,CACtB,OAAsB,EACtB,MAAmB,EACnB,SAAiB,EACjB,QAAgB,IAAI,CAAC,SAAS,EAC9B,aAAsB;QAEtB,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,sBAAsB,CAAC,CAAC;QACvD,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,8CAA8C,CAAC,CAAC;QACnE,MAAM,CAAC,KAAK,CACV,GAAG,EAAE,CACH,kDAAkD,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CACvF,CAAC;QACF,MAAM,CAAC,KAAK,CACV,GAAG,EAAE,CACH,yDAAyD,OAAO,OAAO,EAAE,CAC5E,CAAC;QACF,MAAM,CAAC,KAAK,CACV,GAAG,EAAE,CACH,iEAAiE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAC5F,CAAC;QACF,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,kDAAkD;QAClD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,iEAAiE;YACjE,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9D,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,qDAAqD,EACrD;oBACE,aAAa,EAAE,IAAI,CAAC,gBAAgB,CAAC,MAAM;iBAC5C,CACF,CAAC;gBACF,uEAAuE;gBACvE,MAAM,mBAAmB,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC3D,IAAI,CAAC,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;gBACtD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oCAAoC,EAAE;oBACtD,yBAAyB,EAAE,mBAAmB,CAAC,MAAM;iBACtD,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YACrC,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;YACpC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACnC,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;QAChC,CAAC;QACD,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,qBAAqB,GAAG,MAAM,CAAC;QACpC,IACE,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,GAAG,CAAC;YACpC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,EACxD,CAAC;YACD,MAAM,EAAE,IAAI,EAAE,eAAe,CAAC,eAAe,EAAE,CAAC;YAChD,MAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,yBAAyB,EAAE,CAAC;YACjE,MAAM,eAAe,GAAG,gBAAgB,EAAE,eAAe,CAAC;YAC1D,MAAM,YAAY,GAChB,eAAe,EAAE,qBAAqB,EAAE,IAAI,SAAS,CAAC;YACxD,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;QAC3D,CAAC;QACD,iEAAiE;QACjE,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACrD,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,yBAAyB,EAAE,CAAC;YACjE,MAAM,eAAe,GAAG,gBAAgB,EAAE,eAAe,CAAC;YAC1D,MAAM,YAAY,GAChB,eAAe,EAAE,qBAAqB,EAAE,IAAI,SAAS,CAAC;YACxD,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;QAC3D,CAAC;QAED,yEAAyE;QACzE,MAAM,YAAY,GAAG,aAAa,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QAE7D,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QAEzD,IAAI,UAAU,CAAC,iBAAiB,KAAK,iBAAiB,CAAC,UAAU,EAAE,CAAC;YAClE,MAAM,EAAE,IAAI,EAAE,eAAe,CAAC,cAAc,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;QACpE,CAAC;QAED,+DAA+D;QAC/D,0EAA0E;QAC1E,4EAA4E;QAC5E,0EAA0E;QAC1E,6DAA6D;QAC7D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACxC,MAAM,WAAW,GACf,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC/D,MAAM,kBAAkB,GACtB,CAAC,CAAC,WAAW;YACb,WAAW,CAAC,IAAI,KAAK,OAAO;YAC5B,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC;QAEjE,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACpD,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAC7D,IAAI,CAAC,mBAAmB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,CACjD,CAAC;YACF,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5B,IAAI,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC;oBACxB,IAAI,EAAE,MAAM;oBACZ,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;iBAC3C,CAAC,CAAC;YACL,CAAC;YACD,IAAI,CAAC,kBAAkB,GAAG,aAAa,CAAC;YACxC,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;QACnC,CAAC;QAED,IAAI,sBAAsB,GAAG,KAAK,CAAC;QAEnC,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjD,MAAM,WAAW,GAAG,OAAO;iBACxB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,MAAM,IAAI,IAAI,CAAC;iBAC5D,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAE,IAAyB,CAAC,IAAI,CAAC;iBAC9C,IAAI,CAAC,GAAG,CAAC;iBACT,IAAI,EAAE,CAAC;YAEV,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;gBACxE,MAAM,kBAAkB,GAAG,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CAAC;gBACpE,IAAI,kBAAkB,EAAE,CAAC;oBACvB,sBAAsB,GAAG,IAAI,CAAC;gBAChC,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,uBAAuB,GAAG,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,uBAAuB,GAAG,CAAC,CAAC;QACnC,CAAC;QAED,IAAI,sBAAsB,EAAE,CAAC;YAC3B,OAAO,GAAG,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;QACpD,CAAC;QAED,uCAAuC;QACvC,MAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,yBAAyB,EAAE,CAAC;QACjE,MAAM,eAAe,GAAG,gBAAgB,EAAE,eAAe,CAAC;QAC1D,MAAM,YAAY,GAAG,eAAe,EAAE,qBAAqB,EAAE,IAAI,SAAS,CAAC;QAE3E,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;QAE/D,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACjE,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,EAAE,IAAI,EAAE,eAAe,CAAC,YAAY,EAAE,CAAC;YAC7C,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC/C,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;YACvC,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzC,MAAM,EAAE,IAAI,EAAE,eAAe,CAAC,YAAY,EAAE,CAAC;gBAC7C,OAAO,IAAI,CAAC;YACd,CAAC;YACD,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;YAChC,MAAM,KAAK,CAAC;YACZ,IACE,KAAK,CAAC,IAAI,KAAK,eAAe,CAAC,eAAe;gBAC9C,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,EACtC,CAAC;gBACD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;gBAC9C,IAAI,CAAC,uBAAuB,GAAG,CAAC,CAAC;YACnC,CAAC;YACD,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,CAAC,KAAK,EAAE,CAAC;gBACzC,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QACD,IAAI,IAAI,CAAC,qBAAqB,KAAK,MAAM,EAAE,CAAC;YAC1C,MAAM,YAAY,GAChB,IAAI,CAAC,qBAAqB,KAAK,WAAW;gBACxC,CAAC,CAAC,2BAA2B;gBAC7B,CAAC,CAAC,sBAAsB,CAAC;YAE7B,IAAI,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC;gBACxB,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;aAChC,CAAC,CAAC;YACH,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC/B,IAAI,CAAC,4BAA4B,GAAG,WAAW,CAAC;YAChD,IAAI,CAAC,4BAA4B,GAAG,IAAI,CAAC,gBAAgB,CAAC;YAC1D,IAAI,CAAC,uBAAuB,GAAG,CAAC,CAAC;YACjC,IAAI,CAAC,qBAAqB,GAAG,MAAM,CAAC;YACpC,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;QAC7B,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAC/D,0EAA0E;YAC1E,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YAC5C,IAAI,YAAY,KAAK,YAAY,EAAE,CAAC;gBAClC,0DAA0D;gBAC1D,yEAAyE;gBACzE,OAAO,IAAI,CAAC;YACd,CAAC;YAED,8BAA8B;QAChC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,QAAmB,EACnB,MAA+B,EAC/B,WAAwB,EACxB,KAAa,EACb,SAAgC,EAAE;QAElC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC5B,4CAA4C;QAC5C,MAAM,UAAU,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;YAC/C,MAAM,iBAAiB,GAAG,MAAM,wBAAwB,CACtD,UAAU,EACV,UAAU,EACV,IAAI,CAAC,4BAA4B,EAAE,CACpC,CAAC;YACF,MAAM,aAAa,GAAG;gBACpB,WAAW;gBACX,GAAG,IAAI,CAAC,qBAAqB;gBAC7B,GAAG,MAAM;aACV,CAAC;YAEF,MAAM,OAAO,GAAG,GAAG,EAAE,CACnB,IAAI,CAAC,mBAAmB,EAAE,CAAC,eAAe,CACxC;gBACE,KAAK,EAAE,UAAU;gBACjB,MAAM,EAAE;oBACN,GAAG,aAAa;oBAChB,iBAAiB;oBACjB,kBAAkB,EAAE,MAAM;oBAC1B,gBAAgB,EAAE,kBAAkB;iBACrC;gBACD,QAAQ;aACT,EACD,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAChD,CAAC;YAEJ,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAE/C,IAAI,IAAI,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;YACnC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,KAAK,GAAG,IAAI,KAAK,CACrB,kDAAkD,CACnD,CAAC;gBACF,MAAM,WAAW,CACf,KAAK,EACL,wDAAwD,EACxD,QAAQ,EACR,6BAA6B,CAC9B,CAAC;gBACF,MAAM,KAAK,CAAC;YACd,CAAC;YAED,MAAM,MAAM,GAAG,SAAS,CAAC;YACzB,MAAM,MAAM,GAAG,KAAK,CAAC;YACrB,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBACrD,uFAAuF;gBACvF,IAAI,GAAG,IAAI;qBACR,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;qBACrD,IAAI,EAAE,CAAC;YACZ,CAAC;YAED,IAAI,CAAC;gBACH,+CAA+C;gBAC/C,MAAM,WAAW,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;gBAElD,wFAAwF;gBACxF,uEAAuE;gBACvE,IACE,CAAC,WAAW,KAAK,MAAM,IAAI,WAAW,KAAK,OAAO,CAAC;oBACnD,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAClB,CAAC,CAAC,KAAK,EAAE,IAAI,CACX,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,cAAc,CAAC,CACvD,CACF,EACD,CAAC;oBACD,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,GAAG,EAAE,CACH,8CAA8C,WAAW,yEAAyE,CACrI,CAAC;oBACF,OAAO;wBACL,SAAS,EAAE,qCAAqC;wBAChD,YAAY,EAAE,WAAW;qBAC1B,CAAC;gBACJ,CAAC;gBAED,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YACjC,CAAC;YAAC,OAAO,UAAU,EAAE,CAAC;gBACpB,uDAAuD;gBACvD,MAAM,WAAW,CACf,UAAU,EACV,kDAAkD,EAClD;oBACE,yBAAyB,EAAE,IAAI;oBAC/B,wBAAwB,EAAE,uBAAuB,CAAC,IAAI,CAAC;oBACvD,uBAAuB,EAAE,QAAQ;iBAClC,EACD,oBAAoB,CACrB,CAAC;gBACF,MAAM,IAAI,KAAK,CACb,yCAAyC,eAAe,CACtD,UAAU,CACX,EAAE,CACJ,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;gBACxB,MAAM,KAAK,CAAC;YACd,CAAC;YAED,mEAAmE;YACnE,IACE,KAAK,YAAY,KAAK;gBACtB,KAAK,CAAC,OAAO,KAAK,kDAAkD,EACpE,CAAC;gBACD,MAAM,KAAK,CAAC;YACd,CAAC;YAED,MAAM,WAAW,CACf,KAAK,EACL,wCAAwC,EACxC,QAAQ,EACR,kBAAkB,CACnB,CAAC;YACF,MAAM,IAAI,KAAK,CACb,oCAAoC,eAAe,CAAC,KAAK,CAAC,EAAE,CAC7D,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,QAAmB,EACnB,gBAAuC,EACvC,WAAwB,EACxB,KAAa;QAEb,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC5B,MAAM,UAAU,GAAG,KAAK,CAAC;QACzB,MAAM,WAAW,GAA0B;YACzC,GAAG,IAAI,CAAC,qBAAqB;YAC7B,GAAG,gBAAgB;SACpB,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;YAC/C,MAAM,iBAAiB,GAAG,MAAM,wBAAwB,CACtD,UAAU,EACV,UAAU,EACV,IAAI,CAAC,4BAA4B,EAAE,CACpC,CAAC;YAEF,MAAM,aAAa,GAAG;gBACpB,WAAW;gBACX,GAAG,WAAW;gBACd,iBAAiB;aAClB,CAAC;YAEF,MAAM,OAAO,GAAG,GAAG,EAAE,CACnB,IAAI,CAAC,mBAAmB,EAAE,CAAC,eAAe,CACxC;gBACE,KAAK;gBACL,MAAM,EAAE,aAAa;gBACrB,QAAQ;aACT,EACD,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAChD,CAAC;YAEJ,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAC/C,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;gBACxB,MAAM,KAAK,CAAC;YACd,CAAC;YAED,MAAM,WAAW,CACf,KAAK,EACL,+CAA+C,KAAK,GAAG,EACvD;gBACE,eAAe,EAAE,QAAQ;gBACzB,aAAa,EAAE,WAAW;aAC3B,EACD,qBAAqB,CACtB,CAAC;YACF,MAAM,IAAI,KAAK,CACb,yCAAyC,KAAK,KAAK,eAAe,CAAC,KAAK,CAAC,EAAE,CAC5E,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,KAAe;QACrC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC5B,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjC,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,MAAM,gBAAgB,GAA2B;YAC/C,KAAK,EAAE,IAAI,CAAC,cAAc;YAC1B,QAAQ,EAAE,KAAK;SAChB,CAAC;QAEF,MAAM,oBAAoB,GACxB,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;QAClE,IACE,CAAC,oBAAoB,CAAC,UAAU;YAChC,oBAAoB,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAC5C,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC1D,CAAC;QAED,IAAI,oBAAoB,CAAC,UAAU,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;YAC5D,MAAM,IAAI,KAAK,CACb,4DAA4D,KAAK,CAAC,MAAM,SAAS,oBAAoB,CAAC,UAAU,CAAC,MAAM,GAAG,CAC3H,CAAC;QACJ,CAAC;QAED,OAAO,oBAAoB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE;YAC9D,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;YAChC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACnC,MAAM,IAAI,KAAK,CACb,2DAA2D,KAAK,MAAM,KAAK,CAAC,KAAK,CAAC,GAAG,CACtF,CAAC;YACJ,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,eAAe,CACnB,SAAiB,EACjB,QAAiB,KAAK;QAEtB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;YAC/B,OAAO;gBACL,kBAAkB,EAAE,CAAC;gBACrB,aAAa,EAAE,CAAC;gBAChB,iBAAiB,EAAE,iBAAiB,CAAC,IAAI;aAC1C,CAAC;QACJ,CAAC;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAEvD,oEAAoE;QACpE,IACE,cAAc,CAAC,MAAM,KAAK,CAAC;YAC3B,CAAC,IAAI,CAAC,2BAA2B,IAAI,CAAC,KAAK,CAAC,EAC5C,CAAC;YACD,OAAO;gBACL,kBAAkB,EAAE,CAAC;gBACrB,aAAa,EAAE,CAAC;gBAChB,iBAAiB,EAAE,iBAAiB,CAAC,IAAI;aAC1C,CAAC;QACJ,CAAC;QAED,2CAA2C;QAE3C,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrC,8EAA8E;QAC9E,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,iBAAiB,EAAE,CAAC;QAC1D,MAAM,kBAAkB,GAAG,cAAc;YACvC,CAAC,CAAC,cAAc,CAAC,cAAc,EAAE;YACjC,CAAC,CAAC,CAAC,CAAC;QACN,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;YACrC,OAAO,CAAC,IAAI,CAAC,6CAA6C,KAAK,GAAG,CAAC,CAAC;YACpE,IAAI,CAAC,2BAA2B,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC;YAClD,OAAO;gBACL,kBAAkB,EAAE,CAAC;gBACrB,aAAa,EAAE,CAAC;gBAChB,iBAAiB,EACf,iBAAiB,CAAC,oCAAoC;aACzD,CAAC;QACJ,CAAC;QAED,MAAM,0BAA0B,GAC9B,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,EAAE,0BAA0B,CAAC;QAE/D,2DAA2D;QAC3D,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,SAAS,GACb,0BAA0B,IAAI,2BAA2B,CAAC;YAC5D,IAAI,kBAAkB,GAAG,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;gBACvD,OAAO;oBACL,kBAAkB;oBAClB,aAAa,EAAE,kBAAkB;oBACjC,iBAAiB,EAAE,iBAAiB,CAAC,IAAI;iBAC1C,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAI,mBAAmB,GAAG,sBAAsB,CAC9C,cAAc,EACd,CAAC,GAAG,8BAA8B,CACnC,CAAC;QACF,mFAAmF;QACnF,OACE,mBAAmB,GAAG,cAAc,CAAC,MAAM;YAC3C,CAAC,cAAc,CAAC,mBAAmB,CAAC,EAAE,IAAI,KAAK,OAAO;gBACpD,kBAAkB,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAC1D,CAAC;YACD,mBAAmB,EAAE,CAAC;QACxB,CAAC;QAED,MAAM,iBAAiB,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC;QACvE,MAAM,aAAa,GAAG,cAAc,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAEhE,IAAI,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;QAE7C,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,WAAW,CACxD;YACE,OAAO,EAAE;gBACP,IAAI,EAAE,wEAAwE;aAC/E;YACD,MAAM,EAAE;gBACN,iBAAiB,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,EAAE;gBACnD,eAAe,EAAE,kBAAkB;aACpC;SACF,EACD,SAAS,CACV,CAAC;QAEF,gEAAgE;QAChE,6DAA6D;QAC7D,kDAAkD;QAClD,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC;YAC1C;gBACE,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;aAC3B;YACD;gBACE,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,4CAA4C,EAAE,CAAC;aAChE;YACD,GAAG,aAAa;SACjB,CAAC,CAAC;QACH,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAEhC,uEAAuE;QACvE,MAAM,wBAAwB,GAAG,cAAc,CAAC,iBAAiB,EAAE,CAAC;QACpE,MAAM,aAAa,GAAG,wBAAwB;YAC5C,CAAC,CAAC,wBAAwB,CAAC,cAAc,EAAE;YAC3C,CAAC,CAAC,CAAC,CAAC;QACN,IAAI,aAAa,KAAK,SAAS,IAAI,aAAa,KAAK,CAAC,EAAE,CAAC;YACvD,OAAO,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;YACpE,IAAI,CAAC,2BAA2B,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC;YAClD,OAAO;gBACL,kBAAkB;gBAClB,aAAa,EAAE,kBAAkB;gBACjC,iBAAiB,EACf,iBAAiB,CAAC,oCAAoC;aACzD,CAAC;QACJ,CAAC;QAED,oDAAoD;QACpD,OAAO,CAAC,KAAK,CACX,qBAAqB,kBAAkB,OAAO,aAAa,SAAS,CACrE,CAAC;QAEF,IAAI,aAAa,GAAG,kBAAkB,EAAE,CAAC;YACvC,IAAI,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;YAC1C,IAAI,CAAC,2BAA2B,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC;YAClD,OAAO;gBACL,kBAAkB;gBAClB,aAAa;gBACb,iBAAiB,EACf,iBAAiB,CAAC,uCAAuC;aAC5D,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC,CAAC,8CAA8C;YAE1E,sDAAsD;YACtD,uDAAuD;YACvD,0CAA0C;YAC1C,IAAI,OAAO,cAAc,CAAC,iBAAiB,KAAK,UAAU,EAAE,CAAC;gBAC3D,MAAM,cAAc,GAAG,cAAc,CAAC,iBAAiB,EAAE,CAAC;gBAC1D,IAAI,cAAc,EAAE,CAAC;oBACnB,cAAc,CAAC,IAAI,CAAC,eAAe,EAAE;wBACnC,WAAW,EAAE,aAAa;wBAC1B,WAAW,EAAE,aAAa,GAAG,kBAAkB;wBAC/C,UAAU,EAAE,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;qBAC/C,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO;YACL,kBAAkB;YAClB,aAAa;YACb,iBAAiB,EAAE,iBAAiB,CAAC,UAAU;SAChD,CAAC;IACJ,CAAC;IAEO,4BAA4B;QAClC,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;QACnD,IACE,CAAC,YAAY;YACb,OAAQ,YAA8C,CAAC,eAAe;gBACpE,UAAU,EACZ,CAAC;YACD,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CACf,IAAI,GAAG,CACL,YAAY;aACT,eAAe,EAAE;aACjB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;aACxB,MAAM,CAAC,OAAO,CAAC,CACnB,CACF,CAAC;IACJ,CAAC;CACF"}
@@ -38,6 +38,8 @@ export declare class EmptyStreamError extends Error {
38
38
  export declare class GeminiChat {
39
39
  private readonly config;
40
40
  private readonly generationConfig;
41
+ private static readonly TOKEN_SAFETY_MARGIN;
42
+ private static readonly DEFAULT_COMPLETION_BUDGET;
41
43
  private sendPromise;
42
44
  private compressionPromise;
43
45
  private historyService;
@@ -53,11 +55,6 @@ export declare class GeminiChat {
53
55
  private _logApiRequest;
54
56
  private _logApiResponse;
55
57
  private _logApiError;
56
- /**
57
- * Handles falling back to Flash model when persistent 429 errors occur for OAuth users.
58
- * Uses a fallback handler if provided by the config; otherwise, returns null.
59
- */
60
- private handleFlashFallback;
61
58
  setSystemInstruction(sysInstr: string): void;
62
59
  /**
63
60
  * Get the underlying HistoryService instance
@@ -149,6 +146,10 @@ export declare class GeminiChat {
149
146
  private shouldCompress;
150
147
  private ensureCompressionBeforeSend;
151
148
  private estimatePendingTokens;
149
+ private asNumber;
150
+ private extractCompletionBudgetFromParams;
151
+ private getCompletionBudget;
152
+ private enforceContextWindow;
152
153
  /**
153
154
  * Perform compression of chat history
154
155
  * Made public to allow manual compression triggering