@nldd/design-system 0.8.80 → 0.8.83

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 (302) hide show
  1. package/custom-elements.json +1138 -71
  2. package/dist/components/actions/button/button.d.ts +5 -0
  3. package/dist/components/actions/button/button.d.ts.map +1 -1
  4. package/dist/components/actions/button/button.js +8 -0
  5. package/dist/components/actions/button/button.js.map +1 -1
  6. package/dist/components/actions/button/button.template.d.ts.map +1 -1
  7. package/dist/components/actions/button/button.template.js +2 -0
  8. package/dist/components/actions/button/button.template.js.map +1 -1
  9. package/dist/components/actions/icon-button/icon-button.d.ts +1 -1
  10. package/dist/components/actions/icon-button/icon-button.js +1 -1
  11. package/dist/components/actions/menu/menu.d.ts +25 -2
  12. package/dist/components/actions/menu/menu.d.ts.map +1 -1
  13. package/dist/components/actions/menu/menu.js +31 -8
  14. package/dist/components/actions/menu/menu.js.map +1 -1
  15. package/dist/components/actions/menu/menu.template.d.ts +1 -1
  16. package/dist/components/actions/menu/menu.template.d.ts.map +1 -1
  17. package/dist/components/actions/menu/menu.template.js +7 -3
  18. package/dist/components/actions/menu/menu.template.js.map +1 -1
  19. package/dist/components/actions/toolbar/toolbar.d.ts +20 -0
  20. package/dist/components/actions/toolbar/toolbar.d.ts.map +1 -1
  21. package/dist/components/actions/toolbar/toolbar.js +54 -0
  22. package/dist/components/actions/toolbar/toolbar.js.map +1 -1
  23. package/dist/components/breakpoints-CkxsiRgH.js +10 -0
  24. package/dist/components/components.js +52643 -117
  25. package/dist/components/content/avatar/avatar.styles.d.ts.map +1 -1
  26. package/dist/components/content/avatar/avatar.styles.js +5 -1
  27. package/dist/components/content/avatar/avatar.styles.js.map +1 -1
  28. package/dist/components/content/icon/icon-aliases.d.ts.map +1 -1
  29. package/dist/components/content/icon/icon-aliases.js +78 -6
  30. package/dist/components/content/icon/icon-aliases.js.map +1 -1
  31. package/dist/components/content/icon/icon-gallery-status.d.ts.map +1 -1
  32. package/dist/components/content/icon/icon-gallery-status.js +63 -92
  33. package/dist/components/content/icon/icon-gallery-status.js.map +1 -1
  34. package/dist/components/content/icon/icon-registry.d.ts.map +1 -1
  35. package/dist/components/content/icon/icon-registry.js +44 -6
  36. package/dist/components/content/icon/icon-registry.js.map +1 -1
  37. package/dist/components/content/icon/icon.d.ts +8 -2
  38. package/dist/components/content/icon/icon.d.ts.map +1 -1
  39. package/dist/components/content/icon/icon.js +17 -2
  40. package/dist/components/content/icon/icon.js.map +1 -1
  41. package/dist/components/content/icon/icon.styles.d.ts.map +1 -1
  42. package/dist/components/content/icon/icon.styles.js +8 -0
  43. package/dist/components/content/icon/icon.styles.js.map +1 -1
  44. package/dist/components/content/text/text.d.ts +50 -0
  45. package/dist/components/content/text/text.d.ts.map +1 -0
  46. package/dist/components/content/text/text.js +81 -0
  47. package/dist/components/content/text/text.js.map +1 -0
  48. package/dist/components/content/text/text.styles.d.ts +2 -0
  49. package/dist/components/content/text/text.styles.d.ts.map +1 -0
  50. package/dist/components/content/text/text.styles.js +116 -0
  51. package/dist/components/content/text/text.styles.js.map +1 -0
  52. package/dist/components/content/text/text.template.d.ts +3 -0
  53. package/dist/components/content/text/text.template.d.ts.map +1 -0
  54. package/dist/components/content/text/text.template.js +7 -0
  55. package/dist/components/content/text/text.template.js.map +1 -0
  56. package/dist/components/content/title/title.styles.d.ts.map +1 -1
  57. package/dist/components/content/title/title.styles.js +9 -13
  58. package/dist/components/content/title/title.styles.js.map +1 -1
  59. package/dist/components/decorate-BKn10QQi.js +9 -0
  60. package/dist/components/dist-BYVOPNHp.js +381 -0
  61. package/dist/components/dist-Bq4xc7Bm.js +624 -0
  62. package/dist/components/dist-C0PiB1dr.js +870 -0
  63. package/dist/components/dist-C400RcFU.js +1498 -0
  64. package/dist/components/dist-CCg5Mso_.js +390 -0
  65. package/dist/components/dist-CJR_Rwhh.js +464 -0
  66. package/dist/components/dist-Ccw7ZfsU.js +18481 -0
  67. package/dist/components/dist-OBifyiJS.js +887 -0
  68. package/dist/components/dist-TpIL8G4G.js +1480 -0
  69. package/dist/components/dist-afrAoubg.js +1181 -0
  70. package/dist/components/dist-bO14jlsr.js +78 -0
  71. package/dist/components/forms/form-field/form-field.d.ts +59 -2
  72. package/dist/components/forms/form-field/form-field.d.ts.map +1 -1
  73. package/dist/components/forms/form-field/form-field.js +120 -35
  74. package/dist/components/forms/form-field/form-field.js.map +1 -1
  75. package/dist/components/gherkin-uCVRxsGf.js +108 -0
  76. package/dist/components/icon-C1Kikpol.js +841 -0
  77. package/dist/components/icon-button-BYy6hnAY.js +1676 -0
  78. package/dist/components/index.d.ts +2 -1
  79. package/dist/components/index.d.ts.map +1 -1
  80. package/dist/components/index.js +2 -1
  81. package/dist/components/index.js.map +1 -1
  82. package/dist/components/input-modality-DhTeUxKi.js +43 -0
  83. package/dist/components/inputs/checkbox/checkbox.d.ts +8 -0
  84. package/dist/components/inputs/checkbox/checkbox.d.ts.map +1 -1
  85. package/dist/components/inputs/checkbox/checkbox.js +10 -0
  86. package/dist/components/inputs/checkbox/checkbox.js.map +1 -1
  87. package/dist/components/inputs/checkbox-field/checkbox-field.d.ts +9 -0
  88. package/dist/components/inputs/checkbox-field/checkbox-field.d.ts.map +1 -1
  89. package/dist/components/inputs/checkbox-field/checkbox-field.js +11 -0
  90. package/dist/components/inputs/checkbox-field/checkbox-field.js.map +1 -1
  91. package/dist/components/inputs/code-editor/code-editor.d.ts +3 -0
  92. package/dist/components/inputs/code-editor/code-editor.d.ts.map +1 -1
  93. package/dist/components/inputs/code-editor/code-editor.js +3 -0
  94. package/dist/components/inputs/code-editor/code-editor.js.map +1 -1
  95. package/dist/components/inputs/combo-box/combo-box.d.ts +8 -0
  96. package/dist/components/inputs/combo-box/combo-box.d.ts.map +1 -1
  97. package/dist/components/inputs/combo-box/combo-box.js +36 -0
  98. package/dist/components/inputs/combo-box/combo-box.js.map +1 -1
  99. package/dist/components/inputs/combo-box/combo-box.styles.d.ts.map +1 -1
  100. package/dist/components/inputs/combo-box/combo-box.styles.js +5 -0
  101. package/dist/components/inputs/combo-box/combo-box.styles.js.map +1 -1
  102. package/dist/components/inputs/combo-box/combo-box.template.d.ts.map +1 -1
  103. package/dist/components/inputs/combo-box/combo-box.template.js +23 -20
  104. package/dist/components/inputs/combo-box/combo-box.template.js.map +1 -1
  105. package/dist/components/inputs/date-field/date-field.d.ts +6 -0
  106. package/dist/components/inputs/date-field/date-field.d.ts.map +1 -1
  107. package/dist/components/inputs/date-field/date-field.js +11 -0
  108. package/dist/components/inputs/date-field/date-field.js.map +1 -1
  109. package/dist/components/inputs/date-field/date-field.template.d.ts.map +1 -1
  110. package/dist/components/inputs/date-field/date-field.template.js +7 -1
  111. package/dist/components/inputs/date-field/date-field.template.js.map +1 -1
  112. package/dist/components/inputs/date-picker/date-picker.d.ts +3 -0
  113. package/dist/components/inputs/date-picker/date-picker.d.ts.map +1 -1
  114. package/dist/components/inputs/date-picker/date-picker.js +4 -1
  115. package/dist/components/inputs/date-picker/date-picker.js.map +1 -1
  116. package/dist/components/inputs/dropdown/dropdown.d.ts +29 -0
  117. package/dist/components/inputs/dropdown/dropdown.d.ts.map +1 -1
  118. package/dist/components/inputs/dropdown/dropdown.js +44 -1
  119. package/dist/components/inputs/dropdown/dropdown.js.map +1 -1
  120. package/dist/components/inputs/file-field/file-field.d.ts +3 -0
  121. package/dist/components/inputs/file-field/file-field.d.ts.map +1 -1
  122. package/dist/components/inputs/file-field/file-field.js +3 -0
  123. package/dist/components/inputs/file-field/file-field.js.map +1 -1
  124. package/dist/components/inputs/multi-line-text-field/multi-line-text-field.d.ts +11 -1
  125. package/dist/components/inputs/multi-line-text-field/multi-line-text-field.d.ts.map +1 -1
  126. package/dist/components/inputs/multi-line-text-field/multi-line-text-field.js +11 -0
  127. package/dist/components/inputs/multi-line-text-field/multi-line-text-field.js.map +1 -1
  128. package/dist/components/inputs/multi-line-text-field/multi-line-text-field.template.d.ts.map +1 -1
  129. package/dist/components/inputs/multi-line-text-field/multi-line-text-field.template.js +2 -0
  130. package/dist/components/inputs/multi-line-text-field/multi-line-text-field.template.js.map +1 -1
  131. package/dist/components/inputs/number-field/number-field.d.ts +9 -0
  132. package/dist/components/inputs/number-field/number-field.d.ts.map +1 -1
  133. package/dist/components/inputs/number-field/number-field.js +12 -0
  134. package/dist/components/inputs/number-field/number-field.js.map +1 -1
  135. package/dist/components/inputs/number-field/number-field.template.d.ts.map +1 -1
  136. package/dist/components/inputs/number-field/number-field.template.js +1 -0
  137. package/dist/components/inputs/number-field/number-field.template.js.map +1 -1
  138. package/dist/components/inputs/password-field/password-field.d.ts +9 -0
  139. package/dist/components/inputs/password-field/password-field.d.ts.map +1 -1
  140. package/dist/components/inputs/password-field/password-field.js +12 -0
  141. package/dist/components/inputs/password-field/password-field.js.map +1 -1
  142. package/dist/components/inputs/password-field/password-field.template.d.ts.map +1 -1
  143. package/dist/components/inputs/password-field/password-field.template.js +1 -0
  144. package/dist/components/inputs/password-field/password-field.template.js.map +1 -1
  145. package/dist/components/inputs/radio-button/radio-button.d.ts +8 -0
  146. package/dist/components/inputs/radio-button/radio-button.d.ts.map +1 -1
  147. package/dist/components/inputs/radio-button/radio-button.js +10 -0
  148. package/dist/components/inputs/radio-button/radio-button.js.map +1 -1
  149. package/dist/components/inputs/radio-button-field/radio-button-field.d.ts +9 -0
  150. package/dist/components/inputs/radio-button-field/radio-button-field.d.ts.map +1 -1
  151. package/dist/components/inputs/radio-button-field/radio-button-field.js +11 -0
  152. package/dist/components/inputs/radio-button-field/radio-button-field.js.map +1 -1
  153. package/dist/components/inputs/radio-button-group/radio-button-group.d.ts +16 -0
  154. package/dist/components/inputs/radio-button-group/radio-button-group.d.ts.map +1 -1
  155. package/dist/components/inputs/radio-button-group/radio-button-group.js +33 -0
  156. package/dist/components/inputs/radio-button-group/radio-button-group.js.map +1 -1
  157. package/dist/components/inputs/search-field/search-field.d.ts +6 -0
  158. package/dist/components/inputs/search-field/search-field.d.ts.map +1 -1
  159. package/dist/components/inputs/search-field/search-field.js +6 -0
  160. package/dist/components/inputs/search-field/search-field.js.map +1 -1
  161. package/dist/components/inputs/segmented-control/segmented-control.d.ts +16 -0
  162. package/dist/components/inputs/segmented-control/segmented-control.d.ts.map +1 -1
  163. package/dist/components/inputs/segmented-control/segmented-control.js +26 -7
  164. package/dist/components/inputs/segmented-control/segmented-control.js.map +1 -1
  165. package/dist/components/inputs/stepper/stepper.d.ts +17 -0
  166. package/dist/components/inputs/stepper/stepper.d.ts.map +1 -1
  167. package/dist/components/inputs/stepper/stepper.js +22 -0
  168. package/dist/components/inputs/stepper/stepper.js.map +1 -1
  169. package/dist/components/inputs/stepper/stepper.template.js +1 -1
  170. package/dist/components/inputs/stepper/stepper.template.js.map +1 -1
  171. package/dist/components/inputs/switch/switch.d.ts +3 -0
  172. package/dist/components/inputs/switch/switch.d.ts.map +1 -1
  173. package/dist/components/inputs/switch/switch.js +3 -0
  174. package/dist/components/inputs/switch/switch.js.map +1 -1
  175. package/dist/components/inputs/switch-field/switch-field.d.ts +3 -0
  176. package/dist/components/inputs/switch-field/switch-field.d.ts.map +1 -1
  177. package/dist/components/inputs/switch-field/switch-field.js +3 -0
  178. package/dist/components/inputs/switch-field/switch-field.js.map +1 -1
  179. package/dist/components/inputs/text-editor/text-editor.d.ts +3 -0
  180. package/dist/components/inputs/text-editor/text-editor.d.ts.map +1 -1
  181. package/dist/components/inputs/text-editor/text-editor.js +4 -1
  182. package/dist/components/inputs/text-editor/text-editor.js.map +1 -1
  183. package/dist/components/inputs/text-field/text-field.d.ts +30 -0
  184. package/dist/components/inputs/text-field/text-field.d.ts.map +1 -1
  185. package/dist/components/inputs/text-field/text-field.js +60 -0
  186. package/dist/components/inputs/text-field/text-field.js.map +1 -1
  187. package/dist/components/inputs/text-field/text-field.template.d.ts.map +1 -1
  188. package/dist/components/inputs/text-field/text-field.template.js +3 -0
  189. package/dist/components/inputs/text-field/text-field.template.js.map +1 -1
  190. package/dist/components/inputs/time-field/time-field.d.ts +6 -0
  191. package/dist/components/inputs/time-field/time-field.d.ts.map +1 -1
  192. package/dist/components/inputs/time-field/time-field.js +11 -0
  193. package/dist/components/inputs/time-field/time-field.js.map +1 -1
  194. package/dist/components/inputs/time-field/time-field.template.d.ts.map +1 -1
  195. package/dist/components/inputs/time-field/time-field.template.js +7 -1
  196. package/dist/components/inputs/time-field/time-field.template.js.map +1 -1
  197. package/dist/components/inputs/time-picker/time-picker.d.ts +3 -0
  198. package/dist/components/inputs/time-picker/time-picker.d.ts.map +1 -1
  199. package/dist/components/inputs/time-picker/time-picker.js +4 -1
  200. package/dist/components/inputs/time-picker/time-picker.js.map +1 -1
  201. package/dist/components/inputs/toggle-button/toggle-button.d.ts +10 -0
  202. package/dist/components/inputs/toggle-button/toggle-button.d.ts.map +1 -1
  203. package/dist/components/inputs/toggle-button/toggle-button.js +14 -0
  204. package/dist/components/inputs/toggle-button/toggle-button.js.map +1 -1
  205. package/dist/components/inputs/toggle-button-group/toggle-button-group.d.ts +11 -0
  206. package/dist/components/inputs/toggle-button-group/toggle-button-group.d.ts.map +1 -1
  207. package/dist/components/inputs/toggle-button-group/toggle-button-group.js +16 -6
  208. package/dist/components/inputs/toggle-button-group/toggle-button-group.js.map +1 -1
  209. package/dist/components/inputs/token-field/token-field.d.ts +6 -0
  210. package/dist/components/inputs/token-field/token-field.d.ts.map +1 -1
  211. package/dist/components/inputs/token-field/token-field.js +13 -0
  212. package/dist/components/inputs/token-field/token-field.js.map +1 -1
  213. package/dist/components/layout/box/box.d.ts +3 -3
  214. package/dist/components/layout/box/box.d.ts.map +1 -1
  215. package/dist/components/layout/box/box.js +3 -3
  216. package/dist/components/layout/box/box.js.map +1 -1
  217. package/dist/components/layout/box/box.styles.d.ts.map +1 -1
  218. package/dist/components/layout/box/box.styles.js +3 -6
  219. package/dist/components/layout/box/box.styles.js.map +1 -1
  220. package/dist/components/layout/sheet/sheet.styles.d.ts.map +1 -1
  221. package/dist/components/layout/sheet/sheet.styles.js +10 -3
  222. package/dist/components/layout/sheet/sheet.styles.js.map +1 -1
  223. package/dist/components/lists-and-tables/list/list.d.ts +60 -45
  224. package/dist/components/lists-and-tables/list/list.d.ts.map +1 -1
  225. package/dist/components/lists-and-tables/list/list.js +94 -80
  226. package/dist/components/lists-and-tables/list/list.js.map +1 -1
  227. package/dist/components/lists-and-tables/list-item/list-item.d.ts +94 -21
  228. package/dist/components/lists-and-tables/list-item/list-item.d.ts.map +1 -1
  229. package/dist/components/lists-and-tables/list-item/list-item.js +275 -48
  230. package/dist/components/lists-and-tables/list-item/list-item.js.map +1 -1
  231. package/dist/components/lists-and-tables/list-item/list-item.styles.d.ts.map +1 -1
  232. package/dist/components/lists-and-tables/list-item/list-item.styles.js +116 -34
  233. package/dist/components/lists-and-tables/list-item/list-item.styles.js.map +1 -1
  234. package/dist/components/lists-and-tables/list-item/list-item.template.d.ts +1 -1
  235. package/dist/components/lists-and-tables/list-item/list-item.template.d.ts.map +1 -1
  236. package/dist/components/lists-and-tables/list-item/list-item.template.js +5 -2
  237. package/dist/components/lists-and-tables/list-item/list-item.template.js.map +1 -1
  238. package/dist/components/lists-and-tables/list-item-segment/list-item-segment.d.ts +116 -0
  239. package/dist/components/lists-and-tables/list-item-segment/list-item-segment.d.ts.map +1 -0
  240. package/dist/components/lists-and-tables/{list-item-action/list-item-action.js → list-item-segment/list-item-segment.js} +77 -52
  241. package/dist/components/lists-and-tables/list-item-segment/list-item-segment.js.map +1 -0
  242. package/dist/components/lists-and-tables/list-item-segment/list-item-segment.styles.d.ts +2 -0
  243. package/dist/components/lists-and-tables/list-item-segment/list-item-segment.styles.d.ts.map +1 -0
  244. package/dist/components/lists-and-tables/list-item-segment/list-item-segment.styles.js +179 -0
  245. package/dist/components/lists-and-tables/list-item-segment/list-item-segment.styles.js.map +1 -0
  246. package/dist/components/lists-and-tables/list-item-segment/list-item-segment.template.d.ts +3 -0
  247. package/dist/components/lists-and-tables/list-item-segment/list-item-segment.template.d.ts.map +1 -0
  248. package/dist/components/lists-and-tables/{list-item-action/list-item-action.template.js → list-item-segment/list-item-segment.template.js} +5 -4
  249. package/dist/components/lists-and-tables/list-item-segment/list-item-segment.template.js.map +1 -0
  250. package/dist/components/reflect-non-default-OLaK60rT.js +37 -0
  251. package/dist/components/rolldown-runtime-D7D4PA-g.js +13 -0
  252. package/dist/components/shadow-resets-aG-rgyNQ.js +61 -0
  253. package/dist/components/shell-C61GCsJA.js +223 -0
  254. package/dist/components/status-and-feedback/badge/badge.d.ts +8 -2
  255. package/dist/components/status-and-feedback/badge/badge.d.ts.map +1 -1
  256. package/dist/components/status-and-feedback/badge/badge.js +17 -1
  257. package/dist/components/status-and-feedback/badge/badge.js.map +1 -1
  258. package/dist/components/status-and-feedback/badge/badge.styles.d.ts.map +1 -1
  259. package/dist/components/status-and-feedback/badge/badge.styles.js +35 -6
  260. package/dist/components/status-and-feedback/badge/badge.styles.js.map +1 -1
  261. package/dist/components/status-and-feedback/modal-dialog/modal-dialog.styles.d.ts.map +1 -1
  262. package/dist/components/status-and-feedback/modal-dialog/modal-dialog.styles.js +7 -0
  263. package/dist/components/status-and-feedback/modal-dialog/modal-dialog.styles.js.map +1 -1
  264. package/dist/components/toml-C2HBbPgG.js +59 -0
  265. package/dist/components/visibility-mixin-GxbwkBb1.js +104 -0
  266. package/dist/components/with-translations-DzAdFTK8.js +48 -0
  267. package/dist/css/variables.css +25 -1
  268. package/dist/nldd.min.js +2797 -2355
  269. package/dist/types/vue.d.ts +106 -48
  270. package/dist/utilities/implicit-submission.d.ts +31 -0
  271. package/dist/utilities/implicit-submission.d.ts.map +1 -0
  272. package/dist/utilities/implicit-submission.js +65 -0
  273. package/dist/utilities/implicit-submission.js.map +1 -0
  274. package/dist/utilities/owned-attribute.d.ts +19 -0
  275. package/dist/utilities/owned-attribute.d.ts.map +1 -0
  276. package/dist/utilities/owned-attribute.js +32 -0
  277. package/dist/utilities/owned-attribute.js.map +1 -0
  278. package/dist/utilities/scroll-mode-controller.d.ts +9 -1
  279. package/dist/utilities/scroll-mode-controller.d.ts.map +1 -1
  280. package/dist/utilities/scroll-mode-controller.js +10 -2
  281. package/dist/utilities/scroll-mode-controller.js.map +1 -1
  282. package/package.json +10 -6
  283. package/dist/components/gherkin-DhZlEZiy.js +0 -115
  284. package/dist/components/index-8pDDdMeW.js +0 -384
  285. package/dist/components/index-C7QocEcT.js +0 -81
  286. package/dist/components/index-CDz7-C9c.js +0 -177
  287. package/dist/components/index-CWQunWUb.js +0 -75039
  288. package/dist/components/index-CoY3JfIy.js +0 -688
  289. package/dist/components/index-DP9dl7P7.js +0 -703
  290. package/dist/components/index-DV_2YpaH.js +0 -405
  291. package/dist/components/lists-and-tables/list-item-action/list-item-action.d.ts +0 -108
  292. package/dist/components/lists-and-tables/list-item-action/list-item-action.d.ts.map +0 -1
  293. package/dist/components/lists-and-tables/list-item-action/list-item-action.js.map +0 -1
  294. package/dist/components/lists-and-tables/list-item-action/list-item-action.styles.d.ts +0 -2
  295. package/dist/components/lists-and-tables/list-item-action/list-item-action.styles.d.ts.map +0 -1
  296. package/dist/components/lists-and-tables/list-item-action/list-item-action.styles.js +0 -145
  297. package/dist/components/lists-and-tables/list-item-action/list-item-action.styles.js.map +0 -1
  298. package/dist/components/lists-and-tables/list-item-action/list-item-action.template.d.ts +0 -3
  299. package/dist/components/lists-and-tables/list-item-action/list-item-action.template.d.ts.map +0 -1
  300. package/dist/components/lists-and-tables/list-item-action/list-item-action.template.js.map +0 -1
  301. package/dist/components/shell-BlsXDxCn.js +0 -222
  302. package/dist/components/toml-BOuWGMcf.js +0 -76
