this repo has no description

Add a statically vendored version of the library

+762 -10
+2 -1
.gitignore
··· 1 1 node_modules 2 2 _build 3 - dist 3 + dist 4 + vendor/code-mirror.compiled.js
+9 -9
example/src/dune
··· 1 - (executable 2 - (name index) 3 - (modes js) 4 - (js_of_ocaml 5 - (javascript_files basic.js)) 6 - (libraries code-mirror)) 1 + ; (executable 2 + ; (name index) 3 + ; (modes js) 4 + ; (js_of_ocaml 5 + ; (javascript_files basic.js)) 6 + ; (libraries code-mirror)) 7 7 8 - (alias 9 - (name default) 10 - (deps index.html)) 8 + ; (alias 9 + ; (name default) 10 + ; (deps index.html))
+697
package-lock.json
··· 1 + { 2 + "name": "app", 3 + "version": "0.0.1", 4 + "lockfileVersion": 2, 5 + "requires": true, 6 + "packages": { 7 + "": { 8 + "name": "app", 9 + "version": "0.0.1", 10 + "license": "MIT", 11 + "dependencies": { 12 + "@codemirror/autocomplete": "0.19.12", 13 + "@codemirror/basic-setup": "0.19.0", 14 + "@codemirror/legacy-modes": "0.19.0", 15 + "@codemirror/lint": "0.19.3", 16 + "@codemirror/state": "0.19.5", 17 + "@codemirror/stream-parser": "0.19.2", 18 + "@codemirror/theme-one-dark": "0.19.1", 19 + "@codemirror/view": "0.19.16" 20 + } 21 + }, 22 + "node_modules/@codemirror/autocomplete": { 23 + "version": "0.19.12", 24 + "resolved": "https://registry.npmjs.org/@codemirror/autocomplete/-/autocomplete-0.19.12.tgz", 25 + "integrity": "sha512-zUQYo5gMdv7vhxlKoAY/vnNCGzlE9AU7+P649v3ovpQpoFdo3U1Nt01EJqFb4Sfaw6l1U/Elc9Iksd1lDy+MVw==", 26 + "dependencies": { 27 + "@codemirror/language": "^0.19.0", 28 + "@codemirror/state": "^0.19.4", 29 + "@codemirror/text": "^0.19.2", 30 + "@codemirror/tooltip": "^0.19.12", 31 + "@codemirror/view": "^0.19.0", 32 + "@lezer/common": "^0.15.0" 33 + } 34 + }, 35 + "node_modules/@codemirror/basic-setup": { 36 + "version": "0.19.0", 37 + "resolved": "https://registry.npmjs.org/@codemirror/basic-setup/-/basic-setup-0.19.0.tgz", 38 + "integrity": "sha512-Yhrf7fIz8+INHWOhpWeRwbs8fpc0KsydX9baD7TyYqniLVWyTi0Hwm52mr0f5O+k4YaJPeHAgT3x9gzDXZIvOw==", 39 + "dependencies": { 40 + "@codemirror/autocomplete": "^0.19.0", 41 + "@codemirror/closebrackets": "^0.19.0", 42 + "@codemirror/commands": "^0.19.0", 43 + "@codemirror/comment": "^0.19.0", 44 + "@codemirror/fold": "^0.19.0", 45 + "@codemirror/gutter": "^0.19.0", 46 + "@codemirror/highlight": "^0.19.0", 47 + "@codemirror/history": "^0.19.0", 48 + "@codemirror/language": "^0.19.0", 49 + "@codemirror/lint": "^0.19.0", 50 + "@codemirror/matchbrackets": "^0.19.0", 51 + "@codemirror/rectangular-selection": "^0.19.0", 52 + "@codemirror/search": "^0.19.0", 53 + "@codemirror/state": "^0.19.0", 54 + "@codemirror/view": "^0.19.0" 55 + } 56 + }, 57 + "node_modules/@codemirror/closebrackets": { 58 + "version": "0.19.0", 59 + "resolved": "https://registry.npmjs.org/@codemirror/closebrackets/-/closebrackets-0.19.0.tgz", 60 + "integrity": "sha512-dFWX5OEVYWRNtGaifSbwIAlymnRRjxWMiMbffbAjF7p0zfGHDbdGkiT56q3Xud63h5/tQdSo5dK1iyNTzHz5vg==", 61 + "dependencies": { 62 + "@codemirror/language": "^0.19.0", 63 + "@codemirror/rangeset": "^0.19.0", 64 + "@codemirror/state": "^0.19.0", 65 + "@codemirror/text": "^0.19.0", 66 + "@codemirror/view": "^0.19.0" 67 + } 68 + }, 69 + "node_modules/@codemirror/commands": { 70 + "version": "0.19.8", 71 + "resolved": "https://registry.npmjs.org/@codemirror/commands/-/commands-0.19.8.tgz", 72 + "integrity": "sha512-65LIMSGUGGpY3oH6mzV46YWRrgao6NmfJ+AuC7jNz3K5NPnH6GCV1H5I6SwOFyVbkiygGyd0EFwrWqywTBD1aw==", 73 + "dependencies": { 74 + "@codemirror/language": "^0.19.0", 75 + "@codemirror/matchbrackets": "^0.19.0", 76 + "@codemirror/state": "^0.19.2", 77 + "@codemirror/text": "^0.19.6", 78 + "@codemirror/view": "^0.19.22", 79 + "@lezer/common": "^0.15.0" 80 + } 81 + }, 82 + "node_modules/@codemirror/commands/node_modules/@codemirror/view": { 83 + "version": "0.19.40", 84 + "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-0.19.40.tgz", 85 + "integrity": "sha512-0CQV99+/nIKTVVbDs0XjW4Rkp8TobzJBXRaUHF6mOroVjuIBBcolE1eAGVEU5LrCS44C798jiP4r/HhLDNS+rw==", 86 + "dependencies": { 87 + "@codemirror/rangeset": "^0.19.5", 88 + "@codemirror/state": "^0.19.3", 89 + "@codemirror/text": "^0.19.0", 90 + "style-mod": "^4.0.0", 91 + "w3c-keyname": "^2.2.4" 92 + } 93 + }, 94 + "node_modules/@codemirror/comment": { 95 + "version": "0.19.0", 96 + "resolved": "https://registry.npmjs.org/@codemirror/comment/-/comment-0.19.0.tgz", 97 + "integrity": "sha512-3hqAd0548fxqOBm4khFMcXVIivX8p0bSlbAuZJ6PNoUn/0wXhxkxowPp0FmFzU2+y37Z+ZQF5cRB5EREWPRIiQ==", 98 + "dependencies": { 99 + "@codemirror/state": "^0.19.0", 100 + "@codemirror/text": "^0.19.0", 101 + "@codemirror/view": "^0.19.0" 102 + } 103 + }, 104 + "node_modules/@codemirror/fold": { 105 + "version": "0.19.3", 106 + "resolved": "https://registry.npmjs.org/@codemirror/fold/-/fold-0.19.3.tgz", 107 + "integrity": "sha512-8hT+Eq2G68mL0yPRvSD2ewhnLQAX6sbUJmtGVKFcj8oAXtfpYCX8LIcfXsuI19Qs7gZkOSpqZvn+KKj8IhZoAw==", 108 + "dependencies": { 109 + "@codemirror/gutter": "^0.19.0", 110 + "@codemirror/language": "^0.19.0", 111 + "@codemirror/rangeset": "^0.19.0", 112 + "@codemirror/state": "^0.19.0", 113 + "@codemirror/view": "^0.19.22" 114 + } 115 + }, 116 + "node_modules/@codemirror/fold/node_modules/@codemirror/view": { 117 + "version": "0.19.40", 118 + "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-0.19.40.tgz", 119 + "integrity": "sha512-0CQV99+/nIKTVVbDs0XjW4Rkp8TobzJBXRaUHF6mOroVjuIBBcolE1eAGVEU5LrCS44C798jiP4r/HhLDNS+rw==", 120 + "dependencies": { 121 + "@codemirror/rangeset": "^0.19.5", 122 + "@codemirror/state": "^0.19.3", 123 + "@codemirror/text": "^0.19.0", 124 + "style-mod": "^4.0.0", 125 + "w3c-keyname": "^2.2.4" 126 + } 127 + }, 128 + "node_modules/@codemirror/gutter": { 129 + "version": "0.19.9", 130 + "resolved": "https://registry.npmjs.org/@codemirror/gutter/-/gutter-0.19.9.tgz", 131 + "integrity": "sha512-PFrtmilahin1g6uL27aG5tM/rqR9DZzZYZsIrCXA5Uc2OFTFqx4owuhoU9hqfYxHp5ovfvBwQ+txFzqS4vog6Q==", 132 + "dependencies": { 133 + "@codemirror/rangeset": "^0.19.0", 134 + "@codemirror/state": "^0.19.0", 135 + "@codemirror/view": "^0.19.23" 136 + } 137 + }, 138 + "node_modules/@codemirror/gutter/node_modules/@codemirror/view": { 139 + "version": "0.19.40", 140 + "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-0.19.40.tgz", 141 + "integrity": "sha512-0CQV99+/nIKTVVbDs0XjW4Rkp8TobzJBXRaUHF6mOroVjuIBBcolE1eAGVEU5LrCS44C798jiP4r/HhLDNS+rw==", 142 + "dependencies": { 143 + "@codemirror/rangeset": "^0.19.5", 144 + "@codemirror/state": "^0.19.3", 145 + "@codemirror/text": "^0.19.0", 146 + "style-mod": "^4.0.0", 147 + "w3c-keyname": "^2.2.4" 148 + } 149 + }, 150 + "node_modules/@codemirror/highlight": { 151 + "version": "0.19.7", 152 + "resolved": "https://registry.npmjs.org/@codemirror/highlight/-/highlight-0.19.7.tgz", 153 + "integrity": "sha512-3W32hBCY0pbbv/xidismw+RDMKuIag+fo4kZIbD7WoRj+Ttcaxjf+vP6RttRHXLaaqbWh031lTeON8kMlDhMYw==", 154 + "dependencies": { 155 + "@codemirror/language": "^0.19.0", 156 + "@codemirror/rangeset": "^0.19.0", 157 + "@codemirror/state": "^0.19.3", 158 + "@codemirror/view": "^0.19.0", 159 + "@lezer/common": "^0.15.0", 160 + "style-mod": "^4.0.0" 161 + } 162 + }, 163 + "node_modules/@codemirror/history": { 164 + "version": "0.19.2", 165 + "resolved": "https://registry.npmjs.org/@codemirror/history/-/history-0.19.2.tgz", 166 + "integrity": "sha512-unhP4t3N2smzmHoo/Yio6ueWi+il8gm9VKrvi6wlcdGH5fOfVDNkmjHQ495SiR+EdOG35+3iNebSPYww0vN7ow==", 167 + "dependencies": { 168 + "@codemirror/state": "^0.19.2", 169 + "@codemirror/view": "^0.19.0" 170 + } 171 + }, 172 + "node_modules/@codemirror/language": { 173 + "version": "0.19.7", 174 + "resolved": "https://registry.npmjs.org/@codemirror/language/-/language-0.19.7.tgz", 175 + "integrity": "sha512-pNNUtYWMIMG0lUSKyUXJr8U0rFiCKsKFXbA2Oj17PC+S1FY99hV0z1vcntW67ekAIZw9DMEUQnLsKBuIbAUX7Q==", 176 + "dependencies": { 177 + "@codemirror/state": "^0.19.0", 178 + "@codemirror/text": "^0.19.0", 179 + "@codemirror/view": "^0.19.0", 180 + "@lezer/common": "^0.15.5", 181 + "@lezer/lr": "^0.15.0" 182 + } 183 + }, 184 + "node_modules/@codemirror/legacy-modes": { 185 + "version": "0.19.0", 186 + "resolved": "https://registry.npmjs.org/@codemirror/legacy-modes/-/legacy-modes-0.19.0.tgz", 187 + "integrity": "sha512-GSPdBNUeyF3nxJ2lztXGp2UoQjn+ggK5z+Kd4tflziecCG1+8mcdudDgFvxDuaTGWyM34S7Ldb4Xv7/XodZtBA==", 188 + "dependencies": { 189 + "@codemirror/stream-parser": "^0.19.0" 190 + } 191 + }, 192 + "node_modules/@codemirror/lint": { 193 + "version": "0.19.3", 194 + "resolved": "https://registry.npmjs.org/@codemirror/lint/-/lint-0.19.3.tgz", 195 + "integrity": "sha512-+c39s05ybD2NjghxkPFsUbH/qBL0cdzKmtHbzUm0RVspeL2OiP7uHYJ6J5+Qr9RjMIPWzcqSauRqxfmCrctUfg==", 196 + "dependencies": { 197 + "@codemirror/gutter": "^0.19.4", 198 + "@codemirror/panel": "^0.19.0", 199 + "@codemirror/rangeset": "^0.19.1", 200 + "@codemirror/state": "^0.19.4", 201 + "@codemirror/tooltip": "^0.19.5", 202 + "@codemirror/view": "^0.19.0", 203 + "crelt": "^1.0.5" 204 + } 205 + }, 206 + "node_modules/@codemirror/matchbrackets": { 207 + "version": "0.19.3", 208 + "resolved": "https://registry.npmjs.org/@codemirror/matchbrackets/-/matchbrackets-0.19.3.tgz", 209 + "integrity": "sha512-ljkrBxaLgh8jesroUiBa57pdEwqJamxkukXrJpL9LdyFZVJaF+9TldhztRaMsMZO1XnCSSHQ9sg32iuHo7Sc2g==", 210 + "dependencies": { 211 + "@codemirror/language": "^0.19.0", 212 + "@codemirror/state": "^0.19.0", 213 + "@codemirror/view": "^0.19.0", 214 + "@lezer/common": "^0.15.0" 215 + } 216 + }, 217 + "node_modules/@codemirror/panel": { 218 + "version": "0.19.1", 219 + "resolved": "https://registry.npmjs.org/@codemirror/panel/-/panel-0.19.1.tgz", 220 + "integrity": "sha512-sYeOCMA3KRYxZYJYn5PNlt9yNsjy3zTNTrbYSfVgjgL9QomIVgOJWPO5hZ2sTN8lufO6lw0vTBsIPL9MSidmBg==", 221 + "dependencies": { 222 + "@codemirror/state": "^0.19.0", 223 + "@codemirror/view": "^0.19.0" 224 + } 225 + }, 226 + "node_modules/@codemirror/rangeset": { 227 + "version": "0.19.6", 228 + "resolved": "https://registry.npmjs.org/@codemirror/rangeset/-/rangeset-0.19.6.tgz", 229 + "integrity": "sha512-wYtgGnW2Jtrh2nj7vpcBoEZib+jfyilrLN6w7YMTzzSRN8xXhYRorOUg4VQIa1JwFcMQrjSCkIdqXsDqOX1cYg==", 230 + "dependencies": { 231 + "@codemirror/state": "^0.19.0" 232 + } 233 + }, 234 + "node_modules/@codemirror/rectangular-selection": { 235 + "version": "0.19.1", 236 + "resolved": "https://registry.npmjs.org/@codemirror/rectangular-selection/-/rectangular-selection-0.19.1.tgz", 237 + "integrity": "sha512-9ElnqOg3mpZIWe0prPRd1SZ48Q9QB3bR8Aocq8UtjboJSUG8ABhRrbuTZMW/rMqpBPSjVpCe9xkCCkEQMYQVmw==", 238 + "dependencies": { 239 + "@codemirror/state": "^0.19.0", 240 + "@codemirror/text": "^0.19.4", 241 + "@codemirror/view": "^0.19.0" 242 + } 243 + }, 244 + "node_modules/@codemirror/search": { 245 + "version": "0.19.6", 246 + "resolved": "https://registry.npmjs.org/@codemirror/search/-/search-0.19.6.tgz", 247 + "integrity": "sha512-Wx3AyZ5/hFv6+YklNMeW2sHbVmnhSNC027Rc/pk7Cy51g09ZBHqMMAwJlpNcWmGYjf+SYzomIUpd+DgkVCmvLw==", 248 + "dependencies": { 249 + "@codemirror/panel": "^0.19.0", 250 + "@codemirror/rangeset": "^0.19.0", 251 + "@codemirror/state": "^0.19.3", 252 + "@codemirror/text": "^0.19.0", 253 + "@codemirror/view": "^0.19.34", 254 + "crelt": "^1.0.5" 255 + } 256 + }, 257 + "node_modules/@codemirror/search/node_modules/@codemirror/view": { 258 + "version": "0.19.40", 259 + "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-0.19.40.tgz", 260 + "integrity": "sha512-0CQV99+/nIKTVVbDs0XjW4Rkp8TobzJBXRaUHF6mOroVjuIBBcolE1eAGVEU5LrCS44C798jiP4r/HhLDNS+rw==", 261 + "dependencies": { 262 + "@codemirror/rangeset": "^0.19.5", 263 + "@codemirror/state": "^0.19.3", 264 + "@codemirror/text": "^0.19.0", 265 + "style-mod": "^4.0.0", 266 + "w3c-keyname": "^2.2.4" 267 + } 268 + }, 269 + "node_modules/@codemirror/state": { 270 + "version": "0.19.5", 271 + "resolved": "https://registry.npmjs.org/@codemirror/state/-/state-0.19.5.tgz", 272 + "integrity": "sha512-a3bJnkFuh4Z36nuOzAYobWViQ9eq5ux2wOb/46jUl+0Sj2BGrdz+pY1L+y2NUZhwPyWGcIrBtranr5P0rEEq8A==", 273 + "dependencies": { 274 + "@codemirror/text": "^0.19.0" 275 + } 276 + }, 277 + "node_modules/@codemirror/stream-parser": { 278 + "version": "0.19.2", 279 + "resolved": "https://registry.npmjs.org/@codemirror/stream-parser/-/stream-parser-0.19.2.tgz", 280 + "integrity": "sha512-hBKRQlyu8GUOrY33xZ6/1kAfNZ8ZUm6cX9a7mPx8zAAqnpz/fpksC/qJRrkg1mPMBwxm+JG4fqAwDGJ3gLVniQ==", 281 + "dependencies": { 282 + "@codemirror/highlight": "^0.19.0", 283 + "@codemirror/language": "^0.19.0", 284 + "@codemirror/state": "^0.19.0", 285 + "@codemirror/text": "^0.19.0", 286 + "@lezer/common": "^0.15.0", 287 + "@lezer/lr": "^0.15.0" 288 + } 289 + }, 290 + "node_modules/@codemirror/text": { 291 + "version": "0.19.6", 292 + "resolved": "https://registry.npmjs.org/@codemirror/text/-/text-0.19.6.tgz", 293 + "integrity": "sha512-T9jnREMIygx+TPC1bOuepz18maGq/92q2a+n4qTqObKwvNMg+8cMTslb8yxeEDEq7S3kpgGWxgO1UWbQRij0dA==" 294 + }, 295 + "node_modules/@codemirror/theme-one-dark": { 296 + "version": "0.19.1", 297 + "resolved": "https://registry.npmjs.org/@codemirror/theme-one-dark/-/theme-one-dark-0.19.1.tgz", 298 + "integrity": "sha512-8gc4c2k2o/EhyHoWkghCxp5vyDT96JaFGtRy35PHwIom0LZdx7aU4AbDUnITvwiFB+0+i54VO+WQjBqgTyJvqg==", 299 + "dependencies": { 300 + "@codemirror/highlight": "^0.19.0", 301 + "@codemirror/state": "^0.19.0", 302 + "@codemirror/view": "^0.19.0" 303 + } 304 + }, 305 + "node_modules/@codemirror/tooltip": { 306 + "version": "0.19.13", 307 + "resolved": "https://registry.npmjs.org/@codemirror/tooltip/-/tooltip-0.19.13.tgz", 308 + "integrity": "sha512-7vgvjQjwFQ9hPejw2s+w3UR1XAYjQ5M0F9HRwutXkZHP1tBFV7LnNJ3xBD7F9SR9kAh8WgdL3BpUsEwX1aqoQg==", 309 + "dependencies": { 310 + "@codemirror/state": "^0.19.0", 311 + "@codemirror/view": "^0.19.0" 312 + } 313 + }, 314 + "node_modules/@codemirror/view": { 315 + "version": "0.19.16", 316 + "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-0.19.16.tgz", 317 + "integrity": "sha512-VumZoAQRX9BhHU0cD4++izO4mfCH36J61xz9MxtfOKEggzuKlyuGDrdix67FhoDfYiDRvqv9lt1J5YZ/zdU2WA==", 318 + "dependencies": { 319 + "@codemirror/rangeset": "^0.19.0", 320 + "@codemirror/state": "^0.19.3", 321 + "@codemirror/text": "^0.19.0", 322 + "style-mod": "^4.0.0", 323 + "w3c-keyname": "^2.2.4" 324 + } 325 + }, 326 + "node_modules/@lezer/common": { 327 + "version": "0.15.11", 328 + "resolved": "https://registry.npmjs.org/@lezer/common/-/common-0.15.11.tgz", 329 + "integrity": "sha512-vv0nSdIaVCRcJ8rPuDdsrNVfBOYe/4Szr/LhF929XyDmBndLDuWiCCHooGlGlJfzELyO608AyDhVsuX/ZG36NA==" 330 + }, 331 + "node_modules/@lezer/lr": { 332 + "version": "0.15.7", 333 + "resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-0.15.7.tgz", 334 + "integrity": "sha512-rmUukgyKSm6xzXO4cK5hkpX3+ZTHF+bHDkEuhofAVUTS3J23YytUxGWsrDwBVvGbhvxW87kheb2mRYHRwKacDQ==", 335 + "dependencies": { 336 + "@lezer/common": "^0.15.0" 337 + } 338 + }, 339 + "node_modules/crelt": { 340 + "version": "1.0.5", 341 + "resolved": "https://registry.npmjs.org/crelt/-/crelt-1.0.5.tgz", 342 + "integrity": "sha512-+BO9wPPi+DWTDcNYhr/W90myha8ptzftZT+LwcmUbbok0rcP/fequmFYCw8NMoH7pkAZQzU78b3kYrlua5a9eA==" 343 + }, 344 + "node_modules/style-mod": { 345 + "version": "4.0.0", 346 + "resolved": "https://registry.npmjs.org/style-mod/-/style-mod-4.0.0.tgz", 347 + "integrity": "sha512-OPhtyEjyyN9x3nhPsu76f52yUGXiZcgvsrFVtvTkyGRQJ0XK+GPc6ov1z+lRpbeabka+MYEQxOYRnt5nF30aMw==" 348 + }, 349 + "node_modules/w3c-keyname": { 350 + "version": "2.2.4", 351 + "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.4.tgz", 352 + "integrity": "sha512-tOhfEwEzFLJzf6d1ZPkYfGj+FWhIpBux9ppoP3rlclw3Z0BZv3N7b7030Z1kYth+6rDuAsXUFr+d0VE6Ed1ikw==" 353 + } 354 + }, 355 + "dependencies": { 356 + "@codemirror/autocomplete": { 357 + "version": "0.19.12", 358 + "resolved": "https://registry.npmjs.org/@codemirror/autocomplete/-/autocomplete-0.19.12.tgz", 359 + "integrity": "sha512-zUQYo5gMdv7vhxlKoAY/vnNCGzlE9AU7+P649v3ovpQpoFdo3U1Nt01EJqFb4Sfaw6l1U/Elc9Iksd1lDy+MVw==", 360 + "requires": { 361 + "@codemirror/language": "^0.19.0", 362 + "@codemirror/state": "^0.19.4", 363 + "@codemirror/text": "^0.19.2", 364 + "@codemirror/tooltip": "^0.19.12", 365 + "@codemirror/view": "^0.19.0", 366 + "@lezer/common": "^0.15.0" 367 + } 368 + }, 369 + "@codemirror/basic-setup": { 370 + "version": "0.19.0", 371 + "resolved": "https://registry.npmjs.org/@codemirror/basic-setup/-/basic-setup-0.19.0.tgz", 372 + "integrity": "sha512-Yhrf7fIz8+INHWOhpWeRwbs8fpc0KsydX9baD7TyYqniLVWyTi0Hwm52mr0f5O+k4YaJPeHAgT3x9gzDXZIvOw==", 373 + "requires": { 374 + "@codemirror/autocomplete": "^0.19.0", 375 + "@codemirror/closebrackets": "^0.19.0", 376 + "@codemirror/commands": "^0.19.0", 377 + "@codemirror/comment": "^0.19.0", 378 + "@codemirror/fold": "^0.19.0", 379 + "@codemirror/gutter": "^0.19.0", 380 + "@codemirror/highlight": "^0.19.0", 381 + "@codemirror/history": "^0.19.0", 382 + "@codemirror/language": "^0.19.0", 383 + "@codemirror/lint": "^0.19.0", 384 + "@codemirror/matchbrackets": "^0.19.0", 385 + "@codemirror/rectangular-selection": "^0.19.0", 386 + "@codemirror/search": "^0.19.0", 387 + "@codemirror/state": "^0.19.0", 388 + "@codemirror/view": "^0.19.0" 389 + } 390 + }, 391 + "@codemirror/closebrackets": { 392 + "version": "0.19.0", 393 + "resolved": "https://registry.npmjs.org/@codemirror/closebrackets/-/closebrackets-0.19.0.tgz", 394 + "integrity": "sha512-dFWX5OEVYWRNtGaifSbwIAlymnRRjxWMiMbffbAjF7p0zfGHDbdGkiT56q3Xud63h5/tQdSo5dK1iyNTzHz5vg==", 395 + "requires": { 396 + "@codemirror/language": "^0.19.0", 397 + "@codemirror/rangeset": "^0.19.0", 398 + "@codemirror/state": "^0.19.0", 399 + "@codemirror/text": "^0.19.0", 400 + "@codemirror/view": "^0.19.0" 401 + } 402 + }, 403 + "@codemirror/commands": { 404 + "version": "0.19.8", 405 + "resolved": "https://registry.npmjs.org/@codemirror/commands/-/commands-0.19.8.tgz", 406 + "integrity": "sha512-65LIMSGUGGpY3oH6mzV46YWRrgao6NmfJ+AuC7jNz3K5NPnH6GCV1H5I6SwOFyVbkiygGyd0EFwrWqywTBD1aw==", 407 + "requires": { 408 + "@codemirror/language": "^0.19.0", 409 + "@codemirror/matchbrackets": "^0.19.0", 410 + "@codemirror/state": "^0.19.2", 411 + "@codemirror/text": "^0.19.6", 412 + "@codemirror/view": "^0.19.22", 413 + "@lezer/common": "^0.15.0" 414 + }, 415 + "dependencies": { 416 + "@codemirror/view": { 417 + "version": "0.19.40", 418 + "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-0.19.40.tgz", 419 + "integrity": "sha512-0CQV99+/nIKTVVbDs0XjW4Rkp8TobzJBXRaUHF6mOroVjuIBBcolE1eAGVEU5LrCS44C798jiP4r/HhLDNS+rw==", 420 + "requires": { 421 + "@codemirror/rangeset": "^0.19.5", 422 + "@codemirror/state": "^0.19.3", 423 + "@codemirror/text": "^0.19.0", 424 + "style-mod": "^4.0.0", 425 + "w3c-keyname": "^2.2.4" 426 + } 427 + } 428 + } 429 + }, 430 + "@codemirror/comment": { 431 + "version": "0.19.0", 432 + "resolved": "https://registry.npmjs.org/@codemirror/comment/-/comment-0.19.0.tgz", 433 + "integrity": "sha512-3hqAd0548fxqOBm4khFMcXVIivX8p0bSlbAuZJ6PNoUn/0wXhxkxowPp0FmFzU2+y37Z+ZQF5cRB5EREWPRIiQ==", 434 + "requires": { 435 + "@codemirror/state": "^0.19.0", 436 + "@codemirror/text": "^0.19.0", 437 + "@codemirror/view": "^0.19.0" 438 + } 439 + }, 440 + "@codemirror/fold": { 441 + "version": "0.19.3", 442 + "resolved": "https://registry.npmjs.org/@codemirror/fold/-/fold-0.19.3.tgz", 443 + "integrity": "sha512-8hT+Eq2G68mL0yPRvSD2ewhnLQAX6sbUJmtGVKFcj8oAXtfpYCX8LIcfXsuI19Qs7gZkOSpqZvn+KKj8IhZoAw==", 444 + "requires": { 445 + "@codemirror/gutter": "^0.19.0", 446 + "@codemirror/language": "^0.19.0", 447 + "@codemirror/rangeset": "^0.19.0", 448 + "@codemirror/state": "^0.19.0", 449 + "@codemirror/view": "^0.19.22" 450 + }, 451 + "dependencies": { 452 + "@codemirror/view": { 453 + "version": "0.19.40", 454 + "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-0.19.40.tgz", 455 + "integrity": "sha512-0CQV99+/nIKTVVbDs0XjW4Rkp8TobzJBXRaUHF6mOroVjuIBBcolE1eAGVEU5LrCS44C798jiP4r/HhLDNS+rw==", 456 + "requires": { 457 + "@codemirror/rangeset": "^0.19.5", 458 + "@codemirror/state": "^0.19.3", 459 + "@codemirror/text": "^0.19.0", 460 + "style-mod": "^4.0.0", 461 + "w3c-keyname": "^2.2.4" 462 + } 463 + } 464 + } 465 + }, 466 + "@codemirror/gutter": { 467 + "version": "0.19.9", 468 + "resolved": "https://registry.npmjs.org/@codemirror/gutter/-/gutter-0.19.9.tgz", 469 + "integrity": "sha512-PFrtmilahin1g6uL27aG5tM/rqR9DZzZYZsIrCXA5Uc2OFTFqx4owuhoU9hqfYxHp5ovfvBwQ+txFzqS4vog6Q==", 470 + "requires": { 471 + "@codemirror/rangeset": "^0.19.0", 472 + "@codemirror/state": "^0.19.0", 473 + "@codemirror/view": "^0.19.23" 474 + }, 475 + "dependencies": { 476 + "@codemirror/view": { 477 + "version": "0.19.40", 478 + "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-0.19.40.tgz", 479 + "integrity": "sha512-0CQV99+/nIKTVVbDs0XjW4Rkp8TobzJBXRaUHF6mOroVjuIBBcolE1eAGVEU5LrCS44C798jiP4r/HhLDNS+rw==", 480 + "requires": { 481 + "@codemirror/rangeset": "^0.19.5", 482 + "@codemirror/state": "^0.19.3", 483 + "@codemirror/text": "^0.19.0", 484 + "style-mod": "^4.0.0", 485 + "w3c-keyname": "^2.2.4" 486 + } 487 + } 488 + } 489 + }, 490 + "@codemirror/highlight": { 491 + "version": "0.19.7", 492 + "resolved": "https://registry.npmjs.org/@codemirror/highlight/-/highlight-0.19.7.tgz", 493 + "integrity": "sha512-3W32hBCY0pbbv/xidismw+RDMKuIag+fo4kZIbD7WoRj+Ttcaxjf+vP6RttRHXLaaqbWh031lTeON8kMlDhMYw==", 494 + "requires": { 495 + "@codemirror/language": "^0.19.0", 496 + "@codemirror/rangeset": "^0.19.0", 497 + "@codemirror/state": "^0.19.3", 498 + "@codemirror/view": "^0.19.0", 499 + "@lezer/common": "^0.15.0", 500 + "style-mod": "^4.0.0" 501 + } 502 + }, 503 + "@codemirror/history": { 504 + "version": "0.19.2", 505 + "resolved": "https://registry.npmjs.org/@codemirror/history/-/history-0.19.2.tgz", 506 + "integrity": "sha512-unhP4t3N2smzmHoo/Yio6ueWi+il8gm9VKrvi6wlcdGH5fOfVDNkmjHQ495SiR+EdOG35+3iNebSPYww0vN7ow==", 507 + "requires": { 508 + "@codemirror/state": "^0.19.2", 509 + "@codemirror/view": "^0.19.0" 510 + } 511 + }, 512 + "@codemirror/language": { 513 + "version": "0.19.7", 514 + "resolved": "https://registry.npmjs.org/@codemirror/language/-/language-0.19.7.tgz", 515 + "integrity": "sha512-pNNUtYWMIMG0lUSKyUXJr8U0rFiCKsKFXbA2Oj17PC+S1FY99hV0z1vcntW67ekAIZw9DMEUQnLsKBuIbAUX7Q==", 516 + "requires": { 517 + "@codemirror/state": "^0.19.0", 518 + "@codemirror/text": "^0.19.0", 519 + "@codemirror/view": "^0.19.0", 520 + "@lezer/common": "^0.15.5", 521 + "@lezer/lr": "^0.15.0" 522 + } 523 + }, 524 + "@codemirror/legacy-modes": { 525 + "version": "0.19.0", 526 + "resolved": "https://registry.npmjs.org/@codemirror/legacy-modes/-/legacy-modes-0.19.0.tgz", 527 + "integrity": "sha512-GSPdBNUeyF3nxJ2lztXGp2UoQjn+ggK5z+Kd4tflziecCG1+8mcdudDgFvxDuaTGWyM34S7Ldb4Xv7/XodZtBA==", 528 + "requires": { 529 + "@codemirror/stream-parser": "^0.19.0" 530 + } 531 + }, 532 + "@codemirror/lint": { 533 + "version": "0.19.3", 534 + "resolved": "https://registry.npmjs.org/@codemirror/lint/-/lint-0.19.3.tgz", 535 + "integrity": "sha512-+c39s05ybD2NjghxkPFsUbH/qBL0cdzKmtHbzUm0RVspeL2OiP7uHYJ6J5+Qr9RjMIPWzcqSauRqxfmCrctUfg==", 536 + "requires": { 537 + "@codemirror/gutter": "^0.19.4", 538 + "@codemirror/panel": "^0.19.0", 539 + "@codemirror/rangeset": "^0.19.1", 540 + "@codemirror/state": "^0.19.4", 541 + "@codemirror/tooltip": "^0.19.5", 542 + "@codemirror/view": "^0.19.0", 543 + "crelt": "^1.0.5" 544 + } 545 + }, 546 + "@codemirror/matchbrackets": { 547 + "version": "0.19.3", 548 + "resolved": "https://registry.npmjs.org/@codemirror/matchbrackets/-/matchbrackets-0.19.3.tgz", 549 + "integrity": "sha512-ljkrBxaLgh8jesroUiBa57pdEwqJamxkukXrJpL9LdyFZVJaF+9TldhztRaMsMZO1XnCSSHQ9sg32iuHo7Sc2g==", 550 + "requires": { 551 + "@codemirror/language": "^0.19.0", 552 + "@codemirror/state": "^0.19.0", 553 + "@codemirror/view": "^0.19.0", 554 + "@lezer/common": "^0.15.0" 555 + } 556 + }, 557 + "@codemirror/panel": { 558 + "version": "0.19.1", 559 + "resolved": "https://registry.npmjs.org/@codemirror/panel/-/panel-0.19.1.tgz", 560 + "integrity": "sha512-sYeOCMA3KRYxZYJYn5PNlt9yNsjy3zTNTrbYSfVgjgL9QomIVgOJWPO5hZ2sTN8lufO6lw0vTBsIPL9MSidmBg==", 561 + "requires": { 562 + "@codemirror/state": "^0.19.0", 563 + "@codemirror/view": "^0.19.0" 564 + } 565 + }, 566 + "@codemirror/rangeset": { 567 + "version": "0.19.6", 568 + "resolved": "https://registry.npmjs.org/@codemirror/rangeset/-/rangeset-0.19.6.tgz", 569 + "integrity": "sha512-wYtgGnW2Jtrh2nj7vpcBoEZib+jfyilrLN6w7YMTzzSRN8xXhYRorOUg4VQIa1JwFcMQrjSCkIdqXsDqOX1cYg==", 570 + "requires": { 571 + "@codemirror/state": "^0.19.0" 572 + } 573 + }, 574 + "@codemirror/rectangular-selection": { 575 + "version": "0.19.1", 576 + "resolved": "https://registry.npmjs.org/@codemirror/rectangular-selection/-/rectangular-selection-0.19.1.tgz", 577 + "integrity": "sha512-9ElnqOg3mpZIWe0prPRd1SZ48Q9QB3bR8Aocq8UtjboJSUG8ABhRrbuTZMW/rMqpBPSjVpCe9xkCCkEQMYQVmw==", 578 + "requires": { 579 + "@codemirror/state": "^0.19.0", 580 + "@codemirror/text": "^0.19.4", 581 + "@codemirror/view": "^0.19.0" 582 + } 583 + }, 584 + "@codemirror/search": { 585 + "version": "0.19.6", 586 + "resolved": "https://registry.npmjs.org/@codemirror/search/-/search-0.19.6.tgz", 587 + "integrity": "sha512-Wx3AyZ5/hFv6+YklNMeW2sHbVmnhSNC027Rc/pk7Cy51g09ZBHqMMAwJlpNcWmGYjf+SYzomIUpd+DgkVCmvLw==", 588 + "requires": { 589 + "@codemirror/panel": "^0.19.0", 590 + "@codemirror/rangeset": "^0.19.0", 591 + "@codemirror/state": "^0.19.3", 592 + "@codemirror/text": "^0.19.0", 593 + "@codemirror/view": "^0.19.34", 594 + "crelt": "^1.0.5" 595 + }, 596 + "dependencies": { 597 + "@codemirror/view": { 598 + "version": "0.19.40", 599 + "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-0.19.40.tgz", 600 + "integrity": "sha512-0CQV99+/nIKTVVbDs0XjW4Rkp8TobzJBXRaUHF6mOroVjuIBBcolE1eAGVEU5LrCS44C798jiP4r/HhLDNS+rw==", 601 + "requires": { 602 + "@codemirror/rangeset": "^0.19.5", 603 + "@codemirror/state": "^0.19.3", 604 + "@codemirror/text": "^0.19.0", 605 + "style-mod": "^4.0.0", 606 + "w3c-keyname": "^2.2.4" 607 + } 608 + } 609 + } 610 + }, 611 + "@codemirror/state": { 612 + "version": "0.19.5", 613 + "resolved": "https://registry.npmjs.org/@codemirror/state/-/state-0.19.5.tgz", 614 + "integrity": "sha512-a3bJnkFuh4Z36nuOzAYobWViQ9eq5ux2wOb/46jUl+0Sj2BGrdz+pY1L+y2NUZhwPyWGcIrBtranr5P0rEEq8A==", 615 + "requires": { 616 + "@codemirror/text": "^0.19.0" 617 + } 618 + }, 619 + "@codemirror/stream-parser": { 620 + "version": "0.19.2", 621 + "resolved": "https://registry.npmjs.org/@codemirror/stream-parser/-/stream-parser-0.19.2.tgz", 622 + "integrity": "sha512-hBKRQlyu8GUOrY33xZ6/1kAfNZ8ZUm6cX9a7mPx8zAAqnpz/fpksC/qJRrkg1mPMBwxm+JG4fqAwDGJ3gLVniQ==", 623 + "requires": { 624 + "@codemirror/highlight": "^0.19.0", 625 + "@codemirror/language": "^0.19.0", 626 + "@codemirror/state": "^0.19.0", 627 + "@codemirror/text": "^0.19.0", 628 + "@lezer/common": "^0.15.0", 629 + "@lezer/lr": "^0.15.0" 630 + } 631 + }, 632 + "@codemirror/text": { 633 + "version": "0.19.6", 634 + "resolved": "https://registry.npmjs.org/@codemirror/text/-/text-0.19.6.tgz", 635 + "integrity": "sha512-T9jnREMIygx+TPC1bOuepz18maGq/92q2a+n4qTqObKwvNMg+8cMTslb8yxeEDEq7S3kpgGWxgO1UWbQRij0dA==" 636 + }, 637 + "@codemirror/theme-one-dark": { 638 + "version": "0.19.1", 639 + "resolved": "https://registry.npmjs.org/@codemirror/theme-one-dark/-/theme-one-dark-0.19.1.tgz", 640 + "integrity": "sha512-8gc4c2k2o/EhyHoWkghCxp5vyDT96JaFGtRy35PHwIom0LZdx7aU4AbDUnITvwiFB+0+i54VO+WQjBqgTyJvqg==", 641 + "requires": { 642 + "@codemirror/highlight": "^0.19.0", 643 + "@codemirror/state": "^0.19.0", 644 + "@codemirror/view": "^0.19.0" 645 + } 646 + }, 647 + "@codemirror/tooltip": { 648 + "version": "0.19.13", 649 + "resolved": "https://registry.npmjs.org/@codemirror/tooltip/-/tooltip-0.19.13.tgz", 650 + "integrity": "sha512-7vgvjQjwFQ9hPejw2s+w3UR1XAYjQ5M0F9HRwutXkZHP1tBFV7LnNJ3xBD7F9SR9kAh8WgdL3BpUsEwX1aqoQg==", 651 + "requires": { 652 + "@codemirror/state": "^0.19.0", 653 + "@codemirror/view": "^0.19.0" 654 + } 655 + }, 656 + "@codemirror/view": { 657 + "version": "0.19.16", 658 + "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-0.19.16.tgz", 659 + "integrity": "sha512-VumZoAQRX9BhHU0cD4++izO4mfCH36J61xz9MxtfOKEggzuKlyuGDrdix67FhoDfYiDRvqv9lt1J5YZ/zdU2WA==", 660 + "requires": { 661 + "@codemirror/rangeset": "^0.19.0", 662 + "@codemirror/state": "^0.19.3", 663 + "@codemirror/text": "^0.19.0", 664 + "style-mod": "^4.0.0", 665 + "w3c-keyname": "^2.2.4" 666 + } 667 + }, 668 + "@lezer/common": { 669 + "version": "0.15.11", 670 + "resolved": "https://registry.npmjs.org/@lezer/common/-/common-0.15.11.tgz", 671 + "integrity": "sha512-vv0nSdIaVCRcJ8rPuDdsrNVfBOYe/4Szr/LhF929XyDmBndLDuWiCCHooGlGlJfzELyO608AyDhVsuX/ZG36NA==" 672 + }, 673 + "@lezer/lr": { 674 + "version": "0.15.7", 675 + "resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-0.15.7.tgz", 676 + "integrity": "sha512-rmUukgyKSm6xzXO4cK5hkpX3+ZTHF+bHDkEuhofAVUTS3J23YytUxGWsrDwBVvGbhvxW87kheb2mRYHRwKacDQ==", 677 + "requires": { 678 + "@lezer/common": "^0.15.0" 679 + } 680 + }, 681 + "crelt": { 682 + "version": "1.0.5", 683 + "resolved": "https://registry.npmjs.org/crelt/-/crelt-1.0.5.tgz", 684 + "integrity": "sha512-+BO9wPPi+DWTDcNYhr/W90myha8ptzftZT+LwcmUbbok0rcP/fequmFYCw8NMoH7pkAZQzU78b3kYrlua5a9eA==" 685 + }, 686 + "style-mod": { 687 + "version": "4.0.0", 688 + "resolved": "https://registry.npmjs.org/style-mod/-/style-mod-4.0.0.tgz", 689 + "integrity": "sha512-OPhtyEjyyN9x3nhPsu76f52yUGXiZcgvsrFVtvTkyGRQJ0XK+GPc6ov1z+lRpbeabka+MYEQxOYRnt5nF30aMw==" 690 + }, 691 + "w3c-keyname": { 692 + "version": "2.2.4", 693 + "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.4.tgz", 694 + "integrity": "sha512-tOhfEwEzFLJzf6d1ZPkYfGj+FWhIpBux9ppoP3rlclw3Z0BZv3N7b7030Z1kYth+6rDuAsXUFr+d0VE6Ed1ikw==" 695 + } 696 + } 697 + }
+25
package.json
··· 1 + { 2 + "name": "app", 3 + "version": "0.0.1", 4 + "license": "MIT", 5 + "browser": { 6 + "fs": false, 7 + "constants": false, 8 + "child_process": false, 9 + "tty": false 10 + }, 11 + "scripts": { 12 + "bundle": "npx browserify --standalone CodeMirror --no-browser-field ./vendor/code-mirror.js -o ./vendor/code-mirror.compiled.js", 13 + "minify": "npx esbuild --minify ./vendor/code-mirror.compiled.js --outfile=./vendor/code-mirror.min.js" 14 + }, 15 + "dependencies": { 16 + "@codemirror/basic-setup": "0.19.0", 17 + "@codemirror/autocomplete": "0.19.12", 18 + "@codemirror/legacy-modes": "0.19.0", 19 + "@codemirror/lint": "0.19.3", 20 + "@codemirror/state": "0.19.5", 21 + "@codemirror/stream-parser": "0.19.2", 22 + "@codemirror/theme-one-dark": "0.19.1", 23 + "@codemirror/view": "0.19.16" 24 + } 25 + }
+2
src/dune
··· 1 1 (library 2 2 (name code_mirror) 3 + (js_of_ocaml 4 + (javascript_files ../vendor/code-mirror.min.js)) 3 5 (public_name code-mirror) 4 6 (libraries brr js_of_ocaml))
+13
vendor/code-mirror.js
··· 1 + var cm = { 2 + View: require('@codemirror/basic-setup').EditorView, 3 + State: require('@codemirror/basic-setup').EditorState, 4 + lint: require('@codemirror/lint'), 5 + autocomplete: require('@codemirror/autocomplete'), 6 + basicSetup: require('@codemirror/basic-setup').basicSetup, 7 + dark: require('@codemirror/theme-one-dark'), 8 + streamParser: require('@codemirror/stream-parser'), 9 + OCaml: require('@codemirror/legacy-modes/mode/mllike.cjs').oCaml, 10 + }; 11 + 12 + global.CodeMirror = cm; 13 + module.exports = cm;
+14
vendor/code-mirror.min.js
··· 1 + (function(En){if(typeof exports=="object"&&typeof module!="undefined")module.exports=En();else if(typeof define=="function"&&define.amd)define([],En);else{var Bi;typeof window!="undefined"?Bi=window:typeof global!="undefined"?Bi=global:typeof self!="undefined"?Bi=self:Bi=this,Bi.CodeMirror=En()}})(function(){var En,Bi,Xr;return function(){function Re(mt,b,D){function re(Me,Xe){if(!b[Me]){if(!mt[Me]){var je=typeof require=="function"&&require;if(!Xe&&je)return je(Me,!0);if(ye)return ye(Me,!0);var We=new Error("Cannot find module '"+Me+"'");throw We.code="MODULE_NOT_FOUND",We}var Oe=b[Me]={exports:{}};mt[Me][0].call(Oe.exports,function(De){var ve=mt[Me][1][De];return re(ve||De)},Oe,Oe.exports,Re,mt,b,D)}return b[Me].exports}for(var ye=typeof require=="function"&&require,we=0;we<D.length;we++)re(D[we]);return re}return Re}()({1:[function(Re,mt,b){"use strict";Object.defineProperty(b,"__esModule",{value:!0});var D=Re("@codemirror/state"),re=Re("@codemirror/view"),ye=Re("@codemirror/tooltip"),we=Re("@codemirror/language"),Me=Re("@codemirror/text");class Xe{constructor(I,J,he){this.state=I,this.pos=J,this.explicit=he,this.abortListeners=[]}tokenBefore(I){let J=we.syntaxTree(this.state).resolveInner(this.pos,-1);for(;J&&I.indexOf(J.name)<0;)J=J.parent;return J?{from:J.from,to:this.pos,text:this.state.sliceDoc(J.from,this.pos),type:J.type}:null}matchBefore(I){let J=this.state.doc.lineAt(this.pos),he=Math.max(J.from,this.pos-250),de=J.text.slice(he-J.from,this.pos-J.from),xe=de.search(He(I,!1));return xe<0?null:{from:he+xe,to:this.pos,text:de.slice(xe)}}get aborted(){return this.abortListeners==null}addEventListener(I,J){I=="abort"&&this.abortListeners&&this.abortListeners.push(J)}}function je(oe){let I=Object.keys(oe).join(""),J=/\w/.test(I);return J&&(I=I.replace(/\w/g,"")),`[${J?"\\w":""}${I.replace(/[^\w\s]/g,"\\$&")}]`}function We(oe){let I=Object.create(null),J=Object.create(null);for(let{label:de}of oe){I[de[0]]=!0;for(let xe=1;xe<de.length;xe++)J[de[xe]]=!0}let he=je(I)+je(J)+"*$";return[new RegExp("^"+he),new RegExp(he)]}function Oe(oe){let I=oe.map(de=>typeof de=="string"?{label:de}:de),[J,he]=I.every(de=>/^\w+$/.test(de.label))?[/\w*$/,/\w+$/]:We(I);return de=>{let xe=de.matchBefore(he);return xe||de.explicit?{from:xe?xe.from:de.pos,options:I,span:J}:null}}function De(oe,I){return J=>{for(let he=we.syntaxTree(J.state).resolveInner(J.pos,-1);he;he=he.parent)if(oe.indexOf(he.name)>-1)return I(J);return null}}function ve(oe,I){return J=>{for(let he=we.syntaxTree(J.state).resolveInner(J.pos,-1);he;he=he.parent)if(oe.indexOf(he.name)>-1)return null;return I(J)}}class ue{constructor(I,J,he){this.completion=I,this.source=J,this.match=he}}function Te(oe){return oe.selection.main.head}function He(oe,I){var J;let{source:he}=oe,de=I&&he[0]!="^",xe=he[he.length-1]!="$";return!de&&!xe?oe:new RegExp(`${de?"^":""}(?:${he})${xe?"$":""}`,(J=oe.flags)!==null&&J!==void 0?J:oe.ignoreCase?"i":"")}const Ee=D.Annotation.define();function me(oe,I){let J=I.completion.apply||I.completion.label,he=I.source;typeof J=="string"?oe.dispatch({changes:{from:he.from,to:he.to,insert:J},selection:{anchor:he.from+J.length},userEvent:"input.complete",annotations:Ee.of(I.completion)}):J(oe,I.completion,he.from,he.to)}const Ve=new WeakMap;function ke(oe){if(!Array.isArray(oe))return oe;let I=Ve.get(oe);return I||Ve.set(oe,I=Oe(oe)),I}class ae{constructor(I){this.pattern=I,this.chars=[],this.folded=[],this.any=[],this.precise=[],this.byWord=[];for(let J=0;J<I.length;){let he=Me.codePointAt(I,J),de=Me.codePointSize(he);this.chars.push(he);let xe=I.slice(J,J+de),Ie=xe.toUpperCase();this.folded.push(Me.codePointAt(Ie==xe?xe.toLowerCase():Ie,0)),J+=de}this.astral=I.length!=this.chars.length}match(I){if(this.pattern.length==0)return[0];if(I.length<this.pattern.length)return null;let{chars:J,folded:he,any:de,precise:xe,byWord:Ie}=this;if(J.length==1){let bt=Me.codePointAt(I,0);return bt==J[0]?[0,0,Me.codePointSize(bt)]:bt==he[0]?[-200,0,Me.codePointSize(bt)]:null}let Qe=I.indexOf(this.pattern);if(Qe==0)return[0,0,this.pattern.length];let tt=J.length,lt=0;if(Qe<0){for(let bt=0,wt=Math.min(I.length,200);bt<wt&&lt<tt;){let Zt=Me.codePointAt(I,bt);(Zt==J[lt]||Zt==he[lt])&&(de[lt++]=bt),bt+=Me.codePointSize(Zt)}if(lt<tt)return null}let dt=0,kt=0,ai=!1,_t=0,si=-1,It=-1,ci=/[a-z]/.test(I),fi=!0;for(let bt=0,wt=Math.min(I.length,200),Zt=0;bt<wt&&kt<tt;){let Ft=Me.codePointAt(I,bt);Qe<0&&(dt<tt&&Ft==J[dt]&&(xe[dt++]=bt),_t<tt&&(Ft==J[_t]||Ft==he[_t]?(_t==0&&(si=bt),It=bt+1,_t++):_t=0));let P,ce=Ft<255?Ft>=48&&Ft<=57||Ft>=97&&Ft<=122?2:Ft>=65&&Ft<=90?1:0:(P=Me.fromCodePoint(Ft))!=P.toLowerCase()?1:P!=P.toUpperCase()?2:0;(!bt||ce==1&&ci||Zt==0&&ce!=0)&&(J[kt]==Ft||he[kt]==Ft&&(ai=!0)?Ie[kt++]=bt:Ie.length&&(fi=!1)),Zt=ce,bt+=Me.codePointSize(Ft)}return kt==tt&&Ie[0]==0&&fi?this.result(-100+(ai?-200:0),Ie,I):_t==tt&&si==0?[-200-I.length,0,It]:Qe>-1?[-700-I.length,Qe,Qe+this.pattern.length]:_t==tt?[-200+-700-I.length,si,It]:kt==tt?this.result(-100+(ai?-200:0)+-700+(fi?0:-1100),Ie,I):J.length==2?null:this.result((de[0]?-700:0)+-200+-1100,de,I)}result(I,J,he){let de=[I-he.length],xe=1;for(let Ie of J){let Qe=Ie+(this.astral?Me.codePointSize(Me.codePointAt(he,Ie)):1);xe>1&&de[xe-1]==Ie?de[xe-1]=Qe:(de[xe++]=Ie,de[xe++]=Qe)}return de}}const H=D.Facet.define({combine(oe){return D.combineConfig(oe,{activateOnTyping:!0,override:null,maxRenderedOptions:100,defaultKeymap:!0,optionClass:()=>"",aboveCursor:!1,icons:!0,addToOptions:[]},{defaultKeymap:(I,J)=>I&&J,icons:(I,J)=>I&&J,optionClass:(I,J)=>he=>j(I(he),J(he)),addToOptions:(I,J)=>I.concat(J)})}});function j(oe,I){return oe?I?oe+" "+I:oe:I}function Y(oe){let I=oe.addToOptions.slice();return oe.icons&&I.push({render(J){let he=document.createElement("div");return he.classList.add("cm-completionIcon"),J.type&&he.classList.add(...J.type.split(/\s+/g).map(de=>"cm-completionIcon-"+de)),he.setAttribute("aria-hidden","true"),he},position:20}),I.push({render(J,he,de){let xe=document.createElement("span");xe.className="cm-completionLabel";let{label:Ie}=J,Qe=0;for(let tt=1;tt<de.length;){let lt=de[tt++],dt=de[tt++];lt>Qe&&xe.appendChild(document.createTextNode(Ie.slice(Qe,lt)));let kt=xe.appendChild(document.createElement("span"));kt.appendChild(document.createTextNode(Ie.slice(lt,dt))),kt.className="cm-completionMatchedText",Qe=dt}return Qe<Ie.length&&xe.appendChild(document.createTextNode(Ie.slice(Qe))),xe},position:50},{render(J){if(!J.detail)return null;let he=document.createElement("span");return he.className="cm-completionDetail",he.textContent=J.detail,he},position:80}),I.sort((J,he)=>J.position-he.position).map(J=>J.render)}function W(oe,I){let J=document.createElement("div");J.className="cm-tooltip cm-completionInfo";let{info:he}=oe.completion;if(typeof he=="string")J.textContent=he;else{let de=he(oe.completion);de.then?de.then(xe=>J.appendChild(xe),xe=>re.logException(I.state,xe,"completion info")):J.appendChild(de)}return J}function Q(oe,I,J){if(oe<=J)return{from:0,to:oe};if(I<=oe>>1){let de=Math.floor(I/J);return{from:de*J,to:(de+1)*J}}let he=Math.floor((oe-I)/J);return{from:oe-(he+1)*J,to:oe-he*J}}class R{constructor(I,J){this.view=I,this.stateField=J,this.info=null,this.placeInfo={read:()=>this.measureInfo(),write:Qe=>this.positionInfo(Qe),key:this};let he=I.state.field(J),{options:de,selected:xe}=he.open,Ie=I.state.facet(H);this.optionContent=Y(Ie),this.optionClass=Ie.optionClass,this.range=Q(de.length,xe,Ie.maxRenderedOptions),this.dom=document.createElement("div"),this.dom.className="cm-tooltip-autocomplete",this.dom.addEventListener("mousedown",Qe=>{for(let tt=Qe.target,lt;tt&&tt!=this.dom;tt=tt.parentNode)if(tt.nodeName=="LI"&&(lt=/-(\d+)$/.exec(tt.id))&&+lt[1]<de.length){me(I,de[+lt[1]]),Qe.preventDefault();return}}),this.list=this.dom.appendChild(this.createListBox(de,he.id,this.range)),this.list.addEventListener("scroll",()=>{this.info&&this.view.requestMeasure(this.placeInfo)})}mount(){this.updateSel()}update(I){I.state.field(this.stateField)!=I.startState.field(this.stateField)&&this.updateSel()}positioned(){this.info&&this.view.requestMeasure(this.placeInfo)}updateSel(){let I=this.view.state.field(this.stateField),J=I.open;if((J.selected<this.range.from||J.selected>=this.range.to)&&(this.range=Q(J.options.length,J.selected,this.view.state.facet(H).maxRenderedOptions),this.list.remove(),this.list=this.dom.appendChild(this.createListBox(J.options,I.id,this.range)),this.list.addEventListener("scroll",()=>{this.info&&this.view.requestMeasure(this.placeInfo)})),this.updateSelectedOption(J.selected)){this.info&&(this.info.remove(),this.info=null);let he=J.options[J.selected];he.completion.info&&(this.info=this.dom.appendChild(W(he,this.view)),this.view.requestMeasure(this.placeInfo))}}updateSelectedOption(I){let J=null;for(let he=this.list.firstChild,de=this.range.from;he;he=he.nextSibling,de++)de==I?he.hasAttribute("aria-selected")||(he.setAttribute("aria-selected","true"),J=he):he.hasAttribute("aria-selected")&&he.removeAttribute("aria-selected");return J&&g(this.list,J),J}measureInfo(){let I=this.dom.querySelector("[aria-selected]");if(!I||!this.info)return null;let J=this.dom.getBoundingClientRect(),he=this.info.getBoundingClientRect(),de=I.getBoundingClientRect();if(de.top>Math.min(innerHeight,J.bottom)-10||de.bottom<Math.max(0,J.top)+10)return null;let xe=Math.max(0,Math.min(de.top,innerHeight-he.height))-J.top,Ie=this.view.textDirection==re.Direction.RTL,Qe=J.left,tt=innerWidth-J.right;return Ie&&Qe<Math.min(he.width,tt)?Ie=!1:!Ie&&tt<Math.min(he.width,Qe)&&(Ie=!0),{top:xe,left:Ie}}positionInfo(I){this.info&&(this.info.style.top=(I?I.top:-1e6)+"px",I&&(this.info.classList.toggle("cm-completionInfo-left",I.left),this.info.classList.toggle("cm-completionInfo-right",!I.left)))}createListBox(I,J,he){const de=document.createElement("ul");de.id=J,de.setAttribute("role","listbox");for(let xe=he.from;xe<he.to;xe++){let{completion:Ie,match:Qe}=I[xe];const tt=de.appendChild(document.createElement("li"));tt.id=J+"-"+xe,tt.setAttribute("role","option");let lt=this.optionClass(Ie);lt&&(tt.className=lt);for(let dt of this.optionContent){let kt=dt(Ie,this.view.state,Qe);kt&&tt.appendChild(kt)}}return he.from&&de.classList.add("cm-completionListIncompleteTop"),he.to<I.length&&de.classList.add("cm-completionListIncompleteBottom"),de}}function d(oe){return I=>new R(I,oe)}function g(oe,I){let J=oe.getBoundingClientRect(),he=I.getBoundingClientRect();he.top<J.top?oe.scrollTop-=J.top-he.top:he.bottom>J.bottom&&(oe.scrollTop+=he.bottom-J.bottom)}const O=300;function w(oe){return(oe.boost||0)*100+(oe.apply?10:0)+(oe.info?5:0)+(oe.type?1:0)}function T(oe,I){let J=[],he=0;for(let Ie of oe)if(Ie.hasResult())if(Ie.result.filter===!1)for(let Qe of Ie.result.options)J.push(new ue(Qe,Ie,[1e9-he++]));else{let Qe=new ae(I.sliceDoc(Ie.from,Ie.to)),tt;for(let lt of Ie.result.options)(tt=Qe.match(lt.label))&&(lt.boost!=null&&(tt[0]+=lt.boost),J.push(new ue(lt,Ie,tt)))}J.sort(qe);let de=[],xe=null;for(let Ie of J.sort(qe)){if(de.length==O)break;!xe||xe.label!=Ie.completion.label||xe.detail!=Ie.completion.detail||xe.type!=Ie.completion.type||xe.apply!=Ie.completion.apply?de.push(Ie):w(Ie.completion)>w(xe)&&(de[de.length-1]=Ie),xe=Ie.completion}return de}class z{constructor(I,J,he,de,xe){this.options=I,this.attrs=J,this.tooltip=he,this.timestamp=de,this.selected=xe}setSelected(I,J){return I==this.selected||I>=this.options.length?this:new z(this.options,ge(J,I),this.tooltip,this.timestamp,I)}static build(I,J,he,de,xe){let Ie=T(I,J);if(!Ie.length)return null;let Qe=0;if(de&&de.selected){let tt=de.options[de.selected].completion;for(let lt=0;lt<Ie.length&&!Qe;lt++)Ie[lt].completion==tt&&(Qe=lt)}return new z(Ie,ge(he,Qe),{pos:I.reduce((tt,lt)=>lt.hasResult()?Math.min(tt,lt.from):tt,1e8),create:d(S),above:xe.aboveCursor},de?de.timestamp:Date.now(),Qe)}map(I){return new z(this.options,this.attrs,Object.assign(Object.assign({},this.tooltip),{pos:I.mapPos(this.tooltip.pos)}),this.timestamp,this.selected)}}class _{constructor(I,J,he){this.active=I,this.id=J,this.open=he}static start(){return new _(Ae,"cm-ac-"+Math.floor(Math.random()*2e6).toString(36),null)}update(I){let{state:J}=I,he=J.facet(H),xe=(he.override||J.languageDataAt("autocomplete",Te(J)).map(ke)).map(Qe=>(this.active.find(lt=>lt.source==Qe)||new et(Qe,this.active.some(lt=>lt.state!=0)?1:0)).update(I,he));xe.length==this.active.length&&xe.every((Qe,tt)=>Qe==this.active[tt])&&(xe=this.active);let Ie=I.selection||xe.some(Qe=>Qe.hasResult()&&I.changes.touchesRange(Qe.from,Qe.to))||!U(xe,this.active)?z.build(xe,J,this.id,this.open,he):this.open&&I.docChanged?this.open.map(I.changes):this.open;!Ie&&xe.every(Qe=>Qe.state!=1)&&xe.some(Qe=>Qe.hasResult())&&(xe=xe.map(Qe=>Qe.hasResult()?new et(Qe.source,0):Qe));for(let Qe of I.effects)Qe.is(k)&&(Ie=Ie&&Ie.setSelected(Qe.value,this.id));return xe==this.active&&Ie==this.open?this:new _(xe,this.id,Ie)}get tooltip(){return this.open?this.open.tooltip:null}get attrs(){return this.open?this.open.attrs:te}}function U(oe,I){if(oe==I)return!0;for(let J=0,he=0;;){for(;J<oe.length&&!oe[J].hasResult;)J++;for(;he<I.length&&!I[he].hasResult;)he++;let de=J==oe.length,xe=he==I.length;if(de||xe)return de==xe;if(oe[J++].result!=I[he++].result)return!1}}const te={"aria-autocomplete":"list","aria-expanded":"false"};function ge(oe,I){return{"aria-autocomplete":"list","aria-expanded":"true","aria-activedescendant":oe+"-"+I,"aria-controls":oe}}const Ae=[];function qe(oe,I){let J=I.match[0]-oe.match[0];return J||oe.completion.label.localeCompare(I.completion.label)}function Ke(oe){return oe.isUserEvent("input.type")?"input":oe.isUserEvent("delete.backward")?"delete":null}class et{constructor(I,J,he=-1){this.source=I,this.state=J,this.explicitPos=he}hasResult(){return!1}update(I,J){let he=Ke(I),de=this;he?de=de.handleUserEvent(I,he,J):I.docChanged?de=de.handleChange(I):I.selection&&de.state!=0&&(de=new et(de.source,0));for(let xe of I.effects)if(xe.is(at))de=new et(de.source,1,xe.value?Te(I.state):-1);else if(xe.is(_e))de=new et(de.source,0);else if(xe.is(pe))for(let Ie of xe.value)Ie.source==de.source&&(de=Ie);return de}handleUserEvent(I,J,he){return J=="delete"||!he.activateOnTyping?this.map(I.changes):new et(this.source,1)}handleChange(I){return I.changes.touchesRange(Te(I.startState))?new et(this.source,0):this.map(I.changes)}map(I){return I.empty||this.explicitPos<0?this:new et(this.source,this.state,I.mapPos(this.explicitPos))}}class nt extends et{constructor(I,J,he,de,xe,Ie){super(I,2,J);this.result=he,this.from=de,this.to=xe,this.span=Ie}hasResult(){return!0}handleUserEvent(I,J,he){let de=I.changes.mapPos(this.from),xe=I.changes.mapPos(this.to,1),Ie=Te(I.state);if((this.explicitPos>-1?Ie<de:Ie<=de)||Ie>xe)return new et(this.source,J=="input"&&he.activateOnTyping?1:0);let Qe=this.explicitPos<0?-1:I.changes.mapPos(this.explicitPos);return this.span&&(de==xe||this.span.test(I.state.sliceDoc(de,xe)))?new nt(this.source,Qe,this.result,de,xe,this.span):new et(this.source,1,Qe)}handleChange(I){return I.changes.touchesRange(this.from,this.to)?new et(this.source,0):this.map(I.changes)}map(I){return I.empty?this:new nt(this.source,this.explicitPos<0?-1:I.mapPos(this.explicitPos),this.result,I.mapPos(this.from),I.mapPos(this.to,1),this.span)}}const at=D.StateEffect.define(),_e=D.StateEffect.define(),pe=D.StateEffect.define({map(oe,I){return oe.map(J=>J.map(I))}}),k=D.StateEffect.define(),S=D.StateField.define({create(){return _.start()},update(oe,I){return oe.update(I)},provide:oe=>[ye.showTooltip.from(oe,I=>I.tooltip),re.EditorView.contentAttributes.from(oe,I=>I.attrs)]}),B=75;function V(oe,I="option"){return J=>{let he=J.state.field(S,!1);if(!he||!he.open||Date.now()-he.open.timestamp<B)return!1;let de=1,xe;I=="page"&&(xe=ye.getTooltip(J,he.open.tooltip))&&(de=Math.max(2,Math.floor(xe.dom.offsetHeight/xe.dom.querySelector("li").offsetHeight)-1));let Ie=he.open.selected+de*(oe?1:-1),{length:Qe}=he.open.options;return Ie<0?Ie=I=="page"?0:Qe-1:Ie>=Qe&&(Ie=I=="page"?Qe-1:0),J.dispatch({effects:k.of(Ie)}),!0}}const Z=oe=>{let I=oe.state.field(S,!1);return oe.state.readOnly||!I||!I.open||Date.now()-I.open.timestamp<B?!1:(me(oe,I.open.options[I.open.selected]),!0)},F=oe=>oe.state.field(S,!1)?(oe.dispatch({effects:at.of(!0)}),!0):!1,x=oe=>{let I=oe.state.field(S,!1);return!I||!I.active.some(J=>J.state!=0)?!1:(oe.dispatch({effects:_e.of(null)}),!0)};class v{constructor(I,J){this.active=I,this.context=J,this.time=Date.now(),this.updates=[],this.done=void 0}}const E=50,G=50,le=1e3,Se=re.ViewPlugin.fromClass(class{constructor(oe){this.view=oe,this.debounceUpdate=-1,this.running=[],this.debounceAccept=-1,this.composing=0;for(let I of oe.state.field(S).active)I.state==1&&this.startQuery(I)}update(oe){let I=oe.state.field(S);if(!oe.selectionSet&&!oe.docChanged&&oe.startState.field(S)==I)return;let J=oe.transactions.some(he=>(he.selection||he.docChanged)&&!Ke(he));for(let he=0;he<this.running.length;he++){let de=this.running[he];if(J||de.updates.length+oe.transactions.length>G&&de.time-Date.now()>le){for(let xe of de.context.abortListeners)try{xe()}catch(Ie){re.logException(this.view.state,Ie)}de.context.abortListeners=null,this.running.splice(he--,1)}else de.updates.push(...oe.transactions)}if(this.debounceUpdate>-1&&clearTimeout(this.debounceUpdate),this.debounceUpdate=I.active.some(he=>he.state==1&&!this.running.some(de=>de.active.source==he.source))?setTimeout(()=>this.startUpdate(),E):-1,this.composing!=0)for(let he of oe.transactions)Ke(he)=="input"?this.composing=2:this.composing==2&&he.selection&&(this.composing=3)}startUpdate(){this.debounceUpdate=-1;let{state:oe}=this.view,I=oe.field(S);for(let J of I.active)J.state==1&&!this.running.some(he=>he.active.source==J.source)&&this.startQuery(J)}startQuery(oe){let{state:I}=this.view,J=Te(I),he=new Xe(I,J,oe.explicitPos==J),de=new v(oe,he);this.running.push(de),Promise.resolve(oe.source(he)).then(xe=>{de.context.aborted||(de.done=xe||null,this.scheduleAccept())},xe=>{this.view.dispatch({effects:_e.of(null)}),re.logException(this.view.state,xe)})}scheduleAccept(){this.running.every(oe=>oe.done!==void 0)?this.accept():this.debounceAccept<0&&(this.debounceAccept=setTimeout(()=>this.accept(),E))}accept(){var oe;this.debounceAccept>-1&&clearTimeout(this.debounceAccept),this.debounceAccept=-1;let I=[],J=this.view.state.facet(H);for(let he=0;he<this.running.length;he++){let de=this.running[he];if(de.done===void 0)continue;if(this.running.splice(he--,1),de.done){let Ie=new nt(de.active.source,de.active.explicitPos,de.done,de.done.from,(oe=de.done.to)!==null&&oe!==void 0?oe:Te(de.updates.length?de.updates[0].startState:this.view.state),de.done.span&&de.done.filter!==!1?He(de.done.span,!0):null);for(let Qe of de.updates)Ie=Ie.update(Qe,J);if(Ie.hasResult()){I.push(Ie);continue}}let xe=this.view.state.field(S).active.find(Ie=>Ie.source==de.active.source);if(xe&&xe.state==1)if(de.done==null){let Ie=new et(de.active.source,0);for(let Qe of de.updates)Ie=Ie.update(Qe,J);Ie.state!=1&&I.push(Ie)}else this.startQuery(xe)}I.length&&this.view.dispatch({effects:pe.of(I)})}},{eventHandlers:{compositionstart(){this.composing=1},compositionend(){this.composing==3&&setTimeout(()=>this.view.dispatch({effects:at.of(!1)}),20),this.composing=0}}}),Pe=re.EditorView.baseTheme({".cm-tooltip.cm-tooltip-autocomplete":{"& > ul":{fontFamily:"monospace",whiteSpace:"nowrap",overflow:"hidden auto",maxWidth_fallback:"700px",maxWidth:"min(700px, 95vw)",minWidth:"250px",maxHeight:"10em",listStyle:"none",margin:0,padding:0,"& > li":{overflowX:"hidden",textOverflow:"ellipsis",cursor:"pointer",padding:"1px 3px",lineHeight:1.2}}},"&light .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#17c",color:"white"},"&dark .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#347",color:"white"},".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after":{content:'"\xB7\xB7\xB7"',opacity:.5,display:"block",textAlign:"center"},".cm-tooltip.cm-completionInfo":{position:"absolute",padding:"3px 9px",width:"max-content",maxWidth:"300px"},".cm-completionInfo.cm-completionInfo-left":{right:"100%"},".cm-completionInfo.cm-completionInfo-right":{left:"100%"},"&light .cm-snippetField":{backgroundColor:"#00000022"},"&dark .cm-snippetField":{backgroundColor:"#ffffff22"},".cm-snippetFieldPosition":{verticalAlign:"text-top",width:0,height:"1.15em",margin:"0 -0.7px -.7em",borderLeft:"1.4px dotted #888"},".cm-completionMatchedText":{textDecoration:"underline"},".cm-completionDetail":{marginLeft:"0.5em",fontStyle:"italic"},".cm-completionIcon":{fontSize:"90%",width:".8em",display:"inline-block",textAlign:"center",paddingRight:".6em",opacity:"0.6"},".cm-completionIcon-function, .cm-completionIcon-method":{"&:after":{content:"'\u0192'"}},".cm-completionIcon-class":{"&:after":{content:"'\u25CB'"}},".cm-completionIcon-interface":{"&:after":{content:"'\u25CC'"}},".cm-completionIcon-variable":{"&:after":{content:"'\u{1D465}'"}},".cm-completionIcon-constant":{"&:after":{content:"'\u{1D436}'"}},".cm-completionIcon-type":{"&:after":{content:"'\u{1D461}'"}},".cm-completionIcon-enum":{"&:after":{content:"'\u222A'"}},".cm-completionIcon-property":{"&:after":{content:"'\u25A1'"}},".cm-completionIcon-keyword":{"&:after":{content:"'\u{1F511}\uFE0E'"}},".cm-completionIcon-namespace":{"&:after":{content:"'\u25A2'"}},".cm-completionIcon-text":{"&:after":{content:"'abc'",fontSize:"50%",verticalAlign:"middle"}}});class Ue{constructor(I,J,he,de){this.field=I,this.line=J,this.from=he,this.to=de}}class ze{constructor(I,J,he){this.field=I,this.from=J,this.to=he}map(I){return new ze(this.field,I.mapPos(this.from,-1),I.mapPos(this.to,1))}}class ot{constructor(I,J){this.lines=I,this.fieldPositions=J}instantiate(I,J){let he=[],de=[J],xe=I.doc.lineAt(J),Ie=/^\s*/.exec(xe.text)[0];for(let tt of this.lines){if(he.length){let lt=Ie,dt=/^\t*/.exec(tt)[0].length;for(let kt=0;kt<dt;kt++)lt+=I.facet(we.indentUnit);de.push(J+lt.length-dt),tt=lt+tt.slice(dt)}he.push(tt),J+=tt.length+1}let Qe=this.fieldPositions.map(tt=>new ze(tt.field,de[tt.line]+tt.from,de[tt.line]+tt.to));return{text:he,ranges:Qe}}static parse(I){let J=[],he=[],de=[],xe;for(let Ie of I.split(/\r\n?|\n/)){for(;xe=/[#$]\{(?:(\d+)(?::([^}]*))?|([^}]*))\}/.exec(Ie);){let Qe=xe[1]?+xe[1]:null,tt=xe[2]||xe[3]||"",lt=-1;for(let dt=0;dt<J.length;dt++)(Qe!=null?J[dt].seq==Qe:tt?J[dt].name==tt:!1)&&(lt=dt);if(lt<0){let dt=0;for(;dt<J.length&&(Qe==null||J[dt].seq!=null&&J[dt].seq<Qe);)dt++;J.splice(dt,0,{seq:Qe,name:tt}),lt=dt;for(let kt of de)kt.field>=lt&&kt.field++}de.push(new Ue(lt,he.length,xe.index,xe.index+tt.length)),Ie=Ie.slice(0,xe.index)+tt+Ie.slice(xe.index+xe[0].length)}he.push(Ie)}return new ot(he,de)}}let ne=re.Decoration.widget({widget:new class extends re.WidgetType{toDOM(){let oe=document.createElement("span");return oe.className="cm-snippetFieldPosition",oe}ignoreEvent(){return!1}}}),p=re.Decoration.mark({class:"cm-snippetField"});class M{constructor(I,J){this.ranges=I,this.active=J,this.deco=re.Decoration.set(I.map(he=>(he.from==he.to?ne:p).range(he.from,he.to)))}map(I){return new M(this.ranges.map(J=>J.map(I)),this.active)}selectionInsideField(I){return I.ranges.every(J=>this.ranges.some(he=>he.field==this.active&&he.from<=J.from&&he.to>=J.to))}}const K=D.StateEffect.define({map(oe,I){return oe&&oe.map(I)}}),X=D.StateEffect.define(),ie=D.StateField.define({create(){return null},update(oe,I){for(let J of I.effects){if(J.is(K))return J.value;if(J.is(X)&&oe)return new M(oe.ranges,J.value)}return oe&&I.docChanged&&(oe=oe.map(I.changes)),oe&&I.selection&&!oe.selectionInsideField(I.selection)&&(oe=null),oe},provide:oe=>re.EditorView.decorations.from(oe,I=>I?I.deco:re.Decoration.none)});function C(oe,I){return D.EditorSelection.create(oe.filter(J=>J.field==I).map(J=>D.EditorSelection.range(J.from,J.to)))}function A(oe){let I=ot.parse(oe);return(J,he,de,xe)=>{let{text:Ie,ranges:Qe}=I.instantiate(J.state,de),tt={changes:{from:de,to:xe,insert:D.Text.of(Ie)}};if(Qe.length&&(tt.selection=C(Qe,0)),Qe.length>1){let lt=new M(Qe,0),dt=tt.effects=[K.of(lt)];J.state.field(ie,!1)===void 0&&dt.push(D.StateEffect.appendConfig.of([ie,it,Mt,Pe]))}J.dispatch(J.state.update(tt))}}function N(oe){return({state:I,dispatch:J})=>{let he=I.field(ie,!1);if(!he||oe<0&&he.active==0)return!1;let de=he.active+oe,xe=oe>0&&!he.ranges.some(Ie=>Ie.field==de+oe);return J(I.update({selection:C(he.ranges,de),effects:K.of(xe?null:new M(he.ranges,de))})),!0}}const $=({state:oe,dispatch:I})=>oe.field(ie,!1)?(I(oe.update({effects:K.of(null)})),!0):!1,ee=N(1),be=N(-1),Je=[{key:"Tab",run:ee,shift:be},{key:"Escape",run:$}],Ze=D.Facet.define({combine(oe){return oe.length?oe[0]:Je}}),it=D.Prec.highest(re.keymap.compute([Ze],oe=>oe.facet(Ze)));function ut(oe,I){return Object.assign(Object.assign({},I),{apply:A(oe)})}const Mt=re.EditorView.domEventHandlers({mousedown(oe,I){let J=I.state.field(ie,!1),he;if(!J||(he=I.posAtCoords({x:oe.clientX,y:oe.clientY}))==null)return!1;let de=J.ranges.find(xe=>xe.from<=he&&xe.to>=he);return!de||de.field==J.active?!1:(I.dispatch({selection:C(J.ranges,de.field),effects:K.of(J.ranges.some(xe=>xe.field>de.field)?new M(J.ranges,de.field):null)}),!0)}});function yt(oe){let I=oe.replace(/[\\[.+*?(){|^$]/g,"\\$&");try{return new RegExp(`[\\p{Alphabetic}\\p{Number}_${I}]+`,"ug")}catch(J){return new RegExp(`[w${I}]`,"g")}}function pt(oe,I){return new RegExp(I(oe.source),oe.unicode?"u":"")}const Dt=Object.create(null);function Tt(oe){return Dt[oe]||(Dt[oe]=new WeakMap)}function Ht(oe,I,J,he,de){for(let xe=oe.iterLines(),Ie=0;!xe.next().done;){let{value:Qe}=xe,tt;for(I.lastIndex=0;tt=I.exec(Qe);)if(!he[tt[0]]&&Ie+tt.index!=de&&(J.push({type:"text",label:tt[0]}),he[tt[0]]=!0,J.length>=2e3))return;Ie+=Qe.length+1}}function Wt(oe,I,J,he,de){let xe=oe.length>=1e3,Ie=xe&&I.get(oe);if(Ie)return Ie;let Qe=[],tt=Object.create(null);if(oe.children){let lt=0;for(let dt of oe.children){if(dt.length>=1e3)for(let kt of Wt(dt,I,J,he-lt,de-lt))tt[kt.label]||(tt[kt.label]=!0,Qe.push(kt));else Ht(dt,J,Qe,tt,de-lt);lt+=dt.length+1}}else Ht(oe,J,Qe,tt,de);return xe&&Qe.length<2e3&&I.set(oe,Qe),Qe}const zt=oe=>{let I=oe.state.languageDataAt("wordChars",oe.pos).join(""),J=yt(I),he=oe.matchBefore(pt(J,Ie=>Ie+"$"));if(!he&&!oe.explicit)return null;let de=he?he.from:oe.pos,xe=Wt(oe.state.doc,Tt(I),J,5e4,de);return{from:de,options:xe,span:pt(J,Ie=>"^"+Ie)}};function Kt(oe={}){return[S,H.of(oe),Se,Pt,Pe]}const Qt=[{key:"Ctrl-Space",run:F},{key:"Escape",run:x},{key:"ArrowDown",run:V(!0)},{key:"ArrowUp",run:V(!1)},{key:"PageDown",run:V(!0,"page")},{key:"PageUp",run:V(!1,"page")},{key:"Enter",run:Z}],Pt=D.Prec.highest(re.keymap.computeN([H],oe=>oe.facet(H).defaultKeymap?[Qt]:[]));function jt(oe){let I=oe.field(S,!1);return I&&I.active.some(J=>J.state==1)?"pending":I&&I.active.some(J=>J.state!=0)?"active":null}function ri(oe){var I;let J=(I=oe.field(S,!1))===null||I===void 0?void 0:I.open;return J?J.options.map(he=>he.completion):[]}function Lt(oe){var I;let J=(I=oe.field(S,!1))===null||I===void 0?void 0:I.open;return J?J.options[J.selected].completion:null}b.CompletionContext=Xe,b.acceptCompletion=Z,b.autocompletion=Kt,b.clearSnippet=$,b.closeCompletion=x,b.completeAnyWord=zt,b.completeFromList=Oe,b.completionKeymap=Qt,b.completionStatus=jt,b.currentCompletions=ri,b.ifIn=De,b.ifNotIn=ve,b.moveCompletionSelection=V,b.nextSnippetField=ee,b.pickedCompletion=Ee,b.prevSnippetField=be,b.selectedCompletion=Lt,b.snippet=A,b.snippetCompletion=ut,b.snippetKeymap=Ze,b.startCompletion=F},{"@codemirror/language":13,"@codemirror/state":22,"@codemirror/text":24,"@codemirror/tooltip":26,"@codemirror/view":27}],2:[function(Re,mt,b){"use strict";Object.defineProperty(b,"__esModule",{value:!0});var D=Re("@codemirror/view"),re=Re("@codemirror/state"),ye=Re("@codemirror/history"),we=Re("@codemirror/fold"),Me=Re("@codemirror/language"),Xe=Re("@codemirror/gutter"),je=Re("@codemirror/commands"),We=Re("@codemirror/matchbrackets"),Oe=Re("@codemirror/closebrackets"),De=Re("@codemirror/search"),ve=Re("@codemirror/autocomplete"),ue=Re("@codemirror/comment"),Te=Re("@codemirror/rectangular-selection"),He=Re("@codemirror/highlight"),Ee=Re("@codemirror/lint");const me=[Xe.lineNumbers(),Xe.highlightActiveLineGutter(),D.highlightSpecialChars(),ye.history(),we.foldGutter(),D.drawSelection(),re.EditorState.allowMultipleSelections.of(!0),Me.indentOnInput(),He.defaultHighlightStyle.fallback,We.bracketMatching(),Oe.closeBrackets(),ve.autocompletion(),Te.rectangularSelection(),D.highlightActiveLine(),De.highlightSelectionMatches(),D.keymap.of([...Oe.closeBracketsKeymap,...je.defaultKeymap,...De.searchKeymap,...ye.historyKeymap,...we.foldKeymap,...ue.commentKeymap,...ve.completionKeymap,...Ee.lintKeymap])];Object.defineProperty(b,"EditorView",{enumerable:!0,get:function(){return D.EditorView}}),Object.defineProperty(b,"EditorState",{enumerable:!0,get:function(){return re.EditorState}}),b.basicSetup=me},{"@codemirror/autocomplete":1,"@codemirror/closebrackets":3,"@codemirror/commands":4,"@codemirror/comment":6,"@codemirror/fold":7,"@codemirror/gutter":9,"@codemirror/highlight":11,"@codemirror/history":12,"@codemirror/language":13,"@codemirror/lint":15,"@codemirror/matchbrackets":16,"@codemirror/rectangular-selection":19,"@codemirror/search":20,"@codemirror/state":22,"@codemirror/view":27}],3:[function(Re,mt,b){"use strict";Object.defineProperty(b,"__esModule",{value:!0});var D=Re("@codemirror/view"),re=Re("@codemirror/state"),ye=Re("@codemirror/rangeset"),we=Re("@codemirror/text"),Me=Re("@codemirror/language");const Xe={brackets:["(","[","{","'",'"'],before:`)]}'":;>`},je=re.StateEffect.define({map(d,g){let O=g.mapPos(d,-1,re.MapMode.TrackAfter);return O??void 0}}),We=re.StateEffect.define({map(d,g){return g.mapPos(d)}}),Oe=new class extends ye.RangeValue{};Oe.startSide=1,Oe.endSide=-1;const De=re.StateField.define({create(){return ye.RangeSet.empty},update(d,g){if(g.selection){let O=g.state.doc.lineAt(g.selection.main.head).from,w=g.startState.doc.lineAt(g.startState.selection.main.head).from;O!=g.changes.mapPos(w,-1)&&(d=ye.RangeSet.empty)}d=d.map(g.changes);for(let O of g.effects)O.is(je)?d=d.update({add:[Oe.range(O.value,O.value+1)]}):O.is(We)&&(d=d.update({filter:w=>w!=O.value}));return d}});function ve(){return[D.EditorView.inputHandler.of(Ee),De]}const ue="()[]{}<>";function Te(d){for(let g=0;g<ue.length;g+=2)if(ue.charCodeAt(g)==d)return ue.charAt(g+1);return we.fromCodePoint(d<128?d:d+1)}function He(d,g){return d.languageDataAt("closeBrackets",g)[0]||Xe}function Ee(d,g,O,w){if(d.composing)return!1;let T=d.state.selection.main;if(w.length>2||w.length==2&&we.codePointSize(we.codePointAt(w,0))==1||g!=T.from||O!=T.to)return!1;let z=ke(d.state,w);return z?(d.dispatch(z),!0):!1}const me=({state:d,dispatch:g})=>{let w=He(d,d.selection.main.head).brackets||Xe.brackets,T=null,z=d.changeByRange(_=>{if(_.empty){let U=j(d.doc,_.head);for(let te of w)if(te==U&&H(d.doc,_.head)==Te(we.codePointAt(te,0)))return{changes:{from:_.head-te.length,to:_.head+te.length},range:re.EditorSelection.cursor(_.head-te.length),userEvent:"delete.backward"}}return{range:T=_}});return T||g(d.update(z,{scrollIntoView:!0})),!T},Ve=[{key:"Backspace",run:me}];function ke(d,g){let O=He(d,d.selection.main.head),w=O.brackets||Xe.brackets;for(let T of w){let z=Te(we.codePointAt(T,0));if(g==T)return z==T?Q(d,T,w.indexOf(T+T+T)>-1):Y(d,T,z,O.before||Xe.before);if(g==z&&ae(d,d.selection.main.from))return W(d,T,z)}return null}function ae(d,g){let O=!1;return d.field(De).between(0,d.doc.length,w=>{w==g&&(O=!0)}),O}function H(d,g){let O=d.sliceString(g,g+2);return O.slice(0,we.codePointSize(we.codePointAt(O,0)))}function j(d,g){let O=d.sliceString(g-2,g);return we.codePointSize(we.codePointAt(O,0))==O.length?O:O.slice(1)}function Y(d,g,O,w){let T=null,z=d.changeByRange(_=>{if(!_.empty)return{changes:[{insert:g,from:_.from},{insert:O,from:_.to}],effects:je.of(_.to+g.length),range:re.EditorSelection.range(_.anchor+g.length,_.head+g.length)};let U=H(d.doc,_.head);return!U||/\s/.test(U)||w.indexOf(U)>-1?{changes:{insert:g+O,from:_.head},effects:je.of(_.head+g.length),range:re.EditorSelection.cursor(_.head+g.length)}:{range:T=_}});return T?null:d.update(z,{scrollIntoView:!0,userEvent:"input.type"})}function W(d,g,O){let w=null,T=d.selection.ranges.map(z=>z.empty&&H(d.doc,z.head)==O?re.EditorSelection.cursor(z.head+O.length):w=z);return w?null:d.update({selection:re.EditorSelection.create(T,d.selection.mainIndex),scrollIntoView:!0,effects:d.selection.ranges.map(({from:z})=>We.of(z))})}function Q(d,g,O){let w=null,T=d.changeByRange(z=>{if(!z.empty)return{changes:[{insert:g,from:z.from},{insert:g,from:z.to}],effects:je.of(z.to+g.length),range:re.EditorSelection.range(z.anchor+g.length,z.head+g.length)};let _=z.head,U=H(d.doc,_);if(U==g){if(R(d,_))return{changes:{insert:g+g,from:_},effects:je.of(_+g.length),range:re.EditorSelection.cursor(_+g.length)};if(ae(d,_)){let te=O&&d.sliceDoc(_,_+g.length*3)==g+g+g;return{range:re.EditorSelection.cursor(_+g.length*(te?3:1)),effects:We.of(_)}}}else{if(O&&d.sliceDoc(_-2*g.length,_)==g+g&&R(d,_-2*g.length))return{changes:{insert:g+g+g+g,from:_},effects:je.of(_+g.length),range:re.EditorSelection.cursor(_+g.length)};if(d.charCategorizer(_)(U)!=re.CharCategory.Word){let te=d.sliceDoc(_-1,_);if(te!=g&&d.charCategorizer(_)(te)!=re.CharCategory.Word)return{changes:{insert:g+g,from:_},effects:je.of(_+g.length),range:re.EditorSelection.cursor(_+g.length)}}}return{range:w=z}});return w?null:d.update(T,{scrollIntoView:!0,userEvent:"input.type"})}function R(d,g){let O=Me.syntaxTree(d).resolveInner(g+1);return O.parent&&O.from==g}b.closeBrackets=ve,b.closeBracketsKeymap=Ve,b.deleteBracketPair=me,b.insertBracket=ke},{"@codemirror/language":13,"@codemirror/rangeset":18,"@codemirror/state":22,"@codemirror/text":24,"@codemirror/view":27}],4:[function(Re,mt,b){"use strict";Object.defineProperty(b,"__esModule",{value:!0});var D=Re("@codemirror/state"),re=Re("@codemirror/text"),ye=Re("@codemirror/view"),we=Re("@codemirror/matchbrackets"),Me=Re("@codemirror/language"),Xe=Re("@lezer/common");function je(P,ce){return D.EditorSelection.create(P.ranges.map(ce),P.mainIndex)}function We(P,ce){return P.update({selection:ce,scrollIntoView:!0,userEvent:"select"})}function Oe({state:P,dispatch:ce},Ce){let Le=je(P.selection,Ce);return Le.eq(P.selection)?!1:(ce(We(P,Le)),!0)}function De(P,ce){return D.EditorSelection.cursor(ce?P.to:P.from)}function ve(P,ce){return Oe(P,Ce=>Ce.empty?P.moveByChar(Ce,ce):De(Ce,ce))}const ue=P=>ve(P,P.textDirection!=ye.Direction.LTR),Te=P=>ve(P,P.textDirection==ye.Direction.LTR),He=P=>ve(P,!0),Ee=P=>ve(P,!1);function me(P,ce){return Oe(P,Ce=>Ce.empty?P.moveByGroup(Ce,ce):De(Ce,ce))}const Ve=P=>me(P,P.textDirection!=ye.Direction.LTR),ke=P=>me(P,P.textDirection==ye.Direction.LTR),ae=P=>me(P,!0),H=P=>me(P,!1);function j(P,ce,Ce){let Le=P.state.charCategorizer(ce.from);return P.moveByChar(ce,Ce,Ye=>{let Be=D.CharCategory.Space,$e=ce.from,st=!1,gt=!1,xt=!1,Jt=ei=>{if(st)return!1;$e+=Ce?ei.length:-ei.length;let Pi=Le(ei),Si;if(Be==D.CharCategory.Space&&(Be=Pi),Be!=Pi)return!1;if(Be==D.CharCategory.Word)if(ei.toLowerCase()==ei){if(!Ce&&gt)return!1;xt=!0}else if(xt){if(Ce)return!1;st=!0}else{if(gt&&Ce&&Le(Si=P.state.sliceDoc($e,$e+1))==D.CharCategory.Word&&Si.toLowerCase()==Si)return!1;gt=!0}return!0};return Jt(Ye),Jt})}function Y(P,ce){return Oe(P,Ce=>Ce.empty?j(P,Ce,ce):De(Ce,ce))}const W=P=>Y(P,!0),Q=P=>Y(P,!1);function R(P,ce,Ce){if(ce.type.prop(Ce))return!0;let Le=ce.to-ce.from;return Le&&(Le>2||/[^\s,.;:]/.test(P.sliceDoc(ce.from,ce.to)))||ce.firstChild}function d(P,ce,Ce){let Le=Me.syntaxTree(P).resolveInner(ce.head),Ye=Ce?Xe.NodeProp.closedBy:Xe.NodeProp.openedBy;for(let gt=ce.head;;){let xt=Ce?Le.childAfter(gt):Le.childBefore(gt);if(!xt)break;R(P,xt,Ye)?Le=xt:gt=Ce?xt.to:xt.from}let Be=Le.type.prop(Ye),$e,st;return Be&&($e=Ce?we.matchBrackets(P,Le.from,1):we.matchBrackets(P,Le.to,-1))&&$e.matched?st=Ce?$e.end.to:$e.end.from:st=Ce?Le.to:Le.from,D.EditorSelection.cursor(st,Ce?-1:1)}const g=P=>Oe(P,ce=>d(P.state,ce,P.textDirection!=ye.Direction.LTR)),O=P=>Oe(P,ce=>d(P.state,ce,P.textDirection==ye.Direction.LTR));function w(P,ce){return Oe(P,Ce=>{if(!Ce.empty)return De(Ce,ce);let Le=P.moveVertically(Ce,ce);return Le.head!=Ce.head?Le:P.moveToLineBoundary(Ce,ce)})}const T=P=>w(P,!1),z=P=>w(P,!0);function _(P,ce){let{state:Ce}=P,Le=je(Ce.selection,$e=>$e.empty?P.moveVertically($e,ce,P.dom.clientHeight):De($e,ce));if(Le.eq(Ce.selection))return!1;let Ye=P.coordsAtPos(Ce.selection.main.head),Be=P.scrollDOM.getBoundingClientRect();return P.dispatch(We(Ce,Le),{effects:Ye&&Ye.top>Be.top&&Ye.bottom<Be.bottom?ye.EditorView.scrollIntoView(Le.main.head,{y:"start",yMargin:Ye.top-Be.top}):void 0}),!0}const U=P=>_(P,!1),te=P=>_(P,!0);function ge(P,ce,Ce){let Le=P.lineBlockAt(ce.head),Ye=P.moveToLineBoundary(ce,Ce);if(Ye.head==ce.head&&Ye.head!=(Ce?Le.to:Le.from)&&(Ye=P.moveToLineBoundary(ce,Ce,!1)),!Ce&&Ye.head==Le.from&&Le.length){let Be=/^\s*/.exec(P.state.sliceDoc(Le.from,Math.min(Le.from+100,Le.to)))[0].length;Be&&ce.head!=Le.from+Be&&(Ye=D.EditorSelection.cursor(Le.from+Be))}return Ye}const Ae=P=>Oe(P,ce=>ge(P,ce,!0)),qe=P=>Oe(P,ce=>ge(P,ce,!1)),Ke=P=>Oe(P,ce=>D.EditorSelection.cursor(P.lineBlockAt(ce.head).from,1)),et=P=>Oe(P,ce=>D.EditorSelection.cursor(P.lineBlockAt(ce.head).to,-1));function nt(P,ce,Ce){let Le=!1,Ye=je(P.selection,Be=>{let $e=we.matchBrackets(P,Be.head,-1)||we.matchBrackets(P,Be.head,1)||Be.head>0&&we.matchBrackets(P,Be.head-1,1)||Be.head<P.doc.length&&we.matchBrackets(P,Be.head+1,-1);if(!$e||!$e.end)return Be;Le=!0;let st=$e.start.from==Be.head?$e.end.to:$e.end.from;return Ce?D.EditorSelection.range(Be.anchor,st):D.EditorSelection.cursor(st)});return Le?(ce(We(P,Ye)),!0):!1}const at=({state:P,dispatch:ce})=>nt(P,ce,!1),_e=({state:P,dispatch:ce})=>nt(P,ce,!0);function pe(P,ce){let Ce=je(P.state.selection,Le=>{let Ye=ce(Le);return D.EditorSelection.range(Le.anchor,Ye.head,Ye.goalColumn)});return Ce.eq(P.state.selection)?!1:(P.dispatch(We(P.state,Ce)),!0)}function k(P,ce){return pe(P,Ce=>P.moveByChar(Ce,ce))}const S=P=>k(P,P.textDirection!=ye.Direction.LTR),B=P=>k(P,P.textDirection==ye.Direction.LTR),V=P=>k(P,!0),Z=P=>k(P,!1);function F(P,ce){return pe(P,Ce=>P.moveByGroup(Ce,ce))}const x=P=>F(P,P.textDirection!=ye.Direction.LTR),v=P=>F(P,P.textDirection==ye.Direction.LTR),E=P=>F(P,!0),G=P=>F(P,!1);function le(P,ce){return pe(P,Ce=>j(P,Ce,ce))}const Se=P=>le(P,!0),Pe=P=>le(P,!1),Ue=P=>pe(P,ce=>d(P.state,ce,P.textDirection!=ye.Direction.LTR)),ze=P=>pe(P,ce=>d(P.state,ce,P.textDirection==ye.Direction.LTR));function ot(P,ce){return pe(P,Ce=>P.moveVertically(Ce,ce))}const ne=P=>ot(P,!1),p=P=>ot(P,!0);function M(P,ce){return pe(P,Ce=>P.moveVertically(Ce,ce,P.dom.clientHeight))}const K=P=>M(P,!1),X=P=>M(P,!0),ie=P=>pe(P,ce=>ge(P,ce,!0)),C=P=>pe(P,ce=>ge(P,ce,!1)),A=P=>pe(P,ce=>D.EditorSelection.cursor(P.lineBlockAt(ce.head).from)),N=P=>pe(P,ce=>D.EditorSelection.cursor(P.lineBlockAt(ce.head).to)),$=({state:P,dispatch:ce})=>(ce(We(P,{anchor:0})),!0),ee=({state:P,dispatch:ce})=>(ce(We(P,{anchor:P.doc.length})),!0),be=({state:P,dispatch:ce})=>(ce(We(P,{anchor:P.selection.main.anchor,head:0})),!0),Je=({state:P,dispatch:ce})=>(ce(We(P,{anchor:P.selection.main.anchor,head:P.doc.length})),!0),Ze=({state:P,dispatch:ce})=>(ce(P.update({selection:{anchor:0,head:P.doc.length},userEvent:"select"})),!0),it=({state:P,dispatch:ce})=>{let Ce=oe(P).map(({from:Le,to:Ye})=>D.EditorSelection.range(Le,Math.min(Ye+1,P.doc.length)));return ce(P.update({selection:D.EditorSelection.create(Ce),userEvent:"select"})),!0},ut=({state:P,dispatch:ce})=>{let Ce=je(P.selection,Le=>{var Ye;let Be=Me.syntaxTree(P).resolveInner(Le.head,1);for(;!(Be.from<Le.from&&Be.to>=Le.to||Be.to>Le.to&&Be.from<=Le.from||!((Ye=Be.parent)===null||Ye===void 0?void 0:Ye.parent));)Be=Be.parent;return D.EditorSelection.range(Be.to,Be.from)});return ce(We(P,Ce)),!0},Mt=({state:P,dispatch:ce})=>{let Ce=P.selection,Le=null;return Ce.ranges.length>1?Le=D.EditorSelection.create([Ce.main]):Ce.main.empty||(Le=D.EditorSelection.create([D.EditorSelection.cursor(Ce.main.head)])),Le?(ce(We(P,Le)),!0):!1};function yt({state:P,dispatch:ce},Ce){if(P.readOnly)return!1;let Le="delete.selection",Ye=P.changeByRange(Be=>{let{from:$e,to:st}=Be;if($e==st){let gt=Ce($e);gt<$e?Le="delete.backward":gt>$e&&(Le="delete.forward"),$e=Math.min($e,gt),st=Math.max(st,gt)}return $e==st?{range:Be}:{changes:{from:$e,to:st},range:D.EditorSelection.cursor($e)}});return Ye.changes.empty?!1:(ce(P.update(Ye,{scrollIntoView:!0,userEvent:Le})),!0)}function pt(P,ce,Ce){if(P instanceof ye.EditorView)for(let Le of P.pluginField(ye.PluginField.atomicRanges))Le.between(ce,ce,(Ye,Be)=>{Ye<ce&&Be>ce&&(ce=Ce?Be:Ye)});return ce}const Dt=(P,ce)=>yt(P,Ce=>{let{state:Le}=P,Ye=Le.doc.lineAt(Ce),Be,$e;if(!ce&&Ce>Ye.from&&Ce<Ye.from+200&&!/[^ \t]/.test(Be=Ye.text.slice(0,Ce-Ye.from))){if(Be[Be.length-1]==" ")return Ce-1;let st=re.countColumn(Be,Le.tabSize),gt=st%Me.getIndentUnit(Le)||Me.getIndentUnit(Le);for(let xt=0;xt<gt&&Be[Be.length-1-xt]==" ";xt++)Ce--;$e=Ce}else $e=re.findClusterBreak(Ye.text,Ce-Ye.from,ce,ce)+Ye.from,$e==Ce&&Ye.number!=(ce?Le.doc.lines:1)&&($e+=ce?1:-1);return pt(P,$e,ce)}),Tt=P=>Dt(P,!1),Ht=P=>Dt(P,!0),Wt=(P,ce)=>yt(P,Ce=>{let Le=Ce,{state:Ye}=P,Be=Ye.doc.lineAt(Le),$e=Ye.charCategorizer(Le);for(let st=null;;){if(Le==(ce?Be.to:Be.from)){Le==Ce&&Be.number!=(ce?Ye.doc.lines:1)&&(Le+=ce?1:-1);break}let gt=re.findClusterBreak(Be.text,Le-Be.from,ce)+Be.from,xt=Be.text.slice(Math.min(Le,gt)-Be.from,Math.max(Le,gt)-Be.from),Jt=$e(xt);if(st!=null&&Jt!=st)break;(xt!=" "||Le!=Ce)&&(st=Jt),Le=gt}return pt(P,Le,ce)}),zt=P=>Wt(P,!1),Kt=P=>Wt(P,!0),Qt=P=>yt(P,ce=>{let Ce=P.lineBlockAt(ce).to;return pt(P,ce<Ce?Ce:Math.min(P.state.doc.length,ce+1),!0)}),Pt=P=>yt(P,ce=>{let Ce=P.lineBlockAt(ce).from;return pt(P,ce>Ce?Ce:Math.max(0,ce-1),!1)}),jt=({state:P,dispatch:ce})=>{if(P.readOnly)return!1;let Ce=[];for(let Le=0,Ye="",Be=P.doc.iter();;){if(Be.next(),Be.lineBreak||Be.done){let $e=Ye.search(/\s+$/);if($e>-1&&Ce.push({from:Le-(Ye.length-$e),to:Le}),Be.done)break;Ye=""}else Ye=Be.value;Le+=Be.value.length}return Ce.length?(ce(P.update({changes:Ce,userEvent:"delete"})),!0):!1},ri=({state:P,dispatch:ce})=>{if(P.readOnly)return!1;let Ce=P.changeByRange(Le=>({changes:{from:Le.from,to:Le.to,insert:re.Text.of(["",""])},range:D.EditorSelection.cursor(Le.from)}));return ce(P.update(Ce,{scrollIntoView:!0,userEvent:"input"})),!0},Lt=({state:P,dispatch:ce})=>{if(P.readOnly)return!1;let Ce=P.changeByRange(Le=>{if(!Le.empty||Le.from==0||Le.from==P.doc.length)return{range:Le};let Ye=Le.from,Be=P.doc.lineAt(Ye),$e=Ye==Be.from?Ye-1:re.findClusterBreak(Be.text,Ye-Be.from,!1)+Be.from,st=Ye==Be.to?Ye+1:re.findClusterBreak(Be.text,Ye-Be.from,!0)+Be.from;return{changes:{from:$e,to:st,insert:P.doc.slice(Ye,st).append(P.doc.slice($e,Ye))},range:D.EditorSelection.cursor(st)}});return Ce.changes.empty?!1:(ce(P.update(Ce,{scrollIntoView:!0,userEvent:"move.character"})),!0)};function oe(P){let ce=[],Ce=-1;for(let Le of P.selection.ranges){let Ye=P.doc.lineAt(Le.from),Be=P.doc.lineAt(Le.to);if(!Le.empty&&Le.to==Be.from&&(Be=P.doc.lineAt(Le.to-1)),Ce>=Ye.number){let $e=ce[ce.length-1];$e.to=Be.to,$e.ranges.push(Le)}else ce.push({from:Ye.from,to:Be.to,ranges:[Le]});Ce=Be.number+1}return ce}function I(P,ce,Ce){if(P.readOnly)return!1;let Le=[],Ye=[];for(let Be of oe(P)){if(Ce?Be.to==P.doc.length:Be.from==0)continue;let $e=P.doc.lineAt(Ce?Be.to+1:Be.from-1),st=$e.length+1;if(Ce){Le.push({from:Be.to,to:$e.to},{from:Be.from,insert:$e.text+P.lineBreak});for(let gt of Be.ranges)Ye.push(D.EditorSelection.range(Math.min(P.doc.length,gt.anchor+st),Math.min(P.doc.length,gt.head+st)))}else{Le.push({from:$e.from,to:Be.from},{from:Be.to,insert:P.lineBreak+$e.text});for(let gt of Be.ranges)Ye.push(D.EditorSelection.range(gt.anchor-st,gt.head-st))}}return Le.length?(ce(P.update({changes:Le,scrollIntoView:!0,selection:D.EditorSelection.create(Ye,P.selection.mainIndex),userEvent:"move.line"})),!0):!1}const J=({state:P,dispatch:ce})=>I(P,ce,!1),he=({state:P,dispatch:ce})=>I(P,ce,!0);function de(P,ce,Ce){if(P.readOnly)return!1;let Le=[];for(let Ye of oe(P))Ce?Le.push({from:Ye.from,insert:P.doc.slice(Ye.from,Ye.to)+P.lineBreak}):Le.push({from:Ye.to,insert:P.lineBreak+P.doc.slice(Ye.from,Ye.to)});return ce(P.update({changes:Le,scrollIntoView:!0,userEvent:"input.copyline"})),!0}const xe=({state:P,dispatch:ce})=>de(P,ce,!1),Ie=({state:P,dispatch:ce})=>de(P,ce,!0),Qe=P=>{if(P.state.readOnly)return!1;let{state:ce}=P,Ce=ce.changes(oe(ce).map(({from:Ye,to:Be})=>(Ye>0?Ye--:Be<ce.doc.length&&Be++,{from:Ye,to:Be}))),Le=je(ce.selection,Ye=>P.moveVertically(Ye,!0)).map(Ce);return P.dispatch({changes:Ce,selection:Le,scrollIntoView:!0,userEvent:"delete.line"}),!0},tt=({state:P,dispatch:ce})=>(ce(P.update(P.replaceSelection(P.lineBreak),{scrollIntoView:!0,userEvent:"input"})),!0);function lt(P,ce){if(/\(\)|\[\]|\{\}/.test(P.sliceDoc(ce-1,ce+1)))return{from:ce,to:ce};let Ce=Me.syntaxTree(P).resolveInner(ce),Le=Ce.childBefore(ce),Ye=Ce.childAfter(ce),Be;return Le&&Ye&&Le.to<=ce&&Ye.from>=ce&&(Be=Le.type.prop(Xe.NodeProp.closedBy))&&Be.indexOf(Ye.name)>-1&&P.doc.lineAt(Le.to).from==P.doc.lineAt(Ye.from).from?{from:Le.to,to:Ye.from}:null}const dt=ai(!1),kt=ai(!0);function ai(P){return({state:ce,dispatch:Ce})=>{if(ce.readOnly)return!1;let Le=ce.changeByRange(Ye=>{let{from:Be,to:$e}=Ye,st=ce.doc.lineAt(Be),gt=!P&&Be==$e&&lt(ce,Be);P&&(Be=$e=($e<=st.to?st:ce.doc.lineAt($e)).to);let xt=new Me.IndentContext(ce,{simulateBreak:Be,simulateDoubleBreak:!!gt}),Jt=Me.getIndentation(xt,Be);for(Jt==null&&(Jt=/^\s*/.exec(ce.doc.lineAt(Be).text)[0].length);$e<st.to&&/\s/.test(st.text[$e-st.from]);)$e++;gt?{from:Be,to:$e}=gt:Be>st.from&&Be<st.from+100&&!/\S/.test(st.text.slice(0,Be))&&(Be=st.from);let ei=["",Me.indentString(ce,Jt)];return gt&&ei.push(Me.indentString(ce,xt.lineIndent(st.from,-1))),{changes:{from:Be,to:$e,insert:re.Text.of(ei)},range:D.EditorSelection.cursor(Be+1+ei[1].length)}});return Ce(ce.update(Le,{scrollIntoView:!0,userEvent:"input"})),!0}}function _t(P,ce){let Ce=-1;return P.changeByRange(Le=>{let Ye=[];for(let $e=Le.from;$e<=Le.to;){let st=P.doc.lineAt($e);st.number>Ce&&(Le.empty||Le.to>st.from)&&(ce(st,Ye,Le),Ce=st.number),$e=st.to+1}let Be=P.changes(Ye);return{changes:Ye,range:D.EditorSelection.range(Be.mapPos(Le.anchor,1),Be.mapPos(Le.head,1))}})}const si=({state:P,dispatch:ce})=>{if(P.readOnly)return!1;let Ce=Object.create(null),Le=new Me.IndentContext(P,{overrideIndentation:Be=>{let $e=Ce[Be];return $e??-1}}),Ye=_t(P,(Be,$e,st)=>{let gt=Me.getIndentation(Le,Be.from);if(gt==null)return;/\S/.test(Be.text)||(gt=0);let xt=/^\s*/.exec(Be.text)[0],Jt=Me.indentString(P,gt);(xt!=Jt||st.from<Be.from+xt.length)&&(Ce[Be.from]=gt,$e.push({from:Be.from,to:Be.from+xt.length,insert:Jt}))});return Ye.changes.empty||ce(P.update(Ye,{userEvent:"indent"})),!0},It=({state:P,dispatch:ce})=>P.readOnly?!1:(ce(P.update(_t(P,(Ce,Le)=>{Le.push({from:Ce.from,insert:P.facet(Me.indentUnit)})}),{userEvent:"input.indent"})),!0),ci=({state:P,dispatch:ce})=>P.readOnly?!1:(ce(P.update(_t(P,(Ce,Le)=>{let Ye=/^\s*/.exec(Ce.text)[0];if(!Ye)return;let Be=re.countColumn(Ye,P.tabSize),$e=0,st=Me.indentString(P,Math.max(0,Be-Me.getIndentUnit(P)));for(;$e<Ye.length&&$e<st.length&&Ye.charCodeAt($e)==st.charCodeAt($e);)$e++;Le.push({from:Ce.from+$e,to:Ce.from+Ye.length,insert:st.slice($e)})}),{userEvent:"delete.dedent"})),!0),fi=({state:P,dispatch:ce})=>P.selection.ranges.some(Ce=>!Ce.empty)?It({state:P,dispatch:ce}):(ce(P.update(P.replaceSelection(" "),{scrollIntoView:!0,userEvent:"input"})),!0),bt=[{key:"Ctrl-b",run:ue,shift:S,preventDefault:!0},{key:"Ctrl-f",run:Te,shift:B},{key:"Ctrl-p",run:T,shift:ne},{key:"Ctrl-n",run:z,shift:p},{key:"Ctrl-a",run:Ke,shift:A},{key:"Ctrl-e",run:et,shift:N},{key:"Ctrl-d",run:Ht},{key:"Ctrl-h",run:Tt},{key:"Ctrl-k",run:Qt},{key:"Ctrl-Alt-h",run:zt},{key:"Ctrl-o",run:ri},{key:"Ctrl-t",run:Lt},{key:"Ctrl-v",run:te}],wt=[{key:"ArrowLeft",run:ue,shift:S,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:Ve,shift:x},{mac:"Cmd-ArrowLeft",run:qe,shift:C},{key:"ArrowRight",run:Te,shift:B,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:ke,shift:v},{mac:"Cmd-ArrowRight",run:Ae,shift:ie},{key:"ArrowUp",run:T,shift:ne,preventDefault:!0},{mac:"Cmd-ArrowUp",run:$,shift:be},{mac:"Ctrl-ArrowUp",run:U,shift:K},{key:"ArrowDown",run:z,shift:p,preventDefault:!0},{mac:"Cmd-ArrowDown",run:ee,shift:Je},{mac:"Ctrl-ArrowDown",run:te,shift:X},{key:"PageUp",run:U,shift:K},{key:"PageDown",run:te,shift:X},{key:"Home",run:qe,shift:C},{key:"Mod-Home",run:$,shift:be},{key:"End",run:Ae,shift:ie},{key:"Mod-End",run:ee,shift:Je},{key:"Enter",run:dt},{key:"Mod-a",run:Ze},{key:"Backspace",run:Tt,shift:Tt},{key:"Delete",run:Ht},{key:"Mod-Backspace",mac:"Alt-Backspace",run:zt},{key:"Mod-Delete",mac:"Alt-Delete",run:Kt},{mac:"Mod-Backspace",run:Pt},{mac:"Mod-Delete",run:Qt}].concat(bt.map(P=>({mac:P.key,run:P.run,shift:P.shift}))),Zt=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:g,shift:Ue},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:O,shift:ze},{key:"Alt-ArrowUp",run:J},{key:"Shift-Alt-ArrowUp",run:xe},{key:"Alt-ArrowDown",run:he},{key:"Shift-Alt-ArrowDown",run:Ie},{key:"Escape",run:Mt},{key:"Mod-Enter",run:kt},{key:"Alt-l",mac:"Ctrl-l",run:it},{key:"Mod-i",run:ut,preventDefault:!0},{key:"Mod-[",run:ci},{key:"Mod-]",run:It},{key:"Mod-Alt-\\",run:si},{key:"Shift-Mod-k",run:Qe},{key:"Shift-Mod-\\",run:at}].concat(wt),Ft={key:"Tab",run:It,shift:ci};b.copyLineDown=Ie,b.copyLineUp=xe,b.cursorCharBackward=Ee,b.cursorCharForward=He,b.cursorCharLeft=ue,b.cursorCharRight=Te,b.cursorDocEnd=ee,b.cursorDocStart=$,b.cursorGroupBackward=H,b.cursorGroupForward=ae,b.cursorGroupLeft=Ve,b.cursorGroupRight=ke,b.cursorLineBoundaryBackward=qe,b.cursorLineBoundaryForward=Ae,b.cursorLineDown=z,b.cursorLineEnd=et,b.cursorLineStart=Ke,b.cursorLineUp=T,b.cursorMatchingBracket=at,b.cursorPageDown=te,b.cursorPageUp=U,b.cursorSubwordBackward=Q,b.cursorSubwordForward=W,b.cursorSyntaxLeft=g,b.cursorSyntaxRight=O,b.defaultKeymap=Zt,b.deleteCharBackward=Tt,b.deleteCharForward=Ht,b.deleteGroupBackward=zt,b.deleteGroupForward=Kt,b.deleteLine=Qe,b.deleteToLineEnd=Qt,b.deleteToLineStart=Pt,b.deleteTrailingWhitespace=jt,b.emacsStyleKeymap=bt,b.indentLess=ci,b.indentMore=It,b.indentSelection=si,b.indentWithTab=Ft,b.insertBlankLine=kt,b.insertNewline=tt,b.insertNewlineAndIndent=dt,b.insertTab=fi,b.moveLineDown=he,b.moveLineUp=J,b.selectAll=Ze,b.selectCharBackward=Z,b.selectCharForward=V,b.selectCharLeft=S,b.selectCharRight=B,b.selectDocEnd=Je,b.selectDocStart=be,b.selectGroupBackward=G,b.selectGroupForward=E,b.selectGroupLeft=x,b.selectGroupRight=v,b.selectLine=it,b.selectLineBoundaryBackward=C,b.selectLineBoundaryForward=ie,b.selectLineDown=p,b.selectLineEnd=N,b.selectLineStart=A,b.selectLineUp=ne,b.selectMatchingBracket=_e,b.selectPageDown=X,b.selectPageUp=K,b.selectParentSyntax=ut,b.selectSubwordBackward=Pe,b.selectSubwordForward=Se,b.selectSyntaxLeft=Ue,b.selectSyntaxRight=ze,b.simplifySelection=Mt,b.splitLine=ri,b.standardKeymap=wt,b.transposeChars=Lt},{"@codemirror/language":13,"@codemirror/matchbrackets":16,"@codemirror/state":22,"@codemirror/text":24,"@codemirror/view":5,"@lezer/common":28}],5:[function(Re,mt,b){"use strict";Object.defineProperty(b,"__esModule",{value:!0});var D=Re("@codemirror/state"),re=Re("style-mod"),ye=Re("@codemirror/rangeset"),we=Re("@codemirror/text"),Me=Re("w3c-keyname");function Xe(n){let e;return n.nodeType==11?e=n.getSelection?n:n.ownerDocument:e=n,e.getSelection()}function je(n,e){return e?n.contains(e.nodeType!=1?e.parentNode:e):!1}function We(){let n=document.activeElement;for(;n&&n.shadowRoot;)n=n.shadowRoot.activeElement;return n}function Oe(n,e){if(!e.anchorNode)return!1;try{return je(n,e.anchorNode)}catch(i){return!1}}function De(n){return n.nodeType==3?W(n,0,n.nodeValue.length).getClientRects():n.nodeType==1?n.getClientRects():[]}function ve(n,e,i,s){return i?Te(n,e,i,s,-1)||Te(n,e,i,s,1):!1}function ue(n){for(var e=0;;e++)if(n=n.previousSibling,!n)return e}function Te(n,e,i,s,o){for(;;){if(n==i&&e==s)return!0;if(e==(o<0?0:He(n))){if(n.nodeName=="DIV")return!1;let c=n.parentNode;if(!c||c.nodeType!=1)return!1;e=ue(n)+(o<0?0:1),n=c}else if(n.nodeType==1){if(n=n.childNodes[e+(o<0?-1:0)],n.nodeType==1&&n.contentEditable=="false")return!1;e=o<0?He(n):0}else return!1}}function He(n){return n.nodeType==3?n.nodeValue.length:n.childNodes.length}const Ee={left:0,right:0,top:0,bottom:0};function me(n,e){let i=e?n.left:n.right;return{left:i,right:i,top:n.top,bottom:n.bottom}}function Ve(n){return{left:0,right:n.innerWidth,top:0,bottom:n.innerHeight}}function ke(n,e,i,s,o,c,f,y){let L=n.ownerDocument,q=L.defaultView;for(let se=n;se;)if(se.nodeType==1){let fe,Fe=se==L.body;if(Fe)fe=Ve(q);else{if(se.scrollHeight<=se.clientHeight&&se.scrollWidth<=se.clientWidth){se=se.parentNode;continue}let rt=se.getBoundingClientRect();fe={left:rt.left,right:rt.left+se.clientWidth,top:rt.top,bottom:rt.top+se.clientHeight}}let Ne=0,Ge=0;if(o=="nearest")e.top<fe.top?(Ge=-(fe.top-e.top+f),i>0&&e.bottom>fe.bottom+Ge&&(Ge=e.bottom-fe.bottom+Ge+f)):e.bottom>fe.bottom&&(Ge=e.bottom-fe.bottom+f,i<0&&e.top-Ge<fe.top&&(Ge=-(fe.top+Ge-e.top+f)));else{let rt=e.bottom-e.top,ht=fe.bottom-fe.top;Ge=(o=="center"&&rt<=ht?e.top+rt/2-ht/2:o=="start"||o=="center"&&i<0?e.top-f:e.bottom-ht+f)-fe.top}if(s=="nearest"?e.left<fe.left?(Ne=-(fe.left-e.left+c),i>0&&e.right>fe.right+Ne&&(Ne=e.right-fe.right+Ne+c)):e.right>fe.right&&(Ne=e.right-fe.right+c,i<0&&e.left<fe.left+Ne&&(Ne=-(fe.left+Ne-e.left+c))):Ne=(s=="center"?e.left+(e.right-e.left)/2-(fe.right-fe.left)/2:s=="start"==y?e.left-c:e.right-(fe.right-fe.left)+c)-fe.left,Ne||Ge)if(Fe)q.scrollBy(Ne,Ge);else{if(Ge){let rt=se.scrollTop;se.scrollTop+=Ge,Ge=se.scrollTop-rt}if(Ne){let rt=se.scrollLeft;se.scrollLeft+=Ne,Ne=se.scrollLeft-rt}e={left:e.left-Ne,top:e.top-Ge,right:e.right-Ne,bottom:e.bottom-Ge}}if(Fe)break;se=se.assignedSlot||se.parentNode,s=o="nearest"}else if(se.nodeType==11)se=se.host;else break}class ae{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}eq(e){return this.anchorNode==e.anchorNode&&this.anchorOffset==e.anchorOffset&&this.focusNode==e.focusNode&&this.focusOffset==e.focusOffset}setRange(e){this.set(e.anchorNode,e.anchorOffset,e.focusNode,e.focusOffset)}set(e,i,s,o){this.anchorNode=e,this.anchorOffset=i,this.focusNode=s,this.focusOffset=o}}let H=null;function j(n){if(n.setActive)return n.setActive();if(H)return n.focus(H);let e=[];for(let i=n;i&&(e.push(i,i.scrollTop,i.scrollLeft),i!=i.ownerDocument);i=i.parentNode);if(n.focus(H==null?{get preventScroll(){return H={preventScroll:!0},!0}}:void 0),!H){H=!1;for(let i=0;i<e.length;){let s=e[i++],o=e[i++],c=e[i++];s.scrollTop!=o&&(s.scrollTop=o),s.scrollLeft!=c&&(s.scrollLeft=c)}}}let Y;function W(n,e,i=e){let s=Y||(Y=document.createRange());return s.setEnd(n,i),s.setStart(n,e),s}function Q(n,e,i){let s={key:e,code:e,keyCode:i,which:i,cancelable:!0},o=new KeyboardEvent("keydown",s);o.synthetic=!0,n.dispatchEvent(o);let c=new KeyboardEvent("keyup",s);return c.synthetic=!0,n.dispatchEvent(c),o.defaultPrevented||c.defaultPrevented}function R(n){for(;n;){if(n&&(n.nodeType==9||n.nodeType==11&&n.host))return n;n=n.assignedSlot||n.parentNode}return null}function d(n){for(;n.attributes.length;)n.removeAttributeNode(n.attributes[0])}class g{constructor(e,i,s=!0){this.node=e,this.offset=i,this.precise=s}static before(e,i){return new g(e.parentNode,ue(e),i)}static after(e,i){return new g(e.parentNode,ue(e)+1,i)}}const O=[];class w{constructor(){this.parent=null,this.dom=null,this.dirty=2}get editorView(){if(!this.parent)throw new Error("Accessing view in orphan content view");return this.parent.editorView}get overrideDOMText(){return null}get posAtStart(){return this.parent?this.parent.posBefore(this):0}get posAtEnd(){return this.posAtStart+this.length}posBefore(e){let i=this.posAtStart;for(let s of this.children){if(s==e)return i;i+=s.length+s.breakAfter}throw new RangeError("Invalid child in posBefore")}posAfter(e){return this.posBefore(e)+e.length}coordsAt(e,i){return null}sync(e){if(this.dirty&2){let i=this.dom,s=i.firstChild;for(let o of this.children){if(o.dirty){if(!o.dom&&s){let c=w.get(s);(!c||!c.parent&&c.constructor==o.constructor)&&o.reuseDOM(s)}o.sync(e),o.dirty=0}if(e&&!e.written&&e.node==i&&s!=o.dom&&(e.written=!0),o.dom.parentNode==i){for(;s&&s!=o.dom;)s=T(s);s=o.dom.nextSibling}else i.insertBefore(o.dom,s)}for(s&&e&&e.node==i&&(e.written=!0);s;)s=T(s)}else if(this.dirty&1)for(let i of this.children)i.dirty&&(i.sync(e),i.dirty=0)}reuseDOM(e){}localPosFromDOM(e,i){let s;if(e==this.dom)s=this.dom.childNodes[i];else{let o=He(e)==0?0:i==0?-1:1;for(;;){let c=e.parentNode;if(c==this.dom)break;o==0&&c.firstChild!=c.lastChild&&(e==c.firstChild?o=-1:o=1),e=c}o<0?s=e:s=e.nextSibling}if(s==this.dom.firstChild)return 0;for(;s&&!w.get(s);)s=s.nextSibling;if(!s)return this.length;for(let o=0,c=0;;o++){let f=this.children[o];if(f.dom==s)return c;c+=f.length+f.breakAfter}}domBoundsAround(e,i,s=0){let o=-1,c=-1,f=-1,y=-1;for(let L=0,q=s,se=s;L<this.children.length;L++){let fe=this.children[L],Fe=q+fe.length;if(q<e&&Fe>i)return fe.domBoundsAround(e,i,q);if(Fe>=e&&o==-1&&(o=L,c=q),q>i&&fe.dom.parentNode==this.dom){f=L,y=se;break}se=Fe,q=Fe+fe.breakAfter}return{from:c,to:y<0?s+this.length:y,startDOM:(o?this.children[o-1].dom.nextSibling:null)||this.dom.firstChild,endDOM:f<this.children.length&&f>=0?this.children[f].dom:null}}markDirty(e=!1){this.dirty|=2,this.markParentsDirty(e)}markParentsDirty(e){for(let i=this.parent;i;i=i.parent){if(e&&(i.dirty|=2),i.dirty&1)return;i.dirty|=1,e=!1}}setParent(e){this.parent!=e&&(this.parent=e,this.dirty&&this.markParentsDirty(!0))}setDOM(e){this.dom&&(this.dom.cmView=null),this.dom=e,e.cmView=this}get rootView(){for(let e=this;;){let i=e.parent;if(!i)return e;e=i}}replaceChildren(e,i,s=O){this.markDirty();for(let o=e;o<i;o++){let c=this.children[o];c.parent==this&&c.destroy()}this.children.splice(e,i-e,...s);for(let o=0;o<s.length;o++)s[o].setParent(this)}ignoreMutation(e){return!1}ignoreEvent(e){return!1}childCursor(e=this.length){return new z(this.children,e,this.children.length)}childPos(e,i=1){return this.childCursor().findPos(e,i)}toString(){let e=this.constructor.name.replace("View","");return e+(this.children.length?"("+this.children.join()+")":this.length?"["+(e=="Text"?this.text:this.length)+"]":"")+(this.breakAfter?"#":"")}static get(e){return e.cmView}get isEditable(){return!0}merge(e,i,s,o,c,f){return!1}become(e){return!1}getSide(){return 0}destroy(){this.parent=null}}w.prototype.breakAfter=0;function T(n){let e=n.nextSibling;return n.parentNode.removeChild(n),e}class z{constructor(e,i,s){this.children=e,this.pos=i,this.i=s,this.off=0}findPos(e,i=1){for(;;){if(e>this.pos||e==this.pos&&(i>0||this.i==0||this.children[this.i-1].breakAfter))return this.off=e-this.pos,this;let s=this.children[--this.i];this.pos-=s.length+s.breakAfter}}}function _(n,e,i,s,o,c,f,y,L){let{children:q}=n,se=q.length?q[e]:null,fe=c.length?c[c.length-1]:null,Fe=fe?fe.breakAfter:f;if(!(e==s&&se&&!f&&!Fe&&c.length<2&&se.merge(i,o,c.length?fe:null,i==0,y,L))){if(s<q.length){let Ne=q[s];Ne&&o<Ne.length?(e==s&&(Ne=Ne.split(o),o=0),!Fe&&fe&&Ne.merge(0,o,fe,!0,0,L)?c[c.length-1]=Ne:(o&&Ne.merge(0,o,null,!1,0,L),c.push(Ne))):(Ne==null?void 0:Ne.breakAfter)&&(fe?fe.breakAfter=1:f=1),s++}for(se&&(se.breakAfter=f,i>0&&(!f&&c.length&&se.merge(i,se.length,c[0],!1,y,0)?se.breakAfter=c.shift().breakAfter:(i<se.length||se.children.length&&se.children[se.children.length-1].length==0)&&se.merge(i,se.length,null,!1,y,0),e++));e<s&&c.length;)if(q[s-1].become(c[c.length-1]))s--,c.pop(),L=c.length?0:y;else if(q[e].become(c[0]))e++,c.shift(),y=c.length?0:L;else break;!c.length&&e&&s<q.length&&!q[e-1].breakAfter&&q[s].merge(0,0,q[e-1],!1,y,L)&&e--,(e<s||c.length)&&n.replaceChildren(e,s,c)}}function U(n,e,i,s,o,c){let f=n.childCursor(),{i:y,off:L}=f.findPos(i,1),{i:q,off:se}=f.findPos(e,-1),fe=e-i;for(let Fe of s)fe+=Fe.length;n.length+=fe,_(n,q,se,y,L,s,0,o,c)}let[te,ge]=typeof navigator!="undefined"?[navigator,document]:[{userAgent:"",vendor:"",platform:""},{documentElement:{style:{}}}];const Ae=/Edge\/(\d+)/.exec(te.userAgent),qe=/MSIE \d/.test(te.userAgent),Ke=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(te.userAgent),et=!!(qe||Ke||Ae),nt=!et&&/gecko\/(\d+)/i.test(te.userAgent),at=!et&&/Chrome\/(\d+)/.exec(te.userAgent),_e="webkitFontSmoothing"in ge.documentElement.style,pe=!et&&/Apple Computer/.test(te.vendor),k=pe&&(/Mobile\/\w+/.test(te.userAgent)||te.maxTouchPoints>2);var S={mac:k||/Mac/.test(te.platform),windows:/Win/.test(te.platform),linux:/Linux|X11/.test(te.platform),ie:et,ie_version:qe?ge.documentMode||6:Ke?+Ke[1]:Ae?+Ae[1]:0,gecko:nt,gecko_version:nt?+(/Firefox\/(\d+)/.exec(te.userAgent)||[0,0])[1]:0,chrome:!!at,chrome_version:at?+at[1]:0,ios:k,android:/Android\b/.test(te.userAgent),webkit:_e,safari:pe,webkit_version:_e?+(/\bAppleWebKit\/(\d+)/.exec(navigator.userAgent)||[0,0])[1]:0,tabSize:ge.documentElement.style.tabSize!=null?"tab-size":"-moz-tab-size"};const B=256;class V extends w{constructor(e){super();this.text=e}get length(){return this.text.length}createDOM(e){this.setDOM(e||document.createTextNode(this.text))}sync(e){this.dom||this.createDOM(),this.dom.nodeValue!=this.text&&(e&&e.node==this.dom&&(e.written=!0),this.dom.nodeValue=this.text)}reuseDOM(e){e.nodeType==3&&this.createDOM(e)}merge(e,i,s){return s&&(!(s instanceof V)||this.length-(i-e)+s.length>B)?!1:(this.text=this.text.slice(0,e)+(s?s.text:"")+this.text.slice(i),this.markDirty(),!0)}split(e){let i=new V(this.text.slice(e));return this.text=this.text.slice(0,e),this.markDirty(),i}localPosFromDOM(e,i){return e==this.dom?i:i?this.text.length:0}domAtPos(e){return new g(this.dom,e)}domBoundsAround(e,i,s){return{from:s,to:s+this.length,startDOM:this.dom,endDOM:this.dom.nextSibling}}coordsAt(e,i){return F(this.dom,e,i)}}class Z extends w{constructor(e,i=[],s=0){super();this.mark=e,this.children=i,this.length=s;for(let o of i)o.setParent(this)}setAttrs(e){if(d(e),this.mark.class&&(e.className=this.mark.class),this.mark.attrs)for(let i in this.mark.attrs)e.setAttribute(i,this.mark.attrs[i]);return e}reuseDOM(e){e.nodeName==this.mark.tagName.toUpperCase()&&(this.setDOM(e),this.dirty|=4|2)}sync(e){this.dom?this.dirty&4&&this.setAttrs(this.dom):this.setDOM(this.setAttrs(document.createElement(this.mark.tagName))),super.sync(e)}merge(e,i,s,o,c,f){return s&&(!(s instanceof Z&&s.mark.eq(this.mark))||e&&c<=0||i<this.length&&f<=0)?!1:(U(this,e,i,s?s.children:[],c-1,f-1),this.markDirty(),!0)}split(e){let i=[],s=0,o=-1,c=0;for(let y of this.children){let L=s+y.length;L>e&&i.push(s<e?y.split(e-s):y),o<0&&s>=e&&(o=c),s=L,c++}let f=this.length-e;return this.length=e,o>-1&&(this.children.length=o,this.markDirty()),new Z(this.mark,i,f)}domAtPos(e){return le(this.dom,this.children,e)}coordsAt(e,i){return Pe(this,e,i)}}function F(n,e,i){let s=n.nodeValue.length;e>s&&(e=s);let o=e,c=e,f=0;e==0&&i<0||e==s&&i>=0?S.chrome||S.gecko||(e?(o--,f=1):(c++,f=-1)):i<0?o--:c++;let y=W(n,o,c).getClientRects();if(!y.length)return Ee;let L=y[(f?f<0:i>=0)?0:y.length-1];return S.safari&&!f&&L.width==0&&(L=Array.prototype.find.call(y,q=>q.width)||L),f?me(L,f<0):L||null}class x extends w{constructor(e,i,s){super();this.widget=e,this.length=i,this.side=s}static create(e,i,s){return new(e.customView||x)(e,i,s)}split(e){let i=x.create(this.widget,this.length-e,this.side);return this.length-=e,i}sync(){(!this.dom||!this.widget.updateDOM(this.dom))&&(this.setDOM(this.widget.toDOM(this.editorView)),this.dom.contentEditable="false")}getSide(){return this.side}merge(e,i,s,o,c,f){return s&&(!(s instanceof x)||!this.widget.compare(s.widget)||e>0&&c<=0||i<this.length&&f<=0)?!1:(this.length=e+(s?s.length:0)+(this.length-i),!0)}become(e){return e.length==this.length&&e instanceof x&&e.side==this.side&&this.widget.constructor==e.widget.constructor?(this.widget.eq(e.widget)||this.markDirty(!0),this.widget=e.widget,!0):!1}ignoreMutation(){return!0}ignoreEvent(e){return this.widget.ignoreEvent(e)}get overrideDOMText(){if(this.length==0)return we.Text.empty;let e=this;for(;e.parent;)e=e.parent;let i=e.editorView,s=i&&i.state.doc,o=this.posAtStart;return s?s.slice(o,o+this.length):we.Text.empty}domAtPos(e){return e==0?g.before(this.dom):g.after(this.dom,e==this.length)}domBoundsAround(){return null}coordsAt(e,i){let s=this.dom.getClientRects(),o=null;if(!s.length)return Ee;for(let c=e>0?s.length-1:0;o=s[c],!(e>0?c==0:c==s.length-1||o.top<o.bottom);c+=e>0?-1:1);return e==0&&i>0||e==this.length&&i<=0?o:me(o,e==0)}get isEditable(){return!1}destroy(){super.destroy(),this.dom&&this.widget.destroy(this.dom)}}class v extends x{domAtPos(e){return new g(this.widget.text,e)}sync(){this.setDOM(this.widget.toDOM())}localPosFromDOM(e,i){return i?e.nodeType==3?Math.min(i,this.length):this.length:0}ignoreMutation(){return!1}get overrideDOMText(){return null}coordsAt(e,i){return F(this.widget.text,e,i)}get isEditable(){return!0}}const E=S.android?"\u200B\u200B":"\u200B";class G extends w{constructor(e){super();this.side=e}get length(){return 0}merge(){return!1}become(e){return e instanceof G&&e.side==this.side}split(){return new G(this.side)}sync(){this.dom?this.dirty&&this.dom.nodeValue!=E&&(this.dom.nodeValue=E):this.setDOM(document.createTextNode(E))}getSide(){return this.side}domAtPos(e){return g.before(this.dom)}localPosFromDOM(){return 0}domBoundsAround(){return null}coordsAt(e){let i=De(this.dom);return i[i.length-1]||null}get overrideDOMText(){return we.Text.of([this.dom.nodeValue.replace(/\u200b/g,"")])}}V.prototype.children=x.prototype.children=G.prototype.children=O;function le(n,e,i){let s=0;for(let o=0;s<e.length;s++){let c=e[s],f=o+c.length;if(!(f==o&&c.getSide()<=0)){if(i>o&&i<f&&c.dom.parentNode==n)return c.domAtPos(i-o);if(i<=o)break;o=f}}for(;s>0;s--){let o=e[s-1].dom;if(o.parentNode==n)return g.after(o)}return new g(n,0)}function Se(n,e,i){let s,{children:o}=n;i>0&&e instanceof Z&&o.length&&(s=o[o.length-1])instanceof Z&&s.mark.eq(e.mark)?Se(s,e.children[0],i-1):(o.push(e),e.setParent(n)),n.length+=e.length}function Pe(n,e,i){for(let c=0,f=0;f<n.children.length;f++){let y=n.children[f],L=c+y.length,q;if((i<=0||L==n.length||y.getSide()>0?L>=e:L>e)&&(e<L||f+1==n.children.length||(q=n.children[f+1]).length||q.getSide()>0)){let se=0;if(L==c){if(y.getSide()<=0)continue;se=i=-y.getSide()}let fe=y.coordsAt(e-c,i);return se&&fe?me(fe,i<0):fe}c=L}let s=n.dom.lastChild;if(!s)return n.dom.getBoundingClientRect();let o=De(s);return o[o.length-1]||null}function Ue(n,e){for(let i in n)i=="class"&&e.class?e.class+=" "+n.class:i=="style"&&e.style?e.style+=";"+n.style:e[i]=n[i];return e}function ze(n,e){if(n==e)return!0;if(!n||!e)return!1;let i=Object.keys(n),s=Object.keys(e);if(i.length!=s.length)return!1;for(let o of i)if(s.indexOf(o)==-1||n[o]!==e[o])return!1;return!0}function ot(n,e,i){if(e)for(let s in e)i&&s in i||n.removeAttribute(s);if(i)for(let s in i)e&&e[s]==i[s]||n.setAttribute(s,i[s])}class ne{eq(e){return!1}updateDOM(e){return!1}compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}get estimatedHeight(){return-1}ignoreEvent(e){return!0}get customView(){return null}destroy(e){}}b.BlockType=void 0,function(n){n[n.Text=0]="Text",n[n.WidgetBefore=1]="WidgetBefore",n[n.WidgetAfter=2]="WidgetAfter",n[n.WidgetRange=3]="WidgetRange"}(b.BlockType||(b.BlockType={}));class p extends ye.RangeValue{constructor(e,i,s,o){super();this.startSide=e,this.endSide=i,this.widget=s,this.spec=o}get heightRelevant(){return!1}static mark(e){return new M(e)}static widget(e){let i=e.side||0,s=!!e.block;return i+=s?i>0?3e8:-4e8:i>0?1e8:-1e8,new X(e,i,i,s,e.widget||null,!1)}static replace(e){let i=!!e.block,{start:s,end:o}=ie(e,i),c=i?s?-3e8:-1:4e8,f=i?o?2e8:1:-5e8;return new X(e,c,f,i,e.widget||null,!0)}static line(e){return new K(e)}static set(e,i=!1){return ye.RangeSet.of(e,i)}hasHeight(){return this.widget?this.widget.estimatedHeight>-1:!1}}p.none=ye.RangeSet.empty;class M extends p{constructor(e){let{start:i,end:s}=ie(e);super(i?-1:4e8,s?1:-5e8,null,e);this.tagName=e.tagName||"span",this.class=e.class||"",this.attrs=e.attributes||null}eq(e){return this==e||e instanceof M&&this.tagName==e.tagName&&this.class==e.class&&ze(this.attrs,e.attrs)}range(e,i=e){if(e>=i)throw new RangeError("Mark decorations may not be empty");return super.range(e,i)}}M.prototype.point=!1;class K extends p{constructor(e){super(-2e8,-2e8,null,e)}eq(e){return e instanceof K&&ze(this.spec.attributes,e.spec.attributes)}range(e,i=e){if(i!=e)throw new RangeError("Line decoration ranges must be zero-length");return super.range(e,i)}}K.prototype.mapMode=D.MapMode.TrackBefore,K.prototype.point=!0;class X extends p{constructor(e,i,s,o,c,f){super(i,s,c,e);this.block=o,this.isReplace=f,this.mapMode=o?i<=0?D.MapMode.TrackBefore:D.MapMode.TrackAfter:D.MapMode.TrackDel}get type(){return this.startSide<this.endSide?b.BlockType.WidgetRange:this.startSide<=0?b.BlockType.WidgetBefore:b.BlockType.WidgetAfter}get heightRelevant(){return this.block||!!this.widget&&this.widget.estimatedHeight>=5}eq(e){return e instanceof X&&C(this.widget,e.widget)&&this.block==e.block&&this.startSide==e.startSide&&this.endSide==e.endSide}range(e,i=e){if(this.isReplace&&(e>i||e==i&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&i!=e)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(e,i)}}X.prototype.point=!0;function ie(n,e=!1){let{inclusiveStart:i,inclusiveEnd:s}=n;return i==null&&(i=n.inclusive),s==null&&(s=n.inclusive),{start:i??e,end:s??e}}function C(n,e){return n==e||!!(n&&e&&n.compare(e))}function A(n,e,i,s=0){let o=i.length-1;o>=0&&i[o]+s>=n?i[o]=Math.max(i[o],e):i.push(n,e)}class N extends w{constructor(){super(...arguments);this.children=[],this.length=0,this.prevAttrs=void 0,this.attrs=null,this.breakAfter=0}merge(e,i,s,o,c,f){if(s){if(!(s instanceof N))return!1;this.dom||s.transferDOM(this)}return o&&this.setDeco(s?s.attrs:null),U(this,e,i,s?s.children:[],c,f),!0}split(e){let i=new N;if(i.breakAfter=this.breakAfter,this.length==0)return i;let{i:s,off:o}=this.childPos(e);o&&(i.append(this.children[s].split(o),0),this.children[s].merge(o,this.children[s].length,null,!1,0,0),s++);for(let c=s;c<this.children.length;c++)i.append(this.children[c],0);for(;s>0&&this.children[s-1].length==0;)this.children[--s].destroy();return this.children.length=s,this.markDirty(),this.length=e,i}transferDOM(e){!this.dom||(e.setDOM(this.dom),e.prevAttrs=this.prevAttrs===void 0?this.attrs:this.prevAttrs,this.prevAttrs=void 0,this.dom=null)}setDeco(e){ze(this.attrs,e)||(this.dom&&(this.prevAttrs=this.attrs,this.markDirty()),this.attrs=e)}append(e,i){Se(this,e,i)}addLineDeco(e){let i=e.spec.attributes,s=e.spec.class;i&&(this.attrs=Ue(i,this.attrs||{})),s&&(this.attrs=Ue({class:s},this.attrs||{}))}domAtPos(e){return le(this.dom,this.children,e)}reuseDOM(e){e.nodeName=="DIV"&&(this.setDOM(e),this.dirty|=4|2)}sync(e){var i;this.dom?this.dirty&4&&(d(this.dom),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0):(this.setDOM(document.createElement("div")),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0),this.prevAttrs!==void 0&&(ot(this.dom,this.prevAttrs,this.attrs),this.dom.classList.add("cm-line"),this.prevAttrs=void 0),super.sync(e);let s=this.dom.lastChild;for(;s&&w.get(s)instanceof Z;)s=s.lastChild;if(!s||s.nodeName!="BR"&&((i=w.get(s))===null||i===void 0?void 0:i.isEditable)==!1&&(!S.ios||!this.children.some(o=>o instanceof V))){let o=document.createElement("BR");o.cmIgnore=!0,this.dom.appendChild(o)}}measureTextSize(){if(this.children.length==0||this.length>20)return null;let e=0;for(let i of this.children){if(!(i instanceof V))return null;let s=De(i.dom);if(s.length!=1)return null;e+=s[0].width}return{lineHeight:this.dom.getBoundingClientRect().height,charWidth:e/this.length}}coordsAt(e,i){return Pe(this,e,i)}become(e){return!1}get type(){return b.BlockType.Text}static find(e,i){for(let s=0,o=0;s<e.children.length;s++){let c=e.children[s],f=o+c.length;if(f>=i){if(c instanceof N)return c;if(f>i)break}o=f+c.breakAfter}return null}}class $ extends w{constructor(e,i,s){super();this.widget=e,this.length=i,this.type=s,this.breakAfter=0}merge(e,i,s,o,c,f){return s&&(!(s instanceof $)||!this.widget.compare(s.widget)||e>0&&c<=0||i<this.length&&f<=0)?!1:(this.length=e+(s?s.length:0)+(this.length-i),!0)}domAtPos(e){return e==0?g.before(this.dom):g.after(this.dom,e==this.length)}split(e){let i=this.length-e;this.length=e;let s=new $(this.widget,i,this.type);return s.breakAfter=this.breakAfter,s}get children(){return O}sync(){(!this.dom||!this.widget.updateDOM(this.dom))&&(this.setDOM(this.widget.toDOM(this.editorView)),this.dom.contentEditable="false")}get overrideDOMText(){return this.parent?this.parent.view.state.doc.slice(this.posAtStart,this.posAtEnd):D.Text.empty}domBoundsAround(){return null}become(e){return e instanceof $&&e.type==this.type&&e.widget.constructor==this.widget.constructor?(e.widget.eq(this.widget)||this.markDirty(!0),this.widget=e.widget,this.length=e.length,this.breakAfter=e.breakAfter,!0):!1}ignoreMutation(){return!0}ignoreEvent(e){return this.widget.ignoreEvent(e)}destroy(){super.destroy(),this.dom&&this.widget.destroy(this.dom)}}class ee{constructor(e,i,s,o){this.doc=e,this.pos=i,this.end=s,this.disallowBlockEffectsBelow=o,this.content=[],this.curLine=null,this.breakAtStart=0,this.pendingBuffer=0,this.atCursorPos=!0,this.openStart=-1,this.openEnd=-1,this.text="",this.textOff=0,this.cursor=e.iter(),this.skip=i}posCovered(){if(this.content.length==0)return!this.breakAtStart&&this.doc.lineAt(this.pos).from!=this.pos;let e=this.content[this.content.length-1];return!e.breakAfter&&!(e instanceof $&&e.type==b.BlockType.WidgetBefore)}getLine(){return this.curLine||(this.content.push(this.curLine=new N),this.atCursorPos=!0),this.curLine}flushBuffer(e){this.pendingBuffer&&(this.curLine.append(be(new G(-1),e),e.length),this.pendingBuffer=0)}addBlockWidget(e){this.flushBuffer([]),this.curLine=null,this.content.push(e)}finish(e){e?this.pendingBuffer=0:this.flushBuffer([]),this.posCovered()||this.getLine()}buildText(e,i,s){for(;e>0;){if(this.textOff==this.text.length){let{value:c,lineBreak:f,done:y}=this.cursor.next(this.skip);if(this.skip=0,y)throw new Error("Ran out of text content when drawing inline views");if(f){this.posCovered()||this.getLine(),this.content.length?this.content[this.content.length-1].breakAfter=1:this.breakAtStart=1,this.flushBuffer([]),this.curLine=null,e--;continue}else this.text=c,this.textOff=0}let o=Math.min(this.text.length-this.textOff,e,512);this.flushBuffer(i.slice(0,s)),this.getLine().append(be(new V(this.text.slice(this.textOff,this.textOff+o)),i),s),this.atCursorPos=!0,this.textOff+=o,e-=o,s=0}}span(e,i,s,o){this.buildText(i-e,s,o),this.pos=i,this.openStart<0&&(this.openStart=o)}point(e,i,s,o,c){let f=i-e;if(s instanceof X)if(s.block){let{type:y}=s;y==b.BlockType.WidgetAfter&&!this.posCovered()&&this.getLine(),this.addBlockWidget(new $(s.widget||new Je("div"),f,y))}else{let y=x.create(s.widget||new Je("span"),f,s.startSide),L=this.atCursorPos&&!y.isEditable&&c<=o.length&&(e<i||s.startSide>0),q=!y.isEditable&&(e<i||s.startSide<=0),se=this.getLine();this.pendingBuffer==2&&!L&&(this.pendingBuffer=0),this.flushBuffer(o),L&&(se.append(be(new G(1),o),c),c=o.length+Math.max(0,c-o.length)),se.append(be(y,o),c),this.atCursorPos=q,this.pendingBuffer=q?e<i?1:2:0}else this.doc.lineAt(this.pos).from==this.pos&&this.getLine().addLineDeco(s);f&&(this.textOff+f<=this.text.length?this.textOff+=f:(this.skip+=f-(this.text.length-this.textOff),this.text="",this.textOff=0),this.pos=i),this.openStart<0&&(this.openStart=c)}filterPoint(e,i,s,o){if(o>=this.disallowBlockEffectsBelow||!(s instanceof X))return!0;if(s.block)throw new RangeError("Block decorations may not be specified via plugins");return i<=this.doc.lineAt(this.pos).to}static build(e,i,s,o,c){let f=new ee(e,i,s,c);return f.openEnd=ye.RangeSet.spans(o,i,s,f),f.openStart<0&&(f.openStart=f.openEnd),f.finish(f.openEnd),f}}function be(n,e){for(let i of e)n=new Z(i,[n],n.length);return n}class Je extends ne{constructor(e){super();this.tag=e}eq(e){return e.tag==this.tag}toDOM(){return document.createElement(this.tag)}updateDOM(e){return e.nodeName.toLowerCase()==this.tag}}const Ze=[],it=D.Facet.define(),ut=D.Facet.define(),Mt=D.Facet.define(),yt=D.Facet.define(),pt=D.Facet.define(),Dt=D.Facet.define(),Tt=D.StateEffect.define({map:(n,e)=>n.map(e)}),Ht=D.StateEffect.define({map:(n,e)=>n.map(e)});class Wt{constructor(e,i="nearest",s="nearest",o=5,c=5){this.range=e,this.y=i,this.x=s,this.yMargin=o,this.xMargin=c}map(e){return e.empty?this:new Wt(this.range.map(e),this.y,this.x,this.yMargin,this.xMargin)}}const zt=D.StateEffect.define({map:(n,e)=>n.map(e)});function Kt(n,e,i){let s=n.facet(yt);s.length?s[0](e):window.onerror?window.onerror(String(e),i,void 0,void 0,e):i?console.error(i+":",e):console.error(e)}const Qt=D.Facet.define({combine:n=>n.length?n[0]:!0});class Pt{constructor(e,i){this.field=e,this.get=i}}class jt{from(e){return new Pt(this,e)}static define(){return new jt}}jt.decorations=jt.define(),jt.atomicRanges=jt.define(),jt.scrollMargins=jt.define();let ri=0;const Lt=D.Facet.define();class oe{constructor(e,i,s){this.id=e,this.create=i,this.fields=s,this.extension=Lt.of(this)}static define(e,i){let{eventHandlers:s,provide:o,decorations:c}=i||{},f=[];if(o)for(let y of Array.isArray(o)?o:[o])f.push(y);return s&&f.push(I.from(y=>({plugin:y,handlers:s}))),c&&f.push(jt.decorations.from(c)),new oe(ri++,e,f)}static fromClass(e,i){return oe.define(s=>new e(s),i)}}const I=jt.define();class J{constructor(e){this.spec=e,this.mustUpdate=null,this.value=null}takeField(e,i){if(this.spec)for(let{field:s,get:o}of this.spec.fields)s==e&&i.push(o(this.value))}update(e){if(this.value){if(this.mustUpdate){let i=this.mustUpdate;if(this.mustUpdate=null,this.value.update)try{this.value.update(i)}catch(s){if(Kt(i.state,s,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch(o){}this.deactivate()}}}else if(this.spec)try{this.value=this.spec.create(e)}catch(i){Kt(e.state,i,"CodeMirror plugin crashed"),this.deactivate()}return this}destroy(e){var i;if((i=this.value)===null||i===void 0?void 0:i.destroy)try{this.value.destroy()}catch(s){Kt(e.state,s,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}}const he=D.Facet.define(),de=D.Facet.define(),xe=D.Facet.define(),Ie=D.Facet.define();class Qe{constructor(e,i,s,o){this.fromA=e,this.toA=i,this.fromB=s,this.toB=o}join(e){return new Qe(Math.min(this.fromA,e.fromA),Math.max(this.toA,e.toA),Math.min(this.fromB,e.fromB),Math.max(this.toB,e.toB))}addToSet(e){let i=e.length,s=this;for(;i>0;i--){let o=e[i-1];if(!(o.fromA>s.toA)){if(o.toA<s.fromA)break;s=s.join(o),e.splice(i-1,1)}}return e.splice(i,0,s),e}static extendWithRanges(e,i){if(i.length==0)return e;let s=[];for(let o=0,c=0,f=0,y=0;;o++){let L=o==e.length?null:e[o],q=f-y,se=L?L.fromB:1e9;for(;c<i.length&&i[c]<se;){let fe=i[c],Fe=i[c+1],Ne=Math.max(y,fe),Ge=Math.min(se,Fe);if(Ne<=Ge&&new Qe(Ne+q,Ge+q,Ne,Ge).addToSet(s),Fe>se)break;c+=2}if(!L)return s;new Qe(L.fromA,L.toA,L.fromB,L.toB).addToSet(s),f=L.toA,y=L.toB}}}class tt{constructor(e,i,s=Ze){this.view=e,this.state=i,this.transactions=s,this.flags=0,this.startState=e.state,this.changes=D.ChangeSet.empty(this.startState.doc.length);for(let f of s)this.changes=this.changes.compose(f.changes);let o=[];this.changes.iterChangedRanges((f,y,L,q)=>o.push(new Qe(f,y,L,q))),this.changedRanges=o;let c=e.hasFocus;c!=e.inputState.notifiedFocused&&(e.inputState.notifiedFocused=c,this.flags|=1)}get viewportChanged(){return(this.flags&4)>0}get heightChanged(){return(this.flags&2)>0}get geometryChanged(){return this.docChanged||(this.flags&(8|2))>0}get focusChanged(){return(this.flags&1)>0}get docChanged(){return!this.changes.empty}get selectionSet(){return this.transactions.some(e=>e.selection)}get empty(){return this.flags==0&&this.transactions.length==0}}b.Direction=void 0,function(n){n[n.LTR=0]="LTR",n[n.RTL=1]="RTL"}(b.Direction||(b.Direction={}));const lt=b.Direction.LTR,dt=b.Direction.RTL;function kt(n){let e=[];for(let i=0;i<n.length;i++)e.push(1<<+n[i]);return e}const ai=kt("88888888888888888888888888888888888666888888787833333333337888888000000000000000000000000008888880000000000000000000000000088888888888888888888888888888888888887866668888088888663380888308888800000000000000000000000800000000000000000000000000000008"),_t=kt("4444448826627288999999999992222222222222222222222222222222222222222222222229999999999999999999994444444444644222822222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222999999949999999229989999223333333333"),si=Object.create(null),It=[];for(let n of["()","[]","{}"]){let e=n.charCodeAt(0),i=n.charCodeAt(1);si[e]=i,si[i]=-e}function ci(n){return n<=247?ai[n]:1424<=n&&n<=1524?2:1536<=n&&n<=1785?_t[n-1536]:1774<=n&&n<=2220?4:8192<=n&&n<=8203||n==8204?256:1}const fi=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/;class bt{constructor(e,i,s){this.from=e,this.to=i,this.level=s}get dir(){return this.level%2?dt:lt}side(e,i){return this.dir==i==e?this.to:this.from}static find(e,i,s,o){let c=-1;for(let f=0;f<e.length;f++){let y=e[f];if(y.from<=i&&y.to>=i){if(y.level==s)return f;(c<0||(o!=0?o<0?y.from<i:y.to>i:e[c].level>y.level))&&(c=f)}}if(c<0)throw new RangeError("Index out of range");return c}}const wt=[];function Zt(n,e){let i=n.length,s=e==lt?1:2,o=e==lt?2:1;if(!n||s==1&&!fi.test(n))return Ft(i);for(let f=0,y=s,L=s;f<i;f++){let q=ci(n.charCodeAt(f));q==512?q=y:q==8&&L==4&&(q=16),wt[f]=q==4?2:q,q&7&&(L=q),y=q}for(let f=0,y=s,L=s;f<i;f++){let q=wt[f];if(q==128)f<i-1&&y==wt[f+1]&&y&24?q=wt[f]=y:wt[f]=256;else if(q==64){let se=f+1;for(;se<i&&wt[se]==64;)se++;let fe=f&&y==8||se<i&&wt[se]==8?L==1?1:8:256;for(let Fe=f;Fe<se;Fe++)wt[Fe]=fe;f=se-1}else q==8&&L==1&&(wt[f]=1);y=q,q&7&&(L=q)}for(let f=0,y=0,L=0,q,se,fe;f<i;f++)if(se=si[q=n.charCodeAt(f)])if(se<0){for(let Fe=y-3;Fe>=0;Fe-=3)if(It[Fe+1]==-se){let Ne=It[Fe+2],Ge=Ne&2?s:Ne&4?Ne&1?o:s:0;Ge&&(wt[f]=wt[It[Fe]]=Ge),y=Fe;break}}else{if(It.length==189)break;It[y++]=f,It[y++]=q,It[y++]=L}else if((fe=wt[f])==2||fe==1){let Fe=fe==s;L=Fe?0:1;for(let Ne=y-3;Ne>=0;Ne-=3){let Ge=It[Ne+2];if(Ge&2)break;if(Fe)It[Ne+2]|=2;else{if(Ge&4)break;It[Ne+2]|=4}}}for(let f=0;f<i;f++)if(wt[f]==256){let y=f+1;for(;y<i&&wt[y]==256;)y++;let L=(f?wt[f-1]:s)==1,q=(y<i?wt[y]:s)==1,se=L==q?L?1:2:s;for(let fe=f;fe<y;fe++)wt[fe]=se;f=y-1}let c=[];if(s==1)for(let f=0;f<i;){let y=f,L=wt[f++]!=1;for(;f<i&&L==(wt[f]!=1);)f++;if(L)for(let q=f;q>y;){let se=q,fe=wt[--q]!=2;for(;q>y&&fe==(wt[q-1]!=2);)q--;c.push(new bt(q,se,fe?2:1))}else c.push(new bt(y,f,0))}else for(let f=0;f<i;){let y=f,L=wt[f++]==2;for(;f<i&&L==(wt[f]==2);)f++;c.push(new bt(y,f,L?1:2))}return c}function Ft(n){return[new bt(0,n,0)]}let P="";function ce(n,e,i,s,o){var c;let f=s.head-n.from,y=-1;if(f==0){if(!o||!n.length)return null;e[0].level!=i&&(f=e[0].side(!1,i),y=0)}else if(f==n.length){if(o)return null;let Fe=e[e.length-1];Fe.level!=i&&(f=Fe.side(!0,i),y=e.length-1)}y<0&&(y=bt.find(e,f,(c=s.bidiLevel)!==null&&c!==void 0?c:-1,s.assoc));let L=e[y];f==L.side(o,i)&&(L=e[y+=o?1:-1],f=L.side(!o,i));let q=o==(L.dir==i),se=we.findClusterBreak(n.text,f,q);if(P=n.text.slice(Math.min(f,se),Math.max(f,se)),se!=L.side(o,i))return D.EditorSelection.cursor(se+n.from,q?-1:1,L.level);let fe=y==(o?e.length-1:0)?null:e[y+(o?1:-1)];return!fe&&L.level!=i?D.EditorSelection.cursor(o?n.to:n.from,o?-1:1,i):fe&&fe.level<L.level?D.EditorSelection.cursor(fe.side(!o,i)+n.from,o?1:-1,fe.level):D.EditorSelection.cursor(se+n.from,o?-1:1,L.level)}class Ce{constructor(e,i){this.points=e,this.view=i,this.text="",this.lineBreak=i.state.lineBreak}readRange(e,i){if(!e)return this;let s=e.parentNode;for(let o=e;;){this.findPointBefore(s,o),this.readNode(o);let c=o.nextSibling;if(c==i)break;let f=w.get(o),y=w.get(c);(f&&y?f.breakAfter:(f?f.breakAfter:Le(o))||Le(c)&&(o.nodeName!="BR"||o.cmIgnore))&&(this.text+=this.lineBreak),o=c}return this.findPointBefore(s,i),this}readTextNode(e){var i,s;let o=e.nodeValue;return/^\u200b/.test(o)&&((i=e.previousSibling)===null||i===void 0?void 0:i.contentEditable)=="false"&&(o=o.slice(1)),/\u200b$/.test(o)&&((s=e.nextSibling)===null||s===void 0?void 0:s.contentEditable)=="false"&&(o=o.slice(0,o.length-1)),o}readNode(e){if(e.cmIgnore)return;let i=w.get(e),s=i&&i.overrideDOMText,o;s!=null?o=s.sliceString(0,void 0,this.lineBreak):e.nodeType==3?o=this.readTextNode(e):e.nodeName=="BR"?o=e.nextSibling?this.lineBreak:"":e.nodeType==1&&this.readRange(e.firstChild,null),o!=null&&(this.findPointIn(e,o.length),this.text+=o,S.chrome&&this.view.inputState.lastKeyCode==13&&!e.nextSibling&&/\n\n$/.test(this.text)&&(this.text=this.text.slice(0,-1)))}findPointBefore(e,i){for(let s of this.points)s.node==e&&e.childNodes[s.offset]==i&&(s.pos=this.text.length)}findPointIn(e,i){for(let s of this.points)s.node==e&&(s.pos=this.text.length+Math.min(s.offset,i))}}function Le(n){return n.nodeType==1&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(n.nodeName)}class Ye{constructor(e,i){this.node=e,this.offset=i,this.pos=-1}}class Be extends w{constructor(e){super();this.view=e,this.compositionDeco=p.none,this.decorations=[],this.pluginDecorationLength=0,this.minWidth=0,this.minWidthFrom=0,this.minWidthTo=0,this.impreciseAnchor=null,this.impreciseHead=null,this.forceSelection=!1,this.lastUpdate=Date.now(),this.setDOM(e.contentDOM),this.children=[new N],this.children[0].setParent(this),this.updateDeco(),this.updateInner([new Qe(0,0,0,e.state.doc.length)],0)}get root(){return this.view.root}get editorView(){return this.view}get length(){return this.view.state.doc.length}update(e){let i=e.changedRanges;this.minWidth>0&&i.length&&(i.every(({fromA:f,toA:y})=>y<this.minWidthFrom||f>this.minWidthTo)?(this.minWidthFrom=e.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=e.changes.mapPos(this.minWidthTo,1)):this.minWidth=this.minWidthFrom=this.minWidthTo=0),this.view.inputState.composing<0?this.compositionDeco=p.none:(e.transactions.length||this.dirty)&&(this.compositionDeco=xt(this.view,e.changes)),(S.ie||S.chrome)&&!this.compositionDeco.size&&e&&e.state.doc.lines!=e.startState.doc.lines&&(this.forceSelection=!0);let s=this.decorations,o=this.updateDeco(),c=_i(s,o,e.changes);return i=Qe.extendWithRanges(i,c),this.dirty==0&&i.length==0?!1:(this.updateInner(i,e.startState.doc.length),e.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(e,i){this.view.viewState.mustMeasureContent=!0,this.updateChildren(e,i);let{observer:s}=this.view;s.ignore(()=>{this.dom.style.height=this.view.viewState.contentHeight+"px",this.dom.style.minWidth=this.minWidth?this.minWidth+"px":"";let c=S.chrome||S.ios?{node:s.selectionRange.focusNode,written:!1}:void 0;this.sync(c),this.dirty=0,c&&(c.written||s.selectionRange.focusNode!=c.node)&&(this.forceSelection=!0),this.dom.style.height=""});let o=[];if(this.view.viewport.from||this.view.viewport.to<this.view.state.doc.length)for(let c of this.children)c instanceof $&&c.widget instanceof st&&o.push(c.dom);s.updateGaps(o)}updateChildren(e,i){let s=this.childCursor(i);for(let o=e.length-1;;o--){let c=o>=0?e[o]:null;if(!c)break;let{fromA:f,toA:y,fromB:L,toB:q}=c,{content:se,breakAtStart:fe,openStart:Fe,openEnd:Ne}=ee.build(this.view.state.doc,L,q,this.decorations,this.pluginDecorationLength),{i:Ge,off:rt}=s.findPos(y,1),{i:ht,off:ct}=s.findPos(f,-1);_(this,ht,ct,Ge,rt,se,fe,Fe,Ne)}}updateSelection(e=!1,i=!1){if(e&&this.view.observer.readSelectionRange(),!(i||this.mayControlSelection())||S.ios&&this.view.inputState.rapidCompositionStart)return;let s=this.forceSelection;this.forceSelection=!1;let o=this.view.state.selection.main,c=this.domAtPos(o.anchor),f=o.empty?c:this.domAtPos(o.head);if(S.gecko&&o.empty&&$e(c)){let L=document.createTextNode("");this.view.observer.ignore(()=>c.node.insertBefore(L,c.node.childNodes[c.offset]||null)),c=f=new g(L,0),s=!0}let y=this.view.observer.selectionRange;(s||!y.focusNode||!ve(c.node,c.offset,y.anchorNode,y.anchorOffset)||!ve(f.node,f.offset,y.focusNode,y.focusOffset))&&(this.view.observer.ignore(()=>{S.android&&S.chrome&&this.dom.contains(y.focusNode)&&On(y.focusNode,this.dom)&&(this.dom.blur(),this.dom.focus({preventScroll:!0}));let L=Xe(this.root);if(o.empty){if(S.gecko){let q=Pi(c.node,c.offset);if(q&&q!=(1|2)){let se=ei(c.node,c.offset,q==1?1:-1);se&&(c=new g(se,q==1?0:se.nodeValue.length))}}L.collapse(c.node,c.offset),o.bidiLevel!=null&&y.cursorBidiLevel!=null&&(y.cursorBidiLevel=o.bidiLevel)}else if(L.extend)L.collapse(c.node,c.offset),L.extend(f.node,f.offset);else{let q=document.createRange();o.anchor>o.head&&([c,f]=[f,c]),q.setEnd(f.node,f.offset),q.setStart(c.node,c.offset),L.removeAllRanges(),L.addRange(q)}}),this.view.observer.setSelectionRange(c,f)),this.impreciseAnchor=c.precise?null:new g(y.anchorNode,y.anchorOffset),this.impreciseHead=f.precise?null:new g(y.focusNode,y.focusOffset)}enforceCursorAssoc(){if(this.compositionDeco.size)return;let e=this.view.state.selection.main,i=Xe(this.root);if(!e.empty||!e.assoc||!i.modify)return;let s=N.find(this,e.head);if(!s)return;let o=s.posAtStart;if(e.head==o||e.head==o+s.length)return;let c=this.coordsAt(e.head,-1),f=this.coordsAt(e.head,1);if(!c||!f||c.bottom>f.top)return;let y=this.domAtPos(e.head+e.assoc);i.collapse(y.node,y.offset),i.modify("move",e.assoc<0?"forward":"backward","lineboundary")}mayControlSelection(){return this.view.state.facet(Qt)?this.root.activeElement==this.dom:Oe(this.dom,this.view.observer.selectionRange)}nearest(e){for(let i=e;i;){let s=w.get(i);if(s&&s.rootView==this)return s;i=i.parentNode}return null}posFromDOM(e,i){let s=this.nearest(e);if(!s)throw new RangeError("Trying to find position for a DOM position outside of the document");return s.localPosFromDOM(e,i)+s.posAtStart}domAtPos(e){let{i,off:s}=this.childCursor().findPos(e,-1);for(;i<this.children.length-1;){let o=this.children[i];if(s<o.length||o instanceof N)break;i++,s=0}return this.children[i].domAtPos(s)}coordsAt(e,i){for(let s=this.length,o=this.children.length-1;;o--){let c=this.children[o],f=s-c.breakAfter-c.length;if(e>f||e==f&&c.type!=b.BlockType.WidgetBefore&&c.type!=b.BlockType.WidgetAfter&&(!o||i==2||this.children[o-1].breakAfter||this.children[o-1].type==b.BlockType.WidgetBefore&&i>-2))return c.coordsAt(e-f,i);s=f}}measureVisibleLineHeights(){let e=[],{from:i,to:s}=this.view.viewState.viewport,o=this.view.contentDOM.clientWidth,c=o>Math.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,f=-1;for(let y=0,L=0;L<this.children.length;L++){let q=this.children[L],se=y+q.length;if(se>s)break;if(y>=i){let fe=q.dom.getBoundingClientRect();if(e.push(fe.height),c){let Fe=q.dom.lastChild,Ne=Fe?De(Fe):[];if(Ne.length){let Ge=Ne[Ne.length-1],rt=this.view.textDirection==b.Direction.LTR?Ge.right-fe.left:fe.right-Ge.left;rt>f&&(f=rt,this.minWidth=o,this.minWidthFrom=y,this.minWidthTo=se)}}}y=se+q.breakAfter}return e}measureTextSize(){for(let o of this.children)if(o instanceof N){let c=o.measureTextSize();if(c)return c}let e=document.createElement("div"),i,s;return e.className="cm-line",e.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore(()=>{this.dom.appendChild(e);let o=De(e.firstChild)[0];i=e.getBoundingClientRect().height,s=o?o.width/27:7,e.remove()}),{lineHeight:i,charWidth:s}}childCursor(e=this.length){let i=this.children.length;return i&&(e-=this.children[--i].length),new z(this.children,e,i)}computeBlockGapDeco(){let e=[],i=this.view.viewState;for(let s=0,o=0;;o++){let c=o==i.viewports.length?null:i.viewports[o],f=c?c.from-1:this.length;if(f>s){let y=i.lineBlockAt(f).bottom-i.lineBlockAt(s).top;e.push(p.replace({widget:new st(y),block:!0,inclusive:!0}).range(s,f))}if(!c)break;s=c.to+1}return p.set(e)}updateDeco(){let e=this.view.pluginField(jt.decorations);return this.pluginDecorationLength=e.length,this.decorations=[...e,...this.view.state.facet(xe),this.compositionDeco,this.computeBlockGapDeco(),this.view.viewState.lineGapDeco]}scrollIntoView(e){let{range:i}=e,s=this.coordsAt(i.head,i.empty?i.assoc:i.head>i.anchor?-1:1),o;if(!s)return;!i.empty&&(o=this.coordsAt(i.anchor,i.anchor>i.head?-1:1))&&(s={left:Math.min(s.left,o.left),top:Math.min(s.top,o.top),right:Math.max(s.right,o.right),bottom:Math.max(s.bottom,o.bottom)});let c=0,f=0,y=0,L=0;for(let se of this.view.pluginField(jt.scrollMargins))if(se){let{left:fe,right:Fe,top:Ne,bottom:Ge}=se;fe!=null&&(c=Math.max(c,fe)),Fe!=null&&(f=Math.max(f,Fe)),Ne!=null&&(y=Math.max(y,Ne)),Ge!=null&&(L=Math.max(L,Ge))}let q={left:s.left-c,top:s.top-y,right:s.right+f,bottom:s.bottom+L};ke(this.view.scrollDOM,q,i.head<i.anchor?-1:1,e.x,e.y,e.xMargin,e.yMargin,this.view.textDirection==b.Direction.LTR)}}function $e(n){return n.node.nodeType==1&&n.node.firstChild&&(n.offset==0||n.node.childNodes[n.offset-1].contentEditable=="false")&&(n.offset==n.node.childNodes.length||n.node.childNodes[n.offset].contentEditable=="false")}class st extends ne{constructor(e){super();this.height=e}toDOM(){let e=document.createElement("div");return this.updateDOM(e),e}eq(e){return e.height==this.height}updateDOM(e){return e.style.height=this.height+"px",!0}get estimatedHeight(){return this.height}}function gt(n){let e=n.observer.selectionRange,i=e.focusNode&&ei(e.focusNode,e.focusOffset,0);if(!i)return null;let s=n.docView.nearest(i);if(!s)return null;if(s instanceof N){let o=i;for(;o.parentNode!=s.dom;)o=o.parentNode;let c=o.previousSibling;for(;c&&!w.get(c);)c=c.previousSibling;let f=c?w.get(c).posAtEnd:s.posAtStart;return{from:f,to:f,node:o,text:i}}else{for(;;){let{parent:c}=s;if(!c)return null;if(c instanceof N)break;s=c}let o=s.posAtStart;return{from:o,to:o+s.length,node:s.dom,text:i}}}function xt(n,e){let i=gt(n);if(!i)return p.none;let{from:s,to:o,node:c,text:f}=i,y=e.mapPos(s,1),L=Math.max(y,e.mapPos(o,-1)),{state:q}=n,se=c.nodeType==3?c.nodeValue:new Ce([],n).readRange(c.firstChild,null).text;if(L-y<se.length)if(q.sliceDoc(y,Math.min(q.doc.length,y+se.length))==se)L=y+se.length;else if(q.sliceDoc(Math.max(0,L-se.length),L)==se)y=L-se.length;else return p.none;else if(q.sliceDoc(y,L)!=se)return p.none;return p.set(p.replace({widget:new Jt(c,f)}).range(y,L))}class Jt extends ne{constructor(e,i){super();this.top=e,this.text=i}eq(e){return this.top==e.top&&this.text==e.text}toDOM(){return this.top}ignoreEvent(){return!1}get customView(){return v}}function ei(n,e,i){for(;;){if(n.nodeType==3)return n;if(n.nodeType==1&&e>0&&i<=0)n=n.childNodes[e-1],e=He(n);else if(n.nodeType==1&&e<n.childNodes.length&&i>=0)n=n.childNodes[e],e=0;else return null}}function Pi(n,e){return n.nodeType!=1?0:(e&&n.childNodes[e-1].contentEditable=="false"?1:0)|(e<n.childNodes.length&&n.childNodes[e].contentEditable=="false"?2:0)}class Si{constructor(){this.changes=[]}compareRange(e,i){A(e,i,this.changes)}comparePoint(e,i){A(e,i,this.changes)}}function _i(n,e,i){let s=new Si;return ye.RangeSet.compare(n,e,i,s),s.changes}function On(n,e){for(let i=n;i&&i!=e;i=i.assignedSlot||i.parentNode)if(i.nodeType==1&&i.contentEditable=="false")return!0;return!1}function Bn(n,e,i=1){let s=n.charCategorizer(e),o=n.doc.lineAt(e),c=e-o.from;if(o.length==0)return D.EditorSelection.cursor(e);c==0?i=1:c==o.length&&(i=-1);let f=c,y=c;i<0?f=we.findClusterBreak(o.text,c,!1):y=we.findClusterBreak(o.text,c);let L=s(o.text.slice(f,y));for(;f>0;){let q=we.findClusterBreak(o.text,f,!1);if(s(o.text.slice(q,f))!=L)break;f=q}for(;y<o.length;){let q=we.findClusterBreak(o.text,y);if(s(o.text.slice(y,q))!=L)break;y=q}return D.EditorSelection.range(f+o.from,y+o.from)}function Ji(n,e){return e.left>n?e.left-n:Math.max(0,n-e.right)}function Pn(n,e){return e.top>n?e.top-n:Math.max(0,n-e.bottom)}function Li(n,e){return n.top<e.bottom-1&&n.bottom>e.top+1}function Yi(n,e){return e<n.top?{top:e,left:n.left,right:n.right,bottom:n.bottom}:n}function Ln(n,e){return e>n.bottom?{top:n.top,left:n.left,right:n.right,bottom:e}:n}function Xi(n,e,i){let s,o,c,f,y,L,q,se;for(let Ne=n.firstChild;Ne;Ne=Ne.nextSibling){let Ge=De(Ne);for(let rt=0;rt<Ge.length;rt++){let ht=Ge[rt];o&&Li(o,ht)&&(ht=Yi(Ln(ht,o.bottom),o.top));let ct=Ji(e,ht),Nt=Pn(i,ht);if(ct==0&&Nt==0)return Ne.nodeType==3?Qi(Ne,e,i):Xi(Ne,e,i);(!s||f>Nt||f==Nt&&c>ct)&&(s=Ne,o=ht,c=ct,f=Nt),ct==0?i>ht.bottom&&(!q||q.bottom<ht.bottom)?(y=Ne,q=ht):i<ht.top&&(!se||se.top>ht.top)&&(L=Ne,se=ht):q&&Li(q,ht)?q=Ln(q,ht.bottom):se&&Li(se,ht)&&(se=Yi(se,ht.top))}}if(q&&q.bottom>=i?(s=y,o=q):se&&se.top<=i&&(s=L,o=se),!s)return{node:n,offset:0};let fe=Math.max(o.left,Math.min(o.right,e));if(s.nodeType==3)return Qi(s,fe,i);if(!c&&s.contentEditable=="true")return Xi(s,fe,i);let Fe=Array.prototype.indexOf.call(n.childNodes,s)+(e>=(o.left+o.right)/2?1:0);return{node:n,offset:Fe}}function Qi(n,e,i){let s=n.nodeValue.length,o=-1,c=1e9,f=0;for(let y=0;y<s;y++){let L=W(n,y,y+1).getClientRects();for(let q=0;q<L.length;q++){let se=L[q];if(se.top==se.bottom)continue;f||(f=e-se.left);let fe=(se.top>i?se.top-i:i-se.bottom)-1;if(se.left-1<=e&&se.right+1>=e&&fe<c){let Fe=e>=(se.left+se.right)/2,Ne=Fe;if((S.chrome||S.gecko)&&W(n,y).getBoundingClientRect().left==se.right&&(Ne=!Fe),fe<=0)return{node:n,offset:y+(Ne?1:0)};o=y+(Ne?1:0),c=fe}}}return{node:n,offset:o>-1?o:f>0?n.nodeValue.length:0}}function Rn(n,{x:e,y:i},s,o=-1){var c;let f=n.contentDOM.getBoundingClientRect(),y=f.top+n.viewState.paddingTop,L,{docHeight:q}=n.viewState,se=i-y;if(se<0)return 0;if(se>q)return n.state.doc.length;for(let ct=n.defaultLineHeight/2,Nt=!1;L=n.elementAtHeight(se),L.type!=b.BlockType.Text;)for(;se=o>0?L.bottom+ct:L.top-ct,!(se>=0&&se<=q);){if(Nt)return s?null:0;Nt=!0,o=-o}i=y+se;let fe=L.from;if(fe<n.viewport.from)return n.viewport.from==0?0:s?null:Nn(n,f,L,e,i);if(fe>n.viewport.to)return n.viewport.to==n.state.doc.length?n.state.doc.length:s?null:Nn(n,f,L,e,i);let Fe=n.dom.ownerDocument,Ne=n.root.elementFromPoint?n.root:Fe,Ge=Ne.elementFromPoint(e,i);Ge&&!n.contentDOM.contains(Ge)&&(Ge=null),Ge||(e=Math.max(f.left+1,Math.min(f.right-1,e)),Ge=Ne.elementFromPoint(e,i),Ge&&!n.contentDOM.contains(Ge)&&(Ge=null));let rt,ht=-1;if(Ge&&((c=n.docView.nearest(Ge))===null||c===void 0?void 0:c.isEditable)!=!1){if(Fe.caretPositionFromPoint){let ct=Fe.caretPositionFromPoint(e,i);ct&&({offsetNode:rt,offset:ht}=ct)}else if(Fe.caretRangeFromPoint){let ct=Fe.caretRangeFromPoint(e,i);ct&&({startContainer:rt,startOffset:ht}=ct,S.safari&&$i(rt,ht,e)&&(rt=void 0))}}if(!rt||!n.docView.dom.contains(rt)){let ct=N.find(n.docView,fe);if(!ct)return se>L.top+L.height/2?L.to:L.from;({node:rt,offset:ht}=Xi(ct.dom,e,i))}return n.docView.posFromDOM(rt,ht)}function Nn(n,e,i,s,o){let c=Math.round((s-e.left)*n.defaultCharacterWidth);n.lineWrapping&&i.height>n.defaultLineHeight*1.5&&(c+=Math.floor((o-i.top)/n.defaultLineHeight)*n.viewState.heightOracle.lineLength);let f=n.state.sliceDoc(i.from,i.to);return i.from+we.findColumn(f,c,n.state.tabSize)}function $i(n,e,i){let s;if(n.nodeType!=3||e!=(s=n.nodeValue.length))return!1;for(let o=n.nextSibling;o;o=o.nextSibling)if(o.nodeType!=1||o.nodeName!="BR")return!1;return W(n,s-1,s).getBoundingClientRect().left>i}function Cr(n,e,i,s){let o=n.state.doc.lineAt(e.head),c=!s||!n.lineWrapping?null:n.coordsAtPos(e.assoc<0&&e.head>o.from?e.head-1:e.head);if(c){let L=n.dom.getBoundingClientRect(),q=n.posAtCoords({x:i==(n.textDirection==b.Direction.LTR)?L.right-1:L.left+1,y:(c.top+c.bottom)/2});if(q!=null)return D.EditorSelection.cursor(q,i?-1:1)}let f=N.find(n.docView,e.head),y=f?i?f.posAtEnd:f.posAtStart:i?o.to:o.from;return D.EditorSelection.cursor(y,i?-1:1)}function Zi(n,e,i,s){let o=n.state.doc.lineAt(e.head),c=n.bidiSpans(o);for(let f=e,y=null;;){let L=ce(o,c,n.textDirection,f,i),q=P;if(!L){if(o.number==(i?n.state.doc.lines:1))return f;q=` 2 + `,o=n.state.doc.line(o.number+(i?1:-1)),c=n.bidiSpans(o),L=D.EditorSelection.cursor(i?o.from:o.to)}if(y){if(!y(q))return f}else{if(!s)return L;y=s(q)}f=L}}function In(n,e,i){let s=n.state.charCategorizer(e),o=s(i);return c=>{let f=s(c);return o==D.CharCategory.Space&&(o=f),o==f}}function Ar(n,e,i,s){let o=e.head,c=i?1:-1;if(o==(i?n.state.doc.length:0))return D.EditorSelection.cursor(o,e.assoc);let f=e.goalColumn,y,L=n.contentDOM.getBoundingClientRect(),q=n.coordsAtPos(o),se=n.documentTop;if(q)f==null&&(f=q.left-L.left),y=c<0?q.top:q.bottom;else{let Ne=n.viewState.lineBlockAt(o-se);f==null&&(f=Math.min(L.right-L.left,n.defaultCharacterWidth*(o-Ne.from))),y=(c<0?Ne.top:Ne.bottom)+se}let fe=L.left+f,Fe=s??n.defaultLineHeight>>1;for(let Ne=0;;Ne+=10){let Ge=y+(Fe+Ne)*c,rt=Rn(n,{x:fe,y:Ge},!1,c);if(Ge<L.top||Ge>L.bottom||(c<0?rt<o:rt>o))return D.EditorSelection.cursor(rt,e.assoc,void 0,f)}}function en(n,e,i){let s=n.pluginField(jt.atomicRanges);for(;;){let o=!1;for(let c of s)c.between(i.from-1,i.from+1,(f,y,L)=>{i.from>f&&i.from<y&&(i=e.from>i.from?D.EditorSelection.cursor(f,1):D.EditorSelection.cursor(y,-1),o=!0)});if(!o)return i}}class Mr{constructor(e){this.lastKeyCode=0,this.lastKeyTime=0,this.pendingIOSKey=void 0,this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastEscPress=0,this.lastContextMenu=0,this.scrollHandlers=[],this.registeredEvents=[],this.customHandlers=[],this.composing=-1,this.compositionFirstChange=null,this.compositionEndedAt=0,this.rapidCompositionStart=!1,this.mouseSelection=null;for(let i in Rt){let s=Rt[i];e.contentDOM.addEventListener(i,o=>{i=="keydown"&&this.keydown(e,o)||!nn(e,o)||this.ignoreDuringComposition(o)||(this.mustFlushObserver(o)&&e.observer.forceFlush(),this.runCustomHandlers(i,e,o)?o.preventDefault():s(e,o))}),this.registeredEvents.push(i)}this.notifiedFocused=e.hasFocus,this.ensureHandlers(e),S.safari&&e.contentDOM.addEventListener("input",()=>null)}setSelectionOrigin(e){this.lastSelectionOrigin=e,this.lastSelectionTime=Date.now()}ensureHandlers(e){let i=this.customHandlers=e.pluginField(I);for(let s of i)for(let o in s.handlers)this.registeredEvents.indexOf(o)<0&&o!="scroll"&&(this.registeredEvents.push(o),e.contentDOM.addEventListener(o,c=>{!nn(e,c)||this.runCustomHandlers(o,e,c)&&c.preventDefault()}))}runCustomHandlers(e,i,s){for(let o of this.customHandlers){let c=o.handlers[e];if(c)try{if(c.call(o.plugin,s,i)||s.defaultPrevented)return!0}catch(f){Kt(i.state,f)}}return!1}runScrollHandlers(e,i){for(let s of this.customHandlers){let o=s.handlers.scroll;if(o)try{o.call(s.plugin,i,e)}catch(c){Kt(e.state,c)}}}keydown(e,i){if(this.lastKeyCode=i.keyCode,this.lastKeyTime=Date.now(),this.screenKeyEvent(e,i))return!0;if(S.android&&S.chrome&&!i.synthetic&&(i.keyCode==13||i.keyCode==8))return e.observer.delayAndroidKey(i.key,i.keyCode),!0;let s;return S.ios&&(s=Fn.find(o=>o.keyCode==i.keyCode))&&!(i.ctrlKey||i.altKey||i.metaKey)&&!i.synthetic?(this.pendingIOSKey=s,setTimeout(()=>this.flushIOSKey(e),250),!0):!1}flushIOSKey(e){let i=this.pendingIOSKey;return i?(this.pendingIOSKey=void 0,Q(e.contentDOM,i.key,i.keyCode)):!1}ignoreDuringComposition(e){return/^key/.test(e.type)?this.composing>0?!0:S.safari&&Date.now()-this.compositionEndedAt<500?(this.compositionEndedAt=0,!0):!1:!1}screenKeyEvent(e,i){let s=i.keyCode==9&&Date.now()<this.lastEscPress+2e3;return i.keyCode==27?this.lastEscPress=Date.now():tn.indexOf(i.keyCode)<0&&(this.lastEscPress=0),s}mustFlushObserver(e){return e.type=="keydown"&&e.keyCode!=229||e.type=="compositionend"&&!S.ios}startMouseSelection(e){this.mouseSelection&&this.mouseSelection.destroy(),this.mouseSelection=e}update(e){this.mouseSelection&&this.mouseSelection.update(e),e.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}}const Fn=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],tn=[16,17,18,20,91,92,224,225];class Vt{constructor(e,i,s,o){this.view=e,this.style=s,this.mustSelect=o,this.lastEvent=i;let c=e.contentDOM.ownerDocument;c.addEventListener("mousemove",this.move=this.move.bind(this)),c.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=i.shiftKey,this.multiple=e.state.facet(D.EditorState.allowMultipleSelections)&&Vn(e,i),this.dragMove=Dr(e,i),this.dragging=Hn(e,i)&&ki(i)==1?null:!1,this.dragging===!1&&(i.preventDefault(),this.select(i))}move(e){if(e.buttons==0)return this.destroy();this.dragging===!1&&this.select(this.lastEvent=e)}up(e){this.dragging==null&&this.select(this.lastEvent),this.dragging||e.preventDefault(),this.destroy()}destroy(){let e=this.view.contentDOM.ownerDocument;e.removeEventListener("mousemove",this.move),e.removeEventListener("mouseup",this.up),this.view.inputState.mouseSelection=null}select(e){let i=this.style.get(e,this.extend,this.multiple);(this.mustSelect||!i.eq(this.view.state.selection)||i.main.assoc!=this.view.state.selection.main.assoc)&&this.view.dispatch({selection:i,userEvent:"select.pointer",scrollIntoView:!0}),this.mustSelect=!1}update(e){e.docChanged&&this.dragging&&(this.dragging=this.dragging.map(e.changes)),this.style.update(e)&&setTimeout(()=>this.select(this.lastEvent),20)}}function Vn(n,e){let i=n.state.facet(it);return i.length?i[0](e):S.mac?e.metaKey:e.ctrlKey}function Dr(n,e){let i=n.state.facet(ut);return i.length?i[0](e):S.mac?!e.altKey:!e.ctrlKey}function Hn(n,e){let{main:i}=n.state.selection;if(i.empty)return!1;let s=Xe(n.root);if(s.rangeCount==0)return!0;let o=s.getRangeAt(0).getClientRects();for(let c=0;c<o.length;c++){let f=o[c];if(f.left<=e.clientX&&f.right>=e.clientX&&f.top<=e.clientY&&f.bottom>=e.clientY)return!0}return!1}function nn(n,e){if(!e.bubbles)return!0;if(e.defaultPrevented)return!1;for(let i=e.target,s;i!=n.contentDOM;i=i.parentNode)if(!i||i.nodeType==11||(s=w.get(i))&&s.ignoreEvent(e))return!1;return!0}const Rt=Object.create(null),rn=S.ie&&S.ie_version<15||S.ios&&S.webkit_version<604;function Wn(n){let e=n.dom.parentNode;if(!e)return;let i=e.appendChild(document.createElement("textarea"));i.style.cssText="position: fixed; left: -10000px; top: 10px",i.focus(),setTimeout(()=>{n.focus(),i.remove(),zn(n,i.value)},50)}function zn(n,e){let{state:i}=n,s,o=1,c=i.toText(e),f=c.lines==i.selection.ranges.length;if(ti!=null&&i.selection.ranges.every(L=>L.empty)&&ti==c.toString()){let L=-1;s=i.changeByRange(q=>{let se=i.doc.lineAt(q.from);if(se.from==L)return{range:q};L=se.from;let fe=i.toText((f?c.line(o++).text:e)+i.lineBreak);return{changes:{from:se.from,insert:fe},range:D.EditorSelection.cursor(q.from+fe.length)}})}else f?s=i.changeByRange(L=>{let q=c.line(o++);return{changes:{from:L.from,to:L.to,insert:q.text},range:D.EditorSelection.cursor(L.from+q.length)}}):s=i.replaceSelection(c);n.dispatch(s,{userEvent:"input.paste",scrollIntoView:!0})}Rt.keydown=(n,e)=>{n.inputState.setSelectionOrigin("select")};let sn=0;Rt.touchstart=(n,e)=>{sn=Date.now(),n.inputState.setSelectionOrigin("select.pointer")},Rt.touchmove=n=>{n.inputState.setSelectionOrigin("select.pointer")},Rt.mousedown=(n,e)=>{if(n.observer.flush(),sn>Date.now()-2e3&&ki(e)==1)return;let i=null;for(let s of n.state.facet(Mt))if(i=s(n,e),i)break;if(!i&&e.button==0&&(i=_n(n,e)),i){let s=n.root.activeElement!=n.contentDOM;s&&n.observer.ignore(()=>j(n.contentDOM)),n.inputState.startMouseSelection(new Vt(n,e,i,s))}};function jn(n,e,i,s){if(s==1)return D.EditorSelection.cursor(e,i);if(s==2)return Bn(n.state,e,i);{let o=N.find(n.docView,e),c=n.state.doc.lineAt(o?o.posAtEnd:e),f=o?o.posAtStart:c.from,y=o?o.posAtEnd:c.to;return y<n.state.doc.length&&y==c.to&&y++,D.EditorSelection.range(f,y)}}let on=(n,e)=>n>=e.top&&n<=e.bottom,ln=(n,e,i)=>on(e,i)&&n>=i.left&&n<=i.right;function Kn(n,e,i,s){let o=N.find(n.docView,e);if(!o)return 1;let c=e-o.posAtStart;if(c==0)return 1;if(c==o.length)return-1;let f=o.coordsAt(c,-1);if(f&&ln(i,s,f))return-1;let y=o.coordsAt(c,1);return y&&ln(i,s,y)?1:f&&on(s,f)?-1:1}function Un(n,e){let i=n.posAtCoords({x:e.clientX,y:e.clientY},!1);return{pos:i,bias:Kn(n,i,e.clientX,e.clientY)}}const Tr=S.ie&&S.ie_version<=11;let an=null,qn=0,Gn=0;function ki(n){if(!Tr)return n.detail;let e=an,i=Gn;return an=n,Gn=Date.now(),qn=!e||i>Date.now()-400&&Math.abs(e.clientX-n.clientX)<2&&Math.abs(e.clientY-n.clientY)<2?(qn+1)%3:1}function _n(n,e){let i=Un(n,e),s=ki(e),o=n.state.selection,c=i,f=e;return{update(y){y.docChanged&&(i&&(i.pos=y.changes.mapPos(i.pos)),o=o.map(y.changes),f=null)},get(y,L,q){let se;if(f&&y.clientX==f.clientX&&y.clientY==f.clientY?se=c:(se=c=Un(n,y),f=y),!se||!i)return o;let fe=jn(n,se.pos,se.bias,s);if(i.pos!=se.pos&&!L){let Fe=jn(n,i.pos,i.bias,s),Ne=Math.min(Fe.from,fe.from),Ge=Math.max(Fe.to,fe.to);fe=Ne<fe.from?D.EditorSelection.range(Ne,Ge):D.EditorSelection.range(Ge,Ne)}return L?o.replaceRange(o.main.extend(fe.from,fe.to)):q?o.addRange(fe):D.EditorSelection.create([fe])}}}Rt.dragstart=(n,e)=>{let{selection:{main:i}}=n.state,{mouseSelection:s}=n.inputState;s&&(s.dragging=i),e.dataTransfer&&(e.dataTransfer.setData("Text",n.state.sliceDoc(i.from,i.to)),e.dataTransfer.effectAllowed="copyMove")};function hn(n,e,i,s){if(!i)return;let o=n.posAtCoords({x:e.clientX,y:e.clientY},!1);e.preventDefault();let{mouseSelection:c}=n.inputState,f=s&&c&&c.dragging&&c.dragMove?{from:c.dragging.from,to:c.dragging.to}:null,y={from:o,insert:i},L=n.state.changes(f?[f,y]:y);n.focus(),n.dispatch({changes:L,selection:{anchor:L.mapPos(o,-1),head:L.mapPos(o,1)},userEvent:f?"move.drop":"input.drop"})}Rt.drop=(n,e)=>{if(!e.dataTransfer)return;if(n.state.readOnly)return e.preventDefault();let i=e.dataTransfer.files;if(i&&i.length){e.preventDefault();let s=Array(i.length),o=0,c=()=>{++o==i.length&&hn(n,e,s.filter(f=>f!=null).join(n.state.lineBreak),!1)};for(let f=0;f<i.length;f++){let y=new FileReader;y.onerror=c,y.onload=()=>{/[\x00-\x08\x0e-\x1f]{2}/.test(y.result)||(s[f]=y.result),c()},y.readAsText(i[f])}}else hn(n,e,e.dataTransfer.getData("Text"),!0)},Rt.paste=(n,e)=>{if(n.state.readOnly)return e.preventDefault();n.observer.flush();let i=rn?null:e.clipboardData;i?(zn(n,i.getData("text/plain")),e.preventDefault()):Wn(n)};function Jn(n,e){let i=n.dom.parentNode;if(!i)return;let s=i.appendChild(document.createElement("textarea"));s.style.cssText="position: fixed; left: -10000px; top: 10px",s.value=e,s.focus(),s.selectionEnd=e.length,s.selectionStart=0,setTimeout(()=>{s.remove(),n.focus()},50)}function Yn(n){let e=[],i=[],s=!1;for(let o of n.selection.ranges)o.empty||(e.push(n.sliceDoc(o.from,o.to)),i.push(o));if(!e.length){let o=-1;for(let{from:c}of n.selection.ranges){let f=n.doc.lineAt(c);f.number>o&&(e.push(f.text),i.push({from:f.from,to:Math.min(n.doc.length,f.to+1)})),o=f.number}s=!0}return{text:e.join(n.lineBreak),ranges:i,linewise:s}}let ti=null;Rt.copy=Rt.cut=(n,e)=>{let{text:i,ranges:s,linewise:o}=Yn(n.state);if(!i&&!o)return;ti=o?i:null;let c=rn?null:e.clipboardData;c?(e.preventDefault(),c.clearData(),c.setData("text/plain",i)):Jn(n,i),e.type=="cut"&&!n.state.readOnly&&n.dispatch({changes:s,scrollIntoView:!0,userEvent:"delete.cut"})},Rt.focus=Rt.blur=n=>{setTimeout(()=>{n.hasFocus!=n.inputState.notifiedFocused&&n.update([])},10)},Rt.beforeprint=n=>{n.viewState.printing=!0,n.requestMeasure(),setTimeout(()=>{n.viewState.printing=!1,n.requestMeasure()},2e3)};function vt(n,e){if(n.docView.compositionDeco.size){n.inputState.rapidCompositionStart=e;try{n.update([])}finally{n.inputState.rapidCompositionStart=!1}}}Rt.compositionstart=Rt.compositionupdate=n=>{n.inputState.compositionFirstChange==null&&(n.inputState.compositionFirstChange=!0),n.inputState.composing<0&&(n.inputState.composing=0,n.docView.compositionDeco.size&&(n.observer.flush(),vt(n,!0)))},Rt.compositionend=n=>{n.inputState.composing=-1,n.inputState.compositionEndedAt=Date.now(),n.inputState.compositionFirstChange=null,setTimeout(()=>{n.inputState.composing<0&&vt(n,!1)},50)},Rt.contextmenu=n=>{n.inputState.lastContextMenu=Date.now()},Rt.beforeinput=(n,e)=>{var i;let s;if(S.chrome&&S.android&&(s=Fn.find(o=>o.inputType==e.inputType))&&(n.observer.delayAndroidKey(s.key,s.keyCode),s.key=="Backspace"||s.key=="Delete")){let o=((i=window.visualViewport)===null||i===void 0?void 0:i.height)||0;setTimeout(()=>{var c;(((c=window.visualViewport)===null||c===void 0?void 0:c.height)||0)>o+10&&n.hasFocus&&(n.contentDOM.blur(),n.focus())},100)}};const Xn=["pre-wrap","normal","pre-line","break-spaces"];class qt{constructor(){this.doc=we.Text.empty,this.lineWrapping=!1,this.direction=b.Direction.LTR,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.lineLength=30,this.heightChanged=!1}heightForGap(e,i){let s=this.doc.lineAt(i).number-this.doc.lineAt(e).number+1;return this.lineWrapping&&(s+=Math.ceil((i-e-s*this.lineLength*.5)/this.lineLength)),this.lineHeight*s}heightForLine(e){return this.lineWrapping?(1+Math.max(0,Math.ceil((e-this.lineLength)/(this.lineLength-5))))*this.lineHeight:this.lineHeight}setDoc(e){return this.doc=e,this}mustRefreshForStyle(e,i){return Xn.indexOf(e)>-1!=this.lineWrapping||this.direction!=i}mustRefreshForHeights(e){let i=!1;for(let s=0;s<e.length;s++){let o=e[s];o<0?s++:this.heightSamples[Math.floor(o*10)]||(i=!0,this.heightSamples[Math.floor(o*10)]=!0)}return i}refresh(e,i,s,o,c,f){let y=Xn.indexOf(e)>-1,L=Math.round(s)!=Math.round(this.lineHeight)||this.lineWrapping!=y||this.direction!=i;if(this.lineWrapping=y,this.direction=i,this.lineHeight=s,this.charWidth=o,this.lineLength=c,L){this.heightSamples={};for(let q=0;q<f.length;q++){let se=f[q];se<0?q++:this.heightSamples[Math.floor(se*10)]=!0}}return L}}class cn{constructor(e,i){this.from=e,this.heights=i,this.index=0}get more(){return this.index<this.heights.length}}class Et{constructor(e,i,s,o,c){this.from=e,this.length=i,this.top=s,this.height=o,this.type=c}get to(){return this.from+this.length}get bottom(){return this.top+this.height}join(e){let i=(Array.isArray(this.type)?this.type:[this]).concat(Array.isArray(e.type)?e.type:[e]);return new Et(this.from,this.length+e.length,this.top,this.height+e.height,i)}moveY(e){return e?new Et(this.from,this.length,this.top+e,this.height,Array.isArray(this.type)?this.type.map(i=>i.moveY(e)):this.type):this}}var ft;(function(n){n[n.ByPos=0]="ByPos",n[n.ByHeight=1]="ByHeight",n[n.ByPosNoHeight=2]="ByPosNoHeight"})(ft||(ft={}));const Ri=.001;class Gt{constructor(e,i,s=2){this.length=e,this.height=i,this.flags=s}get outdated(){return(this.flags&2)>0}set outdated(e){this.flags=(e?2:0)|this.flags&~2}setHeight(e,i){this.height!=i&&(Math.abs(this.height-i)>Ri&&(e.heightChanged=!0),this.height=i)}replace(e,i,s){return Gt.of(s)}decomposeLeft(e,i){i.push(this)}decomposeRight(e,i){i.push(this)}applyChanges(e,i,s,o){let c=this;for(let f=o.length-1;f>=0;f--){let{fromA:y,toA:L,fromB:q,toB:se}=o[f],fe=c.lineAt(y,ft.ByPosNoHeight,i,0,0),Fe=fe.to>=L?fe:c.lineAt(L,ft.ByPosNoHeight,i,0,0);for(se+=Fe.to-L,L=Fe.to;f>0&&fe.from<=o[f-1].toA;)y=o[f-1].fromA,q=o[f-1].fromB,f--,y<fe.from&&(fe=c.lineAt(y,ft.ByPosNoHeight,i,0,0));q+=fe.from-y,y=fe.from;let Ne=un.build(s,e,q,se);c=c.replace(y,L,Ne)}return c.updateHeight(s,0)}static empty(){return new Yt(0,0)}static of(e){if(e.length==1)return e[0];let i=0,s=e.length,o=0,c=0;for(;;)if(i==s)if(o>c*2){let y=e[i-1];y.break?e.splice(--i,1,y.left,null,y.right):e.splice(--i,1,y.left,y.right),s+=1+y.break,o-=y.size}else if(c>o*2){let y=e[s];y.break?e.splice(s,1,y.left,null,y.right):e.splice(s,1,y.left,y.right),s+=2+y.break,c-=y.size}else break;else if(o<c){let y=e[i++];y&&(o+=y.size)}else{let y=e[--s];y&&(c+=y.size)}let f=0;return e[i-1]==null?(f=1,i--):e[i]==null&&(f=1,s++),new Er(Gt.of(e.slice(0,i)),f,Gt.of(e.slice(s)))}}Gt.prototype.size=1;class Qn extends Gt{constructor(e,i,s){super(e,i);this.type=s}blockAt(e,i,s,o){return new Et(o,this.length,s,this.height,this.type)}lineAt(e,i,s,o,c){return this.blockAt(0,s,o,c)}forEachLine(e,i,s,o,c,f){f(this.blockAt(0,s,o,c))}updateHeight(e,i=0,s=!1,o){return o&&o.from<=i&&o.more&&this.setHeight(e,o.heights[o.index++]),this.outdated=!1,this}toString(){return`block(${this.length})`}}class Yt extends Qn{constructor(e,i){super(e,i,b.BlockType.Text);this.collapsed=0,this.widgetHeight=0}replace(e,i,s){let o=s[0];return s.length==1&&(o instanceof Yt||o instanceof Ut&&o.flags&4)&&Math.abs(this.length-o.length)<10?(o instanceof Ut?o=new Yt(o.length,this.height):o.height=this.height,this.outdated||(o.outdated=!1),o):Gt.of(s)}updateHeight(e,i=0,s=!1,o){return o&&o.from<=i&&o.more?this.setHeight(e,o.heights[o.index++]):(s||this.outdated)&&this.setHeight(e,Math.max(this.widgetHeight,e.heightForLine(this.length-this.collapsed))),this.outdated=!1,this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:""}${this.widgetHeight?":"+this.widgetHeight:""})`}}class Ut extends Gt{constructor(e){super(e,0)}lines(e,i){let s=e.lineAt(i).number,o=e.lineAt(i+this.length).number;return{firstLine:s,lastLine:o,lineHeight:this.height/(o-s+1)}}blockAt(e,i,s,o){let{firstLine:c,lastLine:f,lineHeight:y}=this.lines(i,o),L=Math.max(0,Math.min(f-c,Math.floor((e-s)/y))),{from:q,length:se}=i.line(c+L);return new Et(q,se,s+y*L,y,b.BlockType.Text)}lineAt(e,i,s,o,c){if(i==ft.ByHeight)return this.blockAt(e,s,o,c);if(i==ft.ByPosNoHeight){let{from:fe,to:Fe}=s.lineAt(e);return new Et(fe,Fe-fe,0,0,b.BlockType.Text)}let{firstLine:f,lineHeight:y}=this.lines(s,c),{from:L,length:q,number:se}=s.lineAt(e);return new Et(L,q,o+y*(se-f),y,b.BlockType.Text)}forEachLine(e,i,s,o,c,f){let{firstLine:y,lineHeight:L}=this.lines(s,c);for(let q=Math.max(e,c),se=Math.min(c+this.length,i);q<=se;){let fe=s.lineAt(q);q==e&&(o+=L*(fe.number-y)),f(new Et(fe.from,fe.length,o,L,b.BlockType.Text)),o+=L,q=fe.to+1}}replace(e,i,s){let o=this.length-i;if(o>0){let c=s[s.length-1];c instanceof Ut?s[s.length-1]=new Ut(c.length+o):s.push(null,new Ut(o-1))}if(e>0){let c=s[0];c instanceof Ut?s[0]=new Ut(e+c.length):s.unshift(new Ut(e-1),null)}return Gt.of(s)}decomposeLeft(e,i){i.push(new Ut(e-1),null)}decomposeRight(e,i){i.push(null,new Ut(this.length-e-1))}updateHeight(e,i=0,s=!1,o){let c=i+this.length;if(o&&o.from<=i+this.length&&o.more){let f=[],y=Math.max(i,o.from),L=-1,q=e.heightChanged;for(o.from>i&&f.push(new Ut(o.from-i-1).updateHeight(e,i));y<=c&&o.more;){let fe=e.doc.lineAt(y).length;f.length&&f.push(null);let Fe=o.heights[o.index++];L==-1?L=Fe:Math.abs(Fe-L)>=Ri&&(L=-2);let Ne=new Yt(fe,Fe);Ne.outdated=!1,f.push(Ne),y+=fe+1}y<=c&&f.push(null,new Ut(c-y).updateHeight(e,y));let se=Gt.of(f);return e.heightChanged=q||L<0||Math.abs(se.height-this.height)>=Ri||Math.abs(L-this.lines(e.doc,i).lineHeight)>=Ri,se}else(s||this.outdated)&&(this.setHeight(e,e.heightForGap(i,i+this.length)),this.outdated=!1);return this}toString(){return`gap(${this.length})`}}class Er extends Gt{constructor(e,i,s){super(e.length+i+s.length,e.height+s.height,i|(e.outdated||s.outdated?2:0));this.left=e,this.right=s,this.size=e.size+s.size}get break(){return this.flags&1}blockAt(e,i,s,o){let c=s+this.left.height;return e<c?this.left.blockAt(e,i,s,o):this.right.blockAt(e,i,c,o+this.left.length+this.break)}lineAt(e,i,s,o,c){let f=o+this.left.height,y=c+this.left.length+this.break,L=i==ft.ByHeight?e<f:e<y,q=L?this.left.lineAt(e,i,s,o,c):this.right.lineAt(e,i,s,f,y);if(this.break||(L?q.to<y:q.from>y))return q;let se=i==ft.ByPosNoHeight?ft.ByPosNoHeight:ft.ByPos;return L?q.join(this.right.lineAt(y,se,s,f,y)):this.left.lineAt(y,se,s,o,c).join(q)}forEachLine(e,i,s,o,c,f){let y=o+this.left.height,L=c+this.left.length+this.break;if(this.break)e<L&&this.left.forEachLine(e,i,s,o,c,f),i>=L&&this.right.forEachLine(e,i,s,y,L,f);else{let q=this.lineAt(L,ft.ByPos,s,o,c);e<q.from&&this.left.forEachLine(e,q.from-1,s,o,c,f),q.to>=e&&q.from<=i&&f(q),i>q.to&&this.right.forEachLine(q.to+1,i,s,y,L,f)}}replace(e,i,s){let o=this.left.length+this.break;if(i<o)return this.balanced(this.left.replace(e,i,s),this.right);if(e>this.left.length)return this.balanced(this.left,this.right.replace(e-o,i-o,s));let c=[];e>0&&this.decomposeLeft(e,c);let f=c.length;for(let y of s)c.push(y);if(e>0&&$n(c,f-1),i<this.length){let y=c.length;this.decomposeRight(i,c),$n(c,y)}return Gt.of(c)}decomposeLeft(e,i){let s=this.left.length;if(e<=s)return this.left.decomposeLeft(e,i);i.push(this.left),this.break&&(s++,e>=s&&i.push(null)),e>s&&this.right.decomposeLeft(e-s,i)}decomposeRight(e,i){let s=this.left.length,o=s+this.break;if(e>=o)return this.right.decomposeRight(e-o,i);e<s&&this.left.decomposeRight(e,i),this.break&&e<o&&i.push(null),i.push(this.right)}balanced(e,i){return e.size>2*i.size||i.size>2*e.size?Gt.of(this.break?[e,null,i]:[e,i]):(this.left=e,this.right=i,this.height=e.height+i.height,this.outdated=e.outdated||i.outdated,this.size=e.size+i.size,this.length=e.length+this.break+i.length,this)}updateHeight(e,i=0,s=!1,o){let{left:c,right:f}=this,y=i+c.length+this.break,L=null;return o&&o.from<=i+c.length&&o.more?L=c=c.updateHeight(e,i,s,o):c.updateHeight(e,i,s),o&&o.from<=y+f.length&&o.more?L=f=f.updateHeight(e,y,s,o):f.updateHeight(e,y,s),L?this.balanced(c,f):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}}function $n(n,e){let i,s;n[e]==null&&(i=n[e-1])instanceof Ut&&(s=n[e+1])instanceof Ut&&n.splice(e-1,3,new Ut(i.length+1+s.length))}const fn=5;class un{constructor(e,i){this.pos=e,this.oracle=i,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=e}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(e,i){if(this.lineStart>-1){let s=Math.min(i,this.lineEnd),o=this.nodes[this.nodes.length-1];o instanceof Yt?o.length+=s-this.pos:(s>this.pos||!this.isCovered)&&this.nodes.push(new Yt(s-this.pos,-1)),this.writtenTo=s,i>s&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=i}point(e,i,s){if(e<i||s.heightRelevant){let o=s.widget?s.widget.estimatedHeight:0;o<0&&(o=this.oracle.lineHeight);let c=i-e;s.block?this.addBlock(new Qn(c,o,s.type)):(c||o>=fn)&&this.addLineDeco(o,c)}else i>e&&this.span(e,i);this.lineEnd>-1&&this.lineEnd<this.pos&&(this.lineEnd=this.oracle.doc.lineAt(this.pos).to)}enterLine(){if(this.lineStart>-1)return;let{from:e,to:i}=this.oracle.doc.lineAt(this.pos);this.lineStart=e,this.lineEnd=i,this.writtenTo<e&&((this.writtenTo<e-1||this.nodes[this.nodes.length-1]==null)&&this.nodes.push(this.blankContent(this.writtenTo,e-1)),this.nodes.push(null)),this.pos>e&&this.nodes.push(new Yt(this.pos-e,-1)),this.writtenTo=this.pos}blankContent(e,i){let s=new Ut(i-e);return this.oracle.doc.lineAt(e).to==i&&(s.flags|=4),s}ensureLine(){this.enterLine();let e=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(e instanceof Yt)return e;let i=new Yt(0,-1);return this.nodes.push(i),i}addBlock(e){this.enterLine(),e.type==b.BlockType.WidgetAfter&&!this.isCovered&&this.ensureLine(),this.nodes.push(e),this.writtenTo=this.pos=this.pos+e.length,e.type!=b.BlockType.WidgetBefore&&(this.covering=e)}addLineDeco(e,i){let s=this.ensureLine();s.length+=i,s.collapsed+=i,s.widgetHeight=Math.max(s.widgetHeight,e),this.writtenTo=this.pos=this.pos+i}finish(e){let i=this.nodes.length==0?null:this.nodes[this.nodes.length-1];this.lineStart>-1&&!(i instanceof Yt)&&!this.isCovered?this.nodes.push(new Yt(0,-1)):(this.writtenTo<this.pos||i==null)&&this.nodes.push(this.blankContent(this.writtenTo,this.pos));let s=e;for(let o of this.nodes)o instanceof Yt&&o.updateHeight(this.oracle,s),s+=o?o.length:1;return this.nodes}static build(e,i,s,o){let c=new un(s,e);return ye.RangeSet.spans(i,s,o,c,0),c.finish(s)}}function vi(n,e,i){let s=new Zn;return ye.RangeSet.compare(n,e,i,s,0),s.changes}class Zn{constructor(){this.changes=[]}compareRange(){}comparePoint(e,i,s,o){(e<i||s&&s.heightRelevant||o&&o.heightRelevant)&&A(e,i,this.changes,5)}}function Ni(n,e){let i=n.getBoundingClientRect(),s=Math.max(0,i.left),o=Math.min(innerWidth,i.right),c=Math.max(0,i.top),f=Math.min(innerHeight,i.bottom),y=n.ownerDocument.body;for(let L=n.parentNode;L&&L!=y;)if(L.nodeType==1){let q=L,se=window.getComputedStyle(q);if((q.scrollHeight>q.clientHeight||q.scrollWidth>q.clientWidth)&&se.overflow!="visible"){let fe=q.getBoundingClientRect();s=Math.max(s,fe.left),o=Math.min(o,fe.right),c=Math.max(c,fe.top),f=Math.min(f,fe.bottom)}L=se.position=="absolute"||se.position=="fixed"?q.offsetParent:q.parentNode}else if(L.nodeType==11)L=L.host;else break;return{left:s-i.left,right:Math.max(s,o)-i.left,top:c-(i.top+e),bottom:Math.max(c,f)-(i.top+e)}}class dn{constructor(e,i,s){this.from=e,this.to=i,this.size=s}static same(e,i){if(e.length!=i.length)return!1;for(let s=0;s<e.length;s++){let o=e[s],c=i[s];if(o.from!=c.from||o.to!=c.to||o.size!=c.size)return!1}return!0}draw(e){return p.replace({widget:new Ii(this.size,e)}).range(this.from,this.to)}}class Ii extends ne{constructor(e,i){super();this.size=e,this.vertical=i}eq(e){return e.size==this.size&&e.vertical==this.vertical}toDOM(){let e=document.createElement("div");return this.vertical?e.style.height=this.size+"px":(e.style.width=this.size+"px",e.style.height="2px",e.style.display="inline-block"),e}get estimatedHeight(){return this.vertical?this.size:-1}}class gn{constructor(e){this.state=e,this.pixelViewport={left:0,right:window.innerWidth,top:0,bottom:0},this.inView=!0,this.paddingTop=0,this.paddingBottom=0,this.contentDOMWidth=0,this.contentDOMHeight=0,this.editorHeight=0,this.editorWidth=0,this.heightOracle=new qt,this.scaler=mn,this.scrollTarget=null,this.printing=!1,this.mustMeasureContent=!0,this.visibleRanges=[],this.mustEnforceCursorAssoc=!1,this.heightMap=Gt.empty().applyChanges(e.facet(xe),we.Text.empty,this.heightOracle.setDoc(e.doc),[new Qe(0,0,0,e.doc.length)]),this.viewport=this.getViewport(0,null),this.updateViewportLines(),this.updateForViewport(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=p.set(this.lineGaps.map(i=>i.draw(!1))),this.computeVisibleRanges()}updateForViewport(){let e=[this.viewport],{main:i}=this.state.selection;for(let s=0;s<=1;s++){let o=s?i.head:i.anchor;if(!e.some(({from:c,to:f})=>o>=c&&o<=f)){let{from:c,to:f}=this.lineBlockAt(o);e.push(new xi(c,f))}}this.viewports=e.sort((s,o)=>s.from-o.from),this.scaler=this.heightMap.height<=7e6?mn:new pn(this.heightOracle.doc,this.heightMap,this.viewports)}updateViewportLines(){this.viewportLines=[],this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.state.doc,0,0,e=>{this.viewportLines.push(this.scaler.scale==1?e:di(e,this.scaler))})}update(e,i=null){let s=this.state;this.state=e.state;let o=this.state.facet(xe),c=e.changedRanges,f=Qe.extendWithRanges(c,vi(e.startState.facet(xe),o,e?e.changes:D.ChangeSet.empty(this.state.doc.length))),y=this.heightMap.height;this.heightMap=this.heightMap.applyChanges(o,s.doc,this.heightOracle.setDoc(this.state.doc),f),this.heightMap.height!=y&&(e.flags|=2);let L=f.length?this.mapViewport(this.viewport,e.changes):this.viewport;(i&&(i.range.head<L.from||i.range.head>L.to)||!this.viewportIsAppropriate(L))&&(L=this.getViewport(0,i));let q=!e.changes.empty||e.flags&2||L.from!=this.viewport.from||L.to!=this.viewport.to;this.viewport=L,this.updateForViewport(),q&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,e.changes))),e.flags|=this.computeVisibleRanges(),i&&(this.scrollTarget=i),!this.mustEnforceCursorAssoc&&e.selectionSet&&e.view.lineWrapping&&e.state.selection.main.empty&&e.state.selection.main.assoc&&(this.mustEnforceCursorAssoc=!0)}measure(e){let i=e.contentDOM,s=window.getComputedStyle(i),o=this.heightOracle,c=s.whiteSpace,f=s.direction=="rtl"?b.Direction.RTL:b.Direction.LTR,y=this.heightOracle.mustRefreshForStyle(c,f),L=y||this.mustMeasureContent||this.contentDOMHeight!=i.clientHeight,q=0,se=0;if(L){this.mustMeasureContent=!1,this.contentDOMHeight=i.clientHeight;let ct=parseInt(s.paddingTop)||0,Nt=parseInt(s.paddingBottom)||0;(this.paddingTop!=ct||this.paddingBottom!=Nt)&&(q|=8,this.paddingTop=ct,this.paddingBottom=Nt)}let fe=this.printing?{top:-1e8,bottom:1e8,left:-1e8,right:1e8}:Ni(i,this.paddingTop),Fe=fe.top-this.pixelViewport.top,Ne=fe.bottom-this.pixelViewport.bottom;this.pixelViewport=fe;let Ge=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(Ge!=this.inView&&(this.inView=Ge,Ge&&(L=!0)),!this.inView)return 0;let rt=i.clientWidth;if((this.contentDOMWidth!=rt||this.editorHeight!=e.scrollDOM.clientHeight||this.editorWidth!=e.scrollDOM.clientWidth)&&(this.contentDOMWidth=rt,this.editorHeight=e.scrollDOM.clientHeight,this.editorWidth=e.scrollDOM.clientWidth,q|=8),L){let ct=e.docView.measureVisibleLineHeights();if(o.mustRefreshForHeights(ct)&&(y=!0),y||o.lineWrapping&&Math.abs(rt-this.contentDOMWidth)>o.charWidth){let{lineHeight:Nt,charWidth:St}=e.docView.measureTextSize();y=o.refresh(c,f,Nt,St,rt/St,ct),y&&(e.docView.minWidth=0,q|=8)}Fe>0&&Ne>0?se=Math.max(Fe,Ne):Fe<0&&Ne<0&&(se=Math.min(Fe,Ne)),o.heightChanged=!1,this.heightMap=this.heightMap.updateHeight(o,0,y,new cn(this.viewport.from,ct)),o.heightChanged&&(q|=2)}let ht=!this.viewportIsAppropriate(this.viewport,se)||this.scrollTarget&&(this.scrollTarget.range.head<this.viewport.from||this.scrollTarget.range.head>this.viewport.to);return ht&&(this.viewport=this.getViewport(se,this.scrollTarget)),this.updateForViewport(),(q&2||ht)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(y?[]:this.lineGaps)),q|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,e.docView.enforceCursorAssoc()),q}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(e,i){let s=.5-Math.max(-.5,Math.min(.5,e/1e3/2)),o=this.heightMap,c=this.state.doc,{visibleTop:f,visibleBottom:y}=this,L=new xi(o.lineAt(f-s*1e3,ft.ByHeight,c,0,0).from,o.lineAt(y+(1-s)*1e3,ft.ByHeight,c,0,0).to);if(i){let{head:q}=i.range,se=this.editorHeight;if(q<L.from||q>L.to){let fe=o.lineAt(q,ft.ByPos,c,0,0),Fe;i.y=="center"?Fe=(fe.top+fe.bottom)/2-se/2:i.y=="start"||i.y=="nearest"&&q<L.from?Fe=fe.top:Fe=fe.bottom-se,L=new xi(o.lineAt(Fe-1e3/2,ft.ByHeight,c,0,0).from,o.lineAt(Fe+se+1e3/2,ft.ByHeight,c,0,0).to)}}return L}mapViewport(e,i){let s=i.mapPos(e.from,-1),o=i.mapPos(e.to,1);return new xi(this.heightMap.lineAt(s,ft.ByPos,this.state.doc,0,0).from,this.heightMap.lineAt(o,ft.ByPos,this.state.doc,0,0).to)}viewportIsAppropriate({from:e,to:i},s=0){if(!this.inView)return!0;let{top:o}=this.heightMap.lineAt(e,ft.ByPos,this.state.doc,0,0),{bottom:c}=this.heightMap.lineAt(i,ft.ByPos,this.state.doc,0,0),{visibleTop:f,visibleBottom:y}=this;return(e==0||o<=f-Math.max(10,Math.min(-s,250)))&&(i==this.state.doc.length||c>=y+Math.max(10,Math.min(s,250)))&&o>f-2*1e3&&c<y+2*1e3}mapLineGaps(e,i){if(!e.length||i.empty)return e;let s=[];for(let o of e)i.touchesRange(o.from,o.to)||s.push(new dn(i.mapPos(o.from),i.mapPos(o.to),o.size));return s}ensureLineGaps(e){let i=[];if(this.heightOracle.direction!=b.Direction.LTR)return i;for(let s of this.viewportLines){if(s.length<4e3)continue;let o=Or(s.from,s.to,this.state);if(o.total<4e3)continue;let c,f;if(this.heightOracle.lineWrapping){let q=2e3/this.heightOracle.lineLength*this.heightOracle.lineHeight;c=Ci(o,(this.visibleTop-s.top-q)/s.height),f=Ci(o,(this.visibleBottom-s.top+q)/s.height)}else{let q=o.total*this.heightOracle.charWidth,se=2e3*this.heightOracle.charWidth;c=Ci(o,(this.pixelViewport.left-se)/q),f=Ci(o,(this.pixelViewport.right+se)/q)}let y=[];c>s.from&&y.push({from:s.from,to:c}),f<s.to&&y.push({from:f,to:s.to});let L=this.state.selection.main;L.from>=s.from&&L.from<=s.to&&ui(y,L.from-10,L.from+10),!L.empty&&L.to>=s.from&&L.to<=s.to&&ui(y,L.to-10,L.to+10);for(let{from:q,to:se}of y)se-q>1e3&&i.push(tr(e,fe=>fe.from>=s.from&&fe.to<=s.to&&Math.abs(fe.from-q)<1e3&&Math.abs(fe.to-se)<1e3)||new dn(q,se,this.gapSize(s,q,se,o)))}return i}gapSize(e,i,s,o){let c=er(o,s)-er(o,i);return this.heightOracle.lineWrapping?e.height*c:o.total*this.heightOracle.charWidth*c}updateLineGaps(e){dn.same(e,this.lineGaps)||(this.lineGaps=e,this.lineGapDeco=p.set(e.map(i=>i.draw(this.heightOracle.lineWrapping))))}computeVisibleRanges(){let e=this.state.facet(xe);this.lineGaps.length&&(e=e.concat(this.lineGapDeco));let i=[];ye.RangeSet.spans(e,this.viewport.from,this.viewport.to,{span(o,c){i.push({from:o,to:c})},point(){}},20);let s=i.length!=this.visibleRanges.length||this.visibleRanges.some((o,c)=>o.from!=i[c].from||o.to!=i[c].to);return this.visibleRanges=i,s?4:0}lineBlockAt(e){return e>=this.viewport.from&&e<=this.viewport.to&&this.viewportLines.find(i=>i.from<=e&&i.to>=e)||di(this.heightMap.lineAt(e,ft.ByPos,this.state.doc,0,0),this.scaler)}lineBlockAtHeight(e){return di(this.heightMap.lineAt(this.scaler.fromDOM(e),ft.ByHeight,this.state.doc,0,0),this.scaler)}elementAtHeight(e){return di(this.heightMap.blockAt(this.scaler.fromDOM(e),this.state.doc,0,0),this.scaler)}get docHeight(){return this.scaler.toDOM(this.heightMap.height)}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom}}class xi{constructor(e,i){this.from=e,this.to=i}}function Or(n,e,i){let s=[],o=n,c=0;return ye.RangeSet.spans(i.facet(xe),n,e,{span(){},point(f,y){f>o&&(s.push({from:o,to:f}),c+=f-o),o=y}},20),o<e&&(s.push({from:o,to:e}),c+=e-o),{total:c,ranges:s}}function Ci({total:n,ranges:e},i){if(i<=0)return e[0].from;if(i>=1)return e[e.length-1].to;let s=Math.floor(n*i);for(let o=0;;o++){let{from:c,to:f}=e[o],y=f-c;if(s<=y)return c+s;s-=y}}function er(n,e){let i=0;for(let{from:s,to:o}of n.ranges){if(e<=o){i+=e-s;break}i+=o-s}return i/n.total}function ui(n,e,i){for(let s=0;s<n.length;s++){let o=n[s];if(o.from<i&&o.to>e){let c=[];o.from<e&&c.push({from:o.from,to:e}),o.to>i&&c.push({from:i,to:o.to}),n.splice(s,1,...c),s+=c.length-1}}}function tr(n,e){for(let i of n)if(e(i))return i}const mn={toDOM(n){return n},fromDOM(n){return n},scale:1};class pn{constructor(e,i,s){let o=0,c=0,f=0;this.viewports=s.map(({from:y,to:L})=>{let q=i.lineAt(y,ft.ByPos,e,0,0).top,se=i.lineAt(L,ft.ByPos,e,0,0).bottom;return o+=se-q,{from:y,to:L,top:q,bottom:se,domTop:0,domBottom:0}}),this.scale=(7e6-o)/(i.height-o);for(let y of this.viewports)y.domTop=f+(y.top-c)*this.scale,f=y.domBottom=y.domTop+(y.bottom-y.top),c=y.bottom}toDOM(e){for(let i=0,s=0,o=0;;i++){let c=i<this.viewports.length?this.viewports[i]:null;if(!c||e<c.top)return o+(e-s)*this.scale;if(e<=c.bottom)return c.domTop+(e-c.top);s=c.bottom,o=c.domBottom}}fromDOM(e){for(let i=0,s=0,o=0;;i++){let c=i<this.viewports.length?this.viewports[i]:null;if(!c||e<c.domTop)return s+(e-o)/this.scale;if(e<=c.domBottom)return c.top+(e-c.domTop);s=c.bottom,o=c.domBottom}}}function di(n,e){if(e.scale==1)return n;let i=e.toDOM(n.top),s=e.toDOM(n.bottom);return new Et(n.from,n.length,i,s-i,Array.isArray(n.type)?n.type.map(o=>di(o,e)):n.type)}const yn=D.Facet.define({combine:n=>n.join(" ")}),Fi=D.Facet.define({combine:n=>n.indexOf(!0)>-1}),Ai=re.StyleModule.newName(),ir=re.StyleModule.newName(),nr=re.StyleModule.newName(),Vi={"&light":"."+ir,"&dark":"."+nr};function bn(n,e,i){return new re.StyleModule(e,{finish(s){return/&/.test(s)?s.replace(/&\w*/,o=>{if(o=="&")return n;if(!i||!i[o])throw new RangeError(`Unsupported selector: ${o}`);return i[o]}):n+" "+s}})}const rr=bn("."+Ai,{"&.cm-editor":{position:"relative !important",boxSizing:"border-box","&.cm-focused":{outline:"1px dotted #212121"},display:"flex !important",flexDirection:"column"},".cm-scroller":{display:"flex !important",alignItems:"flex-start !important",fontFamily:"monospace",lineHeight:1.4,height:"100%",overflowX:"auto",position:"relative",zIndex:0},".cm-content":{margin:0,flexGrow:2,minHeight:"100%",display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",padding:"4px 0",outline:"none","&[contenteditable=true]":{WebkitUserModify:"read-write-plaintext-only"}},".cm-lineWrapping":{whiteSpace_fallback:"pre-wrap",whiteSpace:"break-spaces",wordBreak:"break-word",overflowWrap:"anywhere"},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 4px"},".cm-selectionLayer":{zIndex:-1,contain:"size style"},".cm-selectionBackground":{position:"absolute"},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{zIndex:100,contain:"size style",pointerEvents:"none"},"&.cm-focused .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{visibility:"hidden"},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{visibility:"hidden"},"100%":{}},".cm-cursor, .cm-dropCursor":{position:"absolute",borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none"},".cm-cursor":{display:"none"},"&dark .cm-cursor":{borderLeftColor:"#444"},"&.cm-focused .cm-cursor":{display:"block"},"&light .cm-activeLine":{backgroundColor:"#f3f9ff"},"&dark .cm-activeLine":{backgroundColor:"#223039"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-placeholder":{color:"#888",display:"inline-block",verticalAlign:"top"},".cm-button":{verticalAlign:"middle",color:"inherit",fontSize:"70%",padding:".2em 1em",borderRadius:"1px"},"&light .cm-button":{backgroundImage:"linear-gradient(#eff1f5, #d9d9df)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#b4b4b4, #d0d3d6)"}},"&dark .cm-button":{backgroundImage:"linear-gradient(#393939, #111)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#111, #333)"}},".cm-textfield":{verticalAlign:"middle",color:"inherit",fontSize:"70%",border:"1px solid silver",padding:".2em .5em"},"&light .cm-textfield":{backgroundColor:"white"},"&dark .cm-textfield":{border:"1px solid #555",backgroundColor:"inherit"}},Vi),Br={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},wn=S.ie&&S.ie_version<=11;class Pr{constructor(e,i,s){this.view=e,this.onChange=i,this.onScrollChanged=s,this.active=!1,this.selectionRange=new ae,this.selectionChanged=!1,this.delayedFlush=-1,this.resizeTimeout=-1,this.queue=[],this.delayedAndroidKey=null,this.scrollTargets=[],this.intersection=null,this.resize=null,this.intersecting=!1,this.gapIntersection=null,this.gaps=[],this.parentCheck=-1,this.dom=e.contentDOM,this.observer=new MutationObserver(o=>{for(let c of o)this.queue.push(c);(S.ie&&S.ie_version<=11||S.ios&&e.composing)&&o.some(c=>c.type=="childList"&&c.removedNodes.length||c.type=="characterData"&&c.oldValue.length>c.target.nodeValue.length)?this.flushSoon():this.flush()}),wn&&(this.onCharData=o=>{this.queue.push({target:o.target,type:"characterData",oldValue:o.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this),typeof ResizeObserver=="function"&&(this.resize=new ResizeObserver(()=>{this.view.docView.lastUpdate<Date.now()-75&&this.resizeTimeout<0&&(this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=-1,this.view.requestMeasure()},50))}),this.resize.observe(e.scrollDOM)),this.start(),this.onScroll=this.onScroll.bind(this),window.addEventListener("scroll",this.onScroll),typeof IntersectionObserver=="function"&&(this.intersection=new IntersectionObserver(o=>{this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),o.length>0&&o[o.length-1].intersectionRatio>0!=this.intersecting&&(this.intersecting=!this.intersecting,this.intersecting!=this.view.inView&&this.onScrollChanged(document.createEvent("Event")))},{}),this.intersection.observe(this.dom),this.gapIntersection=new IntersectionObserver(o=>{o.length>0&&o[o.length-1].intersectionRatio>0&&this.onScrollChanged(document.createEvent("Event"))},{})),this.listenForScroll(),this.readSelectionRange(),this.dom.ownerDocument.addEventListener("selectionchange",this.onSelectionChange)}onScroll(e){this.intersecting&&this.flush(!1),this.onScrollChanged(e)}updateGaps(e){if(this.gapIntersection&&(e.length!=this.gaps.length||this.gaps.some((i,s)=>i!=e[s]))){this.gapIntersection.disconnect();for(let i of e)this.gapIntersection.observe(i);this.gaps=e}}onSelectionChange(e){if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:i}=this,s=this.selectionRange;if(i.state.facet(Qt)?i.root.activeElement!=this.dom:!Oe(i.dom,s))return;let o=s.anchorNode&&i.docView.nearest(s.anchorNode);o&&o.ignoreEvent(e)||((S.ie&&S.ie_version<=11||S.android&&S.chrome)&&!i.state.selection.main.empty&&s.focusNode&&ve(s.focusNode,s.focusOffset,s.anchorNode,s.anchorOffset)?this.flushSoon():this.flush(!1))}readSelectionRange(){let{root:e}=this.view,i=Xe(e),s=S.safari&&e.nodeType==11&&We()==this.view.contentDOM&&or(this.view)||i;return this.selectionRange.eq(s)?!1:(this.selectionRange.setRange(s),this.selectionChanged=!0)}setSelectionRange(e,i){this.selectionRange.set(e.node,e.offset,i.node,i.offset),this.selectionChanged=!1}listenForScroll(){this.parentCheck=-1;let e=0,i=null;for(let s=this.dom;s;)if(s.nodeType==1)!i&&e<this.scrollTargets.length&&this.scrollTargets[e]==s?e++:i||(i=this.scrollTargets.slice(0,e)),i&&i.push(s),s=s.assignedSlot||s.parentNode;else if(s.nodeType==11)s=s.host;else break;if(e<this.scrollTargets.length&&!i&&(i=this.scrollTargets.slice(0,e)),i){for(let s of this.scrollTargets)s.removeEventListener("scroll",this.onScroll);for(let s of this.scrollTargets=i)s.addEventListener("scroll",this.onScroll)}}ignore(e){if(!this.active)return e();try{return this.stop(),e()}finally{this.start(),this.clear()}}start(){this.active||(this.observer.observe(this.dom,Br),wn&&this.dom.addEventListener("DOMCharacterDataModified",this.onCharData),this.active=!0)}stop(){!this.active||(this.active=!1,this.observer.disconnect(),wn&&this.dom.removeEventListener("DOMCharacterDataModified",this.onCharData))}clear(){this.observer.takeRecords(),this.queue.length=0,this.selectionChanged=!1}delayAndroidKey(e,i){this.delayedAndroidKey||requestAnimationFrame(()=>{let s=this.delayedAndroidKey;this.delayedAndroidKey=null;let o=this.view.state;Q(this.view.contentDOM,s.key,s.keyCode)?this.processRecords():this.flush(),this.view.state==o&&this.view.update([])}),(!this.delayedAndroidKey||e=="Enter")&&(this.delayedAndroidKey={key:e,keyCode:i})}flushSoon(){this.delayedFlush<0&&(this.delayedFlush=window.setTimeout(()=>{this.delayedFlush=-1,this.flush()},20))}forceFlush(){this.delayedFlush>=0&&(window.clearTimeout(this.delayedFlush),this.delayedFlush=-1,this.flush())}processRecords(){let e=this.queue;for(let c of this.observer.takeRecords())e.push(c);e.length&&(this.queue=[]);let i=-1,s=-1,o=!1;for(let c of e){let f=this.readMutation(c);!f||(f.typeOver&&(o=!0),i==-1?{from:i,to:s}=f:(i=Math.min(f.from,i),s=Math.max(f.to,s)))}return{from:i,to:s,typeOver:o}}flush(e=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return;e&&this.readSelectionRange();let{from:i,to:s,typeOver:o}=this.processRecords(),c=this.selectionChanged&&Oe(this.dom,this.selectionRange);if(i<0&&!c)return;this.selectionChanged=!1;let f=this.view.state;this.onChange(i,s,o),this.view.state==f&&this.view.update([])}readMutation(e){let i=this.view.docView.nearest(e.target);if(!i||i.ignoreMutation(e))return null;if(i.markDirty(e.type=="attributes"),e.type=="attributes"&&(i.dirty|=4),e.type=="childList"){let s=sr(i,e.previousSibling||e.target.previousSibling,-1),o=sr(i,e.nextSibling||e.target.nextSibling,1);return{from:s?i.posAfter(s):i.posAtStart,to:o?i.posBefore(o):i.posAtEnd,typeOver:!1}}else return e.type=="characterData"?{from:i.posAtStart,to:i.posAtEnd,typeOver:e.target.nodeValue==e.oldValue}:null}destroy(){var e,i,s;this.stop(),(e=this.intersection)===null||e===void 0||e.disconnect(),(i=this.gapIntersection)===null||i===void 0||i.disconnect(),(s=this.resize)===null||s===void 0||s.disconnect();for(let o of this.scrollTargets)o.removeEventListener("scroll",this.onScroll);window.removeEventListener("scroll",this.onScroll),this.dom.ownerDocument.removeEventListener("selectionchange",this.onSelectionChange),clearTimeout(this.parentCheck),clearTimeout(this.resizeTimeout)}}function sr(n,e,i){for(;e;){let s=w.get(e);if(s&&s.parent==n)return s;let o=e.parentNode;e=o!=n.dom?o:i>0?e.nextSibling:e.previousSibling}return null}function or(n){let e=null;function i(L){L.preventDefault(),L.stopImmediatePropagation(),e=L.getTargetRanges()[0]}if(n.contentDOM.addEventListener("beforeinput",i,!0),document.execCommand("indent"),n.contentDOM.removeEventListener("beforeinput",i,!0),!e)return null;let s=e.startContainer,o=e.startOffset,c=e.endContainer,f=e.endOffset,y=n.docView.domAtPos(n.state.selection.main.anchor);return ve(y.node,y.offset,c,f)&&([s,o,c,f]=[c,f,s,o]),{anchorNode:s,anchorOffset:o,focusNode:c,focusOffset:f}}function lr(n,e,i,s){let o,c,f=n.state.selection.main;if(e>-1){let y=n.docView.domBoundsAround(e,i,0);if(!y||n.state.readOnly)return;let{from:L,to:q}=y,se=n.docView.impreciseHead||n.docView.impreciseAnchor?[]:Rr(n),fe=new Ce(se,n);fe.readRange(y.startDOM,y.endDOM),c=Bt(se,L);let Fe=f.from,Ne=null;(n.inputState.lastKeyCode===8&&n.inputState.lastKeyTime>Date.now()-100||S.android&&fe.text.length<q-L)&&(Fe=f.to,Ne="end");let Ge=Lr(n.state.sliceDoc(L,q),fe.text,Fe-L,Ne);Ge&&(o={from:L+Ge.from,to:L+Ge.toA,insert:n.state.toText(fe.text.slice(Ge.from,Ge.toB))})}else if(n.hasFocus||!n.state.facet(Qt)){let y=n.observer.selectionRange,{impreciseHead:L,impreciseAnchor:q}=n.docView,se=L&&L.node==y.focusNode&&L.offset==y.focusOffset||!je(n.contentDOM,y.focusNode)?n.state.selection.main.head:n.docView.posFromDOM(y.focusNode,y.focusOffset),fe=q&&q.node==y.anchorNode&&q.offset==y.anchorOffset||!je(n.contentDOM,y.anchorNode)?n.state.selection.main.anchor:n.docView.posFromDOM(y.anchorNode,y.anchorOffset);(se!=f.head||fe!=f.anchor)&&(c=D.EditorSelection.single(fe,se))}if(!(!o&&!c)){if(!o&&s&&!f.empty&&c&&c.main.empty?o={from:f.from,to:f.to,insert:n.state.doc.slice(f.from,f.to)}:o&&o.from>=f.from&&o.to<=f.to&&(o.from!=f.from||o.to!=f.to)&&f.to-f.from-(o.to-o.from)<=4&&(o={from:f.from,to:f.to,insert:n.state.doc.slice(f.from,o.from).append(o.insert).append(n.state.doc.slice(o.to,f.to))}),o){let y=n.state;if(S.ios&&n.inputState.flushIOSKey(n)||S.android&&(o.from==f.from&&o.to==f.to&&o.insert.length==1&&o.insert.lines==2&&Q(n.contentDOM,"Enter",13)||o.from==f.from-1&&o.to==f.to&&o.insert.length==0&&Q(n.contentDOM,"Backspace",8)||o.from==f.from&&o.to==f.to+1&&o.insert.length==0&&Q(n.contentDOM,"Delete",46)))return;let L=o.insert.toString();if(n.state.facet(Dt).some(fe=>fe(n,o.from,o.to,L)))return;n.inputState.composing>=0&&n.inputState.composing++;let q;if(o.from>=f.from&&o.to<=f.to&&o.to-o.from>=(f.to-f.from)/3&&(!c||c.main.empty&&c.main.from==o.from+o.insert.length)&&n.inputState.composing<0){let fe=f.from<o.from?y.sliceDoc(f.from,o.from):"",Fe=f.to>o.to?y.sliceDoc(o.to,f.to):"";q=y.replaceSelection(n.state.toText(fe+o.insert.sliceString(0,void 0,n.state.lineBreak)+Fe))}else{let fe=y.changes(o),Fe=c&&!y.selection.main.eq(c.main)&&c.main.to<=fe.newLength?c.main:void 0;if(y.selection.ranges.length>1&&n.inputState.composing>=0&&o.to<=f.to&&o.to>=f.to-10){let Ne=n.state.sliceDoc(o.from,o.to),Ge=gt(n)||n.state.doc.lineAt(f.head),rt=f.to-o.to,ht=f.to-f.from;q=y.changeByRange(ct=>{if(ct.from==f.from&&ct.to==f.to)return{changes:fe,range:Fe||ct.map(fe)};let Nt=ct.to-rt,St=Nt-Ne.length;if(ct.to-ct.from!=ht||n.state.sliceDoc(St,Nt)!=Ne||Ge&&ct.to>=Ge.from&&ct.from<=Ge.to)return{range:ct};let Ct=y.changes({from:St,to:Nt,insert:o.insert}),At=ct.to-f.to;return{changes:Ct,range:Fe?D.EditorSelection.range(Math.max(0,Fe.anchor+At),Math.max(0,Fe.head+At)):ct.map(Ct)}})}else q={changes:fe,selection:Fe&&y.selection.replaceRange(Fe)}}let se="input.type";n.composing&&(se+=".compose",n.inputState.compositionFirstChange&&(se+=".start",n.inputState.compositionFirstChange=!1)),n.dispatch(q,{scrollIntoView:!0,userEvent:se})}else if(c&&!c.main.eq(f)){let y=!1,L="select";n.inputState.lastSelectionTime>Date.now()-50&&(n.inputState.lastSelectionOrigin=="select"&&(y=!0),L=n.inputState.lastSelectionOrigin),n.dispatch({selection:c,scrollIntoView:y,userEvent:L})}}}function Lr(n,e,i,s){let o=Math.min(n.length,e.length),c=0;for(;c<o&&n.charCodeAt(c)==e.charCodeAt(c);)c++;if(c==o&&n.length==e.length)return null;let f=n.length,y=e.length;for(;f>0&&y>0&&n.charCodeAt(f-1)==e.charCodeAt(y-1);)f--,y--;if(s=="end"){let L=Math.max(0,c-Math.min(f,y));i-=f+L-c}return f<c&&n.length<e.length?(c-=i<=c&&i>=f?c-i:0,y=c+(y-f),f=c):y<c&&(c-=i<=c&&i>=y?c-i:0,f=c+(f-y),y=c),{from:c,toA:f,toB:y}}function Rr(n){let e=[];if(n.root.activeElement!=n.contentDOM)return e;let{anchorNode:i,anchorOffset:s,focusNode:o,focusOffset:c}=n.observer.selectionRange;return i&&(e.push(new Ye(i,s)),(o!=i||c!=s)&&e.push(new Ye(o,c))),e}function Bt(n,e){if(n.length==0)return null;let i=n[0].pos,s=n.length==2?n[1].pos:i;return i>-1&&s>-1?D.EditorSelection.single(i+e,s+e):null}class Ot{constructor(e={}){this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM=document.createElement("div"),this.scrollDOM.tabIndex=-1,this.scrollDOM.className="cm-scroller",this.scrollDOM.appendChild(this.contentDOM),this.announceDOM=document.createElement("div"),this.announceDOM.style.cssText="position: absolute; top: -10000px",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM),this._dispatch=e.dispatch||(i=>this.update([i])),this.dispatch=this.dispatch.bind(this),this.root=e.root||R(e.parent)||document,this.viewState=new gn(e.state||D.EditorState.create()),this.plugins=this.state.facet(Lt).map(i=>new J(i));for(let i of this.plugins)i.update(this);this.observer=new Pr(this,(i,s,o)=>{lr(this,i,s,o)},i=>{this.inputState.runScrollHandlers(this,i),this.observer.intersecting&&this.measure()}),this.inputState=new Mr(this),this.docView=new Be(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,Nr(),this.requestMeasure(),e.parent&&e.parent.appendChild(this.dom)}get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return this.inputState.composing>0}dispatch(...e){this._dispatch(e.length==1&&e[0]instanceof D.Transaction?e[0]:this.state.update(...e))}update(e){if(this.updateState!=0)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let i=!1,s,o=this.state;for(let f of e){if(f.startState!=o)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");o=f.state}if(this.destroyed){this.viewState.state=o;return}if(o.facet(D.EditorState.phrases)!=this.state.facet(D.EditorState.phrases))return this.setState(o);s=new tt(this,o,e);let c=this.viewState.scrollTarget;try{this.updateState=2;for(let f of e){if(c&&(c=c.map(f.changes)),f.scrollIntoView){let{main:y}=f.state.selection;c=new Wt(y.empty?y:D.EditorSelection.cursor(y.head,y.head>y.anchor?-1:1))}for(let y of f.effects)y.is(Tt)?c=new Wt(y.value):y.is(Ht)?c=new Wt(y.value,"center"):y.is(zt)&&(c=y.value)}this.viewState.update(s,c),this.bidiCache=Hi.update(this.bidiCache,s.changes),s.empty||(this.updatePlugins(s),this.inputState.update(s)),i=this.docView.update(s),this.state.facet(Ie)!=this.styleModules&&this.mountStyles(),this.updateAttrs(),this.showAnnouncements(e),this.docView.updateSelection(i,e.some(f=>f.isUserEvent("select.pointer")))}finally{this.updateState=0}if((i||c||this.viewState.mustEnforceCursorAssoc)&&this.requestMeasure(),!s.empty)for(let f of this.state.facet(pt))f(s)}setState(e){if(this.updateState!=0)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed){this.viewState.state=e;return}this.updateState=2;let i=this.hasFocus;try{for(let s of this.plugins)s.destroy(this);this.viewState=new gn(e),this.plugins=e.facet(Lt).map(s=>new J(s)),this.pluginMap.clear();for(let s of this.plugins)s.update(this);this.docView=new Be(this),this.inputState.ensureHandlers(this),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}i&&this.focus(),this.requestMeasure()}updatePlugins(e){let i=e.startState.facet(Lt),s=e.state.facet(Lt);if(i!=s){let o=[];for(let c of s){let f=i.indexOf(c);if(f<0)o.push(new J(c));else{let y=this.plugins[f];y.mustUpdate=e,o.push(y)}}for(let c of this.plugins)c.mustUpdate!=e&&c.destroy(this);this.plugins=o,this.pluginMap.clear(),this.inputState.ensureHandlers(this)}else for(let o of this.plugins)o.mustUpdate=e;for(let o=0;o<this.plugins.length;o++)this.plugins[o].update(this)}measure(e=!0){if(this.destroyed)return;this.measureScheduled>-1&&cancelAnimationFrame(this.measureScheduled),this.measureScheduled=0,e&&this.observer.flush();let i=null;try{for(let s=0;;s++){this.updateState=1;let o=this.viewport,c=this.viewState.measure(this);if(!c&&!this.measureRequests.length&&this.viewState.scrollTarget==null)break;if(s>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let f=[];c&4||([this.measureRequests,f]=[f,this.measureRequests]);let y=f.map(fe=>{try{return fe.read(this)}catch(Fe){return Kt(this.state,Fe),Di}}),L=new tt(this,this.state),q=!1,se=!1;L.flags|=c,i?i.flags|=c:i=L,this.updateState=2,L.empty||(this.updatePlugins(L),this.inputState.update(L),this.updateAttrs(),q=this.docView.update(L));for(let fe=0;fe<f.length;fe++)if(y[fe]!=Di)try{let Fe=f[fe];Fe.write&&Fe.write(y[fe],this)}catch(Fe){Kt(this.state,Fe)}if(this.viewState.scrollTarget&&(this.docView.scrollIntoView(this.viewState.scrollTarget),this.viewState.scrollTarget=null,se=!0),q&&this.docView.updateSelection(!0),this.viewport.from==o.from&&this.viewport.to==o.to&&!se&&this.measureRequests.length==0)break}}finally{this.updateState=0,this.measureScheduled=-1}if(i&&!i.empty)for(let s of this.state.facet(pt))s(i)}get themeClasses(){return Ai+" "+(this.state.facet(Fi)?nr:ir)+" "+this.state.facet(yn)}updateAttrs(){let e=hr(this,he,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),i={spellcheck:"false",autocorrect:"off",autocapitalize:"off",translate:"no",contenteditable:this.state.facet(Qt)?"true":"false",class:"cm-content",style:`${S.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(i["aria-readonly"]="true"),hr(this,de,i),this.observer.ignore(()=>{ot(this.contentDOM,this.contentAttrs,i),ot(this.dom,this.editorAttrs,e)}),this.editorAttrs=e,this.contentAttrs=i}showAnnouncements(e){let i=!0;for(let s of e)for(let o of s.effects)if(o.is(Ot.announce)){i&&(this.announceDOM.textContent=""),i=!1;let c=this.announceDOM.appendChild(document.createElement("div"));c.textContent=o.value}}mountStyles(){this.styleModules=this.state.facet(Ie),re.StyleModule.mount(this.root,this.styleModules.concat(rr).reverse())}readMeasured(){if(this.updateState==2)throw new Error("Reading the editor layout isn't allowed during an update");this.updateState==0&&this.measureScheduled>-1&&this.measure(!1)}requestMeasure(e){if(this.measureScheduled<0&&(this.measureScheduled=requestAnimationFrame(()=>this.measure())),e){if(e.key!=null){for(let i=0;i<this.measureRequests.length;i++)if(this.measureRequests[i].key===e.key){this.measureRequests[i]=e;return}}this.measureRequests.push(e)}}pluginField(e){let i=[];for(let s of this.plugins)s.update(this).takeField(e,i);return i}plugin(e){let i=this.pluginMap.get(e);return(i===void 0||i&&i.spec!=e)&&this.pluginMap.set(e,i=this.plugins.find(s=>s.spec==e)||null),i&&i.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}blockAtHeight(e,i){let s=Mi(i,this);return this.elementAtHeight(e-s).moveY(s)}elementAtHeight(e){return this.readMeasured(),this.viewState.elementAtHeight(e)}visualLineAtHeight(e,i){let s=Mi(i,this);return this.lineBlockAtHeight(e-s).moveY(s)}lineBlockAtHeight(e){return this.readMeasured(),this.viewState.lineBlockAtHeight(e)}viewportLines(e,i){let s=Mi(i,this);for(let o of this.viewportLineBlocks)e(o.moveY(s))}get viewportLineBlocks(){return this.viewState.viewportLines}visualLineAt(e,i=0){return this.lineBlockAt(e).moveY(i+this.viewState.paddingTop)}lineBlockAt(e){return this.viewState.lineBlockAt(e)}get contentHeight(){return this.viewState.contentHeight}moveByChar(e,i,s){return en(this,e,Zi(this,e,i,s))}moveByGroup(e,i){return en(this,e,Zi(this,e,i,s=>In(this,e.head,s)))}moveToLineBoundary(e,i,s=!0){return Cr(this,e,i,s)}moveVertically(e,i,s){return en(this,e,Ar(this,e,i,s))}scrollPosIntoView(e){this.dispatch({effects:Tt.of(D.EditorSelection.cursor(e))})}domAtPos(e){return this.docView.domAtPos(e)}posAtDOM(e,i=0){return this.docView.posFromDOM(e,i)}posAtCoords(e,i=!0){return this.readMeasured(),Rn(this,e,i)}coordsAtPos(e,i=1){this.readMeasured();let s=this.docView.coordsAt(e,i);if(!s||s.left==s.right)return s;let o=this.state.doc.lineAt(e),c=this.bidiSpans(o),f=c[bt.find(c,e-o.from,-1,i)];return me(s,f.dir==b.Direction.LTR==i>0)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.heightOracle.direction}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(e){if(e.length>Sn)return Ft(e.length);let i=this.textDirection;for(let o of this.bidiCache)if(o.from==e.from&&o.dir==i)return o.order;let s=Zt(e.text,this.textDirection);return this.bidiCache.push(new Hi(e.from,e.to,i,s)),s}get hasFocus(){var e;return(document.hasFocus()||S.safari&&((e=this.inputState)===null||e===void 0?void 0:e.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{j(this.contentDOM),this.docView.updateSelection()})}destroy(){for(let e of this.plugins)e.destroy(this);this.plugins=[],this.inputState.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(e,i={}){return zt.of(new Wt(typeof e=="number"?D.EditorSelection.cursor(e):e,i.y,i.x,i.yMargin,i.xMargin))}static domEventHandlers(e){return oe.define(()=>({}),{eventHandlers:e})}static theme(e,i){let s=re.StyleModule.newName(),o=[yn.of(s),Ie.of(bn(`.${s}`,e))];return i&&i.dark&&o.push(Fi.of(!0)),o}static baseTheme(e){return D.Prec.lowest(Ie.of(bn("."+Ai,e,Vi)))}}Ot.scrollTo=Tt,Ot.centerOn=Ht,Ot.styleModule=Ie,Ot.inputHandler=Dt,Ot.exceptionSink=yt,Ot.updateListener=pt,Ot.editable=Qt,Ot.mouseSelectionStyle=Mt,Ot.dragMovesSelection=ut,Ot.clickAddsSelectionRange=it,Ot.decorations=xe,Ot.darkTheme=Fi,Ot.contentAttributes=de,Ot.editorAttributes=he,Ot.lineWrapping=Ot.contentAttributes.of({class:"cm-lineWrapping"}),Ot.announce=D.StateEffect.define();const Sn=4096;function Mi(n,e){return(n??e.contentDOM.getBoundingClientRect().top)+e.viewState.paddingTop}let kn=-1;function Nr(){window.addEventListener("resize",()=>{kn==-1&&(kn=setTimeout(ar,50))})}function ar(){kn=-1;let n=document.querySelectorAll(".cm-content");for(let e=0;e<n.length;e++){let i=w.get(n[e]);i&&i.editorView.requestMeasure()}}const Di={};class Hi{constructor(e,i,s,o){this.from=e,this.to=i,this.dir=s,this.order=o}static update(e,i){if(i.empty)return e;let s=[],o=e.length?e[e.length-1].dir:b.Direction.LTR;for(let c=Math.max(0,e.length-10);c<e.length;c++){let f=e[c];f.dir==o&&!i.touchesRange(f.from,f.to)&&s.push(new Hi(i.mapPos(f.from,1),i.mapPos(f.to,-1),f.dir,f.order))}return s}}function hr(n,e,i){for(let s=n.state.facet(e),o=s.length-1;o>=0;o--){let c=s[o],f=typeof c=="function"?c(n):c;f&&Ue(f,i)}return i}const vn=S.mac?"mac":S.windows?"win":S.linux?"linux":"key";function Ir(n,e){const i=n.split(/-(?!$)/);let s=i[i.length-1];s=="Space"&&(s=" ");let o,c,f,y;for(let L=0;L<i.length-1;++L){const q=i[L];if(/^(cmd|meta|m)$/i.test(q))y=!0;else if(/^a(lt)?$/i.test(q))o=!0;else if(/^(c|ctrl|control)$/i.test(q))c=!0;else if(/^s(hift)?$/i.test(q))f=!0;else if(/^mod$/i.test(q))e=="mac"?y=!0:c=!0;else throw new Error("Unrecognized modifier name: "+q)}return o&&(s="Alt-"+s),c&&(s="Ctrl-"+s),y&&(s="Meta-"+s),f&&(s="Shift-"+s),s}function Wi(n,e,i){return e.altKey&&(n="Alt-"+n),e.ctrlKey&&(n="Ctrl-"+n),e.metaKey&&(n="Meta-"+n),i!==!1&&e.shiftKey&&(n="Shift-"+n),n}const cr=Ot.domEventHandlers({keydown(n,e){return gi(li(e.state),n,e,"editor")}}),xn=D.Facet.define({enables:cr}),fr=new WeakMap;function li(n){let e=n.facet(xn),i=fr.get(e);return i||fr.set(e,i=dr(e.reduce((s,o)=>s.concat(o),[]))),i}function Fr(n,e,i){return gi(li(n.state),e,n,i)}let hi=null;const ur=4e3;function dr(n,e=vn){let i=Object.create(null),s=Object.create(null),o=(f,y)=>{let L=s[f];if(L==null)s[f]=y;else if(L!=y)throw new Error("Key binding "+f+" is used both as a regular binding and as a multi-stroke prefix")},c=(f,y,L,q)=>{let se=i[f]||(i[f]=Object.create(null)),fe=y.split(/ (?!$)/).map(Ge=>Ir(Ge,e));for(let Ge=1;Ge<fe.length;Ge++){let rt=fe.slice(0,Ge).join(" ");o(rt,!0),se[rt]||(se[rt]={preventDefault:!0,commands:[ht=>{let ct=hi={view:ht,prefix:rt,scope:f};return setTimeout(()=>{hi==ct&&(hi=null)},ur),!0}]})}let Fe=fe.join(" ");o(Fe,!1);let Ne=se[Fe]||(se[Fe]={preventDefault:!1,commands:[]});Ne.commands.push(L),q&&(Ne.preventDefault=!0)};for(let f of n){let y=f[e]||f.key;if(!!y)for(let L of f.scope?f.scope.split(" "):["editor"])c(L,y,f.run,f.preventDefault),f.shift&&c(L,"Shift-"+y,f.shift,f.preventDefault)}return i}function gi(n,e,i,s){let o=Me.keyName(e),c=o.length==1&&o!=" ",f="",y=!1;hi&&hi.view==i&&hi.scope==s&&(f=hi.prefix+" ",(y=tn.indexOf(e.keyCode)<0)&&(hi=null));let L=fe=>{if(fe){for(let Fe of fe.commands)if(Fe(i))return!0;fe.preventDefault&&(y=!0)}return!1},q=n[s],se;if(q){if(L(q[f+Wi(o,e,!c)]))return!0;if(c&&(e.shiftKey||e.altKey||e.metaKey)&&(se=Me.base[e.keyCode])&&se!=o){if(L(q[f+Wi(se,e,!0)]))return!0}else if(c&&e.shiftKey&&L(q[f+Wi(o,e,!0)]))return!0}return y}const gr=!S.ios,mi=D.Facet.define({combine(n){return D.combineConfig(n,{cursorBlinkRate:1200,drawRangeCursor:!0},{cursorBlinkRate:(e,i)=>Math.min(e,i),drawRangeCursor:(e,i)=>e||i})}});function Vr(n={}){return[mi.of(n),Hr,mr]}class Cn{constructor(e,i,s,o,c){this.left=e,this.top=i,this.width=s,this.height=o,this.className=c}draw(){let e=document.createElement("div");return e.className=this.className,this.adjust(e),e}adjust(e){e.style.left=this.left+"px",e.style.top=this.top+"px",this.width>=0&&(e.style.width=this.width+"px"),e.style.height=this.height+"px"}eq(e){return this.left==e.left&&this.top==e.top&&this.width==e.width&&this.height==e.height&&this.className==e.className}}const Hr=oe.fromClass(class{constructor(n){this.view=n,this.rangePieces=[],this.cursors=[],this.measureReq={read:this.readPos.bind(this),write:this.drawSel.bind(this)},this.selectionLayer=n.scrollDOM.appendChild(document.createElement("div")),this.selectionLayer.className="cm-selectionLayer",this.selectionLayer.setAttribute("aria-hidden","true"),this.cursorLayer=n.scrollDOM.appendChild(document.createElement("div")),this.cursorLayer.className="cm-cursorLayer",this.cursorLayer.setAttribute("aria-hidden","true"),n.requestMeasure(this.measureReq),this.setBlinkRate()}setBlinkRate(){this.cursorLayer.style.animationDuration=this.view.state.facet(mi).cursorBlinkRate+"ms"}update(n){let e=n.startState.facet(mi)!=n.state.facet(mi);(e||n.selectionSet||n.geometryChanged||n.viewportChanged)&&this.view.requestMeasure(this.measureReq),n.transactions.some(i=>i.scrollIntoView)&&(this.cursorLayer.style.animationName=this.cursorLayer.style.animationName=="cm-blink"?"cm-blink2":"cm-blink"),e&&this.setBlinkRate()}readPos(){let{state:n}=this.view,e=n.facet(mi),i=n.selection.ranges.map(o=>o.empty?[]:br(this.view,o)).reduce((o,c)=>o.concat(c)),s=[];for(let o of n.selection.ranges){let c=o==n.selection.main;if(o.empty?!c||gr:e.drawRangeCursor){let f=wr(this.view,o,c);f&&s.push(f)}}return{rangePieces:i,cursors:s}}drawSel({rangePieces:n,cursors:e}){if(n.length!=this.rangePieces.length||n.some((i,s)=>!i.eq(this.rangePieces[s]))){this.selectionLayer.textContent="";for(let i of n)this.selectionLayer.appendChild(i.draw());this.rangePieces=n}if(e.length!=this.cursors.length||e.some((i,s)=>!i.eq(this.cursors[s]))){let i=this.cursorLayer.children;if(i.length!==e.length){this.cursorLayer.textContent="";for(const s of e)this.cursorLayer.appendChild(s.draw())}else e.forEach((s,o)=>s.adjust(i[o]));this.cursors=e}}destroy(){this.selectionLayer.remove(),this.cursorLayer.remove()}}),An={".cm-line":{"& ::selection":{backgroundColor:"transparent !important"},"&::selection":{backgroundColor:"transparent !important"}}};gr&&(An[".cm-line"].caretColor="transparent !important");const mr=D.Prec.highest(Ot.theme(An));function zi(n){let e=n.scrollDOM.getBoundingClientRect();return{left:(n.textDirection==b.Direction.LTR?e.left:e.right-n.scrollDOM.clientWidth)-n.scrollDOM.scrollLeft,top:e.top-n.scrollDOM.scrollTop}}function pr(n,e,i){let s=D.EditorSelection.cursor(e);return{from:Math.max(i.from,n.moveToLineBoundary(s,!1,!0).from),to:Math.min(i.to,n.moveToLineBoundary(s,!0,!0).from),type:b.BlockType.Text}}function yr(n,e){let i=n.lineBlockAt(e);if(Array.isArray(i.type)){for(let s of i.type)if(s.to>e||s.to==e&&(s.to==i.to||s.type==b.BlockType.Text))return s}return i}function br(n,e){if(e.to<=n.viewport.from||e.from>=n.viewport.to)return[];let i=Math.max(e.from,n.viewport.from),s=Math.min(e.to,n.viewport.to),o=n.textDirection==b.Direction.LTR,c=n.contentDOM,f=c.getBoundingClientRect(),y=zi(n),L=window.getComputedStyle(c.firstChild),q=f.left+parseInt(L.paddingLeft)+Math.min(0,parseInt(L.textIndent)),se=f.right-parseInt(L.paddingRight),fe=yr(n,i),Fe=yr(n,s),Ne=fe.type==b.BlockType.Text?fe:null,Ge=Fe.type==b.BlockType.Text?Fe:null;if(n.lineWrapping&&(Ne&&(Ne=pr(n,i,Ne)),Ge&&(Ge=pr(n,s,Ge))),Ne&&Ge&&Ne.from==Ge.from)return ht(ct(e.from,e.to,Ne));{let St=Ne?ct(e.from,null,Ne):Nt(fe,!1),Ct=Ge?ct(null,e.to,Ge):Nt(Fe,!0),At=[];return(Ne||fe).to<(Ge||Fe).from-1?At.push(rt(q,St.bottom,se,Ct.top)):St.bottom<Ct.top&&n.elementAtHeight((St.bottom+Ct.top)/2).type==b.BlockType.Text&&(St.bottom=Ct.top=(St.bottom+Ct.top)/2),ht(St).concat(At).concat(ht(Ct))}function rt(St,Ct,At,Xt){return new Cn(St-y.left,Ct-y.top-.01,At-St,Xt-Ct+.01,"cm-selectionBackground")}function ht({top:St,bottom:Ct,horizontal:At}){let Xt=[];for(let $t=0;$t<At.length;$t+=2)Xt.push(rt(At[$t],St,At[$t+1],Ct));return Xt}function ct(St,Ct,At){let Xt=1e9,$t=-1e9,oi=[];function pi(Ei,yi,Gi,Oi,Tn){let bi=n.coordsAtPos(Ei,Ei==At.to?-2:2),wi=n.coordsAtPos(Gi,Gi==At.from?2:-2);Xt=Math.min(bi.top,wi.top,Xt),$t=Math.max(bi.bottom,wi.bottom,$t),Tn==b.Direction.LTR?oi.push(o&&yi?q:bi.left,o&&Oi?se:wi.right):oi.push(!o&&Oi?q:wi.left,!o&&yi?se:bi.right)}let ii=St??At.from,ni=Ct??At.to;for(let Ei of n.visibleRanges)if(Ei.to>ii&&Ei.from<ni)for(let yi=Math.max(Ei.from,ii),Gi=Math.min(Ei.to,ni);;){let Oi=n.state.doc.lineAt(yi);for(let Tn of n.bidiSpans(Oi)){let bi=Tn.from+Oi.from,wi=Tn.to+Oi.from;if(bi>=Gi)break;wi>yi&&pi(Math.max(bi,yi),St==null&&bi<=ii,Math.min(wi,Gi),Ct==null&&wi>=ni,Tn.dir)}if(yi=Oi.to+1,yi>=Gi)break}return oi.length==0&&pi(ii,St==null,ni,Ct==null,n.textDirection),{top:Xt,bottom:$t,horizontal:oi}}function Nt(St,Ct){let At=f.top+(Ct?St.top:St.bottom);return{top:At,bottom:At,horizontal:[]}}}function wr(n,e,i){let s=n.coordsAtPos(e.head,e.assoc||1);if(!s)return null;let o=zi(n);return new Cn(s.left-o.left,s.top-o.top,-1,s.bottom-s.top,i?"cm-cursor cm-cursor-primary":"cm-cursor cm-cursor-secondary")}const ji=D.StateEffect.define({map(n,e){return n==null?null:e.mapPos(n)}}),Ti=D.StateField.define({create(){return null},update(n,e){return n!=null&&(n=e.changes.mapPos(n)),e.effects.reduce((i,s)=>s.is(ji)?s.value:i,n)}}),Wr=oe.fromClass(class{constructor(n){this.view=n,this.cursor=null,this.measureReq={read:this.readPos.bind(this),write:this.drawCursor.bind(this)}}update(n){var e;let i=n.state.field(Ti);i==null?this.cursor!=null&&((e=this.cursor)===null||e===void 0||e.remove(),this.cursor=null):(this.cursor||(this.cursor=this.view.scrollDOM.appendChild(document.createElement("div")),this.cursor.className="cm-dropCursor"),(n.startState.field(Ti)!=i||n.docChanged||n.geometryChanged)&&this.view.requestMeasure(this.measureReq))}readPos(){let n=this.view.state.field(Ti),e=n!=null&&this.view.coordsAtPos(n);if(!e)return null;let i=this.view.scrollDOM.getBoundingClientRect();return{left:e.left-i.left+this.view.scrollDOM.scrollLeft,top:e.top-i.top+this.view.scrollDOM.scrollTop,height:e.bottom-e.top}}drawCursor(n){this.cursor&&(n?(this.cursor.style.left=n.left+"px",this.cursor.style.top=n.top+"px",this.cursor.style.height=n.height+"px"):this.cursor.style.left="-100000px")}destroy(){this.cursor&&this.cursor.remove()}setDropPos(n){this.view.state.field(Ti)!=n&&this.view.dispatch({effects:ji.of(n)})}},{eventHandlers:{dragover(n){this.setDropPos(this.view.posAtCoords({x:n.clientX,y:n.clientY}))},dragleave(n){(n.target==this.view.contentDOM||!this.view.contentDOM.contains(n.relatedTarget))&&this.setDropPos(null)},dragend(){this.setDropPos(null)},drop(){this.setDropPos(null)}}});function Mn(){return[Ti,Wr]}function Sr(n,e,i,s,o){e.lastIndex=0;for(let c=n.iterRange(i,s),f=i,y;!c.next().done;f+=c.value.length)if(!c.lineBreak)for(;y=e.exec(c.value);)o(f+y.index,f+y.index+y[0].length,y)}function Ki(n,e){let i=n.visibleRanges;if(i.length==1&&i[0].from==n.viewport.from&&i[0].to==n.viewport.to)return i;let s=[];for(let{from:o,to:c}of i)o=Math.max(n.state.doc.lineAt(o).from,o-e),c=Math.min(n.state.doc.lineAt(c).to,c+e),s.length&&s[s.length-1].to>=o?s[s.length-1].to=c:s.push({from:o,to:c});return s}class kr{constructor(e){let{regexp:i,decoration:s,boundary:o,maxLength:c=1e3}=e;if(!i.global)throw new RangeError("The regular expression given to MatchDecorator should have its 'g' flag set");this.regexp=i,this.getDeco=typeof s=="function"?s:()=>s,this.boundary=o,this.maxLength=c}createDeco(e){let i=new ye.RangeSetBuilder;for(let{from:s,to:o}of Ki(e,this.maxLength))Sr(e.state.doc,this.regexp,s,o,(c,f,y)=>i.add(c,f,this.getDeco(y,e,c)));return i.finish()}updateDeco(e,i){let s=1e9,o=-1;return e.docChanged&&e.changes.iterChanges((c,f,y,L)=>{L>e.view.viewport.from&&y<e.view.viewport.to&&(s=Math.min(y,s),o=Math.max(L,o))}),e.viewportChanged||o-s>1e3?this.createDeco(e.view):o>-1?this.updateRange(e.view,i.map(e.changes),s,o):i}updateRange(e,i,s,o){for(let c of e.visibleRanges){let f=Math.max(c.from,s),y=Math.min(c.to,o);if(y>f){let L=e.state.doc.lineAt(f),q=L.to<y?e.state.doc.lineAt(y):L,se=Math.max(c.from,L.from),fe=Math.min(c.to,q.to);if(this.boundary){for(;f>L.from;f--)if(this.boundary.test(L.text[f-1-L.from])){se=f;break}for(;y<q.to;y++)if(this.boundary.test(q.text[y-q.from])){fe=y;break}}let Fe=[],Ne;if(L==q)for(this.regexp.lastIndex=se-L.from;(Ne=this.regexp.exec(L.text))&&Ne.index<fe-L.from;){let Ge=Ne.index+L.from;Fe.push(this.getDeco(Ne,e,Ge).range(Ge,Ge+Ne[0].length))}else Sr(e.state.doc,this.regexp,se,fe,(Ge,rt,ht)=>Fe.push(this.getDeco(ht,e,Ge).range(Ge,rt)));i=i.update({filterFrom:se,filterTo:fe,filter:(Ge,rt)=>Ge<se||rt>fe,add:Fe})}}return i}}const Ui=/x/.unicode!=null?"gu":"g",zr=new RegExp(`[\0-\b 3 + -\x7F-\x9F\xAD\u061C\u200B\u200E\u200F\u2028\u2029\u202D\u202E\uFEFF\uFFF9-\uFFFC]`,Ui),jr={0:"null",7:"bell",8:"backspace",10:"newline",11:"vertical tab",13:"carriage return",27:"escape",8203:"zero width space",8204:"zero width non-joiner",8205:"zero width joiner",8206:"left-to-right mark",8207:"right-to-left mark",8232:"line separator",8237:"left-to-right override",8238:"right-to-left override",8233:"paragraph separator",65279:"zero width no-break space",65532:"object replacement"};let Dn=null;function Kr(){var n;if(Dn==null&&typeof document!="undefined"&&document.body){let e=document.body.style;Dn=((n=e.tabSize)!==null&&n!==void 0?n:e.MozTabSize)!=null}return Dn||!1}const qi=D.Facet.define({combine(n){let e=D.combineConfig(n,{render:null,specialChars:zr,addSpecialChars:null});return(e.replaceTabs=!Kr())&&(e.specialChars=new RegExp(" |"+e.specialChars.source,Ui)),e.addSpecialChars&&(e.specialChars=new RegExp(e.specialChars.source+"|"+e.addSpecialChars.source,Ui)),e}});function Ur(n={}){return[qi.of(n),qr()]}let vr=null;function qr(){return vr||(vr=oe.fromClass(class{constructor(n){this.view=n,this.decorations=p.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(n.state.facet(qi)),this.decorations=this.decorator.createDeco(n)}makeDecorator(n){return new kr({regexp:n.specialChars,decoration:(e,i,s)=>{let{doc:o}=i.state,c=we.codePointAt(e[0],0);if(c==9){let f=o.lineAt(s),y=i.state.tabSize,L=we.countColumn(f.text,y,s-f.from);return p.replace({widget:new Yr((y-L%y)*this.view.defaultCharacterWidth)})}return this.decorationCache[c]||(this.decorationCache[c]=p.replace({widget:new Jr(n,c)}))},boundary:n.replaceTabs?void 0:/[^]/})}update(n){let e=n.state.facet(qi);n.startState.facet(qi)!=e?(this.decorator=this.makeDecorator(e),this.decorations=this.decorator.createDeco(n.view)):this.decorations=this.decorator.updateDeco(n,this.decorations)}},{decorations:n=>n.decorations}))}const Gr="\u2022";function _r(n){return n>=32?Gr:n==10?"\u2424":String.fromCharCode(9216+n)}class Jr extends ne{constructor(e,i){super();this.options=e,this.code=i}eq(e){return e.code==this.code}toDOM(e){let i=_r(this.code),s=e.state.phrase("Control character")+" "+(jr[this.code]||"0x"+this.code.toString(16)),o=this.options.render&&this.options.render(this.code,s,i);if(o)return o;let c=document.createElement("span");return c.textContent=i,c.title=s,c.setAttribute("aria-label",s),c.className="cm-specialChar",c}ignoreEvent(){return!1}}class Yr extends ne{constructor(e){super();this.width=e}eq(e){return e.width==this.width}toDOM(){let e=document.createElement("span");return e.textContent=" ",e.className="cm-tab",e.style.width=this.width+"px",e}ignoreEvent(){return!1}}const xr=oe.fromClass(class{constructor(){this.height=1e3,this.attrs={style:"padding-bottom: 1000px"}}update(n){let e=n.view.viewState.editorHeight-n.view.defaultLineHeight;e!=this.height&&(this.height=e,this.attrs={style:`padding-bottom: ${e}px`})}});function h(){return[xr,de.of(n=>{var e;return((e=n.plugin(xr))===null||e===void 0?void 0:e.attrs)||null})]}function t(){return l}const r=p.line({class:"cm-activeLine"}),l=oe.fromClass(class{constructor(n){this.decorations=this.getDeco(n)}update(n){(n.docChanged||n.selectionSet)&&(this.decorations=this.getDeco(n.view))}getDeco(n){let e=-1,i=[];for(let s of n.state.selection.ranges){if(!s.empty)return p.none;let o=n.lineBlockAt(s.head);o.from>e&&(i.push(r.range(o.from)),e=o.from)}return p.set(i)}},{decorations:n=>n.decorations});class a extends ne{constructor(e){super();this.content=e}toDOM(){let e=document.createElement("span");return e.className="cm-placeholder",e.style.pointerEvents="none",e.appendChild(typeof this.content=="string"?document.createTextNode(this.content):this.content),typeof this.content=="string"?e.setAttribute("aria-label","placeholder "+this.content):e.setAttribute("aria-hidden","true"),e}ignoreEvent(){return!1}}function u(n){return oe.fromClass(class{constructor(e){this.view=e,this.placeholder=p.set([p.widget({widget:new a(n),side:1}).range(0)])}get decorations(){return this.view.state.doc.length?p.none:this.placeholder}},{decorations:e=>e.decorations})}const m={HeightMap:Gt,HeightOracle:qt,MeasuredHeights:cn,QueryType:ft,ChangedRange:Qe,computeOrder:Zt,moveVisually:ce};Object.defineProperty(b,"Range",{enumerable:!0,get:function(){return ye.Range}}),b.BidiSpan=bt,b.BlockInfo=Et,b.Decoration=p,b.EditorView=Ot,b.MatchDecorator=kr,b.PluginField=jt,b.PluginFieldProvider=Pt,b.ViewPlugin=oe,b.ViewUpdate=tt,b.WidgetType=ne,b.__test=m,b.drawSelection=Vr,b.dropCursor=Mn,b.highlightActiveLine=t,b.highlightSpecialChars=Ur,b.keymap=xn,b.logException=Kt,b.placeholder=u,b.runScopeHandlers=Fr,b.scrollPastEnd=h},{"@codemirror/rangeset":18,"@codemirror/state":22,"@codemirror/text":24,"style-mod":30,"w3c-keyname":31}],6:[function(Re,mt,b){"use strict";Object.defineProperty(b,"__esModule",{value:!0});var D=Re("@codemirror/state");const re=me=>{let Ve=ve(me.state);return Ve.line?we(me):Ve.block?je(me):!1};function ye(me,Ve){return({state:ke,dispatch:ae})=>{let H=me(Ve,ke.selection.ranges,ke);return H?(ae(ke.update(H)),!0):!1}}const we=ye(Ee,0),Me=ye(Ee,1),Xe=ye(Ee,2),je=ye(He,0),We=ye(He,1),Oe=ye(He,2),De=[{key:"Mod-/",run:re},{key:"Alt-A",run:je}];function ve(me,Ve=me.selection.main.head){let ke=me.languageDataAt("commentTokens",Ve);return ke.length?ke[0]:{}}const ue=50;function Te(me,{open:Ve,close:ke},ae,H){let j=me.sliceDoc(ae-ue,ae),Y=me.sliceDoc(H,H+ue),W=/\s*$/.exec(j)[0].length,Q=/^\s*/.exec(Y)[0].length,R=j.length-W;if(j.slice(R-Ve.length,R)==Ve&&Y.slice(Q,Q+ke.length)==ke)return{open:{pos:ae-W,margin:W&&1},close:{pos:H+Q,margin:Q&&1}};let d,g;H-ae<=2*ue?d=g=me.sliceDoc(ae,H):(d=me.sliceDoc(ae,ae+ue),g=me.sliceDoc(H-ue,H));let O=/^\s*/.exec(d)[0].length,w=/\s*$/.exec(g)[0].length,T=g.length-w-ke.length;return d.slice(O,O+Ve.length)==Ve&&g.slice(T,T+ke.length)==ke?{open:{pos:ae+O+Ve.length,margin:/\s/.test(d.charAt(O+Ve.length))?1:0},close:{pos:H-w-ke.length,margin:/\s/.test(g.charAt(T-1))?1:0}}:null}function He(me,Ve,ke){let ae=Ve.map(j=>ve(ke,j.from).block);if(!ae.every(j=>j))return null;let H=Ve.map((j,Y)=>Te(ke,ae[Y],j.from,j.to));if(me!=2&&!H.every(j=>j)){let j=0;return ke.changeByRange(Y=>{let{open:W,close:Q}=ae[j++];if(H[j])return{range:Y};let R=W.length+1;return{changes:[{from:Y.from,insert:W+" "},{from:Y.to,insert:" "+Q}],range:D.EditorSelection.range(Y.anchor+R,Y.head+R)}})}else if(me!=1&&H.some(j=>j)){let j=[];for(let Y=0,W;Y<H.length;Y++)if(W=H[Y]){let Q=ae[Y],{open:R,close:d}=W;j.push({from:R.pos-Q.open.length,to:R.pos+R.margin},{from:d.pos-d.margin,to:d.pos+Q.close.length})}return{changes:j}}return null}function Ee(me,Ve,ke){let ae=[],H=-1;for(let{from:j,to:Y}of Ve){let W=ae.length,Q=1e9;for(let R=j;R<=Y;){let d=ke.doc.lineAt(R);if(d.from>H&&(j==Y||Y>d.from)){H=d.from;let g=ve(ke,R).line;if(!g)continue;let O=/^\s*/.exec(d.text)[0].length,w=O==d.length,T=d.text.slice(O,O+g.length)==g?O:-1;O<d.text.length&&O<Q&&(Q=O),ae.push({line:d,comment:T,token:g,indent:O,empty:w,single:!1})}R=d.to+1}if(Q<1e9)for(let R=W;R<ae.length;R++)ae[R].indent<ae[R].line.text.length&&(ae[R].indent=Q);ae.length==W+1&&(ae[W].single=!0)}if(me!=2&&ae.some(j=>j.comment<0&&(!j.empty||j.single))){let j=[];for(let{line:W,token:Q,indent:R,empty:d,single:g}of ae)(g||!d)&&j.push({from:W.from+R,insert:Q+" "});let Y=ke.changes(j);return{changes:Y,selection:ke.selection.map(Y,1)}}else if(me!=1&&ae.some(j=>j.comment>=0)){let j=[];for(let{line:Y,comment:W,token:Q}of ae)if(W>=0){let R=Y.from+W,d=R+Q.length;Y.text[d-Y.from]==" "&&d++,j.push({from:R,to:d})}return{changes:j}}return null}b.blockComment=We,b.blockUncomment=Oe,b.commentKeymap=De,b.lineComment=Me,b.lineUncomment=Xe,b.toggleBlockComment=je,b.toggleComment=re,b.toggleLineComment=we},{"@codemirror/state":22}],7:[function(Re,mt,b){"use strict";Object.defineProperty(b,"__esModule",{value:!0});var D=Re("@codemirror/state"),re=Re("@codemirror/view"),ye=Re("@codemirror/language"),we=Re("@codemirror/gutter"),Me=Re("@codemirror/rangeset");function Xe(w,T){let z=T.mapPos(w.from,1),_=T.mapPos(w.to,-1);return z>=_?void 0:{from:z,to:_}}const je=D.StateEffect.define({map:Xe}),We=D.StateEffect.define({map:Xe});function Oe(w){let T=[];for(let{head:z}of w.state.selection.ranges)T.some(_=>_.from<=z&&_.to>=z)||T.push(w.lineBlockAt(z));return T}const De=D.StateField.define({create(){return re.Decoration.none},update(w,T){w=w.map(T.changes);for(let z of T.effects)z.is(je)&&!Te(w,z.value.from,z.value.to)?w=w.update({add:[Q.range(z.value.from,z.value.to)]}):z.is(We)&&(w=w.update({filter:(_,U)=>z.value.from!=_||z.value.to!=U,filterFrom:z.value.from,filterTo:z.value.to}));if(T.selection){let z=!1,{head:_}=T.selection.main;w.between(_,_,(U,te)=>{U<_&&te>_&&(z=!0)}),z&&(w=w.update({filterFrom:_,filterTo:_,filter:(U,te)=>te<=_||U>=_}))}return w},provide:w=>re.EditorView.decorations.from(w)});function ve(w){return w.field(De,!1)||Me.RangeSet.empty}function ue(w,T,z){var _;let U=null;return(_=w.field(De,!1))===null||_===void 0||_.between(T,z,(te,ge)=>{(!U||U.from>te)&&(U={from:te,to:ge})}),U}function Te(w,T,z){let _=!1;return w.between(T,T,(U,te)=>{U==T&&te==z&&(_=!0)}),_}function He(w,T){return w.field(De,!1)?T:T.concat(D.StateEffect.appendConfig.of(W()))}const Ee=w=>{for(let T of Oe(w)){let z=ye.foldable(w.state,T.from,T.to);if(z)return w.dispatch({effects:He(w.state,[je.of(z),Ve(w,z)])}),!0}return!1},me=w=>{if(!w.state.field(De,!1))return!1;let T=[];for(let z of Oe(w)){let _=ue(w.state,z.from,z.to);_&&T.push(We.of(_),Ve(w,_,!1))}return T.length&&w.dispatch({effects:T}),T.length>0};function Ve(w,T,z=!0){let _=w.state.doc.lineAt(T.from).number,U=w.state.doc.lineAt(T.to).number;return re.EditorView.announce.of(`${w.state.phrase(z?"Folded lines":"Unfolded lines")} ${_} ${w.state.phrase("to")} ${U}.`)}const ke=w=>{let{state:T}=w,z=[];for(let _=0;_<T.doc.length;){let U=w.lineBlockAt(_),te=ye.foldable(T,U.from,U.to);te&&z.push(je.of(te)),_=(te?w.lineBlockAt(te.to):U).to+1}return z.length&&w.dispatch({effects:He(w.state,z)}),!!z.length},ae=w=>{let T=w.state.field(De,!1);if(!T||!T.size)return!1;let z=[];return T.between(0,w.state.doc.length,(_,U)=>{z.push(We.of({from:_,to:U}))}),w.dispatch({effects:z}),!0},H=[{key:"Ctrl-Shift-[",mac:"Cmd-Alt-[",run:Ee},{key:"Ctrl-Shift-]",mac:"Cmd-Alt-]",run:me},{key:"Ctrl-Alt-[",run:ke},{key:"Ctrl-Alt-]",run:ae}],j={placeholderDOM:null,placeholderText:"\u2026"},Y=D.Facet.define({combine(w){return D.combineConfig(w,j)}});function W(w){let T=[De,O];return w&&T.push(Y.of(w)),T}const Q=re.Decoration.replace({widget:new class extends re.WidgetType{toDOM(w){let{state:T}=w,z=T.facet(Y),_=te=>{let ge=w.lineBlockAt(w.posAtDOM(te.target)),Ae=ue(w.state,ge.from,ge.to);Ae&&w.dispatch({effects:We.of(Ae)}),te.preventDefault()};if(z.placeholderDOM)return z.placeholderDOM(w,_);let U=document.createElement("span");return U.textContent=z.placeholderText,U.setAttribute("aria-label",T.phrase("folded code")),U.title=T.phrase("unfold"),U.className="cm-foldPlaceholder",U.onclick=_,U}}}),R={openText:"\u2304",closedText:"\u203A",markerDOM:null,domEventHandlers:{}};class d extends we.GutterMarker{constructor(T,z){super();this.config=T,this.open=z}eq(T){return this.config==T.config&&this.open==T.open}toDOM(T){if(this.config.markerDOM)return this.config.markerDOM(this.open);let z=document.createElement("span");return z.textContent=this.open?this.config.openText:this.config.closedText,z.title=T.state.phrase(this.open?"Fold line":"Unfold line"),z}}function g(w={}){let T=Object.assign(Object.assign({},R),w),z=new d(T,!0),_=new d(T,!1),U=re.ViewPlugin.fromClass(class{constructor(ge){this.from=ge.viewport.from,this.markers=this.buildMarkers(ge)}update(ge){(ge.docChanged||ge.viewportChanged||ge.startState.facet(ye.language)!=ge.state.facet(ye.language)||ge.startState.field(De,!1)!=ge.state.field(De,!1))&&(this.markers=this.buildMarkers(ge.view))}buildMarkers(ge){let Ae=new Me.RangeSetBuilder;for(let qe of ge.viewportLineBlocks){let Ke=ue(ge.state,qe.from,qe.to)?_:ye.foldable(ge.state,qe.from,qe.to)?z:null;Ke&&Ae.add(qe.from,qe.from,Ke)}return Ae.finish()}}),{domEventHandlers:te}=T;return[U,we.gutter({class:"cm-foldGutter",markers(ge){var Ae;return((Ae=ge.plugin(U))===null||Ae===void 0?void 0:Ae.markers)||Me.RangeSet.empty},initialSpacer(){return new d(T,!1)},domEventHandlers:Object.assign(Object.assign({},te),{click:(ge,Ae,qe)=>{if(te.click&&te.click(ge,Ae,qe))return!0;let Ke=ue(ge.state,Ae.from,Ae.to);if(Ke)return ge.dispatch({effects:We.of(Ke)}),!0;let et=ye.foldable(ge.state,Ae.from,Ae.to);return et?(ge.dispatch({effects:je.of(et)}),!0):!1}})}),W()]}const O=re.EditorView.baseTheme({".cm-foldPlaceholder":{backgroundColor:"#eee",border:"1px solid #ddd",color:"#888",borderRadius:".2em",margin:"0 1px",padding:"0 1px",cursor:"pointer"},".cm-foldGutter span":{padding:"0 1px",cursor:"pointer"}});b.codeFolding=W,b.foldAll=ke,b.foldCode=Ee,b.foldEffect=je,b.foldGutter=g,b.foldKeymap=H,b.foldedRanges=ve,b.unfoldAll=ae,b.unfoldCode=me,b.unfoldEffect=We},{"@codemirror/gutter":9,"@codemirror/language":13,"@codemirror/rangeset":18,"@codemirror/state":22,"@codemirror/view":8}],8:[function(Re,mt,b){arguments[4][5][0].apply(b,arguments)},{"@codemirror/rangeset":18,"@codemirror/state":22,"@codemirror/text":24,dup:5,"style-mod":30,"w3c-keyname":31}],9:[function(Re,mt,b){"use strict";Object.defineProperty(b,"__esModule",{value:!0});var D=Re("@codemirror/view"),re=Re("@codemirror/rangeset"),ye=Re("@codemirror/state");class we extends re.RangeValue{compare(T){return this==T||this.constructor==T.constructor&&this.eq(T)}eq(T){return!1}destroy(T){}}we.prototype.elementClass="",we.prototype.toDOM=void 0,we.prototype.mapMode=ye.MapMode.TrackBefore,we.prototype.startSide=we.prototype.endSide=-1,we.prototype.point=!0;const Me=ye.Facet.define(),Xe={class:"",renderEmptyElements:!1,elementStyle:"",markers:()=>re.RangeSet.empty,lineMarker:()=>null,lineMarkerChange:null,initialSpacer:null,updateSpacer:null,domEventHandlers:{}},je=ye.Facet.define();function We(w){return[ve(),je.of(Object.assign(Object.assign({},Xe),w))]}const Oe=D.EditorView.baseTheme({".cm-gutters":{display:"flex",height:"100%",boxSizing:"border-box",left:0,zIndex:200},"&light .cm-gutters":{backgroundColor:"#f5f5f5",color:"#999",borderRight:"1px solid #ddd"},"&dark .cm-gutters":{backgroundColor:"#333338",color:"#ccc"},".cm-gutter":{display:"flex !important",flexDirection:"column",flexShrink:0,boxSizing:"border-box",minHeight:"100%",overflow:"hidden"},".cm-gutterElement":{boxSizing:"border-box"},".cm-lineNumbers .cm-gutterElement":{padding:"0 3px 0 5px",minWidth:"20px",textAlign:"right",whiteSpace:"nowrap"},"&light .cm-activeLineGutter":{backgroundColor:"#e2f2ff"},"&dark .cm-activeLineGutter":{backgroundColor:"#222227"}}),De=ye.Facet.define({combine:w=>w.some(T=>T)});function ve(w){let T=[ue,Oe];return w&&w.fixed===!1&&T.push(De.of(!0)),T}const ue=D.ViewPlugin.fromClass(class{constructor(w){this.view=w,this.prevViewport=w.viewport,this.dom=document.createElement("div"),this.dom.className="cm-gutters",this.dom.setAttribute("aria-hidden","true"),this.dom.style.minHeight=this.view.contentHeight+"px",this.gutters=w.state.facet(je).map(T=>new me(w,T));for(let T of this.gutters)this.dom.appendChild(T.dom);this.fixed=!w.state.facet(De),this.fixed&&(this.dom.style.position="sticky"),this.syncGutters(!1),w.scrollDOM.insertBefore(this.dom,w.contentDOM)}update(w){if(this.updateGutters(w)){let T=this.prevViewport,z=w.view.viewport,_=Math.min(T.to,z.to)-Math.max(T.from,z.from);this.syncGutters(_<(z.to-z.from)*.8)}w.geometryChanged&&(this.dom.style.minHeight=this.view.contentHeight+"px"),this.view.state.facet(De)!=!this.fixed&&(this.fixed=!this.fixed,this.dom.style.position=this.fixed?"sticky":""),this.prevViewport=w.view.viewport}syncGutters(w){let T=this.dom.nextSibling;w&&this.dom.remove();let z=re.RangeSet.iter(this.view.state.facet(Me),this.view.viewport.from),_=[],U=this.gutters.map(te=>new Ee(te,this.view.viewport,-this.view.documentPadding.top));for(let te of this.view.viewportLineBlocks){let ge;if(Array.isArray(te.type)){for(let Ae of te.type)if(Ae.type==D.BlockType.Text){ge=Ae;break}}else ge=te.type==D.BlockType.Text?te:void 0;if(!!ge){_.length&&(_=[]),He(z,_,te.from);for(let Ae of U)Ae.line(this.view,ge,_)}}for(let te of U)te.finish();w&&this.view.scrollDOM.insertBefore(this.dom,T)}updateGutters(w){let T=w.startState.facet(je),z=w.state.facet(je),_=w.docChanged||w.heightChanged||w.viewportChanged||!re.RangeSet.eq(w.startState.facet(Me),w.state.facet(Me),w.view.viewport.from,w.view.viewport.to);if(T==z)for(let U of this.gutters)U.update(w)&&(_=!0);else{_=!0;let U=[];for(let te of z){let ge=T.indexOf(te);ge<0?U.push(new me(this.view,te)):(this.gutters[ge].update(w),U.push(this.gutters[ge]))}for(let te of this.gutters)te.dom.remove(),U.indexOf(te)<0&&te.destroy();for(let te of U)this.dom.appendChild(te.dom);this.gutters=U}return _}destroy(){for(let w of this.gutters)w.destroy();this.dom.remove()}},{provide:D.PluginField.scrollMargins.from(w=>w.gutters.length==0||!w.fixed?null:w.view.textDirection==D.Direction.LTR?{left:w.dom.offsetWidth}:{right:w.dom.offsetWidth})});function Te(w){return Array.isArray(w)?w:[w]}function He(w,T,z){for(;w.value&&w.from<=z;)w.from==z&&T.push(w.value),w.next()}class Ee{constructor(T,z,_){this.gutter=T,this.height=_,this.localMarkers=[],this.i=0,this.cursor=re.RangeSet.iter(T.markers,z.from)}line(T,z,_){this.localMarkers.length&&(this.localMarkers=[]),He(this.cursor,this.localMarkers,z.from);let U=_.length?this.localMarkers.concat(_):this.localMarkers,te=this.gutter.config.lineMarker(T,z,U);te&&U.unshift(te);let ge=this.gutter;if(U.length==0&&!ge.config.renderEmptyElements)return;let Ae=z.top-this.height;if(this.i==ge.elements.length){let qe=new Ve(T,z.height,Ae,U);ge.elements.push(qe),ge.dom.appendChild(qe.dom)}else ge.elements[this.i].update(T,z.height,Ae,U);this.height=z.bottom,this.i++}finish(){let T=this.gutter;for(;T.elements.length>this.i;){let z=T.elements.pop();T.dom.removeChild(z.dom),z.destroy()}}}class me{constructor(T,z){this.view=T,this.config=z,this.elements=[],this.spacer=null,this.dom=document.createElement("div"),this.dom.className="cm-gutter"+(this.config.class?" "+this.config.class:"");for(let _ in z.domEventHandlers)this.dom.addEventListener(_,U=>{let te=T.lineBlockAtHeight(U.clientY-T.documentTop);z.domEventHandlers[_](T,te,U)&&U.preventDefault()});this.markers=Te(z.markers(T)),z.initialSpacer&&(this.spacer=new Ve(T,0,0,[z.initialSpacer(T)]),this.dom.appendChild(this.spacer.dom),this.spacer.dom.style.cssText+="visibility: hidden; pointer-events: none")}update(T){let z=this.markers;if(this.markers=Te(this.config.markers(T.view)),this.spacer&&this.config.updateSpacer){let U=this.config.updateSpacer(this.spacer.markers[0],T);U!=this.spacer.markers[0]&&this.spacer.update(T.view,0,0,[U])}let _=T.view.viewport;return!re.RangeSet.eq(this.markers,z,_.from,_.to)||(this.config.lineMarkerChange?this.config.lineMarkerChange(T):!1)}destroy(){for(let T of this.elements)T.destroy()}}class Ve{constructor(T,z,_,U){this.height=-1,this.above=0,this.markers=[],this.dom=document.createElement("div"),this.update(T,z,_,U)}update(T,z,_,U){this.height!=z&&(this.dom.style.height=(this.height=z)+"px"),this.above!=_&&(this.dom.style.marginTop=(this.above=_)?_+"px":""),ke(this.markers,U)||this.setMarkers(T,U)}setMarkers(T,z){let _="cm-gutterElement",U=this.dom.firstChild;for(let te=0,ge=0;;){let Ae=ge,qe=te<z.length?z[te++]:null,Ke=!1;if(qe){let et=qe.elementClass;et&&(_+=" "+et);for(let nt=ge;nt<this.markers.length;nt++)if(this.markers[nt].compare(qe)){Ae=nt,Ke=!0;break}}else Ae=this.markers.length;for(;ge<Ae;){let et=this.markers[ge++];if(et.toDOM){et.destroy(U);let nt=U.nextSibling;U.remove(),U=nt}}if(!qe)break;qe.toDOM&&(Ke?U=U.nextSibling:this.dom.insertBefore(qe.toDOM(T),U)),Ke&&ge++}this.dom.className=_,this.markers=z}destroy(){this.setMarkers(null,[])}}function ke(w,T){if(w.length!=T.length)return!1;for(let z=0;z<w.length;z++)if(!w[z].compare(T[z]))return!1;return!0}const ae=ye.Facet.define(),H=ye.Facet.define({combine(w){return ye.combineConfig(w,{formatNumber:String,domEventHandlers:{}},{domEventHandlers(T,z){let _=Object.assign({},T);for(let U in z){let te=_[U],ge=z[U];_[U]=te?(Ae,qe,Ke)=>te(Ae,qe,Ke)||ge(Ae,qe,Ke):ge}return _}})}});class j extends we{constructor(T){super();this.number=T}eq(T){return this.number==T.number}toDOM(){return document.createTextNode(this.number)}}function Y(w,T){return w.state.facet(H).formatNumber(T,w.state)}const W=je.compute([H],w=>({class:"cm-lineNumbers",renderEmptyElements:!1,markers(T){return T.state.facet(ae)},lineMarker(T,z,_){return _.some(U=>U.toDOM)?null:new j(Y(T,T.state.doc.lineAt(z.from).number))},lineMarkerChange:T=>T.startState.facet(H)!=T.state.facet(H),initialSpacer(T){return new j(Y(T,R(T.state.doc.lines)))},updateSpacer(T,z){let _=Y(z.view,R(z.view.state.doc.lines));return _==T.number?T:new j(_)},domEventHandlers:w.facet(H).domEventHandlers}));function Q(w={}){return[H.of(w),ve(),W]}function R(w){let T=9;for(;T<w;)T=T*10+9;return T}const d=new class extends we{constructor(){super(...arguments);this.elementClass="cm-activeLineGutter"}},g=Me.compute(["selection"],w=>{let T=[],z=-1;for(let _ of w.selection.ranges)if(_.empty){let U=w.doc.lineAt(_.head).from;U>z&&(z=U,T.push(d.range(U)))}return re.RangeSet.of(T)});function O(){return g}b.GutterMarker=we,b.gutter=We,b.gutterLineClass=Me,b.gutters=ve,b.highlightActiveLineGutter=O,b.lineNumberMarkers=ae,b.lineNumbers=Q},{"@codemirror/rangeset":18,"@codemirror/state":22,"@codemirror/view":10}],10:[function(Re,mt,b){arguments[4][5][0].apply(b,arguments)},{"@codemirror/rangeset":18,"@codemirror/state":22,"@codemirror/text":24,dup:5,"style-mod":30,"w3c-keyname":31}],11:[function(Re,mt,b){"use strict";Object.defineProperty(b,"__esModule",{value:!0});var D=Re("@lezer/common"),re=Re("style-mod"),ye=Re("@codemirror/view"),we=Re("@codemirror/state"),Me=Re("@codemirror/language"),Xe=Re("@codemirror/rangeset");let je=0;class We{constructor(B,V,Z){this.set=B,this.base=V,this.modified=Z,this.id=je++}static define(B){if(B==null?void 0:B.base)throw new Error("Can not derive from a modified tag");let V=new We([],null,[]);if(V.set.push(V),B)for(let Z of B.set)V.set.push(Z);return V}static defineModifier(){let B=new De;return V=>V.modified.indexOf(B)>-1?V:De.get(V.base||V,V.modified.concat(B).sort((Z,F)=>Z.id-F.id))}}let Oe=0;class De{constructor(){this.instances=[],this.id=Oe++}static get(B,V){if(!V.length)return B;let Z=V[0].instances.find(E=>E.base==B&&ve(V,E.modified));if(Z)return Z;let F=[],x=new We(F,B,V);for(let E of V)E.instances.push(x);let v=ue(V);for(let E of B.set)for(let G of v)F.push(De.get(E,G));return x}}function ve(S,B){return S.length==B.length&&S.every((V,Z)=>V==B[Z])}function ue(S){let B=[S];for(let V=0;V<S.length;V++)for(let Z of ue(S.slice(0,V).concat(S.slice(V+1))))B.push(Z);return B}function Te(S){let B=Object.create(null);for(let V in S){let Z=S[V];Array.isArray(Z)||(Z=[Z]);for(let F of V.split(" "))if(F){let x=[],v=2,E=F;for(let Pe=0;;){if(E=="..."&&Pe>0&&Pe+3==F.length){v=1;break}let Ue=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(E);if(!Ue)throw new RangeError("Invalid path: "+F);if(x.push(Ue[0]=="*"?null:Ue[0][0]=='"'?JSON.parse(Ue[0]):Ue[0]),Pe+=Ue[0].length,Pe==F.length)break;let ze=F[Pe++];if(Pe==F.length&&ze=="!"){v=0;break}if(ze!="/")throw new RangeError("Invalid path: "+F);E=F.slice(Pe)}let G=x.length-1,le=x[G];if(!le)throw new RangeError("Invalid path: "+F);let Se=new ke(Z,v,G>0?x.slice(0,G):null);B[le]=Se.sort(B[le])}}return He.add(B)}const He=new D.NodeProp,Ee=we.Facet.define({combine(S){return S.length?ae.combinedMatch(S):null}}),me=we.Facet.define({combine(S){return S.length?S[0].match:null}});function Ve(S){return S.facet(Ee)||S.facet(me)}class ke{constructor(B,V,Z,F){this.tags=B,this.mode=V,this.context=Z,this.next=F}sort(B){return!B||B.depth<this.depth?(this.next=B,this):(B.next=this.sort(B.next),B)}get depth(){return this.context?this.context.length:0}}class ae{constructor(B,V){this.map=Object.create(null);let Z;function F(v){let E=re.StyleModule.newName();return(Z||(Z=Object.create(null)))["."+E]=v,E}this.all=typeof V.all=="string"?V.all:V.all?F(V.all):null;for(let v of B){let E=(v.class||F(Object.assign({},v,{tag:null})))+(this.all?" "+this.all:""),G=v.tag;if(!Array.isArray(G))this.map[G.id]=E;else for(let le of G)this.map[le.id]=E}this.module=Z?new re.StyleModule(Z):null,this.scope=V.scope||null,this.match=this.match.bind(this);let x=[Y];this.module&&x.push(ye.EditorView.styleModule.of(this.module)),this.extension=x.concat(Ee.of(this)),this.fallback=x.concat(me.of(this))}match(B,V){if(this.scope&&V!=this.scope)return null;for(let Z of B.set){let F=this.map[Z.id];if(F!==void 0)return Z!=B&&(this.map[B.id]=F),F}return this.map[B.id]=this.all}static combinedMatch(B){if(B.length==1)return B[0].match;let V=B.some(Z=>Z.scope)?void 0:Object.create(null);return(Z,F)=>{let x=V&&V[Z.id];if(x!==void 0)return x;let v=null;for(let E of B){let G=E.match(Z,F);G&&(v=v?v+" "+G:G)}return V&&(V[Z.id]=v),v}}static define(B,V){return new ae(B,V||{})}static get(B,V,Z){let F=Ve(B);return F&&F(V,Z||D.NodeType.none)}}function H(S,B,V,Z=0,F=S.length){R(S,Z,F,B,V)}class j{constructor(B){this.markCache=Object.create(null),this.tree=Me.syntaxTree(B.state),this.decorations=this.buildDeco(B,Ve(B.state))}update(B){let V=Me.syntaxTree(B.state),Z=Ve(B.state),F=Z!=B.startState.facet(Ee);V.length<B.view.viewport.to&&!F&&V.type==this.tree.type?this.decorations=this.decorations.map(B.changes):(V!=this.tree||B.viewportChanged||F)&&(this.tree=V,this.decorations=this.buildDeco(B.view,Z))}buildDeco(B,V){if(!V||!this.tree.length)return ye.Decoration.none;let Z=new Xe.RangeSetBuilder;for(let{from:F,to:x}of B.visibleRanges)R(this.tree,F,x,V,(v,E,G)=>{Z.add(v,E,this.markCache[G]||(this.markCache[G]=ye.Decoration.mark({class:G})))});return Z.finish()}}const Y=we.Prec.high(ye.ViewPlugin.fromClass(j,{decorations:S=>S.decorations})),W=[""];class Q{constructor(B,V,Z){this.at=B,this.style=V,this.span=Z,this.class=""}startSpan(B,V){V!=this.class&&(this.flush(B),B>this.at&&(this.at=B),this.class=V)}flush(B){B>this.at&&this.class&&this.span(this.at,B,this.class)}highlightRange(B,V,Z,F,x,v){let{type:E,from:G,to:le}=B;if(G>=Z||le<=V)return;W[x]=E.name,E.isTop&&(v=E);let Se=F,Pe=E.prop(He),Ue=!1;for(;Pe;){if(!Pe.context||d(Pe.context,W,x)){for(let ot of Pe.tags){let ne=this.style(ot,v);ne&&(Se&&(Se+=" "),Se+=ne,Pe.mode==1?F+=(F?" ":"")+ne:Pe.mode==0&&(Ue=!0))}break}Pe=Pe.next}if(this.startSpan(B.from,Se),Ue)return;let ze=B.tree&&B.tree.prop(D.NodeProp.mounted);if(ze&&ze.overlay){let ot=B.node.enter(ze.overlay[0].from+G,1),ne=B.firstChild();for(let p=0,M=G;;p++){let K=p<ze.overlay.length?ze.overlay[p]:null,X=K?K.from+G:le,ie=Math.max(V,M),C=Math.min(Z,X);if(ie<C&&ne)for(;B.from<C&&(this.highlightRange(B,ie,C,F,x+1,v),this.startSpan(Math.min(Z,B.to),Se),!(B.to>=X||!B.nextSibling())););if(!K||X>Z)break;M=K.to+G,M>V&&(this.highlightRange(ot.cursor,Math.max(V,K.from+G),Math.min(Z,M),F,x,ze.tree.type),this.startSpan(M,Se))}ne&&B.parent()}else if(B.firstChild()){do if(!(B.to<=V)){if(B.from>=Z)break;this.highlightRange(B,V,Z,F,x+1,v),this.startSpan(Math.min(Z,B.to),Se)}while(B.nextSibling());B.parent()}}}function R(S,B,V,Z,F){let x=new Q(B,Z,F);x.highlightRange(S.cursor(),B,V,"",0,S.type),x.flush(V)}function d(S,B,V){if(S.length>V-1)return!1;for(let Z=V-1,F=S.length-1;F>=0;F--,Z--){let x=S[F];if(x&&x!=B[Z])return!1}return!0}const g=We.define,O=g(),w=g(),T=g(w),z=g(w),_=g(),U=g(_),te=g(_),ge=g(),Ae=g(ge),qe=g(),Ke=g(),et=g(),nt=g(et),at=g(),_e={comment:O,lineComment:g(O),blockComment:g(O),docComment:g(O),name:w,variableName:g(w),typeName:T,tagName:g(T),propertyName:z,attributeName:g(z),className:g(w),labelName:g(w),namespace:g(w),macroName:g(w),literal:_,string:U,docString:g(U),character:g(U),attributeValue:g(U),number:te,integer:g(te),float:g(te),bool:g(_),regexp:g(_),escape:g(_),color:g(_),url:g(_),keyword:qe,self:g(qe),null:g(qe),atom:g(qe),unit:g(qe),modifier:g(qe),operatorKeyword:g(qe),controlKeyword:g(qe),definitionKeyword:g(qe),moduleKeyword:g(qe),operator:Ke,derefOperator:g(Ke),arithmeticOperator:g(Ke),logicOperator:g(Ke),bitwiseOperator:g(Ke),compareOperator:g(Ke),updateOperator:g(Ke),definitionOperator:g(Ke),typeOperator:g(Ke),controlOperator:g(Ke),punctuation:et,separator:g(et),bracket:nt,angleBracket:g(nt),squareBracket:g(nt),paren:g(nt),brace:g(nt),content:ge,heading:Ae,heading1:g(Ae),heading2:g(Ae),heading3:g(Ae),heading4:g(Ae),heading5:g(Ae),heading6:g(Ae),contentSeparator:g(ge),list:g(ge),quote:g(ge),emphasis:g(ge),strong:g(ge),link:g(ge),monospace:g(ge),strikethrough:g(ge),inserted:g(),deleted:g(),changed:g(),invalid:g(),meta:at,documentMeta:g(at),annotation:g(at),processingInstruction:g(at),definition:We.defineModifier(),constant:We.defineModifier(),function:We.defineModifier(),standard:We.defineModifier(),local:We.defineModifier(),special:We.defineModifier()},pe=ae.define([{tag:_e.link,textDecoration:"underline"},{tag:_e.heading,textDecoration:"underline",fontWeight:"bold"},{tag:_e.emphasis,fontStyle:"italic"},{tag:_e.strong,fontWeight:"bold"},{tag:_e.strikethrough,textDecoration:"line-through"},{tag:_e.keyword,color:"#708"},{tag:[_e.atom,_e.bool,_e.url,_e.contentSeparator,_e.labelName],color:"#219"},{tag:[_e.literal,_e.inserted],color:"#164"},{tag:[_e.string,_e.deleted],color:"#a11"},{tag:[_e.regexp,_e.escape,_e.special(_e.string)],color:"#e40"},{tag:_e.definition(_e.variableName),color:"#00f"},{tag:_e.local(_e.variableName),color:"#30a"},{tag:[_e.typeName,_e.namespace],color:"#085"},{tag:_e.className,color:"#167"},{tag:[_e.special(_e.variableName),_e.macroName],color:"#256"},{tag:_e.definition(_e.propertyName),color:"#00c"},{tag:_e.comment,color:"#940"},{tag:_e.meta,color:"#7a757a"},{tag:_e.invalid,color:"#f00"}]),k=ae.define([{tag:_e.link,class:"cmt-link"},{tag:_e.heading,class:"cmt-heading"},{tag:_e.emphasis,class:"cmt-emphasis"},{tag:_e.strong,class:"cmt-strong"},{tag:_e.keyword,class:"cmt-keyword"},{tag:_e.atom,class:"cmt-atom"},{tag:_e.bool,class:"cmt-bool"},{tag:_e.url,class:"cmt-url"},{tag:_e.labelName,class:"cmt-labelName"},{tag:_e.inserted,class:"cmt-inserted"},{tag:_e.deleted,class:"cmt-deleted"},{tag:_e.literal,class:"cmt-literal"},{tag:_e.string,class:"cmt-string"},{tag:_e.number,class:"cmt-number"},{tag:[_e.regexp,_e.escape,_e.special(_e.string)],class:"cmt-string2"},{tag:_e.variableName,class:"cmt-variableName"},{tag:_e.local(_e.variableName),class:"cmt-variableName cmt-local"},{tag:_e.definition(_e.variableName),class:"cmt-variableName cmt-definition"},{tag:_e.special(_e.variableName),class:"cmt-variableName2"},{tag:_e.definition(_e.propertyName),class:"cmt-propertyName cmt-definition"},{tag:_e.typeName,class:"cmt-typeName"},{tag:_e.namespace,class:"cmt-namespace"},{tag:_e.className,class:"cmt-className"},{tag:_e.macroName,class:"cmt-macroName"},{tag:_e.propertyName,class:"cmt-propertyName"},{tag:_e.operator,class:"cmt-operator"},{tag:_e.comment,class:"cmt-comment"},{tag:_e.meta,class:"cmt-meta"},{tag:_e.invalid,class:"cmt-invalid"},{tag:_e.punctuation,class:"cmt-punctuation"}]);b.HighlightStyle=ae,b.Tag=We,b.classHighlightStyle=k,b.defaultHighlightStyle=pe,b.highlightTree=H,b.styleTags=Te,b.tags=_e},{"@codemirror/language":13,"@codemirror/rangeset":18,"@codemirror/state":22,"@codemirror/view":27,"@lezer/common":28,"style-mod":30}],12:[function(Re,mt,b){"use strict";Object.defineProperty(b,"__esModule",{value:!0});var D=Re("@codemirror/state"),re=Re("@codemirror/view");const ye=D.Annotation.define(),we=D.Annotation.define(),Me=D.Facet.define(),Xe=D.Facet.define({combine(U){return D.combineConfig(U,{minDepth:100,newGroupDelay:500},{minDepth:Math.max,newGroupDelay:Math.min})}});function je(U){let te=0;return U.iterChangedRanges((ge,Ae)=>te=Ae),te}const We=D.StateField.define({create(){return z.empty},update(U,te){let ge=te.state.facet(Xe),Ae=te.annotation(ye);if(Ae){let at=te.docChanged?D.EditorSelection.single(je(te.changes)):void 0,_e=ae.fromTransaction(te,at),pe=Ae.side,k=pe==0?U.undone:U.done;return _e?k=H(k,k.length,ge.minDepth,_e):k=d(k,te.startState.selection),new z(pe==0?Ae.rest:k,pe==0?k:Ae.rest)}let qe=te.annotation(we);if((qe=="full"||qe=="before")&&(U=U.isolate()),te.annotation(D.Transaction.addToHistory)===!1)return te.changes.empty?U:U.addMapping(te.changes.desc);let Ke=ae.fromTransaction(te),et=te.annotation(D.Transaction.time),nt=te.annotation(D.Transaction.userEvent);return Ke?U=U.addChanges(Ke,et,nt,ge.newGroupDelay,ge.minDepth):te.selection&&(U=U.addSelection(te.startState.selection,et,nt,ge.newGroupDelay)),(qe=="full"||qe=="after")&&(U=U.isolate()),U},toJSON(U){return{done:U.done.map(te=>te.toJSON()),undone:U.undone.map(te=>te.toJSON())}},fromJSON(U){return new z(U.done.map(ae.fromJSON),U.undone.map(ae.fromJSON))}});function Oe(U={}){return[We,Xe.of(U),re.EditorView.domEventHandlers({beforeinput(te,ge){let Ae=te.inputType=="historyUndo"?ue:te.inputType=="historyRedo"?Te:null;return Ae?(te.preventDefault(),Ae(ge)):!1}})]}const De=We;function ve(U,te){return function({state:ge,dispatch:Ae}){if(!te&&ge.readOnly)return!1;let qe=ge.field(We,!1);if(!qe)return!1;let Ke=qe.pop(U,ge,te);return Ke?(Ae(Ke),!0):!1}}const ue=ve(0,!1),Te=ve(1,!1),He=ve(0,!0),Ee=ve(1,!0);function me(U){return function(te){let ge=te.field(We,!1);if(!ge)return 0;let Ae=U==0?ge.done:ge.undone;return Ae.length-(Ae.length&&!Ae[0].changes?1:0)}}const Ve=me(0),ke=me(1);class ae{constructor(te,ge,Ae,qe,Ke){this.changes=te,this.effects=ge,this.mapped=Ae,this.startSelection=qe,this.selectionsAfter=Ke}setSelAfter(te){return new ae(this.changes,this.effects,this.mapped,this.startSelection,te)}toJSON(){var te,ge,Ae;return{changes:(te=this.changes)===null||te===void 0?void 0:te.toJSON(),mapped:(ge=this.mapped)===null||ge===void 0?void 0:ge.toJSON(),startSelection:(Ae=this.startSelection)===null||Ae===void 0?void 0:Ae.toJSON(),selectionsAfter:this.selectionsAfter.map(qe=>qe.toJSON())}}static fromJSON(te){return new ae(te.changes&&D.ChangeSet.fromJSON(te.changes),[],te.mapped&&D.ChangeDesc.fromJSON(te.mapped),te.startSelection&&D.EditorSelection.fromJSON(te.startSelection),te.selectionsAfter.map(D.EditorSelection.fromJSON))}static fromTransaction(te,ge){let Ae=Q;for(let qe of te.startState.facet(Me)){let Ke=qe(te);Ke.length&&(Ae=Ae.concat(Ke))}return!Ae.length&&te.changes.empty?null:new ae(te.changes.invert(te.startState.doc),Ae,void 0,ge||te.startState.selection,Q)}static selection(te){return new ae(void 0,Q,void 0,void 0,te)}}function H(U,te,ge,Ae){let qe=te+1>ge+20?te-ge-1:0,Ke=U.slice(qe,te);return Ke.push(Ae),Ke}function j(U,te){let ge=[],Ae=!1;return U.iterChangedRanges((qe,Ke)=>ge.push(qe,Ke)),te.iterChangedRanges((qe,Ke,et,nt)=>{for(let at=0;at<ge.length;){let _e=ge[at++],pe=ge[at++];nt>=_e&&et<=pe&&(Ae=!0)}}),Ae}function Y(U,te){return U.ranges.length==te.ranges.length&&U.ranges.filter((ge,Ae)=>ge.empty!=te.ranges[Ae].empty).length===0}function W(U,te){return U.length?te.length?U.concat(te):U:te}const Q=[],R=200;function d(U,te){if(U.length){let ge=U[U.length-1],Ae=ge.selectionsAfter.slice(Math.max(0,ge.selectionsAfter.length-R));return Ae.length&&Ae[Ae.length-1].eq(te)?U:(Ae.push(te),H(U,U.length-1,1e9,ge.setSelAfter(Ae)))}else return[ae.selection([te])]}function g(U){let te=U[U.length-1],ge=U.slice();return ge[U.length-1]=te.setSelAfter(te.selectionsAfter.slice(0,te.selectionsAfter.length-1)),ge}function O(U,te){if(!U.length)return U;let ge=U.length,Ae=Q;for(;ge;){let qe=w(U[ge-1],te,Ae);if(qe.changes&&!qe.changes.empty||qe.effects.length){let Ke=U.slice(0,ge);return Ke[ge-1]=qe,Ke}else te=qe.mapped,ge--,Ae=qe.selectionsAfter}return Ae.length?[ae.selection(Ae)]:Q}function w(U,te,ge){let Ae=W(U.selectionsAfter.length?U.selectionsAfter.map(nt=>nt.map(te)):Q,ge);if(!U.changes)return ae.selection(Ae);let qe=U.changes.map(te),Ke=te.mapDesc(U.changes,!0),et=U.mapped?U.mapped.composeDesc(Ke):Ke;return new ae(qe,D.StateEffect.mapEffects(U.effects,te),et,U.startSelection.map(Ke),Ae)}const T=/^(input\.type|delete)($|\.)/;class z{constructor(te,ge,Ae=0,qe=void 0){this.done=te,this.undone=ge,this.prevTime=Ae,this.prevUserEvent=qe}isolate(){return this.prevTime?new z(this.done,this.undone):this}addChanges(te,ge,Ae,qe,Ke){let et=this.done,nt=et[et.length-1];return nt&&nt.changes&&!nt.changes.empty&&te.changes&&(!Ae||T.test(Ae))&&(!nt.selectionsAfter.length&&ge-this.prevTime<qe&&j(nt.changes,te.changes)||Ae=="input.type.compose")?et=H(et,et.length-1,Ke,new ae(te.changes.compose(nt.changes),W(te.effects,nt.effects),nt.mapped,nt.startSelection,Q)):et=H(et,et.length,Ke,te),new z(et,Q,ge,Ae)}addSelection(te,ge,Ae,qe){let Ke=this.done.length?this.done[this.done.length-1].selectionsAfter:Q;return Ke.length>0&&ge-this.prevTime<qe&&Ae==this.prevUserEvent&&Ae&&/^select($|\.)/.test(Ae)&&Y(Ke[Ke.length-1],te)?this:new z(d(this.done,te),this.undone,ge,Ae)}addMapping(te){return new z(O(this.done,te),O(this.undone,te),this.prevTime,this.prevUserEvent)}pop(te,ge,Ae){let qe=te==0?this.done:this.undone;if(qe.length==0)return null;let Ke=qe[qe.length-1];if(Ae&&Ke.selectionsAfter.length)return ge.update({selection:Ke.selectionsAfter[Ke.selectionsAfter.length-1],annotations:ye.of({side:te,rest:g(qe)}),userEvent:te==0?"select.undo":"select.redo",scrollIntoView:!0});if(Ke.changes){let et=qe.length==1?Q:qe.slice(0,qe.length-1);return Ke.mapped&&(et=O(et,Ke.mapped)),ge.update({changes:Ke.changes,selection:Ke.startSelection,effects:Ke.effects,annotations:ye.of({side:te,rest:et}),filter:!1,userEvent:te==0?"undo":"redo",scrollIntoView:!0})}else return null}}z.empty=new z(Q,Q);const _=[{key:"Mod-z",run:ue,preventDefault:!0},{key:"Mod-y",mac:"Mod-Shift-z",run:Te,preventDefault:!0},{key:"Mod-u",run:He,preventDefault:!0},{key:"Alt-u",mac:"Mod-Shift-u",run:Ee,preventDefault:!0}];b.history=Oe,b.historyField=De,b.historyKeymap=_,b.invertedEffects=Me,b.isolateHistory=we,b.redo=Te,b.redoDepth=ke,b.redoSelection=Ee,b.undo=ue,b.undoDepth=Ve,b.undoSelection=He},{"@codemirror/state":22,"@codemirror/view":27}],13:[function(Re,mt,b){"use strict";Object.defineProperty(b,"__esModule",{value:!0});var D=Re("@lezer/common"),re=Re("@codemirror/state"),ye=Re("@codemirror/view"),we=Re("@codemirror/text");const Me=new D.NodeProp;function Xe(x){return re.Facet.define({combine:x?v=>v.concat(x):void 0})}class je{constructor(v,E,G,le=[]){this.data=v,this.topNode=G,re.EditorState.prototype.hasOwnProperty("tree")||Object.defineProperty(re.EditorState.prototype,"tree",{get(){return De(this)}}),this.parser=E,this.extension=[j.of(this),re.EditorState.languageData.of((Se,Pe,Ue)=>Se.facet(We(Se,Pe,Ue)))].concat(le)}isActiveAt(v,E,G=-1){return We(v,E,G)==this.data}findRegions(v){let E=v.facet(j);if((E==null?void 0:E.data)==this.data)return[{from:0,to:v.doc.length}];if(!E||!E.allowsNesting)return[];let G=[],le=(Se,Pe)=>{if(Se.prop(Me)==this.data){G.push({from:Pe,to:Pe+Se.length});return}let Ue=Se.prop(D.NodeProp.mounted);if(Ue){if(Ue.tree.prop(Me)==this.data){if(Ue.overlay)for(let ze of Ue.overlay)G.push({from:ze.from+Pe,to:ze.to+Pe});else G.push({from:Pe,to:Pe+Se.length});return}else if(Ue.overlay){let ze=G.length;if(le(Ue.tree,Ue.overlay[0].from+Pe),G.length>ze)return}}for(let ze=0;ze<Se.children.length;ze++){let ot=Se.children[ze];ot instanceof D.Tree&&le(ot,Se.positions[ze]+Pe)}};return le(De(v),0),G}get allowsNesting(){return!0}}je.setState=re.StateEffect.define();function We(x,v,E){let G=x.facet(j);if(!G)return null;let le=G.data;if(G.allowsNesting)for(let Se=De(x).topNode;Se;Se=Se.enter(v,E,!0,!1))le=Se.type.prop(Me)||le;return le}class Oe extends je{constructor(v,E){super(v,E,E.topNode);this.parser=E}static define(v){let E=Xe(v.languageData);return new Oe(E,v.parser.configure({props:[Me.add(G=>G.isTop?E:void 0)]}))}configure(v){return new Oe(this.data,this.parser.configure(v))}get allowsNesting(){return this.parser.wrappers.length>0}}function De(x){let v=x.field(je.state,!1);return v?v.tree:D.Tree.empty}function ve(x,v,E=50){var G;let le=(G=x.field(je.state,!1))===null||G===void 0?void 0:G.context;return le&&(le.isDone(v)||le.work(E,v))?le.tree:null}function ue(x,v=x.doc.length){var E;return((E=x.field(je.state,!1))===null||E===void 0?void 0:E.context.isDone(v))||!1}function Te(x){var v;return((v=x.plugin(H))===null||v===void 0?void 0:v.isWorking())||!1}class He{constructor(v,E=v.length){this.doc=v,this.length=E,this.cursorPos=0,this.string="",this.cursor=v.iter()}syncTo(v){return this.string=this.cursor.next(v-this.cursorPos).value,this.cursorPos=v+this.string.length,this.cursorPos-this.string.length}chunk(v){return this.syncTo(v),this.string}get lineChunks(){return!0}read(v,E){let G=this.cursorPos-this.string.length;return v<G||E>=this.cursorPos?this.doc.sliceString(v,E):this.string.slice(v-G,E-G)}}let Ee=null;class me{constructor(v,E,G=[],le,Se,Pe,Ue,ze){this.parser=v,this.state=E,this.fragments=G,this.tree=le,this.treeLen=Se,this.viewport=Pe,this.skipped=Ue,this.scheduleOn=ze,this.parse=null,this.tempSkipped=[]}startParse(){return this.parser.startParse(new He(this.state.doc),this.fragments)}work(v,E){return E!=null&&E>=this.state.doc.length&&(E=void 0),this.tree!=D.Tree.empty&&this.isDone(E??this.state.doc.length)?(this.takeTree(),!0):this.withContext(()=>{var G;let le=Date.now()+v;for(this.parse||(this.parse=this.startParse()),E!=null&&(this.parse.stoppedAt==null||this.parse.stoppedAt>E)&&E<this.state.doc.length&&this.parse.stopAt(E);;){let Se=this.parse.advance();if(Se)if(this.fragments=this.withoutTempSkipped(D.TreeFragment.addTree(Se,this.fragments,this.parse.stoppedAt!=null)),this.treeLen=(G=this.parse.stoppedAt)!==null&&G!==void 0?G:this.state.doc.length,this.tree=Se,this.parse=null,this.treeLen<(E??this.state.doc.length))this.parse=this.startParse();else return!0;if(Date.now()>le)return!1}})}takeTree(){let v,E;this.parse&&(v=this.parse.parsedPos)>=this.treeLen&&((this.parse.stoppedAt==null||this.parse.stoppedAt>v)&&this.parse.stopAt(v),this.withContext(()=>{for(;!(E=this.parse.advance()););}),this.treeLen=v,this.tree=E,this.fragments=this.withoutTempSkipped(D.TreeFragment.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(v){let E=Ee;Ee=this;try{return v()}finally{Ee=E}}withoutTempSkipped(v){for(let E;E=this.tempSkipped.pop();)v=Ve(v,E.from,E.to);return v}changes(v,E){let{fragments:G,tree:le,treeLen:Se,viewport:Pe,skipped:Ue}=this;if(this.takeTree(),!v.empty){let ze=[];if(v.iterChangedRanges((ot,ne,p,M)=>ze.push({fromA:ot,toA:ne,fromB:p,toB:M})),G=D.TreeFragment.applyChanges(G,ze),le=D.Tree.empty,Se=0,Pe={from:v.mapPos(Pe.from,-1),to:v.mapPos(Pe.to,1)},this.skipped.length){Ue=[];for(let ot of this.skipped){let ne=v.mapPos(ot.from,1),p=v.mapPos(ot.to,-1);ne<p&&Ue.push({from:ne,to:p})}}}return new me(this.parser,E,G,le,Se,Pe,Ue,this.scheduleOn)}updateViewport(v){if(this.viewport.from==v.from&&this.viewport.to==v.to)return!1;this.viewport=v;let E=this.skipped.length;for(let G=0;G<this.skipped.length;G++){let{from:le,to:Se}=this.skipped[G];le<v.to&&Se>v.from&&(this.fragments=Ve(this.fragments,le,Se),this.skipped.splice(G--,1))}return this.skipped.length>=E?!1:(this.reset(),!0)}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(v,E){this.skipped.push({from:v,to:E})}static getSkippingParser(v){return new class extends D.Parser{createParse(E,G,le){let Se=le[0].from,Pe=le[le.length-1].to;return{parsedPos:Se,advance(){let ze=Ee;if(ze){for(let ot of le)ze.tempSkipped.push(ot);v&&(ze.scheduleOn=ze.scheduleOn?Promise.all([ze.scheduleOn,v]):v)}return this.parsedPos=Pe,new D.Tree(D.NodeType.none,[],[],Pe-Se)},stoppedAt:null,stopAt(){}}}}}isDone(v){v=Math.min(v,this.state.doc.length);let E=this.fragments;return this.treeLen>=v&&E.length&&E[0].from==0&&E[0].to>=v}static get(){return Ee}}function Ve(x,v,E){return D.TreeFragment.applyChanges(x,[{fromA:v,toA:E,fromB:v,toB:E}])}class ke{constructor(v){this.context=v,this.tree=v.tree}apply(v){if(!v.docChanged)return this;let E=this.context.changes(v.changes,v.state),G=this.context.treeLen==v.startState.doc.length?void 0:Math.max(v.changes.mapPos(this.context.treeLen),E.viewport.to);return E.work(20,G)||E.takeTree(),new ke(E)}static init(v){let E=Math.min(3e3,v.doc.length),G=new me(v.facet(j).parser,v,[],D.Tree.empty,0,{from:0,to:E},[],null);return G.work(20,E)||G.takeTree(),new ke(G)}}je.state=re.StateField.define({create:ke.init,update(x,v){for(let E of v.effects)if(E.is(je.setState))return E.value;return v.startState.facet(j)!=v.state.facet(j)?ke.init(v.state):x.apply(v)}});let ae=x=>{let v=setTimeout(()=>x(),500);return()=>clearTimeout(v)};typeof requestIdleCallback!="undefined"&&(ae=x=>{let v=-1,E=setTimeout(()=>{v=requestIdleCallback(x,{timeout:500-100})},100);return()=>v<0?clearTimeout(E):cancelIdleCallback(v)});const H=ye.ViewPlugin.fromClass(class{constructor(v){this.view=v,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(v){let E=this.view.state.field(je.state).context;(E.updateViewport(v.view.viewport)||this.view.viewport.to>E.treeLen)&&this.scheduleWork(),v.docChanged&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(E)}scheduleWork(){if(this.working)return;let{state:v}=this.view,E=v.field(je.state);(E.tree!=E.context.tree||!E.context.isDone(v.doc.length))&&(this.working=ae(this.work))}work(v){this.working=null;let E=Date.now();if(this.chunkEnd<E&&(this.chunkEnd<0||this.view.hasFocus)&&(this.chunkEnd=E+3e4,this.chunkBudget=3e3),this.chunkBudget<=0)return;let{state:G,viewport:{to:le}}=this.view,Se=G.field(je.state);if(Se.tree==Se.context.tree&&Se.context.isDone(le+1e5))return;let Pe=Math.min(this.chunkBudget,100,v?Math.max(25,v.timeRemaining()-5):1e9),Ue=Se.context.treeLen<le&&G.doc.length>le+1e3,ze=Se.context.work(Pe,le+(Ue?0:1e5));this.chunkBudget-=Date.now()-E,(ze||this.chunkBudget<=0)&&(Se.context.takeTree(),this.view.dispatch({effects:je.setState.of(new ke(Se.context))})),this.chunkBudget>0&&!(ze&&!Ue)&&this.scheduleWork(),this.checkAsyncSchedule(Se.context)}checkAsyncSchedule(v){v.scheduleOn&&(this.workScheduled++,v.scheduleOn.then(()=>this.scheduleWork()).catch(E=>ye.logException(this.view.state,E)).then(()=>this.workScheduled--),v.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return this.working||this.workScheduled>0}},{eventHandlers:{focus(){this.scheduleWork()}}}),j=re.Facet.define({combine(x){return x.length?x[0]:null},enables:[je.state,H]});class Y{constructor(v,E=[]){this.language=v,this.support=E,this.extension=[v,E]}}class W{constructor(v,E,G,le,Se,Pe=void 0){this.name=v,this.alias=E,this.extensions=G,this.filename=le,this.loadFunc=Se,this.support=Pe,this.loading=null}load(){return this.loading||(this.loading=this.loadFunc().then(v=>this.support=v,v=>{throw this.loading=null,v}))}static of(v){let{load:E,support:G}=v;if(!E){if(!G)throw new RangeError("Must pass either 'load' or 'support' to LanguageDescription.of");E=()=>Promise.resolve(G)}return new W(v.name,(v.alias||[]).concat(v.name).map(le=>le.toLowerCase()),v.extensions||[],v.filename,E,G)}static matchFilename(v,E){for(let le of v)if(le.filename&&le.filename.test(E))return le;let G=/\.([^.]+)$/.exec(E);if(G){for(let le of v)if(le.extensions.indexOf(G[1])>-1)return le}return null}static matchLanguageName(v,E,G=!0){E=E.toLowerCase();for(let le of v)if(le.alias.some(Se=>Se==E))return le;if(G)for(let le of v)for(let Se of le.alias){let Pe=E.indexOf(Se);if(Pe>-1&&(Se.length>2||!/\w/.test(E[Pe-1])&&!/\w/.test(E[Pe+Se.length])))return le}return null}}const Q=re.Facet.define(),R=re.Facet.define({combine:x=>{if(!x.length)return" ";if(!/^(?: +|\t+)$/.test(x[0]))throw new Error("Invalid indent unit: "+JSON.stringify(x[0]));return x[0]}});function d(x){let v=x.facet(R);return v.charCodeAt(0)==9?x.tabSize*v.length:v.length}function g(x,v){let E="",G=x.tabSize;if(x.facet(R).charCodeAt(0)==9)for(;v>=G;)E+=" ",v-=G;for(let le=0;le<v;le++)E+=" ";return E}function O(x,v){x instanceof re.EditorState&&(x=new w(x));for(let G of x.state.facet(Q)){let le=G(x,v);if(le!=null)return le}let E=De(x.state);return E?z(x,E,v):null}class w{constructor(v,E={}){this.state=v,this.options=E,this.unit=d(v)}lineAt(v,E=1){let G=this.state.doc.lineAt(v),{simulateBreak:le}=this.options;return le!=null&&le>=G.from&&le<=G.to?(E<0?le<v:le<=v)?{text:G.text.slice(le-G.from),from:le}:{text:G.text.slice(0,le-G.from),from:G.from}:G}textAfterPos(v,E=1){if(this.options.simulateDoubleBreak&&v==this.options.simulateBreak)return"";let{text:G,from:le}=this.lineAt(v,E);return G.slice(v-le,Math.min(G.length,v+100-le))}column(v,E=1){let{text:G,from:le}=this.lineAt(v,E),Se=this.countColumn(G,v-le),Pe=this.options.overrideIndentation?this.options.overrideIndentation(le):-1;return Pe>-1&&(Se+=Pe-this.countColumn(G,G.search(/\S|$/))),Se}countColumn(v,E=v.length){return we.countColumn(v,this.state.tabSize,E)}lineIndent(v,E=1){let{text:G,from:le}=this.lineAt(v,E),Se=this.options.overrideIndentation;if(Se){let Pe=Se(le);if(Pe>-1)return Pe}return this.countColumn(G,G.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}}const T=new D.NodeProp;function z(x,v,E){return te(v.resolveInner(E).enterUnfinishedNodesBefore(E),E,x)}function _(x){return x.pos==x.options.simulateBreak&&x.options.simulateDoubleBreak}function U(x){let v=x.type.prop(T);if(v)return v;let E=x.firstChild,G;if(E&&(G=E.type.prop(D.NodeProp.closedBy))){let le=x.lastChild,Se=le&&G.indexOf(le.name)>-1;return Pe=>nt(Pe,!0,1,void 0,Se&&!_(Pe)?le.from:void 0)}return x.parent==null?ge:null}function te(x,v,E){for(;x;x=x.parent){let G=U(x);if(G)return G(new Ae(E,v,x))}return null}function ge(){return 0}class Ae extends w{constructor(v,E,G){super(v.state,v.options);this.base=v,this.pos=E,this.node=G}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){let v=this.state.doc.lineAt(this.node.from);for(;;){let E=this.node.resolve(v.from);for(;E.parent&&E.parent.from==E.from;)E=E.parent;if(qe(E,this.node))break;v=this.state.doc.lineAt(E.from)}return this.lineIndent(v.from)}continue(){let v=this.node.parent;return v?te(v,this.pos,this.base):0}}function qe(x,v){for(let E=v;E;E=E.parent)if(x==E)return!0;return!1}function Ke(x){let v=x.node,E=v.childAfter(v.from),G=v.lastChild;if(!E)return null;let le=x.options.simulateBreak,Se=x.state.doc.lineAt(E.from),Pe=le==null||le<=Se.from?Se.to:Math.min(Se.to,le);for(let Ue=E.to;;){let ze=v.childAfter(Ue);if(!ze||ze==G)return null;if(!ze.type.isSkipped)return ze.from<Pe?E:null;Ue=ze.to}}function et({closing:x,align:v=!0,units:E=1}){return G=>nt(G,v,E,x)}function nt(x,v,E,G,le){let Se=x.textAfter,Pe=Se.match(/^\s*/)[0].length,Ue=G&&Se.slice(Pe,Pe+G.length)==G||le==x.pos+Pe,ze=v?Ke(x):null;return ze?Ue?x.column(ze.from):x.column(ze.to):x.baseIndent+(Ue?0:x.unit*E)}const at=x=>x.baseIndent;function _e({except:x,units:v=1}={}){return E=>{let G=x&&x.test(E.textAfter);return E.baseIndent+(G?0:v*E.unit)}}const pe=200;function k(){return re.EditorState.transactionFilter.of(x=>{if(!x.docChanged||!x.isUserEvent("input.type"))return x;let v=x.startState.languageDataAt("indentOnInput",x.startState.selection.main.head);if(!v.length)return x;let E=x.newDoc,{head:G}=x.newSelection.main,le=E.lineAt(G);if(G>le.from+pe)return x;let Se=E.sliceString(le.from,G);if(!v.some(ot=>ot.test(Se)))return x;let{state:Pe}=x,Ue=-1,ze=[];for(let{head:ot}of Pe.selection.ranges){let ne=Pe.doc.lineAt(ot);if(ne.from==Ue)continue;Ue=ne.from;let p=O(Pe,ne.from);if(p==null)continue;let M=/^\s*/.exec(ne.text)[0],K=g(Pe,p);M!=K&&ze.push({from:ne.from,to:ne.from+M.length,insert:K})}return ze.length?[x,{changes:ze,sequential:!0}]:x})}const S=re.Facet.define(),B=new D.NodeProp;function V(x){let v=x.firstChild,E=x.lastChild;return v&&v.to<E.from?{from:v.to,to:E.type.isError?x.to:E.from}:null}function Z(x,v,E){let G=De(x);if(G.length==0)return null;let le=G.resolveInner(E),Se=null;for(let Pe=le;Pe;Pe=Pe.parent){if(Pe.to<=E||Pe.from>E)continue;if(Se&&Pe.from<v)break;let Ue=Pe.type.prop(B);if(Ue){let ze=Ue(Pe,x);ze&&ze.from<=E&&ze.from>=v&&ze.to>E&&(Se=ze)}}return Se}function F(x,v,E){for(let G of x.facet(S)){let le=G(x,v,E);if(le)return le}return Z(x,v,E)}b.IndentContext=w,b.LRLanguage=Oe,b.Language=je,b.LanguageDescription=W,b.LanguageSupport=Y,b.ParseContext=me,b.TreeIndentContext=Ae,b.continuedIndent=_e,b.defineLanguageFacet=Xe,b.delimitedIndent=et,b.ensureSyntaxTree=ve,b.flatIndent=at,b.foldInside=V,b.foldNodeProp=B,b.foldService=S,b.foldable=F,b.getIndentUnit=d,b.getIndentation=O,b.indentNodeProp=T,b.indentOnInput=k,b.indentService=Q,b.indentString=g,b.indentUnit=R,b.language=j,b.languageDataProp=Me,b.syntaxParserRunning=Te,b.syntaxTree=De,b.syntaxTreeAvailable=ue},{"@codemirror/state":22,"@codemirror/text":24,"@codemirror/view":27,"@lezer/common":28}],14:[function(Re,mt,b){"use strict";Object.defineProperty(b,"__esModule",{value:!0});function D(Me){var Xe={as:"keyword",do:"keyword",else:"keyword",end:"keyword",exception:"keyword",fun:"keyword",functor:"keyword",if:"keyword",in:"keyword",include:"keyword",let:"keyword",of:"keyword",open:"keyword",rec:"keyword",struct:"keyword",then:"keyword",type:"keyword",val:"keyword",while:"keyword",with:"keyword"},je=Me.extraWords||{};for(var We in je)je.hasOwnProperty(We)&&(Xe[We]=Me.extraWords[We]);var Oe=[];for(var De in Xe)Oe.push(De);function ve(Ee,me){var Ve=Ee.next();if(Ve==='"')return me.tokenize=ue,me.tokenize(Ee,me);if(Ve==="{"&&Ee.eat("|"))return me.longString=!0,me.tokenize=He,me.tokenize(Ee,me);if(Ve==="("&&Ee.eat("*"))return me.commentLevel++,me.tokenize=Te,me.tokenize(Ee,me);if(Ve==="~"||Ve==="?")return Ee.eatWhile(/\w/),"variableName.special";if(Ve==="`")return Ee.eatWhile(/\w/),"quote";if(Ve==="/"&&Me.slashComments&&Ee.eat("/"))return Ee.skipToEnd(),"comment";if(/\d/.test(Ve))return Ve==="0"&&Ee.eat(/[bB]/)&&Ee.eatWhile(/[01]/),Ve==="0"&&Ee.eat(/[xX]/)&&Ee.eatWhile(/[0-9a-fA-F]/),Ve==="0"&&Ee.eat(/[oO]/)?Ee.eatWhile(/[0-7]/):(Ee.eatWhile(/[\d_]/),Ee.eat(".")&&Ee.eatWhile(/[\d]/),Ee.eat(/[eE]/)&&Ee.eatWhile(/[\d\-+]/)),"number";if(/[+\-*&%=<>!?|@\.~:]/.test(Ve))return"operator";if(/[\w\xa1-\uffff]/.test(Ve)){Ee.eatWhile(/[\w\xa1-\uffff]/);var ke=Ee.current();return Xe.hasOwnProperty(ke)?Xe[ke]:"variable"}return null}function ue(Ee,me){for(var Ve,ke=!1,ae=!1;(Ve=Ee.next())!=null;){if(Ve==='"'&&!ae){ke=!0;break}ae=!ae&&Ve==="\\"}return ke&&!ae&&(me.tokenize=ve),"string"}function Te(Ee,me){for(var Ve,ke;me.commentLevel>0&&(ke=Ee.next())!=null;)Ve==="("&&ke==="*"&&me.commentLevel++,Ve==="*"&&ke===")"&&me.commentLevel--,Ve=ke;return me.commentLevel<=0&&(me.tokenize=ve),"comment"}function He(Ee,me){for(var Ve,ke;me.longString&&(ke=Ee.next())!=null;)Ve==="|"&&ke==="}"&&(me.longString=!1),Ve=ke;return me.longString||(me.tokenize=ve),"string"}return{startState:function(){return{tokenize:ve,commentLevel:0,longString:!1}},token:function(Ee,me){return Ee.eatSpace()?null:me.tokenize(Ee,me)},languageData:{autocomplete:Oe,commentTokens:{line:Me.slashComments?"//":void 0,block:{open:"(*",close:"*)"}}}}}const re=D({extraWords:{and:"keyword",assert:"keyword",begin:"keyword",class:"keyword",constraint:"keyword",done:"keyword",downto:"keyword",external:"keyword",function:"keyword",initializer:"keyword",lazy:"keyword",match:"keyword",method:"keyword",module:"keyword",mutable:"keyword",new:"keyword",nonrec:"keyword",object:"keyword",private:"keyword",sig:"keyword",to:"keyword",try:"keyword",value:"keyword",virtual:"keyword",when:"keyword",raise:"builtin",failwith:"builtin",true:"builtin",false:"builtin",asr:"builtin",land:"builtin",lor:"builtin",lsl:"builtin",lsr:"builtin",lxor:"builtin",mod:"builtin",or:"builtin",raise_notrace:"builtin",trace:"builtin",exit:"builtin",print_string:"builtin",print_endline:"builtin",int:"type",float:"type",bool:"type",char:"type",string:"type",unit:"type",List:"builtin"}}),ye=D({extraWords:{abstract:"keyword",assert:"keyword",base:"keyword",begin:"keyword",class:"keyword",default:"keyword",delegate:"keyword","do!":"keyword",done:"keyword",downcast:"keyword",downto:"keyword",elif:"keyword",extern:"keyword",finally:"keyword",for:"keyword",function:"keyword",global:"keyword",inherit:"keyword",inline:"keyword",interface:"keyword",internal:"keyword",lazy:"keyword","let!":"keyword",match:"keyword",member:"keyword",module:"keyword",mutable:"keyword",namespace:"keyword",new:"keyword",null:"keyword",override:"keyword",private:"keyword",public:"keyword","return!":"keyword",return:"keyword",select:"keyword",static:"keyword",to:"keyword",try:"keyword",upcast:"keyword","use!":"keyword",use:"keyword",void:"keyword",when:"keyword","yield!":"keyword",yield:"keyword",atomic:"keyword",break:"keyword",checked:"keyword",component:"keyword",const:"keyword",constraint:"keyword",constructor:"keyword",continue:"keyword",eager:"keyword",event:"keyword",external:"keyword",fixed:"keyword",method:"keyword",mixin:"keyword",object:"keyword",parallel:"keyword",process:"keyword",protected:"keyword",pure:"keyword",sealed:"keyword",tailcall:"keyword",trait:"keyword",virtual:"keyword",volatile:"keyword",List:"builtin",Seq:"builtin",Map:"builtin",Set:"builtin",Option:"builtin",int:"builtin",string:"builtin",not:"builtin",true:"builtin",false:"builtin",raise:"builtin",failwith:"builtin"},slashComments:!0}),we=D({extraWords:{abstype:"keyword",and:"keyword",andalso:"keyword",case:"keyword",datatype:"keyword",fn:"keyword",handle:"keyword",infix:"keyword",infixr:"keyword",local:"keyword",nonfix:"keyword",op:"keyword",orelse:"keyword",raise:"keyword",withtype:"keyword",eqtype:"keyword",sharing:"keyword",sig:"keyword",signature:"keyword",structure:"keyword",where:"keyword",true:"keyword",false:"keyword",int:"builtin",real:"builtin",string:"builtin",char:"builtin",bool:"builtin"},slashComments:!0});b.fSharp=ye,b.oCaml=re,b.sml=we},{}],15:[function(Re,mt,b){"use strict";Object.defineProperty(b,"__esModule",{value:!0});var D=Re("@codemirror/view"),re=Re("@codemirror/state"),ye=Re("@codemirror/tooltip"),we=Re("@codemirror/panel"),Me=Re("@codemirror/gutter"),Xe=Re("@codemirror/rangeset"),je=Re("crelt");function We(F){return F&&typeof F=="object"&&"default"in F?F:{default:F}}var Oe=We(je);class De{constructor(x,v,E){this.from=x,this.to=v,this.diagnostic=E}}class ve{constructor(x,v,E){this.diagnostics=x,this.panel=v,this.selected=E}static init(x,v,E){let G=D.Decoration.set(x.map(le=>le.from==le.to||le.from==le.to-1&&E.doc.lineAt(le.from).to==le.from?D.Decoration.widget({widget:new U(le),diagnostic:le}).range(le.from):D.Decoration.mark({attributes:{class:"cm-lintRange cm-lintRange-"+le.severity},diagnostic:le}).range(le.from,le.to)),!0);return new ve(G,v,ue(G))}}function ue(F,x=null,v=0){let E=null;return F.between(v,1e9,(G,le,{spec:Se})=>{if(!(x&&Se.diagnostic!=x))return E=new De(G,le,Se.diagnostic),!1}),E}function Te(F,x){return F.field(ke,!1)?x:x.concat(re.StateEffect.appendConfig.of([ke,D.EditorView.decorations.compute([ke],v=>{let{selected:E,panel:G}=v.field(ke);return!E||!G||E.from==E.to?D.Decoration.none:D.Decoration.set([H.range(E.from,E.to)])}),ye.hoverTooltip(j),Ke]))}function He(F,x){return{effects:Te(F,[Ee.of(x)])}}const Ee=re.StateEffect.define(),me=re.StateEffect.define(),Ve=re.StateEffect.define(),ke=re.StateField.define({create(){return new ve(D.Decoration.none,null,null)},update(F,x){if(x.docChanged){let v=F.diagnostics.map(x.changes),E=null;if(F.selected){let G=x.changes.mapPos(F.selected.from,1);E=ue(v,F.selected.diagnostic,G)||ue(v,null,G)}F=new ve(v,F.panel,E)}for(let v of x.effects)v.is(Ee)?F=ve.init(v.value,F.panel,x.state):v.is(me)?F=new ve(F.diagnostics,v.value?ge.open:null,F.selected):v.is(Ve)&&(F=new ve(F.diagnostics,F.panel,v.value));return F},provide:F=>[we.showPanel.from(F,x=>x.panel),D.EditorView.decorations.from(F,x=>x.diagnostics)]});function ae(F){let x=F.field(ke,!1);return x?x.diagnostics.size:0}const H=D.Decoration.mark({class:"cm-lintRange cm-lintRange-active"});function j(F,x,v){let{diagnostics:E}=F.state.field(ke),G=[],le=2e8,Se=0;return E.between(x-(v<0?1:0),x+(v>0?1:0),(Pe,Ue,{spec:ze})=>{x>=Pe&&x<=Ue&&(Pe==Ue||(x>Pe||v>0)&&(x<Ue||v<0))&&(G.push(ze.diagnostic),le=Math.min(Pe,le),Se=Math.max(Ue,Se))}),G.length?{pos:le,end:Se,above:F.state.doc.lineAt(le).to<Se,create(){return{dom:Y(F,G)}}}:null}function Y(F,x){return Oe.default("ul",{class:"cm-tooltip-lint"},x.map(v=>_(F,v,!1)))}const W=F=>{let x=F.state.field(ke,!1);(!x||!x.panel)&&F.dispatch({effects:Te(F.state,[me.of(!0)])});let v=we.getPanel(F,ge.open);return v&&v.dom.querySelector(".cm-panel-lint ul").focus(),!0},Q=F=>{let x=F.state.field(ke,!1);return!x||!x.panel?!1:(F.dispatch({effects:me.of(!1)}),!0)},R=F=>{let x=F.state.field(ke,!1);if(!x)return!1;let v=F.state.selection.main,E=x.diagnostics.iter(v.to+1);return!E.value&&(E=x.diagnostics.iter(0),!E.value||E.from==v.from&&E.to==v.to)?!1:(F.dispatch({selection:{anchor:E.from,head:E.to},scrollIntoView:!0}),!0)},d=[{key:"Mod-Shift-m",run:W},{key:"F8",run:R}],g=D.ViewPlugin.fromClass(class{constructor(F){this.view=F,this.timeout=-1,this.set=!0;let{delay:x}=F.state.facet(O);this.lintTime=Date.now()+x,this.run=this.run.bind(this),this.timeout=setTimeout(this.run,x)}run(){let F=Date.now();if(F<this.lintTime-10)setTimeout(this.run,this.lintTime-F);else{this.set=!1;let{state:x}=this.view,{sources:v}=x.facet(O);Promise.all(v.map(E=>Promise.resolve(E(this.view)))).then(E=>{var G,le;let Se=E.reduce((Pe,Ue)=>Pe.concat(Ue));this.view.state.doc==x.doc&&(Se.length||((le=(G=this.view.state.field(ke,!1))===null||G===void 0?void 0:G.diagnostics)===null||le===void 0?void 0:le.size))&&this.view.dispatch(He(this.view.state,Se))},E=>{D.logException(this.view.state,E)})}}update(F){let x=F.state.facet(O);(F.docChanged||x!=F.startState.facet(O))&&(this.lintTime=Date.now()+x.delay,this.set||(this.set=!0,this.timeout=setTimeout(this.run,x.delay)))}force(){this.set&&(this.lintTime=Date.now(),this.run())}destroy(){clearTimeout(this.timeout)}}),O=re.Facet.define({combine(F){return{sources:F.map(x=>x.source),delay:F.length?Math.max(...F.map(x=>x.delay)):750}},enables:g});function w(F,x={}){var v;return O.of({source:F,delay:(v=x.delay)!==null&&v!==void 0?v:750})}function T(F){let x=F.plugin(g);x&&x.force()}function z(F){let x=[];if(F)e:for(let{name:v}of F){for(let E=0;E<v.length;E++){let G=v[E];if(/[a-zA-Z]/.test(G)&&!x.some(le=>le.toLowerCase()==G.toLowerCase())){x.push(G);continue e}}x.push("")}return x}function _(F,x,v){var E;let G=v?z(x.actions):[];return Oe.default("li",{class:"cm-diagnostic cm-diagnostic-"+x.severity},Oe.default("span",{class:"cm-diagnosticText"},x.message),(E=x.actions)===null||E===void 0?void 0:E.map((le,Se)=>{let Pe=ne=>{ne.preventDefault();let p=ue(F.state.field(ke).diagnostics,x);p&&le.apply(F,p.from,p.to)},{name:Ue}=le,ze=G[Se]?Ue.indexOf(G[Se]):-1,ot=ze<0?Ue:[Ue.slice(0,ze),Oe.default("u",Ue.slice(ze,ze+1)),Ue.slice(ze+1)];return Oe.default("button",{type:"button",class:"cm-diagnosticAction",onclick:Pe,onmousedown:Pe,"aria-label":` Action: ${Ue}${ze<0?"":` (access key "${G[Se]})"`}.`},ot)}),x.source&&Oe.default("div",{class:"cm-diagnosticSource"},x.source))}class U extends D.WidgetType{constructor(x){super();this.diagnostic=x}eq(x){return x.diagnostic==this.diagnostic}toDOM(){return Oe.default("span",{class:"cm-lintPoint cm-lintPoint-"+this.diagnostic.severity})}}class te{constructor(x,v){this.diagnostic=v,this.id="item_"+Math.floor(Math.random()*4294967295).toString(16),this.dom=_(x,v,!0),this.dom.id=this.id,this.dom.setAttribute("role","option")}}class ge{constructor(x){this.view=x,this.items=[];let v=G=>{if(G.keyCode==27)Q(this.view),this.view.focus();else if(G.keyCode==38||G.keyCode==33)this.moveSelection((this.selectedIndex-1+this.items.length)%this.items.length);else if(G.keyCode==40||G.keyCode==34)this.moveSelection((this.selectedIndex+1)%this.items.length);else if(G.keyCode==36)this.moveSelection(0);else if(G.keyCode==35)this.moveSelection(this.items.length-1);else if(G.keyCode==13)this.view.focus();else if(G.keyCode>=65&&G.keyCode<=90&&this.selectedIndex>=0){let{diagnostic:le}=this.items[this.selectedIndex],Se=z(le.actions);for(let Pe=0;Pe<Se.length;Pe++)if(Se[Pe].toUpperCase().charCodeAt(0)==G.keyCode){let Ue=ue(this.view.state.field(ke).diagnostics,le);Ue&&le.actions[Pe].apply(x,Ue.from,Ue.to)}}else return;G.preventDefault()},E=G=>{for(let le=0;le<this.items.length;le++)this.items[le].dom.contains(G.target)&&this.moveSelection(le)};this.list=Oe.default("ul",{tabIndex:0,role:"listbox","aria-label":this.view.state.phrase("Diagnostics"),onkeydown:v,onclick:E}),this.dom=Oe.default("div",{class:"cm-panel-lint"},this.list,Oe.default("button",{type:"button",name:"close","aria-label":this.view.state.phrase("close"),onclick:()=>Q(this.view)},"\xD7")),this.update()}get selectedIndex(){let x=this.view.state.field(ke).selected;if(!x)return-1;for(let v=0;v<this.items.length;v++)if(this.items[v].diagnostic==x.diagnostic)return v;return-1}update(){let{diagnostics:x,selected:v}=this.view.state.field(ke),E=0,G=!1,le=null;for(x.between(0,this.view.state.doc.length,(Se,Pe,{spec:Ue})=>{let ze=-1,ot;for(let ne=E;ne<this.items.length;ne++)if(this.items[ne].diagnostic==Ue.diagnostic){ze=ne;break}ze<0?(ot=new te(this.view,Ue.diagnostic),this.items.splice(E,0,ot),G=!0):(ot=this.items[ze],ze>E&&(this.items.splice(E,ze-E),G=!0)),v&&ot.diagnostic==v.diagnostic?ot.dom.hasAttribute("aria-selected")||(ot.dom.setAttribute("aria-selected","true"),le=ot):ot.dom.hasAttribute("aria-selected")&&ot.dom.removeAttribute("aria-selected"),E++});E<this.items.length&&!(this.items.length==1&&this.items[0].diagnostic.from<0);)G=!0,this.items.pop();this.items.length==0&&(this.items.push(new te(this.view,{from:-1,to:-1,severity:"info",message:this.view.state.phrase("No diagnostics")})),G=!0),le?(this.list.setAttribute("aria-activedescendant",le.id),this.view.requestMeasure({key:this,read:()=>({sel:le.dom.getBoundingClientRect(),panel:this.list.getBoundingClientRect()}),write:({sel:Se,panel:Pe})=>{Se.top<Pe.top?this.list.scrollTop-=Pe.top-Se.top:Se.bottom>Pe.bottom&&(this.list.scrollTop+=Se.bottom-Pe.bottom)}})):this.selectedIndex<0&&this.list.removeAttribute("aria-activedescendant"),G&&this.sync()}sync(){let x=this.list.firstChild;function v(){let E=x;x=E.nextSibling,E.remove()}for(let E of this.items)if(E.dom.parentNode==this.list){for(;x!=E.dom;)v();x=E.dom.nextSibling}else this.list.insertBefore(E.dom,x);for(;x;)v()}moveSelection(x){if(this.selectedIndex<0)return;let v=this.view.state.field(ke),E=ue(v.diagnostics,this.items[x].diagnostic);!E||this.view.dispatch({selection:{anchor:E.from,head:E.to},scrollIntoView:!0,effects:Ve.of(E)})}static open(x){return new ge(x)}}function Ae(F,x='viewBox="0 0 40 40"'){return`url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" ${x}>${encodeURIComponent(F)}</svg>')`}function qe(F){return Ae(`<path d="m0 2.5 l2 -1.5 l1 0 l2 1.5 l1 0" stroke="${F}" fill="none" stroke-width=".7"/>`,'width="6" height="3"')}const Ke=D.EditorView.baseTheme({".cm-diagnostic":{padding:"3px 6px 3px 8px",marginLeft:"-1px",display:"block",whiteSpace:"pre-wrap"},".cm-diagnostic-error":{borderLeft:"5px solid #d11"},".cm-diagnostic-warning":{borderLeft:"5px solid orange"},".cm-diagnostic-info":{borderLeft:"5px solid #999"},".cm-diagnosticAction":{font:"inherit",border:"none",padding:"2px 4px",backgroundColor:"#444",color:"white",borderRadius:"3px",marginLeft:"8px"},".cm-diagnosticSource":{fontSize:"70%",opacity:.7},".cm-lintRange":{backgroundPosition:"left bottom",backgroundRepeat:"repeat-x",paddingBottom:"0.7px"},".cm-lintRange-error":{backgroundImage:qe("#d11")},".cm-lintRange-warning":{backgroundImage:qe("orange")},".cm-lintRange-info":{backgroundImage:qe("#999")},".cm-lintRange-active":{backgroundColor:"#ffdd9980"},".cm-tooltip-lint":{padding:0,margin:0},".cm-lintPoint":{position:"relative","&:after":{content:'""',position:"absolute",bottom:0,left:"-2px",borderLeft:"3px solid transparent",borderRight:"3px solid transparent",borderBottom:"4px solid #d11"}},".cm-lintPoint-warning":{"&:after":{borderBottomColor:"orange"}},".cm-lintPoint-info":{"&:after":{borderBottomColor:"#999"}},".cm-panel.cm-panel-lint":{position:"relative","& ul":{maxHeight:"100px",overflowY:"auto","& [aria-selected]":{backgroundColor:"#ddd","& u":{textDecoration:"underline"}},"&:focus [aria-selected]":{background_fallback:"#bdf",backgroundColor:"Highlight",color_fallback:"white",color:"HighlightText"},"& u":{textDecoration:"none"},padding:0,margin:0},"& [name=close]":{position:"absolute",top:"0",right:"2px",background:"inherit",border:"none",font:"inherit",padding:0,margin:0}}});class et extends Me.GutterMarker{constructor(x){super();this.diagnostics=x,this.severity=x.reduce((v,E)=>{let G=E.severity;return G=="error"||G=="warning"&&v=="info"?G:v},"info")}toDOM(x){let v=document.createElement("div");return v.className="cm-lint-marker cm-lint-marker-"+this.severity,v.onmouseover=()=>at(x,v,this.diagnostics),v}}function nt(F,x){let v=E=>{let G=x.getBoundingClientRect();if(!(E.clientX>G.left-10&&E.clientX<G.right+10&&E.clientY>G.top-10&&E.clientY<G.bottom+10)){for(let le=E.target;le;le=le.parentNode)if(le.nodeType==1&&le.classList.contains("cm-tooltip-lint"))return;window.removeEventListener("mousemove",v),F.state.field(B)&&F.dispatch({effects:S.of(null)})}};window.addEventListener("mousemove",v)}function at(F,x,v){function E(){let le=F.visualLineAtHeight(x.getBoundingClientRect().top+5);const Se=F.coordsAtPos(le.from),Pe=x.getBoundingClientRect();Se&&F.dispatch({effects:S.of({pos:le.from,above:!1,create(){return{dom:Y(F,v),offset:{x:Pe.left-Se.left,y:0}}}})}),x.onmouseout=x.onmousemove=null,nt(F,x)}let G=setTimeout(E,600);x.onmouseout=()=>{clearTimeout(G),x.onmouseout=x.onmousemove=null},x.onmousemove=()=>{clearTimeout(G),G=setTimeout(E,600)}}function _e(F,x){let v=Object.create(null);for(let G of x){let le=F.lineAt(G.from);(v[le.from]||(v[le.from]=[])).push(G)}let E=[];for(let G in v)E.push(new et(v[G]).range(+G));return Xe.RangeSet.of(E,!0)}const pe=Me.gutter({class:"cm-gutter-lint",markers:F=>F.state.field(k)}),k=re.StateField.define({create(){return Xe.RangeSet.empty},update(F,x){F=F.map(x.changes);for(let v of x.effects)v.is(Ee)&&(F=_e(x.state.doc,v.value));return F}}),S=re.StateEffect.define(),B=re.StateField.define({create(){return null},update(F,x){return F&&x.docChanged&&(F=Object.assign(Object.assign({},F),{pos:x.changes.mapPos(F.pos)})),x.effects.reduce((v,E)=>E.is(S)?E.value:v,F)},provide:F=>ye.showTooltip.from(F)}),V=D.EditorView.baseTheme({".cm-gutter-lint":{width:"1.4em","& .cm-gutterElement":{padding:"0 .2em",display:"flex",flexDirection:"column",justifyContent:"center"}},".cm-lint-marker":{width:"1em",height:"1em"},".cm-lint-marker-info":{content:Ae('<path fill="#aaf" stroke="#77e" stroke-width="6" stroke-linejoin="round" d="M5 5L35 5L35 35L5 35Z"/>')},".cm-lint-marker-warning":{content:Ae('<path fill="#fe8" stroke="#fd7" stroke-width="6" stroke-linejoin="round" d="M20 6L37 35L3 35Z"/>')},".cm-lint-marker-error:before":{content:Ae('<circle cx="20" cy="20" r="15" fill="#f87" stroke="#f43" stroke-width="6"/>')}});function Z(){return[k,pe,V,B]}b.closeLintPanel=Q,b.diagnosticCount=ae,b.forceLinting=T,b.lintGutter=Z,b.lintKeymap=d,b.linter=w,b.nextDiagnostic=R,b.openLintPanel=W,b.setDiagnostics=He,b.setDiagnosticsEffect=Ee},{"@codemirror/gutter":9,"@codemirror/panel":17,"@codemirror/rangeset":18,"@codemirror/state":22,"@codemirror/tooltip":26,"@codemirror/view":27,crelt:29}],16:[function(Re,mt,b){"use strict";Object.defineProperty(b,"__esModule",{value:!0});var D=Re("@codemirror/state"),re=Re("@codemirror/language"),ye=Re("@codemirror/view"),we=Re("@lezer/common");const Me=ye.EditorView.baseTheme({".cm-matchingBracket":{backgroundColor:"#328c8252"},".cm-nonmatchingBracket":{backgroundColor:"#bb555544"}}),Xe=1e4,je="()[]{}",We=D.Facet.define({combine(ke){return D.combineConfig(ke,{afterCursor:!0,brackets:je,maxScanDistance:Xe})}}),Oe=ye.Decoration.mark({class:"cm-matchingBracket"}),De=ye.Decoration.mark({class:"cm-nonmatchingBracket"}),ue=[D.StateField.define({create(){return ye.Decoration.none},update(ke,ae){if(!ae.docChanged&&!ae.selection)return ke;let H=[],j=ae.state.facet(We);for(let Y of ae.state.selection.ranges){if(!Y.empty)continue;let W=Ee(ae.state,Y.head,-1,j)||Y.head>0&&Ee(ae.state,Y.head-1,1,j)||j.afterCursor&&(Ee(ae.state,Y.head,1,j)||Y.head<ae.state.doc.length&&Ee(ae.state,Y.head+1,-1,j));if(!W)continue;let Q=W.matched?Oe:De;H.push(Q.range(W.start.from,W.start.to)),W.end&&H.push(Q.range(W.end.from,W.end.to))}return ye.Decoration.set(H,!0)},provide:ke=>ye.EditorView.decorations.from(ke)}),Me];function Te(ke={}){return[We.of(ke),ue]}function He(ke,ae,H){let j=ke.prop(ae<0?we.NodeProp.openedBy:we.NodeProp.closedBy);if(j)return j;if(ke.name.length==1){let Y=H.indexOf(ke.name);if(Y>-1&&Y%2==(ae<0?1:0))return[H[Y+ae]]}return null}function Ee(ke,ae,H,j={}){let Y=j.maxScanDistance||Xe,W=j.brackets||je,Q=re.syntaxTree(ke),R=Q.resolveInner(ae,H);for(let d=R;d;d=d.parent){let g=He(d.type,H,W);if(g&&d.from<d.to)return me(ke,ae,H,d,g,W)}return Ve(ke,ae,H,Q,R.type,Y,W)}function me(ke,ae,H,j,Y,W){let Q=j.parent,R={from:j.from,to:j.to},d=0,g=Q==null?void 0:Q.cursor;if(g&&(H<0?g.childBefore(j.from):g.childAfter(j.to)))do if(H<0?g.to<=j.from:g.from>=j.to){if(d==0&&Y.indexOf(g.type.name)>-1&&g.from<g.to)return{start:R,end:{from:g.from,to:g.to},matched:!0};if(He(g.type,H,W))d++;else if(He(g.type,-H,W)&&(d--,d==0))return{start:R,end:g.from==g.to?void 0:{from:g.from,to:g.to},matched:!1}}while(H<0?g.prevSibling():g.nextSibling());return{start:R,matched:!1}}function Ve(ke,ae,H,j,Y,W,Q){let R=H<0?ke.sliceDoc(ae-1,ae):ke.sliceDoc(ae,ae+1),d=Q.indexOf(R);if(d<0||d%2==0!=H>0)return null;let g={from:H<0?ae-1:ae,to:H>0?ae+1:ae},O=ke.doc.iterRange(ae,H>0?ke.doc.length:0),w=0;for(let T=0;!O.next().done&&T<=W;){let z=O.value;H<0&&(T+=z.length);let _=ae+T*H;for(let U=H>0?0:z.length-1,te=H>0?z.length:-1;U!=te;U+=H){let ge=Q.indexOf(z[U]);if(!(ge<0||j.resolve(_+U,1).type!=Y))if(ge%2==0==H>0)w++;else{if(w==1)return{start:g,end:{from:_+U,to:_+U+1},matched:ge>>1==d>>1};w--}}H>0&&(T+=z.length)}return O.done?{start:g,matched:!1}:null}b.bracketMatching=Te,b.matchBrackets=Ee},{"@codemirror/language":13,"@codemirror/state":22,"@codemirror/view":27,"@lezer/common":28}],17:[function(Re,mt,b){"use strict";Object.defineProperty(b,"__esModule",{value:!0});var D=Re("@codemirror/view"),re=Re("@codemirror/state");const ye=re.Facet.define({combine(ve){let ue,Te;for(let He of ve)ue=ue||He.topContainer,Te=Te||He.bottomContainer;return{topContainer:ue,bottomContainer:Te}}});function we(ve){return ve?[ye.of(ve)]:[]}function Me(ve,ue){let Te=ve.plugin(Xe),He=Te?Te.specs.indexOf(ue):-1;return He>-1?Te.panels[He]:null}const Xe=D.ViewPlugin.fromClass(class{constructor(ve){this.input=ve.state.facet(De),this.specs=this.input.filter(Te=>Te),this.panels=this.specs.map(Te=>Te(ve));let ue=ve.state.facet(ye);this.top=new je(ve,!0,ue.topContainer),this.bottom=new je(ve,!1,ue.bottomContainer),this.top.sync(this.panels.filter(Te=>Te.top)),this.bottom.sync(this.panels.filter(Te=>!Te.top));for(let Te of this.panels)Te.dom.classList.add("cm-panel"),Te.mount&&Te.mount()}update(ve){let ue=ve.state.facet(ye);this.top.container!=ue.topContainer&&(this.top.sync([]),this.top=new je(ve.view,!0,ue.topContainer)),this.bottom.container!=ue.bottomContainer&&(this.bottom.sync([]),this.bottom=new je(ve.view,!1,ue.bottomContainer)),this.top.syncClasses(),this.bottom.syncClasses();let Te=ve.state.facet(De);if(Te!=this.input){let He=Te.filter(ae=>ae),Ee=[],me=[],Ve=[],ke=[];for(let ae of He){let H=this.specs.indexOf(ae),j;H<0?(j=ae(ve.view),ke.push(j)):(j=this.panels[H],j.update&&j.update(ve)),Ee.push(j),(j.top?me:Ve).push(j)}this.specs=He,this.panels=Ee,this.top.sync(me),this.bottom.sync(Ve);for(let ae of ke)ae.dom.classList.add("cm-panel"),ae.mount&&ae.mount()}else for(let He of this.panels)He.update&&He.update(ve)}destroy(){this.top.sync([]),this.bottom.sync([])}},{provide:D.PluginField.scrollMargins.from(ve=>({top:ve.top.scrollMargin(),bottom:ve.bottom.scrollMargin()}))});class je{constructor(ue,Te,He){this.view=ue,this.top=Te,this.container=He,this.dom=void 0,this.classes="",this.panels=[],this.syncClasses()}sync(ue){for(let Te of this.panels)Te.destroy&&ue.indexOf(Te)<0&&Te.destroy();this.panels=ue,this.syncDOM()}syncDOM(){if(this.panels.length==0){this.dom&&(this.dom.remove(),this.dom=void 0);return}if(!this.dom){this.dom=document.createElement("div"),this.dom.className=this.top?"cm-panels cm-panels-top":"cm-panels cm-panels-bottom",this.dom.style[this.top?"top":"bottom"]="0";let Te=this.container||this.view.dom;Te.insertBefore(this.dom,this.top?Te.firstChild:null)}let ue=this.dom.firstChild;for(let Te of this.panels)if(Te.dom.parentNode==this.dom){for(;ue!=Te.dom;)ue=We(ue);ue=ue.nextSibling}else this.dom.insertBefore(Te.dom,ue);for(;ue;)ue=We(ue)}scrollMargin(){return!this.dom||this.container?0:Math.max(0,this.top?this.dom.getBoundingClientRect().bottom-Math.max(0,this.view.scrollDOM.getBoundingClientRect().top):Math.min(innerHeight,this.view.scrollDOM.getBoundingClientRect().bottom)-this.dom.getBoundingClientRect().top)}syncClasses(){if(!(!this.container||this.classes==this.view.themeClasses)){for(let ue of this.classes.split(" "))ue&&this.container.classList.remove(ue);for(let ue of(this.classes=this.view.themeClasses).split(" "))ue&&this.container.classList.add(ue)}}}function We(ve){let ue=ve.nextSibling;return ve.remove(),ue}const Oe=D.EditorView.baseTheme({".cm-panels":{boxSizing:"border-box",position:"sticky",left:0,right:0},"&light .cm-panels":{backgroundColor:"#f5f5f5",color:"black"},"&light .cm-panels-top":{borderBottom:"1px solid #ddd"},"&light .cm-panels-bottom":{borderTop:"1px solid #ddd"},"&dark .cm-panels":{backgroundColor:"#333338",color:"white"}}),De=re.Facet.define({enables:[Xe,Oe]});b.getPanel=Me,b.panels=we,b.showPanel=De},{"@codemirror/state":22,"@codemirror/view":27}],18:[function(Re,mt,b){"use strict";Object.defineProperty(b,"__esModule",{value:!0});var D=Re("@codemirror/state");class re{eq(H){return this==H}range(H,j=H){return new ye(H,j,this)}}re.prototype.startSide=re.prototype.endSide=0,re.prototype.point=!1,re.prototype.mapMode=D.MapMode.TrackDel;class ye{constructor(H,j,Y){this.from=H,this.to=j,this.value=Y}}function we(ae,H){return ae.from-H.from||ae.value.startSide-H.value.startSide}class Me{constructor(H,j,Y,W){this.from=H,this.to=j,this.value=Y,this.maxPoint=W}get length(){return this.to[this.to.length-1]}findIndex(H,j,Y,W=0){let Q=Y?this.to:this.from;for(let R=W,d=Q.length;;){if(R==d)return R;let g=R+d>>1,O=Q[g]-H||(Y?this.value[g].endSide:this.value[g].startSide)-j;if(g==R)return O>=0?R:d;O>=0?d=g:R=g+1}}between(H,j,Y,W){for(let Q=this.findIndex(j,-1e9,!0),R=this.findIndex(Y,1e9,!1,Q);Q<R;Q++)if(W(this.from[Q]+H,this.to[Q]+H,this.value[Q])===!1)return!1}map(H,j){let Y=[],W=[],Q=[],R=-1,d=-1;for(let g=0;g<this.value.length;g++){let O=this.value[g],w=this.from[g]+H,T=this.to[g]+H,z,_;if(w==T){let U=j.mapPos(w,O.startSide,O.mapMode);if(U==null||(z=_=U,O.startSide!=O.endSide&&(_=j.mapPos(w,O.endSide),_<z)))continue}else if(z=j.mapPos(w,O.startSide),_=j.mapPos(T,O.endSide),z>_||z==_&&O.startSide>0&&O.endSide<=0)continue;(_-z||O.endSide-O.startSide)<0||(R<0&&(R=z),O.point&&(d=Math.max(d,_-z)),Y.push(O),W.push(z-R),Q.push(_-R))}return{mapped:Y.length?new Me(W,Q,Y,d):null,pos:R}}}class Xe{constructor(H,j,Y=Xe.empty,W){this.chunkPos=H,this.chunk=j,this.nextLayer=Y,this.maxPoint=W}get length(){let H=this.chunk.length-1;return H<0?0:Math.max(this.chunkEnd(H),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let H=this.nextLayer.size;for(let j of this.chunk)H+=j.value.length;return H}chunkEnd(H){return this.chunkPos[H]+this.chunk[H].length}update(H){let{add:j=[],sort:Y=!1,filterFrom:W=0,filterTo:Q=this.length}=H,R=H.filter;if(j.length==0&&!R)return this;if(Y&&j.slice().sort(we),this.isEmpty)return j.length?Xe.of(j):this;let d=new De(this,null,-1).goto(0),g=0,O=[],w=new We;for(;d.value||g<j.length;)if(g<j.length&&(d.from-j[g].from||d.startSide-j[g].value.startSide)>=0){let T=j[g++];w.addInner(T.from,T.to,T.value)||O.push(T)}else d.rangeIndex==1&&d.chunkIndex<this.chunk.length&&(g==j.length||this.chunkEnd(d.chunkIndex)<j[g].from)&&(!R||W>this.chunkEnd(d.chunkIndex)||Q<this.chunkPos[d.chunkIndex])&&w.addChunk(this.chunkPos[d.chunkIndex],this.chunk[d.chunkIndex])?d.nextChunk():((!R||W>d.to||Q<d.from||R(d.from,d.to,d.value))&&(w.addInner(d.from,d.to,d.value)||O.push(new ye(d.from,d.to,d.value))),d.next());return w.finishInner(this.nextLayer.isEmpty&&!O.length?Xe.empty:this.nextLayer.update({add:O,filter:R,filterFrom:W,filterTo:Q}))}map(H){if(H.length==0||this.isEmpty)return this;let j=[],Y=[],W=-1;for(let R=0;R<this.chunk.length;R++){let d=this.chunkPos[R],g=this.chunk[R],O=H.touchesRange(d,d+g.length);if(O===!1)W=Math.max(W,g.maxPoint),j.push(g),Y.push(H.mapPos(d));else if(O===!0){let{mapped:w,pos:T}=g.map(d,H);w&&(W=Math.max(W,w.maxPoint),j.push(w),Y.push(T))}}let Q=this.nextLayer.map(H);return j.length==0?Q:new Xe(Y,j,Q,W)}between(H,j,Y){if(!this.isEmpty){for(let W=0;W<this.chunk.length;W++){let Q=this.chunkPos[W],R=this.chunk[W];if(j>=Q&&H<=Q+R.length&&R.between(Q,H-Q,j-Q,Y)===!1)return}this.nextLayer.between(H,j,Y)}}iter(H=0){return ve.from([this]).goto(H)}get isEmpty(){return this.nextLayer==this}static iter(H,j=0){return ve.from(H).goto(j)}static compare(H,j,Y,W,Q=-1){let R=H.filter(T=>T.maxPoint>0||!T.isEmpty&&T.maxPoint>=Q),d=j.filter(T=>T.maxPoint>0||!T.isEmpty&&T.maxPoint>=Q),g=Oe(R,d,Y),O=new Te(R,g,Q),w=new Te(d,g,Q);Y.iterGaps((T,z,_)=>He(O,T,w,z,_,W)),Y.empty&&Y.length==0&&He(O,0,w,0,0,W)}static eq(H,j,Y=0,W){W==null&&(W=1e9);let Q=H.filter(w=>!w.isEmpty&&j.indexOf(w)<0),R=j.filter(w=>!w.isEmpty&&H.indexOf(w)<0);if(Q.length!=R.length)return!1;if(!Q.length)return!0;let d=Oe(Q,R),g=new Te(Q,d,0).goto(Y),O=new Te(R,d,0).goto(Y);for(;;){if(g.to!=O.to||!Ee(g.active,O.active)||g.point&&(!O.point||!g.point.eq(O.point)))return!1;if(g.to>W)return!0;g.next(),O.next()}}static spans(H,j,Y,W,Q=-1){var R;let d=new Te(H,null,Q,(R=W.filterPoint)===null||R===void 0?void 0:R.bind(W)).goto(j),g=j,O=d.openStart;for(;;){let w=Math.min(d.to,Y);if(d.point?(W.point(g,w,d.point,d.activeForPoint(d.to),O),O=d.openEnd(w)+(d.to>w?1:0)):w>g&&(W.span(g,w,d.active,O),O=d.openEnd(w)),d.to>Y)break;g=d.to,d.next()}return O}static of(H,j=!1){let Y=new We;for(let W of H instanceof ye?[H]:j?je(H):H)Y.add(W.from,W.to,W.value);return Y.finish()}}Xe.empty=new Xe([],[],null,-1);function je(ae){if(ae.length>1)for(let H=ae[0],j=1;j<ae.length;j++){let Y=ae[j];if(we(H,Y)>0)return ae.slice().sort(we);H=Y}return ae}Xe.empty.nextLayer=Xe.empty;class We{constructor(){this.chunks=[],this.chunkPos=[],this.chunkStart=-1,this.last=null,this.lastFrom=-1e9,this.lastTo=-1e9,this.from=[],this.to=[],this.value=[],this.maxPoint=-1,this.setMaxPoint=-1,this.nextLayer=null}finishChunk(H){this.chunks.push(new Me(this.from,this.to,this.value,this.maxPoint)),this.chunkPos.push(this.chunkStart),this.chunkStart=-1,this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint),this.maxPoint=-1,H&&(this.from=[],this.to=[],this.value=[])}add(H,j,Y){this.addInner(H,j,Y)||(this.nextLayer||(this.nextLayer=new We)).add(H,j,Y)}addInner(H,j,Y){let W=H-this.lastTo||Y.startSide-this.last.endSide;if(W<=0&&(H-this.lastFrom||Y.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return W<0?!1:(this.from.length==250&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=H),this.from.push(H-this.chunkStart),this.to.push(j-this.chunkStart),this.last=Y,this.lastFrom=H,this.lastTo=j,this.value.push(Y),Y.point&&(this.maxPoint=Math.max(this.maxPoint,j-H)),!0)}addChunk(H,j){if((H-this.lastTo||j.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,j.maxPoint),this.chunks.push(j),this.chunkPos.push(H);let Y=j.value.length-1;return this.last=j.value[Y],this.lastFrom=j.from[Y]+H,this.lastTo=j.to[Y]+H,!0}finish(){return this.finishInner(Xe.empty)}finishInner(H){if(this.from.length&&this.finishChunk(!1),this.chunks.length==0)return H;let j=new Xe(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(H):H,this.setMaxPoint);return this.from=null,j}}function Oe(ae,H,j){let Y=new Map;for(let Q of ae)for(let R=0;R<Q.chunk.length;R++)Q.chunk[R].maxPoint<=0&&Y.set(Q.chunk[R],Q.chunkPos[R]);let W=new Set;for(let Q of H)for(let R=0;R<Q.chunk.length;R++){let d=Y.get(Q.chunk[R]);d!=null&&(j?j.mapPos(d):d)==Q.chunkPos[R]&&!(j==null?void 0:j.touchesRange(d,d+Q.chunk[R].length))&&W.add(Q.chunk[R])}return W}class De{constructor(H,j,Y,W=0){this.layer=H,this.skip=j,this.minPoint=Y,this.rank=W}get startSide(){return this.value?this.value.startSide:0}get endSide(){return this.value?this.value.endSide:0}goto(H,j=-1e9){return this.chunkIndex=this.rangeIndex=0,this.gotoInner(H,j,!1),this}gotoInner(H,j,Y){for(;this.chunkIndex<this.layer.chunk.length;){let W=this.layer.chunk[this.chunkIndex];if(!(this.skip&&this.skip.has(W)||this.layer.chunkEnd(this.chunkIndex)<H||W.maxPoint<this.minPoint))break;this.chunkIndex++,Y=!1}if(this.chunkIndex<this.layer.chunk.length){let W=this.layer.chunk[this.chunkIndex].findIndex(H-this.layer.chunkPos[this.chunkIndex],j,!0);(!Y||this.rangeIndex<W)&&this.setRangeIndex(W)}this.next()}forward(H,j){(this.to-H||this.endSide-j)<0&&this.gotoInner(H,j,!0)}next(){for(;;)if(this.chunkIndex==this.layer.chunk.length){this.from=this.to=1e9,this.value=null;break}else{let H=this.layer.chunkPos[this.chunkIndex],j=this.layer.chunk[this.chunkIndex],Y=H+j.from[this.rangeIndex];if(this.from=Y,this.to=H+j.to[this.rangeIndex],this.value=j.value[this.rangeIndex],this.setRangeIndex(this.rangeIndex+1),this.minPoint<0||this.value.point&&this.to-this.from>=this.minPoint)break}}setRangeIndex(H){if(H==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex<this.layer.chunk.length&&this.skip.has(this.layer.chunk[this.chunkIndex]);)this.chunkIndex++;this.rangeIndex=0}else this.rangeIndex=H}nextChunk(){this.chunkIndex++,this.rangeIndex=0,this.next()}compare(H){return this.from-H.from||this.startSide-H.startSide||this.to-H.to||this.endSide-H.endSide}}class ve{constructor(H){this.heap=H}static from(H,j=null,Y=-1){let W=[];for(let Q=0;Q<H.length;Q++)for(let R=H[Q];!R.isEmpty;R=R.nextLayer)R.maxPoint>=Y&&W.push(new De(R,j,Y,Q));return W.length==1?W[0]:new ve(W)}get startSide(){return this.value?this.value.startSide:0}goto(H,j=-1e9){for(let Y of this.heap)Y.goto(H,j);for(let Y=this.heap.length>>1;Y>=0;Y--)ue(this.heap,Y);return this.next(),this}forward(H,j){for(let Y of this.heap)Y.forward(H,j);for(let Y=this.heap.length>>1;Y>=0;Y--)ue(this.heap,Y);(this.to-H||this.value.endSide-j)<0&&this.next()}next(){if(this.heap.length==0)this.from=this.to=1e9,this.value=null,this.rank=-1;else{let H=this.heap[0];this.from=H.from,this.to=H.to,this.value=H.value,this.rank=H.rank,H.value&&H.next(),ue(this.heap,0)}}}function ue(ae,H){for(let j=ae[H];;){let Y=(H<<1)+1;if(Y>=ae.length)break;let W=ae[Y];if(Y+1<ae.length&&W.compare(ae[Y+1])>=0&&(W=ae[Y+1],Y++),j.compare(W)<0)break;ae[Y]=j,ae[H]=W,H=Y}}class Te{constructor(H,j,Y,W=()=>!0){this.minPoint=Y,this.filterPoint=W,this.active=[],this.activeTo=[],this.activeRank=[],this.minActive=-1,this.point=null,this.pointFrom=0,this.pointRank=0,this.to=-1e9,this.endSide=0,this.openStart=-1,this.cursor=ve.from(H,j,Y)}goto(H,j=-1e9){return this.cursor.goto(H,j),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=H,this.endSide=j,this.openStart=-1,this.next(),this}forward(H,j){for(;this.minActive>-1&&(this.activeTo[this.minActive]-H||this.active[this.minActive].endSide-j)<0;)this.removeActive(this.minActive);this.cursor.forward(H,j)}removeActive(H){me(this.active,H),me(this.activeTo,H),me(this.activeRank,H),this.minActive=ke(this.active,this.activeTo)}addActive(H){let j=0,{value:Y,to:W,rank:Q}=this.cursor;for(;j<this.activeRank.length&&this.activeRank[j]<=Q;)j++;Ve(this.active,j,Y),Ve(this.activeTo,j,W),Ve(this.activeRank,j,Q),H&&Ve(H,j,this.cursor.from),this.minActive=ke(this.active,this.activeTo)}next(){let H=this.to,j=this.point;this.point=null;let Y=this.openStart<0?[]:null,W=0;for(;;){let Q=this.minActive;if(Q>-1&&(this.activeTo[Q]-this.cursor.from||this.active[Q].endSide-this.cursor.startSide)<0){if(this.activeTo[Q]>H){this.to=this.activeTo[Q],this.endSide=this.active[Q].endSide;break}this.removeActive(Q),Y&&me(Y,Q)}else if(this.cursor.value)if(this.cursor.from>H){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}else{let R=this.cursor.value;if(!R.point)this.addActive(Y),this.cursor.next();else if(j&&this.cursor.to==this.to&&this.cursor.from<this.cursor.to)this.cursor.next();else if(!this.filterPoint(this.cursor.from,this.cursor.to,this.cursor.value,this.cursor.rank))this.cursor.next();else{this.point=R,this.pointFrom=this.cursor.from,this.pointRank=this.cursor.rank,this.to=this.cursor.to,this.endSide=R.endSide,this.cursor.from<H&&(W=1),this.cursor.next(),this.to>H&&this.forward(this.to,this.endSide);break}}else{this.to=this.endSide=1e9;break}}if(Y){let Q=0;for(;Q<Y.length&&Y[Q]<H;)Q++;this.openStart=Q+W}}activeForPoint(H){if(!this.active.length)return this.active;let j=[];for(let Y=this.active.length-1;Y>=0&&!(this.activeRank[Y]<this.pointRank);Y--)(this.activeTo[Y]>H||this.activeTo[Y]==H&&this.active[Y].endSide>=this.point.endSide)&&j.push(this.active[Y]);return j.reverse()}openEnd(H){let j=0;for(let Y=this.activeTo.length-1;Y>=0&&this.activeTo[Y]>H;Y--)j++;return j}}function He(ae,H,j,Y,W,Q){ae.goto(H),j.goto(Y);let R=Y+W,d=Y,g=Y-H;for(;;){let O=ae.to+g-j.to||ae.endSide-j.endSide,w=O<0?ae.to+g:j.to,T=Math.min(w,R);if(ae.point||j.point?ae.point&&j.point&&(ae.point==j.point||ae.point.eq(j.point))&&Ee(ae.activeForPoint(ae.to+g),j.activeForPoint(j.to))||Q.comparePoint(d,T,ae.point,j.point):T>d&&!Ee(ae.active,j.active)&&Q.compareRange(d,T,ae.active,j.active),w>R)break;d=w,O<=0&&ae.next(),O>=0&&j.next()}}function Ee(ae,H){if(ae.length!=H.length)return!1;for(let j=0;j<ae.length;j++)if(ae[j]!=H[j]&&!ae[j].eq(H[j]))return!1;return!0}function me(ae,H){for(let j=H,Y=ae.length-1;j<Y;j++)ae[j]=ae[j+1];ae.pop()}function Ve(ae,H,j){for(let Y=ae.length-1;Y>=H;Y--)ae[Y+1]=ae[Y];ae[H]=j}function ke(ae,H){let j=-1,Y=1e9;for(let W=0;W<H.length;W++)(H[W]-Y||ae[W].endSide-ae[j].endSide)<0&&(j=W,Y=H[W]);return j}b.Range=ye,b.RangeSet=Xe,b.RangeSetBuilder=We,b.RangeValue=re},{"@codemirror/state":22}],19:[function(Re,mt,b){"use strict";Object.defineProperty(b,"__esModule",{value:!0});var D=Re("@codemirror/state"),re=Re("@codemirror/view"),ye=Re("@codemirror/text");const we=2e3;function Me(De,ve,ue){let Te=Math.min(ve.line,ue.line),He=Math.max(ve.line,ue.line),Ee=[];if(ve.off>we||ue.off>we||ve.col<0||ue.col<0){let me=Math.min(ve.off,ue.off),Ve=Math.max(ve.off,ue.off);for(let ke=Te;ke<=He;ke++){let ae=De.doc.line(ke);ae.length<=Ve&&Ee.push(D.EditorSelection.range(ae.from+me,ae.to+Ve))}}else{let me=Math.min(ve.col,ue.col),Ve=Math.max(ve.col,ue.col);for(let ke=Te;ke<=He;ke++){let ae=De.doc.line(ke),H=ye.findColumn(ae.text,me,De.tabSize,!0);if(H>-1){let j=ye.findColumn(ae.text,Ve,De.tabSize);Ee.push(D.EditorSelection.range(ae.from+H,ae.from+j))}}}return Ee}function Xe(De,ve){let ue=De.coordsAtPos(De.viewport.from);return ue?Math.round(Math.abs((ue.left-ve)/De.defaultCharacterWidth)):-1}function je(De,ve){let ue=De.posAtCoords({x:ve.clientX,y:ve.clientY},!1),Te=De.state.doc.lineAt(ue),He=ue-Te.from,Ee=He>we?-1:He==Te.length?Xe(De,ve.clientX):ye.countColumn(Te.text,De.state.tabSize,ue-Te.from);return{line:Te.number,col:Ee,off:He}}function We(De,ve){let ue=je(De,ve),Te=De.state.selection;return ue?{update(He){if(He.docChanged){let Ee=He.changes.mapPos(He.startState.doc.line(ue.line).from),me=He.state.doc.lineAt(Ee);ue={line:me.number,col:ue.col,off:Math.min(ue.off,me.length)},Te=Te.map(He.changes)}},get(He,Ee,me){let Ve=je(De,He);if(!Ve)return Te;let ke=Me(De.state,ue,Ve);return ke.length?me?D.EditorSelection.create(ke.concat(Te.ranges)):D.EditorSelection.create(ke):Te}}:null}function Oe(De){let ve=(De==null?void 0:De.eventFilter)||(ue=>ue.altKey&&ue.button==0);return re.EditorView.mouseSelectionStyle.of((ue,Te)=>ve(Te)?We(ue,Te):null)}b.rectangularSelection=Oe},{"@codemirror/state":22,"@codemirror/text":24,"@codemirror/view":27}],20:[function(Re,mt,b){"use strict";Object.defineProperty(b,"__esModule",{value:!0});var D=Re("@codemirror/view"),re=Re("@codemirror/state"),ye=Re("@codemirror/panel"),we=Re("@codemirror/rangeset"),Me=Re("crelt"),Xe=Re("@codemirror/text");function je(C){return C&&typeof C=="object"&&"default"in C?C:{default:C}}var We=je(Me);const Oe=typeof String.prototype.normalize=="function"?C=>C.normalize("NFKD"):C=>C;class De{constructor(A,N,$=0,ee=A.length,be){this.value={from:0,to:0},this.done=!1,this.matches=[],this.buffer="",this.bufferPos=0,this.iter=A.iterRange($,ee),this.bufferStart=$,this.normalize=be?Je=>be(Oe(Je)):Oe,this.query=this.normalize(N)}peek(){if(this.bufferPos==this.buffer.length){if(this.bufferStart+=this.buffer.length,this.iter.next(),this.iter.done)return-1;this.bufferPos=0,this.buffer=this.iter.value}return Xe.codePointAt(this.buffer,this.bufferPos)}next(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let A=this.peek();if(A<0)return this.done=!0,this;let N=Xe.fromCodePoint(A),$=this.bufferStart+this.bufferPos;this.bufferPos+=Xe.codePointSize(A);let ee=this.normalize(N);for(let be=0,Je=$;;be++){let Ze=ee.charCodeAt(be),it=this.match(Ze,Je);if(it)return this.value=it,this;if(be==ee.length-1)break;Je==$&&be<N.length&&N.charCodeAt(be)==Ze&&Je++}}}match(A,N){let $=null;for(let ee=0;ee<this.matches.length;ee+=2){let be=this.matches[ee],Je=!1;this.query.charCodeAt(be)==A&&(be==this.query.length-1?$={from:this.matches[ee+1],to:N+1}:(this.matches[ee]++,Je=!0)),Je||(this.matches.splice(ee,2),ee-=2)}return this.query.charCodeAt(0)==A&&(this.query.length==1?$={from:N,to:N+1}:this.matches.push(1,N)),$}}typeof Symbol!="undefined"&&(De.prototype[Symbol.iterator]=function(){return this});const ve={from:-1,to:-1,match:/.*/.exec("")},ue="gm"+(/x/.unicode==null?"":"u");class Te{constructor(A,N,$,ee=0,be=A.length){if(this.to=be,this.curLine="",this.done=!1,this.value=ve,/\\[sWDnr]|\n|\r|\[\^/.test(N))return new me(A,N,$,ee,be);this.re=new RegExp(N,ue+(($==null?void 0:$.ignoreCase)?"i":"")),this.iter=A.iter();let Je=A.lineAt(ee);this.curLineStart=Je.from,this.matchPos=ee,this.getLine(this.curLineStart)}getLine(A){this.iter.next(A),this.iter.lineBreak?this.curLine="":(this.curLine=this.iter.value,this.curLineStart+this.curLine.length>this.to&&(this.curLine=this.curLine.slice(0,this.to-this.curLineStart)),this.iter.next())}nextLine(){this.curLineStart=this.curLineStart+this.curLine.length+1,this.curLineStart>this.to?this.curLine="":this.getLine(0)}next(){for(let A=this.matchPos-this.curLineStart;;){this.re.lastIndex=A;let N=this.matchPos<=this.to&&this.re.exec(this.curLine);if(N){let $=this.curLineStart+N.index,ee=$+N[0].length;if(this.matchPos=ee+($==ee?1:0),$==this.curLine.length&&this.nextLine(),$<ee||$>this.value.to)return this.value={from:$,to:ee,match:N},this;A=this.matchPos-this.curLineStart}else if(this.curLineStart+this.curLine.length<this.to)this.nextLine(),A=0;else return this.done=!0,this}}}const He=new WeakMap;class Ee{constructor(A,N){this.from=A,this.text=N}get to(){return this.from+this.text.length}static get(A,N,$){let ee=He.get(A);if(!ee||ee.from>=$||ee.to<=N){let Ze=new Ee(N,A.sliceString(N,$));return He.set(A,Ze),Ze}if(ee.from==N&&ee.to==$)return ee;let{text:be,from:Je}=ee;return Je>N&&(be=A.sliceString(N,Je)+be,Je=N),ee.to<$&&(be+=A.sliceString(ee.to,$)),He.set(A,new Ee(Je,be)),new Ee(N,be.slice(N-Je,$-Je))}}class me{constructor(A,N,$,ee,be){this.text=A,this.to=be,this.done=!1,this.value=ve,this.matchPos=ee,this.re=new RegExp(N,ue+(($==null?void 0:$.ignoreCase)?"i":"")),this.flat=Ee.get(A,ee,this.chunkEnd(ee+5e3))}chunkEnd(A){return A>=this.to?this.to:this.text.lineAt(A).to}next(){for(;;){let A=this.re.lastIndex=this.matchPos-this.flat.from,N=this.re.exec(this.flat.text);if(N&&!N[0]&&N.index==A&&(this.re.lastIndex=A+1,N=this.re.exec(this.flat.text)),N&&this.flat.to<this.to&&N.index+N[0].length>this.flat.text.length-10&&(N=null),N){let $=this.flat.from+N.index,ee=$+N[0].length;return this.value={from:$,to:ee,match:N},this.matchPos=ee+($==ee?1:0),this}else{if(this.flat.to==this.to)return this.done=!0,this;this.flat=Ee.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+this.flat.text.length*2))}}}}typeof Symbol!="undefined"&&(Te.prototype[Symbol.iterator]=me.prototype[Symbol.iterator]=function(){return this});function Ve(C){try{return new RegExp(C,ue),!0}catch(A){return!1}}function ke(C){let A=We.default("input",{class:"cm-textfield",name:"line"}),N=We.default("form",{class:"cm-gotoLine",onkeydown:ee=>{ee.keyCode==27?(ee.preventDefault(),C.dispatch({effects:ae.of(!1)}),C.focus()):ee.keyCode==13&&(ee.preventDefault(),$())},onsubmit:ee=>{ee.preventDefault(),$()}},We.default("label",C.state.phrase("Go to line"),": ",A)," ",We.default("button",{class:"cm-button",type:"submit"},C.state.phrase("go")));function $(){let ee=/^([+-])?(\d+)?(:\d+)?(%)?$/.exec(A.value);if(!ee)return;let{state:be}=C,Je=be.doc.lineAt(be.selection.main.head),[,Ze,it,ut,Mt]=ee,yt=ut?+ut.slice(1):0,pt=it?+it:Je.number;if(it&&Mt){let Tt=pt/100;Ze&&(Tt=Tt*(Ze=="-"?-1:1)+Je.number/be.doc.lines),pt=Math.round(be.doc.lines*Tt)}else it&&Ze&&(pt=pt*(Ze=="-"?-1:1)+Je.number);let Dt=be.doc.line(Math.max(1,Math.min(be.doc.lines,pt)));C.dispatch({effects:ae.of(!1),selection:re.EditorSelection.cursor(Dt.from+Math.max(0,Math.min(yt,Dt.length))),scrollIntoView:!0}),C.focus()}return{dom:N,pos:-10}}const ae=re.StateEffect.define(),H=re.StateField.define({create(){return!0},update(C,A){for(let N of A.effects)N.is(ae)&&(C=N.value);return C},provide:C=>ye.showPanel.from(C,A=>A?ke:null)}),j=C=>{let A=ye.getPanel(C,ke);if(!A){let N=[ae.of(!0)];C.state.field(H,!1)==null&&N.push(re.StateEffect.appendConfig.of([H,Y])),C.dispatch({effects:N}),A=ye.getPanel(C,ke)}return A&&A.dom.querySelector("input").focus(),!0},Y=D.EditorView.baseTheme({".cm-panel.cm-gotoLine":{padding:"2px 6px 4px","& label":{fontSize:"80%"}}}),W={highlightWordAroundCursor:!1,minSelectionLength:1,maxMatches:100},Q=re.Facet.define({combine(C){return re.combineConfig(C,W,{highlightWordAroundCursor:(A,N)=>A||N,minSelectionLength:Math.min,maxMatches:Math.min})}});function R(C){let A=[w,O];return C&&A.push(Q.of(C)),A}const d=D.Decoration.mark({class:"cm-selectionMatch"}),g=D.Decoration.mark({class:"cm-selectionMatch cm-selectionMatch-main"}),O=D.ViewPlugin.fromClass(class{constructor(C){this.decorations=this.getDeco(C)}update(C){(C.selectionSet||C.docChanged||C.viewportChanged)&&(this.decorations=this.getDeco(C.view))}getDeco(C){let A=C.state.facet(Q),{state:N}=C,$=N.selection;if($.ranges.length>1)return D.Decoration.none;let ee=$.main,be,Je=null;if(ee.empty){if(!A.highlightWordAroundCursor)return D.Decoration.none;let it=N.wordAt(ee.head);if(!it)return D.Decoration.none;Je=N.charCategorizer(ee.head),be=N.sliceDoc(it.from,it.to)}else{let it=ee.to-ee.from;if(it<A.minSelectionLength||it>200||(be=N.sliceDoc(ee.from,ee.to).trim(),!be))return D.Decoration.none}let Ze=[];for(let it of C.visibleRanges){let ut=new De(N.doc,be,it.from,it.to);for(;!ut.next().done;){let{from:Mt,to:yt}=ut.value;if((!Je||(Mt==0||Je(N.sliceDoc(Mt-1,Mt))!=re.CharCategory.Word)&&(yt==N.doc.length||Je(N.sliceDoc(yt,yt+1))!=re.CharCategory.Word))&&(Je&&Mt<=ee.from&&yt>=ee.to?Ze.push(g.range(Mt,yt)):(Mt>=ee.to||yt<=ee.from)&&Ze.push(d.range(Mt,yt)),Ze.length>A.maxMatches))return D.Decoration.none}}return D.Decoration.set(Ze)}},{decorations:C=>C.decorations}),w=D.EditorView.baseTheme({".cm-selectionMatch":{backgroundColor:"#99ff7780"},".cm-searchMatch .cm-selectionMatch":{backgroundColor:"transparent"}}),T=({state:C,dispatch:A})=>{let{selection:N}=C,$=re.EditorSelection.create(N.ranges.map(ee=>C.wordAt(ee.head)||re.EditorSelection.cursor(ee.head)),N.mainIndex);return $.eq(N)?!1:(A(C.update({selection:$})),!0)};function z(C,A){let{main:N,ranges:$}=C.selection,ee=C.wordAt(N.head),be=ee&&ee.from==N.from&&ee.to==N.to;for(let Je=!1,Ze=new De(C.doc,A,$[$.length-1].to);;)if(Ze.next(),Ze.done){if(Je)return null;Ze=new De(C.doc,A,0,Math.max(0,$[$.length-1].from-1)),Je=!0}else{if(Je&&$.some(it=>it.from==Ze.value.from))continue;if(be){let it=C.wordAt(Ze.value.from);if(!it||it.from!=Ze.value.from||it.to!=Ze.value.to)continue}return Ze.value}}const _=({state:C,dispatch:A})=>{let{ranges:N}=C.selection;if(N.some(be=>be.from===be.to))return T({state:C,dispatch:A});let $=C.sliceDoc(N[0].from,N[0].to);if(C.selection.ranges.some(be=>C.sliceDoc(be.from,be.to)!=$))return!1;let ee=z(C,$);return ee?(A(C.update({selection:C.selection.addRange(re.EditorSelection.range(ee.from,ee.to),!1),effects:D.EditorView.scrollIntoView(ee.to)})),!0):!1},U=re.Facet.define({combine(C){var A;return{top:C.reduce((N,$)=>N??$.top,void 0)||!1,caseSensitive:C.reduce((N,$)=>N??($.caseSensitive||$.matchCase),void 0)||!1,createPanel:((A=C.find(N=>N.createPanel))===null||A===void 0?void 0:A.createPanel)||(N=>new ot(N))}}});function te(C){return U.of(C)}class ge{constructor(A){this.search=A.search,this.caseSensitive=!!A.caseSensitive,this.regexp=!!A.regexp,this.replace=A.replace||"",this.valid=!!this.search&&(!this.regexp||Ve(this.search))}eq(A){return this.search==A.search&&this.replace==A.replace&&this.caseSensitive==A.caseSensitive&&this.regexp==A.regexp}create(){return this.regexp?new Ke(this):new qe(this)}}class Ae{constructor(A){this.spec=A}}class qe extends Ae{constructor(A){super(A);this.unquoted=A.search.replace(/\\([nrt\\])/g,(N,$)=>$=="n"?` 4 + `:$=="r"?"\r":$=="t"?" ":"\\")}cursor(A,N=0,$=A.length){return new De(A,this.unquoted,N,$,this.spec.caseSensitive?void 0:ee=>ee.toLowerCase())}nextMatch(A,N,$){let ee=this.cursor(A,$).nextOverlapping();return ee.done&&(ee=this.cursor(A,0,N).nextOverlapping()),ee.done?null:ee.value}prevMatchInRange(A,N,$){for(let ee=$;;){let be=Math.max(N,ee-1e4-this.unquoted.length),Je=this.cursor(A,be,ee),Ze=null;for(;!Je.nextOverlapping().done;)Ze=Je.value;if(Ze)return Ze;if(be==N)return null;ee-=1e4}}prevMatch(A,N,$){return this.prevMatchInRange(A,0,N)||this.prevMatchInRange(A,$,A.length)}getReplacement(A){return this.spec.replace}matchAll(A,N){let $=this.cursor(A),ee=[];for(;!$.next().done;){if(ee.length>=N)return null;ee.push($.value)}return ee}highlight(A,N,$,ee){let be=this.cursor(A,Math.max(0,N-this.unquoted.length),Math.min($+this.unquoted.length,A.length));for(;!be.next().done;)ee(be.value.from,be.value.to)}}class Ke extends Ae{cursor(A,N=0,$=A.length){return new Te(A,this.spec.search,this.spec.caseSensitive?void 0:{ignoreCase:!0},N,$)}nextMatch(A,N,$){let ee=this.cursor(A,$).next();return ee.done&&(ee=this.cursor(A,0,N).next()),ee.done?null:ee.value}prevMatchInRange(A,N,$){for(let ee=1;;ee++){let be=Math.max(N,$-ee*1e4),Je=this.cursor(A,be,$),Ze=null;for(;!Je.next().done;)Ze=Je.value;if(Ze&&(be==N||Ze.from>be+10))return Ze;if(be==N)return null}}prevMatch(A,N,$){return this.prevMatchInRange(A,0,N)||this.prevMatchInRange(A,$,A.length)}getReplacement(A){return this.spec.replace.replace(/\$([$&\d+])/g,(N,$)=>$=="$"?"$":$=="&"?A.match[0]:$!="0"&&+$<A.match.length?A.match[$]:N)}matchAll(A,N){let $=this.cursor(A),ee=[];for(;!$.next().done;){if(ee.length>=N)return null;ee.push($.value)}return ee}highlight(A,N,$,ee){let be=this.cursor(A,Math.max(0,N-250),Math.min($+250,A.length));for(;!be.next().done;)ee(be.value.from,be.value.to)}}const et=re.StateEffect.define(),nt=re.StateEffect.define(),at=re.StateField.define({create(C){return new pe(Se(C).create(),le)},update(C,A){for(let N of A.effects)N.is(et)?C=new pe(N.value.create(),C.panel):N.is(nt)&&(C=new pe(C.query,N.value?le:null));return C},provide:C=>ye.showPanel.from(C,A=>A.panel)});function _e(C){let A=C.field(at,!1);return A?A.query.spec:Se(C)}class pe{constructor(A,N){this.query=A,this.panel=N}}const k=D.Decoration.mark({class:"cm-searchMatch"}),S=D.Decoration.mark({class:"cm-searchMatch cm-searchMatch-selected"}),B=D.ViewPlugin.fromClass(class{constructor(C){this.view=C,this.decorations=this.highlight(C.state.field(at))}update(C){let A=C.state.field(at);(A!=C.startState.field(at)||C.docChanged||C.selectionSet)&&(this.decorations=this.highlight(A))}highlight({query:C,panel:A}){if(!A||!C.spec.valid)return D.Decoration.none;let{view:N}=this,$=new we.RangeSetBuilder;for(let ee=0,be=N.visibleRanges,Je=be.length;ee<Je;ee++){let{from:Ze,to:it}=be[ee];for(;ee<Je-1&&it>be[ee+1].from-2*250;)it=be[++ee].to;C.highlight(N.state.doc,Ze,it,(ut,Mt)=>{let yt=N.state.selection.ranges.some(pt=>pt.from==ut&&pt.to==Mt);$.add(ut,Mt,yt?S:k)})}return $.finish()}},{decorations:C=>C.decorations});function V(C){return A=>{let N=A.state.field(at,!1);return N&&N.query.spec.valid?C(A,N):Pe(A)}}const Z=V((C,{query:A})=>{let{from:N,to:$}=C.state.selection.main,ee=A.nextMatch(C.state.doc,N,$);return!ee||ee.from==N&&ee.to==$?!1:(C.dispatch({selection:{anchor:ee.from,head:ee.to},scrollIntoView:!0,effects:K(C,ee),userEvent:"select.search"}),!0)}),F=V((C,{query:A})=>{let{state:N}=C,{from:$,to:ee}=N.selection.main,be=A.prevMatch(N.doc,$,ee);return be?(C.dispatch({selection:{anchor:be.from,head:be.to},scrollIntoView:!0,effects:K(C,be),userEvent:"select.search"}),!0):!1}),x=V((C,{query:A})=>{let N=A.matchAll(C.state.doc,1e3);return!N||!N.length?!1:(C.dispatch({selection:re.EditorSelection.create(N.map($=>re.EditorSelection.range($.from,$.to))),userEvent:"select.search.matches"}),!0)}),v=({state:C,dispatch:A})=>{let N=C.selection;if(N.ranges.length>1||N.main.empty)return!1;let{from:$,to:ee}=N.main,be=[],Je=0;for(let Ze=new De(C.doc,C.sliceDoc($,ee));!Ze.next().done;){if(be.length>1e3)return!1;Ze.value.from==$&&(Je=be.length),be.push(re.EditorSelection.range(Ze.value.from,Ze.value.to))}return A(C.update({selection:re.EditorSelection.create(be,Je),userEvent:"select.search.matches"})),!0},E=V((C,{query:A})=>{let{state:N}=C,{from:$,to:ee}=N.selection.main;if(N.readOnly)return!1;let be=A.nextMatch(N.doc,$,$);if(!be)return!1;let Je=[],Ze,it;if(be.from==$&&be.to==ee&&(it=N.toText(A.getReplacement(be)),Je.push({from:be.from,to:be.to,insert:it}),be=A.nextMatch(N.doc,be.from,be.to)),be){let ut=Je.length==0||Je[0].from>=be.to?0:be.to-be.from-it.length;Ze={anchor:be.from-ut,head:be.to-ut}}return C.dispatch({changes:Je,selection:Ze,scrollIntoView:!!Ze,effects:be?K(C,be):void 0,userEvent:"input.replace"}),!0}),G=V((C,{query:A})=>{if(C.state.readOnly)return!1;let N=A.matchAll(C.state.doc,1e9).map($=>{let{from:ee,to:be}=$;return{from:ee,to:be,insert:A.getReplacement($)}});return N.length?(C.dispatch({changes:N,userEvent:"input.replace.all"}),!0):!1});function le(C){return C.state.facet(U).createPanel(C)}function Se(C,A){var N;let $=C.selection.main,ee=$.empty||$.to>$.from+100?"":C.sliceDoc($.from,$.to),be=(N=A==null?void 0:A.caseSensitive)!==null&&N!==void 0?N:C.facet(U).caseSensitive;return A&&!ee?A:new ge({search:ee.replace(/\n/g,"\\n"),caseSensitive:be})}const Pe=C=>{let A=C.state.field(at,!1);if(A&&A.panel){let N=ye.getPanel(C,le);if(!N)return!1;let $=N.dom.querySelector("[name=search]");if($!=C.root.activeElement){let ee=Se(C.state,A.query.spec);ee.valid&&C.dispatch({effects:et.of(ee)}),$.focus(),$.select()}}else C.dispatch({effects:[nt.of(!0),A?et.of(Se(C.state,A.query.spec)):re.StateEffect.appendConfig.of(ie)]});return!0},Ue=C=>{let A=C.state.field(at,!1);if(!A||!A.panel)return!1;let N=ye.getPanel(C,le);return N&&N.dom.contains(C.root.activeElement)&&C.focus(),C.dispatch({effects:nt.of(!1)}),!0},ze=[{key:"Mod-f",run:Pe,scope:"editor search-panel"},{key:"F3",run:Z,shift:F,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:Z,shift:F,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:Ue,scope:"editor search-panel"},{key:"Mod-Shift-l",run:v},{key:"Alt-g",run:j},{key:"Mod-d",run:_,preventDefault:!0}];class ot{constructor(A){this.view=A;let N=this.query=A.state.field(at).query.spec;this.commit=this.commit.bind(this),this.searchField=We.default("input",{value:N.search,placeholder:ne(A,"Find"),"aria-label":ne(A,"Find"),class:"cm-textfield",name:"search",onchange:this.commit,onkeyup:this.commit}),this.replaceField=We.default("input",{value:N.replace,placeholder:ne(A,"Replace"),"aria-label":ne(A,"Replace"),class:"cm-textfield",name:"replace",onchange:this.commit,onkeyup:this.commit}),this.caseField=We.default("input",{type:"checkbox",name:"case",checked:N.caseSensitive,onchange:this.commit}),this.reField=We.default("input",{type:"checkbox",name:"re",checked:N.regexp,onchange:this.commit});function $(ee,be,Je){return We.default("button",{class:"cm-button",name:ee,onclick:be,type:"button"},Je)}this.dom=We.default("div",{onkeydown:ee=>this.keydown(ee),class:"cm-search"},[this.searchField,$("next",()=>Z(A),[ne(A,"next")]),$("prev",()=>F(A),[ne(A,"previous")]),$("select",()=>x(A),[ne(A,"all")]),We.default("label",null,[this.caseField,ne(A,"match case")]),We.default("label",null,[this.reField,ne(A,"regexp")]),...A.state.readOnly?[]:[We.default("br"),this.replaceField,$("replace",()=>E(A),[ne(A,"replace")]),$("replaceAll",()=>G(A),[ne(A,"replace all")]),We.default("button",{name:"close",onclick:()=>Ue(A),"aria-label":ne(A,"close"),type:"button"},["\xD7"])]])}commit(){let A=new ge({search:this.searchField.value,caseSensitive:this.caseField.checked,regexp:this.reField.checked,replace:this.replaceField.value});A.eq(this.query)||(this.query=A,this.view.dispatch({effects:et.of(A)}))}keydown(A){D.runScopeHandlers(this.view,A,"search-panel")?A.preventDefault():A.keyCode==13&&A.target==this.searchField?(A.preventDefault(),(A.shiftKey?F:Z)(this.view)):A.keyCode==13&&A.target==this.replaceField&&(A.preventDefault(),E(this.view))}update(A){for(let N of A.transactions)for(let $ of N.effects)$.is(et)&&!$.value.eq(this.query)&&this.setQuery($.value)}setQuery(A){this.query=A,this.searchField.value=A.search,this.replaceField.value=A.replace,this.caseField.checked=A.caseSensitive,this.reField.checked=A.regexp}mount(){this.searchField.select()}get pos(){return 80}get top(){return this.view.state.facet(U).top}}function ne(C,A){return C.state.phrase(A)}const p=30,M=/[\s\.,:;?!]/;function K(C,{from:A,to:N}){let $=C.state.doc.lineAt(A).from,ee=C.state.doc.lineAt(N).to,be=Math.max($,A-p),Je=Math.min(ee,N+p),Ze=C.state.sliceDoc(be,Je);if(be!=$){for(let it=0;it<p;it++)if(!M.test(Ze[it+1])&&M.test(Ze[it])){Ze=Ze.slice(it);break}}if(Je!=ee){for(let it=Ze.length-1;it>Ze.length-p;it--)if(!M.test(Ze[it-1])&&M.test(Ze[it])){Ze=Ze.slice(0,it);break}}return D.EditorView.announce.of(`${C.state.phrase("current match")}. ${Ze} ${C.state.phrase("on line")} ${C.state.doc.lineAt(A).number}`)}const X=D.EditorView.baseTheme({".cm-panel.cm-search":{padding:"2px 6px 4px",position:"relative","& [name=close]":{position:"absolute",top:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:0,margin:0},"& input, & button, & label":{margin:".2em .6em .2em 0"},"& input[type=checkbox]":{marginRight:".2em"},"& label":{fontSize:"80%",whiteSpace:"pre"}},"&light .cm-searchMatch":{backgroundColor:"#ffff0054"},"&dark .cm-searchMatch":{backgroundColor:"#00ffff8a"},"&light .cm-searchMatch-selected":{backgroundColor:"#ff6a0054"},"&dark .cm-searchMatch-selected":{backgroundColor:"#ff00ff8a"}}),ie=[at,re.Prec.lowest(B),X];b.RegExpCursor=Te,b.SearchCursor=De,b.SearchQuery=ge,b.closeSearchPanel=Ue,b.findNext=Z,b.findPrevious=F,b.getSearchQuery=_e,b.gotoLine=j,b.highlightSelectionMatches=R,b.openSearchPanel=Pe,b.replaceAll=G,b.replaceNext=E,b.searchConfig=te,b.searchKeymap=ze,b.selectMatches=x,b.selectNextOccurrence=_,b.selectSelectionMatches=v,b.setSearchQuery=et},{"@codemirror/panel":17,"@codemirror/rangeset":18,"@codemirror/state":22,"@codemirror/text":24,"@codemirror/view":21,crelt:29}],21:[function(Re,mt,b){arguments[4][5][0].apply(b,arguments)},{"@codemirror/rangeset":18,"@codemirror/state":22,"@codemirror/text":24,dup:5,"style-mod":30,"w3c-keyname":31}],22:[function(Re,mt,b){"use strict";Object.defineProperty(b,"__esModule",{value:!0});var D=Re("@codemirror/text");const re=/\r\n?|\n/;b.MapMode=void 0,function(ne){ne[ne.Simple=0]="Simple",ne[ne.TrackDel=1]="TrackDel",ne[ne.TrackBefore=2]="TrackBefore",ne[ne.TrackAfter=3]="TrackAfter"}(b.MapMode||(b.MapMode={}));class ye{constructor(p){this.sections=p}get length(){let p=0;for(let M=0;M<this.sections.length;M+=2)p+=this.sections[M];return p}get newLength(){let p=0;for(let M=0;M<this.sections.length;M+=2){let K=this.sections[M+1];p+=K<0?this.sections[M]:K}return p}get empty(){return this.sections.length==0||this.sections.length==2&&this.sections[1]<0}iterGaps(p){for(let M=0,K=0,X=0;M<this.sections.length;){let ie=this.sections[M++],C=this.sections[M++];C<0?(p(K,X,ie),X+=ie):X+=C,K+=ie}}iterChangedRanges(p,M=!1){je(this,p,M)}get invertedDesc(){let p=[];for(let M=0;M<this.sections.length;){let K=this.sections[M++],X=this.sections[M++];X<0?p.push(K,X):p.push(X,K)}return new ye(p)}composeDesc(p){return this.empty?p:p.empty?this:Oe(this,p)}mapDesc(p,M=!1){return p.empty?this:We(this,p,M)}mapPos(p,M=-1,K=b.MapMode.Simple){let X=0,ie=0;for(let C=0;C<this.sections.length;){let A=this.sections[C++],N=this.sections[C++],$=X+A;if(N<0){if($>p)return ie+(p-X);ie+=A}else{if(K!=b.MapMode.Simple&&$>=p&&(K==b.MapMode.TrackDel&&X<p&&$>p||K==b.MapMode.TrackBefore&&X<p||K==b.MapMode.TrackAfter&&$>p))return null;if($>p||$==p&&M<0&&!A)return p==X||M<0?ie:ie+N;ie+=N}X=$}if(p>X)throw new RangeError(`Position ${p} is out of range for changeset of length ${X}`);return ie}touchesRange(p,M=p){for(let K=0,X=0;K<this.sections.length&&X<=M;){let ie=this.sections[K++],C=this.sections[K++],A=X+ie;if(C>=0&&X<=M&&A>=p)return X<p&&A>M?"cover":!0;X=A}return!1}toString(){let p="";for(let M=0;M<this.sections.length;){let K=this.sections[M++],X=this.sections[M++];p+=(p?" ":"")+K+(X>=0?":"+X:"")}return p}toJSON(){return this.sections}static fromJSON(p){if(!Array.isArray(p)||p.length%2||p.some(M=>typeof M!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new ye(p)}}class we extends ye{constructor(p,M){super(p);this.inserted=M}apply(p){if(this.length!=p.length)throw new RangeError("Applying change set to a document with the wrong length");return je(this,(M,K,X,ie,C)=>p=p.replace(X,X+(K-M),C),!1),p}mapDesc(p,M=!1){return We(this,p,M,!0)}invert(p){let M=this.sections.slice(),K=[];for(let X=0,ie=0;X<M.length;X+=2){let C=M[X],A=M[X+1];if(A>=0){M[X]=A,M[X+1]=C;let N=X>>1;for(;K.length<N;)K.push(D.Text.empty);K.push(C?p.slice(ie,ie+C):D.Text.empty)}ie+=C}return new we(M,K)}compose(p){return this.empty?p:p.empty?this:Oe(this,p,!0)}map(p,M=!1){return p.empty?this:We(this,p,M,!0)}iterChanges(p,M=!1){je(this,p,M)}get desc(){return new ye(this.sections)}filter(p){let M=[],K=[],X=[],ie=new De(this);e:for(let C=0,A=0;;){let N=C==p.length?1e9:p[C++];for(;A<N||A==N&&ie.len==0;){if(ie.done)break e;let ee=Math.min(ie.len,N-A);Me(X,ee,-1);let be=ie.ins==-1?-1:ie.off==0?ie.ins:0;Me(M,ee,be),be>0&&Xe(K,M,ie.text),ie.forward(ee),A+=ee}let $=p[C++];for(;A<$;){if(ie.done)break e;let ee=Math.min(ie.len,$-A);Me(M,ee,-1),Me(X,ee,ie.ins==-1?-1:ie.off==0?ie.ins:0),ie.forward(ee),A+=ee}}return{changes:new we(M,K),filtered:new ye(X)}}toJSON(){let p=[];for(let M=0;M<this.sections.length;M+=2){let K=this.sections[M],X=this.sections[M+1];X<0?p.push(K):X==0?p.push([K]):p.push([K].concat(this.inserted[M>>1].toJSON()))}return p}static of(p,M,K){let X=[],ie=[],C=0,A=null;function N(ee=!1){if(!ee&&!X.length)return;C<M&&Me(X,M-C,-1);let be=new we(X,ie);A=A?A.compose(be.map(A)):be,X=[],ie=[],C=0}function $(ee){if(Array.isArray(ee))for(let be of ee)$(be);else if(ee instanceof we){if(ee.length!=M)throw new RangeError(`Mismatched change set length (got ${ee.length}, expected ${M})`);N(),A=A?A.compose(ee.map(A)):ee}else{let{from:be,to:Je=be,insert:Ze}=ee;if(be>Je||be<0||Je>M)throw new RangeError(`Invalid change range ${be} to ${Je} (in doc of length ${M})`);let it=Ze?typeof Ze=="string"?D.Text.of(Ze.split(K||re)):Ze:D.Text.empty,ut=it.length;if(be==Je&&ut==0)return;be<C&&N(),be>C&&Me(X,be-C,-1),Me(X,Je-be,ut),Xe(ie,X,it),C=Je}}return $(p),N(!A),A}static empty(p){return new we(p?[p,-1]:[],[])}static fromJSON(p){if(!Array.isArray(p))throw new RangeError("Invalid JSON representation of ChangeSet");let M=[],K=[];for(let X=0;X<p.length;X++){let ie=p[X];if(typeof ie=="number")M.push(ie,-1);else{if(!Array.isArray(ie)||typeof ie[0]!="number"||ie.some((C,A)=>A&&typeof C!="string"))throw new RangeError("Invalid JSON representation of ChangeSet");if(ie.length==1)M.push(ie[0],0);else{for(;K.length<X;)K.push(D.Text.empty);K[X]=D.Text.of(ie.slice(1)),M.push(ie[0],K[X].length)}}}return new we(M,K)}}function Me(ne,p,M,K=!1){if(p==0&&M<=0)return;let X=ne.length-2;X>=0&&M<=0&&M==ne[X+1]?ne[X]+=p:p==0&&ne[X]==0?ne[X+1]+=M:K?(ne[X]+=p,ne[X+1]+=M):ne.push(p,M)}function Xe(ne,p,M){if(M.length==0)return;let K=p.length-2>>1;if(K<ne.length)ne[ne.length-1]=ne[ne.length-1].append(M);else{for(;ne.length<K;)ne.push(D.Text.empty);ne.push(M)}}function je(ne,p,M){let K=ne.inserted;for(let X=0,ie=0,C=0;C<ne.sections.length;){let A=ne.sections[C++],N=ne.sections[C++];if(N<0)X+=A,ie+=A;else{let $=X,ee=ie,be=D.Text.empty;for(;$+=A,ee+=N,N&&K&&(be=be.append(K[C-2>>1])),!(M||C==ne.sections.length||ne.sections[C+1]<0);)A=ne.sections[C++],N=ne.sections[C++];p(X,$,ie,ee,be),X=$,ie=ee}}}function We(ne,p,M,K=!1){let X=[],ie=K?[]:null,C=new De(ne),A=new De(p);for(let N=0,$=0;;)if(C.ins==-1)N+=C.len,C.next();else if(A.ins==-1&&$<N){let ee=Math.min(A.len,N-$);A.forward(ee),Me(X,ee,-1),$+=ee}else if(A.ins>=0&&(C.done||$<N||$==N&&(A.len<C.len||A.len==C.len&&!M))){for(Me(X,A.ins,-1);N>$&&!C.done&&N+C.len<$+A.len;)N+=C.len,C.next();$+=A.len,A.next()}else if(C.ins>=0){let ee=0,be=N+C.len;for(;;)if(A.ins>=0&&$>N&&$+A.len<be)ee+=A.ins,$+=A.len,A.next();else if(A.ins==-1&&$<be){let Je=Math.min(A.len,be-$);ee+=Je,A.forward(Je),$+=Je}else break;Me(X,ee,C.ins),ie&&Xe(ie,X,C.text),N=be,C.next()}else{if(C.done&&A.done)return ie?new we(X,ie):new ye(X);throw new Error("Mismatched change set lengths")}}function Oe(ne,p,M=!1){let K=[],X=M?[]:null,ie=new De(ne),C=new De(p);for(let A=!1;;){if(ie.done&&C.done)return X?new we(K,X):new ye(K);if(ie.ins==0)Me(K,ie.len,0,A),ie.next();else if(C.len==0&&!C.done)Me(K,0,C.ins,A),X&&Xe(X,K,C.text),C.next();else{if(ie.done||C.done)throw new Error("Mismatched change set lengths");{let N=Math.min(ie.len2,C.len),$=K.length;if(ie.ins==-1){let ee=C.ins==-1?-1:C.off?0:C.ins;Me(K,N,ee,A),X&&ee&&Xe(X,K,C.text)}else C.ins==-1?(Me(K,ie.off?0:ie.len,N,A),X&&Xe(X,K,ie.textBit(N))):(Me(K,ie.off?0:ie.len,C.off?0:C.ins,A),X&&!C.off&&Xe(X,K,C.text));A=(ie.ins>N||C.ins>=0&&C.len>N)&&(A||K.length>$),ie.forward2(N),C.forward(N)}}}}class De{constructor(p){this.set=p,this.i=0,this.next()}next(){let{sections:p}=this.set;this.i<p.length?(this.len=p[this.i++],this.ins=p[this.i++]):(this.len=0,this.ins=-2),this.off=0}get done(){return this.ins==-2}get len2(){return this.ins<0?this.len:this.ins}get text(){let{inserted:p}=this.set,M=this.i-2>>1;return M>=p.length?D.Text.empty:p[M]}textBit(p){let{inserted:M}=this.set,K=this.i-2>>1;return K>=M.length&&!p?D.Text.empty:M[K].slice(this.off,p==null?void 0:this.off+p)}forward(p){p==this.len?this.next():(this.len-=p,this.off+=p)}forward2(p){this.ins==-1?this.forward(p):p==this.ins?this.next():(this.ins-=p,this.off+=p)}}class ve{constructor(p,M,K){this.from=p,this.to=M,this.flags=K}get anchor(){return this.flags&16?this.to:this.from}get head(){return this.flags&16?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return this.flags&4?-1:this.flags&8?1:0}get bidiLevel(){let p=this.flags&3;return p==3?null:p}get goalColumn(){let p=this.flags>>5;return p==33554431?void 0:p}map(p,M=-1){let K=p.mapPos(this.from,M),X=p.mapPos(this.to,M);return K==this.from&&X==this.to?this:new ve(K,X,this.flags)}extend(p,M=p){if(p<=this.anchor&&M>=this.anchor)return ue.range(p,M);let K=Math.abs(p-this.anchor)>Math.abs(M-this.anchor)?p:M;return ue.range(this.anchor,K)}eq(p){return this.anchor==p.anchor&&this.head==p.head}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(p){if(!p||typeof p.anchor!="number"||typeof p.head!="number")throw new RangeError("Invalid JSON representation for SelectionRange");return ue.range(p.anchor,p.head)}}class ue{constructor(p,M=0){this.ranges=p,this.mainIndex=M}map(p,M=-1){return p.empty?this:ue.create(this.ranges.map(K=>K.map(p,M)),this.mainIndex)}eq(p){if(this.ranges.length!=p.ranges.length||this.mainIndex!=p.mainIndex)return!1;for(let M=0;M<this.ranges.length;M++)if(!this.ranges[M].eq(p.ranges[M]))return!1;return!0}get main(){return this.ranges[this.mainIndex]}asSingle(){return this.ranges.length==1?this:new ue([this.main])}addRange(p,M=!0){return ue.create([p].concat(this.ranges),M?0:this.mainIndex+1)}replaceRange(p,M=this.mainIndex){let K=this.ranges.slice();return K[M]=p,ue.create(K,this.mainIndex)}toJSON(){return{ranges:this.ranges.map(p=>p.toJSON()),main:this.mainIndex}}static fromJSON(p){if(!p||!Array.isArray(p.ranges)||typeof p.main!="number"||p.main>=p.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new ue(p.ranges.map(M=>ve.fromJSON(M)),p.main)}static single(p,M=p){return new ue([ue.range(p,M)],0)}static create(p,M=0){if(p.length==0)throw new RangeError("A selection needs at least one range");for(let K=0,X=0;X<p.length;X++){let ie=p[X];if(ie.empty?ie.from<=K:ie.from<K)return Te(p.slice(),M);K=ie.to}return new ue(p,M)}static cursor(p,M=0,K,X){return new ve(p,p,(M==0?0:M<0?4:8)|(K==null?3:Math.min(2,K))|(X??33554431)<<5)}static range(p,M,K){let X=(K??33554431)<<5;return M<p?new ve(M,p,16|X):new ve(p,M,X)}}function Te(ne,p=0){let M=ne[p];ne.sort((K,X)=>K.from-X.from),p=ne.indexOf(M);for(let K=1;K<ne.length;K++){let X=ne[K],ie=ne[K-1];if(X.empty?X.from<=ie.to:X.from<ie.to){let C=ie.from,A=Math.max(X.to,ie.to);K<=p&&p--,ne.splice(--K,2,X.anchor>X.head?ue.range(A,C):ue.range(C,A))}}return new ue(ne,p)}function He(ne,p){for(let M of ne.ranges)if(M.to>p)throw new RangeError("Selection points outside of document")}let Ee=0;class me{constructor(p,M,K,X,ie){this.combine=p,this.compareInput=M,this.compare=K,this.isStatic=X,this.extensions=ie,this.id=Ee++,this.default=p([])}static define(p={}){return new me(p.combine||(M=>M),p.compareInput||((M,K)=>M===K),p.compare||(p.combine?(M,K)=>M===K:Ve),!!p.static,p.enables)}of(p){return new ke([],this,0,p)}compute(p,M){if(this.isStatic)throw new Error("Can't compute a static facet");return new ke(p,this,1,M)}computeN(p,M){if(this.isStatic)throw new Error("Can't compute a static facet");return new ke(p,this,2,M)}from(p,M){return M||(M=K=>K),this.compute([p],K=>M(K.field(p)))}}function Ve(ne,p){return ne==p||ne.length==p.length&&ne.every((M,K)=>M===p[K])}class ke{constructor(p,M,K,X){this.dependencies=p,this.facet=M,this.type=K,this.value=X,this.id=Ee++}dynamicSlot(p){var M;let K=this.value,X=this.facet.compareInput,ie=p[this.id]>>1,C=this.type==2,A=!1,N=!1,$=[];for(let ee of this.dependencies)ee=="doc"?A=!0:ee=="selection"?N=!0:(((M=p[ee.id])!==null&&M!==void 0?M:1)&1)==0&&$.push(p[ee.id]);return(ee,be)=>{let Je=ee.values[ie];if(Je===z)return ee.values[ie]=K(ee),1;if(be&&(A&&be.docChanged||N&&(be.docChanged||be.selection)||$.some(it=>(_(ee,it)&1)>0))){let it=K(ee);if(C?!ae(it,Je,X):!X(it,Je))return ee.values[ie]=it,1}return 0}}}function ae(ne,p,M){if(ne.length!=p.length)return!1;for(let K=0;K<ne.length;K++)if(!M(ne[K],p[K]))return!1;return!0}function H(ne,p,M){let K=M.map(A=>ne[A.id]),X=M.map(A=>A.type),ie=K.filter(A=>!(A&1)),C=ne[p.id]>>1;return(A,N)=>{let $=A.values[C],ee=$===z||!N;for(let Ze of ie)_(A,Ze)&1&&(ee=!0);if(!ee)return 0;let be=[];for(let Ze=0;Ze<K.length;Ze++){let it=U(A,K[Ze]);if(X[Ze]==2)for(let ut of it)be.push(ut);else be.push(it)}let Je=p.combine(be);return p.compare(Je,$)?0:(A.values[C]=Je,1)}}const j=me.define({static:!0});class Y{constructor(p,M,K,X,ie){this.id=p,this.createF=M,this.updateF=K,this.compareF=X,this.spec=ie,this.provides=void 0}static define(p){let M=new Y(Ee++,p.create,p.update,p.compare||((K,X)=>K===X),p);return p.provide&&(M.provides=p.provide(M)),M}create(p){let M=p.facet(j).find(K=>K.field==this);return((M==null?void 0:M.create)||this.createF)(p)}slot(p){let M=p[this.id]>>1;return(K,X)=>{let ie=K.values[M];if(ie===z)return K.values[M]=this.create(K),1;if(X){let C=this.updateF(ie,X);if(!this.compareF(ie,C))return K.values[M]=C,1}return 0}}init(p){return[this,j.of({field:this,create:p})]}get extension(){return this}}const W={lowest:4,low:3,default:2,high:1,highest:0};function Q(ne){return p=>new d(p,ne)}const R={lowest:Q(W.lowest),low:Q(W.low),default:Q(W.default),high:Q(W.high),highest:Q(W.highest),fallback:Q(W.lowest),extend:Q(W.high),override:Q(W.highest)};class d{constructor(p,M){this.inner=p,this.prec=M}}class g{of(p){return new O(this,p)}reconfigure(p){return g.reconfigure.of({compartment:this,extension:p})}get(p){return p.config.compartments.get(this)}}class O{constructor(p,M){this.compartment=p,this.inner=M}}class w{constructor(p,M,K,X,ie){for(this.base=p,this.compartments=M,this.dynamicSlots=K,this.address=X,this.staticValues=ie,this.statusTemplate=[];this.statusTemplate.length<K.length;)this.statusTemplate.push(0)}staticFacet(p){let M=this.address[p.id];return M==null?p.default:this.staticValues[M>>1]}static resolve(p,M,K){let X=[],ie=Object.create(null),C=new Map;for(let ee of T(p,M,C))ee instanceof Y?X.push(ee):(ie[ee.facet.id]||(ie[ee.facet.id]=[])).push(ee);let A=Object.create(null),N=[],$=[];for(let ee of X)A[ee.id]=$.length<<1,$.push(be=>ee.slot(be));for(let ee in ie){let be=ie[ee],Je=be[0].facet;if(be.every(Ze=>Ze.type==0)){A[Je.id]=N.length<<1|1;let Ze=Je.combine(be.map(ut=>ut.value)),it=K?K.config.address[Je.id]:null;if(it!=null){let ut=U(K,it);Je.compare(Ze,ut)&&(Ze=ut)}N.push(Ze)}else{for(let Ze of be)Ze.type==0?(A[Ze.id]=N.length<<1|1,N.push(Ze.value)):(A[Ze.id]=$.length<<1,$.push(it=>Ze.dynamicSlot(it)));A[Je.id]=$.length<<1,$.push(Ze=>H(Ze,Je,be))}}return new w(p,C,$.map(ee=>ee(A)),A,N)}}function T(ne,p,M){let K=[[],[],[],[],[]],X=new Map;function ie(C,A){let N=X.get(C);if(N!=null){if(N>=A)return;let $=K[N].indexOf(C);$>-1&&K[N].splice($,1),C instanceof O&&M.delete(C.compartment)}if(X.set(C,A),Array.isArray(C))for(let $ of C)ie($,A);else if(C instanceof O){if(M.has(C.compartment))throw new RangeError("Duplicate use of compartment in extensions");let $=p.get(C.compartment)||C.inner;M.set(C.compartment,$),ie($,A)}else if(C instanceof d)ie(C.inner,C.prec);else if(C instanceof Y)K[A].push(C),C.provides&&ie(C.provides,A);else if(C instanceof ke)K[A].push(C),C.facet.extensions&&ie(C.facet.extensions,A);else{let $=C.extension;if(!$)throw new Error(`Unrecognized extension value in extension set (${C}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);ie($,A)}}return ie(ne,W.default),K.reduce((C,A)=>C.concat(A))}const z={};function _(ne,p){if(p&1)return 2;let M=p>>1,K=ne.status[M];if(K==4)throw new Error("Cyclic dependency between fields and/or facets");if(K&2)return K;ne.status[M]=4;let X=ne.config.dynamicSlots[M](ne,ne.applying);return ne.status[M]=2|X}function U(ne,p){return p&1?ne.config.staticValues[p>>1]:ne.values[p>>1]}const te=me.define(),ge=me.define({combine:ne=>ne.some(p=>p),static:!0}),Ae=me.define({combine:ne=>ne.length?ne[0]:void 0,static:!0}),qe=me.define(),Ke=me.define(),et=me.define(),nt=me.define({combine:ne=>ne.length?ne[0]:!1});class at{constructor(p,M){this.type=p,this.value=M}static define(){return new _e}}class _e{of(p){return new at(this,p)}}class pe{constructor(p){this.map=p}of(p){return new k(this,p)}}class k{constructor(p,M){this.type=p,this.value=M}map(p){let M=this.type.map(this.value,p);return M===void 0?void 0:M==this.value?this:new k(this.type,M)}is(p){return this.type==p}static define(p={}){return new pe(p.map||(M=>M))}static mapEffects(p,M){if(!p.length)return p;let K=[];for(let X of p){let ie=X.map(M);ie&&K.push(ie)}return K}}k.reconfigure=k.define(),k.appendConfig=k.define();class S{constructor(p,M,K,X,ie,C){this.startState=p,this.changes=M,this.selection=K,this.effects=X,this.annotations=ie,this.scrollIntoView=C,this._doc=null,this._state=null,K&&He(K,M.newLength),ie.some(A=>A.type==S.time)||(this.annotations=ie.concat(S.time.of(Date.now())))}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(p){for(let M of this.annotations)if(M.type==p)return M.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(p){let M=this.annotation(S.userEvent);return!!(M&&(M==p||M.length>p.length&&M.slice(0,p.length)==p&&M[p.length]=="."))}}S.time=at.define(),S.userEvent=at.define(),S.addToHistory=at.define(),S.remote=at.define();function B(ne,p){let M=[];for(let K=0,X=0;;){let ie,C;if(K<ne.length&&(X==p.length||p[X]>=ne[K]))ie=ne[K++],C=ne[K++];else if(X<p.length)ie=p[X++],C=p[X++];else return M;!M.length||M[M.length-1]<ie?M.push(ie,C):M[M.length-1]<C&&(M[M.length-1]=C)}}function V(ne,p,M){var K;let X,ie,C;return M?(X=p.changes,ie=we.empty(p.changes.length),C=ne.changes.compose(p.changes)):(X=p.changes.map(ne.changes),ie=ne.changes.mapDesc(p.changes,!0),C=ne.changes.compose(X)),{changes:C,selection:p.selection?p.selection.map(ie):(K=ne.selection)===null||K===void 0?void 0:K.map(X),effects:k.mapEffects(ne.effects,X).concat(k.mapEffects(p.effects,ie)),annotations:ne.annotations.length?ne.annotations.concat(p.annotations):p.annotations,scrollIntoView:ne.scrollIntoView||p.scrollIntoView}}function Z(ne,p,M){let K=p.selection,X=G(p.annotations);return p.userEvent&&(X=X.concat(S.userEvent.of(p.userEvent))),{changes:p.changes instanceof we?p.changes:we.of(p.changes||[],M,ne.facet(Ae)),selection:K&&(K instanceof ue?K:ue.single(K.anchor,K.head)),effects:G(p.effects),annotations:X,scrollIntoView:!!p.scrollIntoView}}function F(ne,p,M){let K=Z(ne,p.length?p[0]:{},ne.doc.length);p.length&&p[0].filter===!1&&(M=!1);for(let ie=1;ie<p.length;ie++){p[ie].filter===!1&&(M=!1);let C=!!p[ie].sequential;K=V(K,Z(ne,p[ie],C?K.changes.newLength:ne.doc.length),C)}let X=new S(ne,K.changes,K.selection,K.effects,K.annotations,K.scrollIntoView);return v(M?x(X):X)}function x(ne){let p=ne.startState,M=!0;for(let X of p.facet(qe)){let ie=X(ne);if(ie===!1){M=!1;break}Array.isArray(ie)&&(M=M===!0?ie:B(M,ie))}if(M!==!0){let X,ie;if(M===!1)ie=ne.changes.invertedDesc,X=we.empty(p.doc.length);else{let C=ne.changes.filter(M);X=C.changes,ie=C.filtered.invertedDesc}ne=new S(p,X,ne.selection&&ne.selection.map(ie),k.mapEffects(ne.effects,ie),ne.annotations,ne.scrollIntoView)}let K=p.facet(Ke);for(let X=K.length-1;X>=0;X--){let ie=K[X](ne);ie instanceof S?ne=ie:Array.isArray(ie)&&ie.length==1&&ie[0]instanceof S?ne=ie[0]:ne=F(p,G(ie),!1)}return ne}function v(ne){let p=ne.startState,M=p.facet(et),K=ne;for(let X=M.length-1;X>=0;X--){let ie=M[X](ne);ie&&Object.keys(ie).length&&(K=V(ne,Z(p,ie,ne.changes.newLength),!0))}return K==ne?ne:new S(p,ne.changes,ne.selection,K.effects,K.annotations,K.scrollIntoView)}const E=[];function G(ne){return ne==null?E:Array.isArray(ne)?ne:[ne]}b.CharCategory=void 0,function(ne){ne[ne.Word=0]="Word",ne[ne.Space=1]="Space",ne[ne.Other=2]="Other"}(b.CharCategory||(b.CharCategory={}));const le=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;let Se;try{Se=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch(ne){}function Pe(ne){if(Se)return Se.test(ne);for(let p=0;p<ne.length;p++){let M=ne[p];if(/\w/.test(M)||M>"\x80"&&(M.toUpperCase()!=M.toLowerCase()||le.test(M)))return!0}return!1}function Ue(ne){return p=>{if(!/\S/.test(p))return b.CharCategory.Space;if(Pe(p))return b.CharCategory.Word;for(let M=0;M<ne.length;M++)if(p.indexOf(ne[M])>-1)return b.CharCategory.Word;return b.CharCategory.Other}}class ze{constructor(p,M,K,X,ie=null){this.config=p,this.doc=M,this.selection=K,this.values=X,this.applying=null,this.status=p.statusTemplate.slice(),this.applying=ie,ie&&(ie._state=this);for(let C=0;C<this.config.dynamicSlots.length;C++)_(this,C<<1);this.applying=null}field(p,M=!0){let K=this.config.address[p.id];if(K==null){if(M)throw new RangeError("Field is not present in this state");return}return _(this,K),U(this,K)}update(...p){return F(this,p,!0)}applyTransaction(p){let M=this.config,{base:K,compartments:X}=M;for(let C of p.effects)C.is(g.reconfigure)?(M&&(X=new Map,M.compartments.forEach((A,N)=>X.set(N,A)),M=null),X.set(C.value.compartment,C.value.extension)):C.is(k.reconfigure)?(M=null,K=C.value):C.is(k.appendConfig)&&(M=null,K=G(K).concat(C.value));let ie;if(M)ie=p.startState.values.slice();else{M=w.resolve(K,X,this);let C=M.dynamicSlots.map(N=>z);for(let N in M.address){let $=M.address[N],ee=this.config.address[N];ee!=null&&($&1)==0&&(C[$>>1]=U(this,ee))}ie=new ze(M,this.doc,this.selection,C,null).values}new ze(M,p.newDoc,p.newSelection,ie,p)}replaceSelection(p){return typeof p=="string"&&(p=this.toText(p)),this.changeByRange(M=>({changes:{from:M.from,to:M.to,insert:p},range:ue.cursor(M.from+p.length)}))}changeByRange(p){let M=this.selection,K=p(M.ranges[0]),X=this.changes(K.changes),ie=[K.range],C=G(K.effects);for(let A=1;A<M.ranges.length;A++){let N=p(M.ranges[A]),$=this.changes(N.changes),ee=$.map(X);for(let Je=0;Je<A;Je++)ie[Je]=ie[Je].map(ee);let be=X.mapDesc($,!0);ie.push(N.range.map(be)),X=X.compose(ee),C=k.mapEffects(C,ee).concat(k.mapEffects(G(N.effects),be))}return{changes:X,selection:ue.create(ie,M.mainIndex),effects:C}}changes(p=[]){return p instanceof we?p:we.of(p,this.doc.length,this.facet(ze.lineSeparator))}toText(p){return D.Text.of(p.split(this.facet(ze.lineSeparator)||re))}sliceDoc(p=0,M=this.doc.length){return this.doc.sliceString(p,M,this.lineBreak)}facet(p){let M=this.config.address[p.id];return M==null?p.default:(_(this,M),U(this,M))}toJSON(p){let M={doc:this.sliceDoc(),selection:this.selection.toJSON()};if(p)for(let K in p){let X=p[K];X instanceof Y&&(M[K]=X.spec.toJSON(this.field(p[K]),this))}return M}static fromJSON(p,M={},K){if(!p||typeof p.doc!="string")throw new RangeError("Invalid JSON representation for EditorState");let X=[];if(K)for(let ie in K){let C=K[ie],A=p[ie];X.push(C.init(N=>C.spec.fromJSON(A,N)))}return ze.create({doc:p.doc,selection:ue.fromJSON(p.selection),extensions:M.extensions?X.concat([M.extensions]):X})}static create(p={}){let M=w.resolve(p.extensions||[],new Map),K=p.doc instanceof D.Text?p.doc:D.Text.of((p.doc||"").split(M.staticFacet(ze.lineSeparator)||re)),X=p.selection?p.selection instanceof ue?p.selection:ue.single(p.selection.anchor,p.selection.head):ue.single(0);return He(X,K.length),M.staticFacet(ge)||(X=X.asSingle()),new ze(M,K,X,M.dynamicSlots.map(ie=>z))}get tabSize(){return this.facet(ze.tabSize)}get lineBreak(){return this.facet(ze.lineSeparator)||` 5 + `}get readOnly(){return this.facet(nt)}phrase(p){for(let M of this.facet(ze.phrases))if(Object.prototype.hasOwnProperty.call(M,p))return M[p];return p}languageDataAt(p,M,K=-1){let X=[];for(let ie of this.facet(te))for(let C of ie(this,M,K))Object.prototype.hasOwnProperty.call(C,p)&&X.push(C[p]);return X}charCategorizer(p){return Ue(this.languageDataAt("wordChars",p).join(""))}wordAt(p){let{text:M,from:K,length:X}=this.doc.lineAt(p),ie=this.charCategorizer(p),C=p-K,A=p-K;for(;C>0;){let N=D.findClusterBreak(M,C,!1);if(ie(M.slice(N,C))!=b.CharCategory.Word)break;C=N}for(;A<X;){let N=D.findClusterBreak(M,A);if(ie(M.slice(A,N))!=b.CharCategory.Word)break;A=N}return C==A?null:ue.range(C+K,A+K)}}ze.allowMultipleSelections=ge,ze.tabSize=me.define({combine:ne=>ne.length?ne[0]:4}),ze.lineSeparator=Ae,ze.readOnly=nt,ze.phrases=me.define(),ze.languageData=te,ze.changeFilter=qe,ze.transactionFilter=Ke,ze.transactionExtender=et,g.reconfigure=k.define();function ot(ne,p,M={}){let K={};for(let X of ne)for(let ie of Object.keys(X)){let C=X[ie],A=K[ie];if(A===void 0)K[ie]=C;else if(!(A===C||C===void 0))if(Object.hasOwnProperty.call(M,ie))K[ie]=M[ie](A,C);else throw new Error("Config merge conflict for field "+ie)}for(let X in p)K[X]===void 0&&(K[X]=p[X]);return K}Object.defineProperty(b,"Text",{enumerable:!0,get:function(){return D.Text}}),b.Annotation=at,b.AnnotationType=_e,b.ChangeDesc=ye,b.ChangeSet=we,b.Compartment=g,b.EditorSelection=ue,b.EditorState=ze,b.Facet=me,b.Prec=R,b.SelectionRange=ve,b.StateEffect=k,b.StateEffectType=pe,b.StateField=Y,b.Transaction=S,b.combineConfig=ot},{"@codemirror/text":24}],23:[function(Re,mt,b){"use strict";Object.defineProperty(b,"__esModule",{value:!0});var D=Re("@lezer/common"),re=Re("@codemirror/highlight"),ye=Re("@codemirror/language");function we(Y,W,Q,R=0,d=0){W==null&&(W=Y.search(/[^\s\u00a0]/),W==-1&&(W=Y.length));let g=d;for(let O=R;O<W;O++)Y.charCodeAt(O)==9?g+=Q-g%Q:g++;return g}class Me{constructor(W,Q,R){this.string=W,this.tabSize=Q,this.indentUnit=R,this.pos=0,this.start=0,this.lastColumnPos=0,this.lastColumnValue=0}eol(){return this.pos>=this.string.length}sol(){return this.pos==0}peek(){return this.string.charAt(this.pos)||void 0}next(){if(this.pos<this.string.length)return this.string.charAt(this.pos++)}eat(W){let Q=this.string.charAt(this.pos),R;if(typeof W=="string"?R=Q==W:R=Q&&(W instanceof RegExp?W.test(Q):W(Q)),R)return++this.pos,Q}eatWhile(W){let Q=this.pos;for(;this.eat(W););return this.pos>Q}eatSpace(){let W=this.pos;for(;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>W}skipToEnd(){this.pos=this.string.length}skipTo(W){let Q=this.string.indexOf(W,this.pos);if(Q>-1)return this.pos=Q,!0}backUp(W){this.pos-=W}column(){return this.lastColumnPos<this.start&&(this.lastColumnValue=we(this.string,this.start,this.tabSize,this.lastColumnPos,this.lastColumnValue),this.lastColumnPos=this.start),this.lastColumnValue}indentation(){return we(this.string,null,this.tabSize)}match(W,Q,R){if(typeof W=="string"){let d=O=>R?O.toLowerCase():O,g=this.string.substr(this.pos,W.length);return d(g)==d(W)?(Q!==!1&&(this.pos+=W.length),!0):null}else{let d=this.string.slice(this.pos).match(W);return d&&d.index>0?null:(d&&Q!==!1&&(this.pos+=d[0].length),d)}}current(){return this.string.slice(this.start,this.pos)}}function Xe(Y){return{token:Y.token,blankLine:Y.blankLine||(()=>{}),startState:Y.startState||(()=>!0),copyState:Y.copyState||je,indent:Y.indent||(()=>null),languageData:Y.languageData||{}}}function je(Y){if(typeof Y!="object")return Y;let W={};for(let Q in Y){let R=Y[Q];W[Q]=R instanceof Array?R.slice():R}return W}class We extends ye.Language{constructor(W){let Q=ye.defineLanguageFacet(W.languageData),R=Xe(W),d,g=new class extends D.Parser{createParse(O,w,T){return new ue(d,O,w,T)}};super(Q,g,j(Q),[ye.indentService.of((O,w)=>this.getIndent(O,w))]);d=this,this.streamParser=R,this.stateAfter=new D.NodeProp({perNode:!0})}static define(W){return new We(W)}getIndent(W,Q){let R=ye.syntaxTree(W.state),d=R.resolve(Q);for(;d&&d.type!=this.topNode;)d=d.parent;if(!d)return null;let g=Oe(this,R,0,d.from,Q),O,w;if(g?(w=g.state,O=g.pos+1):(w=this.streamParser.startState(W.unit),O=0),Q-O>1e4)return null;for(;O<Q;){let z=W.state.doc.lineAt(O),_=Math.min(Q,z.to);if(z.length){let U=new Me(z.text,W.state.tabSize,W.unit);for(;U.pos<_-z.from;)Te(this.streamParser.token,U,w)}else this.streamParser.blankLine(w,W.unit);if(_==Q)break;O=z.to+1}let{text:T}=W.state.doc.lineAt(Q);return this.streamParser.indent(w,/^\s*(.*)/.exec(T)[1],W)}get allowsNesting(){return!1}}function Oe(Y,W,Q,R,d){let g=Q>=R&&Q+W.length<=d&&W.prop(Y.stateAfter);if(g)return{state:Y.streamParser.copyState(g),pos:Q+W.length};for(let O=W.children.length-1;O>=0;O--){let w=W.children[O],T=Q+W.positions[O],z=w instanceof D.Tree&&T<d&&Oe(Y,w,T,R,d);if(z)return z}return null}function De(Y,W,Q,R,d){if(d&&Q<=0&&R>=W.length)return W;!d&&W.type==Y.topNode&&(d=!0);for(let g=W.children.length-1;g>=0;g--){let O=W.positions[g]+Q,w=W.children[g],T;if(O<R&&w instanceof D.Tree){if(!(T=De(Y,w,Q-O,R-O,d)))break;return d?new D.Tree(W.type,W.children.slice(0,g).concat(T),W.positions.slice(0,g+1),O+T.length):T}}return null}function ve(Y,W,Q,R){for(let d of W){let g=d.from+(d.openStart?25:0),O=d.to-(d.openEnd?25:0),w=g<=Q&&O>Q&&Oe(Y,d.tree,0-d.offset,Q,O),T;if(w&&(T=De(Y,d.tree,Q+d.offset,w.pos+d.offset,!1)))return{state:w.state,tree:T}}return{state:Y.streamParser.startState(R?ye.getIndentUnit(R):4),tree:D.Tree.empty}}class ue{constructor(W,Q,R,d){this.lang=W,this.input=Q,this.fragments=R,this.ranges=d,this.stoppedAt=null,this.chunks=[],this.chunkPos=[],this.chunk=[],this.chunkReused=void 0,this.rangeIndex=0,this.to=d[d.length-1].to;let g=ye.ParseContext.get(),O=d[0].from,{state:w,tree:T}=ve(W,R,O,g==null?void 0:g.state);this.state=w,this.parsedPos=this.chunkStart=O+T.length,T.length&&(this.chunks.push(T),this.chunkPos.push(0)),g&&this.parsedPos<g.viewport.from-1e5&&(this.state=this.lang.streamParser.startState(ye.getIndentUnit(g.state)),g.skipUntilInView(this.parsedPos,g.viewport.from),this.parsedPos=g.viewport.from)}advance(){let W=ye.ParseContext.get(),Q=this.stoppedAt==null?this.to:this.stoppedAt,R=Math.min(Q,this.chunkStart+2048);for(W&&(R=Math.min(R,W.viewport.to));this.parsedPos<R;)this.parseLine(W);return this.chunkStart<this.parsedPos&&this.finishChunk(),this.parsedPos>=Q?this.finish():W&&this.parsedPos>W.viewport.to?(W.skipUntilInView(this.parsedPos,Q),this.finish()):null}stopAt(W){this.stoppedAt=W}lineAfter(W){let Q=this.input.chunk(W);if(this.input.lineChunks)Q==` 6 + `&&(Q="");else{let R=Q.indexOf(` 7 + `);R>-1&&(Q=Q.slice(0,R))}return W+Q.length<=this.to?Q:Q.slice(0,this.to-W)}nextLine(){let W=this.parsedPos,Q=this.lineAfter(W),R=W+Q.length;for(let d=this.rangeIndex;;){let g=this.ranges[d].to;if(g>=R||(Q=Q.slice(0,g-(R-Q.length)),d++,d==this.ranges.length))break;let O=this.ranges[d].from,w=this.lineAfter(O);Q+=w,R=O+w.length}return{line:Q,end:R}}skipGapsTo(W,Q,R){for(;;){let d=this.ranges[this.rangeIndex].to,g=W+Q;if(R>0?d>g:d>=g)break;Q+=this.ranges[++this.rangeIndex].from-d}return Q}emitToken(W,Q,R,d,g){if(this.ranges.length>1){g=this.skipGapsTo(Q,g,1),Q+=g;let O=this.chunk.length;g=this.skipGapsTo(R,g,-1),R+=g,d+=this.chunk.length-O}return this.chunk.push(W,Q,R,d),g}parseLine(W){let{line:Q,end:R}=this.nextLine(),d=0,{streamParser:g}=this.lang,O=new Me(Q,W?W.state.tabSize:4,W?ye.getIndentUnit(W.state):2);if(O.eol())g.blankLine(this.state,O.indentUnit);else for(;!O.eol();){let w=Te(g.token,O,this.state);w&&(d=this.emitToken(ke(w),this.parsedPos+O.start,this.parsedPos+O.pos,4,d))}this.parsedPos=R,this.parsedPos<this.to&&this.parsedPos++}finishChunk(){let W=D.Tree.build({buffer:this.chunk,start:this.chunkStart,length:this.parsedPos-this.chunkStart,nodeSet:me,topID:0,maxBufferLength:2048,reused:this.chunkReused});W=new D.Tree(W.type,W.children,W.positions,W.length,[[this.lang.stateAfter,this.lang.streamParser.copyState(this.state)]]),this.chunks.push(W),this.chunkPos.push(this.chunkStart-this.ranges[0].from),this.chunk=[],this.chunkReused=void 0,this.chunkStart=this.parsedPos}finish(){return new D.Tree(this.lang.topNode,this.chunks,this.chunkPos,this.parsedPos-this.ranges[0].from).balance()}}function Te(Y,W,Q){W.start=W.pos;for(let R=0;R<10;R++){let d=Y(W,Q);if(W.pos>W.start)return d}throw new Error("Stream parser failed to advance stream.")}const He=Object.create(null),Ee=[D.NodeType.none],me=new D.NodeSet(Ee),Ve=[];function ke(Y){return Y?He[Y]||(He[Y]=H(Y)):0}for(let[Y,W]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","typeName"],["attribute","propertyName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])He[Y]=ke(W);function ae(Y,W){Ve.indexOf(Y)>-1||(Ve.push(Y),console.warn(W))}function H(Y){let W=null;for(let d of Y.split(".")){let g=re.tags[d];g?typeof g=="function"?W?W=g(W):ae(d,`Modifier ${d} used at start of tag`):W?ae(d,`Tag ${d} used as modifier`):W=g:ae(d,`Unknown highlighting tag ${d}`)}if(!W)return 0;let Q=Y.replace(/ /g,"_"),R=D.NodeType.define({id:Ee.length,name:Q,props:[re.styleTags({[Q]:W})]});return Ee.push(R),R.id}function j(Y){let W=D.NodeType.define({id:Ee.length,name:"Document",props:[ye.languageDataProp.add(()=>Y)]});return Ee.push(W),W}b.StreamLanguage=We,b.StringStream=Me},{"@codemirror/highlight":11,"@codemirror/language":13,"@lezer/common":28}],24:[function(Re,mt,b){"use strict";Object.defineProperty(b,"__esModule",{value:!0});let D="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map(R=>R?parseInt(R,36):1);for(let R=1;R<D.length;R++)D[R]+=D[R-1];function re(R){for(let d=1;d<D.length;d+=2)if(D[d]>R)return D[d-1]<=R;return!1}function ye(R){return R>=127462&&R<=127487}const we=8205;function Me(R,d,g=!0,O=!0){return(g?Xe:je)(R,d,O)}function Xe(R,d,g){if(d==R.length)return d;d&&We(R.charCodeAt(d))&&Oe(R.charCodeAt(d-1))&&d--;let O=De(R,d);for(d+=ue(O);d<R.length;){let w=De(R,d);if(O==we||w==we||g&&re(w))d+=ue(w),O=w;else if(ye(w)){let T=0,z=d-2;for(;z>=0&&ye(De(R,z));)T++,z-=2;if(T%2==0)break;d+=2}else break}return d}function je(R,d,g){for(;d>0;){let O=Xe(R,d-2,g);if(O<d)return O;d--}return 0}function We(R){return R>=56320&&R<57344}function Oe(R){return R>=55296&&R<56320}function De(R,d){let g=R.charCodeAt(d);if(!Oe(g)||d+1==R.length)return g;let O=R.charCodeAt(d+1);return We(O)?(g-55296<<10)+(O-56320)+65536:g}function ve(R){return R<=65535?String.fromCharCode(R):(R-=65536,String.fromCharCode((R>>10)+55296,(R&1023)+56320))}function ue(R){return R<65536?1:2}function Te(R,d,g=R.length){let O=0;for(let w=0;w<g;)R.charCodeAt(w)==9?(O+=d-O%d,w++):(O++,w=Me(R,w));return O}function He(R,d,g,O){for(let w=0,T=0;;){if(T>=d)return w;if(w==R.length)break;T+=R.charCodeAt(w)==9?g-T%g:1,w=Me(R,w)}return O===!0?-1:R.length}class Ee{constructor(){}lineAt(d){if(d<0||d>this.length)throw new RangeError(`Invalid position ${d} in document of length ${this.length}`);return this.lineInner(d,!1,1,0)}line(d){if(d<1||d>this.lines)throw new RangeError(`Invalid line number ${d} in ${this.lines}-line document`);return this.lineInner(d,!0,1,0)}replace(d,g,O){let w=[];return this.decompose(0,d,w,2),O.length&&O.decompose(0,O.length,w,1|2),this.decompose(g,this.length,w,1),Ve.from(w,this.length-(g-d)+O.length)}append(d){return this.replace(this.length,this.length,d)}slice(d,g=this.length){let O=[];return this.decompose(d,g,O,0),Ve.from(O,g-d)}eq(d){if(d==this)return!0;if(d.length!=this.length||d.lines!=this.lines)return!1;let g=this.scanIdentical(d,1),O=this.length-this.scanIdentical(d,-1),w=new j(this),T=new j(d);for(let z=g,_=g;;){if(w.next(z),T.next(z),z=0,w.lineBreak!=T.lineBreak||w.done!=T.done||w.value!=T.value)return!1;if(_+=w.value.length,w.done||_>=O)return!0}}iter(d=1){return new j(this,d)}iterRange(d,g=this.length){return new Y(this,d,g)}iterLines(d,g){let O;if(d==null)O=this.iter();else{g==null&&(g=this.lines+1);let w=this.line(d).from;O=this.iterRange(w,Math.max(w,g==this.lines+1?this.length:g<=1?0:this.line(g-1).to))}return new W(O)}toString(){return this.sliceString(0)}toJSON(){let d=[];return this.flatten(d),d}static of(d){if(d.length==0)throw new RangeError("A document must have at least one line");return d.length==1&&!d[0]?Ee.empty:d.length<=32?new me(d):Ve.from(me.split(d,[]))}}class me extends Ee{constructor(d,g=ke(d)){super();this.text=d,this.length=g}get lines(){return this.text.length}get children(){return null}lineInner(d,g,O,w){for(let T=0;;T++){let z=this.text[T],_=w+z.length;if((g?O:_)>=d)return new Q(w,_,O,z);w=_+1,O++}}decompose(d,g,O,w){let T=d<=0&&g>=this.length?this:new me(H(this.text,d,g),Math.min(g,this.length)-Math.max(0,d));if(w&1){let z=O.pop(),_=ae(T.text,z.text.slice(),0,T.length);if(_.length<=32)O.push(new me(_,z.length+T.length));else{let U=_.length>>1;O.push(new me(_.slice(0,U)),new me(_.slice(U)))}}else O.push(T)}replace(d,g,O){if(!(O instanceof me))return super.replace(d,g,O);let w=ae(this.text,ae(O.text,H(this.text,0,d)),g),T=this.length+O.length-(g-d);return w.length<=32?new me(w,T):Ve.from(me.split(w,[]),T)}sliceString(d,g=this.length,O=` 8 + `){let w="";for(let T=0,z=0;T<=g&&z<this.text.length;z++){let _=this.text[z],U=T+_.length;T>d&&z&&(w+=O),d<U&&g>T&&(w+=_.slice(Math.max(0,d-T),g-T)),T=U+1}return w}flatten(d){for(let g of this.text)d.push(g)}scanIdentical(){return 0}static split(d,g){let O=[],w=-1;for(let T of d)O.push(T),w+=T.length+1,O.length==32&&(g.push(new me(O,w)),O=[],w=-1);return w>-1&&g.push(new me(O,w)),g}}class Ve extends Ee{constructor(d,g){super();this.children=d,this.length=g,this.lines=0;for(let O of d)this.lines+=O.lines}lineInner(d,g,O,w){for(let T=0;;T++){let z=this.children[T],_=w+z.length,U=O+z.lines-1;if((g?U:_)>=d)return z.lineInner(d,g,O,w);w=_+1,O=U+1}}decompose(d,g,O,w){for(let T=0,z=0;z<=g&&T<this.children.length;T++){let _=this.children[T],U=z+_.length;if(d<=U&&g>=z){let te=w&((z<=d?1:0)|(U>=g?2:0));z>=d&&U<=g&&!te?O.push(_):_.decompose(d-z,g-z,O,te)}z=U+1}}replace(d,g,O){if(O.lines<this.lines)for(let w=0,T=0;w<this.children.length;w++){let z=this.children[w],_=T+z.length;if(d>=T&&g<=_){let U=z.replace(d-T,g-T,O),te=this.lines-z.lines+U.lines;if(U.lines<te>>5-1&&U.lines>te>>5+1){let ge=this.children.slice();return ge[w]=U,new Ve(ge,this.length-(g-d)+O.length)}return super.replace(T,_,U)}T=_+1}return super.replace(d,g,O)}sliceString(d,g=this.length,O=` 9 + `){let w="";for(let T=0,z=0;T<this.children.length&&z<=g;T++){let _=this.children[T],U=z+_.length;z>d&&T&&(w+=O),d<U&&g>z&&(w+=_.sliceString(d-z,g-z,O)),z=U+1}return w}flatten(d){for(let g of this.children)g.flatten(d)}scanIdentical(d,g){if(!(d instanceof Ve))return 0;let O=0,[w,T,z,_]=g>0?[0,0,this.children.length,d.children.length]:[this.children.length-1,d.children.length-1,-1,-1];for(;;w+=g,T+=g){if(w==z||T==_)return O;let U=this.children[w],te=d.children[T];if(U!=te)return O+U.scanIdentical(te,g);O+=U.length+1}}static from(d,g=d.reduce((O,w)=>O+w.length+1,-1)){let O=0;for(let Ke of d)O+=Ke.lines;if(O<32){let Ke=[];for(let et of d)et.flatten(Ke);return new me(Ke,g)}let w=Math.max(32,O>>5),T=w<<1,z=w>>1,_=[],U=0,te=-1,ge=[];function Ae(Ke){let et;if(Ke.lines>T&&Ke instanceof Ve)for(let nt of Ke.children)Ae(nt);else Ke.lines>z&&(U>z||!U)?(qe(),_.push(Ke)):Ke instanceof me&&U&&(et=ge[ge.length-1])instanceof me&&Ke.lines+et.lines<=32?(U+=Ke.lines,te+=Ke.length+1,ge[ge.length-1]=new me(et.text.concat(Ke.text),et.length+1+Ke.length)):(U+Ke.lines>w&&qe(),U+=Ke.lines,te+=Ke.length+1,ge.push(Ke))}function qe(){U!=0&&(_.push(ge.length==1?ge[0]:Ve.from(ge,te)),te=-1,U=ge.length=0)}for(let Ke of d)Ae(Ke);return qe(),_.length==1?_[0]:new Ve(_,g)}}Ee.empty=new me([""],0);function ke(R){let d=-1;for(let g of R)d+=g.length+1;return d}function ae(R,d,g=0,O=1e9){for(let w=0,T=0,z=!0;T<R.length&&w<=O;T++){let _=R[T],U=w+_.length;U>=g&&(U>O&&(_=_.slice(0,O-w)),w<g&&(_=_.slice(g-w)),z?(d[d.length-1]+=_,z=!1):d.push(_)),w=U+1}return d}function H(R,d,g){return ae(R,[""],d,g)}class j{constructor(d,g=1){this.dir=g,this.done=!1,this.lineBreak=!1,this.value="",this.nodes=[d],this.offsets=[g>0?1:(d instanceof me?d.text.length:d.children.length)<<1]}nextInner(d,g){for(this.done=this.lineBreak=!1;;){let O=this.nodes.length-1,w=this.nodes[O],T=this.offsets[O],z=T>>1,_=w instanceof me?w.text.length:w.children.length;if(z==(g>0?_:0)){if(O==0)return this.done=!0,this.value="",this;g>0&&this.offsets[O-1]++,this.nodes.pop(),this.offsets.pop()}else if((T&1)==(g>0?0:1)){if(this.offsets[O]+=g,d==0)return this.lineBreak=!0,this.value=` 10 + `,this;d--}else if(w instanceof me){let U=w.text[z+(g<0?-1:0)];if(this.offsets[O]+=g,U.length>Math.max(0,d))return this.value=d==0?U:g>0?U.slice(d):U.slice(0,U.length-d),this;d-=U.length}else{let U=w.children[z+(g<0?-1:0)];d>U.length?(d-=U.length,this.offsets[O]+=g):(g<0&&this.offsets[O]--,this.nodes.push(U),this.offsets.push(g>0?1:(U instanceof me?U.text.length:U.children.length)<<1))}}}next(d=0){return d<0&&(this.nextInner(-d,-this.dir),d=this.value.length),this.nextInner(d,this.dir)}}class Y{constructor(d,g,O){this.value="",this.done=!1,this.cursor=new j(d,g>O?-1:1),this.pos=g>O?d.length:0,this.from=Math.min(g,O),this.to=Math.max(g,O)}nextInner(d,g){if(g<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;d+=Math.max(0,g<0?this.pos-this.to:this.from-this.pos);let O=g<0?this.pos-this.from:this.to-this.pos;d>O&&(d=O),O-=d;let{value:w}=this.cursor.next(d);return this.pos+=(w.length+d)*g,this.value=w.length<=O?w:g<0?w.slice(w.length-O):w.slice(0,O),this.done=!this.value,this}next(d=0){return d<0?d=Math.max(d,this.from-this.pos):d>0&&(d=Math.min(d,this.to-this.pos)),this.nextInner(d,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}}class W{constructor(d){this.inner=d,this.afterBreak=!0,this.value="",this.done=!1}next(d=0){let{done:g,lineBreak:O,value:w}=this.inner.next(d);return g?(this.done=!0,this.value=""):O?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=w,this.afterBreak=!1),this}get lineBreak(){return!1}}typeof Symbol!="undefined"&&(Ee.prototype[Symbol.iterator]=function(){return this.iter()},j.prototype[Symbol.iterator]=Y.prototype[Symbol.iterator]=W.prototype[Symbol.iterator]=function(){return this});class Q{constructor(d,g,O,w){this.from=d,this.to=g,this.number=O,this.text=w}get length(){return this.to-this.from}}b.Line=Q,b.Text=Ee,b.codePointAt=De,b.codePointSize=ue,b.countColumn=Te,b.findClusterBreak=Me,b.findColumn=He,b.fromCodePoint=ve},{}],25:[function(Re,mt,b){"use strict";Object.defineProperty(b,"__esModule",{value:!0});var D=Re("@codemirror/view"),re=Re("@codemirror/highlight");const ye="#e5c07b",we="#e06c75",Me="#56b6c2",Xe="#ffffff",je="#abb2bf",We="#7d8799",Oe="#61afef",De="#98c379",ve="#d19a66",ue="#c678dd",Te="#21252b",He="#2c313a",Ee="#282c34",me="#353a42",Ve="#3E4451",ke="#528bff",ae=D.EditorView.theme({"&":{color:je,backgroundColor:Ee},".cm-content":{caretColor:ke},"&.cm-focused .cm-cursor":{borderLeftColor:ke},"&.cm-focused .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:Ve},".cm-panels":{backgroundColor:Te,color:je},".cm-panels.cm-panels-top":{borderBottom:"2px solid black"},".cm-panels.cm-panels-bottom":{borderTop:"2px solid black"},".cm-searchMatch":{backgroundColor:"#72a1ff59",outline:"1px solid #457dff"},".cm-searchMatch.cm-searchMatch-selected":{backgroundColor:"#6199ff2f"},".cm-activeLine":{backgroundColor:He},".cm-selectionMatch":{backgroundColor:"#aafe661a"},"&.cm-focused .cm-matchingBracket, &.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bad0f847",outline:"1px solid #515a6b"},".cm-gutters":{backgroundColor:Ee,color:We,border:"none"},".cm-activeLineGutter":{backgroundColor:He},".cm-foldPlaceholder":{backgroundColor:"transparent",border:"none",color:"#ddd"},".cm-tooltip":{border:"none",backgroundColor:me},".cm-tooltip .cm-tooltip-arrow:before":{borderTopColor:"transparent",borderBottomColor:"transparent"},".cm-tooltip .cm-tooltip-arrow:after":{borderTopColor:me,borderBottomColor:me},".cm-tooltip-autocomplete":{"& > ul > li[aria-selected]":{backgroundColor:He,color:je}}},{dark:!0}),H=re.HighlightStyle.define([{tag:re.tags.keyword,color:ue},{tag:[re.tags.name,re.tags.deleted,re.tags.character,re.tags.propertyName,re.tags.macroName],color:we},{tag:[re.tags.function(re.tags.variableName),re.tags.labelName],color:Oe},{tag:[re.tags.color,re.tags.constant(re.tags.name),re.tags.standard(re.tags.name)],color:ve},{tag:[re.tags.definition(re.tags.name),re.tags.separator],color:je},{tag:[re.tags.typeName,re.tags.className,re.tags.number,re.tags.changed,re.tags.annotation,re.tags.modifier,re.tags.self,re.tags.namespace],color:ye},{tag:[re.tags.operator,re.tags.operatorKeyword,re.tags.url,re.tags.escape,re.tags.regexp,re.tags.link,re.tags.special(re.tags.string)],color:Me},{tag:[re.tags.meta,re.tags.comment],color:We},{tag:re.tags.strong,fontWeight:"bold"},{tag:re.tags.emphasis,fontStyle:"italic"},{tag:re.tags.strikethrough,textDecoration:"line-through"},{tag:re.tags.link,color:We,textDecoration:"underline"},{tag:re.tags.heading,fontWeight:"bold",color:we},{tag:[re.tags.atom,re.tags.bool,re.tags.special(re.tags.variableName)],color:ve},{tag:[re.tags.processingInstruction,re.tags.string,re.tags.inserted],color:De},{tag:re.tags.invalid,color:Xe}]),j=[ae,H];b.oneDark=j,b.oneDarkHighlightStyle=H,b.oneDarkTheme=ae},{"@codemirror/highlight":11,"@codemirror/view":27}],26:[function(Re,mt,b){"use strict";Object.defineProperty(b,"__esModule",{value:!0});var D=Re("@codemirror/view"),re=Re("@codemirror/state");const ye=typeof navigator!="undefined"&&!/Edge\/(\d+)/.exec(navigator.userAgent)&&/Apple Computer/.test(navigator.vendor)&&(/Mobile\/\w+/.test(navigator.userAgent)||navigator.maxTouchPoints>2),we="-10000px";class Me{constructor(d,g,O){this.facet=g,this.createTooltipView=O,this.input=d.state.facet(g),this.tooltips=this.input.filter(w=>w),this.tooltipViews=this.tooltips.map(O)}update(d){let g=d.state.facet(this.facet),O=g.filter(T=>T);if(g===this.input){for(let T of this.tooltipViews)T.update&&T.update(d);return!1}let w=[];for(let T=0;T<O.length;T++){let z=O[T],_=-1;if(!!z){for(let U=0;U<this.tooltips.length;U++){let te=this.tooltips[U];te&&te.create==z.create&&(_=U)}if(_<0)w[T]=this.createTooltipView(z);else{let U=w[T]=this.tooltipViews[_];U.update&&U.update(d)}}}for(let T of this.tooltipViews)w.indexOf(T)<0&&T.dom.remove();return this.input=g,this.tooltips=O,this.tooltipViews=w,!0}}function Xe(R={}){return We.of(R)}function je(){return{top:0,left:0,bottom:innerHeight,right:innerWidth}}const We=re.Facet.define({combine:R=>{var d,g,O;return{position:ye?"absolute":((d=R.find(w=>w.position))===null||d===void 0?void 0:d.position)||"fixed",parent:((g=R.find(w=>w.parent))===null||g===void 0?void 0:g.parent)||null,tooltipSpace:((O=R.find(w=>w.tooltipSpace))===null||O===void 0?void 0:O.tooltipSpace)||je}}}),Oe=D.ViewPlugin.fromClass(class{constructor(R){var d;this.view=R,this.inView=!0,this.lastTransaction=0,this.measureTimeout=-1;let g=R.state.facet(We);this.position=g.position,this.parent=g.parent,this.classes=R.themeClasses,this.createContainer(),this.measureReq={read:this.readMeasure.bind(this),write:this.writeMeasure.bind(this),key:this},this.manager=new Me(R,ue,O=>this.createTooltip(O)),this.intersectionObserver=typeof IntersectionObserver=="function"?new IntersectionObserver(O=>{Date.now()>this.lastTransaction-50&&O.length>0&&O[O.length-1].intersectionRatio<1&&this.measureSoon()},{threshold:[1]}):null,this.observeIntersection(),(d=R.dom.ownerDocument.defaultView)===null||d===void 0||d.addEventListener("resize",this.measureSoon=this.measureSoon.bind(this)),this.maybeMeasure()}createContainer(){this.parent?(this.container=document.createElement("div"),this.container.style.position="relative",this.container.className=this.view.themeClasses,this.parent.appendChild(this.container)):this.container=this.view.dom}observeIntersection(){if(this.intersectionObserver){this.intersectionObserver.disconnect();for(let R of this.manager.tooltipViews)this.intersectionObserver.observe(R.dom)}}measureSoon(){this.measureTimeout<0&&(this.measureTimeout=setTimeout(()=>{this.measureTimeout=-1,this.maybeMeasure()},50))}update(R){R.transactions.length&&(this.lastTransaction=Date.now());let d=this.manager.update(R);d&&this.observeIntersection();let g=d||R.geometryChanged,O=R.state.facet(We);if(O.position!=this.position){this.position=O.position;for(let w of this.manager.tooltipViews)w.dom.style.position=this.position;g=!0}if(O.parent!=this.parent){this.parent&&this.container.remove(),this.parent=O.parent,this.createContainer();for(let w of this.manager.tooltipViews)this.container.appendChild(w.dom);g=!0}else this.parent&&this.view.themeClasses!=this.classes&&(this.classes=this.container.className=this.view.themeClasses);g&&this.maybeMeasure()}createTooltip(R){let d=R.create(this.view);if(d.dom.classList.add("cm-tooltip"),R.arrow&&!d.dom.querySelector("cm-tooltip > cm-tooltip-arrow")){let g=document.createElement("div");g.className="cm-tooltip-arrow",d.dom.appendChild(g)}return d.dom.style.position=this.position,d.dom.style.top=we,this.container.appendChild(d.dom),d.mount&&d.mount(this.view),d}destroy(){var R,d;(R=this.view.dom.ownerDocument.defaultView)===null||R===void 0||R.removeEventListener("resize",this.measureSoon);for(let{dom:g}of this.manager.tooltipViews)g.remove();(d=this.intersectionObserver)===null||d===void 0||d.disconnect(),clearTimeout(this.measureTimeout)}readMeasure(){let R=this.view.dom.getBoundingClientRect();return{editor:R,parent:this.parent?this.container.getBoundingClientRect():R,pos:this.manager.tooltips.map(d=>this.view.coordsAtPos(d.pos)),size:this.manager.tooltipViews.map(({dom:d})=>d.getBoundingClientRect()),space:this.view.state.facet(We).tooltipSpace(this.view)}}writeMeasure(R){let{editor:d,space:g}=R,O=[];for(let w=0;w<this.manager.tooltips.length;w++){let T=this.manager.tooltips[w],z=this.manager.tooltipViews[w],{dom:_}=z,U=R.pos[w],te=R.size[w];if(!U||U.bottom<=Math.max(d.top,g.top)||U.top>=Math.min(d.bottom,g.bottom)||U.right<=Math.max(d.left,g.left)||U.left>=Math.min(d.right,g.right)){_.style.top=we;continue}let ge=T.arrow?z.dom.querySelector(".cm-tooltip-arrow"):null,Ae=ge?7:0,qe=te.right-te.left,Ke=te.bottom-te.top,et=z.offset||ve,nt=this.view.textDirection==D.Direction.LTR,at=te.width>g.right-g.left?nt?g.left:g.right-te.width:nt?Math.min(U.left-(ge?14:0)+et.x,g.right-qe):Math.max(g.left,U.left-qe+(ge?14:0)-et.x),_e=!!T.above;!T.strictSide&&(_e?U.top-(te.bottom-te.top)-et.y<g.top:U.bottom+(te.bottom-te.top)+et.y>g.bottom)&&_e==g.bottom-U.bottom>U.top-g.top&&(_e=!_e);let pe=_e?U.top-Ke-Ae-et.y:U.bottom+Ae+et.y,k=at+qe;if(z.overlap!==!0)for(let S of O)S.left<k&&S.right>at&&S.top<pe+Ke&&S.bottom>pe&&(pe=_e?S.top-Ke-2-Ae:S.bottom+Ae+2);this.position=="absolute"?(_.style.top=pe-R.parent.top+"px",_.style.left=at-R.parent.left+"px"):(_.style.top=pe+"px",_.style.left=at+"px"),ge&&(ge.style.left=`${U.left+(nt?et.x:-et.x)-(at+14-7)}px`),z.overlap!==!0&&O.push({left:at,top:pe,right:k,bottom:pe+Ke}),_.classList.toggle("cm-tooltip-above",_e),_.classList.toggle("cm-tooltip-below",!_e),z.positioned&&z.positioned()}}maybeMeasure(){if(this.manager.tooltips.length&&(this.view.inView&&this.view.requestMeasure(this.measureReq),this.inView!=this.view.inView&&(this.inView=this.view.inView,!this.inView)))for(let R of this.manager.tooltipViews)R.dom.style.top=we}},{eventHandlers:{scroll(){this.maybeMeasure()}}}),De=D.EditorView.baseTheme({".cm-tooltip":{zIndex:100},"&light .cm-tooltip":{border:"1px solid #bbb",backgroundColor:"#f5f5f5"},"&light .cm-tooltip-section:not(:first-child)":{borderTop:"1px solid #bbb"},"&dark .cm-tooltip":{backgroundColor:"#333338",color:"white"},".cm-tooltip-arrow":{height:`${7}px`,width:`${7*2}px`,position:"absolute",zIndex:-1,overflow:"hidden","&:before, &:after":{content:"''",position:"absolute",width:0,height:0,borderLeft:`${7}px solid transparent`,borderRight:`${7}px solid transparent`},".cm-tooltip-above &":{bottom:`-${7}px`,"&:before":{borderTop:`${7}px solid #bbb`},"&:after":{borderTop:`${7}px solid #f5f5f5`,bottom:"1px"}},".cm-tooltip-below &":{top:`-${7}px`,"&:before":{borderBottom:`${7}px solid #bbb`},"&:after":{borderBottom:`${7}px solid #f5f5f5`,top:"1px"}}},"&dark .cm-tooltip .cm-tooltip-arrow":{"&:before":{borderTopColor:"#333338",borderBottomColor:"#333338"},"&:after":{borderTopColor:"transparent",borderBottomColor:"transparent"}}}),ve={x:0,y:0},ue=re.Facet.define({enables:[Oe,De]}),Te=re.Facet.define();class He{constructor(d){this.view=d,this.mounted=!1,this.dom=document.createElement("div"),this.dom.classList.add("cm-tooltip-hover"),this.manager=new Me(d,Te,g=>this.createHostedView(g))}static create(d){return new He(d)}createHostedView(d){let g=d.create(this.view);return g.dom.classList.add("cm-tooltip-section"),this.dom.appendChild(g.dom),this.mounted&&g.mount&&g.mount(this.view),g}mount(d){for(let g of this.manager.tooltipViews)g.mount&&g.mount(d);this.mounted=!0}positioned(){for(let d of this.manager.tooltipViews)d.positioned&&d.positioned()}update(d){this.manager.update(d)}}const Ee=ue.compute([Te],R=>{let d=R.facet(Te).filter(g=>g);return d.length===0?null:{pos:Math.min(...d.map(g=>g.pos)),end:Math.max(...d.filter(g=>g.end!=null).map(g=>g.end)),create:He.create,above:d[0].above,arrow:d.some(g=>g.arrow)}});class me{constructor(d,g,O,w,T){this.view=d,this.source=g,this.field=O,this.setHover=w,this.hoverTime=T,this.hoverTimeout=-1,this.restartTimeout=-1,this.pending=null,this.lastMove={x:0,y:0,target:d.dom,time:0},this.checkHover=this.checkHover.bind(this),d.dom.addEventListener("mouseleave",this.mouseleave=this.mouseleave.bind(this)),d.dom.addEventListener("mousemove",this.mousemove=this.mousemove.bind(this))}update(){this.pending&&(this.pending=null,clearTimeout(this.restartTimeout),this.restartTimeout=setTimeout(()=>this.startHover(),20))}get active(){return this.view.state.field(this.field)}checkHover(){if(this.hoverTimeout=-1,this.active)return;let d=Date.now()-this.lastMove.time;d<this.hoverTime?this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime-d):this.startHover()}startHover(){var d;clearTimeout(this.restartTimeout);let{lastMove:g}=this,O=this.view.contentDOM.contains(g.target)?this.view.posAtCoords(g):null;if(O==null)return;let w=this.view.coordsAtPos(O);if(w==null||g.y<w.top||g.y>w.bottom||g.x<w.left-this.view.defaultCharacterWidth||g.x>w.right+this.view.defaultCharacterWidth)return;let T=this.view.bidiSpans(this.view.state.doc.lineAt(O)).find(U=>U.from<=O&&U.to>=O),z=T&&T.dir==D.Direction.RTL?-1:1,_=this.source(this.view,O,g.x<w.left?-z:z);if((d=_)===null||d===void 0?void 0:d.then){let U=this.pending={pos:O};_.then(te=>{this.pending==U&&(this.pending=null,te&&this.view.dispatch({effects:this.setHover.of(te)}))},te=>D.logException(this.view.state,te,"hover tooltip"))}else _&&this.view.dispatch({effects:this.setHover.of(_)})}mousemove(d){var g;this.lastMove={x:d.clientX,y:d.clientY,target:d.target,time:Date.now()},this.hoverTimeout<0&&(this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime));let O=this.active;if(O&&!Ve(this.lastMove.target)||this.pending){let{pos:w}=O||this.pending,T=(g=O==null?void 0:O.end)!==null&&g!==void 0?g:w;(w==T?this.view.posAtCoords(this.lastMove)!=w:!ke(this.view,w,T,d.clientX,d.clientY,6))&&(this.view.dispatch({effects:this.setHover.of(null)}),this.pending=null)}}mouseleave(){clearTimeout(this.hoverTimeout),this.hoverTimeout=-1,this.active&&this.view.dispatch({effects:this.setHover.of(null)})}destroy(){clearTimeout(this.hoverTimeout),this.view.dom.removeEventListener("mouseleave",this.mouseleave),this.view.dom.removeEventListener("mousemove",this.mousemove)}}function Ve(R){for(let d=R;d;d=d.parentNode)if(d.nodeType==1&&d.classList.contains("cm-tooltip"))return!0;return!1}function ke(R,d,g,O,w,T){let z=document.createRange(),_=R.domAtPos(d),U=R.domAtPos(g);z.setEnd(U.node,U.offset),z.setStart(_.node,_.offset);let te=z.getClientRects();z.detach();for(let ge=0;ge<te.length;ge++){let Ae=te[ge];if(Math.max(Ae.top-w,w-Ae.bottom,Ae.left-O,O-Ae.right)<=T)return!0}return!1}function ae(R,d={}){let g=re.StateEffect.define(),O=re.StateField.define({create(){return null},update(T,z){if(T&&d.hideOnChange&&(z.docChanged||z.selection))return null;for(let _ of z.effects){if(_.is(g))return _.value;if(_.is(Y))return null}if(T&&z.docChanged){let _=z.changes.mapPos(T.pos,-1,re.MapMode.TrackDel);if(_==null)return null;let U=Object.assign(Object.create(null),T);return U.pos=_,T.end!=null&&(U.end=z.changes.mapPos(T.end)),U}return T},provide:T=>Te.from(T)}),w=d.hoverTime||600;return[O,D.ViewPlugin.define(T=>new me(T,R,O,g,w)),Ee]}function H(R,d){let g=R.plugin(Oe);if(!g)return null;let O=g.manager.tooltips.indexOf(d);return O<0?null:g.manager.tooltipViews[O]}function j(R){return R.facet(Te).some(d=>d)}const Y=re.StateEffect.define(),W=Y.of(null);function Q(R){var d;(d=R.plugin(Oe))===null||d===void 0||d.maybeMeasure()}b.closeHoverTooltips=W,b.getTooltip=H,b.hasHoverTooltips=j,b.hoverTooltip=ae,b.repositionTooltips=Q,b.showTooltip=ue,b.tooltips=Xe},{"@codemirror/state":22,"@codemirror/view":27}],27:[function(Re,mt,b){"use strict";Object.defineProperty(b,"__esModule",{value:!0});var D=Re("@codemirror/state"),re=Re("style-mod"),ye=Re("@codemirror/rangeset"),we=Re("@codemirror/text"),Me=Re("w3c-keyname");function Xe(h){let t;return h.nodeType==11?t=h.getSelection?h:h.ownerDocument:t=h,t.getSelection()}function je(h,t){return t?h.contains(t.nodeType!=1?t.parentNode:t):!1}function We(){let h=document.activeElement;for(;h&&h.shadowRoot;)h=h.shadowRoot.activeElement;return h}function Oe(h,t){if(!t.anchorNode)return!1;try{return je(h,t.anchorNode)}catch(r){return!1}}function De(h){return h.nodeType==3?Q(h,0,h.nodeValue.length).getClientRects():h.nodeType==1?h.getClientRects():[]}function ve(h,t,r,l){return r?Te(h,t,r,l,-1)||Te(h,t,r,l,1):!1}function ue(h){for(var t=0;;t++)if(h=h.previousSibling,!h)return t}function Te(h,t,r,l,a){for(;;){if(h==r&&t==l)return!0;if(t==(a<0?0:He(h))){if(h.nodeName=="DIV")return!1;let u=h.parentNode;if(!u||u.nodeType!=1)return!1;t=ue(h)+(a<0?0:1),h=u}else if(h.nodeType==1){if(h=h.childNodes[t+(a<0?-1:0)],h.nodeType==1&&h.contentEditable=="false")return!1;t=a<0?He(h):0}else return!1}}function He(h){return h.nodeType==3?h.nodeValue.length:h.childNodes.length}const Ee={left:0,right:0,top:0,bottom:0};function me(h,t){let r=t?h.left:h.right;return{left:r,right:r,top:h.top,bottom:h.bottom}}function Ve(h){return{left:0,right:h.innerWidth,top:0,bottom:h.innerHeight}}const ke=5;function ae(h,t,r,l){let a=h.ownerDocument,u=a.defaultView;for(let m=h;m;)if(m.nodeType==1){let n,e=m==a.body;if(e)n=Ve(u);else{if(m.scrollHeight<=m.clientHeight&&m.scrollWidth<=m.clientWidth){m=m.parentNode;continue}let o=m.getBoundingClientRect();n={left:o.left,right:o.left+m.clientWidth,top:o.top,bottom:o.top+m.clientHeight}}let i=0,s=0;if(l){let o=t.bottom-t.top,c=n.bottom-n.top,f;o<=c?f=t.top+o/2-c/2:r<0?f=t.top-ke:f=t.bottom+ke-c,s=f-n.top,Math.abs(s)<=1&&(s=0)}else t.top<n.top?(s=-(n.top-t.top+ke),r>0&&t.bottom>n.bottom+s&&(s=t.bottom-n.bottom+s+ke)):t.bottom>n.bottom&&(s=t.bottom-n.bottom+ke,r<0&&t.top-s<n.top&&(s=-(n.top+s-t.top+ke)));if(t.left<n.left?(i=-(n.left-t.left+ke),r>0&&t.right>n.right+i&&(i=t.right-n.right+i+ke)):t.right>n.right&&(i=t.right-n.right+ke,r<0&&t.left<n.left+i&&(i=-(n.left+i-t.left+ke))),i||s)if(e)u.scrollBy(i,s);else{if(s){let o=m.scrollTop;m.scrollTop+=s,s=m.scrollTop-o}if(i){let o=m.scrollLeft;m.scrollLeft+=i,i=m.scrollLeft-o}t={left:t.left-i,top:t.top-s,right:t.right-i,bottom:t.bottom-s}}if(e)break;m=m.assignedSlot||m.parentNode,l=!1}else if(m.nodeType==11)m=m.host;else break}class H{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}eq(t){return this.anchorNode==t.anchorNode&&this.anchorOffset==t.anchorOffset&&this.focusNode==t.focusNode&&this.focusOffset==t.focusOffset}set(t){this.anchorNode=t.anchorNode,this.anchorOffset=t.anchorOffset,this.focusNode=t.focusNode,this.focusOffset=t.focusOffset}}let j=null;function Y(h){if(h.setActive)return h.setActive();if(j)return h.focus(j);let t=[];for(let r=h;r&&(t.push(r,r.scrollTop,r.scrollLeft),r!=r.ownerDocument);r=r.parentNode);if(h.focus(j==null?{get preventScroll(){return j={preventScroll:!0},!0}}:void 0),!j){j=!1;for(let r=0;r<t.length;){let l=t[r++],a=t[r++],u=t[r++];l.scrollTop!=a&&(l.scrollTop=a),l.scrollLeft!=u&&(l.scrollLeft=u)}}}let W;function Q(h,t,r=t){let l=W||(W=document.createRange());return l.setEnd(h,r),l.setStart(h,t),l}function R(h,t,r){let l={key:t,code:t,keyCode:r,which:r,cancelable:!0},a=new KeyboardEvent("keydown",l);a.synthetic=!0,h.dispatchEvent(a);let u=new KeyboardEvent("keyup",l);return u.synthetic=!0,h.dispatchEvent(u),a.defaultPrevented||u.defaultPrevented}function d(h){for(;h;){if(h&&(h.nodeType==9||h.nodeType==11&&h.host))return h;h=h.assignedSlot||h.parentNode}return null}class g{constructor(t,r,l=!0){this.node=t,this.offset=r,this.precise=l}static before(t,r){return new g(t.parentNode,ue(t),r)}static after(t,r){return new g(t.parentNode,ue(t)+1,r)}}const O=[];class w{constructor(){this.parent=null,this.dom=null,this.dirty=2}get editorView(){if(!this.parent)throw new Error("Accessing view in orphan content view");return this.parent.editorView}get overrideDOMText(){return null}get posAtStart(){return this.parent?this.parent.posBefore(this):0}get posAtEnd(){return this.posAtStart+this.length}posBefore(t){let r=this.posAtStart;for(let l of this.children){if(l==t)return r;r+=l.length+l.breakAfter}throw new RangeError("Invalid child in posBefore")}posAfter(t){return this.posBefore(t)+t.length}coordsAt(t,r){return null}sync(t){var r;if(this.dirty&2){let l=this.dom,a=l.firstChild;for(let u of this.children)if(u.dirty&&(!u.dom&&a&&!((r=w.get(a))===null||r===void 0?void 0:r.parent)&&u.reuseDOM(a),u.sync(t),u.dirty=0),t&&!t.written&&t.node==l&&a!=u.dom&&(t.written=!0),u.dom.parentNode==l){for(;a&&a!=u.dom;)a=T(a);a=u.dom.nextSibling}else l.insertBefore(u.dom,a);for(a&&t&&t.node==l&&(t.written=!0);a;)a=T(a)}else if(this.dirty&1)for(let l of this.children)l.dirty&&(l.sync(t),l.dirty=0)}reuseDOM(t){return!1}localPosFromDOM(t,r){let l;if(t==this.dom)l=this.dom.childNodes[r];else{let a=He(t)==0?0:r==0?-1:1;for(;;){let u=t.parentNode;if(u==this.dom)break;a==0&&u.firstChild!=u.lastChild&&(t==u.firstChild?a=-1:a=1),t=u}a<0?l=t:l=t.nextSibling}if(l==this.dom.firstChild)return 0;for(;l&&!w.get(l);)l=l.nextSibling;if(!l)return this.length;for(let a=0,u=0;;a++){let m=this.children[a];if(m.dom==l)return u;u+=m.length+m.breakAfter}}domBoundsAround(t,r,l=0){let a=-1,u=-1,m=-1,n=-1;for(let e=0,i=l,s=l;e<this.children.length;e++){let o=this.children[e],c=i+o.length;if(i<t&&c>r)return o.domBoundsAround(t,r,i);if(c>=t&&a==-1&&(a=e,u=i),i>r&&o.dom.parentNode==this.dom){m=e,n=s;break}s=c,i=c+o.breakAfter}return{from:u,to:n<0?l+this.length:n,startDOM:(a?this.children[a-1].dom.nextSibling:null)||this.dom.firstChild,endDOM:m<this.children.length&&m>=0?this.children[m].dom:null}}markDirty(t=!1){this.dirty|=2,this.markParentsDirty(t)}markParentsDirty(t){for(let r=this.parent;r;r=r.parent){if(t&&(r.dirty|=2),r.dirty&1)return;r.dirty|=1,t=!1}}setParent(t){this.parent!=t&&(this.parent=t,this.dirty&&this.markParentsDirty(!0))}setDOM(t){this.dom&&(this.dom.cmView=null),this.dom=t,t.cmView=this}get rootView(){for(let t=this;;){let r=t.parent;if(!r)return t;t=r}}replaceChildren(t,r,l=O){this.markDirty();for(let a=t;a<r;a++){let u=this.children[a];u.parent==this&&(u.parent=null)}this.children.splice(t,r-t,...l);for(let a=0;a<l.length;a++)l[a].setParent(this)}ignoreMutation(t){return!1}ignoreEvent(t){return!1}childCursor(t=this.length){return new z(this.children,t,this.children.length)}childPos(t,r=1){return this.childCursor().findPos(t,r)}toString(){let t=this.constructor.name.replace("View","");return t+(this.children.length?"("+this.children.join()+")":this.length?"["+(t=="Text"?this.text:this.length)+"]":"")+(this.breakAfter?"#":"")}static get(t){return t.cmView}get isEditable(){return!0}}w.prototype.breakAfter=0;function T(h){let t=h.nextSibling;return h.parentNode.removeChild(h),t}class z{constructor(t,r,l){this.children=t,this.pos=r,this.i=l,this.off=0}findPos(t,r=1){for(;;){if(t>this.pos||t==this.pos&&(r>0||this.i==0||this.children[this.i-1].breakAfter))return this.off=t-this.pos,this;let l=this.children[--this.i];this.pos-=l.length+l.breakAfter}}}let[_,U]=typeof navigator!="undefined"?[navigator,document]:[{userAgent:"",vendor:"",platform:""},{documentElement:{style:{}}}];const te=/Edge\/(\d+)/.exec(_.userAgent),ge=/MSIE \d/.test(_.userAgent),Ae=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(_.userAgent),qe=!!(ge||Ae||te),Ke=!qe&&/gecko\/(\d+)/i.test(_.userAgent),et=!qe&&/Chrome\/(\d+)/.exec(_.userAgent),nt="webkitFontSmoothing"in U.documentElement.style,at=!qe&&/Apple Computer/.test(_.vendor),_e=at&&(/Mobile\/\w+/.test(_.userAgent)||_.maxTouchPoints>2);var pe={mac:_e||/Mac/.test(_.platform),windows:/Win/.test(_.platform),linux:/Linux|X11/.test(_.platform),ie:qe,ie_version:ge?U.documentMode||6:Ae?+Ae[1]:te?+te[1]:0,gecko:Ke,gecko_version:Ke?+(/Firefox\/(\d+)/.exec(_.userAgent)||[0,0])[1]:0,chrome:!!et,chrome_version:et?+et[1]:0,ios:_e,android:/Android\b/.test(_.userAgent),webkit:nt,safari:at,webkit_version:nt?+(/\bAppleWebKit\/(\d+)/.exec(navigator.userAgent)||[0,0])[1]:0,tabSize:U.documentElement.style.tabSize!=null?"tab-size":"-moz-tab-size"};const k=[];class S extends w{become(t){return!1}getSide(){return 0}}S.prototype.children=k;const B=256;class V extends S{constructor(t){super();this.text=t}get length(){return this.text.length}createDOM(t){this.setDOM(t||document.createTextNode(this.text))}sync(t){this.dom||this.createDOM(),this.dom.nodeValue!=this.text&&(t&&t.node==this.dom&&(t.written=!0),this.dom.nodeValue=this.text)}reuseDOM(t){return t.nodeType!=3?!1:(this.createDOM(t),!0)}merge(t,r,l){return l&&(!(l instanceof V)||this.length-(r-t)+l.length>B)?!1:(this.text=this.text.slice(0,t)+(l?l.text:"")+this.text.slice(r),this.markDirty(),!0)}slice(t){let r=new V(this.text.slice(t));return this.text=this.text.slice(0,t),r}localPosFromDOM(t,r){return t==this.dom?r:r?this.text.length:0}domAtPos(t){return new g(this.dom,t)}domBoundsAround(t,r,l){return{from:l,to:l+this.length,startDOM:this.dom,endDOM:this.dom.nextSibling}}coordsAt(t,r){return F(this.dom,t,r)}}class Z extends S{constructor(t,r=[],l=0){super();this.mark=t,this.children=r,this.length=l;for(let a of r)a.setParent(this)}createDOM(){let t=document.createElement(this.mark.tagName);if(this.mark.class&&(t.className=this.mark.class),this.mark.attrs)for(let r in this.mark.attrs)t.setAttribute(r,this.mark.attrs[r]);this.setDOM(t)}sync(t){(!this.dom||this.dirty&4)&&this.createDOM(),super.sync(t)}merge(t,r,l,a,u){return l&&(!(l instanceof Z&&l.mark.eq(this.mark))||t&&a<=0||r<this.length&&u<=0)?!1:(G(this,t,r,l?l.children:k,a-1,u-1),this.markDirty(),!0)}slice(t){let r=[],l=0,a=-1,u=0;for(let n of this.children){let e=l+n.length;e>t&&r.push(l<t?n.slice(t-l):n),a<0&&l>=t&&(a=u),l=e,u++}let m=this.length-t;return this.length=t,a>-1&&this.replaceChildren(a,this.children.length),new Z(this.mark,r,m)}domAtPos(t){return le(this.dom,this.children,t)}coordsAt(t,r){return Pe(this,t,r)}}function F(h,t,r){let l=h.nodeValue.length;t>l&&(t=l);let a=t,u=t,m=0;t==0&&r<0||t==l&&r>=0?pe.chrome||pe.gecko||(t?(a--,m=1):(u++,m=-1)):r<0?a--:u++;let n=Q(h,a,u).getClientRects();if(!n.length)return Ee;let e=n[(m?m<0:r>=0)?0:n.length-1];return pe.safari&&!m&&e.width==0&&(e=Array.prototype.find.call(n,i=>i.width)||e),m?me(e,m<0):e}class x extends S{constructor(t,r,l){super();this.widget=t,this.length=r,this.side=l}static create(t,r,l){return new(t.customView||x)(t,r,l)}slice(t){let r=x.create(this.widget,this.length-t,this.side);return this.length-=t,r}sync(){(!this.dom||!this.widget.updateDOM(this.dom))&&(this.setDOM(this.widget.toDOM(this.editorView)),this.dom.contentEditable="false")}getSide(){return this.side}merge(t,r,l,a,u){return l&&(!(l instanceof x)||!this.widget.compare(l.widget)||t>0&&a<=0||r<this.length&&u<=0)?!1:(this.length=t+(l?l.length:0)+(this.length-r),!0)}become(t){return t.length==this.length&&t instanceof x&&t.side==this.side&&this.widget.constructor==t.widget.constructor?(this.widget.eq(t.widget)||this.markDirty(!0),this.widget=t.widget,!0):!1}ignoreMutation(){return!0}ignoreEvent(t){return this.widget.ignoreEvent(t)}get overrideDOMText(){if(this.length==0)return we.Text.empty;let t=this;for(;t.parent;)t=t.parent;let r=t.editorView,l=r&&r.state.doc,a=this.posAtStart;return l?l.slice(a,a+this.length):we.Text.empty}domAtPos(t){return t==0?g.before(this.dom):g.after(this.dom,t==this.length)}domBoundsAround(){return null}coordsAt(t,r){let l=this.dom.getClientRects(),a=null;if(!l.length)return Ee;for(let u=t>0?l.length-1:0;a=l[u],!(t>0?u==0:u==l.length-1||a.top<a.bottom);u+=t>0?-1:1);return t==0&&r>0||t==this.length&&r<=0?a:me(a,t==0)}get isEditable(){return!1}}class v extends x{domAtPos(t){return new g(this.widget.text,t)}sync(){this.dom||this.setDOM(this.widget.toDOM())}localPosFromDOM(t,r){return r?t.nodeType==3?Math.min(r,this.length):this.length:0}ignoreMutation(){return!1}get overrideDOMText(){return null}coordsAt(t,r){return F(this.widget.text,t,r)}get isEditable(){return!0}}class E extends S{constructor(t){super();this.side=t}get length(){return 0}merge(){return!1}become(t){return t instanceof E&&t.side==this.side}slice(){return new E(this.side)}sync(){this.dom?this.dirty&&this.dom.nodeValue!="\u200B"&&(this.dom.nodeValue="\u200B"):this.setDOM(document.createTextNode("\u200B"))}getSide(){return this.side}domAtPos(t){return g.before(this.dom)}domBoundsAround(){return null}coordsAt(t){let r=De(this.dom);return r[r.length-1]}get overrideDOMText(){return we.Text.of([this.dom.nodeValue.replace(/\u200b/g,"")])}}function G(h,t,r,l,a,u){let m=h.childCursor(),{i:n,off:e}=m.findPos(r,1),{i,off:s}=m.findPos(t,-1),o=t-r;for(let f of l)o+=f.length;h.length+=o;let{children:c}=h;if(i==n&&s){let f=c[i];if(l.length==1&&f.merge(s,e,l[0],a,u))return;if(l.length==0){f.merge(s,e,null,a,u);return}let y=f.slice(e);y.merge(0,0,l[l.length-1],0,u)?l[l.length-1]=y:l.push(y),n++,u=e=0}if(e){let f=c[n];l.length&&f.merge(0,e,l[l.length-1],0,u)?(l.pop(),u=l.length?0:a):f.merge(0,e,null,0,0)}else n<c.length&&l.length&&c[n].merge(0,0,l[l.length-1],0,u)&&(l.pop(),u=l.length?0:a);if(s){let f=c[i];l.length&&f.merge(s,f.length,l[0],a,0)?(l.shift(),a=l.length?0:u):f.merge(s,f.length,null,0,0),i++}else if(i&&l.length){let f=c[i-1];f.merge(f.length,f.length,l[0],a,0)&&(l.shift(),a=l.length?0:u)}for(;i<n&&l.length&&c[n-1].become(l[l.length-1]);)l.pop(),n--,u=l.length?0:a;for(;i<n&&l.length&&c[i].become(l[0]);)l.shift(),i++,a=l.length?0:u;!l.length&&i&&n<c.length&&c[n].merge(0,0,c[i-1],a,u)&&i--,(l.length||i!=n)&&h.replaceChildren(i,n,l)}function le(h,t,r){let l=0;for(let a=0;l<t.length;l++){let u=t[l],m=a+u.length;if(!(m==a&&u.getSide()<=0)){if(r>a&&r<m&&u.dom.parentNode==h)return u.domAtPos(r-a);if(r<=a)break;a=m}}for(;l>0;l--){let a=t[l-1].dom;if(a.parentNode==h)return g.after(a)}return new g(h,0)}function Se(h,t,r){let l,{children:a}=h;r>0&&t instanceof Z&&a.length&&(l=a[a.length-1])instanceof Z&&l.mark.eq(t.mark)?Se(l,t.children[0],r-1):(a.push(t),t.setParent(h)),h.length+=t.length}function Pe(h,t,r){for(let u=0,m=0;m<h.children.length;m++){let n=h.children[m],e=u+n.length,i;if((r<=0||e==h.length||n.getSide()>0?e>=t:e>t)&&(t<e||m+1==h.children.length||(i=h.children[m+1]).length||i.getSide()>0)){let s=0;if(e==u){if(n.getSide()<=0)continue;s=r=-n.getSide()}let o=n.coordsAt(t-u,r);return s&&o?me(o,r<0):o}u=e}let l=h.dom.lastChild;if(!l)return h.dom.getBoundingClientRect();let a=De(l);return a[a.length-1]}function Ue(h,t){for(let r in h)r=="class"&&t.class?t.class+=" "+h.class:r=="style"&&t.style?t.style+=";"+h.style:t[r]=h[r];return t}function ze(h,t){if(h==t)return!0;if(!h||!t)return!1;let r=Object.keys(h),l=Object.keys(t);if(r.length!=l.length)return!1;for(let a of r)if(l.indexOf(a)==-1||h[a]!==t[a])return!1;return!0}function ot(h,t,r){if(t)for(let l in t)r&&l in r||h.removeAttribute(l);if(r)for(let l in r)t&&t[l]==r[l]||h.setAttribute(l,r[l])}class ne{eq(t){return!1}updateDOM(t){return!1}compare(t){return this==t||this.constructor==t.constructor&&this.eq(t)}get estimatedHeight(){return-1}ignoreEvent(t){return!0}get customView(){return null}}b.BlockType=void 0,function(h){h[h.Text=0]="Text",h[h.WidgetBefore=1]="WidgetBefore",h[h.WidgetAfter=2]="WidgetAfter",h[h.WidgetRange=3]="WidgetRange"}(b.BlockType||(b.BlockType={}));class p extends ye.RangeValue{constructor(t,r,l,a){super();this.startSide=t,this.endSide=r,this.widget=l,this.spec=a}get heightRelevant(){return!1}static mark(t){return new M(t)}static widget(t){let r=t.side||0;return new X(t,r,r,!!t.block,t.widget||null,!1)}static replace(t){let r=!!t.block,{start:l,end:a}=ie(t,r),u=1e8*(l?-1:1)*(r?2:1),m=1e8*(a?1:-1)*(r?2:1);return new X(t,u,m,r,t.widget||null,!0)}static line(t){return new K(t)}static set(t,r=!1){return ye.RangeSet.of(t,r)}hasHeight(){return this.widget?this.widget.estimatedHeight>-1:!1}}p.none=ye.RangeSet.empty;class M extends p{constructor(t){let{start:r,end:l}=ie(t);super(1e8*(r?-1:1),1e8*(l?1:-1),null,t);this.tagName=t.tagName||"span",this.class=t.class||"",this.attrs=t.attributes||null}eq(t){return this==t||t instanceof M&&this.tagName==t.tagName&&this.class==t.class&&ze(this.attrs,t.attrs)}range(t,r=t){if(t>=r)throw new RangeError("Mark decorations may not be empty");return super.range(t,r)}}M.prototype.point=!1;class K extends p{constructor(t){super(-1e8,-1e8,null,t)}eq(t){return t instanceof K&&ze(this.spec.attributes,t.spec.attributes)}range(t,r=t){if(r!=t)throw new RangeError("Line decoration ranges must be zero-length");return super.range(t,r)}}K.prototype.mapMode=D.MapMode.TrackBefore,K.prototype.point=!0;class X extends p{constructor(t,r,l,a,u,m){super(r,l,u,t);this.block=a,this.isReplace=m,this.mapMode=a?r<0?D.MapMode.TrackBefore:D.MapMode.TrackAfter:D.MapMode.TrackDel}get type(){return this.startSide<this.endSide?b.BlockType.WidgetRange:this.startSide<0?b.BlockType.WidgetBefore:b.BlockType.WidgetAfter}get heightRelevant(){return this.block||!!this.widget&&this.widget.estimatedHeight>=5}eq(t){return t instanceof X&&C(this.widget,t.widget)&&this.block==t.block&&this.startSide==t.startSide&&this.endSide==t.endSide}range(t,r=t){if(this.isReplace&&(t>r||t==r&&this.startSide>0&&this.endSide<0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&r!=t)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(t,r)}}X.prototype.point=!0;function ie(h,t=!1){let{inclusiveStart:r,inclusiveEnd:l}=h;return r==null&&(r=h.inclusive),l==null&&(l=h.inclusive),{start:r??t,end:l??t}}function C(h,t){return h==t||!!(h&&t&&h.compare(t))}function A(h,t,r,l=0){let a=r.length-1;a>=0&&r[a]+l>h?r[a]=Math.max(r[a],t):r.push(h,t)}class N extends w{constructor(){super(...arguments);this.children=[],this.length=0,this.prevAttrs=void 0,this.attrs=null,this.breakAfter=0}merge(t,r,l,a,u,m){if(l){if(!(l instanceof N))return!1;this.dom||l.transferDOM(this)}return a&&this.setDeco(l?l.attrs:null),G(this,t,r,l?l.children:$,u,m),!0}split(t){let r=new N;if(r.breakAfter=this.breakAfter,this.length==0)return r;let{i:l,off:a}=this.childPos(t);a&&(r.append(this.children[l].slice(a),0),this.children[l].merge(a,this.children[l].length,null,0,0),l++);for(let u=l;u<this.children.length;u++)r.append(this.children[u],0);for(;l>0&&this.children[l-1].length==0;)this.children[l-1].parent=null,l--;return this.children.length=l,this.markDirty(),this.length=t,r}transferDOM(t){!this.dom||(t.setDOM(this.dom),t.prevAttrs=this.prevAttrs===void 0?this.attrs:this.prevAttrs,this.prevAttrs=void 0,this.dom=null)}setDeco(t){ze(this.attrs,t)||(this.dom&&(this.prevAttrs=this.attrs,this.markDirty()),this.attrs=t)}append(t,r){Se(this,t,r)}addLineDeco(t){let r=t.spec.attributes,l=t.spec.class;r&&(this.attrs=Ue(r,this.attrs||{})),l&&(this.attrs=Ue(r,{class:l}))}domAtPos(t){return le(this.dom,this.children,t)}sync(t){var r;(!this.dom||this.dirty&4)&&(this.setDOM(document.createElement("div")),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0),this.prevAttrs!==void 0&&(ot(this.dom,this.prevAttrs,this.attrs),this.dom.classList.add("cm-line"),this.prevAttrs=void 0),super.sync(t);let l=this.dom.lastChild;for(;l&&w.get(l)instanceof Z;)l=l.lastChild;if(!l||l.nodeName!="BR"&&((r=w.get(l))===null||r===void 0?void 0:r.isEditable)==!1&&(!pe.ios||!this.children.some(a=>a instanceof V))){let a=document.createElement("BR");a.cmIgnore=!0,this.dom.appendChild(a)}}measureTextSize(){if(this.children.length==0||this.length>20)return null;let t=0;for(let r of this.children){if(!(r instanceof V))return null;let l=De(r.dom);if(l.length!=1)return null;t+=l[0].width}return{lineHeight:this.dom.getBoundingClientRect().height,charWidth:t/this.length}}coordsAt(t,r){return Pe(this,t,r)}match(t){return!1}get type(){return b.BlockType.Text}static find(t,r){for(let l=0,a=0;;l++){let u=t.children[l],m=a+u.length;if(m>=r){if(u instanceof N)return u;if(u.length)return null}a=m+u.breakAfter}}}const $=[];class ee extends w{constructor(t,r,l){super();this.widget=t,this.length=r,this.type=l,this.breakAfter=0}merge(t,r,l,a,u,m){return l&&(!(l instanceof ee)||!this.widget.compare(l.widget)||t>0&&u<=0||r<this.length&&m<=0)?!1:(this.length=t+(l?l.length:0)+(this.length-r),!0)}domAtPos(t){return t==0?g.before(this.dom):g.after(this.dom,t==this.length)}split(t){let r=this.length-t;this.length=t;let l=new ee(this.widget,r,this.type);return l.breakAfter=this.breakAfter,l}get children(){return $}sync(){(!this.dom||!this.widget.updateDOM(this.dom))&&(this.setDOM(this.widget.toDOM(this.editorView)),this.dom.contentEditable="false")}get overrideDOMText(){return this.parent?this.parent.view.state.doc.slice(this.posAtStart,this.posAtEnd):D.Text.empty}domBoundsAround(){return null}match(t){return t instanceof ee&&t.type==this.type&&t.widget.constructor==this.widget.constructor?(t.widget.eq(this.widget)||this.markDirty(!0),this.widget=t.widget,this.length=t.length,this.breakAfter=t.breakAfter,!0):!1}ignoreMutation(){return!0}ignoreEvent(t){return this.widget.ignoreEvent(t)}}class be{constructor(t,r,l){this.doc=t,this.pos=r,this.end=l,this.content=[],this.curLine=null,this.breakAtStart=0,this.pendingBuffer=0,this.atCursorPos=!0,this.openStart=-1,this.openEnd=-1,this.text="",this.textOff=0,this.cursor=t.iter(),this.skip=r}posCovered(){if(this.content.length==0)return!this.breakAtStart&&this.doc.lineAt(this.pos).from!=this.pos;let t=this.content[this.content.length-1];return!t.breakAfter&&!(t instanceof ee&&t.type==b.BlockType.WidgetBefore)}getLine(){return this.curLine||(this.content.push(this.curLine=new N),this.atCursorPos=!0),this.curLine}flushBuffer(t){this.pendingBuffer&&(this.curLine.append(Je(new E(-1),t),t.length),this.pendingBuffer=0)}addBlockWidget(t){this.flushBuffer([]),this.curLine=null,this.content.push(t)}finish(t){t?this.pendingBuffer=0:this.flushBuffer([]),this.posCovered()||this.getLine()}buildText(t,r,l){for(;t>0;){if(this.textOff==this.text.length){let{value:u,lineBreak:m,done:n}=this.cursor.next(this.skip);if(this.skip=0,n)throw new Error("Ran out of text content when drawing inline views");if(m){this.posCovered()||this.getLine(),this.content.length?this.content[this.content.length-1].breakAfter=1:this.breakAtStart=1,this.flushBuffer([]),this.curLine=null,t--;continue}else this.text=u,this.textOff=0}let a=Math.min(this.text.length-this.textOff,t,512);this.flushBuffer(r),this.getLine().append(Je(new V(this.text.slice(this.textOff,this.textOff+a)),r),l),this.atCursorPos=!0,this.textOff+=a,t-=a,l=0}}span(t,r,l,a){this.buildText(r-t,l,a),this.pos=r,this.openStart<0&&(this.openStart=a)}point(t,r,l,a,u){let m=r-t;if(l instanceof X)if(l.block){let{type:n}=l;n==b.BlockType.WidgetAfter&&!this.posCovered()&&this.getLine(),this.addBlockWidget(new ee(l.widget||new Ze("div"),m,n))}else{let n=x.create(l.widget||new Ze("span"),m,l.startSide),e=this.atCursorPos&&!n.isEditable&&u<=a.length&&(t<r||l.startSide>0),i=!n.isEditable&&(t<r||l.startSide<=0),s=this.getLine();this.pendingBuffer==2&&!e&&(this.pendingBuffer=0),this.flushBuffer(a),e&&(s.append(Je(new E(1),a),u),u=a.length+Math.max(0,u-a.length)),s.append(Je(n,a),u),this.atCursorPos=i,this.pendingBuffer=i?t<r?1:2:0}else this.doc.lineAt(this.pos).from==this.pos&&this.getLine().addLineDeco(l);m&&(this.textOff+m<=this.text.length?this.textOff+=m:(this.skip+=m-(this.text.length-this.textOff),this.text="",this.textOff=0),this.pos=r),this.openStart<0&&(this.openStart=u)}static build(t,r,l,a){let u=new be(t,r,l);return u.openEnd=ye.RangeSet.spans(a,r,l,u),u.openStart<0&&(u.openStart=u.openEnd),u.finish(u.openEnd),u}}function Je(h,t){for(let r of t)h=new Z(r,[h],h.length);return h}class Ze extends ne{constructor(t){super();this.tag=t}eq(t){return t.tag==this.tag}toDOM(){return document.createElement(this.tag)}updateDOM(t){return t.nodeName.toLowerCase()==this.tag}}const it=[],ut=D.Facet.define(),Mt=D.Facet.define(),yt=D.Facet.define(),pt=D.Facet.define(),Dt=D.Facet.define(),Tt=D.Facet.define(),Ht=D.StateEffect.define({map:(h,t)=>h.map(t)}),Wt=D.StateEffect.define({map:(h,t)=>h.map(t)});function zt(h,t,r){let l=h.facet(pt);l.length?l[0](t):window.onerror?window.onerror(String(t),r,void 0,void 0,t):r?console.error(r+":",t):console.error(t)}const Kt=D.Facet.define({combine:h=>h.length?h[0]:!0});class Qt{constructor(t,r){this.field=t,this.get=r}}class Pt{from(t){return new Qt(this,t)}static define(){return new Pt}}Pt.decorations=Pt.define(),Pt.atomicRanges=Pt.define(),Pt.scrollMargins=Pt.define();let jt=0;const ri=D.Facet.define();class Lt{constructor(t,r,l){this.id=t,this.create=r,this.fields=l,this.extension=ri.of(this)}static define(t,r){let{eventHandlers:l,provide:a,decorations:u}=r||{},m=[];if(a)for(let n of Array.isArray(a)?a:[a])m.push(n);return l&&m.push(oe.from(n=>({plugin:n,handlers:l}))),u&&m.push(Pt.decorations.from(u)),new Lt(jt++,t,m)}static fromClass(t,r){return Lt.define(l=>new t(l),r)}}const oe=Pt.define();class I{constructor(t){this.spec=t,this.mustUpdate=null,this.value=null}takeField(t,r){for(let{field:l,get:a}of this.spec.fields)l==t&&r.push(a(this.value))}update(t){if(this.value){if(this.mustUpdate){let r=this.mustUpdate;if(this.mustUpdate=null,!this.value.update)return this;try{this.value.update(r)}catch(l){if(zt(r.state,l,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch(a){}return I.dummy}}}else try{this.value=this.spec.create(t)}catch(r){return zt(t.state,r,"CodeMirror plugin crashed"),I.dummy}return this}destroy(t){var r;if((r=this.value)===null||r===void 0?void 0:r.destroy)try{this.value.destroy()}catch(l){zt(t.state,l,"CodeMirror plugin crashed")}}}I.dummy=new I(Lt.define(()=>({})));const J=D.Facet.define({combine:h=>h.reduce((t,r)=>Ue(r,t),{})}),he=D.Facet.define({combine:h=>h.reduce((t,r)=>Ue(r,t),{})}),de=D.Facet.define(),xe=D.Facet.define();class Ie{constructor(t,r,l,a){this.fromA=t,this.toA=r,this.fromB=l,this.toB=a}join(t){return new Ie(Math.min(this.fromA,t.fromA),Math.max(this.toA,t.toA),Math.min(this.fromB,t.fromB),Math.max(this.toB,t.toB))}addToSet(t){let r=t.length,l=this;for(;r>0;r--){let a=t[r-1];if(!(a.fromA>l.toA)){if(a.toA<l.fromA)break;l=l.join(a),t.splice(r-1,1)}}return t.splice(r,0,l),t}static extendWithRanges(t,r){if(r.length==0)return t;let l=[];for(let a=0,u=0,m=0,n=0;;a++){let e=a==t.length?null:t[a],i=m-n,s=e?e.fromB:1e9;for(;u<r.length&&r[u]<s;){let o=r[u],c=r[u+1],f=Math.max(n,o),y=Math.min(s,c);if(f<=y&&new Ie(f+i,y+i,f,y).addToSet(l),c>s)break;u+=2}if(!e)return l;new Ie(e.fromA,e.toA,e.fromB,e.toB).addToSet(l),m=e.toA,n=e.toB}}}class Qe{constructor(t,r,l=it){this.view=t,this.state=r,this.transactions=l,this.flags=0,this.startState=t.state,this.changes=D.ChangeSet.empty(this.startState.doc.length);for(let m of l)this.changes=this.changes.compose(m.changes);let a=[];this.changes.iterChangedRanges((m,n,e,i)=>a.push(new Ie(m,n,e,i))),this.changedRanges=a;let u=t.hasFocus;u!=t.inputState.notifiedFocused&&(t.inputState.notifiedFocused=u,this.flags|=1),this.docChanged&&(this.flags|=2)}get viewportChanged(){return(this.flags&4)>0}get heightChanged(){return(this.flags&2)>0}get geometryChanged(){return this.docChanged||(this.flags&(8|2))>0}get focusChanged(){return(this.flags&1)>0}get docChanged(){return this.transactions.some(t=>t.docChanged)}get selectionSet(){return this.transactions.some(t=>t.selection)}get empty(){return this.flags==0&&this.transactions.length==0}}class tt extends w{constructor(t){super();this.view=t,this.compositionDeco=p.none,this.decorations=[],this.minWidth=0,this.minWidthFrom=0,this.minWidthTo=0,this.impreciseAnchor=null,this.impreciseHead=null,this.setDOM(t.contentDOM),this.children=[new N],this.children[0].setParent(this),this.updateInner([new Ie(0,0,0,t.state.doc.length)],this.updateDeco(),0)}get root(){return this.view.root}get editorView(){return this.view}get length(){return this.view.state.doc.length}update(t){let r=t.changedRanges;this.minWidth>0&&r.length&&(r.every(({fromA:e,toA:i})=>i<this.minWidthFrom||e>this.minWidthTo)?(this.minWidthFrom=t.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=t.changes.mapPos(this.minWidthTo,1)):this.minWidth=0),this.view.inputState.composing<0?this.compositionDeco=p.none:t.transactions.length&&(this.compositionDeco=kt(this.view,t.changes));let l=(pe.ie||pe.chrome)&&!this.compositionDeco.size&&t&&t.state.doc.lines!=t.startState.doc.lines,a=this.decorations,u=this.updateDeco(),m=ci(a,u,t.changes);r=Ie.extendWithRanges(r,m);let n=t.transactions.some(e=>e.isUserEvent("select.pointer"));return this.dirty==0&&r.length==0&&!(t.flags&4)&&t.state.selection.main.from>=this.view.viewport.from&&t.state.selection.main.to<=this.view.viewport.to?(this.updateSelection(l,n),!1):(this.updateInner(r,u,t.startState.doc.length,l,n),!0)}reset(t){this.dirty&&(this.view.observer.ignore(()=>this.view.docView.sync()),this.dirty=0),t&&this.updateSelection()}updateInner(t,r,l,a=!1,u=!1){this.updateChildren(t,r,l);let{observer:m}=this.view;m.ignore(()=>{this.dom.style.height=this.view.viewState.domHeight+"px",this.dom.style.minWidth=this.minWidth?this.minWidth+"px":"";let e=pe.chrome||pe.ios?{node:m.selectionRange.focusNode,written:!1}:void 0;this.sync(e),this.dirty=0,e&&(e.written||m.selectionRange.focusNode!=e.node)&&(a=!0),this.updateSelection(a,u),this.dom.style.height=""});let n=[];if(this.view.viewport.from||this.view.viewport.to<this.view.state.doc.length)for(let e of this.children)e instanceof ee&&e.widget instanceof dt&&n.push(e.dom);m.updateGaps(n)}updateChildren(t,r,l){let a=this.childCursor(l);for(let u=t.length-1;;u--){let m=u>=0?t[u]:null;if(!m)break;let{fromA:n,toA:e,fromB:i,toB:s}=m,{content:o,breakAtStart:c,openStart:f,openEnd:y}=be.build(this.view.state.doc,i,s,r),{i:L,off:q}=a.findPos(e,1),{i:se,off:fe}=a.findPos(n,-1);this.replaceRange(se,fe,L,q,o,c,f,y)}}replaceRange(t,r,l,a,u,m,n,e){let i=this.children[t],s=u.length?u[u.length-1]:null,o=s?s.breakAfter:m;if(t==l&&!m&&!o&&u.length<2&&i.merge(r,a,u.length?s:null,r==0,n,e))return;let c=this.children[l];for(a<c.length?(t==l&&(c=c.split(a),a=0),!o&&s&&c.merge(0,a,s,!0,0,e)?u[u.length-1]=c:(a&&c.merge(0,a,null,!1,0,e),u.push(c))):c.breakAfter&&(s?s.breakAfter=1:m=1),l++,i.breakAfter=m,r>0&&(!m&&u.length&&i.merge(r,i.length,u[0],!1,n,0)?i.breakAfter=u.shift().breakAfter:(r<i.length||i.children.length&&i.children[i.children.length-1].length==0)&&i.merge(r,i.length,null,!1,n,0),t++);t<l&&u.length;)if(this.children[l-1].match(u[u.length-1]))l--,u.pop();else if(this.children[t].match(u[0]))t++,u.shift();else break;(t<l||u.length)&&this.replaceChildren(t,l,u)}updateSelection(t=!1,r=!1){if(!(r||this.mayControlSelection())||pe.ios&&this.view.inputState.rapidCompositionStart)return;let l=this.view.state.selection.main,a=this.domAtPos(l.anchor),u=l.empty?a:this.domAtPos(l.head);if(pe.gecko&&l.empty&&lt(a)){let n=document.createTextNode("");this.view.observer.ignore(()=>a.node.insertBefore(n,a.node.childNodes[a.offset]||null)),a=u=new g(n,0),t=!0}let m=this.view.observer.selectionRange;(t||!m.focusNode||!ve(a.node,a.offset,m.anchorNode,m.anchorOffset)||!ve(u.node,u.offset,m.focusNode,m.focusOffset))&&(this.view.observer.ignore(()=>{pe.android&&pe.chrome&&this.dom.contains(m.focusNode)&&fi(m.focusNode,this.dom)&&(this.dom.blur(),this.dom.focus({preventScroll:!0}));let n=Xe(this.root);if(l.empty){if(pe.gecko){let e=si(a.node,a.offset);if(e&&e!=(1|2)){let i=_t(a.node,a.offset,e==1?1:-1);i&&(a=new g(i,e==1?0:i.nodeValue.length))}}n.collapse(a.node,a.offset),l.bidiLevel!=null&&m.cursorBidiLevel!=null&&(m.cursorBidiLevel=l.bidiLevel)}else if(n.extend)n.collapse(a.node,a.offset),n.extend(u.node,u.offset);else{let e=document.createRange();l.anchor>l.head&&([a,u]=[u,a]),e.setEnd(u.node,u.offset),e.setStart(a.node,a.offset),n.removeAllRanges(),n.addRange(e)}}),this.view.observer.setSelectionRange(a,u)),this.impreciseAnchor=a.precise?null:new g(m.anchorNode,m.anchorOffset),this.impreciseHead=u.precise?null:new g(m.focusNode,m.focusOffset)}enforceCursorAssoc(){if(this.view.composing)return;let t=this.view.state.selection.main,r=Xe(this.root);if(!t.empty||!t.assoc||!r.modify)return;let l=N.find(this,t.head);if(!l)return;let a=l.posAtStart;if(t.head==a||t.head==a+l.length)return;let u=this.coordsAt(t.head,-1),m=this.coordsAt(t.head,1);if(!u||!m||u.bottom>m.top)return;let n=this.domAtPos(t.head+t.assoc);r.collapse(n.node,n.offset),r.modify("move",t.assoc<0?"forward":"backward","lineboundary")}mayControlSelection(){return this.view.state.facet(Kt)?this.root.activeElement==this.dom:Oe(this.dom,this.view.observer.selectionRange)}nearest(t){for(let r=t;r;){let l=w.get(r);if(l&&l.rootView==this)return l;r=r.parentNode}return null}posFromDOM(t,r){let l=this.nearest(t);if(!l)throw new RangeError("Trying to find position for a DOM position outside of the document");return l.localPosFromDOM(t,r)+l.posAtStart}domAtPos(t){let{i:r,off:l}=this.childCursor().findPos(t,-1);for(;r<this.children.length-1;){let a=this.children[r];if(l<a.length||a instanceof N)break;r++,l=0}return this.children[r].domAtPos(l)}coordsAt(t,r){for(let l=this.length,a=this.children.length-1;;a--){let u=this.children[a],m=l-u.breakAfter-u.length;if(t>m||t==m&&u.type!=b.BlockType.WidgetBefore&&u.type!=b.BlockType.WidgetAfter&&(!a||r==2||this.children[a-1].breakAfter||this.children[a-1].type==b.BlockType.WidgetBefore&&r>-2))return u.coordsAt(t-m,r);l=m}}measureVisibleLineHeights(){let t=[],{from:r,to:l}=this.view.viewState.viewport,a=Math.max(this.view.scrollDOM.clientWidth,this.minWidth)+1;for(let u=0,m=0;m<this.children.length;m++){let n=this.children[m],e=u+n.length;if(e>l)break;if(u>=r){t.push(n.dom.getBoundingClientRect().height);let i=n.dom.scrollWidth;i>a&&(this.minWidth=a=i,this.minWidthFrom=u,this.minWidthTo=e)}u=e+n.breakAfter}return t}measureTextSize(){for(let a of this.children)if(a instanceof N){let u=a.measureTextSize();if(u)return u}let t=document.createElement("div"),r,l;return t.className="cm-line",t.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore(()=>{this.dom.appendChild(t);let a=De(t.firstChild)[0];r=t.getBoundingClientRect().height,l=a?a.width/27:7,t.remove()}),{lineHeight:r,charWidth:l}}childCursor(t=this.length){let r=this.children.length;return r&&(t-=this.children[--r].length),new z(this.children,t,r)}computeBlockGapDeco(){let t=[],r=this.view.viewState;for(let l=0,a=0;;a++){let u=a==r.viewports.length?null:r.viewports[a],m=u?u.from-1:this.length;if(m>l){let n=r.lineAt(m,0).bottom-r.lineAt(l,0).top;t.push(p.replace({widget:new dt(n),block:!0,inclusive:!0}).range(l,m))}if(!u)break;l=u.to+1}return p.set(t)}updateDeco(){return this.decorations=[...this.view.pluginField(Pt.decorations),...this.view.state.facet(de),this.compositionDeco,this.computeBlockGapDeco(),this.view.viewState.lineGapDeco]}scrollIntoView({range:t,center:r}){let l=this.coordsAt(t.head,t.empty?t.assoc:t.head>t.anchor?-1:1),a;if(!l)return;!t.empty&&(a=this.coordsAt(t.anchor,t.anchor>t.head?-1:1))&&(l={left:Math.min(l.left,a.left),top:Math.min(l.top,a.top),right:Math.max(l.right,a.right),bottom:Math.max(l.bottom,a.bottom)});let u=0,m=0,n=0,e=0;for(let i of this.view.pluginField(Pt.scrollMargins))if(i){let{left:s,right:o,top:c,bottom:f}=i;s!=null&&(u=Math.max(u,s)),o!=null&&(m=Math.max(m,o)),c!=null&&(n=Math.max(n,c)),f!=null&&(e=Math.max(e,f))}ae(this.view.scrollDOM,{left:l.left-u,top:l.top-n,right:l.right+m,bottom:l.bottom+e},t.head<t.anchor?-1:1,r)}}function lt(h){return h.node.nodeType==1&&h.node.firstChild&&(h.offset==0||h.node.childNodes[h.offset-1].contentEditable=="false")&&(h.offset==h.node.childNodes.length||h.node.childNodes[h.offset].contentEditable=="false")}class dt extends ne{constructor(t){super();this.height=t}toDOM(){let t=document.createElement("div");return this.updateDOM(t),t}eq(t){return t.height==this.height}updateDOM(t){return t.style.height=this.height+"px",!0}get estimatedHeight(){return this.height}}function kt(h,t){let r=h.observer.selectionRange,l=r.focusNode&&_t(r.focusNode,r.focusOffset,0);if(!l)return p.none;let a=h.docView.nearest(l),u,m,n=l;if(a instanceof S){for(;a.parent instanceof S;)a=a.parent;u=a.posAtStart,m=u+a.length,n=a.dom}else if(a instanceof N){for(;n.parentNode!=a.dom;)n=n.parentNode;let c=n.previousSibling;for(;c&&!w.get(c);)c=c.previousSibling;u=m=c?w.get(c).posAtEnd:a.posAtStart}else return p.none;let e=t.mapPos(u,1),i=Math.max(e,t.mapPos(m,-1)),s=l.nodeValue,{state:o}=h;if(i-e<s.length)if(o.sliceDoc(e,Math.min(o.doc.length,e+s.length))==s)i=e+s.length;else if(o.sliceDoc(Math.max(0,i-s.length),i)==s)e=i-s.length;else return p.none;else if(o.sliceDoc(e,i)!=s)return p.none;return p.set(p.replace({widget:new ai(n,l)}).range(e,i))}class ai extends ne{constructor(t,r){super();this.top=t,this.text=r}eq(t){return this.top==t.top&&this.text==t.text}toDOM(){return this.top}ignoreEvent(){return!1}get customView(){return v}}function _t(h,t,r){for(;;){if(h.nodeType==3)return h;if(h.nodeType==1&&t>0&&r<=0)h=h.childNodes[t-1],t=He(h);else if(h.nodeType==1&&t<h.childNodes.length&&r>=0)h=h.childNodes[t],t=0;else return null}}function si(h,t){return h.nodeType!=1?0:(t&&h.childNodes[t-1].contentEditable=="false"?1:0)|(t<h.childNodes.length&&h.childNodes[t].contentEditable=="false"?2:0)}class It{constructor(){this.changes=[]}compareRange(t,r){A(t,r,this.changes)}comparePoint(t,r){A(t,r,this.changes)}}function ci(h,t,r){let l=new It;return ye.RangeSet.compare(h,t,r,l),l.changes}function fi(h,t){for(let r=h;r&&r!=t;r=r.assignedSlot||r.parentNode)if(r.nodeType==1&&r.contentEditable=="false")return!0;return!1}b.Direction=void 0,function(h){h[h.LTR=0]="LTR",h[h.RTL=1]="RTL"}(b.Direction||(b.Direction={}));const bt=b.Direction.LTR,wt=b.Direction.RTL;function Zt(h){let t=[];for(let r=0;r<h.length;r++)t.push(1<<+h[r]);return t}const Ft=Zt("88888888888888888888888888888888888666888888787833333333337888888000000000000000000000000008888880000000000000000000000000088888888888888888888888888888888888887866668888088888663380888308888800000000000000000000000800000000000000000000000000000008"),P=Zt("4444448826627288999999999992222222222222222222222222222222222222222222222229999999999999999999994444444444644222822222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222999999949999999229989999223333333333"),ce=Object.create(null),Ce=[];for(let h of["()","[]","{}"]){let t=h.charCodeAt(0),r=h.charCodeAt(1);ce[t]=r,ce[r]=-t}function Le(h){return h<=247?Ft[h]:1424<=h&&h<=1524?2:1536<=h&&h<=1785?P[h-1536]:1774<=h&&h<=2220?4:8192<=h&&h<=8203||h==8204?256:1}const Ye=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/;class Be{constructor(t,r,l){this.from=t,this.to=r,this.level=l}get dir(){return this.level%2?wt:bt}side(t,r){return this.dir==r==t?this.to:this.from}static find(t,r,l,a){let u=-1;for(let m=0;m<t.length;m++){let n=t[m];if(n.from<=r&&n.to>=r){if(n.level==l)return m;(u<0||(a!=0?a<0?n.from<r:n.to>r:t[u].level>n.level))&&(u=m)}}if(u<0)throw new RangeError("Index out of range");return u}}const $e=[];function st(h,t){let r=h.length,l=t==bt?1:2,a=t==bt?2:1;if(!h||l==1&&!Ye.test(h))return gt(r);for(let m=0,n=l,e=l;m<r;m++){let i=Le(h.charCodeAt(m));i==512?i=n:i==8&&e==4&&(i=16),$e[m]=i==4?2:i,i&7&&(e=i),n=i}for(let m=0,n=l,e=l;m<r;m++){let i=$e[m];if(i==128)m<r-1&&n==$e[m+1]&&n&24?i=$e[m]=n:$e[m]=256;else if(i==64){let s=m+1;for(;s<r&&$e[s]==64;)s++;let o=m&&n==8||s<r&&$e[s]==8?e==1?1:8:256;for(let c=m;c<s;c++)$e[c]=o;m=s-1}else i==8&&e==1&&($e[m]=1);n=i,i&7&&(e=i)}for(let m=0,n=0,e=0,i,s,o;m<r;m++)if(s=ce[i=h.charCodeAt(m)])if(s<0){for(let c=n-3;c>=0;c-=3)if(Ce[c+1]==-s){let f=Ce[c+2],y=f&2?l:f&4?f&1?a:l:0;y&&($e[m]=$e[Ce[c]]=y),n=c;break}}else{if(Ce.length==189)break;Ce[n++]=m,Ce[n++]=i,Ce[n++]=e}else if((o=$e[m])==2||o==1){let c=o==l;e=c?0:1;for(let f=n-3;f>=0;f-=3){let y=Ce[f+2];if(y&2)break;if(c)Ce[f+2]|=2;else{if(y&4)break;Ce[f+2]|=4}}}for(let m=0;m<r;m++)if($e[m]==256){let n=m+1;for(;n<r&&$e[n]==256;)n++;let e=(m?$e[m-1]:l)==1,i=(n<r?$e[n]:l)==1,s=e==i?e?1:2:l;for(let o=m;o<n;o++)$e[o]=s;m=n-1}let u=[];if(l==1)for(let m=0;m<r;){let n=m,e=$e[m++]!=1;for(;m<r&&e==($e[m]!=1);)m++;if(e)for(let i=m;i>n;){let s=i,o=$e[--i]!=2;for(;i>n&&o==($e[i-1]!=2);)i--;u.push(new Be(i,s,o?2:1))}else u.push(new Be(n,m,0))}else for(let m=0;m<r;){let n=m,e=$e[m++]==2;for(;m<r&&e==($e[m]==2);)m++;u.push(new Be(n,m,e?1:2))}return u}function gt(h){return[new Be(0,h,0)]}let xt="";function Jt(h,t,r,l,a){var u;let m=l.head-h.from,n=-1;if(m==0){if(!a||!h.length)return null;t[0].level!=r&&(m=t[0].side(!1,r),n=0)}else if(m==h.length){if(a)return null;let c=t[t.length-1];c.level!=r&&(m=c.side(!0,r),n=t.length-1)}n<0&&(n=Be.find(t,m,(u=l.bidiLevel)!==null&&u!==void 0?u:-1,l.assoc));let e=t[n];m==e.side(a,r)&&(e=t[n+=a?1:-1],m=e.side(!a,r));let i=a==(e.dir==r),s=we.findClusterBreak(h.text,m,i);if(xt=h.text.slice(Math.min(m,s),Math.max(m,s)),s!=e.side(a,r))return D.EditorSelection.cursor(s+h.from,i?-1:1,e.level);let o=n==(a?t.length-1:0)?null:t[n+(a?1:-1)];return!o&&e.level!=r?D.EditorSelection.cursor(a?h.to:h.from,a?-1:1,r):o&&o.level<e.level?D.EditorSelection.cursor(o.side(!a,r)+h.from,a?1:-1,o.level):D.EditorSelection.cursor(s+h.from,a?-1:1,e.level)}function ei(h,t,r=1){let l=h.charCategorizer(t),a=h.doc.lineAt(t),u=t-a.from;if(a.length==0)return D.EditorSelection.cursor(t);u==0?r=1:u==a.length&&(r=-1);let m=u,n=u;r<0?m=we.findClusterBreak(a.text,u,!1):n=we.findClusterBreak(a.text,u);let e=l(a.text.slice(m,n));for(;m>0;){let i=we.findClusterBreak(a.text,m,!1);if(l(a.text.slice(i,m))!=e)break;m=i}for(;n<a.length;){let i=we.findClusterBreak(a.text,n);if(l(a.text.slice(n,i))!=e)break;n=i}return D.EditorSelection.range(m+a.from,n+a.from)}function Pi(h,t){return t.left>h?t.left-h:Math.max(0,h-t.right)}function Si(h,t){return t.top>h?t.top-h:Math.max(0,h-t.bottom)}function _i(h,t){return h.top<t.bottom-1&&h.bottom>t.top+1}function On(h,t){return t<h.top?{top:t,left:h.left,right:h.right,bottom:h.bottom}:h}function Bn(h,t){return t>h.bottom?{top:h.top,left:h.left,right:h.right,bottom:t}:h}function Ji(h,t,r){let l,a,u,m,n,e,i,s;for(let f=h.firstChild;f;f=f.nextSibling){let y=De(f);for(let L=0;L<y.length;L++){let q=y[L];a&&_i(a,q)&&(q=On(Bn(q,a.bottom),a.top));let se=Pi(t,q),fe=Si(r,q);if(se==0&&fe==0)return f.nodeType==3?Pn(f,t,r):Ji(f,t,r);(!l||m>fe||m==fe&&u>se)&&(l=f,a=q,u=se,m=fe),se==0?r>q.bottom&&(!i||i.bottom<q.bottom)?(n=f,i=q):r<q.top&&(!s||s.top>q.top)&&(e=f,s=q):i&&_i(i,q)?i=Bn(i,q.bottom):s&&_i(s,q)&&(s=On(s,q.top))}}if(i&&i.bottom>=r?(l=n,a=i):s&&s.top<=r&&(l=e,a=s),!l)return{node:h,offset:0};let o=Math.max(a.left,Math.min(a.right,t));if(l.nodeType==3)return Pn(l,o,r);if(!u&&l.contentEditable=="true")return Ji(l,o,r);let c=Array.prototype.indexOf.call(h.childNodes,l)+(t>=(a.left+a.right)/2?1:0);return{node:h,offset:c}}function Pn(h,t,r){let l=h.nodeValue.length,a=-1,u=1e9,m=0;for(let n=0;n<l;n++){let e=Q(h,n,n+1).getClientRects();for(let i=0;i<e.length;i++){let s=e[i];if(s.top==s.bottom)continue;m||(m=t-s.left);let o=(s.top>r?s.top-r:r-s.bottom)-1;if(s.left-1<=t&&s.right+1>=t&&o<u){let c=t>=(s.left+s.right)/2,f=c;if((pe.chrome||pe.gecko)&&Q(h,n).getBoundingClientRect().left==s.right&&(f=!c),o<=0)return{node:h,offset:n+(f?1:0)};a=n+(f?1:0),u=o}}}return{node:h,offset:a>-1?a:m>0?h.nodeValue.length:0}}function Li(h,{x:t,y:r},l,a=-1){var u;let m=h.contentDOM.getBoundingClientRect(),n,e=h.defaultLineHeight/2;for(let y=!1;;){if(n=h.blockAtHeight(r,m.top),n.top>r||n.bottom<r){if(a=n.top>r?-1:1,r=Math.min(n.bottom-e,Math.max(n.top+e,r)),y)return l?null:0;y=!0}if(n.type==b.BlockType.Text)break;r=a>0?n.bottom+e:n.top-e}let i=n.from;if(t=Math.max(m.left+1,Math.min(m.right-1,t)),i<h.viewport.from)return h.viewport.from==0?0:Yi(h,m,n,t,r);if(i>h.viewport.to)return h.viewport.to==h.state.doc.length?h.state.doc.length:Yi(h,m,n,t,r);let s=h.dom.ownerDocument,o=(h.root.elementFromPoint?h.root:s).elementFromPoint(t,r),c,f=-1;if(o&&h.contentDOM.contains(o)&&((u=h.docView.nearest(o))===null||u===void 0?void 0:u.isEditable)!=!1){if(s.caretPositionFromPoint){let y=s.caretPositionFromPoint(t,r);y&&({offsetNode:c,offset:f}=y)}else if(s.caretRangeFromPoint){let y=s.caretRangeFromPoint(t,r);y&&({startContainer:c,startOffset:f}=y,pe.safari&&Ln(c,f,t)&&(c=void 0))}}if(!c||!h.docView.dom.contains(c)){let y=N.find(h.docView,i);({node:c,offset:f}=Ji(y.dom,t,r))}return h.docView.posFromDOM(c,f)}function Yi(h,t,r,l,a){let u=Math.round((l-t.left)*h.defaultCharacterWidth);h.lineWrapping&&r.height>h.defaultLineHeight*1.5&&(u+=Math.floor((a-r.top)/h.defaultLineHeight)*h.viewState.heightOracle.lineLength);let m=h.state.sliceDoc(r.from,r.to);return r.from+we.findColumn(m,u,h.state.tabSize)}function Ln(h,t,r){let l;if(h.nodeType!=3||t!=(l=h.nodeValue.length))return!1;for(let a=h.nextSibling;a;a=a.nextSibling)if(a.nodeType!=1||a.nodeName!="BR")return!1;return Q(h,l-1,l).getBoundingClientRect().left>r}function Xi(h,t,r,l){let a=h.state.doc.lineAt(t.head),u=!l||!h.lineWrapping?null:h.coordsAtPos(t.assoc<0&&t.head>a.from?t.head-1:t.head);if(u){let e=h.dom.getBoundingClientRect(),i=h.posAtCoords({x:r==(h.textDirection==b.Direction.LTR)?e.right-1:e.left+1,y:(u.top+u.bottom)/2});if(i!=null)return D.EditorSelection.cursor(i,r?-1:1)}let m=N.find(h.docView,t.head),n=m?r?m.posAtEnd:m.posAtStart:r?a.to:a.from;return D.EditorSelection.cursor(n,r?-1:1)}function Qi(h,t,r,l){let a=h.state.doc.lineAt(t.head),u=h.bidiSpans(a);for(let m=t,n=null;;){let e=Jt(a,u,h.textDirection,m,r),i=xt;if(!e){if(a.number==(r?h.state.doc.lines:1))return m;i=` 11 + `,a=h.state.doc.line(a.number+(r?1:-1)),u=h.bidiSpans(a),e=D.EditorSelection.cursor(r?a.from:a.to)}if(n){if(!n(i))return m}else{if(!l)return e;n=l(i)}m=e}}function Rn(h,t,r){let l=h.state.charCategorizer(t),a=l(r);return u=>{let m=l(u);return a==D.CharCategory.Space&&(a=m),a==m}}function Nn(h,t,r,l){let a=t.head,u=r?1:-1;if(a==(r?h.state.doc.length:0))return D.EditorSelection.cursor(a);let m=t.goalColumn,n,e=h.contentDOM.getBoundingClientRect(),i=h.coordsAtPos(a);if(i)m==null&&(m=i.left-e.left),n=u<0?i.top:i.bottom;else{let c=h.viewState.lineAt(a,h.dom.getBoundingClientRect().top);m==null&&(m=Math.min(e.right-e.left,h.defaultCharacterWidth*(a-c.from))),n=u<0?c.top:c.bottom}let s=e.left+m,o=l??h.defaultLineHeight>>1;for(let c=0;;c+=10){let f=n+(o+c)*u,y=Li(h,{x:s,y:f},!1,u);if(f<e.top||f>e.bottom||(u<0?y<a:y>a))return D.EditorSelection.cursor(y,void 0,void 0,m)}}function $i(h,t,r){let l=h.pluginField(Pt.atomicRanges);for(;;){let a=!1;for(let u of l)u.between(r.from-1,r.from+1,(m,n,e)=>{r.from>m&&r.from<n&&(r=t.from>r.from?D.EditorSelection.cursor(m,1):D.EditorSelection.cursor(n,-1),a=!0)});if(!a)return r}}class Cr{constructor(t){this.lastKeyCode=0,this.lastKeyTime=0,this.pendingAndroidKey=void 0,this.pendingIOSKey=void 0,this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastEscPress=0,this.lastContextMenu=0,this.scrollHandlers=[],this.registeredEvents=[],this.customHandlers=[],this.composing=-1,this.compositionFirstChange=null,this.compositionEndedAt=0,this.rapidCompositionStart=!1,this.mouseSelection=null;for(let r in Vt){let l=Vt[r];t.contentDOM.addEventListener(r,a=>{r=="keydown"&&this.keydown(t,a)||!tn(t,a)||this.ignoreDuringComposition(a)||(this.mustFlushObserver(a)&&t.observer.forceFlush(),this.runCustomHandlers(r,t,a)?a.preventDefault():l(t,a))}),this.registeredEvents.push(r)}this.notifiedFocused=t.hasFocus,this.ensureHandlers(t),pe.safari&&t.contentDOM.addEventListener("input",()=>null)}setSelectionOrigin(t){this.lastSelectionOrigin=t,this.lastSelectionTime=Date.now()}ensureHandlers(t){let r=this.customHandlers=t.pluginField(oe);for(let l of r)for(let a in l.handlers)this.registeredEvents.indexOf(a)<0&&a!="scroll"&&(this.registeredEvents.push(a),t.contentDOM.addEventListener(a,u=>{!tn(t,u)||this.runCustomHandlers(a,t,u)&&u.preventDefault()}))}runCustomHandlers(t,r,l){for(let a of this.customHandlers){let u=a.handlers[t],m=!1;if(u){try{m=u.call(a.plugin,l,r)}catch(n){zt(r.state,n)}if(m||l.defaultPrevented)return pe.android&&t=="keydown"&&l.keyCode==13&&r.observer.flushSoon(),!0}}return!1}runScrollHandlers(t,r){for(let l of this.customHandlers){let a=l.handlers.scroll;if(a)try{a.call(l.plugin,r,t)}catch(u){zt(t.state,u)}}}keydown(t,r){if(this.lastKeyCode=r.keyCode,this.lastKeyTime=Date.now(),this.screenKeyEvent(t,r))return!0;let l;return pe.ios&&(l=Zi.find(a=>a.keyCode==r.keyCode))&&!(r.ctrlKey||r.altKey||r.metaKey)&&!r.synthetic?(this.pendingIOSKey=l,setTimeout(()=>this.flushIOSKey(t),250),!0):!1}flushIOSKey(t){let r=this.pendingIOSKey;return r?(this.pendingIOSKey=void 0,R(t.contentDOM,r.key,r.keyCode)):!1}setPendingAndroidKey(t,r){this.pendingAndroidKey=r,requestAnimationFrame(()=>{let l=this.pendingAndroidKey;if(!l)return;this.pendingAndroidKey=void 0,t.observer.processRecords();let a=t.state;R(t.contentDOM,l.key,l.keyCode),t.state==a&&t.docView.reset(!0)})}ignoreDuringComposition(t){return/^key/.test(t.type)?this.composing>0?!0:pe.safari&&Date.now()-this.compositionEndedAt<500?(this.compositionEndedAt=0,!0):!1:!1}screenKeyEvent(t,r){let l=r.keyCode==9&&Date.now()<this.lastEscPress+2e3;return r.keyCode==27?this.lastEscPress=Date.now():In.indexOf(r.keyCode)<0&&(this.lastEscPress=0),l}mustFlushObserver(t){return t.type=="keydown"&&t.keyCode!=229||t.type=="compositionend"&&!pe.ios}startMouseSelection(t,r,l){this.mouseSelection&&this.mouseSelection.destroy(),this.mouseSelection=new Ar(this,t,r,l)}update(t){this.mouseSelection&&this.mouseSelection.update(t),t.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}}const Zi=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],In=[16,17,18,20,91,92,224,225];class Ar{constructor(t,r,l,a){this.inputState=t,this.view=r,this.style=a,this.lastEvent=l;let u=r.contentDOM.ownerDocument;u.addEventListener("mousemove",this.move=this.move.bind(this)),u.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=l.shiftKey,this.multiple=r.state.facet(D.EditorState.allowMultipleSelections)&&en(r,l),this.dragMove=Mr(r,l),this.dragging=Fn(r,l)?null:!1,this.dragging===!1&&(l.preventDefault(),this.select(l))}move(t){if(t.buttons==0)return this.destroy();this.dragging===!1&&this.select(this.lastEvent=t)}up(t){this.dragging==null&&this.select(this.lastEvent),this.dragging||t.preventDefault(),this.destroy()}destroy(){let t=this.view.contentDOM.ownerDocument;t.removeEventListener("mousemove",this.move),t.removeEventListener("mouseup",this.up),this.inputState.mouseSelection=null}select(t){let r=this.style.get(t,this.extend,this.multiple);(!r.eq(this.view.state.selection)||r.main.assoc!=this.view.state.selection.main.assoc)&&this.view.dispatch({selection:r,userEvent:"select.pointer",scrollIntoView:!0})}update(t){t.docChanged&&this.dragging&&(this.dragging=this.dragging.map(t.changes)),this.style.update(t)&&setTimeout(()=>this.select(this.lastEvent),20)}}function en(h,t){let r=h.state.facet(ut);return r.length?r[0](t):pe.mac?t.metaKey:t.ctrlKey}function Mr(h,t){let r=h.state.facet(Mt);return r.length?r[0](t):pe.mac?!t.altKey:!t.ctrlKey}function Fn(h,t){let{main:r}=h.state.selection;if(r.empty)return!1;let l=Xe(h.root);if(l.rangeCount==0)return!0;let a=l.getRangeAt(0).getClientRects();for(let u=0;u<a.length;u++){let m=a[u];if(m.left<=t.clientX&&m.right>=t.clientX&&m.top<=t.clientY&&m.bottom>=t.clientY)return!0}return!1}function tn(h,t){if(!t.bubbles)return!0;if(t.defaultPrevented)return!1;for(let r=t.target,l;r!=h.contentDOM;r=r.parentNode)if(!r||r.nodeType==11||(l=w.get(r))&&l.ignoreEvent(t))return!1;return!0}const Vt=Object.create(null),Vn=pe.ie&&pe.ie_version<15||pe.ios&&pe.webkit_version<604;function Dr(h){let t=h.dom.parentNode;if(!t)return;let r=t.appendChild(document.createElement("textarea"));r.style.cssText="position: fixed; left: -10000px; top: 10px",r.focus(),setTimeout(()=>{h.focus(),r.remove(),Hn(h,r.value)},50)}function Hn(h,t){let{state:r}=h,l,a=1,u=r.toText(t),m=u.lines==r.selection.ranges.length;if(ki!=null&&r.selection.ranges.every(e=>e.empty)&&ki==u.toString()){let e=-1;l=r.changeByRange(i=>{let s=r.doc.lineAt(i.from);if(s.from==e)return{range:i};e=s.from;let o=r.toText((m?u.line(a++).text:t)+r.lineBreak);return{changes:{from:s.from,insert:o},range:D.EditorSelection.cursor(i.from+o.length)}})}else m?l=r.changeByRange(e=>{let i=u.line(a++);return{changes:{from:e.from,to:e.to,insert:i.text},range:D.EditorSelection.cursor(e.from+i.length)}}):l=r.replaceSelection(u);h.dispatch(l,{userEvent:"input.paste",scrollIntoView:!0})}Vt.keydown=(h,t)=>{h.inputState.setSelectionOrigin("select")};let nn=0;Vt.touchstart=(h,t)=>{nn=Date.now(),h.inputState.setSelectionOrigin("select.pointer")},Vt.touchmove=h=>{h.inputState.setSelectionOrigin("select.pointer")},Vt.mousedown=(h,t)=>{if(h.observer.flush(),nn>Date.now()-2e3)return;let r=null;for(let l of h.state.facet(yt))if(r=l(h,t),r)break;!r&&t.button==0&&(r=Tr(h,t)),r&&(h.root.activeElement!=h.contentDOM&&h.observer.ignore(()=>Y(h.contentDOM)),h.inputState.startMouseSelection(h,t,r))};function Rt(h,t,r,l){if(l==1)return D.EditorSelection.cursor(t,r);if(l==2)return ei(h.state,t,r);{let a=N.find(h.docView,t),u=h.state.doc.lineAt(a?a.posAtEnd:t),m=a?a.posAtStart:u.from,n=a?a.posAtEnd:u.to;return n<h.state.doc.length&&n==u.to&&n++,D.EditorSelection.range(m,n)}}let rn=(h,t)=>h>=t.top&&h<=t.bottom,Wn=(h,t,r)=>rn(t,r)&&h>=r.left&&h<=r.right;function zn(h,t,r,l){let a=N.find(h.docView,t);if(!a)return 1;let u=t-a.posAtStart;if(u==0)return 1;if(u==a.length)return-1;let m=a.coordsAt(u,-1);if(m&&Wn(r,l,m))return-1;let n=a.coordsAt(u,1);return n&&Wn(r,l,n)?1:m&&rn(l,m)?-1:1}function sn(h,t){let r=h.posAtCoords({x:t.clientX,y:t.clientY},!1);return{pos:r,bias:zn(h,r,t.clientX,t.clientY)}}const jn=pe.ie&&pe.ie_version<=11;let on=null,ln=0,Kn=0;function Un(h){if(!jn)return h.detail;let t=on,r=Kn;return on=h,Kn=Date.now(),ln=!t||r>Date.now()-400&&Math.abs(t.clientX-h.clientX)<2&&Math.abs(t.clientY-h.clientY)<2?(ln+1)%3:1}function Tr(h,t){let r=sn(h,t),l=Un(t),a=h.state.selection,u=r,m=t;return{update(n){n.changes&&(r&&(r.pos=n.changes.mapPos(r.pos)),a=a.map(n.changes),m=null)},get(n,e,i){let s;if(m&&n.clientX==m.clientX&&n.clientY==m.clientY?s=u:(s=u=sn(h,n),m=n),!s||!r)return a;let o=Rt(h,s.pos,s.bias,l);if(r.pos!=s.pos&&!e){let c=Rt(h,r.pos,r.bias,l),f=Math.min(c.from,o.from),y=Math.max(c.to,o.to);o=f<o.from?D.EditorSelection.range(f,y):D.EditorSelection.range(y,f)}return e?a.replaceRange(a.main.extend(o.from,o.to)):i?a.addRange(o):D.EditorSelection.create([o])}}}Vt.dragstart=(h,t)=>{let{selection:{main:r}}=h.state,{mouseSelection:l}=h.inputState;l&&(l.dragging=r),t.dataTransfer&&(t.dataTransfer.setData("Text",h.state.sliceDoc(r.from,r.to)),t.dataTransfer.effectAllowed="copyMove")};function an(h,t,r,l){let a=h.posAtCoords({x:t.clientX,y:t.clientY});if(a==null||!r)return;t.preventDefault();let{mouseSelection:u}=h.inputState,m=l&&u&&u.dragging&&u.dragMove?{from:u.dragging.from,to:u.dragging.to}:null,n={from:a,insert:r},e=h.state.changes(m?[m,n]:n);h.focus(),h.dispatch({changes:e,selection:{anchor:e.mapPos(a,-1),head:e.mapPos(a,1)},userEvent:m?"move.drop":"input.drop"})}Vt.drop=(h,t)=>{if(!t.dataTransfer)return;if(h.state.readOnly)return t.preventDefault();let r=t.dataTransfer.files;if(r&&r.length){t.preventDefault();let l=Array(r.length),a=0,u=()=>{++a==r.length&&an(h,t,l.filter(m=>m!=null).join(h.state.lineBreak),!1)};for(let m=0;m<r.length;m++){let n=new FileReader;n.onerror=u,n.onload=()=>{/[\x00-\x08\x0e-\x1f]{2}/.test(n.result)||(l[m]=n.result),u()},n.readAsText(r[m])}}else an(h,t,t.dataTransfer.getData("Text"),!0)},Vt.paste=(h,t)=>{if(h.state.readOnly)return t.preventDefault();h.observer.flush();let r=Vn?null:t.clipboardData;r?(Hn(h,r.getData("text/plain")),t.preventDefault()):Dr(h)};function qn(h,t){let r=h.dom.parentNode;if(!r)return;let l=r.appendChild(document.createElement("textarea"));l.style.cssText="position: fixed; left: -10000px; top: 10px",l.value=t,l.focus(),l.selectionEnd=t.length,l.selectionStart=0,setTimeout(()=>{l.remove(),h.focus()},50)}function Gn(h){let t=[],r=[],l=!1;for(let a of h.selection.ranges)a.empty||(t.push(h.sliceDoc(a.from,a.to)),r.push(a));if(!t.length){let a=-1;for(let{from:u}of h.selection.ranges){let m=h.doc.lineAt(u);m.number>a&&(t.push(m.text),r.push({from:m.from,to:Math.min(h.doc.length,m.to+1)})),a=m.number}l=!0}return{text:t.join(h.lineBreak),ranges:r,linewise:l}}let ki=null;Vt.copy=Vt.cut=(h,t)=>{let{text:r,ranges:l,linewise:a}=Gn(h.state);if(!r&&!a)return;ki=a?r:null;let u=Vn?null:t.clipboardData;u?(t.preventDefault(),u.clearData(),u.setData("text/plain",r)):qn(h,r),t.type=="cut"&&!h.state.readOnly&&h.dispatch({changes:l,scrollIntoView:!0,userEvent:"delete.cut"})},Vt.focus=Vt.blur=h=>{setTimeout(()=>{h.hasFocus!=h.inputState.notifiedFocused&&h.update([])},10)},Vt.beforeprint=h=>{h.viewState.printing=!0,h.requestMeasure(),setTimeout(()=>{h.viewState.printing=!1,h.requestMeasure()},2e3)};function _n(h,t){if(h.docView.compositionDeco.size){h.inputState.rapidCompositionStart=t;try{h.update([])}finally{h.inputState.rapidCompositionStart=!1}}}Vt.compositionstart=Vt.compositionupdate=h=>{h.inputState.compositionFirstChange==null&&(h.inputState.compositionFirstChange=!0),h.inputState.composing<0&&(h.docView.compositionDeco.size&&(h.observer.flush(),_n(h,!0)),h.inputState.composing=0)},Vt.compositionend=h=>{h.inputState.composing=-1,h.inputState.compositionEndedAt=Date.now(),h.inputState.compositionFirstChange=null,setTimeout(()=>{h.inputState.composing<0&&_n(h,!1)},50)},Vt.contextmenu=h=>{h.inputState.lastContextMenu=Date.now()},Vt.beforeinput=(h,t)=>{var r;let l;if(pe.chrome&&pe.android&&(l=Zi.find(a=>a.inputType==t.inputType))&&(h.inputState.setPendingAndroidKey(h,l),l.key=="Backspace"||l.key=="Delete")){let a=((r=window.visualViewport)===null||r===void 0?void 0:r.height)||0;setTimeout(()=>{var u;(((u=window.visualViewport)===null||u===void 0?void 0:u.height)||0)>a+10&&h.hasFocus&&(h.contentDOM.blur(),h.focus())},100)}};const hn=["pre-wrap","normal","pre-line"];class Jn{constructor(){this.doc=we.Text.empty,this.lineWrapping=!1,this.direction=b.Direction.LTR,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.lineLength=30,this.heightChanged=!1}heightForGap(t,r){let l=this.doc.lineAt(r).number-this.doc.lineAt(t).number+1;return this.lineWrapping&&(l+=Math.ceil((r-t-l*this.lineLength*.5)/this.lineLength)),this.lineHeight*l}heightForLine(t){return this.lineWrapping?(1+Math.max(0,Math.ceil((t-this.lineLength)/(this.lineLength-5))))*this.lineHeight:this.lineHeight}setDoc(t){return this.doc=t,this}mustRefresh(t,r,l){let a=!1;for(let u=0;u<t.length;u++){let m=t[u];m<0?u++:this.heightSamples[Math.floor(m*10)]||(a=!0,this.heightSamples[Math.floor(m*10)]=!0)}return a||hn.indexOf(r)>-1!=this.lineWrapping||this.direction!=l}refresh(t,r,l,a,u,m){let n=hn.indexOf(t)>-1,e=Math.round(l)!=Math.round(this.lineHeight)||this.lineWrapping!=n||this.direction!=r;if(this.lineWrapping=n,this.direction=r,this.lineHeight=l,this.charWidth=a,this.lineLength=u,e){this.heightSamples={};for(let i=0;i<m.length;i++){let s=m[i];s<0?i++:this.heightSamples[Math.floor(s*10)]=!0}}return e}}class Yn{constructor(t,r){this.from=t,this.heights=r,this.index=0}get more(){return this.index<this.heights.length}}class ti{constructor(t,r,l,a,u){this.from=t,this.length=r,this.top=l,this.height=a,this.type=u}get to(){return this.from+this.length}get bottom(){return this.top+this.height}join(t){let r=(Array.isArray(this.type)?this.type:[this]).concat(Array.isArray(t.type)?t.type:[t]);return new ti(this.from,this.length+t.length,this.top,this.height+t.height,r)}}var vt;(function(h){h[h.ByPos=0]="ByPos",h[h.ByHeight=1]="ByHeight",h[h.ByPosNoHeight=2]="ByPosNoHeight"})(vt||(vt={}));const Xn=1e-4;class qt{constructor(t,r,l=2){this.length=t,this.height=r,this.flags=l}get outdated(){return(this.flags&2)>0}set outdated(t){this.flags=(t?2:0)|this.flags&~2}setHeight(t,r){this.height!=r&&(Math.abs(this.height-r)>Xn&&(t.heightChanged=!0),this.height=r)}replace(t,r,l){return qt.of(l)}decomposeLeft(t,r){r.push(this)}decomposeRight(t,r){r.push(this)}applyChanges(t,r,l,a){let u=this;for(let m=a.length-1;m>=0;m--){let{fromA:n,toA:e,fromB:i,toB:s}=a[m],o=u.lineAt(n,vt.ByPosNoHeight,r,0,0),c=o.to>=e?o:u.lineAt(e,vt.ByPosNoHeight,r,0,0);for(s+=c.to-e,e=c.to;m>0&&o.from<=a[m-1].toA;)n=a[m-1].fromA,i=a[m-1].fromB,m--,n<o.from&&(o=u.lineAt(n,vt.ByPosNoHeight,r,0,0));i+=o.from-n,n=o.from;let f=Yt.build(l,t,i,s);u=u.replace(n,e,f)}return u.updateHeight(l,0)}static empty(){return new Et(0,0)}static of(t){if(t.length==1)return t[0];let r=0,l=t.length,a=0,u=0;for(;;)if(r==l)if(a>u*2){let n=t[r-1];n.break?t.splice(--r,1,n.left,null,n.right):t.splice(--r,1,n.left,n.right),l+=1+n.break,a-=n.size}else if(u>a*2){let n=t[l];n.break?t.splice(l,1,n.left,null,n.right):t.splice(l,1,n.left,n.right),l+=2+n.break,u-=n.size}else break;else if(a<u){let n=t[r++];n&&(a+=n.size)}else{let n=t[--l];n&&(u+=n.size)}let m=0;return t[r-1]==null?(m=1,r--):t[r]==null&&(m=1,l++),new Ri(qt.of(t.slice(0,r)),m,qt.of(t.slice(l)))}}qt.prototype.size=1;class cn extends qt{constructor(t,r,l){super(t,r);this.type=l}blockAt(t,r,l,a){return new ti(a,this.length,l,this.height,this.type)}lineAt(t,r,l,a,u){return this.blockAt(0,l,a,u)}forEachLine(t,r,l,a,u,m){m(this.blockAt(0,l,a,u))}updateHeight(t,r=0,l=!1,a){return a&&a.from<=r&&a.more&&this.setHeight(t,a.heights[a.index++]),this.outdated=!1,this}toString(){return`block(${this.length})`}}class Et extends cn{constructor(t,r){super(t,r,b.BlockType.Text);this.collapsed=0,this.widgetHeight=0}replace(t,r,l){let a=l[0];return l.length==1&&(a instanceof Et||a instanceof ft&&a.flags&4)&&Math.abs(this.length-a.length)<10?(a instanceof ft?a=new Et(a.length,this.height):a.height=this.height,this.outdated||(a.outdated=!1),a):qt.of(l)}updateHeight(t,r=0,l=!1,a){return a&&a.from<=r&&a.more?this.setHeight(t,a.heights[a.index++]):(l||this.outdated)&&this.setHeight(t,Math.max(this.widgetHeight,t.heightForLine(this.length-this.collapsed))),this.outdated=!1,this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:""}${this.widgetHeight?":"+this.widgetHeight:""})`}}class ft extends qt{constructor(t){super(t,0)}lines(t,r){let l=t.lineAt(r).number,a=t.lineAt(r+this.length).number;return{firstLine:l,lastLine:a,lineHeight:this.height/(a-l+1)}}blockAt(t,r,l,a){let{firstLine:u,lastLine:m,lineHeight:n}=this.lines(r,a),e=Math.max(0,Math.min(m-u,Math.floor((t-l)/n))),{from:i,length:s}=r.line(u+e);return new ti(i,s,l+n*e,n,b.BlockType.Text)}lineAt(t,r,l,a,u){if(r==vt.ByHeight)return this.blockAt(t,l,a,u);if(r==vt.ByPosNoHeight){let{from:o,to:c}=l.lineAt(t);return new ti(o,c-o,0,0,b.BlockType.Text)}let{firstLine:m,lineHeight:n}=this.lines(l,u),{from:e,length:i,number:s}=l.lineAt(t);return new ti(e,i,a+n*(s-m),n,b.BlockType.Text)}forEachLine(t,r,l,a,u,m){let{firstLine:n,lineHeight:e}=this.lines(l,u);for(let i=Math.max(t,u),s=Math.min(u+this.length,r);i<=s;){let o=l.lineAt(i);i==t&&(a+=e*(o.number-n)),m(new ti(o.from,o.length,a,e,b.BlockType.Text)),a+=e,i=o.to+1}}replace(t,r,l){let a=this.length-r;if(a>0){let u=l[l.length-1];u instanceof ft?l[l.length-1]=new ft(u.length+a):l.push(null,new ft(a-1))}if(t>0){let u=l[0];u instanceof ft?l[0]=new ft(t+u.length):l.unshift(new ft(t-1),null)}return qt.of(l)}decomposeLeft(t,r){r.push(new ft(t-1),null)}decomposeRight(t,r){r.push(null,new ft(this.length-t-1))}updateHeight(t,r=0,l=!1,a){let u=r+this.length;if(a&&a.from<=r+this.length&&a.more){let m=[],n=Math.max(r,a.from);for(a.from>r&&m.push(new ft(a.from-r-1).updateHeight(t,r));n<=u&&a.more;){let e=t.doc.lineAt(n).length;m.length&&m.push(null);let i=new Et(e,a.heights[a.index++]);i.outdated=!1,m.push(i),n+=e+1}return n<=u&&m.push(null,new ft(u-n).updateHeight(t,n)),t.heightChanged=!0,qt.of(m)}else(l||this.outdated)&&(this.setHeight(t,t.heightForGap(r,r+this.length)),this.outdated=!1);return this}toString(){return`gap(${this.length})`}}class Ri extends qt{constructor(t,r,l){super(t.length+r+l.length,t.height+l.height,r|(t.outdated||l.outdated?2:0));this.left=t,this.right=l,this.size=t.size+l.size}get break(){return this.flags&1}blockAt(t,r,l,a){let u=l+this.left.height;return t<u||this.right.height==0?this.left.blockAt(t,r,l,a):this.right.blockAt(t,r,u,a+this.left.length+this.break)}lineAt(t,r,l,a,u){let m=a+this.left.height,n=u+this.left.length+this.break,e=r==vt.ByHeight?t<m||this.right.height==0:t<n,i=e?this.left.lineAt(t,r,l,a,u):this.right.lineAt(t,r,l,m,n);if(this.break||(e?i.to<n:i.from>n))return i;let s=r==vt.ByPosNoHeight?vt.ByPosNoHeight:vt.ByPos;return e?i.join(this.right.lineAt(n,s,l,m,n)):this.left.lineAt(n,s,l,a,u).join(i)}forEachLine(t,r,l,a,u,m){let n=a+this.left.height,e=u+this.left.length+this.break;if(this.break)t<e&&this.left.forEachLine(t,r,l,a,u,m),r>=e&&this.right.forEachLine(t,r,l,n,e,m);else{let i=this.lineAt(e,vt.ByPos,l,a,u);t<i.from&&this.left.forEachLine(t,i.from-1,l,a,u,m),i.to>=t&&i.from<=r&&m(i),r>i.to&&this.right.forEachLine(i.to+1,r,l,n,e,m)}}replace(t,r,l){let a=this.left.length+this.break;if(r<a)return this.balanced(this.left.replace(t,r,l),this.right);if(t>this.left.length)return this.balanced(this.left,this.right.replace(t-a,r-a,l));let u=[];t>0&&this.decomposeLeft(t,u);let m=u.length;for(let n of l)u.push(n);if(t>0&&Gt(u,m-1),r<this.length){let n=u.length;this.decomposeRight(r,u),Gt(u,n)}return qt.of(u)}decomposeLeft(t,r){let l=this.left.length;if(t<=l)return this.left.decomposeLeft(t,r);r.push(this.left),this.break&&(l++,t>=l&&r.push(null)),t>l&&this.right.decomposeLeft(t-l,r)}decomposeRight(t,r){let l=this.left.length,a=l+this.break;if(t>=a)return this.right.decomposeRight(t-a,r);t<l&&this.left.decomposeRight(t,r),this.break&&t<a&&r.push(null),r.push(this.right)}balanced(t,r){return t.size>2*r.size||r.size>2*t.size?qt.of(this.break?[t,null,r]:[t,r]):(this.left=t,this.right=r,this.height=t.height+r.height,this.outdated=t.outdated||r.outdated,this.size=t.size+r.size,this.length=t.length+this.break+r.length,this)}updateHeight(t,r=0,l=!1,a){let{left:u,right:m}=this,n=r+u.length+this.break,e=null;return a&&a.from<=r+u.length&&a.more?e=u=u.updateHeight(t,r,l,a):u.updateHeight(t,r,l),a&&a.from<=n+m.length&&a.more?e=m=m.updateHeight(t,n,l,a):m.updateHeight(t,n,l),e?this.balanced(u,m):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}}function Gt(h,t){let r,l;h[t]==null&&(r=h[t-1])instanceof ft&&(l=h[t+1])instanceof ft&&h.splice(t-1,3,new ft(r.length+1+l.length))}const Qn=5;class Yt{constructor(t,r){this.pos=t,this.oracle=r,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=t}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(t,r){if(this.lineStart>-1){let l=Math.min(r,this.lineEnd),a=this.nodes[this.nodes.length-1];a instanceof Et?a.length+=l-this.pos:(l>this.pos||!this.isCovered)&&this.nodes.push(new Et(l-this.pos,-1)),this.writtenTo=l,r>l&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=r}point(t,r,l){if(t<r||l.heightRelevant){let a=l.widget?Math.max(0,l.widget.estimatedHeight):0,u=r-t;l.block?this.addBlock(new cn(u,a,l.type)):(u||a>=Qn)&&this.addLineDeco(a,u)}else r>t&&this.span(t,r);this.lineEnd>-1&&this.lineEnd<this.pos&&(this.lineEnd=this.oracle.doc.lineAt(this.pos).to)}enterLine(){if(this.lineStart>-1)return;let{from:t,to:r}=this.oracle.doc.lineAt(this.pos);this.lineStart=t,this.lineEnd=r,this.writtenTo<t&&((this.writtenTo<t-1||this.nodes[this.nodes.length-1]==null)&&this.nodes.push(this.blankContent(this.writtenTo,t-1)),this.nodes.push(null)),this.pos>t&&this.nodes.push(new Et(this.pos-t,-1)),this.writtenTo=this.pos}blankContent(t,r){let l=new ft(r-t);return this.oracle.doc.lineAt(t).to==r&&(l.flags|=4),l}ensureLine(){this.enterLine();let t=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(t instanceof Et)return t;let r=new Et(0,-1);return this.nodes.push(r),r}addBlock(t){this.enterLine(),t.type==b.BlockType.WidgetAfter&&!this.isCovered&&this.ensureLine(),this.nodes.push(t),this.writtenTo=this.pos=this.pos+t.length,t.type!=b.BlockType.WidgetBefore&&(this.covering=t)}addLineDeco(t,r){let l=this.ensureLine();l.length+=r,l.collapsed+=r,l.widgetHeight=Math.max(l.widgetHeight,t),this.writtenTo=this.pos=this.pos+r}finish(t){let r=this.nodes.length==0?null:this.nodes[this.nodes.length-1];this.lineStart>-1&&!(r instanceof Et)&&!this.isCovered?this.nodes.push(new Et(0,-1)):(this.writtenTo<this.pos||r==null)&&this.nodes.push(this.blankContent(this.writtenTo,this.pos));let l=t;for(let a of this.nodes)a instanceof Et&&a.updateHeight(this.oracle,l),l+=a?a.length:1;return this.nodes}static build(t,r,l,a){let u=new Yt(l,t);return ye.RangeSet.spans(r,l,a,u,0),u.finish(l)}}function Ut(h,t,r){let l=new Er;return ye.RangeSet.compare(h,t,r,l,0),l.changes}class Er{constructor(){this.changes=[]}compareRange(){}comparePoint(t,r,l,a){(t<r||l&&l.heightRelevant||a&&a.heightRelevant)&&A(t,r,this.changes,5)}}function $n(h,t){let r=h.getBoundingClientRect(),l=Math.max(0,r.left),a=Math.min(innerWidth,r.right),u=Math.max(0,r.top),m=Math.min(innerHeight,r.bottom),n=h.ownerDocument.body;for(let e=h.parentNode;e&&e!=n;)if(e.nodeType==1){let i=e,s=window.getComputedStyle(i);if((i.scrollHeight>i.clientHeight||i.scrollWidth>i.clientWidth)&&s.overflow!="visible"){let o=i.getBoundingClientRect();l=Math.max(l,o.left),a=Math.min(a,o.right),u=Math.max(u,o.top),m=Math.min(m,o.bottom)}e=s.position=="absolute"||s.position=="fixed"?i.offsetParent:i.parentNode}else if(e.nodeType==11)e=e.host;else break;return{left:l-r.left,right:a-r.left,top:u-(r.top+t),bottom:m-(r.top+t)}}class fn{constructor(t,r,l){this.from=t,this.to=r,this.size=l}static same(t,r){if(t.length!=r.length)return!1;for(let l=0;l<t.length;l++){let a=t[l],u=r[l];if(a.from!=u.from||a.to!=u.to||a.size!=u.size)return!1}return!0}draw(t){return p.replace({widget:new un(this.size,t)}).range(this.from,this.to)}}class un extends ne{constructor(t,r){super();this.size=t,this.vertical=r}eq(t){return t.size==this.size&&t.vertical==this.vertical}toDOM(){let t=document.createElement("div");return this.vertical?t.style.height=this.size+"px":(t.style.width=this.size+"px",t.style.height="2px",t.style.display="inline-block"),t}get estimatedHeight(){return this.vertical?this.size:-1}}class vi{constructor(t,r=!1){this.range=t,this.center=r}map(t){return t.empty?this:new vi(this.range.map(t),this.center)}}class Zn{constructor(t){this.state=t,this.pixelViewport={left:0,right:window.innerWidth,top:0,bottom:0},this.inView=!0,this.paddingTop=0,this.paddingBottom=0,this.contentWidth=0,this.heightOracle=new Jn,this.scaler=Ci,this.scrollTarget=null,this.printing=!1,this.visibleRanges=[],this.mustEnforceCursorAssoc=!1,this.heightMap=qt.empty().applyChanges(t.facet(de),we.Text.empty,this.heightOracle.setDoc(t.doc),[new Ie(0,0,0,t.doc.length)]),this.viewport=this.getViewport(0,null),this.updateForViewport(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=p.set(this.lineGaps.map(r=>r.draw(!1))),this.computeVisibleRanges()}updateForViewport(){let t=[this.viewport],{main:r}=this.state.selection;for(let l=0;l<=1;l++){let a=l?r.head:r.anchor;if(!t.some(({from:u,to:m})=>a>=u&&a<=m)){let{from:u,to:m}=this.lineAt(a,0);t.push(new Ni(u,m))}}this.viewports=t.sort((l,a)=>l.from-a.from),this.scaler=this.heightMap.height<=7e6?Ci:new er(this.heightOracle.doc,this.heightMap,this.viewports)}update(t,r=null){let l=this.state;this.state=t.state;let a=this.state.facet(de),u=t.changedRanges,m=Ie.extendWithRanges(u,Ut(t.startState.facet(de),a,t?t.changes:D.ChangeSet.empty(this.state.doc.length))),n=this.heightMap.height;this.heightMap=this.heightMap.applyChanges(a,l.doc,this.heightOracle.setDoc(this.state.doc),m),this.heightMap.height!=n&&(t.flags|=2);let e=m.length?this.mapViewport(this.viewport,t.changes):this.viewport;(r&&(r.range.head<e.from||r.range.head>e.to)||!this.viewportIsAppropriate(e))&&(e=this.getViewport(0,r)),this.viewport=e,this.updateForViewport(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,t.changes))),t.flags|=this.computeVisibleRanges(),r&&(this.scrollTarget=r),!this.mustEnforceCursorAssoc&&t.selectionSet&&t.view.lineWrapping&&t.state.selection.main.empty&&t.state.selection.main.assoc&&(this.mustEnforceCursorAssoc=!0)}measure(t,r){let l=t.dom,a="",u=b.Direction.LTR,m=0;if(!r){let y=window.getComputedStyle(l);a=y.whiteSpace,u=y.direction=="rtl"?b.Direction.RTL:b.Direction.LTR;let L=parseInt(y.paddingTop)||0,q=parseInt(y.paddingBottom)||0;(this.paddingTop!=L||this.paddingBottom!=q)&&(m|=8,this.paddingTop=L,this.paddingBottom=q)}let n=this.printing?{top:-1e8,bottom:1e8,left:-1e8,right:1e8}:$n(l,this.paddingTop),e=n.top-this.pixelViewport.top,i=n.bottom-this.pixelViewport.bottom;if(this.pixelViewport=n,this.inView=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left,!this.inView)return 0;let s=t.measureVisibleLineHeights(),o=!1,c=0,f=this.heightOracle;if(!r){let y=t.dom.clientWidth;if(f.mustRefresh(s,a,u)||f.lineWrapping&&Math.abs(y-this.contentWidth)>f.charWidth){let{lineHeight:L,charWidth:q}=t.measureTextSize();o=f.refresh(a,u,L,q,y/q,s),o&&(t.minWidth=0,m|=8)}this.contentWidth!=y&&(this.contentWidth=y,m|=8),e>0&&i>0?c=Math.max(e,i):e<0&&i<0&&(c=Math.min(e,i))}return f.heightChanged=!1,this.heightMap=this.heightMap.updateHeight(f,0,o,new Yn(this.viewport.from,s)),f.heightChanged&&(m|=2),(!this.viewportIsAppropriate(this.viewport,c)||this.scrollTarget&&(this.scrollTarget.range.head<this.viewport.from||this.scrollTarget.range.head>this.viewport.to))&&(this.viewport=this.getViewport(c,this.scrollTarget)),this.updateForViewport(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(o?[]:this.lineGaps)),m|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,t.enforceCursorAssoc()),m}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top,0)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom,0)}getViewport(t,r){let l=.5-Math.max(-.5,Math.min(.5,t/1e3/2)),a=this.heightMap,u=this.state.doc,{visibleTop:m,visibleBottom:n}=this,e=new Ni(a.lineAt(m-l*1e3,vt.ByHeight,u,0,0).from,a.lineAt(n+(1-l)*1e3,vt.ByHeight,u,0,0).to);if(r){let{head:i}=r.range,s=n-m;if(i<e.from||i>e.to){let o=a.lineAt(i,vt.ByPos,u,0,0),c;r.center?c=(o.top+o.bottom)/2-s/2:i<e.from?c=o.top:c=o.bottom-s,e=new Ni(a.lineAt(c-1e3/2,vt.ByHeight,u,0,0).from,a.lineAt(c+s+1e3/2,vt.ByHeight,u,0,0).to)}}return e}mapViewport(t,r){let l=r.mapPos(t.from,-1),a=r.mapPos(t.to,1);return new Ni(this.heightMap.lineAt(l,vt.ByPos,this.state.doc,0,0).from,this.heightMap.lineAt(a,vt.ByPos,this.state.doc,0,0).to)}viewportIsAppropriate({from:t,to:r},l=0){let{top:a}=this.heightMap.lineAt(t,vt.ByPos,this.state.doc,0,0),{bottom:u}=this.heightMap.lineAt(r,vt.ByPos,this.state.doc,0,0),{visibleTop:m,visibleBottom:n}=this;return(t==0||a<=m-Math.max(10,Math.min(-l,250)))&&(r==this.state.doc.length||u>=n+Math.max(10,Math.min(l,250)))&&a>m-2*1e3&&u<n+2*1e3}mapLineGaps(t,r){if(!t.length||r.empty)return t;let l=[];for(let a of t)r.touchesRange(a.from,a.to)||l.push(new fn(r.mapPos(a.from),r.mapPos(a.to),a.size));return l}ensureLineGaps(t){let r=[];return this.heightOracle.direction!=b.Direction.LTR||this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.state.doc,0,0,l=>{if(l.length<4e3)return;let a=dn(l.from,l.to,this.state);if(a.total<4e3)return;let u,m;if(this.heightOracle.lineWrapping){let i=2e3/this.heightOracle.lineLength*this.heightOracle.lineHeight;u=Ii(a,(this.visibleTop-l.top-i)/l.height),m=Ii(a,(this.visibleBottom-l.top+i)/l.height)}else{let i=a.total*this.heightOracle.charWidth,s=2e3*this.heightOracle.charWidth;u=Ii(a,(this.pixelViewport.left-s)/i),m=Ii(a,(this.pixelViewport.right+s)/i)}let n=[];u>l.from&&n.push({from:l.from,to:u}),m<l.to&&n.push({from:m,to:l.to});let e=this.state.selection.main;e.from>=l.from&&e.from<=l.to&&xi(n,e.from-10,e.from+10),!e.empty&&e.to>=l.from&&e.to<=l.to&&xi(n,e.to-10,e.to+10);for(let{from:i,to:s}of n)s-i>1e3&&r.push(Or(t,o=>o.from>=l.from&&o.to<=l.to&&Math.abs(o.from-i)<1e3&&Math.abs(o.to-s)<1e3)||new fn(i,s,this.gapSize(l,i,s,a)))}),r}gapSize(t,r,l,a){let u=gn(a,l)-gn(a,r);return this.heightOracle.lineWrapping?t.height*u:a.total*this.heightOracle.charWidth*u}updateLineGaps(t){fn.same(t,this.lineGaps)||(this.lineGaps=t,this.lineGapDeco=p.set(t.map(r=>r.draw(this.heightOracle.lineWrapping))))}computeVisibleRanges(){let t=this.state.facet(de);this.lineGaps.length&&(t=t.concat(this.lineGapDeco));let r=[];ye.RangeSet.spans(t,this.viewport.from,this.viewport.to,{span(a,u){r.push({from:a,to:u})},point(){}},20);let l=r.length!=this.visibleRanges.length||this.visibleRanges.some((a,u)=>a.from!=r[u].from||a.to!=r[u].to);return this.visibleRanges=r,l?4:0}lineAt(t,r){return r+=this.paddingTop,ui(this.heightMap.lineAt(t,vt.ByPos,this.state.doc,r,0),this.scaler,r)}lineAtHeight(t,r){return r+=this.paddingTop,ui(this.heightMap.lineAt(this.scaler.fromDOM(t,r),vt.ByHeight,this.state.doc,r,0),this.scaler,r)}blockAtHeight(t,r){return r+=this.paddingTop,ui(this.heightMap.blockAt(this.scaler.fromDOM(t,r),this.state.doc,r,0),this.scaler,r)}forEachLine(t,r,l,a){return a+=this.paddingTop,this.heightMap.forEachLine(t,r,this.state.doc,a,0,this.scaler.scale==1?l:u=>l(ui(u,this.scaler,a)))}get contentHeight(){return this.domHeight+this.paddingTop+this.paddingBottom}get domHeight(){return this.scaler.toDOM(this.heightMap.height,this.paddingTop)}}class Ni{constructor(t,r){this.from=t,this.to=r}}function dn(h,t,r){let l=[],a=h,u=0;return ye.RangeSet.spans(r.facet(de),h,t,{span(){},point(m,n){m>a&&(l.push({from:a,to:m}),u+=m-a),a=n}},20),a<t&&(l.push({from:a,to:t}),u+=t-a),{total:u,ranges:l}}function Ii({total:h,ranges:t},r){if(r<=0)return t[0].from;if(r>=1)return t[t.length-1].to;let l=Math.floor(h*r);for(let a=0;;a++){let{from:u,to:m}=t[a],n=m-u;if(l<=n)return u+l;l-=n}}function gn(h,t){let r=0;for(let{from:l,to:a}of h.ranges){if(t<=a){r+=t-l;break}r+=a-l}return r/h.total}function xi(h,t,r){for(let l=0;l<h.length;l++){let a=h[l];if(a.from<r&&a.to>t){let u=[];a.from<t&&u.push({from:a.from,to:t}),a.to>r&&u.push({from:r,to:a.to}),h.splice(l,1,...u),l+=u.length-1}}}function Or(h,t){for(let r of h)if(t(r))return r}const Ci={toDOM(h){return h},fromDOM(h){return h},scale:1};class er{constructor(t,r,l){let a=0,u=0,m=0;this.viewports=l.map(({from:n,to:e})=>{let i=r.lineAt(n,vt.ByPos,t,0,0).top,s=r.lineAt(e,vt.ByPos,t,0,0).bottom;return a+=s-i,{from:n,to:e,top:i,bottom:s,domTop:0,domBottom:0}}),this.scale=(7e6-a)/(r.height-a);for(let n of this.viewports)n.domTop=m+(n.top-u)*this.scale,m=n.domBottom=n.domTop+(n.bottom-n.top),u=n.bottom}toDOM(t,r){t-=r;for(let l=0,a=0,u=0;;l++){let m=l<this.viewports.length?this.viewports[l]:null;if(!m||t<m.top)return u+(t-a)*this.scale+r;if(t<=m.bottom)return m.domTop+(t-m.top)+r;a=m.bottom,u=m.domBottom}}fromDOM(t,r){t-=r;for(let l=0,a=0,u=0;;l++){let m=l<this.viewports.length?this.viewports[l]:null;if(!m||t<m.domTop)return a+(t-u)/this.scale+r;if(t<=m.domBottom)return m.top+(t-m.domTop)+r;a=m.bottom,u=m.domBottom}}}function ui(h,t,r){if(t.scale==1)return h;let l=t.toDOM(h.top,r),a=t.toDOM(h.bottom,r);return new ti(h.from,h.length,l,a-l,Array.isArray(h.type)?h.type.map(u=>ui(u,t,r)):h.type)}const tr=D.Facet.define({combine:h=>h.join(" ")}),mn=D.Facet.define({combine:h=>h.indexOf(!0)>-1}),pn=re.StyleModule.newName(),di=re.StyleModule.newName(),yn=re.StyleModule.newName(),Fi={"&light":"."+di,"&dark":"."+yn};function Ai(h,t,r){return new re.StyleModule(t,{finish(l){return/&/.test(l)?l.replace(/&\w*/,a=>{if(a=="&")return h;if(!r||!r[a])throw new RangeError(`Unsupported selector: ${a}`);return r[a]}):h+" "+l}})}const ir=Ai("."+pn,{"&.cm-editor":{position:"relative !important",boxSizing:"border-box","&.cm-focused":{outline:"1px dotted #212121"},display:"flex !important",flexDirection:"column"},".cm-scroller":{display:"flex !important",alignItems:"flex-start !important",fontFamily:"monospace",lineHeight:1.4,height:"100%",overflowX:"auto",position:"relative",zIndex:0},".cm-content":{margin:0,flexGrow:2,minHeight:"100%",display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",padding:"4px 0",outline:"none","&[contenteditable=true]":{WebkitUserModify:"read-write-plaintext-only"}},".cm-lineWrapping":{whiteSpace:"pre-wrap",wordBreak:"break-word",overflowWrap:"anywhere"},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 4px"},".cm-selectionLayer":{zIndex:-1,contain:"size style"},".cm-selectionBackground":{position:"absolute"},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{zIndex:100,contain:"size style",pointerEvents:"none"},"&.cm-focused .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{visibility:"hidden"},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{visibility:"hidden"},"100%":{}},".cm-cursor":{position:"absolute",borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none",display:"none"},"&dark .cm-cursor":{borderLeftColor:"#444"},"&.cm-focused .cm-cursor":{display:"block"},"&light .cm-activeLine":{backgroundColor:"#f3f9ff"},"&dark .cm-activeLine":{backgroundColor:"#223039"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-placeholder":{color:"#888",display:"inline-block"},".cm-button":{verticalAlign:"middle",color:"inherit",fontSize:"70%",padding:".2em 1em",borderRadius:"3px"},"&light .cm-button":{backgroundImage:"linear-gradient(#eff1f5, #d9d9df)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#b4b4b4, #d0d3d6)"}},"&dark .cm-button":{backgroundImage:"linear-gradient(#393939, #111)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#111, #333)"}},".cm-textfield":{verticalAlign:"middle",color:"inherit",fontSize:"70%",border:"1px solid silver",padding:".2em .5em"},"&light .cm-textfield":{backgroundColor:"white"},"&dark .cm-textfield":{border:"1px solid #555",backgroundColor:"inherit"}},Fi),nr={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},Vi=pe.ie&&pe.ie_version<=11;class bn{constructor(t,r,l){this.view=t,this.onChange=r,this.onScrollChanged=l,this.active=!1,this.ignoreSelection=new H,this.delayedFlush=-1,this.queue=[],this.lastFlush=0,this.scrollTargets=[],this.intersection=null,this.intersecting=!1,this.gapIntersection=null,this.gaps=[],this._selectionRange=null,this.parentCheck=-1,this.dom=t.contentDOM,this.observer=new MutationObserver(a=>{for(let u of a)this.queue.push(u);this._selectionRange=null,(pe.ie&&pe.ie_version<=11||pe.ios&&t.composing)&&a.some(u=>u.type=="childList"&&u.removedNodes.length||u.type=="characterData"&&u.oldValue.length>u.target.nodeValue.length)?this.flushSoon():this.flush()}),Vi&&(this.onCharData=a=>{this.queue.push({target:a.target,type:"characterData",oldValue:a.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this),this.start(),this.onScroll=this.onScroll.bind(this),window.addEventListener("scroll",this.onScroll),typeof IntersectionObserver=="function"&&(this.intersection=new IntersectionObserver(a=>{this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),a.length>0&&a[a.length-1].intersectionRatio>0!=this.intersecting&&(this.intersecting=!this.intersecting,this.intersecting!=this.view.inView&&this.onScrollChanged(document.createEvent("Event")))},{}),this.intersection.observe(this.dom),this.gapIntersection=new IntersectionObserver(a=>{a.length>0&&a[a.length-1].intersectionRatio>0&&this.onScrollChanged(document.createEvent("Event"))},{})),this.listenForScroll()}onScroll(t){this.intersecting&&this.flush(),this.onScrollChanged(t)}updateGaps(t){if(this.gapIntersection&&(t.length!=this.gaps.length||this.gaps.some((r,l)=>r!=t[l]))){this.gapIntersection.disconnect();for(let r of t)this.gapIntersection.observe(r);this.gaps=t}}onSelectionChange(t){this.lastFlush<Date.now()-50&&(this._selectionRange=null);let{view:r}=this,l=this.selectionRange;if(r.state.facet(Kt)?r.root.activeElement!=this.dom:!Oe(r.dom,l))return;let a=l.anchorNode&&r.docView.nearest(l.anchorNode);a&&a.ignoreEvent(t)||(pe.ie&&pe.ie_version<=11&&!r.state.selection.main.empty&&l.focusNode&&ve(l.focusNode,l.focusOffset,l.anchorNode,l.anchorOffset)?this.flushSoon():this.flush())}get selectionRange(){if(!this._selectionRange){let{root:t}=this.view,r=Xe(t);pe.safari&&t.nodeType==11&&We()==this.view.contentDOM&&(r=Br(this.view)||r),this._selectionRange=r}return this._selectionRange}setSelectionRange(t,r){var l;((l=this._selectionRange)===null||l===void 0?void 0:l.type)||(this._selectionRange={anchorNode:t.node,anchorOffset:t.offset,focusNode:r.node,focusOffset:r.offset})}listenForScroll(){this.parentCheck=-1;let t=0,r=null;for(let l=this.dom;l;)if(l.nodeType==1)!r&&t<this.scrollTargets.length&&this.scrollTargets[t]==l?t++:r||(r=this.scrollTargets.slice(0,t)),r&&r.push(l),l=l.assignedSlot||l.parentNode;else if(l.nodeType==11)l=l.host;else break;if(t<this.scrollTargets.length&&!r&&(r=this.scrollTargets.slice(0,t)),r){for(let l of this.scrollTargets)l.removeEventListener("scroll",this.onScroll);for(let l of this.scrollTargets=r)l.addEventListener("scroll",this.onScroll)}}ignore(t){if(!this.active)return t();try{return this.stop(),t()}finally{this.start(),this.clear()}}start(){this.active||(this.observer.observe(this.dom,nr),this.dom.ownerDocument.addEventListener("selectionchange",this.onSelectionChange),Vi&&this.dom.addEventListener("DOMCharacterDataModified",this.onCharData),this.active=!0)}stop(){!this.active||(this.active=!1,this.observer.disconnect(),this.dom.ownerDocument.removeEventListener("selectionchange",this.onSelectionChange),Vi&&this.dom.removeEventListener("DOMCharacterDataModified",this.onCharData))}clearSelection(){this.ignoreSelection.set(this.selectionRange)}clear(){this.observer.takeRecords(),this.queue.length=0,this.clearSelection()}flushSoon(){this.delayedFlush<0&&(this.delayedFlush=window.setTimeout(()=>{this.delayedFlush=-1,this.flush()},20))}forceFlush(){this.delayedFlush>=0&&(window.clearTimeout(this.delayedFlush),this.delayedFlush=-1,this.flush())}processRecords(){let t=this.queue;for(let u of this.observer.takeRecords())t.push(u);t.length&&(this.queue=[]);let r=-1,l=-1,a=!1;for(let u of t){let m=this.readMutation(u);!m||(m.typeOver&&(a=!0),r==-1?{from:r,to:l}=m:(r=Math.min(m.from,r),l=Math.max(m.to,l)))}return{from:r,to:l,typeOver:a}}flush(){if(this.delayedFlush>=0||this.view.inputState.pendingAndroidKey)return;this.lastFlush=Date.now();let{from:t,to:r,typeOver:l}=this.processRecords(),a=this.selectionRange,u=!this.ignoreSelection.eq(a)&&Oe(this.dom,a);if(t<0&&!u)return;let m=this.view.state;this.onChange(t,r,l),this.view.state==m&&this.view.docView.reset(u),this.clearSelection()}readMutation(t){let r=this.view.docView.nearest(t.target);if(!r||r.ignoreMutation(t))return null;if(r.markDirty(t.type=="attributes"),t.type=="attributes"&&(r.dirty|=4),t.type=="childList"){let l=rr(r,t.previousSibling||t.target.previousSibling,-1),a=rr(r,t.nextSibling||t.target.nextSibling,1);return{from:l?r.posAfter(l):r.posAtStart,to:a?r.posBefore(a):r.posAtEnd,typeOver:!1}}else return t.type=="characterData"?{from:r.posAtStart,to:r.posAtEnd,typeOver:t.target.nodeValue==t.oldValue}:null}destroy(){this.stop(),this.intersection&&this.intersection.disconnect(),this.gapIntersection&&this.gapIntersection.disconnect();for(let t of this.scrollTargets)t.removeEventListener("scroll",this.onScroll);window.removeEventListener("scroll",this.onScroll),clearTimeout(this.parentCheck)}}function rr(h,t,r){for(;t;){let l=w.get(t);if(l&&l.parent==h)return l;let a=t.parentNode;t=a!=h.dom?a:r>0?t.nextSibling:t.previousSibling}return null}function Br(h){let t=null;function r(e){e.preventDefault(),e.stopImmediatePropagation(),t=e.getTargetRanges()[0]}if(h.contentDOM.addEventListener("beforeinput",r,!0),document.execCommand("indent"),h.contentDOM.removeEventListener("beforeinput",r,!0),!t)return null;let l=t.startContainer,a=t.startOffset,u=t.endContainer,m=t.endOffset,n=h.docView.domAtPos(h.state.selection.main.anchor);return ve(n.node,n.offset,u,m)&&([l,a,u,m]=[u,m,l,a]),{anchorNode:l,anchorOffset:a,focusNode:u,focusOffset:m}}function wn(h,t,r,l){let a,u,m=h.state.selection.main;if(t>-1){let n=h.docView.domBoundsAround(t,r,0);if(!n||h.state.readOnly)return;let{from:e,to:i}=n,s=h.docView.impreciseHead||h.docView.impreciseAnchor?[]:Lr(h),o=new sr(s,h);o.readRange(n.startDOM,n.endDOM),u=Rr(s,e);let c=m.from,f=null;(h.inputState.lastKeyCode===8&&h.inputState.lastKeyTime>Date.now()-100||pe.android&&o.text.length<i-e)&&(c=m.to,f="end");let y=Pr(h.state.sliceDoc(e,i),o.text,c-e,f);y&&(a={from:e+y.from,to:e+y.toA,insert:h.state.toText(o.text.slice(y.from,y.toB))})}else if(h.hasFocus||!h.state.facet(Kt)){let n=h.observer.selectionRange,{impreciseHead:e,impreciseAnchor:i}=h.docView,s=e&&e.node==n.focusNode&&e.offset==n.focusOffset||!je(h.contentDOM,n.focusNode)?h.state.selection.main.head:h.docView.posFromDOM(n.focusNode,n.focusOffset),o=i&&i.node==n.anchorNode&&i.offset==n.anchorOffset||!je(h.contentDOM,n.anchorNode)?h.state.selection.main.anchor:h.docView.posFromDOM(n.anchorNode,n.anchorOffset);(s!=m.head||o!=m.anchor)&&(u=D.EditorSelection.single(o,s))}if(!(!a&&!u)){if(!a&&l&&!m.empty&&u&&u.main.empty?a={from:m.from,to:m.to,insert:h.state.doc.slice(m.from,m.to)}:a&&a.from>=m.from&&a.to<=m.to&&(a.from!=m.from||a.to!=m.to)&&m.to-m.from-(a.to-a.from)<=4&&(a={from:m.from,to:m.to,insert:h.state.doc.slice(m.from,a.from).append(a.insert).append(h.state.doc.slice(a.to,m.to))}),a){let n=h.state;if(pe.ios&&h.inputState.flushIOSKey(h))return;let e=a.insert.toString();if(h.state.facet(Tt).some(o=>o(h,a.from,a.to,e)))return;h.inputState.composing>=0&&h.inputState.composing++;let i;if(a.from>=m.from&&a.to<=m.to&&a.to-a.from>=(m.to-m.from)/3&&(!u||u.main.empty&&u.main.from==a.from+a.insert.length)){let o=m.from<a.from?n.sliceDoc(m.from,a.from):"",c=m.to>a.to?n.sliceDoc(a.to,m.to):"";i=n.replaceSelection(h.state.toText(o+a.insert.sliceString(0,void 0,h.state.lineBreak)+c))}else{let o=n.changes(a);i={changes:o,selection:u&&!n.selection.main.eq(u.main)&&u.main.to<=o.newLength?n.selection.replaceRange(u.main):void 0}}let s="input.type";h.composing&&(s+=".compose",h.inputState.compositionFirstChange&&(s+=".start",h.inputState.compositionFirstChange=!1)),h.dispatch(i,{scrollIntoView:!0,userEvent:s})}else if(u&&!u.main.eq(m)){let n=!1,e="select";h.inputState.lastSelectionTime>Date.now()-50&&(h.inputState.lastSelectionOrigin=="select"&&(n=!0),e=h.inputState.lastSelectionOrigin),h.dispatch({selection:u,scrollIntoView:n,userEvent:e})}}}function Pr(h,t,r,l){let a=Math.min(h.length,t.length),u=0;for(;u<a&&h.charCodeAt(u)==t.charCodeAt(u);)u++;if(u==a&&h.length==t.length)return null;let m=h.length,n=t.length;for(;m>0&&n>0&&h.charCodeAt(m-1)==t.charCodeAt(n-1);)m--,n--;if(l=="end"){let e=Math.max(0,u-Math.min(m,n));r-=m+e-u}return m<u&&h.length<t.length?(u-=r<=u&&r>=m?u-r:0,n=u+(n-m),m=u):n<u&&(u-=r<=u&&r>=n?u-r:0,m=u+(m-n),n=u),{from:u,toA:m,toB:n}}class sr{constructor(t,r){this.points=t,this.view=r,this.text="",this.lineBreak=r.state.lineBreak}readRange(t,r){if(!t)return;let l=t.parentNode;for(let a=t;;){this.findPointBefore(l,a),this.readNode(a);let u=a.nextSibling;if(u==r)break;let m=w.get(a),n=w.get(u);(m&&n?m.breakAfter:(m?m.breakAfter:or(a))||or(u)&&(a.nodeName!="BR"||a.cmIgnore))&&(this.text+=this.lineBreak),a=u}this.findPointBefore(l,r)}readNode(t){if(t.cmIgnore)return;let r=w.get(t),l=r&&r.overrideDOMText,a;l!=null?a=l.sliceString(0,void 0,this.lineBreak):t.nodeType==3?a=t.nodeValue:t.nodeName=="BR"?a=t.nextSibling?this.lineBreak:"":t.nodeType==1&&this.readRange(t.firstChild,null),a!=null&&(this.findPointIn(t,a.length),this.text+=a,pe.chrome&&this.view.inputState.lastKeyCode==13&&!t.nextSibling&&/\n\n$/.test(this.text)&&(this.text=this.text.slice(0,-1)))}findPointBefore(t,r){for(let l of this.points)l.node==t&&t.childNodes[l.offset]==r&&(l.pos=this.text.length)}findPointIn(t,r){for(let l of this.points)l.node==t&&(l.pos=this.text.length+Math.min(l.offset,r))}}function or(h){return h.nodeType==1&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(h.nodeName)}class lr{constructor(t,r){this.node=t,this.offset=r,this.pos=-1}}function Lr(h){let t=[];if(h.root.activeElement!=h.contentDOM)return t;let{anchorNode:r,anchorOffset:l,focusNode:a,focusOffset:u}=h.observer.selectionRange;return r&&(t.push(new lr(r,l)),(a!=r||u!=l)&&t.push(new lr(a,u))),t}function Rr(h,t){if(h.length==0)return null;let r=h[0].pos,l=h.length==2?h[1].pos:r;return r>-1&&l>-1?D.EditorSelection.single(r+t,l+t):null}class Bt{constructor(t={}){this.plugins=[],this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM=document.createElement("div"),this.scrollDOM.tabIndex=-1,this.scrollDOM.className="cm-scroller",this.scrollDOM.appendChild(this.contentDOM),this.announceDOM=document.createElement("div"),this.announceDOM.style.cssText="position: absolute; top: -10000px",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM),this._dispatch=t.dispatch||(r=>this.update([r])),this.dispatch=this.dispatch.bind(this),this.root=t.root||d(t.parent)||document,this.viewState=new Zn(t.state||D.EditorState.create()),this.plugins=this.state.facet(ri).map(r=>new I(r).update(this)),this.observer=new bn(this,(r,l,a)=>{wn(this,r,l,a)},r=>{this.inputState.runScrollHandlers(this,r),this.observer.intersecting&&this.measure()}),this.inputState=new Cr(this),this.docView=new tt(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,kn(),this.requestMeasure(),t.parent&&t.parent.appendChild(this.dom)}get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return this.inputState.composing>0}dispatch(...t){this._dispatch(t.length==1&&t[0]instanceof D.Transaction?t[0]:this.state.update(...t))}update(t){if(this.updateState!=0)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let r=!1,l,a=this.state;for(let m of t){if(m.startState!=a)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");a=m.state}if(this.destroyed){this.viewState.state=a;return}if(a.facet(D.EditorState.phrases)!=this.state.facet(D.EditorState.phrases))return this.setState(a);l=new Qe(this,a,t);let u=null;try{this.updateState=2;for(let m of t){if(u&&(u=u.map(m.changes)),m.scrollIntoView){let{main:n}=m.state.selection;u=new vi(n.empty?n:D.EditorSelection.cursor(n.head,n.head>n.anchor?-1:1))}for(let n of m.effects)n.is(Ht)?u=new vi(n.value):n.is(Wt)&&(u=new vi(n.value,!0))}this.viewState.update(l,u),this.bidiCache=Di.update(this.bidiCache,l.changes),l.empty||(this.updatePlugins(l),this.inputState.update(l)),r=this.docView.update(l),this.state.facet(xe)!=this.styleModules&&this.mountStyles(),this.updateAttrs(),this.showAnnouncements(t)}finally{this.updateState=0}if((r||u||this.viewState.mustEnforceCursorAssoc)&&this.requestMeasure(),!l.empty)for(let m of this.state.facet(Dt))m(l)}setState(t){if(this.updateState!=0)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed){this.viewState.state=t;return}this.updateState=2;try{for(let r of this.plugins)r.destroy(this);this.viewState=new Zn(t),this.plugins=t.facet(ri).map(r=>new I(r).update(this)),this.docView=new tt(this),this.inputState.ensureHandlers(this),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}this.requestMeasure()}updatePlugins(t){let r=t.startState.facet(ri),l=t.state.facet(ri);if(r!=l){let a=[];for(let u of l){let m=r.indexOf(u);if(m<0)a.push(new I(u));else{let n=this.plugins[m];n.mustUpdate=t,a.push(n)}}for(let u of this.plugins)u.mustUpdate!=t&&u.destroy(this);this.plugins=a,this.inputState.ensureHandlers(this)}else for(let a of this.plugins)a.mustUpdate=t;for(let a=0;a<this.plugins.length;a++)this.plugins[a]=this.plugins[a].update(this)}measure(t=!0){if(this.destroyed)return;this.measureScheduled>-1&&cancelAnimationFrame(this.measureScheduled),this.measureScheduled=-1,t&&this.observer.flush();let r=null;try{for(let l=0;;l++){this.updateState=1;let a=this.viewport,u=this.viewState.measure(this.docView,l>0);if(!u&&!this.measureRequests.length&&this.viewState.scrollTarget==null)break;if(l>5){console.warn("Viewport failed to stabilize");break}let m=[];u&4||([this.measureRequests,m]=[m,this.measureRequests]);let n=m.map(i=>{try{return i.read(this)}catch(s){return zt(this.state,s),ar}}),e=new Qe(this,this.state);e.flags|=u,r?r.flags|=u:r=e,this.updateState=2,e.empty||(this.updatePlugins(e),this.inputState.update(e)),this.updateAttrs(),u&&this.docView.update(e);for(let i=0;i<m.length;i++)if(n[i]!=ar)try{m[i].write(n[i],this)}catch(s){zt(this.state,s)}if(this.viewState.scrollTarget&&(this.docView.scrollIntoView(this.viewState.scrollTarget),this.viewState.scrollTarget=null),this.viewport.from==a.from&&this.viewport.to==a.to&&this.measureRequests.length==0)break}}finally{this.updateState=0}if(this.measureScheduled=-1,r&&!r.empty)for(let l of this.state.facet(Dt))l(r)}get themeClasses(){return pn+" "+(this.state.facet(mn)?yn:di)+" "+this.state.facet(tr)}updateAttrs(){let t=Ue(this.state.facet(J),{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses});ot(this.dom,this.editorAttrs,t),this.editorAttrs=t;let r={spellcheck:"false",autocorrect:"off",autocapitalize:"off",translate:"no",contenteditable:this.state.facet(Kt)?"true":"false",class:"cm-content",style:`${pe.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(r["aria-readonly"]="true"),Ue(this.state.facet(he),r),ot(this.contentDOM,this.contentAttrs,r),this.contentAttrs=r}showAnnouncements(t){let r=!0;for(let l of t)for(let a of l.effects)if(a.is(Bt.announce)){r&&(this.announceDOM.textContent=""),r=!1;let u=this.announceDOM.appendChild(document.createElement("div"));u.textContent=a.value}}mountStyles(){this.styleModules=this.state.facet(xe),re.StyleModule.mount(this.root,this.styleModules.concat(ir).reverse())}readMeasured(){if(this.updateState==2)throw new Error("Reading the editor layout isn't allowed during an update");this.updateState==0&&this.measureScheduled>-1&&this.measure(!1)}requestMeasure(t){if(this.measureScheduled<0&&(this.measureScheduled=requestAnimationFrame(()=>this.measure())),t){if(t.key!=null){for(let r=0;r<this.measureRequests.length;r++)if(this.measureRequests[r].key===t.key){this.measureRequests[r]=t;return}}this.measureRequests.push(t)}}pluginField(t){let r=[];for(let l of this.plugins)l.update(this).takeField(t,r);return r}plugin(t){for(let r of this.plugins)if(r.spec==t)return r.update(this).value;return null}blockAtHeight(t,r){return this.readMeasured(),this.viewState.blockAtHeight(t,Sn(r,this.contentDOM))}visualLineAtHeight(t,r){return this.readMeasured(),this.viewState.lineAtHeight(t,Sn(r,this.contentDOM))}viewportLines(t,r){let{from:l,to:a}=this.viewport;this.viewState.forEachLine(l,a,t,Sn(r,this.contentDOM))}visualLineAt(t,r=0){return this.viewState.lineAt(t,r)}get contentHeight(){return this.viewState.contentHeight}moveByChar(t,r,l){return $i(this,t,Qi(this,t,r,l))}moveByGroup(t,r){return $i(this,t,Qi(this,t,r,l=>Rn(this,t.head,l)))}moveToLineBoundary(t,r,l=!0){return Xi(this,t,r,l)}moveVertically(t,r,l){return $i(this,t,Nn(this,t,r,l))}scrollPosIntoView(t){this.dispatch({effects:Ht.of(D.EditorSelection.cursor(t))})}domAtPos(t){return this.docView.domAtPos(t)}posAtDOM(t,r=0){return this.docView.posFromDOM(t,r)}posAtCoords(t,r=!0){return this.readMeasured(),Li(this,t,r)}coordsAtPos(t,r=1){this.readMeasured();let l=this.docView.coordsAt(t,r);if(!l||l.left==l.right)return l;let a=this.state.doc.lineAt(t),u=this.bidiSpans(a),m=u[Be.find(u,t-a.from,-1,r)];return me(l,m.dir==b.Direction.LTR==r>0)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.heightOracle.direction}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(t){if(t.length>Ot)return gt(t.length);let r=this.textDirection;for(let a of this.bidiCache)if(a.from==t.from&&a.dir==r)return a.order;let l=st(t.text,this.textDirection);return this.bidiCache.push(new Di(t.from,t.to,r,l)),l}get hasFocus(){var t;return(document.hasFocus()||pe.safari&&((t=this.inputState)===null||t===void 0?void 0:t.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{Y(this.contentDOM),this.docView.updateSelection()})}destroy(){for(let t of this.plugins)t.destroy(this);this.plugins=[],this.inputState.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static domEventHandlers(t){return Lt.define(()=>({}),{eventHandlers:t})}static theme(t,r){let l=re.StyleModule.newName(),a=[tr.of(l),xe.of(Ai(`.${l}`,t))];return r&&r.dark&&a.push(mn.of(!0)),a}static baseTheme(t){return D.Prec.lowest(xe.of(Ai("."+pn,t,Fi)))}}Bt.scrollTo=Ht,Bt.centerOn=Wt,Bt.styleModule=xe,Bt.inputHandler=Tt,Bt.exceptionSink=pt,Bt.updateListener=Dt,Bt.editable=Kt,Bt.mouseSelectionStyle=yt,Bt.dragMovesSelection=Mt,Bt.clickAddsSelectionRange=ut,Bt.decorations=de,Bt.contentAttributes=he,Bt.editorAttributes=J,Bt.lineWrapping=Bt.contentAttributes.of({class:"cm-lineWrapping"}),Bt.announce=D.StateEffect.define();const Ot=4096;function Sn(h,t){return h??t.getBoundingClientRect().top}let Mi=-1;function kn(){window.addEventListener("resize",()=>{Mi==-1&&(Mi=setTimeout(Nr,50))})}function Nr(){Mi=-1;let h=document.querySelectorAll(".cm-content");for(let t=0;t<h.length;t++){let r=w.get(h[t]);r&&r.editorView.requestMeasure()}}const ar={};class Di{constructor(t,r,l,a){this.from=t,this.to=r,this.dir=l,this.order=a}static update(t,r){if(r.empty)return t;let l=[],a=t.length?t[t.length-1].dir:b.Direction.LTR;for(let u=Math.max(0,t.length-10);u<t.length;u++){let m=t[u];m.dir==a&&!r.touchesRange(m.from,m.to)&&l.push(new Di(r.mapPos(m.from,1),r.mapPos(m.to,-1),m.dir,m.order))}return l}}const Hi=pe.mac?"mac":pe.windows?"win":pe.linux?"linux":"key";function hr(h,t){const r=h.split(/-(?!$)/);let l=r[r.length-1];l=="Space"&&(l=" ");let a,u,m,n;for(let e=0;e<r.length-1;++e){const i=r[e];if(/^(cmd|meta|m)$/i.test(i))n=!0;else if(/^a(lt)?$/i.test(i))a=!0;else if(/^(c|ctrl|control)$/i.test(i))u=!0;else if(/^s(hift)?$/i.test(i))m=!0;else if(/^mod$/i.test(i))t=="mac"?n=!0:u=!0;else throw new Error("Unrecognized modifier name: "+i)}return a&&(l="Alt-"+l),u&&(l="Ctrl-"+l),n&&(l="Meta-"+l),m&&(l="Shift-"+l),l}function vn(h,t,r){return t.altKey&&(h="Alt-"+h),t.ctrlKey&&(h="Ctrl-"+h),t.metaKey&&(h="Meta-"+h),r!==!1&&t.shiftKey&&(h="Shift-"+h),h}const Ir=Bt.domEventHandlers({keydown(h,t){return ur(xn(t.state),h,t,"editor")}}),Wi=D.Facet.define({enables:Ir}),cr=new WeakMap;function xn(h){let t=h.facet(Wi),r=cr.get(t);return r||cr.set(t,r=hi(t.reduce((l,a)=>l.concat(a),[]))),r}function fr(h,t,r){return ur(xn(h.state),t,h,r)}let li=null;const Fr=4e3;function hi(h,t=Hi){let r=Object.create(null),l=Object.create(null),a=(m,n)=>{let e=l[m];if(e==null)l[m]=n;else if(e!=n)throw new Error("Key binding "+m+" is used both as a regular binding and as a multi-stroke prefix")},u=(m,n,e,i)=>{let s=r[m]||(r[m]=Object.create(null)),o=n.split(/ (?!$)/).map(y=>hr(y,t));for(let y=1;y<o.length;y++){let L=o.slice(0,y).join(" ");a(L,!0),s[L]||(s[L]={preventDefault:!0,commands:[q=>{let se=li={view:q,prefix:L,scope:m};return setTimeout(()=>{li==se&&(li=null)},Fr),!0}]})}let c=o.join(" ");a(c,!1);let f=s[c]||(s[c]={preventDefault:!1,commands:[]});f.commands.push(e),i&&(f.preventDefault=!0)};for(let m of h){let n=m[t]||m.key;if(!!n)for(let e of m.scope?m.scope.split(" "):["editor"])u(e,n,m.run,m.preventDefault),m.shift&&u(e,"Shift-"+n,m.shift,m.preventDefault)}return r}function ur(h,t,r,l){let a=Me.keyName(t),u=a.length==1&&a!=" ",m="",n=!1;li&&li.view==r&&li.scope==l&&(m=li.prefix+" ",(n=In.indexOf(t.keyCode)<0)&&(li=null));let e=o=>{if(o){for(let c of o.commands)if(c(r))return!0;o.preventDefault&&(n=!0)}return!1},i=h[l],s;if(i){if(e(i[m+vn(a,t,!u)]))return!0;if(u&&(t.shiftKey||t.altKey||t.metaKey)&&(s=Me.base[t.keyCode])&&s!=a){if(e(i[m+vn(s,t,!0)]))return!0}else if(u&&t.shiftKey&&e(i[m+vn(a,t,!0)]))return!0}return n}const dr=!pe.ios,gi=D.Facet.define({combine(h){return D.combineConfig(h,{cursorBlinkRate:1200,drawRangeCursor:!0},{cursorBlinkRate:(t,r)=>Math.min(t,r),drawRangeCursor:(t,r)=>t||r})}});function gr(h={}){return[gi.of(h),Vr,Hr]}class mi{constructor(t,r,l,a,u){this.left=t,this.top=r,this.width=l,this.height=a,this.className=u}draw(){let t=document.createElement("div");return t.className=this.className,this.adjust(t),t}adjust(t){t.style.left=this.left+"px",t.style.top=this.top+"px",this.width>=0&&(t.style.width=this.width+"px"),t.style.height=this.height+"px"}eq(t){return this.left==t.left&&this.top==t.top&&this.width==t.width&&this.height==t.height&&this.className==t.className}}const Vr=Lt.fromClass(class{constructor(h){this.view=h,this.rangePieces=[],this.cursors=[],this.measureReq={read:this.readPos.bind(this),write:this.drawSel.bind(this)},this.selectionLayer=h.scrollDOM.appendChild(document.createElement("div")),this.selectionLayer.className="cm-selectionLayer",this.selectionLayer.setAttribute("aria-hidden","true"),this.cursorLayer=h.scrollDOM.appendChild(document.createElement("div")),this.cursorLayer.className="cm-cursorLayer",this.cursorLayer.setAttribute("aria-hidden","true"),h.requestMeasure(this.measureReq),this.setBlinkRate()}setBlinkRate(){this.cursorLayer.style.animationDuration=this.view.state.facet(gi).cursorBlinkRate+"ms"}update(h){let t=h.startState.facet(gi)!=h.state.facet(gi);(t||h.selectionSet||h.geometryChanged||h.viewportChanged)&&this.view.requestMeasure(this.measureReq),h.transactions.some(r=>r.scrollIntoView)&&(this.cursorLayer.style.animationName=this.cursorLayer.style.animationName=="cm-blink"?"cm-blink2":"cm-blink"),t&&this.setBlinkRate()}readPos(){let{state:h}=this.view,t=h.facet(gi),r=h.selection.ranges.map(a=>a.empty?[]:pr(this.view,a)).reduce((a,u)=>a.concat(u)),l=[];for(let a of h.selection.ranges){let u=a==h.selection.main;if(a.empty?!u||dr:t.drawRangeCursor){let m=yr(this.view,a,u);m&&l.push(m)}}return{rangePieces:r,cursors:l}}drawSel({rangePieces:h,cursors:t}){if(h.length!=this.rangePieces.length||h.some((r,l)=>!r.eq(this.rangePieces[l]))){this.selectionLayer.textContent="";for(let r of h)this.selectionLayer.appendChild(r.draw());this.rangePieces=h}if(t.length!=this.cursors.length||t.some((r,l)=>!r.eq(this.cursors[l]))){let r=this.cursorLayer.children;if(r.length!==t.length){this.cursorLayer.textContent="";for(const l of t)this.cursorLayer.appendChild(l.draw())}else t.forEach((l,a)=>l.adjust(r[a]));this.cursors=t}}destroy(){this.selectionLayer.remove(),this.cursorLayer.remove()}}),Cn={".cm-line":{"& ::selection":{backgroundColor:"transparent !important"},"&::selection":{backgroundColor:"transparent !important"}}};dr&&(Cn[".cm-line"].caretColor="transparent !important");const Hr=D.Prec.highest(Bt.theme(Cn));function An(h){let t=h.scrollDOM.getBoundingClientRect();return{left:(h.textDirection==b.Direction.LTR?t.left:t.right-h.scrollDOM.clientWidth)-h.scrollDOM.scrollLeft,top:t.top-h.scrollDOM.scrollTop}}function mr(h,t,r){let l=D.EditorSelection.cursor(t);return{from:Math.max(r.from,h.moveToLineBoundary(l,!1,!0).from),to:Math.min(r.to,h.moveToLineBoundary(l,!0,!0).from),type:b.BlockType.Text}}function zi(h,t){let r=h.visualLineAt(t);if(Array.isArray(r.type)){for(let l of r.type)if(l.to>t||l.to==t&&(l.to==r.to||l.type==b.BlockType.Text))return l}return r}function pr(h,t){if(t.to<=h.viewport.from||t.from>=h.viewport.to)return[];let r=Math.max(t.from,h.viewport.from),l=Math.min(t.to,h.viewport.to),a=h.textDirection==b.Direction.LTR,u=h.contentDOM,m=u.getBoundingClientRect(),n=An(h),e=window.getComputedStyle(u.firstChild),i=m.left+parseInt(e.paddingLeft),s=m.right-parseInt(e.paddingRight),o=zi(h,r),c=zi(h,l),f=o.type==b.BlockType.Text?o:null,y=c.type==b.BlockType.Text?c:null;if(h.lineWrapping&&(f&&(f=mr(h,r,f)),y&&(y=mr(h,l,y))),f&&y&&f.from==y.from)return q(se(t.from,t.to,f));{let Fe=f?se(t.from,null,f):fe(o,!1),Ne=y?se(null,t.to,y):fe(c,!0),Ge=[];return(f||o).to<(y||c).from-1?Ge.push(L(i,Fe.bottom,s,Ne.top)):Fe.bottom<Ne.top&&zi(h,(Fe.bottom+Ne.top)/2).type==b.BlockType.Text&&(Fe.bottom=Ne.top=(Fe.bottom+Ne.top)/2),q(Fe).concat(Ge).concat(q(Ne))}function L(Fe,Ne,Ge,rt){return new mi(Fe-n.left,Ne-n.top,Ge-Fe,rt-Ne,"cm-selectionBackground")}function q({top:Fe,bottom:Ne,horizontal:Ge}){let rt=[];for(let ht=0;ht<Ge.length;ht+=2)rt.push(L(Ge[ht],Fe,Ge[ht+1],Ne));return rt}function se(Fe,Ne,Ge){let rt=1e9,ht=-1e9,ct=[];function Nt(At,Xt,$t,oi,pi){let ii=h.coordsAtPos(At,At==Ge.to?-2:2),ni=h.coordsAtPos($t,$t==Ge.from?2:-2);rt=Math.min(ii.top,ni.top,rt),ht=Math.max(ii.bottom,ni.bottom,ht),pi==b.Direction.LTR?ct.push(a&&Xt?i:ii.left,a&&oi?s:ni.right):ct.push(!a&&oi?i:ni.left,!a&&Xt?s:ii.right)}let St=Fe??Ge.from,Ct=Ne??Ge.to;for(let At of h.visibleRanges)if(At.to>St&&At.from<Ct)for(let Xt=Math.max(At.from,St),$t=Math.min(At.to,Ct);;){let oi=h.state.doc.lineAt(Xt);for(let pi of h.bidiSpans(oi)){let ii=pi.from+oi.from,ni=pi.to+oi.from;if(ii>=$t)break;ni>Xt&&Nt(Math.max(ii,Xt),Fe==null&&ii<=St,Math.min(ni,$t),Ne==null&&ni>=Ct,pi.dir)}if(Xt=oi.to+1,Xt>=$t)break}return ct.length==0&&Nt(St,Fe==null,Ct,Ne==null,h.textDirection),{top:rt,bottom:ht,horizontal:ct}}function fe(Fe,Ne){let Ge=m.top+(Ne?Fe.top:Fe.bottom);return{top:Ge,bottom:Ge,horizontal:[]}}}function yr(h,t,r){let l=h.coordsAtPos(t.head,t.assoc||1);if(!l)return null;let a=An(h);return new mi(l.left-a.left,l.top-a.top,-1,l.bottom-l.top,r?"cm-cursor cm-cursor-primary":"cm-cursor cm-cursor-secondary")}function br(h,t,r,l,a){t.lastIndex=0;for(let u=h.iterRange(r,l),m=r,n;!u.next().done;m+=u.value.length)if(!u.lineBreak)for(;n=t.exec(u.value);)a(m+n.index,m+n.index+n[0].length,n)}class wr{constructor(t){let{regexp:r,decoration:l,boundary:a}=t;if(!r.global)throw new RangeError("The regular expression given to MatchDecorator should have its 'g' flag set");this.regexp=r,this.getDeco=typeof l=="function"?l:()=>l,this.boundary=a}createDeco(t){let r=new ye.RangeSetBuilder;for(let{from:l,to:a}of t.visibleRanges)br(t.state.doc,this.regexp,l,a,(u,m,n)=>r.add(u,m,this.getDeco(n,t,u)));return r.finish()}updateDeco(t,r){let l=1e9,a=-1;return t.docChanged&&t.changes.iterChanges((u,m,n,e)=>{e>t.view.viewport.from&&n<t.view.viewport.to&&(l=Math.min(n,l),a=Math.max(e,a))}),t.viewportChanged||a-l>1e3?this.createDeco(t.view):a>-1?this.updateRange(t.view,r.map(t.changes),l,a):r}updateRange(t,r,l,a){for(let u of t.visibleRanges){let m=Math.max(u.from,l),n=Math.min(u.to,a);if(n>m){let e=t.state.doc.lineAt(m),i=e.to<n?t.state.doc.lineAt(n):e,s=Math.max(u.from,e.from),o=Math.min(u.to,i.to);if(this.boundary){for(;m>e.from;m--)if(this.boundary.test(e.text[m-1-e.from])){s=m;break}for(;n<i.to;n++)if(this.boundary.test(i.text[n-i.from])){o=n;break}}let c=[],f;if(e==i)for(this.regexp.lastIndex=s-e.from;(f=this.regexp.exec(e.text))&&f.index<o-e.from;){let y=f.index+e.from;c.push(this.getDeco(f,t,y).range(y,y+f[0].length))}else br(t.state.doc,this.regexp,s,o,(y,L,q)=>c.push(this.getDeco(q,t,y).range(y,L)));r=r.update({filterFrom:s,filterTo:o,filter:(y,L)=>y<s||L>o,add:c})}}return r}}const ji=/x/.unicode!=null?"gu":"g",Ti=new RegExp(`[\0-\b 12 + -\x7F-\x9F\xAD\u061C\u200B\u200E\u200F\u2028\u2029\u202D\u202E\uFEFF\uFFF9-\uFFFC]`,ji),Wr={0:"null",7:"bell",8:"backspace",10:"newline",11:"vertical tab",13:"carriage return",27:"escape",8203:"zero width space",8204:"zero width non-joiner",8205:"zero width joiner",8206:"left-to-right mark",8207:"right-to-left mark",8232:"line separator",8237:"left-to-right override",8238:"right-to-left override",8233:"paragraph separator",65279:"zero width no-break space",65532:"object replacement"};let Mn=null;function Sr(){var h;if(Mn==null&&typeof document!="undefined"&&document.body){let t=document.body.style;Mn=((h=t.tabSize)!==null&&h!==void 0?h:t.MozTabSize)!=null}return Mn||!1}const Ki=D.Facet.define({combine(h){let t=D.combineConfig(h,{render:null,specialChars:Ti,addSpecialChars:null});return(t.replaceTabs=!Sr())&&(t.specialChars=new RegExp(" |"+t.specialChars.source,ji)),t.addSpecialChars&&(t.specialChars=new RegExp(t.specialChars.source+"|"+t.addSpecialChars.source,ji)),t}});function kr(h={}){return[Ki.of(h),zr()]}let Ui=null;function zr(){return Ui||(Ui=Lt.fromClass(class{constructor(h){this.view=h,this.decorations=p.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(h.state.facet(Ki)),this.decorations=this.decorator.createDeco(h)}makeDecorator(h){return new wr({regexp:h.specialChars,decoration:(t,r,l)=>{let{doc:a}=r.state,u=we.codePointAt(t[0],0);if(u==9){let m=a.lineAt(l),n=r.state.tabSize,e=we.countColumn(m.text,n,l-m.from);return p.replace({widget:new qi((n-e%n)*this.view.defaultCharacterWidth)})}return this.decorationCache[u]||(this.decorationCache[u]=p.replace({widget:new Kr(h,u)}))},boundary:h.replaceTabs?void 0:/[^]/})}update(h){let t=h.state.facet(Ki);h.startState.facet(Ki)!=t?(this.decorator=this.makeDecorator(t),this.decorations=this.decorator.createDeco(h.view)):this.decorations=this.decorator.updateDeco(h,this.decorations)}},{decorations:h=>h.decorations}))}const jr="\u2022";function Dn(h){return h>=32?jr:h==10?"\u2424":String.fromCharCode(9216+h)}class Kr extends ne{constructor(t,r){super();this.options=t,this.code=r}eq(t){return t.code==this.code}toDOM(t){let r=Dn(this.code),l=t.state.phrase("Control character")+" "+(Wr[this.code]||"0x"+this.code.toString(16)),a=this.options.render&&this.options.render(this.code,l,r);if(a)return a;let u=document.createElement("span");return u.textContent=r,u.title=l,u.setAttribute("aria-label",l),u.className="cm-specialChar",u}ignoreEvent(){return!1}}class qi extends ne{constructor(t){super();this.width=t}eq(t){return t.width==this.width}toDOM(){let t=document.createElement("span");return t.textContent=" ",t.className="cm-tab",t.style.width=this.width+"px",t}ignoreEvent(){return!1}}const Ur=Lt.fromClass(class{constructor(h){this.height=-1,this.measure={read:t=>Math.max(0,t.scrollDOM.clientHeight-t.defaultLineHeight),write:(t,r)=>{Math.abs(t-this.height)>1&&(this.height=t,r.contentDOM.style.paddingBottom=t+"px")}},h.requestMeasure(this.measure)}update(h){h.geometryChanged&&h.view.requestMeasure(this.measure)}});function vr(){return Ur}function qr(){return _r}const Gr=p.line({class:"cm-activeLine"}),_r=Lt.fromClass(class{constructor(h){this.decorations=this.getDeco(h)}update(h){(h.docChanged||h.selectionSet)&&(this.decorations=this.getDeco(h.view))}getDeco(h){let t=-1,r=[];for(let l of h.state.selection.ranges){if(!l.empty)return p.none;let a=h.visualLineAt(l.head);a.from>t&&(r.push(Gr.range(a.from)),t=a.from)}return p.set(r)}},{decorations:h=>h.decorations});class Jr extends ne{constructor(t){super();this.content=t}toDOM(){let t=document.createElement("span");return t.className="cm-placeholder",t.style.pointerEvents="none",t.appendChild(typeof this.content=="string"?document.createTextNode(this.content):this.content),typeof this.content=="string"?t.setAttribute("aria-label","placeholder "+this.content):t.setAttribute("aria-hidden","true"),t}ignoreEvent(){return!1}}function Yr(h){return Lt.fromClass(class{constructor(t){this.view=t,this.placeholder=p.set([p.widget({widget:new Jr(h),side:1}).range(0)])}get decorations(){return this.view.state.doc.length?p.none:this.placeholder}},{decorations:t=>t.decorations})}const xr={HeightMap:qt,HeightOracle:Jn,MeasuredHeights:Yn,QueryType:vt,ChangedRange:Ie,computeOrder:st,moveVisually:Jt};Object.defineProperty(b,"Range",{enumerable:!0,get:function(){return ye.Range}}),b.BidiSpan=Be,b.BlockInfo=ti,b.Decoration=p,b.EditorView=Bt,b.MatchDecorator=wr,b.PluginField=Pt,b.PluginFieldProvider=Qt,b.ViewPlugin=Lt,b.ViewUpdate=Qe,b.WidgetType=ne,b.__test=xr,b.drawSelection=gr,b.highlightActiveLine=qr,b.highlightSpecialChars=kr,b.keymap=Wi,b.logException=zt,b.placeholder=Yr,b.runScopeHandlers=fr,b.scrollPastEnd=vr},{"@codemirror/rangeset":18,"@codemirror/state":22,"@codemirror/text":24,"style-mod":30,"w3c-keyname":31}],28:[function(Re,mt,b){"use strict";Object.defineProperty(b,"__esModule",{value:!0});const D=1024;let re=0;class ye{constructor(k,S){this.from=k,this.to=S}}class we{constructor(k={}){this.id=re++,this.perNode=!!k.perNode,this.deserialize=k.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")})}add(k){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return typeof k!="function"&&(k=je.match(k)),S=>{let B=k(S);return B===void 0?null:[this,B]}}}we.closedBy=new we({deserialize:pe=>pe.split(" ")}),we.openedBy=new we({deserialize:pe=>pe.split(" ")}),we.group=new we({deserialize:pe=>pe.split(" ")}),we.contextHash=new we({perNode:!0}),we.lookAhead=new we({perNode:!0}),we.mounted=new we({perNode:!0});class Me{constructor(k,S,B){this.tree=k,this.overlay=S,this.parser=B}}const Xe=Object.create(null);class je{constructor(k,S,B,V=0){this.name=k,this.props=S,this.id=B,this.flags=V}static define(k){let S=k.props&&k.props.length?Object.create(null):Xe,B=(k.top?1:0)|(k.skipped?2:0)|(k.error?4:0)|(k.name==null?8:0),V=new je(k.name||"",S,k.id,B);if(k.props){for(let Z of k.props)if(Array.isArray(Z)||(Z=Z(V)),Z){if(Z[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");S[Z[0].id]=Z[1]}}return V}prop(k){return this.props[k.id]}get isTop(){return(this.flags&1)>0}get isSkipped(){return(this.flags&2)>0}get isError(){return(this.flags&4)>0}get isAnonymous(){return(this.flags&8)>0}is(k){if(typeof k=="string"){if(this.name==k)return!0;let S=this.prop(we.group);return S?S.indexOf(k)>-1:!1}return this.id==k}static match(k){let S=Object.create(null);for(let B in k)for(let V of B.split(" "))S[V]=k[B];return B=>{for(let V=B.prop(we.group),Z=-1;Z<(V?V.length:0);Z++){let F=S[Z<0?B.name:V[Z]];if(F)return F}}}}je.none=new je("",Object.create(null),0,8);class We{constructor(k){this.types=k;for(let S=0;S<k.length;S++)if(k[S].id!=S)throw new RangeError("Node type ids should correspond to array positions when creating a node set")}extend(...k){let S=[];for(let B of this.types){let V=null;for(let Z of k){let F=Z(B);F&&(V||(V=Object.assign({},B.props)),V[F[0].id]=F[1])}S.push(V?new je(B.name,V,B.id,B.flags):B)}return new We(S)}}const Oe=new WeakMap,De=new WeakMap;class ve{constructor(k,S,B,V,Z){if(this.type=k,this.children=S,this.positions=B,this.length=V,this.props=null,Z&&Z.length){this.props=Object.create(null);for(let[F,x]of Z)this.props[typeof F=="number"?F:F.id]=x}}toString(){let k=this.prop(we.mounted);if(k&&!k.overlay)return k.tree.toString();let S="";for(let B of this.children){let V=B.toString();V&&(S&&(S+=","),S+=V)}return this.type.name?(/\W/.test(this.type.name)&&!this.type.isError?JSON.stringify(this.type.name):this.type.name)+(S.length?"("+S+")":""):S}cursor(k,S=0){let B=k!=null&&Oe.get(this)||this.topNode,V=new j(B);return k!=null&&(V.moveTo(k,S),Oe.set(this,V._tree)),V}fullCursor(){return new j(this.topNode,1)}get topNode(){return new Ve(this,0,0,null)}resolve(k,S=0){let B=me(Oe.get(this)||this.topNode,k,S,!1);return Oe.set(this,B),B}resolveInner(k,S=0){let B=me(De.get(this)||this.topNode,k,S,!0);return De.set(this,B),B}iterate(k){let{enter:S,leave:B,from:V=0,to:Z=this.length}=k;for(let F=this.cursor(),x=()=>F.node;;){let v=!1;if(F.from<=Z&&F.to>=V&&(F.type.isAnonymous||S(F.type,F.from,F.to,x)!==!1)){if(F.firstChild())continue;F.type.isAnonymous||(v=!0)}for(;v&&B&&B(F.type,F.from,F.to,x),v=F.type.isAnonymous,!F.nextSibling();){if(!F.parent())return;v=!0}}}prop(k){return k.perNode?this.props?this.props[k.id]:void 0:this.type.prop(k)}get propValues(){let k=[];if(this.props)for(let S in this.props)k.push([+S,this.props[S]]);return k}balance(k={}){return this.children.length<=8?this:d(je.none,this.children,this.positions,0,this.children.length,0,this.length,(S,B,V)=>new ve(this.type,S,B,V,this.propValues),k.makeTree||((S,B,V)=>new ve(je.none,S,B,V)))}static build(k){return W(k)}}ve.empty=new ve(je.none,[],[],0);class ue{constructor(k,S){this.buffer=k,this.index=S}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new ue(this.buffer,this.index)}}class Te{constructor(k,S,B){this.buffer=k,this.length=S,this.set=B}get type(){return je.none}toString(){let k=[];for(let S=0;S<this.buffer.length;)k.push(this.childString(S)),S=this.buffer[S+3];return k.join(",")}childString(k){let S=this.buffer[k],B=this.buffer[k+3],V=this.set.types[S],Z=V.name;if(/\W/.test(Z)&&!V.isError&&(Z=JSON.stringify(Z)),k+=4,B==k)return Z;let F=[];for(;k<B;)F.push(this.childString(k)),k=this.buffer[k+3];return Z+"("+F.join(",")+")"}findChild(k,S,B,V,Z){let{buffer:F}=this,x=-1;for(let v=k;v!=S&&!(He(Z,V,F[v+1],F[v+2])&&(x=v,B>0));v=F[v+3]);return x}slice(k,S,B,V){let Z=this.buffer,F=new Uint16Array(S-k);for(let x=k,v=0;x<S;)F[v++]=Z[x++],F[v++]=Z[x++]-B,F[v++]=Z[x++]-B,F[v++]=Z[x++]-k;return new Te(F,V-B,this.set)}}function He(pe,k,S,B){switch(pe){case-2:return S<k;case-1:return B>=k&&S<k;case 0:return S<k&&B>k;case 1:return S<=k&&B>k;case 2:return B>k;case 4:return!0}}function Ee(pe,k){let S=pe.childBefore(k);for(;S;){let B=S.lastChild;if(!B||B.to!=S.to)break;B.type.isError&&B.from==B.to?(pe=S,S=B.prevSibling):S=B}return pe}function me(pe,k,S,B){for(var V;pe.from==pe.to||(S<1?pe.from>=k:pe.from>k)||(S>-1?pe.to<=k:pe.to<k);){let Z=!B&&pe instanceof Ve&&pe.index<0?null:pe.parent;if(!Z)return pe;pe=Z}if(B)for(let Z=pe,F=Z.parent;F;Z=F,F=Z.parent)Z instanceof Ve&&Z.index<0&&((V=F.enter(k,S,!0))===null||V===void 0?void 0:V.from)!=Z.from&&(pe=F);for(;;){let Z=pe.enter(k,S,B);if(!Z)return pe;pe=Z}}class Ve{constructor(k,S,B,V){this.node=k,this._from=S,this.index=B,this._parent=V}get type(){return this.node.type}get name(){return this.node.type.name}get from(){return this._from}get to(){return this._from+this.node.length}nextChild(k,S,B,V,Z=0){for(let F=this;;){for(let{children:x,positions:v}=F.node,E=S>0?x.length:-1;k!=E;k+=S){let G=x[k],le=v[k]+F._from;if(!!He(V,B,le,le+G.length)){if(G instanceof Te){if(Z&2)continue;let Se=G.findChild(0,G.buffer.length,S,B-le,V);if(Se>-1)return new H(new ae(F,G,k,le),null,Se)}else if(Z&1||!G.type.isAnonymous||Y(G)){let Se;if(!(Z&1)&&G.props&&(Se=G.prop(we.mounted))&&!Se.overlay)return new Ve(Se.tree,le,k,F);let Pe=new Ve(G,le,k,F);return Z&1||!Pe.type.isAnonymous?Pe:Pe.nextChild(S<0?G.children.length-1:0,S,B,V)}}}if(Z&1||!F.type.isAnonymous||(F.index>=0?k=F.index+S:k=S<0?-1:F._parent.node.children.length,F=F._parent,!F))return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this.node.children.length-1,-1,0,4)}childAfter(k){return this.nextChild(0,1,k,2)}childBefore(k){return this.nextChild(this.node.children.length-1,-1,k,-2)}enter(k,S,B=!0,V=!0){let Z;if(B&&(Z=this.node.prop(we.mounted))&&Z.overlay){let F=k-this.from;for(let{from:x,to:v}of Z.overlay)if((S>0?x<=F:x<F)&&(S<0?v>=F:v>F))return new Ve(Z.tree,Z.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,k,S,V?0:2)}nextSignificantParent(){let k=this;for(;k.type.isAnonymous&&k._parent;)k=k._parent;return k}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}get cursor(){return new j(this)}get tree(){return this.node}toTree(){return this.node}resolve(k,S=0){return me(this,k,S,!1)}resolveInner(k,S=0){return me(this,k,S,!0)}enterUnfinishedNodesBefore(k){return Ee(this,k)}getChild(k,S=null,B=null){let V=ke(this,k,S,B);return V.length?V[0]:null}getChildren(k,S=null,B=null){return ke(this,k,S,B)}toString(){return this.node.toString()}}function ke(pe,k,S,B){let V=pe.cursor,Z=[];if(!V.firstChild())return Z;if(S!=null){for(;!V.type.is(S);)if(!V.nextSibling())return Z}for(;;){if(B!=null&&V.type.is(B))return Z;if(V.type.is(k)&&Z.push(V.node),!V.nextSibling())return B==null?Z:[]}}class ae{constructor(k,S,B,V){this.parent=k,this.buffer=S,this.index=B,this.start=V}}class H{constructor(k,S,B){this.context=k,this._parent=S,this.index=B,this.type=k.buffer.set.types[k.buffer.buffer[B]]}get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}child(k,S,B){let{buffer:V}=this.context,Z=V.findChild(this.index+4,V.buffer[this.index+3],k,S-this.context.start,B);return Z<0?null:new H(this.context,this,Z)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(k){return this.child(1,k,2)}childBefore(k){return this.child(-1,k,-2)}enter(k,S,B,V=!0){if(!V)return null;let{buffer:Z}=this.context,F=Z.findChild(this.index+4,Z.buffer[this.index+3],S>0?1:-1,k-this.context.start,S);return F<0?null:new H(this.context,this,F)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(k){return this._parent?null:this.context.parent.nextChild(this.context.index+k,k,0,4)}get nextSibling(){let{buffer:k}=this.context,S=k.buffer[this.index+3];return S<(this._parent?k.buffer[this._parent.index+3]:k.buffer.length)?new H(this.context,this._parent,S):this.externalSibling(1)}get prevSibling(){let{buffer:k}=this.context,S=this._parent?this._parent.index+4:0;return this.index==S?this.externalSibling(-1):new H(this.context,this._parent,k.findChild(S,this.index,-1,0,4))}get cursor(){return new j(this)}get tree(){return null}toTree(){let k=[],S=[],{buffer:B}=this.context,V=this.index+4,Z=B.buffer[this.index+3];if(Z>V){let F=B.buffer[this.index+1],x=B.buffer[this.index+2];k.push(B.slice(V,Z,F,x)),S.push(0)}return new ve(this.type,k,S,this.to-this.from)}resolve(k,S=0){return me(this,k,S,!1)}resolveInner(k,S=0){return me(this,k,S,!0)}enterUnfinishedNodesBefore(k){return Ee(this,k)}toString(){return this.context.buffer.childString(this.index)}getChild(k,S=null,B=null){let V=ke(this,k,S,B);return V.length?V[0]:null}getChildren(k,S=null,B=null){return ke(this,k,S,B)}}class j{constructor(k,S=0){if(this.mode=S,this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,k instanceof Ve)this.yieldNode(k);else{this._tree=k.context.parent,this.buffer=k.context;for(let B=k._parent;B;B=B._parent)this.stack.unshift(B.index);this.bufferNode=k,this.yieldBuf(k.index)}}get name(){return this.type.name}yieldNode(k){return k?(this._tree=k,this.type=k.type,this.from=k.from,this.to=k.to,!0):!1}yieldBuf(k,S){this.index=k;let{start:B,buffer:V}=this.buffer;return this.type=S||V.set.types[V.buffer[k]],this.from=B+V.buffer[k+1],this.to=B+V.buffer[k+2],!0}yield(k){return k?k instanceof Ve?(this.buffer=null,this.yieldNode(k)):(this.buffer=k.context,this.yieldBuf(k.index,k.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(k,S,B){if(!this.buffer)return this.yield(this._tree.nextChild(k<0?this._tree.node.children.length-1:0,k,S,B,this.mode));let{buffer:V}=this.buffer,Z=V.findChild(this.index+4,V.buffer[this.index+3],k,S-this.buffer.start,B);return Z<0?!1:(this.stack.push(this.index),this.yieldBuf(Z))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(k){return this.enterChild(1,k,2)}childBefore(k){return this.enterChild(-1,k,-2)}enter(k,S,B=!0,V=!0){return this.buffer?V?this.enterChild(1,k,S):!1:this.yield(this._tree.enter(k,S,B&&!(this.mode&1),V))}parent(){if(!this.buffer)return this.yieldNode(this.mode&1?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let k=this.mode&1?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(k)}sibling(k){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+k,k,0,4,this.mode)):!1;let{buffer:S}=this.buffer,B=this.stack.length-1;if(k<0){let V=B<0?0:this.stack[B]+4;if(this.index!=V)return this.yieldBuf(S.findChild(V,this.index,-1,0,4))}else{let V=S.buffer[this.index+3];if(V<(B<0?S.buffer.length:S.buffer[this.stack[B]+3]))return this.yieldBuf(V)}return B<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+k,k,0,4,this.mode)):!1}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(k){let S,B,{buffer:V}=this;if(V){if(k>0){if(this.index<V.buffer.buffer.length)return!1}else for(let Z=0;Z<this.index;Z++)if(V.buffer.buffer[Z+3]<this.index)return!1;({index:S,parent:B}=V)}else({index:S,_parent:B}=this._tree);for(;B;{index:S,_parent:B}=B)if(S>-1)for(let Z=S+k,F=k<0?-1:B.node.children.length;Z!=F;Z+=k){let x=B.node.children[Z];if(this.mode&1||x instanceof Te||!x.type.isAnonymous||Y(x))return!1}return!0}move(k,S){if(S&&this.enterChild(k,0,4))return!0;for(;;){if(this.sibling(k))return!0;if(this.atLastNode(k)||!this.parent())return!1}}next(k=!0){return this.move(1,k)}prev(k=!0){return this.move(-1,k)}moveTo(k,S=0){for(;(this.from==this.to||(S<1?this.from>=k:this.from>k)||(S>-1?this.to<=k:this.to<k))&&this.parent(););for(;this.enterChild(1,k,S););return this}get node(){if(!this.buffer)return this._tree;let k=this.bufferNode,S=null,B=0;if(k&&k.context==this.buffer){e:for(let V=this.index,Z=this.stack.length;Z>=0;){for(let F=k;F;F=F._parent)if(F.index==V){if(V==this.index)return F;S=F,B=Z+1;break e}V=this.stack[--Z]}}for(let V=B;V<this.stack.length;V++)S=new H(this.buffer,S,this.stack[V]);return this.bufferNode=new H(this.buffer,S,this.index)}get tree(){return this.buffer?null:this._tree.node}}function Y(pe){return pe.children.some(k=>k instanceof Te||!k.type.isAnonymous||Y(k))}function W(pe){var k;let{buffer:S,nodeSet:B,maxBufferLength:V=D,reused:Z=[],minRepeatType:F=B.types.length}=pe,x=Array.isArray(S)?new ue(S,S.length):S,v=B.types,E=0,G=0;function le(K,X,ie,C,A){let{id:N,start:$,end:ee,size:be}=x,Je=G;for(;be<0;)if(x.next(),be==-1){let yt=Z[N];ie.push(yt),C.push($-K);return}else if(be==-3){E=N;return}else if(be==-4){G=N;return}else throw new RangeError(`Unrecognized record size: ${be}`);let Ze=v[N],it,ut,Mt=$-K;if(ee-$<=V&&(ut=ze(x.pos-X,A))){let yt=new Uint16Array(ut.size-ut.skip),pt=x.pos-ut.size,Dt=yt.length;for(;x.pos>pt;)Dt=ot(ut.start,yt,Dt);it=new Te(yt,ee-ut.start,B),Mt=ut.start-K}else{let yt=x.pos-be;x.next();let pt=[],Dt=[],Tt=N>=F?N:-1,Ht=0,Wt=ee;for(;x.pos>yt;)Tt>=0&&x.id==Tt&&x.size>=0?(x.end<=Wt-V&&(Pe(pt,Dt,$,Ht,x.end,Wt,Tt,Je),Ht=pt.length,Wt=x.end),x.next()):le($,yt,pt,Dt,Tt);if(Tt>=0&&Ht>0&&Ht<pt.length&&Pe(pt,Dt,$,Ht,$,Wt,Tt,Je),pt.reverse(),Dt.reverse(),Tt>-1&&Ht>0){let zt=Se(Ze);it=d(Ze,pt,Dt,0,pt.length,0,ee-$,zt,zt)}else it=Ue(Ze,pt,Dt,ee-$,Je-ee)}ie.push(it),C.push(Mt)}function Se(K){return(X,ie,C)=>{let A=0,N=X.length-1,$,ee;if(N>=0&&($=X[N])instanceof ve){if(!N&&$.type==K&&$.length==C)return $;(ee=$.prop(we.lookAhead))&&(A=ie[N]+$.length+ee)}return Ue(K,X,ie,C,A)}}function Pe(K,X,ie,C,A,N,$,ee){let be=[],Je=[];for(;K.length>C;)be.push(K.pop()),Je.push(X.pop()+ie-A);K.push(Ue(B.types[$],be,Je,N-A,ee-N)),X.push(A-ie)}function Ue(K,X,ie,C,A=0,N){if(E){let $=[we.contextHash,E];N=N?[$].concat(N):[$]}if(A>25){let $=[we.lookAhead,A];N=N?[$].concat(N):[$]}return new ve(K,X,ie,C,N)}function ze(K,X){let ie=x.fork(),C=0,A=0,N=0,$=ie.end-V,ee={size:0,start:0,skip:0};e:for(let be=ie.pos-K;ie.pos>be;){let Je=ie.size;if(ie.id==X&&Je>=0){ee.size=C,ee.start=A,ee.skip=N,N+=4,C+=4,ie.next();continue}let Ze=ie.pos-Je;if(Je<0||Ze<be||ie.start<$)break;let it=ie.id>=F?4:0,ut=ie.start;for(ie.next();ie.pos>Ze;){if(ie.size<0)if(ie.size==-3)it+=4;else break e;else ie.id>=F&&(it+=4);ie.next()}A=ut,C+=Je,N+=it}return(X<0||C==K)&&(ee.size=C,ee.start=A,ee.skip=N),ee.size>4?ee:void 0}function ot(K,X,ie){let{id:C,start:A,end:N,size:$}=x;if(x.next(),$>=0&&C<F){let ee=ie;if($>4){let be=x.pos-($-4);for(;x.pos>be;)ie=ot(K,X,ie)}X[--ie]=ee,X[--ie]=N-K,X[--ie]=A-K,X[--ie]=C}else $==-3?E=C:$==-4&&(G=C);return ie}let ne=[],p=[];for(;x.pos>0;)le(pe.start||0,pe.bufferStart||0,ne,p,-1);let M=(k=pe.length)!==null&&k!==void 0?k:ne.length?p[0]+ne[0].length:0;return new ve(v[pe.topID],ne.reverse(),p.reverse(),M)}const Q=new WeakMap;function R(pe,k){if(!pe.isAnonymous||k instanceof Te||k.type!=pe)return 1;let S=Q.get(k);if(S==null){S=1;for(let B of k.children){if(B.type!=pe||!(B instanceof ve)){S=1;break}S+=R(pe,B)}Q.set(k,S)}return S}function d(pe,k,S,B,V,Z,F,x,v){let E=0;for(let Ue=B;Ue<V;Ue++)E+=R(pe,k[Ue]);let G=Math.ceil(E*1.5/8),le=[],Se=[];function Pe(Ue,ze,ot,ne,p){for(let M=ot;M<ne;){let K=M,X=ze[M],ie=R(pe,Ue[M]);for(M++;M<ne;M++){let C=R(pe,Ue[M]);if(ie+C>=G)break;ie+=C}if(M==K+1){if(ie>G){let C=Ue[K];Pe(C.children,C.positions,0,C.children.length,ze[K]+p);continue}le.push(Ue[K])}else{let C=ze[M-1]+Ue[M-1].length-X;le.push(d(pe,Ue,ze,K,M,X,C,null,v))}Se.push(X+p-Z)}}return Pe(k,S,B,V,0),(x||v)(le,Se,F)}class g{constructor(k,S,B,V,Z=!1,F=!1){this.from=k,this.to=S,this.tree=B,this.offset=V,this.open=(Z?1:0)|(F?2:0)}get openStart(){return(this.open&1)>0}get openEnd(){return(this.open&2)>0}static addTree(k,S=[],B=!1){let V=[new g(0,k.length,k,0,!1,B)];for(let Z of S)Z.to>k.length&&V.push(Z);return V}static applyChanges(k,S,B=128){if(!S.length)return k;let V=[],Z=1,F=k.length?k[0]:null;for(let x=0,v=0,E=0;;x++){let G=x<S.length?S[x]:null,le=G?G.fromA:1e9;if(le-v>=B)for(;F&&F.from<le;){let Se=F;if(v>=Se.from||le<=Se.to||E){let Pe=Math.max(Se.from,v)-E,Ue=Math.min(Se.to,le)-E;Se=Pe>=Ue?null:new g(Pe,Ue,Se.tree,Se.offset+E,x>0,!!G)}if(Se&&V.push(Se),F.to>le)break;F=Z<k.length?k[Z++]:null}if(!G)break;v=G.toA,E=G.toA-G.toB}return V}}class O{startParse(k,S,B){return typeof k=="string"&&(k=new w(k)),B=B?B.length?B.map(V=>new ye(V.from,V.to)):[new ye(0,0)]:[new ye(0,k.length)],this.createParse(k,S||[],B)}parse(k,S,B){let V=this.startParse(k,S,B);for(;;){let Z=V.advance();if(Z)return Z}}}class w{constructor(k){this.string=k}get length(){return this.string.length}chunk(k){return this.string.slice(k)}get lineChunks(){return!1}read(k,S){return this.string.slice(k,S)}}function T(pe){return(k,S,B,V)=>new te(k,pe,S,B,V)}class z{constructor(k,S,B,V,Z){this.parser=k,this.parse=S,this.overlay=B,this.target=V,this.ranges=Z}}class _{constructor(k,S,B,V,Z,F,x){this.parser=k,this.predicate=S,this.mounts=B,this.index=V,this.start=Z,this.target=F,this.prev=x,this.depth=0,this.ranges=[]}}const U=new we({perNode:!0});class te{constructor(k,S,B,V,Z){this.nest=S,this.input=B,this.fragments=V,this.ranges=Z,this.inner=[],this.innerDone=0,this.baseTree=null,this.stoppedAt=null,this.baseParse=k}advance(){if(this.baseParse){let B=this.baseParse.advance();if(!B)return null;if(this.baseParse=null,this.baseTree=B,this.startInner(),this.stoppedAt!=null)for(let V of this.inner)V.parse.stopAt(this.stoppedAt)}if(this.innerDone==this.inner.length){let B=this.baseTree;return this.stoppedAt!=null&&(B=new ve(B.type,B.children,B.positions,B.length,B.propValues.concat([[U,this.stoppedAt]]))),B}let k=this.inner[this.innerDone],S=k.parse.advance();if(S){this.innerDone++;let B=Object.assign(Object.create(null),k.target.props);B[we.mounted.id]=new Me(S,k.overlay,k.parser),k.target.props=B}return null}get parsedPos(){if(this.baseParse)return 0;let k=this.input.length;for(let S=this.innerDone;S<this.inner.length;S++)this.inner[S].ranges[0].from<k&&(k=Math.min(k,this.inner[S].parse.parsedPos));return k}stopAt(k){if(this.stoppedAt=k,this.baseParse)this.baseParse.stopAt(k);else for(let S=this.innerDone;S<this.inner.length;S++)this.inner[S].parse.stopAt(k)}startInner(){let k=new et(this.fragments),S=null,B=null,V=new j(new Ve(this.baseTree,this.ranges[0].from,0,null),1);e:for(let Z,F;this.stoppedAt==null||V.from<this.stoppedAt;){let x=!0,v;if(k.hasNode(V)){if(S){let E=S.mounts.find(G=>G.frag.from<=V.from&&G.frag.to>=V.to&&G.mount.overlay);if(E)for(let G of E.mount.overlay){let le=G.from+E.pos,Se=G.to+E.pos;le>=V.from&&Se<=V.to&&S.ranges.push({from:le,to:Se})}}x=!1}else if(B&&(F=ge(B.ranges,V.from,V.to)))x=F!=2;else if(!V.type.isAnonymous&&V.from<V.to&&(Z=this.nest(V,this.input))){V.tree||qe(V);let E=k.findMounts(V.from,Z.parser);if(typeof Z.overlay=="function")S=new _(Z.parser,Z.overlay,E,this.inner.length,V.from,V.tree,S);else{let G=nt(this.ranges,Z.overlay||[new ye(V.from,V.to)]);G.length&&this.inner.push(new z(Z.parser,Z.parser.startParse(this.input,_e(E,G),G),Z.overlay?Z.overlay.map(le=>new ye(le.from-V.from,le.to-V.from)):null,V.tree,G)),Z.overlay?G.length&&(B={ranges:G,depth:0,prev:B}):x=!1}}else S&&(v=S.predicate(V))&&(v===!0&&(v=new ye(V.from,V.to)),v.from<v.to&&S.ranges.push(v));if(x&&V.firstChild())S&&S.depth++,B&&B.depth++;else for(;!V.nextSibling();){if(!V.parent())break e;if(S&&!--S.depth){let E=nt(this.ranges,S.ranges);E.length&&this.inner.splice(S.index,0,new z(S.parser,S.parser.startParse(this.input,_e(S.mounts,E),E),S.ranges.map(G=>new ye(G.from-S.start,G.to-S.start)),S.target,E)),S=S.prev}B&&!--B.depth&&(B=B.prev)}}}}function ge(pe,k,S){for(let B of pe){if(B.from>=S)break;if(B.to>k)return B.from<=k&&B.to>=S?2:1}return 0}function Ae(pe,k,S,B,V,Z){if(k<S){let F=pe.buffer[k+1],x=pe.buffer[S-2];B.push(pe.slice(k,S,F,x)),V.push(F-Z)}}function qe(pe){let{node:k}=pe,S=0;do pe.parent(),S++;while(!pe.tree);let B=0,V=pe.tree,Z=0;for(;Z=V.positions[B]+pe.from,!(Z<=k.from&&Z+V.children[B].length>=k.to);B++);let F=V.children[B],x=F.buffer;function v(E,G,le,Se,Pe){let Ue=E;for(;x[Ue+2]+Z<=k.from;)Ue=x[Ue+3];let ze=[],ot=[];Ae(F,E,Ue,ze,ot,Se);let ne=x[Ue+1],p=x[Ue+2],M=ne+Z==k.from&&p+Z==k.to&&x[Ue]==k.type.id;return ze.push(M?k.toTree():v(Ue+4,x[Ue+3],F.set.types[x[Ue]],ne,p-ne)),ot.push(ne-Se),Ae(F,x[Ue+3],G,ze,ot,Se),new ve(le,ze,ot,Pe)}V.children[B]=v(0,x.length,je.none,0,F.length);for(let E=0;E<=S;E++)pe.childAfter(k.from)}class Ke{constructor(k,S){this.offset=S,this.done=!1,this.cursor=k.fullCursor()}moveTo(k){let{cursor:S}=this,B=k-this.offset;for(;!this.done&&S.from<B;)S.to>=k&&S.enter(B,1,!1,!1)||S.next(!1)||(this.done=!0)}hasNode(k){if(this.moveTo(k.from),!this.done&&this.cursor.from+this.offset==k.from&&this.cursor.tree)for(let S=this.cursor.tree;;){if(S==k.tree)return!0;if(S.children.length&&S.positions[0]==0&&S.children[0]instanceof ve)S=S.children[0];else break}return!1}}class et{constructor(k){var S;if(this.fragments=k,this.curTo=0,this.fragI=0,k.length){let B=this.curFrag=k[0];this.curTo=(S=B.tree.prop(U))!==null&&S!==void 0?S:B.to,this.inner=new Ke(B.tree,-B.offset)}else this.curFrag=this.inner=null}hasNode(k){for(;this.curFrag&&k.from>=this.curTo;)this.nextFrag();return this.curFrag&&this.curFrag.from<=k.from&&this.curTo>=k.to&&this.inner.hasNode(k)}nextFrag(){var k;if(this.fragI++,this.fragI==this.fragments.length)this.curFrag=this.inner=null;else{let S=this.curFrag=this.fragments[this.fragI];this.curTo=(k=S.tree.prop(U))!==null&&k!==void 0?k:S.to,this.inner=new Ke(S.tree,-S.offset)}}findMounts(k,S){var B;let V=[];if(this.inner){this.inner.cursor.moveTo(k,1);for(let Z=this.inner.cursor.node;Z;Z=Z.parent){let F=(B=Z.tree)===null||B===void 0?void 0:B.prop(we.mounted);if(F&&F.parser==S)for(let x=this.fragI;x<this.fragments.length;x++){let v=this.fragments[x];if(v.from>=Z.to)break;v.tree==this.curFrag.tree&&V.push({frag:v,pos:Z.from-v.offset,mount:F})}}}return V}}function nt(pe,k){let S=null,B=k;for(let V=1,Z=0;V<pe.length;V++){let F=pe[V-1].to,x=pe[V].from;for(;Z<B.length;Z++){let v=B[Z];if(v.from>=x)break;v.to<=F||(S||(B=S=k.slice()),v.from<F?(S[Z]=new ye(v.from,F),v.to>x&&S.splice(Z+1,0,new ye(x,v.to))):v.to>x?S[Z--]=new ye(x,v.to):S.splice(Z--,1))}}return B}function at(pe,k,S,B){let V=0,Z=0,F=!1,x=!1,v=-1e9,E=[];for(;;){let G=V==pe.length?1e9:F?pe[V].to:pe[V].from,le=Z==k.length?1e9:x?k[Z].to:k[Z].from;if(F!=x){let Se=Math.max(v,S),Pe=Math.min(G,le,B);Se<Pe&&E.push(new ye(Se,Pe))}if(v=Math.min(G,le),v==1e9)break;G==v&&(F?(F=!1,V++):F=!0),le==v&&(x?(x=!1,Z++):x=!0)}return E}function _e(pe,k){let S=[];for(let{pos:B,mount:V,frag:Z}of pe){let F=B+(V.overlay?V.overlay[0].from:0),x=F+V.tree.length,v=Math.max(Z.from,F),E=Math.min(Z.to,x);if(V.overlay){let G=V.overlay.map(Se=>new ye(Se.from+B,Se.to+B)),le=at(k,G,v,E);for(let Se=0,Pe=v;;Se++){let Ue=Se==le.length,ze=Ue?E:le[Se].from;if(ze>Pe&&S.push(new g(Pe,ze,V.tree,-F,Z.from>=Pe,Z.to<=ze)),Ue)break;Pe=le[Se].to}}else S.push(new g(v,E,V.tree,-F,Z.from>=F,Z.to<=x))}return S}b.DefaultBufferLength=D,b.MountedTree=Me,b.NodeProp=we,b.NodeSet=We,b.NodeType=je,b.Parser=O,b.Tree=ve,b.TreeBuffer=Te,b.TreeCursor=j,b.TreeFragment=g,b.parseMixed=T},{}],29:[function(Re,mt,b){"use strict";function D(){var ye=arguments[0];typeof ye=="string"&&(ye=document.createElement(ye));var we=1,Me=arguments[1];if(Me&&typeof Me=="object"&&Me.nodeType==null&&!Array.isArray(Me)){for(var Xe in Me)if(Object.prototype.hasOwnProperty.call(Me,Xe)){var je=Me[Xe];typeof je=="string"?ye.setAttribute(Xe,je):je!=null&&(ye[Xe]=je)}we++}for(;we<arguments.length;we++)re(ye,arguments[we]);return ye}function re(ye,we){if(typeof we=="string")ye.appendChild(document.createTextNode(we));else if(we!=null)if(we.nodeType!=null)ye.appendChild(we);else if(Array.isArray(we))for(var Me=0;Me<we.length;Me++)re(ye,we[Me]);else throw new RangeError("Unsupported child node: "+we)}mt.exports=D},{}],30:[function(Re,mt,b){var D="\u037C",re=typeof Symbol=="undefined"?"__"+D:Symbol.for(D),ye=typeof Symbol=="undefined"?"__styleSet"+Math.floor(Math.random()*1e8):Symbol("styleSet"),we=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:{},Me=b.StyleModule=function(Oe,De){this.rules=[];var ve=De||{},ue=ve.finish;function Te(me){return/^@/.test(me)?[me]:me.split(/,\s*/)}function He(me,Ve,ke,ae){var H=[],j=/^@(\w+)\b/.exec(me[0]),Y=j&&j[1]=="keyframes";if(j&&Ve==null)return ke.push(me[0]+";");for(var W in Ve){var Q=Ve[W];if(/&/.test(W))He(W.split(/,\s*/).map(function(R){return me.map(function(d){return R.replace(/&/,d)})}).reduce(function(R,d){return R.concat(d)}),Q,ke);else if(Q&&typeof Q=="object"){if(!j)throw new RangeError("The value of a property ("+W+") should be a primitive value.");He(Te(W),Q,H,Y)}else Q!=null&&H.push(W.replace(/_.*/,"").replace(/[A-Z]/g,function(R){return"-"+R.toLowerCase()})+": "+Q+";")}(H.length||Y)&&ke.push((ue&&!j&&!ae?me.map(ue):me).join(", ")+" {"+H.join(" ")+"}")}for(var Ee in Oe)He(Te(Ee),Oe[Ee],this.rules)};Me.prototype.getRules=function(){return this.rules.join(` 13 + `)},Me.newName=function(){var Oe=we[re]||1;return we[re]=Oe+1,D+Oe.toString(36)},Me.mount=function(Oe,De){(Oe[ye]||new je(Oe)).mount(Array.isArray(De)?De:[De])};var Xe=null,je=function(Oe){if(!Oe.head&&Oe.adoptedStyleSheets&&typeof CSSStyleSheet!="undefined"){if(Xe)return Oe.adoptedStyleSheets=[Xe.sheet].concat(Oe.adoptedStyleSheets),Oe[ye]=Xe;this.sheet=new CSSStyleSheet,Oe.adoptedStyleSheets=[this.sheet].concat(Oe.adoptedStyleSheets),Xe=this}else{this.styleTag=(Oe.ownerDocument||Oe).createElement("style");var De=Oe.head||Oe;De.insertBefore(this.styleTag,De.firstChild)}this.modules=[],Oe[ye]=this};je.prototype.mount=function(Oe){for(var De=this.sheet,ve=0,ue=0,Te=0;Te<Oe.length;Te++){var He=Oe[Te],Ee=this.modules.indexOf(He);if(Ee<ue&&Ee>-1&&(this.modules.splice(Ee,1),ue--,Ee=-1),Ee==-1){if(this.modules.splice(ue++,0,He),De)for(var me=0;me<He.rules.length;me++)De.insertRule(He.rules[me],ve++)}else{for(;ue<Ee;)ve+=this.modules[ue++].rules.length;ve+=He.rules.length,ue++}}if(!De){for(var Ve="",ke=0;ke<this.modules.length;ke++)Ve+=this.modules[ke].getRules()+` 14 + `;this.styleTag.textContent=Ve}}},{}],31:[function(Re,mt,b){"use strict";Object.defineProperty(b,"__esModule",{value:!0});for(var D={8:"Backspace",9:"Tab",10:"Enter",12:"NumLock",13:"Enter",16:"Shift",17:"Control",18:"Alt",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",44:"PrintScreen",45:"Insert",46:"Delete",59:";",61:"=",91:"Meta",92:"Meta",106:"*",107:"+",108:",",109:"-",110:".",111:"/",144:"NumLock",145:"ScrollLock",160:"Shift",161:"Shift",162:"Control",163:"Control",164:"Alt",165:"Alt",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'",229:"q"},re={48:")",49:"!",50:"@",51:"#",52:"$",53:"%",54:"^",55:"&",56:"*",57:"(",59:":",61:"+",173:"_",186:":",187:"+",188:"<",189:"_",190:">",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"',229:"Q"},ye=typeof navigator!="undefined"&&/Chrome\/(\d+)/.exec(navigator.userAgent),we=typeof navigator!="undefined"&&/Apple Computer/.test(navigator.vendor),Me=typeof navigator!="undefined"&&/Gecko\/\d+/.test(navigator.userAgent),Xe=typeof navigator!="undefined"&&/Mac/.test(navigator.platform),je=typeof navigator!="undefined"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent),We=ye&&(Xe||+ye[1]<57)||Me&&Xe,Oe=0;Oe<10;Oe++)D[48+Oe]=D[96+Oe]=String(Oe);for(var Oe=1;Oe<=24;Oe++)D[Oe+111]="F"+Oe;for(var Oe=65;Oe<=90;Oe++)D[Oe]=String.fromCharCode(Oe+32),re[Oe]=String.fromCharCode(Oe);for(var De in D)re.hasOwnProperty(De)||(re[De]=D[De]);function ve(ue){var Te=We&&(ue.ctrlKey||ue.altKey||ue.metaKey)||(we||je)&&ue.shiftKey&&ue.key&&ue.key.length==1,He=!Te&&ue.key||(ue.shiftKey?re:D)[ue.keyCode]||ue.key||"Unidentified";return He=="Esc"&&(He="Escape"),He=="Del"&&(He="Delete"),He=="Left"&&(He="ArrowLeft"),He=="Up"&&(He="ArrowUp"),He=="Right"&&(He="ArrowRight"),He=="Down"&&(He="ArrowDown"),He}b.base=D,b.keyName=ve,b.shift=re},{}],32:[function(Re,mt,b){(function(D){(function(){var re={View:Re("@codemirror/basic-setup").EditorView,State:Re("@codemirror/basic-setup").EditorState,lint:Re("@codemirror/lint"),autocomplete:Re("@codemirror/autocomplete"),basicSetup:Re("@codemirror/basic-setup").basicSetup,dark:Re("@codemirror/theme-one-dark"),streamParser:Re("@codemirror/stream-parser"),OCaml:Re("@codemirror/legacy-modes/mode/mllike.cjs").oCaml};D.CodeMirror=re,mt.exports=re}).call(this)}).call(this,typeof global!="undefined"?global:typeof self!="undefined"?self:typeof window!="undefined"?window:{})},{"@codemirror/autocomplete":1,"@codemirror/basic-setup":2,"@codemirror/legacy-modes/mode/mllike.cjs":14,"@codemirror/lint":15,"@codemirror/stream-parser":23,"@codemirror/theme-one-dark":25}]},{},[32])(32)});