farming-code 2.2.6

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 (453) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +287 -0
  3. package/README.zh_cn.md +329 -0
  4. package/SECURITY.md +29 -0
  5. package/THIRD_PARTY_NOTICES.md +106 -0
  6. package/backend/acp/client-services.js +312 -0
  7. package/backend/acp/patch-decisions.js +137 -0
  8. package/backend/acp/permission-security.js +108 -0
  9. package/backend/acp-runtime.js +1144 -0
  10. package/backend/acp-session-state.js +448 -0
  11. package/backend/acp-transcript.js +169 -0
  12. package/backend/agent-activity.js +186 -0
  13. package/backend/agent-env.js +250 -0
  14. package/backend/agent-json-stream.js +268 -0
  15. package/backend/agent-manager.js +4259 -0
  16. package/backend/agent-memory-report.js +583 -0
  17. package/backend/agent-order.js +162 -0
  18. package/backend/agent-provider-session.js +287 -0
  19. package/backend/agent-session-history.js +888 -0
  20. package/backend/app-server-api.js +917 -0
  21. package/backend/async-cache.js +94 -0
  22. package/backend/auth.js +178 -0
  23. package/backend/claude-settings.js +121 -0
  24. package/backend/cli-agents.js +484 -0
  25. package/backend/codex-app-server-home.js +39 -0
  26. package/backend/codex-app-server-runtime.js +901 -0
  27. package/backend/codex-context-window.js +189 -0
  28. package/backend/codex-models.js +229 -0
  29. package/backend/codex-rollout-follower.js +243 -0
  30. package/backend/codex-session-history.js +553 -0
  31. package/backend/codex-transcript-sanitizer.js +103 -0
  32. package/backend/codex-transcript.js +2341 -0
  33. package/backend/command-runner-child.js +67 -0
  34. package/backend/config-manager.js +815 -0
  35. package/backend/control-api.js +151 -0
  36. package/backend/data/chinese-poetic-words.json +8223 -0
  37. package/backend/data/poetic-word-sources/china.json +49209 -0
  38. package/backend/data/poetic-word-sources/india.json +9763 -0
  39. package/backend/data/poetic-word-sources/japan.json +8455 -0
  40. package/backend/executable-discovery.js +207 -0
  41. package/backend/farming-app-cli.js +790 -0
  42. package/backend/farming-cli.js +400 -0
  43. package/backend/farming-session-store.js +373 -0
  44. package/backend/haiku-token.js +772 -0
  45. package/backend/index-html.js +49 -0
  46. package/backend/input-parts.js +54 -0
  47. package/backend/input-routing.js +24 -0
  48. package/backend/json-cli-runtime.js +161 -0
  49. package/backend/local-session-engine.js +620 -0
  50. package/backend/main-agent-skills.js +292 -0
  51. package/backend/main-page-session.js +119 -0
  52. package/backend/native-pty-host-client.js +516 -0
  53. package/backend/native-pty-host-path.js +22 -0
  54. package/backend/native-pty-host.js +816 -0
  55. package/backend/native-session-engine.js +196 -0
  56. package/backend/network.js +23 -0
  57. package/backend/npm-update-helper.js +196 -0
  58. package/backend/packaged-node-pty.js +79 -0
  59. package/backend/provider-session-id.js +47 -0
  60. package/backend/qr-share-tickets.js +100 -0
  61. package/backend/review-diff-router.js +180 -0
  62. package/backend/review-diff-service.js +1270 -0
  63. package/backend/review-session-router.js +74 -0
  64. package/backend/review-session-service.js +432 -0
  65. package/backend/review-session-store.js +144 -0
  66. package/backend/review-state-router.js +116 -0
  67. package/backend/review-state-store.js +287 -0
  68. package/backend/run-history-store.js +70 -0
  69. package/backend/server.js +2446 -0
  70. package/backend/session-engine-bridge.js +110 -0
  71. package/backend/session-engine-router.js +66 -0
  72. package/backend/session-engine.js +39 -0
  73. package/backend/shell-busy-integration.js +472 -0
  74. package/backend/slash-command-discovery.js +296 -0
  75. package/backend/storage-layout.js +101 -0
  76. package/backend/system-monitor.js +77 -0
  77. package/backend/terminal-runtime-cleanup.js +80 -0
  78. package/backend/terminal-screen-state.js +240 -0
  79. package/backend/terminal-screen-worker-pool.js +165 -0
  80. package/backend/terminal-screen-worker-thread.js +161 -0
  81. package/backend/terminal-screen-worker.js +255 -0
  82. package/backend/terminal-status.js +356 -0
  83. package/backend/theme-manager.js +145 -0
  84. package/backend/update-service.js +1183 -0
  85. package/backend/usage-forecast.js +86 -0
  86. package/backend/usage-monitor.js +1357 -0
  87. package/backend/workspace-discovery.js +311 -0
  88. package/backend/workspace-file-router.js +431 -0
  89. package/backend/workspace-file-service.js +2765 -0
  90. package/bin/farming +5 -0
  91. package/config/farming.deploy.env.example +13 -0
  92. package/config/farming.install.env.example +17 -0
  93. package/dist/assets/App-BrP-ENHg.css +1 -0
  94. package/dist/assets/App-Dza5yEDe.js +124 -0
  95. package/dist/assets/FileEditorMarkdownPreview-DRDNQ8mX.css +1 -0
  96. package/dist/assets/FileEditorMarkdownPreview-elKWc8Im.js +404 -0
  97. package/dist/assets/FileEditorPane-BQLocXOp.js +5 -0
  98. package/dist/assets/IconGlyphs-RkMAdBXF.js +1 -0
  99. package/dist/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
  100. package/dist/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
  101. package/dist/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
  102. package/dist/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
  103. package/dist/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
  104. package/dist/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
  105. package/dist/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
  106. package/dist/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
  107. package/dist/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
  108. package/dist/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
  109. package/dist/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
  110. package/dist/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
  111. package/dist/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
  112. package/dist/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
  113. package/dist/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
  114. package/dist/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
  115. package/dist/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
  116. package/dist/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
  117. package/dist/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
  118. package/dist/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
  119. package/dist/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
  120. package/dist/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
  121. package/dist/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
  122. package/dist/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
  123. package/dist/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
  124. package/dist/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
  125. package/dist/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
  126. package/dist/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
  127. package/dist/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
  128. package/dist/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
  129. package/dist/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
  130. package/dist/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
  131. package/dist/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
  132. package/dist/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
  133. package/dist/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
  134. package/dist/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
  135. package/dist/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
  136. package/dist/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
  137. package/dist/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
  138. package/dist/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
  139. package/dist/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
  140. package/dist/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
  141. package/dist/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
  142. package/dist/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
  143. package/dist/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
  144. package/dist/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
  145. package/dist/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
  146. package/dist/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
  147. package/dist/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
  148. package/dist/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
  149. package/dist/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
  150. package/dist/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
  151. package/dist/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
  152. package/dist/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
  153. package/dist/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
  154. package/dist/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
  155. package/dist/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
  156. package/dist/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
  157. package/dist/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
  158. package/dist/assets/ProjectFilesSection-lS1azbgj.js +12 -0
  159. package/dist/assets/ReviewPage-DgnmgU2T.js +3 -0
  160. package/dist/assets/abap-Cc5D5h5i.js +1 -0
  161. package/dist/assets/abnfDiagram-VRR7QNED-BgawzDQT.js +1 -0
  162. package/dist/assets/apex-BKopwLmx.js +1 -0
  163. package/dist/assets/api-D1lyBYIQ.js +1 -0
  164. package/dist/assets/arc-CWoVlxJw.js +1 -0
  165. package/dist/assets/architecture-TIHT7OUA-CbJBFh3w.js +1 -0
  166. package/dist/assets/architectureDiagram-ZJ3FMSHR-DUShwPg0.js +36 -0
  167. package/dist/assets/array-HeX70jSN.js +1 -0
  168. package/dist/assets/azcli-DI-C34WA.js +1 -0
  169. package/dist/assets/bat-Cbp6u42z.js +1 -0
  170. package/dist/assets/bicep-4QA1jTCM.js +2 -0
  171. package/dist/assets/blockDiagram-677ZJIJ3-CeGZviXR.js +132 -0
  172. package/dist/assets/c4Diagram-LMCZKHZV-CLhYht6S.js +10 -0
  173. package/dist/assets/cameligo-Dda_adPs.js +1 -0
  174. package/dist/assets/channel-Uw90AO0b.js +1 -0
  175. package/dist/assets/chunk-2Q5K7J3B-d5WWh8jo.js +1 -0
  176. package/dist/assets/chunk-32BRIVSS-LFYpT-Cu.js +1 -0
  177. package/dist/assets/chunk-52WLFC77-BH6jDw9J.js +10 -0
  178. package/dist/assets/chunk-5FCAYU7R-C7AmIhYv.js +1 -0
  179. package/dist/assets/chunk-5HE753X5-C8cXaouP.js +1 -0
  180. package/dist/assets/chunk-5JV3BV7I-C1PtimcA.js +1 -0
  181. package/dist/assets/chunk-5TONJI2A-_81zUME8.js +2 -0
  182. package/dist/assets/chunk-5VM5RSS4-Dlw7AXWp.js +15 -0
  183. package/dist/assets/chunk-7BUUIJ7U-ZBRhjLOh.js +1 -0
  184. package/dist/assets/chunk-BIQX33UG-CWmzxeAw.js +1 -0
  185. package/dist/assets/chunk-C7G6YPKG-B_mIUlb7.js +1 -0
  186. package/dist/assets/chunk-CQNSW5MT-CMayolwI.js +1 -0
  187. package/dist/assets/chunk-CYSBUYHQ-lSPbrL3Z.js +1 -0
  188. package/dist/assets/chunk-DECur_0Z.js +1 -0
  189. package/dist/assets/chunk-EMLP6XTP-D9-jtCnM.js +1 -0
  190. package/dist/assets/chunk-EX3LRPZG-C63hVuAJ.js +231 -0
  191. package/dist/assets/chunk-FWX5IMBZ-CboX-WF_.js +2 -0
  192. package/dist/assets/chunk-HOUHSVGY-BOgSd6Un.js +1 -0
  193. package/dist/assets/chunk-ICXQ74PX-C0K-pgZt.js +2 -0
  194. package/dist/assets/chunk-JG7HCLWE-Cib606u_.js +2 -0
  195. package/dist/assets/chunk-JWPE2WC7-DSyBRaRG.js +1 -0
  196. package/dist/assets/chunk-KEIR6QF5-CNOHik0T.js +161 -0
  197. package/dist/assets/chunk-MOJQB5TN-CVMfwN_7.js +88 -0
  198. package/dist/assets/chunk-MOZMSUNE-D6JeZqmE.js +1 -0
  199. package/dist/assets/chunk-OGEWGWER-DLT3pxyw.js +1 -0
  200. package/dist/assets/chunk-OSBZ3O6U-C0W8KSeg.js +1 -0
  201. package/dist/assets/chunk-PUDLZKDR-Cd079yIQ.js +156 -0
  202. package/dist/assets/chunk-Q4XR5HBZ-D0jHa6SO.js +70 -0
  203. package/dist/assets/chunk-QBLGF6JB-p4omp7uO.js +1 -0
  204. package/dist/assets/chunk-R7FJI6CG-CZ_p9hSr.js +1 -0
  205. package/dist/assets/chunk-RYQCIY6F-CZA9pvFX.js +1 -0
  206. package/dist/assets/chunk-U6XO7XAA-CcXKsWxp.js +2 -0
  207. package/dist/assets/chunk-V7JOEXUC-CVDtR75H.js +206 -0
  208. package/dist/assets/chunk-VAUOI2AC-B-W2_9Ot.js +1 -0
  209. package/dist/assets/chunk-VR4S4FIN-FD3kWh32.js +1 -0
  210. package/dist/assets/chunk-WYO6CB5R-C2bGaS5r.js +127 -0
  211. package/dist/assets/chunk-XXDRQBXY-BBXwjhUx.js +1 -0
  212. package/dist/assets/chunk-Y2CYZVJY-Di0sYzi1.js +1 -0
  213. package/dist/assets/chunk-YOTPTUD7-BXHmEk89.js +1 -0
  214. package/dist/assets/chunk-ZGVPDNZ5-ymgts0zo.js +62 -0
  215. package/dist/assets/chunk-ZIRB5QZD-DncwlQQc.js +32 -0
  216. package/dist/assets/classDiagram-OUVF2IWQ-DKW_dtku.js +1 -0
  217. package/dist/assets/classDiagram-v2-EOCWNBFH-C8Fi7-yv.js +1 -0
  218. package/dist/assets/clojure-CvY8A83L.js +1 -0
  219. package/dist/assets/code-dark-Cjb1QGhu.css +1 -0
  220. package/dist/assets/code-mobile-3C2Rr-CN.css +1 -0
  221. package/dist/assets/codicon-ngg6Pgfi.ttf +0 -0
  222. package/dist/assets/coffee-4LX2Sv8A.js +1 -0
  223. package/dist/assets/core-ZlAPicox.js +3 -0
  224. package/dist/assets/cose-bilkent-JH36ORCC-BNIAz0nN.js +1 -0
  225. package/dist/assets/cpp-D4AzSV28.js +1 -0
  226. package/dist/assets/csharp-C4nWN4Yd.js +1 -0
  227. package/dist/assets/csp-CiEaaS5Z.js +1 -0
  228. package/dist/assets/css-DXxBRsbk.js +3 -0
  229. package/dist/assets/css.worker-DyDu5ynT.js +89 -0
  230. package/dist/assets/cssMode-DDWxTPm_.js +1 -0
  231. package/dist/assets/cynefin-VYW2F7L2-DgXGHlRt.js +1 -0
  232. package/dist/assets/cynefinDiagram-TSTJHNR4-CwpobXIl.js +62 -0
  233. package/dist/assets/cypher-DOMzqyFA.js +1 -0
  234. package/dist/assets/cytoscape.esm-Cl8iC3D7.js +321 -0
  235. package/dist/assets/dagre-DXlcHgr3.js +1 -0
  236. package/dist/assets/dagre-VKFMJZFB-Dkhlfjna.js +4 -0
  237. package/dist/assets/dart-BWS7MXt_.js +1 -0
  238. package/dist/assets/defaultLocale-GJwWH1Jr.js +1 -0
  239. package/dist/assets/diagram-FQU43EPY-hA8dicp6.js +3 -0
  240. package/dist/assets/diagram-G47NLZAW-BTY6JTzO.js +24 -0
  241. package/dist/assets/diagram-NH7WQ7WH-xkaHHX9M.js +24 -0
  242. package/dist/assets/diagram-OA4YK3LP-gk_fg9UU.js +30 -0
  243. package/dist/assets/diagram-WEI45ONY-BvC8xd6T.js +41 -0
  244. package/dist/assets/dist-ClAL-Tv5.js +1 -0
  245. package/dist/assets/dockerfile-Baf4U3xT.js +1 -0
  246. package/dist/assets/ebnfDiagram-CCIWWBDH-CR7RaNat.js +1 -0
  247. package/dist/assets/ecl-CT7udlkQ.js +1 -0
  248. package/dist/assets/editor-CtbFZlk0.css +1 -0
  249. package/dist/assets/editor.api2-B9h6iFPK.js +872 -0
  250. package/dist/assets/editor.worker-Dpt_xPrs.js +26 -0
  251. package/dist/assets/elixir-CIbAZw5l.js +1 -0
  252. package/dist/assets/erDiagram-Q63AITRT-_M-JFPbj.js +85 -0
  253. package/dist/assets/eventmodeling-45OFAUF4-DXYTQ2nt.js +1 -0
  254. package/dist/assets/file-icons-EFUGSSwf.js +1 -0
  255. package/dist/assets/flow9-Dqiw45WV.js +1 -0
  256. package/dist/assets/flowDiagram-23GEKE2U-DAiS5Y7G.js +1 -0
  257. package/dist/assets/freemarker2-QBsTERH-.js +3 -0
  258. package/dist/assets/fsharp-E8E2L9jU.js +1 -0
  259. package/dist/assets/ganttDiagram-NO4QXBWP-Bl8P1yf_.js +292 -0
  260. package/dist/assets/gitGraph-TEB2WS4Q-CzTBjEvV.js +1 -0
  261. package/dist/assets/gitGraphDiagram-IHSO6WYX-DoHa5ysz.js +106 -0
  262. package/dist/assets/go-CouVSN4D.js +1 -0
  263. package/dist/assets/graphlib-CbSvZcZU.js +1 -0
  264. package/dist/assets/graphql-a6h6h5-t.js +1 -0
  265. package/dist/assets/handlebars-CuoxPo5A.js +1 -0
  266. package/dist/assets/hcl-vso3e6N-.js +1 -0
  267. package/dist/assets/html-gX5PEu0Q.js +1 -0
  268. package/dist/assets/html.worker-IWNXhnIC.js +502 -0
  269. package/dist/assets/htmlMode-DIWUbUxd.js +1 -0
  270. package/dist/assets/index-BpHPeJf0.js +10 -0
  271. package/dist/assets/info-DKCQHKI2-DznP7j3s.js +1 -0
  272. package/dist/assets/infoDiagram-FWYZ7A6U-DSFcSuUs.js +2 -0
  273. package/dist/assets/ini-SwZZkotR.js +1 -0
  274. package/dist/assets/init-BPLPMQ3Y.js +1 -0
  275. package/dist/assets/ishikawaDiagram-FXEZZL3T-DdkqullI.js +70 -0
  276. package/dist/assets/java-CtRLC4_3.js +1 -0
  277. package/dist/assets/javascript-BYKGIUGs.js +1 -0
  278. package/dist/assets/journeyDiagram-5HDEW3XC-B4hRnQJr.js +139 -0
  279. package/dist/assets/json.worker-c4h5s80L.js +58 -0
  280. package/dist/assets/jsonMode-AFmQQP6u.js +7 -0
  281. package/dist/assets/jsx-runtime-BthL93pI.js +1 -0
  282. package/dist/assets/julia-CuJWFKQH.js +1 -0
  283. package/dist/assets/kanban-definition-HUTT4EX6-tm2FZB2E.js +89 -0
  284. package/dist/assets/katex-C8DPyI6s.js +257 -0
  285. package/dist/assets/kotlin-B_kBhsre.js +1 -0
  286. package/dist/assets/less-CtrHIfz3.js +2 -0
  287. package/dist/assets/lexon-yVt1pJLu.js +1 -0
  288. package/dist/assets/line-CmsjK4kn.js +1 -0
  289. package/dist/assets/linear-Dld3_ERu.js +1 -0
  290. package/dist/assets/liquid-DBIl-f0z.js +1 -0
  291. package/dist/assets/lspLanguageFeatures-DK6tqicV.js +4 -0
  292. package/dist/assets/lua-prOwgJ4U.js +1 -0
  293. package/dist/assets/m3-DhrdTQ84.js +1 -0
  294. package/dist/assets/main-DTJwH51M.css +1 -0
  295. package/dist/assets/map-LZWWoeWa.js +1 -0
  296. package/dist/assets/markdown-DoI5HwSM.js +1 -0
  297. package/dist/assets/mdx-DS-bVtZN.js +1 -0
  298. package/dist/assets/mermaid-parser.core-BQtepoLd.js +4 -0
  299. package/dist/assets/mermaid.core-C7UT_EEL.js +11 -0
  300. package/dist/assets/mindmap-definition-LN4V7U3C-DplfjGms.js +96 -0
  301. package/dist/assets/mips-Dye5jsBU.js +1 -0
  302. package/dist/assets/monaco.contribution-CyLosfZI.js +2 -0
  303. package/dist/assets/msdax-TkNOyIL8.js +1 -0
  304. package/dist/assets/mysql-CEc-RKZF.js +1 -0
  305. package/dist/assets/objective-c-CqqCsQz0.js +1 -0
  306. package/dist/assets/ordinal-BLrOss5K.js +1 -0
  307. package/dist/assets/packet-7NZHBO7P-BDEPOPha.js +1 -0
  308. package/dist/assets/pascal-DO_pj8yg.js +1 -0
  309. package/dist/assets/pascaligo-1cbdZdF3.js +1 -0
  310. package/dist/assets/path-YdFzr2W6.js +1 -0
  311. package/dist/assets/pegDiagram-2B236MQR-lu3SdkQs.js +1 -0
  312. package/dist/assets/perl-B_N3PYfC.js +1 -0
  313. package/dist/assets/pgsql-9iYk1FQ7.js +1 -0
  314. package/dist/assets/php-rO2sgoUM.js +1 -0
  315. package/dist/assets/pie-RZYD4A2V-DWIrwPJQ.js +1 -0
  316. package/dist/assets/pieDiagram-ENE6RG2P-3fHbmDf9.js +39 -0
  317. package/dist/assets/pla-Cbgv60kq.js +1 -0
  318. package/dist/assets/postiats-y6xrhy_M.js +1 -0
  319. package/dist/assets/powerquery-BaD8gWNE.js +1 -0
  320. package/dist/assets/powershell-BMhG4JVe.js +1 -0
  321. package/dist/assets/preload-helper-mJowh_hw.js +1 -0
  322. package/dist/assets/protobuf-CdOP5kN3.js +2 -0
  323. package/dist/assets/pug-Ck60hNF9.js +1 -0
  324. package/dist/assets/python-C93q3xXz.js +1 -0
  325. package/dist/assets/qoder-C9LmmOSf.svg +1 -0
  326. package/dist/assets/qoder-Cf9gl0Y5.svg +1 -0
  327. package/dist/assets/qoder-gHCinseV.svg +1 -0
  328. package/dist/assets/qrcode-DV-_rjU8.js +3 -0
  329. package/dist/assets/qsharp-BcaKFfP-.js +1 -0
  330. package/dist/assets/quadrantDiagram-ABIIQ3AL-a5qoWz-X.js +7 -0
  331. package/dist/assets/r-rFNes0iK.js +1 -0
  332. package/dist/assets/radar-I7S5WNFK-B7OaD8vp.js +1 -0
  333. package/dist/assets/railroad-3IZDKUUU-BXW2nuCA.js +1 -0
  334. package/dist/assets/railroad-abnf-AHOZXSZD-Buw9QG2r.js +1 -0
  335. package/dist/assets/railroad-ebnf-EBAXGLYW-BjSi4sWJ.js +1 -0
  336. package/dist/assets/railroad-peg-LSFZ7HO6-DN1wIVhS.js +1 -0
  337. package/dist/assets/railroadDiagram-RFXS5EU6-D2TOuXW9.js +1 -0
  338. package/dist/assets/razor-CBifNGXO.js +1 -0
  339. package/dist/assets/react-dom-gtU6X-Hj.js +1 -0
  340. package/dist/assets/redis-DkpQ3K6G.js +1 -0
  341. package/dist/assets/redshift-Di9N5TI3.js +1 -0
  342. package/dist/assets/requirementDiagram-TGXJPOKE-LQBWpUvd.js +84 -0
  343. package/dist/assets/restructuredtext-By5ZzLt6.js +1 -0
  344. package/dist/assets/review-BcnwQtJv.css +1 -0
  345. package/dist/assets/rough.esm-c4PR5shF.js +1 -0
  346. package/dist/assets/ruby-fF5zGiLp.js +1 -0
  347. package/dist/assets/rust-C5b3AYY6.js +1 -0
  348. package/dist/assets/sankeyDiagram-HTMAVEWB-B1ohYoyK.js +40 -0
  349. package/dist/assets/sb-CD07UNRs.js +1 -0
  350. package/dist/assets/scala-jtn1ip9G.js +1 -0
  351. package/dist/assets/scheme-C4vqMkn_.js +1 -0
  352. package/dist/assets/scss-I4Glxjbz.js +3 -0
  353. package/dist/assets/sequenceDiagram-DBY2YBRQ-C3vM-hMq.js +162 -0
  354. package/dist/assets/shell-DubUcuns.js +1 -0
  355. package/dist/assets/sizeCapture-X5ZJPWSS-daTB6OcF.js +1 -0
  356. package/dist/assets/solidity-CNy2KSl2.js +1 -0
  357. package/dist/assets/sophia-D9_URt84.js +1 -0
  358. package/dist/assets/sparql-DviXpm4C.js +1 -0
  359. package/dist/assets/sql-vDRbAZgK.js +1 -0
  360. package/dist/assets/src-WBW1QxJt.js +1 -0
  361. package/dist/assets/st-CnpnRqA7.js +1 -0
  362. package/dist/assets/stateDiagram-2N3HPSRC-BvFhOryI.js +1 -0
  363. package/dist/assets/stateDiagram-v2-6OUMAXLB-WMrz4PNo.js +1 -0
  364. package/dist/assets/swift-D_g8Ganz.js +1 -0
  365. package/dist/assets/swimlanes-5IMT3BWC-DKF_b-2s.js +2 -0
  366. package/dist/assets/swimlanesDiagram-G3AALYLV-BGswC9oC.js +8 -0
  367. package/dist/assets/systemverilog-OuZa5h1M.js +1 -0
  368. package/dist/assets/tcl-DBm9ucsV.js +1 -0
  369. package/dist/assets/timeline-definition-FHXFAJF6-vAs11ux_.js +120 -0
  370. package/dist/assets/tokens-BwenNn5Q.css +1 -0
  371. package/dist/assets/treeView-QDETBFTQ-BVfICaZQ.js +1 -0
  372. package/dist/assets/treemap-6X3UGDF4-oWHPqo17.js +1 -0
  373. package/dist/assets/ts.worker-BwM5Ha3L.js +67719 -0
  374. package/dist/assets/tsMode-DGZTlTj8.js +11 -0
  375. package/dist/assets/twig-BRzEqX5Y.js +1 -0
  376. package/dist/assets/typescript-KJKfYO7K.js +1 -0
  377. package/dist/assets/typespec-D4ZgGeX8.js +1 -0
  378. package/dist/assets/useWorkspaceMenuKeyboard-CneKAZUJ.js +1 -0
  379. package/dist/assets/vb-DcP4s6WS.js +1 -0
  380. package/dist/assets/vennDiagram-L72KCM5P-BybTX_9B.js +34 -0
  381. package/dist/assets/wardley-OPB4EBWU-Dg8t5y3s.js +1 -0
  382. package/dist/assets/wardleyDiagram-EHGQE667-CicUmMBR.js +78 -0
  383. package/dist/assets/wgsl-CnRJ_QUf.js +298 -0
  384. package/dist/assets/workers-BSQRIkqa.js +1 -0
  385. package/dist/assets/workspace-view-state-CTyDzk2D.js +1 -0
  386. package/dist/assets/xml-C8FAcN6j.js +1 -0
  387. package/dist/assets/xychartDiagram-FW5EYKEG-BhWDyCX-.js +7 -0
  388. package/dist/assets/yaml-BQ4NrRhG.js +1 -0
  389. package/dist/assets/zsh-CLpveKlF.svg +1 -0
  390. package/dist/assets/zsh-FxSpMPbz.svg +1 -0
  391. package/dist/farming-2/app-icon-v2-180.png +0 -0
  392. package/dist/farming-2/app-icon-v2-192.png +0 -0
  393. package/dist/farming-2/app-icon-v2-512.png +0 -0
  394. package/dist/farming-2/app-icon-v2-maskable-512.png +0 -0
  395. package/dist/farming-2/app-icon-v2-master.png +0 -0
  396. package/dist/farming-2/favicon-v2-16.png +0 -0
  397. package/dist/farming-2/favicon-v2-32.png +0 -0
  398. package/dist/farming-2/favicon-v2-48.png +0 -0
  399. package/dist/farming-2/favicon-v2-64.png +0 -0
  400. package/dist/farming-2/favicon-v2.ico +0 -0
  401. package/dist/farming-2/favicon.ico +0 -0
  402. package/dist/farming-2/github-social-preview.png +0 -0
  403. package/dist/farming-2/images/avatar-watercolor-v1-bee-garden.png +0 -0
  404. package/dist/farming-2/images/avatar-watercolor-v2.png +0 -0
  405. package/dist/farming-2/images/avatar-watercolor-v3.png +0 -0
  406. package/dist/farming-2/legacy-icons-v1/favicon.ico +1 -0
  407. package/dist/farming-2/legacy-icons-v1/logo-16.png +0 -0
  408. package/dist/farming-2/legacy-icons-v1/logo-180.png +0 -0
  409. package/dist/farming-2/legacy-icons-v1/logo-192.png +0 -0
  410. package/dist/farming-2/legacy-icons-v1/logo-32.png +0 -0
  411. package/dist/farming-2/legacy-icons-v1/logo-48.png +0 -0
  412. package/dist/farming-2/legacy-icons-v1/logo-512.png +0 -0
  413. package/dist/farming-2/legacy-icons-v1/logo-64.png +0 -0
  414. package/dist/farming-2/logo-16.png +0 -0
  415. package/dist/farming-2/logo-180.png +0 -0
  416. package/dist/farming-2/logo-192.png +0 -0
  417. package/dist/farming-2/logo-32.png +0 -0
  418. package/dist/farming-2/logo-48.png +0 -0
  419. package/dist/farming-2/logo-512.png +0 -0
  420. package/dist/farming-2/logo-64.png +0 -0
  421. package/dist/farming-2/site.webmanifest +27 -0
  422. package/dist/farming-2/style_capsules/watercolor-pastoral.json +94 -0
  423. package/dist/index.html +27 -0
  424. package/frontend/ghostty-loader.js +24 -0
  425. package/frontend/runtime-paths.js +28 -0
  426. package/frontend/session-bridge.js +82 -0
  427. package/frontend/session-modal-bridge.js +331 -0
  428. package/frontend/skin-bridge.js +25 -0
  429. package/frontend/skins/crt/app.js +6940 -0
  430. package/frontend/skins/crt/assets/branding/farming-crt-icon.svg +11 -0
  431. package/frontend/skins/crt/assets/branding/farming-crt-logo-v1.png +0 -0
  432. package/frontend/skins/crt/assets/effects/phosphor-noise.svg +11 -0
  433. package/frontend/skins/crt/assets/fonts/departure-mono/DepartureMonoNerdFontMono-Regular.otf +0 -0
  434. package/frontend/skins/crt/assets/fonts/departure-mono/LICENSE +93 -0
  435. package/frontend/skins/crt/effects.js +8 -0
  436. package/frontend/skins/crt/index.html +1712 -0
  437. package/frontend/skins/crt/styles/billing.css +1003 -0
  438. package/frontend/skins/crt/styles/effects.css +171 -0
  439. package/frontend/skins/crt/styles/history.css +215 -0
  440. package/frontend/skins/crt/styles/monochrome-green.css +509 -0
  441. package/frontend/skins/crt/styles/search.css +271 -0
  442. package/frontend/terminal-bridge.js +192 -0
  443. package/frontend/theme-loader.js +84 -0
  444. package/frontend/themes/terminal/theme.json +24 -0
  445. package/frontend/vendor/ghostty-web/LICENSE +21 -0
  446. package/frontend/vendor/ghostty-web/__vite-browser-external-2447137e.js +4 -0
  447. package/frontend/vendor/ghostty-web/ghostty-vt.wasm +0 -0
  448. package/frontend/vendor/ghostty-web/ghostty-web.js +2963 -0
  449. package/frontend/vendor/ghostty-web/ghostty-web.umd.cjs +13 -0
  450. package/frontend/vendor/ghostty-web/index.d.ts +1842 -0
  451. package/index.html +23 -0
  452. package/package.json +144 -0
  453. package/scripts/sync-ghostty-vendor.js +66 -0
