wind-agent-cli 1.37.3 → 1.38.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 (266) hide show
  1. package/README.md +16 -1
  2. package/dist/api-docs.html +2 -2
  3. package/dist/assets/{CodeEditor-BqmxpZ_D.js → CodeEditor-FvgsnJ7J.js} +6 -6
  4. package/dist/assets/FileTree-NLULrBDi.js +1 -0
  5. package/dist/assets/GitPanel-51KUBbEW.js +4 -0
  6. package/dist/assets/{MarkdownPreview-93h_1tJa.js → MarkdownPreview-PEEWVWeS.js} +17 -27
  7. package/dist/assets/Shell-BEx66cW_.js +76 -0
  8. package/dist/assets/Shell-DrlLKa8f.css +1 -0
  9. package/dist/assets/StandaloneShell-BkuUCPZP.js +1 -0
  10. package/dist/assets/TaskMasterPanel-DfQG80SF.js +2 -0
  11. package/dist/assets/abnfDiagram-N423BO3Z-Cc0ul87U.js +1 -0
  12. package/dist/assets/arc-BAuugHw_.js +1 -0
  13. package/dist/assets/architectureDiagram-T3A2C74G-DA3G7QZD.js +36 -0
  14. package/dist/assets/{blockDiagram-VBNYF7ZC-oSjQ1SgE.js → blockDiagram-VBNYF7ZC-tJ12IJs3.js} +4 -4
  15. package/dist/assets/c4Diagram-5PPSVZJV-5BTMCXL4.js +10 -0
  16. package/dist/assets/channel-BGDgNNQz.js +1 -0
  17. package/dist/assets/{chunk-2GRJ4B5K-B07uZ07O.js → chunk-2GRJ4B5K-BPaI06Ou.js} +1 -1
  18. package/dist/assets/{chunk-2Q5K7J3B-DNSfO7xS.js → chunk-2Q5K7J3B-HV4zmsEe.js} +1 -1
  19. package/dist/assets/chunk-5RXB4S5H-BAwutJoU.js +231 -0
  20. package/dist/assets/{chunk-5VM5RSS4-B7vZV0zC.js → chunk-5VM5RSS4-B9QAJPrv.js} +1 -1
  21. package/dist/assets/{chunk-6Q2QTUOP-DuS_xUGG.js → chunk-6Q2QTUOP-BOIW8bzI.js} +1 -1
  22. package/dist/assets/chunk-GF5L2VYU-DD13o00-.js +206 -0
  23. package/dist/assets/{chunk-JWPE2WC7-DD2hcXvs.js → chunk-JWPE2WC7-CFBm23VK.js} +1 -1
  24. package/dist/assets/{chunk-KBJHAD2P-Cz-l38qp.js → chunk-KBJHAD2P-C0i0v8Op.js} +1 -1
  25. package/dist/assets/{chunk-RYQCIY6F-DGFIU1YM.js → chunk-RYQCIY6F-DfeK0taV.js} +1 -1
  26. package/dist/assets/{chunk-XXDRQBXY-CmfzoYFl.js → chunk-XXDRQBXY-BKWvf-QE.js} +1 -1
  27. package/dist/assets/classDiagram-JCYQIIEL-C2SNM4oy.js +1 -0
  28. package/dist/assets/classDiagram-v2-OCEON4UE-C2SNM4oy.js +1 -0
  29. package/dist/assets/cose-bilkent-JH36ORCC-CBE8oM7L.js +1 -0
  30. package/dist/assets/{cynefin-VYW2F7L2-P1HecReO.js → cynefin-VYW2F7L2-DziGp35A.js} +11 -23
  31. package/dist/assets/cynefinDiagram-MW4NZA55-CNvtHl39.js +62 -0
  32. package/dist/assets/cytoscape.esm-yzknjiTM.js +321 -0
  33. package/dist/assets/dagre-VZM6K2ZE-Bz9lsU7m.js +4 -0
  34. package/dist/assets/{diagram-7IWD3JNH-9CWGFMYR.js → diagram-7IWD3JNH-CV7D3VSd.js} +5 -5
  35. package/dist/assets/{diagram-B4RE2ZJO-TWK59T6V.js → diagram-B4RE2ZJO-Dj4EjDNC.js} +2 -2
  36. package/dist/assets/diagram-LBJQPF4R-wJ6FHvf-.js +24 -0
  37. package/dist/assets/diagram-Q27KOJAE-DMFYMhOB.js +24 -0
  38. package/dist/assets/diagram-UB23O5K3-DeBSbWAI.js +41 -0
  39. package/dist/assets/ebnfDiagram-BXEA7PRR-2NnJSGhT.js +1 -0
  40. package/dist/assets/erDiagram-JOGREHBK-DrSlg8hr.js +85 -0
  41. package/dist/assets/feature-chat-CvOCyaLe.js +88 -0
  42. package/dist/assets/feature-workspace-CAB6bgPy.js +39 -0
  43. package/dist/assets/{flowDiagram-UKHOOZJN-DEr2II5V.js → flowDiagram-UKHOOZJN-C0pejU6W.js} +4 -4
  44. package/dist/assets/ganttDiagram-PKOTCBZU-BM0VCUUz.js +292 -0
  45. package/dist/assets/gitGraphDiagram-DS77QQ5N-SbLG0c5_.js +106 -0
  46. package/dist/assets/graph-DOmOIIwC.js +1 -0
  47. package/dist/assets/{index-BSe3UiFA.js → index-BflGfU1C.js} +3 -3
  48. package/dist/assets/index-Btkf0_rU.js +1 -0
  49. package/dist/assets/index-Cr5MbHuj.css +1 -0
  50. package/dist/assets/index-Gqazqfs3.js +1 -0
  51. package/dist/assets/index-nyrkoQK6.js +35 -0
  52. package/dist/assets/infoDiagram-6WML65LV-Cf5DSa66.js +2 -0
  53. package/dist/assets/ishikawaDiagram-WSZJBQD7-DwyFutKy.js +70 -0
  54. package/dist/assets/journeyDiagram-NVQOT4AX-Df0FRhLo.js +139 -0
  55. package/dist/assets/{kanban-definition-27J2QSJJ-DmlgiV7K.js → kanban-definition-27J2QSJJ-HmpbjrZz.js} +6 -6
  56. package/dist/assets/{layout-D6BstSzF.js → layout-D-LzfAck.js} +1 -1
  57. package/dist/assets/{linear-Ct_eoJQk.js → linear-DOM01LBe.js} +1 -1
  58. package/dist/assets/map-DxJ2ADlA.js +1 -0
  59. package/dist/assets/mermaid.core-C2Ma-_S6.js +306 -0
  60. package/dist/assets/{mindmap-definition-FAOFIHXS-DGtMgQhf.js → mindmap-definition-FAOFIHXS-B4GOIn76.js} +4 -4
  61. package/dist/assets/pegDiagram-VL7TDLO6-BHur7aH2.js +1 -0
  62. package/dist/assets/{pieDiagram-7S7Q4E2Y-DMkt_Zfr.js → pieDiagram-7S7Q4E2Y-Cw0UELLV.js} +2 -2
  63. package/dist/assets/quadrantDiagram-CIZ2JOQS-CB2BrX3g.js +7 -0
  64. package/dist/assets/railroadDiagram-AXF67PYL-DPYZYmLX.js +1 -0
  65. package/dist/assets/requirementDiagram-LRYGKXZP-DSX4IJ1n.js +84 -0
  66. package/dist/assets/sankeyDiagram-W5VNT64P-TenC3ZQo.js +40 -0
  67. package/dist/assets/sequenceDiagram-SI44F4Z6-DltGsf3F.js +162 -0
  68. package/dist/assets/sizeCapture-X5ZJPWSS-D7llwbJZ.js +1 -0
  69. package/dist/assets/stateDiagram-OKZ733FA-C-hAvbnY.js +1 -0
  70. package/dist/assets/stateDiagram-v2-UEYNNEHI-DaYSFcRQ.js +1 -0
  71. package/dist/assets/swimlanes-SLNWSIFB-DWD30fv6.js +2 -0
  72. package/dist/assets/swimlanesDiagram-ULZ7WXOC-LTkF2T6t.js +8 -0
  73. package/dist/assets/timeline-definition-Z64GVDOM-quWmimSE.js +120 -0
  74. package/dist/assets/vendor-data-DsEZeNPr.js +4 -0
  75. package/dist/assets/vendor-i18n-B6HjLCnN.js +1 -0
  76. package/dist/assets/vendor-markdown-DkITEES2.js +298 -0
  77. package/dist/assets/vendor-react-C2GTiUCy.js +10 -0
  78. package/dist/assets/vendor-ui-CAUHSABu.js +49 -0
  79. package/dist/assets/vennDiagram-T6HMQDX7-aUQcm8h5.js +34 -0
  80. package/dist/assets/{wardleyDiagram-T6FBY63Y-Db9dsaXv.js → wardleyDiagram-T6FBY63Y-BZ0bwsFQ.js} +2 -2
  81. package/dist/assets/workbox-window.prod.es5-BBnX5xw4.js +2 -0
  82. package/dist/assets/xychartDiagram-ELKLHX3M-DOVzAq63.js +7 -0
  83. package/dist/favicon.png +0 -0
  84. package/dist/icons/icon-128x128.png +0 -0
  85. package/dist/icons/icon-144x144.png +0 -0
  86. package/dist/icons/icon-152x152.png +0 -0
  87. package/dist/icons/icon-180x180.png +0 -0
  88. package/dist/icons/icon-192x192.png +0 -0
  89. package/dist/icons/icon-384x384.png +0 -0
  90. package/dist/icons/icon-512x512.png +0 -0
  91. package/dist/icons/icon-72x72.png +0 -0
  92. package/dist/icons/icon-96x96.png +0 -0
  93. package/dist/icons/icon-maskable-192x192.png +0 -0
  94. package/dist/icons/icon-maskable-512x512.png +0 -0
  95. package/dist/icons/new-icon.png +0 -0
  96. package/dist/index.html +17 -27
  97. package/dist/logo-128.png +0 -0
  98. package/dist/logo-256.png +0 -0
  99. package/dist/manifest.webmanifest +1 -0
  100. package/dist/push-sw.js +48 -0
  101. package/dist/screenshots/setup-screen-mobile.png +0 -0
  102. package/dist/screenshots/setup-screen.png +0 -0
  103. package/dist/sw.js +1 -124
  104. package/dist/workbox-ae5c0bb2.js +1 -0
  105. package/dist-server/server/index.js +1 -1
  106. package/dist-server/server/index.js.map +1 -1
  107. package/dist-server/server/load-env.js +4 -2
  108. package/dist-server/server/load-env.js.map +1 -1
  109. package/dist-server/server/modules/agent/agent.routes.js +1 -1
  110. package/dist-server/server/modules/agent/agent.routes.js.map +1 -1
  111. package/dist-server/server/modules/browser-use/browser-use.service.js +1 -1
  112. package/dist-server/server/modules/browser-use/browser-use.service.js.map +1 -1
  113. package/dist-server/server/modules/cli/cli.service.js +5 -5
  114. package/dist-server/server/modules/cli/cli.service.js.map +1 -1
  115. package/dist-server/server/modules/cli/sandbox.service.js +7 -7
  116. package/dist-server/server/modules/cli/sandbox.service.js.map +1 -1
  117. package/dist-server/server/modules/commands/commands.routes.js +1 -1
  118. package/dist-server/server/modules/commands/commands.routes.js.map +1 -1
  119. package/dist-server/server/modules/commands/tests/commands.test.js +1 -1
  120. package/dist-server/server/modules/commands/tests/commands.test.js.map +1 -1
  121. package/dist-server/server/modules/database/connection.js +1 -1
  122. package/dist-server/server/modules/database/connection.js.map +1 -1
  123. package/dist-server/server/modules/database/repositories/sessions.db.js +1 -1
  124. package/dist-server/server/modules/database/tests/projects.db.integration.test.js +3 -2
  125. package/dist-server/server/modules/database/tests/projects.db.integration.test.js.map +1 -1
  126. package/dist-server/server/modules/database/tests/sessions-provider-mapping.test.js +4 -3
  127. package/dist-server/server/modules/database/tests/sessions-provider-mapping.test.js.map +1 -1
  128. package/dist-server/server/modules/database/tests/sessions.db.integration.test.js +2 -1
  129. package/dist-server/server/modules/database/tests/sessions.db.integration.test.js.map +1 -1
  130. package/dist-server/server/modules/notifications/services/notification-orchestrator.service.js +1 -1
  131. package/dist-server/server/modules/notifications/services/notification-orchestrator.service.js.map +1 -1
  132. package/dist-server/server/modules/notifications/vapid-keys.service.js +1 -1
  133. package/dist-server/server/modules/notifications/vapid-keys.service.js.map +1 -1
  134. package/dist-server/server/modules/projects/tests/project-management.service.test.js +2 -1
  135. package/dist-server/server/modules/projects/tests/project-management.service.test.js.map +1 -1
  136. package/dist-server/server/modules/providers/list/codex/codex-app-server.client.js +2 -2
  137. package/dist-server/server/modules/providers/list/codex/codex-app-server.client.js.map +1 -1
  138. package/dist-server/server/modules/providers/list/codex/codex-models.provider.js +1 -1
  139. package/dist-server/server/modules/providers/list/codex/codex-models.provider.js.map +1 -1
  140. package/dist-server/server/modules/providers/list/cursor/cursor-models.provider.js +1 -1
  141. package/dist-server/server/modules/providers/list/cursor/cursor-models.provider.js.map +1 -1
  142. package/dist-server/server/modules/providers/list/cursor/cursor-session-synchronizer.provider.js.map +1 -1
  143. package/dist-server/server/modules/providers/list/opencode/opencode-models.provider.js +1 -1
  144. package/dist-server/server/modules/providers/services/sessions.service.js +1 -1
  145. package/dist-server/server/modules/providers/tests/claude-auth.test.js +8 -0
  146. package/dist-server/server/modules/providers/tests/claude-auth.test.js.map +1 -1
  147. package/dist-server/server/modules/providers/tests/codex-sessions.test.js +1 -1
  148. package/dist-server/server/modules/providers/tests/codex-sessions.test.js.map +1 -1
  149. package/dist-server/server/modules/providers/tests/opencode-sessions.test.js +2 -2
  150. package/dist-server/server/modules/providers/tests/opencode-sessions.test.js.map +1 -1
  151. package/dist-server/server/modules/providers/tests/provider.routes.test.js +1 -1
  152. package/dist-server/server/modules/providers/tests/provider.routes.test.js.map +1 -1
  153. package/dist-server/server/modules/system/system.service.js +1 -1
  154. package/dist-server/server/modules/system/system.service.js.map +1 -1
  155. package/dist-server/server/modules/system/tests/system.service.test.js +1 -1
  156. package/dist-server/server/modules/system/tests/system.service.test.js.map +1 -1
  157. package/dist-server/server/modules/taskmaster/taskmaster.routes.js +4 -3
  158. package/dist-server/server/modules/taskmaster/taskmaster.routes.js.map +1 -1
  159. package/dist-server/server/modules/websocket/services/shell-websocket.service.js +1 -1
  160. package/dist-server/server/modules/websocket/services/shell-websocket.service.js.map +1 -1
  161. package/dist-server/server/modules/worktrees/services/worktree-list.service.js +1 -1
  162. package/dist-server/server/modules/worktrees/services/worktree-open.service.js +1 -1
  163. package/dist-server/server/modules/worktrees/services/worktree-remove.service.js +1 -1
  164. package/electron/cloud.js +3 -3
  165. package/electron/desktopNotifications.js +1 -1
  166. package/electron/desktopWindow.js +12 -12
  167. package/electron/launcher/index.html +1 -1
  168. package/electron/launcher/launcher.js +14 -14
  169. package/electron/localServer.js +5 -5
  170. package/electron/main.js +19 -19
  171. package/electron/serverInstaller.js +2 -2
  172. package/electron/viewHost.js +1 -1
  173. package/package.json +49 -37
  174. package/public/api-docs.html +2 -2
  175. package/scripts/build-client.mjs +30 -0
  176. package/scripts/generate-pwa-icons.ps1 +33 -0
  177. package/scripts/verify-pwa-build.mjs +37 -0
  178. package/server/index.ts +1 -1
  179. package/server/load-env.ts +4 -2
  180. package/server/modules/agent/agent.routes.ts +1 -1
  181. package/server/modules/browser-use/browser-use.service.ts +1 -1
  182. package/server/modules/cli/cli.service.ts +5 -5
  183. package/server/modules/cli/sandbox.service.ts +7 -7
  184. package/server/modules/commands/commands.routes.ts +1 -1
  185. package/server/modules/commands/tests/commands.test.ts +1 -1
  186. package/server/modules/database/connection.ts +2 -1
  187. package/server/modules/database/repositories/sessions.db.ts +1 -1
  188. package/server/modules/database/tests/projects.db.integration.test.ts +3 -2
  189. package/server/modules/database/tests/sessions-provider-mapping.test.ts +4 -3
  190. package/server/modules/database/tests/sessions.db.integration.test.ts +2 -1
  191. package/server/modules/notifications/services/notification-orchestrator.service.js +1 -1
  192. package/server/modules/notifications/vapid-keys.service.ts +1 -1
  193. package/server/modules/projects/tests/project-management.service.test.ts +2 -1
  194. package/server/modules/providers/list/codex/codex-app-server.client.ts +2 -2
  195. package/server/modules/providers/list/codex/codex-models.provider.ts +1 -1
  196. package/server/modules/providers/list/cursor/cursor-models.provider.ts +1 -1
  197. package/server/modules/providers/list/cursor/cursor-session-synchronizer.provider.ts +0 -1
  198. package/server/modules/providers/list/opencode/opencode-models.provider.ts +1 -1
  199. package/server/modules/providers/services/sessions.service.ts +1 -1
  200. package/server/modules/providers/tests/claude-auth.test.ts +7 -0
  201. package/server/modules/providers/tests/codex-sessions.test.ts +1 -1
  202. package/server/modules/providers/tests/opencode-sessions.test.ts +2 -2
  203. package/server/modules/providers/tests/provider.routes.test.ts +1 -1
  204. package/server/modules/system/system.service.ts +1 -1
  205. package/server/modules/system/tests/system.service.test.ts +1 -1
  206. package/server/modules/taskmaster/taskmaster.routes.ts +4 -3
  207. package/server/modules/websocket/services/shell-websocket.service.ts +1 -1
  208. package/server/modules/worktrees/services/worktree-list.service.ts +1 -1
  209. package/server/modules/worktrees/services/worktree-open.service.ts +1 -1
  210. package/server/modules/worktrees/services/worktree-remove.service.ts +1 -1
  211. package/server/shared/interfaces.ts +1 -1
  212. package/server/shared/types.ts +6 -6
  213. package/dist/assets/FileTree-DLE7Ioai.js +0 -127
  214. package/dist/assets/GitPanel-f8RMRa8D.js +0 -29
  215. package/dist/assets/PluginTabContent-DU1jjkXP.js +0 -1
  216. package/dist/assets/Shell-CN_2MRIM.js +0 -81
  217. package/dist/assets/Shell-qxJ8_QYu.css +0 -32
  218. package/dist/assets/StandaloneShell-D0avS8UE.js +0 -1
  219. package/dist/assets/TaskMasterPanel-Cpf1Q5Ph.js +0 -32
  220. package/dist/assets/abnfDiagram-N423BO3Z-p3aJIm4T.js +0 -1
  221. package/dist/assets/arc-CTeud6Fl.js +0 -1
  222. package/dist/assets/architectureDiagram-T3A2C74G-CG7kRCJU.js +0 -36
  223. package/dist/assets/c4Diagram-5PPSVZJV-RkzF0DJV.js +0 -10
  224. package/dist/assets/channel-BfQbarn9.js +0 -1
  225. package/dist/assets/chunk-5RXB4S5H-BTeYcgyb.js +0 -231
  226. package/dist/assets/chunk-GF5L2VYU-CKLZ3iVD.js +0 -206
  227. package/dist/assets/classDiagram-JCYQIIEL-Bpfe3kq7.js +0 -1
  228. package/dist/assets/classDiagram-v2-OCEON4UE-Bpfe3kq7.js +0 -1
  229. package/dist/assets/code-xml-CLpHzEOP.js +0 -6
  230. package/dist/assets/cose-bilkent-JH36ORCC-DlFcLXCB.js +0 -1
  231. package/dist/assets/cynefinDiagram-MW4NZA55-COgduz5P.js +0 -62
  232. package/dist/assets/cytoscape.esm-C10L9Icf.js +0 -331
  233. package/dist/assets/dagre-VZM6K2ZE-Bbb-siGp.js +0 -4
  234. package/dist/assets/diagram-LBJQPF4R-ErMC9yaa.js +0 -24
  235. package/dist/assets/diagram-Q27KOJAE-Dt_-C7hV.js +0 -24
  236. package/dist/assets/diagram-UB23O5K3-BJ1DnRAF.js +0 -41
  237. package/dist/assets/ebnfDiagram-BXEA7PRR-CE1YaQ9s.js +0 -1
  238. package/dist/assets/erDiagram-JOGREHBK-Bqk7N9aY.js +0 -85
  239. package/dist/assets/ganttDiagram-PKOTCBZU-CWYAUeYN.js +0 -292
  240. package/dist/assets/gitGraphDiagram-DS77QQ5N-tdEcEIM6.js +0 -106
  241. package/dist/assets/graph-Cx-EqisW.js +0 -1
  242. package/dist/assets/index-B-sTfSZq.js +0 -1
  243. package/dist/assets/index-B_FDMWar.js +0 -1174
  244. package/dist/assets/index-CWJtg2pR.js +0 -11
  245. package/dist/assets/index-t1w8KNxn.css +0 -1
  246. package/dist/assets/infoDiagram-6WML65LV-A3IqRUnO.js +0 -2
  247. package/dist/assets/ishikawaDiagram-WSZJBQD7-B2uL6bkK.js +0 -70
  248. package/dist/assets/journeyDiagram-NVQOT4AX-D9JB-hRW.js +0 -139
  249. package/dist/assets/map-CV9uif0g.js +0 -1
  250. package/dist/assets/mermaid.core-CQ698HNn.js +0 -312
  251. package/dist/assets/pegDiagram-VL7TDLO6-CO6vP4n9.js +0 -1
  252. package/dist/assets/quadrantDiagram-CIZ2JOQS-DgNxRz6t.js +0 -7
  253. package/dist/assets/railroadDiagram-AXF67PYL-DKz9UqA9.js +0 -1
  254. package/dist/assets/requirementDiagram-LRYGKXZP-L84XyGgV.js +0 -84
  255. package/dist/assets/sankeyDiagram-W5VNT64P-CQqWbJ3j.js +0 -40
  256. package/dist/assets/sequenceDiagram-SI44F4Z6--tnzS2tb.js +0 -162
  257. package/dist/assets/sizeCapture-X5ZJPWSS-DujwEOtm.js +0 -1
  258. package/dist/assets/stateDiagram-OKZ733FA-BK3TcZY2.js +0 -1
  259. package/dist/assets/stateDiagram-v2-UEYNNEHI-_medyomK.js +0 -1
  260. package/dist/assets/swimlanes-SLNWSIFB-naX-Uv1B.js +0 -2
  261. package/dist/assets/swimlanesDiagram-ULZ7WXOC-DstIv3TC.js +0 -8
  262. package/dist/assets/timeline-definition-Z64GVDOM-C-vP_ddU.js +0 -120
  263. package/dist/assets/vendor-react-whEHfigN.js +0 -59
  264. package/dist/assets/vennDiagram-T6HMQDX7-DN-I7o-7.js +0 -34
  265. package/dist/assets/xychartDiagram-ELKLHX3M-DE6OxW_p.js +0 -7
  266. package/dist/manifest.json +0 -61
@@ -1,10 +1,10 @@
1
- import{h as He,j as h,Q as kn,U as Pn,m as Je,S as $n,D as qn,k as jn,X as Wn,V as Rn,b as Xn,q as zn,W as _n,u as Cn}from"./index-B_FDMWar.js";import{T as zt,P as _t,S as he,E as U,F as Se,V as ye,c as Ge,g as En,D,d as Te,G as Le,W as Ne,l as Ct,h as Ce,C as Un,e as Vn,f as Et,L as Ut,s as Vt,t as x,i as Gt,j as Lt,k as Nt,n as Mt,p as Ke,q as Zt,r as be,u as Gn,v as Ln,w as $e,x as Nn,N as Mn,I as Zn,y as An,z as G,A as Dn,B as te,H as In,J as Bn,K as Yn,O as et,Q as Fn,U as Hn,X as Jn,Y as Kn,m as er,Z as tr,_ as nr,$ as rr,a0 as ir,a as or,b as ar,M as sr,R as Or,o as lr}from"./MarkdownPreview-93h_1tJa.js";import{r as S}from"./vendor-react-whEHfigN.js";import{C as dr}from"./code-xml-CLpHzEOP.js";class q{constructor(t,n,i,o){this.fromA=t,this.toA=n,this.fromB=i,this.toB=o}offset(t,n=t){return new q(this.fromA+t,this.toA+t,this.fromB+n,this.toB+n)}}function J(e,t,n,i,o,r){if(e==i)return[];let s=Ze(e,t,n,i,o,r),a=Ae(e,t+s,n,i,o+s,r);t+=s,n-=a,o+=s,r-=a;let d=n-t,c=r-o;if(!d||!c)return[new q(t,n,o,r)];if(d>c){let O=e.slice(t,n).indexOf(i.slice(o,r));if(O>-1)return[new q(t,t+O,o,o),new q(t+O+c,n,r,r)]}else if(c>d){let O=i.slice(o,r).indexOf(e.slice(t,n));if(O>-1)return[new q(t,t,o,o+O),new q(n,n,o+O+d,r)]}if(d==1||c==1)return[new q(t,n,o,r)];let l=It(e,t,n,i,o,r);if(l){let[O,f,m]=l;return J(e,t,O,i,o,f).concat(J(e,O+m,n,i,f+m,r))}return cr(e,t,n,i,o,r)}let se=1e9,Oe=0,Me=!1;function cr(e,t,n,i,o,r){let s=n-t,a=r-o;if(se<1e9&&Math.min(s,a)>se*16||Oe>0&&Date.now()>Oe)return Math.min(s,a)>se*64?[new q(t,n,o,r)]:tt(e,t,n,i,o,r);let d=Math.ceil((s+a)/2);qe.reset(d),je.reset(d);let c=(m,u)=>e.charCodeAt(t+m)==i.charCodeAt(o+u),l=(m,u)=>e.charCodeAt(n-m-1)==i.charCodeAt(r-u-1),O=(s-a)%2!=0?je:null,f=O?null:qe;for(let m=0;m<d;m++){if(m>se||Oe>0&&!(m&63)&&Date.now()>Oe)return tt(e,t,n,i,o,r);let u=qe.advance(m,s,a,d,O,!1,c)||je.advance(m,s,a,d,f,!0,l);if(u)return hr(e,t,n,t+u[0],i,o,r,o+u[1])}return[new q(t,n,o,r)]}class At{constructor(){this.vec=[]}reset(t){this.len=t<<1;for(let n=0;n<this.len;n++)this.vec[n]=-1;this.vec[t+1]=0,this.start=this.end=0}advance(t,n,i,o,r,s,a){for(let d=-t+this.start;d<=t-this.end;d+=2){let c=o+d,l=d==-t||d!=t&&this.vec[c-1]<this.vec[c+1]?this.vec[c+1]:this.vec[c-1]+1,O=l-d;for(;l<n&&O<i&&a(l,O);)l++,O++;if(this.vec[c]=l,l>n)this.end+=2;else if(O>i)this.start+=2;else if(r){let f=o+(n-i)-d;if(f>=0&&f<this.len&&r.vec[f]!=-1)if(s){let m=r.vec[f];if(m>=n-l)return[m,o+m-f]}else{let m=n-r.vec[f];if(l>=m)return[l,O]}}}return null}}const qe=new At,je=new At;function hr(e,t,n,i,o,r,s,a){let d=!1;return!ne(e,i)&&++i==n&&(d=!0),!ne(o,a)&&++a==s&&(d=!0),d?[new q(t,n,r,s)]:J(e,t,i,o,r,a).concat(J(e,i,n,o,a,s))}function Dt(e,t){let n=1,i=Math.min(e,t);for(;n<i;)n=n<<1;return n}function Ze(e,t,n,i,o,r){if(t==n||t==r||e.charCodeAt(t)!=i.charCodeAt(o))return 0;let s=Dt(n-t,r-o);for(let a=t,d=o;;){let c=a+s,l=d+s;if(c>n||l>r||e.slice(a,c)!=i.slice(d,l)){if(s==1)return a-t-(ne(e,a)?0:1);s=s>>1}else{if(c==n||l==r)return c-t;a=c,d=l}}}function Ae(e,t,n,i,o,r){if(t==n||o==r||e.charCodeAt(n-1)!=i.charCodeAt(r-1))return 0;let s=Dt(n-t,r-o);for(let a=n,d=r;;){let c=a-s,l=d-s;if(c<t||l<o||e.slice(c,a)!=i.slice(l,d)){if(s==1)return n-a-(ne(e,a)?0:1);s=s>>1}else{if(c==t||l==o)return n-c;a=c,d=l}}}function Ee(e,t,n,i,o,r,s,a){let d=i.slice(o,r),c=null;for(;;){if(c||s<a)return c;for(let l=t+s;;){ne(e,l)||l++;let O=l+s;if(ne(e,O)||(O+=O==l+1?1:-1),O>=n)break;let f=e.slice(l,O),m=-1;for(;(m=d.indexOf(f,m+1))!=-1;){let u=Ze(e,O,n,i,o+m+f.length,r),g=Ae(e,t,l,i,o,o+m),p=f.length+u+g;(!c||c[2]<p)&&(c=[l-g,o+m-g,p])}l=O}if(a<0)return c;s=s>>1}}function It(e,t,n,i,o,r){let s=n-t,a=r-o;if(s<a){let d=It(i,o,r,e,t,n);return d&&[d[1],d[0],d[2]]}return s<4||a*2<s?null:Ee(e,t,n,i,o,r,Math.floor(s/4),-1)}function tt(e,t,n,i,o,r){Me=!0;let s=n-t,a=r-o,d;if(s<a){let f=Ee(i,o,r,e,t,n,Math.floor(s/6),50);d=f&&[f[1],f[0],f[2]]}else d=Ee(e,t,n,i,o,r,Math.floor(a/6),50);if(!d)return[new q(t,n,o,r)];let[c,l,O]=d;return J(e,t,c,i,o,l).concat(J(e,c+O,n,i,l+O,r))}function Bt(e,t){for(let n=1;n<e.length;n++){let i=e[n-1],o=e[n];i.toA>o.fromA-t&&i.toB>o.fromB-t&&(e[n-1]=new q(i.fromA,o.toA,i.fromB,o.toB),e.splice(n--,1))}}function fr(e,t,n){for(;;){Bt(n,1);let i=!1;for(let o=0;o<n.length;o++){let r=n[o],s,a;(s=Ze(e,r.fromA,r.toA,t,r.fromB,r.toB))&&(r=n[o]=new q(r.fromA+s,r.toA,r.fromB+s,r.toB)),(a=Ae(e,r.fromA,r.toA,t,r.fromB,r.toB))&&(r=n[o]=new q(r.fromA,r.toA-a,r.fromB,r.toB-a));let d=r.toA-r.fromA,c=r.toB-r.fromB;if(d&&c)continue;let l=r.fromA-(o?n[o-1].toA:0),O=(o<n.length-1?n[o+1].fromA:e.length)-r.toA;if(!l||!O)continue;let f=d?e.slice(r.fromA,r.toA):t.slice(r.fromB,r.toB);l<=f.length&&e.slice(r.fromA-l,r.fromA)==f.slice(f.length-l)?(n[o]=new q(r.fromA-l,r.toA-l,r.fromB-l,r.toB-l),i=!0):O<=f.length&&e.slice(r.toA,r.toA+O)==f.slice(0,O)&&(n[o]=new q(r.fromA+O,r.toA+O,r.fromB+O,r.toB+O),i=!0)}if(!i)break}return n}function mr(e,t,n){for(let i=0,o=0;o<e.length;o++){let r=e[o],s=r.toA-r.fromA,a=r.toB-r.fromB;if(s&&a||s>3||a>3){let d=o==e.length-1?t.length:e[o+1].fromA,c=r.fromA-i,l=d-r.toA,O=rt(t,r.fromA,c),f=nt(t,r.toA,l),m=r.fromA-O,u=f-r.toA;if((!s||!a)&&m&&u){let g=Math.max(s,a),[p,Q,k]=s?[t,r.fromA,r.toA]:[n,r.fromB,r.toB];g>m&&t.slice(O,r.fromA)==p.slice(k-m,k)?(r=e[o]=new q(O,O+s,r.fromB-m,r.toB-m),O=r.fromA,f=nt(t,r.toA,d-r.toA)):g>u&&t.slice(r.toA,f)==p.slice(Q,Q+u)&&(r=e[o]=new q(f-s,f,r.fromB+u,r.toB+u),f=r.toA,O=rt(t,r.fromA,r.fromA-i)),m=r.fromA-O,u=f-r.toA}if(m||u)r=e[o]=new q(r.fromA-m,r.toA+u,r.fromB-m,r.toB+u);else if(s){if(!a){let g=ot(t,r.fromA,r.toA),p,Q=g<0?-1:it(t,r.toA,r.fromA);g>-1&&(p=g-r.fromA)<=l&&t.slice(r.fromA,g)==t.slice(r.toA,r.toA+p)?r=e[o]=r.offset(p):Q>-1&&(p=r.toA-Q)<=c&&t.slice(r.fromA-p,r.fromA)==t.slice(Q,r.toA)&&(r=e[o]=r.offset(-p))}}else{let g=ot(n,r.fromB,r.toB),p,Q=g<0?-1:it(n,r.toB,r.fromB);g>-1&&(p=g-r.fromB)<=l&&n.slice(r.fromB,g)==n.slice(r.toB,r.toB+p)?r=e[o]=r.offset(p):Q>-1&&(p=r.toB-Q)<=c&&n.slice(r.fromB-p,r.fromB)==n.slice(Q,r.toB)&&(r=e[o]=r.offset(-p))}}i=r.toA}return Bt(e,3),e}let H;try{H=new RegExp("[\\p{Alphabetic}\\p{Number}]","u")}catch{}function Yt(e){return e>48&&e<58||e>64&&e<91||e>96&&e<123}function Ft(e,t){if(t==e.length)return 0;let n=e.charCodeAt(t);return n<192?Yt(n)?1:0:H?!Kt(n)||t==e.length-1?H.test(String.fromCharCode(n))?1:0:H.test(e.slice(t,t+2))?2:0:0}function Ht(e,t){if(!t)return 0;let n=e.charCodeAt(t-1);return n<192?Yt(n)?1:0:H?!en(n)||t==1?H.test(String.fromCharCode(n))?1:0:H.test(e.slice(t-2,t))?2:0:0}const Jt=8;function nt(e,t,n){if(t==e.length||!Ht(e,t))return t;for(let i=t,o=t+n,r=0;r<Jt;r++){let s=Ft(e,i);if(!s||i+s>o)return i;i+=s}return t}function rt(e,t,n){if(!t||!Ft(e,t))return t;for(let i=t,o=t-n,r=0;r<Jt;r++){let s=Ht(e,i);if(!s||i-s<o)return i;i-=s}return t}function it(e,t,n){for(;t!=n;t--)if(e.charCodeAt(t-1)==10)return t;return-1}function ot(e,t,n){for(;t!=n;t++)if(e.charCodeAt(t)==10)return t;return-1}const Kt=e=>e>=55296&&e<=56319,en=e=>e>=56320&&e<=57343;function ne(e,t){return!t||t==e.length||!Kt(e.charCodeAt(t-1))||!en(e.charCodeAt(t))}function ur(e,t,n){var i;return se=((i=n?.scanLimit)!==null&&i!==void 0?i:1e9)>>1,Oe=n?.timeout?Date.now()+n.timeout:0,Me=!1,fr(e,t,J(e,0,e.length,t,0,t.length))}function tn(){return!Me}function nn(e,t,n){return mr(ur(e,t,n),e,t)}const A=Se.define({combine:e=>e[0]}),gr=Ge.define(),rn=Se.define(),C=he.define({create(e){return null},update(e,t){for(let n of t.effects)n.is(gr)&&(e=n.value);for(let n of t.state.facet(rn))e=n(e,t);return e}});function De(e){let t=e.field(C,!1);if(!t)return null;let n=e.facet(A);return{chunks:t,side:n?n.side:null}}class ee{constructor(t,n,i,o,r,s=!0){this.changes=t,this.fromA=n,this.toA=i,this.fromB=o,this.toB=r,this.precise=s}offset(t,n){return t||n?new ee(this.changes,this.fromA+t,this.toA+t,this.fromB+n,this.toB+n,this.precise):this}get endA(){return Math.max(this.fromA,this.toA-1)}get endB(){return Math.max(this.fromB,this.toB-1)}static build(t,n,i){let o=nn(t.toString(),n.toString(),i);return on(o,t,n,0,0,tn())}static updateA(t,n,i,o,r){return dt(lt(t,o,!0,i.length),t,n,i,r)}static updateB(t,n,i,o,r){return dt(lt(t,o,!1,n.length),t,n,i,r)}}function at(e,t,n,i){let o=n.lineAt(e),r=i.lineAt(t);return o.to==e&&r.to==t&&e<n.length&&t<i.length?[e+1,t+1]:[o.from,r.from]}function st(e,t,n,i){let o=n.lineAt(e),r=i.lineAt(t);return o.from==e&&r.from==t?[e,t]:[o.to+1,r.to+1]}function on(e,t,n,i,o,r){let s=[];for(let a=0;a<e.length;a++){let d=e[a],[c,l]=at(d.fromA+i,d.fromB+o,t,n),[O,f]=st(d.toA+i,d.toB+o,t,n),m=[d.offset(-c+i,-l+o)];for(;a<e.length-1;){let u=e[a+1],[g,p]=at(u.fromA+i,u.fromB+o,t,n);if(g>O+1&&p>f+1)break;m.push(u.offset(-c+i,-l+o)),[O,f]=st(u.toA+i,u.toB+o,t,n),a++}s.push(new ee(m,c,Math.max(c,O),l,Math.max(l,f),r))}return s}const ge=1e3;function Ot(e,t,n,i){let o=0,r=e.length;for(;;){if(o==r){let l=0,O=0;o&&({toA:l,toB:O}=e[o-1]);let f=t-(n?l:O);return[l+f,O+f]}let s=o+r>>1,a=e[s],[d,c]=n?[a.fromA,a.toA]:[a.fromB,a.toB];if(d>t)r=s;else if(c<=t)o=s+1;else return i?[a.fromA,a.fromB]:[a.toA,a.toB]}}function lt(e,t,n,i){let o=[];return t.iterChangedRanges((r,s,a,d)=>{let c=0,l=n?t.length:i,O=0,f=n?i:t.length;r>ge&&([c,O]=Ot(e,r-ge,n,!0)),s<t.length-ge&&([l,f]=Ot(e,s+ge,n,!1));let m=d-a-(s-r),u,[g,p]=n?[m,0]:[0,m];o.length&&(u=o[o.length-1]).toA>=c?o[o.length-1]={fromA:u.fromA,fromB:u.fromB,toA:l,toB:f,diffA:u.diffA+g,diffB:u.diffB+p}:o.push({fromA:c,toA:l,fromB:O,toB:f,diffA:g,diffB:p})}),o}function dt(e,t,n,i,o){if(!e.length)return t;let r=[];for(let s=0,a=0,d=0,c=0;;s++){let l=s==e.length?null:e[s],O=l?l.fromA+a:n.length,f=l?l.fromB+d:i.length;for(;c<t.length;){let p=t[c];if(p.toA+a>O||p.toB+d>f)break;r.push(p.offset(a,d)),c++}if(!l)break;let m=l.toA+a+l.diffA,u=l.toB+d+l.diffB,g=nn(n.sliceString(O,m),i.sliceString(f,u),o);for(let p of on(g,n,i,O,f,tn()))r.push(p);for(a+=l.diffA,d+=l.diffB;c<t.length;){let p=t[c];if(p.fromA+a>m&&p.fromB+d>u)break;c++}}return r}const pr={scanLimit:500},an=ye.fromClass(class{constructor(e){({deco:this.deco,gutter:this.gutter}=ft(e))}update(e){(e.docChanged||e.viewportChanged||Qr(e.startState,e.state)||xr(e.startState,e.state))&&({deco:this.deco,gutter:this.gutter}=ft(e.view))}},{decorations:e=>e.deco});function Qr(e,t){return e.field(C,!1)!=t.field(C,!1)}function xr(e,t){return e.facet(A)!=t.facet(A)}const ct=D.line({class:"cm-changedLine"}),sn=D.mark({class:"cm-changedText"}),vr=D.mark({tagName:"ins",class:"cm-insertedLine"}),Tr=D.mark({tagName:"del",class:"cm-deletedLine"}),ht=new class extends Le{constructor(){super(...arguments),this.elementClass="cm-changedLineGutter"}};function Sr(e,t,n,i,o,r){let s=n?e.fromA:e.fromB,a=n?e.toA:e.toB,d=0;if(s!=a){o.add(s,s,ct),o.add(s,a,n?Tr:vr),r&&r.add(s,s,ht);for(let c=t.iterRange(s,a-1),l=s;!c.next().done;){if(c.lineBreak){l++,o.add(l,l,ct),r&&r.add(l,l,ht);continue}let O=l+c.value.length;if(i)for(;d<e.changes.length;){let f=e.changes[d],m=s+(n?f.fromA:f.fromB),u=s+(n?f.toA:f.toB),g=Math.max(l,m),p=Math.min(O,u);if(g<p&&o.add(g,p,sn),u<O)d++;else break}l=O}}}function ft(e){let t=e.state.field(C),{side:n,highlightChanges:i,markGutter:o,overrideChunk:r}=e.state.facet(A),s=n=="a",a=new Te,d=o?new Te:null,{from:c,to:l}=e.viewport;for(let O of t){if((s?O.fromA:O.fromB)>=l)break;(s?O.toA:O.toB)>c&&(!r||!r(e.state,O,a,d))&&Sr(O,e.state.doc,s,i,a,d)}return{deco:a.finish(),gutter:d&&d.finish()}}const Ue=Ge.define({map:(e,t)=>t.mapPos(e)});class yr extends Ne{constructor(t){super(),this.lines=t}eq(t){return this.lines==t.lines}toDOM(t){let n=document.createElement("div");return n.className="cm-collapsedLines",n.textContent=t.state.phrase("$ unchanged lines",this.lines),n.addEventListener("click",i=>{let o=t.posAtDOM(i.target);t.dispatch({effects:Ue.of(o)});let{side:r,sibling:s}=t.state.facet(A);s&&s().dispatch({effects:Ue.of(br(o,t.state.field(C),r=="a"))})}),n}ignoreEvent(t){return t instanceof MouseEvent}get estimatedHeight(){return 27}get type(){return"collapsed-unchanged-code"}}function br(e,t,n){let i=0,o=0;for(let r=0;;r++){let s=r<t.length?t[r]:null;if(!s||(n?s.fromA:s.fromB)>=e)return o+(e-i);[i,o]=n?[s.toA,s.toB]:[s.toB,s.toA]}}const wr=he.define({create(e){return D.none},update(e,t){e=e.map(t.changes);for(let n of t.effects)n.is(Ue)&&(e=e.update({filter:i=>i!=n.value}));return e},provide:e=>U.decorations.from(e)});function kr({margin:e=3,minSize:t=4}){return wr.init(n=>Pr(n,e,t))}function Pr(e,t,n){let i=new Te,o=e.facet(A).side=="a",r=e.field(C),s=1;for(let a=0;;a++){let d=a<r.length?r[a]:null,c=a?s+t:1,l=d?e.doc.lineAt(o?d.fromA:d.fromB).number-1-t:e.doc.lines,O=l-c+1;if(O>=n&&i.add(e.doc.line(c).from,e.doc.line(l).to,D.replace({widget:new yr(O),block:!0})),!d)break;s=e.doc.lineAt(Math.min(e.doc.length,o?d.toA:d.toB)).number}return i.finish()}const $r=U.baseTheme({".cm-mergeView & .cm-scroller, .cm-mergeView &":{height:"auto !important",overflowY:"visible !important"},"&.cm-merge-a .cm-changedLine, .cm-deletedChunk":{backgroundColor:"rgba(160, 128, 100, .08)"},"&.cm-merge-b .cm-changedLine, .cm-inlineChangedLine":{backgroundColor:"rgba(100, 160, 128, .08)"},"&light.cm-merge-a .cm-changedText, &light .cm-deletedChunk .cm-deletedText":{background:"linear-gradient(#ee443366, #ee443366) bottom/100% 2px no-repeat"},"&dark.cm-merge-a .cm-changedText, &dark .cm-deletedChunk .cm-deletedText":{background:"linear-gradient(#ffaa9966, #ffaa9966) bottom/100% 2px no-repeat"},"&light.cm-merge-b .cm-changedText":{background:"linear-gradient(#22bb22aa, #22bb22aa) bottom/100% 2px no-repeat"},"&dark.cm-merge-b .cm-changedText":{background:"linear-gradient(#88ff88aa, #88ff88aa) bottom/100% 2px no-repeat"},"&.cm-merge-b .cm-deletedText":{background:"#ff000033"},".cm-insertedLine, .cm-deletedLine, .cm-deletedLine del":{textDecoration:"none"},".cm-deletedChunk":{paddingLeft:"6px","& .cm-chunkButtons":{position:"absolute",insetInlineEnd:"5px"},"& button":{border:"none",cursor:"pointer",color:"white",margin:"0 2px",borderRadius:"3px","&[name=accept]":{background:"#2a2"},"&[name=reject]":{background:"#d43"}}},".cm-collapsedLines":{padding:"5px 5px 5px 10px",cursor:"pointer","&:before":{content:'"⦚"',marginInlineEnd:"7px"},"&:after":{content:'"⦚"',marginInlineStart:"7px"}},"&light .cm-collapsedLines":{color:"#444",background:"linear-gradient(to bottom, transparent 0, #f3f3f3 30%, #f3f3f3 70%, transparent 100%)"},"&dark .cm-collapsedLines":{color:"#ddd",background:"linear-gradient(to bottom, transparent 0, #222 30%, #222 70%, transparent 100%)"},".cm-changeGutter":{width:"3px",paddingLeft:"1px"},"&light.cm-merge-a .cm-changedLineGutter, &light .cm-deletedLineGutter":{background:"#e43"},"&dark.cm-merge-a .cm-changedLineGutter, &dark .cm-deletedLineGutter":{background:"#fa9"},"&light.cm-merge-b .cm-changedLineGutter":{background:"#2b2"},"&dark.cm-merge-b .cm-changedLineGutter":{background:"#8f8"},".cm-inlineChangedLineGutter":{background:"#75d"}}),qr=new class extends Le{constructor(){super(...arguments),this.elementClass="cm-deletedLineGutter"}},jr=_t.low(En({class:"cm-changeGutter",markers:e=>{var t;return((t=e.plugin(an))===null||t===void 0?void 0:t.gutter)||Vn.empty},widgetMarker:(e,t)=>t instanceof On?qr:null}));function Wr(e){var t;let n=typeof e.original=="string"?zt.of(e.original.split(/\r?\n/)):e.original,i=e.diffConfig||pr;return[_t.low(an),_r,$r,U.editorAttributes.of({class:"cm-merge-b"}),rn.of((o,r)=>{let s=r.effects.find(a=>a.is(Ie));return s&&(o=ee.updateA(o,s.value.doc,r.startState.doc,s.value.changes,i)),r.docChanged&&(o=ee.updateB(o,r.state.field(re),r.newDoc,r.changes,i)),o}),A.of({highlightChanges:e.highlightChanges!==!1,markGutter:e.gutter!==!1,syntaxHighlightDeletions:e.syntaxHighlightDeletions!==!1,syntaxHighlightDeletionsMaxLength:3e3,mergeControls:(t=e.mergeControls)!==null&&t!==void 0?t:!0,overrideChunk:e.allowInlineDiffs?Vr:void 0,side:"b"}),re.init(()=>n),e.gutter!==!1?jr:[],e.collapseUnchanged?kr(e.collapseUnchanged):[],C.init(o=>ee.build(n,o.doc,i))]}const Ie=Ge.define(),re=he.define({create:()=>zt.empty,update(e,t){for(let n of t.effects)n.is(Ie)&&(e=n.value.doc);return e}}),mt=new WeakMap;class On extends Ne{constructor(t){super(),this.buildDOM=t,this.dom=null}eq(t){return this.dom==t.dom}toDOM(t){return this.dom||(this.dom=this.buildDOM(t))}}function Rr(e,t,n){let i=mt.get(t.changes);if(i)return i;let o=s=>{let{highlightChanges:a,syntaxHighlightDeletions:d,syntaxHighlightDeletionsMaxLength:c,mergeControls:l}=e.facet(A),O=document.createElement("div");if(O.className="cm-deletedChunk",l){let y=O.appendChild(document.createElement("div"));y.className="cm-chunkButtons";let P=T=>{T.preventDefault(),Xr(s,s.posAtDOM(O))},v=T=>{T.preventDefault(),zr(s,s.posAtDOM(O))};if(typeof l=="function")y.appendChild(l("accept",P)),y.appendChild(l("reject",v));else{let T=y.appendChild(document.createElement("button"));T.name="accept",T.textContent=e.phrase("Accept"),T.onmousedown=P;let b=y.appendChild(document.createElement("button"));b.name="reject",b.textContent=e.phrase("Reject"),b.onmousedown=v}}if(n||t.fromA>=t.toA)return O;let f=s.state.field(re).sliceString(t.fromA,t.endA),m=d&&e.facet(Ct),u=k(),g=t.changes,p=0,Q=!1;function k(){let y=O.appendChild(document.createElement("div"));return y.className="cm-deletedLine",y.appendChild(document.createElement("del"))}function $(y,P,v){for(let T=y;T<P;){if(f.charAt(T)==`
1
+ import{r as S,j as h}from"./vendor-react-C2GTiUCy.js";import{T as zt,P as _t,E as U,S as he,g as kn,V as Se,F as ye,a as Ge,b as Te,D,G as Le,W as Ne,l as Ct,h as Ce,C as Pn,c as $n,d as Et,L as Ut,s as Vt,t as x,e as Gt,f as Lt,i as Nt,j as He,k as Mt,n as Zt,p as be,q as qn,r as $e,u as jn,v as Wn,N as Rn,I as Xn,w as zn,x as G,y as te,z as _n,A as Cn,B as En,H as Un,J as Je,K as Vn,O as Gn,Q as Ln,m as Nn,U as Mn,X as Zn,Y as An,Z as Dn,_ as In,M as Bn,R as Yn,o as Fn}from"./MarkdownPreview-PEEWVWeS.js";import{c as Ke,g as Hn,a as Jn,h as Kn,u as er}from"./feature-workspace-CAB6bgPy.js";import{o as tr,q as nr,bq as rr,a9 as et,S as ir,aa as or,at as ar,b2 as sr,b3 as Or,X as lr}from"./vendor-ui-CAUHSABu.js";import{u as dr}from"./vendor-i18n-B6HjLCnN.js";import"./vendor-markdown-DkITEES2.js";import"./feature-chat-CvOCyaLe.js";import"./vendor-data-DsEZeNPr.js";class q{constructor(t,n,i,o){this.fromA=t,this.toA=n,this.fromB=i,this.toB=o}offset(t,n=t){return new q(this.fromA+t,this.toA+t,this.fromB+n,this.toB+n)}}function J(e,t,n,i,o,r){if(e==i)return[];let s=Ze(e,t,n,i,o,r),a=Ae(e,t+s,n,i,o+s,r);t+=s,n-=a,o+=s,r-=a;let d=n-t,c=r-o;if(!d||!c)return[new q(t,n,o,r)];if(d>c){let O=e.slice(t,n).indexOf(i.slice(o,r));if(O>-1)return[new q(t,t+O,o,o),new q(t+O+c,n,r,r)]}else if(c>d){let O=i.slice(o,r).indexOf(e.slice(t,n));if(O>-1)return[new q(t,t,o,o+O),new q(n,n,o+O+d,r)]}if(d==1||c==1)return[new q(t,n,o,r)];let l=It(e,t,n,i,o,r);if(l){let[O,f,m]=l;return J(e,t,O,i,o,f).concat(J(e,O+m,n,i,f+m,r))}return cr(e,t,n,i,o,r)}let se=1e9,Oe=0,Me=!1;function cr(e,t,n,i,o,r){let s=n-t,a=r-o;if(se<1e9&&Math.min(s,a)>se*16||Oe>0&&Date.now()>Oe)return Math.min(s,a)>se*64?[new q(t,n,o,r)]:tt(e,t,n,i,o,r);let d=Math.ceil((s+a)/2);qe.reset(d),je.reset(d);let c=(m,u)=>e.charCodeAt(t+m)==i.charCodeAt(o+u),l=(m,u)=>e.charCodeAt(n-m-1)==i.charCodeAt(r-u-1),O=(s-a)%2!=0?je:null,f=O?null:qe;for(let m=0;m<d;m++){if(m>se||Oe>0&&!(m&63)&&Date.now()>Oe)return tt(e,t,n,i,o,r);let u=qe.advance(m,s,a,d,O,!1,c)||je.advance(m,s,a,d,f,!0,l);if(u)return hr(e,t,n,t+u[0],i,o,r,o+u[1])}return[new q(t,n,o,r)]}class At{constructor(){this.vec=[]}reset(t){this.len=t<<1;for(let n=0;n<this.len;n++)this.vec[n]=-1;this.vec[t+1]=0,this.start=this.end=0}advance(t,n,i,o,r,s,a){for(let d=-t+this.start;d<=t-this.end;d+=2){let c=o+d,l=d==-t||d!=t&&this.vec[c-1]<this.vec[c+1]?this.vec[c+1]:this.vec[c-1]+1,O=l-d;for(;l<n&&O<i&&a(l,O);)l++,O++;if(this.vec[c]=l,l>n)this.end+=2;else if(O>i)this.start+=2;else if(r){let f=o+(n-i)-d;if(f>=0&&f<this.len&&r.vec[f]!=-1)if(s){let m=r.vec[f];if(m>=n-l)return[m,o+m-f]}else{let m=n-r.vec[f];if(l>=m)return[l,O]}}}return null}}const qe=new At,je=new At;function hr(e,t,n,i,o,r,s,a){let d=!1;return!ne(e,i)&&++i==n&&(d=!0),!ne(o,a)&&++a==s&&(d=!0),d?[new q(t,n,r,s)]:J(e,t,i,o,r,a).concat(J(e,i,n,o,a,s))}function Dt(e,t){let n=1,i=Math.min(e,t);for(;n<i;)n=n<<1;return n}function Ze(e,t,n,i,o,r){if(t==n||t==r||e.charCodeAt(t)!=i.charCodeAt(o))return 0;let s=Dt(n-t,r-o);for(let a=t,d=o;;){let c=a+s,l=d+s;if(c>n||l>r||e.slice(a,c)!=i.slice(d,l)){if(s==1)return a-t-(ne(e,a)?0:1);s=s>>1}else{if(c==n||l==r)return c-t;a=c,d=l}}}function Ae(e,t,n,i,o,r){if(t==n||o==r||e.charCodeAt(n-1)!=i.charCodeAt(r-1))return 0;let s=Dt(n-t,r-o);for(let a=n,d=r;;){let c=a-s,l=d-s;if(c<t||l<o||e.slice(c,a)!=i.slice(l,d)){if(s==1)return n-a-(ne(e,a)?0:1);s=s>>1}else{if(c==t||l==o)return n-c;a=c,d=l}}}function Ee(e,t,n,i,o,r,s,a){let d=i.slice(o,r),c=null;for(;;){if(c||s<a)return c;for(let l=t+s;;){ne(e,l)||l++;let O=l+s;if(ne(e,O)||(O+=O==l+1?1:-1),O>=n)break;let f=e.slice(l,O),m=-1;for(;(m=d.indexOf(f,m+1))!=-1;){let u=Ze(e,O,n,i,o+m+f.length,r),g=Ae(e,t,l,i,o,o+m),p=f.length+u+g;(!c||c[2]<p)&&(c=[l-g,o+m-g,p])}l=O}if(a<0)return c;s=s>>1}}function It(e,t,n,i,o,r){let s=n-t,a=r-o;if(s<a){let d=It(i,o,r,e,t,n);return d&&[d[1],d[0],d[2]]}return s<4||a*2<s?null:Ee(e,t,n,i,o,r,Math.floor(s/4),-1)}function tt(e,t,n,i,o,r){Me=!0;let s=n-t,a=r-o,d;if(s<a){let f=Ee(i,o,r,e,t,n,Math.floor(s/6),50);d=f&&[f[1],f[0],f[2]]}else d=Ee(e,t,n,i,o,r,Math.floor(a/6),50);if(!d)return[new q(t,n,o,r)];let[c,l,O]=d;return J(e,t,c,i,o,l).concat(J(e,c+O,n,i,l+O,r))}function Bt(e,t){for(let n=1;n<e.length;n++){let i=e[n-1],o=e[n];i.toA>o.fromA-t&&i.toB>o.fromB-t&&(e[n-1]=new q(i.fromA,o.toA,i.fromB,o.toB),e.splice(n--,1))}}function fr(e,t,n){for(;;){Bt(n,1);let i=!1;for(let o=0;o<n.length;o++){let r=n[o],s,a;(s=Ze(e,r.fromA,r.toA,t,r.fromB,r.toB))&&(r=n[o]=new q(r.fromA+s,r.toA,r.fromB+s,r.toB)),(a=Ae(e,r.fromA,r.toA,t,r.fromB,r.toB))&&(r=n[o]=new q(r.fromA,r.toA-a,r.fromB,r.toB-a));let d=r.toA-r.fromA,c=r.toB-r.fromB;if(d&&c)continue;let l=r.fromA-(o?n[o-1].toA:0),O=(o<n.length-1?n[o+1].fromA:e.length)-r.toA;if(!l||!O)continue;let f=d?e.slice(r.fromA,r.toA):t.slice(r.fromB,r.toB);l<=f.length&&e.slice(r.fromA-l,r.fromA)==f.slice(f.length-l)?(n[o]=new q(r.fromA-l,r.toA-l,r.fromB-l,r.toB-l),i=!0):O<=f.length&&e.slice(r.toA,r.toA+O)==f.slice(0,O)&&(n[o]=new q(r.fromA+O,r.toA+O,r.fromB+O,r.toB+O),i=!0)}if(!i)break}return n}function mr(e,t,n){for(let i=0,o=0;o<e.length;o++){let r=e[o],s=r.toA-r.fromA,a=r.toB-r.fromB;if(s&&a||s>3||a>3){let d=o==e.length-1?t.length:e[o+1].fromA,c=r.fromA-i,l=d-r.toA,O=rt(t,r.fromA,c),f=nt(t,r.toA,l),m=r.fromA-O,u=f-r.toA;if((!s||!a)&&m&&u){let g=Math.max(s,a),[p,Q,k]=s?[t,r.fromA,r.toA]:[n,r.fromB,r.toB];g>m&&t.slice(O,r.fromA)==p.slice(k-m,k)?(r=e[o]=new q(O,O+s,r.fromB-m,r.toB-m),O=r.fromA,f=nt(t,r.toA,d-r.toA)):g>u&&t.slice(r.toA,f)==p.slice(Q,Q+u)&&(r=e[o]=new q(f-s,f,r.fromB+u,r.toB+u),f=r.toA,O=rt(t,r.fromA,r.fromA-i)),m=r.fromA-O,u=f-r.toA}if(m||u)r=e[o]=new q(r.fromA-m,r.toA+u,r.fromB-m,r.toB+u);else if(s){if(!a){let g=ot(t,r.fromA,r.toA),p,Q=g<0?-1:it(t,r.toA,r.fromA);g>-1&&(p=g-r.fromA)<=l&&t.slice(r.fromA,g)==t.slice(r.toA,r.toA+p)?r=e[o]=r.offset(p):Q>-1&&(p=r.toA-Q)<=c&&t.slice(r.fromA-p,r.fromA)==t.slice(Q,r.toA)&&(r=e[o]=r.offset(-p))}}else{let g=ot(n,r.fromB,r.toB),p,Q=g<0?-1:it(n,r.toB,r.fromB);g>-1&&(p=g-r.fromB)<=l&&n.slice(r.fromB,g)==n.slice(r.toB,r.toB+p)?r=e[o]=r.offset(p):Q>-1&&(p=r.toB-Q)<=c&&n.slice(r.fromB-p,r.fromB)==n.slice(Q,r.toB)&&(r=e[o]=r.offset(-p))}}i=r.toA}return Bt(e,3),e}let H;try{H=new RegExp("[\\p{Alphabetic}\\p{Number}]","u")}catch{}function Yt(e){return e>48&&e<58||e>64&&e<91||e>96&&e<123}function Ft(e,t){if(t==e.length)return 0;let n=e.charCodeAt(t);return n<192?Yt(n)?1:0:H?!Kt(n)||t==e.length-1?H.test(String.fromCharCode(n))?1:0:H.test(e.slice(t,t+2))?2:0:0}function Ht(e,t){if(!t)return 0;let n=e.charCodeAt(t-1);return n<192?Yt(n)?1:0:H?!en(n)||t==1?H.test(String.fromCharCode(n))?1:0:H.test(e.slice(t-2,t))?2:0:0}const Jt=8;function nt(e,t,n){if(t==e.length||!Ht(e,t))return t;for(let i=t,o=t+n,r=0;r<Jt;r++){let s=Ft(e,i);if(!s||i+s>o)return i;i+=s}return t}function rt(e,t,n){if(!t||!Ft(e,t))return t;for(let i=t,o=t-n,r=0;r<Jt;r++){let s=Ht(e,i);if(!s||i-s<o)return i;i-=s}return t}function it(e,t,n){for(;t!=n;t--)if(e.charCodeAt(t-1)==10)return t;return-1}function ot(e,t,n){for(;t!=n;t++)if(e.charCodeAt(t)==10)return t;return-1}const Kt=e=>e>=55296&&e<=56319,en=e=>e>=56320&&e<=57343;function ne(e,t){return!t||t==e.length||!Kt(e.charCodeAt(t-1))||!en(e.charCodeAt(t))}function ur(e,t,n){var i;return se=((i=n?.scanLimit)!==null&&i!==void 0?i:1e9)>>1,Oe=n?.timeout?Date.now()+n.timeout:0,Me=!1,fr(e,t,J(e,0,e.length,t,0,t.length))}function tn(){return!Me}function nn(e,t,n){return mr(ur(e,t,n),e,t)}const A=ye.define({combine:e=>e[0]}),gr=Ge.define(),rn=ye.define(),C=he.define({create(e){return null},update(e,t){for(let n of t.effects)n.is(gr)&&(e=n.value);for(let n of t.state.facet(rn))e=n(e,t);return e}});function De(e){let t=e.field(C,!1);if(!t)return null;let n=e.facet(A);return{chunks:t,side:n?n.side:null}}class ee{constructor(t,n,i,o,r,s=!0){this.changes=t,this.fromA=n,this.toA=i,this.fromB=o,this.toB=r,this.precise=s}offset(t,n){return t||n?new ee(this.changes,this.fromA+t,this.toA+t,this.fromB+n,this.toB+n,this.precise):this}get endA(){return Math.max(this.fromA,this.toA-1)}get endB(){return Math.max(this.fromB,this.toB-1)}static build(t,n,i){let o=nn(t.toString(),n.toString(),i);return on(o,t,n,0,0,tn())}static updateA(t,n,i,o,r){return dt(lt(t,o,!0,i.length),t,n,i,r)}static updateB(t,n,i,o,r){return dt(lt(t,o,!1,n.length),t,n,i,r)}}function at(e,t,n,i){let o=n.lineAt(e),r=i.lineAt(t);return o.to==e&&r.to==t&&e<n.length&&t<i.length?[e+1,t+1]:[o.from,r.from]}function st(e,t,n,i){let o=n.lineAt(e),r=i.lineAt(t);return o.from==e&&r.from==t?[e,t]:[o.to+1,r.to+1]}function on(e,t,n,i,o,r){let s=[];for(let a=0;a<e.length;a++){let d=e[a],[c,l]=at(d.fromA+i,d.fromB+o,t,n),[O,f]=st(d.toA+i,d.toB+o,t,n),m=[d.offset(-c+i,-l+o)];for(;a<e.length-1;){let u=e[a+1],[g,p]=at(u.fromA+i,u.fromB+o,t,n);if(g>O+1&&p>f+1)break;m.push(u.offset(-c+i,-l+o)),[O,f]=st(u.toA+i,u.toB+o,t,n),a++}s.push(new ee(m,c,Math.max(c,O),l,Math.max(l,f),r))}return s}const ge=1e3;function Ot(e,t,n,i){let o=0,r=e.length;for(;;){if(o==r){let l=0,O=0;o&&({toA:l,toB:O}=e[o-1]);let f=t-(n?l:O);return[l+f,O+f]}let s=o+r>>1,a=e[s],[d,c]=n?[a.fromA,a.toA]:[a.fromB,a.toB];if(d>t)r=s;else if(c<=t)o=s+1;else return i?[a.fromA,a.fromB]:[a.toA,a.toB]}}function lt(e,t,n,i){let o=[];return t.iterChangedRanges((r,s,a,d)=>{let c=0,l=n?t.length:i,O=0,f=n?i:t.length;r>ge&&([c,O]=Ot(e,r-ge,n,!0)),s<t.length-ge&&([l,f]=Ot(e,s+ge,n,!1));let m=d-a-(s-r),u,[g,p]=n?[m,0]:[0,m];o.length&&(u=o[o.length-1]).toA>=c?o[o.length-1]={fromA:u.fromA,fromB:u.fromB,toA:l,toB:f,diffA:u.diffA+g,diffB:u.diffB+p}:o.push({fromA:c,toA:l,fromB:O,toB:f,diffA:g,diffB:p})}),o}function dt(e,t,n,i,o){if(!e.length)return t;let r=[];for(let s=0,a=0,d=0,c=0;;s++){let l=s==e.length?null:e[s],O=l?l.fromA+a:n.length,f=l?l.fromB+d:i.length;for(;c<t.length;){let p=t[c];if(p.toA+a>O||p.toB+d>f)break;r.push(p.offset(a,d)),c++}if(!l)break;let m=l.toA+a+l.diffA,u=l.toB+d+l.diffB,g=nn(n.sliceString(O,m),i.sliceString(f,u),o);for(let p of on(g,n,i,O,f,tn()))r.push(p);for(a+=l.diffA,d+=l.diffB;c<t.length;){let p=t[c];if(p.fromA+a>m&&p.fromB+d>u)break;c++}}return r}const pr={scanLimit:500},an=Se.fromClass(class{constructor(e){({deco:this.deco,gutter:this.gutter}=ft(e))}update(e){(e.docChanged||e.viewportChanged||Qr(e.startState,e.state)||xr(e.startState,e.state))&&({deco:this.deco,gutter:this.gutter}=ft(e.view))}},{decorations:e=>e.deco});function Qr(e,t){return e.field(C,!1)!=t.field(C,!1)}function xr(e,t){return e.facet(A)!=t.facet(A)}const ct=D.line({class:"cm-changedLine"}),sn=D.mark({class:"cm-changedText"}),vr=D.mark({tagName:"ins",class:"cm-insertedLine"}),Tr=D.mark({tagName:"del",class:"cm-deletedLine"}),ht=new class extends Le{constructor(){super(...arguments),this.elementClass="cm-changedLineGutter"}};function Sr(e,t,n,i,o,r){let s=n?e.fromA:e.fromB,a=n?e.toA:e.toB,d=0;if(s!=a){o.add(s,s,ct),o.add(s,a,n?Tr:vr),r&&r.add(s,s,ht);for(let c=t.iterRange(s,a-1),l=s;!c.next().done;){if(c.lineBreak){l++,o.add(l,l,ct),r&&r.add(l,l,ht);continue}let O=l+c.value.length;if(i)for(;d<e.changes.length;){let f=e.changes[d],m=s+(n?f.fromA:f.fromB),u=s+(n?f.toA:f.toB),g=Math.max(l,m),p=Math.min(O,u);if(g<p&&o.add(g,p,sn),u<O)d++;else break}l=O}}}function ft(e){let t=e.state.field(C),{side:n,highlightChanges:i,markGutter:o,overrideChunk:r}=e.state.facet(A),s=n=="a",a=new Te,d=o?new Te:null,{from:c,to:l}=e.viewport;for(let O of t){if((s?O.fromA:O.fromB)>=l)break;(s?O.toA:O.toB)>c&&(!r||!r(e.state,O,a,d))&&Sr(O,e.state.doc,s,i,a,d)}return{deco:a.finish(),gutter:d&&d.finish()}}const Ue=Ge.define({map:(e,t)=>t.mapPos(e)});class yr extends Ne{constructor(t){super(),this.lines=t}eq(t){return this.lines==t.lines}toDOM(t){let n=document.createElement("div");return n.className="cm-collapsedLines",n.textContent=t.state.phrase("$ unchanged lines",this.lines),n.addEventListener("click",i=>{let o=t.posAtDOM(i.target);t.dispatch({effects:Ue.of(o)});let{side:r,sibling:s}=t.state.facet(A);s&&s().dispatch({effects:Ue.of(br(o,t.state.field(C),r=="a"))})}),n}ignoreEvent(t){return t instanceof MouseEvent}get estimatedHeight(){return 27}get type(){return"collapsed-unchanged-code"}}function br(e,t,n){let i=0,o=0;for(let r=0;;r++){let s=r<t.length?t[r]:null;if(!s||(n?s.fromA:s.fromB)>=e)return o+(e-i);[i,o]=n?[s.toA,s.toB]:[s.toB,s.toA]}}const wr=he.define({create(e){return D.none},update(e,t){e=e.map(t.changes);for(let n of t.effects)n.is(Ue)&&(e=e.update({filter:i=>i!=n.value}));return e},provide:e=>U.decorations.from(e)});function kr({margin:e=3,minSize:t=4}){return wr.init(n=>Pr(n,e,t))}function Pr(e,t,n){let i=new Te,o=e.facet(A).side=="a",r=e.field(C),s=1;for(let a=0;;a++){let d=a<r.length?r[a]:null,c=a?s+t:1,l=d?e.doc.lineAt(o?d.fromA:d.fromB).number-1-t:e.doc.lines,O=l-c+1;if(O>=n&&i.add(e.doc.line(c).from,e.doc.line(l).to,D.replace({widget:new yr(O),block:!0})),!d)break;s=e.doc.lineAt(Math.min(e.doc.length,o?d.toA:d.toB)).number}return i.finish()}const $r=U.baseTheme({".cm-mergeView & .cm-scroller, .cm-mergeView &":{height:"auto !important",overflowY:"visible !important"},"&.cm-merge-a .cm-changedLine, .cm-deletedChunk":{backgroundColor:"rgba(160, 128, 100, .08)"},"&.cm-merge-b .cm-changedLine, .cm-inlineChangedLine":{backgroundColor:"rgba(100, 160, 128, .08)"},"&light.cm-merge-a .cm-changedText, &light .cm-deletedChunk .cm-deletedText":{background:"linear-gradient(#ee443366, #ee443366) bottom/100% 2px no-repeat"},"&dark.cm-merge-a .cm-changedText, &dark .cm-deletedChunk .cm-deletedText":{background:"linear-gradient(#ffaa9966, #ffaa9966) bottom/100% 2px no-repeat"},"&light.cm-merge-b .cm-changedText":{background:"linear-gradient(#22bb22aa, #22bb22aa) bottom/100% 2px no-repeat"},"&dark.cm-merge-b .cm-changedText":{background:"linear-gradient(#88ff88aa, #88ff88aa) bottom/100% 2px no-repeat"},"&.cm-merge-b .cm-deletedText":{background:"#ff000033"},".cm-insertedLine, .cm-deletedLine, .cm-deletedLine del":{textDecoration:"none"},".cm-deletedChunk":{paddingLeft:"6px","& .cm-chunkButtons":{position:"absolute",insetInlineEnd:"5px"},"& button":{border:"none",cursor:"pointer",color:"white",margin:"0 2px",borderRadius:"3px","&[name=accept]":{background:"#2a2"},"&[name=reject]":{background:"#d43"}}},".cm-collapsedLines":{padding:"5px 5px 5px 10px",cursor:"pointer","&:before":{content:'"⦚"',marginInlineEnd:"7px"},"&:after":{content:'"⦚"',marginInlineStart:"7px"}},"&light .cm-collapsedLines":{color:"#444",background:"linear-gradient(to bottom, transparent 0, #f3f3f3 30%, #f3f3f3 70%, transparent 100%)"},"&dark .cm-collapsedLines":{color:"#ddd",background:"linear-gradient(to bottom, transparent 0, #222 30%, #222 70%, transparent 100%)"},".cm-changeGutter":{width:"3px",paddingLeft:"1px"},"&light.cm-merge-a .cm-changedLineGutter, &light .cm-deletedLineGutter":{background:"#e43"},"&dark.cm-merge-a .cm-changedLineGutter, &dark .cm-deletedLineGutter":{background:"#fa9"},"&light.cm-merge-b .cm-changedLineGutter":{background:"#2b2"},"&dark.cm-merge-b .cm-changedLineGutter":{background:"#8f8"},".cm-inlineChangedLineGutter":{background:"#75d"}}),qr=new class extends Le{constructor(){super(...arguments),this.elementClass="cm-deletedLineGutter"}},jr=_t.low(kn({class:"cm-changeGutter",markers:e=>{var t;return((t=e.plugin(an))===null||t===void 0?void 0:t.gutter)||$n.empty},widgetMarker:(e,t)=>t instanceof On?qr:null}));function Wr(e){var t;let n=typeof e.original=="string"?zt.of(e.original.split(/\r?\n/)):e.original,i=e.diffConfig||pr;return[_t.low(an),_r,$r,U.editorAttributes.of({class:"cm-merge-b"}),rn.of((o,r)=>{let s=r.effects.find(a=>a.is(Ie));return s&&(o=ee.updateA(o,s.value.doc,r.startState.doc,s.value.changes,i)),r.docChanged&&(o=ee.updateB(o,r.state.field(re),r.newDoc,r.changes,i)),o}),A.of({highlightChanges:e.highlightChanges!==!1,markGutter:e.gutter!==!1,syntaxHighlightDeletions:e.syntaxHighlightDeletions!==!1,syntaxHighlightDeletionsMaxLength:3e3,mergeControls:(t=e.mergeControls)!==null&&t!==void 0?t:!0,overrideChunk:e.allowInlineDiffs?Vr:void 0,side:"b"}),re.init(()=>n),e.gutter!==!1?jr:[],e.collapseUnchanged?kr(e.collapseUnchanged):[],C.init(o=>ee.build(n,o.doc,i))]}const Ie=Ge.define(),re=he.define({create:()=>zt.empty,update(e,t){for(let n of t.effects)n.is(Ie)&&(e=n.value.doc);return e}}),mt=new WeakMap;class On extends Ne{constructor(t){super(),this.buildDOM=t,this.dom=null}eq(t){return this.dom==t.dom}toDOM(t){return this.dom||(this.dom=this.buildDOM(t))}}function Rr(e,t,n){let i=mt.get(t.changes);if(i)return i;let o=s=>{let{highlightChanges:a,syntaxHighlightDeletions:d,syntaxHighlightDeletionsMaxLength:c,mergeControls:l}=e.facet(A),O=document.createElement("div");if(O.className="cm-deletedChunk",l){let y=O.appendChild(document.createElement("div"));y.className="cm-chunkButtons";let P=T=>{T.preventDefault(),Xr(s,s.posAtDOM(O))},v=T=>{T.preventDefault(),zr(s,s.posAtDOM(O))};if(typeof l=="function")y.appendChild(l("accept",P)),y.appendChild(l("reject",v));else{let T=y.appendChild(document.createElement("button"));T.name="accept",T.textContent=e.phrase("Accept"),T.onmousedown=P;let b=y.appendChild(document.createElement("button"));b.name="reject",b.textContent=e.phrase("Reject"),b.onmousedown=v}}if(n||t.fromA>=t.toA)return O;let f=s.state.field(re).sliceString(t.fromA,t.endA),m=d&&e.facet(Ct),u=k(),g=t.changes,p=0,Q=!1;function k(){let y=O.appendChild(document.createElement("div"));return y.className="cm-deletedLine",y.appendChild(document.createElement("del"))}function $(y,P,v){for(let T=y;T<P;){if(f.charAt(T)==`
2
2
  `){u.firstChild||u.appendChild(document.createElement("br")),u=k(),T++;continue}let b=P,V=v+(Q?" cm-deletedText":""),R=!1,z=f.indexOf(`
3
- `,T);if(z>-1&&z<P&&(b=z),a&&p<g.length){let W=Math.max(0,Q?g[p].toA:g[p].fromA);W<=b&&(b=W,Q&&p++,R=!0)}if(b>T){let W=document.createTextNode(f.slice(T,b));if(V){let E=u.appendChild(document.createElement("span"));E.className=V,E.appendChild(W)}else u.appendChild(W);T=b}R&&(Q=!Q)}}if(m&&t.toA-t.fromA<=c){let y=m.parser.parse(f),P=0;Ce(y,{style:v=>Et(e,v)},(v,T,b)=>{v>P&&$(P,v,""),$(v,T,b),P=T}),$(P,f.length,"")}else $(0,f.length,"");return u.firstChild||u.appendChild(document.createElement("br")),O},r=D.widget({block:!0,side:-1,widget:new On(o)});return mt.set(t.changes,r),r}function Xr(e,t){let{state:n}=e,i=t??n.selection.main.head,o=e.state.field(C).find(d=>d.fromB<=i&&d.endB>=i);if(!o)return!1;let r=e.state.sliceDoc(o.fromB,Math.max(o.fromB,o.toB-1)),s=e.state.field(re);o.fromB!=o.toB&&o.toA<=s.length&&(r+=e.state.lineBreak);let a=Un.of({from:o.fromA,to:Math.min(s.length,o.toA),insert:r},s.length);return e.dispatch({effects:Ie.of({doc:a.apply(s),changes:a}),userEvent:"accept"}),!0}function zr(e,t){let{state:n}=e,i=t??n.selection.main.head,o=n.field(C).find(a=>a.fromB<=i&&a.endB>=i);if(!o)return!1;let s=n.field(re).sliceString(o.fromA,Math.max(o.fromA,o.toA-1));return o.fromA!=o.toA&&o.toB<=n.doc.length&&(s+=n.lineBreak),e.dispatch({changes:{from:o.fromB,to:Math.min(n.doc.length,o.toB),insert:s},userEvent:"revert"}),!0}function ut(e){let t=new Te;for(let n of e.field(C)){let i=e.facet(A).overrideChunk&&ln(e,n);t.add(n.fromB,n.fromB,Rr(e,n,!!i))}return t.finish()}const _r=he.define({create:e=>ut(e),update(e,t){return t.state.field(C,!1)!=t.startState.field(C,!1)?ut(t.state):e},provide:e=>U.decorations.from(e)}),gt=new WeakMap;function ln(e,t){let n=gt.get(t);if(n!==void 0)return n;n=null;let i=e.field(re),o=e.doc,r=i.lineAt(t.endA).number-i.lineAt(t.fromA).number+1,s=o.lineAt(t.endB).number-o.lineAt(t.fromB).number+1;e:if(r==s&&r<10){let a=[],d=0,c=t.fromA,l=t.fromB;for(let O of t.changes){if(O.fromA<O.toA){d+=O.toA-O.fromA;let f=i.sliceString(c+O.fromA,c+O.toA);if(/\n/.test(f))break e;a.push(D.widget({widget:new Cr(f),side:-1}).range(l+O.fromB))}O.fromB<O.toB&&a.push(sn.range(l+O.fromB,l+O.toB))}d<t.endA-t.fromA-r*2&&(n=a)}return gt.set(t,n),n}class Cr extends Ne{constructor(t){super(),this.text=t}eq(t){return this.text==t.text}toDOM(t){let n=document.createElement("del");return n.className="cm-deletedText",n.textContent=this.text,n}}const Er=new class extends Le{constructor(){super(...arguments),this.elementClass="cm-inlineChangedLineGutter"}},Ur=D.line({class:"cm-inlineChangedLine"});function Vr(e,t,n,i){let o=ln(e,t),r=0;if(!o)return!1;for(let s=e.doc.lineAt(t.fromB);;){for(i&&i.add(s.from,s.from,Er),n.add(s.from,s.from,Ur);r<o.length&&o[r].to<=s.to;){let a=o[r++];n.add(a.from,a.to,a.value)}if(s.to>=t.endB)break;s=e.doc.lineAt(s.to+1)}return!0}const Gr=["zip","tar","gz","rar","7z","bz2","xz","exe","dll","so","dylib","app","dmg","msi","mp3","mp4","wav","avi","mov","mkv","flv","wmv","m4a","ogg","pdf","doc","docx","xls","xlsx","ppt","pptx","odt","ods","odp","ttf","otf","woff","woff2","eot","db","sqlite","sqlite3","bin","dat","iso","img","class","jar","war","pyc","pyo"],pt=e=>{const t=e.split(".").pop()?.toLowerCase();return Gr.includes(t??"")},dn={png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif",svg:"image/svg+xml",webp:"image/webp",ico:"image/x-icon",bmp:"image/bmp",avif:"image/avif",apng:"image/apng",pdf:"application/pdf",mp4:"video/mp4",webm:"video/webm",ogv:"video/ogg",mov:"video/quicktime",m4v:"video/x-m4v",mp3:"audio/mpeg",wav:"audio/wav",m4a:"audio/mp4",aac:"audio/aac",flac:"audio/flac",opus:"audio/opus",oga:"audio/ogg",ogg:"audio/ogg",weba:"audio/webm"},cn=e=>e.split(".").pop()?.toLowerCase()??"",Lr=e=>e==="application/pdf"?"pdf":e.startsWith("image/")?"image":e.startsWith("video/")?"video":e.startsWith("audio/")?"audio":null,Qt=e=>{const t=dn[cn(e)];return t?Lr(t):null},xt=e=>dn[cn(e)],vt=e=>e instanceof Error?e.message:String(e),Nr=({file:e,projectPath:t})=>{const[n,i]=S.useState(""),[o,r]=S.useState(!0),[s,a]=S.useState(!1),[d,c]=S.useState(!1),[l,O]=S.useState(null),[f,m]=S.useState(!1),u=Qt(e.name),g=e.projectId??t,p=e.path,Q=e.name,k=e.diffInfo?.new_string,$=e.diffInfo?.old_string;S.useEffect(()=>{(async()=>{try{if(r(!0),m(!1),Qt(e.name)){i(""),r(!1);return}if(pt(e.name)){i(""),m(!0),r(!1);return}if(e.diffInfo&&k!==void 0&&$!==void 0){i(k),r(!1);return}if(!g)throw new Error("Missing project identifier");const T=await He.readFile(g,p);if(!T.ok)throw new Error(`Failed to load file: ${T.status} ${T.statusText}`);const b=await T.json();i(b.content)}catch(T){const b=vt(T);console.error("Error loading file:",T),i(`// Error loading file: ${b}
3
+ `,T);if(z>-1&&z<P&&(b=z),a&&p<g.length){let W=Math.max(0,Q?g[p].toA:g[p].fromA);W<=b&&(b=W,Q&&p++,R=!0)}if(b>T){let W=document.createTextNode(f.slice(T,b));if(V){let E=u.appendChild(document.createElement("span"));E.className=V,E.appendChild(W)}else u.appendChild(W);T=b}R&&(Q=!Q)}}if(m&&t.toA-t.fromA<=c){let y=m.parser.parse(f),P=0;Ce(y,{style:v=>Et(e,v)},(v,T,b)=>{v>P&&$(P,v,""),$(v,T,b),P=T}),$(P,f.length,"")}else $(0,f.length,"");return u.firstChild||u.appendChild(document.createElement("br")),O},r=D.widget({block:!0,side:-1,widget:new On(o)});return mt.set(t.changes,r),r}function Xr(e,t){let{state:n}=e,i=t??n.selection.main.head,o=e.state.field(C).find(d=>d.fromB<=i&&d.endB>=i);if(!o)return!1;let r=e.state.sliceDoc(o.fromB,Math.max(o.fromB,o.toB-1)),s=e.state.field(re);o.fromB!=o.toB&&o.toA<=s.length&&(r+=e.state.lineBreak);let a=Pn.of({from:o.fromA,to:Math.min(s.length,o.toA),insert:r},s.length);return e.dispatch({effects:Ie.of({doc:a.apply(s),changes:a}),userEvent:"accept"}),!0}function zr(e,t){let{state:n}=e,i=t??n.selection.main.head,o=n.field(C).find(a=>a.fromB<=i&&a.endB>=i);if(!o)return!1;let s=n.field(re).sliceString(o.fromA,Math.max(o.fromA,o.toA-1));return o.fromA!=o.toA&&o.toB<=n.doc.length&&(s+=n.lineBreak),e.dispatch({changes:{from:o.fromB,to:Math.min(n.doc.length,o.toB),insert:s},userEvent:"revert"}),!0}function ut(e){let t=new Te;for(let n of e.field(C)){let i=e.facet(A).overrideChunk&&ln(e,n);t.add(n.fromB,n.fromB,Rr(e,n,!!i))}return t.finish()}const _r=he.define({create:e=>ut(e),update(e,t){return t.state.field(C,!1)!=t.startState.field(C,!1)?ut(t.state):e},provide:e=>U.decorations.from(e)}),gt=new WeakMap;function ln(e,t){let n=gt.get(t);if(n!==void 0)return n;n=null;let i=e.field(re),o=e.doc,r=i.lineAt(t.endA).number-i.lineAt(t.fromA).number+1,s=o.lineAt(t.endB).number-o.lineAt(t.fromB).number+1;e:if(r==s&&r<10){let a=[],d=0,c=t.fromA,l=t.fromB;for(let O of t.changes){if(O.fromA<O.toA){d+=O.toA-O.fromA;let f=i.sliceString(c+O.fromA,c+O.toA);if(/\n/.test(f))break e;a.push(D.widget({widget:new Cr(f),side:-1}).range(l+O.fromB))}O.fromB<O.toB&&a.push(sn.range(l+O.fromB,l+O.toB))}d<t.endA-t.fromA-r*2&&(n=a)}return gt.set(t,n),n}class Cr extends Ne{constructor(t){super(),this.text=t}eq(t){return this.text==t.text}toDOM(t){let n=document.createElement("del");return n.className="cm-deletedText",n.textContent=this.text,n}}const Er=new class extends Le{constructor(){super(...arguments),this.elementClass="cm-inlineChangedLineGutter"}},Ur=D.line({class:"cm-inlineChangedLine"});function Vr(e,t,n,i){let o=ln(e,t),r=0;if(!o)return!1;for(let s=e.doc.lineAt(t.fromB);;){for(i&&i.add(s.from,s.from,Er),n.add(s.from,s.from,Ur);r<o.length&&o[r].to<=s.to;){let a=o[r++];n.add(a.from,a.to,a.value)}if(s.to>=t.endB)break;s=e.doc.lineAt(s.to+1)}return!0}const Gr=["zip","tar","gz","rar","7z","bz2","xz","exe","dll","so","dylib","app","dmg","msi","mp3","mp4","wav","avi","mov","mkv","flv","wmv","m4a","ogg","pdf","doc","docx","xls","xlsx","ppt","pptx","odt","ods","odp","ttf","otf","woff","woff2","eot","db","sqlite","sqlite3","bin","dat","iso","img","class","jar","war","pyc","pyo"],pt=e=>{const t=e.split(".").pop()?.toLowerCase();return Gr.includes(t??"")},dn={png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif",svg:"image/svg+xml",webp:"image/webp",ico:"image/x-icon",bmp:"image/bmp",avif:"image/avif",apng:"image/apng",pdf:"application/pdf",mp4:"video/mp4",webm:"video/webm",ogv:"video/ogg",mov:"video/quicktime",m4v:"video/x-m4v",mp3:"audio/mpeg",wav:"audio/wav",m4a:"audio/mp4",aac:"audio/aac",flac:"audio/flac",opus:"audio/opus",oga:"audio/ogg",ogg:"audio/ogg",weba:"audio/webm"},cn=e=>e.split(".").pop()?.toLowerCase()??"",Lr=e=>e==="application/pdf"?"pdf":e.startsWith("image/")?"image":e.startsWith("video/")?"video":e.startsWith("audio/")?"audio":null,Qt=e=>{const t=dn[cn(e)];return t?Lr(t):null},xt=e=>dn[cn(e)],vt=e=>e instanceof Error?e.message:String(e),Nr=({file:e,projectPath:t})=>{const[n,i]=S.useState(""),[o,r]=S.useState(!0),[s,a]=S.useState(!1),[d,c]=S.useState(!1),[l,O]=S.useState(null),[f,m]=S.useState(!1),u=Qt(e.name),g=e.projectId??t,p=e.path,Q=e.name,k=e.diffInfo?.new_string,$=e.diffInfo?.old_string;S.useEffect(()=>{(async()=>{try{if(r(!0),m(!1),Qt(e.name)){i(""),r(!1);return}if(pt(e.name)){i(""),m(!0),r(!1);return}if(e.diffInfo&&k!==void 0&&$!==void 0){i(k),r(!1);return}if(!g)throw new Error("Missing project identifier");const T=await Ke.readFile(g,p);if(!T.ok)throw new Error(`Failed to load file: ${T.status} ${T.statusText}`);const b=await T.json();i(b.content)}catch(T){const b=vt(T);console.error("Error loading file:",T),i(`// Error loading file: ${b}
4
4
  // File: ${Q}
5
- // Path: ${p}`)}finally{r(!1)}})()},[e.diffInfo,e.name,k,$,Q,p,g]);const y=S.useCallback(async()=>{if(!(u||pt(Q))){a(!0),O(null);try{if(!g)throw new Error("Missing project identifier");const v=await He.saveFile(g,p,n);if(!v.ok){if(v.headers.get("content-type")?.includes("application/json")){const V=await v.json();throw new Error(V.error||`Save failed: ${v.status}`)}const b=await v.text();throw console.error("Non-JSON error response:",b),new Error(`Save failed: ${v.status} ${v.statusText}`)}await v.json(),c(!0),setTimeout(()=>c(!1),2e3)}catch(v){const T=vt(v);console.error("Error saving file:",v),O(T)}finally{a(!1)}}},[n,p,g,u,Q]),P=S.useCallback(()=>{const v=new Blob([n],{type:"text/plain"}),T=URL.createObjectURL(v),b=document.createElement("a");b.href=T,b.download=e.name,document.body.appendChild(b),b.click(),document.body.removeChild(b),URL.revokeObjectURL(T)},[n,e.name]);return{content:n,setContent:i,loading:o,saving:s,saveSuccess:d,saveError:l,isBinary:f,previewKind:u,fileProjectId:g,handleSave:y,handleDownload:P}},F={wordWrap:"codeEditorWordWrap",showMinimap:"codeEditorShowMinimap",lineNumbers:"codeEditorLineNumbers",fontSize:"codeEditorFontSize"},le={minimapEnabled:!0,showLineNumbers:!0,fontSize:"12"},Tt="codeEditorSettingsChanged",pe=(e,t,n="false")=>{const i=localStorage.getItem(e);return i===null?t:i!==n},St=()=>localStorage.getItem(F.wordWrap)==="true",yt=()=>{const e=localStorage.getItem(F.fontSize);return Number(e??le.fontSize)},Mr=()=>{const[e,t]=S.useState(St),[n,i]=S.useState(()=>pe(F.showMinimap,le.minimapEnabled)),[o,r]=S.useState(()=>pe(F.lineNumbers,le.showLineNumbers)),[s,a]=S.useState(yt);return S.useEffect(()=>{localStorage.setItem(F.wordWrap,String(e))},[e]),S.useEffect(()=>{const d=()=>{t(St()),i(pe(F.showMinimap,le.minimapEnabled)),r(pe(F.lineNumbers,le.showLineNumbers)),a(yt())};return window.addEventListener("storage",d),window.addEventListener(Tt,d),()=>{window.removeEventListener("storage",d),window.removeEventListener(Tt,d)}},[]),{wordWrap:e,setWordWrap:t,minimapEnabled:n,setMinimapEnabled:i,showLineNumbers:o,setShowLineNumbers:r,fontSize:s,setFontSize:a}},Zr=({onSave:e,onClose:t,dependency:n})=>{S.useEffect(()=>{const i=o=>{if(o.key==="Escape"){o.preventDefault(),t();return}(o.ctrlKey||o.metaKey)&&o.key.toLowerCase()==="s"&&(o.preventDefault(),e())};return document.addEventListener("keydown",i),()=>{document.removeEventListener("keydown",i)}},[n,t,e])},Ar=Vt({String:x.string,Number:x.number,"True False":x.bool,PropertyName:x.propertyName,Null:x.null,", :":x.separator,"[ ]":x.squareBracket,"{ }":x.brace}),Dr=Ut.deserialize({version:14,states:"$bOVQPOOOOQO'#Cb'#CbOnQPO'#CeOvQPO'#ClOOQO'#Cr'#CrQOQPOOOOQO'#Cg'#CgO}QPO'#CfO!SQPO'#CtOOQO,59P,59PO![QPO,59PO!aQPO'#CuOOQO,59W,59WO!iQPO,59WOVQPO,59QOqQPO'#CmO!nQPO,59`OOQO1G.k1G.kOVQPO'#CnO!vQPO,59aOOQO1G.r1G.rOOQO1G.l1G.lOOQO,59X,59XOOQO-E6k-E6kOOQO,59Y,59YOOQO-E6l-E6l",stateData:"#O~OeOS~OQSORSOSSOTSOWQO_ROgPO~OVXOgUO~O^[O~PVO[^O~O]_OVhX~OVaO~O]bO^iX~O^dO~O]_OVha~O]bO^ia~O",goto:"!kjPPPPPPkPPkqwPPPPk{!RPPP!XP!e!hXSOR^bQWQRf_TVQ_Q`WRg`QcZRicQTOQZRQe^RhbRYQR]R",nodeNames:"⚠ JsonText True False Null Number String } { Object Property PropertyName : , ] [ Array",maxTerm:25,nodeProps:[["isolate",-2,6,11,""],["openedBy",7,"{",14,"["],["closedBy",8,"}",15,"]"]],propSources:[Ar],skippedNodes:[0],repeatNodeCount:2,tokenData:"(|~RaXY!WYZ!W]^!Wpq!Wrs!]|}$u}!O$z!Q!R%T!R![&c![!]&t!}#O&y#P#Q'O#Y#Z'T#b#c'r#h#i(Z#o#p(r#q#r(w~!]Oe~~!`Wpq!]qr!]rs!xs#O!]#O#P!}#P;'S!];'S;=`$o<%lO!]~!}Og~~#QXrs!]!P!Q!]#O#P!]#U#V!]#Y#Z!]#b#c!]#f#g!]#h#i!]#i#j#m~#pR!Q![#y!c!i#y#T#Z#y~#|R!Q![$V!c!i$V#T#Z$V~$YR!Q![$c!c!i$c#T#Z$c~$fR!Q![!]!c!i!]#T#Z!]~$rP;=`<%l!]~$zO]~~$}Q!Q!R%T!R![&c~%YRT~!O!P%c!g!h%w#X#Y%w~%fP!Q![%i~%nRT~!Q![%i!g!h%w#X#Y%w~%zR{|&T}!O&T!Q![&Z~&WP!Q![&Z~&`PT~!Q![&Z~&hST~!O!P%c!Q![&c!g!h%w#X#Y%w~&yO[~~'OO_~~'TO^~~'WP#T#U'Z~'^P#`#a'a~'dP#g#h'g~'jP#X#Y'm~'rOR~~'uP#i#j'x~'{P#`#a(O~(RP#`#a(U~(ZOS~~(^P#f#g(a~(dP#i#j(g~(jP#X#Y(m~(rOQ~~(wOW~~(|OV~",tokenizers:[0],topRules:{JsonText:[0,1]},tokenPrec:0}),Ir=Lt.define({name:"json",parser:Dr.configure({props:[Nt.add({Object:Ke({except:/^\s*\}/}),Array:Ke({except:/^\s*\]/})}),Mt.add({"Object Array":Zt})]}),languageData:{closeBrackets:{brackets:["[","{",'"']},indentOnInput:/^\s*[\}\]]$/}});function Br(){return new Gt(Ir)}const Yr=1,hn=194,fn=195,Fr=196,bt=197,Hr=198,Jr=199,Kr=200,ei=2,mn=3,wt=201,ti=24,ni=25,ri=49,ii=50,oi=55,ai=56,si=57,Oi=59,li=60,di=61,ci=62,hi=63,fi=65,mi=238,ui=71,gi=241,pi=242,Qi=243,xi=244,vi=245,Ti=246,Si=247,yi=248,un=72,bi=249,wi=250,ki=251,Pi=252,$i=253,qi=254,ji=255,Wi=256,Ri=73,Xi=77,zi=263,_i=112,Ci=130,Ei=151,Ui=152,Vi=155,K=10,ce=13,Be=32,we=9,Ye=35,Gi=40,Li=46,Ve=123,kt=125,gn=39,pn=34,Pt=92,Ni=111,Mi=120,Zi=78,Ai=117,Di=85,Ii=new Set([ni,ri,ii,zi,fi,Ci,ai,si,mi,ci,hi,un,Ri,Xi,li,di,Ei,Ui,Vi,_i]);function We(e){return e==K||e==ce}function Re(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}const Bi=new be((e,t)=>{let n;if(e.next<0)e.acceptToken(Jr);else if(t.context.flags&xe)We(e.next)&&e.acceptToken(Hr,1);else if(((n=e.peek(-1))<0||We(n))&&t.canShift(bt)){let i=0;for(;e.next==Be||e.next==we;)e.advance(),i++;(e.next==K||e.next==ce||e.next==Ye)&&e.acceptToken(bt,-i)}else We(e.next)&&e.acceptToken(Fr,1)},{contextual:!0}),Yi=new be((e,t)=>{let n=t.context;if(n.flags)return;let i=e.peek(-1);if(i==K||i==ce){let o=0,r=0;for(;;){if(e.next==Be)o++;else if(e.next==we)o+=8-o%8;else break;e.advance(),r++}o!=n.indent&&e.next!=K&&e.next!=ce&&e.next!=Ye&&(o<n.indent?e.acceptToken(fn,-r):e.acceptToken(hn))}}),xe=1,Qn=2,L=4,N=8,M=16,Z=32;function ve(e,t,n){this.parent=e,this.indent=t,this.flags=n,this.hash=(e?e.hash+e.hash<<8:0)+t+(t<<4)+n+(n<<6)}const Fi=new ve(null,0,0);function Hi(e){let t=0;for(let n=0;n<e.length;n++)t+=e.charCodeAt(n)==we?8-t%8:1;return t}const $t=new Map([[gi,0],[pi,L],[Qi,N],[xi,N|L],[vi,M],[Ti,M|L],[Si,M|N],[yi,M|N|L],[bi,Z],[wi,Z|L],[ki,Z|N],[Pi,Z|N|L],[$i,Z|M],[qi,Z|M|L],[ji,Z|M|N],[Wi,Z|M|N|L]].map(([e,t])=>[e,t|Qn])),Ji=new Gn({start:Fi,reduce(e,t,n,i){return e.flags&xe&&Ii.has(t)||(t==ui||t==un)&&e.flags&Qn?e.parent:e},shift(e,t,n,i){return t==hn?new ve(e,Hi(i.read(i.pos,n.pos)),0):t==fn?e.parent:t==ti||t==oi||t==Oi||t==mn?new ve(e,0,xe):$t.has(t)?new ve(e,0,$t.get(t)|e.flags&xe):e},hash(e){return e.hash}}),Ki=new be(e=>{for(let t=0;t<5;t++){if(e.next!="print".charCodeAt(t))return;e.advance()}if(!/\w/.test(String.fromCharCode(e.next)))for(let t=0;;t++){let n=e.peek(t);if(!(n==Be||n==we)){n!=Gi&&n!=Li&&n!=K&&n!=ce&&n!=Ye&&e.acceptToken(Yr);return}}}),eo=new be((e,t)=>{let{flags:n}=t.context,i=n&L?pn:gn,o=(n&N)>0,r=!(n&M),s=(n&Z)>0,a=e.pos;for(;!(e.next<0);)if(s&&e.next==Ve)if(e.peek(1)==Ve)e.advance(2);else{if(e.pos==a){e.acceptToken(mn,1);return}break}else if(r&&e.next==Pt){if(e.pos==a){e.advance();let d=e.next;d>=0&&(e.advance(),to(e,d)),e.acceptToken(ei);return}break}else if(e.next==Pt&&!r&&e.peek(1)>-1)e.advance(2);else if(e.next==i&&(!o||e.peek(1)==i&&e.peek(2)==i)){if(e.pos==a){e.acceptToken(wt,o?3:1);return}break}else if(e.next==K){if(o)e.advance();else if(e.pos==a){e.acceptToken(wt);return}break}else e.advance();e.pos>a&&e.acceptToken(Kr)});function to(e,t){if(t==Ni)for(let n=0;n<2&&e.next>=48&&e.next<=55;n++)e.advance();else if(t==Mi)for(let n=0;n<2&&Re(e.next);n++)e.advance();else if(t==Ai)for(let n=0;n<4&&Re(e.next);n++)e.advance();else if(t==Di)for(let n=0;n<8&&Re(e.next);n++)e.advance();else if(t==Zi&&e.next==Ve){for(e.advance();e.next>=0&&e.next!=kt&&e.next!=gn&&e.next!=pn&&e.next!=K;)e.advance();e.next==kt&&e.advance()}}const no=Vt({'async "*" "**" FormatConversion FormatSpec':x.modifier,"for while if elif else try except finally return raise break continue with pass assert await yield match case":x.controlKeyword,"in not and or is del":x.operatorKeyword,"from def class global nonlocal lambda":x.definitionKeyword,import:x.moduleKeyword,"with as print":x.keyword,Boolean:x.bool,None:x.null,VariableName:x.variableName,"CallExpression/VariableName":x.function(x.variableName),"FunctionDefinition/VariableName":x.function(x.definition(x.variableName)),"ClassDefinition/VariableName":x.definition(x.className),PropertyName:x.propertyName,"CallExpression/MemberExpression/PropertyName":x.function(x.propertyName),Comment:x.lineComment,Number:x.number,String:x.string,FormatString:x.special(x.string),Escape:x.escape,UpdateOp:x.updateOperator,"ArithOp!":x.arithmeticOperator,BitOp:x.bitwiseOperator,CompareOp:x.compareOperator,AssignOp:x.definitionOperator,Ellipsis:x.punctuation,At:x.meta,"( )":x.paren,"[ ]":x.squareBracket,"{ }":x.brace,".":x.derefOperator,", ;":x.separator}),ro={__proto__:null,await:44,or:54,and:56,in:60,not:62,is:64,if:70,else:72,lambda:76,yield:94,from:96,async:102,for:104,None:162,True:164,False:164,del:178,pass:182,break:186,continue:190,return:194,raise:202,import:206,as:208,global:212,nonlocal:214,assert:218,type:223,elif:236,while:240,try:246,except:248,finally:250,with:254,def:258,class:268,match:279,case:285},io=Ut.deserialize({version:14,states:"##jO`QeOOP$}OSOOO&WQtO'#HUOOQS'#Co'#CoOOQS'#Cp'#CpO'vQdO'#CnO*UQtO'#HTOOQS'#HU'#HUOOQS'#DU'#DUOOQS'#HT'#HTO*rQdO'#D_O+VQdO'#DfO+gQdO'#DjO+zOWO'#DuO,VOWO'#DvO.[QtO'#GuOOQS'#Gu'#GuO'vQdO'#GtO0ZQtO'#GtOOQS'#Eb'#EbO0rQdO'#EcOOQS'#Gs'#GsO0|QdO'#GrOOQV'#Gr'#GrO1XQdO'#FYOOQS'#G^'#G^O1^QdO'#FXOOQV'#IS'#ISOOQV'#Gq'#GqOOQV'#Fq'#FqQ`QeOOO'vQdO'#CqO1lQdO'#C}O1sQdO'#DRO2RQdO'#HYO2cQtO'#EVO'vQdO'#EWOOQS'#EY'#EYOOQS'#E['#E[OOQS'#E^'#E^O2wQdO'#E`O3_QdO'#EdO3rQdO'#EfO3zQtO'#EfO1XQdO'#EiO0rQdO'#ElO1XQdO'#EnO0rQdO'#EtO0rQdO'#EwO4VQdO'#EyO4^QdO'#FOO4iQdO'#EzO0rQdO'#FOO1XQdO'#FQO1XQdO'#FVO4nQdO'#F[P4uOdO'#GpPOOO)CBd)CBdOOQS'#Ce'#CeOOQS'#Cf'#CfOOQS'#Cg'#CgOOQS'#Ch'#ChOOQS'#Ci'#CiOOQS'#Cj'#CjOOQS'#Cl'#ClO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO5TQdO'#DoOOQS,5:Y,5:YO5hQdO'#HdOOQS,5:],5:]O5uQ!fO,5:]O5zQtO,59YO1lQdO,59bO1lQdO,59bO1lQdO,59bO8jQdO,59bO8oQdO,59bO8vQdO,59jO8}QdO'#HTO:TQdO'#HSOOQS'#HS'#HSOOQS'#D['#D[O:lQdO,59aO'vQdO,59aO:zQdO,59aOOQS,59y,59yO;PQdO,5:RO'vQdO,5:ROOQS,5:Q,5:QO;_QdO,5:QO;dQdO,5:XO'vQdO,5:XO'vQdO,5:VOOQS,5:U,5:UO;uQdO,5:UO;zQdO,5:WOOOW'#Fy'#FyO<POWO,5:aOOQS,5:a,5:aO<[QdO'#HwOOOW'#Dw'#DwOOOW'#Fz'#FzO<lOWO,5:bOOQS,5:b,5:bOOQS'#F}'#F}O<zQtO,5:iO?lQtO,5=`O@VQ#xO,5=`O@vQtO,5=`OOQS,5:},5:}OA_QeO'#GWOBqQdO,5;^OOQV,5=^,5=^OB|QtO'#IPOCkQdO,5;tOOQS-E:[-E:[OOQV,5;s,5;sO4dQdO'#FQOOQV-E9o-E9oOCsQtO,59]OEzQtO,59iOFeQdO'#HVOFpQdO'#HVO1XQdO'#HVOF{QdO'#DTOGTQdO,59mOGYQdO'#HZO'vQdO'#HZO0rQdO,5=tOOQS,5=t,5=tO0rQdO'#EROOQS'#ES'#ESOGwQdO'#GPOHXQdO,58|OHXQdO,58|O*xQdO,5:oOHgQtO'#H]OOQS,5:r,5:rOOQS,5:z,5:zOHzQdO,5;OOI]QdO'#IOO1XQdO'#H}OOQS,5;Q,5;QOOQS'#GT'#GTOIqQtO,5;QOJPQdO,5;QOJUQdO'#IQOOQS,5;T,5;TOJdQdO'#H|OOQS,5;W,5;WOJuQdO,5;YO4iQdO,5;`O4iQdO,5;cOJ}QtO'#ITO'vQdO'#ITOKXQdO,5;eO4VQdO,5;eO0rQdO,5;jO1XQdO,5;lOK^QeO'#EuOLjQgO,5;fO!!kQdO'#IUO4iQdO,5;jO!!vQdO,5;lO!#OQdO,5;qO!#ZQtO,5;vO'vQdO,5;vPOOO,5=[,5=[P!#bOSO,5=[P!#jOdO,5=[O!&bQtO1G.jO!&iQtO1G.jO!)YQtO1G.jO!)dQtO1G.jO!+}QtO1G.jO!,bQtO1G.jO!,uQdO'#HcO!-TQtO'#GuO0rQdO'#HcO!-_QdO'#HbOOQS,5:Z,5:ZO!-gQdO,5:ZO!-lQdO'#HeO!-wQdO'#HeO!.[QdO,5>OOOQS'#Ds'#DsOOQS1G/w1G/wOOQS1G.|1G.|O!/[QtO1G.|O!/cQtO1G.|O1lQdO1G.|O!0OQdO1G/UOOQS'#DZ'#DZO0rQdO,59tOOQS1G.{1G.{O!0VQdO1G/eO!0gQdO1G/eO!0oQdO1G/fO'vQdO'#H[O!0tQdO'#H[O!0yQtO1G.{O!1ZQdO,59iO!2aQdO,5=zO!2qQdO,5=zO!2yQdO1G/mO!3OQtO1G/mOOQS1G/l1G/lO!3`QdO,5=uO!4VQdO,5=uO0rQdO1G/qO!4tQdO1G/sO!4yQtO1G/sO!5ZQtO1G/qOOQS1G/p1G/pOOQS1G/r1G/rOOOW-E9w-E9wOOQS1G/{1G/{O!5kQdO'#HxO0rQdO'#HxO!5|QdO,5>cOOOW-E9x-E9xOOQS1G/|1G/|OOQS-E9{-E9{O!6[Q#xO1G2zO!6{QtO1G2zO'vQdO,5<jOOQS,5<j,5<jOOQS-E9|-E9|OOQS,5<r,5<rOOQS-E:U-E:UOOQV1G0x1G0xO1XQdO'#GRO!7dQtO,5>kOOQS1G1`1G1`O!8RQdO1G1`OOQS'#DV'#DVO0rQdO,5=qOOQS,5=q,5=qO!8WQdO'#FrO!8cQdO,59oO!8kQdO1G/XO!8uQtO,5=uOOQS1G3`1G3`OOQS,5:m,5:mO!9fQdO'#GtOOQS,5<k,5<kOOQS-E9}-E9}O!9wQdO1G.hOOQS1G0Z1G0ZO!:VQdO,5=wO!:gQdO,5=wO0rQdO1G0jO0rQdO1G0jO!:xQdO,5>jO!;ZQdO,5>jO1XQdO,5>jO!;lQdO,5>iOOQS-E:R-E:RO!;qQdO1G0lO!;|QdO1G0lO!<RQdO,5>lO!<aQdO,5>lO!<oQdO,5>hO!=VQdO,5>hO!=hQdO'#EpO0rQdO1G0tO!=sQdO1G0tO!=xQgO1G0zO!AvQgO1G0}O!EqQdO,5>oO!E{QdO,5>oO!FTQtO,5>oO0rQdO1G1PO!F_QdO1G1PO4iQdO1G1UO!!vQdO1G1WOOQV,5;a,5;aO!FdQfO,5;aO!FiQgO1G1QO!JjQdO'#GZO4iQdO1G1QO4iQdO1G1QO!JzQdO,5>pO!KXQdO,5>pO1XQdO,5>pOOQV1G1U1G1UO!KaQdO'#FSO!KrQ!fO1G1WO!KzQdO1G1WOOQV1G1]1G1]O4iQdO1G1]O!LPQdO1G1]O!LXQdO'#F^OOQV1G1b1G1bO!#ZQtO1G1bPOOO1G2v1G2vP!L^OSO1G2vOOQS,5=},5=}OOQS'#Dp'#DpO0rQdO,5=}O!LfQdO,5=|O!LyQdO,5=|OOQS1G/u1G/uO!MRQdO,5>PO!McQdO,5>PO!MkQdO,5>PO!NOQdO,5>PO!N`QdO,5>POOQS1G3j1G3jOOQS7+$h7+$hO!8kQdO7+$pO#!RQdO1G.|O#!YQdO1G.|OOQS1G/`1G/`OOQS,5<`,5<`O'vQdO,5<`OOQS7+%P7+%PO#!aQdO7+%POOQS-E9r-E9rOOQS7+%Q7+%QO#!qQdO,5=vO'vQdO,5=vOOQS7+$g7+$gO#!vQdO7+%PO##OQdO7+%QO##TQdO1G3fOOQS7+%X7+%XO##eQdO1G3fO##mQdO7+%XOOQS,5<_,5<_O'vQdO,5<_O##rQdO1G3aOOQS-E9q-E9qO#$iQdO7+%]OOQS7+%_7+%_O#$wQdO1G3aO#%fQdO7+%_O#%kQdO1G3gO#%{QdO1G3gO#&TQdO7+%]O#&YQdO,5>dO#&sQdO,5>dO#&sQdO,5>dOOQS'#Dx'#DxO#'UO&jO'#DzO#'aO`O'#HyOOOW1G3}1G3}O#'fQdO1G3}O#'nQdO1G3}O#'yQ#xO7+(fO#(jQtO1G2UP#)TQdO'#GOOOQS,5<m,5<mOOQS-E:P-E:POOQS7+&z7+&zOOQS1G3]1G3]OOQS,5<^,5<^OOQS-E9p-E9pOOQS7+$s7+$sO#)bQdO,5=`O#){QdO,5=`O#*^QtO,5<aO#*qQdO1G3cOOQS-E9s-E9sOOQS7+&U7+&UO#+RQdO7+&UO#+aQdO,5<nO#+uQdO1G4UOOQS-E:Q-E:QO#,WQdO1G4UOOQS1G4T1G4TOOQS7+&W7+&WO#,iQdO7+&WOOQS,5<p,5<pO#,tQdO1G4WOOQS-E:S-E:SOOQS,5<l,5<lO#-SQdO1G4SOOQS-E:O-E:OO1XQdO'#EqO#-jQdO'#EqO#-uQdO'#IRO#-}QdO,5;[OOQS7+&`7+&`O0rQdO7+&`O#.SQgO7+&fO!JmQdO'#GXO4iQdO7+&fO4iQdO7+&iO#2QQtO,5<tO'vQdO,5<tO#2[QdO1G4ZOOQS-E:W-E:WO#2fQdO1G4ZO4iQdO7+&kO0rQdO7+&kOOQV7+&p7+&pO!KrQ!fO7+&rO!KzQdO7+&rO`QeO1G0{OOQV-E:X-E:XO4iQdO7+&lO4iQdO7+&lOOQV,5<u,5<uO#2nQdO,5<uO!JmQdO,5<uOOQV7+&l7+&lO#2yQgO7+&lO#6tQdO,5<vO#7PQdO1G4[OOQS-E:Y-E:YO#7^QdO1G4[O#7fQdO'#IWO#7tQdO'#IWO1XQdO'#IWOOQS'#IW'#IWO#8PQdO'#IVOOQS,5;n,5;nO#8XQdO,5;nO0rQdO'#FUOOQV7+&r7+&rO4iQdO7+&rOOQV7+&w7+&wO4iQdO7+&wO#8^QfO,5;xOOQV7+&|7+&|POOO7+(b7+(bO#8cQdO1G3iOOQS,5<c,5<cO#8qQdO1G3hOOQS-E9u-E9uO#9UQdO,5<dO#9aQdO,5<dO#9tQdO1G3kOOQS-E9v-E9vO#:UQdO1G3kO#:^QdO1G3kO#:nQdO1G3kO#:UQdO1G3kOOQS<<H[<<H[O#:yQtO1G1zOOQS<<Hk<<HkP#;WQdO'#FtO8vQdO1G3bO#;eQdO1G3bO#;jQdO<<HkOOQS<<Hl<<HlO#;zQdO7+)QOOQS<<Hs<<HsO#<[QtO1G1yP#<{QdO'#FsO#=YQdO7+)RO#=jQdO7+)RO#=rQdO<<HwO#=wQdO7+({OOQS<<Hy<<HyO#>nQdO,5<bO'vQdO,5<bOOQS-E9t-E9tOOQS<<Hw<<HwOOQS,5<g,5<gO0rQdO,5<gO#>sQdO1G4OOOQS-E9y-E9yO#?^QdO1G4OO<[QdO'#H{OOOO'#D{'#D{OOOO'#F|'#F|O#?oO&jO,5:fOOOW,5>e,5>eOOOW7+)i7+)iO#?zQdO7+)iO#@SQdO1G2zO#@mQdO1G2zP'vQdO'#FuO0rQdO<<IpO1XQdO1G2YP1XQdO'#GSO#AOQdO7+)pO#AaQdO7+)pOOQS<<Ir<<IrP1XQdO'#GUP0rQdO'#GQOOQS,5;],5;]O#ArQdO,5>mO#BQQdO,5>mOOQS1G0v1G0vOOQS<<Iz<<IzOOQV-E:V-E:VO4iQdO<<JQOOQV,5<s,5<sO4iQdO,5<sOOQV<<JQ<<JQOOQV<<JT<<JTO#BYQtO1G2`P#BdQdO'#GYO#BkQdO7+)uO#BuQgO<<JVO4iQdO<<JVOOQV<<J^<<J^O4iQdO<<J^O!KrQ!fO<<J^O#FpQgO7+&gOOQV<<JW<<JWO#FzQgO<<JWOOQV1G2a1G2aO1XQdO1G2aO#JuQdO1G2aO4iQdO<<JWO1XQdO1G2bP0rQdO'#G[O#KQQdO7+)vO#K_QdO7+)vOOQS'#FT'#FTO0rQdO,5>rO#KgQdO,5>rO#KrQdO,5>rO#K}QdO,5>qO#L`QdO,5>qOOQS1G1Y1G1YOOQS,5;p,5;pOOQV<<Jc<<JcO#LhQdO1G1dOOQS7+)T7+)TP#LmQdO'#FwO#L}QdO1G2OO#MbQdO1G2OO#MrQdO1G2OP#M}QdO'#FxO#N[QdO7+)VO#NlQdO7+)VO#NlQdO7+)VO#NtQdO7+)VO$ UQdO7+(|O8vQdO7+(|OOQSAN>VAN>VO$ oQdO<<LmOOQSAN>cAN>cO0rQdO1G1|O$!PQtO1G1|P$!ZQdO'#FvOOQS1G2R1G2RP$!hQdO'#F{O$!uQdO7+)jO$#`QdO,5>gOOOO-E9z-E9zOOOW<<MT<<MTO$#nQdO7+(fOOQSAN?[AN?[OOQS7+'t7+'tO$$XQdO<<M[OOQS,5<q,5<qO$$jQdO1G4XOOQS-E:T-E:TOOQVAN?lAN?lOOQV1G2_1G2_O4iQdOAN?qO$$xQgOAN?qOOQVAN?xAN?xO4iQdOAN?xOOQV<<JR<<JRO4iQdOAN?rO4iQdO7+'{OOQV7+'{7+'{O1XQdO7+'{OOQVAN?rAN?rOOQS7+'|7+'|O$(sQdO<<MbOOQS1G4^1G4^O0rQdO1G4^OOQS,5<w,5<wO$)QQdO1G4]OOQS-E:Z-E:ZOOQU'#G_'#G_O$)cQfO7+'OO$)nQdO'#F_O$*uQdO7+'jO$+VQdO7+'jOOQS7+'j7+'jO$+bQdO<<LqO$+rQdO<<LqO$+rQdO<<LqO$+zQdO'#H^OOQS<<Lh<<LhO$,UQdO<<LhOOQS7+'h7+'hOOQS'#D|'#D|OOOO1G4R1G4RO$,oQdO1G4RO$,wQdO1G4RP!=hQdO'#GVOOQVG25]G25]O4iQdOG25]OOQVG25dG25dOOQVG25^G25^OOQV<<Kg<<KgO4iQdO<<KgOOQS7+)x7+)xP$-SQdO'#G]OOQU-E:]-E:]OOQV<<Jj<<JjO$-vQtO'#FaOOQS'#Fc'#FcO$.WQdO'#FbO$.xQdO'#FbOOQS'#Fb'#FbO$.}QdO'#IYO$)nQdO'#FiO$)nQdO'#FiO$/fQdO'#FjO$)nQdO'#FkO$/mQdO'#IZOOQS'#IZ'#IZO$0[QdO,5;yOOQS<<KU<<KUO$0dQdO<<KUO$0tQdOANB]O$1UQdOANB]O$1^QdO'#H_OOQS'#H_'#H_O1sQdO'#DcO$1wQdO,5=xOOQSANBSANBSOOOO7+)m7+)mO$2`QdO7+)mOOQVLD*wLD*wOOQVANARANARO5uQ!fO'#GaO$2hQtO,5<SO$)nQdO'#FmOOQS,5<W,5<WOOQS'#Fd'#FdO$3YQdO,5;|O$3_QdO,5;|OOQS'#Fg'#FgO$)nQdO'#G`O$4PQdO,5<QO$4kQdO,5>tO$4{QdO,5>tO1XQdO,5<PO$5^QdO,5<TO$5cQdO,5<TO$)nQdO'#I[O$5hQdO'#I[O$5mQdO,5<UOOQS,5<V,5<VO0rQdO'#FpOOQU1G1e1G1eO4iQdO1G1eOOQSAN@pAN@pO$5rQdOG27wO$6SQdO,59}OOQS1G3d1G3dOOOO<<MX<<MXOOQS,5<{,5<{OOQS-E:_-E:_O$6XQtO'#FaO$6`QdO'#I]O$6nQdO'#I]O$6vQdO,5<XOOQS1G1h1G1hO$6{QdO1G1hO$7QQdO,5<zOOQS-E:^-E:^O$7lQdO,5=OO$8TQdO1G4`OOQS-E:b-E:bOOQS1G1k1G1kOOQS1G1o1G1oO$8eQdO,5>vO$)nQdO,5>vOOQS1G1p1G1pOOQS,5<[,5<[OOQU7+'P7+'PO$+zQdO1G/iO$)nQdO,5<YO$8sQdO,5>wO$8zQdO,5>wOOQS1G1s1G1sOOQS7+'S7+'SP$)nQdO'#GdO$9SQdO1G4bO$9^QdO1G4bO$9fQdO1G4bOOQS7+%T7+%TO$9tQdO1G1tO$:SQtO'#FaO$:ZQdO,5<}OOQS,5<},5<}O$:iQdO1G4cOOQS-E:a-E:aO$)nQdO,5<|O$:pQdO,5<|O$:uQdO7+)|OOQS-E:`-E:`O$;PQdO7+)|O$)nQdO,5<ZP$)nQdO'#GcO$;XQdO1G2hO$)nQdO1G2hP$;gQdO'#GbO$;nQdO<<MhO$;xQdO1G1uO$<WQdO7+(SO8vQdO'#C}O8vQdO,59bO8vQdO,59bO8vQdO,59bO$<fQtO,5=`O8vQdO1G.|O0rQdO1G/XO0rQdO7+$pP$<yQdO'#GOO'vQdO'#GtO$=WQdO,59bO$=]QdO,59bO$=dQdO,59mO$=iQdO1G/UO1sQdO'#DRO8vQdO,59j",stateData:"$>S~O%cOS%^OSSOS%]PQ~OPdOVaOfoOhYOopOs!POvqO!PrO!Q{O!T!SO!U!RO!XZO!][O!h`O!r`O!s`O!t`O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO#l!QO#o!TO#s!UO#u!VO#z!WO#}hO$P!XO%oRO%pRO%tSO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O~O%]!YO~OV!aO_!aOa!bOh!iO!X!kO!f!mO%j![O%k!]O%l!^O%m!_O%n!_O%o!`O%p!`O%q!aO%r!aO%s!aO~Ok%xXl%xXm%xXn%xXo%xXp%xXs%xXz%xX{%xX!x%xX#g%xX%[%xX%_%xX%z%xXg%xX!T%xX!U%xX%{%xX!W%xX![%xX!Q%xX#[%xXt%xX!m%xX~P%SOfoOhYO!XZO!][O!h`O!r`O!s`O!t`O%oRO%pRO%tSO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O~Oz%wX{%wX#g%wX%[%wX%_%wX%z%wX~Ok!pOl!qOm!oOn!oOo!rOp!sOs!tO!x%wX~P)pOV!zOg!|Oo0cOv0qO!PrO~P'vOV#OOo0cOv0qO!W#PO~P'vOV#SOa#TOo0cOv0qO![#UO~P'vOQ#XO%`#XO%a#ZO~OQ#^OR#[O%`#^O%a#`O~OV%iX_%iXa%iXh%iXk%iXl%iXm%iXn%iXo%iXp%iXs%iXz%iX!X%iX!f%iX%j%iX%k%iX%l%iX%m%iX%n%iX%o%iX%p%iX%q%iX%r%iX%s%iXg%iX!T%iX!U%iX~O&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O{%iX!x%iX#g%iX%[%iX%_%iX%z%iX%{%iX!W%iX![%iX!Q%iX#[%iXt%iX!m%iX~P,eOz#dO{%hX!x%hX#g%hX%[%hX%_%hX%z%hX~Oo0cOv0qO~P'vO#g#gO%[#iO%_#iO~O%uWO~O!T#nO#u!VO#z!WO#}hO~OopO~P'vOV#sOa#tO%uWO{wP~OV#xOo0cOv0qO!Q#yO~P'vO{#{O!x$QO%z#|O#g!yX%[!yX%_!yX~OV#xOo0cOv0qO#g#SX%[#SX%_#SX~P'vOo0cOv0qO#g#WX%[#WX%_#WX~P'vOh$WO%uWO~O!f$YO!r$YO%uWO~OV$eO~P'vO!U$gO#s$hO#u$iO~O{$jO~OV$qO~P'vOS$sO%[$rO%_$rO%c$tO~OV$}Oa$}Og%POo0cOv0qO~P'vOo0cOv0qO{%SO~P'vO&Y%UO~Oa!bOh!iO!X!kO!f!mOVba_bakbalbambanbaobapbasbazba{ba!xba#gba%[ba%_ba%jba%kba%lba%mba%nba%oba%pba%qba%rba%sba%zbagba!Tba!Uba%{ba!Wba![ba!Qba#[batba!mba~On%ZO~Oo%ZO~P'vOo0cO~P'vOk0eOl0fOm0dOn0dOo0mOp0nOs0rOg%wX!T%wX!U%wX%{%wX!W%wX![%wX!Q%wX#[%wX!m%wX~P)pO%{%]Og%vXz%vX!T%vX!U%vX!W%vX{%vX~Og%_Oz%`O!T%dO!U%cO~Og%_O~Oz%gO!T%dO!U%cO!W&SX~O!W%kO~Oz%lO{%nO!T%dO!U%cO![%}X~O![%rO~O![%sO~OQ#XO%`#XO%a%uO~OV%wOo0cOv0qO!PrO~P'vOQ#^OR#[O%`#^O%a%zO~OV!qa_!qaa!qah!qak!qal!qam!qan!qao!qap!qas!qaz!qa{!qa!X!qa!f!qa!x!qa#g!qa%[!qa%_!qa%j!qa%k!qa%l!qa%m!qa%n!qa%o!qa%p!qa%q!qa%r!qa%s!qa%z!qag!qa!T!qa!U!qa%{!qa!W!qa![!qa!Q!qa#[!qat!qa!m!qa~P#yOz%|O{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~P%SOV&OOopOvqO{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~P'vOz%|O{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~OPdOVaOopOvqO!PrO!Q{O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO#g$zX%[$zX%_$zX~P'vO#g#gO%[&TO%_&TO~O!f&UOh&sX%[&sXz&sX#[&sX#g&sX%_&sX#Z&sXg&sX~Oh!iO%[&WO~Okealeameaneaoeapeaseazea{ea!xea#gea%[ea%_ea%zeagea!Tea!Uea%{ea!Wea![ea!Qea#[eatea!mea~P%SOsqazqa{qa#gqa%[qa%_qa%zqa~Ok!pOl!qOm!oOn!oOo!rOp!sO!xqa~PEcO%z&YOz%yX{%yX~O%uWOz%yX{%yX~Oz&]O{wX~O{&_O~Oz%lO#g%}X%[%}X%_%}Xg%}X{%}X![%}X!m%}X%z%}X~OV0lOo0cOv0qO!PrO~P'vO%z#|O#gUa%[Ua%_Ua~Oz&hO#g&PX%[&PX%_&PXn&PX~P%SOz&kO!Q&jO#g#Wa%[#Wa%_#Wa~Oz&lO#[&nO#g&rX%[&rX%_&rXg&rX~O!f$YO!r$YO#Z&qO%uWO~O#Z&qO~Oz&sO#g&tX%[&tX%_&tX~Oz&uO#g&pX%[&pX%_&pX{&pX~O!X&wO%z&xO~Oz&|On&wX~P%SOn'PO~OPdOVaOopOvqO!PrO!Q{O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO%['UO~P'vOt'YO#p'WO#q'XOP#naV#naf#nah#nao#nas#nav#na!P#na!Q#na!T#na!U#na!X#na!]#na!h#na!r#na!s#na!t#na!{#na!}#na#P#na#R#na#T#na#X#na#Z#na#^#na#_#na#a#na#c#na#l#na#o#na#s#na#u#na#z#na#}#na$P#na%X#na%o#na%p#na%t#na%u#na&Z#na&[#na&]#na&^#na&_#na&`#na&a#na&b#na&c#na&d#na&e#na&f#na&g#na&h#na&i#na&j#na%Z#na%_#na~Oz'ZO#[']O{&xX~Oh'_O!X&wO~Oh!iO{$jO!X&wO~O{'eO~P%SO%['hO%_'hO~OS'iO%['hO%_'hO~OV!aO_!aOa!bOh!iO!X!kO!f!mO%l!^O%m!_O%n!_O%o!`O%p!`O%q!aO%r!aO%s!aOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~O%k!]O~P!#uO%kWi~P!#uOV!aO_!aOa!bOh!iO!X!kO!f!mO%o!`O%p!`O%q!aO%r!aO%s!aOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%kWi%lWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~O%m!_O%n!_O~P!&pO%mWi%nWi~P!&pOa!bOh!iO!X!kO!f!mOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%kWi%lWi%mWi%nWi%oWi%pWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~OV!aO_!aO%q!aO%r!aO%s!aO~P!)nOVWi_Wi%qWi%rWi%sWi~P!)nO!T%dO!U%cOg&VXz&VX~O%z'kO%{'kO~P,eOz'mOg&UX~Og'oO~Oz'pO{'rO!W&XX~Oo0cOv0qOz'pO{'sO!W&XX~P'vO!W'uO~Om!oOn!oOo!rOp!sOkjisjizji{ji!xji#gji%[ji%_ji%zji~Ol!qO~P!.aOlji~P!.aOk0eOl0fOm0dOn0dOo0mOp0nO~Ot'wO~P!/jOV'|Og'}Oo0cOv0qO~P'vOg'}Oz(OO~Og(QO~O!U(SO~Og(TOz(OO!T%dO!U%cO~P%SOk0eOl0fOm0dOn0dOo0mOp0nOgqa!Tqa!Uqa%{qa!Wqa![qa!Qqa#[qatqa!mqa~PEcOV'|Oo0cOv0qO!W&Sa~P'vOz(WO!W&Sa~O!W(XO~Oz(WO!T%dO!U%cO!W&Sa~P%SOV(]Oo0cOv0qO![%}a#g%}a%[%}a%_%}ag%}a{%}a!m%}a%z%}a~P'vOz(^O![%}a#g%}a%[%}a%_%}ag%}a{%}a!m%}a%z%}a~O![(aO~Oz(^O!T%dO!U%cO![%}a~P%SOz(dO!T%dO!U%cO![&Ta~P%SOz(gO{&lX![&lX!m&lX%z&lX~O{(kO![(mO!m(nO%z(jO~OV&OOopOvqO{%hi!x%hi#g%hi%[%hi%_%hi%z%hi~P'vOz(pO{%hi!x%hi#g%hi%[%hi%_%hi%z%hi~O!f&UOh&sa%[&saz&sa#[&sa#g&sa%_&sa#Z&sag&sa~O%[(uO~OV#sOa#tO%uWO~Oz&]O{wa~OopOvqO~P'vOz(^O#g%}a%[%}a%_%}ag%}a{%}a![%}a!m%}a%z%}a~P%SOz(zO#g%hX%[%hX%_%hX%z%hX~O%z#|O#gUi%[Ui%_Ui~O#g&Pa%[&Pa%_&Pan&Pa~P'vOz(}O#g&Pa%[&Pa%_&Pan&Pa~O%uWO#g&ra%[&ra%_&rag&ra~Oz)SO#g&ra%[&ra%_&rag&ra~Og)VO~OV)WOh$WO%uWO~O#Z)XO~O%uWO#g&ta%[&ta%_&ta~Oz)ZO#g&ta%[&ta%_&ta~Oo0cOv0qO#g&pa%[&pa%_&pa{&pa~P'vOz)^O#g&pa%[&pa%_&pa{&pa~OV)`Oa)`O%uWO~O%z)eO~Ot)hO#j)gOP#hiV#hif#hih#hio#his#hiv#hi!P#hi!Q#hi!T#hi!U#hi!X#hi!]#hi!h#hi!r#hi!s#hi!t#hi!{#hi!}#hi#P#hi#R#hi#T#hi#X#hi#Z#hi#^#hi#_#hi#a#hi#c#hi#l#hi#o#hi#s#hi#u#hi#z#hi#}#hi$P#hi%X#hi%o#hi%p#hi%t#hi%u#hi&Z#hi&[#hi&]#hi&^#hi&_#hi&`#hi&a#hi&b#hi&c#hi&d#hi&e#hi&f#hi&g#hi&h#hi&i#hi&j#hi%Z#hi%_#hi~Ot)iOP#kiV#kif#kih#kio#kis#kiv#ki!P#ki!Q#ki!T#ki!U#ki!X#ki!]#ki!h#ki!r#ki!s#ki!t#ki!{#ki!}#ki#P#ki#R#ki#T#ki#X#ki#Z#ki#^#ki#_#ki#a#ki#c#ki#l#ki#o#ki#s#ki#u#ki#z#ki#}#ki$P#ki%X#ki%o#ki%p#ki%t#ki%u#ki&Z#ki&[#ki&]#ki&^#ki&_#ki&`#ki&a#ki&b#ki&c#ki&d#ki&e#ki&f#ki&g#ki&h#ki&i#ki&j#ki%Z#ki%_#ki~OV)kOn&wa~P'vOz)lOn&wa~Oz)lOn&wa~P%SOn)pO~O%Y)tO~Ot)wO#p'WO#q)vOP#niV#nif#nih#nio#nis#niv#ni!P#ni!Q#ni!T#ni!U#ni!X#ni!]#ni!h#ni!r#ni!s#ni!t#ni!{#ni!}#ni#P#ni#R#ni#T#ni#X#ni#Z#ni#^#ni#_#ni#a#ni#c#ni#l#ni#o#ni#s#ni#u#ni#z#ni#}#ni$P#ni%X#ni%o#ni%p#ni%t#ni%u#ni&Z#ni&[#ni&]#ni&^#ni&_#ni&`#ni&a#ni&b#ni&c#ni&d#ni&e#ni&f#ni&g#ni&h#ni&i#ni&j#ni%Z#ni%_#ni~OV)zOo0cOv0qO{$jO~P'vOo0cOv0qO{&xa~P'vOz*OO{&xa~OV*SOa*TOg*WO%q*UO%uWO~O{$jO&{*YO~Oh'_O~Oh!iO{$jO~O%[*_O~O%[*aO%_*aO~OV$}Oa$}Oo0cOv0qOg&Ua~P'vOz*dOg&Ua~Oo0cOv0qO{*gO!W&Xa~P'vOz*hO!W&Xa~Oo0cOv0qOz*hO{*kO!W&Xa~P'vOo0cOv0qOz*hO!W&Xa~P'vOz*hO{*kO!W&Xa~Om0dOn0dOo0mOp0nOgjikjisjizji!Tji!Uji%{ji!Wji{ji![ji#gji%[ji%_ji!Qji#[jitji!mji%zji~Ol0fO~P!NkOlji~P!NkOV'|Og*pOo0cOv0qO~P'vOn*rO~Og*pOz*tO~Og*uO~OV'|Oo0cOv0qO!W&Si~P'vOz*vO!W&Si~O!W*wO~OV(]Oo0cOv0qO![%}i#g%}i%[%}i%_%}ig%}i{%}i!m%}i%z%}i~P'vOz*zO!T%dO!U%cO![&Ti~Oz*}O![%}i#g%}i%[%}i%_%}ig%}i{%}i!m%}i%z%}i~O![+OO~Oa+QOo0cOv0qO![&Ti~P'vOz*zO![&Ti~O![+SO~OV+UOo0cOv0qO{&la![&la!m&la%z&la~P'vOz+VO{&la![&la!m&la%z&la~O!]+YO&n+[O![!nX~O![+^O~O{(kO![+_O~O{(kO![+_O!m+`O~OV&OOopOvqO{%hq!x%hq#g%hq%[%hq%_%hq%z%hq~P'vOz$ri{$ri!x$ri#g$ri%[$ri%_$ri%z$ri~P%SOV&OOopOvqO~P'vOV&OOo0cOv0qO#g%ha%[%ha%_%ha%z%ha~P'vOz+aO#g%ha%[%ha%_%ha%z%ha~Oz$ia#g$ia%[$ia%_$ian$ia~P%SO#g&Pi%[&Pi%_&Pin&Pi~P'vOz+dO#g#Wq%[#Wq%_#Wq~O#[+eOz$va#g$va%[$va%_$vag$va~O%uWO#g&ri%[&ri%_&rig&ri~Oz+gO#g&ri%[&ri%_&rig&ri~OV+iOh$WO%uWO~O%uWO#g&ti%[&ti%_&ti~Oo0cOv0qO#g&pi%[&pi%_&pi{&pi~P'vO{#{Oz#eX!W#eX~Oz+mO!W&uX~O!W+oO~Ot+rO#j)gOP#hqV#hqf#hqh#hqo#hqs#hqv#hq!P#hq!Q#hq!T#hq!U#hq!X#hq!]#hq!h#hq!r#hq!s#hq!t#hq!{#hq!}#hq#P#hq#R#hq#T#hq#X#hq#Z#hq#^#hq#_#hq#a#hq#c#hq#l#hq#o#hq#s#hq#u#hq#z#hq#}#hq$P#hq%X#hq%o#hq%p#hq%t#hq%u#hq&Z#hq&[#hq&]#hq&^#hq&_#hq&`#hq&a#hq&b#hq&c#hq&d#hq&e#hq&f#hq&g#hq&h#hq&i#hq&j#hq%Z#hq%_#hq~On$|az$|a~P%SOV)kOn&wi~P'vOz+yOn&wi~Oz,TO{$jO#[,TO~O#q,VOP#nqV#nqf#nqh#nqo#nqs#nqv#nq!P#nq!Q#nq!T#nq!U#nq!X#nq!]#nq!h#nq!r#nq!s#nq!t#nq!{#nq!}#nq#P#nq#R#nq#T#nq#X#nq#Z#nq#^#nq#_#nq#a#nq#c#nq#l#nq#o#nq#s#nq#u#nq#z#nq#}#nq$P#nq%X#nq%o#nq%p#nq%t#nq%u#nq&Z#nq&[#nq&]#nq&^#nq&_#nq&`#nq&a#nq&b#nq&c#nq&d#nq&e#nq&f#nq&g#nq&h#nq&i#nq&j#nq%Z#nq%_#nq~O#[,WOz%Oa{%Oa~Oo0cOv0qO{&xi~P'vOz,YO{&xi~O{#{O%z,[Og&zXz&zX~O%uWOg&zXz&zX~Oz,`Og&yX~Og,bO~O%Y,eO~O!T%dO!U%cOg&Viz&Vi~OV$}Oa$}Oo0cOv0qOg&Ui~P'vO{,hOz$la!W$la~Oo0cOv0qO{,iOz$la!W$la~P'vOo0cOv0qO{*gO!W&Xi~P'vOz,lO!W&Xi~Oo0cOv0qOz,lO!W&Xi~P'vOz,lO{,oO!W&Xi~Og$hiz$hi!W$hi~P%SOV'|Oo0cOv0qO~P'vOn,qO~OV'|Og,rOo0cOv0qO~P'vOV'|Oo0cOv0qO!W&Sq~P'vOz$gi![$gi#g$gi%[$gi%_$gig$gi{$gi!m$gi%z$gi~P%SOV(]Oo0cOv0qO~P'vOa+QOo0cOv0qO![&Tq~P'vOz,sO![&Tq~O![,tO~OV(]Oo0cOv0qO![%}q#g%}q%[%}q%_%}qg%}q{%}q!m%}q%z%}q~P'vO{,uO~OV+UOo0cOv0qO{&li![&li!m&li%z&li~P'vOz,zO{&li![&li!m&li%z&li~O!]+YO&n+[O![!na~O{(kO![,}O~OV&OOo0cOv0qO#g%hi%[%hi%_%hi%z%hi~P'vOz-OO#g%hi%[%hi%_%hi%z%hi~O%uWO#g&rq%[&rq%_&rqg&rq~Oz-RO#g&rq%[&rq%_&rqg&rq~OV)`Oa)`O%uWO!W&ua~Oz-TO!W&ua~On$|iz$|i~P%SOV)kO~P'vOV)kOn&wq~P'vOt-XOP#myV#myf#myh#myo#mys#myv#my!P#my!Q#my!T#my!U#my!X#my!]#my!h#my!r#my!s#my!t#my!{#my!}#my#P#my#R#my#T#my#X#my#Z#my#^#my#_#my#a#my#c#my#l#my#o#my#s#my#u#my#z#my#}#my$P#my%X#my%o#my%p#my%t#my%u#my&Z#my&[#my&]#my&^#my&_#my&`#my&a#my&b#my&c#my&d#my&e#my&f#my&g#my&h#my&i#my&j#my%Z#my%_#my~O%Z-]O%_-]O~P`O#q-^OP#nyV#nyf#nyh#nyo#nys#nyv#ny!P#ny!Q#ny!T#ny!U#ny!X#ny!]#ny!h#ny!r#ny!s#ny!t#ny!{#ny!}#ny#P#ny#R#ny#T#ny#X#ny#Z#ny#^#ny#_#ny#a#ny#c#ny#l#ny#o#ny#s#ny#u#ny#z#ny#}#ny$P#ny%X#ny%o#ny%p#ny%t#ny%u#ny&Z#ny&[#ny&]#ny&^#ny&_#ny&`#ny&a#ny&b#ny&c#ny&d#ny&e#ny&f#ny&g#ny&h#ny&i#ny&j#ny%Z#ny%_#ny~Oz-aO{$jO#[-aO~Oo0cOv0qO{&xq~P'vOz-dO{&xq~O%z,[Og&zaz&za~O{#{Og&zaz&za~OV*SOa*TO%q*UO%uWOg&ya~Oz-hOg&ya~O$S-lO~OV$}Oa$}Oo0cOv0qO~P'vOo0cOv0qO{-mOz$li!W$li~P'vOo0cOv0qOz$li!W$li~P'vO{-mOz$li!W$li~Oo0cOv0qO{*gO~P'vOo0cOv0qO{*gO!W&Xq~P'vOz-pO!W&Xq~Oo0cOv0qOz-pO!W&Xq~P'vOs-sO!T%dO!U%cOg&Oq!W&Oq![&Oqz&Oq~P!/jOa+QOo0cOv0qO![&Ty~P'vOz$ji![$ji~P%SOa+QOo0cOv0qO~P'vOV+UOo0cOv0qO~P'vOV+UOo0cOv0qO{&lq![&lq!m&lq%z&lq~P'vO{(kO![-xO!m-yO%z-wO~OV&OOo0cOv0qO#g%hq%[%hq%_%hq%z%hq~P'vO%uWO#g&ry%[&ry%_&ryg&ry~OV)`Oa)`O%uWO!W&ui~Ot-}OP#m!RV#m!Rf#m!Rh#m!Ro#m!Rs#m!Rv#m!R!P#m!R!Q#m!R!T#m!R!U#m!R!X#m!R!]#m!R!h#m!R!r#m!R!s#m!R!t#m!R!{#m!R!}#m!R#P#m!R#R#m!R#T#m!R#X#m!R#Z#m!R#^#m!R#_#m!R#a#m!R#c#m!R#l#m!R#o#m!R#s#m!R#u#m!R#z#m!R#}#m!R$P#m!R%X#m!R%o#m!R%p#m!R%t#m!R%u#m!R&Z#m!R&[#m!R&]#m!R&^#m!R&_#m!R&`#m!R&a#m!R&b#m!R&c#m!R&d#m!R&e#m!R&f#m!R&g#m!R&h#m!R&i#m!R&j#m!R%Z#m!R%_#m!R~Oo0cOv0qO{&xy~P'vOV*SOa*TO%q*UO%uWOg&yi~O$S-lO%Z.VO%_.VO~OV.aOh._O!X.^O!].`O!h.YO!s.[O!t.[O%p.XO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O~Oo0cOv0qOz$lq!W$lq~P'vO{.fOz$lq!W$lq~Oo0cOv0qO{*gO!W&Xy~P'vOz.gO!W&Xy~Oo0cOv.kO~P'vOs-sO!T%dO!U%cOg&Oy!W&Oy![&Oyz&Oy~P!/jO{(kO![.nO~O{(kO![.nO!m.oO~OV*SOa*TO%q*UO%uWO~Oh.tO!f.rOz$TX#[$TX%j$TXg$TX~Os$TX{$TX!W$TX![$TX~P$-bO%o.vO%p.vOs$UXz$UX{$UX#[$UX%j$UX!W$UXg$UX![$UX~O!h.xO~Oz.|O#[/OO%j.yOs&|X{&|X!W&|Xg&|X~Oa/RO~P$)zOh.tOs&}Xz&}X{&}X#[&}X%j&}X!W&}Xg&}X![&}X~Os/VO{$jO~Oo0cOv0qOz$ly!W$ly~P'vOo0cOv0qO{*gO!W&X!R~P'vOz/ZO!W&X!R~Og&RXs&RX!T&RX!U&RX!W&RX![&RXz&RX~P!/jOs-sO!T%dO!U%cOg&Qa!W&Qa![&Qaz&Qa~O{(kO![/^O~O!f.rOh$[as$[az$[a{$[a#[$[a%j$[a!W$[ag$[a![$[a~O!h/eO~O%o.vO%p.vOs$Uaz$Ua{$Ua#[$Ua%j$Ua!W$Uag$Ua![$Ua~O%j.yOs$Yaz$Ya{$Ya#[$Ya!W$Yag$Ya![$Ya~Os&|a{&|a!W&|ag&|a~P$)nOz/jOs&|a{&|a!W&|ag&|a~O!W/mO~Og/mO~O{/oO~O![/pO~Oo0cOv0qO{*gO!W&X!Z~P'vO{/sO~O%z/tO~P$-bOz/uO#[/OO%j.yOg'PX~Oz/uOg'PX~Og/wO~O!h/xO~O#[/OOs%Saz%Sa{%Sa%j%Sa!W%Sag%Sa![%Sa~O#[/OO%j.yOs%Waz%Wa{%Wa!W%Wag%Wa~Os&|i{&|i!W&|ig&|i~P$)nOz/zO#[/OO%j.yO!['Oa~Og'Pa~P$)nOz0SOg'Pa~Oa0UO!['Oi~P$)zOz0WO!['Oi~Oz0WO#[/OO%j.yO!['Oi~O#[/OO%j.yOg$biz$bi~O%z0ZO~P$-bO#[/OO%j.yOg%Vaz%Va~Og'Pi~P$)nO{0^O~Oa0UO!['Oq~P$)zOz0`O!['Oq~O#[/OO%j.yOz%Ui![%Ui~Oa0UO~P$)zOa0UO!['Oy~P$)zO#[/OO%j.yOg$ciz$ci~O#[/OO%j.yOz%Uq![%Uq~Oz+aO#g%ha%[%ha%_%ha%z%ha~P%SOV&OOo0cOv0qO~P'vOn0hO~Oo0hO~P'vO{0iO~Ot0jO~P!/jO&]&Z&j&h&i&g&f&d&e&c&b&`&a&_&^&[%u~",goto:"!=j'QPPPPPP'RP'Z*s+[+t,_,y-fP.SP'Z.r.r'ZPPP'Z2[PPPPPP2[5PPP5PP7b7k=sPP=v>h>kPP'Z'ZPP>zPP'Z'ZPP'Z'Z'Z'Z'Z?O?w'ZP?zP@QDXGuGyPG|HWH['ZPPPH_Hk'RP'R'RP'RP'RP'RP'RP'R'R'RP'RPP'RPP'RP'RPHqH}IVPI^IdPI^PI^I^PPPI^PKrPK{LVL]KrPI^LfPI^PLmLsPLwM]MzNeLwLwNkNxLwLwLwLw! ^! d! g! l! o! y!!P!!]!!o!!u!#P!#V!#s!#y!$P!$Z!$a!$g!$y!%T!%Z!%a!%k!%q!%w!%}!&T!&Z!&e!&k!&u!&{!'U!'[!'k!'s!'}!(UPPPPPPPPPPP!([!(_!(e!(n!(x!)TPPPPPPPPPPPP!-u!/Z!3^!6oPP!6w!7W!7a!8Y!8P!8c!8i!8l!8o!8r!8z!9jPPPPPPPPPPPPPPPPP!9m!9q!9wP!:]!:a!:m!:v!;S!;j!;m!;p!;v!;|!<S!<VP!<_!<h!=d!=g]eOn#g$j)t,P'}`OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0r{!cQ#c#p$R$d$p%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g}!dQ#c#p$R$d$p$u%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!P!eQ#c#p$R$d$p$u$v%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!R!fQ#c#p$R$d$p$u$v$w%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!T!gQ#c#p$R$d$p$u$v$w$x%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!V!hQ#c#p$R$d$p$u$v$w$x$y%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!Z!hQ!n#c#p$R$d$p$u$v$w$x$y$z%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g'}TOTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0r&eVOYZ[dnprxy}!P!Q!U!i!k!o!p!q!s!t#[#d#g#y#{#}$Q$h$j$}%S%Z%^%`%g%l%n%w%|&Z&_&j&k&u&x'P'W'Z'l'm'p'r's'w(O(W(^(d(g(p(r(z)^)e)g)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+U+V+Y+a+d+k,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0n0r%oXOYZ[dnrxy}!P!Q!U!i!k#[#d#g#y#{#}$Q$h$j$}%S%^%`%g%l%n%w%|&Z&_&j&k&u&x'P'W'Z'l'm'p'r's'w(O(W(^(d(g(p(r(z)^)e)g)p)t)z*O*Y*d*g*h*k*q*t*v*y*z*}+U+V+Y+a+d+k,P,X,Y,],g,h,i,k,l,o,s,u,w,y,z-O-d-f-m-p.f.g/V/Z0i0j0kQ#vqQ/[.kR0o0q't`OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0rh#jhz{$W$Z&l&q)S)X+f+g-RW#rq&].k0qQ$]|Q$a!OQ$n!VQ$o!WW$|!i'm*d,gS&[#s#tQ'S$iQ(s&UQ)U&nU)Y&s)Z+jW)a&w+m-T-{Q*Q']W*R'_,`-h.TQ+l)`S,_*S*TQ-Q+eQ-_,TQ-c,WQ.R-al.W-l.^._.a.z.|/R/j/o/t/y0U0Z0^Q/S.`Q/a.tQ/l/OU0P/u0S0[X0V/z0W0_0`R&Z#r!_!wYZ!P!Q!k%S%`%g'p'r's(O(W)g*g*h*k*q*t*v,h,i,k,l,o-m-p.f.g/ZR%^!vQ!{YQ%x#[Q&d#}Q&g$QR,{+YT.j-s/s!Y!jQ!n#c#p$R$d$p$u$v$w$x$y$z%e%j%p%q&`'O'g(q(|)j*o*x+w,v0gQ&X#kQ'c$oR*^'dR'l$|Q%V!mR/_.r'|_OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0rS#a_#b!P.[-l.^._.`.a.t.z.|/R/j/o/t/u/y/z0S0U0W0Z0[0^0_0`'|_OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0rT#a_#bT#^^#_R(o%xa(l%x(n(o+`,{-y-z.oT+[(k+]R-z,{Q$PsQ+l)aQ,^*RR-e,_X#}s$O$P&fQ&y$aQ'a$nQ'd$oR)s'SQ)b&wV-S+m-T-{ZgOn$j)t,PXkOn)t,PQ$k!TQ&z$bQ&{$cQ'^$mQ'b$oQ)q'RQ)x'WQ){'XQ)|'YQ*Z'`S*]'c'dQ+s)gQ+u)hQ+v)iQ+z)oS+|)r*[Q,Q)vQ,R)wS,S)y)zQ,d*^Q-V+rQ-W+tQ-Y+{S-Z+},OQ-`,UQ-b,VQ-|-XQ.O-[Q.P-^Q.Q-_Q.p-}Q.q.RQ/W.dR/r/XWkOn)t,PR#mjQ'`$nS)r'S'aR,O)sQ,]*RR-f,^Q*['`Q+})rR-[,OZiOjn)t,PQ'f$pR*`'gT-j,e-ku.c-l.^._.a.t.z.|/R/j/o/t/u/y0S0U0Z0[0^t.c-l.^._.a.t.z.|/R/j/o/t/u/y0S0U0Z0[0^Q/S.`X0V/z0W0_0`!P.Z-l.^._.`.a.t.z.|/R/j/o/t/u/y/z0S0U0W0Z0[0^0_0`Q.w.YR/f.xg.z.].{/b/i/n/|0O0Q0]0a0bu.b-l.^._.a.t.z.|/R/j/o/t/u/y0S0U0Z0[0^X.u.W.b/a0PR/c.tV0R/u0S0[R/X.dQnOS#on,PR,P)tQ&^#uR(x&^S%m#R#wS(_%m(bT(b%p&`Q%a!yQ%h!}W(P%a%h(U(YQ(U%eR(Y%jQ&i$RR)O&iQ(e%qQ*{(`T+R(e*{Q'n%OR*e'nS'q%R%SY*i'q*j,m-q.hU*j'r's'tU,m*k*l*mS-q,n,oR.h-rQ#Y]R%t#YQ#_^R%y#_Q(h%vS+W(h+XR+X(iQ+](kR,|+]Q#b_R%{#bQ#ebQ%}#cW&Q#e%}({+bQ({&cR+b0gQ$OsS&e$O&fR&f$PQ&v$_R)_&vQ&V#jR(t&VQ&m$VS)T&m+hR+h)UQ$Z{R&p$ZQ&t$]R)[&tQ+n)bR-U+nQ#hfR&S#hQ)f&zR+q)fQ&}$dS)m&})nR)n'OQ'V$kR)u'VQ'[$lS*P'[,ZR,Z*QQ,a*VR-i,aWjOn)t,PR#ljQ-k,eR.U-kd.{.]/b/i/n/|0O0Q0]0a0bR/h.{U.s.W/a0PR/`.sQ/{/nS0X/{0YR0Y/|S/v/b/cR0T/vQ.}.]R/k.}R!ZPXmOn)t,PWlOn)t,PR'T$jYfOn$j)t,PR&R#g[sOn#g$j)t,PR&d#}&dQOYZ[dnprxy}!P!Q!U!i!k!o!p!q!s!t#[#d#g#y#{#}$Q$h$j$}%S%Z%^%`%g%l%n%w%|&Z&_&j&k&u&x'P'W'Z'l'm'p'r's'w(O(W(^(d(g(p(r(z)^)e)g)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+U+V+Y+a+d+k,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0n0rQ!nTQ#caQ#poU$Rt%c(SS$d!R$gQ$p!XQ$u!cQ$v!dQ$w!eQ$x!fQ$y!gQ$z!hQ%e!zQ%j#OQ%p#SQ%q#TQ&`#xQ'O$eQ'g$qQ(q&OU(|&h(}+cW)j&|)l+x+yQ*o'|Q*x(]Q+w)kQ,v+QR0g0lQ!yYQ!}ZQ$b!PQ$c!QQ%R!kQ't%S^'{%`%g(O(W*q*t*v^*f'p*h,k,l-p.g/ZQ*l'rQ*m'sQ+t)gQ,j*gQ,n*kQ-n,hQ-o,iQ-r,oQ.e-mR/Y.f[bOn#g$j)t,P!^!vYZ!P!Q!k%S%`%g'p'r's(O(W)g*g*h*k*q*t*v,h,i,k,l,o-m-p.f.g/ZQ#R[Q#fdS#wrxQ$UyW$_}$Q'P)pS$l!U$hW${!i'm*d,gS%v#[+Y`&P#d%|(p(r(z+a-O0kQ&a#yQ&b#{Q&c#}Q'j$}Q'z%^W([%l(^*y*}Q(`%nQ(i%wQ(v&ZS(y&_0iQ)P&jQ)Q&kU)]&u)^+kQ)d&xQ)y'WY)}'Z*O,X,Y-dQ*b'lS*n'w0jW+P(d*z,s,wW+T(g+V,y,zQ+p)eQ,U)zQ,c*YQ,x+UQ-P+dQ-e,]Q-v,uQ.S-fR/q/VhUOn#d#g$j%|&_'w(p(r)t,P%U!uYZ[drxy}!P!Q!U!i!k#[#y#{#}$Q$h$}%S%^%`%g%l%n%w&Z&j&k&u&x'P'W'Z'l'm'p'r's(O(W(^(d(g(z)^)e)g)p)z*O*Y*d*g*h*k*q*t*v*y*z*}+U+V+Y+a+d+k,X,Y,],g,h,i,k,l,o,s,u,w,y,z-O-d-f-m-p.f.g/V/Z0i0j0kQ#qpW%W!o!s0d0nQ%X!pQ%Y!qQ%[!tQ%f0cS'v%Z0hQ'x0eQ'y0fQ,p*rQ-u,qS.i-s/sR0p0rU#uq.k0qR(w&][cOn#g$j)t,PZ!xY#[#}$Q+YQ#W[Q#zrR$TxQ%b!yQ%i!}Q%o#RQ'j${Q(V%eQ(Z%jQ(c%pQ(f%qQ*|(`Q,f*bQ-t,pQ.m-uR/].lQ$StQ(R%cR*s(SQ.l-sR/}/sR#QZR#V[R%Q!iQ%O!iV*c'm*d,g!Z!lQ!n#c#p$R$d$p$u$v$w$x$y$z%e%j%p%q&`'O'g(q(|)j*o*x+w,v0gR%T!kT#]^#_Q%x#[R,{+YQ(m%xS+_(n(oQ,}+`Q-x,{S.n-y-zR/^.oT+Z(k+]Q$`}Q&g$QQ)o'PR+{)pQ$XzQ)W&qR+i)XQ$XzQ&o$WQ)W&qR+i)XQ#khW$Vz$W&q)XQ$[{Q&r$ZZ)R&l)S+f+g-RR$^|R)c&wXlOn)t,PQ$f!RR'Q$gQ$m!UR'R$hR*X'_Q*V'_V-g,`-h.TQ.d-lQ/P.^R/Q._U.]-l.^._Q/U.aQ/b.tQ/g.zU/i.|/j/yQ/n/RQ/|/oQ0O/tU0Q/u0S0[Q0]0UQ0a0ZR0b0^R/T.`R/d.t",nodeNames:"⚠ print Escape { Comment Script AssignStatement * BinaryExpression BitOp BitOp BitOp BitOp ArithOp ArithOp @ ArithOp ** UnaryExpression ArithOp BitOp AwaitExpression await ) ( ParenthesizedExpression BinaryExpression or and CompareOp in not is UnaryExpression ConditionalExpression if else LambdaExpression lambda ParamList VariableName AssignOp , : NamedExpression AssignOp YieldExpression yield from TupleExpression ComprehensionExpression async for LambdaExpression ] [ ArrayExpression ArrayComprehensionExpression } { DictionaryExpression DictionaryComprehensionExpression SetExpression SetComprehensionExpression CallExpression ArgList AssignOp MemberExpression . PropertyName Number String FormatString FormatReplacement FormatSelfDoc FormatConversion FormatSpec FormatReplacement FormatSelfDoc ContinuedString Ellipsis None Boolean TypeDef AssignOp UpdateStatement UpdateOp ExpressionStatement DeleteStatement del PassStatement pass BreakStatement break ContinueStatement continue ReturnStatement return YieldStatement PrintStatement RaiseStatement raise ImportStatement import as ScopeStatement global nonlocal AssertStatement assert TypeDefinition type TypeParamList TypeParam StatementGroup ; IfStatement Body elif WhileStatement while ForStatement TryStatement try except finally WithStatement with FunctionDefinition def ParamList AssignOp TypeDef ClassDefinition class DecoratedStatement Decorator At MatchStatement match MatchBody MatchClause case CapturePattern LiteralPattern ArithOp ArithOp AsPattern OrPattern LogicOp AttributePattern SequencePattern MappingPattern StarPattern ClassPattern PatternArgList KeywordPattern KeywordPattern Guard",maxTerm:277,context:Ji,nodeProps:[["isolate",-5,4,71,72,73,77,""],["group",-15,6,85,87,88,90,92,94,96,98,99,100,102,105,108,110,"Statement Statement",-22,8,18,21,25,40,49,50,56,57,60,61,62,63,64,67,70,71,72,79,80,81,82,"Expression",-10,114,116,119,121,122,126,128,133,135,138,"Statement",-9,143,144,147,148,150,151,152,153,154,"Pattern"],["openedBy",23,"(",54,"[",58,"{"],["closedBy",24,")",55,"]",59,"}"]],propSources:[no],skippedNodes:[0,4],repeatNodeCount:34,tokenData:"!2|~R!`OX%TXY%oY[%T[]%o]p%Tpq%oqr'ars)Yst*xtu%Tuv,dvw-hwx.Uxy/tyz0[z{0r{|2S|}2p}!O3W!O!P4_!P!Q:Z!Q!R;k!R![>_![!]Do!]!^Es!^!_FZ!_!`Gk!`!aHX!a!b%T!b!cIf!c!dJU!d!eK^!e!hJU!h!i!#f!i!tJU!t!u!,|!u!wJU!w!x!.t!x!}JU!}#O!0S#O#P&o#P#Q!0j#Q#R!1Q#R#SJU#S#T%T#T#UJU#U#VK^#V#YJU#Y#Z!#f#Z#fJU#f#g!,|#g#iJU#i#j!.t#j#oJU#o#p!1n#p#q!1s#q#r!2a#r#s!2f#s$g%T$g;'SJU;'S;=`KW<%lOJU`%YT&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T`%lP;=`<%l%To%v]&n`%c_OX%TXY%oY[%T[]%o]p%Tpq%oq#O%T#O#P&o#P#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To&tX&n`OY%TYZ%oZ]%T]^%o^#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc'f[&n`O!_%T!_!`([!`#T%T#T#U(r#U#f%T#f#g(r#g#h(r#h#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc(cTmR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc(yT!mR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk)aV&n`&[ZOr%Trs)vs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk){V&n`Or%Trs*bs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk*iT&n`&^ZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To+PZS_&n`OY*xYZ%TZ]*x]^%T^#o*x#o#p+r#p#q*x#q#r+r#r;'S*x;'S;=`,^<%lO*x_+wTS_OY+rZ]+r^;'S+r;'S;=`,W<%lO+r_,ZP;=`<%l+ro,aP;=`<%l*xj,kV%rQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj-XT!xY&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj-oV%lQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk.]V&n`&ZZOw%Twx.rx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk.wV&n`Ow%Twx/^x#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk/eT&n`&]ZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk/{ThZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc0cTgR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk0yXVZ&n`Oz%Tz{1f{!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk1mVaR&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk2ZV%oZ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc2wTzR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To3_W%pZ&n`O!_%T!_!`-Q!`!a3w!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Td4OT&{S&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk4fX!fQ&n`O!O%T!O!P5R!P!Q%T!Q![6T![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk5WV&n`O!O%T!O!P5m!P#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk5tT!rZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti6[a!hX&n`O!Q%T!Q![6T![!g%T!g!h7a!h!l%T!l!m9s!m#R%T#R#S6T#S#X%T#X#Y7a#Y#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti7fZ&n`O{%T{|8X|}%T}!O8X!O!Q%T!Q![8s![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti8^V&n`O!Q%T!Q![8s![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti8z]!hX&n`O!Q%T!Q![8s![!l%T!l!m9s!m#R%T#R#S8s#S#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti9zT!hX&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk:bX%qR&n`O!P%T!P!Q:}!Q!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj;UV%sQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti;ro!hX&n`O!O%T!O!P=s!P!Q%T!Q![>_![!d%T!d!e?q!e!g%T!g!h7a!h!l%T!l!m9s!m!q%T!q!rA]!r!z%T!z!{Bq!{#R%T#R#S>_#S#U%T#U#V?q#V#X%T#X#Y7a#Y#^%T#^#_9s#_#c%T#c#dA]#d#l%T#l#mBq#m#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti=xV&n`O!Q%T!Q![6T![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti>fc!hX&n`O!O%T!O!P=s!P!Q%T!Q![>_![!g%T!g!h7a!h!l%T!l!m9s!m#R%T#R#S>_#S#X%T#X#Y7a#Y#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti?vY&n`O!Q%T!Q!R@f!R!S@f!S#R%T#R#S@f#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti@mY!hX&n`O!Q%T!Q!R@f!R!S@f!S#R%T#R#S@f#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiAbX&n`O!Q%T!Q!YA}!Y#R%T#R#SA}#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiBUX!hX&n`O!Q%T!Q!YA}!Y#R%T#R#SA}#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiBv]&n`O!Q%T!Q![Co![!c%T!c!iCo!i#R%T#R#SCo#S#T%T#T#ZCo#Z#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiCv]!hX&n`O!Q%T!Q![Co![!c%T!c!iCo!i#R%T#R#SCo#S#T%T#T#ZCo#Z#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%ToDvV{_&n`O!_%T!_!`E]!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TcEdT%{R&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkEzT#gZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkFbXmR&n`O!^%T!^!_F}!_!`([!`!a([!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TjGUV%mQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkGrV%zZ&n`O!_%T!_!`([!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkH`WmR&n`O!_%T!_!`([!`!aHx!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TjIPV%nQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkIoV_Q#}P&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%ToJ_]&n`&YS%uZO!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUoKZP;=`<%lJUoKge&n`&YS%uZOr%Trs)Ysw%Twx.Ux!Q%T!Q![JU![!c%T!c!tJU!t!uLx!u!}JU!}#R%T#R#SJU#S#T%T#T#fJU#f#gLx#g#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUoMRa&n`&YS%uZOr%TrsNWsw%Twx! vx!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUkN_V&n`&`ZOr%TrsNts#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkNyV&n`Or%Trs! `s#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk! gT&n`&bZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk! }V&n`&_ZOw%Twx!!dx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!!iV&n`Ow%Twx!#Ox#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!#VT&n`&aZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!#oe&n`&YS%uZOr%Trs!%Qsw%Twx!&px!Q%T!Q![JU![!c%T!c!tJU!t!u!(`!u!}JU!}#R%T#R#SJU#S#T%T#T#fJU#f#g!(`#g#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!%XV&n`&dZOr%Trs!%ns#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!%sV&n`Or%Trs!&Ys#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!&aT&n`&fZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!&wV&n`&cZOw%Twx!'^x#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!'cV&n`Ow%Twx!'xx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!(PT&n`&eZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!(ia&n`&YS%uZOr%Trs!)nsw%Twx!+^x!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!)uV&n`&hZOr%Trs!*[s#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!*aV&n`Or%Trs!*vs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!*}T&n`&jZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!+eV&n`&gZOw%Twx!+zx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!,PV&n`Ow%Twx!,fx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!,mT&n`&iZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!-Vi&n`&YS%uZOr%TrsNWsw%Twx! vx!Q%T!Q![JU![!c%T!c!dJU!d!eLx!e!hJU!h!i!(`!i!}JU!}#R%T#R#SJU#S#T%T#T#UJU#U#VLx#V#YJU#Y#Z!(`#Z#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUo!.}a&n`&YS%uZOr%Trs)Ysw%Twx.Ux!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!0ZT!XZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc!0qT!WR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj!1XV%kQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T~!1sO!]~k!1zV%jR&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T~!2fO![~i!2mT%tX&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T",tokenizers:[Ki,Yi,Bi,eo,0,1,2,3,4],topRules:{Script:[0,5]},specialized:[{term:221,get:e=>ro[e]||-1}],tokenPrec:7668}),qt=new Mn,xn=new Set(["Script","Body","FunctionDefinition","ClassDefinition","LambdaExpression","ForStatement","MatchClause"]);function Qe(e){return(t,n,i)=>{if(i)return!1;let o=t.node.getChild("VariableName");return o&&n(o,e),!0}}const oo={FunctionDefinition:Qe("function"),ClassDefinition:Qe("class"),ForStatement(e,t,n){if(n){for(let i=e.node.firstChild;i;i=i.nextSibling)if(i.name=="VariableName")t(i,"variable");else if(i.name=="in")break}},ImportStatement(e,t){var n,i;let{node:o}=e,r=((n=o.firstChild)===null||n===void 0?void 0:n.name)=="from";for(let s=o.getChild("import");s;s=s.nextSibling)s.name=="VariableName"&&((i=s.nextSibling)===null||i===void 0?void 0:i.name)!="as"&&t(s,r?"variable":"namespace")},AssignStatement(e,t){for(let n=e.node.firstChild;n;n=n.nextSibling)if(n.name=="VariableName")t(n,"variable");else if(n.name==":"||n.name=="AssignOp")break},ParamList(e,t){for(let n=null,i=e.node.firstChild;i;i=i.nextSibling)i.name=="VariableName"&&(!n||!/\*|AssignOp/.test(n.name))&&t(i,"variable"),n=i},CapturePattern:Qe("variable"),AsPattern:Qe("variable"),__proto__:null};function vn(e,t){let n=qt.get(t);if(n)return n;let i=[],o=!0;function r(s,a){let d=e.sliceString(s.from,s.to);i.push({label:d,type:a})}return t.cursor(Zn.IncludeAnonymous).iterate(s=>{if(s.name){let a=oo[s.name];if(a&&a(s,r,o)||!o&&xn.has(s.name))return!1;o=!1}else if(s.to-s.from>8192){for(let a of vn(e,s.node))i.push(a);return!1}}),qt.set(t,i),i}const jt=/^[\w\xa1-\uffff][\w\d\xa1-\uffff]*$/,Tn=["String","FormatString","Comment","PropertyName"];function ao(e){let t=Nn(e.state).resolveInner(e.pos,-1);if(Tn.indexOf(t.name)>-1)return null;let n=t.name=="VariableName"||t.to-t.from<20&&jt.test(e.state.sliceDoc(t.from,t.to));if(!n&&!e.explicit)return null;let i=[];for(let o=t;o;o=o.parent)xn.has(o.name)&&(i=i.concat(vn(e.state.doc,o)));return{options:i,from:n?t.from:e.pos,validFor:jt}}const so=["__annotations__","__builtins__","__debug__","__doc__","__import__","__name__","__loader__","__package__","__spec__","False","None","True"].map(e=>({label:e,type:"constant"})).concat(["ArithmeticError","AssertionError","AttributeError","BaseException","BlockingIOError","BrokenPipeError","BufferError","BytesWarning","ChildProcessError","ConnectionAbortedError","ConnectionError","ConnectionRefusedError","ConnectionResetError","DeprecationWarning","EOFError","Ellipsis","EncodingWarning","EnvironmentError","Exception","FileExistsError","FileNotFoundError","FloatingPointError","FutureWarning","GeneratorExit","IOError","ImportError","ImportWarning","IndentationError","IndexError","InterruptedError","IsADirectoryError","KeyError","KeyboardInterrupt","LookupError","MemoryError","ModuleNotFoundError","NameError","NotADirectoryError","NotImplemented","NotImplementedError","OSError","OverflowError","PendingDeprecationWarning","PermissionError","ProcessLookupError","RecursionError","ReferenceError","ResourceWarning","RuntimeError","RuntimeWarning","StopAsyncIteration","StopIteration","SyntaxError","SyntaxWarning","SystemError","SystemExit","TabError","TimeoutError","TypeError","UnboundLocalError","UnicodeDecodeError","UnicodeEncodeError","UnicodeError","UnicodeTranslateError","UnicodeWarning","UserWarning","ValueError","Warning","ZeroDivisionError"].map(e=>({label:e,type:"type"}))).concat(["bool","bytearray","bytes","classmethod","complex","float","frozenset","int","list","map","memoryview","object","range","set","staticmethod","str","super","tuple","type"].map(e=>({label:e,type:"class"}))).concat(["abs","aiter","all","anext","any","ascii","bin","breakpoint","callable","chr","compile","delattr","dict","dir","divmod","enumerate","eval","exec","exit","filter","format","getattr","globals","hasattr","hash","help","hex","id","input","isinstance","issubclass","iter","len","license","locals","max","min","next","oct","open","ord","pow","print","property","quit","repr","reversed","round","setattr","slice","sorted","sum","vars","zip"].map(e=>({label:e,type:"function"}))),Oo=[G("def ${name}(${params}):\n ${}",{label:"def",detail:"function",type:"keyword"}),G("for ${name} in ${collection}:\n ${}",{label:"for",detail:"loop",type:"keyword"}),G("while ${}:\n ${}",{label:"while",detail:"loop",type:"keyword"}),G("try:\n ${}\nexcept ${error}:\n ${}",{label:"try",detail:"/ except block",type:"keyword"}),G(`if \${}:
5
+ // Path: ${p}`)}finally{r(!1)}})()},[e.diffInfo,e.name,k,$,Q,p,g]);const y=S.useCallback(async()=>{if(!(u||pt(Q))){a(!0),O(null);try{if(!g)throw new Error("Missing project identifier");const v=await Ke.saveFile(g,p,n);if(!v.ok){if(v.headers.get("content-type")?.includes("application/json")){const V=await v.json();throw new Error(V.error||`Save failed: ${v.status}`)}const b=await v.text();throw console.error("Non-JSON error response:",b),new Error(`Save failed: ${v.status} ${v.statusText}`)}await v.json(),c(!0),setTimeout(()=>c(!1),2e3)}catch(v){const T=vt(v);console.error("Error saving file:",v),O(T)}finally{a(!1)}}},[n,p,g,u,Q]),P=S.useCallback(()=>{const v=new Blob([n],{type:"text/plain"}),T=URL.createObjectURL(v),b=document.createElement("a");b.href=T,b.download=e.name,document.body.appendChild(b),b.click(),document.body.removeChild(b),URL.revokeObjectURL(T)},[n,e.name]);return{content:n,setContent:i,loading:o,saving:s,saveSuccess:d,saveError:l,isBinary:f,previewKind:u,fileProjectId:g,handleSave:y,handleDownload:P}},F={wordWrap:"codeEditorWordWrap",showMinimap:"codeEditorShowMinimap",lineNumbers:"codeEditorLineNumbers",fontSize:"codeEditorFontSize"},le={minimapEnabled:!0,showLineNumbers:!0,fontSize:"12"},Tt="codeEditorSettingsChanged",pe=(e,t,n="false")=>{const i=localStorage.getItem(e);return i===null?t:i!==n},St=()=>localStorage.getItem(F.wordWrap)==="true",yt=()=>{const e=localStorage.getItem(F.fontSize);return Number(e??le.fontSize)},Mr=()=>{const[e,t]=S.useState(St),[n,i]=S.useState(()=>pe(F.showMinimap,le.minimapEnabled)),[o,r]=S.useState(()=>pe(F.lineNumbers,le.showLineNumbers)),[s,a]=S.useState(yt);return S.useEffect(()=>{localStorage.setItem(F.wordWrap,String(e))},[e]),S.useEffect(()=>{const d=()=>{t(St()),i(pe(F.showMinimap,le.minimapEnabled)),r(pe(F.lineNumbers,le.showLineNumbers)),a(yt())};return window.addEventListener("storage",d),window.addEventListener(Tt,d),()=>{window.removeEventListener("storage",d),window.removeEventListener(Tt,d)}},[]),{wordWrap:e,setWordWrap:t,minimapEnabled:n,setMinimapEnabled:i,showLineNumbers:o,setShowLineNumbers:r,fontSize:s,setFontSize:a}},Zr=({onSave:e,onClose:t,dependency:n})=>{S.useEffect(()=>{const i=o=>{if(o.key==="Escape"){o.preventDefault(),t();return}(o.ctrlKey||o.metaKey)&&o.key.toLowerCase()==="s"&&(o.preventDefault(),e())};return document.addEventListener("keydown",i),()=>{document.removeEventListener("keydown",i)}},[n,t,e])},Ar=Vt({String:x.string,Number:x.number,"True False":x.bool,PropertyName:x.propertyName,Null:x.null,", :":x.separator,"[ ]":x.squareBracket,"{ }":x.brace}),Dr=Ut.deserialize({version:14,states:"$bOVQPOOOOQO'#Cb'#CbOnQPO'#CeOvQPO'#ClOOQO'#Cr'#CrQOQPOOOOQO'#Cg'#CgO}QPO'#CfO!SQPO'#CtOOQO,59P,59PO![QPO,59PO!aQPO'#CuOOQO,59W,59WO!iQPO,59WOVQPO,59QOqQPO'#CmO!nQPO,59`OOQO1G.k1G.kOVQPO'#CnO!vQPO,59aOOQO1G.r1G.rOOQO1G.l1G.lOOQO,59X,59XOOQO-E6k-E6kOOQO,59Y,59YOOQO-E6l-E6l",stateData:"#O~OeOS~OQSORSOSSOTSOWQO_ROgPO~OVXOgUO~O^[O~PVO[^O~O]_OVhX~OVaO~O]bO^iX~O^dO~O]_OVha~O]bO^ia~O",goto:"!kjPPPPPPkPPkqwPPPPk{!RPPP!XP!e!hXSOR^bQWQRf_TVQ_Q`WRg`QcZRicQTOQZRQe^RhbRYQR]R",nodeNames:"⚠ JsonText True False Null Number String } { Object Property PropertyName : , ] [ Array",maxTerm:25,nodeProps:[["isolate",-2,6,11,""],["openedBy",7,"{",14,"["],["closedBy",8,"}",15,"]"]],propSources:[Ar],skippedNodes:[0],repeatNodeCount:2,tokenData:"(|~RaXY!WYZ!W]^!Wpq!Wrs!]|}$u}!O$z!Q!R%T!R![&c![!]&t!}#O&y#P#Q'O#Y#Z'T#b#c'r#h#i(Z#o#p(r#q#r(w~!]Oe~~!`Wpq!]qr!]rs!xs#O!]#O#P!}#P;'S!];'S;=`$o<%lO!]~!}Og~~#QXrs!]!P!Q!]#O#P!]#U#V!]#Y#Z!]#b#c!]#f#g!]#h#i!]#i#j#m~#pR!Q![#y!c!i#y#T#Z#y~#|R!Q![$V!c!i$V#T#Z$V~$YR!Q![$c!c!i$c#T#Z$c~$fR!Q![!]!c!i!]#T#Z!]~$rP;=`<%l!]~$zO]~~$}Q!Q!R%T!R![&c~%YRT~!O!P%c!g!h%w#X#Y%w~%fP!Q![%i~%nRT~!Q![%i!g!h%w#X#Y%w~%zR{|&T}!O&T!Q![&Z~&WP!Q![&Z~&`PT~!Q![&Z~&hST~!O!P%c!Q![&c!g!h%w#X#Y%w~&yO[~~'OO_~~'TO^~~'WP#T#U'Z~'^P#`#a'a~'dP#g#h'g~'jP#X#Y'm~'rOR~~'uP#i#j'x~'{P#`#a(O~(RP#`#a(U~(ZOS~~(^P#f#g(a~(dP#i#j(g~(jP#X#Y(m~(rOQ~~(wOW~~(|OV~",tokenizers:[0],topRules:{JsonText:[0,1]},tokenPrec:0}),Ir=Lt.define({name:"json",parser:Dr.configure({props:[Nt.add({Object:He({except:/^\s*\}/}),Array:He({except:/^\s*\]/})}),Mt.add({"Object Array":Zt})]}),languageData:{closeBrackets:{brackets:["[","{",'"']},indentOnInput:/^\s*[\}\]]$/}});function Br(){return new Gt(Ir)}const Yr=1,hn=194,fn=195,Fr=196,bt=197,Hr=198,Jr=199,Kr=200,ei=2,mn=3,wt=201,ti=24,ni=25,ri=49,ii=50,oi=55,ai=56,si=57,Oi=59,li=60,di=61,ci=62,hi=63,fi=65,mi=238,ui=71,gi=241,pi=242,Qi=243,xi=244,vi=245,Ti=246,Si=247,yi=248,un=72,bi=249,wi=250,ki=251,Pi=252,$i=253,qi=254,ji=255,Wi=256,Ri=73,Xi=77,zi=263,_i=112,Ci=130,Ei=151,Ui=152,Vi=155,K=10,ce=13,Be=32,we=9,Ye=35,Gi=40,Li=46,Ve=123,kt=125,gn=39,pn=34,Pt=92,Ni=111,Mi=120,Zi=78,Ai=117,Di=85,Ii=new Set([ni,ri,ii,zi,fi,Ci,ai,si,mi,ci,hi,un,Ri,Xi,li,di,Ei,Ui,Vi,_i]);function We(e){return e==K||e==ce}function Re(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}const Bi=new be((e,t)=>{let n;if(e.next<0)e.acceptToken(Jr);else if(t.context.flags&xe)We(e.next)&&e.acceptToken(Hr,1);else if(((n=e.peek(-1))<0||We(n))&&t.canShift(bt)){let i=0;for(;e.next==Be||e.next==we;)e.advance(),i++;(e.next==K||e.next==ce||e.next==Ye)&&e.acceptToken(bt,-i)}else We(e.next)&&e.acceptToken(Fr,1)},{contextual:!0}),Yi=new be((e,t)=>{let n=t.context;if(n.flags)return;let i=e.peek(-1);if(i==K||i==ce){let o=0,r=0;for(;;){if(e.next==Be)o++;else if(e.next==we)o+=8-o%8;else break;e.advance(),r++}o!=n.indent&&e.next!=K&&e.next!=ce&&e.next!=Ye&&(o<n.indent?e.acceptToken(fn,-r):e.acceptToken(hn))}}),xe=1,Qn=2,L=4,N=8,M=16,Z=32;function ve(e,t,n){this.parent=e,this.indent=t,this.flags=n,this.hash=(e?e.hash+e.hash<<8:0)+t+(t<<4)+n+(n<<6)}const Fi=new ve(null,0,0);function Hi(e){let t=0;for(let n=0;n<e.length;n++)t+=e.charCodeAt(n)==we?8-t%8:1;return t}const $t=new Map([[gi,0],[pi,L],[Qi,N],[xi,N|L],[vi,M],[Ti,M|L],[Si,M|N],[yi,M|N|L],[bi,Z],[wi,Z|L],[ki,Z|N],[Pi,Z|N|L],[$i,Z|M],[qi,Z|M|L],[ji,Z|M|N],[Wi,Z|M|N|L]].map(([e,t])=>[e,t|Qn])),Ji=new qn({start:Fi,reduce(e,t,n,i){return e.flags&xe&&Ii.has(t)||(t==ui||t==un)&&e.flags&Qn?e.parent:e},shift(e,t,n,i){return t==hn?new ve(e,Hi(i.read(i.pos,n.pos)),0):t==fn?e.parent:t==ti||t==oi||t==Oi||t==mn?new ve(e,0,xe):$t.has(t)?new ve(e,0,$t.get(t)|e.flags&xe):e},hash(e){return e.hash}}),Ki=new be(e=>{for(let t=0;t<5;t++){if(e.next!="print".charCodeAt(t))return;e.advance()}if(!/\w/.test(String.fromCharCode(e.next)))for(let t=0;;t++){let n=e.peek(t);if(!(n==Be||n==we)){n!=Gi&&n!=Li&&n!=K&&n!=ce&&n!=Ye&&e.acceptToken(Yr);return}}}),eo=new be((e,t)=>{let{flags:n}=t.context,i=n&L?pn:gn,o=(n&N)>0,r=!(n&M),s=(n&Z)>0,a=e.pos;for(;!(e.next<0);)if(s&&e.next==Ve)if(e.peek(1)==Ve)e.advance(2);else{if(e.pos==a){e.acceptToken(mn,1);return}break}else if(r&&e.next==Pt){if(e.pos==a){e.advance();let d=e.next;d>=0&&(e.advance(),to(e,d)),e.acceptToken(ei);return}break}else if(e.next==Pt&&!r&&e.peek(1)>-1)e.advance(2);else if(e.next==i&&(!o||e.peek(1)==i&&e.peek(2)==i)){if(e.pos==a){e.acceptToken(wt,o?3:1);return}break}else if(e.next==K){if(o)e.advance();else if(e.pos==a){e.acceptToken(wt);return}break}else e.advance();e.pos>a&&e.acceptToken(Kr)});function to(e,t){if(t==Ni)for(let n=0;n<2&&e.next>=48&&e.next<=55;n++)e.advance();else if(t==Mi)for(let n=0;n<2&&Re(e.next);n++)e.advance();else if(t==Ai)for(let n=0;n<4&&Re(e.next);n++)e.advance();else if(t==Di)for(let n=0;n<8&&Re(e.next);n++)e.advance();else if(t==Zi&&e.next==Ve){for(e.advance();e.next>=0&&e.next!=kt&&e.next!=gn&&e.next!=pn&&e.next!=K;)e.advance();e.next==kt&&e.advance()}}const no=Vt({'async "*" "**" FormatConversion FormatSpec':x.modifier,"for while if elif else try except finally return raise break continue with pass assert await yield match case":x.controlKeyword,"in not and or is del":x.operatorKeyword,"from def class global nonlocal lambda":x.definitionKeyword,import:x.moduleKeyword,"with as print":x.keyword,Boolean:x.bool,None:x.null,VariableName:x.variableName,"CallExpression/VariableName":x.function(x.variableName),"FunctionDefinition/VariableName":x.function(x.definition(x.variableName)),"ClassDefinition/VariableName":x.definition(x.className),PropertyName:x.propertyName,"CallExpression/MemberExpression/PropertyName":x.function(x.propertyName),Comment:x.lineComment,Number:x.number,String:x.string,FormatString:x.special(x.string),Escape:x.escape,UpdateOp:x.updateOperator,"ArithOp!":x.arithmeticOperator,BitOp:x.bitwiseOperator,CompareOp:x.compareOperator,AssignOp:x.definitionOperator,Ellipsis:x.punctuation,At:x.meta,"( )":x.paren,"[ ]":x.squareBracket,"{ }":x.brace,".":x.derefOperator,", ;":x.separator}),ro={__proto__:null,await:44,or:54,and:56,in:60,not:62,is:64,if:70,else:72,lambda:76,yield:94,from:96,async:102,for:104,None:162,True:164,False:164,del:178,pass:182,break:186,continue:190,return:194,raise:202,import:206,as:208,global:212,nonlocal:214,assert:218,type:223,elif:236,while:240,try:246,except:248,finally:250,with:254,def:258,class:268,match:279,case:285},io=Ut.deserialize({version:14,states:"##jO`QeOOP$}OSOOO&WQtO'#HUOOQS'#Co'#CoOOQS'#Cp'#CpO'vQdO'#CnO*UQtO'#HTOOQS'#HU'#HUOOQS'#DU'#DUOOQS'#HT'#HTO*rQdO'#D_O+VQdO'#DfO+gQdO'#DjO+zOWO'#DuO,VOWO'#DvO.[QtO'#GuOOQS'#Gu'#GuO'vQdO'#GtO0ZQtO'#GtOOQS'#Eb'#EbO0rQdO'#EcOOQS'#Gs'#GsO0|QdO'#GrOOQV'#Gr'#GrO1XQdO'#FYOOQS'#G^'#G^O1^QdO'#FXOOQV'#IS'#ISOOQV'#Gq'#GqOOQV'#Fq'#FqQ`QeOOO'vQdO'#CqO1lQdO'#C}O1sQdO'#DRO2RQdO'#HYO2cQtO'#EVO'vQdO'#EWOOQS'#EY'#EYOOQS'#E['#E[OOQS'#E^'#E^O2wQdO'#E`O3_QdO'#EdO3rQdO'#EfO3zQtO'#EfO1XQdO'#EiO0rQdO'#ElO1XQdO'#EnO0rQdO'#EtO0rQdO'#EwO4VQdO'#EyO4^QdO'#FOO4iQdO'#EzO0rQdO'#FOO1XQdO'#FQO1XQdO'#FVO4nQdO'#F[P4uOdO'#GpPOOO)CBd)CBdOOQS'#Ce'#CeOOQS'#Cf'#CfOOQS'#Cg'#CgOOQS'#Ch'#ChOOQS'#Ci'#CiOOQS'#Cj'#CjOOQS'#Cl'#ClO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO5TQdO'#DoOOQS,5:Y,5:YO5hQdO'#HdOOQS,5:],5:]O5uQ!fO,5:]O5zQtO,59YO1lQdO,59bO1lQdO,59bO1lQdO,59bO8jQdO,59bO8oQdO,59bO8vQdO,59jO8}QdO'#HTO:TQdO'#HSOOQS'#HS'#HSOOQS'#D['#D[O:lQdO,59aO'vQdO,59aO:zQdO,59aOOQS,59y,59yO;PQdO,5:RO'vQdO,5:ROOQS,5:Q,5:QO;_QdO,5:QO;dQdO,5:XO'vQdO,5:XO'vQdO,5:VOOQS,5:U,5:UO;uQdO,5:UO;zQdO,5:WOOOW'#Fy'#FyO<POWO,5:aOOQS,5:a,5:aO<[QdO'#HwOOOW'#Dw'#DwOOOW'#Fz'#FzO<lOWO,5:bOOQS,5:b,5:bOOQS'#F}'#F}O<zQtO,5:iO?lQtO,5=`O@VQ#xO,5=`O@vQtO,5=`OOQS,5:},5:}OA_QeO'#GWOBqQdO,5;^OOQV,5=^,5=^OB|QtO'#IPOCkQdO,5;tOOQS-E:[-E:[OOQV,5;s,5;sO4dQdO'#FQOOQV-E9o-E9oOCsQtO,59]OEzQtO,59iOFeQdO'#HVOFpQdO'#HVO1XQdO'#HVOF{QdO'#DTOGTQdO,59mOGYQdO'#HZO'vQdO'#HZO0rQdO,5=tOOQS,5=t,5=tO0rQdO'#EROOQS'#ES'#ESOGwQdO'#GPOHXQdO,58|OHXQdO,58|O*xQdO,5:oOHgQtO'#H]OOQS,5:r,5:rOOQS,5:z,5:zOHzQdO,5;OOI]QdO'#IOO1XQdO'#H}OOQS,5;Q,5;QOOQS'#GT'#GTOIqQtO,5;QOJPQdO,5;QOJUQdO'#IQOOQS,5;T,5;TOJdQdO'#H|OOQS,5;W,5;WOJuQdO,5;YO4iQdO,5;`O4iQdO,5;cOJ}QtO'#ITO'vQdO'#ITOKXQdO,5;eO4VQdO,5;eO0rQdO,5;jO1XQdO,5;lOK^QeO'#EuOLjQgO,5;fO!!kQdO'#IUO4iQdO,5;jO!!vQdO,5;lO!#OQdO,5;qO!#ZQtO,5;vO'vQdO,5;vPOOO,5=[,5=[P!#bOSO,5=[P!#jOdO,5=[O!&bQtO1G.jO!&iQtO1G.jO!)YQtO1G.jO!)dQtO1G.jO!+}QtO1G.jO!,bQtO1G.jO!,uQdO'#HcO!-TQtO'#GuO0rQdO'#HcO!-_QdO'#HbOOQS,5:Z,5:ZO!-gQdO,5:ZO!-lQdO'#HeO!-wQdO'#HeO!.[QdO,5>OOOQS'#Ds'#DsOOQS1G/w1G/wOOQS1G.|1G.|O!/[QtO1G.|O!/cQtO1G.|O1lQdO1G.|O!0OQdO1G/UOOQS'#DZ'#DZO0rQdO,59tOOQS1G.{1G.{O!0VQdO1G/eO!0gQdO1G/eO!0oQdO1G/fO'vQdO'#H[O!0tQdO'#H[O!0yQtO1G.{O!1ZQdO,59iO!2aQdO,5=zO!2qQdO,5=zO!2yQdO1G/mO!3OQtO1G/mOOQS1G/l1G/lO!3`QdO,5=uO!4VQdO,5=uO0rQdO1G/qO!4tQdO1G/sO!4yQtO1G/sO!5ZQtO1G/qOOQS1G/p1G/pOOQS1G/r1G/rOOOW-E9w-E9wOOQS1G/{1G/{O!5kQdO'#HxO0rQdO'#HxO!5|QdO,5>cOOOW-E9x-E9xOOQS1G/|1G/|OOQS-E9{-E9{O!6[Q#xO1G2zO!6{QtO1G2zO'vQdO,5<jOOQS,5<j,5<jOOQS-E9|-E9|OOQS,5<r,5<rOOQS-E:U-E:UOOQV1G0x1G0xO1XQdO'#GRO!7dQtO,5>kOOQS1G1`1G1`O!8RQdO1G1`OOQS'#DV'#DVO0rQdO,5=qOOQS,5=q,5=qO!8WQdO'#FrO!8cQdO,59oO!8kQdO1G/XO!8uQtO,5=uOOQS1G3`1G3`OOQS,5:m,5:mO!9fQdO'#GtOOQS,5<k,5<kOOQS-E9}-E9}O!9wQdO1G.hOOQS1G0Z1G0ZO!:VQdO,5=wO!:gQdO,5=wO0rQdO1G0jO0rQdO1G0jO!:xQdO,5>jO!;ZQdO,5>jO1XQdO,5>jO!;lQdO,5>iOOQS-E:R-E:RO!;qQdO1G0lO!;|QdO1G0lO!<RQdO,5>lO!<aQdO,5>lO!<oQdO,5>hO!=VQdO,5>hO!=hQdO'#EpO0rQdO1G0tO!=sQdO1G0tO!=xQgO1G0zO!AvQgO1G0}O!EqQdO,5>oO!E{QdO,5>oO!FTQtO,5>oO0rQdO1G1PO!F_QdO1G1PO4iQdO1G1UO!!vQdO1G1WOOQV,5;a,5;aO!FdQfO,5;aO!FiQgO1G1QO!JjQdO'#GZO4iQdO1G1QO4iQdO1G1QO!JzQdO,5>pO!KXQdO,5>pO1XQdO,5>pOOQV1G1U1G1UO!KaQdO'#FSO!KrQ!fO1G1WO!KzQdO1G1WOOQV1G1]1G1]O4iQdO1G1]O!LPQdO1G1]O!LXQdO'#F^OOQV1G1b1G1bO!#ZQtO1G1bPOOO1G2v1G2vP!L^OSO1G2vOOQS,5=},5=}OOQS'#Dp'#DpO0rQdO,5=}O!LfQdO,5=|O!LyQdO,5=|OOQS1G/u1G/uO!MRQdO,5>PO!McQdO,5>PO!MkQdO,5>PO!NOQdO,5>PO!N`QdO,5>POOQS1G3j1G3jOOQS7+$h7+$hO!8kQdO7+$pO#!RQdO1G.|O#!YQdO1G.|OOQS1G/`1G/`OOQS,5<`,5<`O'vQdO,5<`OOQS7+%P7+%PO#!aQdO7+%POOQS-E9r-E9rOOQS7+%Q7+%QO#!qQdO,5=vO'vQdO,5=vOOQS7+$g7+$gO#!vQdO7+%PO##OQdO7+%QO##TQdO1G3fOOQS7+%X7+%XO##eQdO1G3fO##mQdO7+%XOOQS,5<_,5<_O'vQdO,5<_O##rQdO1G3aOOQS-E9q-E9qO#$iQdO7+%]OOQS7+%_7+%_O#$wQdO1G3aO#%fQdO7+%_O#%kQdO1G3gO#%{QdO1G3gO#&TQdO7+%]O#&YQdO,5>dO#&sQdO,5>dO#&sQdO,5>dOOQS'#Dx'#DxO#'UO&jO'#DzO#'aO`O'#HyOOOW1G3}1G3}O#'fQdO1G3}O#'nQdO1G3}O#'yQ#xO7+(fO#(jQtO1G2UP#)TQdO'#GOOOQS,5<m,5<mOOQS-E:P-E:POOQS7+&z7+&zOOQS1G3]1G3]OOQS,5<^,5<^OOQS-E9p-E9pOOQS7+$s7+$sO#)bQdO,5=`O#){QdO,5=`O#*^QtO,5<aO#*qQdO1G3cOOQS-E9s-E9sOOQS7+&U7+&UO#+RQdO7+&UO#+aQdO,5<nO#+uQdO1G4UOOQS-E:Q-E:QO#,WQdO1G4UOOQS1G4T1G4TOOQS7+&W7+&WO#,iQdO7+&WOOQS,5<p,5<pO#,tQdO1G4WOOQS-E:S-E:SOOQS,5<l,5<lO#-SQdO1G4SOOQS-E:O-E:OO1XQdO'#EqO#-jQdO'#EqO#-uQdO'#IRO#-}QdO,5;[OOQS7+&`7+&`O0rQdO7+&`O#.SQgO7+&fO!JmQdO'#GXO4iQdO7+&fO4iQdO7+&iO#2QQtO,5<tO'vQdO,5<tO#2[QdO1G4ZOOQS-E:W-E:WO#2fQdO1G4ZO4iQdO7+&kO0rQdO7+&kOOQV7+&p7+&pO!KrQ!fO7+&rO!KzQdO7+&rO`QeO1G0{OOQV-E:X-E:XO4iQdO7+&lO4iQdO7+&lOOQV,5<u,5<uO#2nQdO,5<uO!JmQdO,5<uOOQV7+&l7+&lO#2yQgO7+&lO#6tQdO,5<vO#7PQdO1G4[OOQS-E:Y-E:YO#7^QdO1G4[O#7fQdO'#IWO#7tQdO'#IWO1XQdO'#IWOOQS'#IW'#IWO#8PQdO'#IVOOQS,5;n,5;nO#8XQdO,5;nO0rQdO'#FUOOQV7+&r7+&rO4iQdO7+&rOOQV7+&w7+&wO4iQdO7+&wO#8^QfO,5;xOOQV7+&|7+&|POOO7+(b7+(bO#8cQdO1G3iOOQS,5<c,5<cO#8qQdO1G3hOOQS-E9u-E9uO#9UQdO,5<dO#9aQdO,5<dO#9tQdO1G3kOOQS-E9v-E9vO#:UQdO1G3kO#:^QdO1G3kO#:nQdO1G3kO#:UQdO1G3kOOQS<<H[<<H[O#:yQtO1G1zOOQS<<Hk<<HkP#;WQdO'#FtO8vQdO1G3bO#;eQdO1G3bO#;jQdO<<HkOOQS<<Hl<<HlO#;zQdO7+)QOOQS<<Hs<<HsO#<[QtO1G1yP#<{QdO'#FsO#=YQdO7+)RO#=jQdO7+)RO#=rQdO<<HwO#=wQdO7+({OOQS<<Hy<<HyO#>nQdO,5<bO'vQdO,5<bOOQS-E9t-E9tOOQS<<Hw<<HwOOQS,5<g,5<gO0rQdO,5<gO#>sQdO1G4OOOQS-E9y-E9yO#?^QdO1G4OO<[QdO'#H{OOOO'#D{'#D{OOOO'#F|'#F|O#?oO&jO,5:fOOOW,5>e,5>eOOOW7+)i7+)iO#?zQdO7+)iO#@SQdO1G2zO#@mQdO1G2zP'vQdO'#FuO0rQdO<<IpO1XQdO1G2YP1XQdO'#GSO#AOQdO7+)pO#AaQdO7+)pOOQS<<Ir<<IrP1XQdO'#GUP0rQdO'#GQOOQS,5;],5;]O#ArQdO,5>mO#BQQdO,5>mOOQS1G0v1G0vOOQS<<Iz<<IzOOQV-E:V-E:VO4iQdO<<JQOOQV,5<s,5<sO4iQdO,5<sOOQV<<JQ<<JQOOQV<<JT<<JTO#BYQtO1G2`P#BdQdO'#GYO#BkQdO7+)uO#BuQgO<<JVO4iQdO<<JVOOQV<<J^<<J^O4iQdO<<J^O!KrQ!fO<<J^O#FpQgO7+&gOOQV<<JW<<JWO#FzQgO<<JWOOQV1G2a1G2aO1XQdO1G2aO#JuQdO1G2aO4iQdO<<JWO1XQdO1G2bP0rQdO'#G[O#KQQdO7+)vO#K_QdO7+)vOOQS'#FT'#FTO0rQdO,5>rO#KgQdO,5>rO#KrQdO,5>rO#K}QdO,5>qO#L`QdO,5>qOOQS1G1Y1G1YOOQS,5;p,5;pOOQV<<Jc<<JcO#LhQdO1G1dOOQS7+)T7+)TP#LmQdO'#FwO#L}QdO1G2OO#MbQdO1G2OO#MrQdO1G2OP#M}QdO'#FxO#N[QdO7+)VO#NlQdO7+)VO#NlQdO7+)VO#NtQdO7+)VO$ UQdO7+(|O8vQdO7+(|OOQSAN>VAN>VO$ oQdO<<LmOOQSAN>cAN>cO0rQdO1G1|O$!PQtO1G1|P$!ZQdO'#FvOOQS1G2R1G2RP$!hQdO'#F{O$!uQdO7+)jO$#`QdO,5>gOOOO-E9z-E9zOOOW<<MT<<MTO$#nQdO7+(fOOQSAN?[AN?[OOQS7+'t7+'tO$$XQdO<<M[OOQS,5<q,5<qO$$jQdO1G4XOOQS-E:T-E:TOOQVAN?lAN?lOOQV1G2_1G2_O4iQdOAN?qO$$xQgOAN?qOOQVAN?xAN?xO4iQdOAN?xOOQV<<JR<<JRO4iQdOAN?rO4iQdO7+'{OOQV7+'{7+'{O1XQdO7+'{OOQVAN?rAN?rOOQS7+'|7+'|O$(sQdO<<MbOOQS1G4^1G4^O0rQdO1G4^OOQS,5<w,5<wO$)QQdO1G4]OOQS-E:Z-E:ZOOQU'#G_'#G_O$)cQfO7+'OO$)nQdO'#F_O$*uQdO7+'jO$+VQdO7+'jOOQS7+'j7+'jO$+bQdO<<LqO$+rQdO<<LqO$+rQdO<<LqO$+zQdO'#H^OOQS<<Lh<<LhO$,UQdO<<LhOOQS7+'h7+'hOOQS'#D|'#D|OOOO1G4R1G4RO$,oQdO1G4RO$,wQdO1G4RP!=hQdO'#GVOOQVG25]G25]O4iQdOG25]OOQVG25dG25dOOQVG25^G25^OOQV<<Kg<<KgO4iQdO<<KgOOQS7+)x7+)xP$-SQdO'#G]OOQU-E:]-E:]OOQV<<Jj<<JjO$-vQtO'#FaOOQS'#Fc'#FcO$.WQdO'#FbO$.xQdO'#FbOOQS'#Fb'#FbO$.}QdO'#IYO$)nQdO'#FiO$)nQdO'#FiO$/fQdO'#FjO$)nQdO'#FkO$/mQdO'#IZOOQS'#IZ'#IZO$0[QdO,5;yOOQS<<KU<<KUO$0dQdO<<KUO$0tQdOANB]O$1UQdOANB]O$1^QdO'#H_OOQS'#H_'#H_O1sQdO'#DcO$1wQdO,5=xOOQSANBSANBSOOOO7+)m7+)mO$2`QdO7+)mOOQVLD*wLD*wOOQVANARANARO5uQ!fO'#GaO$2hQtO,5<SO$)nQdO'#FmOOQS,5<W,5<WOOQS'#Fd'#FdO$3YQdO,5;|O$3_QdO,5;|OOQS'#Fg'#FgO$)nQdO'#G`O$4PQdO,5<QO$4kQdO,5>tO$4{QdO,5>tO1XQdO,5<PO$5^QdO,5<TO$5cQdO,5<TO$)nQdO'#I[O$5hQdO'#I[O$5mQdO,5<UOOQS,5<V,5<VO0rQdO'#FpOOQU1G1e1G1eO4iQdO1G1eOOQSAN@pAN@pO$5rQdOG27wO$6SQdO,59}OOQS1G3d1G3dOOOO<<MX<<MXOOQS,5<{,5<{OOQS-E:_-E:_O$6XQtO'#FaO$6`QdO'#I]O$6nQdO'#I]O$6vQdO,5<XOOQS1G1h1G1hO$6{QdO1G1hO$7QQdO,5<zOOQS-E:^-E:^O$7lQdO,5=OO$8TQdO1G4`OOQS-E:b-E:bOOQS1G1k1G1kOOQS1G1o1G1oO$8eQdO,5>vO$)nQdO,5>vOOQS1G1p1G1pOOQS,5<[,5<[OOQU7+'P7+'PO$+zQdO1G/iO$)nQdO,5<YO$8sQdO,5>wO$8zQdO,5>wOOQS1G1s1G1sOOQS7+'S7+'SP$)nQdO'#GdO$9SQdO1G4bO$9^QdO1G4bO$9fQdO1G4bOOQS7+%T7+%TO$9tQdO1G1tO$:SQtO'#FaO$:ZQdO,5<}OOQS,5<},5<}O$:iQdO1G4cOOQS-E:a-E:aO$)nQdO,5<|O$:pQdO,5<|O$:uQdO7+)|OOQS-E:`-E:`O$;PQdO7+)|O$)nQdO,5<ZP$)nQdO'#GcO$;XQdO1G2hO$)nQdO1G2hP$;gQdO'#GbO$;nQdO<<MhO$;xQdO1G1uO$<WQdO7+(SO8vQdO'#C}O8vQdO,59bO8vQdO,59bO8vQdO,59bO$<fQtO,5=`O8vQdO1G.|O0rQdO1G/XO0rQdO7+$pP$<yQdO'#GOO'vQdO'#GtO$=WQdO,59bO$=]QdO,59bO$=dQdO,59mO$=iQdO1G/UO1sQdO'#DRO8vQdO,59j",stateData:"$>S~O%cOS%^OSSOS%]PQ~OPdOVaOfoOhYOopOs!POvqO!PrO!Q{O!T!SO!U!RO!XZO!][O!h`O!r`O!s`O!t`O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO#l!QO#o!TO#s!UO#u!VO#z!WO#}hO$P!XO%oRO%pRO%tSO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O~O%]!YO~OV!aO_!aOa!bOh!iO!X!kO!f!mO%j![O%k!]O%l!^O%m!_O%n!_O%o!`O%p!`O%q!aO%r!aO%s!aO~Ok%xXl%xXm%xXn%xXo%xXp%xXs%xXz%xX{%xX!x%xX#g%xX%[%xX%_%xX%z%xXg%xX!T%xX!U%xX%{%xX!W%xX![%xX!Q%xX#[%xXt%xX!m%xX~P%SOfoOhYO!XZO!][O!h`O!r`O!s`O!t`O%oRO%pRO%tSO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O~Oz%wX{%wX#g%wX%[%wX%_%wX%z%wX~Ok!pOl!qOm!oOn!oOo!rOp!sOs!tO!x%wX~P)pOV!zOg!|Oo0cOv0qO!PrO~P'vOV#OOo0cOv0qO!W#PO~P'vOV#SOa#TOo0cOv0qO![#UO~P'vOQ#XO%`#XO%a#ZO~OQ#^OR#[O%`#^O%a#`O~OV%iX_%iXa%iXh%iXk%iXl%iXm%iXn%iXo%iXp%iXs%iXz%iX!X%iX!f%iX%j%iX%k%iX%l%iX%m%iX%n%iX%o%iX%p%iX%q%iX%r%iX%s%iXg%iX!T%iX!U%iX~O&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O{%iX!x%iX#g%iX%[%iX%_%iX%z%iX%{%iX!W%iX![%iX!Q%iX#[%iXt%iX!m%iX~P,eOz#dO{%hX!x%hX#g%hX%[%hX%_%hX%z%hX~Oo0cOv0qO~P'vO#g#gO%[#iO%_#iO~O%uWO~O!T#nO#u!VO#z!WO#}hO~OopO~P'vOV#sOa#tO%uWO{wP~OV#xOo0cOv0qO!Q#yO~P'vO{#{O!x$QO%z#|O#g!yX%[!yX%_!yX~OV#xOo0cOv0qO#g#SX%[#SX%_#SX~P'vOo0cOv0qO#g#WX%[#WX%_#WX~P'vOh$WO%uWO~O!f$YO!r$YO%uWO~OV$eO~P'vO!U$gO#s$hO#u$iO~O{$jO~OV$qO~P'vOS$sO%[$rO%_$rO%c$tO~OV$}Oa$}Og%POo0cOv0qO~P'vOo0cOv0qO{%SO~P'vO&Y%UO~Oa!bOh!iO!X!kO!f!mOVba_bakbalbambanbaobapbasbazba{ba!xba#gba%[ba%_ba%jba%kba%lba%mba%nba%oba%pba%qba%rba%sba%zbagba!Tba!Uba%{ba!Wba![ba!Qba#[batba!mba~On%ZO~Oo%ZO~P'vOo0cO~P'vOk0eOl0fOm0dOn0dOo0mOp0nOs0rOg%wX!T%wX!U%wX%{%wX!W%wX![%wX!Q%wX#[%wX!m%wX~P)pO%{%]Og%vXz%vX!T%vX!U%vX!W%vX{%vX~Og%_Oz%`O!T%dO!U%cO~Og%_O~Oz%gO!T%dO!U%cO!W&SX~O!W%kO~Oz%lO{%nO!T%dO!U%cO![%}X~O![%rO~O![%sO~OQ#XO%`#XO%a%uO~OV%wOo0cOv0qO!PrO~P'vOQ#^OR#[O%`#^O%a%zO~OV!qa_!qaa!qah!qak!qal!qam!qan!qao!qap!qas!qaz!qa{!qa!X!qa!f!qa!x!qa#g!qa%[!qa%_!qa%j!qa%k!qa%l!qa%m!qa%n!qa%o!qa%p!qa%q!qa%r!qa%s!qa%z!qag!qa!T!qa!U!qa%{!qa!W!qa![!qa!Q!qa#[!qat!qa!m!qa~P#yOz%|O{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~P%SOV&OOopOvqO{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~P'vOz%|O{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~OPdOVaOopOvqO!PrO!Q{O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO#g$zX%[$zX%_$zX~P'vO#g#gO%[&TO%_&TO~O!f&UOh&sX%[&sXz&sX#[&sX#g&sX%_&sX#Z&sXg&sX~Oh!iO%[&WO~Okealeameaneaoeapeaseazea{ea!xea#gea%[ea%_ea%zeagea!Tea!Uea%{ea!Wea![ea!Qea#[eatea!mea~P%SOsqazqa{qa#gqa%[qa%_qa%zqa~Ok!pOl!qOm!oOn!oOo!rOp!sO!xqa~PEcO%z&YOz%yX{%yX~O%uWOz%yX{%yX~Oz&]O{wX~O{&_O~Oz%lO#g%}X%[%}X%_%}Xg%}X{%}X![%}X!m%}X%z%}X~OV0lOo0cOv0qO!PrO~P'vO%z#|O#gUa%[Ua%_Ua~Oz&hO#g&PX%[&PX%_&PXn&PX~P%SOz&kO!Q&jO#g#Wa%[#Wa%_#Wa~Oz&lO#[&nO#g&rX%[&rX%_&rXg&rX~O!f$YO!r$YO#Z&qO%uWO~O#Z&qO~Oz&sO#g&tX%[&tX%_&tX~Oz&uO#g&pX%[&pX%_&pX{&pX~O!X&wO%z&xO~Oz&|On&wX~P%SOn'PO~OPdOVaOopOvqO!PrO!Q{O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO%['UO~P'vOt'YO#p'WO#q'XOP#naV#naf#nah#nao#nas#nav#na!P#na!Q#na!T#na!U#na!X#na!]#na!h#na!r#na!s#na!t#na!{#na!}#na#P#na#R#na#T#na#X#na#Z#na#^#na#_#na#a#na#c#na#l#na#o#na#s#na#u#na#z#na#}#na$P#na%X#na%o#na%p#na%t#na%u#na&Z#na&[#na&]#na&^#na&_#na&`#na&a#na&b#na&c#na&d#na&e#na&f#na&g#na&h#na&i#na&j#na%Z#na%_#na~Oz'ZO#[']O{&xX~Oh'_O!X&wO~Oh!iO{$jO!X&wO~O{'eO~P%SO%['hO%_'hO~OS'iO%['hO%_'hO~OV!aO_!aOa!bOh!iO!X!kO!f!mO%l!^O%m!_O%n!_O%o!`O%p!`O%q!aO%r!aO%s!aOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~O%k!]O~P!#uO%kWi~P!#uOV!aO_!aOa!bOh!iO!X!kO!f!mO%o!`O%p!`O%q!aO%r!aO%s!aOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%kWi%lWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~O%m!_O%n!_O~P!&pO%mWi%nWi~P!&pOa!bOh!iO!X!kO!f!mOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%kWi%lWi%mWi%nWi%oWi%pWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~OV!aO_!aO%q!aO%r!aO%s!aO~P!)nOVWi_Wi%qWi%rWi%sWi~P!)nO!T%dO!U%cOg&VXz&VX~O%z'kO%{'kO~P,eOz'mOg&UX~Og'oO~Oz'pO{'rO!W&XX~Oo0cOv0qOz'pO{'sO!W&XX~P'vO!W'uO~Om!oOn!oOo!rOp!sOkjisjizji{ji!xji#gji%[ji%_ji%zji~Ol!qO~P!.aOlji~P!.aOk0eOl0fOm0dOn0dOo0mOp0nO~Ot'wO~P!/jOV'|Og'}Oo0cOv0qO~P'vOg'}Oz(OO~Og(QO~O!U(SO~Og(TOz(OO!T%dO!U%cO~P%SOk0eOl0fOm0dOn0dOo0mOp0nOgqa!Tqa!Uqa%{qa!Wqa![qa!Qqa#[qatqa!mqa~PEcOV'|Oo0cOv0qO!W&Sa~P'vOz(WO!W&Sa~O!W(XO~Oz(WO!T%dO!U%cO!W&Sa~P%SOV(]Oo0cOv0qO![%}a#g%}a%[%}a%_%}ag%}a{%}a!m%}a%z%}a~P'vOz(^O![%}a#g%}a%[%}a%_%}ag%}a{%}a!m%}a%z%}a~O![(aO~Oz(^O!T%dO!U%cO![%}a~P%SOz(dO!T%dO!U%cO![&Ta~P%SOz(gO{&lX![&lX!m&lX%z&lX~O{(kO![(mO!m(nO%z(jO~OV&OOopOvqO{%hi!x%hi#g%hi%[%hi%_%hi%z%hi~P'vOz(pO{%hi!x%hi#g%hi%[%hi%_%hi%z%hi~O!f&UOh&sa%[&saz&sa#[&sa#g&sa%_&sa#Z&sag&sa~O%[(uO~OV#sOa#tO%uWO~Oz&]O{wa~OopOvqO~P'vOz(^O#g%}a%[%}a%_%}ag%}a{%}a![%}a!m%}a%z%}a~P%SOz(zO#g%hX%[%hX%_%hX%z%hX~O%z#|O#gUi%[Ui%_Ui~O#g&Pa%[&Pa%_&Pan&Pa~P'vOz(}O#g&Pa%[&Pa%_&Pan&Pa~O%uWO#g&ra%[&ra%_&rag&ra~Oz)SO#g&ra%[&ra%_&rag&ra~Og)VO~OV)WOh$WO%uWO~O#Z)XO~O%uWO#g&ta%[&ta%_&ta~Oz)ZO#g&ta%[&ta%_&ta~Oo0cOv0qO#g&pa%[&pa%_&pa{&pa~P'vOz)^O#g&pa%[&pa%_&pa{&pa~OV)`Oa)`O%uWO~O%z)eO~Ot)hO#j)gOP#hiV#hif#hih#hio#his#hiv#hi!P#hi!Q#hi!T#hi!U#hi!X#hi!]#hi!h#hi!r#hi!s#hi!t#hi!{#hi!}#hi#P#hi#R#hi#T#hi#X#hi#Z#hi#^#hi#_#hi#a#hi#c#hi#l#hi#o#hi#s#hi#u#hi#z#hi#}#hi$P#hi%X#hi%o#hi%p#hi%t#hi%u#hi&Z#hi&[#hi&]#hi&^#hi&_#hi&`#hi&a#hi&b#hi&c#hi&d#hi&e#hi&f#hi&g#hi&h#hi&i#hi&j#hi%Z#hi%_#hi~Ot)iOP#kiV#kif#kih#kio#kis#kiv#ki!P#ki!Q#ki!T#ki!U#ki!X#ki!]#ki!h#ki!r#ki!s#ki!t#ki!{#ki!}#ki#P#ki#R#ki#T#ki#X#ki#Z#ki#^#ki#_#ki#a#ki#c#ki#l#ki#o#ki#s#ki#u#ki#z#ki#}#ki$P#ki%X#ki%o#ki%p#ki%t#ki%u#ki&Z#ki&[#ki&]#ki&^#ki&_#ki&`#ki&a#ki&b#ki&c#ki&d#ki&e#ki&f#ki&g#ki&h#ki&i#ki&j#ki%Z#ki%_#ki~OV)kOn&wa~P'vOz)lOn&wa~Oz)lOn&wa~P%SOn)pO~O%Y)tO~Ot)wO#p'WO#q)vOP#niV#nif#nih#nio#nis#niv#ni!P#ni!Q#ni!T#ni!U#ni!X#ni!]#ni!h#ni!r#ni!s#ni!t#ni!{#ni!}#ni#P#ni#R#ni#T#ni#X#ni#Z#ni#^#ni#_#ni#a#ni#c#ni#l#ni#o#ni#s#ni#u#ni#z#ni#}#ni$P#ni%X#ni%o#ni%p#ni%t#ni%u#ni&Z#ni&[#ni&]#ni&^#ni&_#ni&`#ni&a#ni&b#ni&c#ni&d#ni&e#ni&f#ni&g#ni&h#ni&i#ni&j#ni%Z#ni%_#ni~OV)zOo0cOv0qO{$jO~P'vOo0cOv0qO{&xa~P'vOz*OO{&xa~OV*SOa*TOg*WO%q*UO%uWO~O{$jO&{*YO~Oh'_O~Oh!iO{$jO~O%[*_O~O%[*aO%_*aO~OV$}Oa$}Oo0cOv0qOg&Ua~P'vOz*dOg&Ua~Oo0cOv0qO{*gO!W&Xa~P'vOz*hO!W&Xa~Oo0cOv0qOz*hO{*kO!W&Xa~P'vOo0cOv0qOz*hO!W&Xa~P'vOz*hO{*kO!W&Xa~Om0dOn0dOo0mOp0nOgjikjisjizji!Tji!Uji%{ji!Wji{ji![ji#gji%[ji%_ji!Qji#[jitji!mji%zji~Ol0fO~P!NkOlji~P!NkOV'|Og*pOo0cOv0qO~P'vOn*rO~Og*pOz*tO~Og*uO~OV'|Oo0cOv0qO!W&Si~P'vOz*vO!W&Si~O!W*wO~OV(]Oo0cOv0qO![%}i#g%}i%[%}i%_%}ig%}i{%}i!m%}i%z%}i~P'vOz*zO!T%dO!U%cO![&Ti~Oz*}O![%}i#g%}i%[%}i%_%}ig%}i{%}i!m%}i%z%}i~O![+OO~Oa+QOo0cOv0qO![&Ti~P'vOz*zO![&Ti~O![+SO~OV+UOo0cOv0qO{&la![&la!m&la%z&la~P'vOz+VO{&la![&la!m&la%z&la~O!]+YO&n+[O![!nX~O![+^O~O{(kO![+_O~O{(kO![+_O!m+`O~OV&OOopOvqO{%hq!x%hq#g%hq%[%hq%_%hq%z%hq~P'vOz$ri{$ri!x$ri#g$ri%[$ri%_$ri%z$ri~P%SOV&OOopOvqO~P'vOV&OOo0cOv0qO#g%ha%[%ha%_%ha%z%ha~P'vOz+aO#g%ha%[%ha%_%ha%z%ha~Oz$ia#g$ia%[$ia%_$ian$ia~P%SO#g&Pi%[&Pi%_&Pin&Pi~P'vOz+dO#g#Wq%[#Wq%_#Wq~O#[+eOz$va#g$va%[$va%_$vag$va~O%uWO#g&ri%[&ri%_&rig&ri~Oz+gO#g&ri%[&ri%_&rig&ri~OV+iOh$WO%uWO~O%uWO#g&ti%[&ti%_&ti~Oo0cOv0qO#g&pi%[&pi%_&pi{&pi~P'vO{#{Oz#eX!W#eX~Oz+mO!W&uX~O!W+oO~Ot+rO#j)gOP#hqV#hqf#hqh#hqo#hqs#hqv#hq!P#hq!Q#hq!T#hq!U#hq!X#hq!]#hq!h#hq!r#hq!s#hq!t#hq!{#hq!}#hq#P#hq#R#hq#T#hq#X#hq#Z#hq#^#hq#_#hq#a#hq#c#hq#l#hq#o#hq#s#hq#u#hq#z#hq#}#hq$P#hq%X#hq%o#hq%p#hq%t#hq%u#hq&Z#hq&[#hq&]#hq&^#hq&_#hq&`#hq&a#hq&b#hq&c#hq&d#hq&e#hq&f#hq&g#hq&h#hq&i#hq&j#hq%Z#hq%_#hq~On$|az$|a~P%SOV)kOn&wi~P'vOz+yOn&wi~Oz,TO{$jO#[,TO~O#q,VOP#nqV#nqf#nqh#nqo#nqs#nqv#nq!P#nq!Q#nq!T#nq!U#nq!X#nq!]#nq!h#nq!r#nq!s#nq!t#nq!{#nq!}#nq#P#nq#R#nq#T#nq#X#nq#Z#nq#^#nq#_#nq#a#nq#c#nq#l#nq#o#nq#s#nq#u#nq#z#nq#}#nq$P#nq%X#nq%o#nq%p#nq%t#nq%u#nq&Z#nq&[#nq&]#nq&^#nq&_#nq&`#nq&a#nq&b#nq&c#nq&d#nq&e#nq&f#nq&g#nq&h#nq&i#nq&j#nq%Z#nq%_#nq~O#[,WOz%Oa{%Oa~Oo0cOv0qO{&xi~P'vOz,YO{&xi~O{#{O%z,[Og&zXz&zX~O%uWOg&zXz&zX~Oz,`Og&yX~Og,bO~O%Y,eO~O!T%dO!U%cOg&Viz&Vi~OV$}Oa$}Oo0cOv0qOg&Ui~P'vO{,hOz$la!W$la~Oo0cOv0qO{,iOz$la!W$la~P'vOo0cOv0qO{*gO!W&Xi~P'vOz,lO!W&Xi~Oo0cOv0qOz,lO!W&Xi~P'vOz,lO{,oO!W&Xi~Og$hiz$hi!W$hi~P%SOV'|Oo0cOv0qO~P'vOn,qO~OV'|Og,rOo0cOv0qO~P'vOV'|Oo0cOv0qO!W&Sq~P'vOz$gi![$gi#g$gi%[$gi%_$gig$gi{$gi!m$gi%z$gi~P%SOV(]Oo0cOv0qO~P'vOa+QOo0cOv0qO![&Tq~P'vOz,sO![&Tq~O![,tO~OV(]Oo0cOv0qO![%}q#g%}q%[%}q%_%}qg%}q{%}q!m%}q%z%}q~P'vO{,uO~OV+UOo0cOv0qO{&li![&li!m&li%z&li~P'vOz,zO{&li![&li!m&li%z&li~O!]+YO&n+[O![!na~O{(kO![,}O~OV&OOo0cOv0qO#g%hi%[%hi%_%hi%z%hi~P'vOz-OO#g%hi%[%hi%_%hi%z%hi~O%uWO#g&rq%[&rq%_&rqg&rq~Oz-RO#g&rq%[&rq%_&rqg&rq~OV)`Oa)`O%uWO!W&ua~Oz-TO!W&ua~On$|iz$|i~P%SOV)kO~P'vOV)kOn&wq~P'vOt-XOP#myV#myf#myh#myo#mys#myv#my!P#my!Q#my!T#my!U#my!X#my!]#my!h#my!r#my!s#my!t#my!{#my!}#my#P#my#R#my#T#my#X#my#Z#my#^#my#_#my#a#my#c#my#l#my#o#my#s#my#u#my#z#my#}#my$P#my%X#my%o#my%p#my%t#my%u#my&Z#my&[#my&]#my&^#my&_#my&`#my&a#my&b#my&c#my&d#my&e#my&f#my&g#my&h#my&i#my&j#my%Z#my%_#my~O%Z-]O%_-]O~P`O#q-^OP#nyV#nyf#nyh#nyo#nys#nyv#ny!P#ny!Q#ny!T#ny!U#ny!X#ny!]#ny!h#ny!r#ny!s#ny!t#ny!{#ny!}#ny#P#ny#R#ny#T#ny#X#ny#Z#ny#^#ny#_#ny#a#ny#c#ny#l#ny#o#ny#s#ny#u#ny#z#ny#}#ny$P#ny%X#ny%o#ny%p#ny%t#ny%u#ny&Z#ny&[#ny&]#ny&^#ny&_#ny&`#ny&a#ny&b#ny&c#ny&d#ny&e#ny&f#ny&g#ny&h#ny&i#ny&j#ny%Z#ny%_#ny~Oz-aO{$jO#[-aO~Oo0cOv0qO{&xq~P'vOz-dO{&xq~O%z,[Og&zaz&za~O{#{Og&zaz&za~OV*SOa*TO%q*UO%uWOg&ya~Oz-hOg&ya~O$S-lO~OV$}Oa$}Oo0cOv0qO~P'vOo0cOv0qO{-mOz$li!W$li~P'vOo0cOv0qOz$li!W$li~P'vO{-mOz$li!W$li~Oo0cOv0qO{*gO~P'vOo0cOv0qO{*gO!W&Xq~P'vOz-pO!W&Xq~Oo0cOv0qOz-pO!W&Xq~P'vOs-sO!T%dO!U%cOg&Oq!W&Oq![&Oqz&Oq~P!/jOa+QOo0cOv0qO![&Ty~P'vOz$ji![$ji~P%SOa+QOo0cOv0qO~P'vOV+UOo0cOv0qO~P'vOV+UOo0cOv0qO{&lq![&lq!m&lq%z&lq~P'vO{(kO![-xO!m-yO%z-wO~OV&OOo0cOv0qO#g%hq%[%hq%_%hq%z%hq~P'vO%uWO#g&ry%[&ry%_&ryg&ry~OV)`Oa)`O%uWO!W&ui~Ot-}OP#m!RV#m!Rf#m!Rh#m!Ro#m!Rs#m!Rv#m!R!P#m!R!Q#m!R!T#m!R!U#m!R!X#m!R!]#m!R!h#m!R!r#m!R!s#m!R!t#m!R!{#m!R!}#m!R#P#m!R#R#m!R#T#m!R#X#m!R#Z#m!R#^#m!R#_#m!R#a#m!R#c#m!R#l#m!R#o#m!R#s#m!R#u#m!R#z#m!R#}#m!R$P#m!R%X#m!R%o#m!R%p#m!R%t#m!R%u#m!R&Z#m!R&[#m!R&]#m!R&^#m!R&_#m!R&`#m!R&a#m!R&b#m!R&c#m!R&d#m!R&e#m!R&f#m!R&g#m!R&h#m!R&i#m!R&j#m!R%Z#m!R%_#m!R~Oo0cOv0qO{&xy~P'vOV*SOa*TO%q*UO%uWOg&yi~O$S-lO%Z.VO%_.VO~OV.aOh._O!X.^O!].`O!h.YO!s.[O!t.[O%p.XO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O~Oo0cOv0qOz$lq!W$lq~P'vO{.fOz$lq!W$lq~Oo0cOv0qO{*gO!W&Xy~P'vOz.gO!W&Xy~Oo0cOv.kO~P'vOs-sO!T%dO!U%cOg&Oy!W&Oy![&Oyz&Oy~P!/jO{(kO![.nO~O{(kO![.nO!m.oO~OV*SOa*TO%q*UO%uWO~Oh.tO!f.rOz$TX#[$TX%j$TXg$TX~Os$TX{$TX!W$TX![$TX~P$-bO%o.vO%p.vOs$UXz$UX{$UX#[$UX%j$UX!W$UXg$UX![$UX~O!h.xO~Oz.|O#[/OO%j.yOs&|X{&|X!W&|Xg&|X~Oa/RO~P$)zOh.tOs&}Xz&}X{&}X#[&}X%j&}X!W&}Xg&}X![&}X~Os/VO{$jO~Oo0cOv0qOz$ly!W$ly~P'vOo0cOv0qO{*gO!W&X!R~P'vOz/ZO!W&X!R~Og&RXs&RX!T&RX!U&RX!W&RX![&RXz&RX~P!/jOs-sO!T%dO!U%cOg&Qa!W&Qa![&Qaz&Qa~O{(kO![/^O~O!f.rOh$[as$[az$[a{$[a#[$[a%j$[a!W$[ag$[a![$[a~O!h/eO~O%o.vO%p.vOs$Uaz$Ua{$Ua#[$Ua%j$Ua!W$Uag$Ua![$Ua~O%j.yOs$Yaz$Ya{$Ya#[$Ya!W$Yag$Ya![$Ya~Os&|a{&|a!W&|ag&|a~P$)nOz/jOs&|a{&|a!W&|ag&|a~O!W/mO~Og/mO~O{/oO~O![/pO~Oo0cOv0qO{*gO!W&X!Z~P'vO{/sO~O%z/tO~P$-bOz/uO#[/OO%j.yOg'PX~Oz/uOg'PX~Og/wO~O!h/xO~O#[/OOs%Saz%Sa{%Sa%j%Sa!W%Sag%Sa![%Sa~O#[/OO%j.yOs%Waz%Wa{%Wa!W%Wag%Wa~Os&|i{&|i!W&|ig&|i~P$)nOz/zO#[/OO%j.yO!['Oa~Og'Pa~P$)nOz0SOg'Pa~Oa0UO!['Oi~P$)zOz0WO!['Oi~Oz0WO#[/OO%j.yO!['Oi~O#[/OO%j.yOg$biz$bi~O%z0ZO~P$-bO#[/OO%j.yOg%Vaz%Va~Og'Pi~P$)nO{0^O~Oa0UO!['Oq~P$)zOz0`O!['Oq~O#[/OO%j.yOz%Ui![%Ui~Oa0UO~P$)zOa0UO!['Oy~P$)zO#[/OO%j.yOg$ciz$ci~O#[/OO%j.yOz%Uq![%Uq~Oz+aO#g%ha%[%ha%_%ha%z%ha~P%SOV&OOo0cOv0qO~P'vOn0hO~Oo0hO~P'vO{0iO~Ot0jO~P!/jO&]&Z&j&h&i&g&f&d&e&c&b&`&a&_&^&[%u~",goto:"!=j'QPPPPPP'RP'Z*s+[+t,_,y-fP.SP'Z.r.r'ZPPP'Z2[PPPPPP2[5PPP5PP7b7k=sPP=v>h>kPP'Z'ZPP>zPP'Z'ZPP'Z'Z'Z'Z'Z?O?w'ZP?zP@QDXGuGyPG|HWH['ZPPPH_Hk'RP'R'RP'RP'RP'RP'RP'R'R'RP'RPP'RPP'RP'RPHqH}IVPI^IdPI^PI^I^PPPI^PKrPK{LVL]KrPI^LfPI^PLmLsPLwM]MzNeLwLwNkNxLwLwLwLw! ^! d! g! l! o! y!!P!!]!!o!!u!#P!#V!#s!#y!$P!$Z!$a!$g!$y!%T!%Z!%a!%k!%q!%w!%}!&T!&Z!&e!&k!&u!&{!'U!'[!'k!'s!'}!(UPPPPPPPPPPP!([!(_!(e!(n!(x!)TPPPPPPPPPPPP!-u!/Z!3^!6oPP!6w!7W!7a!8Y!8P!8c!8i!8l!8o!8r!8z!9jPPPPPPPPPPPPPPPPP!9m!9q!9wP!:]!:a!:m!:v!;S!;j!;m!;p!;v!;|!<S!<VP!<_!<h!=d!=g]eOn#g$j)t,P'}`OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0r{!cQ#c#p$R$d$p%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g}!dQ#c#p$R$d$p$u%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!P!eQ#c#p$R$d$p$u$v%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!R!fQ#c#p$R$d$p$u$v$w%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!T!gQ#c#p$R$d$p$u$v$w$x%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!V!hQ#c#p$R$d$p$u$v$w$x$y%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!Z!hQ!n#c#p$R$d$p$u$v$w$x$y$z%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g'}TOTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0r&eVOYZ[dnprxy}!P!Q!U!i!k!o!p!q!s!t#[#d#g#y#{#}$Q$h$j$}%S%Z%^%`%g%l%n%w%|&Z&_&j&k&u&x'P'W'Z'l'm'p'r's'w(O(W(^(d(g(p(r(z)^)e)g)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+U+V+Y+a+d+k,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0n0r%oXOYZ[dnrxy}!P!Q!U!i!k#[#d#g#y#{#}$Q$h$j$}%S%^%`%g%l%n%w%|&Z&_&j&k&u&x'P'W'Z'l'm'p'r's'w(O(W(^(d(g(p(r(z)^)e)g)p)t)z*O*Y*d*g*h*k*q*t*v*y*z*}+U+V+Y+a+d+k,P,X,Y,],g,h,i,k,l,o,s,u,w,y,z-O-d-f-m-p.f.g/V/Z0i0j0kQ#vqQ/[.kR0o0q't`OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0rh#jhz{$W$Z&l&q)S)X+f+g-RW#rq&].k0qQ$]|Q$a!OQ$n!VQ$o!WW$|!i'm*d,gS&[#s#tQ'S$iQ(s&UQ)U&nU)Y&s)Z+jW)a&w+m-T-{Q*Q']W*R'_,`-h.TQ+l)`S,_*S*TQ-Q+eQ-_,TQ-c,WQ.R-al.W-l.^._.a.z.|/R/j/o/t/y0U0Z0^Q/S.`Q/a.tQ/l/OU0P/u0S0[X0V/z0W0_0`R&Z#r!_!wYZ!P!Q!k%S%`%g'p'r's(O(W)g*g*h*k*q*t*v,h,i,k,l,o-m-p.f.g/ZR%^!vQ!{YQ%x#[Q&d#}Q&g$QR,{+YT.j-s/s!Y!jQ!n#c#p$R$d$p$u$v$w$x$y$z%e%j%p%q&`'O'g(q(|)j*o*x+w,v0gQ&X#kQ'c$oR*^'dR'l$|Q%V!mR/_.r'|_OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0rS#a_#b!P.[-l.^._.`.a.t.z.|/R/j/o/t/u/y/z0S0U0W0Z0[0^0_0`'|_OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0rT#a_#bT#^^#_R(o%xa(l%x(n(o+`,{-y-z.oT+[(k+]R-z,{Q$PsQ+l)aQ,^*RR-e,_X#}s$O$P&fQ&y$aQ'a$nQ'd$oR)s'SQ)b&wV-S+m-T-{ZgOn$j)t,PXkOn)t,PQ$k!TQ&z$bQ&{$cQ'^$mQ'b$oQ)q'RQ)x'WQ){'XQ)|'YQ*Z'`S*]'c'dQ+s)gQ+u)hQ+v)iQ+z)oS+|)r*[Q,Q)vQ,R)wS,S)y)zQ,d*^Q-V+rQ-W+tQ-Y+{S-Z+},OQ-`,UQ-b,VQ-|-XQ.O-[Q.P-^Q.Q-_Q.p-}Q.q.RQ/W.dR/r/XWkOn)t,PR#mjQ'`$nS)r'S'aR,O)sQ,]*RR-f,^Q*['`Q+})rR-[,OZiOjn)t,PQ'f$pR*`'gT-j,e-ku.c-l.^._.a.t.z.|/R/j/o/t/u/y0S0U0Z0[0^t.c-l.^._.a.t.z.|/R/j/o/t/u/y0S0U0Z0[0^Q/S.`X0V/z0W0_0`!P.Z-l.^._.`.a.t.z.|/R/j/o/t/u/y/z0S0U0W0Z0[0^0_0`Q.w.YR/f.xg.z.].{/b/i/n/|0O0Q0]0a0bu.b-l.^._.a.t.z.|/R/j/o/t/u/y0S0U0Z0[0^X.u.W.b/a0PR/c.tV0R/u0S0[R/X.dQnOS#on,PR,P)tQ&^#uR(x&^S%m#R#wS(_%m(bT(b%p&`Q%a!yQ%h!}W(P%a%h(U(YQ(U%eR(Y%jQ&i$RR)O&iQ(e%qQ*{(`T+R(e*{Q'n%OR*e'nS'q%R%SY*i'q*j,m-q.hU*j'r's'tU,m*k*l*mS-q,n,oR.h-rQ#Y]R%t#YQ#_^R%y#_Q(h%vS+W(h+XR+X(iQ+](kR,|+]Q#b_R%{#bQ#ebQ%}#cW&Q#e%}({+bQ({&cR+b0gQ$OsS&e$O&fR&f$PQ&v$_R)_&vQ&V#jR(t&VQ&m$VS)T&m+hR+h)UQ$Z{R&p$ZQ&t$]R)[&tQ+n)bR-U+nQ#hfR&S#hQ)f&zR+q)fQ&}$dS)m&})nR)n'OQ'V$kR)u'VQ'[$lS*P'[,ZR,Z*QQ,a*VR-i,aWjOn)t,PR#ljQ-k,eR.U-kd.{.]/b/i/n/|0O0Q0]0a0bR/h.{U.s.W/a0PR/`.sQ/{/nS0X/{0YR0Y/|S/v/b/cR0T/vQ.}.]R/k.}R!ZPXmOn)t,PWlOn)t,PR'T$jYfOn$j)t,PR&R#g[sOn#g$j)t,PR&d#}&dQOYZ[dnprxy}!P!Q!U!i!k!o!p!q!s!t#[#d#g#y#{#}$Q$h$j$}%S%Z%^%`%g%l%n%w%|&Z&_&j&k&u&x'P'W'Z'l'm'p'r's'w(O(W(^(d(g(p(r(z)^)e)g)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+U+V+Y+a+d+k,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0n0rQ!nTQ#caQ#poU$Rt%c(SS$d!R$gQ$p!XQ$u!cQ$v!dQ$w!eQ$x!fQ$y!gQ$z!hQ%e!zQ%j#OQ%p#SQ%q#TQ&`#xQ'O$eQ'g$qQ(q&OU(|&h(}+cW)j&|)l+x+yQ*o'|Q*x(]Q+w)kQ,v+QR0g0lQ!yYQ!}ZQ$b!PQ$c!QQ%R!kQ't%S^'{%`%g(O(W*q*t*v^*f'p*h,k,l-p.g/ZQ*l'rQ*m'sQ+t)gQ,j*gQ,n*kQ-n,hQ-o,iQ-r,oQ.e-mR/Y.f[bOn#g$j)t,P!^!vYZ!P!Q!k%S%`%g'p'r's(O(W)g*g*h*k*q*t*v,h,i,k,l,o-m-p.f.g/ZQ#R[Q#fdS#wrxQ$UyW$_}$Q'P)pS$l!U$hW${!i'm*d,gS%v#[+Y`&P#d%|(p(r(z+a-O0kQ&a#yQ&b#{Q&c#}Q'j$}Q'z%^W([%l(^*y*}Q(`%nQ(i%wQ(v&ZS(y&_0iQ)P&jQ)Q&kU)]&u)^+kQ)d&xQ)y'WY)}'Z*O,X,Y-dQ*b'lS*n'w0jW+P(d*z,s,wW+T(g+V,y,zQ+p)eQ,U)zQ,c*YQ,x+UQ-P+dQ-e,]Q-v,uQ.S-fR/q/VhUOn#d#g$j%|&_'w(p(r)t,P%U!uYZ[drxy}!P!Q!U!i!k#[#y#{#}$Q$h$}%S%^%`%g%l%n%w&Z&j&k&u&x'P'W'Z'l'm'p'r's(O(W(^(d(g(z)^)e)g)p)z*O*Y*d*g*h*k*q*t*v*y*z*}+U+V+Y+a+d+k,X,Y,],g,h,i,k,l,o,s,u,w,y,z-O-d-f-m-p.f.g/V/Z0i0j0kQ#qpW%W!o!s0d0nQ%X!pQ%Y!qQ%[!tQ%f0cS'v%Z0hQ'x0eQ'y0fQ,p*rQ-u,qS.i-s/sR0p0rU#uq.k0qR(w&][cOn#g$j)t,PZ!xY#[#}$Q+YQ#W[Q#zrR$TxQ%b!yQ%i!}Q%o#RQ'j${Q(V%eQ(Z%jQ(c%pQ(f%qQ*|(`Q,f*bQ-t,pQ.m-uR/].lQ$StQ(R%cR*s(SQ.l-sR/}/sR#QZR#V[R%Q!iQ%O!iV*c'm*d,g!Z!lQ!n#c#p$R$d$p$u$v$w$x$y$z%e%j%p%q&`'O'g(q(|)j*o*x+w,v0gR%T!kT#]^#_Q%x#[R,{+YQ(m%xS+_(n(oQ,}+`Q-x,{S.n-y-zR/^.oT+Z(k+]Q$`}Q&g$QQ)o'PR+{)pQ$XzQ)W&qR+i)XQ$XzQ&o$WQ)W&qR+i)XQ#khW$Vz$W&q)XQ$[{Q&r$ZZ)R&l)S+f+g-RR$^|R)c&wXlOn)t,PQ$f!RR'Q$gQ$m!UR'R$hR*X'_Q*V'_V-g,`-h.TQ.d-lQ/P.^R/Q._U.]-l.^._Q/U.aQ/b.tQ/g.zU/i.|/j/yQ/n/RQ/|/oQ0O/tU0Q/u0S0[Q0]0UQ0a0ZR0b0^R/T.`R/d.t",nodeNames:"⚠ print Escape { Comment Script AssignStatement * BinaryExpression BitOp BitOp BitOp BitOp ArithOp ArithOp @ ArithOp ** UnaryExpression ArithOp BitOp AwaitExpression await ) ( ParenthesizedExpression BinaryExpression or and CompareOp in not is UnaryExpression ConditionalExpression if else LambdaExpression lambda ParamList VariableName AssignOp , : NamedExpression AssignOp YieldExpression yield from TupleExpression ComprehensionExpression async for LambdaExpression ] [ ArrayExpression ArrayComprehensionExpression } { DictionaryExpression DictionaryComprehensionExpression SetExpression SetComprehensionExpression CallExpression ArgList AssignOp MemberExpression . PropertyName Number String FormatString FormatReplacement FormatSelfDoc FormatConversion FormatSpec FormatReplacement FormatSelfDoc ContinuedString Ellipsis None Boolean TypeDef AssignOp UpdateStatement UpdateOp ExpressionStatement DeleteStatement del PassStatement pass BreakStatement break ContinueStatement continue ReturnStatement return YieldStatement PrintStatement RaiseStatement raise ImportStatement import as ScopeStatement global nonlocal AssertStatement assert TypeDefinition type TypeParamList TypeParam StatementGroup ; IfStatement Body elif WhileStatement while ForStatement TryStatement try except finally WithStatement with FunctionDefinition def ParamList AssignOp TypeDef ClassDefinition class DecoratedStatement Decorator At MatchStatement match MatchBody MatchClause case CapturePattern LiteralPattern ArithOp ArithOp AsPattern OrPattern LogicOp AttributePattern SequencePattern MappingPattern StarPattern ClassPattern PatternArgList KeywordPattern KeywordPattern Guard",maxTerm:277,context:Ji,nodeProps:[["isolate",-5,4,71,72,73,77,""],["group",-15,6,85,87,88,90,92,94,96,98,99,100,102,105,108,110,"Statement Statement",-22,8,18,21,25,40,49,50,56,57,60,61,62,63,64,67,70,71,72,79,80,81,82,"Expression",-10,114,116,119,121,122,126,128,133,135,138,"Statement",-9,143,144,147,148,150,151,152,153,154,"Pattern"],["openedBy",23,"(",54,"[",58,"{"],["closedBy",24,")",55,"]",59,"}"]],propSources:[no],skippedNodes:[0,4],repeatNodeCount:34,tokenData:"!2|~R!`OX%TXY%oY[%T[]%o]p%Tpq%oqr'ars)Yst*xtu%Tuv,dvw-hwx.Uxy/tyz0[z{0r{|2S|}2p}!O3W!O!P4_!P!Q:Z!Q!R;k!R![>_![!]Do!]!^Es!^!_FZ!_!`Gk!`!aHX!a!b%T!b!cIf!c!dJU!d!eK^!e!hJU!h!i!#f!i!tJU!t!u!,|!u!wJU!w!x!.t!x!}JU!}#O!0S#O#P&o#P#Q!0j#Q#R!1Q#R#SJU#S#T%T#T#UJU#U#VK^#V#YJU#Y#Z!#f#Z#fJU#f#g!,|#g#iJU#i#j!.t#j#oJU#o#p!1n#p#q!1s#q#r!2a#r#s!2f#s$g%T$g;'SJU;'S;=`KW<%lOJU`%YT&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T`%lP;=`<%l%To%v]&n`%c_OX%TXY%oY[%T[]%o]p%Tpq%oq#O%T#O#P&o#P#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To&tX&n`OY%TYZ%oZ]%T]^%o^#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc'f[&n`O!_%T!_!`([!`#T%T#T#U(r#U#f%T#f#g(r#g#h(r#h#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc(cTmR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc(yT!mR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk)aV&n`&[ZOr%Trs)vs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk){V&n`Or%Trs*bs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk*iT&n`&^ZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To+PZS_&n`OY*xYZ%TZ]*x]^%T^#o*x#o#p+r#p#q*x#q#r+r#r;'S*x;'S;=`,^<%lO*x_+wTS_OY+rZ]+r^;'S+r;'S;=`,W<%lO+r_,ZP;=`<%l+ro,aP;=`<%l*xj,kV%rQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj-XT!xY&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj-oV%lQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk.]V&n`&ZZOw%Twx.rx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk.wV&n`Ow%Twx/^x#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk/eT&n`&]ZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk/{ThZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc0cTgR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk0yXVZ&n`Oz%Tz{1f{!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk1mVaR&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk2ZV%oZ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc2wTzR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To3_W%pZ&n`O!_%T!_!`-Q!`!a3w!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Td4OT&{S&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk4fX!fQ&n`O!O%T!O!P5R!P!Q%T!Q![6T![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk5WV&n`O!O%T!O!P5m!P#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk5tT!rZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti6[a!hX&n`O!Q%T!Q![6T![!g%T!g!h7a!h!l%T!l!m9s!m#R%T#R#S6T#S#X%T#X#Y7a#Y#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti7fZ&n`O{%T{|8X|}%T}!O8X!O!Q%T!Q![8s![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti8^V&n`O!Q%T!Q![8s![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti8z]!hX&n`O!Q%T!Q![8s![!l%T!l!m9s!m#R%T#R#S8s#S#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti9zT!hX&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk:bX%qR&n`O!P%T!P!Q:}!Q!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj;UV%sQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti;ro!hX&n`O!O%T!O!P=s!P!Q%T!Q![>_![!d%T!d!e?q!e!g%T!g!h7a!h!l%T!l!m9s!m!q%T!q!rA]!r!z%T!z!{Bq!{#R%T#R#S>_#S#U%T#U#V?q#V#X%T#X#Y7a#Y#^%T#^#_9s#_#c%T#c#dA]#d#l%T#l#mBq#m#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti=xV&n`O!Q%T!Q![6T![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti>fc!hX&n`O!O%T!O!P=s!P!Q%T!Q![>_![!g%T!g!h7a!h!l%T!l!m9s!m#R%T#R#S>_#S#X%T#X#Y7a#Y#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti?vY&n`O!Q%T!Q!R@f!R!S@f!S#R%T#R#S@f#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti@mY!hX&n`O!Q%T!Q!R@f!R!S@f!S#R%T#R#S@f#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiAbX&n`O!Q%T!Q!YA}!Y#R%T#R#SA}#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiBUX!hX&n`O!Q%T!Q!YA}!Y#R%T#R#SA}#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiBv]&n`O!Q%T!Q![Co![!c%T!c!iCo!i#R%T#R#SCo#S#T%T#T#ZCo#Z#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiCv]!hX&n`O!Q%T!Q![Co![!c%T!c!iCo!i#R%T#R#SCo#S#T%T#T#ZCo#Z#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%ToDvV{_&n`O!_%T!_!`E]!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TcEdT%{R&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkEzT#gZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkFbXmR&n`O!^%T!^!_F}!_!`([!`!a([!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TjGUV%mQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkGrV%zZ&n`O!_%T!_!`([!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkH`WmR&n`O!_%T!_!`([!`!aHx!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TjIPV%nQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkIoV_Q#}P&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%ToJ_]&n`&YS%uZO!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUoKZP;=`<%lJUoKge&n`&YS%uZOr%Trs)Ysw%Twx.Ux!Q%T!Q![JU![!c%T!c!tJU!t!uLx!u!}JU!}#R%T#R#SJU#S#T%T#T#fJU#f#gLx#g#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUoMRa&n`&YS%uZOr%TrsNWsw%Twx! vx!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUkN_V&n`&`ZOr%TrsNts#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkNyV&n`Or%Trs! `s#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk! gT&n`&bZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk! }V&n`&_ZOw%Twx!!dx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!!iV&n`Ow%Twx!#Ox#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!#VT&n`&aZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!#oe&n`&YS%uZOr%Trs!%Qsw%Twx!&px!Q%T!Q![JU![!c%T!c!tJU!t!u!(`!u!}JU!}#R%T#R#SJU#S#T%T#T#fJU#f#g!(`#g#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!%XV&n`&dZOr%Trs!%ns#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!%sV&n`Or%Trs!&Ys#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!&aT&n`&fZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!&wV&n`&cZOw%Twx!'^x#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!'cV&n`Ow%Twx!'xx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!(PT&n`&eZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!(ia&n`&YS%uZOr%Trs!)nsw%Twx!+^x!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!)uV&n`&hZOr%Trs!*[s#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!*aV&n`Or%Trs!*vs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!*}T&n`&jZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!+eV&n`&gZOw%Twx!+zx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!,PV&n`Ow%Twx!,fx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!,mT&n`&iZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!-Vi&n`&YS%uZOr%TrsNWsw%Twx! vx!Q%T!Q![JU![!c%T!c!dJU!d!eLx!e!hJU!h!i!(`!i!}JU!}#R%T#R#SJU#S#T%T#T#UJU#U#VLx#V#YJU#Y#Z!(`#Z#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUo!.}a&n`&YS%uZOr%Trs)Ysw%Twx.Ux!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!0ZT!XZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc!0qT!WR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj!1XV%kQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T~!1sO!]~k!1zV%jR&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T~!2fO![~i!2mT%tX&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T",tokenizers:[Ki,Yi,Bi,eo,0,1,2,3,4],topRules:{Script:[0,5]},specialized:[{term:221,get:e=>ro[e]||-1}],tokenPrec:7668}),qt=new Rn,xn=new Set(["Script","Body","FunctionDefinition","ClassDefinition","LambdaExpression","ForStatement","MatchClause"]);function Qe(e){return(t,n,i)=>{if(i)return!1;let o=t.node.getChild("VariableName");return o&&n(o,e),!0}}const oo={FunctionDefinition:Qe("function"),ClassDefinition:Qe("class"),ForStatement(e,t,n){if(n){for(let i=e.node.firstChild;i;i=i.nextSibling)if(i.name=="VariableName")t(i,"variable");else if(i.name=="in")break}},ImportStatement(e,t){var n,i;let{node:o}=e,r=((n=o.firstChild)===null||n===void 0?void 0:n.name)=="from";for(let s=o.getChild("import");s;s=s.nextSibling)s.name=="VariableName"&&((i=s.nextSibling)===null||i===void 0?void 0:i.name)!="as"&&t(s,r?"variable":"namespace")},AssignStatement(e,t){for(let n=e.node.firstChild;n;n=n.nextSibling)if(n.name=="VariableName")t(n,"variable");else if(n.name==":"||n.name=="AssignOp")break},ParamList(e,t){for(let n=null,i=e.node.firstChild;i;i=i.nextSibling)i.name=="VariableName"&&(!n||!/\*|AssignOp/.test(n.name))&&t(i,"variable"),n=i},CapturePattern:Qe("variable"),AsPattern:Qe("variable"),__proto__:null};function vn(e,t){let n=qt.get(t);if(n)return n;let i=[],o=!0;function r(s,a){let d=e.sliceString(s.from,s.to);i.push({label:d,type:a})}return t.cursor(Xn.IncludeAnonymous).iterate(s=>{if(s.name){let a=oo[s.name];if(a&&a(s,r,o)||!o&&xn.has(s.name))return!1;o=!1}else if(s.to-s.from>8192){for(let a of vn(e,s.node))i.push(a);return!1}}),qt.set(t,i),i}const jt=/^[\w\xa1-\uffff][\w\d\xa1-\uffff]*$/,Tn=["String","FormatString","Comment","PropertyName"];function ao(e){let t=jn(e.state).resolveInner(e.pos,-1);if(Tn.indexOf(t.name)>-1)return null;let n=t.name=="VariableName"||t.to-t.from<20&&jt.test(e.state.sliceDoc(t.from,t.to));if(!n&&!e.explicit)return null;let i=[];for(let o=t;o;o=o.parent)xn.has(o.name)&&(i=i.concat(vn(e.state.doc,o)));return{options:i,from:n?t.from:e.pos,validFor:jt}}const so=["__annotations__","__builtins__","__debug__","__doc__","__import__","__name__","__loader__","__package__","__spec__","False","None","True"].map(e=>({label:e,type:"constant"})).concat(["ArithmeticError","AssertionError","AttributeError","BaseException","BlockingIOError","BrokenPipeError","BufferError","BytesWarning","ChildProcessError","ConnectionAbortedError","ConnectionError","ConnectionRefusedError","ConnectionResetError","DeprecationWarning","EOFError","Ellipsis","EncodingWarning","EnvironmentError","Exception","FileExistsError","FileNotFoundError","FloatingPointError","FutureWarning","GeneratorExit","IOError","ImportError","ImportWarning","IndentationError","IndexError","InterruptedError","IsADirectoryError","KeyError","KeyboardInterrupt","LookupError","MemoryError","ModuleNotFoundError","NameError","NotADirectoryError","NotImplemented","NotImplementedError","OSError","OverflowError","PendingDeprecationWarning","PermissionError","ProcessLookupError","RecursionError","ReferenceError","ResourceWarning","RuntimeError","RuntimeWarning","StopAsyncIteration","StopIteration","SyntaxError","SyntaxWarning","SystemError","SystemExit","TabError","TimeoutError","TypeError","UnboundLocalError","UnicodeDecodeError","UnicodeEncodeError","UnicodeError","UnicodeTranslateError","UnicodeWarning","UserWarning","ValueError","Warning","ZeroDivisionError"].map(e=>({label:e,type:"type"}))).concat(["bool","bytearray","bytes","classmethod","complex","float","frozenset","int","list","map","memoryview","object","range","set","staticmethod","str","super","tuple","type"].map(e=>({label:e,type:"class"}))).concat(["abs","aiter","all","anext","any","ascii","bin","breakpoint","callable","chr","compile","delattr","dict","dir","divmod","enumerate","eval","exec","exit","filter","format","getattr","globals","hasattr","hash","help","hex","id","input","isinstance","issubclass","iter","len","license","locals","max","min","next","oct","open","ord","pow","print","property","quit","repr","reversed","round","setattr","slice","sorted","sum","vars","zip"].map(e=>({label:e,type:"function"}))),Oo=[G("def ${name}(${params}):\n ${}",{label:"def",detail:"function",type:"keyword"}),G("for ${name} in ${collection}:\n ${}",{label:"for",detail:"loop",type:"keyword"}),G("while ${}:\n ${}",{label:"while",detail:"loop",type:"keyword"}),G("try:\n ${}\nexcept ${error}:\n ${}",{label:"try",detail:"/ except block",type:"keyword"}),G(`if \${}:
6
6
 
7
- `,{label:"if",detail:"block",type:"keyword"}),G("if ${}:\n ${}\nelse:\n ${}",{label:"if",detail:"/ else block",type:"keyword"}),G("class ${name}:\n def __init__(self, ${params}):\n ${}",{label:"class",detail:"definition",type:"keyword"}),G("import ${module}",{label:"import",detail:"statement",type:"keyword"}),G("from ${module} import ${names}",{label:"from",detail:"import",type:"keyword"})],lo=Ln(Tn,An(so.concat(Oo)));function Xe(e){let{node:t,pos:n}=e,i=e.lineIndent(n,-1),o=null;for(;;){let r=t.childBefore(n);if(r)if(r.name=="Comment")n=r.from;else if(r.name=="Body"||r.name=="MatchBody")e.baseIndentFor(r)+e.unit<=i&&(o=r),t=r;else if(r.name=="MatchClause")t=r;else if(r.type.is("Statement"))t=r;else break;else break}return o}function ze(e,t){let n=e.baseIndentFor(t),i=e.lineAt(e.pos,-1),o=i.from+i.text.length;return/^\s*($|#)/.test(i.text)&&e.node.to<o+100&&!/\S/.test(e.state.sliceDoc(o,e.node.to))&&e.lineIndent(e.pos,-1)<=n||/^\s*(else:|elif |except |finally:|case\s+[^=:]+:)/.test(e.textAfter)&&e.lineIndent(e.pos,-1)>n?null:n+e.unit}const _e=Lt.define({name:"python",parser:io.configure({props:[Nt.add({Body:e=>{var t;let n=/^\s*(#|$)/.test(e.textAfter)&&Xe(e)||e.node;return(t=ze(e,n))!==null&&t!==void 0?t:e.continue()},MatchBody:e=>{var t;let n=Xe(e);return(t=ze(e,n||e.node))!==null&&t!==void 0?t:e.continue()},IfStatement:e=>/^\s*(else:|elif )/.test(e.textAfter)?e.baseIndent:e.continue(),"ForStatement WhileStatement":e=>/^\s*else:/.test(e.textAfter)?e.baseIndent:e.continue(),TryStatement:e=>/^\s*(except[ :]|finally:|else:)/.test(e.textAfter)?e.baseIndent:e.continue(),MatchStatement:e=>/^\s*case /.test(e.textAfter)?e.baseIndent+e.unit:e.continue(),"TupleExpression ComprehensionExpression ParamList ArgList ParenthesizedExpression":$e({closing:")"}),"DictionaryExpression DictionaryComprehensionExpression SetExpression SetComprehensionExpression":$e({closing:"}"}),"ArrayExpression ArrayComprehensionExpression":$e({closing:"]"}),MemberExpression:e=>e.baseIndent+e.unit,"String FormatString":()=>null,Script:e=>{var t;let n=Xe(e);return(t=n&&ze(e,n))!==null&&t!==void 0?t:e.continue()}}),Mt.add({"ArrayExpression DictionaryExpression SetExpression TupleExpression":Zt,Body:(e,t)=>({from:e.from+1,to:e.to-(e.to==t.doc.length?0:1)}),"String FormatString":(e,t)=>({from:t.doc.lineAt(e.from).to,to:e.to})})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"'''",'"""'],stringPrefixes:["f","fr","rf","r","u","b","br","rb","F","FR","RF","R","U","B","BR","RB"]},commentTokens:{line:"#"},indentOnInput:/^\s*([\}\]\)]|else:|elif |except |finally:|case\s+[^:]*:?)$/}});function co(){return new Gt(_e,[_e.data.of({autocomplete:ao}),_e.data.of({autocomplete:lo})])}var ho=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,i=Object.getOwnPropertySymbols(e);o<i.length;o++)t.indexOf(i[o])<0&&Object.prototype.propertyIsEnumerable.call(e,i[o])&&(n[i[o]]=e[i[o]]);return n};const j=Se.define({combine:e=>{const t=[];for(let n of e){if(!n)continue;const{create:i,gutters:o}=n,r=ho(n,["create","gutters"]);t.push(Object.assign(Object.assign({},r),{enabled:!0,gutters:o?o.filter(s=>Object.keys(s).length>0):void 0}))}return Dn(t,{enabled:t.length>0,displayText:"characters",eventHandlers:{},showOverlay:"always",gutters:[]})}}),X={PixelMultiplier:2,SizeRatio:4,MaxWidth:120},fo=U.theme({".cm-minimap-overlay-container":{position:"absolute",top:0,height:"100%",width:"100%","&.cm-minimap-overlay-mouse-over":{opacity:0,transition:"visibility 0s linear 300ms, opacity 300ms"},"&.cm-minimap-overlay-mouse-over:hover":{opacity:1,transition:"visibility 0s linear 0ms, opacity 300ms"},"&.cm-minimap-overlay-off":{display:"none"},"& .cm-minimap-overlay":{background:"rgb(121, 121, 121)",opacity:"0.2",position:"absolute",right:0,top:0,width:"100%",transition:"top 0s ease-in 0ms","&:hover":{opacity:"0.3"}},"&.cm-minimap-overlay-active":{opacity:1,visibility:"visible",transition:"visibility 0s linear 0ms, opacity 300ms","& .cm-minimap-overlay":{opacity:"0.4"}}}}),I=X.PixelMultiplier*X.SizeRatio,mo=ye.fromClass(class{constructor(e){this.view=e,this._isDragging=!1,e.state.facet(j).enabled&&this.create(e)}create(e){this.container=te("div",{class:"cm-minimap-overlay-container"}),this.dom=te("div",{class:"cm-minimap-overlay"}),this.container.appendChild(this.dom),this.container.addEventListener("mousedown",this.onMouseDown.bind(this)),window.addEventListener("mouseup",this.onMouseUp.bind(this)),window.addEventListener("mousemove",this.onMouseMove.bind(this));const t=e.dom.querySelector(".cm-minimap-inner");t&&t.appendChild(this.container),this.computeShowOverlay(),this.computeHeight(),this.computeTop()}remove(){this.container&&(this.container.removeEventListener("mousedown",this.onMouseDown),window.removeEventListener("mouseup",this.onMouseUp),window.removeEventListener("mousemove",this.onMouseMove),this.container.remove())}update(e){const t=e.startState.facet(j).enabled,n=e.state.facet(j).enabled;if(t&&!n){this.remove();return}!t&&n&&this.create(e.view),n&&(this.computeShowOverlay(),e.geometryChanged&&(this.computeHeight(),this.computeTop()))}computeHeight(){if(!this.dom)return;const e=this.view.dom.clientHeight/I;this.dom.style.height=e+"px"}computeTop(){if(!this._isDragging&&this.dom){const{clientHeight:e,scrollHeight:t,scrollTop:n}=this.view.scrollDOM,i=t-e,o=n/I,r=e/I,s=e-r;let a=n/i;isNaN(a)&&(a=0);const d=s*a,c=Math.min(d,o);this.dom.style.top=c+"px"}}computeShowOverlay(){if(!this.container)return;const{showOverlay:e}=this.view.state.facet(j);e==="mouse-over"?this.container.classList.add("cm-minimap-overlay-mouse-over"):this.container.classList.remove("cm-minimap-overlay-mouse-over");const{clientHeight:t,scrollHeight:n}=this.view.scrollDOM;t===n?this.container.classList.add("cm-minimap-overlay-off"):this.container.classList.remove("cm-minimap-overlay-off")}onMouseDown(e){if(!this.container||e.button===2)return;const{clientY:t,target:n}=e;if(n===this.dom){this._dragStartY=e.clientY,this._isDragging=!0,this.container.classList.add("cm-minimap-overlay-active");return}const{clientHeight:i,scrollHeight:o,scrollTop:r}=this.view.scrollDOM,s=n.getBoundingClientRect().top,a=(t-s)*I,d=r/(o-i),l=(i*I-i)*d,O=Math.max(0,r-l);this.view.scrollDOM.scrollTop=O+a-i/2}onMouseUp(e){this._isDragging&&this.container&&(this._dragStartY=void 0,this._isDragging=!1,this.container.classList.remove("cm-minimap-overlay-active"))}onMouseMove(e){if(!this._isDragging||!this.dom)return;if(e.preventDefault(),e.stopPropagation(),!this._dragStartY){this._dragStartY=e.clientY;return}const t=e.clientY-this._dragStartY,n=t<0,i=t>0;this._dragStartY=e.clientY;const o=this.dom.getBoundingClientRect().height,r=this.dom.getBoundingClientRect().y,s=r+o,a=parseFloat(this.dom.style.top),d=this.view.scrollDOM.scrollTop,c=this.view.scrollDOM.clientHeight,l=this.view.scrollDOM.scrollHeight,O=d===0,f=Math.round(d)>=Math.round(l-c);if(O&&n||O&&e.clientY<r||f&&i||f&&e.clientY>s)return;const m=this.view.scrollDOM.scrollHeight,u=this.view.scrollDOM.clientHeight,g=(m-u)/I,p=u-u/I,Q=a+t,k=Q/p,$=(m-u)*k,y=Q*I;this.view.scrollDOM.scrollTop=Math.max($,y);const P=Math.min(Math.max(0,Q),Math.min(p,g));this.dom.style.top=P+"px"}destroy(){this.remove()}},{eventHandlers:{scroll(){requestAnimationFrame(()=>this.computeTop())}}}),uo=[fo,mo];class Fe{constructor(t){this.map=new Map,this.view=t}get(t){return this.map.get(t)}set(t,n){this.map.set(t,n)}}function Wt(e){var t;if(!e.facet(j).enabled)return[];const n=[],i=e.doc.iterLines(),o=In(e).iter();let r=0;for(i.next();!i.done;){const s=i.value;let a=r,d=a+s.length;for(;o.value&&o.to<a;)o.next();const{from:c,to:l}=o,O=a>=c&&a<l,f=d>c&&d<=l;if(O){let m=(t=n.pop())!==null&&t!==void 0?t:[],u=m.pop();u&&u.folded&&(u.to=l),u&&m.push(u),(!u||!u.folded)&&m.push({from:c,to:l,folded:!0}),f||m.push({from:l,to:d,folded:!1}),n.push(m)}else f?n.push([{from:a,to:c,folded:!1},{from:c,to:l,folded:!0}]):n.push([{from:a,to:d,folded:!1}]);r=d+1,i.next()}return n}const ie=he.define({create:e=>Wt(e),update:(e,t)=>ke([t])||t.docChanged?Wt(t.state):e});function ke(e){return e.find(t=>t.effects.find(n=>n.is(Bn)||n.is(Yn)))}class go extends Fe{constructor(t){super(t),this.count=void 0}shouldUpdate(t){if(!t.state.facet(j).enabled)return!1;if(t.docChanged)return!0;for(const n of t.transactions)for(const i of n.effects)if(i.is(Fn))return!0;return!!(ke(t.transactions)||this.count===void 0)}update(t){if(!this.shouldUpdate(t))return;this.map.clear();const n=t.state.field(ie);this.count=Hn(t.state),Jn(t.state,(i,o,r)=>{const s=this.findLine(o,n),a=this.findLine(r,n);let d=i.severity;for(let c=s;c<=a;c++){const l=this.get(c);l&&(d=[d,l].sort(this.sort.bind(this)).slice(0,1)[0]),this.set(c,d)}})}drawLine(t,n){const{context:i,lineHeight:o,offsetX:r,offsetY:s}=t,a=this.get(n);a&&(i.globalAlpha=.65,i.beginPath(),i.rect(r,s,i.canvas.width-r,o),i.fillStyle=this.color(a),i.fill())}findLine(t,n){return n.findIndex(o=>{const r=o.slice(0,1)[0],s=o.slice(-1)[0];return!r||!s?!1:r.from<=t&&t<=s.to})+1}color(t){return t==="error"?"#d11":t==="warning"?"orange":"#999"}sort(t,n){return this.score(n)-this.score(t)}score(t){switch(t){case"error":return 3;case"warning":return 2;default:return 1}}}function po(e){return new go(e)}class Qo extends Fe{constructor(t){super(t),this.getDrawInfo(),this._themeClasses=t.dom.classList.value}shouldUpdate(t){return t.state.facet(j).enabled?!!(t.docChanged||t.selectionSet||this._themeClasses!==this.view.dom.classList.value||ke(t.transactions)):!1}update(t){if(!this.shouldUpdate(t))return;this.map.clear(),this._themeClasses!==this.view.dom.classList.value&&(this._drawInfo=void 0,this._themeClasses=this.view.dom.classList.value);const{ranges:n}=t.state.selection;let i=0;for(const[o,r]of t.state.field(ie).entries()){const s=[];let a=0;for(const c of r){do{if(i>=n.length||c.to<n[i].from)continue;if(n[i].from===n[i].to){i++;continue}const l=n[i],O={from:a+Math.max(c.from,l.from)-c.from,to:a+Math.min(c.to,l.to)-c.from,extends:l.to>c.to},f=s.slice(-1)[0];if(f&&f.to===O.from){let{to:m}=O;c.folded&&O.extends?m=O.from+1:c.folded&&!O.extends&&(m=f.to),s[s.length-1]=Object.assign(Object.assign({},f),{to:m,extends:O.extends})}else c.folded||s.push(O);if(O.extends)break;i++}while(i<n.length&&c.to>=n[i].from);a+=c.folded?1:c.to-c.from}if(s.length===0)continue;const d=o+1;this.map.set(d,s)}}drawLine(t,n){let{context:i,lineHeight:o,charWidth:r,offsetX:s,offsetY:a}=t;const d=this.get(n);if(d)for(const c of d){const l=s+c.from*r,O=(c.to-c.from)*r,f=i.canvas.width-l;c.extends&&(i.globalAlpha=.65,i.beginPath(),i.rect(l,a,f,o),i.fillStyle=this.getDrawInfo().backgroundColor,i.fill()),i.globalAlpha=1,i.beginPath(),i.rect(l,a,O,o),i.fillStyle=this.getDrawInfo().backgroundColor,i.fill()}}getDrawInfo(){if(this._drawInfo)return this._drawInfo;const t=document.createElement("span");t.setAttribute("class","cm-selectionBackground"),this.view.dom.appendChild(t);const i={backgroundColor:window.getComputedStyle(t).backgroundColor};return this._drawInfo=i,this.view.dom.removeChild(t),i}}function xo(e){return new Qo(e)}class vo extends Fe{constructor(t){super(t),this._fontInfoMap=new Map,this._themeClasses=new Set(t.dom.classList.values()),t.state.facet(j).enabled&&this.updateImpl(t.state)}shouldUpdate(t){return!!(t.docChanged||t.state.facet(j)!==t.startState.facet(j)||this.themeChanged()||ke(t.transactions))}update(t){this.shouldUpdate(t)&&(this._highlightingCallbackId&&(typeof window.requestIdleCallback<"u"?cancelIdleCallback(this._highlightingCallbackId):clearTimeout(this._highlightingCallbackId)),this.updateImpl(t.state,t.changes))}updateImpl(t,n){var i;this.map.clear(),this._displayText=t.facet(j).displayText,this.themeChanged()&&this._fontInfoMap.clear();let o;if(this._previousTree&&n){const O=et.addTree(this._previousTree),f=[];n.iterChangedRanges((m,u,g,p)=>f.push({fromA:m,toA:u,fromB:g,toB:p})),o=et.applyChanges(O,f)}const r=t.doc.toString(),s=(i=t.facet(Ct))===null||i===void 0?void 0:i.parser,a=s?s.parse(r,o):void 0;this._previousTree=a;const d={style:O=>Et(t,O)};let c=[];if(a){const O=t.doc.lineAt(this.view.viewport.from).number,f=t.doc.lineAt(this.view.viewport.to).number,m=f-O,u=O/(t.doc.lines-m),{SizeRatio:g,PixelMultiplier:p}=X,Q=m*g*p,k=u*Q,$=Math.max(1,Math.floor(O-k)),y=Math.min(f+Math.floor(Q-k),t.doc.lines);Ce(a,d,(P,v,T)=>{c.push({from:P,to:v,tags:T})},t.doc.line($).from,t.doc.line(y).to)}this.updateMapImpl(t,c),c=[];const l=()=>{a&&(Ce(a,d,(O,f,m)=>{c.push({from:O,to:f,tags:m})}),this.updateMapImpl(t,c),this._highlightingCallbackId=void 0)};this._highlightingCallbackId=typeof window.requestIdleCallback<"u"?requestIdleCallback(l):setTimeout(l)}updateMapImpl(t,n){this.map.clear();const i=t.doc.toString(),o=n.values();let r=o.next();for(const[s,a]of t.field(ie).entries()){const d=[];for(const l of a){if(l.from===l.to)continue;if(l.folded){d.push({text:"…",tags:""});continue}let O=l.from;for(;!r.done&&r.value.from<l.to;){const{from:f,to:m,tags:u}=r.value;if(m<O){r=o.next();continue}f>O&&d.push({text:i.slice(O,f),tags:""});const g=Math.max(f,l.from),p=Math.min(m,l.to);if(d.push({text:i.slice(g,p),tags:u}),O=p,m>p)break;r=o.next()}O!==l.to&&d.push({text:i.slice(O,l.to),tags:""})}const c=s+1;this.map.set(c,d)}}measure(t){const{color:n,font:i,lineHeight:o}=this.getFontInfo("");return t.textBaseline="ideographic",t.fillStyle=n,t.font=i,{charWidth:t.measureText("_").width,lineHeight:o}}beforeDraw(){this._fontInfoMap.clear()}drawLine(t,n){const i=this.get(n);if(!i)return;let{context:o,charWidth:r,lineHeight:s,offsetX:a,offsetY:d}=t,c;o.textBaseline="ideographic";for(const l of i){const O=this.getFontInfo(l.tags);switch((!c||c.color!==O.color)&&(o.fillStyle=O.color),(!c||c.font!==O.font)&&(o.font=O.font),c=O,s=Math.max(s,O.lineHeight),this._displayText){case"characters":{o.fillText(l.text,a,d+s),a+=l.text.length*r;break}case"blocks":{const f=/\S+/g;let m;for(;(m=f.exec(l.text))!==null;){const u=a+m.index*r;let g=(f.lastIndex-m.index)*r;if(u>o.canvas.width)break;u+g>o.canvas.width&&(g=o.canvas.width-u);const p=2/X.SizeRatio,Q=s-p;o.fillStyle=O.color,o.globalAlpha=.65,o.beginPath(),o.rect(u,d,g,Q),o.fill()}a+=l.text.length*r;break}}}}getFontInfo(t){const n=this._fontInfoMap.get(t);if(n)return n;const i=te("span",{class:t}),o=te("div",{class:"cm-line",style:"display: none"},i);this.view.contentDOM.appendChild(o);const r=window.getComputedStyle(i),s=parseFloat(r.lineHeight)/X.SizeRatio,a={color:r.color,font:`${r.fontStyle} ${r.fontWeight} ${s}px ${r.fontFamily}`,lineHeight:s};return this._fontInfoMap.set(t,a),this.view.contentDOM.removeChild(o),a}themeChanged(){const t=this._themeClasses,n=new Set(this.view.dom.classList.values());if(this._themeClasses=n,!t||(t.delete("cm-focused"),n.delete("cm-focused"),t.size!==n.size))return!0;let i=!0;return t.forEach(o=>{n.has(o)||(i=!1)}),!i}}function To(e){return new vo(e)}const Sn=4;function So(e,t,n){const i=e[n];i&&(t.context.fillStyle=i,t.context.globalAlpha=1,t.context.beginPath(),t.context.rect(t.offsetX,t.offsetY,Sn,t.lineHeight),t.context.fill())}const yo=U.theme({"&":{height:"100%",overflowY:"auto"},"& .cm-minimap-gutter":{borderRight:0,flexShrink:0,left:"unset",position:"sticky",right:0,top:0},"& .cm-minimap-inner":{height:"100%",position:"absolute",right:0,top:0,overflowY:"hidden","& canvas":{display:"block"}},"& .cm-minimap-box-shadow":{boxShadow:"12px 0px 20px 5px #6c6c6c"}}),Rt=6,bo=ye.fromClass(class{constructor(e){this.view=e,this.text=To(e),this.selection=xo(e),this.diagnostic=po(e),e.state.facet(de)&&this.create(e)}create(e){const t=e.state.facet(de);if(!t)throw Error("Expected nonnull");this.inner=te("div",{class:"cm-minimap-inner"}),this.canvas=te("canvas"),this.dom=t.create(e).dom,this.dom.classList.add("cm-gutters"),this.dom.classList.add("cm-minimap-gutter"),this.inner.appendChild(this.canvas),this.dom.appendChild(this.inner),this.view.scrollDOM.insertBefore(this.dom,this.view.contentDOM.nextSibling);for(const n in this.view.state.facet(j).eventHandlers){const i=this.view.state.facet(j).eventHandlers[n];i&&this.dom.addEventListener(n,o=>i(o,this.view))}}remove(){this.dom&&this.dom.remove()}update(e){const t=e.startState.facet(de),n=e.state.facet(de);if(t&&!n){this.remove();return}!t&&n&&this.create(e.view),n&&(this.text.update(e),this.selection.update(e),this.diagnostic.update(e),this.render())}getWidth(){const e=this.view.dom.clientWidth;if(e<=X.MaxWidth*Rt){const t=e/(X.MaxWidth*Rt);return X.MaxWidth*t}return X.MaxWidth}render(){if(!this.dom||!this.canvas||!this.inner)return;this.text.beforeDraw(),this.updateBoxShadow(),this.dom.style.width=this.getWidth()+"px",this.canvas.style.maxWidth=this.getWidth()+"px",this.canvas.width=this.getWidth()*X.PixelMultiplier;const e=this.view.dom.getBoundingClientRect().height;this.inner.style.minHeight=e+"px",this.canvas.height=e*X.PixelMultiplier,this.canvas.style.height=e+"px";const t=this.canvas.getContext("2d");if(!t)return;t.clearRect(0,0,this.canvas.width,this.canvas.height);const{charWidth:n,lineHeight:i}=this.text.measure(t);let{startIndex:o,endIndex:r,offsetY:s}=this.canvasStartAndEndIndex(t,i);const a=this.view.state.facet(j).gutters;for(let d=o;d<r;d++){const c=this.view.state.field(ie);if(d>=c.length)break;const l={offsetX:0,offsetY:s,context:t,lineHeight:i,charWidth:n};if(a.length){l.offsetX+=2;for(let O of a)So(O,l,d+1),l.offsetX+=Sn;l.offsetX+=2}this.text.drawLine(l,d+1),this.selection.drawLine(l,d+1),this.diagnostic.drawLine(l,d+1),s+=i}t.restore()}canvasStartAndEndIndex(e,t){let{top:n,bottom:i}=this.view.documentPadding;n/=X.SizeRatio,i/=X.SizeRatio;const o=e.canvas.height,{clientHeight:r,scrollHeight:s,scrollTop:a}=this.view.scrollDOM;let d=a/(s-r);isNaN(d)&&(d=0);const c=this.view.state.field(ie).length,l=n+i+c*t,O=Math.max(0,d*(l-o)),f=Math.max(0,n-O),m=Math.round(Math.max(0,O-n)/t),u=Math.round((o-f)/t);return{startIndex:m,endIndex:m+u,offsetY:f}}updateBoxShadow(){if(!this.canvas)return;const{clientWidth:e,scrollWidth:t,scrollLeft:n}=this.view.scrollDOM;e+n<t?this.canvas.classList.add("cm-minimap-box-shadow"):this.canvas.classList.remove("cm-minimap-box-shadow")}destroy(){this.remove()}},{eventHandlers:{scroll(){requestAnimationFrame(()=>this.render())}},provide:e=>U.scrollMargins.of(t=>{var n;const i=(n=t.plugin(e))===null||n===void 0?void 0:n.getWidth();return i?{right:i}:null})}),de=Se.define({combine:e=>{var t;return(t=e.find(n=>n!==null))!==null&&t!==void 0?t:null},enables:e=>[[j.compute([e],t=>t.facet(e)),yo,ie,bo,uo]]}),Xt=Kn.define({token(e){return e.match(/^#.*/)?"comment":e.sol()&&e.match(/^[A-Za-z_][A-Za-z0-9_.]*(?==)/)?"variableName.definition":e.match(/^=/)?"operator":e.match(/^"(?:[^"\\]|\\.)*"?/)||e.match(/^'(?:[^'\\]|\\.)*'?/)?"string":e.match(/^\$\{[^}]*\}?/)||e.match(/^\$[A-Za-z_][A-Za-z0-9_]*/)?"variableName.special":e.match(/^\d+/)?"number":(e.next(),null)}}),wo=e=>{const t=e.toLowerCase();if(t===".env"||t.startsWith(".env."))return[Xt];const n=e.split(".").pop()?.toLowerCase();switch(n){case"js":case"jsx":case"ts":case"tsx":return[rr({jsx:!0,typescript:n.includes("ts")})];case"py":return[co()];case"html":case"htm":return[nr()];case"css":case"scss":case"less":return[tr()];case"json":return[Br()];case"md":case"markdown":return[er()];case"env":return[Xt];default:return[]}},ko=({file:e,showDiff:t,minimapEnabled:n,isDarkMode:i})=>{if(!e.diffInfo||!t||!n)return[];const o={};return[de.compute(["doc"],r=>{const a=De(r)?.chunks||[];return Object.keys(o).forEach(d=>{delete o[Number(d)]}),a.forEach(d=>{const c=r.doc.lineAt(d.fromB).number,l=r.doc.lineAt(Math.min(d.toB,r.doc.length)).number;for(let O=c;O<=l;O+=1)o[O]=i?"rgba(34, 197, 94, 0.8)":"rgba(34, 197, 94, 1)"}),{create:()=>({dom:document.createElement("div")}),displayText:"blocks",showOverlay:"always",gutters:[o]}})]},Po=({file:e,showDiff:t})=>!e.diffInfo||!t?[]:[ye.fromClass(class{constructor(n){setTimeout(()=>{const o=De(n.state)?.chunks?.[0];o&&n.dispatch({effects:U.scrollIntoView(o.fromB,{y:"center"})})},100)}update(){}destroy(){}})],$o=e=>`
7
+ `,{label:"if",detail:"block",type:"keyword"}),G("if ${}:\n ${}\nelse:\n ${}",{label:"if",detail:"/ else block",type:"keyword"}),G("class ${name}:\n def __init__(self, ${params}):\n ${}",{label:"class",detail:"definition",type:"keyword"}),G("import ${module}",{label:"import",detail:"statement",type:"keyword"}),G("from ${module} import ${names}",{label:"from",detail:"import",type:"keyword"})],lo=Wn(Tn,zn(so.concat(Oo)));function Xe(e){let{node:t,pos:n}=e,i=e.lineIndent(n,-1),o=null;for(;;){let r=t.childBefore(n);if(r)if(r.name=="Comment")n=r.from;else if(r.name=="Body"||r.name=="MatchBody")e.baseIndentFor(r)+e.unit<=i&&(o=r),t=r;else if(r.name=="MatchClause")t=r;else if(r.type.is("Statement"))t=r;else break;else break}return o}function ze(e,t){let n=e.baseIndentFor(t),i=e.lineAt(e.pos,-1),o=i.from+i.text.length;return/^\s*($|#)/.test(i.text)&&e.node.to<o+100&&!/\S/.test(e.state.sliceDoc(o,e.node.to))&&e.lineIndent(e.pos,-1)<=n||/^\s*(else:|elif |except |finally:|case\s+[^=:]+:)/.test(e.textAfter)&&e.lineIndent(e.pos,-1)>n?null:n+e.unit}const _e=Lt.define({name:"python",parser:io.configure({props:[Nt.add({Body:e=>{var t;let n=/^\s*(#|$)/.test(e.textAfter)&&Xe(e)||e.node;return(t=ze(e,n))!==null&&t!==void 0?t:e.continue()},MatchBody:e=>{var t;let n=Xe(e);return(t=ze(e,n||e.node))!==null&&t!==void 0?t:e.continue()},IfStatement:e=>/^\s*(else:|elif )/.test(e.textAfter)?e.baseIndent:e.continue(),"ForStatement WhileStatement":e=>/^\s*else:/.test(e.textAfter)?e.baseIndent:e.continue(),TryStatement:e=>/^\s*(except[ :]|finally:|else:)/.test(e.textAfter)?e.baseIndent:e.continue(),MatchStatement:e=>/^\s*case /.test(e.textAfter)?e.baseIndent+e.unit:e.continue(),"TupleExpression ComprehensionExpression ParamList ArgList ParenthesizedExpression":$e({closing:")"}),"DictionaryExpression DictionaryComprehensionExpression SetExpression SetComprehensionExpression":$e({closing:"}"}),"ArrayExpression ArrayComprehensionExpression":$e({closing:"]"}),MemberExpression:e=>e.baseIndent+e.unit,"String FormatString":()=>null,Script:e=>{var t;let n=Xe(e);return(t=n&&ze(e,n))!==null&&t!==void 0?t:e.continue()}}),Mt.add({"ArrayExpression DictionaryExpression SetExpression TupleExpression":Zt,Body:(e,t)=>({from:e.from+1,to:e.to-(e.to==t.doc.length?0:1)}),"String FormatString":(e,t)=>({from:t.doc.lineAt(e.from).to,to:e.to})})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"'''",'"""'],stringPrefixes:["f","fr","rf","r","u","b","br","rb","F","FR","RF","R","U","B","BR","RB"]},commentTokens:{line:"#"},indentOnInput:/^\s*([\}\]\)]|else:|elif |except |finally:|case\s+[^:]*:?)$/}});function co(){return new Gt(_e,[_e.data.of({autocomplete:ao}),_e.data.of({autocomplete:lo})])}var ho=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,i=Object.getOwnPropertySymbols(e);o<i.length;o++)t.indexOf(i[o])<0&&Object.prototype.propertyIsEnumerable.call(e,i[o])&&(n[i[o]]=e[i[o]]);return n};const j=ye.define({combine:e=>{const t=[];for(let n of e){if(!n)continue;const{create:i,gutters:o}=n,r=ho(n,["create","gutters"]);t.push(Object.assign(Object.assign({},r),{enabled:!0,gutters:o?o.filter(s=>Object.keys(s).length>0):void 0}))}return _n(t,{enabled:t.length>0,displayText:"characters",eventHandlers:{},showOverlay:"always",gutters:[]})}}),X={PixelMultiplier:2,SizeRatio:4,MaxWidth:120},fo=U.theme({".cm-minimap-overlay-container":{position:"absolute",top:0,height:"100%",width:"100%","&.cm-minimap-overlay-mouse-over":{opacity:0,transition:"visibility 0s linear 300ms, opacity 300ms"},"&.cm-minimap-overlay-mouse-over:hover":{opacity:1,transition:"visibility 0s linear 0ms, opacity 300ms"},"&.cm-minimap-overlay-off":{display:"none"},"& .cm-minimap-overlay":{background:"rgb(121, 121, 121)",opacity:"0.2",position:"absolute",right:0,top:0,width:"100%",transition:"top 0s ease-in 0ms","&:hover":{opacity:"0.3"}},"&.cm-minimap-overlay-active":{opacity:1,visibility:"visible",transition:"visibility 0s linear 0ms, opacity 300ms","& .cm-minimap-overlay":{opacity:"0.4"}}}}),I=X.PixelMultiplier*X.SizeRatio,mo=Se.fromClass(class{constructor(e){this.view=e,this._isDragging=!1,e.state.facet(j).enabled&&this.create(e)}create(e){this.container=te("div",{class:"cm-minimap-overlay-container"}),this.dom=te("div",{class:"cm-minimap-overlay"}),this.container.appendChild(this.dom),this.container.addEventListener("mousedown",this.onMouseDown.bind(this)),window.addEventListener("mouseup",this.onMouseUp.bind(this)),window.addEventListener("mousemove",this.onMouseMove.bind(this));const t=e.dom.querySelector(".cm-minimap-inner");t&&t.appendChild(this.container),this.computeShowOverlay(),this.computeHeight(),this.computeTop()}remove(){this.container&&(this.container.removeEventListener("mousedown",this.onMouseDown),window.removeEventListener("mouseup",this.onMouseUp),window.removeEventListener("mousemove",this.onMouseMove),this.container.remove())}update(e){const t=e.startState.facet(j).enabled,n=e.state.facet(j).enabled;if(t&&!n){this.remove();return}!t&&n&&this.create(e.view),n&&(this.computeShowOverlay(),e.geometryChanged&&(this.computeHeight(),this.computeTop()))}computeHeight(){if(!this.dom)return;const e=this.view.dom.clientHeight/I;this.dom.style.height=e+"px"}computeTop(){if(!this._isDragging&&this.dom){const{clientHeight:e,scrollHeight:t,scrollTop:n}=this.view.scrollDOM,i=t-e,o=n/I,r=e/I,s=e-r;let a=n/i;isNaN(a)&&(a=0);const d=s*a,c=Math.min(d,o);this.dom.style.top=c+"px"}}computeShowOverlay(){if(!this.container)return;const{showOverlay:e}=this.view.state.facet(j);e==="mouse-over"?this.container.classList.add("cm-minimap-overlay-mouse-over"):this.container.classList.remove("cm-minimap-overlay-mouse-over");const{clientHeight:t,scrollHeight:n}=this.view.scrollDOM;t===n?this.container.classList.add("cm-minimap-overlay-off"):this.container.classList.remove("cm-minimap-overlay-off")}onMouseDown(e){if(!this.container||e.button===2)return;const{clientY:t,target:n}=e;if(n===this.dom){this._dragStartY=e.clientY,this._isDragging=!0,this.container.classList.add("cm-minimap-overlay-active");return}const{clientHeight:i,scrollHeight:o,scrollTop:r}=this.view.scrollDOM,s=n.getBoundingClientRect().top,a=(t-s)*I,d=r/(o-i),l=(i*I-i)*d,O=Math.max(0,r-l);this.view.scrollDOM.scrollTop=O+a-i/2}onMouseUp(e){this._isDragging&&this.container&&(this._dragStartY=void 0,this._isDragging=!1,this.container.classList.remove("cm-minimap-overlay-active"))}onMouseMove(e){if(!this._isDragging||!this.dom)return;if(e.preventDefault(),e.stopPropagation(),!this._dragStartY){this._dragStartY=e.clientY;return}const t=e.clientY-this._dragStartY,n=t<0,i=t>0;this._dragStartY=e.clientY;const o=this.dom.getBoundingClientRect().height,r=this.dom.getBoundingClientRect().y,s=r+o,a=parseFloat(this.dom.style.top),d=this.view.scrollDOM.scrollTop,c=this.view.scrollDOM.clientHeight,l=this.view.scrollDOM.scrollHeight,O=d===0,f=Math.round(d)>=Math.round(l-c);if(O&&n||O&&e.clientY<r||f&&i||f&&e.clientY>s)return;const m=this.view.scrollDOM.scrollHeight,u=this.view.scrollDOM.clientHeight,g=(m-u)/I,p=u-u/I,Q=a+t,k=Q/p,$=(m-u)*k,y=Q*I;this.view.scrollDOM.scrollTop=Math.max($,y);const P=Math.min(Math.max(0,Q),Math.min(p,g));this.dom.style.top=P+"px"}destroy(){this.remove()}},{eventHandlers:{scroll(){requestAnimationFrame(()=>this.computeTop())}}}),uo=[fo,mo];class Fe{constructor(t){this.map=new Map,this.view=t}get(t){return this.map.get(t)}set(t,n){this.map.set(t,n)}}function Wt(e){var t;if(!e.facet(j).enabled)return[];const n=[],i=e.doc.iterLines(),o=Un(e).iter();let r=0;for(i.next();!i.done;){const s=i.value;let a=r,d=a+s.length;for(;o.value&&o.to<a;)o.next();const{from:c,to:l}=o,O=a>=c&&a<l,f=d>c&&d<=l;if(O){let m=(t=n.pop())!==null&&t!==void 0?t:[],u=m.pop();u&&u.folded&&(u.to=l),u&&m.push(u),(!u||!u.folded)&&m.push({from:c,to:l,folded:!0}),f||m.push({from:l,to:d,folded:!1}),n.push(m)}else f?n.push([{from:a,to:c,folded:!1},{from:c,to:l,folded:!0}]):n.push([{from:a,to:d,folded:!1}]);r=d+1,i.next()}return n}const ie=he.define({create:e=>Wt(e),update:(e,t)=>ke([t])||t.docChanged?Wt(t.state):e});function ke(e){return e.find(t=>t.effects.find(n=>n.is(Cn)||n.is(En)))}class go extends Fe{constructor(t){super(t),this.count=void 0}shouldUpdate(t){if(!t.state.facet(j).enabled)return!1;if(t.docChanged)return!0;for(const n of t.transactions)for(const i of n.effects)if(i.is(Vn))return!0;return!!(ke(t.transactions)||this.count===void 0)}update(t){if(!this.shouldUpdate(t))return;this.map.clear();const n=t.state.field(ie);this.count=Gn(t.state),Ln(t.state,(i,o,r)=>{const s=this.findLine(o,n),a=this.findLine(r,n);let d=i.severity;for(let c=s;c<=a;c++){const l=this.get(c);l&&(d=[d,l].sort(this.sort.bind(this)).slice(0,1)[0]),this.set(c,d)}})}drawLine(t,n){const{context:i,lineHeight:o,offsetX:r,offsetY:s}=t,a=this.get(n);a&&(i.globalAlpha=.65,i.beginPath(),i.rect(r,s,i.canvas.width-r,o),i.fillStyle=this.color(a),i.fill())}findLine(t,n){return n.findIndex(o=>{const r=o.slice(0,1)[0],s=o.slice(-1)[0];return!r||!s?!1:r.from<=t&&t<=s.to})+1}color(t){return t==="error"?"#d11":t==="warning"?"orange":"#999"}sort(t,n){return this.score(n)-this.score(t)}score(t){switch(t){case"error":return 3;case"warning":return 2;default:return 1}}}function po(e){return new go(e)}class Qo extends Fe{constructor(t){super(t),this.getDrawInfo(),this._themeClasses=t.dom.classList.value}shouldUpdate(t){return t.state.facet(j).enabled?!!(t.docChanged||t.selectionSet||this._themeClasses!==this.view.dom.classList.value||ke(t.transactions)):!1}update(t){if(!this.shouldUpdate(t))return;this.map.clear(),this._themeClasses!==this.view.dom.classList.value&&(this._drawInfo=void 0,this._themeClasses=this.view.dom.classList.value);const{ranges:n}=t.state.selection;let i=0;for(const[o,r]of t.state.field(ie).entries()){const s=[];let a=0;for(const c of r){do{if(i>=n.length||c.to<n[i].from)continue;if(n[i].from===n[i].to){i++;continue}const l=n[i],O={from:a+Math.max(c.from,l.from)-c.from,to:a+Math.min(c.to,l.to)-c.from,extends:l.to>c.to},f=s.slice(-1)[0];if(f&&f.to===O.from){let{to:m}=O;c.folded&&O.extends?m=O.from+1:c.folded&&!O.extends&&(m=f.to),s[s.length-1]=Object.assign(Object.assign({},f),{to:m,extends:O.extends})}else c.folded||s.push(O);if(O.extends)break;i++}while(i<n.length&&c.to>=n[i].from);a+=c.folded?1:c.to-c.from}if(s.length===0)continue;const d=o+1;this.map.set(d,s)}}drawLine(t,n){let{context:i,lineHeight:o,charWidth:r,offsetX:s,offsetY:a}=t;const d=this.get(n);if(d)for(const c of d){const l=s+c.from*r,O=(c.to-c.from)*r,f=i.canvas.width-l;c.extends&&(i.globalAlpha=.65,i.beginPath(),i.rect(l,a,f,o),i.fillStyle=this.getDrawInfo().backgroundColor,i.fill()),i.globalAlpha=1,i.beginPath(),i.rect(l,a,O,o),i.fillStyle=this.getDrawInfo().backgroundColor,i.fill()}}getDrawInfo(){if(this._drawInfo)return this._drawInfo;const t=document.createElement("span");t.setAttribute("class","cm-selectionBackground"),this.view.dom.appendChild(t);const i={backgroundColor:window.getComputedStyle(t).backgroundColor};return this._drawInfo=i,this.view.dom.removeChild(t),i}}function xo(e){return new Qo(e)}class vo extends Fe{constructor(t){super(t),this._fontInfoMap=new Map,this._themeClasses=new Set(t.dom.classList.values()),t.state.facet(j).enabled&&this.updateImpl(t.state)}shouldUpdate(t){return!!(t.docChanged||t.state.facet(j)!==t.startState.facet(j)||this.themeChanged()||ke(t.transactions))}update(t){this.shouldUpdate(t)&&(this._highlightingCallbackId&&(typeof window.requestIdleCallback<"u"?cancelIdleCallback(this._highlightingCallbackId):clearTimeout(this._highlightingCallbackId)),this.updateImpl(t.state,t.changes))}updateImpl(t,n){var i;this.map.clear(),this._displayText=t.facet(j).displayText,this.themeChanged()&&this._fontInfoMap.clear();let o;if(this._previousTree&&n){const O=Je.addTree(this._previousTree),f=[];n.iterChangedRanges((m,u,g,p)=>f.push({fromA:m,toA:u,fromB:g,toB:p})),o=Je.applyChanges(O,f)}const r=t.doc.toString(),s=(i=t.facet(Ct))===null||i===void 0?void 0:i.parser,a=s?s.parse(r,o):void 0;this._previousTree=a;const d={style:O=>Et(t,O)};let c=[];if(a){const O=t.doc.lineAt(this.view.viewport.from).number,f=t.doc.lineAt(this.view.viewport.to).number,m=f-O,u=O/(t.doc.lines-m),{SizeRatio:g,PixelMultiplier:p}=X,Q=m*g*p,k=u*Q,$=Math.max(1,Math.floor(O-k)),y=Math.min(f+Math.floor(Q-k),t.doc.lines);Ce(a,d,(P,v,T)=>{c.push({from:P,to:v,tags:T})},t.doc.line($).from,t.doc.line(y).to)}this.updateMapImpl(t,c),c=[];const l=()=>{a&&(Ce(a,d,(O,f,m)=>{c.push({from:O,to:f,tags:m})}),this.updateMapImpl(t,c),this._highlightingCallbackId=void 0)};this._highlightingCallbackId=typeof window.requestIdleCallback<"u"?requestIdleCallback(l):setTimeout(l)}updateMapImpl(t,n){this.map.clear();const i=t.doc.toString(),o=n.values();let r=o.next();for(const[s,a]of t.field(ie).entries()){const d=[];for(const l of a){if(l.from===l.to)continue;if(l.folded){d.push({text:"…",tags:""});continue}let O=l.from;for(;!r.done&&r.value.from<l.to;){const{from:f,to:m,tags:u}=r.value;if(m<O){r=o.next();continue}f>O&&d.push({text:i.slice(O,f),tags:""});const g=Math.max(f,l.from),p=Math.min(m,l.to);if(d.push({text:i.slice(g,p),tags:u}),O=p,m>p)break;r=o.next()}O!==l.to&&d.push({text:i.slice(O,l.to),tags:""})}const c=s+1;this.map.set(c,d)}}measure(t){const{color:n,font:i,lineHeight:o}=this.getFontInfo("");return t.textBaseline="ideographic",t.fillStyle=n,t.font=i,{charWidth:t.measureText("_").width,lineHeight:o}}beforeDraw(){this._fontInfoMap.clear()}drawLine(t,n){const i=this.get(n);if(!i)return;let{context:o,charWidth:r,lineHeight:s,offsetX:a,offsetY:d}=t,c;o.textBaseline="ideographic";for(const l of i){const O=this.getFontInfo(l.tags);switch((!c||c.color!==O.color)&&(o.fillStyle=O.color),(!c||c.font!==O.font)&&(o.font=O.font),c=O,s=Math.max(s,O.lineHeight),this._displayText){case"characters":{o.fillText(l.text,a,d+s),a+=l.text.length*r;break}case"blocks":{const f=/\S+/g;let m;for(;(m=f.exec(l.text))!==null;){const u=a+m.index*r;let g=(f.lastIndex-m.index)*r;if(u>o.canvas.width)break;u+g>o.canvas.width&&(g=o.canvas.width-u);const p=2/X.SizeRatio,Q=s-p;o.fillStyle=O.color,o.globalAlpha=.65,o.beginPath(),o.rect(u,d,g,Q),o.fill()}a+=l.text.length*r;break}}}}getFontInfo(t){const n=this._fontInfoMap.get(t);if(n)return n;const i=te("span",{class:t}),o=te("div",{class:"cm-line",style:"display: none"},i);this.view.contentDOM.appendChild(o);const r=window.getComputedStyle(i),s=parseFloat(r.lineHeight)/X.SizeRatio,a={color:r.color,font:`${r.fontStyle} ${r.fontWeight} ${s}px ${r.fontFamily}`,lineHeight:s};return this._fontInfoMap.set(t,a),this.view.contentDOM.removeChild(o),a}themeChanged(){const t=this._themeClasses,n=new Set(this.view.dom.classList.values());if(this._themeClasses=n,!t||(t.delete("cm-focused"),n.delete("cm-focused"),t.size!==n.size))return!0;let i=!0;return t.forEach(o=>{n.has(o)||(i=!1)}),!i}}function To(e){return new vo(e)}const Sn=4;function So(e,t,n){const i=e[n];i&&(t.context.fillStyle=i,t.context.globalAlpha=1,t.context.beginPath(),t.context.rect(t.offsetX,t.offsetY,Sn,t.lineHeight),t.context.fill())}const yo=U.theme({"&":{height:"100%",overflowY:"auto"},"& .cm-minimap-gutter":{borderRight:0,flexShrink:0,left:"unset",position:"sticky",right:0,top:0},"& .cm-minimap-inner":{height:"100%",position:"absolute",right:0,top:0,overflowY:"hidden","& canvas":{display:"block"}},"& .cm-minimap-box-shadow":{boxShadow:"12px 0px 20px 5px #6c6c6c"}}),Rt=6,bo=Se.fromClass(class{constructor(e){this.view=e,this.text=To(e),this.selection=xo(e),this.diagnostic=po(e),e.state.facet(de)&&this.create(e)}create(e){const t=e.state.facet(de);if(!t)throw Error("Expected nonnull");this.inner=te("div",{class:"cm-minimap-inner"}),this.canvas=te("canvas"),this.dom=t.create(e).dom,this.dom.classList.add("cm-gutters"),this.dom.classList.add("cm-minimap-gutter"),this.inner.appendChild(this.canvas),this.dom.appendChild(this.inner),this.view.scrollDOM.insertBefore(this.dom,this.view.contentDOM.nextSibling);for(const n in this.view.state.facet(j).eventHandlers){const i=this.view.state.facet(j).eventHandlers[n];i&&this.dom.addEventListener(n,o=>i(o,this.view))}}remove(){this.dom&&this.dom.remove()}update(e){const t=e.startState.facet(de),n=e.state.facet(de);if(t&&!n){this.remove();return}!t&&n&&this.create(e.view),n&&(this.text.update(e),this.selection.update(e),this.diagnostic.update(e),this.render())}getWidth(){const e=this.view.dom.clientWidth;if(e<=X.MaxWidth*Rt){const t=e/(X.MaxWidth*Rt);return X.MaxWidth*t}return X.MaxWidth}render(){if(!this.dom||!this.canvas||!this.inner)return;this.text.beforeDraw(),this.updateBoxShadow(),this.dom.style.width=this.getWidth()+"px",this.canvas.style.maxWidth=this.getWidth()+"px",this.canvas.width=this.getWidth()*X.PixelMultiplier;const e=this.view.dom.getBoundingClientRect().height;this.inner.style.minHeight=e+"px",this.canvas.height=e*X.PixelMultiplier,this.canvas.style.height=e+"px";const t=this.canvas.getContext("2d");if(!t)return;t.clearRect(0,0,this.canvas.width,this.canvas.height);const{charWidth:n,lineHeight:i}=this.text.measure(t);let{startIndex:o,endIndex:r,offsetY:s}=this.canvasStartAndEndIndex(t,i);const a=this.view.state.facet(j).gutters;for(let d=o;d<r;d++){const c=this.view.state.field(ie);if(d>=c.length)break;const l={offsetX:0,offsetY:s,context:t,lineHeight:i,charWidth:n};if(a.length){l.offsetX+=2;for(let O of a)So(O,l,d+1),l.offsetX+=Sn;l.offsetX+=2}this.text.drawLine(l,d+1),this.selection.drawLine(l,d+1),this.diagnostic.drawLine(l,d+1),s+=i}t.restore()}canvasStartAndEndIndex(e,t){let{top:n,bottom:i}=this.view.documentPadding;n/=X.SizeRatio,i/=X.SizeRatio;const o=e.canvas.height,{clientHeight:r,scrollHeight:s,scrollTop:a}=this.view.scrollDOM;let d=a/(s-r);isNaN(d)&&(d=0);const c=this.view.state.field(ie).length,l=n+i+c*t,O=Math.max(0,d*(l-o)),f=Math.max(0,n-O),m=Math.round(Math.max(0,O-n)/t),u=Math.round((o-f)/t);return{startIndex:m,endIndex:m+u,offsetY:f}}updateBoxShadow(){if(!this.canvas)return;const{clientWidth:e,scrollWidth:t,scrollLeft:n}=this.view.scrollDOM;e+n<t?this.canvas.classList.add("cm-minimap-box-shadow"):this.canvas.classList.remove("cm-minimap-box-shadow")}destroy(){this.remove()}},{eventHandlers:{scroll(){requestAnimationFrame(()=>this.render())}},provide:e=>U.scrollMargins.of(t=>{var n;const i=(n=t.plugin(e))===null||n===void 0?void 0:n.getWidth();return i?{right:i}:null})}),de=ye.define({combine:e=>{var t;return(t=e.find(n=>n!==null))!==null&&t!==void 0?t:null},enables:e=>[[j.compute([e],t=>t.facet(e)),yo,ie,bo,uo]]}),Xt=Dn.define({token(e){return e.match(/^#.*/)?"comment":e.sol()&&e.match(/^[A-Za-z_][A-Za-z0-9_.]*(?==)/)?"variableName.definition":e.match(/^=/)?"operator":e.match(/^"(?:[^"\\]|\\.)*"?/)||e.match(/^'(?:[^'\\]|\\.)*'?/)?"string":e.match(/^\$\{[^}]*\}?/)||e.match(/^\$[A-Za-z_][A-Za-z0-9_]*/)?"variableName.special":e.match(/^\d+/)?"number":(e.next(),null)}}),wo=e=>{const t=e.toLowerCase();if(t===".env"||t.startsWith(".env."))return[Xt];const n=e.split(".").pop()?.toLowerCase();switch(n){case"js":case"jsx":case"ts":case"tsx":return[An({jsx:!0,typescript:n.includes("ts")})];case"py":return[co()];case"html":case"htm":return[Zn()];case"css":case"scss":case"less":return[Mn()];case"json":return[Br()];case"md":case"markdown":return[Nn()];case"env":return[Xt];default:return[]}},ko=({file:e,showDiff:t,minimapEnabled:n,isDarkMode:i})=>{if(!e.diffInfo||!t||!n)return[];const o={};return[de.compute(["doc"],r=>{const a=De(r)?.chunks||[];return Object.keys(o).forEach(d=>{delete o[Number(d)]}),a.forEach(d=>{const c=r.doc.lineAt(d.fromB).number,l=r.doc.lineAt(Math.min(d.toB,r.doc.length)).number;for(let O=c;O<=l;O+=1)o[O]=i?"rgba(34, 197, 94, 0.8)":"rgba(34, 197, 94, 1)"}),{create:()=>({dom:document.createElement("div")}),displayText:"blocks",showOverlay:"always",gutters:[o]}})]},Po=({file:e,showDiff:t})=>!e.diffInfo||!t?[]:[Se.fromClass(class{constructor(n){setTimeout(()=>{const o=De(n.state)?.chunks?.[0];o&&n.dispatch({effects:U.scrollIntoView(o.fromB,{y:"center"})})},100)}update(){}destroy(){}})],$o=e=>`
8
8
  .code-editor-loading {
9
9
  background-color: ${e?"#111827":"#ffffff"} !important;
10
10
  }
@@ -106,5 +106,5 @@ import{h as He,j as h,Q as kn,U as Pn,m as Je,S as $n,D as qn,k as jn,X as Wn,V
106
106
  ${P}
107
107
  </svg>
108
108
  </button>
109
- `),v+="</div>",v+="</div>",O.innerHTML=v,u){const R=O.querySelector(".cm-diff-nav-prev"),z=O.querySelector(".cm-diff-nav-next");R?.addEventListener("click",()=>{if(p.length===0)return;f=f>0?f-1:p.length-1;const W=p[f];W&&l.dispatch({effects:U.scrollIntoView(W.fromB,{y:"center"})}),m()}),z?.addEventListener("click",()=>{if(p.length===0)return;f=f<p.length-1?f+1:0;const W=p[f];W&&l.dispatch({effects:U.scrollIntoView(W.fromB,{y:"center"})}),m()})}O.querySelector(".cm-toggle-diff-btn")?.addEventListener("click",o),O.querySelector(".cm-popout-btn")?.addEventListener("click",()=>{r?.()}),O.querySelector(".cm-expand-btn")?.addEventListener("click",()=>{s?.()})};return m(),{top:!0,dom:O,update:m}};return[ir.of(c)]};function Xo({content:e,linesLabel:t,charactersLabel:n,shortcutsLabel:i}){return h.jsxs("div",{className:"flex flex-shrink-0 items-center justify-between border-t border-border bg-muted px-3 py-1.5",children:[h.jsxs("div",{className:"flex items-center gap-3 text-xs text-gray-600 dark:text-gray-400",children:[h.jsxs("span",{children:[t," ",e.split(`
110
- `).length]}),h.jsxs("span",{children:[n," ",e.length]})]}),h.jsx("div",{className:"text-xs text-gray-500 dark:text-gray-400",children:i})]})}function zo({file:e,isSidebar:t,isFullscreen:n,isMarkdownFile:i,isHtmlPreviewFile:o,markdownPreview:r,saving:s,saveSuccess:a,onToggleMarkdownPreview:d,onOpenHtmlPreview:c,onOpenSettings:l,onDownload:O,onSave:f,onToggleFullscreen:m,onClose:u,labels:g}){const[p,Q]=S.useState(null),k=S.useRef(null),$=a?g.saved:s?g.saving:g.save,y=p===e.path;S.useEffect(()=>()=>{k.current&&clearTimeout(k.current)},[]);const P=async()=>{await Rn(e.path)&&(Q(e.path),k.current&&clearTimeout(k.current),k.current=setTimeout(()=>Q(null),2e3))};return h.jsxs("div",{className:"flex min-w-0 flex-shrink-0 items-center justify-between gap-2 border-b border-border px-3 py-1.5",children:[h.jsx("div",{className:"flex min-w-0 flex-1 shrink items-center gap-2",children:h.jsxs("div",{className:"min-w-0 shrink",children:[h.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[h.jsx("h3",{className:"truncate text-sm font-medium text-gray-900 dark:text-white",children:e.name}),e.diffInfo&&h.jsx("span",{className:"shrink-0 whitespace-nowrap rounded bg-blue-100 px-1.5 py-0.5 text-[10px] text-blue-600 dark:bg-blue-900 dark:text-blue-300",children:g.showingChanges})]}),h.jsxs("div",{className:"flex min-w-0 items-center gap-1",children:[h.jsx("p",{className:"truncate text-xs text-gray-500 dark:text-gray-400",title:e.path,children:e.path}),h.jsx("button",{type:"button",onClick:P,className:`flex shrink-0 items-center justify-center rounded p-0.5 transition-colors ${y?"text-green-600 dark:text-green-400":"text-gray-400 hover:bg-gray-100 hover:text-gray-700 dark:text-gray-500 dark:hover:bg-gray-800 dark:hover:text-gray-200"}`,title:y?g.pathCopied:g.copyPath,"aria-label":y?g.pathCopied:g.copyPath,children:y?h.jsx(kn,{className:"h-3 w-3"}):h.jsx(Pn,{className:"h-3 w-3"})})]})]})}),h.jsxs("div",{className:"flex shrink-0 items-center gap-0.5",children:[i&&h.jsx("button",{type:"button",onClick:d,className:`flex items-center justify-center rounded-md p-1.5 transition-colors ${r?"bg-blue-50 text-blue-600 dark:bg-blue-900/30 dark:text-blue-400":"text-gray-600 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-800 dark:hover:text-white"}`,title:r?g.editMarkdown:g.previewMarkdown,children:r?h.jsx(dr,{className:"h-4 w-4"}):h.jsx(Je,{className:"h-4 w-4"})}),o&&h.jsx("button",{type:"button",onClick:c,className:"flex items-center justify-center rounded-md p-1.5 text-gray-600 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-800 dark:hover:text-white",title:g.previewHtml,children:h.jsx(Je,{className:"h-4 w-4"})}),h.jsx("button",{type:"button",onClick:l,className:"flex items-center justify-center rounded-md p-1.5 text-gray-600 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-800 dark:hover:text-white",title:g.settings,children:h.jsx($n,{className:"h-4 w-4"})}),h.jsx("button",{type:"button",onClick:O,className:"flex items-center justify-center rounded-md p-1.5 text-gray-600 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-800 dark:hover:text-white",title:g.download,children:h.jsx(qn,{className:"h-4 w-4"})}),h.jsx("button",{type:"button",onClick:f,disabled:s,className:`flex items-center justify-center rounded-md p-1.5 transition-colors disabled:opacity-50 ${a?"bg-green-50 text-green-600 dark:bg-green-900/30 dark:text-green-400":"text-gray-600 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-800 dark:hover:text-white"}`,title:$,children:a?h.jsx("svg",{className:"h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:h.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M5 13l4 4L19 7"})}):h.jsx(jn,{className:"h-4 w-4"})}),!t&&h.jsx("button",{type:"button",onClick:m,className:"flex items-center justify-center rounded-md p-1.5 text-gray-600 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-800 dark:hover:text-white",title:n?g.exitFullscreen:g.fullscreen,children:n?h.jsx(or,{className:"h-4 w-4"}):h.jsx(ar,{className:"h-4 w-4"})}),h.jsx("button",{type:"button",onClick:u,className:"flex items-center justify-center rounded-md p-1.5 text-gray-600 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-800 dark:hover:text-white",title:g.close,children:h.jsx(Wn,{className:"h-4 w-4"})})]})]})}function _o({isDarkMode:e,isSidebar:t,loadingText:n}){return h.jsxs(h.Fragment,{children:[h.jsx("style",{children:$o(e)}),t?h.jsx("div",{className:"flex h-full w-full items-center justify-center bg-background",children:h.jsxs("div",{className:"flex items-center gap-3",children:[h.jsx("div",{className:"h-6 w-6 animate-spin rounded-full border-b-2 border-blue-600"}),h.jsx("span",{className:"text-gray-900 dark:text-white",children:n})]})}):h.jsx("div",{className:"fixed inset-0 z-[9999] md:flex md:items-center md:justify-center md:bg-black/50",children:h.jsx("div",{className:"code-editor-loading flex h-full w-full items-center justify-center p-8 md:h-auto md:w-auto md:rounded-lg",children:h.jsxs("div",{className:"flex items-center gap-3",children:[h.jsx("div",{className:"h-6 w-6 animate-spin rounded-full border-b-2 border-blue-600"}),h.jsx("span",{className:"text-gray-900 dark:text-white",children:n})]})})})]})}function Co({content:e,onChange:t,markdownPreview:n,isMarkdownFile:i,isDarkMode:o,fontSize:r,showLineNumbers:s,extensions:a}){return n&&i?h.jsx("div",{className:"h-full overflow-y-auto bg-white dark:bg-gray-900",children:h.jsx("div",{className:"prose prose-sm mx-auto max-w-4xl max-w-none px-8 py-6 dark:prose-invert prose-headings:font-semibold prose-a:text-blue-600 prose-code:text-sm prose-pre:bg-gray-900 prose-img:rounded-lg dark:prose-a:text-blue-400",children:h.jsx(sr,{content:e})})}):h.jsx(Or,{value:e,onChange:t,extensions:a,theme:o?lr:void 0,height:"100%",style:{fontSize:`${r}px`,height:"100%"},basicSetup:{lineNumbers:s,foldGutter:!0,dropCursor:!1,allowMultipleSelections:!1,indentOnInput:!0,bracketMatching:!0,closeBrackets:!0,autocompletion:!0,highlightSelectionMatches:!0,searchKeymap:!0}})}function Eo({file:e,isSidebar:t,isFullscreen:n,onClose:i,onToggleFullscreen:o,title:r,message:s}){const a=h.jsx("div",{className:"flex h-full w-full flex-col items-center justify-center bg-background p-8 text-muted-foreground",children:h.jsxs("div",{className:"flex max-w-md flex-col items-center gap-4 text-center",children:[h.jsx("div",{className:"flex h-16 w-16 items-center justify-center rounded-full bg-muted",children:h.jsx("svg",{className:"h-8 w-8 text-muted-foreground",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:h.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"})})}),h.jsxs("div",{children:[h.jsx("h3",{className:"mb-2 text-lg font-medium text-foreground",children:r}),h.jsx("p",{className:"text-sm text-muted-foreground",children:s})]}),h.jsx("button",{onClick:i,className:"mt-4 rounded-md bg-primary px-4 py-2 text-sm text-primary-foreground transition-colors hover:bg-primary/90",children:"Close"})]})});if(t)return h.jsxs("div",{className:"flex h-full w-full flex-col bg-background",children:[h.jsxs("div",{className:"flex flex-shrink-0 items-center justify-between border-b border-border px-3 py-1.5",children:[h.jsx("div",{className:"flex min-w-0 flex-1 items-center gap-2",children:h.jsx("h3",{className:"truncate text-sm font-medium text-gray-900 dark:text-white",children:e.name})}),h.jsx("button",{type:"button",onClick:i,className:"flex items-center justify-center rounded-md p-1.5 text-gray-600 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-800 dark:hover:text-white",title:"Close",children:h.jsx("svg",{className:"h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:h.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),a]});const d=n?"fixed inset-0 z-[9999] bg-background flex flex-col":"fixed inset-0 z-[9999] md:bg-black/50 md:flex md:items-center md:justify-center md:p-4",c=n?"bg-background flex flex-col w-full h-full":"bg-background shadow-2xl flex flex-col w-full h-full md:rounded-lg md:shadow-2xl md:w-full md:max-w-2xl md:h-auto md:max-h-[60vh]";return h.jsx("div",{className:d,children:h.jsxs("div",{className:c,children:[h.jsxs("div",{className:"flex flex-shrink-0 items-center justify-between border-b border-border px-3 py-1.5",children:[h.jsx("div",{className:"flex min-w-0 flex-1 items-center gap-2",children:h.jsx("h3",{className:"truncate text-sm font-medium text-gray-900 dark:text-white",children:e.name})}),h.jsxs("div",{className:"flex shrink-0 items-center gap-0.5",children:[h.jsx("button",{type:"button",onClick:o,className:"flex items-center justify-center rounded-md p-1.5 text-gray-600 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-800 dark:hover:text-white",title:n?"Exit fullscreen":"Fullscreen",children:n?h.jsx("svg",{className:"h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:h.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 9V4.5M9 9H4.5M9 9L3.5 3.5M9 15v4.5M9 15H4.5M9 15l-5.5 5.5M15 9h4.5M15 9V4.5M15 9l5.5-5.5M15 15h4.5M15 15v4.5m0-4.5l5.5 5.5"})}):h.jsx("svg",{className:"h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:h.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M4 8V4m0 0h4M4 4l5 5m11-1V4m0 0h-4m4 0l-5 5M4 16v4m0 0h4m-4 0l5-5m11 5l-5-5m5 5v-4m0 4h-4"})})}),h.jsx("button",{type:"button",onClick:i,className:"flex items-center justify-center rounded-md p-1.5 text-gray-600 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-800 dark:hover:text-white",title:"Close",children:h.jsx("svg",{className:"h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:h.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]})]}),a]})})}const Uo=1024,Vo=async e=>{const t=await e.slice(0,Uo).arrayBuffer();return new TextDecoder("latin1").decode(t).includes("%PDF-")};function Go({file:e,kind:t,projectId:n,isSidebar:i,isFullscreen:o,onClose:r,onToggleFullscreen:s,labels:a}){const[d,c]=S.useState(null),[l,O]=S.useState(null),[f,m]=S.useState(!0),[u,g]=S.useState(null),p=`${n??""}:${e.path}:${t}`;S.useEffect(()=>{if(!n){c(null),g(null),O(a.error),m(!1);return}let R=null;const z=new AbortController;return(async()=>{try{m(!0),O(null),c(null);const E=`/api/file-tree/projects/${n}/files/content?path=${encodeURIComponent(e.path)}`,oe=await Xn(E,{signal:z.signal});if(!oe.ok)throw new Error(`Request failed with status ${oe.status}`);const _=await oe.blob(),fe=xt(e.name),Pe=!_.type||_.type==="application/octet-stream",me=t==="video"&&!!fe&&!_.type.startsWith("video/");let B=Pe||me?fe??_.type:_.type;if(t==="pdf"){if(!await Vo(_))throw new Error("File is not a valid PDF");B="application/pdf"}const ue=B&&B!==_.type?new Blob([_],{type:B}):_;if(R=URL.createObjectURL(ue),z.signal.aborted){URL.revokeObjectURL(R),R=null;return}c(R),g(p)}catch(E){if(E instanceof Error&&E.name==="AbortError")return;console.error("Error loading preview:",E),O(a.error)}finally{m(!1)}})(),()=>{z.abort(),R&&URL.revokeObjectURL(R)}},[e.path,e.name,n,t,p,a.error]);const Q=d&&u===p?d:null,k=xt(e.name)==="image/svg+xml",$=!!Q&&!k,y=()=>{if(!Q)return null;switch(t){case"image":return h.jsx("img",{src:Q,alt:e.name,className:"max-h-full max-w-full object-contain"});case"pdf":return h.jsx("iframe",{src:Q,title:e.name,className:"h-full w-full border-0 bg-white"});case"video":return h.jsx("video",{src:Q,controls:!0,className:"max-h-full max-w-full",autoPlay:!1,children:a.error});case"audio":return h.jsxs("div",{className:"flex w-full max-w-xl flex-col items-center gap-4 px-6",children:[h.jsx("p",{className:"max-w-full truncate text-sm text-muted-foreground",children:e.name}),h.jsx("audio",{src:Q,controls:!0,className:"w-full",children:a.error})]});default:return null}},P=h.jsxs("div",{className:"relative flex h-full w-full flex-col items-center justify-center bg-muted/30 p-2",children:[f&&h.jsx("div",{className:"text-sm text-muted-foreground",children:a.loading}),!f&&Q&&y(),!f&&!Q&&h.jsxs("div",{className:"flex flex-col items-center gap-3 p-8 text-center text-muted-foreground",children:[h.jsx("p",{className:"text-sm",children:l||a.error}),h.jsx("p",{className:"break-all text-xs",children:e.path})]})]}),v=h.jsxs("div",{className:"flex shrink-0 items-center gap-0.5",children:[$&&Q&&h.jsx("a",{href:Q,target:"_blank",rel:"noopener noreferrer",className:"flex items-center justify-center rounded-md p-1.5 text-gray-600 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-800 dark:hover:text-white","aria-label":a.openInNewTab,title:a.openInNewTab,children:h.jsx("svg",{"aria-hidden":"true",className:"h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:h.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"})})}),!i&&h.jsx("button",{type:"button",onClick:s,className:"flex items-center justify-center rounded-md p-1.5 text-gray-600 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-800 dark:hover:text-white","aria-label":o?a.exitFullscreen:a.fullscreen,title:o?a.exitFullscreen:a.fullscreen,children:o?h.jsx("svg",{"aria-hidden":"true",className:"h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:h.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 9V4.5M9 9H4.5M9 9L3.5 3.5M9 15v4.5M9 15H4.5M9 15l-5.5 5.5M15 9h4.5M15 9V4.5M15 9l5.5-5.5M15 15h4.5M15 15v4.5m0-4.5l5.5 5.5"})}):h.jsx("svg",{"aria-hidden":"true",className:"h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:h.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M4 8V4m0 0h4M4 4l5 5m11-1V4m0 0h-4m4 0l-5 5M4 16v4m0 0h4m-4 0l5-5m11 5l-5-5m5 5v-4m0 4h-4"})})}),h.jsx("button",{type:"button",onClick:r,className:"flex items-center justify-center rounded-md p-1.5 text-gray-600 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-800 dark:hover:text-white","aria-label":a.close,title:a.close,children:h.jsx("svg",{"aria-hidden":"true",className:"h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:h.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),T=h.jsxs("div",{className:"flex flex-shrink-0 items-center justify-between border-b border-border px-3 py-1.5",children:[h.jsx("div",{className:"flex min-w-0 flex-1 items-center gap-2",children:h.jsx("h3",{className:"truncate text-sm font-medium text-gray-900 dark:text-white",children:e.name})}),v]});if(i)return h.jsxs("div",{className:"flex h-full w-full flex-col bg-background",children:[T,P]});const b=o?"fixed inset-0 z-[9999] bg-background flex flex-col":"fixed inset-0 z-[9999] md:bg-black/50 md:flex md:items-center md:justify-center md:p-4",V=o?"bg-background flex flex-col w-full h-full":"bg-background shadow-2xl flex flex-col w-full h-full md:rounded-lg md:shadow-2xl md:w-full md:max-w-6xl md:h-[80vh] md:max-h-[80vh]";return h.jsx("div",{className:b,children:h.jsxs("div",{className:V,children:[T,P]})})}function Ao({file:e,onClose:t,projectPath:n,isSidebar:i=!1,isExpanded:o=!1,onToggleExpand:r=null,onPopOut:s=null}){const{t:a}=zn("codeEditor"),d=_n(),[c,l]=S.useState(!1),[O,f]=S.useState(!!e.diffInfo),[m,u]=S.useState(!1),{isDarkMode:g}=Cn(),{wordWrap:p,minimapEnabled:Q,showLineNumbers:k,fontSize:$}=Mr(),{content:y,setContent:P,loading:v,saving:T,saveSuccess:b,saveError:V,isBinary:R,previewKind:z,fileProjectId:W,handleSave:E,handleDownload:oe}=Nr({file:e,projectPath:n}),_=S.useMemo(()=>{const w=e.name.split(".").pop()?.toLowerCase();return w==="md"||w==="markdown"},[e.name]),fe=S.useMemo(()=>{const w=e.name.split(".").pop()?.toLowerCase();return w==="html"||w==="htm"},[e.name]),Pe=S.useCallback(()=>{const w=window.open("","_blank");if(!w)return;w.opener=null,w.document.title=e.name,w.document.body.style.margin="0";const ae=w.document.createElement("iframe");ae.title=e.name,ae.sandbox.add("allow-forms","allow-modals","allow-popups","allow-scripts"),ae.style.cssText="position:fixed;inset:0;width:100%;height:100%;border:0;background:white",ae.srcdoc=y,w.document.body.appendChild(ae)},[y,e.name]),me=S.useMemo(()=>ko({file:e,showDiff:O,minimapEnabled:Q,isDarkMode:g}),[e,g,Q,O]),B=S.useMemo(()=>Po({file:e,showDiff:O}),[e,O]),ue=S.useMemo(()=>Ro({file:e,showDiff:O,isSidebar:i,isExpanded:o,onToggleDiff:()=>f(w=>!w),onPopOut:s,onToggleExpand:r,labels:{changes:a("toolbar.changes"),previousChange:a("toolbar.previousChange"),nextChange:a("toolbar.nextChange"),hideDiff:a("toolbar.hideDiff"),showDiff:a("toolbar.showDiff"),collapse:a("toolbar.collapse"),expand:a("toolbar.expand")}}),[e,o,i,s,r,O,a]),yn=S.useMemo(()=>{const w=[...wo(e.name),...ue];return e.diffInfo&&O&&e.diffInfo.old_string!==void 0&&(w.push(Wr({original:e.diffInfo.old_string,mergeControls:!1,highlightChanges:!0,syntaxHighlightDeletions:!1,gutter:!0})),w.push(...me),w.push(...B)),p&&w.push(U.lineWrapping),w},[e.diffInfo,e.name,me,B,O,ue,p]);if(Zr({onSave:E,onClose:t,dependency:y}),v)return h.jsx(_o,{isDarkMode:g,isSidebar:i,loadingText:a("loading",{fileName:e.name})});if(z)return h.jsx(Go,{file:e,kind:z,projectId:W,isSidebar:i,isFullscreen:c,onClose:t,onToggleFullscreen:()=>l(w=>!w),labels:{loading:a("filePreview.loading","Loading preview..."),error:a("filePreview.error","Unable to display this file."),openInNewTab:a("filePreview.openInNewTab","Open in new tab"),fullscreen:a("actions.fullscreen","Fullscreen"),exitFullscreen:a("actions.exitFullscreen","Exit fullscreen"),close:a("actions.close","Close")}});if(R)return h.jsx(Eo,{file:e,isSidebar:i,isFullscreen:c,onClose:t,onToggleFullscreen:()=>l(w=>!w),title:a("binaryFile.title","Binary File"),message:a("binaryFile.message",'The file "{{fileName}}" cannot be displayed in the text editor because it is a binary file.',{fileName:e.name})});const bn=i?"w-full h-full flex flex-col":`fixed inset-0 z-[9999] md:bg-black/50 md:flex md:items-center md:justify-center md:p-4 ${c?"md:p-0":""}`,wn=i?"bg-background flex flex-col w-full h-full":`bg-background shadow-2xl flex flex-col w-full h-full md:rounded-lg md:shadow-2xl${c?" md:w-full md:h-full md:rounded-none":" md:w-full md:max-w-6xl md:h-[80vh] md:max-h-[80vh]"}`;return h.jsxs(h.Fragment,{children:[h.jsx("style",{children:qo(g)}),h.jsx("div",{className:bn,children:h.jsxs("div",{className:wn,children:[h.jsx(zo,{file:e,isSidebar:i,isFullscreen:c,isMarkdownFile:_,isHtmlPreviewFile:fe,markdownPreview:m,saving:T,saveSuccess:b,onToggleMarkdownPreview:()=>u(w=>!w),onOpenHtmlPreview:Pe,onOpenSettings:()=>d.openSettings("appearance"),onDownload:oe,onSave:E,onToggleFullscreen:()=>l(w=>!w),onClose:t,labels:{showingChanges:a("header.showingChanges"),copyPath:a("actions.copyPath","Copy file path"),pathCopied:a("actions.pathCopied","File path copied"),editMarkdown:a("actions.editMarkdown"),previewMarkdown:a("actions.previewMarkdown"),previewHtml:a("actions.previewHtml","Open HTML preview in new tab"),settings:a("toolbar.settings"),download:a("actions.download"),save:a("actions.save"),saving:a("actions.saving"),saved:a("actions.saved"),fullscreen:a("actions.fullscreen"),exitFullscreen:a("actions.exitFullscreen"),close:a("actions.close")}}),V&&h.jsx("div",{className:"border-b border-red-200 bg-red-50 px-3 py-1.5 text-xs text-red-700 dark:border-red-900/40 dark:bg-red-900/20 dark:text-red-300",children:V}),h.jsx("div",{className:"flex-1 overflow-hidden",children:h.jsx(Co,{content:y,onChange:P,markdownPreview:m,isMarkdownFile:_,isDarkMode:g,fontSize:$,showLineNumbers:k,extensions:yn})}),h.jsx(Xo,{content:y,linesLabel:a("footer.lines"),charactersLabel:a("footer.characters"),shortcutsLabel:a("footer.shortcuts")})]})})]})}export{Ao as default};
109
+ `),v+="</div>",v+="</div>",O.innerHTML=v,u){const R=O.querySelector(".cm-diff-nav-prev"),z=O.querySelector(".cm-diff-nav-next");R?.addEventListener("click",()=>{if(p.length===0)return;f=f>0?f-1:p.length-1;const W=p[f];W&&l.dispatch({effects:U.scrollIntoView(W.fromB,{y:"center"})}),m()}),z?.addEventListener("click",()=>{if(p.length===0)return;f=f<p.length-1?f+1:0;const W=p[f];W&&l.dispatch({effects:U.scrollIntoView(W.fromB,{y:"center"})}),m()})}O.querySelector(".cm-toggle-diff-btn")?.addEventListener("click",o),O.querySelector(".cm-popout-btn")?.addEventListener("click",()=>{r?.()}),O.querySelector(".cm-expand-btn")?.addEventListener("click",()=>{s?.()})};return m(),{top:!0,dom:O,update:m}};return[In.of(c)]};function Xo({content:e,linesLabel:t,charactersLabel:n,shortcutsLabel:i}){return h.jsxs("div",{className:"flex flex-shrink-0 items-center justify-between border-t border-border bg-muted px-3 py-1.5",children:[h.jsxs("div",{className:"flex items-center gap-3 text-xs text-gray-600 dark:text-gray-400",children:[h.jsxs("span",{children:[t," ",e.split(`
110
+ `).length]}),h.jsxs("span",{children:[n," ",e.length]})]}),h.jsx("div",{className:"text-xs text-gray-500 dark:text-gray-400",children:i})]})}function zo({file:e,isSidebar:t,isFullscreen:n,isMarkdownFile:i,isHtmlPreviewFile:o,markdownPreview:r,saving:s,saveSuccess:a,onToggleMarkdownPreview:d,onOpenHtmlPreview:c,onOpenSettings:l,onDownload:O,onSave:f,onToggleFullscreen:m,onClose:u,labels:g}){const[p,Q]=S.useState(null),k=S.useRef(null),$=a?g.saved:s?g.saving:g.save,y=p===e.path;S.useEffect(()=>()=>{k.current&&clearTimeout(k.current)},[]);const P=async()=>{await Hn(e.path)&&(Q(e.path),k.current&&clearTimeout(k.current),k.current=setTimeout(()=>Q(null),2e3))};return h.jsxs("div",{className:"flex min-w-0 flex-shrink-0 items-center justify-between gap-2 border-b border-border px-3 py-1.5",children:[h.jsx("div",{className:"flex min-w-0 flex-1 shrink items-center gap-2",children:h.jsxs("div",{className:"min-w-0 shrink",children:[h.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[h.jsx("h3",{className:"truncate text-sm font-medium text-gray-900 dark:text-white",children:e.name}),e.diffInfo&&h.jsx("span",{className:"shrink-0 whitespace-nowrap rounded bg-blue-100 px-1.5 py-0.5 text-[10px] text-blue-600 dark:bg-blue-900 dark:text-blue-300",children:g.showingChanges})]}),h.jsxs("div",{className:"flex min-w-0 items-center gap-1",children:[h.jsx("p",{className:"truncate text-xs text-gray-500 dark:text-gray-400",title:e.path,children:e.path}),h.jsx("button",{type:"button",onClick:P,className:`flex shrink-0 items-center justify-center rounded p-0.5 transition-colors ${y?"text-green-600 dark:text-green-400":"text-gray-400 hover:bg-gray-100 hover:text-gray-700 dark:text-gray-500 dark:hover:bg-gray-800 dark:hover:text-gray-200"}`,title:y?g.pathCopied:g.copyPath,"aria-label":y?g.pathCopied:g.copyPath,children:y?h.jsx(tr,{className:"h-3 w-3"}):h.jsx(nr,{className:"h-3 w-3"})})]})]})}),h.jsxs("div",{className:"flex shrink-0 items-center gap-0.5",children:[i&&h.jsx("button",{type:"button",onClick:d,className:`flex items-center justify-center rounded-md p-1.5 transition-colors ${r?"bg-blue-50 text-blue-600 dark:bg-blue-900/30 dark:text-blue-400":"text-gray-600 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-800 dark:hover:text-white"}`,title:r?g.editMarkdown:g.previewMarkdown,children:r?h.jsx(rr,{className:"h-4 w-4"}):h.jsx(et,{className:"h-4 w-4"})}),o&&h.jsx("button",{type:"button",onClick:c,className:"flex items-center justify-center rounded-md p-1.5 text-gray-600 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-800 dark:hover:text-white",title:g.previewHtml,children:h.jsx(et,{className:"h-4 w-4"})}),h.jsx("button",{type:"button",onClick:l,className:"flex items-center justify-center rounded-md p-1.5 text-gray-600 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-800 dark:hover:text-white",title:g.settings,children:h.jsx(ir,{className:"h-4 w-4"})}),h.jsx("button",{type:"button",onClick:O,className:"flex items-center justify-center rounded-md p-1.5 text-gray-600 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-800 dark:hover:text-white",title:g.download,children:h.jsx(or,{className:"h-4 w-4"})}),h.jsx("button",{type:"button",onClick:f,disabled:s,className:`flex items-center justify-center rounded-md p-1.5 transition-colors disabled:opacity-50 ${a?"bg-green-50 text-green-600 dark:bg-green-900/30 dark:text-green-400":"text-gray-600 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-800 dark:hover:text-white"}`,title:$,children:a?h.jsx("svg",{className:"h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:h.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M5 13l4 4L19 7"})}):h.jsx(ar,{className:"h-4 w-4"})}),!t&&h.jsx("button",{type:"button",onClick:m,className:"flex items-center justify-center rounded-md p-1.5 text-gray-600 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-800 dark:hover:text-white",title:n?g.exitFullscreen:g.fullscreen,children:n?h.jsx(sr,{className:"h-4 w-4"}):h.jsx(Or,{className:"h-4 w-4"})}),h.jsx("button",{type:"button",onClick:u,className:"flex items-center justify-center rounded-md p-1.5 text-gray-600 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-800 dark:hover:text-white",title:g.close,children:h.jsx(lr,{className:"h-4 w-4"})})]})]})}function _o({isDarkMode:e,isSidebar:t,loadingText:n}){return h.jsxs(h.Fragment,{children:[h.jsx("style",{children:$o(e)}),t?h.jsx("div",{className:"flex h-full w-full items-center justify-center bg-background",children:h.jsxs("div",{className:"flex items-center gap-3",children:[h.jsx("div",{className:"h-6 w-6 animate-spin rounded-full border-b-2 border-blue-600"}),h.jsx("span",{className:"text-gray-900 dark:text-white",children:n})]})}):h.jsx("div",{className:"fixed inset-0 z-[9999] md:flex md:items-center md:justify-center md:bg-black/50",children:h.jsx("div",{className:"code-editor-loading flex h-full w-full items-center justify-center p-8 md:h-auto md:w-auto md:rounded-lg",children:h.jsxs("div",{className:"flex items-center gap-3",children:[h.jsx("div",{className:"h-6 w-6 animate-spin rounded-full border-b-2 border-blue-600"}),h.jsx("span",{className:"text-gray-900 dark:text-white",children:n})]})})})]})}function Co({content:e,onChange:t,markdownPreview:n,isMarkdownFile:i,isDarkMode:o,fontSize:r,showLineNumbers:s,extensions:a}){return n&&i?h.jsx("div",{className:"h-full overflow-y-auto bg-white dark:bg-gray-900",children:h.jsx("div",{className:"prose prose-sm mx-auto max-w-none px-8 py-6 dark:prose-invert prose-headings:font-semibold prose-a:text-blue-600 prose-code:text-sm prose-pre:bg-gray-900 prose-img:rounded-lg dark:prose-a:text-blue-400",children:h.jsx(Bn,{content:e})})}):h.jsx(Yn,{value:e,onChange:t,extensions:a,theme:o?Fn:void 0,height:"100%",style:{fontSize:`${r}px`,height:"100%"},basicSetup:{lineNumbers:s,foldGutter:!0,dropCursor:!1,allowMultipleSelections:!1,indentOnInput:!0,bracketMatching:!0,closeBrackets:!0,autocompletion:!0,highlightSelectionMatches:!0,searchKeymap:!0}})}function Eo({file:e,isSidebar:t,isFullscreen:n,onClose:i,onToggleFullscreen:o,title:r,message:s}){const a=h.jsx("div",{className:"flex h-full w-full flex-col items-center justify-center bg-background p-8 text-muted-foreground",children:h.jsxs("div",{className:"flex max-w-md flex-col items-center gap-4 text-center",children:[h.jsx("div",{className:"flex h-16 w-16 items-center justify-center rounded-full bg-muted",children:h.jsx("svg",{className:"h-8 w-8 text-muted-foreground",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:h.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"})})}),h.jsxs("div",{children:[h.jsx("h3",{className:"mb-2 text-lg font-medium text-foreground",children:r}),h.jsx("p",{className:"text-sm text-muted-foreground",children:s})]}),h.jsx("button",{onClick:i,className:"mt-4 rounded-md bg-primary px-4 py-2 text-sm text-primary-foreground transition-colors hover:bg-primary/90",children:"Close"})]})});if(t)return h.jsxs("div",{className:"flex h-full w-full flex-col bg-background",children:[h.jsxs("div",{className:"flex flex-shrink-0 items-center justify-between border-b border-border px-3 py-1.5",children:[h.jsx("div",{className:"flex min-w-0 flex-1 items-center gap-2",children:h.jsx("h3",{className:"truncate text-sm font-medium text-gray-900 dark:text-white",children:e.name})}),h.jsx("button",{type:"button",onClick:i,className:"flex items-center justify-center rounded-md p-1.5 text-gray-600 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-800 dark:hover:text-white",title:"Close",children:h.jsx("svg",{className:"h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:h.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),a]});const d=n?"fixed inset-0 z-[9999] bg-background flex flex-col":"fixed inset-0 z-[9999] md:bg-black/50 md:flex md:items-center md:justify-center md:p-4",c=n?"bg-background flex flex-col w-full h-full":"bg-background shadow-2xl flex flex-col w-full h-full md:rounded-lg md:shadow-2xl md:w-full md:max-w-2xl md:h-auto md:max-h-[60vh]";return h.jsx("div",{className:d,children:h.jsxs("div",{className:c,children:[h.jsxs("div",{className:"flex flex-shrink-0 items-center justify-between border-b border-border px-3 py-1.5",children:[h.jsx("div",{className:"flex min-w-0 flex-1 items-center gap-2",children:h.jsx("h3",{className:"truncate text-sm font-medium text-gray-900 dark:text-white",children:e.name})}),h.jsxs("div",{className:"flex shrink-0 items-center gap-0.5",children:[h.jsx("button",{type:"button",onClick:o,className:"flex items-center justify-center rounded-md p-1.5 text-gray-600 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-800 dark:hover:text-white",title:n?"Exit fullscreen":"Fullscreen",children:n?h.jsx("svg",{className:"h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:h.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 9V4.5M9 9H4.5M9 9L3.5 3.5M9 15v4.5M9 15H4.5M9 15l-5.5 5.5M15 9h4.5M15 9V4.5M15 9l5.5-5.5M15 15h4.5M15 15v4.5m0-4.5l5.5 5.5"})}):h.jsx("svg",{className:"h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:h.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M4 8V4m0 0h4M4 4l5 5m11-1V4m0 0h-4m4 0l-5 5M4 16v4m0 0h4m-4 0l5-5m11 5l-5-5m5 5v-4m0 4h-4"})})}),h.jsx("button",{type:"button",onClick:i,className:"flex items-center justify-center rounded-md p-1.5 text-gray-600 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-800 dark:hover:text-white",title:"Close",children:h.jsx("svg",{className:"h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:h.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]})]}),a]})})}const Uo=1024,Vo=async e=>{const t=await e.slice(0,Uo).arrayBuffer();return new TextDecoder("latin1").decode(t).includes("%PDF-")};function Go({file:e,kind:t,projectId:n,isSidebar:i,isFullscreen:o,onClose:r,onToggleFullscreen:s,labels:a}){const[d,c]=S.useState(null),[l,O]=S.useState(null),[f,m]=S.useState(!0),[u,g]=S.useState(null),p=`${n??""}:${e.path}:${t}`;S.useEffect(()=>{if(!n){c(null),g(null),O(a.error),m(!1);return}let R=null;const z=new AbortController;return(async()=>{try{m(!0),O(null),c(null);const E=`/api/file-tree/projects/${n}/files/content?path=${encodeURIComponent(e.path)}`,oe=await Jn(E,{signal:z.signal});if(!oe.ok)throw new Error(`Request failed with status ${oe.status}`);const _=await oe.blob(),fe=xt(e.name),Pe=!_.type||_.type==="application/octet-stream",me=t==="video"&&!!fe&&!_.type.startsWith("video/");let B=Pe||me?fe??_.type:_.type;if(t==="pdf"){if(!await Vo(_))throw new Error("File is not a valid PDF");B="application/pdf"}const ue=B&&B!==_.type?new Blob([_],{type:B}):_;if(R=URL.createObjectURL(ue),z.signal.aborted){URL.revokeObjectURL(R),R=null;return}c(R),g(p)}catch(E){if(E instanceof Error&&E.name==="AbortError")return;console.error("Error loading preview:",E),O(a.error)}finally{m(!1)}})(),()=>{z.abort(),R&&URL.revokeObjectURL(R)}},[e.path,e.name,n,t,p,a.error]);const Q=d&&u===p?d:null,k=xt(e.name)==="image/svg+xml",$=!!Q&&!k,y=()=>{if(!Q)return null;switch(t){case"image":return h.jsx("img",{src:Q,alt:e.name,className:"max-h-full max-w-full object-contain"});case"pdf":return h.jsx("iframe",{src:Q,title:e.name,className:"h-full w-full border-0 bg-white"});case"video":return h.jsx("video",{src:Q,controls:!0,className:"max-h-full max-w-full",autoPlay:!1,children:a.error});case"audio":return h.jsxs("div",{className:"flex w-full max-w-xl flex-col items-center gap-4 px-6",children:[h.jsx("p",{className:"max-w-full truncate text-sm text-muted-foreground",children:e.name}),h.jsx("audio",{src:Q,controls:!0,className:"w-full",children:a.error})]});default:return null}},P=h.jsxs("div",{className:"relative flex h-full w-full flex-col items-center justify-center bg-muted/30 p-2",children:[f&&h.jsx("div",{className:"text-sm text-muted-foreground",children:a.loading}),!f&&Q&&y(),!f&&!Q&&h.jsxs("div",{className:"flex flex-col items-center gap-3 p-8 text-center text-muted-foreground",children:[h.jsx("p",{className:"text-sm",children:l||a.error}),h.jsx("p",{className:"break-all text-xs",children:e.path})]})]}),v=h.jsxs("div",{className:"flex shrink-0 items-center gap-0.5",children:[$&&Q&&h.jsx("a",{href:Q,target:"_blank",rel:"noopener noreferrer",className:"flex items-center justify-center rounded-md p-1.5 text-gray-600 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-800 dark:hover:text-white","aria-label":a.openInNewTab,title:a.openInNewTab,children:h.jsx("svg",{"aria-hidden":"true",className:"h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:h.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"})})}),!i&&h.jsx("button",{type:"button",onClick:s,className:"flex items-center justify-center rounded-md p-1.5 text-gray-600 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-800 dark:hover:text-white","aria-label":o?a.exitFullscreen:a.fullscreen,title:o?a.exitFullscreen:a.fullscreen,children:o?h.jsx("svg",{"aria-hidden":"true",className:"h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:h.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 9V4.5M9 9H4.5M9 9L3.5 3.5M9 15v4.5M9 15H4.5M9 15l-5.5 5.5M15 9h4.5M15 9V4.5M15 9l5.5-5.5M15 15h4.5M15 15v4.5m0-4.5l5.5 5.5"})}):h.jsx("svg",{"aria-hidden":"true",className:"h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:h.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M4 8V4m0 0h4M4 4l5 5m11-1V4m0 0h-4m4 0l-5 5M4 16v4m0 0h4m-4 0l5-5m11 5l-5-5m5 5v-4m0 4h-4"})})}),h.jsx("button",{type:"button",onClick:r,className:"flex items-center justify-center rounded-md p-1.5 text-gray-600 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-800 dark:hover:text-white","aria-label":a.close,title:a.close,children:h.jsx("svg",{"aria-hidden":"true",className:"h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:h.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),T=h.jsxs("div",{className:"flex flex-shrink-0 items-center justify-between border-b border-border px-3 py-1.5",children:[h.jsx("div",{className:"flex min-w-0 flex-1 items-center gap-2",children:h.jsx("h3",{className:"truncate text-sm font-medium text-gray-900 dark:text-white",children:e.name})}),v]});if(i)return h.jsxs("div",{className:"flex h-full w-full flex-col bg-background",children:[T,P]});const b=o?"fixed inset-0 z-[9999] bg-background flex flex-col":"fixed inset-0 z-[9999] md:bg-black/50 md:flex md:items-center md:justify-center md:p-4",V=o?"bg-background flex flex-col w-full h-full":"bg-background shadow-2xl flex flex-col w-full h-full md:rounded-lg md:shadow-2xl md:w-full md:max-w-6xl md:h-[80vh] md:max-h-[80vh]";return h.jsx("div",{className:b,children:h.jsxs("div",{className:V,children:[T,P]})})}function Yo({file:e,onClose:t,projectPath:n,isSidebar:i=!1,isExpanded:o=!1,onToggleExpand:r=null,onPopOut:s=null}){const{t:a}=dr("codeEditor"),d=Kn(),[c,l]=S.useState(!1),[O,f]=S.useState(!!e.diffInfo),[m,u]=S.useState(!1),{isDarkMode:g}=er(),{wordWrap:p,minimapEnabled:Q,showLineNumbers:k,fontSize:$}=Mr(),{content:y,setContent:P,loading:v,saving:T,saveSuccess:b,saveError:V,isBinary:R,previewKind:z,fileProjectId:W,handleSave:E,handleDownload:oe}=Nr({file:e,projectPath:n}),_=S.useMemo(()=>{const w=e.name.split(".").pop()?.toLowerCase();return w==="md"||w==="markdown"},[e.name]),fe=S.useMemo(()=>{const w=e.name.split(".").pop()?.toLowerCase();return w==="html"||w==="htm"},[e.name]),Pe=S.useCallback(()=>{const w=window.open("","_blank");if(!w)return;w.opener=null,w.document.title=e.name,w.document.body.style.margin="0";const ae=w.document.createElement("iframe");ae.title=e.name,ae.sandbox.add("allow-forms","allow-modals","allow-popups","allow-scripts"),ae.style.cssText="position:fixed;inset:0;width:100%;height:100%;border:0;background:white",ae.srcdoc=y,w.document.body.appendChild(ae)},[y,e.name]),me=S.useMemo(()=>ko({file:e,showDiff:O,minimapEnabled:Q,isDarkMode:g}),[e,g,Q,O]),B=S.useMemo(()=>Po({file:e,showDiff:O}),[e,O]),ue=S.useMemo(()=>Ro({file:e,showDiff:O,isSidebar:i,isExpanded:o,onToggleDiff:()=>f(w=>!w),onPopOut:s,onToggleExpand:r,labels:{changes:a("toolbar.changes"),previousChange:a("toolbar.previousChange"),nextChange:a("toolbar.nextChange"),hideDiff:a("toolbar.hideDiff"),showDiff:a("toolbar.showDiff"),collapse:a("toolbar.collapse"),expand:a("toolbar.expand")}}),[e,o,i,s,r,O,a]),yn=S.useMemo(()=>{const w=[...wo(e.name),...ue];return e.diffInfo&&O&&e.diffInfo.old_string!==void 0&&(w.push(Wr({original:e.diffInfo.old_string,mergeControls:!1,highlightChanges:!0,syntaxHighlightDeletions:!1,gutter:!0})),w.push(...me),w.push(...B)),p&&w.push(U.lineWrapping),w},[e.diffInfo,e.name,me,B,O,ue,p]);if(Zr({onSave:E,onClose:t,dependency:y}),v)return h.jsx(_o,{isDarkMode:g,isSidebar:i,loadingText:a("loading",{fileName:e.name})});if(z)return h.jsx(Go,{file:e,kind:z,projectId:W,isSidebar:i,isFullscreen:c,onClose:t,onToggleFullscreen:()=>l(w=>!w),labels:{loading:a("filePreview.loading","Loading preview..."),error:a("filePreview.error","Unable to display this file."),openInNewTab:a("filePreview.openInNewTab","Open in new tab"),fullscreen:a("actions.fullscreen","Fullscreen"),exitFullscreen:a("actions.exitFullscreen","Exit fullscreen"),close:a("actions.close","Close")}});if(R)return h.jsx(Eo,{file:e,isSidebar:i,isFullscreen:c,onClose:t,onToggleFullscreen:()=>l(w=>!w),title:a("binaryFile.title","Binary File"),message:a("binaryFile.message",'The file "{{fileName}}" cannot be displayed in the text editor because it is a binary file.',{fileName:e.name})});const bn=i?"w-full h-full flex flex-col":`fixed inset-0 z-[9999] md:bg-black/50 md:flex md:items-center md:justify-center md:p-4 ${c?"md:p-0":""}`,wn=i?"bg-background flex flex-col w-full h-full":`bg-background shadow-2xl flex flex-col w-full h-full md:rounded-lg md:shadow-2xl${c?" md:w-full md:h-full md:rounded-none":" md:w-full md:max-w-6xl md:h-[80vh] md:max-h-[80vh]"}`;return h.jsxs(h.Fragment,{children:[h.jsx("style",{children:qo(g)}),h.jsx("div",{className:bn,children:h.jsxs("div",{className:wn,children:[h.jsx(zo,{file:e,isSidebar:i,isFullscreen:c,isMarkdownFile:_,isHtmlPreviewFile:fe,markdownPreview:m,saving:T,saveSuccess:b,onToggleMarkdownPreview:()=>u(w=>!w),onOpenHtmlPreview:Pe,onOpenSettings:()=>d.openSettings("appearance"),onDownload:oe,onSave:E,onToggleFullscreen:()=>l(w=>!w),onClose:t,labels:{showingChanges:a("header.showingChanges"),copyPath:a("actions.copyPath","Copy file path"),pathCopied:a("actions.pathCopied","File path copied"),editMarkdown:a("actions.editMarkdown"),previewMarkdown:a("actions.previewMarkdown"),previewHtml:a("actions.previewHtml","Open HTML preview in new tab"),settings:a("toolbar.settings"),download:a("actions.download"),save:a("actions.save"),saving:a("actions.saving"),saved:a("actions.saved"),fullscreen:a("actions.fullscreen"),exitFullscreen:a("actions.exitFullscreen"),close:a("actions.close")}}),V&&h.jsx("div",{className:"border-b border-red-200 bg-red-50 px-3 py-1.5 text-xs text-red-700 dark:border-red-900/40 dark:bg-red-900/20 dark:text-red-300",children:V}),h.jsx("div",{className:"flex-1 overflow-hidden",children:h.jsx(Co,{content:y,onChange:P,markdownPreview:m,isMarkdownFile:_,isDarkMode:g,fontSize:$,showLineNumbers:k,extensions:yn})}),h.jsx(Xo,{content:y,linesLabel:a("footer.lines"),charactersLabel:a("footer.characters"),shortcutsLabel:a("footer.shortcuts")})]})})]})}export{Yo as default};