@@ -1,688 +0,0 @@
1
- import { L as LRParser, E as ExternalTokenizer, C as ContextTracker, s as styleTags, t as tags, a as LanguageSupport, l as ifNotIn, h as syntaxTree, b as LRLanguage, i as indentNodeProp, e as delimitedIndent, f as foldNodeProp, d as foldInside, N as NodeWeakMap, I as IterMode, m as completeFromList, n as snippetCompletion } from "./index-CWQunWUb.js";
2
- const printKeyword = 1, indent = 194, dedent = 195, newline$1 = 196, blankLineStart = 197, newlineBracketed = 198, eof = 199, stringContent = 200, Escape = 2, replacementStart = 3, stringEnd = 201, ParenL = 24, ParenthesizedExpression = 25, TupleExpression = 49, ComprehensionExpression = 50, BracketL = 55, ArrayExpression = 56, ArrayComprehensionExpression = 57, BraceL = 59, DictionaryExpression = 60, DictionaryComprehensionExpression = 61, SetExpression = 62, SetComprehensionExpression = 63, ArgList = 65, subscript = 238, String$1 = 71, stringStart = 241, stringStartD = 242, stringStartL = 243, stringStartLD = 244, stringStartR = 245, stringStartRD = 246, stringStartRL = 247, stringStartRLD = 248, FormatString = 72, stringStartF = 249, stringStartFD = 250, stringStartFL = 251, stringStartFLD = 252, stringStartFR = 253, stringStartFRD = 254, stringStartFRL = 255, stringStartFRLD = 256, FormatReplacement = 73, nestedFormatReplacement = 77, importList = 263, TypeParamList = 112, ParamList = 130, SequencePattern = 151, MappingPattern = 152, PatternArgList = 155;
3
- const newline = 10, carriageReturn = 13, space = 32, tab = 9, hash = 35, parenOpen = 40, dot = 46, braceOpen = 123, braceClose = 125, singleQuote = 39, doubleQuote = 34, backslash = 92, letter_o = 111, letter_x = 120, letter_N = 78, letter_u = 117, letter_U = 85;
4
- const bracketed = /* @__PURE__ */ new Set([
5
- ParenthesizedExpression,
6
- TupleExpression,
7
- ComprehensionExpression,
8
- importList,
9
- ArgList,
10
- ParamList,
11
- ArrayExpression,
12
- ArrayComprehensionExpression,
13
- subscript,
14
- SetExpression,
15
- SetComprehensionExpression,
16
- FormatString,
17
- FormatReplacement,
18
- nestedFormatReplacement,
19
- DictionaryExpression,
20
- DictionaryComprehensionExpression,
21
- SequencePattern,
22
- MappingPattern,
23
- PatternArgList,
24
- TypeParamList
25
- ]);
26
- function isLineBreak(ch) {
27
- return ch == newline || ch == carriageReturn;
28
- }
29
- function isHex(ch) {
30
- return ch >= 48 && ch <= 57 || ch >= 65 && ch <= 70 || ch >= 97 && ch <= 102;
31
- }
32
- const newlines = new ExternalTokenizer((input, stack) => {
33
- let prev;
34
- if (input.next < 0) {
35
- input.acceptToken(eof);
36
- } else if (stack.context.flags & cx_Bracketed) {
37
- if (isLineBreak(input.next)) input.acceptToken(newlineBracketed, 1);
38
- } else if (((prev = input.peek(-1)) < 0 || isLineBreak(prev)) && stack.canShift(blankLineStart)) {
39
- let spaces = 0;
40
- while (input.next == space || input.next == tab) {
41
- input.advance();
42
- spaces++;
43
- }
44
- if (input.next == newline || input.next == carriageReturn || input.next == hash)
45
- input.acceptToken(blankLineStart, -spaces);
46
- } else if (isLineBreak(input.next)) {
47
- input.acceptToken(newline$1, 1);
48
- }
49
- }, { contextual: true });
50
- const indentation = new ExternalTokenizer((input, stack) => {
51
- let context = stack.context;
52
- if (context.flags) return;
53
- let prev = input.peek(-1);
54
- if (prev == newline || prev == carriageReturn) {
55
- let depth = 0, chars = 0;
56
- for (; ; ) {
57
- if (input.next == space) depth++;
58
- else if (input.next == tab) depth += 8 - depth % 8;
59
- else break;
60
- input.advance();
61
- chars++;
62
- }
63
- if (depth != context.indent && input.next != newline && input.next != carriageReturn && input.next != hash) {
64
- if (depth < context.indent) input.acceptToken(dedent, -chars);
65
- else input.acceptToken(indent);
66
- }
67
- }
68
- });
69
- const cx_Bracketed = 1, cx_String = 2, cx_DoubleQuote = 4, cx_Long = 8, cx_Raw = 16, cx_Format = 32;
70
- function Context(parent, indent2, flags) {
71
- this.parent = parent;
72
- this.indent = indent2;
73
- this.flags = flags;
74
- this.hash = (parent ? parent.hash + parent.hash << 8 : 0) + indent2 + (indent2 << 4) + flags + (flags << 6);
75
- }
76
- const topIndent = new Context(null, 0, 0);
77
- function countIndent(space2) {
78
- let depth = 0;
79
- for (let i = 0; i < space2.length; i++)
80
- depth += space2.charCodeAt(i) == tab ? 8 - depth % 8 : 1;
81
- return depth;
82
- }
83
- const stringFlags = new Map([
84
- [stringStart, 0],
85
- [stringStartD, cx_DoubleQuote],
86
- [stringStartL, cx_Long],
87
- [stringStartLD, cx_Long | cx_DoubleQuote],
88
- [stringStartR, cx_Raw],
89
- [stringStartRD, cx_Raw | cx_DoubleQuote],
90
- [stringStartRL, cx_Raw | cx_Long],
91
- [stringStartRLD, cx_Raw | cx_Long | cx_DoubleQuote],
92
- [stringStartF, cx_Format],
93
- [stringStartFD, cx_Format | cx_DoubleQuote],
94
- [stringStartFL, cx_Format | cx_Long],
95
- [stringStartFLD, cx_Format | cx_Long | cx_DoubleQuote],
96
- [stringStartFR, cx_Format | cx_Raw],
97
- [stringStartFRD, cx_Format | cx_Raw | cx_DoubleQuote],
98
- [stringStartFRL, cx_Format | cx_Raw | cx_Long],
99
- [stringStartFRLD, cx_Format | cx_Raw | cx_Long | cx_DoubleQuote]
100
- ].map(([term, flags]) => [term, flags | cx_String]));
101
- const trackIndent = new ContextTracker({
102
- start: topIndent,
103
- reduce(context, term, _, input) {
104
- if (context.flags & cx_Bracketed && bracketed.has(term) || (term == String$1 || term == FormatString) && context.flags & cx_String)
105
- return context.parent;
106
- return context;
107
- },
108
- shift(context, term, stack, input) {
109
- if (term == indent)
110
- return new Context(context, countIndent(input.read(input.pos, stack.pos)), 0);
111
- if (term == dedent)
112
- return context.parent;
113
- if (term == ParenL || term == BracketL || term == BraceL || term == replacementStart)
114
- return new Context(context, 0, cx_Bracketed);
115
- if (stringFlags.has(term))
116
- return new Context(context, 0, stringFlags.get(term) | context.flags & cx_Bracketed);
117
- return context;
118
- },
119
- hash(context) {
120
- return context.hash;
121
- }
122
- });
123
- const legacyPrint = new ExternalTokenizer((input) => {
124
- for (let i = 0; i < 5; i++) {
125
- if (input.next != "print".charCodeAt(i)) return;
126
- input.advance();
127
- }
128
- if (/\w/.test(String.fromCharCode(input.next))) return;
129
- for (let off = 0; ; off++) {
130
- let next = input.peek(off);
131
- if (next == space || next == tab) continue;
132
- if (next != parenOpen && next != dot && next != newline && next != carriageReturn && next != hash)
133
- input.acceptToken(printKeyword);
134
- return;
135
- }
136
- });
137
- const strings = new ExternalTokenizer((input, stack) => {
138
- let { flags } = stack.context;
139
- let quote = flags & cx_DoubleQuote ? doubleQuote : singleQuote;
140
- let long = (flags & cx_Long) > 0;
141
- let escapes = !(flags & cx_Raw);
142
- let format = (flags & cx_Format) > 0;
143
- let start = input.pos;
144
- for (; ; ) {
145
- if (input.next < 0) {
146
- break;
147
- } else if (format && input.next == braceOpen) {
148
- if (input.peek(1) == braceOpen) {
149
- input.advance(2);
150
- } else {
151
- if (input.pos == start) {
152
- input.acceptToken(replacementStart, 1);
153
- return;
154
- }
155
- break;
156
- }
157
- } else if (escapes && input.next == backslash) {
158
- if (input.pos == start) {
159
- input.advance();
160
- let escaped = input.next;
161
- if (escaped >= 0) {
162
- input.advance();
163
- skipEscape(input, escaped);
164
- }
165
- input.acceptToken(Escape);
166
- return;
167
- }
168
- break;
169
- } else if (input.next == backslash && !escapes && input.peek(1) > -1) {
170
- input.advance(2);
171
- } else if (input.next == quote && (!long || input.peek(1) == quote && input.peek(2) == quote)) {
172
- if (input.pos == start) {
173
- input.acceptToken(stringEnd, long ? 3 : 1);
174
- return;
175
- }
176
- break;
177
- } else if (input.next == newline) {
178
- if (long) {
179
- input.advance();
180
- } else if (input.pos == start) {
181
- input.acceptToken(stringEnd);
182
- return;
183
- }
184
- break;
185
- } else {
186
- input.advance();
187
- }
188
- }
189
- if (input.pos > start) input.acceptToken(stringContent);
190
- });
191
- function skipEscape(input, ch) {
192
- if (ch == letter_o) {
193
- for (let i = 0; i < 2 && input.next >= 48 && input.next <= 55; i++) input.advance();
194
- } else if (ch == letter_x) {
195
- for (let i = 0; i < 2 && isHex(input.next); i++) input.advance();
196
- } else if (ch == letter_u) {
197
- for (let i = 0; i < 4 && isHex(input.next); i++) input.advance();
198
- } else if (ch == letter_U) {
199
- for (let i = 0; i < 8 && isHex(input.next); i++) input.advance();
200
- } else if (ch == letter_N) {
201
- if (input.next == braceOpen) {
202
- input.advance();
203
- while (input.next >= 0 && input.next != braceClose && input.next != singleQuote && input.next != doubleQuote && input.next != newline) input.advance();
204
- if (input.next == braceClose) input.advance();
205
- }
206
- }
207
- }
208
- const pythonHighlighting = styleTags({
209
- 'async "*" "**" FormatConversion FormatSpec': tags.modifier,
210
- "for while if elif else try except finally return raise break continue with pass assert await yield match case": tags.controlKeyword,
211
- "in not and or is del": tags.operatorKeyword,
212
- "from def class global nonlocal lambda": tags.definitionKeyword,
213
- import: tags.moduleKeyword,
214
- "with as print": tags.keyword,
215
- Boolean: tags.bool,
216
- None: tags.null,
217
- VariableName: tags.variableName,
218
- "CallExpression/VariableName": tags.function(tags.variableName),
219
- "FunctionDefinition/VariableName": tags.function(tags.definition(tags.variableName)),
220
- "ClassDefinition/VariableName": tags.definition(tags.className),
221
- PropertyName: tags.propertyName,
222
- "CallExpression/MemberExpression/PropertyName": tags.function(tags.propertyName),
223
- Comment: tags.lineComment,
224
- Number: tags.number,
225
- String: tags.string,
226
- FormatString: tags.special(tags.string),
227
- Escape: tags.escape,
228
- UpdateOp: tags.updateOperator,
229
- "ArithOp!": tags.arithmeticOperator,
230
- BitOp: tags.bitwiseOperator,
231
- CompareOp: tags.compareOperator,
232
- AssignOp: tags.definitionOperator,
233
- Ellipsis: tags.punctuation,
234
- At: tags.meta,
235
- "( )": tags.paren,
236
- "[ ]": tags.squareBracket,
237
- "{ }": tags.brace,
238
- ".": tags.derefOperator,
239
- ", ;": tags.separator
240
- });
241
- const spec_identifier = { __proto__: null, await: 44, or: 54, and: 56, in: 60, not: 62, is: 64, if: 70, else: 72, lambda: 76, yield: 94, from: 96, async: 102, for: 104, None: 162, True: 164, False: 164, del: 178, pass: 182, break: 186, continue: 190, return: 194, raise: 202, import: 206, as: 208, global: 212, nonlocal: 214, assert: 218, type: 223, elif: 236, while: 240, try: 246, except: 248, finally: 250, with: 254, def: 258, class: 268, match: 279, case: 285 };
242
- const parser = LRParser.deserialize({
243
- version: 14,
244
- states: "##jQ`QeOOP$}OSOOO&WQtO'#HUOOQS'#Co'#CoOOQS'#Cp'#CpO'vQdO'#CnO*UQtO'#HTOOQS'#HU'#HUOOQS'#DU'#DUOOQS'#HT'#HTO*rQdO'#D_O+VQdO'#DfO+gQdO'#DjO+zOWO'#DuO,VOWO'#DvO.[QtO'#GuOOQS'#Gu'#GuO'vQdO'#GtO0ZQtO'#GtOOQS'#Eb'#EbO0rQdO'#EcOOQS'#Gs'#GsO0|QdO'#GrOOQV'#Gr'#GrO1XQdO'#FYOOQS'#G^'#G^O1^QdO'#FXOOQV'#IS'#ISOOQV'#Gq'#GqOOQV'#Fq'#FqQ`QeOOO'vQdO'#CqO1lQdO'#C}O1sQdO'#DRO2RQdO'#HYO2cQtO'#EVO'vQdO'#EWOOQS'#EY'#EYOOQS'#E['#E[OOQS'#E^'#E^O2wQdO'#E`O3_QdO'#EdO3rQdO'#EfO3zQtO'#EfO1XQdO'#EiO0rQdO'#ElO1XQdO'#EnO0rQdO'#EtO0rQdO'#EwO4VQdO'#EyO4^QdO'#FOO4iQdO'#EzO0rQdO'#FOO1XQdO'#FQO1XQdO'#FVO4nQdO'#F[P4uOdO'#GpPOOO)CBd)CBdOOQS'#Ce'#CeOOQS'#Cf'#CfOOQS'#Cg'#CgOOQS'#Ch'#ChOOQS'#Ci'#CiOOQS'#Cj'#CjOOQS'#Cl'#ClO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO5TQdO'#DoOOQS,5:Y,5:YO5hQdO'#HdOOQS,5:],5:]O5uQ!fO,5:]O5zQtO,59YO1lQdO,59bO1lQdO,59bO1lQdO,59bO8jQdO,59bO8oQdO,59bO8vQdO,59jO8}QdO'#HTO:TQdO'#HSOOQS'#HS'#HSOOQS'#D['#D[O:lQdO,59aO'vQdO,59aO:zQdO,59aOOQS,59y,59yO;PQdO,5:RO'vQdO,5:ROOQS,5:Q,5:QO;_QdO,5:QO;dQdO,5:XO'vQdO,5:XO'vQdO,5:VOOQS,5:U,5:UO;uQdO,5:UO;zQdO,5:WOOOW'#Fy'#FyO<POWO,5:aOOQS,5:a,5:aO<[QdO'#HwOOOW'#Dw'#DwOOOW'#Fz'#FzO<lOWO,5:bOOQS,5:b,5:bOOQS'#F}'#F}O<zQtO,5:iO?lQtO,5=`O@VQ#xO,5=`O@vQtO,5=`OOQS,5:},5:}OA_QeO'#GWOBqQdO,5;^OOQV,5=^,5=^OB|QtO'#IPOCkQdO,5;tOOQS-E:[-E:[OOQV,5;s,5;sO4dQdO'#FQOOQV-E9o-E9oOCsQtO,59]OEzQtO,59iOFeQdO'#HVOFpQdO'#HVO1XQdO'#HVOF{QdO'#DTOGTQdO,59mOGYQdO'#HZO'vQdO'#HZO0rQdO,5=tOOQS,5=t,5=tO0rQdO'#EROOQS'#ES'#ESOGwQdO'#GPOHXQdO,58|OHXQdO,58|O*xQdO,5:oOHgQtO'#H]OOQS,5:r,5:rOOQS,5:z,5:zOHzQdO,5;OOI]QdO'#IOO1XQdO'#H}OOQS,5;Q,5;QOOQS'#GT'#GTOIqQtO,5;QOJPQdO,5;QOJUQdO'#IQOOQS,5;T,5;TOJdQdO'#H|OOQS,5;W,5;WOJuQdO,5;YO4iQdO,5;`O4iQdO,5;cOJ}QtO'#ITO'vQdO'#ITOKXQdO,5;eO4VQdO,5;eO0rQdO,5;jO1XQdO,5;lOK^QeO'#EuOLjQgO,5;fO!!kQdO'#IUO4iQdO,5;jO!!vQdO,5;lO!#OQdO,5;qO!#ZQtO,5;vO'vQdO,5;vPOOO,5=[,5=[P!#bOSO,5=[P!#jOdO,5=[O!&bQtO1G.jO!&iQtO1G.jO!)YQtO1G.jO!)dQtO1G.jO!+}QtO1G.jO!,bQtO1G.jO!,uQdO'#HcO!-TQtO'#GuO0rQdO'#HcO!-_QdO'#HbOOQS,5:Z,5:ZO!-gQdO,5:ZO!-lQdO'#HeO!-wQdO'#HeO!.[QdO,5>OOOQS'#Ds'#DsOOQS1G/w1G/wOOQS1G.|1G.|O!/[QtO1G.|O!/cQtO1G.|O1lQdO1G.|O!0OQdO1G/UOOQS'#DZ'#DZO0rQdO,59tOOQS1G.{1G.{O!0VQdO1G/eO!0gQdO1G/eO!0oQdO1G/fO'vQdO'#H[O!0tQdO'#H[O!0yQtO1G.{O!1ZQdO,59iO!2aQdO,5=zO!2qQdO,5=zO!2yQdO1G/mO!3OQtO1G/mOOQS1G/l1G/lO!3`QdO,5=uO!4VQdO,5=uO0rQdO1G/qO!4tQdO1G/sO!4yQtO1G/sO!5ZQtO1G/qOOQS1G/p1G/pOOQS1G/r1G/rOOOW-E9w-E9wOOQS1G/{1G/{O!5kQdO'#HxO0rQdO'#HxO!5|QdO,5>cOOOW-E9x-E9xOOQS1G/|1G/|OOQS-E9{-E9{O!6[Q#xO1G2zO!6{QtO1G2zO'vQdO,5<jOOQS,5<j,5<jOOQS-E9|-E9|OOQS,5<r,5<rOOQS-E:U-E:UOOQV1G0x1G0xO1XQdO'#GRO!7dQtO,5>kOOQS1G1`1G1`O!8RQdO1G1`OOQS'#DV'#DVO0rQdO,5=qOOQS,5=q,5=qO!8WQdO'#FrO!8cQdO,59oO!8kQdO1G/XO!8uQtO,5=uOOQS1G3`1G3`OOQS,5:m,5:mO!9fQdO'#GtOOQS,5<k,5<kOOQS-E9}-E9}O!9wQdO1G.hOOQS1G0Z1G0ZO!:VQdO,5=wO!:gQdO,5=wO0rQdO1G0jO0rQdO1G0jO!:xQdO,5>jO!;ZQdO,5>jO1XQdO,5>jO!;lQdO,5>iOOQS-E:R-E:RO!;qQdO1G0lO!;|QdO1G0lO!<RQdO,5>lO!<aQdO,5>lO!<oQdO,5>hO!=VQdO,5>hO!=hQdO'#EpO0rQdO1G0tO!=sQdO1G0tO!=xQgO1G0zO!AvQgO1G0}O!EqQdO,5>oO!E{QdO,5>oO!FTQtO,5>oO0rQdO1G1PO!F_QdO1G1PO4iQdO1G1UO!!vQdO1G1WOOQV,5;a,5;aO!FdQfO,5;aO!FiQgO1G1QO!JjQdO'#GZO4iQdO1G1QO4iQdO1G1QO!JzQdO,5>pO!KXQdO,5>pO1XQdO,5>pOOQV1G1U1G1UO!KaQdO'#FSO!KrQ!fO1G1WO!KzQdO1G1WOOQV1G1]1G1]O4iQdO1G1]O!LPQdO1G1]O!LXQdO'#F^OOQV1G1b1G1bO!#ZQtO1G1bPOOO1G2v1G2vP!L^OSO1G2vOOQS,5=},5=}OOQS'#Dp'#DpO0rQdO,5=}O!LfQdO,5=|O!LyQdO,5=|OOQS1G/u1G/uO!MRQdO,5>PO!McQdO,5>PO!MkQdO,5>PO!NOQdO,5>PO!N`QdO,5>POOQS1G3j1G3jOOQS7+$h7+$hO!8kQdO7+$pO#!RQdO1G.|O#!YQdO1G.|OOQS1G/`1G/`OOQS,5<`,5<`O'vQdO,5<`OOQS7+%P7+%PO#!aQdO7+%POOQS-E9r-E9rOOQS7+%Q7+%QO#!qQdO,5=vO'vQdO,5=vOOQS7+$g7+$gO#!vQdO7+%PO##OQdO7+%QO##TQdO1G3fOOQS7+%X7+%XO##eQdO1G3fO##mQdO7+%XOOQS,5<_,5<_O'vQdO,5<_O##rQdO1G3aOOQS-E9q-E9qO#$iQdO7+%]OOQS7+%_7+%_O#$wQdO1G3aO#%fQdO7+%_O#%kQdO1G3gO#%{QdO1G3gO#&TQdO7+%]O#&YQdO,5>dO#&sQdO,5>dO#&sQdO,5>dOOQS'#Dx'#DxO#'UO&jO'#DzO#'aO`O'#HyOOOW1G3}1G3}O#'fQdO1G3}O#'nQdO1G3}O#'yQ#xO7+(fO#(jQtO1G2UP#)TQdO'#GOOOQS,5<m,5<mOOQS-E:P-E:POOQS7+&z7+&zOOQS1G3]1G3]OOQS,5<^,5<^OOQS-E9p-E9pOOQS7+$s7+$sO#)bQdO,5=`O#){QdO,5=`O#*^QtO,5<aO#*qQdO1G3cOOQS-E9s-E9sOOQS7+&U7+&UO#+RQdO7+&UO#+aQdO,5<nO#+uQdO1G4UOOQS-E:Q-E:QO#,WQdO1G4UOOQS1G4T1G4TOOQS7+&W7+&WO#,iQdO7+&WOOQS,5<p,5<pO#,tQdO1G4WOOQS-E:S-E:SOOQS,5<l,5<lO#-SQdO1G4SOOQS-E:O-E:OO1XQdO'#EqO#-jQdO'#EqO#-uQdO'#IRO#-}QdO,5;[OOQS7+&`7+&`O0rQdO7+&`O#.SQgO7+&fO!JmQdO'#GXO4iQdO7+&fO4iQdO7+&iO#2QQtO,5<tO'vQdO,5<tO#2[QdO1G4ZOOQS-E:W-E:WO#2fQdO1G4ZO4iQdO7+&kO0rQdO7+&kOOQV7+&p7+&pO!KrQ!fO7+&rO!KzQdO7+&rO`QeO1G0{OOQV-E:X-E:XO4iQdO7+&lO4iQdO7+&lOOQV,5<u,5<uO#2nQdO,5<uO!JmQdO,5<uOOQV7+&l7+&lO#2yQgO7+&lO#6tQdO,5<vO#7PQdO1G4[OOQS-E:Y-E:YO#7^QdO1G4[O#7fQdO'#IWO#7tQdO'#IWO1XQdO'#IWOOQS'#IW'#IWO#8PQdO'#IVOOQS,5;n,5;nO#8XQdO,5;nO0rQdO'#FUOOQV7+&r7+&rO4iQdO7+&rOOQV7+&w7+&wO4iQdO7+&wO#8^QfO,5;xOOQV7+&|7+&|POOO7+(b7+(bO#8cQdO1G3iOOQS,5<c,5<cO#8qQdO1G3hOOQS-E9u-E9uO#9UQdO,5<dO#9aQdO,5<dO#9tQdO1G3kOOQS-E9v-E9vO#:UQdO1G3kO#:^QdO1G3kO#:nQdO1G3kO#:UQdO1G3kOOQS<<H[<<H[O#:yQtO1G1zOOQS<<Hk<<HkP#;WQdO'#FtO8vQdO1G3bO#;eQdO1G3bO#;jQdO<<HkOOQS<<Hl<<HlO#;zQdO7+)QOOQS<<Hs<<HsO#<[QtO1G1yP#<{QdO'#FsO#=YQdO7+)RO#=jQdO7+)RO#=rQdO<<HwO#=wQdO7+({OOQS<<Hy<<HyO#>nQdO,5<bO'vQdO,5<bOOQS-E9t-E9tOOQS<<Hw<<HwOOQS,5<g,5<gO0rQdO,5<gO#>sQdO1G4OOOQS-E9y-E9yO#?^QdO1G4OO<[QdO'#H{OOOO'#D{'#D{OOOO'#F|'#F|O#?oO&jO,5:fOOOW,5>e,5>eOOOW7+)i7+)iO#?zQdO7+)iO#@SQdO1G2zO#@mQdO1G2zP'vQdO'#FuO0rQdO<<IpO1XQdO1G2YP1XQdO'#GSO#AOQdO7+)pO#AaQdO7+)pOOQS<<Ir<<IrP1XQdO'#GUP0rQdO'#GQOOQS,5;],5;]O#ArQdO,5>mO#BQQdO,5>mOOQS1G0v1G0vOOQS<<Iz<<IzOOQV-E:V-E:VO4iQdO<<JQOOQV,5<s,5<sO4iQdO,5<sOOQV<<JQ<<JQOOQV<<JT<<JTO#BYQtO1G2`P#BdQdO'#GYO#BkQdO7+)uO#BuQgO<<JVO4iQdO<<JVOOQV<<J^<<J^O4iQdO<<J^O!KrQ!fO<<J^O#FpQgO7+&gOOQV<<JW<<JWO#FzQgO<<JWOOQV1G2a1G2aO1XQdO1G2aO#JuQdO1G2aO4iQdO<<JWO1XQdO1G2bP0rQdO'#G[O#KQQdO7+)vO#K_QdO7+)vOOQS'#FT'#FTO0rQdO,5>rO#KgQdO,5>rO#KrQdO,5>rO#K}QdO,5>qO#L`QdO,5>qOOQS1G1Y1G1YOOQS,5;p,5;pOOQV<<Jc<<JcO#LhQdO1G1dOOQS7+)T7+)TP#LmQdO'#FwO#L}QdO1G2OO#MbQdO1G2OO#MrQdO1G2OP#M}QdO'#FxO#N[QdO7+)VO#NlQdO7+)VO#NlQdO7+)VO#NtQdO7+)VO$ UQdO7+(|O8vQdO7+(|OOQSAN>VAN>VO$ oQdO<<LmOOQSAN>cAN>cO0rQdO1G1|O$!PQtO1G1|P$!ZQdO'#FvOOQS1G2R1G2RP$!hQdO'#F{O$!uQdO7+)jO$#`QdO,5>gOOOO-E9z-E9zOOOW<<MT<<MTO$#nQdO7+(fOOQSAN?[AN?[OOQS7+'t7+'tO$$XQdO<<M[OOQS,5<q,5<qO$$jQdO1G4XOOQS-E:T-E:TOOQVAN?lAN?lOOQV1G2_1G2_O4iQdOAN?qO$$xQgOAN?qOOQVAN?xAN?xO4iQdOAN?xOOQV<<JR<<JRO4iQdOAN?rO4iQdO7+'{OOQV7+'{7+'{O1XQdO7+'{OOQVAN?rAN?rOOQS7+'|7+'|O$(sQdO<<MbOOQS1G4^1G4^O0rQdO1G4^OOQS,5<w,5<wO$)QQdO1G4]OOQS-E:Z-E:ZOOQU'#G_'#G_O$)cQfO7+'OO$)nQdO'#F_O$*uQdO7+'jO$+VQdO7+'jOOQS7+'j7+'jO$+bQdO<<LqO$+rQdO<<LqO$+rQdO<<LqO$+zQdO'#H^OOQS<<Lh<<LhO$,UQdO<<LhOOQS7+'h7+'hOOQS'#D|'#D|OOOO1G4R1G4RO$,oQdO1G4RO$,wQdO1G4RP!=hQdO'#GVOOQVG25]G25]O4iQdOG25]OOQVG25dG25dOOQVG25^G25^OOQV<<Kg<<KgO4iQdO<<KgOOQS7+)x7+)xP$-SQdO'#G]OOQU-E:]-E:]OOQV<<Jj<<JjO$-vQtO'#FaOOQS'#Fc'#FcO$.WQdO'#FbO$.xQdO'#FbOOQS'#Fb'#FbO$.}QdO'#IYO$)nQdO'#FiO$)nQdO'#FiO$/fQdO'#FjO$)nQdO'#FkO$/mQdO'#IZOOQS'#IZ'#IZO$0[QdO,5;yOOQS<<KU<<KUO$0dQdO<<KUO$0tQdOANB]O$1UQdOANB]O$1^QdO'#H_OOQS'#H_'#H_O1sQdO'#DcO$1wQdO,5=xOOQSANBSANBSOOOO7+)m7+)mO$2`QdO7+)mOOQVLD*wLD*wOOQVANARANARO5uQ!fO'#GaO$2hQtO,5<SO$)nQdO'#FmOOQS,5<W,5<WOOQS'#Fd'#FdO$3YQdO,5;|O$3_QdO,5;|OOQS'#Fg'#FgO$)nQdO'#G`O$4PQdO,5<QO$4kQdO,5>tO$4{QdO,5>tO1XQdO,5<PO$5^QdO,5<TO$5cQdO,5<TO$)nQdO'#I[O$5hQdO'#I[O$5mQdO,5<UOOQS,5<V,5<VO0rQdO'#FpOOQU1G1e1G1eO4iQdO1G1eOOQSAN@pAN@pO$5rQdOG27wO$6SQdO,59}OOQS1G3d1G3dOOOO<<MX<<MXOOQS,5<{,5<{OOQS-E:_-E:_O$6XQtO'#FaO$6`QdO'#I]O$6nQdO'#I]O$6vQdO,5<XOOQS1G1h1G1hO$6{QdO1G1hO$7QQdO,5<zOOQS-E:^-E:^O$7lQdO,5=OO$8TQdO1G4`OOQS-E:b-E:bOOQS1G1k1G1kOOQS1G1o1G1oO$8eQdO,5>vO$)nQdO,5>vOOQS1G1p1G1pOOQS,5<[,5<[OOQU7+'P7+'PO$+zQdO1G/iO$)nQdO,5<YO$8sQdO,5>wO$8zQdO,5>wOOQS1G1s1G1sOOQS7+'S7+'SP$)nQdO'#GdO$9SQdO1G4bO$9^QdO1G4bO$9fQdO1G4bOOQS7+%T7+%TO$9tQdO1G1tO$:SQtO'#FaO$:ZQdO,5<}OOQS,5<},5<}O$:iQdO1G4cOOQS-E:a-E:aO$)nQdO,5<|O$:pQdO,5<|O$:uQdO7+)|OOQS-E:`-E:`O$;PQdO7+)|O$)nQdO,5<ZP$)nQdO'#GcO$;XQdO1G2hO$)nQdO1G2hP$;gQdO'#GbO$;nQdO<<MhO$;xQdO1G1uO$<WQdO7+(SO8vQdO'#C}O8vQdO,59bO8vQdO,59bO8vQdO,59bO$<fQtO,5=`O8vQdO1G.|O0rQdO1G/XO0rQdO7+$pP$<yQdO'#GOO'vQdO'#GtO$=WQdO,59bO$=]QdO,59bO$=dQdO,59mO$=iQdO1G/UO1sQdO'#DRO8vQdO,59j",
245
- stateData: "$>S~O%cOS%^OSSOS%]PQ~OPdOVaOfoOhYOopOs!POvqO!PrO!Q{O!T!SO!U!RO!XZO!][O!h`O!r`O!s`O!t`O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO#l!QO#o!TO#s!UO#u!VO#z!WO#}hO$P!XO%oRO%pRO%tSO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O~O%]!YO~OV!aO_!aOa!bOh!iO!X!kO!f!mO%j![O%k!]O%l!^O%m!_O%n!_O%o!`O%p!`O%q!aO%r!aO%s!aO~Ok%xXl%xXm%xXn%xXo%xXp%xXs%xXz%xX{%xX!x%xX#g%xX%[%xX%_%xX%z%xXg%xX!T%xX!U%xX%{%xX!W%xX![%xX!Q%xX#[%xXt%xX!m%xX~P%SOfoOhYO!XZO!][O!h`O!r`O!s`O!t`O%oRO%pRO%tSO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O~Oz%wX{%wX#g%wX%[%wX%_%wX%z%wX~Ok!pOl!qOm!oOn!oOo!rOp!sOs!tO!x%wX~P)pOV!zOg!|Oo0cOv0qO!PrO~P'vOV#OOo0cOv0qO!W#PO~P'vOV#SOa#TOo0cOv0qO![#UO~P'vOQ#XO%`#XO%a#ZO~OQ#^OR#[O%`#^O%a#`O~OV%iX_%iXa%iXh%iXk%iXl%iXm%iXn%iXo%iXp%iXs%iXz%iX!X%iX!f%iX%j%iX%k%iX%l%iX%m%iX%n%iX%o%iX%p%iX%q%iX%r%iX%s%iXg%iX!T%iX!U%iX~O&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O{%iX!x%iX#g%iX%[%iX%_%iX%z%iX%{%iX!W%iX![%iX!Q%iX#[%iXt%iX!m%iX~P,eOz#dO{%hX!x%hX#g%hX%[%hX%_%hX%z%hX~Oo0cOv0qO~P'vO#g#gO%[#iO%_#iO~O%uWO~O!T#nO#u!VO#z!WO#}hO~OopO~P'vOV#sOa#tO%uWO{wP~OV#xOo0cOv0qO!Q#yO~P'vO{#{O!x$QO%z#|O#g!yX%[!yX%_!yX~OV#xOo0cOv0qO#g#SX%[#SX%_#SX~P'vOo0cOv0qO#g#WX%[#WX%_#WX~P'vOh$WO%uWO~O!f$YO!r$YO%uWO~OV$eO~P'vO!U$gO#s$hO#u$iO~O{$jO~OV$qO~P'vOS$sO%[$rO%_$rO%c$tO~OV$}Oa$}Og%POo0cOv0qO~P'vOo0cOv0qO{%SO~P'vO&Y%UO~Oa!bOh!iO!X!kO!f!mOVba_bakbalbambanbaobapbasbazba{ba!xba#gba%[ba%_ba%jba%kba%lba%mba%nba%oba%pba%qba%rba%sba%zbagba!Tba!Uba%{ba!Wba![ba!Qba#[batba!mba~On%ZO~Oo%ZO~P'vOo0cO~P'vOk0eOl0fOm0dOn0dOo0mOp0nOs0rOg%wX!T%wX!U%wX%{%wX!W%wX![%wX!Q%wX#[%wX!m%wX~P)pO%{%]Og%vXz%vX!T%vX!U%vX!W%vX{%vX~Og%_Oz%`O!T%dO!U%cO~Og%_O~Oz%gO!T%dO!U%cO!W&SX~O!W%kO~Oz%lO{%nO!T%dO!U%cO![%}X~O![%rO~O![%sO~OQ#XO%`#XO%a%uO~OV%wOo0cOv0qO!PrO~P'vOQ#^OR#[O%`#^O%a%zO~OV!qa_!qaa!qah!qak!qal!qam!qan!qao!qap!qas!qaz!qa{!qa!X!qa!f!qa!x!qa#g!qa%[!qa%_!qa%j!qa%k!qa%l!qa%m!qa%n!qa%o!qa%p!qa%q!qa%r!qa%s!qa%z!qag!qa!T!qa!U!qa%{!qa!W!qa![!qa!Q!qa#[!qat!qa!m!qa~P#yOz%|O{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~P%SOV&OOopOvqO{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~P'vOz%|O{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~OPdOVaOopOvqO!PrO!Q{O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO#g$zX%[$zX%_$zX~P'vO#g#gO%[&TO%_&TO~O!f&UOh&sX%[&sXz&sX#[&sX#g&sX%_&sX#Z&sXg&sX~Oh!iO%[&WO~Okealeameaneaoeapeaseazea{ea!xea#gea%[ea%_ea%zeagea!Tea!Uea%{ea!Wea![ea!Qea#[eatea!mea~P%SOsqazqa{qa#gqa%[qa%_qa%zqa~Ok!pOl!qOm!oOn!oOo!rOp!sO!xqa~PEcO%z&YOz%yX{%yX~O%uWOz%yX{%yX~Oz&]O{wX~O{&_O~Oz%lO#g%}X%[%}X%_%}Xg%}X{%}X![%}X!m%}X%z%}X~OV0lOo0cOv0qO!PrO~P'vO%z#|O#gUa%[Ua%_Ua~Oz&hO#g&PX%[&PX%_&PXn&PX~P%SOz&kO!Q&jO#g#Wa%[#Wa%_#Wa~Oz&lO#[&nO#g&rX%[&rX%_&rXg&rX~O!f$YO!r$YO#Z&qO%uWO~O#Z&qO~Oz&sO#g&tX%[&tX%_&tX~Oz&uO#g&pX%[&pX%_&pX{&pX~O!X&wO%z&xO~Oz&|On&wX~P%SOn'PO~OPdOVaOopOvqO!PrO!Q{O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO%['UO~P'vOt'YO#p'WO#q'XOP#naV#naf#nah#nao#nas#nav#na!P#na!Q#na!T#na!U#na!X#na!]#na!h#na!r#na!s#na!t#na!{#na!}#na#P#na#R#na#T#na#X#na#Z#na#^#na#_#na#a#na#c#na#l#na#o#na#s#na#u#na#z#na#}#na$P#na%X#na%o#na%p#na%t#na%u#na&Z#na&[#na&]#na&^#na&_#na&`#na&a#na&b#na&c#na&d#na&e#na&f#na&g#na&h#na&i#na&j#na%Z#na%_#na~Oz'ZO#[']O{&xX~Oh'_O!X&wO~Oh!iO{$jO!X&wO~O{'eO~P%SO%['hO%_'hO~OS'iO%['hO%_'hO~OV!aO_!aOa!bOh!iO!X!kO!f!mO%l!^O%m!_O%n!_O%o!`O%p!`O%q!aO%r!aO%s!aOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~O%k!]O~P!#uO%kWi~P!#uOV!aO_!aOa!bOh!iO!X!kO!f!mO%o!`O%p!`O%q!aO%r!aO%s!aOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%kWi%lWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~O%m!_O%n!_O~P!&pO%mWi%nWi~P!&pOa!bOh!iO!X!kO!f!mOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%kWi%lWi%mWi%nWi%oWi%pWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~OV!aO_!aO%q!aO%r!aO%s!aO~P!)nOVWi_Wi%qWi%rWi%sWi~P!)nO!T%dO!U%cOg&VXz&VX~O%z'kO%{'kO~P,eOz'mOg&UX~Og'oO~Oz'pO{'rO!W&XX~Oo0cOv0qOz'pO{'sO!W&XX~P'vO!W'uO~Om!oOn!oOo!rOp!sOkjisjizji{ji!xji#gji%[ji%_ji%zji~Ol!qO~P!.aOlji~P!.aOk0eOl0fOm0dOn0dOo0mOp0nO~Ot'wO~P!/jOV'|Og'}Oo0cOv0qO~P'vOg'}Oz(OO~Og(QO~O!U(SO~Og(TOz(OO!T%dO!U%cO~P%SOk0eOl0fOm0dOn0dOo0mOp0nOgqa!Tqa!Uqa%{qa!Wqa![qa!Qqa#[qatqa!mqa~PEcOV'|Oo0cOv0qO!W&Sa~P'vOz(WO!W&Sa~O!W(XO~Oz(WO!T%dO!U%cO!W&Sa~P%SOV(]Oo0cOv0qO![%}a#g%}a%[%}a%_%}ag%}a{%}a!m%}a%z%}a~P'vOz(^O![%}a#g%}a%[%}a%_%}ag%}a{%}a!m%}a%z%}a~O![(aO~Oz(^O!T%dO!U%cO![%}a~P%SOz(dO!T%dO!U%cO![&Ta~P%SOz(gO{&lX![&lX!m&lX%z&lX~O{(kO![(mO!m(nO%z(jO~OV&OOopOvqO{%hi!x%hi#g%hi%[%hi%_%hi%z%hi~P'vOz(pO{%hi!x%hi#g%hi%[%hi%_%hi%z%hi~O!f&UOh&sa%[&saz&sa#[&sa#g&sa%_&sa#Z&sag&sa~O%[(uO~OV#sOa#tO%uWO~Oz&]O{wa~OopOvqO~P'vOz(^O#g%}a%[%}a%_%}ag%}a{%}a![%}a!m%}a%z%}a~P%SOz(zO#g%hX%[%hX%_%hX%z%hX~O%z#|O#gUi%[Ui%_Ui~O#g&Pa%[&Pa%_&Pan&Pa~P'vOz(}O#g&Pa%[&Pa%_&Pan&Pa~O%uWO#g&ra%[&ra%_&rag&ra~Oz)SO#g&ra%[&ra%_&rag&ra~Og)VO~OV)WOh$WO%uWO~O#Z)XO~O%uWO#g&ta%[&ta%_&ta~Oz)ZO#g&ta%[&ta%_&ta~Oo0cOv0qO#g&pa%[&pa%_&pa{&pa~P'vOz)^O#g&pa%[&pa%_&pa{&pa~OV)`Oa)`O%uWO~O%z)eO~Ot)hO#j)gOP#hiV#hif#hih#hio#his#hiv#hi!P#hi!Q#hi!T#hi!U#hi!X#hi!]#hi!h#hi!r#hi!s#hi!t#hi!{#hi!}#hi#P#hi#R#hi#T#hi#X#hi#Z#hi#^#hi#_#hi#a#hi#c#hi#l#hi#o#hi#s#hi#u#hi#z#hi#}#hi$P#hi%X#hi%o#hi%p#hi%t#hi%u#hi&Z#hi&[#hi&]#hi&^#hi&_#hi&`#hi&a#hi&b#hi&c#hi&d#hi&e#hi&f#hi&g#hi&h#hi&i#hi&j#hi%Z#hi%_#hi~Ot)iOP#kiV#kif#kih#kio#kis#kiv#ki!P#ki!Q#ki!T#ki!U#ki!X#ki!]#ki!h#ki!r#ki!s#ki!t#ki!{#ki!}#ki#P#ki#R#ki#T#ki#X#ki#Z#ki#^#ki#_#ki#a#ki#c#ki#l#ki#o#ki#s#ki#u#ki#z#ki#}#ki$P#ki%X#ki%o#ki%p#ki%t#ki%u#ki&Z#ki&[#ki&]#ki&^#ki&_#ki&`#ki&a#ki&b#ki&c#ki&d#ki&e#ki&f#ki&g#ki&h#ki&i#ki&j#ki%Z#ki%_#ki~OV)kOn&wa~P'vOz)lOn&wa~Oz)lOn&wa~P%SOn)pO~O%Y)tO~Ot)wO#p'WO#q)vOP#niV#nif#nih#nio#nis#niv#ni!P#ni!Q#ni!T#ni!U#ni!X#ni!]#ni!h#ni!r#ni!s#ni!t#ni!{#ni!}#ni#P#ni#R#ni#T#ni#X#ni#Z#ni#^#ni#_#ni#a#ni#c#ni#l#ni#o#ni#s#ni#u#ni#z#ni#}#ni$P#ni%X#ni%o#ni%p#ni%t#ni%u#ni&Z#ni&[#ni&]#ni&^#ni&_#ni&`#ni&a#ni&b#ni&c#ni&d#ni&e#ni&f#ni&g#ni&h#ni&i#ni&j#ni%Z#ni%_#ni~OV)zOo0cOv0qO{$jO~P'vOo0cOv0qO{&xa~P'vOz*OO{&xa~OV*SOa*TOg*WO%q*UO%uWO~O{$jO&{*YO~Oh'_O~Oh!iO{$jO~O%[*_O~O%[*aO%_*aO~OV$}Oa$}Oo0cOv0qOg&Ua~P'vOz*dOg&Ua~Oo0cOv0qO{*gO!W&Xa~P'vOz*hO!W&Xa~Oo0cOv0qOz*hO{*kO!W&Xa~P'vOo0cOv0qOz*hO!W&Xa~P'vOz*hO{*kO!W&Xa~Om0dOn0dOo0mOp0nOgjikjisjizji!Tji!Uji%{ji!Wji{ji![ji#gji%[ji%_ji!Qji#[jitji!mji%zji~Ol0fO~P!NkOlji~P!NkOV'|Og*pOo0cOv0qO~P'vOn*rO~Og*pOz*tO~Og*uO~OV'|Oo0cOv0qO!W&Si~P'vOz*vO!W&Si~O!W*wO~OV(]Oo0cOv0qO![%}i#g%}i%[%}i%_%}ig%}i{%}i!m%}i%z%}i~P'vOz*zO!T%dO!U%cO![&Ti~Oz*}O![%}i#g%}i%[%}i%_%}ig%}i{%}i!m%}i%z%}i~O![+OO~Oa+QOo0cOv0qO![&Ti~P'vOz*zO![&Ti~O![+SO~OV+UOo0cOv0qO{&la![&la!m&la%z&la~P'vOz+VO{&la![&la!m&la%z&la~O!]+YO&n+[O![!nX~O![+^O~O{(kO![+_O~O{(kO![+_O!m+`O~OV&OOopOvqO{%hq!x%hq#g%hq%[%hq%_%hq%z%hq~P'vOz$ri{$ri!x$ri#g$ri%[$ri%_$ri%z$ri~P%SOV&OOopOvqO~P'vOV&OOo0cOv0qO#g%ha%[%ha%_%ha%z%ha~P'vOz+aO#g%ha%[%ha%_%ha%z%ha~Oz$ia#g$ia%[$ia%_$ian$ia~P%SO#g&Pi%[&Pi%_&Pin&Pi~P'vOz+dO#g#Wq%[#Wq%_#Wq~O#[+eOz$va#g$va%[$va%_$vag$va~O%uWO#g&ri%[&ri%_&rig&ri~Oz+gO#g&ri%[&ri%_&rig&ri~OV+iOh$WO%uWO~O%uWO#g&ti%[&ti%_&ti~Oo0cOv0qO#g&pi%[&pi%_&pi{&pi~P'vO{#{Oz#eX!W#eX~Oz+mO!W&uX~O!W+oO~Ot+rO#j)gOP#hqV#hqf#hqh#hqo#hqs#hqv#hq!P#hq!Q#hq!T#hq!U#hq!X#hq!]#hq!h#hq!r#hq!s#hq!t#hq!{#hq!}#hq#P#hq#R#hq#T#hq#X#hq#Z#hq#^#hq#_#hq#a#hq#c#hq#l#hq#o#hq#s#hq#u#hq#z#hq#}#hq$P#hq%X#hq%o#hq%p#hq%t#hq%u#hq&Z#hq&[#hq&]#hq&^#hq&_#hq&`#hq&a#hq&b#hq&c#hq&d#hq&e#hq&f#hq&g#hq&h#hq&i#hq&j#hq%Z#hq%_#hq~On$|az$|a~P%SOV)kOn&wi~P'vOz+yOn&wi~Oz,TO{$jO#[,TO~O#q,VOP#nqV#nqf#nqh#nqo#nqs#nqv#nq!P#nq!Q#nq!T#nq!U#nq!X#nq!]#nq!h#nq!r#nq!s#nq!t#nq!{#nq!}#nq#P#nq#R#nq#T#nq#X#nq#Z#nq#^#nq#_#nq#a#nq#c#nq#l#nq#o#nq#s#nq#u#nq#z#nq#}#nq$P#nq%X#nq%o#nq%p#nq%t#nq%u#nq&Z#nq&[#nq&]#nq&^#nq&_#nq&`#nq&a#nq&b#nq&c#nq&d#nq&e#nq&f#nq&g#nq&h#nq&i#nq&j#nq%Z#nq%_#nq~O#[,WOz%Oa{%Oa~Oo0cOv0qO{&xi~P'vOz,YO{&xi~O{#{O%z,[Og&zXz&zX~O%uWOg&zXz&zX~Oz,`Og&yX~Og,bO~O%Y,eO~O!T%dO!U%cOg&Viz&Vi~OV$}Oa$}Oo0cOv0qOg&Ui~P'vO{,hOz$la!W$la~Oo0cOv0qO{,iOz$la!W$la~P'vOo0cOv0qO{*gO!W&Xi~P'vOz,lO!W&Xi~Oo0cOv0qOz,lO!W&Xi~P'vOz,lO{,oO!W&Xi~Og$hiz$hi!W$hi~P%SOV'|Oo0cOv0qO~P'vOn,qO~OV'|Og,rOo0cOv0qO~P'vOV'|Oo0cOv0qO!W&Sq~P'vOz$gi![$gi#g$gi%[$gi%_$gig$gi{$gi!m$gi%z$gi~P%SOV(]Oo0cOv0qO~P'vOa+QOo0cOv0qO![&Tq~P'vOz,sO![&Tq~O![,tO~OV(]Oo0cOv0qO![%}q#g%}q%[%}q%_%}qg%}q{%}q!m%}q%z%}q~P'vO{,uO~OV+UOo0cOv0qO{&li![&li!m&li%z&li~P'vOz,zO{&li![&li!m&li%z&li~O!]+YO&n+[O![!na~O{(kO![,}O~OV&OOo0cOv0qO#g%hi%[%hi%_%hi%z%hi~P'vOz-OO#g%hi%[%hi%_%hi%z%hi~O%uWO#g&rq%[&rq%_&rqg&rq~Oz-RO#g&rq%[&rq%_&rqg&rq~OV)`Oa)`O%uWO!W&ua~Oz-TO!W&ua~On$|iz$|i~P%SOV)kO~P'vOV)kOn&wq~P'vOt-XOP#myV#myf#myh#myo#mys#myv#my!P#my!Q#my!T#my!U#my!X#my!]#my!h#my!r#my!s#my!t#my!{#my!}#my#P#my#R#my#T#my#X#my#Z#my#^#my#_#my#a#my#c#my#l#my#o#my#s#my#u#my#z#my#}#my$P#my%X#my%o#my%p#my%t#my%u#my&Z#my&[#my&]#my&^#my&_#my&`#my&a#my&b#my&c#my&d#my&e#my&f#my&g#my&h#my&i#my&j#my%Z#my%_#my~O%Z-]O%_-]O~P`O#q-^OP#nyV#nyf#nyh#nyo#nys#nyv#ny!P#ny!Q#ny!T#ny!U#ny!X#ny!]#ny!h#ny!r#ny!s#ny!t#ny!{#ny!}#ny#P#ny#R#ny#T#ny#X#ny#Z#ny#^#ny#_#ny#a#ny#c#ny#l#ny#o#ny#s#ny#u#ny#z#ny#}#ny$P#ny%X#ny%o#ny%p#ny%t#ny%u#ny&Z#ny&[#ny&]#ny&^#ny&_#ny&`#ny&a#ny&b#ny&c#ny&d#ny&e#ny&f#ny&g#ny&h#ny&i#ny&j#ny%Z#ny%_#ny~Oz-aO{$jO#[-aO~Oo0cOv0qO{&xq~P'vOz-dO{&xq~O%z,[Og&zaz&za~O{#{Og&zaz&za~OV*SOa*TO%q*UO%uWOg&ya~Oz-hOg&ya~O$S-lO~OV$}Oa$}Oo0cOv0qO~P'vOo0cOv0qO{-mOz$li!W$li~P'vOo0cOv0qOz$li!W$li~P'vO{-mOz$li!W$li~Oo0cOv0qO{*gO~P'vOo0cOv0qO{*gO!W&Xq~P'vOz-pO!W&Xq~Oo0cOv0qOz-pO!W&Xq~P'vOs-sO!T%dO!U%cOg&Oq!W&Oq![&Oqz&Oq~P!/jOa+QOo0cOv0qO![&Ty~P'vOz$ji![$ji~P%SOa+QOo0cOv0qO~P'vOV+UOo0cOv0qO~P'vOV+UOo0cOv0qO{&lq![&lq!m&lq%z&lq~P'vO{(kO![-xO!m-yO%z-wO~OV&OOo0cOv0qO#g%hq%[%hq%_%hq%z%hq~P'vO%uWO#g&ry%[&ry%_&ryg&ry~OV)`Oa)`O%uWO!W&ui~Ot-}OP#m!RV#m!Rf#m!Rh#m!Ro#m!Rs#m!Rv#m!R!P#m!R!Q#m!R!T#m!R!U#m!R!X#m!R!]#m!R!h#m!R!r#m!R!s#m!R!t#m!R!{#m!R!}#m!R#P#m!R#R#m!R#T#m!R#X#m!R#Z#m!R#^#m!R#_#m!R#a#m!R#c#m!R#l#m!R#o#m!R#s#m!R#u#m!R#z#m!R#}#m!R$P#m!R%X#m!R%o#m!R%p#m!R%t#m!R%u#m!R&Z#m!R&[#m!R&]#m!R&^#m!R&_#m!R&`#m!R&a#m!R&b#m!R&c#m!R&d#m!R&e#m!R&f#m!R&g#m!R&h#m!R&i#m!R&j#m!R%Z#m!R%_#m!R~Oo0cOv0qO{&xy~P'vOV*SOa*TO%q*UO%uWOg&yi~O$S-lO%Z.VO%_.VO~OV.aOh._O!X.^O!].`O!h.YO!s.[O!t.[O%p.XO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O~Oo0cOv0qOz$lq!W$lq~P'vO{.fOz$lq!W$lq~Oo0cOv0qO{*gO!W&Xy~P'vOz.gO!W&Xy~Oo0cOv.kO~P'vOs-sO!T%dO!U%cOg&Oy!W&Oy![&Oyz&Oy~P!/jO{(kO![.nO~O{(kO![.nO!m.oO~OV*SOa*TO%q*UO%uWO~Oh.tO!f.rOz$TX#[$TX%j$TXg$TX~Os$TX{$TX!W$TX![$TX~P$-bO%o.vO%p.vOs$UXz$UX{$UX#[$UX%j$UX!W$UXg$UX![$UX~O!h.xO~Oz.|O#[/OO%j.yOs&|X{&|X!W&|Xg&|X~Oa/RO~P$)zOh.tOs&}Xz&}X{&}X#[&}X%j&}X!W&}Xg&}X![&}X~Os/VO{$jO~Oo0cOv0qOz$ly!W$ly~P'vOo0cOv0qO{*gO!W&X!R~P'vOz/ZO!W&X!R~Og&RXs&RX!T&RX!U&RX!W&RX![&RXz&RX~P!/jOs-sO!T%dO!U%cOg&Qa!W&Qa![&Qaz&Qa~O{(kO![/^O~O!f.rOh$[as$[az$[a{$[a#[$[a%j$[a!W$[ag$[a![$[a~O!h/eO~O%o.vO%p.vOs$Uaz$Ua{$Ua#[$Ua%j$Ua!W$Uag$Ua![$Ua~O%j.yOs$Yaz$Ya{$Ya#[$Ya!W$Yag$Ya![$Ya~Os&|a{&|a!W&|ag&|a~P$)nOz/jOs&|a{&|a!W&|ag&|a~O!W/mO~Og/mO~O{/oO~O![/pO~Oo0cOv0qO{*gO!W&X!Z~P'vO{/sO~O%z/tO~P$-bOz/uO#[/OO%j.yOg'PX~Oz/uOg'PX~Og/wO~O!h/xO~O#[/OOs%Saz%Sa{%Sa%j%Sa!W%Sag%Sa![%Sa~O#[/OO%j.yOs%Waz%Wa{%Wa!W%Wag%Wa~Os&|i{&|i!W&|ig&|i~P$)nOz/zO#[/OO%j.yO!['Oa~Og'Pa~P$)nOz0SOg'Pa~Oa0UO!['Oi~P$)zOz0WO!['Oi~Oz0WO#[/OO%j.yO!['Oi~O#[/OO%j.yOg$biz$bi~O%z0ZO~P$-bO#[/OO%j.yOg%Vaz%Va~Og'Pi~P$)nO{0^O~Oa0UO!['Oq~P$)zOz0`O!['Oq~O#[/OO%j.yOz%Ui![%Ui~Oa0UO~P$)zOa0UO!['Oy~P$)zO#[/OO%j.yOg$ciz$ci~O#[/OO%j.yOz%Uq![%Uq~Oz+aO#g%ha%[%ha%_%ha%z%ha~P%SOV&OOo0cOv0qO~P'vOn0hO~Oo0hO~P'vO{0iO~Ot0jO~P!/jO&]&Z&j&h&i&g&f&d&e&c&b&`&a&_&^&[%u~",
246
- goto: "!=j'QPPPPPP'RP'Z*s+[+t,_,y-fP.SP'Z.r.r'ZPPP'Z2[PPPPPP2[5PPP5PP7b7k=sPP=v>h>kPP'Z'ZPP>zPP'Z'ZPP'Z'Z'Z'Z'Z?O?w'ZP?zP@QDXGuGyPG|HWH['ZPPPH_Hk'RP'R'RP'RP'RP'RP'RP'R'R'RP'RPP'RPP'RP'RPHqH}IVPI^IdPI^PI^I^PPPI^PKrPK{LVL]KrPI^LfPI^PLmLsPLwM]MzNeLwLwNkNxLwLwLwLw! ^! d! g! l! o! y!!P!!]!!o!!u!#P!#V!#s!#y!$P!$Z!$a!$g!$y!%T!%Z!%a!%k!%q!%w!%}!&T!&Z!&e!&k!&u!&{!'U!'[!'k!'s!'}!(UPPPPPPPPPPP!([!(_!(e!(n!(x!)TPPPPPPPPPPPP!-u!/Z!3^!6oPP!6w!7W!7a!8Y!8P!8c!8i!8l!8o!8r!8z!9jPPPPPPPPPPPPPPPPP!9m!9q!9wP!:]!:a!:m!:v!;S!;j!;m!;p!;v!;|!<S!<VP!<_!<h!=d!=g]eOn#g$j)t,P'}`OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0r{!cQ#c#p$R$d$p%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g}!dQ#c#p$R$d$p$u%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!P!eQ#c#p$R$d$p$u$v%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!R!fQ#c#p$R$d$p$u$v$w%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!T!gQ#c#p$R$d$p$u$v$w$x%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!V!hQ#c#p$R$d$p$u$v$w$x$y%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!Z!hQ!n#c#p$R$d$p$u$v$w$x$y$z%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g'}TOTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0r&eVOYZ[dnprxy}!P!Q!U!i!k!o!p!q!s!t#[#d#g#y#{#}$Q$h$j$}%S%Z%^%`%g%l%n%w%|&Z&_&j&k&u&x'P'W'Z'l'm'p'r's'w(O(W(^(d(g(p(r(z)^)e)g)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+U+V+Y+a+d+k,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0n0r%oXOYZ[dnrxy}!P!Q!U!i!k#[#d#g#y#{#}$Q$h$j$}%S%^%`%g%l%n%w%|&Z&_&j&k&u&x'P'W'Z'l'm'p'r's'w(O(W(^(d(g(p(r(z)^)e)g)p)t)z*O*Y*d*g*h*k*q*t*v*y*z*}+U+V+Y+a+d+k,P,X,Y,],g,h,i,k,l,o,s,u,w,y,z-O-d-f-m-p.f.g/V/Z0i0j0kQ#vqQ/[.kR0o0q't`OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0rh#jhz{$W$Z&l&q)S)X+f+g-RW#rq&].k0qQ$]|Q$a!OQ$n!VQ$o!WW$|!i'm*d,gS&[#s#tQ'S$iQ(s&UQ)U&nU)Y&s)Z+jW)a&w+m-T-{Q*Q']W*R'_,`-h.TQ+l)`S,_*S*TQ-Q+eQ-_,TQ-c,WQ.R-al.W-l.^._.a.z.|/R/j/o/t/y0U0Z0^Q/S.`Q/a.tQ/l/OU0P/u0S0[X0V/z0W0_0`R&Z#r!_!wYZ!P!Q!k%S%`%g'p'r's(O(W)g*g*h*k*q*t*v,h,i,k,l,o-m-p.f.g/ZR%^!vQ!{YQ%x#[Q&d#}Q&g$QR,{+YT.j-s/s!Y!jQ!n#c#p$R$d$p$u$v$w$x$y$z%e%j%p%q&`'O'g(q(|)j*o*x+w,v0gQ&X#kQ'c$oR*^'dR'l$|Q%V!mR/_.r'|_OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0rS#a_#b!P.[-l.^._.`.a.t.z.|/R/j/o/t/u/y/z0S0U0W0Z0[0^0_0`'|_OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0rT#a_#bT#^^#_R(o%xa(l%x(n(o+`,{-y-z.oT+[(k+]R-z,{Q$PsQ+l)aQ,^*RR-e,_X#}s$O$P&fQ&y$aQ'a$nQ'd$oR)s'SQ)b&wV-S+m-T-{ZgOn$j)t,PXkOn)t,PQ$k!TQ&z$bQ&{$cQ'^$mQ'b$oQ)q'RQ)x'WQ){'XQ)|'YQ*Z'`S*]'c'dQ+s)gQ+u)hQ+v)iQ+z)oS+|)r*[Q,Q)vQ,R)wS,S)y)zQ,d*^Q-V+rQ-W+tQ-Y+{S-Z+},OQ-`,UQ-b,VQ-|-XQ.O-[Q.P-^Q.Q-_Q.p-}Q.q.RQ/W.dR/r/XWkOn)t,PR#mjQ'`$nS)r'S'aR,O)sQ,]*RR-f,^Q*['`Q+})rR-[,OZiOjn)t,PQ'f$pR*`'gT-j,e-ku.c-l.^._.a.t.z.|/R/j/o/t/u/y0S0U0Z0[0^t.c-l.^._.a.t.z.|/R/j/o/t/u/y0S0U0Z0[0^Q/S.`X0V/z0W0_0`!P.Z-l.^._.`.a.t.z.|/R/j/o/t/u/y/z0S0U0W0Z0[0^0_0`Q.w.YR/f.xg.z.].{/b/i/n/|0O0Q0]0a0bu.b-l.^._.a.t.z.|/R/j/o/t/u/y0S0U0Z0[0^X.u.W.b/a0PR/c.tV0R/u0S0[R/X.dQnOS#on,PR,P)tQ&^#uR(x&^S%m#R#wS(_%m(bT(b%p&`Q%a!yQ%h!}W(P%a%h(U(YQ(U%eR(Y%jQ&i$RR)O&iQ(e%qQ*{(`T+R(e*{Q'n%OR*e'nS'q%R%SY*i'q*j,m-q.hU*j'r's'tU,m*k*l*mS-q,n,oR.h-rQ#Y]R%t#YQ#_^R%y#_Q(h%vS+W(h+XR+X(iQ+](kR,|+]Q#b_R%{#bQ#ebQ%}#cW&Q#e%}({+bQ({&cR+b0gQ$OsS&e$O&fR&f$PQ&v$_R)_&vQ&V#jR(t&VQ&m$VS)T&m+hR+h)UQ$Z{R&p$ZQ&t$]R)[&tQ+n)bR-U+nQ#hfR&S#hQ)f&zR+q)fQ&}$dS)m&})nR)n'OQ'V$kR)u'VQ'[$lS*P'[,ZR,Z*QQ,a*VR-i,aWjOn)t,PR#ljQ-k,eR.U-kd.{.]/b/i/n/|0O0Q0]0a0bR/h.{U.s.W/a0PR/`.sQ/{/nS0X/{0YR0Y/|S/v/b/cR0T/vQ.}.]R/k.}R!ZPXmOn)t,PWlOn)t,PR'T$jYfOn$j)t,PR&R#g[sOn#g$j)t,PR&d#}&dQOYZ[dnprxy}!P!Q!U!i!k!o!p!q!s!t#[#d#g#y#{#}$Q$h$j$}%S%Z%^%`%g%l%n%w%|&Z&_&j&k&u&x'P'W'Z'l'm'p'r's'w(O(W(^(d(g(p(r(z)^)e)g)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+U+V+Y+a+d+k,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0n0rQ!nTQ#caQ#poU$Rt%c(SS$d!R$gQ$p!XQ$u!cQ$v!dQ$w!eQ$x!fQ$y!gQ$z!hQ%e!zQ%j#OQ%p#SQ%q#TQ&`#xQ'O$eQ'g$qQ(q&OU(|&h(}+cW)j&|)l+x+yQ*o'|Q*x(]Q+w)kQ,v+QR0g0lQ!yYQ!}ZQ$b!PQ$c!QQ%R!kQ't%S^'{%`%g(O(W*q*t*v^*f'p*h,k,l-p.g/ZQ*l'rQ*m'sQ+t)gQ,j*gQ,n*kQ-n,hQ-o,iQ-r,oQ.e-mR/Y.f[bOn#g$j)t,P!^!vYZ!P!Q!k%S%`%g'p'r's(O(W)g*g*h*k*q*t*v,h,i,k,l,o-m-p.f.g/ZQ#R[Q#fdS#wrxQ$UyW$_}$Q'P)pS$l!U$hW${!i'm*d,gS%v#[+Y`&P#d%|(p(r(z+a-O0kQ&a#yQ&b#{Q&c#}Q'j$}Q'z%^W([%l(^*y*}Q(`%nQ(i%wQ(v&ZS(y&_0iQ)P&jQ)Q&kU)]&u)^+kQ)d&xQ)y'WY)}'Z*O,X,Y-dQ*b'lS*n'w0jW+P(d*z,s,wW+T(g+V,y,zQ+p)eQ,U)zQ,c*YQ,x+UQ-P+dQ-e,]Q-v,uQ.S-fR/q/VhUOn#d#g$j%|&_'w(p(r)t,P%U!uYZ[drxy}!P!Q!U!i!k#[#y#{#}$Q$h$}%S%^%`%g%l%n%w&Z&j&k&u&x'P'W'Z'l'm'p'r's(O(W(^(d(g(z)^)e)g)p)z*O*Y*d*g*h*k*q*t*v*y*z*}+U+V+Y+a+d+k,X,Y,],g,h,i,k,l,o,s,u,w,y,z-O-d-f-m-p.f.g/V/Z0i0j0kQ#qpW%W!o!s0d0nQ%X!pQ%Y!qQ%[!tQ%f0cS'v%Z0hQ'x0eQ'y0fQ,p*rQ-u,qS.i-s/sR0p0rU#uq.k0qR(w&][cOn#g$j)t,PZ!xY#[#}$Q+YQ#W[Q#zrR$TxQ%b!yQ%i!}Q%o#RQ'j${Q(V%eQ(Z%jQ(c%pQ(f%qQ*|(`Q,f*bQ-t,pQ.m-uR/].lQ$StQ(R%cR*s(SQ.l-sR/}/sR#QZR#V[R%Q!iQ%O!iV*c'm*d,g!Z!lQ!n#c#p$R$d$p$u$v$w$x$y$z%e%j%p%q&`'O'g(q(|)j*o*x+w,v0gR%T!kT#]^#_Q%x#[R,{+YQ(m%xS+_(n(oQ,}+`Q-x,{S.n-y-zR/^.oT+Z(k+]Q$`}Q&g$QQ)o'PR+{)pQ$XzQ)W&qR+i)XQ$XzQ&o$WQ)W&qR+i)XQ#khW$Vz$W&q)XQ$[{Q&r$ZZ)R&l)S+f+g-RR$^|R)c&wXlOn)t,PQ$f!RR'Q$gQ$m!UR'R$hR*X'_Q*V'_V-g,`-h.TQ.d-lQ/P.^R/Q._U.]-l.^._Q/U.aQ/b.tQ/g.zU/i.|/j/yQ/n/RQ/|/oQ0O/tU0Q/u0S0[Q0]0UQ0a0ZR0b0^R/T.`R/d.t",
247
- nodeNames: "⚠ print Escape { Comment Script AssignStatement * BinaryExpression BitOp BitOp BitOp BitOp ArithOp ArithOp @ ArithOp ** UnaryExpression ArithOp BitOp AwaitExpression await ) ( ParenthesizedExpression BinaryExpression or and CompareOp in not is UnaryExpression ConditionalExpression if else LambdaExpression lambda ParamList VariableName AssignOp , : NamedExpression AssignOp YieldExpression yield from TupleExpression ComprehensionExpression async for LambdaExpression ] [ ArrayExpression ArrayComprehensionExpression } { DictionaryExpression DictionaryComprehensionExpression SetExpression SetComprehensionExpression CallExpression ArgList AssignOp MemberExpression . PropertyName Number String FormatString FormatReplacement FormatSelfDoc FormatConversion FormatSpec FormatReplacement FormatSelfDoc ContinuedString Ellipsis None Boolean TypeDef AssignOp UpdateStatement UpdateOp ExpressionStatement DeleteStatement del PassStatement pass BreakStatement break ContinueStatement continue ReturnStatement return YieldStatement PrintStatement RaiseStatement raise ImportStatement import as ScopeStatement global nonlocal AssertStatement assert TypeDefinition type TypeParamList TypeParam StatementGroup ; IfStatement Body elif WhileStatement while ForStatement TryStatement try except finally WithStatement with FunctionDefinition def ParamList AssignOp TypeDef ClassDefinition class DecoratedStatement Decorator At MatchStatement match MatchBody MatchClause case CapturePattern LiteralPattern ArithOp ArithOp AsPattern OrPattern LogicOp AttributePattern SequencePattern MappingPattern StarPattern ClassPattern PatternArgList KeywordPattern KeywordPattern Guard",
248
- maxTerm: 277,
249
- context: trackIndent,
250
- nodeProps: [
251
- ["isolate", -5, 4, 71, 72, 73, 77, ""],
252
- ["group", -15, 6, 85, 87, 88, 90, 92, 94, 96, 98, 99, 100, 102, 105, 108, 110, "Statement Statement", -22, 8, 18, 21, 25, 40, 49, 50, 56, 57, 60, 61, 62, 63, 64, 67, 70, 71, 72, 79, 80, 81, 82, "Expression", -10, 114, 116, 119, 121, 122, 126, 128, 133, 135, 138, "Statement", -9, 143, 144, 147, 148, 150, 151, 152, 153, 154, "Pattern"],
253
- ["openedBy", 23, "(", 54, "[", 58, "{"],
254
- ["closedBy", 24, ")", 55, "]", 59, "}"]
255
- ],
256
- propSources: [pythonHighlighting],
257
- skippedNodes: [0, 4],
258
- repeatNodeCount: 34,
259
- tokenData: "!2|~R!`OX%TXY%oY[%T[]%o]p%Tpq%oqr'ars)Yst*xtu%Tuv,dvw-hwx.Uxy/tyz0[z{0r{|2S|}2p}!O3W!O!P4_!P!Q:Z!Q!R;k!R![>_![!]Do!]!^Es!^!_FZ!_!`Gk!`!aHX!a!b%T!b!cIf!c!dJU!d!eK^!e!hJU!h!i!#f!i!tJU!t!u!,|!u!wJU!w!x!.t!x!}JU!}#O!0S#O#P&o#P#Q!0j#Q#R!1Q#R#SJU#S#T%T#T#UJU#U#VK^#V#YJU#Y#Z!#f#Z#fJU#f#g!,|#g#iJU#i#j!.t#j#oJU#o#p!1n#p#q!1s#q#r!2a#r#s!2f#s$g%T$g;'SJU;'S;=`KW<%lOJU`%YT&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T`%lP;=`<%l%To%v]&n`%c_OX%TXY%oY[%T[]%o]p%Tpq%oq#O%T#O#P&o#P#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To&tX&n`OY%TYZ%oZ]%T]^%o^#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc'f[&n`O!_%T!_!`([!`#T%T#T#U(r#U#f%T#f#g(r#g#h(r#h#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc(cTmR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc(yT!mR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk)aV&n`&[ZOr%Trs)vs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk){V&n`Or%Trs*bs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk*iT&n`&^ZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To+PZS_&n`OY*xYZ%TZ]*x]^%T^#o*x#o#p+r#p#q*x#q#r+r#r;'S*x;'S;=`,^<%lO*x_+wTS_OY+rZ]+r^;'S+r;'S;=`,W<%lO+r_,ZP;=`<%l+ro,aP;=`<%l*xj,kV%rQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj-XT!xY&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj-oV%lQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk.]V&n`&ZZOw%Twx.rx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk.wV&n`Ow%Twx/^x#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk/eT&n`&]ZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk/{ThZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc0cTgR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk0yXVZ&n`Oz%Tz{1f{!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk1mVaR&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk2ZV%oZ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc2wTzR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To3_W%pZ&n`O!_%T!_!`-Q!`!a3w!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Td4OT&{S&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk4fX!fQ&n`O!O%T!O!P5R!P!Q%T!Q![6T![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk5WV&n`O!O%T!O!P5m!P#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk5tT!rZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti6[a!hX&n`O!Q%T!Q![6T![!g%T!g!h7a!h!l%T!l!m9s!m#R%T#R#S6T#S#X%T#X#Y7a#Y#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti7fZ&n`O{%T{|8X|}%T}!O8X!O!Q%T!Q![8s![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti8^V&n`O!Q%T!Q![8s![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti8z]!hX&n`O!Q%T!Q![8s![!l%T!l!m9s!m#R%T#R#S8s#S#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti9zT!hX&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk:bX%qR&n`O!P%T!P!Q:}!Q!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj;UV%sQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti;ro!hX&n`O!O%T!O!P=s!P!Q%T!Q![>_![!d%T!d!e?q!e!g%T!g!h7a!h!l%T!l!m9s!m!q%T!q!rA]!r!z%T!z!{Bq!{#R%T#R#S>_#S#U%T#U#V?q#V#X%T#X#Y7a#Y#^%T#^#_9s#_#c%T#c#dA]#d#l%T#l#mBq#m#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti=xV&n`O!Q%T!Q![6T![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti>fc!hX&n`O!O%T!O!P=s!P!Q%T!Q![>_![!g%T!g!h7a!h!l%T!l!m9s!m#R%T#R#S>_#S#X%T#X#Y7a#Y#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti?vY&n`O!Q%T!Q!R@f!R!S@f!S#R%T#R#S@f#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti@mY!hX&n`O!Q%T!Q!R@f!R!S@f!S#R%T#R#S@f#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiAbX&n`O!Q%T!Q!YA}!Y#R%T#R#SA}#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiBUX!hX&n`O!Q%T!Q!YA}!Y#R%T#R#SA}#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiBv]&n`O!Q%T!Q![Co![!c%T!c!iCo!i#R%T#R#SCo#S#T%T#T#ZCo#Z#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiCv]!hX&n`O!Q%T!Q![Co![!c%T!c!iCo!i#R%T#R#SCo#S#T%T#T#ZCo#Z#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%ToDvV{_&n`O!_%T!_!`E]!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TcEdT%{R&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkEzT#gZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkFbXmR&n`O!^%T!^!_F}!_!`([!`!a([!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TjGUV%mQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkGrV%zZ&n`O!_%T!_!`([!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkH`WmR&n`O!_%T!_!`([!`!aHx!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TjIPV%nQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkIoV_Q#}P&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%ToJ_]&n`&YS%uZO!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUoKZP;=`<%lJUoKge&n`&YS%uZOr%Trs)Ysw%Twx.Ux!Q%T!Q![JU![!c%T!c!tJU!t!uLx!u!}JU!}#R%T#R#SJU#S#T%T#T#fJU#f#gLx#g#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUoMRa&n`&YS%uZOr%TrsNWsw%Twx! vx!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUkN_V&n`&`ZOr%TrsNts#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkNyV&n`Or%Trs! `s#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk! gT&n`&bZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk! }V&n`&_ZOw%Twx!!dx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!!iV&n`Ow%Twx!#Ox#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!#VT&n`&aZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!#oe&n`&YS%uZOr%Trs!%Qsw%Twx!&px!Q%T!Q![JU![!c%T!c!tJU!t!u!(`!u!}JU!}#R%T#R#SJU#S#T%T#T#fJU#f#g!(`#g#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!%XV&n`&dZOr%Trs!%ns#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!%sV&n`Or%Trs!&Ys#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!&aT&n`&fZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!&wV&n`&cZOw%Twx!'^x#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!'cV&n`Ow%Twx!'xx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!(PT&n`&eZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!(ia&n`&YS%uZOr%Trs!)nsw%Twx!+^x!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!)uV&n`&hZOr%Trs!*[s#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!*aV&n`Or%Trs!*vs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!*}T&n`&jZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!+eV&n`&gZOw%Twx!+zx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!,PV&n`Ow%Twx!,fx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!,mT&n`&iZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!-Vi&n`&YS%uZOr%TrsNWsw%Twx! vx!Q%T!Q![JU![!c%T!c!dJU!d!eLx!e!hJU!h!i!(`!i!}JU!}#R%T#R#SJU#S#T%T#T#UJU#U#VLx#V#YJU#Y#Z!(`#Z#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUo!.}a&n`&YS%uZOr%Trs)Ysw%Twx.Ux!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!0ZT!XZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc!0qT!WR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj!1XV%kQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T~!1sO!]~k!1zV%jR&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T~!2fO![~i!2mT%tX&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T",
260
- tokenizers: [legacyPrint, indentation, newlines, strings, 0, 1, 2, 3, 4],
261
- topRules: { "Script": [0, 5] },
262
- specialized: [{ term: 221, get: (value) => spec_identifier[value] || -1 }],
263
- tokenPrec: 7668
264
- });
265
- const cache = /* @__PURE__ */ new NodeWeakMap();
266
- const ScopeNodes = /* @__PURE__ */ new Set([
267
- "Script",
268
- "Body",
269
- "FunctionDefinition",
270
- "ClassDefinition",
271
- "LambdaExpression",
272
- "ForStatement",
273
- "MatchClause"
274
- ]);
275
- function defID(type) {
276
- return (node, def, outer) => {
277
- if (outer)
278
- return false;
279
- let id = node.node.getChild("VariableName");
280
- if (id)
281
- def(id, type);
282
- return true;
283
- };
284
- }
285
- const gatherCompletions = {
286
- FunctionDefinition: /* @__PURE__ */ defID("function"),
287
- ClassDefinition: /* @__PURE__ */ defID("class"),
288
- ForStatement(node, def, outer) {
289
- if (outer)
290
- for (let child = node.node.firstChild; child; child = child.nextSibling) {
291
- if (child.name == "VariableName")
292
- def(child, "variable");
293
- else if (child.name == "in")
294
- break;
295
- }
296
- },
297
- ImportStatement(_node, def) {
298
- var _a, _b;
299
- let { node } = _node;
300
- let isFrom = ((_a = node.firstChild) === null || _a === void 0 ? void 0 : _a.name) == "from";
301
- for (let ch = node.getChild("import"); ch; ch = ch.nextSibling) {
302
- if (ch.name == "VariableName" && ((_b = ch.nextSibling) === null || _b === void 0 ? void 0 : _b.name) != "as")
303
- def(ch, isFrom ? "variable" : "namespace");
304
- }
305
- },
306
- AssignStatement(node, def) {
307
- for (let child = node.node.firstChild; child; child = child.nextSibling) {
308
- if (child.name == "VariableName")
309
- def(child, "variable");
310
- else if (child.name == ":" || child.name == "AssignOp")
311
- break;
312
- }
313
- },
314
- ParamList(node, def) {
315
- for (let prev = null, child = node.node.firstChild; child; child = child.nextSibling) {
316
- if (child.name == "VariableName" && (!prev || !/\*|AssignOp/.test(prev.name)))
317
- def(child, "variable");
318
- prev = child;
319
- }
320
- },
321
- CapturePattern: /* @__PURE__ */ defID("variable"),
322
- AsPattern: /* @__PURE__ */ defID("variable"),
323
- __proto__: null
324
- };
325
- function getScope(doc, node) {
326
- let cached = cache.get(node);
327
- if (cached)
328
- return cached;
329
- let completions = [], top = true;
330
- function def(node2, type) {
331
- let name = doc.sliceString(node2.from, node2.to);
332
- completions.push({ label: name, type });
333
- }
334
- node.cursor(IterMode.IncludeAnonymous).iterate((node2) => {
335
- if (node2.name) {
336
- let gather = gatherCompletions[node2.name];
337
- if (gather && gather(node2, def, top) || !top && ScopeNodes.has(node2.name))
338
- return false;
339
- top = false;
340
- } else if (node2.to - node2.from > 8192) {
341
- for (let c of getScope(doc, node2.node))
342
- completions.push(c);
343
- return false;
344
- }
345
- });
346
- cache.set(node, completions);
347
- return completions;
348
- }
349
- const Identifier = /^[\w\xa1-\uffff][\w\d\xa1-\uffff]*$/;
350
- const dontComplete = ["String", "FormatString", "Comment", "PropertyName"];
351
- function localCompletionSource(context) {
352
- let inner = syntaxTree(context.state).resolveInner(context.pos, -1);
353
- if (dontComplete.indexOf(inner.name) > -1)
354
- return null;
355
- let isWord = inner.name == "VariableName" || inner.to - inner.from < 20 && Identifier.test(context.state.sliceDoc(inner.from, inner.to));
356
- if (!isWord && !context.explicit)
357
- return null;
358
- let options = [];
359
- for (let pos = inner; pos; pos = pos.parent) {
360
- if (ScopeNodes.has(pos.name))
361
- options = options.concat(getScope(context.state.doc, pos));
362
- }
363
- return {
364
- options,
365
- from: isWord ? inner.from : context.pos,
366
- validFor: Identifier
367
- };
368
- }
369
- const globals = /* @__PURE__ */ [
370
- "__annotations__",
371
- "__builtins__",
372
- "__debug__",
373
- "__doc__",
374
- "__import__",
375
- "__name__",
376
- "__loader__",
377
- "__package__",
378
- "__spec__",
379
- "False",
380
- "None",
381
- "True"
382
- ].map((n) => ({ label: n, type: "constant" })).concat(/* @__PURE__ */ [
383
- "ArithmeticError",
384
- "AssertionError",
385
- "AttributeError",
386
- "BaseException",
387
- "BlockingIOError",
388
- "BrokenPipeError",
389
- "BufferError",
390
- "BytesWarning",
391
- "ChildProcessError",
392
- "ConnectionAbortedError",
393
- "ConnectionError",
394
- "ConnectionRefusedError",
395
- "ConnectionResetError",
396
- "DeprecationWarning",
397
- "EOFError",
398
- "Ellipsis",
399
- "EncodingWarning",
400
- "EnvironmentError",
401
- "Exception",
402
- "FileExistsError",
403
- "FileNotFoundError",
404
- "FloatingPointError",
405
- "FutureWarning",
406
- "GeneratorExit",
407
- "IOError",
408
- "ImportError",
409
- "ImportWarning",
410
- "IndentationError",
411
- "IndexError",
412
- "InterruptedError",
413
- "IsADirectoryError",
414
- "KeyError",
415
- "KeyboardInterrupt",
416
- "LookupError",
417
- "MemoryError",
418
- "ModuleNotFoundError",
419
- "NameError",
420
- "NotADirectoryError",
421
- "NotImplemented",
422
- "NotImplementedError",
423
- "OSError",
424
- "OverflowError",
425
- "PendingDeprecationWarning",
426
- "PermissionError",
427
- "ProcessLookupError",
428
- "RecursionError",
429
- "ReferenceError",
430
- "ResourceWarning",
431
- "RuntimeError",
432
- "RuntimeWarning",
433
- "StopAsyncIteration",
434
- "StopIteration",
435
- "SyntaxError",
436
- "SyntaxWarning",
437
- "SystemError",
438
- "SystemExit",
439
- "TabError",
440
- "TimeoutError",
441
- "TypeError",
442
- "UnboundLocalError",
443
- "UnicodeDecodeError",
444
- "UnicodeEncodeError",
445
- "UnicodeError",
446
- "UnicodeTranslateError",
447
- "UnicodeWarning",
448
- "UserWarning",
449
- "ValueError",
450
- "Warning",
451
- "ZeroDivisionError"
452
- ].map((n) => ({ label: n, type: "type" }))).concat(/* @__PURE__ */ [
453
- "bool",
454
- "bytearray",
455
- "bytes",
456
- "classmethod",
457
- "complex",
458
- "float",
459
- "frozenset",
460
- "int",
461
- "list",
462
- "map",
463
- "memoryview",
464
- "object",
465
- "range",
466
- "set",
467
- "staticmethod",
468
- "str",
469
- "super",
470
- "tuple",
471
- "type"
472
- ].map((n) => ({ label: n, type: "class" }))).concat(/* @__PURE__ */ [
473
- "abs",
474
- "aiter",
475
- "all",
476
- "anext",
477
- "any",
478
- "ascii",
479
- "bin",
480
- "breakpoint",
481
- "callable",
482
- "chr",
483
- "compile",
484
- "delattr",
485
- "dict",
486
- "dir",
487
- "divmod",
488
- "enumerate",
489
- "eval",
490
- "exec",
491
- "exit",
492
- "filter",
493
- "format",
494
- "getattr",
495
- "globals",
496
- "hasattr",
497
- "hash",
498
- "help",
499
- "hex",
500
- "id",
501
- "input",
502
- "isinstance",
503
- "issubclass",
504
- "iter",
505
- "len",
506
- "license",
507
- "locals",
508
- "max",
509
- "min",
510
- "next",
511
- "oct",
512
- "open",
513
- "ord",
514
- "pow",
515
- "print",
516
- "property",
517
- "quit",
518
- "repr",
519
- "reversed",
520
- "round",
521
- "setattr",
522
- "slice",
523
- "sorted",
524
- "sum",
525
- "vars",
526
- "zip"
527
- ].map((n) => ({ label: n, type: "function" })));
528
- const snippets = [
529
- /* @__PURE__ */ snippetCompletion("def ${name}(${params}):\n ${}", {
530
- label: "def",
531
- detail: "function",
532
- type: "keyword"
533
- }),
534
- /* @__PURE__ */ snippetCompletion("for ${name} in ${collection}:\n ${}", {
535
- label: "for",
536
- detail: "loop",
537
- type: "keyword"
538
- }),
539
- /* @__PURE__ */ snippetCompletion("while ${}:\n ${}", {
540
- label: "while",
541
- detail: "loop",
542
- type: "keyword"
543
- }),
544
- /* @__PURE__ */ snippetCompletion("try:\n ${}\nexcept ${error}:\n ${}", {
545
- label: "try",
546
- detail: "/ except block",
547
- type: "keyword"
548
- }),
549
- /* @__PURE__ */ snippetCompletion("if ${}:\n \n", {
550
- label: "if",
551
- detail: "block",
552
- type: "keyword"
553
- }),
554
- /* @__PURE__ */ snippetCompletion("if ${}:\n ${}\nelse:\n ${}", {
555
- label: "if",
556
- detail: "/ else block",
557
- type: "keyword"
558
- }),
559
- /* @__PURE__ */ snippetCompletion("class ${name}:\n def __init__(self, ${params}):\n ${}", {
560
- label: "class",
561
- detail: "definition",
562
- type: "keyword"
563
- }),
564
- /* @__PURE__ */ snippetCompletion("import ${module}", {
565
- label: "import",
566
- detail: "statement",
567
- type: "keyword"
568
- }),
569
- /* @__PURE__ */ snippetCompletion("from ${module} import ${names}", {
570
- label: "from",
571
- detail: "import",
572
- type: "keyword"
573
- })
574
- ];
575
- const globalCompletion = /* @__PURE__ */ ifNotIn(dontComplete, /* @__PURE__ */ completeFromList(/* @__PURE__ */ globals.concat(snippets)));
576
- function innerBody(context) {
577
- let { node, pos } = context;
578
- let lineIndent = context.lineIndent(pos, -1);
579
- let found = null;
580
- for (; ; ) {
581
- let before = node.childBefore(pos);
582
- if (!before) {
583
- break;
584
- } else if (before.name == "Comment") {
585
- pos = before.from;
586
- } else if (before.name == "Body" || before.name == "MatchBody") {
587
- if (context.baseIndentFor(before) + context.unit <= lineIndent)
588
- found = before;
589
- node = before;
590
- } else if (before.name == "MatchClause") {
591
- node = before;
592
- } else if (before.type.is("Statement")) {
593
- node = before;
594
- } else {
595
- break;
596
- }
597
- }
598
- return found;
599
- }
600
- function indentBody(context, node) {
601
- let base = context.baseIndentFor(node);
602
- let line = context.lineAt(context.pos, -1), to = line.from + line.text.length;
603
- if (/^\s*($|#)/.test(line.text) && context.node.to < to + 100 && !/\S/.test(context.state.sliceDoc(to, context.node.to)) && context.lineIndent(context.pos, -1) <= base)
604
- return null;
605
- if (/^\s*(else:|elif |except |finally:|case\s+[^=:]+:)/.test(context.textAfter) && context.lineIndent(context.pos, -1) > base)
606
- return null;
607
- return base + context.unit;
608
- }
609
- const pythonLanguage = /* @__PURE__ */ LRLanguage.define({
610
- name: "python",
611
- parser: /* @__PURE__ */ parser.configure({
612
- props: [
613
- /* @__PURE__ */ indentNodeProp.add({
614
- Body: (context) => {
615
- var _a;
616
- let body = /^\s*(#|$)/.test(context.textAfter) && innerBody(context) || context.node;
617
- return (_a = indentBody(context, body)) !== null && _a !== void 0 ? _a : context.continue();
618
- },
619
- MatchBody: (context) => {
620
- var _a;
621
- let inner = innerBody(context);
622
- return (_a = indentBody(context, inner || context.node)) !== null && _a !== void 0 ? _a : context.continue();
623
- },
624
- IfStatement: (cx) => /^\s*(else:|elif )/.test(cx.textAfter) ? cx.baseIndent : cx.continue(),
625
- "ForStatement WhileStatement": (cx) => /^\s*else:/.test(cx.textAfter) ? cx.baseIndent : cx.continue(),
626
- TryStatement: (cx) => /^\s*(except[ :]|finally:|else:)/.test(cx.textAfter) ? cx.baseIndent : cx.continue(),
627
- MatchStatement: (cx) => {
628
- if (/^\s*case /.test(cx.textAfter))
629
- return cx.baseIndent + cx.unit;
630
- return cx.continue();
631
- },
632
- "TupleExpression ComprehensionExpression ParamList ArgList ParenthesizedExpression": /* @__PURE__ */ delimitedIndent({ closing: ")" }),
633
- "DictionaryExpression DictionaryComprehensionExpression SetExpression SetComprehensionExpression": /* @__PURE__ */ delimitedIndent({ closing: "}" }),
634
- "ArrayExpression ArrayComprehensionExpression": /* @__PURE__ */ delimitedIndent({ closing: "]" }),
635
- MemberExpression: (cx) => cx.baseIndent + cx.unit,
636
- "String FormatString": () => null,
637
- Script: (context) => {
638
- var _a;
639
- let inner = innerBody(context);
640
- return (_a = inner && indentBody(context, inner)) !== null && _a !== void 0 ? _a : context.continue();
641
- }
642
- }),
643
- /* @__PURE__ */ foldNodeProp.add({
644
- "ArrayExpression DictionaryExpression SetExpression TupleExpression": foldInside,
645
- Body: (node, state) => ({ from: node.from + 1, to: node.to - (node.to == state.doc.length ? 0 : 1) }),
646
- "String FormatString": (node, state) => ({ from: state.doc.lineAt(node.from).to, to: node.to })
647
- })
648
- ]
649
- }),
650
- languageData: {
651
- closeBrackets: {
652
- brackets: ["(", "[", "{", "'", '"', "'''", '"""'],
653
- stringPrefixes: [
654
- "f",
655
- "fr",
656
- "rf",
657
- "r",
658
- "u",
659
- "b",
660
- "br",
661
- "rb",
662
- "F",
663
- "FR",
664
- "RF",
665
- "R",
666
- "U",
667
- "B",
668
- "BR",
669
- "RB"
670
- ]
671
- },
672
- commentTokens: { line: "#" },
673
- // Indent logic logic are triggered upon below input patterns
674
- indentOnInput: /^\s*([\}\]\)]|else:|elif |except |finally:|case\s+[^:]*:?)$/
675
- }
676
- });
677
- function python() {
678
- return new LanguageSupport(pythonLanguage, [
679
- pythonLanguage.data.of({ autocomplete: localCompletionSource }),
680
- pythonLanguage.data.of({ autocomplete: globalCompletion })
681
- ]);
682
- }
683
- export {
684
- globalCompletion,
685
- localCompletionSource,
686
- python,
687
- pythonLanguage
688
- };