kimaki 1.4.0 → 1.6.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 (326) hide show
  1. package/assets/fonts/Geist-Bold.ttf +0 -0
  2. package/assets/fonts/Geist-Regular.ttf +0 -0
  3. package/assets/fonts/GeistMono-Regular.ttf +0 -0
  4. package/assets/fonts/OFL.txt +92 -0
  5. package/dist/agent-ui.e2e.test.js +27 -13
  6. package/dist/agent-ui.e2e.test.js.map +1 -1
  7. package/dist/agent-ui.js +2 -1
  8. package/dist/agent-ui.js.map +1 -1
  9. package/dist/analytics.e2e.test.js +1 -1
  10. package/dist/analytics.e2e.test.js.map +1 -1
  11. package/dist/autostart.d.ts +4 -0
  12. package/dist/autostart.js +55 -10
  13. package/dist/autostart.js.map +1 -1
  14. package/dist/bot.d.ts +10 -1
  15. package/dist/bot.js +14 -6
  16. package/dist/bot.js.map +1 -1
  17. package/dist/btw.e2e.test.js +3 -3
  18. package/dist/builtin-skills.d.ts +1 -1
  19. package/dist/builtin-skills.js +1 -1
  20. package/dist/builtin-skills.js.map +1 -1
  21. package/dist/builtin-skills.test.js +3 -4
  22. package/dist/builtin-skills.test.js.map +1 -1
  23. package/dist/catalog-refresh.e2e.test.js +2 -2
  24. package/dist/cli/bot.js +25 -14
  25. package/dist/cli/bot.js.map +1 -1
  26. package/dist/cli/discord.js +32 -6
  27. package/dist/cli/discord.js.map +1 -1
  28. package/dist/cli/schedule.js +23 -9
  29. package/dist/cli/schedule.js.map +1 -1
  30. package/dist/cli/session.js +37 -12
  31. package/dist/cli/session.js.map +1 -1
  32. package/dist/cli/shared.d.ts +5 -3
  33. package/dist/cli/shared.js +45 -10
  34. package/dist/cli/shared.js.map +1 -1
  35. package/dist/cli-discord.e2e.test.js +13 -8
  36. package/dist/cli-discord.e2e.test.js.map +1 -1
  37. package/dist/cli-lock.e2e.test.js +87 -20
  38. package/dist/cli-lock.e2e.test.js.map +1 -1
  39. package/dist/cli-read.e2e.test.js +18 -9
  40. package/dist/cli-read.e2e.test.js.map +1 -1
  41. package/dist/cli-sessions.e2e.test.js +4 -3
  42. package/dist/cli-sessions.e2e.test.js.map +1 -1
  43. package/dist/cli.js +2 -0
  44. package/dist/cli.js.map +1 -1
  45. package/dist/commands/preference-commands.d.ts +4 -0
  46. package/dist/commands/preference-commands.js +38 -4
  47. package/dist/commands/preference-commands.js.map +1 -1
  48. package/dist/commands/session-commands.js +11 -8
  49. package/dist/commands/session-commands.js.map +1 -1
  50. package/dist/commands/thread-commands.js +94 -24
  51. package/dist/commands/thread-commands.js.map +1 -1
  52. package/dist/commands/worktree-commands.d.ts +4 -5
  53. package/dist/commands/worktree-commands.js +8 -7
  54. package/dist/commands/worktree-commands.js.map +1 -1
  55. package/dist/commands.e2e.test.js +25 -21
  56. package/dist/commands.e2e.test.js.map +1 -1
  57. package/dist/coordinator-agents.e2e.test.js +135 -0
  58. package/dist/coordinator-agents.e2e.test.js.map +1 -0
  59. package/dist/coordinator-idle.e2e.test.js +100 -0
  60. package/dist/coordinator-idle.e2e.test.js.map +1 -0
  61. package/dist/coordinator-queue.e2e.test.js +244 -0
  62. package/dist/coordinator-queue.e2e.test.js.map +1 -0
  63. package/dist/coordinator-warmup.e2e.test.d.ts +1 -0
  64. package/dist/coordinator-warmup.e2e.test.js +131 -0
  65. package/dist/coordinator-warmup.e2e.test.js.map +1 -0
  66. package/dist/coordinator.d.ts +6 -0
  67. package/dist/coordinator.e2e.test.d.ts +1 -0
  68. package/dist/coordinator.e2e.test.js +505 -0
  69. package/dist/coordinator.e2e.test.js.map +1 -0
  70. package/dist/coordinator.js +164 -0
  71. package/dist/coordinator.js.map +1 -0
  72. package/dist/db.d.ts +75 -0
  73. package/dist/db.test.js +1 -0
  74. package/dist/db.test.js.map +1 -1
  75. package/dist/diagram.d.ts +11 -0
  76. package/dist/diagram.js +232 -0
  77. package/dist/diagram.js.map +1 -0
  78. package/dist/diagram.test.d.ts +1 -0
  79. package/dist/diagram.test.js +52 -0
  80. package/dist/diagram.test.js.map +1 -0
  81. package/dist/duration.js +13 -5
  82. package/dist/duration.js.map +1 -1
  83. package/dist/effects.d.ts +6 -1
  84. package/dist/effects.js +97 -26
  85. package/dist/effects.js.map +1 -1
  86. package/dist/event-loop.d.ts +1 -1
  87. package/dist/event-loop.js +73 -43
  88. package/dist/event-loop.js.map +1 -1
  89. package/dist/format-parts.d.ts +21 -4
  90. package/dist/format-parts.js +40 -23
  91. package/dist/format-parts.js.map +1 -1
  92. package/dist/gateway-replay.e2e.test.js +4 -4
  93. package/dist/harness.e2e.test.js +2 -2
  94. package/dist/harness.e2e.test.js.map +1 -1
  95. package/dist/hello-thread.e2e.test.js +56 -5
  96. package/dist/hello-thread.e2e.test.js.map +1 -1
  97. package/dist/ingress.js +68 -13
  98. package/dist/ingress.js.map +1 -1
  99. package/dist/interaction-context.d.ts +4 -4
  100. package/dist/interaction-context.js +9 -7
  101. package/dist/interaction-context.js.map +1 -1
  102. package/dist/interrupt.e2e.test.js +8 -5
  103. package/dist/interrupt.e2e.test.js.map +1 -1
  104. package/dist/legacy.e2e.test.js +1 -1
  105. package/dist/lock-routes.d.ts +68 -16
  106. package/dist/lock-routes.js +68 -8
  107. package/dist/lock-routes.js.map +1 -1
  108. package/dist/lock-server.d.ts +3 -2
  109. package/dist/lock-server.js +23 -7
  110. package/dist/lock-server.js.map +1 -1
  111. package/dist/main.d.ts +4 -2
  112. package/dist/main.js +13 -3
  113. package/dist/main.js.map +1 -1
  114. package/dist/markdown/markdown.test.js +4 -4
  115. package/dist/markdown/render-markdown.js +6 -5
  116. package/dist/markdown/render-markdown.js.map +1 -1
  117. package/dist/onboarding-cli.e2e.test.js +7 -6
  118. package/dist/onboarding-cli.e2e.test.js.map +1 -1
  119. package/dist/onboarding.d.ts +3 -10
  120. package/dist/onboarding.e2e.test.js +8 -10
  121. package/dist/onboarding.e2e.test.js.map +1 -1
  122. package/dist/onboarding.js +14 -24
  123. package/dist/onboarding.js.map +1 -1
  124. package/dist/permissions.e2e.test.js +3 -3
  125. package/dist/plugin/coordinator.d.ts +4 -0
  126. package/dist/plugin/coordinator.js +389 -0
  127. package/dist/plugin/coordinator.js.map +1 -0
  128. package/dist/plugin/index.js +76 -17
  129. package/dist/plugin/index.js.map +1 -1
  130. package/dist/plugin.e2e.test.js +1 -1
  131. package/dist/preference-commands.e2e.test.js +103 -24
  132. package/dist/preference-commands.e2e.test.js.map +1 -1
  133. package/dist/prompt.d.ts +21 -8
  134. package/dist/prompt.js +64 -48
  135. package/dist/prompt.js.map +1 -1
  136. package/dist/questions.e2e.test.js +13 -13
  137. package/dist/queue-sources.e2e.test.d.ts +1 -0
  138. package/dist/queue-sources.e2e.test.js +168 -0
  139. package/dist/queue-sources.e2e.test.js.map +1 -0
  140. package/dist/queue.d.ts +9 -1
  141. package/dist/queue.e2e.test.js +48 -30
  142. package/dist/queue.e2e.test.js.map +1 -1
  143. package/dist/queue.js +97 -24
  144. package/dist/queue.js.map +1 -1
  145. package/dist/queue.test.d.ts +1 -0
  146. package/dist/queue.test.js +57 -0
  147. package/dist/queue.test.js.map +1 -0
  148. package/dist/remote-send.e2e.test.js +6 -6
  149. package/dist/remote-send.js +2 -1
  150. package/dist/remote-send.js.map +1 -1
  151. package/dist/renderer.e2e.test.js +7 -7
  152. package/dist/restart.e2e.test.js +2 -2
  153. package/dist/routines.e2e.test.js +2 -2
  154. package/dist/scheduler.d.ts +1 -1
  155. package/dist/scheduler.e2e.test.js +43 -20
  156. package/dist/scheduler.e2e.test.js.map +1 -1
  157. package/dist/scheduler.js +4 -2
  158. package/dist/scheduler.js.map +1 -1
  159. package/dist/schema-sql.d.ts +1 -1
  160. package/dist/schema-sql.js +1 -1
  161. package/dist/schema-sql.js.map +1 -1
  162. package/dist/schema.d.ts +146 -0
  163. package/dist/schema.js +12 -0
  164. package/dist/schema.js.map +1 -1
  165. package/dist/session-commands.e2e.test.js +36 -11
  166. package/dist/session-commands.e2e.test.js.map +1 -1
  167. package/dist/session-events.d.ts +19 -7
  168. package/dist/session-events.js +166 -22
  169. package/dist/session-events.js.map +1 -1
  170. package/dist/session-ops.e2e.test.js +88 -11
  171. package/dist/session-ops.e2e.test.js.map +1 -1
  172. package/dist/sessions.d.ts +41 -18
  173. package/dist/sessions.js +174 -63
  174. package/dist/sessions.js.map +1 -1
  175. package/dist/shell.e2e.test.js +4 -4
  176. package/dist/slash-commands.js +12 -6
  177. package/dist/slash-commands.js.map +1 -1
  178. package/dist/slash-commands.test.js +2 -0
  179. package/dist/slash-commands.test.js.map +1 -1
  180. package/dist/sleep.e2e.test.js +29 -14
  181. package/dist/sleep.e2e.test.js.map +1 -1
  182. package/dist/sleeps.d.ts +1 -0
  183. package/dist/sleeps.js +21 -3
  184. package/dist/sleeps.js.map +1 -1
  185. package/dist/store.d.ts +1 -0
  186. package/dist/store.js +3 -2
  187. package/dist/store.js.map +1 -1
  188. package/dist/system-prompt.d.ts +3 -1
  189. package/dist/system-prompt.js +138 -64
  190. package/dist/system-prompt.js.map +1 -1
  191. package/dist/test/generate-log-plugin/index.js +15 -0
  192. package/dist/test/generate-log-plugin/index.js.map +1 -0
  193. package/dist/test/harness.d.ts +20 -1
  194. package/dist/test/harness.js +51 -10
  195. package/dist/test/harness.js.map +1 -1
  196. package/dist/test/replay.js +11 -7
  197. package/dist/test/replay.js.map +1 -1
  198. package/dist/thread-reducer.d.ts +29 -3
  199. package/dist/thread-reducer.fixtures.test.js +58 -51
  200. package/dist/thread-reducer.fixtures.test.js.map +1 -1
  201. package/dist/thread-reducer.js +112 -25
  202. package/dist/thread-reducer.js.map +1 -1
  203. package/dist/thread-reducer.test.js +197 -24
  204. package/dist/thread-reducer.test.js.map +1 -1
  205. package/dist/voice-attachments.e2e.test.js +108 -18
  206. package/dist/voice-attachments.e2e.test.js.map +1 -1
  207. package/dist/voice-call.e2e.test.js +9 -9
  208. package/dist/voice-call.js +6 -6
  209. package/dist/voice-call.js.map +1 -1
  210. package/dist/voice-openai.e2e.test.js +59 -23
  211. package/dist/voice-openai.e2e.test.js.map +1 -1
  212. package/dist/voice.js +80 -24
  213. package/dist/voice.js.map +1 -1
  214. package/dist/working-directory.e2e.test.js +11 -11
  215. package/dist/working-directory.e2e.test.js.map +1 -1
  216. package/package.json +12 -6
  217. package/src/agent-ui.e2e.test.ts +27 -13
  218. package/src/agent-ui.ts +2 -1
  219. package/src/analytics.e2e.test.ts +1 -1
  220. package/src/autostart.ts +55 -10
  221. package/src/bot.ts +29 -5
  222. package/src/btw.e2e.test.ts +3 -3
  223. package/src/builtin-skills.test.ts +3 -4
  224. package/src/builtin-skills.ts +1 -1
  225. package/src/catalog-refresh.e2e.test.ts +2 -2
  226. package/src/cli/bot.ts +23 -14
  227. package/src/cli/discord.ts +30 -6
  228. package/src/cli/schedule.ts +23 -9
  229. package/src/cli/session.ts +35 -12
  230. package/src/cli/shared.ts +43 -8
  231. package/src/cli-discord.e2e.test.ts +13 -8
  232. package/src/cli-lock.e2e.test.ts +88 -20
  233. package/src/cli-read.e2e.test.ts +17 -8
  234. package/src/cli-sessions.e2e.test.ts +4 -3
  235. package/src/cli.ts +2 -0
  236. package/src/commands/preference-commands.ts +38 -4
  237. package/src/commands/session-commands.ts +12 -7
  238. package/src/commands/thread-commands.ts +92 -24
  239. package/src/commands/worktree-commands.ts +10 -9
  240. package/src/commands.e2e.test.ts +25 -21
  241. package/src/coordinator-agents.e2e.test.ts +168 -0
  242. package/src/coordinator-idle.e2e.test.ts +122 -0
  243. package/src/coordinator-queue.e2e.test.ts +279 -0
  244. package/src/coordinator-warmup.e2e.test.ts +158 -0
  245. package/src/coordinator.e2e.test.ts +545 -0
  246. package/src/coordinator.ts +168 -0
  247. package/src/db.test.ts +1 -0
  248. package/src/diagram.test.ts +56 -0
  249. package/src/diagram.ts +243 -0
  250. package/src/duration.ts +13 -5
  251. package/src/effects.ts +99 -27
  252. package/src/event-loop.ts +71 -42
  253. package/src/format-parts.ts +53 -22
  254. package/src/gateway-replay.e2e.test.ts +4 -4
  255. package/src/harness.e2e.test.ts +2 -2
  256. package/src/hello-thread.e2e.test.ts +59 -5
  257. package/src/ingress.ts +62 -12
  258. package/src/interaction-context.ts +12 -11
  259. package/src/interrupt.e2e.test.ts +8 -5
  260. package/src/legacy.e2e.test.ts +1 -1
  261. package/src/lock-routes.ts +62 -8
  262. package/src/lock-server.ts +23 -7
  263. package/src/main.ts +22 -7
  264. package/src/markdown/markdown.test.ts +4 -4
  265. package/src/markdown/render-markdown.ts +6 -5
  266. package/src/onboarding-cli.e2e.test.ts +7 -6
  267. package/src/onboarding.e2e.test.ts +8 -10
  268. package/src/onboarding.ts +13 -29
  269. package/src/permissions.e2e.test.ts +3 -3
  270. package/src/plugin/coordinator.ts +401 -0
  271. package/src/plugin/index.ts +68 -15
  272. package/src/plugin.e2e.test.ts +1 -1
  273. package/src/preference-commands.e2e.test.ts +103 -23
  274. package/src/prompt.ts +87 -43
  275. package/src/questions.e2e.test.ts +13 -13
  276. package/src/queue-sources.e2e.test.ts +197 -0
  277. package/src/queue.e2e.test.ts +48 -30
  278. package/src/queue.test.ts +59 -0
  279. package/src/queue.ts +104 -24
  280. package/src/remote-send.e2e.test.ts +6 -6
  281. package/src/remote-send.ts +2 -1
  282. package/src/renderer.e2e.test.ts +7 -7
  283. package/src/restart.e2e.test.ts +2 -2
  284. package/src/routines.e2e.test.ts +2 -2
  285. package/src/scheduler.e2e.test.ts +45 -19
  286. package/src/scheduler.ts +4 -2
  287. package/src/schema-sql.ts +1 -1
  288. package/src/schema.ts +13 -0
  289. package/src/session-commands.e2e.test.ts +38 -11
  290. package/src/session-events.ts +160 -21
  291. package/src/session-ops.e2e.test.ts +90 -10
  292. package/src/sessions.ts +214 -64
  293. package/src/shell.e2e.test.ts +4 -4
  294. package/src/slash-commands.test.ts +2 -0
  295. package/src/slash-commands.ts +12 -6
  296. package/src/sleep.e2e.test.ts +30 -13
  297. package/src/sleeps.ts +20 -3
  298. package/src/store.ts +5 -2
  299. package/src/system-prompt.ts +143 -63
  300. package/src/test/generate-log-plugin/index.ts +16 -0
  301. package/src/test/harness.ts +77 -14
  302. package/src/test/replay.ts +12 -6
  303. package/src/thread-reducer.fixtures.test.ts +58 -51
  304. package/src/thread-reducer.test.ts +207 -26
  305. package/src/thread-reducer.ts +138 -37
  306. package/src/voice-attachments.e2e.test.ts +110 -18
  307. package/src/voice-call.e2e.test.ts +9 -9
  308. package/src/voice-call.ts +6 -6
  309. package/src/voice-openai.e2e.test.ts +64 -24
  310. package/src/voice.ts +101 -26
  311. package/src/working-directory.e2e.test.ts +11 -11
  312. package/dist/message-tool.e2e.test.js +0 -39
  313. package/dist/message-tool.e2e.test.js.map +0 -1
  314. package/dist/plugin/read-media.d.ts +0 -23
  315. package/dist/plugin/read-media.js +0 -72
  316. package/dist/plugin/read-media.js.map +0 -1
  317. package/dist/plugin/session-id/index.js +0 -18
  318. package/dist/plugin/session-id/index.js.map +0 -1
  319. package/dist/probe-live.tmp.js +0 -82
  320. package/dist/probe-live.tmp.js.map +0 -1
  321. package/dist/tasks.e2e.test.js +0 -173
  322. package/dist/tasks.e2e.test.js.map +0 -1
  323. /package/dist/{message-tool.e2e.test.d.ts → coordinator-agents.e2e.test.d.ts} +0 -0
  324. /package/dist/{probe-live.tmp.d.ts → coordinator-idle.e2e.test.d.ts} +0 -0
  325. /package/dist/{tasks.e2e.test.d.ts → coordinator-queue.e2e.test.d.ts} +0 -0
  326. /package/dist/{plugin/session-id → test/generate-log-plugin}/index.d.ts +0 -0
