@qduc/term2 0.1.7 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (719) hide show
  1. package/dist/agent.d.ts.map +1 -1
  2. package/dist/agent.js +5 -3
  3. package/dist/agent.js.map +1 -1
  4. package/dist/app.d.ts +1 -5
  5. package/dist/app.d.ts.map +1 -1
  6. package/dist/app.js +31 -274
  7. package/dist/app.js.map +1 -1
  8. package/dist/app.parseInput.test.js +1 -9
  9. package/dist/app.parseInput.test.js.map +1 -1
  10. package/dist/cli.js +6 -0
  11. package/dist/cli.js.map +1 -1
  12. package/dist/components/ApprovalPrompt.d.ts +2 -1
  13. package/dist/components/ApprovalPrompt.d.ts.map +1 -1
  14. package/dist/components/ApprovalPrompt.js +15 -0
  15. package/dist/components/ApprovalPrompt.js.map +1 -1
  16. package/dist/components/BottomArea.d.ts +2 -9
  17. package/dist/components/BottomArea.d.ts.map +1 -1
  18. package/dist/components/BottomArea.js.map +1 -1
  19. package/dist/components/Input/determine-active-menu.d.ts +23 -0
  20. package/dist/components/Input/determine-active-menu.d.ts.map +1 -0
  21. package/dist/components/Input/determine-active-menu.js +57 -0
  22. package/dist/components/Input/determine-active-menu.js.map +1 -0
  23. package/dist/components/Input/input-width.d.ts +7 -0
  24. package/dist/components/Input/input-width.d.ts.map +1 -0
  25. package/dist/components/Input/input-width.js +20 -0
  26. package/dist/components/Input/input-width.js.map +1 -0
  27. package/dist/components/Input/insertions.d.ts +34 -0
  28. package/dist/components/Input/insertions.d.ts.map +1 -0
  29. package/dist/components/Input/insertions.js +52 -0
  30. package/dist/components/Input/insertions.js.map +1 -0
  31. package/dist/components/Input/popup-props.d.ts +18 -0
  32. package/dist/components/Input/popup-props.d.ts.map +1 -0
  33. package/dist/components/Input/popup-props.js +42 -0
  34. package/dist/components/Input/popup-props.js.map +1 -0
  35. package/dist/components/Input/triggers.d.ts +9 -0
  36. package/dist/components/Input/triggers.d.ts.map +1 -0
  37. package/dist/components/Input/triggers.js +25 -0
  38. package/dist/components/Input/triggers.js.map +1 -0
  39. package/dist/components/InputBox.d.ts +2 -0
  40. package/dist/components/InputBox.d.ts.map +1 -1
  41. package/dist/components/InputBox.js +118 -384
  42. package/dist/components/InputBox.js.map +1 -1
  43. package/dist/components/InputBox.menu-logic.test.js +82 -99
  44. package/dist/components/InputBox.menu-logic.test.js.map +1 -1
  45. package/dist/components/InputBox.test.js +10 -1
  46. package/dist/components/InputBox.test.js.map +1 -1
  47. package/dist/components/MarkdownRenderer.d.ts.map +1 -1
  48. package/dist/components/MarkdownRenderer.js +96 -23
  49. package/dist/components/MarkdownRenderer.js.map +1 -1
  50. package/dist/components/MessageList.d.ts +8 -0
  51. package/dist/components/MessageList.d.ts.map +1 -1
  52. package/dist/components/MessageList.js +25 -7
  53. package/dist/components/MessageList.js.map +1 -1
  54. package/dist/components/MessageList.test.js +48 -1
  55. package/dist/components/MessageList.test.js.map +1 -1
  56. package/dist/components/StatusBar.d.ts +1 -1
  57. package/dist/components/StatusBar.d.ts.map +1 -1
  58. package/dist/components/StatusBar.js +49 -38
  59. package/dist/components/StatusBar.js.map +1 -1
  60. package/dist/contracts/conversation.d.ts +36 -0
  61. package/dist/contracts/conversation.d.ts.map +1 -0
  62. package/dist/contracts/conversation.js +2 -0
  63. package/dist/contracts/conversation.js.map +1 -0
  64. package/dist/hooks/message-id.d.ts +3 -0
  65. package/dist/hooks/message-id.d.ts.map +1 -0
  66. package/dist/hooks/message-id.js +17 -0
  67. package/dist/hooks/message-id.js.map +1 -0
  68. package/dist/hooks/message-id.test.d.ts +2 -0
  69. package/dist/hooks/message-id.test.d.ts.map +1 -0
  70. package/dist/hooks/message-id.test.js +17 -0
  71. package/dist/hooks/message-id.test.js.map +1 -0
  72. package/dist/hooks/use-app-commands.d.ts +20 -0
  73. package/dist/hooks/use-app-commands.d.ts.map +1 -0
  74. package/dist/hooks/use-app-commands.js +197 -0
  75. package/dist/hooks/use-app-commands.js.map +1 -0
  76. package/dist/hooks/use-app-commands.test.d.ts +2 -0
  77. package/dist/hooks/use-app-commands.test.d.ts.map +1 -0
  78. package/dist/hooks/use-app-commands.test.js +34 -0
  79. package/dist/hooks/use-app-commands.test.js.map +1 -0
  80. package/dist/hooks/use-conversation.d.ts +14 -25
  81. package/dist/hooks/use-conversation.d.ts.map +1 -1
  82. package/dist/hooks/use-conversation.js +28 -97
  83. package/dist/hooks/use-conversation.js.map +1 -1
  84. package/dist/hooks/use-escape-key.d.ts +24 -0
  85. package/dist/hooks/use-escape-key.d.ts.map +1 -0
  86. package/dist/hooks/use-escape-key.js +60 -0
  87. package/dist/hooks/use-escape-key.js.map +1 -0
  88. package/dist/hooks/use-escape-key.test.d.ts +2 -0
  89. package/dist/hooks/use-escape-key.test.d.ts.map +1 -0
  90. package/dist/hooks/use-escape-key.test.js +49 -0
  91. package/dist/hooks/use-escape-key.test.js.map +1 -0
  92. package/dist/hooks/use-mode-handlers.d.ts +35 -0
  93. package/dist/hooks/use-mode-handlers.d.ts.map +1 -0
  94. package/dist/hooks/use-mode-handlers.js +79 -0
  95. package/dist/hooks/use-mode-handlers.js.map +1 -0
  96. package/dist/hooks/use-model-selection.d.ts +6 -3
  97. package/dist/hooks/use-model-selection.d.ts.map +1 -1
  98. package/dist/hooks/use-model-selection.js +19 -16
  99. package/dist/hooks/use-model-selection.js.map +1 -1
  100. package/dist/hooks/use-model-selection.test.d.ts +2 -0
  101. package/dist/hooks/use-model-selection.test.d.ts.map +1 -0
  102. package/dist/hooks/use-model-selection.test.js +59 -0
  103. package/dist/hooks/use-model-selection.test.js.map +1 -0
  104. package/dist/hooks/use-path-completion.d.ts.map +1 -1
  105. package/dist/hooks/use-path-completion.js +5 -36
  106. package/dist/hooks/use-path-completion.js.map +1 -1
  107. package/dist/hooks/use-runtime-settings.d.ts +12 -0
  108. package/dist/hooks/use-runtime-settings.d.ts.map +1 -0
  109. package/dist/hooks/use-runtime-settings.js +68 -0
  110. package/dist/hooks/use-runtime-settings.js.map +1 -0
  111. package/dist/hooks/use-selection.d.ts +8 -0
  112. package/dist/hooks/use-selection.d.ts.map +1 -0
  113. package/dist/hooks/use-selection.js +31 -0
  114. package/dist/hooks/use-selection.js.map +1 -0
  115. package/dist/hooks/use-settings-completion.d.ts.map +1 -1
  116. package/dist/hooks/use-settings-completion.js +15 -30
  117. package/dist/hooks/use-settings-completion.js.map +1 -1
  118. package/dist/hooks/use-settings-completion.test.js +9 -9
  119. package/dist/hooks/use-settings-completion.test.js.map +1 -1
  120. package/dist/hooks/use-settings-value-completion.d.ts.map +1 -1
  121. package/dist/hooks/use-settings-value-completion.js +30 -28
  122. package/dist/hooks/use-settings-value-completion.js.map +1 -1
  123. package/dist/hooks/use-settings-value-completion.test.js +13 -0
  124. package/dist/hooks/use-settings-value-completion.test.js.map +1 -1
  125. package/dist/hooks/use-shell-mode.d.ts +31 -0
  126. package/dist/hooks/use-shell-mode.d.ts.map +1 -0
  127. package/dist/hooks/use-shell-mode.js +85 -0
  128. package/dist/hooks/use-shell-mode.js.map +1 -0
  129. package/dist/hooks/use-slash-commands.d.ts +1 -0
  130. package/dist/hooks/use-slash-commands.d.ts.map +1 -1
  131. package/dist/hooks/use-slash-commands.js +32 -23
  132. package/dist/hooks/use-slash-commands.js.map +1 -1
  133. package/dist/hooks/use-terminal-width.d.ts +7 -0
  134. package/dist/hooks/use-terminal-width.d.ts.map +1 -0
  135. package/dist/hooks/use-terminal-width.js +33 -0
  136. package/dist/hooks/use-terminal-width.js.map +1 -0
  137. package/dist/hooks/use-trigger-detection.d.ts +40 -0
  138. package/dist/hooks/use-trigger-detection.d.ts.map +1 -0
  139. package/dist/hooks/use-trigger-detection.js +45 -0
  140. package/dist/hooks/use-trigger-detection.js.map +1 -0
  141. package/dist/lib/editor-impl.js +6 -6
  142. package/dist/lib/editor-impl.js.map +1 -1
  143. package/dist/lib/openai-agent-client.d.ts +2 -0
  144. package/dist/lib/openai-agent-client.d.ts.map +1 -1
  145. package/dist/lib/openai-agent-client.js +187 -191
  146. package/dist/lib/openai-agent-client.js.map +1 -1
  147. package/dist/lib/openai-agent-client.public-methods.test.js +61 -13
  148. package/dist/lib/openai-agent-client.public-methods.test.js.map +1 -1
  149. package/dist/lib/retry-executor.d.ts +16 -0
  150. package/dist/lib/retry-executor.d.ts.map +1 -0
  151. package/dist/lib/retry-executor.js +71 -0
  152. package/dist/lib/retry-executor.js.map +1 -0
  153. package/dist/lib/retry-executor.test.d.ts +2 -0
  154. package/dist/lib/retry-executor.test.d.ts.map +1 -0
  155. package/dist/lib/retry-executor.test.js +178 -0
  156. package/dist/lib/retry-executor.test.js.map +1 -0
  157. package/dist/lib/tool-invoke.d.ts +13 -0
  158. package/dist/lib/tool-invoke.d.ts.map +1 -1
  159. package/dist/lib/tool-invoke.js +61 -3
  160. package/dist/lib/tool-invoke.js.map +1 -1
  161. package/dist/lib/tool-invoke.test.js +139 -1
  162. package/dist/lib/tool-invoke.test.js.map +1 -1
  163. package/dist/lib/tool-selection-policy.d.ts +14 -0
  164. package/dist/lib/tool-selection-policy.d.ts.map +1 -0
  165. package/dist/lib/tool-selection-policy.js +17 -0
  166. package/dist/lib/tool-selection-policy.js.map +1 -0
  167. package/dist/lib/tool-selection-policy.test.d.ts +2 -0
  168. package/dist/lib/tool-selection-policy.test.d.ts.map +1 -0
  169. package/dist/lib/tool-selection-policy.test.js +69 -0
  170. package/dist/lib/tool-selection-policy.test.js.map +1 -0
  171. package/dist/prompts/simple.md +4 -0
  172. package/dist/providers/index.d.ts +1 -1
  173. package/dist/providers/index.d.ts.map +1 -1
  174. package/dist/providers/index.js +1 -1
  175. package/dist/providers/index.js.map +1 -1
  176. package/dist/providers/openai-compatible/model.d.ts.map +1 -1
  177. package/dist/providers/openai-compatible/model.js +68 -7
  178. package/dist/providers/openai-compatible/model.js.map +1 -1
  179. package/dist/providers/openai-compatible/reasoning-content.test.js +107 -6
  180. package/dist/providers/openai-compatible/reasoning-content.test.js.map +1 -1
  181. package/dist/providers/openai-compatible.provider.d.ts.map +1 -1
  182. package/dist/providers/openai-compatible.provider.js.map +1 -1
  183. package/dist/providers/openai.provider.js +2 -0
  184. package/dist/providers/openai.provider.js.map +1 -1
  185. package/dist/providers/openrouter/converters.d.ts.map +1 -1
  186. package/dist/providers/openrouter/converters.js +8 -6
  187. package/dist/providers/openrouter/converters.js.map +1 -1
  188. package/dist/providers/openrouter/converters.test.js +24 -0
  189. package/dist/providers/openrouter/converters.test.js.map +1 -1
  190. package/dist/providers/openrouter/model.d.ts.map +1 -1
  191. package/dist/providers/openrouter/model.js +13 -5
  192. package/dist/providers/openrouter/model.js.map +1 -1
  193. package/dist/providers/openrouter/reasoning-content.test.js +48 -2
  194. package/dist/providers/openrouter/reasoning-content.test.js.map +1 -1
  195. package/dist/providers/openrouter.provider.createRunner.test.js +17 -9
  196. package/dist/providers/openrouter.provider.createRunner.test.js.map +1 -1
  197. package/dist/providers/openrouter.provider.js.map +1 -1
  198. package/dist/providers/openrouter.test.js +0 -2
  199. package/dist/providers/openrouter.test.js.map +1 -1
  200. package/dist/providers/registry.d.ts +17 -8
  201. package/dist/providers/registry.d.ts.map +1 -1
  202. package/dist/providers/registry.js +9 -0
  203. package/dist/providers/registry.js.map +1 -1
  204. package/dist/providers/web-search/exa.provider.d.ts +15 -0
  205. package/dist/providers/web-search/exa.provider.d.ts.map +1 -0
  206. package/dist/providers/web-search/exa.provider.js +82 -0
  207. package/dist/providers/web-search/exa.provider.js.map +1 -0
  208. package/dist/providers/web-search/exa.provider.test.d.ts +2 -0
  209. package/dist/providers/web-search/exa.provider.test.d.ts.map +1 -0
  210. package/dist/providers/web-search/exa.provider.test.js +67 -0
  211. package/dist/providers/web-search/exa.provider.test.js.map +1 -0
  212. package/dist/providers/web-search/index.d.ts +1 -0
  213. package/dist/providers/web-search/index.d.ts.map +1 -1
  214. package/dist/providers/web-search/index.js +1 -0
  215. package/dist/providers/web-search/index.js.map +1 -1
  216. package/dist/scripts/eval-auto-approval/cache.d.ts +9 -0
  217. package/dist/scripts/eval-auto-approval/cache.d.ts.map +1 -0
  218. package/dist/scripts/eval-auto-approval/cache.js +64 -0
  219. package/dist/scripts/eval-auto-approval/cache.js.map +1 -0
  220. package/dist/scripts/eval-auto-approval/dataset.d.ts +45 -0
  221. package/dist/scripts/eval-auto-approval/dataset.d.ts.map +1 -0
  222. package/dist/scripts/eval-auto-approval/dataset.js +65 -0
  223. package/dist/scripts/eval-auto-approval/dataset.js.map +1 -0
  224. package/dist/scripts/eval-auto-approval/dataset.test.d.ts +2 -0
  225. package/dist/scripts/eval-auto-approval/dataset.test.d.ts.map +1 -0
  226. package/dist/scripts/eval-auto-approval/dataset.test.js +88 -0
  227. package/dist/scripts/eval-auto-approval/dataset.test.js.map +1 -0
  228. package/dist/scripts/eval-auto-approval/leaderboard.d.ts +92 -0
  229. package/dist/scripts/eval-auto-approval/leaderboard.d.ts.map +1 -0
  230. package/dist/scripts/eval-auto-approval/leaderboard.js +402 -0
  231. package/dist/scripts/eval-auto-approval/leaderboard.js.map +1 -0
  232. package/dist/scripts/eval-auto-approval/leaderboard.test.d.ts +2 -0
  233. package/dist/scripts/eval-auto-approval/leaderboard.test.d.ts.map +1 -0
  234. package/dist/scripts/eval-auto-approval/leaderboard.test.js +689 -0
  235. package/dist/scripts/eval-auto-approval/leaderboard.test.js.map +1 -0
  236. package/dist/scripts/eval-auto-approval/metrics.d.ts +34 -0
  237. package/dist/scripts/eval-auto-approval/metrics.d.ts.map +1 -0
  238. package/dist/scripts/eval-auto-approval/metrics.js +74 -0
  239. package/dist/scripts/eval-auto-approval/metrics.js.map +1 -0
  240. package/dist/scripts/eval-auto-approval/metrics.test.d.ts +2 -0
  241. package/dist/scripts/eval-auto-approval/metrics.test.d.ts.map +1 -0
  242. package/dist/scripts/eval-auto-approval/metrics.test.js +79 -0
  243. package/dist/scripts/eval-auto-approval/metrics.test.js.map +1 -0
  244. package/dist/scripts/eval-auto-approval/report.d.ts +5 -0
  245. package/dist/scripts/eval-auto-approval/report.d.ts.map +1 -0
  246. package/dist/scripts/eval-auto-approval/report.js +51 -0
  247. package/dist/scripts/eval-auto-approval/report.js.map +1 -0
  248. package/dist/scripts/eval-auto-approval/report.test.d.ts +2 -0
  249. package/dist/scripts/eval-auto-approval/report.test.d.ts.map +1 -0
  250. package/dist/scripts/eval-auto-approval/report.test.js +23 -0
  251. package/dist/scripts/eval-auto-approval/report.test.js.map +1 -0
  252. package/dist/scripts/eval-auto-approval/runner-utils.d.ts +41 -0
  253. package/dist/scripts/eval-auto-approval/runner-utils.d.ts.map +1 -0
  254. package/dist/scripts/eval-auto-approval/runner-utils.js +187 -0
  255. package/dist/scripts/eval-auto-approval/runner-utils.js.map +1 -0
  256. package/dist/scripts/eval-auto-approval/runner-utils.test.d.ts +2 -0
  257. package/dist/scripts/eval-auto-approval/runner-utils.test.d.ts.map +1 -0
  258. package/dist/scripts/eval-auto-approval/runner-utils.test.js +135 -0
  259. package/dist/scripts/eval-auto-approval/runner-utils.test.js.map +1 -0
  260. package/dist/scripts/eval-auto-approval/runner.d.ts +2 -0
  261. package/dist/scripts/eval-auto-approval/runner.d.ts.map +1 -0
  262. package/dist/scripts/eval-auto-approval/runner.js +326 -0
  263. package/dist/scripts/eval-auto-approval/runner.js.map +1 -0
  264. package/dist/services/agent-stream.d.ts +11 -0
  265. package/dist/services/agent-stream.d.ts.map +1 -0
  266. package/dist/services/agent-stream.js +2 -0
  267. package/dist/services/agent-stream.js.map +1 -0
  268. package/dist/services/approval-flow-coordinator.d.ts +43 -0
  269. package/dist/services/approval-flow-coordinator.d.ts.map +1 -0
  270. package/dist/services/approval-flow-coordinator.js +120 -0
  271. package/dist/services/approval-flow-coordinator.js.map +1 -0
  272. package/dist/services/approval-flow-coordinator.test.d.ts +2 -0
  273. package/dist/services/approval-flow-coordinator.test.d.ts.map +1 -0
  274. package/dist/services/approval-flow-coordinator.test.js +168 -0
  275. package/dist/services/approval-flow-coordinator.test.js.map +1 -0
  276. package/dist/services/approval-presentation-policy.d.ts +17 -0
  277. package/dist/services/approval-presentation-policy.d.ts.map +1 -0
  278. package/dist/services/approval-presentation-policy.js +44 -0
  279. package/dist/services/approval-presentation-policy.js.map +1 -0
  280. package/dist/services/approval-presentation-policy.test.d.ts +2 -0
  281. package/dist/services/approval-presentation-policy.test.d.ts.map +1 -0
  282. package/dist/services/approval-presentation-policy.test.js +74 -0
  283. package/dist/services/approval-presentation-policy.test.js.map +1 -0
  284. package/dist/services/approval-rejection-interceptor.d.ts +16 -0
  285. package/dist/services/approval-rejection-interceptor.d.ts.map +1 -0
  286. package/dist/services/approval-rejection-interceptor.js +20 -0
  287. package/dist/services/approval-rejection-interceptor.js.map +1 -0
  288. package/dist/services/approval-rejection-interceptor.test.d.ts +2 -0
  289. package/dist/services/approval-rejection-interceptor.test.d.ts.map +1 -0
  290. package/dist/services/approval-rejection-interceptor.test.js +60 -0
  291. package/dist/services/approval-rejection-interceptor.test.js.map +1 -0
  292. package/dist/services/approval-state.d.ts +4 -4
  293. package/dist/services/approval-state.d.ts.map +1 -1
  294. package/dist/services/conversation-events.d.ts +13 -8
  295. package/dist/services/conversation-events.d.ts.map +1 -1
  296. package/dist/services/conversation-result-builder.d.ts +41 -0
  297. package/dist/services/conversation-result-builder.d.ts.map +1 -0
  298. package/dist/services/conversation-result-builder.js +98 -0
  299. package/dist/services/conversation-result-builder.js.map +1 -0
  300. package/dist/services/conversation-result-builder.test.d.ts +2 -0
  301. package/dist/services/conversation-result-builder.test.d.ts.map +1 -0
  302. package/dist/services/conversation-result-builder.test.js +156 -0
  303. package/dist/services/conversation-result-builder.test.js.map +1 -0
  304. package/dist/services/conversation-retry-policy.d.ts +37 -0
  305. package/dist/services/conversation-retry-policy.d.ts.map +1 -0
  306. package/dist/services/conversation-retry-policy.js +51 -0
  307. package/dist/services/conversation-retry-policy.js.map +1 -0
  308. package/dist/services/conversation-retry-policy.test.d.ts +2 -0
  309. package/dist/services/conversation-retry-policy.test.d.ts.map +1 -0
  310. package/dist/services/conversation-retry-policy.test.js +79 -0
  311. package/dist/services/conversation-retry-policy.test.js.map +1 -0
  312. package/dist/services/conversation-service.d.ts +9 -6
  313. package/dist/services/conversation-service.d.ts.map +1 -1
  314. package/dist/services/conversation-service.js +1 -1
  315. package/dist/services/conversation-service.js.map +1 -1
  316. package/dist/services/conversation-session.auto-approval.test.d.ts +2 -0
  317. package/dist/services/conversation-session.auto-approval.test.d.ts.map +1 -0
  318. package/dist/services/conversation-session.auto-approval.test.js +617 -0
  319. package/dist/services/conversation-session.auto-approval.test.js.map +1 -0
  320. package/dist/services/conversation-session.d.ts +10 -27
  321. package/dist/services/conversation-session.d.ts.map +1 -1
  322. package/dist/services/conversation-session.js +189 -778
  323. package/dist/services/conversation-session.js.map +1 -1
  324. package/dist/services/conversation-store.d.ts +6 -0
  325. package/dist/services/conversation-store.d.ts.map +1 -1
  326. package/dist/services/conversation-store.js +13 -0
  327. package/dist/services/conversation-store.js.map +1 -1
  328. package/dist/services/interruption-info.d.ts +13 -0
  329. package/dist/services/interruption-info.d.ts.map +1 -0
  330. package/dist/services/interruption-info.js +89 -0
  331. package/dist/services/interruption-info.js.map +1 -0
  332. package/dist/services/interruption-info.test.d.ts +2 -0
  333. package/dist/services/interruption-info.test.d.ts.map +1 -0
  334. package/dist/services/interruption-info.test.js +84 -0
  335. package/dist/services/interruption-info.test.js.map +1 -0
  336. package/dist/services/logging-contract.d.ts +1 -1
  337. package/dist/services/logging-service.d.ts +6 -2
  338. package/dist/services/logging-service.d.ts.map +1 -1
  339. package/dist/services/logging-service.js +48 -91
  340. package/dist/services/logging-service.js.map +1 -1
  341. package/dist/services/settings-env.d.ts.map +1 -1
  342. package/dist/services/settings-env.js +3 -0
  343. package/dist/services/settings-env.js.map +1 -1
  344. package/dist/services/settings-schema.d.ts +34 -0
  345. package/dist/services/settings-schema.d.ts.map +1 -1
  346. package/dist/services/settings-schema.js +37 -0
  347. package/dist/services/settings-schema.js.map +1 -1
  348. package/dist/services/settings-service.d.ts.map +1 -1
  349. package/dist/services/settings-service.js +12 -166
  350. package/dist/services/settings-service.js.map +1 -1
  351. package/dist/services/settings-sources.d.ts +5 -0
  352. package/dist/services/settings-sources.d.ts.map +1 -0
  353. package/dist/services/settings-sources.js +92 -0
  354. package/dist/services/settings-sources.js.map +1 -0
  355. package/dist/services/settings-sources.test.d.ts +2 -0
  356. package/dist/services/settings-sources.test.d.ts.map +1 -0
  357. package/dist/services/settings-sources.test.js +34 -0
  358. package/dist/services/settings-sources.test.js.map +1 -0
  359. package/dist/services/shell-auto-approval-evaluator.d.ts +19 -0
  360. package/dist/services/shell-auto-approval-evaluator.d.ts.map +1 -0
  361. package/dist/services/shell-auto-approval-evaluator.js +207 -0
  362. package/dist/services/shell-auto-approval-evaluator.js.map +1 -0
  363. package/dist/services/shell-auto-approval-evaluator.test.d.ts +2 -0
  364. package/dist/services/shell-auto-approval-evaluator.test.d.ts.map +1 -0
  365. package/dist/services/shell-auto-approval-evaluator.test.js +211 -0
  366. package/dist/services/shell-auto-approval-evaluator.test.js.map +1 -0
  367. package/dist/services/shell-auto-approval-resolver.d.ts +24 -0
  368. package/dist/services/shell-auto-approval-resolver.d.ts.map +1 -0
  369. package/dist/services/shell-auto-approval-resolver.js +59 -0
  370. package/dist/services/shell-auto-approval-resolver.js.map +1 -0
  371. package/dist/services/shell-auto-approval-resolver.test.d.ts +2 -0
  372. package/dist/services/shell-auto-approval-resolver.test.d.ts.map +1 -0
  373. package/dist/services/shell-auto-approval-resolver.test.js +110 -0
  374. package/dist/services/shell-auto-approval-resolver.test.js.map +1 -0
  375. package/dist/services/ssh-service.test.js +2 -2
  376. package/dist/services/ssh-service.test.js.map +1 -1
  377. package/dist/services/stream-event-processor.d.ts +27 -0
  378. package/dist/services/stream-event-processor.d.ts.map +1 -0
  379. package/dist/services/stream-event-processor.js +205 -0
  380. package/dist/services/stream-event-processor.js.map +1 -0
  381. package/dist/services/stream-event-processor.test.d.ts +2 -0
  382. package/dist/services/stream-event-processor.test.d.ts.map +1 -0
  383. package/dist/services/stream-event-processor.test.js +170 -0
  384. package/dist/services/stream-event-processor.test.js.map +1 -0
  385. package/dist/services/terminal-result-collector.d.ts +12 -0
  386. package/dist/services/terminal-result-collector.d.ts.map +1 -0
  387. package/dist/services/terminal-result-collector.js +64 -0
  388. package/dist/services/terminal-result-collector.js.map +1 -0
  389. package/dist/services/terminal-result-collector.test.d.ts +2 -0
  390. package/dist/services/terminal-result-collector.test.d.ts.map +1 -0
  391. package/dist/services/terminal-result-collector.test.js +93 -0
  392. package/dist/services/terminal-result-collector.test.js.map +1 -0
  393. package/dist/tools/apply-patch.js +5 -5
  394. package/dist/tools/apply-patch.js.map +1 -1
  395. package/dist/tools/create-file.js +2 -2
  396. package/dist/tools/create-file.js.map +1 -1
  397. package/dist/tools/edit-healing.d.ts.map +1 -1
  398. package/dist/tools/edit-healing.js +4 -1
  399. package/dist/tools/edit-healing.js.map +1 -1
  400. package/dist/tools/edit-healing.test.js +22 -0
  401. package/dist/tools/edit-healing.test.js.map +1 -1
  402. package/dist/tools/read-file.test.js +15 -0
  403. package/dist/tools/read-file.test.js.map +1 -1
  404. package/dist/tools/search-replace.d.ts.map +1 -1
  405. package/dist/tools/search-replace.js +223 -147
  406. package/dist/tools/search-replace.js.map +1 -1
  407. package/dist/tools/search-replace.test.js +215 -0
  408. package/dist/tools/search-replace.test.js.map +1 -1
  409. package/dist/tools/shell.js +2 -2
  410. package/dist/tools/shell.js.map +1 -1
  411. package/dist/tools/shell.test.js +0 -5
  412. package/dist/tools/shell.test.js.map +1 -1
  413. package/dist/tools/tool-capabilities.d.ts +6 -0
  414. package/dist/tools/tool-capabilities.d.ts.map +1 -0
  415. package/dist/tools/tool-capabilities.js +17 -0
  416. package/dist/tools/tool-capabilities.js.map +1 -0
  417. package/dist/tools/types.d.ts +4 -2
  418. package/dist/tools/types.d.ts.map +1 -1
  419. package/dist/tools/utils.d.ts.map +1 -1
  420. package/dist/tools/utils.js +4 -1
  421. package/dist/tools/utils.js.map +1 -1
  422. package/dist/tools/utils.test.d.ts.map +1 -0
  423. package/dist/tools/utils.test.js +26 -0
  424. package/dist/tools/utils.test.js.map +1 -0
  425. package/dist/tools/web-fetch.test.js +3 -3
  426. package/dist/tools/web-fetch.test.js.map +1 -1
  427. package/dist/utils/clipboard.d.ts +16 -0
  428. package/dist/utils/clipboard.d.ts.map +1 -0
  429. package/dist/utils/clipboard.js +55 -0
  430. package/dist/utils/clipboard.js.map +1 -0
  431. package/dist/utils/clipboard.test.d.ts +2 -0
  432. package/dist/utils/clipboard.test.d.ts.map +1 -0
  433. package/dist/utils/clipboard.test.js +59 -0
  434. package/dist/utils/clipboard.test.js.map +1 -0
  435. package/dist/utils/command-safety/constants.d.ts.map +1 -1
  436. package/dist/utils/command-safety/constants.js +3 -21
  437. package/dist/utils/command-safety/constants.js.map +1 -1
  438. package/dist/utils/command-safety/find-helpers.d.ts.map +1 -1
  439. package/dist/utils/command-safety/find-helpers.js +13 -95
  440. package/dist/utils/command-safety/find-helpers.js.map +1 -1
  441. package/dist/utils/command-safety/handlers/sed-handler.d.ts.map +1 -1
  442. package/dist/utils/command-safety/handlers/sed-handler.js +2 -4
  443. package/dist/utils/command-safety/handlers/sed-handler.js.map +1 -1
  444. package/dist/utils/command-safety/index.d.ts +9 -0
  445. package/dist/utils/command-safety/index.d.ts.map +1 -1
  446. package/dist/utils/command-safety/index.js +12 -2
  447. package/dist/utils/command-safety/index.js.map +1 -1
  448. package/dist/utils/command-safety/path-analysis.d.ts.map +1 -1
  449. package/dist/utils/command-safety/path-analysis.js +7 -6
  450. package/dist/utils/command-safety/path-analysis.js.map +1 -1
  451. package/dist/utils/command-safety.find.test.js +56 -39
  452. package/dist/utils/command-safety.find.test.js.map +1 -1
  453. package/dist/utils/command-safety.path.test.js +7 -7
  454. package/dist/utils/command-safety.path.test.js.map +1 -1
  455. package/dist/utils/command-safety.red-yellow-policy.test.d.ts +2 -0
  456. package/dist/utils/command-safety.red-yellow-policy.test.d.ts.map +1 -0
  457. package/dist/utils/command-safety.red-yellow-policy.test.js +36 -0
  458. package/dist/utils/command-safety.red-yellow-policy.test.js.map +1 -0
  459. package/dist/utils/conversation-event-handler.d.ts +19 -12
  460. package/dist/utils/conversation-event-handler.d.ts.map +1 -1
  461. package/dist/utils/conversation-event-handler.js +19 -5
  462. package/dist/utils/conversation-event-handler.js.map +1 -1
  463. package/dist/utils/conversation-event-handler.test.js +24 -0
  464. package/dist/utils/conversation-event-handler.test.js.map +1 -1
  465. package/dist/utils/conversation-utils.d.ts +1 -1
  466. package/dist/utils/execute-shell.d.ts +10 -0
  467. package/dist/utils/execute-shell.d.ts.map +1 -1
  468. package/dist/utils/execute-shell.js +3 -3
  469. package/dist/utils/execute-shell.js.map +1 -1
  470. package/dist/utils/execute-shell.test.js +19 -3
  471. package/dist/utils/execute-shell.test.js.map +1 -1
  472. package/dist/utils/input-parser.d.ts +13 -0
  473. package/dist/utils/input-parser.d.ts.map +1 -0
  474. package/dist/utils/input-parser.js +10 -0
  475. package/dist/utils/input-parser.js.map +1 -0
  476. package/dist/utils/model-provider-arg.d.ts +5 -0
  477. package/dist/utils/model-provider-arg.d.ts.map +1 -0
  478. package/dist/utils/model-provider-arg.js +15 -0
  479. package/dist/utils/model-provider-arg.js.map +1 -0
  480. package/dist/utils/model-provider-arg.test.d.ts +2 -0
  481. package/dist/utils/model-provider-arg.test.d.ts.map +1 -0
  482. package/dist/utils/model-provider-arg.test.js +21 -0
  483. package/dist/utils/model-provider-arg.test.js.map +1 -0
  484. package/dist/utils/model-settings.d.ts +12 -0
  485. package/dist/utils/model-settings.d.ts.map +1 -0
  486. package/dist/utils/model-settings.js +35 -0
  487. package/dist/utils/model-settings.js.map +1 -0
  488. package/dist/utils/provider-traffic-extractor.d.ts +1 -0
  489. package/dist/utils/provider-traffic-extractor.d.ts.map +1 -1
  490. package/dist/utils/provider-traffic-extractor.js +90 -5
  491. package/dist/utils/provider-traffic-extractor.js.map +1 -1
  492. package/dist/utils/settings-command.d.ts.map +1 -1
  493. package/dist/utils/settings-command.js +10 -8
  494. package/dist/utils/settings-command.js.map +1 -1
  495. package/dist/utils/streaming-session-factory.d.ts +9 -9
  496. package/dist/utils/streaming-session-factory.d.ts.map +1 -1
  497. package/dist/utils/streaming-session-factory.js +12 -4
  498. package/dist/utils/streaming-session-factory.js.map +1 -1
  499. package/dist/utils/streaming-session-factory.test.js +2 -2
  500. package/dist/utils/streaming-session-factory.test.js.map +1 -1
  501. package/dist/utils/streaming-updater.d.ts +2 -1
  502. package/dist/utils/streaming-updater.d.ts.map +1 -1
  503. package/dist/utils/streaming-updater.js +2 -2
  504. package/dist/utils/streaming-updater.js.map +1 -1
  505. package/dist/utils/synchronized-output.d.ts +35 -0
  506. package/dist/utils/synchronized-output.d.ts.map +1 -0
  507. package/dist/utils/synchronized-output.js +66 -0
  508. package/dist/utils/synchronized-output.js.map +1 -0
  509. package/dist/utils/synchronized-output.test.d.ts +2 -0
  510. package/dist/utils/synchronized-output.test.d.ts.map +1 -0
  511. package/dist/utils/synchronized-output.test.js +70 -0
  512. package/dist/utils/synchronized-output.test.js.map +1 -0
  513. package/dist/utils/throttle.d.ts +6 -1
  514. package/dist/utils/throttle.d.ts.map +1 -1
  515. package/dist/utils/throttle.js +11 -6
  516. package/dist/utils/throttle.js.map +1 -1
  517. package/dist/utils/viewport.d.ts +6 -0
  518. package/dist/utils/viewport.d.ts.map +1 -0
  519. package/dist/utils/viewport.js +20 -0
  520. package/dist/utils/viewport.js.map +1 -0
  521. package/dist/utils/viewport.test.d.ts +2 -0
  522. package/dist/utils/viewport.test.d.ts.map +1 -0
  523. package/dist/utils/viewport.test.js +43 -0
  524. package/dist/utils/viewport.test.js.map +1 -0
  525. package/package.json +5 -4
  526. package/dist/agent.lite-mode.test.d.ts +0 -2
  527. package/dist/agent.lite-mode.test.d.ts.map +0 -1
  528. package/dist/agent.lite-mode.test.js +0 -39
  529. package/dist/agent.lite-mode.test.js.map +0 -1
  530. package/dist/components/ModelSelectionMenu.error-tabs.test.d.ts +0 -2
  531. package/dist/components/ModelSelectionMenu.error-tabs.test.d.ts.map +0 -1
  532. package/dist/components/ModelSelectionMenu.error-tabs.test.js +0 -18
  533. package/dist/components/ModelSelectionMenu.error-tabs.test.js.map +0 -1
  534. package/dist/components/TextInput.d.ts +0 -42
  535. package/dist/components/TextInput.d.ts.map +0 -1
  536. package/dist/components/TextInput.js +0 -398
  537. package/dist/components/TextInput.js.map +0 -1
  538. package/dist/components/TextInput.test.d.ts +0 -2
  539. package/dist/components/TextInput.test.d.ts.map +0 -1
  540. package/dist/components/TextInput.test.js +0 -75
  541. package/dist/components/TextInput.test.js.map +0 -1
  542. package/dist/debug_ask_mentor.d.ts +0 -2
  543. package/dist/debug_ask_mentor.d.ts.map +0 -1
  544. package/dist/debug_ask_mentor.js +0 -73
  545. package/dist/debug_ask_mentor.js.map +0 -1
  546. package/dist/lib/shell.d.ts +0 -7
  547. package/dist/lib/shell.d.ts.map +0 -1
  548. package/dist/lib/shell.js +0 -56
  549. package/dist/lib/shell.js.map +0 -1
  550. package/dist/modes/companion/command-index.d.ts +0 -26
  551. package/dist/modes/companion/command-index.d.ts.map +0 -1
  552. package/dist/modes/companion/command-index.js +0 -50
  553. package/dist/modes/companion/command-index.js.map +0 -1
  554. package/dist/modes/companion/command-index.test.d.ts +0 -2
  555. package/dist/modes/companion/command-index.test.d.ts.map +0 -1
  556. package/dist/modes/companion/command-index.test.js +0 -86
  557. package/dist/modes/companion/command-index.test.js.map +0 -1
  558. package/dist/modes/companion/companion-app.d.ts +0 -12
  559. package/dist/modes/companion/companion-app.d.ts.map +0 -1
  560. package/dist/modes/companion/companion-app.js +0 -297
  561. package/dist/modes/companion/companion-app.js.map +0 -1
  562. package/dist/modes/companion/companion-session.d.ts +0 -63
  563. package/dist/modes/companion/companion-session.d.ts.map +0 -1
  564. package/dist/modes/companion/companion-session.js +0 -146
  565. package/dist/modes/companion/companion-session.js.map +0 -1
  566. package/dist/modes/companion/companion-session.test.d.ts +0 -2
  567. package/dist/modes/companion/companion-session.test.d.ts.map +0 -1
  568. package/dist/modes/companion/companion-session.test.js +0 -28
  569. package/dist/modes/companion/companion-session.test.js.map +0 -1
  570. package/dist/modes/companion/components/status-bar.d.ts +0 -13
  571. package/dist/modes/companion/components/status-bar.d.ts.map +0 -1
  572. package/dist/modes/companion/components/status-bar.js +0 -26
  573. package/dist/modes/companion/components/status-bar.js.map +0 -1
  574. package/dist/modes/companion/context-buffer.d.ts +0 -65
  575. package/dist/modes/companion/context-buffer.d.ts.map +0 -1
  576. package/dist/modes/companion/context-buffer.js +0 -156
  577. package/dist/modes/companion/context-buffer.js.map +0 -1
  578. package/dist/modes/companion/context-buffer.test.d.ts +0 -2
  579. package/dist/modes/companion/context-buffer.test.d.ts.map +0 -1
  580. package/dist/modes/companion/context-buffer.test.js +0 -154
  581. package/dist/modes/companion/context-buffer.test.js.map +0 -1
  582. package/dist/modes/companion/event-detector.d.ts +0 -46
  583. package/dist/modes/companion/event-detector.d.ts.map +0 -1
  584. package/dist/modes/companion/event-detector.js +0 -169
  585. package/dist/modes/companion/event-detector.js.map +0 -1
  586. package/dist/modes/companion/event-detector.test.d.ts +0 -2
  587. package/dist/modes/companion/event-detector.test.d.ts.map +0 -1
  588. package/dist/modes/companion/event-detector.test.js +0 -121
  589. package/dist/modes/companion/event-detector.test.js.map +0 -1
  590. package/dist/modes/companion/index.d.ts +0 -33
  591. package/dist/modes/companion/index.d.ts.map +0 -1
  592. package/dist/modes/companion/index.js +0 -21
  593. package/dist/modes/companion/index.js.map +0 -1
  594. package/dist/modes/companion/input-key-mapper.d.ts +0 -3
  595. package/dist/modes/companion/input-key-mapper.d.ts.map +0 -1
  596. package/dist/modes/companion/input-key-mapper.js +0 -31
  597. package/dist/modes/companion/input-key-mapper.js.map +0 -1
  598. package/dist/modes/companion/input-key-mapper.test.d.ts +0 -2
  599. package/dist/modes/companion/input-key-mapper.test.d.ts.map +0 -1
  600. package/dist/modes/companion/input-key-mapper.test.js +0 -26
  601. package/dist/modes/companion/input-key-mapper.test.js.map +0 -1
  602. package/dist/modes/companion/input-parser.d.ts +0 -53
  603. package/dist/modes/companion/input-parser.d.ts.map +0 -1
  604. package/dist/modes/companion/input-parser.js +0 -114
  605. package/dist/modes/companion/input-parser.js.map +0 -1
  606. package/dist/modes/companion/input-parser.test.d.ts +0 -2
  607. package/dist/modes/companion/input-parser.test.d.ts.map +0 -1
  608. package/dist/modes/companion/input-parser.test.js +0 -123
  609. package/dist/modes/companion/input-parser.test.js.map +0 -1
  610. package/dist/modes/companion/mode-manager.d.ts +0 -41
  611. package/dist/modes/companion/mode-manager.d.ts.map +0 -1
  612. package/dist/modes/companion/mode-manager.js +0 -56
  613. package/dist/modes/companion/mode-manager.js.map +0 -1
  614. package/dist/modes/companion/mode-manager.test.d.ts +0 -2
  615. package/dist/modes/companion/mode-manager.test.d.ts.map +0 -1
  616. package/dist/modes/companion/mode-manager.test.js +0 -65
  617. package/dist/modes/companion/mode-manager.test.js.map +0 -1
  618. package/dist/modes/companion/output-classifier.d.ts +0 -15
  619. package/dist/modes/companion/output-classifier.d.ts.map +0 -1
  620. package/dist/modes/companion/output-classifier.js +0 -77
  621. package/dist/modes/companion/output-classifier.js.map +0 -1
  622. package/dist/modes/companion/output-classifier.test.d.ts +0 -2
  623. package/dist/modes/companion/output-classifier.test.d.ts.map +0 -1
  624. package/dist/modes/companion/output-classifier.test.js +0 -133
  625. package/dist/modes/companion/output-classifier.test.js.map +0 -1
  626. package/dist/modes/companion/pty-wrapper.d.ts +0 -46
  627. package/dist/modes/companion/pty-wrapper.d.ts.map +0 -1
  628. package/dist/modes/companion/pty-wrapper.js +0 -143
  629. package/dist/modes/companion/pty-wrapper.js.map +0 -1
  630. package/dist/modes/companion/safety-classifier.d.ts +0 -31
  631. package/dist/modes/companion/safety-classifier.d.ts.map +0 -1
  632. package/dist/modes/companion/safety-classifier.js +0 -140
  633. package/dist/modes/companion/safety-classifier.js.map +0 -1
  634. package/dist/modes/companion/safety-classifier.test.d.ts +0 -2
  635. package/dist/modes/companion/safety-classifier.test.d.ts.map +0 -1
  636. package/dist/modes/companion/safety-classifier.test.js +0 -151
  637. package/dist/modes/companion/safety-classifier.test.js.map +0 -1
  638. package/dist/modes/companion/summarizer.d.ts +0 -24
  639. package/dist/modes/companion/summarizer.d.ts.map +0 -1
  640. package/dist/modes/companion/summarizer.js +0 -132
  641. package/dist/modes/companion/summarizer.js.map +0 -1
  642. package/dist/modes/companion/terminal-history.d.ts +0 -27
  643. package/dist/modes/companion/terminal-history.d.ts.map +0 -1
  644. package/dist/modes/companion/terminal-history.js +0 -142
  645. package/dist/modes/companion/terminal-history.js.map +0 -1
  646. package/dist/prompts/simple-mentor.md +0 -215
  647. package/dist/providers/github-copilot/converters.d.ts +0 -45
  648. package/dist/providers/github-copilot/converters.d.ts.map +0 -1
  649. package/dist/providers/github-copilot/converters.js +0 -118
  650. package/dist/providers/github-copilot/converters.js.map +0 -1
  651. package/dist/providers/github-copilot/converters.test.d.ts +0 -2
  652. package/dist/providers/github-copilot/converters.test.d.ts.map +0 -1
  653. package/dist/providers/github-copilot/converters.test.js +0 -162
  654. package/dist/providers/github-copilot/converters.test.js.map +0 -1
  655. package/dist/providers/github-copilot/github-copilot.provider.d.ts +0 -2
  656. package/dist/providers/github-copilot/github-copilot.provider.d.ts.map +0 -1
  657. package/dist/providers/github-copilot/github-copilot.provider.js +0 -75
  658. package/dist/providers/github-copilot/github-copilot.provider.js.map +0 -1
  659. package/dist/providers/github-copilot/github-copilot.provider.test.d.ts +0 -2
  660. package/dist/providers/github-copilot/github-copilot.provider.test.d.ts.map +0 -1
  661. package/dist/providers/github-copilot/github-copilot.provider.test.js +0 -26
  662. package/dist/providers/github-copilot/github-copilot.provider.test.js.map +0 -1
  663. package/dist/providers/github-copilot/index.d.ts +0 -4
  664. package/dist/providers/github-copilot/index.d.ts.map +0 -1
  665. package/dist/providers/github-copilot/index.js +0 -4
  666. package/dist/providers/github-copilot/index.js.map +0 -1
  667. package/dist/providers/github-copilot/model.d.ts +0 -24
  668. package/dist/providers/github-copilot/model.d.ts.map +0 -1
  669. package/dist/providers/github-copilot/model.delta.test.d.ts +0 -2
  670. package/dist/providers/github-copilot/model.delta.test.d.ts.map +0 -1
  671. package/dist/providers/github-copilot/model.delta.test.js +0 -15
  672. package/dist/providers/github-copilot/model.delta.test.js.map +0 -1
  673. package/dist/providers/github-copilot/model.js +0 -498
  674. package/dist/providers/github-copilot/model.js.map +0 -1
  675. package/dist/providers/github-copilot/model.test.d.ts +0 -2
  676. package/dist/providers/github-copilot/model.test.d.ts.map +0 -1
  677. package/dist/providers/github-copilot/model.test.js +0 -63
  678. package/dist/providers/github-copilot/model.test.js.map +0 -1
  679. package/dist/providers/github-copilot/provider.d.ts +0 -15
  680. package/dist/providers/github-copilot/provider.d.ts.map +0 -1
  681. package/dist/providers/github-copilot/provider.js +0 -25
  682. package/dist/providers/github-copilot/provider.js.map +0 -1
  683. package/dist/providers/github-copilot/provider.test.d.ts +0 -2
  684. package/dist/providers/github-copilot/provider.test.d.ts.map +0 -1
  685. package/dist/providers/github-copilot/provider.test.js +0 -52
  686. package/dist/providers/github-copilot/provider.test.js.map +0 -1
  687. package/dist/providers/github-copilot/utils.d.ts +0 -20
  688. package/dist/providers/github-copilot/utils.d.ts.map +0 -1
  689. package/dist/providers/github-copilot/utils.js +0 -142
  690. package/dist/providers/github-copilot/utils.js.map +0 -1
  691. package/dist/providers/github-copilot/utils.test.d.ts.map +0 -1
  692. package/dist/providers/github-copilot/utils.test.js +0 -21
  693. package/dist/providers/github-copilot/utils.test.js.map +0 -1
  694. package/dist/safety-checker.js +0 -57
  695. package/dist/services/check_mock.d.ts +0 -2
  696. package/dist/services/check_mock.d.ts.map +0 -1
  697. package/dist/services/check_mock.js +0 -22
  698. package/dist/services/check_mock.js.map +0 -1
  699. package/dist/services/conversation-service.test.d.ts +0 -2
  700. package/dist/services/conversation-service.test.d.ts.map +0 -1
  701. package/dist/services/conversation-service.test.js +0 -156
  702. package/dist/services/conversation-service.test.js.map +0 -1
  703. package/dist/tools/bash.d.ts +0 -10
  704. package/dist/tools/bash.d.ts.map +0 -1
  705. package/dist/tools/bash.js +0 -55
  706. package/dist/tools/bash.js.map +0 -1
  707. package/dist/utils/command-safety.d.ts +0 -21
  708. package/dist/utils/command-safety.d.ts.map +0 -1
  709. package/dist/utils/command-safety.devnull.test.d.ts +0 -2
  710. package/dist/utils/command-safety.devnull.test.d.ts.map +0 -1
  711. package/dist/utils/command-safety.devnull.test.js +0 -13
  712. package/dist/utils/command-safety.devnull.test.js.map +0 -1
  713. package/dist/utils/command-safety.js +0 -348
  714. package/dist/utils/command-safety.js.map +0 -1
  715. package/dist/utils/extract-command-messages.test.d.ts +0 -2
  716. package/dist/utils/extract-command-messages.test.d.ts.map +0 -1
  717. package/dist/utils/extract-command-messages.test.js +0 -64
  718. package/dist/utils/extract-command-messages.test.js.map +0 -1
  719. /package/dist/{providers/github-copilot → tools}/utils.test.d.ts +0 -0