@@ -0,0 +1 @@
1
+ .review-body{color:#424840;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-synthesis:none;background:#fff;border:0;min-width:320px;height:100vh;margin:0;font-family:Roboto,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;overflow:auto;text-shadow:none!important}.review-body:before,.review-body:after{content:none!important;display:none!important}.review-body *{box-sizing:border-box;text-shadow:none!important}.review-root{background:#fff;min-height:100vh}.review-root button{font:inherit;border:0}.review-files{background:#fff;min-height:100vh}.review-files-toolbar{background:#fff;border-bottom:1px solid #dce1e5;justify-content:space-between;align-items:center;gap:16px;min-height:43px;padding:0 16px;display:flex;position:relative}.review-patch-info,.review-files-actions{align-items:center;gap:10px;min-width:0;display:inline-flex}.review-patch-info{color:#5f6368;white-space:nowrap;font-size:13px}.review-patch-info strong{color:#202124;font-size:16px;font-weight:600}.review-patch-info select{appearance:none;color:#6a7279;cursor:pointer;min-width:0;font:inherit;background:linear-gradient(45deg,#0000 50%,#7a8188 50%) calc(100% - 7px)/5px 5px no-repeat,linear-gradient(135deg,#7a8188 50%,#0000 50%) calc(100% - 3px)/5px 5px no-repeat;border:0;border-radius:2px;padding:3px 18px 3px 3px}.review-patch-info select:hover{color:#31383f;background-color:#f5f6f7}.review-patch-info>svg{fill:#87909a;width:15px;height:15px}.review-patch-static{color:#65717c;align-items:center;min-height:28px;font-size:12px;display:inline-flex}.review-commit{color:#356cba;cursor:pointer;background:0 0;align-items:center;gap:4px;padding:3px;font-size:13px;display:inline-flex}.review-commit:hover{text-decoration:underline}.review-commit svg{fill:currentColor;width:13px;height:13px}.review-rebase{cursor:pointer;align-items:center;gap:3px;min-height:24px;padding:0 8px;font-size:12px;display:inline-flex;color:#4e555d!important;background:#f3f4f5!important;border:1px solid #d8dce0!important;border-radius:12px!important}.review-rebase svg{fill:currentColor;width:13px;height:13px}.review-files-actions{color:#7b8078;font-size:11px}.review-review-error{z-index:8;color:#a34e47;background:#fff;border:1px solid #e0b7b1;border-radius:3px;max-width:min(420px,100vw - 32px);padding:7px 10px;font-size:12px;position:absolute;top:calc(100% + 6px);right:16px;box-shadow:0 5px 16px #242a301f}.review-files-actions button{color:#356cba;cursor:pointer;background:0 0;border:0;border-radius:2px;min-height:24px;padding:0 5px;font-size:12px}.review-files-actions button:hover,.review-files-actions button.active{color:#1d5fa7;background:#356cba14}.review-files-actions button:disabled{color:#a1a7ad;cursor:default}.review-revision-label{color:#7b838b;white-space:nowrap;padding-left:4px;font-size:11px}.review-toolbar-separator{background:#dce1e5;width:1px;height:20px}.review-files-actions .review-icon-action{background:0 0;border-color:#0000;place-items:center;width:26px;min-height:26px;padding:0;display:grid}.review-files-actions .review-icon-action svg{fill:currentColor;width:18px;height:18px}.review-files-actions .review-icon-action.active{color:#356c9d}.review-included-popover{z-index:5;color:#68717b;background:#fff;border:1px solid #dce1e5;border-radius:3px;gap:4px;min-width:172px;padding:10px 12px;font-size:12px;display:grid;position:absolute;top:calc(100% - 2px);right:132px;box-shadow:0 6px 18px #1f232824}.review-included-popover strong{color:#30363d;font-weight:500}.review-binary-diff,.review-diff-message{color:#737b84;background:#fafbfc;border-bottom:1px solid #dce1e5;padding:18px 20px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.review-diff-message.error{color:#9b4f48;background:#fff8f7}.review-skipped-row{color:#6f6a5c;cursor:pointer;text-align:center;background:#fff8d8;border:0;border-bottom:1px solid #eadfae;width:100%;padding:4px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.review-skipped-row:hover{color:#4f5150;background:#ffefad}.review-files-list{background:#fff}.review-commit-message{border-top:1px solid var(--review-line);color:#4f5652;font-size:12px}.review-commit-message summary{cursor:pointer;grid-template-columns:100px minmax(0,1fr) 20px;align-items:center;gap:10px;min-height:32px;padding:0 14px;list-style:none;display:grid}.review-commit-message summary::-webkit-details-marker{display:none}.review-commit-message summary:focus-visible{outline-offset:-2px;outline:2px solid #52638759}.review-commit-message summary>span{color:#356cba}.review-commit-message summary>strong{text-overflow:ellipsis;white-space:nowrap;color:#343a36;font-weight:500;overflow:hidden}.review-commit-message summary svg{color:#7d8580;width:14px;height:14px;transition:transform .12s}.review-commit-message[open] summary svg{transform:rotate(90deg)}.review-commit-message>div{background:#fbfcfa;border-top:1px solid #eceeea;padding:8px 44px 12px 124px}.review-commit-message p{margin:3px 0}.review-commit-message p>span{color:#7a817c;min-width:72px;display:inline-block}.review-commit-message p>strong{font-weight:500}.review-commit-message pre{white-space:pre-wrap;font:inherit;color:#343a36;margin:10px 0 0;line-height:1.45}.review-working-copy-message{color:#6f7881;border-bottom:1px solid #e4e7ea;margin:0;padding:18px;font-size:13px}.review-file-change{background:#fff;border-bottom:1px solid #e4e7ea}.review-file-change.expanded{background:#fafbfc}.review-file-change-header{grid-template-columns:minmax(0,1fr) max-content 30px;align-items:center;gap:6px;min-height:32px;padding:0 10px;display:grid}.review-file-select{color:#424840;cursor:pointer;text-align:left;background:0 0;grid-template-columns:18px minmax(0,1fr) 72px max-content;align-items:center;gap:8px;width:100%;min-width:0;padding:4px 0;display:grid}.review-file-select:hover .review-file-name{color:#356c9d;text-decoration:underline}.review-file-select:focus-visible,.review-review-status button:focus-visible,.review-file-expand:focus-visible{outline-offset:1px;outline:2px solid #52638759}.review-file-status{color:#59646e;text-align:center;font-size:12px;font-weight:600}.review-file-change[data-change-kind=added] .review-file-status{color:#738a75}.review-file-change[data-change-kind=deleted] .review-file-status{color:#9d6a66}.review-file-change[data-change-kind=renamed] .review-file-status{color:#8b7a5c}.review-file-paths{align-content:center;min-width:0;display:grid}.review-file-name,.review-file-previous-path{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.review-file-name{color:#3f75a8;font-size:13px;line-height:17px}.review-file-previous-path{color:#8a908b;font-size:11px;line-height:14px}.review-change-bar{justify-content:flex-end;align-items:center;gap:1px;width:72px;display:inline-flex}.review-change-bar i{min-width:0;height:4px;display:inline-block}.review-change-bar .added{background:#56a866}.review-change-bar .deleted{background:#d46363}.review-change-bar.binary:before{content:"";background:#9aa2aa;border-radius:999px;width:18px;height:4px;display:inline-block}.review-file-stats{font-variant-numeric:tabular-nums;white-space:nowrap;justify-content:flex-end;gap:5px;min-width:54px;font-size:12px;font-weight:500;display:inline-flex}.review-file-stats.binary{color:#6f7881;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.review-file-stats .added{color:#3f914d}.review-file-stats .removed{color:#c84f4f;font-style:normal}.review-review-status{color:#7b8078;white-space:nowrap;grid-template-columns:72px 146px;align-items:center;column-gap:14px;font-size:12px;display:grid}.review-review-loading{color:#9aa097;grid-column:1/-1;justify-self:end}.review-reviewed-label{color:#737b74;grid-column:1;justify-self:end}.review-review-status button{color:#356cba;cursor:pointer;opacity:0;white-space:nowrap;background:0 0;grid-column:2;justify-self:start;padding:4px 0;font-size:12px}.review-review-status button:hover{color:#214e91;text-decoration:underline}.review-review-status.pending button{color:#7b8078;cursor:wait;text-decoration:none}.review-file-change:hover .review-review-status button,.review-file-change:focus-within .review-review-status button,.review-file-change.reviewing .review-review-status button{opacity:1}.review-file-change.expanded>.review-file-change-header{z-index:4;background:#fff;border-bottom:1px solid #dfe4e8;position:sticky;top:0}.review-file-change.reviewing>.review-file-change-header{box-shadow:0 2px 5px #2d37411f}.review-file-expand{color:#7e8790;cursor:pointer;background:0 0;place-items:center;width:30px;height:28px;display:grid}.review-file-expand:hover{color:#465564}.review-file-expand svg{fill:currentColor;width:16px;height:16px}.review-inline-diff{background:#fff;border-top:1px solid #e1e5e8}.review-inline-diff.unified .review-diff-columns{grid-template-columns:1fr}.review-diff-columns{color:#737d86;background:#f5f7f9;border-bottom:1px solid #e1e5e8;grid-template-columns:1fr 1fr;font-family:Roboto Mono,SF Mono,Lucida Console,Monaco,monospace;font-size:11px;display:grid}.review-diff-columns span{padding:2px 12px}.review-diff-columns span+span{border-left:1px solid #e1e5e8}.review-diff-hunk{color:#75716a;background:#fff7cf;border-bottom:1px solid #f0d98a;align-items:center;gap:10px;min-height:23px;padding:2px 12px;font-family:Roboto Mono,SF Mono,Lucida Console,Monaco,monospace;font-size:12px;display:flex}.review-diff-hunk.interactive{width:100%;font:inherit;text-align:left;border:0;border-bottom:1px solid #f0d98a;justify-content:flex-start}.review-context-controls{color:#77736b;align-items:center;gap:5px;margin-inline:auto;display:inline-flex}.review-context-controls button{color:#5f6467;cursor:pointer;font:inherit;background:0 0;border:0;border-radius:2px;padding:1px 4px}.review-context-controls button:hover{color:#343839;background:#ffec9c}.review-context-controls button:disabled{cursor:wait;opacity:.55}.review-context-controls button:focus-visible{outline-offset:0;outline:2px solid #52638766}.review-diff-hunk.loading{justify-content:space-between}.review-context-error{color:#a84943;margin-left:8px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:11px}.review-diff-code{background:#fff;font-family:Roboto Mono,SF Mono,Lucida Console,Monaco,monospace;font-size:12px;line-height:1.3;overflow-x:auto}.review-diff-row{grid-template-columns:42px minmax(0,1fr) 42px minmax(0,1fr);min-height:21px;display:grid}.review-diff-row>span{color:#9ba3aa;text-align:right;-webkit-user-select:none;user-select:none;background:#f8fafb;border-right:1px solid #edf0f3;padding:2px 8px}.review-diff-row code{color:#47515b;white-space:pre;border-right:1px solid #edf0f3;min-width:0;padding:2px 8px;overflow:hidden}.review-diff-row code[data-review-line]{cursor:text}.review-diff-row code[data-review-line]:hover{box-shadow:inset 3px 0 #5f91c3}.review-inline-diff.fit-to-screen .review-diff-row code{overflow-wrap:anywhere;white-space:pre-wrap}.review-tab-marker{color:#728696;-webkit-user-select:none;user-select:none;min-width:1.2em;font-size:.9em;display:inline-block}.review-trailing-whitespace{color:#a7afb7;letter-spacing:.08em;-webkit-user-select:none;user-select:none}.review-intraline{border-radius:2px}.review-diff-row.added .review-intraline,.review-diff-row.changed code:nth-child(4) .review-intraline{background:#aee9b9}.review-diff-row.deleted .review-intraline,.review-diff-row.changed code:nth-child(2) .review-intraline{background:#ffc2c7}.review-newline-warning{color:#737b82;text-align:center;background:#fff;border-top:1px solid #edf0f3;padding:5px 12px;font:12px/1.35 Roboto Mono,SF Mono,Lucida Console,Monaco,monospace}.review-diff-row .hljs-keyword,.review-diff-row .hljs-type{color:#9e0069}.review-diff-row .hljs-title,.review-diff-row .hljs-title.function_,.review-diff-row .hljs-variable.language_{color:#0000c0}.review-diff-row .hljs-string{color:#2a00ff}.review-diff-row .hljs-number{color:#164}.review-diff-row .hljs-comment{color:#3f7f5f}.review-diff-row .hljs-params,.review-diff-row .hljs-property{color:#47515b}.review-diff-row.added>:nth-child(3),.review-diff-row.added>:nth-child(4){background:#dff5e4}.review-diff-row.deleted>:first-child,.review-diff-row.deleted>:nth-child(2),.review-diff-row.changed>:first-child,.review-diff-row.changed>:nth-child(2){background:#ffeded}.review-diff-row.changed>:nth-child(3),.review-diff-row.changed>:nth-child(4){background:#dff5e4}.review-diff-row.context>:first-child,.review-diff-row.context>:nth-child(3){background:#f8fafb}.review-diff-row.unified{grid-template-columns:42px minmax(0,1fr)}.review-diff-row.unified.added>*{background:#dff5e4}.review-diff-row.unified.deleted>*{background:#ffeded}.review-line-attachment{background:#f7fbff;border-bottom:1px solid #e1e5e8;overflow:hidden}.review-comment-editor{color:#59636d;background:#f7fbff;border:0;border-left:3px solid #7da7d0;border-radius:0;gap:8px;margin:0;padding:10px 18px;font-family:Roboto,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:12px;display:grid}.review-comment-editor>header{color:#356c9d;font-weight:500}.review-comment-editor textarea{resize:vertical;color:#30363d;min-height:72px;font:inherit;background:#fff;border:1px solid #b9c6d1;border-radius:2px;padding:8px;line-height:1.45}.review-comment-editor textarea:focus{outline-offset:0;outline:2px solid #356cba38}.review-comment-editor>footer{justify-content:flex-end;gap:10px;display:flex}.review-comment-editor button{color:#356cba;cursor:pointer;font:inherit;background:0 0;border:0;padding:4px 7px;font-size:11px}.review-comment-editor button:disabled{color:#9ea7af;cursor:default}.review-comment-thread{color:#3f4851;background:#fff;border:0;border-top:1px solid #d7dce1;border-left:3px solid #8ea9c4;border-radius:0;margin:0;font-family:Roboto,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:12px}.review-comment-thread.resolved{opacity:.72;border-left-color:#9aae9d}.review-comment-thread.outdated{background:#fffcf3;border-left-color:#c8a14f}.review-comment-thread>header{color:#6b7580;background:#f7f9fb;border-bottom:1px solid #e4e8ec;justify-content:space-between;align-items:center;min-height:30px;padding:0 8px;display:flex}.review-comment-thread>header button{color:#7a838d;cursor:pointer;background:0 0;place-items:center;width:22px;height:22px;padding:0;display:grid}.review-comment-actions{align-items:center;gap:2px;display:inline-flex}.review-comment-thread>header .review-comment-actions button:first-child{color:#356c9d;width:auto;padding:0 6px;font-size:10px}.review-comment-thread>header button:hover{color:#3f4851;background:#eceff2}.review-comment-thread>header svg{fill:currentColor;width:12px;height:12px}.review-comment-thread p{white-space:pre-wrap;margin:0;padding:8px;line-height:1.45}.review-outdated-comments{background:#fffcf3;border-bottom:1px solid #e5dfce;gap:1px;padding:6px 10px;display:grid}.review-preferences-backdrop{z-index:100;background:#1f232875;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.review-preferences{background:#fff;border:1px solid #dce1e5;width:min(760px,100%);box-shadow:0 20px 54px #1f232838}.review-preferences>header{border-bottom:1px solid #dce1e5;align-items:center;min-height:72px;padding:0 38px;display:flex}.review-preferences h2{color:#30363d;margin:0;font-size:21px;font-weight:620}.review-preferences-form{grid-template-columns:minmax(220px,1fr) minmax(220px,282px);align-items:center;gap:8px 28px;padding:18px 38px;display:grid}.review-preferences-form label{color:#6c7378;font-size:17px;font-weight:600;display:contents}.review-preferences-form label>input,.review-preferences-form label>select{color:#30363d;width:100%;min-height:40px;font:inherit;background:#fff;border:1px solid #cbd1d6;border-radius:3px;padding:0 10px;font-weight:400}.review-preferences-form .checkbox-row{grid-column:1/-1;grid-template-columns:minmax(220px,1fr) minmax(220px,282px);align-items:center;column-gap:28px;display:grid}.review-preferences-form .checkbox-row input{accent-color:#356cba;justify-self:start;width:26px;height:26px;min-height:auto;margin:0}.review-preferences>footer{border-top:1px solid #dce1e5;justify-content:flex-end;align-items:center;gap:18px;min-height:74px;padding:0 38px;display:flex}.review-preferences>footer button{color:#356cba;cursor:pointer;background:0 0;padding:6px 0;font-size:17px}.review-preferences>footer button:last-child{color:#71777b}.review-source-control{position:relative}.review-source-trigger{color:#202124;cursor:pointer;background:0 0;align-items:center;gap:5px;max-width:min(360px,42vw);min-height:28px;padding:3px 5px;display:inline-flex;border-radius:2px!important}.review-source-trigger:hover{background:#f5f6f7}.review-source-trigger strong{color:inherit;text-overflow:ellipsis;white-space:nowrap;font-size:16px;font-weight:600;overflow:hidden}.review-source-trigger svg{fill:#87909a;flex:none;width:14px;height:14px}.review-source-menu{z-index:20;background:#fff;border:1px solid #dce1e5;border-radius:3px;width:min(320px,100vw - 32px);max-height:min(520px,100vh - 64px);padding:5px;position:absolute;top:calc(100% + 4px);left:0;overflow:auto;box-shadow:0 6px 18px #1f232824}.review-source-menu>button,.review-source-submenu button{color:#424840;cursor:pointer;text-align:left;background:0 0;grid-template-columns:minmax(0,1fr) 18px;align-items:center;gap:8px;width:100%;min-height:30px;padding:5px 8px;font-size:12px;display:grid;border-radius:2px!important}.review-source-menu>button:hover,.review-source-submenu button:hover{color:#1d5fa7;background:#356cba14}.review-source-menu button:disabled{cursor:default;opacity:.38}.review-source-menu button>span:first-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.review-source-menu button svg{fill:currentColor;width:15px;height:15px}.review-source-menu p{color:#737b84;margin:6px 8px;font-size:12px;line-height:1.45}.review-source-menu p.error{color:#a54e49}.review-source-submenu>summary{color:#424840;cursor:pointer;border-radius:2px;justify-content:space-between;align-items:center;min-height:30px;padding:0 8px;font-size:12px;list-style:none;display:flex}.review-source-submenu>summary::-webkit-details-marker{display:none}.review-source-submenu>summary:hover{color:#1d5fa7;background:#356cba14}.review-source-submenu>summary svg{fill:currentColor;width:15px;height:15px;transition:transform .14s}.review-source-submenu[open]>summary svg{transform:rotate(90deg)}.review-source-submenu>div{border-left:1px solid #dce1e5;max-height:260px;margin:2px 0 5px 8px;padding-left:5px;overflow:auto}.review-total-stats{font-variant-numeric:tabular-nums;white-space:nowrap;gap:5px;font-size:12px;display:inline-flex}.review-total-stats b{color:#3f914d;font-weight:500}.review-total-stats i{color:#c84f4f;font-style:normal;font-weight:500}@media (width<=740px){.review-files-toolbar{flex-direction:column;align-items:flex-start;gap:7px;padding-block:9px}.review-patch-info{width:100%;overflow:hidden}.review-patch-static{text-overflow:ellipsis;white-space:nowrap;max-width:25vw;overflow:hidden}.review-files-actions{flex-wrap:wrap}.review-file-change-header{grid-template-columns:minmax(0,1fr) 28px;gap:2px}.review-review-status{grid-column:1;justify-content:flex-start;padding:0 0 7px 28px}.review-file-expand{grid-area:1/2/span 2}.review-file-select{grid-template-columns:18px minmax(0,1fr) max-content;gap:7px}.review-change-bar{display:none}.review-diff-row{grid-template-columns:34px minmax(220px,1fr) 34px minmax(220px,1fr)}.review-diff-row.unified{grid-template-columns:34px minmax(220px,1fr)}.review-preferences{max-height:calc(100vh - 48px);overflow:auto}.review-preferences>header,.review-preferences>footer{padding-inline:20px}.review-preferences-form,.review-preferences-form .checkbox-row{grid-template-columns:minmax(0,1fr) 168px;column-gap:14px}.review-preferences-form{padding-inline:20px}.review-source-trigger{max-width:66vw}}
@@ -0,0 +1 @@
1
+ function e(e,t,n){if(e&&e.length){let[r,i]=t,a=Math.PI/180*n,o=Math.cos(a),s=Math.sin(a);for(let t of e){let[e,n]=t;t[0]=(e-r)*o-(n-i)*s+r,t[1]=(e-r)*s+(n-i)*o+i}}}function t(e,t){return e[0]===t[0]&&e[1]===t[1]}function n(n,r,i,a=1){let o=i,s=Math.max(r,.1),c=n[0]&&n[0][0]&&typeof n[0][0]==`number`?[n]:n,l=[0,0];if(o)for(let t of c)e(t,l,o);let u=function(e,n,r){let i=[];for(let n of e){let e=[...n];t(e[0],e[e.length-1])||e.push([e[0][0],e[0][1]]),e.length>2&&i.push(e)}let a=[];n=Math.max(n,.1);let o=[];for(let e of i)for(let t=0;t<e.length-1;t++){let n=e[t],r=e[t+1];if(n[1]!==r[1]){let e=Math.min(n[1],r[1]);o.push({ymin:e,ymax:Math.max(n[1],r[1]),x:e===n[1]?n[0]:r[0],islope:(r[0]-n[0])/(r[1]-n[1])})}}if(o.sort(((e,t)=>e.ymin<t.ymin?-1:e.ymin>t.ymin?1:e.x<t.x?-1:e.x>t.x?1:e.ymax===t.ymax?0:(e.ymax-t.ymax)/Math.abs(e.ymax-t.ymax))),!o.length)return a;let s=[],c=o[0].ymin,l=0;for(;s.length||o.length;){if(o.length){let e=-1;for(let t=0;t<o.length&&!(o[t].ymin>c);t++)e=t;o.splice(0,e+1).forEach((e=>{s.push({s:c,edge:e})}))}if(s=s.filter((e=>!(e.edge.ymax<=c))),s.sort(((e,t)=>e.edge.x===t.edge.x?0:(e.edge.x-t.edge.x)/Math.abs(e.edge.x-t.edge.x))),(r!==1||l%n==0)&&s.length>1)for(let e=0;e<s.length;e+=2){let t=e+1;if(t>=s.length)break;let n=s[e].edge,r=s[t].edge;a.push([[Math.round(n.x),c],[Math.round(r.x),c]])}c+=r,s.forEach((e=>{e.edge.x=e.edge.x+r*e.edge.islope})),l++}return a}(c,s,a);if(o){for(let t of c)e(t,l,-o);(function(t,n,r){let i=[];t.forEach((e=>i.push(...e))),e(i,n,r)})(u,l,-o)}return u}function r(e,t){let r=t.hachureAngle+90,i=t.hachureGap;i<0&&(i=4*t.strokeWidth),i=Math.round(Math.max(i,.1));let a=1;return t.roughness>=1&&(t.randomizer?.next()||Math.random())>.7&&(a=i),n(e,i,r,a||1)}var i=class{constructor(e){this.helper=e}fillPolygons(e,t){return this._fillPolygons(e,t)}_fillPolygons(e,t){let n=r(e,t);return{type:`fillSketch`,ops:this.renderLines(n,t)}}renderLines(e,t){let n=[];for(let r of e)n.push(...this.helper.doubleLineOps(r[0][0],r[0][1],r[1][0],r[1][1],t));return n}};function a(e){let t=e[0],n=e[1];return Math.sqrt((t[0]-n[0])**2+(t[1]-n[1])**2)}var o=class extends i{fillPolygons(e,t){let n=t.hachureGap;n<0&&(n=4*t.strokeWidth),n=Math.max(n,.1);let i=r(e,Object.assign({},t,{hachureGap:n})),o=Math.PI/180*t.hachureAngle,s=[],c=.5*n*Math.cos(o),l=.5*n*Math.sin(o);for(let[e,t]of i)a([e,t])&&s.push([[e[0]-c,e[1]+l],[...t]],[[e[0]+c,e[1]-l],[...t]]);return{type:`fillSketch`,ops:this.renderLines(s,t)}}},s=class extends i{fillPolygons(e,t){let n=this._fillPolygons(e,t),r=Object.assign({},t,{hachureAngle:t.hachureAngle+90}),i=this._fillPolygons(e,r);return n.ops=n.ops.concat(i.ops),n}},c=class{constructor(e){this.helper=e}fillPolygons(e,t){let n=r(e,t=Object.assign({},t,{hachureAngle:0}));return this.dotsOnLines(n,t)}dotsOnLines(e,t){let n=[],r=t.hachureGap;r<0&&(r=4*t.strokeWidth),r=Math.max(r,.1);let i=t.fillWeight;i<0&&(i=t.strokeWidth/2);let o=r/4;for(let s of e){let e=a(s),c=e/r,l=Math.ceil(c)-1,u=e-l*r,d=(s[0][0]+s[1][0])/2-r/4,f=Math.min(s[0][1],s[1][1]);for(let e=0;e<l;e++){let a=f+u+e*r,s=d-o+2*Math.random()*o,c=a-o+2*Math.random()*o,l=this.helper.ellipse(s,c,i,i,t);n.push(...l.ops)}}return{type:`fillSketch`,ops:n}}},l=class{constructor(e){this.helper=e}fillPolygons(e,t){let n=r(e,t);return{type:`fillSketch`,ops:this.dashedLine(n,t)}}dashedLine(e,t){let n=t.dashOffset<0?t.hachureGap<0?4*t.strokeWidth:t.hachureGap:t.dashOffset,r=t.dashGap<0?t.hachureGap<0?4*t.strokeWidth:t.hachureGap:t.dashGap,i=[];return e.forEach((e=>{let o=a(e),s=Math.floor(o/(n+r)),c=(o+r-s*(n+r))/2,l=e[0],u=e[1];l[0]>u[0]&&(l=e[1],u=e[0]);let d=Math.atan((u[1]-l[1])/(u[0]-l[0]));for(let e=0;e<s;e++){let a=e*(n+r),o=a+n,s=[l[0]+a*Math.cos(d)+c*Math.cos(d),l[1]+a*Math.sin(d)+c*Math.sin(d)],u=[l[0]+o*Math.cos(d)+c*Math.cos(d),l[1]+o*Math.sin(d)+c*Math.sin(d)];i.push(...this.helper.doubleLineOps(s[0],s[1],u[0],u[1],t))}})),i}},u=class{constructor(e){this.helper=e}fillPolygons(e,t){let n=t.hachureGap<0?4*t.strokeWidth:t.hachureGap,i=t.zigzagOffset<0?n:t.zigzagOffset,a=r(e,t=Object.assign({},t,{hachureGap:n+i}));return{type:`fillSketch`,ops:this.zigzagLines(a,i,t)}}zigzagLines(e,t,n){let r=[];return e.forEach((e=>{let i=a(e),o=Math.round(i/(2*t)),s=e[0],c=e[1];s[0]>c[0]&&(s=e[1],c=e[0]);let l=Math.atan((c[1]-s[1])/(c[0]-s[0]));for(let e=0;e<o;e++){let i=2*e*t,a=2*(e+1)*t,o=Math.sqrt(2*t**2),c=[s[0]+i*Math.cos(l),s[1]+i*Math.sin(l)],u=[s[0]+a*Math.cos(l),s[1]+a*Math.sin(l)],d=[c[0]+o*Math.cos(l+Math.PI/4),c[1]+o*Math.sin(l+Math.PI/4)];r.push(...this.helper.doubleLineOps(c[0],c[1],d[0],d[1],n),...this.helper.doubleLineOps(d[0],d[1],u[0],u[1],n))}})),r}},d={},f=class{constructor(e){this.seed=e}next(){return this.seed?(2**31-1&(this.seed=Math.imul(48271,this.seed)))/2**31:Math.random()}},p=0,m=1,h=2,g={A:7,a:7,C:6,c:6,H:1,h:1,L:2,l:2,M:2,m:2,Q:4,q:4,S:4,s:4,T:2,t:2,V:1,v:1,Z:0,z:0};function _(e,t){return e.type===t}function v(e){let t=[],n=function(e){let t=[];for(;e!==``;)if(e.match(/^([ \t\r\n,]+)/))e=e.substr(RegExp.$1.length);else if(e.match(/^([aAcChHlLmMqQsStTvVzZ])/))t[t.length]={type:p,text:RegExp.$1},e=e.substr(RegExp.$1.length);else{if(!e.match(/^(([-+]?[0-9]+(\.[0-9]*)?|[-+]?\.[0-9]+)([eE][-+]?[0-9]+)?)/))return[];t[t.length]={type:m,text:`${parseFloat(RegExp.$1)}`},e=e.substr(RegExp.$1.length)}return t[t.length]={type:h,text:``},t}(e),r=`BOD`,i=0,a=n[i];for(;!_(a,h);){let o=0,s=[];if(r===`BOD`){if(a.text!==`M`&&a.text!==`m`)return v(`M0,0`+e);i++,o=g[a.text],r=a.text}else _(a,m)?o=g[r]:(i++,o=g[a.text],r=a.text);if(!(i+o<n.length))throw Error(`Path data ended short`);for(let e=i;e<i+o;e++){let t=n[e];if(!_(t,m))throw Error(`Param not a number: `+r+`,`+t.text);s[s.length]=+t.text}if(typeof g[r]!=`number`)throw Error(`Bad segment: `+r);{let e={key:r,data:s};t.push(e),i+=o,a=n[i],r===`M`&&(r=`L`),r===`m`&&(r=`l`)}}return t}function y(e){let t=0,n=0,r=0,i=0,a=[];for(let{key:o,data:s}of e)switch(o){case`M`:a.push({key:`M`,data:[...s]}),[t,n]=s,[r,i]=s;break;case`m`:t+=s[0],n+=s[1],a.push({key:`M`,data:[t,n]}),r=t,i=n;break;case`L`:a.push({key:`L`,data:[...s]}),[t,n]=s;break;case`l`:t+=s[0],n+=s[1],a.push({key:`L`,data:[t,n]});break;case`C`:a.push({key:`C`,data:[...s]}),t=s[4],n=s[5];break;case`c`:{let e=s.map(((e,r)=>r%2?e+n:e+t));a.push({key:`C`,data:e}),t=e[4],n=e[5];break}case`Q`:a.push({key:`Q`,data:[...s]}),t=s[2],n=s[3];break;case`q`:{let e=s.map(((e,r)=>r%2?e+n:e+t));a.push({key:`Q`,data:e}),t=e[2],n=e[3];break}case`A`:a.push({key:`A`,data:[...s]}),t=s[5],n=s[6];break;case`a`:t+=s[5],n+=s[6],a.push({key:`A`,data:[s[0],s[1],s[2],s[3],s[4],t,n]});break;case`H`:a.push({key:`H`,data:[...s]}),t=s[0];break;case`h`:t+=s[0],a.push({key:`H`,data:[t]});break;case`V`:a.push({key:`V`,data:[...s]}),n=s[0];break;case`v`:n+=s[0],a.push({key:`V`,data:[n]});break;case`S`:a.push({key:`S`,data:[...s]}),t=s[2],n=s[3];break;case`s`:{let e=s.map(((e,r)=>r%2?e+n:e+t));a.push({key:`S`,data:e}),t=e[2],n=e[3];break}case`T`:a.push({key:`T`,data:[...s]}),t=s[0],n=s[1];break;case`t`:t+=s[0],n+=s[1],a.push({key:`T`,data:[t,n]});break;case`Z`:case`z`:a.push({key:`Z`,data:[]}),t=r,n=i}return a}function b(e){let t=[],n=``,r=0,i=0,a=0,o=0,s=0,c=0;for(let{key:l,data:u}of e){switch(l){case`M`:t.push({key:`M`,data:[...u]}),[r,i]=u,[a,o]=u;break;case`C`:t.push({key:`C`,data:[...u]}),r=u[4],i=u[5],s=u[2],c=u[3];break;case`L`:t.push({key:`L`,data:[...u]}),[r,i]=u;break;case`H`:r=u[0],t.push({key:`L`,data:[r,i]});break;case`V`:i=u[0],t.push({key:`L`,data:[r,i]});break;case`S`:{let e=0,a=0;n===`C`||n===`S`?(e=r+(r-s),a=i+(i-c)):(e=r,a=i),t.push({key:`C`,data:[e,a,...u]}),s=u[0],c=u[1],r=u[2],i=u[3];break}case`T`:{let[e,a]=u,o=0,l=0;n===`Q`||n===`T`?(o=r+(r-s),l=i+(i-c)):(o=r,l=i);let d=r+2*(o-r)/3,f=i+2*(l-i)/3,p=e+2*(o-e)/3,m=a+2*(l-a)/3;t.push({key:`C`,data:[d,f,p,m,e,a]}),s=o,c=l,r=e,i=a;break}case`Q`:{let[e,n,a,o]=u,l=r+2*(e-r)/3,d=i+2*(n-i)/3,f=a+2*(e-a)/3,p=o+2*(n-o)/3;t.push({key:`C`,data:[l,d,f,p,a,o]}),s=e,c=n,r=a,i=o;break}case`A`:{let e=Math.abs(u[0]),n=Math.abs(u[1]),a=u[2],o=u[3],s=u[4],c=u[5],l=u[6];e===0||n===0?(t.push({key:`C`,data:[r,i,c,l,c,l]}),r=c,i=l):(r!==c||i!==l)&&(S(r,i,c,l,e,n,a,o,s).forEach((function(e){t.push({key:`C`,data:e})})),r=c,i=l);break}case`Z`:t.push({key:`Z`,data:[]}),r=a,i=o}n=l}return t}function x(e,t,n){return[e*Math.cos(n)-t*Math.sin(n),e*Math.sin(n)+t*Math.cos(n)]}function S(e,t,n,r,i,a,o,s,c,l){let u=(d=o,Math.PI*d/180);var d;let f=[],p=0,m=0,h=0,g=0;if(l)[p,m,h,g]=l;else{[e,t]=x(e,t,-u),[n,r]=x(n,r,-u);let o=(e-n)/2,l=(t-r)/2,d=o*o/(i*i)+l*l/(a*a);d>1&&(d=Math.sqrt(d),i*=d,a*=d);let f=i*i,_=a*a,v=f*_-f*l*l-_*o*o,y=f*l*l+_*o*o,b=(s===c?-1:1)*Math.sqrt(Math.abs(v/y));h=b*i*l/a+(e+n)/2,g=b*-a*o/i+(t+r)/2,p=Math.asin(parseFloat(((t-g)/a).toFixed(9))),m=Math.asin(parseFloat(((r-g)/a).toFixed(9))),e<h&&(p=Math.PI-p),n<h&&(m=Math.PI-m),p<0&&(p=2*Math.PI+p),m<0&&(m=2*Math.PI+m),c&&p>m&&(p-=2*Math.PI),!c&&m>p&&(m-=2*Math.PI)}let _=m-p;if(Math.abs(_)>120*Math.PI/180){let e=m,t=n,s=r;m=c&&m>p?p+120*Math.PI/180*1:p+120*Math.PI/180*-1,f=S(n=h+i*Math.cos(m),r=g+a*Math.sin(m),t,s,i,a,o,0,c,[m,e,h,g])}_=m-p;let v=Math.cos(p),y=Math.sin(p),b=Math.cos(m),C=Math.sin(m),w=Math.tan(_/4),T=4/3*i*w,E=4/3*a*w,D=[e,t],O=[e+T*y,t-E*v],k=[n+T*C,r-E*b],A=[n,r];if(O[0]=2*D[0]-O[0],O[1]=2*D[1]-O[1],l)return[O,k,A].concat(f);{f=[O,k,A].concat(f);let e=[];for(let t=0;t<f.length;t+=3){let n=x(f[t][0],f[t][1],u),r=x(f[t+1][0],f[t+1][1],u),i=x(f[t+2][0],f[t+2][1],u);e.push([n[0],n[1],r[0],r[1],i[0],i[1]])}return e}}var C={randOffset:function(e,t){return L(e,t)},randOffsetWithRange:function(e,t,n){return I(e,t,n)},ellipse:function(e,t,n,r,i){return k(e,t,i,O(n,r,i)).opset},doubleLineOps:function(e,t,n,r,i){return R(e,t,n,r,i,!0)}};function w(e,t,n,r,i){return{type:`path`,ops:R(e,t,n,r,i)}}function T(e,t,n){let r=(e||[]).length;if(r>2){let i=[];for(let t=0;t<r-1;t++)i.push(...R(e[t][0],e[t][1],e[t+1][0],e[t+1][1],n));return t&&i.push(...R(e[r-1][0],e[r-1][1],e[0][0],e[0][1],n)),{type:`path`,ops:i}}return r===2?w(e[0][0],e[0][1],e[1][0],e[1][1],n):{type:`path`,ops:[]}}function E(e,t,n,r,i){return function(e,t){return T(e,!0,t)}([[e,t],[e+n,t],[e+n,t+r],[e,t+r]],i)}function D(e,t){if(e.length){let n=typeof e[0][0]==`number`?[e]:e,r=B(n[0],1*(1+.2*t.roughness),t),i=t.disableMultiStroke?[]:B(n[0],1.5*(1+.22*t.roughness),P(t));for(let e=1;e<n.length;e++){let a=n[e];if(a.length){let e=B(a,1*(1+.2*t.roughness),t),n=t.disableMultiStroke?[]:B(a,1.5*(1+.22*t.roughness),P(t));for(let t of e)t.op!==`move`&&r.push(t);for(let e of n)e.op!==`move`&&i.push(e)}}return{type:`path`,ops:r.concat(i)}}return{type:`path`,ops:[]}}function O(e,t,n){let r=Math.sqrt(2*Math.PI*Math.sqrt(((e/2)**2+(t/2)**2)/2)),i=Math.ceil(Math.max(n.curveStepCount,n.curveStepCount/Math.sqrt(200)*r)),a=2*Math.PI/i,o=Math.abs(e/2),s=Math.abs(t/2),c=1-n.curveFitting;return o+=L(o*c,n),s+=L(s*c,n),{increment:a,rx:o,ry:s}}function k(e,t,n,r){let[i,a]=H(r.increment,e,t,r.rx,r.ry,1,r.increment*I(.1,I(.4,1,n),n),n),o=V(i,null,n);if(!n.disableMultiStroke&&n.roughness!==0){let[i]=H(r.increment,e,t,r.rx,r.ry,1.5,0,n),a=V(i,null,n);o=o.concat(a)}return{estimatedPoints:a,opset:{type:`path`,ops:o}}}function A(e,t,n,r,i,a,o,s,c){let l=e,u=t,d=Math.abs(n/2),f=Math.abs(r/2);d+=L(.01*d,c),f+=L(.01*f,c);let p=i,m=a;for(;p<0;)p+=2*Math.PI,m+=2*Math.PI;m-p>2*Math.PI&&(p=0,m=2*Math.PI);let h=2*Math.PI/c.curveStepCount,g=Math.min(h/2,(m-p)/2),_=U(g,l,u,d,f,p,m,1,c);if(!c.disableMultiStroke){let e=U(g,l,u,d,f,p,m,1.5,c);_.push(...e)}return o&&(s?_.push(...R(l,u,l+d*Math.cos(p),u+f*Math.sin(p),c),...R(l,u,l+d*Math.cos(m),u+f*Math.sin(m),c)):_.push({op:`lineTo`,data:[l,u]},{op:`lineTo`,data:[l+d*Math.cos(p),u+f*Math.sin(p)]})),{type:`path`,ops:_}}function j(e,t){let n=b(y(v(e))),r=[],i=[0,0],a=[0,0];for(let{key:e,data:o}of n)switch(e){case`M`:a=[o[0],o[1]],i=[o[0],o[1]];break;case`L`:r.push(...R(a[0],a[1],o[0],o[1],t)),a=[o[0],o[1]];break;case`C`:{let[e,n,i,s,c,l]=o;r.push(...ee(e,n,i,s,c,l,a,t)),a=[c,l];break}case`Z`:r.push(...R(a[0],a[1],i[0],i[1],t)),a=[i[0],i[1]]}return{type:`path`,ops:r}}function M(e,t){let n=[];for(let r of e)if(r.length){let e=t.maxRandomnessOffset||0,i=r.length;if(i>2){n.push({op:`move`,data:[r[0][0]+L(e,t),r[0][1]+L(e,t)]});for(let a=1;a<i;a++)n.push({op:`lineTo`,data:[r[a][0]+L(e,t),r[a][1]+L(e,t)]})}}return{type:`fillPath`,ops:n}}function N(e,t){return function(e,t){let n=e.fillStyle||`hachure`;if(!d[n])switch(n){case`zigzag`:d[n]||(d[n]=new o(t));break;case`cross-hatch`:d[n]||(d[n]=new s(t));break;case`dots`:d[n]||(d[n]=new c(t));break;case`dashed`:d[n]||(d[n]=new l(t));break;case`zigzag-line`:d[n]||(d[n]=new u(t));break;default:n=`hachure`,d[n]||(d[n]=new i(t))}return d[n]}(t,C).fillPolygons(e,t)}function P(e){let t=Object.assign({},e);return t.randomizer=void 0,e.seed&&(t.seed=e.seed+1),t}function F(e){return e.randomizer||=new f(e.seed||0),e.randomizer.next()}function I(e,t,n,r=1){return n.roughness*r*(F(n)*(t-e)+e)}function L(e,t,n=1){return I(-e,e,t,n)}function R(e,t,n,r,i,a=!1){let o=a?i.disableMultiStrokeFill:i.disableMultiStroke,s=z(e,t,n,r,i,!0,!1);if(o)return s;let c=z(e,t,n,r,i,!0,!0);return s.concat(c)}function z(e,t,n,r,i,a,o){let s=(e-n)**2+(t-r)**2,c=Math.sqrt(s),l=1;l=c<200?1:c>500?.4:-.0016668*c+1.233334;let u=i.maxRandomnessOffset||0;u*u*100>s&&(u=c/10);let d=u/2,f=.2+.2*F(i),p=i.bowing*i.maxRandomnessOffset*(r-t)/200,m=i.bowing*i.maxRandomnessOffset*(e-n)/200;p=L(p,i,l),m=L(m,i,l);let h=[],g=()=>L(d,i,l),_=()=>L(u,i,l),v=i.preserveVertices;return a&&(o?h.push({op:`move`,data:[e+(v?0:g()),t+(v?0:g())]}):h.push({op:`move`,data:[e+(v?0:L(u,i,l)),t+(v?0:L(u,i,l))]})),o?h.push({op:`bcurveTo`,data:[p+e+(n-e)*f+g(),m+t+(r-t)*f+g(),p+e+2*(n-e)*f+g(),m+t+2*(r-t)*f+g(),n+(v?0:g()),r+(v?0:g())]}):h.push({op:`bcurveTo`,data:[p+e+(n-e)*f+_(),m+t+(r-t)*f+_(),p+e+2*(n-e)*f+_(),m+t+2*(r-t)*f+_(),n+(v?0:_()),r+(v?0:_())]}),h}function B(e,t,n){if(!e.length)return[];let r=[];r.push([e[0][0]+L(t,n),e[0][1]+L(t,n)]),r.push([e[0][0]+L(t,n),e[0][1]+L(t,n)]);for(let i=1;i<e.length;i++)r.push([e[i][0]+L(t,n),e[i][1]+L(t,n)]),i===e.length-1&&r.push([e[i][0]+L(t,n),e[i][1]+L(t,n)]);return V(r,null,n)}function V(e,t,n){let r=e.length,i=[];if(r>3){let a=[],o=1-n.curveTightness;i.push({op:`move`,data:[e[1][0],e[1][1]]});for(let t=1;t+2<r;t++){let n=e[t];a[0]=[n[0],n[1]],a[1]=[n[0]+(o*e[t+1][0]-o*e[t-1][0])/6,n[1]+(o*e[t+1][1]-o*e[t-1][1])/6],a[2]=[e[t+1][0]+(o*e[t][0]-o*e[t+2][0])/6,e[t+1][1]+(o*e[t][1]-o*e[t+2][1])/6],a[3]=[e[t+1][0],e[t+1][1]],i.push({op:`bcurveTo`,data:[a[1][0],a[1][1],a[2][0],a[2][1],a[3][0],a[3][1]]})}if(t&&t.length===2){let e=n.maxRandomnessOffset;i.push({op:`lineTo`,data:[t[0]+L(e,n),t[1]+L(e,n)]})}}else r===3?(i.push({op:`move`,data:[e[1][0],e[1][1]]}),i.push({op:`bcurveTo`,data:[e[1][0],e[1][1],e[2][0],e[2][1],e[2][0],e[2][1]]})):r===2&&i.push(...z(e[0][0],e[0][1],e[1][0],e[1][1],n,!0,!0));return i}function H(e,t,n,r,i,a,o,s){let c=[],l=[];if(s.roughness===0){e/=4,l.push([t+r*Math.cos(-e),n+i*Math.sin(-e)]);for(let a=0;a<=2*Math.PI;a+=e){let e=[t+r*Math.cos(a),n+i*Math.sin(a)];c.push(e),l.push(e)}l.push([t+r*Math.cos(0),n+i*Math.sin(0)]),l.push([t+r*Math.cos(e),n+i*Math.sin(e)])}else{let u=L(.5,s)-Math.PI/2;l.push([L(a,s)+t+.9*r*Math.cos(u-e),L(a,s)+n+.9*i*Math.sin(u-e)]);let d=2*Math.PI+u-.01;for(let o=u;o<d;o+=e){let e=[L(a,s)+t+r*Math.cos(o),L(a,s)+n+i*Math.sin(o)];c.push(e),l.push(e)}l.push([L(a,s)+t+r*Math.cos(u+2*Math.PI+.5*o),L(a,s)+n+i*Math.sin(u+2*Math.PI+.5*o)]),l.push([L(a,s)+t+.98*r*Math.cos(u+o),L(a,s)+n+.98*i*Math.sin(u+o)]),l.push([L(a,s)+t+.9*r*Math.cos(u+.5*o),L(a,s)+n+.9*i*Math.sin(u+.5*o)])}return[l,c]}function U(e,t,n,r,i,a,o,s,c){let l=a+L(.1,c),u=[];u.push([L(s,c)+t+.9*r*Math.cos(l-e),L(s,c)+n+.9*i*Math.sin(l-e)]);for(let a=l;a<=o;a+=e)u.push([L(s,c)+t+r*Math.cos(a),L(s,c)+n+i*Math.sin(a)]);return u.push([t+r*Math.cos(o),n+i*Math.sin(o)]),u.push([t+r*Math.cos(o),n+i*Math.sin(o)]),V(u,null,c)}function ee(e,t,n,r,i,a,o,s){let c=[],l=[s.maxRandomnessOffset||1,(s.maxRandomnessOffset||1)+.3],u=[0,0],d=s.disableMultiStroke?1:2,f=s.preserveVertices;for(let p=0;p<d;p++)p===0?c.push({op:`move`,data:[o[0],o[1]]}):c.push({op:`move`,data:[o[0]+(f?0:L(l[0],s)),o[1]+(f?0:L(l[0],s))]}),u=f?[i,a]:[i+L(l[p],s),a+L(l[p],s)],c.push({op:`bcurveTo`,data:[e+L(l[p],s),t+L(l[p],s),n+L(l[p],s),r+L(l[p],s),u[0],u[1]]});return c}function W(e){return[...e]}function G(e,t=0){let n=e.length;if(n<3)throw Error(`A curve must have at least three points.`);let r=[];if(n===3)r.push(W(e[0]),W(e[1]),W(e[2]),W(e[2]));else{let n=[];n.push(e[0],e[0]);for(let t=1;t<e.length;t++)n.push(e[t]),t===e.length-1&&n.push(e[t]);let i=[],a=1-t;r.push(W(n[0]));for(let e=1;e+2<n.length;e++){let t=n[e];i[0]=[t[0],t[1]],i[1]=[t[0]+(a*n[e+1][0]-a*n[e-1][0])/6,t[1]+(a*n[e+1][1]-a*n[e-1][1])/6],i[2]=[n[e+1][0]+(a*n[e][0]-a*n[e+2][0])/6,n[e+1][1]+(a*n[e][1]-a*n[e+2][1])/6],i[3]=[n[e+1][0],n[e+1][1]],r.push(i[1],i[2],i[3])}}return r}function K(e,t){return(e[0]-t[0])**2+(e[1]-t[1])**2}function te(e,t,n){let r=K(t,n);if(r===0)return K(e,t);let i=((e[0]-t[0])*(n[0]-t[0])+(e[1]-t[1])*(n[1]-t[1]))/r;return i=Math.max(0,Math.min(1,i)),K(e,q(t,n,i))}function q(e,t,n){return[e[0]+(t[0]-e[0])*n,e[1]+(t[1]-e[1])*n]}function J(e,t,n,r){let i=r||[];if(function(e,t){let n=e[t+0],r=e[t+1],i=e[t+2],a=e[t+3],o=3*r[0]-2*n[0]-a[0];o*=o;let s=3*r[1]-2*n[1]-a[1];s*=s;let c=3*i[0]-2*a[0]-n[0];c*=c;let l=3*i[1]-2*a[1]-n[1];return l*=l,o<c&&(o=c),s<l&&(s=l),o+s}(e,t)<n){let n=e[t+0];i.length?(a=i[i.length-1],o=n,Math.sqrt(K(a,o)))>1&&i.push(n):i.push(n),i.push(e[t+3])}else{let r=.5,a=e[t+0],o=e[t+1],s=e[t+2],c=e[t+3],l=q(a,o,r),u=q(o,s,r),d=q(s,c,r),f=q(l,u,r),p=q(u,d,r),m=q(f,p,r);J([a,l,f,m],0,n,i),J([m,p,d,c],0,n,i)}var a,o;return i}function ne(e,t){return Y(e,0,e.length,t)}function Y(e,t,n,r,i){let a=i||[],o=e[t],s=e[n-1],c=0,l=1;for(let r=t+1;r<n-1;++r){let t=te(e[r],o,s);t>c&&(c=t,l=r)}return Math.sqrt(c)>r?(Y(e,t,l+1,r,a),Y(e,l,n,r,a)):(a.length||a.push(o),a.push(s)),a}function X(e,t=.15,n){let r=[],i=(e.length-1)/3;for(let n=0;n<i;n++)J(e,3*n,t,r);return n&&n>0?Y(r,0,r.length,n):r}var Z=`none`,Q=class{constructor(e){this.defaultOptions={maxRandomnessOffset:2,roughness:1,bowing:1,stroke:`#000`,strokeWidth:1,curveTightness:0,curveFitting:.95,curveStepCount:9,fillStyle:`hachure`,fillWeight:-1,hachureAngle:-41,hachureGap:-1,dashOffset:-1,dashGap:-1,zigzagOffset:-1,seed:0,disableMultiStroke:!1,disableMultiStrokeFill:!1,preserveVertices:!1,fillShapeRoughnessGain:.8},this.config=e||{},this.config.options&&(this.defaultOptions=this._o(this.config.options))}static newSeed(){return Math.floor(Math.random()*2**31)}_o(e){return e?Object.assign({},this.defaultOptions,e):this.defaultOptions}_d(e,t,n){return{shape:e,sets:t||[],options:n||this.defaultOptions}}line(e,t,n,r,i){let a=this._o(i);return this._d(`line`,[w(e,t,n,r,a)],a)}rectangle(e,t,n,r,i){let a=this._o(i),o=[],s=E(e,t,n,r,a);if(a.fill){let i=[[e,t],[e+n,t],[e+n,t+r],[e,t+r]];a.fillStyle===`solid`?o.push(M([i],a)):o.push(N([i],a))}return a.stroke!==Z&&o.push(s),this._d(`rectangle`,o,a)}ellipse(e,t,n,r,i){let a=this._o(i),o=[],s=O(n,r,a),c=k(e,t,a,s);if(a.fill)if(a.fillStyle===`solid`){let n=k(e,t,a,s).opset;n.type=`fillPath`,o.push(n)}else o.push(N([c.estimatedPoints],a));return a.stroke!==Z&&o.push(c.opset),this._d(`ellipse`,o,a)}circle(e,t,n,r){let i=this.ellipse(e,t,n,n,r);return i.shape=`circle`,i}linearPath(e,t){let n=this._o(t);return this._d(`linearPath`,[T(e,!1,n)],n)}arc(e,t,n,r,i,a,o=!1,s){let c=this._o(s),l=[],u=A(e,t,n,r,i,a,o,!0,c);if(o&&c.fill)if(c.fillStyle===`solid`){let o=Object.assign({},c);o.disableMultiStroke=!0;let s=A(e,t,n,r,i,a,!0,!1,o);s.type=`fillPath`,l.push(s)}else l.push(function(e,t,n,r,i,a,o){let s=e,c=t,l=Math.abs(n/2),u=Math.abs(r/2);l+=L(.01*l,o),u+=L(.01*u,o);let d=i,f=a;for(;d<0;)d+=2*Math.PI,f+=2*Math.PI;f-d>2*Math.PI&&(d=0,f=2*Math.PI);let p=(f-d)/o.curveStepCount,m=[];for(let e=d;e<=f;e+=p)m.push([s+l*Math.cos(e),c+u*Math.sin(e)]);return m.push([s+l*Math.cos(f),c+u*Math.sin(f)]),m.push([s,c]),N([m],o)}(e,t,n,r,i,a,c));return c.stroke!==Z&&l.push(u),this._d(`arc`,l,c)}curve(e,t){let n=this._o(t),r=[],i=D(e,n);if(n.fill&&n.fill!==Z)if(n.fillStyle===`solid`){let t=D(e,Object.assign(Object.assign({},n),{disableMultiStroke:!0,roughness:n.roughness?n.roughness+n.fillShapeRoughnessGain:0}));r.push({type:`fillPath`,ops:this._mergedShape(t.ops)})}else{let t=[],i=e;if(i.length){let e=typeof i[0][0]==`number`?[i]:i;for(let r of e)r.length<3?t.push(...r):r.length===3?t.push(...X(G([r[0],r[0],r[1],r[2]]),10,(1+n.roughness)/2)):t.push(...X(G(r),10,(1+n.roughness)/2))}t.length&&r.push(N([t],n))}return n.stroke!==Z&&r.push(i),this._d(`curve`,r,n)}polygon(e,t){let n=this._o(t),r=[],i=T(e,!0,n);return n.fill&&(n.fillStyle===`solid`?r.push(M([e],n)):r.push(N([e],n))),n.stroke!==Z&&r.push(i),this._d(`polygon`,r,n)}path(e,t){let n=this._o(t),r=[];if(!e)return this._d(`path`,r,n);e=(e||``).replace(/\n/g,` `).replace(/(-\s)/g,`-`).replace(`/(ss)/g`,` `);let i=n.fill&&n.fill!==`transparent`&&n.fill!==Z,a=n.stroke!==Z,o=!!(n.simplification&&n.simplification<1),s=function(e,t,n){let r=b(y(v(e))),i=[],a=[],o=[0,0],s=[],c=()=>{s.length>=4&&a.push(...X(s,t)),s=[]},l=()=>{c(),a.length&&(i.push(a),a=[])};for(let{key:e,data:t}of r)switch(e){case`M`:l(),o=[t[0],t[1]],a.push(o);break;case`L`:c(),a.push([t[0],t[1]]);break;case`C`:if(!s.length){let e=a.length?a[a.length-1]:o;s.push([e[0],e[1]])}s.push([t[0],t[1]]),s.push([t[2],t[3]]),s.push([t[4],t[5]]);break;case`Z`:c(),a.push([o[0],o[1]])}if(l(),!n)return i;let u=[];for(let e of i){let t=ne(e,n);t.length&&u.push(t)}return u}(e,1,o?4-4*(n.simplification||1):(1+n.roughness)/2),c=j(e,n);if(i)if(n.fillStyle===`solid`)if(s.length===1){let t=j(e,Object.assign(Object.assign({},n),{disableMultiStroke:!0,roughness:n.roughness?n.roughness+n.fillShapeRoughnessGain:0}));r.push({type:`fillPath`,ops:this._mergedShape(t.ops)})}else r.push(M(s,n));else r.push(N(s,n));return a&&(o?s.forEach((e=>{r.push(T(e,!1,n))})):r.push(c)),this._d(`path`,r,n)}opsToPath(e,t){let n=``;for(let r of e.ops){let e=typeof t==`number`&&t>=0?r.data.map((e=>+e.toFixed(t))):r.data;switch(r.op){case`move`:n+=`M${e[0]} ${e[1]} `;break;case`bcurveTo`:n+=`C${e[0]} ${e[1]}, ${e[2]} ${e[3]}, ${e[4]} ${e[5]} `;break;case`lineTo`:n+=`L${e[0]} ${e[1]} `}}return n.trim()}toPaths(e){let t=e.sets||[],n=e.options||this.defaultOptions,r=[];for(let e of t){let t=null;switch(e.type){case`path`:t={d:this.opsToPath(e),stroke:n.stroke,strokeWidth:n.strokeWidth,fill:Z};break;case`fillPath`:t={d:this.opsToPath(e),stroke:Z,strokeWidth:0,fill:n.fill||Z};break;case`fillSketch`:t=this.fillSketch(e,n)}t&&r.push(t)}return r}fillSketch(e,t){let n=t.fillWeight;return n<0&&(n=t.strokeWidth/2),{d:this.opsToPath(e),stroke:t.fill||Z,strokeWidth:n,fill:Z}}_mergedShape(e){return e.filter(((e,t)=>t===0||e.op!==`move`))}},re=class{constructor(e,t){this.canvas=e,this.ctx=this.canvas.getContext(`2d`),this.gen=new Q(t)}draw(e){let t=e.sets||[],n=e.options||this.getDefaultOptions(),r=this.ctx,i=e.options.fixedDecimalPlaceDigits;for(let a of t)switch(a.type){case`path`:r.save(),r.strokeStyle=n.stroke===`none`?`transparent`:n.stroke,r.lineWidth=n.strokeWidth,n.strokeLineDash&&r.setLineDash(n.strokeLineDash),n.strokeLineDashOffset&&(r.lineDashOffset=n.strokeLineDashOffset),this._drawToContext(r,a,i),r.restore();break;case`fillPath`:{r.save(),r.fillStyle=n.fill||``;let t=e.shape===`curve`||e.shape===`polygon`||e.shape===`path`?`evenodd`:`nonzero`;this._drawToContext(r,a,i,t),r.restore();break}case`fillSketch`:this.fillSketch(r,a,n)}}fillSketch(e,t,n){let r=n.fillWeight;r<0&&(r=n.strokeWidth/2),e.save(),n.fillLineDash&&e.setLineDash(n.fillLineDash),n.fillLineDashOffset&&(e.lineDashOffset=n.fillLineDashOffset),e.strokeStyle=n.fill||``,e.lineWidth=r,this._drawToContext(e,t,n.fixedDecimalPlaceDigits),e.restore()}_drawToContext(e,t,n,r=`nonzero`){e.beginPath();for(let r of t.ops){let t=typeof n==`number`&&n>=0?r.data.map((e=>+e.toFixed(n))):r.data;switch(r.op){case`move`:e.moveTo(t[0],t[1]);break;case`bcurveTo`:e.bezierCurveTo(t[0],t[1],t[2],t[3],t[4],t[5]);break;case`lineTo`:e.lineTo(t[0],t[1])}}t.type===`fillPath`?e.fill(r):e.stroke()}get generator(){return this.gen}getDefaultOptions(){return this.gen.defaultOptions}line(e,t,n,r,i){let a=this.gen.line(e,t,n,r,i);return this.draw(a),a}rectangle(e,t,n,r,i){let a=this.gen.rectangle(e,t,n,r,i);return this.draw(a),a}ellipse(e,t,n,r,i){let a=this.gen.ellipse(e,t,n,r,i);return this.draw(a),a}circle(e,t,n,r){let i=this.gen.circle(e,t,n,r);return this.draw(i),i}linearPath(e,t){let n=this.gen.linearPath(e,t);return this.draw(n),n}polygon(e,t){let n=this.gen.polygon(e,t);return this.draw(n),n}arc(e,t,n,r,i,a,o=!1,s){let c=this.gen.arc(e,t,n,r,i,a,o,s);return this.draw(c),c}curve(e,t){let n=this.gen.curve(e,t);return this.draw(n),n}path(e,t){let n=this.gen.path(e,t);return this.draw(n),n}},$=`http://www.w3.org/2000/svg`,ie=class{constructor(e,t){this.svg=e,this.gen=new Q(t)}draw(e){let t=e.sets||[],n=e.options||this.getDefaultOptions(),r=this.svg.ownerDocument||window.document,i=r.createElementNS($,`g`),a=e.options.fixedDecimalPlaceDigits;for(let o of t){let t=null;switch(o.type){case`path`:t=r.createElementNS($,`path`),t.setAttribute(`d`,this.opsToPath(o,a)),t.setAttribute(`stroke`,n.stroke),t.setAttribute(`stroke-width`,n.strokeWidth+``),t.setAttribute(`fill`,`none`),n.strokeLineDash&&t.setAttribute(`stroke-dasharray`,n.strokeLineDash.join(` `).trim()),n.strokeLineDashOffset&&t.setAttribute(`stroke-dashoffset`,`${n.strokeLineDashOffset}`);break;case`fillPath`:t=r.createElementNS($,`path`),t.setAttribute(`d`,this.opsToPath(o,a)),t.setAttribute(`stroke`,`none`),t.setAttribute(`stroke-width`,`0`),t.setAttribute(`fill`,n.fill||``),e.shape!==`curve`&&e.shape!==`polygon`||t.setAttribute(`fill-rule`,`evenodd`);break;case`fillSketch`:t=this.fillSketch(r,o,n)}t&&i.appendChild(t)}return i}fillSketch(e,t,n){let r=n.fillWeight;r<0&&(r=n.strokeWidth/2);let i=e.createElementNS($,`path`);return i.setAttribute(`d`,this.opsToPath(t,n.fixedDecimalPlaceDigits)),i.setAttribute(`stroke`,n.fill||``),i.setAttribute(`stroke-width`,r+``),i.setAttribute(`fill`,`none`),n.fillLineDash&&i.setAttribute(`stroke-dasharray`,n.fillLineDash.join(` `).trim()),n.fillLineDashOffset&&i.setAttribute(`stroke-dashoffset`,`${n.fillLineDashOffset}`),i}get generator(){return this.gen}getDefaultOptions(){return this.gen.defaultOptions}opsToPath(e,t){return this.gen.opsToPath(e,t)}line(e,t,n,r,i){let a=this.gen.line(e,t,n,r,i);return this.draw(a)}rectangle(e,t,n,r,i){let a=this.gen.rectangle(e,t,n,r,i);return this.draw(a)}ellipse(e,t,n,r,i){let a=this.gen.ellipse(e,t,n,r,i);return this.draw(a)}circle(e,t,n,r){let i=this.gen.circle(e,t,n,r);return this.draw(i)}linearPath(e,t){let n=this.gen.linearPath(e,t);return this.draw(n)}polygon(e,t){let n=this.gen.polygon(e,t);return this.draw(n)}arc(e,t,n,r,i,a,o=!1,s){let c=this.gen.arc(e,t,n,r,i,a,o,s);return this.draw(c)}curve(e,t){let n=this.gen.curve(e,t);return this.draw(n)}path(e,t){let n=this.gen.path(e,t);return this.draw(n)}},ae={canvas:(e,t)=>new re(e,t),svg:(e,t)=>new ie(e,t),generator:e=>new Q(e),newSeed:()=>Q.newSeed()};export{ae as t};
@@ -0,0 +1 @@
1
+ var e={comments:{lineComment:`#`,blockComment:[`=begin`,`=end`]},brackets:[[`(`,`)`],[`{`,`}`],[`[`,`]`]],autoClosingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`"`,close:`"`},{open:`'`,close:`'`}],surroundingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`"`,close:`"`},{open:`'`,close:`'`}],indentationRules:{increaseIndentPattern:RegExp(`^\\s*((begin|class|(private|protected)\\s+def|def|else|elsif|ensure|for|if|module|rescue|unless|until|when|while|case)|([^#]*\\sdo\\b)|([^#]*=\\s*(case|if|unless)))\\b([^#\\{;]|("|'|/).*\\4)*(#.*)?$`),decreaseIndentPattern:RegExp(`^\\s*([}\\]]([,)]?\\s*(#|$)|\\.[a-zA-Z_]\\w*\\b)|(end|rescue|ensure|else|elsif|when)\\b)`)}},t={tokenPostfix:`.ruby`,keywords:`__LINE__.__ENCODING__.__FILE__.BEGIN.END.alias.and.begin.break.case.class.def.defined?.do.else.elsif.end.ensure.for.false.if.in.module.next.nil.not.or.redo.rescue.retry.return.self.super.then.true.undef.unless.until.when.while.yield`.split(`.`),keywordops:[`::`,`..`,`...`,`?`,`:`,`=>`],builtins:[`require`,`public`,`private`,`include`,`extend`,`attr_reader`,`protected`,`private_class_method`,`protected_class_method`,`new`],declarations:[`module`,`class`,`def`,`case`,`do`,`begin`,`for`,`if`,`while`,`until`,`unless`],linedecls:[`def`,`case`,`do`,`begin`,`for`,`if`,`while`,`until`,`unless`],operators:"^.&.|.<=>.==.===.!~.=~.>.>=.<.<=.<<.>>.+.-.*./.%.**.~.+@.-@.[].[]=.`.+=.-=.*=.**=./=.^=.%=.<<=.>>=.&=.&&=.||=.|=".split(`.`),brackets:[{open:`(`,close:`)`,token:`delimiter.parenthesis`},{open:`{`,close:`}`,token:`delimiter.curly`},{open:`[`,close:`]`,token:`delimiter.square`}],symbols:/[=><!~?:&|+\-*\/\^%\.]+/,escape:/(?:[abefnrstv\\"'\n\r]|[0-7]{1,3}|x[0-9A-Fa-f]{1,2}|u[0-9A-Fa-f]{4})/,escapes:/\\(?:C\-(@escape|.)|c(@escape|.)|@escape)/,decpart:/\d(_?\d)*/,decimal:/0|@decpart/,delim:/[^a-zA-Z0-9\s\n\r]/,heredelim:/(?:\w+|'[^']*'|"[^"]*"|`[^`]*`)/,regexpctl:/[(){}\[\]\$\^|\-*+?\.]/,regexpesc:/\\(?:[AzZbBdDfnrstvwWn0\\\/]|@regexpctl|c[A-Z]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4})?/,tokenizer:{root:[[/^(\s*)([a-z_]\w*[!?=]?)/,[`white`,{cases:{"for|until|while":{token:`keyword.$2`,next:`@dodecl.$2`},"@declarations":{token:`keyword.$2`,next:`@root.$2`},end:{token:`keyword.$S2`,next:`@pop`},"@keywords":`keyword`,"@builtins":`predefined`,"@default":`identifier`}}]],[/[a-z_]\w*[!?=]?/,{cases:{"if|unless|while|until":{token:`keyword.$0x`,next:`@modifier.$0x`},for:{token:`keyword.$2`,next:`@dodecl.$2`},"@linedecls":{token:`keyword.$0`,next:`@root.$0`},end:{token:`keyword.$S2`,next:`@pop`},"@keywords":`keyword`,"@builtins":`predefined`,"@default":`identifier`}}],[/[A-Z][\w]*[!?=]?/,`constructor.identifier`],[/\$[\w]*/,`global.constant`],[/@[\w]*/,`namespace.instance.identifier`],[/@@@[\w]*/,`namespace.class.identifier`],[/<<[-~](@heredelim).*/,{token:`string.heredoc.delimiter`,next:`@heredoc.$1`}],[/[ \t\r\n]+<<(@heredelim).*/,{token:`string.heredoc.delimiter`,next:`@heredoc.$1`}],[/^<<(@heredelim).*/,{token:`string.heredoc.delimiter`,next:`@heredoc.$1`}],{include:`@whitespace`},[/"/,{token:`string.d.delim`,next:`@dstring.d."`}],[/'/,{token:`string.sq.delim`,next:`@sstring.sq`}],[/%([rsqxwW]|Q?)/,{token:`@rematch`,next:`pstring`}],[/`/,{token:`string.x.delim`,next:"@dstring.x.`"}],[/:(\w|[$@])\w*[!?=]?/,`string.s`],[/:"/,{token:`string.s.delim`,next:`@dstring.s."`}],[/:'/,{token:`string.s.delim`,next:`@sstring.s`}],[/\/(?=(\\\/|[^\/\n])+\/)/,{token:`regexp.delim`,next:`@regexp`}],[/[{}()\[\]]/,`@brackets`],[/@symbols/,{cases:{"@keywordops":`keyword`,"@operators":`operator`,"@default":``}}],[/[;,]/,`delimiter`],[/0[xX][0-9a-fA-F](_?[0-9a-fA-F])*/,`number.hex`],[/0[_oO][0-7](_?[0-7])*/,`number.octal`],[/0[bB][01](_?[01])*/,`number.binary`],[/0[dD]@decpart/,`number`],[/@decimal((\.@decpart)?([eE][\-+]?@decpart)?)/,{cases:{$1:`number.float`,"@default":`number`}}]],dodecl:[[/^/,{token:``,switchTo:`@root.$S2`}],[/[a-z_]\w*[!?=]?/,{cases:{end:{token:`keyword.$S2`,next:`@pop`},do:{token:`keyword`,switchTo:`@root.$S2`},"@linedecls":{token:`@rematch`,switchTo:`@root.$S2`},"@keywords":`keyword`,"@builtins":`predefined`,"@default":`identifier`}}],{include:`@root`}],modifier:[[/^/,``,`@pop`],[/[a-z_]\w*[!?=]?/,{cases:{end:{token:`keyword.$S2`,next:`@pop`},"then|else|elsif|do":{token:`keyword`,switchTo:`@root.$S2`},"@linedecls":{token:`@rematch`,switchTo:`@root.$S2`},"@keywords":`keyword`,"@builtins":`predefined`,"@default":`identifier`}}],{include:`@root`}],sstring:[[/[^\\']+/,`string.$S2`],[/\\\\|\\'|\\$/,`string.$S2.escape`],[/\\./,`string.$S2.invalid`],[/'/,{token:`string.$S2.delim`,next:`@pop`}]],dstring:[[/[^\\`"#]+/,`string.$S2`],[/#/,`string.$S2.escape`,`@interpolated`],[/\\$/,`string.$S2.escape`],[/@escapes/,`string.$S2.escape`],[/\\./,`string.$S2.escape.invalid`],[/[`"]/,{cases:{"$#==$S3":{token:`string.$S2.delim`,next:`@pop`},"@default":`string.$S2`}}]],heredoc:[[/^(\s*)(@heredelim)$/,{cases:{"$2==$S2":[`string.heredoc`,{token:`string.heredoc.delimiter`,next:`@pop`}],"@default":[`string.heredoc`,`string.heredoc`]}}],[/.*/,`string.heredoc`]],interpolated:[[/\$\w*/,`global.constant`,`@pop`],[/@\w*/,`namespace.class.identifier`,`@pop`],[/@@@\w*/,`namespace.instance.identifier`,`@pop`],[/[{]/,{token:`string.escape.curly`,switchTo:`@interpolated_compound`}],[``,``,`@pop`]],interpolated_compound:[[/[}]/,{token:`string.escape.curly`,next:`@pop`}],{include:`@root`}],pregexp:[{include:`@whitespace`},[/[^\(\{\[\\]/,{cases:{"$#==$S3":{token:`regexp.delim`,next:`@pop`},"$#==$S2":{token:`regexp.delim`,next:`@push`},"~[)}\\]]":`@brackets.regexp.escape.control`,"~@regexpctl":`regexp.escape.control`,"@default":`regexp`}}],{include:`@regexcontrol`}],regexp:[{include:`@regexcontrol`},[/[^\\\/]/,`regexp`],[`/[ixmp]*`,{token:`regexp.delim`},`@pop`]],regexcontrol:[[/(\{)(\d+(?:,\d*)?)(\})/,[`@brackets.regexp.escape.control`,`regexp.escape.control`,`@brackets.regexp.escape.control`]],[/(\[)(\^?)/,[`@brackets.regexp.escape.control`,{token:`regexp.escape.control`,next:`@regexrange`}]],[/(\()(\?[:=!])/,[`@brackets.regexp.escape.control`,`regexp.escape.control`]],[/\(\?#/,{token:`regexp.escape.control`,next:`@regexpcomment`}],[/[()]/,`@brackets.regexp.escape.control`],[/@regexpctl/,`regexp.escape.control`],[/\\$/,`regexp.escape`],[/@regexpesc/,`regexp.escape`],[/\\\./,`regexp.invalid`],[/#/,`regexp.escape`,`@interpolated`]],regexrange:[[/-/,`regexp.escape.control`],[/\^/,`regexp.invalid`],[/\\$/,`regexp.escape`],[/@regexpesc/,`regexp.escape`],[/[^\]]/,`regexp`],[/\]/,`@brackets.regexp.escape.control`,`@pop`]],regexpcomment:[[/[^)]+/,`comment`],[/\)/,{token:`regexp.escape.control`,next:`@pop`}]],pstring:[[/%([qws])\(/,{token:`string.$1.delim`,switchTo:`@qstring.$1.(.)`}],[/%([qws])\[/,{token:`string.$1.delim`,switchTo:`@qstring.$1.[.]`}],[/%([qws])\{/,{token:`string.$1.delim`,switchTo:`@qstring.$1.{.}`}],[/%([qws])</,{token:`string.$1.delim`,switchTo:`@qstring.$1.<.>`}],[/%([qws])(@delim)/,{token:`string.$1.delim`,switchTo:`@qstring.$1.$2.$2`}],[/%r\(/,{token:`regexp.delim`,switchTo:`@pregexp.(.)`}],[/%r\[/,{token:`regexp.delim`,switchTo:`@pregexp.[.]`}],[/%r\{/,{token:`regexp.delim`,switchTo:`@pregexp.{.}`}],[/%r</,{token:`regexp.delim`,switchTo:`@pregexp.<.>`}],[/%r(@delim)/,{token:`regexp.delim`,switchTo:`@pregexp.$1.$1`}],[/%(x|W|Q?)\(/,{token:`string.$1.delim`,switchTo:`@qqstring.$1.(.)`}],[/%(x|W|Q?)\[/,{token:`string.$1.delim`,switchTo:`@qqstring.$1.[.]`}],[/%(x|W|Q?)\{/,{token:`string.$1.delim`,switchTo:`@qqstring.$1.{.}`}],[/%(x|W|Q?)</,{token:`string.$1.delim`,switchTo:`@qqstring.$1.<.>`}],[/%(x|W|Q?)(@delim)/,{token:`string.$1.delim`,switchTo:`@qqstring.$1.$2.$2`}],[/%([rqwsxW]|Q?)./,{token:`invalid`,next:`@pop`}],[/./,{token:`invalid`,next:`@pop`}]],qstring:[[/\\$/,`string.$S2.escape`],[/\\./,`string.$S2.escape`],[/./,{cases:{"$#==$S4":{token:`string.$S2.delim`,next:`@pop`},"$#==$S3":{token:`string.$S2.delim`,next:`@push`},"@default":`string.$S2`}}]],qqstring:[[/#/,`string.$S2.escape`,`@interpolated`],{include:`@qstring`}],whitespace:[[/[ \t\r\n]+/,``],[/^\s*=begin\b/,`comment`,`@comment`],[/#.*$/,`comment`]],comment:[[/[^=]+/,`comment`],[/^\s*=begin\b/,`comment.invalid`],[/^\s*=end\b.*/,`comment`,`@pop`],[/[=]/,`comment`]]}};export{e as conf,t as language};
@@ -0,0 +1 @@
1
+ var e={comments:{lineComment:`//`,blockComment:[`/*`,`*/`]},brackets:[[`{`,`}`],[`[`,`]`],[`(`,`)`]],autoClosingPairs:[{open:`[`,close:`]`},{open:`{`,close:`}`},{open:`(`,close:`)`},{open:`"`,close:`"`,notIn:[`string`]}],surroundingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`"`,close:`"`},{open:`'`,close:`'`}],folding:{markers:{start:RegExp(`^\\s*#pragma\\s+region\\b`),end:RegExp(`^\\s*#pragma\\s+endregion\\b`)}}},t={tokenPostfix:`.rust`,defaultToken:`invalid`,keywords:`as.async.await.box.break.const.continue.crate.dyn.else.enum.extern.false.fn.for.if.impl.in.let.loop.match.mod.move.mut.pub.ref.return.self.static.struct.super.trait.true.try.type.unsafe.use.where.while.catch.default.union.static.abstract.alignof.become.do.final.macro.offsetof.override.priv.proc.pure.sizeof.typeof.unsized.virtual.yield`.split(`.`),typeKeywords:`Self.m32.m64.m128.f80.f16.f128.int.uint.float.char.bool.u8.u16.u32.u64.f32.f64.i8.i16.i32.i64.str.Option.Either.c_float.c_double.c_void.FILE.fpos_t.DIR.dirent.c_char.c_schar.c_uchar.c_short.c_ushort.c_int.c_uint.c_long.c_ulong.size_t.ptrdiff_t.clock_t.time_t.c_longlong.c_ulonglong.intptr_t.uintptr_t.off_t.dev_t.ino_t.pid_t.mode_t.ssize_t`.split(`.`),constants:[`true`,`false`,`Some`,`None`,`Left`,`Right`,`Ok`,`Err`],supportConstants:`EXIT_FAILURE.EXIT_SUCCESS.RAND_MAX.EOF.SEEK_SET.SEEK_CUR.SEEK_END._IOFBF._IONBF._IOLBF.BUFSIZ.FOPEN_MAX.FILENAME_MAX.L_tmpnam.TMP_MAX.O_RDONLY.O_WRONLY.O_RDWR.O_APPEND.O_CREAT.O_EXCL.O_TRUNC.S_IFIFO.S_IFCHR.S_IFBLK.S_IFDIR.S_IFREG.S_IFMT.S_IEXEC.S_IWRITE.S_IREAD.S_IRWXU.S_IXUSR.S_IWUSR.S_IRUSR.F_OK.R_OK.W_OK.X_OK.STDIN_FILENO.STDOUT_FILENO.STDERR_FILENO`.split(`.`),supportMacros:[`format!`,`print!`,`println!`,`panic!`,`format_args!`,`unreachable!`,`write!`,`writeln!`],operators:`!,!=,%,%=,&,&=,&&,*,*=,+,+=,-,-=,->,.,..,...,/,/=,:,;,<<,<<=,<,<=,=,==,=>,>,>=,>>,>>=,@,^,^=,|,|=,||,_,?,#`.split(`,`),escapes:/\\([nrt0\"''\\]|x\h{2}|u\{\h{1,6}\})/,delimiters:/[,]/,symbols:/[\#\!\%\&\*\+\-\.\/\:\;\<\=\>\@\^\|_\?]+/,intSuffixes:/[iu](8|16|32|64|128|size)/,floatSuffixes:/f(32|64)/,tokenizer:{root:[[/r(#*)"/,{token:`string.quote`,bracket:`@open`,next:`@stringraw.$1`}],[/[a-zA-Z][a-zA-Z0-9_]*!?|_[a-zA-Z0-9_]+/,{cases:{"@typeKeywords":`keyword.type`,"@keywords":`keyword`,"@supportConstants":`keyword`,"@supportMacros":`keyword`,"@constants":`keyword`,"@default":`identifier`}}],[/\$/,`identifier`],[/'[a-zA-Z_][a-zA-Z0-9_]*(?=[^\'])/,`identifier`],[/'(\S|@escapes)'/,`string.byteliteral`],[/"/,{token:`string.quote`,bracket:`@open`,next:`@string`}],{include:`@numbers`},{include:`@whitespace`},[/@delimiters/,{cases:{"@keywords":`keyword`,"@default":`delimiter`}}],[/[{}()\[\]<>]/,`@brackets`],[/@symbols/,{cases:{"@operators":`operator`,"@default":``}}]],whitespace:[[/[ \t\r\n]+/,`white`],[/\/\*/,`comment`,`@comment`],[/\/\/.*$/,`comment`]],comment:[[/[^\/*]+/,`comment`],[/\/\*/,`comment`,`@push`],[`\\*/`,`comment`,`@pop`],[/[\/*]/,`comment`]],string:[[/[^\\"]+/,`string`],[/@escapes/,`string.escape`],[/\\./,`string.escape.invalid`],[/"/,{token:`string.quote`,bracket:`@close`,next:`@pop`}]],stringraw:[[/[^"#]+/,{token:`string`}],[/"(#*)/,{cases:{"$1==$S2":{token:`string.quote`,bracket:`@close`,next:`@pop`},"@default":{token:`string`}}}],[/["#]/,{token:`string`}]],numbers:[[/(0o[0-7_]+)(@intSuffixes)?/,{token:`number`}],[/(0b[0-1_]+)(@intSuffixes)?/,{token:`number`}],[/[\d][\d_]*(\.[\d][\d_]*)?[eE][+-][\d_]+(@floatSuffixes)?/,{token:`number`}],[/\b(\d\.?[\d_]*)(@floatSuffixes)?\b/,{token:`number`}],[/(0x[\da-fA-F]+)_?(@intSuffixes)?/,{token:`number`}],[/[\d][\d_]*(@intSuffixes?)?/,{token:`number`}]]}};export{e as conf,t as language};
@@ -0,0 +1,40 @@
1
+ import{n as e}from"./chunk-Y2CYZVJY-Di0sYzi1.js";import{p as t}from"./src-WBW1QxJt.js";import{H as n,J as r,K as i,U as a,a as o,d as s,s as c,v as l,w as u,x as d,y as f}from"./chunk-WYO6CB5R-C2bGaS5r.js";import{t as p}from"./ordinal-BLrOss5K.js";function m(e){for(var t=e.length/6|0,n=Array(t),r=0;r<t;)n[r]=`#`+e.slice(r*6,++r*6);return n}var h=m(`4e79a7f28e2ce1575976b7b259a14fedc949af7aa1ff9da79c755fbab0ab`);function g(e,t){let n;if(t===void 0)for(let t of e)t!=null&&(n<t||n===void 0&&t>=t)&&(n=t);else{let r=-1;for(let i of e)(i=t(i,++r,e))!=null&&(n<i||n===void 0&&i>=i)&&(n=i)}return n}function _(e,t){let n;if(t===void 0)for(let t of e)t!=null&&(n>t||n===void 0&&t>=t)&&(n=t);else{let r=-1;for(let i of e)(i=t(i,++r,e))!=null&&(n>i||n===void 0&&i>=i)&&(n=i)}return n}function v(e,t){let n=0;if(t===void 0)for(let t of e)(t=+t)&&(n+=t);else{let r=-1;for(let i of e)(i=+t(i,++r,e))&&(n+=i)}return n}function y(e){return e.target.depth}function b(e){return e.depth}function x(e,t){return t-1-e.height}function S(e,t){return e.sourceLinks.length?e.depth:t-1}function C(e){return e.targetLinks.length?e.depth:e.sourceLinks.length?_(e.sourceLinks,y)-1:0}function w(e){return function(){return e}}function T(e,t){return D(e.source,t.source)||e.index-t.index}function E(e,t){return D(e.target,t.target)||e.index-t.index}function D(e,t){return e.y0-t.y0}function O(e){return e.value}function k(e){return e.index}function A(e){return e.nodes}function j(e){return e.links}function M(e,t){let n=e.get(t);if(!n)throw Error(`missing: `+t);return n}function N({nodes:e}){for(let t of e){let e=t.y0,n=e;for(let n of t.sourceLinks)n.y0=e+n.width/2,e+=n.width;for(let e of t.targetLinks)e.y1=n+e.width/2,n+=e.width}}function P(){let e=0,t=0,n=1,r=1,i=24,a=8,o,s=k,c=S,l,u,d=A,f=j,p=6;function m(){let e={nodes:d.apply(null,arguments),links:f.apply(null,arguments)};return h(e),y(e),b(e),x(e),F(e),N(e),e}m.update=function(e){return N(e),e},m.nodeId=function(e){return arguments.length?(s=typeof e==`function`?e:w(e),m):s},m.nodeAlign=function(e){return arguments.length?(c=typeof e==`function`?e:w(e),m):c},m.nodeSort=function(e){return arguments.length?(l=e,m):l},m.nodeWidth=function(e){return arguments.length?(i=+e,m):i},m.nodePadding=function(e){return arguments.length?(a=o=+e,m):a},m.nodes=function(e){return arguments.length?(d=typeof e==`function`?e:w(e),m):d},m.links=function(e){return arguments.length?(f=typeof e==`function`?e:w(e),m):f},m.linkSort=function(e){return arguments.length?(u=e,m):u},m.size=function(i){return arguments.length?(e=t=0,n=+i[0],r=+i[1],m):[n-e,r-t]},m.extent=function(i){return arguments.length?(e=+i[0][0],n=+i[1][0],t=+i[0][1],r=+i[1][1],m):[[e,t],[n,r]]},m.iterations=function(e){return arguments.length?(p=+e,m):p};function h({nodes:e,links:t}){for(let[t,n]of e.entries())n.index=t,n.sourceLinks=[],n.targetLinks=[];let n=new Map(e.map((t,n)=>[s(t,n,e),t]));for(let[e,r]of t.entries()){r.index=e;let{source:t,target:i}=r;typeof t!=`object`&&(t=r.source=M(n,t)),typeof i!=`object`&&(i=r.target=M(n,i)),t.sourceLinks.push(r),i.targetLinks.push(r)}if(u!=null)for(let{sourceLinks:t,targetLinks:n}of e)t.sort(u),n.sort(u)}function y({nodes:e}){for(let t of e)t.value=t.fixedValue===void 0?Math.max(v(t.sourceLinks,O),v(t.targetLinks,O)):t.fixedValue}function b({nodes:e}){let t=e.length,n=new Set(e),r=new Set,i=0;for(;n.size;){for(let e of n){e.depth=i;for(let{target:t}of e.sourceLinks)r.add(t)}if(++i>t)throw Error(`circular link`);n=r,r=new Set}}function x({nodes:e}){let t=e.length,n=new Set(e),r=new Set,i=0;for(;n.size;){for(let e of n){e.height=i;for(let{source:t}of e.targetLinks)r.add(t)}if(++i>t)throw Error(`circular link`);n=r,r=new Set}}function C({nodes:t}){let r=g(t,e=>e.depth)+1,a=(n-e-i)/(r-1),o=Array(r);for(let n of t){let t=Math.max(0,Math.min(r-1,Math.floor(c.call(null,n,r))));n.layer=t,n.x0=e+t*a,n.x1=n.x0+i,o[t]?o[t].push(n):o[t]=[n]}if(l)for(let e of o)e.sort(l);return o}function P(e){let n=_(e,e=>(r-t-(e.length-1)*o)/v(e,O));for(let i of e){let e=t;for(let t of i){t.y0=e,t.y1=e+t.value*n,e=t.y1+o;for(let e of t.sourceLinks)e.width=e.value*n}e=(r-e+o)/(i.length+1);for(let t=0;t<i.length;++t){let n=i[t];n.y0+=e*(t+1),n.y1+=e*(t+1)}H(i)}}function F(e){let n=C(e);o=Math.min(a,(r-t)/(g(n,e=>e.length)-1)),P(n);for(let e=0;e<p;++e){let t=.99**e,r=Math.max(1-t,(e+1)/p);L(n,t,r),I(n,t,r)}}function I(e,t,n){for(let r=1,i=e.length;r<i;++r){let i=e[r];for(let e of i){let n=0,r=0;for(let{source:t,value:i}of e.targetLinks){let a=i*(e.layer-t.layer);n+=U(t,e)*a,r+=a}if(!(r>0))continue;let i=(n/r-e.y0)*t;e.y0+=i,e.y1+=i,V(e)}l===void 0&&i.sort(D),R(i,n)}}function L(e,t,n){for(let r=e.length-2;r>=0;--r){let i=e[r];for(let e of i){let n=0,r=0;for(let{target:t,value:i}of e.sourceLinks){let a=i*(t.layer-e.layer);n+=W(e,t)*a,r+=a}if(!(r>0))continue;let i=(n/r-e.y0)*t;e.y0+=i,e.y1+=i,V(e)}l===void 0&&i.sort(D),R(i,n)}}function R(e,n){let i=e.length>>1,a=e[i];B(e,a.y0-o,i-1,n),z(e,a.y1+o,i+1,n),B(e,r,e.length-1,n),z(e,t,0,n)}function z(e,t,n,r){for(;n<e.length;++n){let i=e[n],a=(t-i.y0)*r;a>1e-6&&(i.y0+=a,i.y1+=a),t=i.y1+o}}function B(e,t,n,r){for(;n>=0;--n){let i=e[n],a=(i.y1-t)*r;a>1e-6&&(i.y0-=a,i.y1-=a),t=i.y0-o}}function V({sourceLinks:e,targetLinks:t}){if(u===void 0){for(let{source:{sourceLinks:e}}of t)e.sort(E);for(let{target:{targetLinks:t}}of e)t.sort(T)}}function H(e){if(u===void 0)for(let{sourceLinks:t,targetLinks:n}of e)t.sort(E),n.sort(T)}function U(e,t){let n=e.y0-(e.sourceLinks.length-1)*o/2;for(let{target:r,width:i}of e.sourceLinks){if(r===t)break;n+=i+o}for(let{source:r,width:i}of t.targetLinks){if(r===e)break;n-=i}return n}function W(e,t){let n=t.y0-(t.targetLinks.length-1)*o/2;for(let{source:r,width:i}of t.targetLinks){if(r===e)break;n+=i+o}for(let{target:r,width:i}of e.sourceLinks){if(r===t)break;n-=i}return n}return m}var F=Math.PI,I=2*F,L=1e-6,R=I-L;function z(){this._x0=this._y0=this._x1=this._y1=null,this._=``}function B(){return new z}z.prototype=B.prototype={constructor:z,moveTo:function(e,t){this._+=`M`+(this._x0=this._x1=+e)+`,`+(this._y0=this._y1=+t)},closePath:function(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._+=`Z`)},lineTo:function(e,t){this._+=`L`+(this._x1=+e)+`,`+(this._y1=+t)},quadraticCurveTo:function(e,t,n,r){this._+=`Q`+ +e+`,`+ +t+`,`+(this._x1=+n)+`,`+(this._y1=+r)},bezierCurveTo:function(e,t,n,r,i,a){this._+=`C`+ +e+`,`+ +t+`,`+ +n+`,`+ +r+`,`+(this._x1=+i)+`,`+(this._y1=+a)},arcTo:function(e,t,n,r,i){e=+e,t=+t,n=+n,r=+r,i=+i;var a=this._x1,o=this._y1,s=n-e,c=r-t,l=a-e,u=o-t,d=l*l+u*u;if(i<0)throw Error(`negative radius: `+i);if(this._x1===null)this._+=`M`+(this._x1=e)+`,`+(this._y1=t);else if(d>L)if(!(Math.abs(u*s-c*l)>L)||!i)this._+=`L`+(this._x1=e)+`,`+(this._y1=t);else{var f=n-a,p=r-o,m=s*s+c*c,h=f*f+p*p,g=Math.sqrt(m),_=Math.sqrt(d),v=i*Math.tan((F-Math.acos((m+d-h)/(2*g*_)))/2),y=v/_,b=v/g;Math.abs(y-1)>L&&(this._+=`L`+(e+y*l)+`,`+(t+y*u)),this._+=`A`+i+`,`+i+`,0,0,`+ +(u*f>l*p)+`,`+(this._x1=e+b*s)+`,`+(this._y1=t+b*c)}},arc:function(e,t,n,r,i,a){e=+e,t=+t,n=+n,a=!!a;var o=n*Math.cos(r),s=n*Math.sin(r),c=e+o,l=t+s,u=1^a,d=a?r-i:i-r;if(n<0)throw Error(`negative radius: `+n);this._x1===null?this._+=`M`+c+`,`+l:(Math.abs(this._x1-c)>L||Math.abs(this._y1-l)>L)&&(this._+=`L`+c+`,`+l),n&&(d<0&&(d=d%I+I),d>R?this._+=`A`+n+`,`+n+`,0,1,`+u+`,`+(e-o)+`,`+(t-s)+`A`+n+`,`+n+`,0,1,`+u+`,`+(this._x1=c)+`,`+(this._y1=l):d>L&&(this._+=`A`+n+`,`+n+`,0,`+ +(d>=F)+`,`+u+`,`+(this._x1=e+n*Math.cos(i))+`,`+(this._y1=t+n*Math.sin(i))))},rect:function(e,t,n,r){this._+=`M`+(this._x0=this._x1=+e)+`,`+(this._y0=this._y1=+t)+`h`+ +n+`v`+ +r+`h`+-n+`Z`},toString:function(){return this._}};function V(e){return function(){return e}}function H(e){return e[0]}function U(e){return e[1]}var W=Array.prototype.slice;function G(e){return e.source}function ee(e){return e.target}function te(e){var t=G,n=ee,r=H,i=U,a=null;function o(){var o,s=W.call(arguments),c=t.apply(this,s),l=n.apply(this,s);if(a||=o=B(),e(a,+r.apply(this,(s[0]=c,s)),+i.apply(this,s),+r.apply(this,(s[0]=l,s)),+i.apply(this,s)),o)return a=null,o+``||null}return o.source=function(e){return arguments.length?(t=e,o):t},o.target=function(e){return arguments.length?(n=e,o):n},o.x=function(e){return arguments.length?(r=typeof e==`function`?e:V(+e),o):r},o.y=function(e){return arguments.length?(i=typeof e==`function`?e:V(+e),o):i},o.context=function(e){return arguments.length?(a=e??null,o):a},o}function ne(e,t,n,r,i){e.moveTo(t,n),e.bezierCurveTo(t=(t+r)/2,n,t,i,r,i)}function re(){return te(ne)}function ie(e){return[e.source.x1,e.y0]}function ae(e){return[e.target.x0,e.y1]}function K(){return re().source(ie).target(ae)}var q=(function(){var t=e(function(e,t,n,r){for(n||={},r=e.length;r--;n[e[r]]=t);return n},`o`),n=[1,9],r=[1,10],i=[1,5,10,12],a={trace:e(function(){},`trace`),yy:{},symbols_:{error:2,start:3,SANKEY:4,NEWLINE:5,csv:6,opt_eof:7,record:8,csv_tail:9,EOF:10,"field[source]":11,COMMA:12,"field[target]":13,"field[value]":14,field:15,escaped:16,non_escaped:17,DQUOTE:18,ESCAPED_TEXT:19,NON_ESCAPED_TEXT:20,$accept:0,$end:1},terminals_:{2:`error`,4:`SANKEY`,5:`NEWLINE`,10:`EOF`,11:`field[source]`,12:`COMMA`,13:`field[target]`,14:`field[value]`,18:`DQUOTE`,19:`ESCAPED_TEXT`,20:`NON_ESCAPED_TEXT`},productions_:[0,[3,4],[6,2],[9,2],[9,0],[7,1],[7,0],[8,5],[15,1],[15,1],[16,3],[17,1]],performAction:e(function(e,t,n,r,i,a,o){var s=a.length-1;switch(i){case 7:let e=r.findOrCreateNode(a[s-4].trim().replaceAll(`""`,`"`)),t=r.findOrCreateNode(a[s-2].trim().replaceAll(`""`,`"`)),n=parseFloat(a[s].trim());r.addLink(e,t,n);break;case 8:case 9:case 11:this.$=a[s];break;case 10:this.$=a[s-1];break}},`anonymous`),table:[{3:1,4:[1,2]},{1:[3]},{5:[1,3]},{6:4,8:5,15:6,16:7,17:8,18:n,20:r},{1:[2,6],7:11,10:[1,12]},t(r,[2,4],{9:13,5:[1,14]}),{12:[1,15]},t(i,[2,8]),t(i,[2,9]),{19:[1,16]},t(i,[2,11]),{1:[2,1]},{1:[2,5]},t(r,[2,2]),{6:17,8:5,15:6,16:7,17:8,18:n,20:r},{15:18,16:7,17:8,18:n,20:r},{18:[1,19]},t(r,[2,3]),{12:[1,20]},t(i,[2,10]),{15:21,16:7,17:8,18:n,20:r},t([1,5,10],[2,7])],defaultActions:{11:[2,1],12:[2,5]},parseError:e(function(e,t){if(t.recoverable)this.trace(e);else{var n=Error(e);throw n.hash=t,n}},`parseError`),parse:e(function(t){var n=this,r=[0],i=[],a=[null],o=[],s=this.table,c=``,l=0,u=0,d=0,f=2,p=1,m=o.slice.call(arguments,1),h=Object.create(this.lexer),g={yy:{}};for(var _ in this.yy)Object.prototype.hasOwnProperty.call(this.yy,_)&&(g.yy[_]=this.yy[_]);h.setInput(t,g.yy),g.yy.lexer=h,g.yy.parser=this,h.yylloc===void 0&&(h.yylloc={});var v=h.yylloc;o.push(v);var y=h.options&&h.options.ranges;typeof g.yy.parseError==`function`?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function b(e){r.length-=2*e,a.length-=e,o.length-=e}e(b,`popStack`);function x(){var e=i.pop()||h.lex()||p;return typeof e!=`number`&&(e instanceof Array&&(i=e,e=i.pop()),e=n.symbols_[e]||e),e}e(x,`lex`);for(var S,C,w,T,E,D={},O,k,A,j;;){if(w=r[r.length-1],this.defaultActions[w]?T=this.defaultActions[w]:(S??=x(),T=s[w]&&s[w][S]),T===void 0||!T.length||!T[0]){var M=``;for(O in j=[],s[w])this.terminals_[O]&&O>f&&j.push(`'`+this.terminals_[O]+`'`);M=h.showPosition?`Parse error on line `+(l+1)+`:
2
+ `+h.showPosition()+`
3
+ Expecting `+j.join(`, `)+`, got '`+(this.terminals_[S]||S)+`'`:`Parse error on line `+(l+1)+`: Unexpected `+(S==p?`end of input`:`'`+(this.terminals_[S]||S)+`'`),this.parseError(M,{text:h.match,token:this.terminals_[S]||S,line:h.yylineno,loc:v,expected:j})}if(T[0]instanceof Array&&T.length>1)throw Error(`Parse Error: multiple actions possible at state: `+w+`, token: `+S);switch(T[0]){case 1:r.push(S),a.push(h.yytext),o.push(h.yylloc),r.push(T[1]),S=null,C?(S=C,C=null):(u=h.yyleng,c=h.yytext,l=h.yylineno,v=h.yylloc,d>0&&d--);break;case 2:if(k=this.productions_[T[1]][1],D.$=a[a.length-k],D._$={first_line:o[o.length-(k||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-(k||1)].first_column,last_column:o[o.length-1].last_column},y&&(D._$.range=[o[o.length-(k||1)].range[0],o[o.length-1].range[1]]),E=this.performAction.apply(D,[c,u,l,g.yy,T[1],a,o].concat(m)),E!==void 0)return E;k&&(r=r.slice(0,-1*k*2),a=a.slice(0,-1*k),o=o.slice(0,-1*k)),r.push(this.productions_[T[1]][0]),a.push(D.$),o.push(D._$),A=s[r[r.length-2]][r[r.length-1]],r.push(A);break;case 3:return!0}}return!0},`parse`)};a.lexer=(function(){return{EOF:1,parseError:e(function(e,t){if(this.yy.parser)this.yy.parser.parseError(e,t);else throw Error(e)},`parseError`),setInput:e(function(e,t){return this.yy=t||this.yy||{},this._input=e,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match=``,this.conditionStack=[`INITIAL`],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},`setInput`),input:e(function(){var e=this._input[0];return this.yytext+=e,this.yyleng++,this.offset++,this.match+=e,this.matched+=e,e.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),e},`input`),unput:e(function(e){var t=e.length,n=e.split(/(?:\r\n?|\n)/g);this._input=e+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-t),this.offset-=t;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-t},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-t]),this.yyleng=this.yytext.length,this},`unput`),more:e(function(){return this._more=!0,this},`more`),reject:e(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError(`Lexical error on line `+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
4
+ `+this.showPosition(),{text:``,token:null,line:this.yylineno});return this},`reject`),less:e(function(e){this.unput(this.match.slice(e))},`less`),pastInput:e(function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?`...`:``)+e.substr(-20).replace(/\n/g,``)},`pastInput`),upcomingInput:e(function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?`...`:``)).replace(/\n/g,``)},`upcomingInput`),showPosition:e(function(){var e=this.pastInput(),t=Array(e.length+1).join(`-`);return e+this.upcomingInput()+`
5
+ `+t+`^`},`showPosition`),test_match:e(function(e,t){var n,r,i;if(this.options.backtrack_lexer&&(i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(i.yylloc.range=this.yylloc.range.slice(0))),r=e[0].match(/(?:\r\n?|\n).*/g),r&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+e[0].length},this.yytext+=e[0],this.match+=e[0],this.matches=e,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(e[0].length),this.matched+=e[0],n=this.performAction.call(this,this.yy,this,t,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var a in i)this[a]=i[a];return!1}return!1},`test_match`),next:e(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var e,t,n,r;this._more||(this.yytext=``,this.match=``);for(var i=this._currentRules(),a=0;a<i.length;a++)if(n=this._input.match(this.rules[i[a]]),n&&(!t||n[0].length>t[0].length)){if(t=n,r=a,this.options.backtrack_lexer){if(e=this.test_match(n,i[a]),e!==!1)return e;if(this._backtrack){t=!1;continue}else return!1}else if(!this.options.flex)break}return t?(e=this.test_match(t,i[r]),e===!1?!1:e):this._input===``?this.EOF:this.parseError(`Lexical error on line `+(this.yylineno+1)+`. Unrecognized text.
6
+ `+this.showPosition(),{text:``,token:null,line:this.yylineno})},`next`),lex:e(function(){return this.next()||this.lex()},`lex`),begin:e(function(e){this.conditionStack.push(e)},`begin`),popState:e(function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},`popState`),_currentRules:e(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},`_currentRules`),topState:e(function(e){return e=this.conditionStack.length-1-Math.abs(e||0),e>=0?this.conditionStack[e]:`INITIAL`},`topState`),pushState:e(function(e){this.begin(e)},`pushState`),stateStackSize:e(function(){return this.conditionStack.length},`stateStackSize`),options:{"case-insensitive":!0},performAction:e(function(e,t,n,r){switch(n){case 0:return this.pushState(`csv`),4;case 1:return this.pushState(`csv`),4;case 2:return 10;case 3:return 5;case 4:return 12;case 5:return this.pushState(`escaped_text`),18;case 6:return 20;case 7:return this.popState(`escaped_text`),18;case 8:return 19}},`anonymous`),rules:[/^(?:sankey-beta\b)/i,/^(?:sankey\b)/i,/^(?:$)/i,/^(?:((\u000D\u000A)|(\u000A)))/i,/^(?:(\u002C))/i,/^(?:(\u0022))/i,/^(?:([\u0020-\u0021\u0023-\u002B\u002D-\u007E])*)/i,/^(?:(\u0022)(?!(\u0022)))/i,/^(?:(([\u0020-\u0021\u0023-\u002B\u002D-\u007E])|(\u002C)|(\u000D)|(\u000A)|(\u0022)(\u0022))*)/i],conditions:{csv:{rules:[2,3,4,5,6,7,8],inclusive:!1},escaped_text:{rules:[7,8],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8],inclusive:!0}}}})();function o(){this.yy={}}return e(o,`Parser`),o.prototype=a,a.Parser=o,new o})();q.parser=q;var J=q,Y=[],X=[],Z=new Map,oe=e(()=>{Y=[],X=[],Z=new Map,o()},`clear`),se=class{constructor(e,t,n=0){this.source=e,this.target=t,this.value=n}static{e(this,`SankeyLink`)}},ce=e((e,t,n)=>{Y.push(new se(e,t,n))},`addLink`),le=class{constructor(e){this.ID=e}static{e(this,`SankeyNode`)}},ue={nodesMap:Z,getConfig:e(()=>d().sankey,`getConfig`),getNodes:e(()=>X,`getNodes`),getLinks:e(()=>Y,`getLinks`),getGraph:e(()=>({nodes:X.map(e=>({id:e.ID})),links:Y.map(e=>({source:e.source.ID,target:e.target.ID,value:e.value}))}),`getGraph`),addLink:ce,findOrCreateNode:e(e=>{e=c.sanitizeText(e,d());let t=Z.get(e);return t===void 0&&(t=new le(e),Z.set(e,t),X.push(t)),t},`findOrCreateNode`),getAccTitle:f,setAccTitle:a,getAccDescription:l,setAccDescription:n,getDiagramTitle:u,setDiagramTitle:i,clear:oe},Q=class t{static{e(this,`Uid`)}static{this.count=0}static next(e){return new t(e+ ++t.count)}constructor(e){this.id=e,this.href=`#${e}`}toString(){return`url(`+this.href+`)`}},$={left:b,right:x,center:C,justify:S},de=e(e=>{let t=0,n=0;for(let r of e){let e=r.value??0;e>t&&(t=e,n=r.layer??0)}return n},`findCentralNodeLayer`),fe={draw:e(function(n,i,a,o){let{securityLevel:c,sankey:l}=d(),u=s.sankey,f;c===`sandbox`&&(f=t(`#i`+i));let m=t(c===`sandbox`?f.nodes()[0].contentDocument.body:`body`),g=c===`sandbox`?m.select(`[id="${i}"]`):t(`[id="${i}"]`),_=l?.width??u.width,v=l?.height??u.width,y=l?.useMaxWidth??u.useMaxWidth,b=l?.nodeAlignment??u.nodeAlignment,x=l?.prefix??u.prefix,S=l?.suffix??u.suffix,C=l?.showValues??u.showValues,w=l?.nodeWidth??u.nodeWidth??10,T=l?.nodePadding??u.nodePadding??12,E=l?.labelStyle??u.labelStyle??`legacy`,D=l?.nodeColors??{},O=o.db.getGraph(),k=$[b];P().nodeId(e=>e.id).nodeWidth(w).nodePadding(T+(C?15:0)).nodeAlign(k).extent([[0,0],[_,v]])(O);let A=de(O.nodes),j=p(h),M=e(e=>D[e]??j(e),`getNodeColor`);g.append(`g`).attr(`class`,`nodes`).selectAll(`.node`).data(O.nodes).join(`g`).attr(`class`,`node`).attr(`id`,e=>(e.uid=Q.next(`node-`)).id).attr(`transform`,function(e){return`translate(`+e.x0+`,`+e.y0+`)`}).attr(`x`,e=>e.x0).attr(`y`,e=>e.y0).append(`rect`).attr(`height`,e=>e.y1-e.y0).attr(`width`,e=>e.x1-e.x0).attr(`fill`,e=>M(e.id));let N=e(({id:e,value:t})=>C?`${e}
7
+ ${x}${Math.round(t*100)/100}${S}`:e,`getText`),F=e(e=>E===`outlined`?(e.layer??0)<A?{x:e.x0-6,anchor:`end`}:{x:e.x1+6,anchor:`start`}:e.x0<_/2?{x:e.x1+6,anchor:`start`}:{x:e.x0-6,anchor:`end`},`getLabelPosition`),I=g.append(`g`).attr(`class`,`node-labels`).attr(`font-size`,14),L=e(e=>I.selectAll(e?`.${e}`:`text`).data(O.nodes).join(`text`).attr(`class`,e??null).attr(`x`,e=>F(e).x).attr(`y`,e=>(e.y1+e.y0)/2).attr(`dy`,`${C?`0`:`0.35`}em`).attr(`text-anchor`,e=>F(e).anchor).text(N),`appendLabel`);E===`outlined`?(L(`sankey-label-bg`),L(`sankey-label-fg`)):L();let R=g.append(`g`).attr(`class`,`links`).attr(`fill`,`none`).attr(`stroke-opacity`,.5).selectAll(`.link`).data(O.links).join(`g`).attr(`class`,`link`).style(`mix-blend-mode`,`multiply`),z=l?.linkColor??`gradient`;if(z===`gradient`){let e=R.append(`linearGradient`).attr(`id`,e=>(e.uid=Q.next(`linearGradient-`)).id).attr(`gradientUnits`,`userSpaceOnUse`).attr(`x1`,e=>e.source.x1).attr(`x2`,e=>e.target.x0);e.append(`stop`).attr(`offset`,`0%`).attr(`stop-color`,e=>M(e.source.id)),e.append(`stop`).attr(`offset`,`100%`).attr(`stop-color`,e=>M(e.target.id))}let B;switch(z){case`gradient`:B=e(e=>e.uid,`coloring`);break;case`source`:B=e(e=>M(e.source.id),`coloring`);break;case`target`:B=e(e=>M(e.target.id),`coloring`);break;default:B=z}R.append(`path`).attr(`d`,K()).attr(`stroke`,B).attr(`stroke-width`,e=>Math.max(1,e.width)),r(void 0,g,0,y)},`draw`)},pe=e(e=>e.replaceAll(/^[^\S\n\r]+|[^\S\n\r]+$/g,``).replaceAll(/([\n\r])+/g,`
8
+ `).trim(),`prepareTextForParsing`),me=e(e=>`.label {
9
+ font-family: ${e.fontFamily};
10
+ }
11
+
12
+ .node-labels {
13
+ font-family: ${e.fontFamily};
14
+ }
15
+
16
+ /* Outlined label style - background stroke for better readability */
17
+ .sankey-label-bg {
18
+ stroke: ${e.mainBkg||e.background||`#fff`};
19
+ stroke-width: 4px;
20
+ stroke-linejoin: round;
21
+ paint-order: stroke;
22
+ }
23
+
24
+ /* Foreground label text */
25
+ .sankey-label-fg {
26
+ fill: ${e.textColor};
27
+ }
28
+
29
+ /* Node styling */
30
+ .node rect {
31
+ shape-rendering: crispEdges;
32
+ }
33
+
34
+ /* Link styling */
35
+ .link {
36
+ fill: none;
37
+ stroke-opacity: 0.5;
38
+ mix-blend-mode: multiply;
39
+ }
40
+ `,`getStyles`),he=J.parse.bind(J);J.parse=e=>he(pe(e));var ge={styles:me,parser:J,db:ue,renderer:fe};export{ge as diagram};
@@ -0,0 +1 @@
1
+ var e={comments:{lineComment:`'`},brackets:[[`(`,`)`],[`[`,`]`],[`If`,`EndIf`],[`While`,`EndWhile`],[`For`,`EndFor`],[`Sub`,`EndSub`]],autoClosingPairs:[{open:`"`,close:`"`,notIn:[`string`,`comment`]},{open:`(`,close:`)`,notIn:[`string`,`comment`]},{open:`[`,close:`]`,notIn:[`string`,`comment`]}]},t={defaultToken:``,tokenPostfix:`.sb`,ignoreCase:!0,brackets:[{token:`delimiter.array`,open:`[`,close:`]`},{token:`delimiter.parenthesis`,open:`(`,close:`)`},{token:`keyword.tag-if`,open:`If`,close:`EndIf`},{token:`keyword.tag-while`,open:`While`,close:`EndWhile`},{token:`keyword.tag-for`,open:`For`,close:`EndFor`},{token:`keyword.tag-sub`,open:`Sub`,close:`EndSub`}],keywords:[`Else`,`ElseIf`,`EndFor`,`EndIf`,`EndSub`,`EndWhile`,`For`,`Goto`,`If`,`Step`,`Sub`,`Then`,`To`,`While`],tagwords:[`If`,`Sub`,`While`,`For`],operators:[`>`,`<`,`<>`,`<=`,`>=`,`And`,`Or`,`+`,`-`,`*`,`/`,`=`],identifier:/[a-zA-Z_][\w]*/,symbols:/[=><:+\-*\/%\.,]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[{include:`@whitespace`},[/(@identifier)(?=[.])/,`type`],[/@identifier/,{cases:{"@keywords":{token:`keyword.$0`},"@operators":`operator`,"@default":`variable.name`}}],[/([.])(@identifier)/,{cases:{$2:[`delimiter`,`type.member`],"@default":``}}],[/\d*\.\d+/,`number.float`],[/\d+/,`number`],[/[()\[\]]/,`@brackets`],[/@symbols/,{cases:{"@operators":`operator`,"@default":`delimiter`}}],[/"([^"\\]|\\.)*$/,`string.invalid`],[/"/,`string`,`@string`]],whitespace:[[/[ \t\r\n]+/,``],[/(\').*$/,`comment`]],string:[[/[^\\"]+/,`string`],[/@escapes/,`string.escape`],[/\\./,`string.escape.invalid`],[/"C?/,`string`,`@pop`]]}};export{e as conf,t as language};
@@ -0,0 +1 @@
1
+ var e={wordPattern:/(unary_[@~!#%^&*()\-=+\\|:<>\/?]+)|([a-zA-Z_$][\w$]*?_=)|(`[^`]+`)|([a-zA-Z_$][\w$]*)/g,comments:{lineComment:`//`,blockComment:[`/*`,`*/`]},brackets:[[`{`,`}`],[`[`,`]`],[`(`,`)`]],autoClosingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`"`,close:`"`},{open:`'`,close:`'`}],surroundingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`"`,close:`"`},{open:`'`,close:`'`}],folding:{markers:{start:RegExp(`^\\s*//\\s*(?:(?:#?region\\b)|(?:<editor-fold\\b))`),end:RegExp(`^\\s*//\\s*(?:(?:#?endregion\\b)|(?:</editor-fold>))`)}}},t={tokenPostfix:`.scala`,keywords:`asInstanceOf.catch.class.classOf.def.do.else.extends.finally.for.foreach.forSome.if.import.isInstanceOf.macro.match.new.object.package.return.throw.trait.try.type.until.val.var.while.with.yield.given.enum.then`.split(`.`),softKeywords:[`as`,`export`,`extension`,`end`,`derives`,`on`],constants:[`true`,`false`,`null`,`this`,`super`],modifiers:[`abstract`,`final`,`implicit`,`lazy`,`override`,`private`,`protected`,`sealed`],softModifiers:[`inline`,`opaque`,`open`,`transparent`,`using`],name:/(?:[a-z_$][\w$]*|`[^`]+`)/,type:/(?:[A-Z][\w$]*)/,symbols:/[=><!~?:&|+\-*\/^\\%@#]+/,digits:/\d+(_+\d+)*/,hexdigits:/[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/,escapes:/\\(?:[btnfr\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,fstring_conv:/[bBhHsScCdoxXeEfgGaAt]|[Tn](?:[HIklMSLNpzZsQ]|[BbhAaCYyjmde]|[RTrDFC])/,tokenizer:{root:[[/\braw"""/,{token:`string.quote`,bracket:`@open`,next:`@rawstringt`}],[/\braw"/,{token:`string.quote`,bracket:`@open`,next:`@rawstring`}],[/\bs"""/,{token:`string.quote`,bracket:`@open`,next:`@sstringt`}],[/\bs"/,{token:`string.quote`,bracket:`@open`,next:`@sstring`}],[/\bf""""/,{token:`string.quote`,bracket:`@open`,next:`@fstringt`}],[/\bf"/,{token:`string.quote`,bracket:`@open`,next:`@fstring`}],[/"""/,{token:`string.quote`,bracket:`@open`,next:`@stringt`}],[/"/,{token:`string.quote`,bracket:`@open`,next:`@string`}],[/(@digits)[eE]([\-+]?(@digits))?[fFdD]?/,`number.float`,`@allowMethod`],[/(@digits)\.(@digits)([eE][\-+]?(@digits))?[fFdD]?/,`number.float`,`@allowMethod`],[/0[xX](@hexdigits)[Ll]?/,`number.hex`,`@allowMethod`],[/(@digits)[fFdD]/,`number.float`,`@allowMethod`],[/(@digits)[lL]?/,`number`,`@allowMethod`],[/\b_\*/,`key`],[/\b(_)\b/,`keyword`,`@allowMethod`],[/\bimport\b/,`keyword`,`@import`],[/\b(case)([ \t]+)(class)\b/,[`keyword.modifier`,`white`,`keyword`]],[/\bcase\b/,`keyword`,`@case`],[/\bva[lr]\b/,`keyword`,`@vardef`],[/\b(def)([ \t]+)((?:unary_)?@symbols|@name(?:_=)|@name)/,[`keyword`,`white`,`identifier`]],[/@name(?=[ \t]*:(?!:))/,`variable`],[/(\.)(@name|@symbols)/,[`operator`,{token:`@rematch`,next:`@allowMethod`}]],[/([{(])(\s*)(@name(?=\s*=>))/,[`@brackets`,`white`,`variable`]],[/@name/,{cases:{"@keywords":`keyword`,"@softKeywords":`keyword`,"@modifiers":`keyword.modifier`,"@softModifiers":`keyword.modifier`,"@constants":{token:`constant`,next:`@allowMethod`},"@default":{token:`identifier`,next:`@allowMethod`}}}],[/@type/,`type`,`@allowMethod`],{include:`@whitespace`},[/@[a-zA-Z_$][\w$]*(?:\.[a-zA-Z_$][\w$]*)*/,`annotation`],[/[{(]/,`@brackets`],[/[})]/,`@brackets`,`@allowMethod`],[/\[/,`operator.square`],[/](?!\s*(?:va[rl]|def|type)\b)/,`operator.square`,`@allowMethod`],[/]/,`operator.square`],[/([=-]>|<-|>:|<:|:>|<%)(?=[\s\w()[\]{},\."'`])/,`keyword`],[/@symbols/,`operator`],[/[;,\.]/,`delimiter`],[/'[a-zA-Z$][\w$]*(?!')/,`attribute.name`],[/'[^\\']'/,`string`,`@allowMethod`],[/(')(@escapes)(')/,[`string`,`string.escape`,{token:`string`,next:`@allowMethod`}]],[/'/,`string.invalid`]],import:[[/;/,`delimiter`,`@pop`],[/^|$/,``,`@pop`],[/[ \t]+/,`white`],[/[\n\r]+/,`white`,`@pop`],[/\/\*/,`comment`,`@comment`],[/@name|@type/,`type`],[/[(){}]/,`@brackets`],[/[[\]]/,`operator.square`],[/[\.,]/,`delimiter`]],allowMethod:[[/^|$/,``,`@pop`],[/[ \t]+/,`white`],[/[\n\r]+/,`white`,`@pop`],[/\/\*/,`comment`,`@comment`],[/(?==>[\s\w([{])/,`keyword`,`@pop`],[/(@name|@symbols)(?=[ \t]*[[({"'`]|[ \t]+(?:[+-]?\.?\d|\w))/,{cases:{"@keywords":{token:`keyword`,next:`@pop`},"->|<-|>:|<:|<%":{token:`keyword`,next:`@pop`},"@default":{token:`@rematch`,next:`@pop`}}}],[``,``,`@pop`]],comment:[[/[^\/*]+/,`comment`],[/\/\*/,`comment`,`@push`],[/\*\//,`comment`,`@pop`],[/[\/*]/,`comment`]],case:[[/\b_\*/,`key`],[/\b(_|true|false|null|this|super)\b/,`keyword`,`@allowMethod`],[/\bif\b|=>/,`keyword`,`@pop`],[/`[^`]+`/,`identifier`,`@allowMethod`],[/@name/,`variable`,`@allowMethod`],[/:::?|\||@(?![a-z_$])/,`keyword`],{include:`@root`}],vardef:[[/\b_\*/,`key`],[/\b(_|true|false|null|this|super)\b/,`keyword`],[/@name/,`variable`],[/:::?|\||@(?![a-z_$])/,`keyword`],[/=|:(?!:)/,`operator`,`@pop`],[/$/,`white`,`@pop`],{include:`@root`}],string:[[/[^\\"\n\r]+/,`string`],[/@escapes/,`string.escape`],[/\\./,`string.escape.invalid`],[/"/,{token:`string.quote`,bracket:`@close`,switchTo:`@allowMethod`}]],stringt:[[/[^\\"\n\r]+/,`string`],[/@escapes/,`string.escape`],[/\\./,`string.escape.invalid`],[/"(?=""")/,`string`],[/"""/,{token:`string.quote`,bracket:`@close`,switchTo:`@allowMethod`}],[/"/,`string`]],fstring:[[/@escapes/,`string.escape`],[/"/,{token:`string.quote`,bracket:`@close`,switchTo:`@allowMethod`}],[/\$\$/,`string`],[/(\$)([a-z_]\w*)/,[`operator`,`identifier`]],[/\$\{/,`operator`,`@interp`],[/%%/,`string`],[/(%)([\-#+ 0,(])(\d+|\.\d+|\d+\.\d+)(@fstring_conv)/,[`metatag`,`keyword.modifier`,`number`,`metatag`]],[/(%)(\d+|\.\d+|\d+\.\d+)(@fstring_conv)/,[`metatag`,`number`,`metatag`]],[/(%)([\-#+ 0,(])(@fstring_conv)/,[`metatag`,`keyword.modifier`,`metatag`]],[/(%)(@fstring_conv)/,[`metatag`,`metatag`]],[/./,`string`]],fstringt:[[/@escapes/,`string.escape`],[/"(?=""")/,`string`],[/"""/,{token:`string.quote`,bracket:`@close`,switchTo:`@allowMethod`}],[/\$\$/,`string`],[/(\$)([a-z_]\w*)/,[`operator`,`identifier`]],[/\$\{/,`operator`,`@interp`],[/%%/,`string`],[/(%)([\-#+ 0,(])(\d+|\.\d+|\d+\.\d+)(@fstring_conv)/,[`metatag`,`keyword.modifier`,`number`,`metatag`]],[/(%)(\d+|\.\d+|\d+\.\d+)(@fstring_conv)/,[`metatag`,`number`,`metatag`]],[/(%)([\-#+ 0,(])(@fstring_conv)/,[`metatag`,`keyword.modifier`,`metatag`]],[/(%)(@fstring_conv)/,[`metatag`,`metatag`]],[/./,`string`]],sstring:[[/@escapes/,`string.escape`],[/"/,{token:`string.quote`,bracket:`@close`,switchTo:`@allowMethod`}],[/\$\$/,`string`],[/(\$)([a-z_]\w*)/,[`operator`,`identifier`]],[/\$\{/,`operator`,`@interp`],[/./,`string`]],sstringt:[[/@escapes/,`string.escape`],[/"(?=""")/,`string`],[/"""/,{token:`string.quote`,bracket:`@close`,switchTo:`@allowMethod`}],[/\$\$/,`string`],[/(\$)([a-z_]\w*)/,[`operator`,`identifier`]],[/\$\{/,`operator`,`@interp`],[/./,`string`]],interp:[[/{/,`operator`,`@push`],[/}/,`operator`,`@pop`],{include:`@root`}],rawstring:[[/[^"]/,`string`],[/"/,{token:`string.quote`,bracket:`@close`,switchTo:`@allowMethod`}]],rawstringt:[[/[^"]/,`string`],[/"(?=""")/,`string`],[/"""/,{token:`string.quote`,bracket:`@close`,switchTo:`@allowMethod`}],[/"/,`string`]],whitespace:[[/[ \t\r\n]+/,`white`],[/\/\*/,`comment`,`@comment`],[/\/\/.*$/,`comment`]]}};export{e as conf,t as language};
@@ -0,0 +1 @@
1
+ var e={comments:{lineComment:`;`,blockComment:[`#|`,`|#`]},brackets:[[`(`,`)`],[`{`,`}`],[`[`,`]`]],autoClosingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`"`,close:`"`}],surroundingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`"`,close:`"`}]},t={defaultToken:``,ignoreCase:!0,tokenPostfix:`.scheme`,brackets:[{open:`(`,close:`)`,token:`delimiter.parenthesis`},{open:`{`,close:`}`,token:`delimiter.curly`},{open:`[`,close:`]`,token:`delimiter.square`}],keywords:[`case`,`do`,`let`,`loop`,`if`,`else`,`when`,`cons`,`car`,`cdr`,`cond`,`lambda`,`lambda*`,`syntax-rules`,`format`,`set!`,`quote`,`eval`,`append`,`list`,`list?`,`member?`,`load`],constants:[`#t`,`#f`],operators:[`eq?`,`eqv?`,`equal?`,`and`,`or`,`not`,`null?`],tokenizer:{root:[[/#[xXoObB][0-9a-fA-F]+/,`number.hex`],[/[+-]?\d+(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?/,`number.float`],[/(?:\b(?:(define|define-syntax|define-macro))\b)(\s+)((?:\w|\-|\!|\?)*)/,[`keyword`,`white`,`variable`]],{include:`@whitespace`},{include:`@strings`},[/[a-zA-Z_#][a-zA-Z0-9_\-\?\!\*]*/,{cases:{"@keywords":`keyword`,"@constants":`constant`,"@operators":`operators`,"@default":`identifier`}}]],comment:[[/[^\|#]+/,`comment`],[/#\|/,`comment`,`@push`],[/\|#/,`comment`,`@pop`],[/[\|#]/,`comment`]],whitespace:[[/[ \t\r\n]+/,`white`],[/#\|/,`comment`,`@comment`],[/;.*$/,`comment`]],strings:[[/"$/,`string`,`@popall`],[/"(?=.)/,`string`,`@multiLineString`]],multiLineString:[[/[^\\"]+$/,`string`,`@popall`],[/[^\\"]+/,`string`],[/\\./,`string.escape`],[/"/,`string`,`@popall`],[/\\$/,`string`]]}};export{e as conf,t as language};
@@ -0,0 +1,3 @@
1
+ var e={wordPattern:/(#?-?\d*\.\d\w*%?)|([@$#!.:]?[\w-?]+%?)|[@#!.]/g,comments:{blockComment:[`/*`,`*/`],lineComment:`//`},brackets:[[`{`,`}`],[`[`,`]`],[`(`,`)`]],autoClosingPairs:[{open:`{`,close:`}`,notIn:[`string`,`comment`]},{open:`[`,close:`]`,notIn:[`string`,`comment`]},{open:`(`,close:`)`,notIn:[`string`,`comment`]},{open:`"`,close:`"`,notIn:[`string`,`comment`]},{open:`'`,close:`'`,notIn:[`string`,`comment`]}],surroundingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`"`,close:`"`},{open:`'`,close:`'`}],folding:{markers:{start:RegExp(`^\\s*\\/\\*\\s*#region\\b\\s*(.*?)\\s*\\*\\/`),end:RegExp(`^\\s*\\/\\*\\s*#endregion\\b.*\\*\\/`)}}},t={defaultToken:``,tokenPostfix:`.scss`,ws:`[
2
+ \r\f]*`,identifier:`-?-?([a-zA-Z]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))([\\w\\-]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))*`,brackets:[{open:`{`,close:`}`,token:`delimiter.curly`},{open:`[`,close:`]`,token:`delimiter.bracket`},{open:`(`,close:`)`,token:`delimiter.parenthesis`},{open:`<`,close:`>`,token:`delimiter.angle`}],tokenizer:{root:[{include:`@selector`}],selector:[{include:`@comments`},{include:`@import`},{include:`@variabledeclaration`},{include:`@warndebug`},[`[@](include)`,{token:`keyword`,next:`@includedeclaration`}],[`[@](keyframes|-webkit-keyframes|-moz-keyframes|-o-keyframes)`,{token:`keyword`,next:`@keyframedeclaration`}],[`[@](page|content|font-face|-moz-document)`,{token:`keyword`}],[`[@](charset|namespace)`,{token:`keyword`,next:`@declarationbody`}],[`[@](function)`,{token:`keyword`,next:`@functiondeclaration`}],[`[@](mixin)`,{token:`keyword`,next:`@mixindeclaration`}],[`url(\\-prefix)?\\(`,{token:`meta`,next:`@urldeclaration`}],{include:`@controlstatement`},{include:`@selectorname`},[`[&\\*]`,`tag`],[`[>\\+,]`,`delimiter`],[`\\[`,{token:`delimiter.bracket`,next:`@selectorattribute`}],[`{`,{token:`delimiter.curly`,next:`@selectorbody`}]],selectorbody:[[`[*_]?@identifier@ws:(?=(\\s|\\d|[^{;}]*[;}]))`,`attribute.name`,`@rulevalue`],{include:`@selector`},[`[@](extend)`,{token:`keyword`,next:`@extendbody`}],[`[@](return)`,{token:`keyword`,next:`@declarationbody`}],[`}`,{token:`delimiter.curly`,next:`@pop`}]],selectorname:[[`#{`,{token:`meta`,next:`@variableinterpolation`}],[`(\\.|#(?=[^{])|%|(@identifier)|:)+`,`tag`]],selectorattribute:[{include:`@term`},[`]`,{token:`delimiter.bracket`,next:`@pop`}]],term:[{include:`@comments`},[`url(\\-prefix)?\\(`,{token:`meta`,next:`@urldeclaration`}],{include:`@functioninvocation`},{include:`@numbers`},{include:`@strings`},{include:`@variablereference`},[`(and\\b|or\\b|not\\b)`,`operator`],{include:`@name`},[`([<>=\\+\\-\\*\\/\\^\\|\\~,])`,`operator`],[`,`,`delimiter`],[`!default`,`literal`],[`\\(`,{token:`delimiter.parenthesis`,next:`@parenthizedterm`}]],rulevalue:[{include:`@term`},[`!important`,`literal`],[`;`,`delimiter`,`@pop`],[`{`,{token:`delimiter.curly`,switchTo:`@nestedproperty`}],[`(?=})`,{token:``,next:`@pop`}]],nestedproperty:[[`[*_]?@identifier@ws:`,`attribute.name`,`@rulevalue`],{include:`@comments`},[`}`,{token:`delimiter.curly`,next:`@pop`}]],warndebug:[[`[@](warn|debug)`,{token:`keyword`,next:`@declarationbody`}]],import:[[`[@](import)`,{token:`keyword`,next:`@declarationbody`}]],variabledeclaration:[[`\\$@identifier@ws:`,`variable.decl`,`@declarationbody`]],urldeclaration:[{include:`@strings`},[`[^)\r
3
+ ]+`,`string`],[`\\)`,{token:`meta`,next:`@pop`}]],parenthizedterm:[{include:`@term`},[`\\)`,{token:`delimiter.parenthesis`,next:`@pop`}]],declarationbody:[{include:`@term`},[`;`,`delimiter`,`@pop`],[`(?=})`,{token:``,next:`@pop`}]],extendbody:[{include:`@selectorname`},[`!optional`,`literal`],[`;`,`delimiter`,`@pop`],[`(?=})`,{token:``,next:`@pop`}]],variablereference:[[`\\$@identifier`,`variable.ref`],[`\\.\\.\\.`,`operator`],[`#{`,{token:`meta`,next:`@variableinterpolation`}]],variableinterpolation:[{include:`@variablereference`},[`}`,{token:`meta`,next:`@pop`}]],comments:[[`\\/\\*`,`comment`,`@comment`],[`\\/\\/+.*`,`comment`]],comment:[[`\\*\\/`,`comment`,`@pop`],[`.`,`comment`]],name:[[`@identifier`,`attribute.value`]],numbers:[[`(\\d*\\.)?\\d+([eE][\\-+]?\\d+)?`,{token:`number`,next:`@units`}],[`#[0-9a-fA-F_]+(?!\\w)`,`number.hex`]],units:[[`(em|ex|ch|rem|fr|vmin|vmax|vw|vh|vm|cm|mm|in|px|pt|pc|deg|grad|rad|turn|s|ms|Hz|kHz|%)?`,`number`,`@pop`]],functiondeclaration:[[`@identifier@ws\\(`,{token:`meta`,next:`@parameterdeclaration`}],[`{`,{token:`delimiter.curly`,switchTo:`@functionbody`}]],mixindeclaration:[[`@identifier@ws\\(`,{token:`meta`,next:`@parameterdeclaration`}],[`@identifier`,`meta`],[`{`,{token:`delimiter.curly`,switchTo:`@selectorbody`}]],parameterdeclaration:[[`\\$@identifier@ws:`,`variable.decl`],[`\\.\\.\\.`,`operator`],[`,`,`delimiter`],{include:`@term`},[`\\)`,{token:`meta`,next:`@pop`}]],includedeclaration:[{include:`@functioninvocation`},[`@identifier`,`meta`],[`;`,`delimiter`,`@pop`],[`(?=})`,{token:``,next:`@pop`}],[`{`,{token:`delimiter.curly`,switchTo:`@selectorbody`}]],keyframedeclaration:[[`@identifier`,`meta`],[`{`,{token:`delimiter.curly`,switchTo:`@keyframebody`}]],keyframebody:[{include:`@term`},[`{`,{token:`delimiter.curly`,next:`@selectorbody`}],[`}`,{token:`delimiter.curly`,next:`@pop`}]],controlstatement:[[`[@](if|else|for|while|each|media)`,{token:`keyword.flow`,next:`@controlstatementdeclaration`}]],controlstatementdeclaration:[[`(in|from|through|if|to)\\b`,{token:`keyword.flow`}],{include:`@term`},[`{`,{token:`delimiter.curly`,switchTo:`@selectorbody`}]],functionbody:[[`[@](return)`,{token:`keyword`}],{include:`@variabledeclaration`},{include:`@term`},{include:`@controlstatement`},[`;`,`delimiter`],[`}`,{token:`delimiter.curly`,next:`@pop`}]],functioninvocation:[[`@identifier\\(`,{token:`meta`,next:`@functionarguments`}]],functionarguments:[[`\\$@identifier@ws:`,`attribute.name`],[`[,]`,`delimiter`],{include:`@term`},[`\\)`,{token:`meta`,next:`@pop`}]],strings:[[`~?"`,{token:`string.delimiter`,next:`@stringenddoublequote`}],[`~?'`,{token:`string.delimiter`,next:`@stringendquote`}]],stringenddoublequote:[[`\\\\.`,`string`],[`"`,{token:`string.delimiter`,next:`@pop`}],[`.`,`string`]],stringendquote:[[`\\\\.`,`string`],[`'`,{token:`string.delimiter`,next:`@pop`}],[`.`,`string`]]}};export{e as conf,t as language};