@@ -2,11 +2,12 @@
2
2
  // decoded to WAV (OpenAI accepts only wav and mp3) and sent to a local
3
3
  // OpenAI-compatible server that answers with the transcription tool call.
4
4
  // A ChatGPT credential stored by OpenCode is the fallback when the key fails, and gets the raw audio.
5
+ // KIMAKI_WHISPER_URL replaces them all with a local Whisper server.
5
6
  import { execFile } from 'node:child_process';
6
7
  import fs from 'node:fs';
7
8
  import path from 'node:path';
8
9
  import { promisify } from 'node:util';
9
- import { afterAll, beforeAll, expect, test } from 'vitest';
10
+ import { afterAll, beforeAll, expect, onTestFinished, test } from 'vitest';
10
11
  import { TEST_USER_ID, seedProjectChannel, startFakeChatGPT, startFakeOpenAI, startOpencodeTestServer, startTestBot, startTwin, tempDataDir, textParts, waitForFooter, warmUp, writeOpencodeCredential, } from "./test/harness.js";
11
12
  const matchers = [
12
13
  { id: 'openai', priority: 500, when: { latestUserTextIncludes: 'voice-openai' }, then: { parts: textParts('openai voice ok') } },
@@ -16,17 +17,19 @@ let twin;
16
17
  let bot;
17
18
  let openai;
18
19
  let chatgpt;
20
+ let whisper;
19
21
  let dataDir;
20
22
  // Created by the ChatGPT test: the tests before it run with no credential.
21
23
  let opencodeDbFile;
22
24
  beforeAll(async () => {
23
25
  dataDir = tempDataDir();
24
26
  opencodeDbFile = path.join(dataDir, 'opencode.db');
25
- [server, twin, openai, chatgpt] = await Promise.all([
27
+ [server, twin, openai, chatgpt, whisper] = await Promise.all([
26
28
  startOpencodeTestServer({ matchers }),
27
29
  startTwin(),
28
30
  startFakeOpenAI({ result: { transcription: 'Hello from the phone voice-openai', route: 'steer' } }),
29
31
  startFakeChatGPT({ text: 'Hello from ChatGPT voice-openai' }),
32
+ startFakeChatGPT({ text: 'Hello from Whisper voice-openai' }),
30
33
  ]);
31
34
  await seedProjectChannel({ dataDir, channelId: twin.channelId, guildId: twin.discord.guildId, directory: server.projectDirectory });
32
35
  await warmUp({ server });
@@ -41,24 +44,30 @@ afterAll(async () => {
41
44
  await server?.stop();
42
45
  await openai?.stop();
43
46
  await chatgpt?.stop();
47
+ await whisper?.stop();
44
48
  fs.rmSync(dataDir, { recursive: true, force: true });
45
49
  });
46
- test('an Ogg Opus voice message is converted to WAV and transcribed by OpenAI', async () => {
47
- const ogg = fs.readFileSync(path.join(import.meta.dirname, 'fixtures', 'voice.ogg'));
50
+ const ogg = fs.readFileSync(path.join(import.meta.dirname, 'fixtures', 'voice.ogg'));
51
+ async function sendVoice() {
52
+ const before = new Set((await twin.discord.channel(twin.channelId).getThreads()).map((thread) => thread.id));
48
53
  await twin.discord
49
54
  .channel(twin.channelId)
50
55
  .user(TEST_USER_ID)
51
56
  .sendVoiceMessage({ url: `data:audio/ogg;base64,${ogg.toString('base64')}` });
52
- const thread = await twin.discord.channel(twin.channelId).waitForThread({ timeout: 8_000 });
57
+ const thread = await twin.discord.channel(twin.channelId).waitForThread({ timeout: 8_000, predicate: (thread) => !before.has(thread.id) });
53
58
  await waitForFooter({ discord: twin.discord, threadId: thread.id });
54
- expect(await twin.discord.thread(thread.id).text()).toMatchInlineSnapshot(`
59
+ return thread.id;
60
+ }
61
+ test('an Ogg Opus voice message is converted to WAV and transcribed by OpenAI', async () => {
62
+ const thread = await sendVoice();
63
+ expect(await twin.discord.thread(thread).text()).toMatchInlineSnapshot(`
55
64
  "--- from: user (tommy)
56
65
  [attachment: voice-message.ogg]
57
66
  --- from: assistant (TestBot)
58
- » **tommy:** Hello from the phone voice-openai
67
+ -# » **tommy:** Hello from the phone voice-openai
59
68
  -# *using deterministic-provider/deterministic-v2 ⋅ build*
60
69
  openai voice ok
61
- -# *project ⋅ main ⋅ Ns ⋅ N% ⋅ deterministic-v2*"
70
+ -# *main ⋅ Ns ⋅ N% ⋅ deterministic-v2*"
62
71
  `);
63
72
  const [request] = openai.requests;
64
73
  expect({
@@ -101,27 +110,16 @@ test('an MP3 upload labeled audio/mpeg3 goes to OpenAI as mp3', async () => {
101
110
  test('the OpenAI key wins over the ChatGPT credential from OpenCode, which takes over when the key fails', async () => {
102
111
  const claims = Buffer.from(JSON.stringify({ 'https://api.openai.com/auth': { chatgpt_account_id: 'acct-test' } })).toString('base64url');
103
112
  await writeOpencodeCredential({ file: opencodeDbFile, access: `header.${claims}.signature`, expires: Date.now() + 3_600_000 });
104
- const ogg = fs.readFileSync(path.join(import.meta.dirname, 'fixtures', 'voice.ogg'));
105
113
  const openaiRequests = openai.requests.length;
106
- async function sendVoice() {
107
- const before = new Set((await twin.discord.channel(twin.channelId).getThreads()).map((thread) => thread.id));
108
- await twin.discord
109
- .channel(twin.channelId)
110
- .user(TEST_USER_ID)
111
- .sendVoiceMessage({ url: `data:audio/ogg;base64,${ogg.toString('base64')}` });
112
- const thread = await twin.discord.channel(twin.channelId).waitForThread({ timeout: 8_000, predicate: (thread) => !before.has(thread.id) });
113
- await waitForFooter({ discord: twin.discord, threadId: thread.id });
114
- return thread.id;
115
- }
116
114
  const viaKey = await sendVoice();
117
115
  expect(await twin.discord.thread(viaKey).text()).toMatchInlineSnapshot(`
118
116
  "--- from: user (tommy)
119
117
  [attachment: voice-message.ogg]
120
118
  --- from: assistant (TestBot)
121
- » **tommy:** Hello from the phone voice-openai
119
+ -# » **tommy:** Hello from the phone voice-openai
122
120
  -# *using deterministic-provider/deterministic-v2 ⋅ build*
123
121
  openai voice ok
124
- -# *project ⋅ main ⋅ Ns ⋅ N% ⋅ deterministic-v2*"
122
+ -# *main ⋅ Ns ⋅ N% ⋅ deterministic-v2*"
125
123
  `);
126
124
  expect({ chatgptRequests: chatgpt.requests.length, openaiRequests: openai.requests.length - openaiRequests }).toMatchInlineSnapshot(`
127
125
  {
@@ -136,10 +134,10 @@ test('the OpenAI key wins over the ChatGPT credential from OpenCode, which takes
136
134
  "--- from: user (tommy)
137
135
  [attachment: voice-message.ogg]
138
136
  --- from: assistant (TestBot)
139
- » **tommy:** Hello from ChatGPT voice-openai
137
+ -# » **tommy:** Hello from ChatGPT voice-openai
140
138
  -# *using deterministic-provider/deterministic-v2 ⋅ build*
141
139
  openai voice ok
142
- -# *project ⋅ main ⋅ Ns ⋅ N% ⋅ deterministic-v2*"
140
+ -# *main ⋅ Ns ⋅ N% ⋅ deterministic-v2*"
143
141
  `);
144
142
  const [request] = chatgpt.requests;
145
143
  expect({
@@ -158,4 +156,42 @@ test('the OpenAI key wins over the ChatGPT credential from OpenCode, which takes
158
156
  }
159
157
  `);
160
158
  });
159
+ test('KIMAKI_WHISPER_URL is the only transcriber: no cloud request, and its failure is shown', async () => {
160
+ process.env['KIMAKI_WHISPER_URL'] = `${whisper.baseUrl}/v1/`;
161
+ process.env['KIMAKI_WHISPER_MODEL'] = 'Systran/faster-whisper-large-v3';
162
+ onTestFinished(() => {
163
+ delete process.env['KIMAKI_WHISPER_URL'];
164
+ delete process.env['KIMAKI_WHISPER_MODEL'];
165
+ });
166
+ const cloudRequests = openai.requests.length + chatgpt.requests.length;
167
+ const thread = await sendVoice();
168
+ expect(await twin.discord.thread(thread).text()).toMatchInlineSnapshot(`
169
+ "--- from: user (tommy)
170
+ [attachment: voice-message.ogg]
171
+ --- from: assistant (TestBot)
172
+ -# » **tommy:** Hello from Whisper voice-openai
173
+ -# *using deterministic-provider/deterministic-v2 ⋅ build*
174
+ openai voice ok
175
+ -# *main ⋅ Ns ⋅ N% ⋅ deterministic-v2*"
176
+ `);
177
+ const request = whisper.requests.at(-1);
178
+ expect({ ...request, audio: request?.audio.equals(ogg) }).toMatchInlineSnapshot(`
179
+ {
180
+ "accountId": null,
181
+ "audio": true,
182
+ "authorization": null,
183
+ "filename": "voice.ogg",
184
+ "model": "Systran/faster-whisper-large-v3",
185
+ "path": "/v1/audio/transcriptions",
186
+ "type": "audio/ogg",
187
+ }
188
+ `);
189
+ // 400 is not retried; a 5xx would be retried twice first.
190
+ whisper.status = 400;
191
+ await twin.discord.channel(twin.channelId).user(TEST_USER_ID).sendVoiceMessage({ url: `data:audio/ogg;base64,${ogg.toString('base64')}` });
192
+ const reply = await twin.discord.channel(twin.channelId).waitForMessage({ timeout: 8_000, predicate: (message) => message.content.includes('Transcription API returned 400') });
193
+ whisper.status = 200;
194
+ expect(reply.content).toMatchInlineSnapshot(`"✗ Transcription API returned 400: {"detail":"unauthorized"}"`);
195
+ expect(openai.requests.length + chatgpt.requests.length).toBe(cloudRequests);
196
+ });
161
197
  //# sourceMappingURL=voice-openai.e2e.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"voice-openai.e2e.test.js","sourceRoot":"","sources":["../src/voice-openai.e2e.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"voice-openai.e2e.test.js","sourceRoot":"","sources":["../src/voice-openai.e2e.test.ts"],"names":[],"mappings":"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"}
package/dist/voice.js CHANGED
@@ -7,7 +7,8 @@
7
7
  // Order: OpenAI (bot_api_keys, then OPENAI_API_KEY), the ChatGPT subscription credential
8
8
  // stored by OpenCode (billed to the plan), Gemini (bot_api_keys, then GEMINI_API_KEY), then the
9
9
  // free kimaki.dev Whisper endpoint on gateway installs. A failing provider falls through to the
10
- // next one. ChatGPT and Whisper have no tool call: the route is always steer.
10
+ // next one. KIMAKI_WHISPER_URL replaces the whole list with a local Whisper server, so audio
11
+ // never reaches a cloud provider. ChatGPT and Whisper have no tool call: the route is always steer.
11
12
  // Plain fetch, no AI SDK: we parse provider bodies ourselves so transient
12
13
  // bad responses keep their details and can be retried.
13
14
  import { execFile } from 'node:child_process';
@@ -34,6 +35,15 @@ const GEMINI_MODEL = 'gemini-flash-latest';
34
35
  const TOOL_NAME = 'transcriptionResult';
35
36
  const MAX_ATTEMPTS = 3;
36
37
  const RETRY_DELAY_MS = 500;
38
+ // Later messages of the conversation wait for the transcription (ingress.ts): cap all providers and retries.
39
+ const TRANSCRIPTION_TIMEOUT_MS = 2 * 60_000;
40
+ // KIMAKI_WHISPER_TIMEOUT (seconds) raises the cap for a slow local Whisper server (CPU only).
41
+ function transcriptionTimeoutMs(entries) {
42
+ const seconds = Number(process.env['KIMAKI_WHISPER_TIMEOUT']);
43
+ if (!entries.some((entry) => entry.kind === 'local-whisper') || !(seconds > 0))
44
+ return TRANSCRIPTION_TIMEOUT_MS;
45
+ return seconds * 1000;
46
+ }
37
47
  export class TranscriptionError extends errore.createTaggedError({
38
48
  name: 'TranscriptionError',
39
49
  message: 'Transcription failed: $reason',
@@ -334,11 +344,12 @@ async function openAIAudio({ audio, mediaType }) {
334
344
  return { data: converted, format: 'wav' };
335
345
  }
336
346
  // --- requests
337
- async function postJson({ url, headers, body }) {
347
+ async function postJson({ url, headers, body, signal }) {
338
348
  const response = await fetch(url, {
339
349
  method: 'POST',
340
350
  headers: { 'content-type': 'application/json', ...headers },
341
351
  body: JSON.stringify(body),
352
+ signal,
342
353
  }).catch((cause) => new TranscriptionError({ reason: `request to ${url} failed`, cause }));
343
354
  if (response instanceof Error)
344
355
  return response;
@@ -349,8 +360,9 @@ async function postJson({ url, headers, body }) {
349
360
  return new TranscriptionApiError({ status: String(response.status), body: text.slice(0, 500) });
350
361
  return text;
351
362
  }
352
- async function requestGemini({ apiKey, baseUrl, prompt, audio, mediaType, tool }) {
363
+ async function requestGemini({ apiKey, baseUrl, prompt, audio, mediaType, tool, signal }) {
353
364
  const raw = await postJson({
365
+ signal,
354
366
  url: `${baseUrl}/models/${GEMINI_MODEL}:generateContent`,
355
367
  headers: { 'x-goog-api-key': apiKey },
356
368
  body: {
@@ -366,11 +378,12 @@ async function requestGemini({ apiKey, baseUrl, prompt, audio, mediaType, tool }
366
378
  }
367
379
  // TODO: use the ChatGPT subscription token here once OpenAI allows it. Today chat/completions
368
380
  // rejects it (missing model.request scope), so the subscription only gets dictation without routing.
369
- async function requestOpenAI({ apiKey, baseUrl, prompt, audio, mediaType, tool }) {
381
+ async function requestOpenAI({ apiKey, baseUrl, prompt, audio, mediaType, tool, signal }) {
370
382
  const input = await openAIAudio({ audio, mediaType });
371
383
  if (input instanceof Error)
372
384
  return input;
373
385
  const raw = await postJson({
386
+ signal,
374
387
  url: `${baseUrl}/chat/completions`,
375
388
  headers: { authorization: `Bearer ${apiKey}` },
376
389
  body: {
@@ -404,12 +417,12 @@ function isRetryable(error) {
404
417
  const status = Number(error.status);
405
418
  return status === 408 || status === 409 || status === 429 || status >= 500;
406
419
  }
407
- async function withRetries(attempt) {
420
+ async function withRetries({ signal, attempt }) {
408
421
  for (let number = 1;; number++) {
409
422
  const result = await attempt();
410
423
  if (!(result instanceof Error))
411
424
  return result;
412
- const retry = number < MAX_ATTEMPTS && isRetryable(result);
425
+ const retry = number < MAX_ATTEMPTS && !signal.aborted && isRetryable(result);
413
426
  logger.warn(`transcription attempt ${number}/${MAX_ATTEMPTS} failed${retry ? ', retrying' : ''}`, result);
414
427
  if (!retry)
415
428
  return result;
@@ -418,11 +431,12 @@ async function withRetries(attempt) {
418
431
  }
419
432
  // Free Whisper through kimaki.dev, authenticated with the gateway client
420
433
  // credentials (website POST /api/transcribe). No routing: always steer.
421
- async function transcribeViaGateway({ audio, mediaType, clientId, clientSecret }) {
434
+ async function transcribeViaGateway({ audio, mediaType, clientId, clientSecret, signal }) {
422
435
  const response = await fetch(new URL('/api/transcribe', gatewayUrlsFromEnv().website), {
423
436
  method: 'POST',
424
437
  headers: { authorization: `Bearer ${clientId}:${clientSecret}`, 'content-type': mediaType },
425
438
  body: new Uint8Array(audio),
439
+ signal,
426
440
  }).catch((cause) => new TranscriptionError({ reason: 'kimaki.dev transcription not reachable', cause }));
427
441
  if (response instanceof Error)
428
442
  return response;
@@ -434,7 +448,7 @@ async function transcribeViaGateway({ audio, mediaType, clientId, clientSecret }
434
448
  return parsed;
435
449
  return toTranscriptionResult({ transcription: parsed['text'] });
436
450
  }
437
- const CHATGPT_EXTENSIONS = { 'audio/ogg': 'ogg', 'audio/mp4': 'm4a', 'audio/mpeg': 'mp3', 'audio/wav': 'wav' };
451
+ const AUDIO_EXTENSIONS = { 'audio/ogg': 'ogg', 'audio/mp4': 'm4a', 'audio/mpeg': 'mp3', 'audio/wav': 'wav' };
438
452
  // Same claim the Codex CLI sends as chatgpt-account-id.
439
453
  function chatGPTAccountId(accessToken) {
440
454
  const payload = accessToken.split('.')[1] ?? '';
@@ -467,17 +481,14 @@ export async function chatGPTCredential({ dbFile, now = Date.now() }) {
467
481
  }
468
482
  return null;
469
483
  }
470
- async function transcribeViaChatGPT({ credential, baseUrl, audio, mediaType }) {
484
+ // Multipart `file` (plus `fields`) in, `{ text }` out: ChatGPT dictation and Whisper servers.
485
+ async function transcribeFile({ name, url, headers, fields = {}, audio, mediaType, signal }) {
471
486
  const form = new FormData();
472
- form.append('file', new File([new Uint8Array(audio)], `voice.${CHATGPT_EXTENSIONS[mediaType] ?? 'ogg'}`, { type: mediaType }));
473
- const response = await fetch(`${baseUrl}/transcribe`, {
474
- method: 'POST',
475
- headers: {
476
- authorization: `Bearer ${credential.accessToken}`,
477
- ...(credential.accountId && { 'chatgpt-account-id': credential.accountId }),
478
- },
479
- body: form,
480
- }).catch((cause) => new TranscriptionError({ reason: 'ChatGPT transcription not reachable', cause }));
487
+ form.append('file', new File([new Uint8Array(audio)], `voice.${AUDIO_EXTENSIONS[mediaType] ?? 'ogg'}`, { type: mediaType }));
488
+ for (const [key, value] of Object.entries(fields))
489
+ form.append(key, value);
490
+ const response = await fetch(url, { method: 'POST', headers, body: form, signal })
491
+ .catch((cause) => new TranscriptionError({ reason: `${name} not reachable`, cause }));
481
492
  if (response instanceof Error)
482
493
  return response;
483
494
  const body = await response.text().catch(() => '');
@@ -488,6 +499,40 @@ async function transcribeViaChatGPT({ credential, baseUrl, audio, mediaType }) {
488
499
  return parsed;
489
500
  return toTranscriptionResult({ transcription: parsed['text'] });
490
501
  }
502
+ function transcribeViaChatGPT({ credential, baseUrl, audio, mediaType, signal }) {
503
+ return transcribeFile({
504
+ name: 'ChatGPT transcription',
505
+ url: `${baseUrl}/transcribe`,
506
+ headers: {
507
+ authorization: `Bearer ${credential.accessToken}`,
508
+ ...(credential.accountId && { 'chatgpt-account-id': credential.accountId }),
509
+ },
510
+ audio,
511
+ mediaType,
512
+ signal,
513
+ });
514
+ }
515
+ function localWhisperFromEnv() {
516
+ const url = process.env['KIMAKI_WHISPER_URL']?.trim().replace(/\/+$/, '');
517
+ if (!url)
518
+ return null;
519
+ return {
520
+ url,
521
+ model: process.env['KIMAKI_WHISPER_MODEL']?.trim() || 'whisper-1',
522
+ apiKey: process.env['KIMAKI_WHISPER_API_KEY']?.trim() || null,
523
+ };
524
+ }
525
+ function transcribeViaLocalWhisper({ whisper, audio, mediaType, signal }) {
526
+ return transcribeFile({
527
+ name: `Whisper server at ${whisper.url}`,
528
+ url: `${whisper.url}/audio/transcriptions`,
529
+ headers: whisper.apiKey ? { authorization: `Bearer ${whisper.apiKey}` } : {},
530
+ fields: { model: whisper.model },
531
+ audio,
532
+ mediaType,
533
+ signal,
534
+ });
535
+ }
491
536
  // --- routing
492
537
  export function parseVoiceMessage(result) {
493
538
  return { kind: result.route, text: result.transcription, ...(result.agent && { agent: result.agent }) };
@@ -510,7 +555,11 @@ export function audioKeyCandidates(stored) {
510
555
  }
511
556
  // Best first: OpenAI key (routing tool call), ChatGPT subscription and Gemini key, then hosted Whisper.
512
557
  // ChatGPT and Whisper only transcribe, so the route is always steer.
558
+ // A local Whisper server is the only one: its failure must not send the audio to the cloud.
513
559
  async function transcribers({ db, token, opencodeDbFile }) {
560
+ const whisper = localWhisperFromEnv();
561
+ if (whisper)
562
+ return [{ kind: 'local-whisper', whisper }];
514
563
  const [row, credential] = await Promise.all([
515
564
  db.query.bot_tokens
516
565
  .findFirst({ where: { token }, with: { api_keys: true } })
@@ -543,18 +592,25 @@ export async function transcribe({ db, token, opencodeDbFile, baseUrls = {}, aud
543
592
  const prompt = list.some((entry) => entry.kind === 'openai' || entry.kind === 'gemini')
544
593
  ? transcriptionPrompt({ fileTree: await projectFileTree(directory), agents })
545
594
  : '';
595
+ const timeoutMs = transcriptionTimeoutMs(list);
596
+ const signal = AbortSignal.timeout(timeoutMs);
546
597
  const run = (entry) => {
547
598
  if (entry.kind === 'gateway')
548
- return transcribeViaGateway({ audio, mediaType, ...entry });
549
- if (entry.kind === 'chatgpt')
550
- return withRetries(() => transcribeViaChatGPT({ credential: entry.credential, baseUrl: baseUrls.chatgpt ?? CHATGPT_BASE_URL, audio, mediaType }));
551
- const request = { apiKey: entry.apiKey, prompt, audio, mediaType, tool };
599
+ return transcribeViaGateway({ audio, mediaType, ...entry, signal });
600
+ if (entry.kind === 'local-whisper')
601
+ return withRetries({ signal, attempt: () => transcribeViaLocalWhisper({ whisper: entry.whisper, audio, mediaType, signal }) });
602
+ if (entry.kind === 'chatgpt') {
603
+ return withRetries({ signal, attempt: () => transcribeViaChatGPT({ credential: entry.credential, baseUrl: baseUrls.chatgpt ?? CHATGPT_BASE_URL, audio, mediaType, signal }) });
604
+ }
605
+ const request = { apiKey: entry.apiKey, prompt, audio, mediaType, tool, signal };
552
606
  if (entry.kind === 'openai')
553
- return withRetries(() => requestOpenAI({ ...request, baseUrl: baseUrls.openai ?? OPENAI_BASE_URL }));
554
- return withRetries(() => requestGemini({ ...request, baseUrl: baseUrls.gemini ?? GEMINI_BASE_URL }));
607
+ return withRetries({ signal, attempt: () => requestOpenAI({ ...request, baseUrl: baseUrls.openai ?? OPENAI_BASE_URL }) });
608
+ return withRetries({ signal, attempt: () => requestGemini({ ...request, baseUrl: baseUrls.gemini ?? GEMINI_BASE_URL }) });
555
609
  };
556
610
  let last = new NoTranscriptionKeyError();
557
611
  for (const entry of list) {
612
+ if (signal.aborted)
613
+ return new TranscriptionError({ reason: `no answer within ${timeoutMs / 60_000} minutes` });
558
614
  const result = await run(entry);
559
615
  if (!(result instanceof Error) || result instanceof EmptyTranscriptionError)
560
616
  return result;
package/dist/voice.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"voice.js","sourceRoot":"","sources":["../src/voice.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"voice.js","sourceRoot":"","sources":["../src/voice.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,6EAA6E;AAC7E,EAAE;AACF,+EAA+E;AAC/E,qFAAqF;AACrF,EAAE;AACF,yFAAyF;AACzF,gGAAgG;AAChG,gGAAgG;AAChG,6FAA6F;AAC7F,oGAAoG;AACpG,0EAA0E;AAC1E,uDAAuD;AAEvD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAA;AAChC,OAAO,KAAK,MAAM,aAAa,CAAA;AAC/B,OAAO,MAAM,MAAM,eAAe,CAAA;AAClC,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,cAAc,GAEf,MAAM,YAAY,CAAA;AAEnB,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAEzE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE1C,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;AACpC,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAA;AAEzC,MAAM,gBAAgB,GAAG,iCAAiC,CAAA;AAC1D,MAAM,eAAe,GAAG,2BAA2B,CAAA;AACnD,MAAM,kBAAkB,GAAG,eAAe,CAAA;AAC1C,MAAM,eAAe,GAAG,kDAAkD,CAAA;AAC1E,MAAM,YAAY,GAAG,qBAAqB,CAAA;AAC1C,MAAM,SAAS,GAAG,qBAAqB,CAAA;AACvC,MAAM,YAAY,GAAG,CAAC,CAAA;AACtB,MAAM,cAAc,GAAG,GAAG,CAAA;AAC1B,6GAA6G;AAC7G,MAAM,wBAAwB,GAAG,CAAC,GAAG,MAAM,CAAA;AAE3C,8FAA8F;AAC9F,SAAS,sBAAsB,CAAC,OAAsB;IACpD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC,CAAA;IAC7D,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,eAAe,CAAC,IAAI,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC;QAAE,OAAO,wBAAwB,CAAA;IAC/G,OAAO,OAAO,GAAG,IAAI,CAAA;AACvB,CAAC;AAED,MAAM,OAAO,kBAAmB,SAAQ,MAAM,CAAC,iBAAiB,CAAC;IAC/D,IAAI,EAAE,oBAAoB;IAC1B,OAAO,EAAE,+BAA+B;CACzC,CAAC;CAAG;AAEL,MAAM,OAAO,qBAAsB,SAAQ,MAAM,CAAC,iBAAiB,CAAC;IAClE,IAAI,EAAE,uBAAuB;IAC7B,OAAO,EAAE,2CAA2C;CACrD,CAAC;CAAG;AAEL,MAAM,OAAO,yBAA0B,SAAQ,MAAM,CAAC,iBAAiB,CAAC;IACtE,IAAI,EAAE,2BAA2B;IACjC,OAAO,EAAE,wDAAwD;CAClE,CAAC;CAAG;AAEL,MAAM,OAAO,uBAAwB,SAAQ,MAAM,CAAC,iBAAiB,CAAC;IACpE,IAAI,EAAE,yBAAyB;IAC/B,OAAO,EAAE,iFAAiF;CAC3F,CAAC;CAAG;AAEL,MAAM,OAAO,uBAAwB,SAAQ,MAAM,CAAC,iBAAiB,CAAC;IACpE,IAAI,EAAE,yBAAyB;IAC/B,OAAO,EAAE,wJAAwJ;CAClK,CAAC;CAAG;AAYL,oDAAoD;AAEpD,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAA;AACnF,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;AAWnF,uEAAuE;AACvE,uEAAuE;AACvE,MAAM,kBAAkB,GAA2B;IACjD,YAAY,EAAE,YAAY;IAC1B,WAAW,EAAE,YAAY;IACzB,aAAa,EAAE,YAAY;IAC3B,cAAc,EAAE,YAAY;IAC5B,gBAAgB,EAAE,YAAY;IAC9B,WAAW,EAAE,YAAY;IACzB,WAAW,EAAE,WAAW;IACxB,aAAa,EAAE,WAAW;IAC1B,YAAY,EAAE,WAAW;IACzB,gBAAgB,EAAE,WAAW;IAC7B,WAAW,EAAE,WAAW;IACxB,YAAY,EAAE,WAAW;IACzB,iBAAiB,EAAE,WAAW;IAC9B,WAAW,EAAE,WAAW;IACxB,WAAW,EAAE,WAAW;IACxB,aAAa,EAAE,WAAW;CAC3B,CAAA;AAED,MAAM,qBAAqB,GAA2B;IACpD,MAAM,EAAE,YAAY;IACpB,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,WAAW;IACnB,OAAO,EAAE,WAAW;IACpB,MAAM,EAAE,WAAW;CACpB,CAAA;AAED,SAAS,eAAe,CAAC,WAA0B;IACjD,OAAO,WAAW,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,CAAA;AAC/D,CAAC;AAED,0EAA0E;AAC1E,wEAAwE;AACxE,MAAM,UAAU,iBAAiB,CAAC,UAA0B;IAC1D,MAAM,WAAW,GAAG,eAAe,CAAC,UAAU,CAAC,WAAW,CAAC,CAAA;IAC3D,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAA;IAC7D,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAA;IAC7E,IAAI,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC;QAAE,OAAO,IAAI,CAAA;IAChD,IAAI,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC;QAAE,OAAO,KAAK,CAAA;IACrF,IAAI,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAA;IACjD,OAAO,CAAC,UAAU,CAAC,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;AAC/E,CAAC;AAED,6EAA6E;AAC7E,uCAAuC;AACvC,MAAM,UAAU,cAAc,CAAC,UAAwD;IACrF,MAAM,WAAW,GAAG,eAAe,CAAC,UAAU,CAAC,WAAW,CAAC,CAAA;IAC3D,MAAM,KAAK,GAAG,kBAAkB,CAAC,WAAW,CAAC,IAAI,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,CAAA;IACnH,IAAI,KAAK;QAAE,OAAO,KAAK,CAAA;IACvB,OAAO,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAA;AACrE,CAAC;AAED,6BAA6B;AAE7B,MAAM,UAAU,sBAAsB,CAAC,EAAE,UAAU,EAAE,SAAS,EAAyD;IACrH,mFAAmF;IACnF,MAAM,MAAM,GAAiB,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,aAAa,CAAC,CAAA;IAC5G,MAAM,UAAU,GAA4C;QAC1D,aAAa,EAAE;YACb,IAAI,EAAE,QAAQ;YACd,WAAW,EACT,sIAAsI;SACzI;QACD,KAAK,EAAE;YACL,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,MAAM;YACZ,WAAW,EAAE;gBACX,yDAAyD;gBACzD,SAAS,CAAC,CAAC,CAAC,+EAA+E,CAAC,CAAC,CAAC,IAAI;gBAClG,SAAS,CAAC,CAAC,CAAC,2FAA2F,CAAC,CAAC,CAAC,IAAI;gBAC9G,oGAAoG;aACrG;iBACE,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC;iBAC/B,IAAI,CAAC,GAAG,CAAC;SACb;QACD,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI;YAC3B,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,UAAU;gBAChB,WAAW,EAAE,4FAA4F;aAC1G;SACF,CAAC;KACH,CAAA;IACD,OAAO;QACL,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,+EAA+E;QAC5F,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE;KACzE,CAAA;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAsF;IACnI,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACzH,OAAO,MAAM,CAAA;mEACoD,SAAS;;;;;;;;;;;MAWtE,SAAS,CAAC,CAAC,CAAC,sBAAsB,SAAS,EAAE,CAAC,CAAC,CAAC,yBAAyB;;;;MAIzE,QAAQ;;GAEX,CAAA;AACH,CAAC;AAED,uBAAuB;AAEvB,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;AAC7E,CAAC;AAED,SAAS,eAAe,CAAC,IAAY;IACnC,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CACvB,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,EAAE,CAAC,EAC9C,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,kBAAkB,CAAC,EAAE,MAAM,EAAE,iBAAiB,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAC5F,CAAA;IACD,IAAI,MAAM,YAAY,KAAK;QAAE,OAAO,MAAM,CAAA;IAC1C,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,kBAAkB,CAAC,EAAE,MAAM,EAAE,sBAAsB,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAA;IAClH,OAAO,MAAM,CAAC,KAAK,CAAA;AACrB,CAAC;AAED,+DAA+D;AAC/D,MAAM,UAAU,qBAAqB,CAAC,IAA6B;IACjE,MAAM,aAAa,GAAG,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IACnG,IAAI,CAAC,aAAa;QAAE,OAAO,IAAI,uBAAuB,EAAE,CAAA;IACxD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAA;IAC3B,OAAO;QACL,aAAa;QACb,KAAK,EAAE,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO;QACxF,KAAK,EAAE,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI;KACjF,CAAA;AACH,CAAC;AAED,gEAAgE;AAChE,SAAS,iBAAiB,CAAC,GAAqC;IAC9D,MAAM,IAAI,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;IACjE,IAAI,IAAI,YAAY,KAAK;QAAE,OAAO,IAAI,CAAA;IACtC,OAAO,qBAAqB,CAAC,IAAI,CAAC,CAAA;AACpC,CAAC;AAED,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAA;AAE/G,4EAA4E;AAC5E,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,CAAA;IACpC,IAAI,MAAM,YAAY,KAAK;QAAE,OAAO,MAAM,CAAA;IAC1C,MAAM,SAAS,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAClG,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,QAAQ,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAA;QACzC,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,OAAO,QAAQ,CAAC,aAAa,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QACtH,IAAI,WAAW;YAAE,OAAO,IAAI,yBAAyB,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAA;QAC9E,OAAO,IAAI,kBAAkB,CAAC,EAAE,MAAM,EAAE,kCAAkC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAA;IACnG,CAAC;IACD,MAAM,YAAY,GAAG,OAAO,SAAS,CAAC,cAAc,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IACrG,IAAI,YAAY,IAAI,cAAc,CAAC,GAAG,CAAC,YAAY,CAAC;QAAE,OAAO,IAAI,yBAAyB,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAA;IACpH,IAAI,YAAY,IAAI,YAAY,KAAK,MAAM,IAAI,YAAY,KAAK,2BAA2B,EAAE,CAAC;QAC5F,OAAO,IAAI,kBAAkB,CAAC,EAAE,MAAM,EAAE,wBAAwB,YAAY,EAAE,EAAE,CAAC,CAAA;IACnF,CAAC;IACD,MAAM,OAAO,GAAG,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAC1E,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IACxF,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACrE,IAAI,IAAI,EAAE,CAAC,MAAM,CAAC,KAAK,SAAS;QAAE,OAAO,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IACtG,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAA;IACzG,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,aAAa,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;IAC/G,OAAO,IAAI,kBAAkB,CAAC,EAAE,MAAM,EAAE,kCAAkC,EAAE,CAAC,CAAA;AAC/E,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,CAAA;IACpC,IAAI,MAAM,YAAY,KAAK;QAAE,OAAO,MAAM,CAAA;IAC1C,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACzF,MAAM,YAAY,GAAG,MAAM,EAAE,CAAC,eAAe,CAAC,CAAA;IAC9C,IAAI,YAAY,KAAK,gBAAgB;QAAE,OAAO,IAAI,yBAAyB,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAA;IACzG,IAAI,YAAY,KAAK,QAAQ;QAAE,OAAO,IAAI,kBAAkB,CAAC,EAAE,MAAM,EAAE,6BAA6B,EAAE,CAAC,CAAA;IACvG,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IACxE,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,kBAAkB,CAAC,EAAE,MAAM,EAAE,+BAA+B,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAA;IAC5G,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IAClG,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,KAAK,SAAS,CAAC,CAAA;IACnH,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,QAAQ;QAAE,OAAO,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAA;IACxG,MAAM,IAAI,GAAG,OAAO,OAAO,CAAC,SAAS,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IACpF,IAAI,IAAI;QAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;IACrE,OAAO,IAAI,kBAAkB,CAAC,EAAE,MAAM,EAAE,kCAAkC,EAAE,CAAC,CAAA;AAC/E,CAAC;AAED,yDAAyD;AAEzD,SAAS,SAAS,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAgE;IACnH,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IAC/B,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;IACvB,MAAM,CAAC,aAAa,CAAC,EAAE,GAAG,UAAU,EAAE,CAAC,CAAC,CAAA;IACxC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;IACvB,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IACxB,MAAM,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;IAC5B,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IAC3B,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;IAClC,MAAM,CAAC,aAAa,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA;IACpC,MAAM,CAAC,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,CAAC,EAAE,EAAE,CAAC,CAAA;IACnD,MAAM,CAAC,aAAa,CAAC,QAAQ,GAAG,CAAC,EAAE,EAAE,CAAC,CAAA;IACtC,MAAM,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;IAC5B,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IACxB,MAAM,CAAC,aAAa,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA;IACpC,OAAO,MAAM,CAAA;AACf,CAAC;AAED,oDAAoD;AACpD,SAAS,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,EAAoD;IACnF,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,MAAM,GAAa,EAAE,CAAA;QAC3B,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;QACxD,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;YACpB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;YACjC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACrB,OAAO,CAAC,IAAI,kBAAkB,CAAC,EAAE,MAAM,EAAE,GAAG,KAAK,oBAAoB,EAAE,CAAC,CAAC,CAAA;gBACzE,OAAM;YACR,CAAC;YACD,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAA;QACvG,CAAC,CAAC,CAAA;QACF,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAY,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,kBAAkB,CAAC,EAAE,MAAM,EAAE,GAAG,KAAK,YAAY,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAA;IACtI,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,sEAAsE;AACtE,4BAA4B;AAC5B,KAAK,UAAU,QAAQ,CAAC,KAAa;IACnC,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CACzB,GAAG,EAAE;QACH,MAAM,OAAO,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,CAAA;QAC3C,MAAM,OAAO,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAA;QACrF,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAA;QAC5D,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAChD,OAAO,OAAO,CAAA;IAChB,CAAC,EACD,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,kBAAkB,CAAC,EAAE,MAAM,EAAE,sCAAsC,EAAE,KAAK,EAAE,CAAC,CAC7F,CAAA;IACD,IAAI,QAAQ,YAAY,KAAK;QAAE,OAAO,QAAQ,CAAA;IAC9C,OAAO,QAAQ,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,CAAA;AACjE,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,KAAa;IACnC,MAAM,IAAI,GAAG,CAAC,kBAAkB,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAA;IACrF,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAC3B,GAAG,EAAE,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC,EACxH,CAAC,KAAK,EAAE,EAAE,CACR,IAAI,kBAAkB,CAAC;QACrB,MAAM,EAAE,kGAAkG;QAC1G,KAAK;KACN,CAAC,CACL,CAAA;IACD,IAAI,UAAU,YAAY,KAAK;QAAE,OAAO,UAAU,CAAA;IAClD,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IACrC,OAAO,QAAQ,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,wBAAwB,EAAE,CAAC,CAAA;AAC1E,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,EAAE,KAAK,EAAE,SAAS,EAAwC;IACnF,IAAI,SAAS,KAAK,YAAY;QAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;IACrE,IAAI,SAAS,KAAK,WAAW;QAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;IACpE,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,EAAE;QAC5B,IAAI,SAAS,KAAK,WAAW;YAAE,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAA;QACrD,IAAI,SAAS,KAAK,WAAW;YAAE,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAA;QACrD,OAAO,IAAI,kBAAkB,CAAC,EAAE,MAAM,EAAE,0BAA0B,SAAS,EAAE,EAAE,CAAC,CAAA;IAClF,CAAC,CAAC,EAAE,CAAA;IACJ,IAAI,SAAS,YAAY,KAAK;QAAE,OAAO,SAAS,CAAA;IAChD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;AAC3C,CAAC;AAED,eAAe;AAEf,KAAK,UAAU,QAAQ,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAwF;IAC1I,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;QAChC,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,GAAG,OAAO,EAAE;QAC3D,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;QAC1B,MAAM;KACP,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,kBAAkB,CAAC,EAAE,MAAM,EAAE,cAAc,GAAG,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;IAC1F,IAAI,QAAQ,YAAY,KAAK;QAAE,OAAO,QAAQ,CAAA;IAC9C,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,kBAAkB,CAAC,EAAE,MAAM,EAAE,6BAA6B,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;IAC7H,IAAI,IAAI,YAAY,KAAK;QAAE,OAAO,IAAI,CAAA;IACtC,IAAI,CAAC,QAAQ,CAAC,EAAE;QAAE,OAAO,IAAI,qBAAqB,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAA;IACjH,OAAO,IAAI,CAAA;AACb,CAAC;AAID,KAAK,UAAU,aAAa,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAmB;IACvG,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC;QACzB,MAAM;QACN,GAAG,EAAE,GAAG,OAAO,WAAW,YAAY,kBAAkB;QACxD,OAAO,EAAE,EAAE,gBAAgB,EAAE,MAAM,EAAE;QACrC,IAAI,EAAE;YACJ,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;YAChI,KAAK,EAAE,CAAC,EAAE,oBAAoB,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YACrH,UAAU,EAAE,EAAE,qBAAqB,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,oBAAoB,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE;YACzF,gBAAgB,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,EAAE;SACxG;KACF,CAAC,CAAA;IACF,IAAI,GAAG,YAAY,KAAK;QAAE,OAAO,GAAG,CAAA;IACpC,OAAO,mBAAmB,CAAC,GAAG,CAAC,CAAA;AACjC,CAAC;AAED,8FAA8F;AAC9F,qGAAqG;AACrG,KAAK,UAAU,aAAa,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAmB;IACvG,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;IACrD,IAAI,KAAK,YAAY,KAAK;QAAE,OAAO,KAAK,CAAA;IACxC,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC;QACzB,MAAM;QACN,GAAG,EAAE,GAAG,OAAO,mBAAmB;QAClC,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,MAAM,EAAE,EAAE;QAC9C,IAAI,EAAE;YACJ,KAAK,EAAE,kBAAkB;YACzB,WAAW,EAAE,GAAG;YAChB,qBAAqB,EAAE,IAAI;YAC3B,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACzH,WAAW,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;YAChE,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE;wBACP,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;wBAC9B,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,EAAE;qBACpG;iBACF;aACF;SACF;KACF,CAAC,CAAA;IACF,IAAI,GAAG,YAAY,KAAK;QAAE,OAAO,GAAG,CAAA;IACpC,OAAO,mBAAmB,CAAC,GAAG,CAAC,CAAA;AACjC,CAAC;AAID,0EAA0E;AAC1E,gDAAgD;AAChD,SAAS,WAAW,CAAC,KAA2B;IAC9C,IAAI,KAAK,YAAY,uBAAuB,IAAI,KAAK,YAAY,yBAAyB;QAAE,OAAO,KAAK,CAAA;IACxG,IAAI,CAAC,CAAC,KAAK,YAAY,qBAAqB,CAAC;QAAE,OAAO,IAAI,CAAA;IAC1D,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IACnC,OAAO,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,IAAI,GAAG,CAAA;AAC5E,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,EAAE,MAAM,EAAE,OAAO,EAA+F;IACzI,KAAK,IAAI,MAAM,GAAG,CAAC,GAAI,MAAM,EAAE,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,MAAM,OAAO,EAAE,CAAA;QAC9B,IAAI,CAAC,CAAC,MAAM,YAAY,KAAK,CAAC;YAAE,OAAO,MAAM,CAAA;QAC7C,MAAM,KAAK,GAAG,MAAM,GAAG,YAAY,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,WAAW,CAAC,MAAM,CAAC,CAAA;QAC7E,MAAM,CAAC,IAAI,CAAC,yBAAyB,MAAM,IAAI,YAAY,UAAU,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,CAAA;QACzG,IAAI,CAAC,KAAK;YAAE,OAAO,MAAM,CAAA;QACzB,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CAAC,CAAC,CAAA;IAC9E,CAAC;AACH,CAAC;AAED,yEAAyE;AACzE,wEAAwE;AACxE,KAAK,UAAU,oBAAoB,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAMrF;IACC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,iBAAiB,EAAE,kBAAkB,EAAE,CAAC,OAAO,CAAC,EAAE;QACrF,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,QAAQ,IAAI,YAAY,EAAE,EAAE,cAAc,EAAE,SAAS,EAAE;QAC3F,IAAI,EAAE,IAAI,UAAU,CAAC,KAAK,CAAC;QAC3B,MAAM;KACP,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,kBAAkB,CAAC,EAAE,MAAM,EAAE,wCAAwC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;IACxG,IAAI,QAAQ,YAAY,KAAK;QAAE,OAAO,QAAQ,CAAA;IAC9C,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAA;IAClD,IAAI,CAAC,QAAQ,CAAC,EAAE;QAAE,OAAO,IAAI,qBAAqB,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAA;IACjH,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,CAAA;IACpC,IAAI,MAAM,YAAY,KAAK;QAAE,OAAO,MAAM,CAAA;IAC1C,OAAO,qBAAqB,CAAC,EAAE,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;AACjE,CAAC;AAaD,MAAM,gBAAgB,GAA2B,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,CAAA;AAEpI,wDAAwD;AACxD,SAAS,gBAAgB,CAAC,WAAmB;IAC3C,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IAC/C,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAY,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAA;IACtH,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,6BAA6B,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAC5E,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,oBAAoB,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;AAC7G,CAAC;AAED,iGAAiG;AACjG,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,EAAE,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,EAAoC;IACpG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAA;IACvC,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAA;IAChD,MAAM,IAAI,GAAG,MAAM,MAAM;SACtB,OAAO,CAAC,EAAE,GAAG,EAAE,+BAA+B,EAAE,IAAI,EAAE,CAAC,QAAQ,MAAM,UAAU,CAAC,EAAE,CAAC;SACnF,IAAI,CAAC,GAAG,EAAE,CACT,MAAM,CAAC,OAAO,CAAC,+GAA+G,CAAC,CAChI;SACA,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,kBAAkB,CAAC,EAAE,MAAM,EAAE,qCAAqC,MAAM,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;SACjH,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAA;IAChC,IAAI,IAAI,YAAY,KAAK;QAAE,OAAO,IAAI,CAAA;IACtC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,CAAA;QACxB,MAAM,KAAK,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAY,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QACvG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,OAAO,IAAI,OAAO,KAAK,CAAC,QAAQ,CAAC,KAAK,QAAQ;YAAE,SAAQ;QAClG,IAAI,OAAO,KAAK,CAAC,SAAS,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,GAAG,GAAG,MAAM,EAAE,CAAC;YAC7E,MAAM,CAAC,GAAG,CAAC,yEAAyE,CAAC,CAAA;YACrF,OAAO,IAAI,CAAA;QACb,CAAC;QACD,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAA;IACvF,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,8FAA8F;AAC9F,KAAK,UAAU,cAAc,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EASxF;IACC,MAAM,IAAI,GAAG,IAAI,QAAQ,EAAE,CAAA;IAC3B,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,gBAAgB,CAAC,SAAS,CAAC,IAAI,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAA;IAC5H,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IAC1E,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;SAC/E,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,kBAAkB,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,gBAAgB,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;IACvF,IAAI,QAAQ,YAAY,KAAK;QAAE,OAAO,QAAQ,CAAA;IAC9C,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAA;IAClD,IAAI,CAAC,QAAQ,CAAC,EAAE;QAAE,OAAO,IAAI,qBAAqB,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAA;IACjH,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,CAAA;IACpC,IAAI,MAAM,YAAY,KAAK;QAAE,OAAO,MAAM,CAAA;IAC1C,OAAO,qBAAqB,CAAC,EAAE,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;AACjE,CAAC;AAED,SAAS,oBAAoB,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAM5E;IACC,OAAO,cAAc,CAAC;QACpB,IAAI,EAAE,uBAAuB;QAC7B,GAAG,EAAE,GAAG,OAAO,aAAa;QAC5B,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,UAAU,CAAC,WAAW,EAAE;YACjD,GAAG,CAAC,UAAU,CAAC,SAAS,IAAI,EAAE,oBAAoB,EAAE,UAAU,CAAC,SAAS,EAAE,CAAC;SAC5E;QACD,KAAK;QACL,SAAS;QACT,MAAM;KACP,CAAC,CAAA;AACJ,CAAC;AAUD,SAAS,mBAAmB;IAC1B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IACzE,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAA;IACrB,OAAO;QACL,GAAG;QACH,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,EAAE,IAAI,EAAE,IAAI,WAAW;QACjE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI;KAC9D,CAAA;AACH,CAAC;AAED,SAAS,yBAAyB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAoF;IACxJ,OAAO,cAAc,CAAC;QACpB,IAAI,EAAE,qBAAqB,OAAO,CAAC,GAAG,EAAE;QACxC,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,uBAAuB;QAC1C,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,UAAU,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE;QAC5E,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE;QAChC,KAAK;QACL,SAAS;QACT,MAAM;KACP,CAAC,CAAA;AACJ,CAAC;AAED,cAAc;AAEd,MAAM,UAAU,iBAAiB,CAAC,MAA2B;IAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,CAAA;AACzG,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,SAAiB;IAC9C,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC,KAAK,CACtH,GAAG,EAAE,CAAC,IAAI,CACX,CAAA;IACD,OAAO,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAA;AAClE,CAAC;AAID,8FAA8F;AAC9F,+GAA+G;AAC/G,yFAAyF;AACzF,MAAM,UAAU,kBAAkB,CAAC,MAA2F;IAC5H,MAAM,UAAU,GAAG;QACjB,EAAE,QAAQ,EAAE,QAAiB,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE;QAC/D,EAAE,QAAQ,EAAE,QAAiB,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE;QACtE,EAAE,QAAQ,EAAE,QAAiB,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE;QAC/D,EAAE,QAAQ,EAAE,QAAiB,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE;KACvE,CAAA;IACD,OAAO,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AAC7F,CAAC;AAQD,wGAAwG;AACxG,qEAAqE;AACrE,4FAA4F;AAC5F,KAAK,UAAU,YAAY,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,cAAc,EAA2D;IAChH,MAAM,OAAO,GAAG,mBAAmB,EAAE,CAAA;IACrC,IAAI,OAAO;QAAE,OAAO,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,CAAA;IACxD,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC1C,EAAE,CAAC,KAAK,CAAC,UAAU;aAChB,SAAS,CAAC,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC;aACzD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,EAAE,SAAS,EAAE,yBAAyB,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QAChF,iBAAiB,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;KAC9C,CAAC,CAAA;IACF,IAAI,GAAG,YAAY,KAAK;QAAE,OAAO,GAAG,CAAA;IACpC,IAAI,UAAU,YAAY,KAAK;QAAE,MAAM,CAAC,IAAI,CAAC,iCAAiC,EAAE,UAAU,CAAC,CAAA;IAC3F,MAAM,IAAI,GAAG,kBAAkB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;IAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAA;IAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAA;IAC5D,MAAM,WAAW,GAAG,GAAG,CAAC,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IACxD,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC,GAAG,WAAW,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IACpG,OAAO;QACL,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAiB,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACvE,GAAG,CAAC,UAAU,IAAI,CAAC,CAAC,UAAU,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAkB,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACnG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAiB,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACvE,GAAG,CAAC,QAAQ,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAkB,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5F,CAAA;AACH,CAAC;AAED,qFAAqF;AACrF,iEAAiE;AACjE,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,EAC/B,EAAE,EACF,KAAK,EACL,cAAc,EACd,QAAQ,GAAG,EAAE,EACb,KAAK,EACL,SAAS,EACT,SAAS,EACT,MAAM,EACN,SAAS,GAcV;IACC,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAA;IAC9D,IAAI,IAAI,YAAY,KAAK;QAAE,OAAO,IAAI,CAAA;IACtC,MAAM,IAAI,GAAG,sBAAsB,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC,CAAA;IACjG,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC;QACrF,CAAC,CAAC,mBAAmB,CAAC,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;QAC7E,CAAC,CAAC,EAAE,CAAA;IACN,MAAM,SAAS,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAA;IAC9C,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IAC7C,MAAM,GAAG,GAAG,CAAC,KAAkB,EAAE,EAAE;QACjC,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;YAAE,OAAO,oBAAoB,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;QACjG,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe;YAAE,OAAO,WAAW,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,yBAAyB,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAA;QAClK,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC7B,OAAO,WAAW,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,IAAI,gBAAgB,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAA;QAChL,CAAC;QACD,MAAM,OAAO,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,CAAA;QAChF,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,WAAW,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,MAAM,IAAI,eAAe,EAAE,CAAC,EAAE,CAAC,CAAA;QACtJ,OAAO,WAAW,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,MAAM,IAAI,eAAe,EAAE,CAAC,EAAE,CAAC,CAAA;IAC3H,CAAC,CAAA;IACD,IAAI,IAAI,GAAmD,IAAI,uBAAuB,EAAE,CAAA;IACxF,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE,CAAC;QACzB,IAAI,MAAM,CAAC,OAAO;YAAE,OAAO,IAAI,kBAAkB,CAAC,EAAE,MAAM,EAAE,oBAAoB,SAAS,GAAG,MAAM,UAAU,EAAE,CAAC,CAAA;QAC/G,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,CAAA;QAC/B,IAAI,CAAC,CAAC,MAAM,YAAY,KAAK,CAAC,IAAI,MAAM,YAAY,uBAAuB;YAAE,OAAO,MAAM,CAAA;QAC1F,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,wBAAwB,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,4BAA4B,EAAE,EAAE,MAAM,CAAC,CAAA;QACrH,IAAI,GAAG,MAAM,CAAA;IACf,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,oCAAoC;AACpC,EAAE;AACF,2CAA2C;AAC3C,qGAAqG;AACrG,0EAA0E;AAC1E,8DAA8D;AAC9D,8DAA8D;AAE9D,MAAM,OAAO,WAAY,SAAQ,MAAM,CAAC,iBAAiB,CAAC;IACxD,IAAI,EAAE,aAAa;IACnB,OAAO,EAAE,mCAAmC;CAC7C,CAAC;CAAG;AAIL,MAAM,cAAc,GAAmC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAA;AAC1F,MAAM,gBAAgB,GAAG,iBAAiB,CAAA;AAC1C,MAAM,gBAAgB,GAAG,8BAA8B,CAAA;AAEvD,KAAK,UAAU,UAAU,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAkE;IAC9G,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,GAAG,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC;SACrH,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,WAAW,CAAC,EAAE,MAAM,EAAE,cAAc,GAAG,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;IACnF,IAAI,QAAQ,YAAY,KAAK;QAAE,OAAO,QAAQ,CAAA;IAC9C,IAAI,QAAQ,CAAC,EAAE;QAAE,OAAO,QAAQ,CAAA;IAChC,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAA;IAClD,OAAO,IAAI,WAAW,CAAC,EAAE,MAAM,EAAE,QAAQ,QAAQ,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAA;AACtF,CAAC;AAED,sEAAsE;AACtE,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,EACnC,IAAI,EACJ,MAAM,EACN,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EACzD,KAAK,EACL,YAAY,EACZ,KAAK,EACL,QAAQ,GAAG,EAAE,GAYd;IACC,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC;YAChC,GAAG,EAAE,GAAG,QAAQ,CAAC,MAAM,IAAI,eAAe,eAAe;YACzD,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,MAAM,EAAE,EAAE;YAC9C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,IAAI,cAAc,CAAC,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,GAAG,CAAC,YAAY,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;SAC9L,CAAC,CAAA;QACF,IAAI,QAAQ,YAAY,KAAK;YAAE,OAAO,QAAQ,CAAA;QAC9C,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,WAAW,CAAC,EAAE,MAAM,EAAE,6BAA6B,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;QAC9J,IAAI,KAAK,YAAY,KAAK;YAAE,OAAO,KAAK,CAAA;QACxC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,WAAW,CAAC,EAAE,MAAM,EAAE,6BAA6B,EAAE,CAAC,CAAA;QACzF,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,CAAA;IAC1C,CAAC;IACD,kEAAkE;IAClE,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC;QAChC,GAAG,EAAE,GAAG,QAAQ,CAAC,MAAM,IAAI,eAAe,WAAW,gBAAgB,kBAAkB;QACvF,OAAO,EAAE,EAAE,gBAAgB,EAAE,MAAM,EAAE;QACrC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YAC/C,gBAAgB,EAAE,EAAE,kBAAkB,EAAE,CAAC,OAAO,CAAC,EAAE,YAAY,EAAE,EAAE,WAAW,EAAE,EAAE,mBAAmB,EAAE,EAAE,SAAS,EAAE,KAAK,IAAI,cAAc,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;SAC3J,CAAC;KACH,CAAC,CAAA;IACF,IAAI,QAAQ,YAAY,KAAK;QAAE,OAAO,QAAQ,CAAA;IAC9C,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,WAAW,CAAC,EAAE,MAAM,EAAE,gCAAgC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;IACxH,IAAI,GAAG,YAAY,KAAK;QAAE,OAAO,GAAG,CAAA;IACpC,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,CAAA;IACnC,IAAI,MAAM,YAAY,KAAK;QAAE,OAAO,IAAI,WAAW,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;IAC9F,MAAM,SAAS,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAClG,MAAM,OAAO,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAC5E,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAC1I,MAAM,IAAI,GAAG,OAAO,MAAM,EAAE,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAChG,IAAI,CAAC,IAAI,EAAE,MAAM;QAAE,OAAO,IAAI,WAAW,CAAC,EAAE,MAAM,EAAE,6BAA6B,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAA;IACvG,MAAM,SAAS,GAAG,CAAC,OAAO,MAAM,EAAE,CAAC,UAAU,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAA;IAC7G,oEAAoE;IACpE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAA;IAC/G,MAAM,UAAU,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAA;IACtE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAA;AAClI,CAAC;AAED,6EAA6E;AAC7E,uEAAuE;AAEvE,MAAM,CAAC,MAAM,uBAAuB,GAAG,yBAAyB,CAAA;AAEhE,2DAA2D;AAC3D,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAqE;IAClI,MAAM,MAAM,GAAG,EAAE,GAAG,CAAC,MAAM,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,EAAE,CAAA;IACvG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,WAAW,CAAC,EAAE,MAAM,EAAE,uCAAuC,EAAE,CAAC,CAAA;IACjH,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,EAAE,SAAS,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;IAC5I,IAAI,GAAG,YAAY,KAAK;QAAE,OAAO,GAAG,CAAA;IACpC,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,WAAW,CAAC,EAAE,MAAM,EAAE,yDAAyD,EAAE,CAAC,CAAA;IACvG,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;SACzF,kBAAkB,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;SACvE,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;SACrB,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,EAAE,SAAS,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;IAC5E,IAAI,KAAK,YAAY,KAAK;QAAE,OAAO,KAAK,CAAA;AAC1C,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,MAAM,KAAK,GAAG,IAAI,gBAAgB,EAAE;SACjC,WAAW,CAAC,QAAQ,CAAC;SACrB,QAAQ,CAAC,0BAA0B,CAAC;SACpC,cAAc,CAAC,mBAAmB,CAAC;SACnC,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC;SAC9B,WAAW,CAAC,IAAI,CAAC,CAAA;IACpB,OAAO,IAAI,YAAY,EAAE;SACtB,WAAW,CAAC,uBAAuB,CAAC;SACpC,QAAQ,CAAC,eAAe,CAAC;SACzB,aAAa,CAAC,IAAI,gBAAgB,EAAoB,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAA;AACjF,CAAC;AAED,sFAAsF;AACtF,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,EAAE,WAAW,EAAE,EAAE,EAAyD;IAC1H,MAAM,WAAW,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,SAAS,EAAE,CAAC,CAAA;IAC/D,MAAM,GAAG,GAAG,WAAW,CAAC,MAAM,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAA;IACjE,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,WAAW,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC,CAAA;QAChE,OAAM;IACR,CAAC;IACD,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAA;IAC5D,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC,CAAA;IAC3F,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAA;QACpC,MAAM,WAAW,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;QACvD,OAAM;IACR,CAAC;IACD,MAAM,WAAW,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,4EAA4E,EAAE,CAAC,CAAA;AAC3K,CAAC"}