@@ -4,6 +4,7 @@ import path from 'path';
4
4
  import { resolveWorkspacePath } from './utils.js';
5
5
  import { getOutputText, safeJsonParse, normalizeToolArguments, createBaseMessage } from './format-helpers.js';
6
6
  import { healSearchReplaceParams } from './edit-healing.js';
7
+ import { getApprovalPresentationCapability } from './tool-capabilities.js';
7
8
  /**
8
9
  * Detect the predominant EOL style in file content.
9
10
  * Returns '\r\n' if CRLF is dominant, otherwise '\n'.
@@ -67,7 +68,9 @@ function detectSummarizationMarkers(content) {
67
68
  }
68
69
  const searchReplaceParametersSchema = z.object({
69
70
  path: z.string().describe('The absolute or relative path to the file'),
70
- search_content: z.string().describe('The exact content to search for'),
71
+ search_content: z
72
+ .string()
73
+ .describe('The exact content to search for. Use <...> on its own line to skip unchanged middle content (gap matching).'),
71
74
  replace_content: z.string().describe('The content to replace it with'),
72
75
  replace_all: z
73
76
  .boolean()
@@ -75,7 +78,36 @@ const searchReplaceParametersSchema = z.object({
75
78
  .default(false)
76
79
  .describe('Whether to replace all occurrences of the search content. If false, requires exactly one match.'),
77
80
  });
78
- let lastEditCache = null;
81
+ /**
82
+ * Gap marker constant used to indicate omitted middle content in search strings.
83
+ * When the model uses <...> in search_content, the search is split into segments
84
+ * that are matched sequentially, skipping any content between them.
85
+ */
86
+ const GAP_MARKER = '<...>';
87
+ /**
88
+ * Check if search content contains gap markers.
89
+ */
90
+ function containsGapMarker(content) {
91
+ return content.includes(GAP_MARKER);
92
+ }
93
+ class SearchReplaceEditCache {
94
+ lastEditCache = null;
95
+ get(params, content) {
96
+ const key = getEditCacheKey(params);
97
+ if (this.lastEditCache && this.lastEditCache.key === key && this.lastEditCache.content === content) {
98
+ return this.lastEditCache;
99
+ }
100
+ return null;
101
+ }
102
+ set(params, matchInfo, content, eol) {
103
+ this.lastEditCache = {
104
+ key: getEditCacheKey(params),
105
+ matchInfo,
106
+ content,
107
+ eol,
108
+ };
109
+ }
110
+ }
79
111
  function getEditCacheKey(params) {
80
112
  return JSON.stringify({
81
113
  path: params.path,
@@ -141,11 +173,85 @@ function normalizeWhitespaceWithMap(content) {
141
173
  function normalizeWhitespace(content) {
142
174
  return normalizeWhitespaceWithMap(content).normalized;
143
175
  }
176
+ /**
177
+ * Find a segment (multi-line string) within file lines using relaxed matching.
178
+ * Returns the line index range [startLineIdx, endLineIdx) or null if not found.
179
+ * Searches starting from `fromLineIdx`.
180
+ */
181
+ function findSegmentInLines(lineInfos, segmentLines, fromLineIdx) {
182
+ for (let i = fromLineIdx; i <= lineInfos.length - segmentLines.length; i++) {
183
+ let isMatch = true;
184
+ for (let j = 0; j < segmentLines.length; j++) {
185
+ if (lineInfos[i + j].trimmed !== segmentLines[j]) {
186
+ isMatch = false;
187
+ break;
188
+ }
189
+ }
190
+ if (isMatch) {
191
+ return { startLineIdx: i, endLineIdx: i + segmentLines.length };
192
+ }
193
+ }
194
+ return null;
195
+ }
196
+ /**
197
+ * Find gap matches in content. Splits search content on GAP_MARKER,
198
+ * then matches each segment sequentially in the file content.
199
+ * The matched region spans from the start of the first segment to the end of the last.
200
+ */
201
+ function findGapMatches(content, searchContent) {
202
+ const segments = searchContent.split(GAP_MARKER);
203
+ // Filter out empty segments and trim each segment's lines
204
+ const segmentLineSets = segments.map((seg) => seg
205
+ .split(/\r?\n/)
206
+ .map((l) => l.trim())
207
+ .filter((l) => l.length > 0));
208
+ // Validate: all segments must have at least one non-empty line
209
+ if (segmentLineSets.some((lines) => lines.length === 0)) {
210
+ return { type: 'none' };
211
+ }
212
+ const lineInfos = parseFileLines(content);
213
+ const allMatches = [];
214
+ // Try every possible starting position for the first segment
215
+ let searchFrom = 0;
216
+ while (searchFrom <= lineInfos.length - segmentLineSets[0].length) {
217
+ // Find the first segment
218
+ const firstMatch = findSegmentInLines(lineInfos, segmentLineSets[0], searchFrom);
219
+ if (!firstMatch)
220
+ break;
221
+ // Try to match remaining segments sequentially after the first
222
+ let valid = true;
223
+ let lastEndLineIdx = firstMatch.endLineIdx;
224
+ for (let s = 1; s < segmentLineSets.length; s++) {
225
+ const nextMatch = findSegmentInLines(lineInfos, segmentLineSets[s], lastEndLineIdx);
226
+ if (!nextMatch) {
227
+ valid = false;
228
+ break;
229
+ }
230
+ lastEndLineIdx = nextMatch.endLineIdx;
231
+ }
232
+ if (valid) {
233
+ allMatches.push({
234
+ startIndex: lineInfos[firstMatch.startLineIdx].start,
235
+ endIndex: lineInfos[lastEndLineIdx - 1].end,
236
+ });
237
+ }
238
+ // Continue searching from the next line after this match's start
239
+ searchFrom = firstMatch.startLineIdx + 1;
240
+ }
241
+ if (allMatches.length > 0) {
242
+ return { type: 'gap', count: allMatches.length, matches: allMatches };
243
+ }
244
+ return { type: 'none' };
245
+ }
144
246
  /**
145
247
  * Find matches in content using exact matching first, then relaxed matching.
146
248
  * Returns detailed match information including positions for replacement.
147
249
  */
148
250
  function findMatchesInContent(content, searchContent) {
251
+ // 0. Check for gap markers first — delegate to gap matching
252
+ if (containsGapMarker(searchContent)) {
253
+ return findGapMatches(content, searchContent);
254
+ }
149
255
  // 1. Try exact match first
150
256
  let matchCount = 0;
151
257
  let index = content.indexOf(searchContent);
@@ -210,6 +316,65 @@ function findMatchesInContent(content, searchContent) {
210
316
  }
211
317
  return { type: 'none' };
212
318
  }
319
+ function replaceIndexedMatches(content, matches, replaceContent, replaceAll) {
320
+ if (!replaceAll) {
321
+ const match = matches[0];
322
+ return {
323
+ newContent: content.substring(0, match.startIndex) + replaceContent + content.substring(match.endIndex),
324
+ replacedCount: 1,
325
+ };
326
+ }
327
+ let newContent = content;
328
+ const sortedMatches = [...matches].sort((a, b) => b.startIndex - a.startIndex);
329
+ for (const m of sortedMatches) {
330
+ newContent = newContent.substring(0, m.startIndex) + replaceContent + newContent.substring(m.endIndex);
331
+ }
332
+ return {
333
+ newContent,
334
+ replacedCount: matches.length,
335
+ };
336
+ }
337
+ function executeReplacement(matchInfo, content, eol, options) {
338
+ const normalizedReplaceContent = normalizeToEOL(options.replaceContent, eol);
339
+ if (matchInfo.type === 'none') {
340
+ return {
341
+ success: false,
342
+ error: 'Search content not found. Try splitting the changes into smaller search pattern.',
343
+ };
344
+ }
345
+ if (matchInfo.type === 'exact') {
346
+ if (options.replaceAll) {
347
+ return {
348
+ success: true,
349
+ newContent: content.replaceAll(options.normalizedSearchContent, normalizedReplaceContent),
350
+ matchType: 'exact',
351
+ replacedCount: matchInfo.count,
352
+ };
353
+ }
354
+ const firstIndex = content.indexOf(options.normalizedSearchContent);
355
+ return {
356
+ success: true,
357
+ newContent: content.substring(0, firstIndex) +
358
+ normalizedReplaceContent +
359
+ content.substring(firstIndex + options.normalizedSearchContent.length),
360
+ matchType: 'exact',
361
+ replacedCount: 1,
362
+ };
363
+ }
364
+ if (!options.replaceAll && matchInfo.count > 1) {
365
+ return {
366
+ success: false,
367
+ error: `Found ${matchInfo.count} ${matchInfo.type} matches. Please provide more context or set replace_all to true.`,
368
+ };
369
+ }
370
+ const replaced = replaceIndexedMatches(content, matchInfo.matches, normalizedReplaceContent, options.replaceAll);
371
+ return {
372
+ success: true,
373
+ newContent: replaced.newContent,
374
+ matchType: matchInfo.type,
375
+ replacedCount: replaced.replacedCount,
376
+ };
377
+ }
213
378
  export const formatSearchReplaceCommandMessage = (item, index, _toolCallArgumentsById) => {
214
379
  const parsedOutput = safeJsonParse(getOutputText(item));
215
380
  const replaceOutputItems = parsedOutput?.output ?? [];
@@ -270,12 +435,15 @@ export const formatSearchReplaceCommandMessage = (item, index, _toolCallArgument
270
435
  };
271
436
  export function createSearchReplaceToolDefinition(deps) {
272
437
  const { loggingService, settingsService, executionContext, editHealing = healSearchReplaceParams } = deps;
438
+ const editCache = new SearchReplaceEditCache();
273
439
  return {
274
440
  name: 'search_replace',
275
441
  description: 'Replace text in a file using exact or relaxed matching.\n' +
276
442
  'Set replace_all to true to replace all occurrences instead of requiring a unique match.\n' +
443
+ 'Use <...> on its own line in search_content to skip unchanged middle content (gap matching) to save tokens.\n' +
277
444
  'Use this tool for precise edits where you know the content to be replaced.',
278
445
  parameters: searchReplaceParametersSchema,
446
+ approvalPresentation: getApprovalPresentationCapability('search_replace'),
279
447
  needsApproval: async (params) => {
280
448
  try {
281
449
  const editMode = settingsService.get('app.editMode');
@@ -298,7 +466,7 @@ export function createSearchReplaceToolDefinition(deps) {
298
466
  }
299
467
  catch (error) {
300
468
  if (search_content === '' && error?.code === 'ENOENT') {
301
- loggingService.info('search_replace validation: creating new file because search_content is empty', {
469
+ loggingService.debug('search_replace validation: creating new file because search_content is empty', {
302
470
  path: filePath,
303
471
  });
304
472
  if (editMode && insideCwd) {
@@ -334,12 +502,7 @@ export function createSearchReplaceToolDefinition(deps) {
334
502
  // Find matches using shared logic with normalized content
335
503
  const matchInfo = findMatchesInContent(content, normalizedSearchContent);
336
504
  // Cache the result for execute phase
337
- lastEditCache = {
338
- key: getEditCacheKey(params),
339
- matchInfo,
340
- content,
341
- eol,
342
- };
505
+ editCache.set(params, matchInfo, content, eol);
343
506
  if (matchInfo.type === 'exact') {
344
507
  if (!replace_all && matchInfo.count > 1) {
345
508
  loggingService.warn('search_replace validation: multiple exact matches, replace_all=false', {
@@ -348,7 +511,7 @@ export function createSearchReplaceToolDefinition(deps) {
348
511
  });
349
512
  return true;
350
513
  }
351
- loggingService.info('search_replace validation: exact match(es) found', {
514
+ loggingService.debug('search_replace validation: exact match(es) found', {
352
515
  path: filePath,
353
516
  count: matchInfo.count,
354
517
  replace_all,
@@ -367,7 +530,7 @@ export function createSearchReplaceToolDefinition(deps) {
367
530
  // Auto-approve - execute will handle the error gracefully
368
531
  return false;
369
532
  }
370
- loggingService.info('search_replace validation: relaxed match(es) found', {
533
+ loggingService.debug('search_replace validation: relaxed match(es) found', {
371
534
  path: filePath,
372
535
  count: matchInfo.count,
373
536
  replace_all,
@@ -382,11 +545,29 @@ export function createSearchReplaceToolDefinition(deps) {
382
545
  });
383
546
  return false;
384
547
  }
385
- loggingService.info('search_replace validation: normalized match(es) found', {
548
+ loggingService.debug('search_replace validation: normalized match(es) found', {
549
+ path: filePath,
550
+ count: matchInfo.count,
551
+ replace_all,
552
+ });
553
+ return true;
554
+ }
555
+ if (matchInfo.type === 'gap') {
556
+ if (!replace_all && matchInfo.count > 1) {
557
+ loggingService.warn('search_replace validation: multiple gap matches, replace_all=false - will fail in execute', {
558
+ path: filePath,
559
+ count: matchInfo.count,
560
+ });
561
+ return false;
562
+ }
563
+ loggingService.debug('search_replace validation: gap match(es) found', {
386
564
  path: filePath,
387
565
  count: matchInfo.count,
388
566
  replace_all,
389
567
  });
568
+ if (editMode && insideCwd) {
569
+ return false;
570
+ }
390
571
  return true;
391
572
  }
392
573
  // matchInfo.type === 'none'
@@ -422,7 +603,7 @@ export function createSearchReplaceToolDefinition(deps) {
422
603
  return writeFile(p, c, 'utf8');
423
604
  };
424
605
  if (enableFileLogging) {
425
- loggingService.info(`File operation started: search_replace`, {
606
+ loggingService.debug(`File operation started: search_replace`, {
426
607
  path: filePath,
427
608
  targetPath,
428
609
  replace_all,
@@ -436,7 +617,7 @@ export function createSearchReplaceToolDefinition(deps) {
436
617
  if (search_content === '' && error?.code === 'ENOENT') {
437
618
  await writeFileFn(targetPath, replace_content);
438
619
  if (enableFileLogging) {
439
- loggingService.info('File created (search_content empty)', {
620
+ loggingService.debug('File created (search_content empty)', {
440
621
  path: filePath,
441
622
  });
442
623
  }
@@ -476,28 +657,25 @@ export function createSearchReplaceToolDefinition(deps) {
476
657
  });
477
658
  }
478
659
  // Check cache first
479
- const cacheKey = getEditCacheKey(params);
480
660
  let matchInfo;
481
661
  let eol;
482
662
  let normalizedSearchContent;
483
- let normalizedReplaceContent;
484
663
  let usedHealing = false;
485
664
  let healingAttempted = false;
486
665
  let healingSucceeded = false;
487
666
  let healedSearchLength = 0;
488
667
  let matchTypeAfterHealing = 'none';
489
- if (lastEditCache && lastEditCache.key === cacheKey && lastEditCache.content === content) {
668
+ const cachedEdit = editCache.get(params, content);
669
+ if (cachedEdit) {
490
670
  // Use cached results
491
- matchInfo = lastEditCache.matchInfo;
492
- eol = lastEditCache.eol;
671
+ matchInfo = cachedEdit.matchInfo;
672
+ eol = cachedEdit.eol;
493
673
  normalizedSearchContent = normalizeToEOL(removeLeadingFilepathComment(search_content, filePath), eol);
494
- normalizedReplaceContent = normalizeToEOL(replace_content, eol);
495
674
  }
496
675
  else {
497
676
  // Detect EOL and normalize content
498
677
  eol = detectEOL(content);
499
678
  normalizedSearchContent = normalizeToEOL(removeLeadingFilepathComment(search_content, filePath), eol);
500
- normalizedReplaceContent = normalizeToEOL(replace_content, eol);
501
679
  // Find matches using shared logic
502
680
  matchInfo = findMatchesInContent(content, normalizedSearchContent);
503
681
  }
@@ -521,7 +699,7 @@ export function createSearchReplaceToolDefinition(deps) {
521
699
  }
522
700
  }
523
701
  if (enableFileLogging) {
524
- loggingService.info('search_replace healing attempt', {
702
+ loggingService.debug('search_replace healing attempt', {
525
703
  path: filePath,
526
704
  healing_attempted: healingAttempted,
527
705
  healing_succeeded: healingSucceeded,
@@ -542,143 +720,41 @@ export function createSearchReplaceToolDefinition(deps) {
542
720
  }
543
721
  }
544
722
  }
545
- if (matchInfo.type === 'exact') {
546
- let newContent;
547
- if (replace_all) {
548
- newContent = content.replaceAll(normalizedSearchContent, normalizedReplaceContent);
549
- }
550
- else {
551
- const firstIndex = content.indexOf(normalizedSearchContent);
552
- newContent =
553
- content.substring(0, firstIndex) +
554
- normalizedReplaceContent +
555
- content.substring(firstIndex + normalizedSearchContent.length);
556
- }
557
- await writeFileFn(targetPath, newContent);
558
- if (enableFileLogging) {
559
- loggingService.info('File updated (exact match)', {
560
- path: filePath,
561
- replace_all,
562
- count: replace_all ? matchInfo.count : 1,
563
- healed: usedHealing,
564
- });
565
- }
566
- const successMessage = usedHealing
567
- ? `Updated ${filePath} (healed match - original search had minor differences)`
568
- : `Updated ${filePath} (${replace_all ? matchInfo.count : 1} exact match${replace_all && matchInfo.count > 1 ? 'es' : ''})`;
569
- return JSON.stringify({
570
- output: [
571
- {
572
- success: true,
573
- operation: 'search_replace',
574
- path: filePath,
575
- message: successMessage,
576
- healed: usedHealing,
577
- },
578
- ],
579
- });
580
- }
581
- if (matchInfo.type === 'relaxed') {
582
- if (!replace_all && matchInfo.count > 1) {
583
- return JSON.stringify({
584
- output: [
585
- {
586
- success: false,
587
- error: `Found ${matchInfo.count} relaxed matches. Please provide more context or set replace_all to true.`,
588
- },
589
- ],
590
- });
591
- }
592
- let newContent = content;
593
- if (replace_all) {
594
- // Sort matches by startIndex descending to replace from end
595
- matchInfo.matches.sort((a, b) => b.startIndex - a.startIndex);
596
- for (const m of matchInfo.matches) {
597
- newContent =
598
- newContent.substring(0, m.startIndex) + normalizedReplaceContent + newContent.substring(m.endIndex);
599
- }
600
- }
601
- else {
602
- const m = matchInfo.matches[0];
603
- newContent = content.substring(0, m.startIndex) + normalizedReplaceContent + content.substring(m.endIndex);
604
- }
605
- await writeFileFn(targetPath, newContent);
606
- if (enableFileLogging) {
607
- loggingService.info('File updated (relaxed match)', {
608
- path: filePath,
609
- replace_all,
610
- count: replace_all ? matchInfo.count : 1,
611
- healed: usedHealing,
612
- });
613
- }
614
- const successMessage = usedHealing
615
- ? `Updated ${filePath} (healed match - original search had minor differences)`
616
- : `Updated ${filePath} (${replace_all ? matchInfo.count : 1} relaxed match${replace_all && matchInfo.count > 1 ? 'es' : ''})`;
723
+ const replacementResult = executeReplacement(matchInfo, content, eol, {
724
+ normalizedSearchContent,
725
+ replaceContent: replace_content,
726
+ replaceAll: replace_all,
727
+ });
728
+ if (!replacementResult.success) {
617
729
  return JSON.stringify({
618
730
  output: [
619
731
  {
620
- success: true,
621
- operation: 'search_replace',
622
- path: filePath,
623
- message: successMessage,
624
- healed: usedHealing,
732
+ success: false,
733
+ error: replacementResult.error,
625
734
  },
626
735
  ],
627
736
  });
628
737
  }
629
- if (matchInfo.type === 'normalized') {
630
- if (!replace_all && matchInfo.count > 1) {
631
- return JSON.stringify({
632
- output: [
633
- {
634
- success: false,
635
- error: `Found ${matchInfo.count} normalized matches. Please provide more context or set replace_all to true.`,
636
- },
637
- ],
638
- });
639
- }
640
- let newContent = content;
641
- if (replace_all) {
642
- matchInfo.matches.sort((a, b) => b.startIndex - a.startIndex);
643
- for (const m of matchInfo.matches) {
644
- newContent =
645
- newContent.substring(0, m.startIndex) + normalizedReplaceContent + newContent.substring(m.endIndex);
646
- }
647
- }
648
- else {
649
- const m = matchInfo.matches[0];
650
- newContent = content.substring(0, m.startIndex) + normalizedReplaceContent + content.substring(m.endIndex);
651
- }
652
- await writeFileFn(targetPath, newContent);
653
- if (enableFileLogging) {
654
- loggingService.info('File updated (normalized match)', {
655
- path: filePath,
656
- replace_all,
657
- count: replace_all ? matchInfo.count : 1,
658
- healed: usedHealing,
659
- });
660
- }
661
- const successMessage = usedHealing
662
- ? `Updated ${filePath} (healed match - original search had minor differences)`
663
- : `Updated ${filePath} (${replace_all ? matchInfo.count : 1} normalized match${replace_all && matchInfo.count > 1 ? 'es' : ''})`;
664
- return JSON.stringify({
665
- output: [
666
- {
667
- success: true,
668
- operation: 'search_replace',
669
- path: filePath,
670
- message: successMessage,
671
- healed: usedHealing,
672
- },
673
- ],
738
+ await writeFileFn(targetPath, replacementResult.newContent);
739
+ if (enableFileLogging) {
740
+ loggingService.debug(`File updated (${replacementResult.matchType} match)`, {
741
+ path: filePath,
742
+ replace_all,
743
+ count: replacementResult.replacedCount,
744
+ healed: usedHealing,
674
745
  });
675
746
  }
676
- // matchInfo.type === 'none'
747
+ const successMessage = usedHealing
748
+ ? `Updated ${filePath} (healed match - original search had minor differences)`
749
+ : `Updated ${filePath} (${replacementResult.replacedCount} ${replacementResult.matchType} match${replacementResult.replacedCount > 1 ? 'es' : ''})`;
677
750
  return JSON.stringify({
678
751
  output: [
679
752
  {
680
- success: false,
681
- error: `Search content not found. Try splitting the changes into smaller search pattern.`,
753
+ success: true,
754
+ operation: 'search_replace',
755
+ path: filePath,
756
+ message: successMessage,
757
+ healed: usedHealing,
682
758
  },
683
759
  ],
684
760
  });
@@ -1 +1 @@
1
- {"version":3,"file":"search-replace.js","sourceRoot":"","sources":["../../source/tools/search-replace.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"search-replace.js","sourceRoot":"","sources":["../../source/tools/search-replace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAGlD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC9G,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,OAAO,EAAE,iCAAiC,EAAE,MAAM,wBAAwB,CAAC;AAE3E;;;GAGG;AACH,SAAS,SAAS,CAAC,OAAe;IAChC,MAAM,SAAS,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;IACxD,MAAM,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;IAC3D,OAAO,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7C,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,OAAe,EAAE,GAAW;IAClD,oDAAoD;IACpD,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAC5D,CAAC;AAED;;;GAGG;AACH,SAAS,4BAA4B,CAAC,OAAe,EAAE,QAAgB;IACrE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACrC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,OAAO,CAAC;IAEvC,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAEzC,kDAAkD;IAClD,MAAM,QAAQ,GAAG;QACf,wCAAwC,EAAE,sBAAsB;QAChE,qCAAqC,EAAE,qBAAqB;QAC5D,+CAA+C,EAAE,yBAAyB;QAC1E,8CAA8C,EAAE,4BAA4B;KAC7E,CAAC;IAEF,mFAAmF;IACnF,MAAM,iBAAiB,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAElG,IAAI,iBAAiB,EAAE,CAAC;QACtB,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,SAAS,0BAA0B,CAAC,OAAe;IACjD,IAAI,wBAAwB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3C,OAAO,4EAA4E,CAAC;IACtF,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACzD,OAAO,qEAAqE,CAAC;IAC/E,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACjE,OAAO,gEAAgE,CAAC;IAC1E,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5D,OAAO,+DAA+D,CAAC;IACzE,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1D,OAAO,8DAA8D,CAAC;IACxE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,6BAA6B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;IACtE,cAAc,EAAE,CAAC;SACd,MAAM,EAAE;SACR,QAAQ,CACP,6GAA6G,CAC9G;IACH,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;IACtE,WAAW,EAAE,CAAC;SACX,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CAAC,iGAAiG,CAAC;CAC/G,CAAC,CAAC;AAIH;;;;GAIG;AACH,MAAM,UAAU,GAAG,OAAO,CAAC;AAE3B;;GAEG;AACH,SAAS,iBAAiB,CAAC,OAAe;IACxC,OAAO,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AACtC,CAAC;AAwDD,MAAM,sBAAsB;IAClB,aAAa,GAAqB,IAAI,CAAC;IAE/C,GAAG,CAAC,MAA+B,EAAE,OAAe;QAClD,MAAM,GAAG,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,KAAK,GAAG,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;YACnG,OAAO,IAAI,CAAC,aAAa,CAAC;QAC5B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,GAAG,CAAC,MAA+B,EAAE,SAAoB,EAAE,OAAe,EAAE,GAAW;QACrF,IAAI,CAAC,aAAa,GAAG;YACnB,GAAG,EAAE,eAAe,CAAC,MAAM,CAAC;YAC5B,SAAS;YACT,OAAO;YACP,GAAG;SACJ,CAAC;IACJ,CAAC;CACF;AAED,SAAS,eAAe,CAAC,MAA+B;IACtD,OAAO,IAAI,CAAC,SAAS,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,eAAe,EAAE,MAAM,CAAC,eAAe;QACvC,WAAW,EAAE,MAAM,CAAC,WAAW;KAChC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,OAAe;IACrC,MAAM,SAAS,GAKT,EAAE,CAAC;IACT,MAAM,KAAK,GAAG,sBAAsB,CAAC;IACrC,IAAI,KAAK,CAAC;IACV,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAC9C,IAAI,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,SAAS,EAAE,CAAC;YACpC,KAAK,CAAC,SAAS,EAAE,CAAC;QACpB,CAAC;QACD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM;YAAE,MAAM;QAEnE,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7B,SAAS,CAAC,IAAI,CAAC;YACb,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,WAAW,CAAC,IAAI,EAAE;YAC3B,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,GAAG,EAAE,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC,MAAM;SACpC,CAAC,CAAC;QAEH,IAAI,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM;YAAE,MAAM;IAC/D,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,SAAS,0BAA0B,CAAC,OAAe;IAIjD,IAAI,UAAU,GAAG,EAAE,CAAC;IACpB,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,YAAY,GAAG,KAAK,CAAC;IAEzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACpB,IAAI,CAAC,YAAY,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3C,UAAU,IAAI,GAAG,CAAC;gBAClB,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACnB,CAAC;YACD,YAAY,GAAG,IAAI,CAAC;YACpB,SAAS;QACX,CAAC;QACD,YAAY,GAAG,KAAK,CAAC;QACrB,UAAU,IAAI,IAAI,CAAC;QACnB,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACnB,CAAC;IAED,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7B,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACrC,QAAQ,CAAC,GAAG,EAAE,CAAC;IACjB,CAAC;IAED,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;AAClC,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAe;IAC1C,OAAO,0BAA0B,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC;AACxD,CAAC;AAED;;;;GAIG;AACH,SAAS,kBAAkB,CACzB,SAA0E,EAC1E,YAAsB,EACtB,WAAmB;IAEnB,KAAK,IAAI,CAAC,GAAG,WAAW,EAAE,CAAC,IAAI,SAAS,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3E,IAAI,OAAO,GAAG,IAAI,CAAC;QACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7C,IAAI,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,KAAK,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjD,OAAO,GAAG,KAAK,CAAC;gBAChB,MAAM;YACR,CAAC;QACH,CAAC;QACD,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,EAAE,YAAY,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC;QAClE,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,SAAS,cAAc,CAAC,OAAe,EAAE,aAAqB;IAC5D,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACjD,0DAA0D;IAC1D,MAAM,eAAe,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAC3C,GAAG;SACA,KAAK,CAAC,OAAO,CAAC;SACd,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAC/B,CAAC;IAEF,+DAA+D;IAC/D,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;QACxD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC1B,CAAC;IAED,MAAM,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IAC1C,MAAM,UAAU,GAA+C,EAAE,CAAC;IAElE,6DAA6D;IAC7D,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,OAAO,UAAU,IAAI,SAAS,CAAC,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QAClE,yBAAyB;QACzB,MAAM,UAAU,GAAG,kBAAkB,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QACjF,IAAI,CAAC,UAAU;YAAE,MAAM;QAEvB,+DAA+D;QAC/D,IAAI,KAAK,GAAG,IAAI,CAAC;QACjB,IAAI,cAAc,GAAG,UAAU,CAAC,UAAU,CAAC;QAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAChD,MAAM,SAAS,GAAG,kBAAkB,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;YACpF,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,KAAK,GAAG,KAAK,CAAC;gBACd,MAAM;YACR,CAAC;YACD,cAAc,GAAG,SAAS,CAAC,UAAU,CAAC;QACxC,CAAC;QAED,IAAI,KAAK,EAAE,CAAC;YACV,UAAU,CAAC,IAAI,CAAC;gBACd,UAAU,EAAE,SAAS,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,KAAK;gBACpD,QAAQ,EAAE,SAAS,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,GAAG;aAC5C,CAAC,CAAC;QACL,CAAC;QAED,iEAAiE;QACjE,UAAU,GAAG,UAAU,CAAC,YAAY,GAAG,CAAC,CAAC;IAC3C,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;IACxE,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAC1B,CAAC;AAED;;;GAGG;AACH,SAAS,oBAAoB,CAAC,OAAe,EAAE,aAAqB;IAClE,4DAA4D;IAC5D,IAAI,iBAAiB,CAAC,aAAa,CAAC,EAAE,CAAC;QACrC,OAAO,cAAc,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAChD,CAAC;IAED,2BAA2B;IAC3B,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAC3C,OAAO,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;QACpB,UAAU,EAAE,CAAC;QACb,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;QACnB,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;IAC9C,CAAC;IAED,8DAA8D;IAC9D,MAAM,WAAW,GAAG,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACtE,MAAM,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IAE1C,MAAM,OAAO,GAA+C,EAAE,CAAC;IAC/D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAChE,IAAI,OAAO,GAAG,IAAI,CAAC;QACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5C,IAAI,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChD,OAAO,GAAG,KAAK,CAAC;gBAChB,MAAM;YACR,CAAC;QACH,CAAC;QACD,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,CAAC;gBACX,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK;gBAC9B,QAAQ,EAAE,SAAS,CAAC,CAAC,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG;aACpD,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;IAC7D,CAAC;IAED,uEAAuE;IACvE,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,aAAa,CAAC,CAAC;IAC5D,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,MAAM,EAAE,UAAU,EAAE,iBAAiB,EAAE,QAAQ,EAAE,GAAG,0BAA0B,CAAC,OAAO,CAAC,CAAC;QACxF,MAAM,iBAAiB,GAA+C,EAAE,CAAC;QACzE,IAAI,eAAe,GAAG,iBAAiB,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAClE,OAAO,eAAe,KAAK,CAAC,CAAC,EAAE,CAAC;YAC9B,MAAM,WAAW,GAAG,eAAe,GAAG,CAAC,CAAC;YACxC,MAAM,UAAU,GAAG,eAAe,GAAG,gBAAgB,CAAC,MAAM,CAAC;YAC7D,MAAM,UAAU,GAAG,WAAW,IAAI,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1E,MAAM,SAAS,GAAG,UAAU,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7F,MAAM,kBAAkB,GAAG,WAAW,GAAG,CAAC,IAAI,UAAU,KAAK,GAAG,CAAC;YACjE,MAAM,mBAAmB,GAAG,UAAU,IAAI,iBAAiB,CAAC,MAAM,IAAI,SAAS,KAAK,GAAG,CAAC;YAExF,IAAI,CAAC,kBAAkB,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBAChD,eAAe,GAAG,iBAAiB,CAAC,OAAO,CAAC,gBAAgB,EAAE,eAAe,GAAG,CAAC,CAAC,CAAC;gBACnF,SAAS;YACX,CAAC;YAED,MAAM,UAAU,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAC;YAC7C,MAAM,QAAQ,GAAG,QAAQ,CAAC,eAAe,GAAG,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YAC7E,iBAAiB,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC;YACjD,eAAe,GAAG,iBAAiB,CAAC,OAAO,CAAC,gBAAgB,EAAE,eAAe,GAAG,CAAC,CAAC,CAAC;QACrF,CAAC;QAED,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,OAAO;gBACL,IAAI,EAAE,YAAY;gBAClB,KAAK,EAAE,iBAAiB,CAAC,MAAM;gBAC/B,OAAO,EAAE,iBAAiB;aAC3B,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAC1B,CAAC;AAgBD,SAAS,qBAAqB,CAC5B,OAAe,EACf,OAAmD,EACnD,cAAsB,EACtB,UAAmB;IAEnB,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACzB,OAAO;YACL,UAAU,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,GAAG,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC;YACvG,aAAa,EAAE,CAAC;SACjB,CAAC;IACJ,CAAC;IAED,IAAI,UAAU,GAAG,OAAO,CAAC;IACzB,MAAM,aAAa,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;IAC/E,KAAK,MAAM,CAAC,IAAI,aAAa,EAAE,CAAC;QAC9B,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,cAAc,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACzG,CAAC;IAED,OAAO;QACL,UAAU;QACV,aAAa,EAAE,OAAO,CAAC,MAAM;KAC9B,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CACzB,SAAoB,EACpB,OAAe,EACf,GAAW,EACX,OAIC;IAED,MAAM,wBAAwB,GAAG,cAAc,CAAC,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;IAE7E,IAAI,SAAS,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC9B,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,kFAAkF;SAC1F,CAAC;IACJ,CAAC;IAED,IAAI,SAAS,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC/B,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACvB,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,uBAAuB,EAAE,wBAAwB,CAAC;gBACzF,SAAS,EAAE,OAAO;gBAClB,aAAa,EAAE,SAAS,CAAC,KAAK;aAC/B,CAAC;QACJ,CAAC;QAED,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;QACpE,OAAO;YACL,OAAO,EAAE,IAAI;YACb,UAAU,EACR,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC;gBAChC,wBAAwB;gBACxB,OAAO,CAAC,SAAS,CAAC,UAAU,GAAG,OAAO,CAAC,uBAAuB,CAAC,MAAM,CAAC;YACxE,SAAS,EAAE,OAAO;YAClB,aAAa,EAAE,CAAC;SACjB,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;QAC/C,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,SAAS,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,IAAI,mEAAmE;SACrH,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,qBAAqB,CAAC,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,wBAAwB,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IACjH,OAAO;QACL,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,SAAS,EAAE,SAAS,CAAC,IAAI;QACzB,aAAa,EAAE,QAAQ,CAAC,aAAa;KACtC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAC/C,IAAS,EACT,KAAa,EACb,sBAA4C,EAC1B,EAAE;IACpB,MAAM,YAAY,GAAG,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;IACxD,MAAM,kBAAkB,GAAG,YAAY,EAAE,MAAM,IAAI,EAAE,CAAC;IAEtD,kEAAkE;IAClE,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpC,MAAM,cAAc,GAAG,IAAI,EAAE,OAAO,EAAE,SAAS,IAAI,IAAI,EAAE,SAAS,CAAC;QACnE,MAAM,IAAI,GAAG,sBAAsB,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;QAC1D,MAAM,QAAQ,GAAG,IAAI,EAAE,IAAI,IAAI,SAAS,CAAC;QACzC,MAAM,aAAa,GAAG,IAAI,EAAE,cAAc,IAAI,EAAE,CAAC;QACjD,MAAM,cAAc,GAAG,IAAI,EAAE,eAAe,IAAI,EAAE,CAAC;QACnD,MAAM,OAAO,GAAG,mBAAmB,aAAa,QAAQ,cAAc,MAAM,QAAQ,GAAG,CAAC;QACxF,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC;QAClD,MAAM,OAAO,GAAG,KAAK,CAAC;QAEtB,OAAO;YACL,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE;gBACvC,OAAO;gBACP,MAAM;gBACN,OAAO;gBACP,QAAQ,EAAE,gBAAgB;gBAC1B,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,cAAc,EAAE,aAAa;oBAC7B,eAAe,EAAE,cAAc;oBAC/B,WAAW,EAAE,IAAI,EAAE,WAAW,IAAI,KAAK;iBACxC;aACF,CAAC;SACH,CAAC;IACJ,CAAC;IAED,0DAA0D;IAC1D,MAAM,QAAQ,GAAqB,EAAE,CAAC;IACtC,KAAK,MAAM,CAAC,YAAY,EAAE,aAAa,CAAC,IAAI,kBAAkB,CAAC,OAAO,EAAE,EAAE,CAAC;QACzE,MAAM,cAAc,GAAG,IAAI,EAAE,OAAO,EAAE,SAAS,IAAI,IAAI,EAAE,SAAS,CAAC;QACnE,MAAM,IAAI,GAAG,sBAAsB,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;QAC1D,MAAM,QAAQ,GAAG,IAAI,EAAE,IAAI,IAAI,aAAa,EAAE,IAAI,IAAI,SAAS,CAAC;QAChE,MAAM,aAAa,GAAG,IAAI,EAAE,cAAc,IAAI,EAAE,CAAC;QACjD,MAAM,cAAc,GAAG,IAAI,EAAE,eAAe,IAAI,EAAE,CAAC;QAEnD,MAAM,OAAO,GAAG,mBAAmB,aAAa,QAAQ,cAAc,MAAM,QAAQ,GAAG,CAAC;QACxF,MAAM,QAAQ,GAAG,aAAa,EAAE,MAAM,KAAK,IAAI,CAAC;QAChD,IAAI,MAAM,GAAG,aAAa,EAAE,OAAO,IAAI,aAAa,EAAE,KAAK,IAAI,WAAW,CAAC;QAC3E,IAAI,QAAQ,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnD,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC;QAChC,CAAC;QACD,MAAM,OAAO,GAAG,aAAa,EAAE,OAAO,IAAI,KAAK,CAAC;QAEhD,QAAQ,CAAC,IAAI,CACX,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE;YAClD,OAAO;YACP,MAAM;YACN,OAAO;YACP,QAAQ,EAAE,gBAAgB;YAC1B,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,cAAc,EAAE,aAAa;gBAC7B,eAAe,EAAE,cAAc;gBAC/B,WAAW,EAAE,IAAI,EAAE,WAAW,IAAI,KAAK;aACxC;SACF,CAAC,CACH,CAAC;IACJ,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAEF,MAAM,UAAU,iCAAiC,CAAC,IAKjD;IACC,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,gBAAgB,EAAE,WAAW,GAAG,uBAAuB,EAAE,GAAG,IAAI,CAAC;IAC1G,MAAM,SAAS,GAAG,IAAI,sBAAsB,EAAE,CAAC;IAE/C,OAAO;QACL,IAAI,EAAE,gBAAgB;QACtB,WAAW,EACT,2DAA2D;YAC3D,2FAA2F;YAC3F,+GAA+G;YAC/G,4EAA4E;QAC9E,UAAU,EAAE,6BAA6B;QACzC,oBAAoB,EAAE,iCAAiC,CAAC,gBAAgB,CAAC;QACzE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YAC9B,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAU,cAAc,CAAC,CAAC;gBAC9D,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,WAAW,GAAG,KAAK,EAAE,GAAG,MAAM,CAAC;gBACvE,MAAM,GAAG,GAAG,gBAAgB,EAAE,MAAM,EAAE,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;gBACxD,MAAM,UAAU,GAAG,oBAAoB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;gBACvD,MAAM,aAAa,GAAG,GAAG,CAAC;gBAC1B,MAAM,SAAS,GAAG,UAAU,CAAC,UAAU,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;gBAElE,MAAM,UAAU,GAAG,gBAAgB,EAAE,aAAa,EAAE,CAAC;gBACrD,MAAM,QAAQ,GAAG,gBAAgB,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,UAAU,CAAC;gBAE9D,oBAAoB;gBACpB,IAAI,OAAe,CAAC;gBACpB,IAAI,CAAC;oBACH,IAAI,QAAQ,IAAI,UAAU,EAAE,CAAC;wBAC3B,OAAO,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;oBAClD,CAAC;yBAAM,CAAC;wBACN,OAAO,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;oBAC/C,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAU,EAAE,CAAC;oBACpB,IAAI,cAAc,KAAK,EAAE,IAAI,KAAK,EAAE,IAAI,KAAK,QAAQ,EAAE,CAAC;wBACtD,cAAc,CAAC,KAAK,CAAC,8EAA8E,EAAE;4BACnG,IAAI,EAAE,QAAQ;yBACf,CAAC,CAAC;wBACH,IAAI,QAAQ,IAAI,SAAS,EAAE,CAAC;4BAC1B,OAAO,KAAK,CAAC;wBACf,CAAC;wBACD,OAAO,IAAI,CAAC;oBACd,CAAC;oBACD,cAAc,CAAC,KAAK,CAAC,8CAA8C,EAAE;wBACnE,IAAI,EAAE,QAAQ;wBACd,KAAK,EAAE,KAAK,EAAE,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC;qBACvC,CAAC,CAAC;oBACH,OAAO,IAAI,CAAC;gBACd,CAAC;gBAED,IAAI,cAAc,KAAK,EAAE,EAAE,CAAC;oBAC1B,cAAc,CAAC,IAAI,CAAC,kEAAkE,EAAE;wBACtF,IAAI,EAAE,QAAQ;qBACf,CAAC,CAAC;oBACH,OAAO,IAAI,CAAC;gBACd,CAAC;gBAED,kCAAkC;gBAClC,MAAM,WAAW,GAAG,0BAA0B,CAAC,cAAc,CAAC,CAAC;gBAC/D,IAAI,WAAW,EAAE,CAAC;oBAChB,cAAc,CAAC,IAAI,CAAC,0DAA0D,EAAE;wBAC9E,IAAI,EAAE,QAAQ;wBACd,KAAK,EAAE,WAAW;qBACnB,CAAC,CAAC;oBACH,0DAA0D;oBAC1D,OAAO,KAAK,CAAC;gBACf,CAAC;gBAED,0CAA0C;gBAC1C,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;gBAC/B,MAAM,uBAAuB,GAAG,cAAc,CAAC,4BAA4B,CAAC,cAAc,EAAE,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC;gBAE5G,0DAA0D;gBAC1D,MAAM,SAAS,GAAG,oBAAoB,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC;gBAEzE,qCAAqC;gBACrC,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;gBAE/C,IAAI,SAAS,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;oBAC/B,IAAI,CAAC,WAAW,IAAI,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;wBACxC,cAAc,CAAC,IAAI,CAAC,sEAAsE,EAAE;4BAC1F,IAAI,EAAE,QAAQ;4BACd,KAAK,EAAE,SAAS,CAAC,KAAK;yBACvB,CAAC,CAAC;wBACH,OAAO,IAAI,CAAC;oBACd,CAAC;oBACD,cAAc,CAAC,KAAK,CAAC,kDAAkD,EAAE;wBACvE,IAAI,EAAE,QAAQ;wBACd,KAAK,EAAE,SAAS,CAAC,KAAK;wBACtB,WAAW;qBACZ,CAAC,CAAC;oBACH,IAAI,QAAQ,IAAI,SAAS,EAAE,CAAC;wBAC1B,OAAO,KAAK,CAAC;oBACf,CAAC;oBACD,OAAO,IAAI,CAAC;gBACd,CAAC;gBAED,IAAI,SAAS,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;oBACjC,IAAI,CAAC,WAAW,IAAI,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;wBACxC,cAAc,CAAC,IAAI,CACjB,+FAA+F,EAC/F;4BACE,IAAI,EAAE,QAAQ;4BACd,KAAK,EAAE,SAAS,CAAC,KAAK;yBACvB,CACF,CAAC;wBACF,0DAA0D;wBAC1D,OAAO,KAAK,CAAC;oBACf,CAAC;oBACD,cAAc,CAAC,KAAK,CAAC,oDAAoD,EAAE;wBACzE,IAAI,EAAE,QAAQ;wBACd,KAAK,EAAE,SAAS,CAAC,KAAK;wBACtB,WAAW;qBACZ,CAAC,CAAC;oBACH,OAAO,IAAI,CAAC;gBACd,CAAC;gBAED,IAAI,SAAS,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;oBACpC,IAAI,CAAC,WAAW,IAAI,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;wBACxC,cAAc,CAAC,IAAI,CACjB,kGAAkG,EAClG;4BACE,IAAI,EAAE,QAAQ;4BACd,KAAK,EAAE,SAAS,CAAC,KAAK;yBACvB,CACF,CAAC;wBACF,OAAO,KAAK,CAAC;oBACf,CAAC;oBACD,cAAc,CAAC,KAAK,CAAC,uDAAuD,EAAE;wBAC5E,IAAI,EAAE,QAAQ;wBACd,KAAK,EAAE,SAAS,CAAC,KAAK;wBACtB,WAAW;qBACZ,CAAC,CAAC;oBACH,OAAO,IAAI,CAAC;gBACd,CAAC;gBAED,IAAI,SAAS,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;oBAC7B,IAAI,CAAC,WAAW,IAAI,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;wBACxC,cAAc,CAAC,IAAI,CACjB,2FAA2F,EAC3F;4BACE,IAAI,EAAE,QAAQ;4BACd,KAAK,EAAE,SAAS,CAAC,KAAK;yBACvB,CACF,CAAC;wBACF,OAAO,KAAK,CAAC;oBACf,CAAC;oBACD,cAAc,CAAC,KAAK,CAAC,gDAAgD,EAAE;wBACrE,IAAI,EAAE,QAAQ;wBACd,KAAK,EAAE,SAAS,CAAC,KAAK;wBACtB,WAAW;qBACZ,CAAC,CAAC;oBACH,IAAI,QAAQ,IAAI,SAAS,EAAE,CAAC;wBAC1B,OAAO,KAAK,CAAC;oBACf,CAAC;oBACD,OAAO,IAAI,CAAC;gBACd,CAAC;gBAED,4BAA4B;gBAC5B,cAAc,CAAC,IAAI,CAAC,kEAAkE,EAAE;oBACtF,IAAI,EAAE,QAAQ;iBACf,CAAC,CAAC;gBACH,0DAA0D;gBAC1D,OAAO,KAAK,CAAC;YACf,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACpB,cAAc,CAAC,KAAK,CAAC,oCAAoC,EAAE;oBACzD,KAAK,EAAE,KAAK,EAAE,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC;iBACvC,CAAC,CAAC;gBACH,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YACxB,MAAM,iBAAiB,GAAG,eAAe,CAAC,GAAG,CAAU,yBAAyB,CAAC,CAAC;YAClF,IAAI,CAAC;gBACH,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,eAAe,EAAE,WAAW,GAAG,KAAK,EAAE,GAAG,MAAM,CAAC;gBACxF,MAAM,GAAG,GAAG,gBAAgB,EAAE,MAAM,EAAE,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;gBACxD,MAAM,UAAU,GAAG,oBAAoB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;gBAEvD,MAAM,UAAU,GAAG,gBAAgB,EAAE,aAAa,EAAE,CAAC;gBACrD,MAAM,QAAQ,GAAG,gBAAgB,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,UAAU,CAAC;gBAE9D,MAAM,UAAU,GAAG,KAAK,EAAE,CAAS,EAAE,EAAE;oBACrC,IAAI,QAAQ,IAAI,UAAU;wBAAE,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;oBAC1D,OAAO,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;gBAC7B,CAAC,CAAC;gBAEF,MAAM,WAAW,GAAG,KAAK,EAAE,CAAS,EAAE,CAAS,EAAE,EAAE;oBACjD,IAAI,QAAQ,IAAI,UAAU;wBAAE,OAAO,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBAC9D,OAAO,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;gBACjC,CAAC,CAAC;gBAEF,IAAI,iBAAiB,EAAE,CAAC;oBACtB,cAAc,CAAC,KAAK,CAAC,wCAAwC,EAAE;wBAC7D,IAAI,EAAE,QAAQ;wBACd,UAAU;wBACV,WAAW;qBACZ,CAAC,CAAC;gBACL,CAAC;gBAED,IAAI,OAAe,CAAC;gBACpB,IAAI,CAAC;oBACH,OAAO,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,CAAC;gBACzC,CAAC;gBAAC,OAAO,KAAU,EAAE,CAAC;oBACpB,IAAI,cAAc,KAAK,EAAE,IAAI,KAAK,EAAE,IAAI,KAAK,QAAQ,EAAE,CAAC;wBACtD,MAAM,WAAW,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;wBAC/C,IAAI,iBAAiB,EAAE,CAAC;4BACtB,cAAc,CAAC,KAAK,CAAC,qCAAqC,EAAE;gCAC1D,IAAI,EAAE,QAAQ;6BACf,CAAC,CAAC;wBACL,CAAC;wBACD,OAAO,IAAI,CAAC,SAAS,CAAC;4BACpB,MAAM,EAAE;gCACN;oCACE,OAAO,EAAE,IAAI;oCACb,SAAS,EAAE,gBAAgB;oCAC3B,IAAI,EAAE,QAAQ;oCACd,OAAO,EAAE,WAAW,QAAQ,aAAa;iCAC1C;6BACF;yBACF,CAAC,CAAC;oBACL,CAAC;oBACD,MAAM,KAAK,CAAC;gBACd,CAAC;gBAED,IAAI,cAAc,KAAK,EAAE,EAAE,CAAC;oBAC1B,OAAO,IAAI,CAAC,SAAS,CAAC;wBACpB,MAAM,EAAE;4BACN;gCACE,OAAO,EAAE,KAAK;gCACd,KAAK,EACH,gIAAgI;6BACnI;yBACF;qBACF,CAAC,CAAC;gBACL,CAAC;gBAED,kCAAkC;gBAClC,MAAM,WAAW,GAAG,0BAA0B,CAAC,cAAc,CAAC,CAAC;gBAC/D,IAAI,WAAW,EAAE,CAAC;oBAChB,OAAO,IAAI,CAAC,SAAS,CAAC;wBACpB,MAAM,EAAE;4BACN;gCACE,OAAO,EAAE,KAAK;gCACd,KAAK,EAAE,WAAW;6BACnB;yBACF;qBACF,CAAC,CAAC;gBACL,CAAC;gBAED,oBAAoB;gBACpB,IAAI,SAAoB,CAAC;gBACzB,IAAI,GAAW,CAAC;gBAChB,IAAI,uBAA+B,CAAC;gBACpC,IAAI,WAAW,GAAG,KAAK,CAAC;gBACxB,IAAI,gBAAgB,GAAG,KAAK,CAAC;gBAC7B,IAAI,gBAAgB,GAAG,KAAK,CAAC;gBAC7B,IAAI,kBAAkB,GAAG,CAAC,CAAC;gBAC3B,IAAI,qBAAqB,GAAsB,MAAM,CAAC;gBAEtD,MAAM,UAAU,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAClD,IAAI,UAAU,EAAE,CAAC;oBACf,qBAAqB;oBACrB,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;oBACjC,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC;oBACrB,uBAAuB,GAAG,cAAc,CAAC,4BAA4B,CAAC,cAAc,EAAE,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC;gBACxG,CAAC;qBAAM,CAAC;oBACN,mCAAmC;oBACnC,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;oBACzB,uBAAuB,GAAG,cAAc,CAAC,4BAA4B,CAAC,cAAc,EAAE,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC;oBAEtG,kCAAkC;oBAClC,SAAS,GAAG,oBAAoB,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC;gBACrE,CAAC;gBAED,IAAI,SAAS,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBAC9B,MAAM,iBAAiB,GAAG,eAAe,CAAC,GAAG,CAAU,yBAAyB,CAAC,IAAI,IAAI,CAAC;oBAC1F,IAAI,iBAAiB,EAAE,CAAC;wBACtB,gBAAgB,GAAG,IAAI,CAAC;wBACxB,MAAM,YAAY,GAAG,eAAe,CAAC,GAAG,CAAS,wBAAwB,CAAC,IAAI,aAAa,CAAC;wBAC5F,MAAM,aAAa,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE,EAAE;4BACvG,eAAe;4BACf,cAAc;yBACf,CAAC,CAAC;wBAEH,kBAAkB,GAAG,aAAa,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC;wBAEhE,IAAI,aAAa,CAAC,WAAW,EAAE,CAAC;4BAC9B,uBAAuB,GAAG,cAAc,CACtC,4BAA4B,CAAC,aAAa,CAAC,MAAM,CAAC,cAAc,EAAE,QAAQ,CAAC,EAC3E,GAAG,CACJ,CAAC;4BACF,SAAS,GAAG,oBAAoB,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC;4BACnE,qBAAqB,GAAG,SAAS,CAAC,IAAI,CAAC;4BACvC,IAAI,SAAS,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gCAC9B,WAAW,GAAG,IAAI,CAAC;gCACnB,gBAAgB,GAAG,IAAI,CAAC;4BAC1B,CAAC;wBACH,CAAC;wBAED,IAAI,iBAAiB,EAAE,CAAC;4BACtB,cAAc,CAAC,KAAK,CAAC,gCAAgC,EAAE;gCACrD,IAAI,EAAE,QAAQ;gCACd,iBAAiB,EAAE,gBAAgB;gCACnC,iBAAiB,EAAE,gBAAgB;gCACnC,sBAAsB,EAAE,cAAc,CAAC,MAAM;gCAC7C,oBAAoB,EAAE,kBAAkB;gCACxC,wBAAwB,EAAE,qBAAqB;6BAChD,CAAC,CAAC;wBACL,CAAC;wBAED,IAAI,CAAC,WAAW,EAAE,CAAC;4BACjB,OAAO,IAAI,CAAC,SAAS,CAAC;gCACpB,MAAM,EAAE;oCACN;wCACE,OAAO,EAAE,KAAK;wCACd,KAAK,EACH,mHAAmH;qCACtH;iCACF;6BACF,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE;oBACpE,uBAAuB;oBACvB,cAAc,EAAE,eAAe;oBAC/B,UAAU,EAAE,WAAW;iBACxB,CAAC,CAAC;gBAEH,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC;oBAC/B,OAAO,IAAI,CAAC,SAAS,CAAC;wBACpB,MAAM,EAAE;4BACN;gCACE,OAAO,EAAE,KAAK;gCACd,KAAK,EAAE,iBAAiB,CAAC,KAAK;6BAC/B;yBACF;qBACF,CAAC,CAAC;gBACL,CAAC;gBAED,MAAM,WAAW,CAAC,UAAU,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAC;gBAE5D,IAAI,iBAAiB,EAAE,CAAC;oBACtB,cAAc,CAAC,KAAK,CAAC,iBAAiB,iBAAiB,CAAC,SAAS,SAAS,EAAE;wBAC1E,IAAI,EAAE,QAAQ;wBACd,WAAW;wBACX,KAAK,EAAE,iBAAiB,CAAC,aAAa;wBACtC,MAAM,EAAE,WAAW;qBACpB,CAAC,CAAC;gBACL,CAAC;gBAED,MAAM,cAAc,GAAG,WAAW;oBAChC,CAAC,CAAC,WAAW,QAAQ,yDAAyD;oBAC9E,CAAC,CAAC,WAAW,QAAQ,KAAK,iBAAiB,CAAC,aAAa,IAAI,iBAAiB,CAAC,SAAS,SACpF,iBAAiB,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAC/C,GAAG,CAAC;gBACR,OAAO,IAAI,CAAC,SAAS,CAAC;oBACpB,MAAM,EAAE;wBACN;4BACE,OAAO,EAAE,IAAI;4BACb,SAAS,EAAE,gBAAgB;4BAC3B,IAAI,EAAE,QAAQ;4BACd,OAAO,EAAE,cAAc;4BACvB,MAAM,EAAE,WAAW;yBACpB;qBACF;iBACF,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACpB,IAAI,iBAAiB,EAAE,CAAC;oBACtB,cAAc,CAAC,KAAK,CAAC,uBAAuB,EAAE;wBAC5C,IAAI,EAAE,gBAAgB;wBACtB,IAAI,EAAE,MAAM,CAAC,IAAI;wBACjB,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;qBAC9D,CAAC,CAAC;gBACL,CAAC;gBACD,OAAO,IAAI,CAAC,SAAS,CAAC;oBACpB,MAAM,EAAE;wBACN;4BACE,OAAO,EAAE,KAAK;4BACd,KAAK,EAAE,KAAK,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC;yBACtC;qBACF;iBACF,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,oBAAoB,EAAE,iCAAiC;KACxD,CAAC;AACJ,CAAC"}