diff --git a/README.md b/README.md index c6bbd398..dd1d6c4d 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@
-![Sparo OS](./image/Sparo_title.png) +![Sparo OS](./image/sparo-readme-wordmark.png)
@@ -34,7 +34,7 @@ Technical foundation derived from the upstream [GCWing/BitFun](https://github.co
-![Sparo OS Hero](./image/readme_hero.png) +![Sparo OS Hero](./image/readme_hero.webp) --- diff --git a/README.zh-CN.md b/README.zh-CN.md index 32484596..fd85ad58 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -2,7 +2,7 @@
-![Sparo OS](./image/Sparo_title.png) +![Sparo OS](./image/sparo-readme-wordmark.png)
@@ -35,7 +35,7 @@
-![Sparo OS Hero](./image/readme_hero_CN.png) +![Sparo OS Hero](./image/readme_hero_CN.webp) --- diff --git a/assets/brand/README.md b/assets/brand/README.md new file mode 100644 index 00000000..f2cff6c7 --- /dev/null +++ b/assets/brand/README.md @@ -0,0 +1,66 @@ +# Sparo OS brand assets + +This directory is the single source of truth for Sparo OS brand artwork. + +## Roles + +- The default product logo is the circular material mark derived from `source/sparo-mark-master.png`. +- Launch, dock, taskbar, installer, home-screen, favicon, application-list, and system-tray surfaces use the circular material Logo at every size. +- The `Sparo OS` wordmark is extracted from `reference/sparo-identity-board.png`; it is not recreated with a font or redrawn path. +- Tray artwork uses the complete circular material Logo with its red core. Active states add only a compact semantic badge. The app's compact top-left home control keeps a separate source-derived red-core asset. + +## Canonical inputs + +- `source/sparo-mark-master.png` — user-supplied high-resolution transparent mark master. +- `source/sparo-core-master.png` — user-supplied high-resolution transparent red-core master. +- `reference/sparo-identity-board.png` — approved identity board and wordmark reference. + +The generator removes low-alpha speckles, normalizes the visible mark to a true circular field, tightly crops application and tray icons to the visible circular bounds, preserves material lighting, and creates every product asset deterministically. Brand artwork is PNG-only: do not trace the mark or wordmark into SVG, and do not hand-edit generated copies. + +## Generated outputs + +- `exports/mark/` — responsive circular marks from 16 to 512 px. +- `exports/app-icon/` — edge-fitted circular application icons from 16 to 1024 px, each exported without added transparent padding and with alpha-safe target-size reduction. +- `exports/core/` — target-specific red-core PNGs reserved for compact in-product controls. +- `exports/wordmark/` — globally consistent optically bold primary, reversed, and monochrome wordmarks. +- `exports/lockup/` — horizontal mark-and-wordmark lockups. +- `exports/tray/` — target-specific 16, 20, 24, 32, and 48 px full-Logo tray PNGs, plus light, dark, and semantic state variants. +- `exports/web/` — favicons, Apple touch icon, and Web app icons. +- `qa/` — large-format, small-size, and tray-state review matrices. +- `manifest.json` — source provenance and deterministic product-output hashes. +- `adoption-manifest.json` — hashes of synchronized product copies and platform icon files. + +QA preview boards are review artifacts rather than product inputs. Their labels +use the host font renderer, so checks require the committed PNGs to exist with +the expected dimensions but intentionally omit their byte hashes from the +cross-platform deterministic manifest. + +## Color reference + +- Core Red: `#E53935` +- Warm White: `#F5F2EE` +- Soft Ivory: `#ECE7E1` +- Sand Gray: `#D8D3CC` +- Deep Charcoal: `#1A1A1A` + +The master contains photographic/material variation around these reference colors. Do not flatten its red core or replace its shadows with generic CSS effects. + +## Usage rules + +- Use the circular material Logo for general in-product identity, operating-system application icons, and tray states. Use the red core only for the compact app-chrome home control. +- Use the dedicated 16–64px edge-fitted app-icon exports for taskbars, window icons, favicons, and other compact surfaces instead of relying on operating-system downscaling. +- Use the same canonical primary or reversed wordmark on every product surface, including the boot splash and About dialog. Its neutral strokes are expanded deterministically in the source export while the approved letterforms and red core remain unchanged; do not simulate boldness with CSS or create surface-specific copies. +- Select the nearest generated raster size; never upscale a small copy. Application and tray icons use target-specific alpha-safe reduction with the circular container fitted to all four canvas edges instead of operating-system downscaling of the padded master. +- Use the material mark at 64 px and above. At 16–48 px, use the dedicated target-size PNG. +- Preserve a clear space of at least one red-core radius around standalone marks and lockups. +- Never crop the red core, recolor the material master, add an extra drop shadow, or redraw the geometry. + +## Commands + +```text +pnpm run brand:generate +pnpm run brand:sync +pnpm run brand:check +``` + +`brand:generate` rebuilds the deterministic PNG package. `brand:sync` also copies declared consumers, regenerates desktop/installer platform icons, removes retired vector assets, and records adoption hashes. `brand:check` fails on stale, missing, unmanaged, or legacy brand resources. diff --git a/assets/brand/adoption-manifest.json b/assets/brand/adoption-manifest.json new file mode 100644 index 00000000..6999e723 --- /dev/null +++ b/assets/brand/adoption-manifest.json @@ -0,0 +1,773 @@ +{ + "schemaVersion": 1, + "generatedBy": "pnpm run brand:sync", + "sourceManifestSha256": "d6295853926cce0400be22fc41f7f6caa93d02d616359bed19fe6f3a990b94be", + "configSha256": "b968b24d3485dece1100b13168b83e52e93d47b41c30c6239132e08908fe1f42", + "files": [ + { + "path": "installer/src-tauri/icons/128x128.png", + "bytes": 22999, + "sha256": "76e85fe60cf8d3ebcd1a089771b627806b8281deffb8c697dc47d52ac639432e" + }, + { + "path": "installer/src-tauri/icons/128x128@2x.png", + "bytes": 75057, + "sha256": "a18d68acdf055c735735f58d15a95e59bf8464146028861c8aed2123ae6e5241" + }, + { + "path": "installer/src-tauri/icons/32x32.png", + "bytes": 2395, + "sha256": "f1f2566dfeba2e8593676da2f79587696ac70838dc9391dce676348768bcc808" + }, + { + "path": "installer/src-tauri/icons/64x64.png", + "bytes": 7228, + "sha256": "d2c4c5ca72928ee29f3b6ede38b87af9d519581b0065b7d44e9249c6448848d1" + }, + { + "path": "installer/src-tauri/icons/Square107x107Logo.png", + "bytes": 16914, + "sha256": "b8ea0dc5276770fb2d7665436dd6ffdf3bc1f3df2da0622f3b3258fd2297bf61" + }, + { + "path": "installer/src-tauri/icons/Square142x142Logo.png", + "bytes": 26888, + "sha256": "f63ae5c093caccf98ade422291a3c1f425b6d64260ed3ab38fca8ec426ea5681" + }, + { + "path": "installer/src-tauri/icons/Square150x150Logo.png", + "bytes": 29368, + "sha256": "31f5f5f505afc75891da0b01441e44c2056989034459b99154203094e8874ca8" + }, + { + "path": "installer/src-tauri/icons/Square284x284Logo.png", + "bytes": 87937, + "sha256": "79c8fc7c0fc1907c6e61f35c2e680212bd368c7c77a2da1eae8fe3202e8939c2" + }, + { + "path": "installer/src-tauri/icons/Square30x30Logo.png", + "bytes": 2327, + "sha256": "04aa27294dcae70b5a466befb6991b85a560e85d93439b91c6fbf0187853f05f" + }, + { + "path": "installer/src-tauri/icons/Square310x310Logo.png", + "bytes": 103579, + "sha256": "7ace27c517cbf0a20f03550281d36db3fe0f38423cca9ffad2208b3ab1ffa110" + }, + { + "path": "installer/src-tauri/icons/Square44x44Logo.png", + "bytes": 4361, + "sha256": "ceb53f67fe5a42ad93d80de1525e0422214af302e7049075a64cbc38b2646372" + }, + { + "path": "installer/src-tauri/icons/Square71x71Logo.png", + "bytes": 8661, + "sha256": "2589792c6b966f193c2dee8d9dd59bded04c4cdb98f6177ff54fada83ac928a3" + }, + { + "path": "installer/src-tauri/icons/Square89x89Logo.png", + "bytes": 12476, + "sha256": "2b055cb5c3c3c07b5f98e65116edcf9bd060d094769f1a5dbd0cdd17b1ba1910" + }, + { + "path": "installer/src-tauri/icons/StoreLogo.png", + "bytes": 5188, + "sha256": "e2c2d3335326a8b7ea97af2cd08360bcff2914d6cf0864c506fb56461d9bb817" + }, + { + "path": "installer/src-tauri/icons/android/mipmap-anydpi-v26/ic_launcher.xml", + "bytes": 261, + "sha256": "760d4b8a06bf7163dd010c33ad2cac9e4a75fa0177afaba042f83e311eef0c3e" + }, + { + "path": "installer/src-tauri/icons/android/mipmap-hdpi/ic_launcher.png", + "bytes": 4128, + "sha256": "f7a47ad0933472e6218e1d203c54dfe1c0cb0d8ba030bceb5d9ab6a774e89199" + }, + { + "path": "installer/src-tauri/icons/android/mipmap-hdpi/ic_launcher_foreground.png", + "bytes": 26742, + "sha256": "e44f601d55c965b868272422d07cde0dc67237329369cb60e252100b58c1e2c3" + }, + { + "path": "installer/src-tauri/icons/android/mipmap-hdpi/ic_launcher_round.png", + "bytes": 4128, + "sha256": "f7a47ad0933472e6218e1d203c54dfe1c0cb0d8ba030bceb5d9ab6a774e89199" + }, + { + "path": "installer/src-tauri/icons/android/mipmap-mdpi/ic_launcher.png", + "bytes": 3855, + "sha256": "3d1dff05ffdd4337b8982b4bfce7aef53c4a205227f5e7a73974aab81e422783" + }, + { + "path": "installer/src-tauri/icons/android/mipmap-mdpi/ic_launcher_foreground.png", + "bytes": 13226, + "sha256": "05a4b7bccae17fba2e9f10f02e572e04a4081b3eed5fa47d4d9bae73fe8d07e7" + }, + { + "path": "installer/src-tauri/icons/android/mipmap-mdpi/ic_launcher_round.png", + "bytes": 3855, + "sha256": "3d1dff05ffdd4337b8982b4bfce7aef53c4a205227f5e7a73974aab81e422783" + }, + { + "path": "installer/src-tauri/icons/android/mipmap-xhdpi/ic_launcher.png", + "bytes": 10916, + "sha256": "ab3db37b6e5aede879bf927ea6304294e233b481fb202f78fec9db02aaaa59ad" + }, + { + "path": "installer/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_foreground.png", + "bytes": 44333, + "sha256": "406e7bd86457207167a07bd2568e2915114665df701d65cfa2e43ebe3970d77f" + }, + { + "path": "installer/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_round.png", + "bytes": 10916, + "sha256": "ab3db37b6e5aede879bf927ea6304294e233b481fb202f78fec9db02aaaa59ad" + }, + { + "path": "installer/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher.png", + "bytes": 21787, + "sha256": "023174b84c84a7d12dacd805a113d030960ec77614980271d365ad365e083a7c" + }, + { + "path": "installer/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_foreground.png", + "bytes": 92756, + "sha256": "a6920b81ba4e3c64c7dc4aaba3b7b51ba3159cc46851a3feab653503eb931245" + }, + { + "path": "installer/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_round.png", + "bytes": 21787, + "sha256": "023174b84c84a7d12dacd805a113d030960ec77614980271d365ad365e083a7c" + }, + { + "path": "installer/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher.png", + "bytes": 36148, + "sha256": "0bc97a240d00b1f4e0b623c3d33eb00edea683e7192f2f48fc50a25ab8c31093" + }, + { + "path": "installer/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_foreground.png", + "bytes": 167030, + "sha256": "f3a42f7b7205cc667ff890ee3ce4b2380d817751c0a7b77efa78df85a284715f" + }, + { + "path": "installer/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_round.png", + "bytes": 36148, + "sha256": "0bc97a240d00b1f4e0b623c3d33eb00edea683e7192f2f48fc50a25ab8c31093" + }, + { + "path": "installer/src-tauri/icons/android/values/ic_launcher_background.xml", + "bytes": 118, + "sha256": "cfd1fe5d927768c1684791c0acb0fa62cab2156d009268446f5532756294aa20" + }, + { + "path": "installer/src-tauri/icons/icon.icns", + "bytes": 1418891, + "sha256": "efd1d8bf22a5d2e1a92bf93f4e315022c42d6828dcf045e063ccfece2f2a31d1" + }, + { + "path": "installer/src-tauri/icons/icon.ico", + "bytes": 114681, + "sha256": "b54f4e48202d083a4d4c101418e999fdbf9bc17ab2d789a494841e7a125d7482" + }, + { + "path": "installer/src-tauri/icons/icon.png", + "bytes": 286843, + "sha256": "ee957c7ef29958df5a47290c50e4cc71161d7dcd228c04cf4beb221a271edca2" + }, + { + "path": "installer/src-tauri/icons/ios/AppIcon-20x20@1x.png", + "bytes": 1008, + "sha256": "a2a39dc0772ffc5e8aa5bdc8181b8ac86e8d8a5ab3d0c5e8f806824014f8244d" + }, + { + "path": "installer/src-tauri/icons/ios/AppIcon-20x20@2x-1.png", + "bytes": 3051, + "sha256": "d6cbfe05c02f477d00737f152a4bbe03df94146ef227b885bc7e16f23a4adcfa" + }, + { + "path": "installer/src-tauri/icons/ios/AppIcon-20x20@2x.png", + "bytes": 3051, + "sha256": "d6cbfe05c02f477d00737f152a4bbe03df94146ef227b885bc7e16f23a4adcfa" + }, + { + "path": "installer/src-tauri/icons/ios/AppIcon-20x20@3x.png", + "bytes": 5936, + "sha256": "d0726369fdd5fc4a337006ce14e918b92d0494ea9c29344dffa8526c8b71ed23" + }, + { + "path": "installer/src-tauri/icons/ios/AppIcon-29x29@1x.png", + "bytes": 1789, + "sha256": "f0d5ec605ec54483c5869bc1a2b6eaf6bd284e1013acd0af9f55406b4ae8c351" + }, + { + "path": "installer/src-tauri/icons/ios/AppIcon-29x29@2x-1.png", + "bytes": 5608, + "sha256": "af280c5c0ac4ef04bf2ff249a4939feb03b51ec574f1c84782e4750fa7c1090e" + }, + { + "path": "installer/src-tauri/icons/ios/AppIcon-29x29@2x.png", + "bytes": 5608, + "sha256": "af280c5c0ac4ef04bf2ff249a4939feb03b51ec574f1c84782e4750fa7c1090e" + }, + { + "path": "installer/src-tauri/icons/ios/AppIcon-29x29@3x.png", + "bytes": 9345, + "sha256": "f0d560f35d035bc22adf7e877df9dcb7f696c1ef25bc6ab13bb03a5275da4537" + }, + { + "path": "installer/src-tauri/icons/ios/AppIcon-40x40@1x.png", + "bytes": 3051, + "sha256": "d6cbfe05c02f477d00737f152a4bbe03df94146ef227b885bc7e16f23a4adcfa" + }, + { + "path": "installer/src-tauri/icons/ios/AppIcon-40x40@2x-1.png", + "bytes": 8057, + "sha256": "92e72d0655bbef95409fe120d2f0de29ae129628da9006551891a1cd6619af67" + }, + { + "path": "installer/src-tauri/icons/ios/AppIcon-40x40@2x.png", + "bytes": 8057, + "sha256": "92e72d0655bbef95409fe120d2f0de29ae129628da9006551891a1cd6619af67" + }, + { + "path": "installer/src-tauri/icons/ios/AppIcon-40x40@3x.png", + "bytes": 15964, + "sha256": "fa89bd4d1d57d98a01aa27681a102bd31a610e3e8ec2779953685b74c64c2349" + }, + { + "path": "installer/src-tauri/icons/ios/AppIcon-512@2x.png", + "bytes": 868655, + "sha256": "9e56dc0ac53ee8fde77647e57fe322673fbc5e76205632bd7b3c6aa87343f24d" + }, + { + "path": "installer/src-tauri/icons/ios/AppIcon-60x60@2x.png", + "bytes": 15964, + "sha256": "fa89bd4d1d57d98a01aa27681a102bd31a610e3e8ec2779953685b74c64c2349" + }, + { + "path": "installer/src-tauri/icons/ios/AppIcon-60x60@3x.png", + "bytes": 31778, + "sha256": "9f569deeab77490d2df63ee2a20965bf7b31bd70504a980ee8676c6dbb4548b3" + }, + { + "path": "installer/src-tauri/icons/ios/AppIcon-76x76@1x.png", + "bytes": 7348, + "sha256": "0105d01b2ba4f091d0039385506acd8ade2b31702759ce84abf2fac8daa2a351" + }, + { + "path": "installer/src-tauri/icons/ios/AppIcon-76x76@2x.png", + "bytes": 23983, + "sha256": "0ed26e0918b9e18a36ceffdc55f329610ab1ae029c518964a27b6bad7f6137fb" + }, + { + "path": "installer/src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png", + "bytes": 28253, + "sha256": "0fa0fcaf13711cad20686a8112af1600db69db8184b966efdaa916090cf7da56" + }, + { + "path": "installer/src/assets/brand/sparo-mark-16.png", + "bytes": 793, + "sha256": "17a69d0395848de0a3c5506ea1b7df986949b0596d8652fb607c0a49582ef074" + }, + { + "path": "installer/src/assets/brand/sparo-mark-24.png", + "bytes": 1429, + "sha256": "9be58d8aabb5a18baac37ea92b66f61bd0e530eb345e646068b94aec16b72dbc" + }, + { + "path": "installer/src/assets/brand/sparo-mark-32.png", + "bytes": 2220, + "sha256": "03d12b7f4bd2fe97296c1a28f33d20648ef4a41e1f51eee65c8ef0c0cea4f236" + }, + { + "path": "installer/src/assets/brand/sparo-mark-48.png", + "bytes": 4254, + "sha256": "6bc33619b7b8fc5f359496177d1fe32c29e39f145fd2ef297474350ea16ec81b" + }, + { + "path": "installer/src/assets/brand/sparo-mark-full.png", + "bytes": 237905, + "sha256": "290b3b68a69e4e61f239d88a965f95b1ba55bc52d9704b1b430d178b24bfccdd" + }, + { + "path": "src/apps/desktop/icons/128x128.png", + "bytes": 22999, + "sha256": "76e85fe60cf8d3ebcd1a089771b627806b8281deffb8c697dc47d52ac639432e" + }, + { + "path": "src/apps/desktop/icons/128x128@2x.png", + "bytes": 75057, + "sha256": "a18d68acdf055c735735f58d15a95e59bf8464146028861c8aed2123ae6e5241" + }, + { + "path": "src/apps/desktop/icons/32x32.png", + "bytes": 2395, + "sha256": "f1f2566dfeba2e8593676da2f79587696ac70838dc9391dce676348768bcc808" + }, + { + "path": "src/apps/desktop/icons/64x64.png", + "bytes": 7228, + "sha256": "d2c4c5ca72928ee29f3b6ede38b87af9d519581b0065b7d44e9249c6448848d1" + }, + { + "path": "src/apps/desktop/icons/Square107x107Logo.png", + "bytes": 16914, + "sha256": "b8ea0dc5276770fb2d7665436dd6ffdf3bc1f3df2da0622f3b3258fd2297bf61" + }, + { + "path": "src/apps/desktop/icons/Square142x142Logo.png", + "bytes": 26888, + "sha256": "f63ae5c093caccf98ade422291a3c1f425b6d64260ed3ab38fca8ec426ea5681" + }, + { + "path": "src/apps/desktop/icons/Square150x150Logo.png", + "bytes": 29368, + "sha256": "31f5f5f505afc75891da0b01441e44c2056989034459b99154203094e8874ca8" + }, + { + "path": "src/apps/desktop/icons/Square284x284Logo.png", + "bytes": 87937, + "sha256": "79c8fc7c0fc1907c6e61f35c2e680212bd368c7c77a2da1eae8fe3202e8939c2" + }, + { + "path": "src/apps/desktop/icons/Square30x30Logo.png", + "bytes": 2327, + "sha256": "04aa27294dcae70b5a466befb6991b85a560e85d93439b91c6fbf0187853f05f" + }, + { + "path": "src/apps/desktop/icons/Square310x310Logo.png", + "bytes": 103579, + "sha256": "7ace27c517cbf0a20f03550281d36db3fe0f38423cca9ffad2208b3ab1ffa110" + }, + { + "path": "src/apps/desktop/icons/Square44x44Logo.png", + "bytes": 4361, + "sha256": "ceb53f67fe5a42ad93d80de1525e0422214af302e7049075a64cbc38b2646372" + }, + { + "path": "src/apps/desktop/icons/Square71x71Logo.png", + "bytes": 8661, + "sha256": "2589792c6b966f193c2dee8d9dd59bded04c4cdb98f6177ff54fada83ac928a3" + }, + { + "path": "src/apps/desktop/icons/Square89x89Logo.png", + "bytes": 12476, + "sha256": "2b055cb5c3c3c07b5f98e65116edcf9bd060d094769f1a5dbd0cdd17b1ba1910" + }, + { + "path": "src/apps/desktop/icons/StoreLogo.png", + "bytes": 5188, + "sha256": "e2c2d3335326a8b7ea97af2cd08360bcff2914d6cf0864c506fb56461d9bb817" + }, + { + "path": "src/apps/desktop/icons/android/mipmap-anydpi-v26/ic_launcher.xml", + "bytes": 261, + "sha256": "760d4b8a06bf7163dd010c33ad2cac9e4a75fa0177afaba042f83e311eef0c3e" + }, + { + "path": "src/apps/desktop/icons/android/mipmap-hdpi/ic_launcher.png", + "bytes": 4128, + "sha256": "f7a47ad0933472e6218e1d203c54dfe1c0cb0d8ba030bceb5d9ab6a774e89199" + }, + { + "path": "src/apps/desktop/icons/android/mipmap-hdpi/ic_launcher_foreground.png", + "bytes": 26742, + "sha256": "e44f601d55c965b868272422d07cde0dc67237329369cb60e252100b58c1e2c3" + }, + { + "path": "src/apps/desktop/icons/android/mipmap-hdpi/ic_launcher_round.png", + "bytes": 4128, + "sha256": "f7a47ad0933472e6218e1d203c54dfe1c0cb0d8ba030bceb5d9ab6a774e89199" + }, + { + "path": "src/apps/desktop/icons/android/mipmap-mdpi/ic_launcher.png", + "bytes": 3855, + "sha256": "3d1dff05ffdd4337b8982b4bfce7aef53c4a205227f5e7a73974aab81e422783" + }, + { + "path": "src/apps/desktop/icons/android/mipmap-mdpi/ic_launcher_foreground.png", + "bytes": 13226, + "sha256": "05a4b7bccae17fba2e9f10f02e572e04a4081b3eed5fa47d4d9bae73fe8d07e7" + }, + { + "path": "src/apps/desktop/icons/android/mipmap-mdpi/ic_launcher_round.png", + "bytes": 3855, + "sha256": "3d1dff05ffdd4337b8982b4bfce7aef53c4a205227f5e7a73974aab81e422783" + }, + { + "path": "src/apps/desktop/icons/android/mipmap-xhdpi/ic_launcher.png", + "bytes": 10916, + "sha256": "ab3db37b6e5aede879bf927ea6304294e233b481fb202f78fec9db02aaaa59ad" + }, + { + "path": "src/apps/desktop/icons/android/mipmap-xhdpi/ic_launcher_foreground.png", + "bytes": 44333, + "sha256": "406e7bd86457207167a07bd2568e2915114665df701d65cfa2e43ebe3970d77f" + }, + { + "path": "src/apps/desktop/icons/android/mipmap-xhdpi/ic_launcher_round.png", + "bytes": 10916, + "sha256": "ab3db37b6e5aede879bf927ea6304294e233b481fb202f78fec9db02aaaa59ad" + }, + { + "path": "src/apps/desktop/icons/android/mipmap-xxhdpi/ic_launcher.png", + "bytes": 21787, + "sha256": "023174b84c84a7d12dacd805a113d030960ec77614980271d365ad365e083a7c" + }, + { + "path": "src/apps/desktop/icons/android/mipmap-xxhdpi/ic_launcher_foreground.png", + "bytes": 92756, + "sha256": "a6920b81ba4e3c64c7dc4aaba3b7b51ba3159cc46851a3feab653503eb931245" + }, + { + "path": "src/apps/desktop/icons/android/mipmap-xxhdpi/ic_launcher_round.png", + "bytes": 21787, + "sha256": "023174b84c84a7d12dacd805a113d030960ec77614980271d365ad365e083a7c" + }, + { + "path": "src/apps/desktop/icons/android/mipmap-xxxhdpi/ic_launcher.png", + "bytes": 36148, + "sha256": "0bc97a240d00b1f4e0b623c3d33eb00edea683e7192f2f48fc50a25ab8c31093" + }, + { + "path": "src/apps/desktop/icons/android/mipmap-xxxhdpi/ic_launcher_foreground.png", + "bytes": 167030, + "sha256": "f3a42f7b7205cc667ff890ee3ce4b2380d817751c0a7b77efa78df85a284715f" + }, + { + "path": "src/apps/desktop/icons/android/mipmap-xxxhdpi/ic_launcher_round.png", + "bytes": 36148, + "sha256": "0bc97a240d00b1f4e0b623c3d33eb00edea683e7192f2f48fc50a25ab8c31093" + }, + { + "path": "src/apps/desktop/icons/android/values/ic_launcher_background.xml", + "bytes": 118, + "sha256": "cfd1fe5d927768c1684791c0acb0fa62cab2156d009268446f5532756294aa20" + }, + { + "path": "src/apps/desktop/icons/hicolor/128x128/apps/sparo-os.png", + "bytes": 22999, + "sha256": "76e85fe60cf8d3ebcd1a089771b627806b8281deffb8c697dc47d52ac639432e" + }, + { + "path": "src/apps/desktop/icons/hicolor/16x16/apps/sparo-os.png", + "bytes": 813, + "sha256": "81321112286d69c31a13b99a10ba3e3248cc305774cf6f4e4858263851bef83f" + }, + { + "path": "src/apps/desktop/icons/hicolor/256x256/apps/sparo-os.png", + "bytes": 75057, + "sha256": "a18d68acdf055c735735f58d15a95e59bf8464146028861c8aed2123ae6e5241" + }, + { + "path": "src/apps/desktop/icons/hicolor/32x32/apps/sparo-os.png", + "bytes": 2395, + "sha256": "f1f2566dfeba2e8593676da2f79587696ac70838dc9391dce676348768bcc808" + }, + { + "path": "src/apps/desktop/icons/hicolor/48x48/apps/sparo-os.png", + "bytes": 4554, + "sha256": "b57e8dc54b97d931844d6d4b358f9d2963c427fac9b36a5c8a875e335d90426d" + }, + { + "path": "src/apps/desktop/icons/hicolor/512x512/apps/sparo-os.png", + "bytes": 286843, + "sha256": "ee957c7ef29958df5a47290c50e4cc71161d7dcd228c04cf4beb221a271edca2" + }, + { + "path": "src/apps/desktop/icons/hicolor/64x64/apps/sparo-os.png", + "bytes": 7228, + "sha256": "d2c4c5ca72928ee29f3b6ede38b87af9d519581b0065b7d44e9249c6448848d1" + }, + { + "path": "src/apps/desktop/icons/hicolor/96x96/apps/sparo-os.png", + "bytes": 14197, + "sha256": "8b5594005c89ed50a14e663f0b7e1aca41160db7f510bdaec940c8cfc0489a1a" + }, + { + "path": "src/apps/desktop/icons/icon.icns", + "bytes": 1418891, + "sha256": "dcd23153b7157f2db0d7f4aa8c002be5269fe047f8cd2b774b753adc680bc14b" + }, + { + "path": "src/apps/desktop/icons/icon.ico", + "bytes": 114681, + "sha256": "b54f4e48202d083a4d4c101418e999fdbf9bc17ab2d789a494841e7a125d7482" + }, + { + "path": "src/apps/desktop/icons/icon.png", + "bytes": 286843, + "sha256": "ee957c7ef29958df5a47290c50e4cc71161d7dcd228c04cf4beb221a271edca2" + }, + { + "path": "src/apps/desktop/icons/ios/AppIcon-20x20@1x.png", + "bytes": 1008, + "sha256": "a2a39dc0772ffc5e8aa5bdc8181b8ac86e8d8a5ab3d0c5e8f806824014f8244d" + }, + { + "path": "src/apps/desktop/icons/ios/AppIcon-20x20@2x-1.png", + "bytes": 3051, + "sha256": "d6cbfe05c02f477d00737f152a4bbe03df94146ef227b885bc7e16f23a4adcfa" + }, + { + "path": "src/apps/desktop/icons/ios/AppIcon-20x20@2x.png", + "bytes": 3051, + "sha256": "d6cbfe05c02f477d00737f152a4bbe03df94146ef227b885bc7e16f23a4adcfa" + }, + { + "path": "src/apps/desktop/icons/ios/AppIcon-20x20@3x.png", + "bytes": 5936, + "sha256": "d0726369fdd5fc4a337006ce14e918b92d0494ea9c29344dffa8526c8b71ed23" + }, + { + "path": "src/apps/desktop/icons/ios/AppIcon-29x29@1x.png", + "bytes": 1789, + "sha256": "f0d5ec605ec54483c5869bc1a2b6eaf6bd284e1013acd0af9f55406b4ae8c351" + }, + { + "path": "src/apps/desktop/icons/ios/AppIcon-29x29@2x-1.png", + "bytes": 5608, + "sha256": "af280c5c0ac4ef04bf2ff249a4939feb03b51ec574f1c84782e4750fa7c1090e" + }, + { + "path": "src/apps/desktop/icons/ios/AppIcon-29x29@2x.png", + "bytes": 5608, + "sha256": "af280c5c0ac4ef04bf2ff249a4939feb03b51ec574f1c84782e4750fa7c1090e" + }, + { + "path": "src/apps/desktop/icons/ios/AppIcon-29x29@3x.png", + "bytes": 9345, + "sha256": "f0d560f35d035bc22adf7e877df9dcb7f696c1ef25bc6ab13bb03a5275da4537" + }, + { + "path": "src/apps/desktop/icons/ios/AppIcon-40x40@1x.png", + "bytes": 3051, + "sha256": "d6cbfe05c02f477d00737f152a4bbe03df94146ef227b885bc7e16f23a4adcfa" + }, + { + "path": "src/apps/desktop/icons/ios/AppIcon-40x40@2x-1.png", + "bytes": 8057, + "sha256": "92e72d0655bbef95409fe120d2f0de29ae129628da9006551891a1cd6619af67" + }, + { + "path": "src/apps/desktop/icons/ios/AppIcon-40x40@2x.png", + "bytes": 8057, + "sha256": "92e72d0655bbef95409fe120d2f0de29ae129628da9006551891a1cd6619af67" + }, + { + "path": "src/apps/desktop/icons/ios/AppIcon-40x40@3x.png", + "bytes": 15964, + "sha256": "fa89bd4d1d57d98a01aa27681a102bd31a610e3e8ec2779953685b74c64c2349" + }, + { + "path": "src/apps/desktop/icons/ios/AppIcon-512@2x.png", + "bytes": 868655, + "sha256": "9e56dc0ac53ee8fde77647e57fe322673fbc5e76205632bd7b3c6aa87343f24d" + }, + { + "path": "src/apps/desktop/icons/ios/AppIcon-60x60@2x.png", + "bytes": 15964, + "sha256": "fa89bd4d1d57d98a01aa27681a102bd31a610e3e8ec2779953685b74c64c2349" + }, + { + "path": "src/apps/desktop/icons/ios/AppIcon-60x60@3x.png", + "bytes": 31778, + "sha256": "9f569deeab77490d2df63ee2a20965bf7b31bd70504a980ee8676c6dbb4548b3" + }, + { + "path": "src/apps/desktop/icons/ios/AppIcon-76x76@1x.png", + "bytes": 7348, + "sha256": "0105d01b2ba4f091d0039385506acd8ade2b31702759ce84abf2fac8daa2a351" + }, + { + "path": "src/apps/desktop/icons/ios/AppIcon-76x76@2x.png", + "bytes": 23983, + "sha256": "0ed26e0918b9e18a36ceffdc55f329610ab1ae029c518964a27b6bad7f6137fb" + }, + { + "path": "src/apps/desktop/icons/ios/AppIcon-83.5x83.5@2x.png", + "bytes": 28253, + "sha256": "0fa0fcaf13711cad20686a8112af1600db69db8184b966efdaa916090cf7da56" + }, + { + "path": "src/apps/desktop/icons/tray/tray-error.png", + "bytes": 2359, + "sha256": "f8262c27dbd553f84a4648aaf037f208598926d349993a1e9670d517f1dcbc26" + }, + { + "path": "src/apps/desktop/icons/tray/tray-idle.png", + "bytes": 2395, + "sha256": "f1f2566dfeba2e8593676da2f79587696ac70838dc9391dce676348768bcc808" + }, + { + "path": "src/apps/desktop/icons/tray/tray-running.png", + "bytes": 2360, + "sha256": "8d6c230705373932a75184280d07152dedca28c215c0810e3f710a93f2b899b5" + }, + { + "path": "src/apps/desktop/icons/tray/tray-waiting.png", + "bytes": 2357, + "sha256": "793bf22cf7d1dde92affdbfba7a9deeea6278564c450cc5d63edd38da5e9d2ad" + }, + { + "path": "src/apps/relay-server/static/brand/app-icon-180.png", + "bytes": 39902, + "sha256": "9d5507571b8b6ffb547842f7e75d19aa36abe5e278870c596cd7430359ccfa46" + }, + { + "path": "src/apps/relay-server/static/brand/favicon-32.png", + "bytes": 2395, + "sha256": "f1f2566dfeba2e8593676da2f79587696ac70838dc9391dce676348768bcc808" + }, + { + "path": "src/apps/relay-server/static/brand/sparo-mark-16.png", + "bytes": 793, + "sha256": "17a69d0395848de0a3c5506ea1b7df986949b0596d8652fb607c0a49582ef074" + }, + { + "path": "src/apps/relay-server/static/brand/sparo-mark-24.png", + "bytes": 1429, + "sha256": "9be58d8aabb5a18baac37ea92b66f61bd0e530eb345e646068b94aec16b72dbc" + }, + { + "path": "src/apps/relay-server/static/brand/sparo-mark-32.png", + "bytes": 2220, + "sha256": "03d12b7f4bd2fe97296c1a28f33d20648ef4a41e1f51eee65c8ef0c0cea4f236" + }, + { + "path": "src/apps/relay-server/static/brand/sparo-mark-48.png", + "bytes": 4254, + "sha256": "6bc33619b7b8fc5f359496177d1fe32c29e39f145fd2ef297474350ea16ec81b" + }, + { + "path": "src/apps/relay-server/static/brand/sparo-mark-full.png", + "bytes": 237905, + "sha256": "290b3b68a69e4e61f239d88a965f95b1ba55bc52d9704b1b430d178b24bfccdd" + }, + { + "path": "src/mobile-web/public/brand/app-icon-180.png", + "bytes": 39902, + "sha256": "9d5507571b8b6ffb547842f7e75d19aa36abe5e278870c596cd7430359ccfa46" + }, + { + "path": "src/mobile-web/public/brand/favicon-32.png", + "bytes": 2395, + "sha256": "f1f2566dfeba2e8593676da2f79587696ac70838dc9391dce676348768bcc808" + }, + { + "path": "src/mobile-web/public/brand/sparo-mark-16.png", + "bytes": 793, + "sha256": "17a69d0395848de0a3c5506ea1b7df986949b0596d8652fb607c0a49582ef074" + }, + { + "path": "src/mobile-web/public/brand/sparo-mark-24.png", + "bytes": 1429, + "sha256": "9be58d8aabb5a18baac37ea92b66f61bd0e530eb345e646068b94aec16b72dbc" + }, + { + "path": "src/mobile-web/public/brand/sparo-mark-32.png", + "bytes": 2220, + "sha256": "03d12b7f4bd2fe97296c1a28f33d20648ef4a41e1f51eee65c8ef0c0cea4f236" + }, + { + "path": "src/mobile-web/public/brand/sparo-mark-48.png", + "bytes": 4254, + "sha256": "6bc33619b7b8fc5f359496177d1fe32c29e39f145fd2ef297474350ea16ec81b" + }, + { + "path": "src/mobile-web/public/brand/sparo-mark-full.png", + "bytes": 237905, + "sha256": "290b3b68a69e4e61f239d88a965f95b1ba55bc52d9704b1b430d178b24bfccdd" + }, + { + "path": "src/web-ui/public/brand/app-icon-512.png", + "bytes": 286830, + "sha256": "f453249bbc010d885cac92f94c9f236cd8cf63b1057d90a175afb142bd11500d" + }, + { + "path": "src/web-ui/public/brand/favicon-32.png", + "bytes": 2395, + "sha256": "f1f2566dfeba2e8593676da2f79587696ac70838dc9391dce676348768bcc808" + }, + { + "path": "src/web-ui/public/brand/sparo-mark-256.png", + "bytes": 66587, + "sha256": "f1869e6ae634eaf53dc49e44d96b6fd838c8648892687b25e490fff33a371835" + }, + { + "path": "src/web-ui/public/brand/sparo-mark-full.png", + "bytes": 237905, + "sha256": "290b3b68a69e4e61f239d88a965f95b1ba55bc52d9704b1b430d178b24bfccdd" + }, + { + "path": "src/web-ui/public/brand/sparo-wordmark-primary.png", + "bytes": 34510, + "sha256": "ac61b6608967a896889ef42eed5fcb838c258fbce0bee984a7746d149db5c4c3" + }, + { + "path": "src/web-ui/public/brand/sparo-wordmark-reversed.png", + "bytes": 34511, + "sha256": "772b0f73821ba015ae6b3f37cfbbdb897fd4db07b504d5fdf70062cf5c207348" + }, + { + "path": "src/web-ui/src/design-system/foundation/brand/sparo-app-icon-32.png", + "bytes": 2395, + "sha256": "f1f2566dfeba2e8593676da2f79587696ac70838dc9391dce676348768bcc808" + }, + { + "path": "src/web-ui/src/design-system/foundation/brand/sparo-core-16.png", + "bytes": 583, + "sha256": "d8c56ce81f3e842aa9dded49b862b052d82ce3fb3f40d9364c0dae4aae4de9ac" + }, + { + "path": "src/web-ui/src/design-system/foundation/brand/sparo-core-20.png", + "bytes": 817, + "sha256": "0a8dcd51fd7be98662cb0a61557ded28dda83a3b5169909978a1ec1f021df3c7" + }, + { + "path": "src/web-ui/src/design-system/foundation/brand/sparo-core-24.png", + "bytes": 1010, + "sha256": "ed51d728c8b6dfad5353b57bbea5ef1e04f6a97d7f8f3417ded98c323f375236" + }, + { + "path": "src/web-ui/src/design-system/foundation/brand/sparo-core-32.png", + "bytes": 1490, + "sha256": "d5b8e8716df53caac81df865cfbb9262dd525b52923090e233cf1470ec6ee3bc" + }, + { + "path": "src/web-ui/src/design-system/foundation/brand/sparo-core-48.png", + "bytes": 2721, + "sha256": "cc42a80faeb9e22ca8fea8971bc350caac29ea0c673a420a3c176e4f8c8f5367" + }, + { + "path": "src/web-ui/src/design-system/foundation/brand/sparo-mark-16.png", + "bytes": 793, + "sha256": "17a69d0395848de0a3c5506ea1b7df986949b0596d8652fb607c0a49582ef074" + }, + { + "path": "src/web-ui/src/design-system/foundation/brand/sparo-mark-24.png", + "bytes": 1429, + "sha256": "9be58d8aabb5a18baac37ea92b66f61bd0e530eb345e646068b94aec16b72dbc" + }, + { + "path": "src/web-ui/src/design-system/foundation/brand/sparo-mark-256.png", + "bytes": 66587, + "sha256": "f1869e6ae634eaf53dc49e44d96b6fd838c8648892687b25e490fff33a371835" + }, + { + "path": "src/web-ui/src/design-system/foundation/brand/sparo-mark-32.png", + "bytes": 2220, + "sha256": "03d12b7f4bd2fe97296c1a28f33d20648ef4a41e1f51eee65c8ef0c0cea4f236" + }, + { + "path": "src/web-ui/src/design-system/foundation/brand/sparo-mark-48.png", + "bytes": 4254, + "sha256": "6bc33619b7b8fc5f359496177d1fe32c29e39f145fd2ef297474350ea16ec81b" + }, + { + "path": "src/web-ui/src/design-system/foundation/brand/sparo-mark-full.png", + "bytes": 237905, + "sha256": "290b3b68a69e4e61f239d88a965f95b1ba55bc52d9704b1b430d178b24bfccdd" + } + ] +} diff --git a/assets/brand/exports/app-icon/sparo-app-icon-1024.png b/assets/brand/exports/app-icon/sparo-app-icon-1024.png new file mode 100644 index 00000000..20c674d3 Binary files /dev/null and b/assets/brand/exports/app-icon/sparo-app-icon-1024.png differ diff --git a/assets/brand/exports/app-icon/sparo-app-icon-128.png b/assets/brand/exports/app-icon/sparo-app-icon-128.png new file mode 100644 index 00000000..7895d648 Binary files /dev/null and b/assets/brand/exports/app-icon/sparo-app-icon-128.png differ diff --git a/assets/brand/exports/app-icon/sparo-app-icon-16.png b/assets/brand/exports/app-icon/sparo-app-icon-16.png new file mode 100644 index 00000000..0e7ccb52 Binary files /dev/null and b/assets/brand/exports/app-icon/sparo-app-icon-16.png differ diff --git a/assets/brand/exports/app-icon/sparo-app-icon-24.png b/assets/brand/exports/app-icon/sparo-app-icon-24.png new file mode 100644 index 00000000..15c2fb89 Binary files /dev/null and b/assets/brand/exports/app-icon/sparo-app-icon-24.png differ diff --git a/assets/brand/exports/app-icon/sparo-app-icon-256.png b/assets/brand/exports/app-icon/sparo-app-icon-256.png new file mode 100644 index 00000000..5a0c0e81 Binary files /dev/null and b/assets/brand/exports/app-icon/sparo-app-icon-256.png differ diff --git a/assets/brand/exports/app-icon/sparo-app-icon-32.png b/assets/brand/exports/app-icon/sparo-app-icon-32.png new file mode 100644 index 00000000..2f5e44f9 Binary files /dev/null and b/assets/brand/exports/app-icon/sparo-app-icon-32.png differ diff --git a/assets/brand/exports/app-icon/sparo-app-icon-48.png b/assets/brand/exports/app-icon/sparo-app-icon-48.png new file mode 100644 index 00000000..3a8be1f4 Binary files /dev/null and b/assets/brand/exports/app-icon/sparo-app-icon-48.png differ diff --git a/assets/brand/exports/app-icon/sparo-app-icon-512.png b/assets/brand/exports/app-icon/sparo-app-icon-512.png new file mode 100644 index 00000000..c9cd4a69 Binary files /dev/null and b/assets/brand/exports/app-icon/sparo-app-icon-512.png differ diff --git a/assets/brand/exports/app-icon/sparo-app-icon-64.png b/assets/brand/exports/app-icon/sparo-app-icon-64.png new file mode 100644 index 00000000..5b7a72cc Binary files /dev/null and b/assets/brand/exports/app-icon/sparo-app-icon-64.png differ diff --git a/assets/brand/exports/core/sparo-core-16.png b/assets/brand/exports/core/sparo-core-16.png new file mode 100644 index 00000000..b9f45ded Binary files /dev/null and b/assets/brand/exports/core/sparo-core-16.png differ diff --git a/assets/brand/exports/core/sparo-core-20.png b/assets/brand/exports/core/sparo-core-20.png new file mode 100644 index 00000000..6337d009 Binary files /dev/null and b/assets/brand/exports/core/sparo-core-20.png differ diff --git a/assets/brand/exports/core/sparo-core-24.png b/assets/brand/exports/core/sparo-core-24.png new file mode 100644 index 00000000..27852d0d Binary files /dev/null and b/assets/brand/exports/core/sparo-core-24.png differ diff --git a/assets/brand/exports/core/sparo-core-32.png b/assets/brand/exports/core/sparo-core-32.png new file mode 100644 index 00000000..f5eb3acd Binary files /dev/null and b/assets/brand/exports/core/sparo-core-32.png differ diff --git a/assets/brand/exports/core/sparo-core-48.png b/assets/brand/exports/core/sparo-core-48.png new file mode 100644 index 00000000..5301c09b Binary files /dev/null and b/assets/brand/exports/core/sparo-core-48.png differ diff --git a/assets/brand/exports/lockup/sparo-lockup-horizontal-mono.png b/assets/brand/exports/lockup/sparo-lockup-horizontal-mono.png new file mode 100644 index 00000000..75f6ead3 Binary files /dev/null and b/assets/brand/exports/lockup/sparo-lockup-horizontal-mono.png differ diff --git a/assets/brand/exports/lockup/sparo-lockup-horizontal-primary.png b/assets/brand/exports/lockup/sparo-lockup-horizontal-primary.png new file mode 100644 index 00000000..4521468c Binary files /dev/null and b/assets/brand/exports/lockup/sparo-lockup-horizontal-primary.png differ diff --git a/assets/brand/exports/lockup/sparo-lockup-horizontal-reversed.png b/assets/brand/exports/lockup/sparo-lockup-horizontal-reversed.png new file mode 100644 index 00000000..d45f8675 Binary files /dev/null and b/assets/brand/exports/lockup/sparo-lockup-horizontal-reversed.png differ diff --git a/assets/brand/exports/mark/sparo-mark-128.png b/assets/brand/exports/mark/sparo-mark-128.png new file mode 100644 index 00000000..f456853c Binary files /dev/null and b/assets/brand/exports/mark/sparo-mark-128.png differ diff --git a/assets/brand/exports/mark/sparo-mark-16.png b/assets/brand/exports/mark/sparo-mark-16.png new file mode 100644 index 00000000..436e8c9f Binary files /dev/null and b/assets/brand/exports/mark/sparo-mark-16.png differ diff --git a/assets/brand/exports/mark/sparo-mark-24.png b/assets/brand/exports/mark/sparo-mark-24.png new file mode 100644 index 00000000..b3e6726f Binary files /dev/null and b/assets/brand/exports/mark/sparo-mark-24.png differ diff --git a/assets/brand/exports/mark/sparo-mark-256.png b/assets/brand/exports/mark/sparo-mark-256.png new file mode 100644 index 00000000..aee2c85c Binary files /dev/null and b/assets/brand/exports/mark/sparo-mark-256.png differ diff --git a/assets/brand/exports/mark/sparo-mark-32.png b/assets/brand/exports/mark/sparo-mark-32.png new file mode 100644 index 00000000..4078a327 Binary files /dev/null and b/assets/brand/exports/mark/sparo-mark-32.png differ diff --git a/assets/brand/exports/mark/sparo-mark-48.png b/assets/brand/exports/mark/sparo-mark-48.png new file mode 100644 index 00000000..5ae20c02 Binary files /dev/null and b/assets/brand/exports/mark/sparo-mark-48.png differ diff --git a/assets/brand/exports/mark/sparo-mark-512.png b/assets/brand/exports/mark/sparo-mark-512.png new file mode 100644 index 00000000..275ec993 Binary files /dev/null and b/assets/brand/exports/mark/sparo-mark-512.png differ diff --git a/assets/brand/exports/mark/sparo-mark-64.png b/assets/brand/exports/mark/sparo-mark-64.png new file mode 100644 index 00000000..17158d09 Binary files /dev/null and b/assets/brand/exports/mark/sparo-mark-64.png differ diff --git a/assets/brand/exports/tray/sparo-tray-16-dark.png b/assets/brand/exports/tray/sparo-tray-16-dark.png new file mode 100644 index 00000000..0e7ccb52 Binary files /dev/null and b/assets/brand/exports/tray/sparo-tray-16-dark.png differ diff --git a/assets/brand/exports/tray/sparo-tray-16-light.png b/assets/brand/exports/tray/sparo-tray-16-light.png new file mode 100644 index 00000000..0e7ccb52 Binary files /dev/null and b/assets/brand/exports/tray/sparo-tray-16-light.png differ diff --git a/assets/brand/exports/tray/sparo-tray-20-dark.png b/assets/brand/exports/tray/sparo-tray-20-dark.png new file mode 100644 index 00000000..fe2e7c57 Binary files /dev/null and b/assets/brand/exports/tray/sparo-tray-20-dark.png differ diff --git a/assets/brand/exports/tray/sparo-tray-20-light.png b/assets/brand/exports/tray/sparo-tray-20-light.png new file mode 100644 index 00000000..fe2e7c57 Binary files /dev/null and b/assets/brand/exports/tray/sparo-tray-20-light.png differ diff --git a/assets/brand/exports/tray/sparo-tray-24-dark.png b/assets/brand/exports/tray/sparo-tray-24-dark.png new file mode 100644 index 00000000..15c2fb89 Binary files /dev/null and b/assets/brand/exports/tray/sparo-tray-24-dark.png differ diff --git a/assets/brand/exports/tray/sparo-tray-24-light.png b/assets/brand/exports/tray/sparo-tray-24-light.png new file mode 100644 index 00000000..15c2fb89 Binary files /dev/null and b/assets/brand/exports/tray/sparo-tray-24-light.png differ diff --git a/assets/brand/exports/tray/sparo-tray-32-dark.png b/assets/brand/exports/tray/sparo-tray-32-dark.png new file mode 100644 index 00000000..2f5e44f9 Binary files /dev/null and b/assets/brand/exports/tray/sparo-tray-32-dark.png differ diff --git a/assets/brand/exports/tray/sparo-tray-32-light.png b/assets/brand/exports/tray/sparo-tray-32-light.png new file mode 100644 index 00000000..2f5e44f9 Binary files /dev/null and b/assets/brand/exports/tray/sparo-tray-32-light.png differ diff --git a/assets/brand/exports/tray/sparo-tray-48-dark.png b/assets/brand/exports/tray/sparo-tray-48-dark.png new file mode 100644 index 00000000..3a8be1f4 Binary files /dev/null and b/assets/brand/exports/tray/sparo-tray-48-dark.png differ diff --git a/assets/brand/exports/tray/sparo-tray-48-light.png b/assets/brand/exports/tray/sparo-tray-48-light.png new file mode 100644 index 00000000..3a8be1f4 Binary files /dev/null and b/assets/brand/exports/tray/sparo-tray-48-light.png differ diff --git a/assets/brand/exports/tray/sparo-tray-error.png b/assets/brand/exports/tray/sparo-tray-error.png new file mode 100644 index 00000000..38183031 Binary files /dev/null and b/assets/brand/exports/tray/sparo-tray-error.png differ diff --git a/assets/brand/exports/tray/sparo-tray-idle-16.png b/assets/brand/exports/tray/sparo-tray-idle-16.png new file mode 100644 index 00000000..0e7ccb52 Binary files /dev/null and b/assets/brand/exports/tray/sparo-tray-idle-16.png differ diff --git a/assets/brand/exports/tray/sparo-tray-idle-20.png b/assets/brand/exports/tray/sparo-tray-idle-20.png new file mode 100644 index 00000000..fe2e7c57 Binary files /dev/null and b/assets/brand/exports/tray/sparo-tray-idle-20.png differ diff --git a/assets/brand/exports/tray/sparo-tray-idle-24.png b/assets/brand/exports/tray/sparo-tray-idle-24.png new file mode 100644 index 00000000..15c2fb89 Binary files /dev/null and b/assets/brand/exports/tray/sparo-tray-idle-24.png differ diff --git a/assets/brand/exports/tray/sparo-tray-idle-32.png b/assets/brand/exports/tray/sparo-tray-idle-32.png new file mode 100644 index 00000000..2f5e44f9 Binary files /dev/null and b/assets/brand/exports/tray/sparo-tray-idle-32.png differ diff --git a/assets/brand/exports/tray/sparo-tray-idle-48.png b/assets/brand/exports/tray/sparo-tray-idle-48.png new file mode 100644 index 00000000..3a8be1f4 Binary files /dev/null and b/assets/brand/exports/tray/sparo-tray-idle-48.png differ diff --git a/assets/brand/exports/tray/sparo-tray-idle.png b/assets/brand/exports/tray/sparo-tray-idle.png new file mode 100644 index 00000000..2f5e44f9 Binary files /dev/null and b/assets/brand/exports/tray/sparo-tray-idle.png differ diff --git a/assets/brand/exports/tray/sparo-tray-running.png b/assets/brand/exports/tray/sparo-tray-running.png new file mode 100644 index 00000000..c7751275 Binary files /dev/null and b/assets/brand/exports/tray/sparo-tray-running.png differ diff --git a/assets/brand/exports/tray/sparo-tray-waiting.png b/assets/brand/exports/tray/sparo-tray-waiting.png new file mode 100644 index 00000000..8860bfe9 Binary files /dev/null and b/assets/brand/exports/tray/sparo-tray-waiting.png differ diff --git a/assets/brand/exports/web/apple-touch-icon-180.png b/assets/brand/exports/web/apple-touch-icon-180.png new file mode 100644 index 00000000..3bce3cf1 Binary files /dev/null and b/assets/brand/exports/web/apple-touch-icon-180.png differ diff --git a/assets/brand/exports/web/favicon-16.png b/assets/brand/exports/web/favicon-16.png new file mode 100644 index 00000000..0e7ccb52 Binary files /dev/null and b/assets/brand/exports/web/favicon-16.png differ diff --git a/assets/brand/exports/web/favicon-32.png b/assets/brand/exports/web/favicon-32.png new file mode 100644 index 00000000..2f5e44f9 Binary files /dev/null and b/assets/brand/exports/web/favicon-32.png differ diff --git a/assets/brand/exports/web/favicon-48.png b/assets/brand/exports/web/favicon-48.png new file mode 100644 index 00000000..3a8be1f4 Binary files /dev/null and b/assets/brand/exports/web/favicon-48.png differ diff --git a/assets/brand/exports/web/web-app-icon-192.png b/assets/brand/exports/web/web-app-icon-192.png new file mode 100644 index 00000000..1e9c7f91 Binary files /dev/null and b/assets/brand/exports/web/web-app-icon-192.png differ diff --git a/assets/brand/exports/web/web-app-icon-512.png b/assets/brand/exports/web/web-app-icon-512.png new file mode 100644 index 00000000..2fe045bc Binary files /dev/null and b/assets/brand/exports/web/web-app-icon-512.png differ diff --git a/assets/brand/exports/wordmark/sparo-wordmark-mono.png b/assets/brand/exports/wordmark/sparo-wordmark-mono.png new file mode 100644 index 00000000..9d59a309 Binary files /dev/null and b/assets/brand/exports/wordmark/sparo-wordmark-mono.png differ diff --git a/assets/brand/exports/wordmark/sparo-wordmark-primary.png b/assets/brand/exports/wordmark/sparo-wordmark-primary.png new file mode 100644 index 00000000..73f058cd Binary files /dev/null and b/assets/brand/exports/wordmark/sparo-wordmark-primary.png differ diff --git a/assets/brand/exports/wordmark/sparo-wordmark-reversed.png b/assets/brand/exports/wordmark/sparo-wordmark-reversed.png new file mode 100644 index 00000000..3e6aeb4d Binary files /dev/null and b/assets/brand/exports/wordmark/sparo-wordmark-reversed.png differ diff --git a/assets/brand/manifest.json b/assets/brand/manifest.json new file mode 100644 index 00000000..6b5be9f6 --- /dev/null +++ b/assets/brand/manifest.json @@ -0,0 +1,393 @@ +{ + "schemaVersion": 5, + "brandVersion": "2026.08-tight-circular-system-icons", + "status": "current", + "generatedBy": "pnpm run brand:generate", + "provenance": { + "mark": { + "path": "source/sparo-mark-master.png", + "pixels": [ + 1536, + 1024 + ], + "sha256": "10c9328ae0f8543b1713ffb68d752a4d4e8d26a76dae283c597826c92cc5e14d", + "treatment": "Low-alpha speckles removed, visible bounds normalized to a true circle, supplied material detail preserved." + }, + "core": { + "path": "source/sparo-core-master.png", + "pixels": [ + 1536, + 1024 + ], + "sha256": "9bdbc6ebd4d750fb534a7aa166bafaf2313232567acec12c7a0a1c9444c5b3ce", + "treatment": "Source silhouette and material preserved for compact in-product core exports; target sizes use alpha-safe reduction and lossless PNG compression." + }, + "reference": { + "path": "reference/sparo-identity-board.png", + "pixels": [ + 1448, + 1086 + ], + "sha256": "0b2d0032de23174be0381976f8edc90094e7fa380a37dfb7147f873e9e388e4f" + }, + "appIcon": "Transparent margins are removed on all four sides of the normalized circular material Logo before platform-size reduction; source proportions and material are preserved.", + "wordmark": "Deterministic transparent raster extraction from the approved identity board with a global 3px optical stroke expansion; the approved letter geometry and red core are preserved without redrawn paths." + }, + "roles": { + "defaultLogo": "circular", + "applicationIcon": "circular at every size, including taskbar and window icons", + "trayIcon": "edge-fitted circular material Logo with the red core; active states add a compact status badge", + "wordmark": "Globally optically bold Sparo OS wordmark with a red core inside the lowercase a" + }, + "formatPolicy": "Brand artwork is PNG-only. Product code must not redraw or embed brand geometry as SVG.", + "qaPolicy": "QA preview boards are validated for presence, PNG format, and dimensions but excluded from cross-platform byte hashes because their labels use host font rasterization.", + "colors": { + "coreRed": "#E53935", + "warmWhite": "#F5F2EE", + "softIvory": "#ECE7E1", + "sandGray": "#D8D3CC", + "deepCharcoal": "#1A1A1A" + }, + "sourceProcessing": { + "alphaThreshold": 8, + "detectedVisibleBounds": { + "left": 337, + "top": 53, + "width": 858, + "height": 872 + }, + "detectedCoreBounds": { + "left": 392, + "top": 67, + "width": 752, + "height": 882 + }, + "normalizedCanvas": [ + 1024, + 1024 + ], + "wordmark": { + "neutralStrokeExpansionPx": 3, + "primaryAndReversedPreserveRedCore": true, + "redrawnGeometry": false + } + }, + "sizePolicy": { + "canonicalMinimumPx": 64, + "responsiveMinimumPx": 16, + "rule": "Use the normalized raster master at 64px and above and target-specific raster reductions at 16-48px.", + "smallSizes": [ + 16, + 24, + 32, + 48 + ] + }, + "appIcon": { + "master": "exports/app-icon/sparo-app-icon-1024.png", + "geometry": "circular", + "transparentOutsideCircle": true, + "edgeFit": "Visible bounds fill all four sides of the square canvas; only the circular corners remain transparent.", + "smallSizeProcessing": "Premultiplied-alpha Lanczos reduction from the normalized circular mark.", + "iosOpaqueBackground": "#F5F2EE" + }, + "tray": { + "geometry": "Direct target-size raster derivatives of the edge-fitted circular material Logo with its red core.", + "stateBadges": { + "idle": null, + "running": "#168A5B", + "waiting": "#C77B12", + "error": "#8B3AA8" + }, + "sizes": [ + 16, + 20, + 24, + 32, + 48 + ], + "contentLimit": "Visible circular Logo fills all four sides of the target canvas without added transparent padding.", + "compression": "Lossless PNG, level 9, adaptive filtering." + }, + "sources": { + "source/sparo-mark-master.png": { + "bytes": 983141, + "sha256": "10c9328ae0f8543b1713ffb68d752a4d4e8d26a76dae283c597826c92cc5e14d" + }, + "source/sparo-core-master.png": { + "bytes": 904102, + "sha256": "9bdbc6ebd4d750fb534a7aa166bafaf2313232567acec12c7a0a1c9444c5b3ce" + }, + "reference/sparo-identity-board.png": { + "bytes": 1506523, + "sha256": "0b2d0032de23174be0381976f8edc90094e7fa380a37dfb7147f873e9e388e4f" + } + }, + "files": [ + { + "path": "exports/app-icon/sparo-app-icon-1024.png", + "bytes": 1021655, + "sha256": "c65833124c839750b6b6b82bb89ef8748caa5f21264ffd77213a781cb641534c" + }, + { + "path": "exports/app-icon/sparo-app-icon-128.png", + "bytes": 22827, + "sha256": "0da0e354ae77f215b79f0ea298d4d6046dac332cefb6fca47514e5c9dace7d91" + }, + { + "path": "exports/app-icon/sparo-app-icon-16.png", + "bytes": 813, + "sha256": "81321112286d69c31a13b99a10ba3e3248cc305774cf6f4e4858263851bef83f" + }, + { + "path": "exports/app-icon/sparo-app-icon-24.png", + "bytes": 1517, + "sha256": "2b9475092c8c0de07d30f49ee78c1e93a9bd6e0aeff740911d1ec0d982696804" + }, + { + "path": "exports/app-icon/sparo-app-icon-256.png", + "bytes": 75322, + "sha256": "70a88b176dd76df6336b65d0f67aabe146e4ca9c977c320c90e9e16b6ccc0f69" + }, + { + "path": "exports/app-icon/sparo-app-icon-32.png", + "bytes": 2395, + "sha256": "f1f2566dfeba2e8593676da2f79587696ac70838dc9391dce676348768bcc808" + }, + { + "path": "exports/app-icon/sparo-app-icon-48.png", + "bytes": 4554, + "sha256": "b57e8dc54b97d931844d6d4b358f9d2963c427fac9b36a5c8a875e335d90426d" + }, + { + "path": "exports/app-icon/sparo-app-icon-512.png", + "bytes": 286830, + "sha256": "f453249bbc010d885cac92f94c9f236cd8cf63b1057d90a175afb142bd11500d" + }, + { + "path": "exports/app-icon/sparo-app-icon-64.png", + "bytes": 7228, + "sha256": "d2c4c5ca72928ee29f3b6ede38b87af9d519581b0065b7d44e9249c6448848d1" + }, + { + "path": "exports/core/sparo-core-16.png", + "bytes": 583, + "sha256": "d8c56ce81f3e842aa9dded49b862b052d82ce3fb3f40d9364c0dae4aae4de9ac" + }, + { + "path": "exports/core/sparo-core-20.png", + "bytes": 817, + "sha256": "0a8dcd51fd7be98662cb0a61557ded28dda83a3b5169909978a1ec1f021df3c7" + }, + { + "path": "exports/core/sparo-core-24.png", + "bytes": 1010, + "sha256": "ed51d728c8b6dfad5353b57bbea5ef1e04f6a97d7f8f3417ded98c323f375236" + }, + { + "path": "exports/core/sparo-core-32.png", + "bytes": 1490, + "sha256": "d5b8e8716df53caac81df865cfbb9262dd525b52923090e233cf1470ec6ee3bc" + }, + { + "path": "exports/core/sparo-core-48.png", + "bytes": 2721, + "sha256": "cc42a80faeb9e22ca8fea8971bc350caac29ea0c673a420a3c176e4f8c8f5367" + }, + { + "path": "exports/lockup/sparo-lockup-horizontal-mono.png", + "bytes": 52446, + "sha256": "5be09ea9fb2b54d350efa40b0d910ce0038d45a38975ae6ba6be81608dd275de" + }, + { + "path": "exports/lockup/sparo-lockup-horizontal-primary.png", + "bytes": 113890, + "sha256": "d2a230460323355ad34bb1ac2b92f32319819279a1a8ac066e981c96751878ce" + }, + { + "path": "exports/lockup/sparo-lockup-horizontal-reversed.png", + "bytes": 114771, + "sha256": "3e32ebde378d5111256dc30b6041d8ec3521590cb769d33f8785454ef2855ed7" + }, + { + "path": "exports/mark/sparo-mark-128.png", + "bytes": 21235, + "sha256": "22aeeda3f6881a4be6292a1de7758ca9fc58dbc7b7da61ff707b404c7e28cbb7" + }, + { + "path": "exports/mark/sparo-mark-16.png", + "bytes": 793, + "sha256": "17a69d0395848de0a3c5506ea1b7df986949b0596d8652fb607c0a49582ef074" + }, + { + "path": "exports/mark/sparo-mark-24.png", + "bytes": 1429, + "sha256": "9be58d8aabb5a18baac37ea92b66f61bd0e530eb345e646068b94aec16b72dbc" + }, + { + "path": "exports/mark/sparo-mark-256.png", + "bytes": 66587, + "sha256": "f1869e6ae634eaf53dc49e44d96b6fd838c8648892687b25e490fff33a371835" + }, + { + "path": "exports/mark/sparo-mark-32.png", + "bytes": 2220, + "sha256": "03d12b7f4bd2fe97296c1a28f33d20648ef4a41e1f51eee65c8ef0c0cea4f236" + }, + { + "path": "exports/mark/sparo-mark-48.png", + "bytes": 4254, + "sha256": "6bc33619b7b8fc5f359496177d1fe32c29e39f145fd2ef297474350ea16ec81b" + }, + { + "path": "exports/mark/sparo-mark-512.png", + "bytes": 237905, + "sha256": "290b3b68a69e4e61f239d88a965f95b1ba55bc52d9704b1b430d178b24bfccdd" + }, + { + "path": "exports/mark/sparo-mark-64.png", + "bytes": 6634, + "sha256": "bf938438a21f593cfa68471ac79a729586ef8816a0fabe736fc847d8c830377c" + }, + { + "path": "exports/tray/sparo-tray-16-dark.png", + "bytes": 813, + "sha256": "81321112286d69c31a13b99a10ba3e3248cc305774cf6f4e4858263851bef83f" + }, + { + "path": "exports/tray/sparo-tray-16-light.png", + "bytes": 813, + "sha256": "81321112286d69c31a13b99a10ba3e3248cc305774cf6f4e4858263851bef83f" + }, + { + "path": "exports/tray/sparo-tray-20-dark.png", + "bytes": 1157, + "sha256": "eb6b0eca83a5d63585db9a51add1e5f3e3d708f98bcf6f02e3a78d858fe21191" + }, + { + "path": "exports/tray/sparo-tray-20-light.png", + "bytes": 1157, + "sha256": "eb6b0eca83a5d63585db9a51add1e5f3e3d708f98bcf6f02e3a78d858fe21191" + }, + { + "path": "exports/tray/sparo-tray-24-dark.png", + "bytes": 1517, + "sha256": "2b9475092c8c0de07d30f49ee78c1e93a9bd6e0aeff740911d1ec0d982696804" + }, + { + "path": "exports/tray/sparo-tray-24-light.png", + "bytes": 1517, + "sha256": "2b9475092c8c0de07d30f49ee78c1e93a9bd6e0aeff740911d1ec0d982696804" + }, + { + "path": "exports/tray/sparo-tray-32-dark.png", + "bytes": 2395, + "sha256": "f1f2566dfeba2e8593676da2f79587696ac70838dc9391dce676348768bcc808" + }, + { + "path": "exports/tray/sparo-tray-32-light.png", + "bytes": 2395, + "sha256": "f1f2566dfeba2e8593676da2f79587696ac70838dc9391dce676348768bcc808" + }, + { + "path": "exports/tray/sparo-tray-48-dark.png", + "bytes": 4554, + "sha256": "b57e8dc54b97d931844d6d4b358f9d2963c427fac9b36a5c8a875e335d90426d" + }, + { + "path": "exports/tray/sparo-tray-48-light.png", + "bytes": 4554, + "sha256": "b57e8dc54b97d931844d6d4b358f9d2963c427fac9b36a5c8a875e335d90426d" + }, + { + "path": "exports/tray/sparo-tray-error.png", + "bytes": 2359, + "sha256": "f8262c27dbd553f84a4648aaf037f208598926d349993a1e9670d517f1dcbc26" + }, + { + "path": "exports/tray/sparo-tray-idle-16.png", + "bytes": 813, + "sha256": "81321112286d69c31a13b99a10ba3e3248cc305774cf6f4e4858263851bef83f" + }, + { + "path": "exports/tray/sparo-tray-idle-20.png", + "bytes": 1157, + "sha256": "eb6b0eca83a5d63585db9a51add1e5f3e3d708f98bcf6f02e3a78d858fe21191" + }, + { + "path": "exports/tray/sparo-tray-idle-24.png", + "bytes": 1517, + "sha256": "2b9475092c8c0de07d30f49ee78c1e93a9bd6e0aeff740911d1ec0d982696804" + }, + { + "path": "exports/tray/sparo-tray-idle-32.png", + "bytes": 2395, + "sha256": "f1f2566dfeba2e8593676da2f79587696ac70838dc9391dce676348768bcc808" + }, + { + "path": "exports/tray/sparo-tray-idle-48.png", + "bytes": 4554, + "sha256": "b57e8dc54b97d931844d6d4b358f9d2963c427fac9b36a5c8a875e335d90426d" + }, + { + "path": "exports/tray/sparo-tray-idle.png", + "bytes": 2395, + "sha256": "f1f2566dfeba2e8593676da2f79587696ac70838dc9391dce676348768bcc808" + }, + { + "path": "exports/tray/sparo-tray-running.png", + "bytes": 2360, + "sha256": "8d6c230705373932a75184280d07152dedca28c215c0810e3f710a93f2b899b5" + }, + { + "path": "exports/tray/sparo-tray-waiting.png", + "bytes": 2357, + "sha256": "793bf22cf7d1dde92affdbfba7a9deeea6278564c450cc5d63edd38da5e9d2ad" + }, + { + "path": "exports/web/apple-touch-icon-180.png", + "bytes": 39902, + "sha256": "9d5507571b8b6ffb547842f7e75d19aa36abe5e278870c596cd7430359ccfa46" + }, + { + "path": "exports/web/favicon-16.png", + "bytes": 813, + "sha256": "81321112286d69c31a13b99a10ba3e3248cc305774cf6f4e4858263851bef83f" + }, + { + "path": "exports/web/favicon-32.png", + "bytes": 2395, + "sha256": "f1f2566dfeba2e8593676da2f79587696ac70838dc9391dce676348768bcc808" + }, + { + "path": "exports/web/favicon-48.png", + "bytes": 4554, + "sha256": "b57e8dc54b97d931844d6d4b358f9d2963c427fac9b36a5c8a875e335d90426d" + }, + { + "path": "exports/web/web-app-icon-192.png", + "bytes": 45123, + "sha256": "3f81f7bf0ed8ef06962be12e4ec22d9ebfb1ce1ff2e98d312b77e97c9d0984a7" + }, + { + "path": "exports/web/web-app-icon-512.png", + "bytes": 286843, + "sha256": "ee957c7ef29958df5a47290c50e4cc71161d7dcd228c04cf4beb221a271edca2" + }, + { + "path": "exports/wordmark/sparo-wordmark-mono.png", + "bytes": 34145, + "sha256": "9b42f1aac05dfeb3161e202235ec3cbf443a190fe528975f464d63550eae63b2" + }, + { + "path": "exports/wordmark/sparo-wordmark-primary.png", + "bytes": 34510, + "sha256": "ac61b6608967a896889ef42eed5fcb838c258fbce0bee984a7746d149db5c4c3" + }, + { + "path": "exports/wordmark/sparo-wordmark-reversed.png", + "bytes": 34511, + "sha256": "772b0f73821ba015ae6b3f37cfbbdb897fd4db07b504d5fdf70062cf5c207348" + } + ] +} diff --git a/assets/brand/qa/sparo-app-icon-size-matrix.png b/assets/brand/qa/sparo-app-icon-size-matrix.png new file mode 100644 index 00000000..6309fdc9 Binary files /dev/null and b/assets/brand/qa/sparo-app-icon-size-matrix.png differ diff --git a/assets/brand/qa/sparo-brand-asset-matrix.png b/assets/brand/qa/sparo-brand-asset-matrix.png new file mode 100644 index 00000000..b755c18f Binary files /dev/null and b/assets/brand/qa/sparo-brand-asset-matrix.png differ diff --git a/assets/brand/qa/sparo-small-mark-matrix.png b/assets/brand/qa/sparo-small-mark-matrix.png new file mode 100644 index 00000000..f641fb35 Binary files /dev/null and b/assets/brand/qa/sparo-small-mark-matrix.png differ diff --git a/assets/brand/qa/sparo-startup-brand-preview.png b/assets/brand/qa/sparo-startup-brand-preview.png new file mode 100644 index 00000000..d24b30da Binary files /dev/null and b/assets/brand/qa/sparo-startup-brand-preview.png differ diff --git a/assets/brand/qa/sparo-tray-state-matrix.png b/assets/brand/qa/sparo-tray-state-matrix.png new file mode 100644 index 00000000..900472ab Binary files /dev/null and b/assets/brand/qa/sparo-tray-state-matrix.png differ diff --git a/assets/brand/reference/sparo-identity-board.png b/assets/brand/reference/sparo-identity-board.png new file mode 100644 index 00000000..578165a3 Binary files /dev/null and b/assets/brand/reference/sparo-identity-board.png differ diff --git a/assets/brand/source/sparo-core-master.png b/assets/brand/source/sparo-core-master.png new file mode 100644 index 00000000..cfb0bcc5 Binary files /dev/null and b/assets/brand/source/sparo-core-master.png differ diff --git a/assets/brand/source/sparo-mark-master.png b/assets/brand/source/sparo-mark-master.png new file mode 100644 index 00000000..acb39986 Binary files /dev/null and b/assets/brand/source/sparo-mark-master.png differ diff --git a/docs/sparo-vi-design.md b/docs/sparo-vi-design.md index 345be28c..618e927f 100644 --- a/docs/sparo-vi-design.md +++ b/docs/sparo-vi-design.md @@ -1,5 +1,7 @@ # Sparo VI Design System +> **Historical reference:** the logo geometry, color, application-icon, wordmark, and export guidance in this document has been superseded by [`assets/brand/README.md`](../assets/brand/README.md). The current default logo is the circular warm-field mark with a red core; application launch surfaces use the rounded-rectangle icon. Product copies are managed only through `pnpm run brand:sync`. + > Source image: `png/VI.png` > This document extracts the visible design information from the VI board. A few very small labels are summarized where exact text is not fully legible. @@ -59,7 +61,7 @@ The Sparo logo is built from four symbolic elements: | Symbol | Standalone mark for compact brand recognition | | Horizontal | Symbol plus `Sparo` wordmark | | Stacked | Symbol above `Sparo`, for centered layouts | -| App Icon | Symbol placed on dark rounded-square background | +| App Icon | Soft inner form and red core on a warm rounded-rectangle field | ### Wordmark @@ -70,8 +72,8 @@ The Sparo logo is built from four symbolic elements: ### App Icon -- Background: Sparo Ink -- Foreground: white logo stroke plus Sparo Print Red / Echo Red accent +- Background: Warm White rounded rectangle +- Foreground: Soft Ivory inner form and Core Red center - Corner radius: moderate rounded square - Use for desktop/app launch surfaces, dock/taskbar icon, and compact product identity. @@ -446,4 +448,4 @@ When porting these patterns into the desktop Web UI (`src/web-ui`), the followin | Built-in Apps strip | Apps Scene category strips, integration listings | -Implementations of the above already exist in the website repo and should be treated as the source of truth for both the marketing surface and the product UI. \ No newline at end of file +Implementations of the above already exist in the website repo and should be treated as the source of truth for both the marketing surface and the product UI. diff --git a/image/Sparo_title.png b/image/Sparo_title.png deleted file mode 100644 index 4535936d..00000000 Binary files a/image/Sparo_title.png and /dev/null differ diff --git a/image/readme_hero.png b/image/readme_hero.png deleted file mode 100644 index 24b53425..00000000 Binary files a/image/readme_hero.png and /dev/null differ diff --git a/image/readme_hero.webp b/image/readme_hero.webp new file mode 100644 index 00000000..195cb95f Binary files /dev/null and b/image/readme_hero.webp differ diff --git a/image/readme_hero_CN.png b/image/readme_hero_CN.png deleted file mode 100644 index 5a3fd99a..00000000 Binary files a/image/readme_hero_CN.png and /dev/null differ diff --git a/image/readme_hero_CN.webp b/image/readme_hero_CN.webp new file mode 100644 index 00000000..d71b954c Binary files /dev/null and b/image/readme_hero_CN.webp differ diff --git a/image/sparo-app-icon-rounded.png b/image/sparo-app-icon-rounded.png deleted file mode 100644 index 491cfba4..00000000 Binary files a/image/sparo-app-icon-rounded.png and /dev/null differ diff --git a/image/sparo-logo-mark.png b/image/sparo-logo-mark.png deleted file mode 100644 index 8c783315..00000000 Binary files a/image/sparo-logo-mark.png and /dev/null differ diff --git a/image/sparo-readme-wordmark.png b/image/sparo-readme-wordmark.png new file mode 100644 index 00000000..d4b4ad77 Binary files /dev/null and b/image/sparo-readme-wordmark.png differ diff --git a/image/sparo-tray-icons-preview.png b/image/sparo-tray-icons-preview.png deleted file mode 100644 index 6a796188..00000000 Binary files a/image/sparo-tray-icons-preview.png and /dev/null differ diff --git a/installer/src-tauri/icons/128x128.png b/installer/src-tauri/icons/128x128.png index fb0343a7..1c7b4e23 100644 Binary files a/installer/src-tauri/icons/128x128.png and b/installer/src-tauri/icons/128x128.png differ diff --git a/installer/src-tauri/icons/128x128@2x.png b/installer/src-tauri/icons/128x128@2x.png index b1394ad1..74f18439 100644 Binary files a/installer/src-tauri/icons/128x128@2x.png and b/installer/src-tauri/icons/128x128@2x.png differ diff --git a/installer/src-tauri/icons/32x32.png b/installer/src-tauri/icons/32x32.png index 1665dd04..2f5e44f9 100644 Binary files a/installer/src-tauri/icons/32x32.png and b/installer/src-tauri/icons/32x32.png differ diff --git a/installer/src-tauri/icons/64x64.png b/installer/src-tauri/icons/64x64.png index 95b475af..5b7a72cc 100644 Binary files a/installer/src-tauri/icons/64x64.png and b/installer/src-tauri/icons/64x64.png differ diff --git a/installer/src-tauri/icons/Square107x107Logo.png b/installer/src-tauri/icons/Square107x107Logo.png index ad37c787..d5b248a1 100644 Binary files a/installer/src-tauri/icons/Square107x107Logo.png and b/installer/src-tauri/icons/Square107x107Logo.png differ diff --git a/installer/src-tauri/icons/Square142x142Logo.png b/installer/src-tauri/icons/Square142x142Logo.png index 5f5e5cb0..e44ff7af 100644 Binary files a/installer/src-tauri/icons/Square142x142Logo.png and b/installer/src-tauri/icons/Square142x142Logo.png differ diff --git a/installer/src-tauri/icons/Square150x150Logo.png b/installer/src-tauri/icons/Square150x150Logo.png index ec2d29db..e607c495 100644 Binary files a/installer/src-tauri/icons/Square150x150Logo.png and b/installer/src-tauri/icons/Square150x150Logo.png differ diff --git a/installer/src-tauri/icons/Square284x284Logo.png b/installer/src-tauri/icons/Square284x284Logo.png index ecfd6298..d98e7c79 100644 Binary files a/installer/src-tauri/icons/Square284x284Logo.png and b/installer/src-tauri/icons/Square284x284Logo.png differ diff --git a/installer/src-tauri/icons/Square30x30Logo.png b/installer/src-tauri/icons/Square30x30Logo.png index 226af42f..03a76719 100644 Binary files a/installer/src-tauri/icons/Square30x30Logo.png and b/installer/src-tauri/icons/Square30x30Logo.png differ diff --git a/installer/src-tauri/icons/Square310x310Logo.png b/installer/src-tauri/icons/Square310x310Logo.png index 199ac81d..f4cff6a5 100644 Binary files a/installer/src-tauri/icons/Square310x310Logo.png and b/installer/src-tauri/icons/Square310x310Logo.png differ diff --git a/installer/src-tauri/icons/Square44x44Logo.png b/installer/src-tauri/icons/Square44x44Logo.png index 50bb0055..b669621c 100644 Binary files a/installer/src-tauri/icons/Square44x44Logo.png and b/installer/src-tauri/icons/Square44x44Logo.png differ diff --git a/installer/src-tauri/icons/Square71x71Logo.png b/installer/src-tauri/icons/Square71x71Logo.png index 9b5e393a..8c2261fe 100644 Binary files a/installer/src-tauri/icons/Square71x71Logo.png and b/installer/src-tauri/icons/Square71x71Logo.png differ diff --git a/installer/src-tauri/icons/Square89x89Logo.png b/installer/src-tauri/icons/Square89x89Logo.png index 0bd1c700..daec8d29 100644 Binary files a/installer/src-tauri/icons/Square89x89Logo.png and b/installer/src-tauri/icons/Square89x89Logo.png differ diff --git a/installer/src-tauri/icons/StoreLogo.png b/installer/src-tauri/icons/StoreLogo.png index 799563ac..407dc94f 100644 Binary files a/installer/src-tauri/icons/StoreLogo.png and b/installer/src-tauri/icons/StoreLogo.png differ diff --git a/installer/src-tauri/icons/android/mipmap-hdpi/ic_launcher.png b/installer/src-tauri/icons/android/mipmap-hdpi/ic_launcher.png index 22f27bb8..c7dd6f14 100644 Binary files a/installer/src-tauri/icons/android/mipmap-hdpi/ic_launcher.png and b/installer/src-tauri/icons/android/mipmap-hdpi/ic_launcher.png differ diff --git a/installer/src-tauri/icons/android/mipmap-hdpi/ic_launcher_foreground.png b/installer/src-tauri/icons/android/mipmap-hdpi/ic_launcher_foreground.png index 22f27bb8..a177ef41 100644 Binary files a/installer/src-tauri/icons/android/mipmap-hdpi/ic_launcher_foreground.png and b/installer/src-tauri/icons/android/mipmap-hdpi/ic_launcher_foreground.png differ diff --git a/installer/src-tauri/icons/android/mipmap-hdpi/ic_launcher_round.png b/installer/src-tauri/icons/android/mipmap-hdpi/ic_launcher_round.png index 22f27bb8..c7dd6f14 100644 Binary files a/installer/src-tauri/icons/android/mipmap-hdpi/ic_launcher_round.png and b/installer/src-tauri/icons/android/mipmap-hdpi/ic_launcher_round.png differ diff --git a/installer/src-tauri/icons/android/mipmap-mdpi/ic_launcher.png b/installer/src-tauri/icons/android/mipmap-mdpi/ic_launcher.png index 78b0bbd9..d6ef9ea9 100644 Binary files a/installer/src-tauri/icons/android/mipmap-mdpi/ic_launcher.png and b/installer/src-tauri/icons/android/mipmap-mdpi/ic_launcher.png differ diff --git a/installer/src-tauri/icons/android/mipmap-mdpi/ic_launcher_foreground.png b/installer/src-tauri/icons/android/mipmap-mdpi/ic_launcher_foreground.png index 78b0bbd9..2a1429ff 100644 Binary files a/installer/src-tauri/icons/android/mipmap-mdpi/ic_launcher_foreground.png and b/installer/src-tauri/icons/android/mipmap-mdpi/ic_launcher_foreground.png differ diff --git a/installer/src-tauri/icons/android/mipmap-mdpi/ic_launcher_round.png b/installer/src-tauri/icons/android/mipmap-mdpi/ic_launcher_round.png index 78b0bbd9..d6ef9ea9 100644 Binary files a/installer/src-tauri/icons/android/mipmap-mdpi/ic_launcher_round.png and b/installer/src-tauri/icons/android/mipmap-mdpi/ic_launcher_round.png differ diff --git a/installer/src-tauri/icons/android/mipmap-xhdpi/ic_launcher.png b/installer/src-tauri/icons/android/mipmap-xhdpi/ic_launcher.png index 90c76da3..e66ae720 100644 Binary files a/installer/src-tauri/icons/android/mipmap-xhdpi/ic_launcher.png and b/installer/src-tauri/icons/android/mipmap-xhdpi/ic_launcher.png differ diff --git a/installer/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_foreground.png b/installer/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_foreground.png index 90c76da3..58f6a024 100644 Binary files a/installer/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_foreground.png and b/installer/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_foreground.png differ diff --git a/installer/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_round.png b/installer/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_round.png index 90c76da3..e66ae720 100644 Binary files a/installer/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_round.png and b/installer/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_round.png differ diff --git a/installer/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher.png b/installer/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher.png index 6fb315dd..a8ff2ace 100644 Binary files a/installer/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher.png and b/installer/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher.png differ diff --git a/installer/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_foreground.png b/installer/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_foreground.png index 6fb315dd..73ab55a0 100644 Binary files a/installer/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_foreground.png and b/installer/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_foreground.png differ diff --git a/installer/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_round.png b/installer/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_round.png index 6fb315dd..a8ff2ace 100644 Binary files a/installer/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_round.png and b/installer/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_round.png differ diff --git a/installer/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher.png b/installer/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher.png index d6dd6a98..63a0eaa7 100644 Binary files a/installer/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher.png and b/installer/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/installer/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_foreground.png b/installer/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_foreground.png index d6dd6a98..8d688951 100644 Binary files a/installer/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_foreground.png and b/installer/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_foreground.png differ diff --git a/installer/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_round.png b/installer/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_round.png index d6dd6a98..63a0eaa7 100644 Binary files a/installer/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_round.png and b/installer/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_round.png differ diff --git a/installer/src-tauri/icons/android/values/ic_launcher_background.xml b/installer/src-tauri/icons/android/values/ic_launcher_background.xml index ea9c223a..7938c64e 100644 --- a/installer/src-tauri/icons/android/values/ic_launcher_background.xml +++ b/installer/src-tauri/icons/android/values/ic_launcher_background.xml @@ -1,4 +1,4 @@ - #fff + #F5F2EE \ No newline at end of file diff --git a/installer/src-tauri/icons/app-icon-rounded-source.png b/installer/src-tauri/icons/app-icon-rounded-source.png deleted file mode 100644 index d5e59ffc..00000000 Binary files a/installer/src-tauri/icons/app-icon-rounded-source.png and /dev/null differ diff --git a/installer/src-tauri/icons/icon.icns b/installer/src-tauri/icons/icon.icns index b7ba91f1..9f213f9b 100644 Binary files a/installer/src-tauri/icons/icon.icns and b/installer/src-tauri/icons/icon.icns differ diff --git a/installer/src-tauri/icons/icon.ico b/installer/src-tauri/icons/icon.ico index feb7c28c..0506188b 100644 Binary files a/installer/src-tauri/icons/icon.ico and b/installer/src-tauri/icons/icon.ico differ diff --git a/installer/src-tauri/icons/icon.png b/installer/src-tauri/icons/icon.png index 9e8086ab..2fe045bc 100644 Binary files a/installer/src-tauri/icons/icon.png and b/installer/src-tauri/icons/icon.png differ diff --git a/installer/src-tauri/icons/ios/AppIcon-20x20@1x.png b/installer/src-tauri/icons/ios/AppIcon-20x20@1x.png index 63cb8266..624494b0 100644 Binary files a/installer/src-tauri/icons/ios/AppIcon-20x20@1x.png and b/installer/src-tauri/icons/ios/AppIcon-20x20@1x.png differ diff --git a/installer/src-tauri/icons/ios/AppIcon-20x20@2x-1.png b/installer/src-tauri/icons/ios/AppIcon-20x20@2x-1.png index d1763dde..0cfd832a 100644 Binary files a/installer/src-tauri/icons/ios/AppIcon-20x20@2x-1.png and b/installer/src-tauri/icons/ios/AppIcon-20x20@2x-1.png differ diff --git a/installer/src-tauri/icons/ios/AppIcon-20x20@2x.png b/installer/src-tauri/icons/ios/AppIcon-20x20@2x.png index d1763dde..0cfd832a 100644 Binary files a/installer/src-tauri/icons/ios/AppIcon-20x20@2x.png and b/installer/src-tauri/icons/ios/AppIcon-20x20@2x.png differ diff --git a/installer/src-tauri/icons/ios/AppIcon-20x20@3x.png b/installer/src-tauri/icons/ios/AppIcon-20x20@3x.png index 8e2019b1..77532256 100644 Binary files a/installer/src-tauri/icons/ios/AppIcon-20x20@3x.png and b/installer/src-tauri/icons/ios/AppIcon-20x20@3x.png differ diff --git a/installer/src-tauri/icons/ios/AppIcon-29x29@1x.png b/installer/src-tauri/icons/ios/AppIcon-29x29@1x.png index 7ba86c84..46d013c3 100644 Binary files a/installer/src-tauri/icons/ios/AppIcon-29x29@1x.png and b/installer/src-tauri/icons/ios/AppIcon-29x29@1x.png differ diff --git a/installer/src-tauri/icons/ios/AppIcon-29x29@2x-1.png b/installer/src-tauri/icons/ios/AppIcon-29x29@2x-1.png index f9d95fae..ad6d68a6 100644 Binary files a/installer/src-tauri/icons/ios/AppIcon-29x29@2x-1.png and b/installer/src-tauri/icons/ios/AppIcon-29x29@2x-1.png differ diff --git a/installer/src-tauri/icons/ios/AppIcon-29x29@2x.png b/installer/src-tauri/icons/ios/AppIcon-29x29@2x.png index f9d95fae..ad6d68a6 100644 Binary files a/installer/src-tauri/icons/ios/AppIcon-29x29@2x.png and b/installer/src-tauri/icons/ios/AppIcon-29x29@2x.png differ diff --git a/installer/src-tauri/icons/ios/AppIcon-29x29@3x.png b/installer/src-tauri/icons/ios/AppIcon-29x29@3x.png index 4238e73b..77908fd0 100644 Binary files a/installer/src-tauri/icons/ios/AppIcon-29x29@3x.png and b/installer/src-tauri/icons/ios/AppIcon-29x29@3x.png differ diff --git a/installer/src-tauri/icons/ios/AppIcon-40x40@1x.png b/installer/src-tauri/icons/ios/AppIcon-40x40@1x.png index d1763dde..0cfd832a 100644 Binary files a/installer/src-tauri/icons/ios/AppIcon-40x40@1x.png and b/installer/src-tauri/icons/ios/AppIcon-40x40@1x.png differ diff --git a/installer/src-tauri/icons/ios/AppIcon-40x40@2x-1.png b/installer/src-tauri/icons/ios/AppIcon-40x40@2x-1.png index bb9a016b..d1c893ff 100644 Binary files a/installer/src-tauri/icons/ios/AppIcon-40x40@2x-1.png and b/installer/src-tauri/icons/ios/AppIcon-40x40@2x-1.png differ diff --git a/installer/src-tauri/icons/ios/AppIcon-40x40@2x.png b/installer/src-tauri/icons/ios/AppIcon-40x40@2x.png index bb9a016b..d1c893ff 100644 Binary files a/installer/src-tauri/icons/ios/AppIcon-40x40@2x.png and b/installer/src-tauri/icons/ios/AppIcon-40x40@2x.png differ diff --git a/installer/src-tauri/icons/ios/AppIcon-40x40@3x.png b/installer/src-tauri/icons/ios/AppIcon-40x40@3x.png index 9db4f379..694cee05 100644 Binary files a/installer/src-tauri/icons/ios/AppIcon-40x40@3x.png and b/installer/src-tauri/icons/ios/AppIcon-40x40@3x.png differ diff --git a/installer/src-tauri/icons/ios/AppIcon-512@2x.png b/installer/src-tauri/icons/ios/AppIcon-512@2x.png index deaabc02..91169e65 100644 Binary files a/installer/src-tauri/icons/ios/AppIcon-512@2x.png and b/installer/src-tauri/icons/ios/AppIcon-512@2x.png differ diff --git a/installer/src-tauri/icons/ios/AppIcon-60x60@2x.png b/installer/src-tauri/icons/ios/AppIcon-60x60@2x.png index 9db4f379..694cee05 100644 Binary files a/installer/src-tauri/icons/ios/AppIcon-60x60@2x.png and b/installer/src-tauri/icons/ios/AppIcon-60x60@2x.png differ diff --git a/installer/src-tauri/icons/ios/AppIcon-60x60@3x.png b/installer/src-tauri/icons/ios/AppIcon-60x60@3x.png index 5b8b8c70..303b4768 100644 Binary files a/installer/src-tauri/icons/ios/AppIcon-60x60@3x.png and b/installer/src-tauri/icons/ios/AppIcon-60x60@3x.png differ diff --git a/installer/src-tauri/icons/ios/AppIcon-76x76@1x.png b/installer/src-tauri/icons/ios/AppIcon-76x76@1x.png index 0d8099eb..caed8331 100644 Binary files a/installer/src-tauri/icons/ios/AppIcon-76x76@1x.png and b/installer/src-tauri/icons/ios/AppIcon-76x76@1x.png differ diff --git a/installer/src-tauri/icons/ios/AppIcon-76x76@2x.png b/installer/src-tauri/icons/ios/AppIcon-76x76@2x.png index e06acefb..3b241b54 100644 Binary files a/installer/src-tauri/icons/ios/AppIcon-76x76@2x.png and b/installer/src-tauri/icons/ios/AppIcon-76x76@2x.png differ diff --git a/installer/src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png b/installer/src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png index ae45e080..7bb7efe5 100644 Binary files a/installer/src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png and b/installer/src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png differ diff --git a/installer/src/assets/brand/sparo-mark-16.png b/installer/src/assets/brand/sparo-mark-16.png new file mode 100644 index 00000000..436e8c9f Binary files /dev/null and b/installer/src/assets/brand/sparo-mark-16.png differ diff --git a/installer/src/assets/brand/sparo-mark-24.png b/installer/src/assets/brand/sparo-mark-24.png new file mode 100644 index 00000000..b3e6726f Binary files /dev/null and b/installer/src/assets/brand/sparo-mark-24.png differ diff --git a/installer/src/assets/brand/sparo-mark-32.png b/installer/src/assets/brand/sparo-mark-32.png new file mode 100644 index 00000000..4078a327 Binary files /dev/null and b/installer/src/assets/brand/sparo-mark-32.png differ diff --git a/installer/src/assets/brand/sparo-mark-48.png b/installer/src/assets/brand/sparo-mark-48.png new file mode 100644 index 00000000..5ae20c02 Binary files /dev/null and b/installer/src/assets/brand/sparo-mark-48.png differ diff --git a/installer/src/assets/brand/sparo-mark-full.png b/installer/src/assets/brand/sparo-mark-full.png new file mode 100644 index 00000000..275ec993 Binary files /dev/null and b/installer/src/assets/brand/sparo-mark-full.png differ diff --git a/installer/src/assets/sparo-logo-mark.png b/installer/src/assets/sparo-logo-mark.png deleted file mode 100644 index 8c783315..00000000 Binary files a/installer/src/assets/sparo-logo-mark.png and /dev/null differ diff --git a/installer/src/components/brand/SparoMark.tsx b/installer/src/components/brand/SparoMark.tsx index 0bdb7112..2c5c8b75 100644 --- a/installer/src/components/brand/SparoMark.tsx +++ b/installer/src/components/brand/SparoMark.tsx @@ -1,22 +1,31 @@ -import logoMark from '../../assets/sparo-logo-mark.png'; +import mark16 from '../../assets/brand/sparo-mark-16.png'; +import mark24 from '../../assets/brand/sparo-mark-24.png'; +import mark32 from '../../assets/brand/sparo-mark-32.png'; +import mark48 from '../../assets/brand/sparo-mark-48.png'; +import markFull from '../../assets/brand/sparo-mark-full.png'; interface SparoMarkProps { size?: number; } -/** - * Sparo brand mark using the theme-neutral logo asset. - */ +function sourceForSize(size: number) { + if (size <= 20) return mark16; + if (size <= 28) return mark24; + if (size <= 40) return mark32; + if (size < 64) return mark48; + return markFull; +} + +/** Uses the declared responsive brand source for the requested display size. */ export function SparoMark({ size = 56 }: SparoMarkProps) { return ( -
- Sparo OS -
+ Sparo OS ); } diff --git a/package.json b/package.json index a0d2b820..5ec1da19 100644 --- a/package.json +++ b/package.json @@ -8,10 +8,13 @@ }, "scripts": { "copy-monaco": "copyfiles -u 5 \"src/web-ui/node_modules/monaco-editor/min/vs/**/*\" src/web-ui/public/monaco-editor", - "copy-icons": "copyfiles -f \"src/apps/desktop/icons/sparo-app-icon.png\" \"src/web-ui/public/\"", + "copy-icons": "node scripts/sync-brand-assets.mjs --target web", "copy-assets": "pnpm run copy-monaco && pnpm run copy-icons", "generate-version": "node scripts/generate-version.cjs", "generate-all": "pnpm run generate-version", + "brand:generate": "node scripts/generate-brand-assets.mjs", + "brand:sync": "node scripts/sync-brand-assets.mjs", + "brand:check": "node scripts/check-brand-assets.mjs", "postinstall": "pnpm run copy-assets", "dev": "node scripts/dev.cjs web", "dev:web": "pnpm --dir src/web-ui dev", @@ -31,7 +34,7 @@ "build:web:unchecked": "pnpm --dir src/web-ui build && pnpm run verify:monaco-assets", "build:web": "pnpm run check:web && pnpm run build:web:unchecked", "build:mobile-web": "pnpm --dir src/mobile-web build", - "sync:mobile-web-brand": "node scripts/generate-mobile-web-icons.mjs", + "sync:mobile-web-brand": "node scripts/sync-brand-assets.mjs --target mobile", "prepare:mobile-web": "node scripts/mobile-web-build.cjs", "preview": "pnpm --dir src/web-ui preview", "bundle:ppt-live-export": "node scripts/bundle-ppt-live-export.mjs", diff --git a/scripts/brand-assets.config.mjs b/scripts/brand-assets.config.mjs new file mode 100644 index 00000000..fa31e397 --- /dev/null +++ b/scripts/brand-assets.config.mjs @@ -0,0 +1,125 @@ +export const brandAssetCopies = Object.freeze([ + // Web UI public assets: stable PNG URLs for boot HTML and exported images. + { group: 'web', source: 'exports/app-icon/sparo-app-icon-512.png', target: 'src/web-ui/public/brand/app-icon-512.png' }, + { group: 'web', source: 'exports/web/favicon-32.png', target: 'src/web-ui/public/brand/favicon-32.png' }, + { group: 'web', source: 'exports/mark/sparo-mark-256.png', target: 'src/web-ui/public/brand/sparo-mark-256.png' }, + { group: 'web', source: 'exports/mark/sparo-mark-512.png', target: 'src/web-ui/public/brand/sparo-mark-full.png' }, + { group: 'web', source: 'exports/wordmark/sparo-wordmark-primary.png', target: 'src/web-ui/public/brand/sparo-wordmark-primary.png' }, + { group: 'web', source: 'exports/wordmark/sparo-wordmark-reversed.png', target: 'src/web-ui/public/brand/sparo-wordmark-reversed.png' }, + + // Design-system-owned copies keep the reusable logo component self-contained. + { group: 'web', source: 'exports/mark/sparo-mark-16.png', target: 'src/web-ui/src/design-system/foundation/brand/sparo-mark-16.png' }, + { group: 'web', source: 'exports/mark/sparo-mark-24.png', target: 'src/web-ui/src/design-system/foundation/brand/sparo-mark-24.png' }, + { group: 'web', source: 'exports/mark/sparo-mark-32.png', target: 'src/web-ui/src/design-system/foundation/brand/sparo-mark-32.png' }, + { group: 'web', source: 'exports/mark/sparo-mark-48.png', target: 'src/web-ui/src/design-system/foundation/brand/sparo-mark-48.png' }, + { group: 'web', source: 'exports/mark/sparo-mark-256.png', target: 'src/web-ui/src/design-system/foundation/brand/sparo-mark-256.png' }, + { group: 'web', source: 'exports/mark/sparo-mark-512.png', target: 'src/web-ui/src/design-system/foundation/brand/sparo-mark-full.png' }, + { group: 'web', source: 'exports/app-icon/sparo-app-icon-32.png', target: 'src/web-ui/src/design-system/foundation/brand/sparo-app-icon-32.png' }, + + // Compact app chrome keeps its dedicated source-derived red core. + { group: 'web', source: 'exports/core/sparo-core-16.png', target: 'src/web-ui/src/design-system/foundation/brand/sparo-core-16.png' }, + { group: 'web', source: 'exports/core/sparo-core-20.png', target: 'src/web-ui/src/design-system/foundation/brand/sparo-core-20.png' }, + { group: 'web', source: 'exports/core/sparo-core-24.png', target: 'src/web-ui/src/design-system/foundation/brand/sparo-core-24.png' }, + { group: 'web', source: 'exports/core/sparo-core-32.png', target: 'src/web-ui/src/design-system/foundation/brand/sparo-core-32.png' }, + { group: 'web', source: 'exports/core/sparo-core-48.png', target: 'src/web-ui/src/design-system/foundation/brand/sparo-core-48.png' }, + + // Mobile Web uses stable public URLs so a later logo swap does not change JS hashes. + { group: 'mobile', source: 'exports/web/favicon-32.png', target: 'src/mobile-web/public/brand/favicon-32.png' }, + { group: 'mobile', source: 'exports/web/apple-touch-icon-180.png', target: 'src/mobile-web/public/brand/app-icon-180.png' }, + { group: 'mobile', source: 'exports/mark/sparo-mark-16.png', target: 'src/mobile-web/public/brand/sparo-mark-16.png' }, + { group: 'mobile', source: 'exports/mark/sparo-mark-24.png', target: 'src/mobile-web/public/brand/sparo-mark-24.png' }, + { group: 'mobile', source: 'exports/mark/sparo-mark-32.png', target: 'src/mobile-web/public/brand/sparo-mark-32.png' }, + { group: 'mobile', source: 'exports/mark/sparo-mark-48.png', target: 'src/mobile-web/public/brand/sparo-mark-48.png' }, + { group: 'mobile', source: 'exports/mark/sparo-mark-512.png', target: 'src/mobile-web/public/brand/sparo-mark-full.png' }, + + // The relay fallback mirrors the same stable mobile assets without rebuilding JS. + { group: 'relay', source: 'exports/web/favicon-32.png', target: 'src/apps/relay-server/static/brand/favicon-32.png' }, + { group: 'relay', source: 'exports/web/apple-touch-icon-180.png', target: 'src/apps/relay-server/static/brand/app-icon-180.png' }, + { group: 'relay', source: 'exports/mark/sparo-mark-16.png', target: 'src/apps/relay-server/static/brand/sparo-mark-16.png' }, + { group: 'relay', source: 'exports/mark/sparo-mark-24.png', target: 'src/apps/relay-server/static/brand/sparo-mark-24.png' }, + { group: 'relay', source: 'exports/mark/sparo-mark-32.png', target: 'src/apps/relay-server/static/brand/sparo-mark-32.png' }, + { group: 'relay', source: 'exports/mark/sparo-mark-48.png', target: 'src/apps/relay-server/static/brand/sparo-mark-48.png' }, + { group: 'relay', source: 'exports/mark/sparo-mark-512.png', target: 'src/apps/relay-server/static/brand/sparo-mark-full.png' }, + + // Installer source assets are package-local because it is an independently built app. + { group: 'installer', source: 'exports/mark/sparo-mark-16.png', target: 'installer/src/assets/brand/sparo-mark-16.png' }, + { group: 'installer', source: 'exports/mark/sparo-mark-24.png', target: 'installer/src/assets/brand/sparo-mark-24.png' }, + { group: 'installer', source: 'exports/mark/sparo-mark-32.png', target: 'installer/src/assets/brand/sparo-mark-32.png' }, + { group: 'installer', source: 'exports/mark/sparo-mark-48.png', target: 'installer/src/assets/brand/sparo-mark-48.png' }, + { group: 'installer', source: 'exports/mark/sparo-mark-512.png', target: 'installer/src/assets/brand/sparo-mark-full.png' }, + + // Desktop tray states use the complete circular Logo; active states add a compact status badge. + { group: 'desktop', source: 'exports/tray/sparo-tray-idle.png', target: 'src/apps/desktop/icons/tray/tray-idle.png' }, + { group: 'desktop', source: 'exports/tray/sparo-tray-running.png', target: 'src/apps/desktop/icons/tray/tray-running.png' }, + { group: 'desktop', source: 'exports/tray/sparo-tray-waiting.png', target: 'src/apps/desktop/icons/tray/tray-waiting.png' }, + { group: 'desktop', source: 'exports/tray/sparo-tray-error.png', target: 'src/apps/desktop/icons/tray/tray-error.png' }, +]); + +export const platformIconTargets = Object.freeze([ + 'src/apps/desktop/icons', + 'installer/src-tauri/icons', +]); + +export const linuxHicolorSizes = Object.freeze([16, 32, 48, 64, 96, 128, 256, 512]); + +// These paths belong to the retired hand-drawn vector and one-off raster pipelines. +export const legacyBrandAssets = Object.freeze([ + 'assets/brand/source/sparo-mark-full.svg', + 'assets/brand/source/sparo-app-icon.svg', + 'assets/brand/source/sparo-wordmark.svg', + 'assets/brand/source/sparo-lockup-horizontal.svg', + 'src/web-ui/public/brand/favicon.svg', + 'src/web-ui/public/brand/sparo-mark-full.svg', + 'src/web-ui/public/brand/sparo-wordmark-primary.svg', + 'src/web-ui/public/brand/sparo-wordmark-reversed.svg', + 'src/web-ui/public/brand/sparo-wordmark-startup-primary.png', + 'src/web-ui/public/brand/sparo-wordmark-startup-reversed.png', + 'src/web-ui/src/design-system/foundation/brand/sparo-mark-16.svg', + 'src/web-ui/src/design-system/foundation/brand/sparo-mark-24.svg', + 'src/web-ui/src/design-system/foundation/brand/sparo-mark-32.svg', + 'src/web-ui/src/design-system/foundation/brand/sparo-mark-48.svg', + 'src/web-ui/src/design-system/foundation/brand/sparo-mark-full.svg', + 'src/web-ui/src/design-system/foundation/brand/sparo-app-icon-32.svg', + 'src/mobile-web/public/brand/sparo-mark-16.svg', + 'src/mobile-web/public/brand/sparo-mark-24.svg', + 'src/mobile-web/public/brand/sparo-mark-32.svg', + 'src/mobile-web/public/brand/sparo-mark-48.svg', + 'src/mobile-web/public/brand/sparo-mark-full.svg', + 'src/apps/relay-server/static/brand/sparo-mark-16.svg', + 'src/apps/relay-server/static/brand/sparo-mark-24.svg', + 'src/apps/relay-server/static/brand/sparo-mark-32.svg', + 'src/apps/relay-server/static/brand/sparo-mark-48.svg', + 'src/apps/relay-server/static/brand/sparo-mark-full.svg', + 'installer/src/assets/brand/sparo-mark-16.svg', + 'installer/src/assets/brand/sparo-mark-24.svg', + 'installer/src/assets/brand/sparo-mark-32.svg', + 'installer/src/assets/brand/sparo-mark-48.svg', + 'installer/src/assets/brand/sparo-mark-full.svg', + 'image/sparo-logo-mark.png', + 'image/sparo-app-icon-rounded.png', + 'image/wordmark/README.md', + 'image/wordmark/manifest.json', + 'image/wordmark/sparo-os-wordmark.svg', + 'image/wordmark/sparo-os-wordmark-reversed.svg', + 'image/wordmark/sparo-os-wordmark-monochrome.svg', + 'src/web-ui/public/sparo-logo-mark.png', + 'src/web-ui/public/sparo-app-icon.png', + 'src/mobile-web/public/favicon.png', + 'src/mobile-web/public/apple-touch-icon.png', + 'src/mobile-web/src/assets/sparo-logo-mark.png', + 'installer/src/assets/sparo-logo-mark.png', + 'src/apps/desktop/icons/sparo-app-icon.png', + 'src/apps/desktop/icons/app-icon-rounded-source.png', + 'installer/src-tauri/icons/app-icon-rounded-source.png', + 'src/apps/relay-server/static/favicon.png', + 'src/apps/relay-server/static/apple-touch-icon.png', + 'src/apps/relay-server/static/assets/sparo-logo-mark-BchWKRwx.png', + 'scripts/generate-icons.mjs', + 'scripts/generate-rounded-app-icon.mjs', + 'scripts/generate-mobile-web-icons.mjs', +]); + +export const legacyBrandDirectories = Object.freeze([ + 'assets/brand/source/small', + 'image/wordmark', +]); diff --git a/scripts/check-brand-assets.mjs b/scripts/check-brand-assets.mjs new file mode 100644 index 00000000..0b8b760d --- /dev/null +++ b/scripts/check-brand-assets.mjs @@ -0,0 +1,6 @@ +import { checkProductBrandAssets } from './sync-brand-assets.mjs'; + +checkProductBrandAssets().catch((error) => { + console.error(error instanceof Error ? error.message : error); + process.exitCode = 1; +}); diff --git a/scripts/generate-brand-assets.mjs b/scripts/generate-brand-assets.mjs new file mode 100644 index 00000000..10e5033a --- /dev/null +++ b/scripts/generate-brand-assets.mjs @@ -0,0 +1,967 @@ +import { createHash } from 'node:crypto'; +import { existsSync } from 'node:fs'; +import { mkdir, readFile, readdir, rm, writeFile } from 'node:fs/promises'; +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; + +import sharp from 'sharp'; + +const REPO_ROOT = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..'); +const BRAND_ROOT = path.join(REPO_ROOT, 'assets', 'brand'); +const MARK_SOURCE = 'source/sparo-mark-master.png'; +const CORE_SOURCE = 'source/sparo-core-master.png'; +const REFERENCE_SOURCE = 'reference/sparo-identity-board.png'; + +const MASTER_SIZE = 1024; +const MARK_SIZES = Object.freeze([16, 24, 32, 48, 64, 128, 256, 512]); +const APP_ICON_SIZES = Object.freeze([16, 24, 32, 48, 64, 128, 256, 512, 1024]); +const SMALL_SIZES = Object.freeze([16, 24, 32, 48]); +const TRAY_SIZES = Object.freeze([16, 20, 24, 32, 48]); +const WORDMARK_STROKE_RADIUS = 3; + +const COLORS = Object.freeze({ + coreRed: '#E53935', + warmWhite: '#F5F2EE', + softIvory: '#ECE7E1', + sandGray: '#D8D3CC', + deepCharcoal: '#1A1A1A', + reversed: '#FFFDFC', +}); + +const TRAY_STATE_BADGES = Object.freeze({ + idle: null, + running: '#168A5B', + waiting: '#C77B12', + error: '#8B3AA8', +}); + +function isQaArtifact(relativePath) { + return relativePath.startsWith('qa/'); +} + +function sha256(value) { + return createHash('sha256').update(value).digest('hex'); +} + +function hexChannels(value) { + const normalized = value.replace('#', ''); + return [0, 2, 4].map((offset) => Number.parseInt(normalized.slice(offset, offset + 2), 16)); +} + +function clamp(value, minimum = 0, maximum = 1) { + return Math.min(maximum, Math.max(minimum, value)); +} + +function escapeXml(value) { + return value + .replaceAll('&', '&') + .replaceAll('<', '<') + .replaceAll('>', '>') + .replaceAll('"', '"'); +} + +function labelSvg(width, height, value, size = 24, color = COLORS.deepCharcoal, anchor = 'start') { + const x = anchor === 'middle' ? width / 2 : anchor === 'end' ? width : 0; + return Buffer.from([ + '', + '' + escapeXml(value) + '', + '', + ].join('')); +} + +function circleCoverage(x, y, centerX, centerY, radius) { + return clamp(radius + 0.5 - Math.hypot(x + 0.5 - centerX, y + 0.5 - centerY)); +} + +function roundedRectangleCoverage(x, y, left, top, width, height, radius) { + const centerX = left + width / 2; + const centerY = top + height / 2; + const qx = Math.abs(x + 0.5 - centerX) - (width / 2 - radius); + const qy = Math.abs(y + 0.5 - centerY) - (height / 2 - radius); + const distance = Math.hypot(Math.max(qx, 0), Math.max(qy, 0)) + Math.min(Math.max(qx, qy), 0) - radius; + return clamp(0.5 - distance); +} + +async function rawRgba(input) { + return sharp(input).ensureAlpha().raw().toBuffer({ resolveWithObject: true }); +} + +async function pngFromRaw(data, width, height) { + return sharp(data, { raw: { width, height, channels: 4 } }) + .png({ compressionLevel: 9, adaptiveFiltering: false }) + .toBuffer(); +} + +async function resizePng(input, width, height = width, { sharpen = false } = {}) { + let pipeline = sharp(input).resize(width, height, { fit: 'fill', kernel: sharp.kernel.lanczos3 }); + if (sharpen) pipeline = pipeline.sharpen({ sigma: 0.55, m1: 0.8, m2: 1.5 }); + return pipeline.png({ compressionLevel: 9, adaptiveFiltering: false }).toBuffer(); +} + +async function resizePremultipliedRgba(input, width, height) { + const source = await rawRgba(input); + const premultiplied = Buffer.alloc(source.data.length); + for (let offset = 0; offset < source.data.length; offset += 4) { + const alpha = source.data[offset + 3]; + premultiplied[offset] = Math.round(source.data[offset] * alpha / 255); + premultiplied[offset + 1] = Math.round(source.data[offset + 1] * alpha / 255); + premultiplied[offset + 2] = Math.round(source.data[offset + 2] * alpha / 255); + premultiplied[offset + 3] = alpha; + } + + const resized = await sharp(premultiplied, { + raw: { width: source.info.width, height: source.info.height, channels: 4 }, + }).resize(width, height, { + fit: 'fill', + kernel: sharp.kernel.lanczos3, + }).raw().toBuffer({ resolveWithObject: true }); + + for (let offset = 0; offset < resized.data.length; offset += 4) { + const alpha = resized.data[offset + 3]; + if (alpha === 0) { + resized.data[offset] = 0; + resized.data[offset + 1] = 0; + resized.data[offset + 2] = 0; + continue; + } + resized.data[offset] = Math.min(255, Math.round(resized.data[offset] * 255 / alpha)); + resized.data[offset + 1] = Math.min(255, Math.round(resized.data[offset + 1] * 255 / alpha)); + resized.data[offset + 2] = Math.min(255, Math.round(resized.data[offset + 2] * 255 / alpha)); + } + + return pngFromRaw(resized.data, width, height); +} + +async function cropTransparentMargins(input, outputSize) { + const source = await rawRgba(input); + const bounds = alphaBounds(source.data, source.info.width, source.info.height, 8); + if (Math.abs(bounds.width - bounds.height) > 1) { + throw new Error('Expected circular artwork to have square visible bounds'); + } + const cropSize = Math.max(bounds.width, bounds.height); + const centerX = bounds.left + bounds.width / 2; + const centerY = bounds.top + bounds.height / 2; + const left = Math.max(0, Math.min( + source.info.width - cropSize, + Math.round(centerX - cropSize / 2), + )); + const top = Math.max(0, Math.min( + source.info.height - cropSize, + Math.round(centerY - cropSize / 2), + )); + const cropped = await sharp(input) + .extract({ left, top, width: cropSize, height: cropSize }) + .png({ compressionLevel: 9, adaptiveFiltering: false }) + .toBuffer(); + const result = await resizePremultipliedRgba(cropped, outputSize, outputSize); + const output = await rawRgba(result); + const outputBounds = alphaBounds(output.data, output.info.width, output.info.height, 8); + if ( + outputBounds.left !== 0 || + outputBounds.top !== 0 || + outputBounds.width !== outputSize || + outputBounds.height !== outputSize + ) { + throw new Error('Edge-fitted circular artwork must fill all four canvas edges'); + } + return result; +} + +async function coloredBlurredAlpha(alphaMask, width, height, color, sigma) { + const blurred = await sharp(alphaMask, { + raw: { width, height, channels: 1 }, + }).blur(sigma).raw().toBuffer({ resolveWithObject: true }); + const rgb = hexChannels(color); + const output = Buffer.alloc(width * height * 4); + for (let index = 0; index < alphaMask.length; index += 1) { + const offset = index * 4; + output[offset] = rgb[0]; + output[offset + 1] = rgb[1]; + output[offset + 2] = rgb[2]; + output[offset + 3] = blurred.data[index * blurred.info.channels]; + } + return pngFromRaw(output, width, height); +} + +function alphaBounds(data, width, height, threshold) { + let left = width; + let top = height; + let right = -1; + let bottom = -1; + for (let y = 0; y < height; y += 1) { + for (let x = 0; x < width; x += 1) { + if (data[(y * width + x) * 4 + 3] < threshold) continue; + left = Math.min(left, x); + top = Math.min(top, y); + right = Math.max(right, x); + bottom = Math.max(bottom, y); + } + } + if (right < left || bottom < top) throw new Error('Raster source has no visible pixels'); + return { left, top, width: right - left + 1, height: bottom - top + 1 }; +} + +async function normalizeMarkMaster(sourceBuffer) { + const source = await rawRgba(sourceBuffer); + const bounds = alphaBounds(source.data, source.info.width, source.info.height, 8); + const crop = Buffer.alloc(bounds.width * bounds.height * 4); + for (let y = 0; y < bounds.height; y += 1) { + for (let x = 0; x < bounds.width; x += 1) { + const from = ((bounds.top + y) * source.info.width + bounds.left + x) * 4; + const to = (y * bounds.width + x) * 4; + crop[to] = source.data[from]; + crop[to + 1] = source.data[from + 1]; + crop[to + 2] = source.data[from + 2]; + crop[to + 3] = source.data[from + 3] < 8 ? 0 : source.data[from + 3]; + } + } + + const fieldSize = 896; + const resized = await sharp(crop, { + raw: { width: bounds.width, height: bounds.height, channels: 4 }, + }).resize(fieldSize, fieldSize, { fit: 'fill', kernel: sharp.kernel.lanczos3 }) + .raw() + .toBuffer(); + + const clipped = Buffer.from(resized); + const radius = 444; + for (let y = 0; y < fieldSize; y += 1) { + for (let x = 0; x < fieldSize; x += 1) { + const offset = (y * fieldSize + x) * 4; + const mask = circleCoverage(x, y, fieldSize / 2, fieldSize / 2, radius); + clipped[offset + 3] = Math.round(clipped[offset + 3] * mask); + } + } + + const surface = await sharp({ + create: { width: MASTER_SIZE, height: MASTER_SIZE, channels: 4, background: '#00000000' }, + }).composite([{ input: await pngFromRaw(clipped, fieldSize, fieldSize), left: 64, top: 64 }]) + .png({ compressionLevel: 9, adaptiveFiltering: false }) + .toBuffer(); + + const shadowMask = Buffer.alloc(MASTER_SIZE * MASTER_SIZE); + for (let y = 0; y < MASTER_SIZE; y += 1) { + for (let x = 0; x < MASTER_SIZE; x += 1) { + shadowMask[y * MASTER_SIZE + x] = Math.round( + circleCoverage(x, y, 512, 528, radius) * 48, + ); + } + } + const shadow = await coloredBlurredAlpha( + shadowMask, + MASTER_SIZE, + MASTER_SIZE, + '#695B50', + 22, + ); + + const mark = await sharp({ + create: { width: MASTER_SIZE, height: MASTER_SIZE, channels: 4, background: '#00000000' }, + }).composite([{ input: shadow }, { input: surface }]) + .png({ compressionLevel: 9, adaptiveFiltering: false }) + .toBuffer(); + + return { mark, surface, sourceBounds: bounds }; +} + +async function prepareCoreMaster(sourceBuffer) { + const source = await rawRgba(sourceBuffer); + const bounds = alphaBounds(source.data, source.info.width, source.info.height, 8); + const crop = Buffer.alloc(bounds.width * bounds.height * 4); + for (let y = 0; y < bounds.height; y += 1) { + for (let x = 0; x < bounds.width; x += 1) { + const from = ((bounds.top + y) * source.info.width + bounds.left + x) * 4; + const to = (y * bounds.width + x) * 4; + const alpha = source.data[from + 3] < 8 ? 0 : source.data[from + 3]; + crop[to] = alpha === 0 ? 0 : source.data[from]; + crop[to + 1] = alpha === 0 ? 0 : source.data[from + 1]; + crop[to + 2] = alpha === 0 ? 0 : source.data[from + 2]; + crop[to + 3] = alpha; + } + } + return { + artwork: await pngFromRaw(crop, bounds.width, bounds.height), + bounds, + }; +} + +async function extractWordmark(referenceBuffer) { + // The approved board contains layout dividers on both sides of the wordmark + // panel. Keep the extraction window strictly inside those rules. + const region = { left: 875, top: 575, width: 490, height: 110 }; + const source = await sharp(referenceBuffer).extract(region).removeAlpha().raw().toBuffer({ resolveWithObject: true }); + const raw = Buffer.alloc(source.info.width * source.info.height * 4); + const charcoal = hexChannels(COLORS.deepCharcoal); + const red = hexChannels(COLORS.coreRed); + for (let y = 0; y < source.info.height; y += 1) { + for (let x = 0; x < source.info.width; x += 1) { + const from = (y * source.info.width + x) * 3; + const to = (y * source.info.width + x) * 4; + const r = source.data[from]; + const g = source.data[from + 1]; + const b = source.data[from + 2]; + const isRed = r > 120 && r - g > 45 && r - b > 40; + const luminance = r * 0.2126 + g * 0.7152 + b * 0.0722; + let alpha; + let color; + if (isRed) { + alpha = Math.max((255 - g) / (255 - red[1]), (255 - b) / (255 - red[2])); + color = red; + } else { + alpha = (250 - luminance) / (250 - 26); + color = charcoal; + } + alpha = alpha < 0.035 ? 0 : clamp(alpha); + raw[to] = color[0]; + raw[to + 1] = color[1]; + raw[to + 2] = color[2]; + raw[to + 3] = Math.round(alpha * 255); + } + } + const bounds = alphaBounds(raw, source.info.width, source.info.height, 8); + const padding = 4; + const left = Math.max(0, bounds.left - padding); + const top = Math.max(0, bounds.top - padding); + const width = Math.min(source.info.width - left, bounds.width + padding * 2); + const height = Math.min(source.info.height - top, bounds.height + padding * 2); + const cropped = await sharp(raw, { + raw: { width: source.info.width, height: source.info.height, channels: 4 }, + }).extract({ left, top, width, height }).png({ compressionLevel: 9, adaptiveFiltering: false }).toBuffer(); + + return sharp({ + create: { width: 950, height: 192, channels: 4, background: '#00000000' }, + }).composite([{ + input: await sharp(cropped).resize(918, 176, { + fit: 'contain', + kernel: sharp.kernel.lanczos3, + background: '#00000000', + }).toBuffer(), + left: 16, + top: 8, + }]).png({ compressionLevel: 9, adaptiveFiltering: false }).toBuffer(); +} + +async function recolorWordmark(wordmark, foreground, { preserveRed = true } = {}) { + const source = await rawRgba(wordmark); + const color = hexChannels(foreground); + for (let offset = 0; offset < source.data.length; offset += 4) { + const isRed = source.data[offset] > source.data[offset + 1] + 80; + if (preserveRed && isRed) continue; + source.data[offset] = color[0]; + source.data[offset + 1] = color[1]; + source.data[offset + 2] = color[2]; + } + return pngFromRaw(source.data, source.info.width, source.info.height); +} + +function dilateAlphaMask(mask, width, height, radius) { + const result = Buffer.alloc(mask.length); + const offsets = []; + for (let y = -radius; y <= radius; y += 1) { + for (let x = -radius; x <= radius; x += 1) { + if (x * x + y * y <= radius * radius) offsets.push([x, y]); + } + } + for (let y = 0; y < height; y += 1) { + for (let x = 0; x < width; x += 1) { + let alpha = 0; + for (const [offsetX, offsetY] of offsets) { + const sampleX = x + offsetX; + const sampleY = y + offsetY; + if (sampleX < 0 || sampleX >= width || sampleY < 0 || sampleY >= height) continue; + alpha = Math.max(alpha, mask[sampleY * width + sampleX]); + } + result[y * width + x] = alpha; + } + } + return result; +} + +async function buildOpticallyBoldWordmark( + wordmark, + foreground, + { radius = WORDMARK_STROKE_RADIUS, preserveRed = true } = {}, +) { + const source = await rawRgba(wordmark); + const neutralAlpha = Buffer.alloc(source.info.width * source.info.height); + const redAlpha = Buffer.alloc(source.info.width * source.info.height); + for (let index = 0; index < neutralAlpha.length; index += 1) { + const offset = index * 4; + const isRed = source.data[offset] > source.data[offset + 1] + 80; + if (isRed && preserveRed) { + redAlpha[index] = source.data[offset + 3]; + } else { + neutralAlpha[index] = source.data[offset + 3]; + } + } + + const expandedNeutral = dilateAlphaMask( + neutralAlpha, + source.info.width, + source.info.height, + radius, + ); + const foregroundRgb = hexChannels(foreground); + const redRgb = hexChannels(COLORS.coreRed); + const output = Buffer.alloc(source.data.length); + for (let index = 0; index < expandedNeutral.length; index += 1) { + const offset = index * 4; + const foregroundAlpha = expandedNeutral[index] / 255; + const accentAlpha = redAlpha[index] / 255; + const alpha = accentAlpha + foregroundAlpha * (1 - accentAlpha); + if (alpha === 0) continue; + const foregroundContribution = foregroundAlpha * (1 - accentAlpha); + output[offset] = Math.round( + (redRgb[0] * accentAlpha + foregroundRgb[0] * foregroundContribution) / alpha, + ); + output[offset + 1] = Math.round( + (redRgb[1] * accentAlpha + foregroundRgb[1] * foregroundContribution) / alpha, + ); + output[offset + 2] = Math.round( + (redRgb[2] * accentAlpha + foregroundRgb[2] * foregroundContribution) / alpha, + ); + output[offset + 3] = Math.round(alpha * 255); + } + return pngFromRaw(output, source.info.width, source.info.height); +} + +async function buildLockup(mark, wordmark, dividerColor) { + const divider = await sharp({ + create: { width: 4, height: 176, channels: 4, background: dividerColor }, + }).png({ compressionLevel: 9, adaptiveFiltering: false }).toBuffer(); + return sharp({ + create: { width: 1340, height: 256, channels: 4, background: '#00000000' }, + }).composite([ + { input: await resizePng(mark, 256), left: 0, top: 0 }, + { input: divider, left: 302, top: 40 }, + { input: wordmark, left: 352, top: 32 }, + ]).png({ compressionLevel: 9, adaptiveFiltering: false }).toBuffer(); +} + +async function buildCompactCore(coreArtwork, size) { + const metadata = await sharp(coreArtwork).metadata(); + if (!metadata.width || !metadata.height) throw new Error('Core master has invalid dimensions'); + + // Keep a target-specific transparent safe zone. Directly assigning the + // 1536x1024 master to a 32px tray slot causes dark alpha fringes and lets + // platform scaling choose inconsistent optical sizes. + const contentLimit = Math.max(1, Math.round(size * 0.875)); + const scale = Math.min(contentLimit / metadata.width, contentLimit / metadata.height); + const width = Math.max(1, Math.round(metadata.width * scale)); + const height = Math.max(1, Math.round(metadata.height * scale)); + const core = await resizePremultipliedRgba(coreArtwork, width, height); + + return sharp({ + create: { width: size, height: size, channels: 4, background: '#00000000' }, + }).composite([{ + input: core, + left: Math.floor((size - width) / 2), + top: Math.floor((size - height) / 2), + }]).png({ compressionLevel: 9, adaptiveFiltering: true }).toBuffer(); +} + +async function buildTrayLogo(appIcon, size) { + return resizePremultipliedRgba(appIcon, size, size); +} + +async function buildTrayState(appIcon, size, badgeColor) { + const logo = await buildTrayLogo(appIcon, size); + if (!badgeColor) return logo; + + const badge = Buffer.alloc(size * size * 4); + const rgb = hexChannels(badgeColor); + const radius = Math.max(2, size * 0.125); + const borderWidth = Math.max(0.75, size / 32); + const center = size - radius - Math.max(0.5, size * 0.035); + for (let y = 0; y < size; y += 1) { + for (let x = 0; x < size; x += 1) { + const offset = (y * size + x) * 4; + const outer = circleCoverage(x, y, center, center, radius + borderWidth); + const inner = circleCoverage(x, y, center, center, radius); + const border = Math.max(0, outer - inner); + const alpha = Math.max(inner, border); + if (alpha === 0) continue; + const useBorder = border > inner; + badge[offset] = useBorder ? 255 : rgb[0]; + badge[offset + 1] = useBorder ? 253 : rgb[1]; + badge[offset + 2] = useBorder ? 252 : rgb[2]; + badge[offset + 3] = Math.round(alpha * 255); + } + } + + return sharp(logo).composite([{ input: await pngFromRaw(badge, size, size) }]) + .png({ compressionLevel: 9, adaptiveFiltering: true }) + .toBuffer(); +} + +async function roundedSwatch(color) { + const size = 104; + const raw = Buffer.alloc(size * size * 4); + const rgb = hexChannels(color); + for (let y = 0; y < size; y += 1) { + for (let x = 0; x < size; x += 1) { + const offset = (y * size + x) * 4; + const alpha = roundedRectangleCoverage(x, y, 0, 0, size, size, 20); + raw[offset] = rgb[0]; + raw[offset + 1] = rgb[1]; + raw[offset + 2] = rgb[2]; + raw[offset + 3] = Math.round(alpha * 255); + } + } + return pngFromRaw(raw, size, size); +} + +async function buildBrandPreview(variants) { + const composites = [ + { input: labelSvg(1450, 54, 'Sparo OS raster brand asset matrix', 36), left: 72, top: 50 }, + { input: labelSvg(560, 38, 'Circular default logo', 22), left: 84, top: 126 }, + { input: await resizePng(variants.mark, 510), left: 84, top: 176 }, + { input: labelSvg(390, 38, 'Circular application icon', 22), left: 710, top: 126 }, + { input: await resizePng(variants.appIcon, 330), left: 748, top: 184 }, + { input: labelSvg(440, 38, 'Reference-derived wordmark', 22), left: 710, top: 560 }, + { input: await sharp(variants.wordmarkPrimary).resize({ width: 760, fit: 'contain' }).toBuffer(), left: 710, top: 614 }, + { input: labelSvg(440, 38, 'Horizontal lockup', 22), left: 710, top: 800 }, + { input: await sharp(variants.lockupPrimary).resize({ width: 800, fit: 'contain' }).toBuffer(), left: 710, top: 848 }, + ]; + const palette = [ + ['CORE RED', COLORS.coreRed], + ['WARM WHITE', COLORS.warmWhite], + ['SOFT IVORY', COLORS.softIvory], + ['SAND GRAY', COLORS.sandGray], + ['DEEP CHARCOAL', COLORS.deepCharcoal], + ]; + for (const [index, [name, color]] of palette.entries()) { + const left = 76 + index * 124; + composites.push({ input: await roundedSwatch(color), left, top: 792 }); + composites.push({ input: labelSvg(112, 24, name, 12), left: left - 2, top: 910 }); + composites.push({ input: labelSvg(112, 22, color, 12), left: left - 2, top: 936 }); + } + return sharp({ create: { width: 1600, height: 1040, channels: 4, background: '#FFFFFF' } }) + .composite(composites) + .png({ compressionLevel: 9, adaptiveFiltering: false }) + .toBuffer(); +} + +async function buildSmallPreview(smallMarks, smallAppIcons) { + const composites = [ + { input: labelSvg(1080, 52, 'Sparo small-size raster QA', 34), left: 60, top: 42 }, + { input: labelSvg(480, 34, 'Default circular logo', 21), left: 72, top: 124 }, + { input: labelSvg(480, 34, 'Application icon', 21), left: 620, top: 124 }, + ]; + for (const [index, size] of SMALL_SIZES.entries()) { + const top = 184 + index * 110; + composites.push({ input: await resizePng(smallMarks[size], 84), left: 76, top }); + composites.push({ input: await resizePng(smallAppIcons[size], 84), left: 624, top }); + composites.push({ input: smallMarks[size], left: 206, top: top + 22 }); + composites.push({ input: smallAppIcons[size], left: 754, top: top + 22 }); + composites.push({ input: labelSvg(250, 30, size + ' px raster / native', 18), left: 292, top: top + 28 }); + composites.push({ input: labelSvg(250, 30, size + ' px raster / native', 18), left: 840, top: top + 28 }); + } + return sharp({ create: { width: 1160, height: 670, channels: 4, background: '#FFFFFF' } }) + .composite(composites) + .png({ compressionLevel: 9, adaptiveFiltering: false }) + .toBuffer(); +} + +async function buildStartupBrandPreview(mark, wordmarkPrimary, wordmarkReversed) { + const lightPanel = await sharp({ + create: { width: 500, height: 500, channels: 4, background: COLORS.warmWhite }, + }).png().toBuffer(); + const darkPanel = await sharp({ + create: { width: 500, height: 500, channels: 4, background: COLORS.deepCharcoal }, + }).png().toBuffer(); + const mark128 = await resizePng(mark, 128); + const primary220 = await sharp(wordmarkPrimary).resize({ width: 220, fit: 'contain' }).png().toBuffer(); + const reversed220 = await sharp(wordmarkReversed).resize({ width: 220, fit: 'contain' }).png().toBuffer(); + return sharp({ create: { width: 1100, height: 620, channels: 4, background: '#FFFFFF' } }) + .composite([ + { input: labelSvg(1000, 52, 'Sparo startup brand lockup / actual CSS pixel scale', 32), left: 50, top: 38 }, + { input: lightPanel, left: 40, top: 100 }, + { input: darkPanel, left: 560, top: 100 }, + { input: labelSvg(440, 32, 'LIGHT', 17, COLORS.deepCharcoal, 'middle'), left: 70, top: 126 }, + { input: labelSvg(440, 32, 'DARK', 17, COLORS.reversed, 'middle'), left: 590, top: 126 }, + { input: mark128, left: 226, top: 190 }, + { input: mark128, left: 746, top: 190 }, + { input: primary220, left: 180, top: 336 }, + { input: reversed220, left: 700, top: 336 }, + ]) + .png({ compressionLevel: 9, adaptiveFiltering: false }) + .toBuffer(); +} + +async function buildAppIconSizePreview(appIcons) { + const sizes = [16, 24, 32, 48, 64, 128]; + const composites = [ + { input: labelSvg(1080, 52, 'Sparo application icon size policy', 34), left: 56, top: 42 }, + { input: labelSvg(980, 32, 'Circular material logo at every size / target-specific alpha-safe raster reduction', 18), left: 58, top: 92 }, + ]; + for (const [index, size] of sizes.entries()) { + const icon = appIcons[size]; + const left = 58 + index * 182; + const enlarged = size < 128 + ? await sharp(icon).resize(128, 128, { kernel: sharp.kernel.nearest }).png().toBuffer() + : icon; + composites.push({ input: enlarged, left, top: 156 }); + composites.push({ input: icon, left: left + Math.floor((128 - size) / 2), top: 304 }); + composites.push({ input: labelSvg(154, 28, size + ' px', 17, COLORS.deepCharcoal, 'middle'), left: left - 12, top: 448 }); + composites.push({ + input: labelSvg( + 154, + 26, + 'CIRCULAR', + 14, + COLORS.coreRed, + 'middle', + ), + left: left - 12, + top: 482, + }); + } + return sharp({ create: { width: 1160, height: 550, channels: 4, background: '#FFFFFF' } }) + .composite(composites) + .png({ compressionLevel: 9, adaptiveFiltering: false }) + .toBuffer(); +} + +async function buildTrayPreview(trayStates, traySizes) { + const composites = [ + { input: labelSvg(920, 52, 'Sparo full-logo tray assets', 34), left: 54, top: 42 }, + { input: labelSvg(820, 32, 'Edge-fitted circular Logo; active states add a compact badge.', 17), left: 56, top: 92 }, + ]; + for (const [index, [state, icon]] of Object.entries(trayStates).entries()) { + const left = 64 + index * 218; + composites.push({ + input: await sharp(icon).resize(128, 128, { kernel: sharp.kernel.nearest }).png().toBuffer(), + left, + top: 142, + }); + composites.push({ input: icon, left: left + 160, top: 190 }); + composites.push({ input: labelSvg(192, 30, state.toUpperCase(), 18, COLORS.deepCharcoal, 'middle'), left, top: 294 }); + } + for (const [index, [size, icon]] of Object.entries(traySizes).entries()) { + const left = 72 + index * 170; + composites.push({ + input: await sharp(icon).resize(96, 96, { kernel: sharp.kernel.nearest }).png().toBuffer(), + left, + top: 388, + }); + composites.push({ input: icon, left: left + 112, top: 420 }); + composites.push({ input: labelSvg(142, 28, size + ' px', 17, COLORS.deepCharcoal, 'middle'), left: left - 12, top: 500 }); + } + return sharp({ create: { width: 940, height: 570, channels: 4, background: '#FFFFFF' } }) + .composite(composites) + .png({ compressionLevel: 9, adaptiveFiltering: false }) + .toBuffer(); +} + +function manifestFor(assets, sources, metadata, sourceBounds, coreBounds) { + const files = [...assets.entries()] + // QA boards contain host-rendered labels. Their pixels can differ with the + // system font stack even when every product asset is byte-identical. + .filter(([filePath]) => !isQaArtifact(filePath)) + .sort(([left], [right]) => left.localeCompare(right)) + .map(([filePath, value]) => ({ path: filePath, bytes: value.length, sha256: sha256(value) })); + return { + schemaVersion: 5, + brandVersion: '2026.08-tight-circular-system-icons', + status: 'current', + generatedBy: 'pnpm run brand:generate', + provenance: { + mark: { + path: MARK_SOURCE, + pixels: [metadata.mark.width, metadata.mark.height], + sha256: sha256(sources[MARK_SOURCE]), + treatment: 'Low-alpha speckles removed, visible bounds normalized to a true circle, supplied material detail preserved.', + }, + core: { + path: CORE_SOURCE, + pixels: [metadata.core.width, metadata.core.height], + sha256: sha256(sources[CORE_SOURCE]), + treatment: 'Source silhouette and material preserved for compact in-product core exports; target sizes use alpha-safe reduction and lossless PNG compression.', + }, + reference: { + path: REFERENCE_SOURCE, + pixels: [metadata.reference.width, metadata.reference.height], + sha256: sha256(sources[REFERENCE_SOURCE]), + }, + appIcon: 'Transparent margins are removed on all four sides of the normalized circular material Logo before platform-size reduction; source proportions and material are preserved.', + wordmark: 'Deterministic transparent raster extraction from the approved identity board with a global 3px optical stroke expansion; the approved letter geometry and red core are preserved without redrawn paths.', + }, + roles: { + defaultLogo: 'circular', + applicationIcon: 'circular at every size, including taskbar and window icons', + trayIcon: 'edge-fitted circular material Logo with the red core; active states add a compact status badge', + wordmark: 'Globally optically bold Sparo OS wordmark with a red core inside the lowercase a', + }, + formatPolicy: 'Brand artwork is PNG-only. Product code must not redraw or embed brand geometry as SVG.', + qaPolicy: 'QA preview boards are validated for presence, PNG format, and dimensions but excluded from cross-platform byte hashes because their labels use host font rasterization.', + colors: { + coreRed: COLORS.coreRed, + warmWhite: COLORS.warmWhite, + softIvory: COLORS.softIvory, + sandGray: COLORS.sandGray, + deepCharcoal: COLORS.deepCharcoal, + }, + sourceProcessing: { + alphaThreshold: 8, + detectedVisibleBounds: sourceBounds, + detectedCoreBounds: coreBounds, + normalizedCanvas: [MASTER_SIZE, MASTER_SIZE], + wordmark: { + neutralStrokeExpansionPx: WORDMARK_STROKE_RADIUS, + primaryAndReversedPreserveRedCore: true, + redrawnGeometry: false, + }, + }, + sizePolicy: { + canonicalMinimumPx: 64, + responsiveMinimumPx: 16, + rule: 'Use the normalized raster master at 64px and above and target-specific raster reductions at 16-48px.', + smallSizes: SMALL_SIZES, + }, + appIcon: { + master: 'exports/app-icon/sparo-app-icon-1024.png', + geometry: 'circular', + transparentOutsideCircle: true, + edgeFit: 'Visible bounds fill all four sides of the square canvas; only the circular corners remain transparent.', + smallSizeProcessing: 'Premultiplied-alpha Lanczos reduction from the normalized circular mark.', + iosOpaqueBackground: COLORS.warmWhite, + }, + tray: { + geometry: 'Direct target-size raster derivatives of the edge-fitted circular material Logo with its red core.', + stateBadges: TRAY_STATE_BADGES, + sizes: TRAY_SIZES, + contentLimit: 'Visible circular Logo fills all four sides of the target canvas without added transparent padding.', + compression: 'Lossless PNG, level 9, adaptive filtering.', + }, + sources: Object.fromEntries( + Object.entries(sources).map(([filePath, value]) => [filePath, { bytes: value.length, sha256: sha256(value) }]), + ), + files, + }; +} + +async function buildBrandAssets() { + const [markSource, coreSource, referenceSource] = await Promise.all([ + readFile(path.join(BRAND_ROOT, MARK_SOURCE)), + readFile(path.join(BRAND_ROOT, CORE_SOURCE)), + readFile(path.join(BRAND_ROOT, REFERENCE_SOURCE)), + ]); + const [markMetadata, coreMetadata, referenceMetadata] = await Promise.all([ + sharp(markSource).metadata(), + sharp(coreSource).metadata(), + sharp(referenceSource).metadata(), + ]); + if (!markMetadata.hasAlpha || !markMetadata.width || !markMetadata.height) { + throw new Error(MARK_SOURCE + ' must be a transparent PNG'); + } + if (!coreMetadata.hasAlpha || !coreMetadata.width || !coreMetadata.height) { + throw new Error(CORE_SOURCE + ' must be a transparent PNG'); + } + if (referenceMetadata.width !== 1448 || referenceMetadata.height !== 1086) { + throw new Error(REFERENCE_SOURCE + ' must retain the approved 1448x1086 board'); + } + + const normalized = await normalizeMarkMaster(markSource); + const core = await prepareCoreMaster(coreSource); + const appIcon = await cropTransparentMargins(normalized.surface, MASTER_SIZE); + const wordmarkSource = await extractWordmark(referenceSource); + const wordmarkPrimary = await buildOpticallyBoldWordmark(wordmarkSource, COLORS.deepCharcoal); + const wordmarkReversed = await buildOpticallyBoldWordmark(wordmarkSource, COLORS.reversed); + const wordmarkMono = await buildOpticallyBoldWordmark( + wordmarkSource, + COLORS.deepCharcoal, + { preserveRed: false }, + ); + const lockupPrimary = await buildLockup(normalized.mark, wordmarkPrimary, COLORS.sandGray); + const lockupReversed = await buildLockup(normalized.mark, wordmarkReversed, '#8A8580'); + const lockupMono = await buildLockup( + await recolorWordmark(normalized.mark, COLORS.deepCharcoal, { preserveRed: false }), + wordmarkMono, + COLORS.deepCharcoal, + ); + const variants = { + mark: normalized.mark, + appIcon, + wordmarkPrimary, + wordmarkReversed, + wordmarkMono, + lockupPrimary, + lockupReversed, + lockupMono, + }; + + const assets = new Map(); + for (const size of MARK_SIZES) { + assets.set('exports/mark/sparo-mark-' + size + '.png', await resizePng(normalized.mark, size)); + } + for (const size of APP_ICON_SIZES) { + assets.set( + 'exports/app-icon/sparo-app-icon-' + size + '.png', + await resizePremultipliedRgba(appIcon, size, size), + ); + } + assets.set('exports/wordmark/sparo-wordmark-primary.png', wordmarkPrimary); + assets.set('exports/wordmark/sparo-wordmark-reversed.png', wordmarkReversed); + assets.set('exports/wordmark/sparo-wordmark-mono.png', wordmarkMono); + assets.set('exports/lockup/sparo-lockup-horizontal-primary.png', lockupPrimary); + assets.set('exports/lockup/sparo-lockup-horizontal-reversed.png', lockupReversed); + assets.set('exports/lockup/sparo-lockup-horizontal-mono.png', lockupMono); + + const smallMarks = {}; + const smallAppIcons = {}; + for (const size of SMALL_SIZES) { + smallMarks[size] = assets.get('exports/mark/sparo-mark-' + size + '.png'); + smallAppIcons[size] = assets.get('exports/app-icon/sparo-app-icon-' + size + '.png'); + } + + const traySizes = {}; + for (const size of TRAY_SIZES) { + assets.set('exports/core/sparo-core-' + size + '.png', await buildCompactCore(core.artwork, size)); + traySizes[size] = await buildTrayLogo(appIcon, size); + assets.set('exports/tray/sparo-tray-idle-' + size + '.png', traySizes[size]); + assets.set('exports/tray/sparo-tray-' + size + '-dark.png', traySizes[size]); + assets.set('exports/tray/sparo-tray-' + size + '-light.png', traySizes[size]); + } + const trayStates = {}; + for (const [state, badgeColor] of Object.entries(TRAY_STATE_BADGES)) { + trayStates[state] = await buildTrayState(appIcon, 32, badgeColor); + assets.set('exports/tray/sparo-tray-' + state + '.png', trayStates[state]); + } + + for (const size of [16, 32, 48]) { + assets.set('exports/web/favicon-' + size + '.png', smallAppIcons[size]); + } + assets.set('exports/web/apple-touch-icon-180.png', await resizePng(appIcon, 180)); + assets.set('exports/web/web-app-icon-192.png', await resizePng(appIcon, 192)); + assets.set('exports/web/web-app-icon-512.png', await resizePng(appIcon, 512)); + const appIconPreviewSizes = Object.fromEntries( + [16, 24, 32, 48, 64, 128].map((size) => [ + size, + assets.get('exports/app-icon/sparo-app-icon-' + size + '.png'), + ]), + ); + assets.set('qa/sparo-brand-asset-matrix.png', await buildBrandPreview(variants)); + assets.set('qa/sparo-app-icon-size-matrix.png', await buildAppIconSizePreview(appIconPreviewSizes)); + assets.set('qa/sparo-small-mark-matrix.png', await buildSmallPreview(smallMarks, smallAppIcons)); + assets.set('qa/sparo-startup-brand-preview.png', await buildStartupBrandPreview( + normalized.mark, + wordmarkPrimary, + wordmarkReversed, + )); + assets.set('qa/sparo-tray-state-matrix.png', await buildTrayPreview(trayStates, traySizes)); + + const sources = { + [MARK_SOURCE]: markSource, + [CORE_SOURCE]: coreSource, + [REFERENCE_SOURCE]: referenceSource, + }; + assets.set('manifest.json', Buffer.from(JSON.stringify(manifestFor( + assets, + sources, + { + mark: markMetadata, + core: coreMetadata, + reference: referenceMetadata, + }, + normalized.sourceBounds, + core.bounds, + ), null, 2) + '\n')); + return assets; +} + +async function walkFiles(directory) { + if (!existsSync(directory)) return []; + const result = []; + for (const entry of await readdir(directory, { withFileTypes: true })) { + const fullPath = path.join(directory, entry.name); + if (entry.isDirectory()) result.push(...await walkFiles(fullPath)); + if (entry.isFile()) result.push(fullPath); + } + return result; +} + +async function clearGeneratedAssets() { + for (const relativePath of ['exports', 'qa']) { + await rm(path.join(BRAND_ROOT, relativePath), { force: true, recursive: true }); + } + await rm(path.join(BRAND_ROOT, 'manifest.json'), { force: true }); +} + +export async function generateBrandAssets() { + const assets = await buildBrandAssets(); + await clearGeneratedAssets(); + for (const [relativePath, value] of assets) { + const destination = path.join(BRAND_ROOT, relativePath); + await mkdir(path.dirname(destination), { recursive: true }); + await writeFile(destination, value); + } + const qaCount = [...assets.keys()].filter(isQaArtifact).length; + const deterministicCount = assets.size - qaCount; + console.log( + 'Generated ' + deterministicCount + ' deterministic Sparo brand files and ' + + qaCount + ' host-rendered QA previews.', + ); +} + +export async function checkBrandAssets() { + const expected = await buildBrandAssets(); + const failures = []; + for (const [relativePath, value] of expected) { + try { + const actual = await readFile(path.join(BRAND_ROOT, relativePath)); + if (isQaArtifact(relativePath)) { + const [actualMetadata, expectedMetadata] = await Promise.all([ + sharp(actual).metadata(), + sharp(value).metadata(), + ]); + if ( + actualMetadata.format !== 'png' || + actualMetadata.width !== expectedMetadata.width || + actualMetadata.height !== expectedMetadata.height + ) { + failures.push(relativePath + ' has an invalid format or dimensions'); + } + } else if (!actual.equals(value)) { + failures.push(relativePath + ' is stale'); + } + } catch { + failures.push(relativePath + ' is missing'); + } + } + const expectedPaths = new Set(expected.keys()); + for (const directory of ['exports', 'qa']) { + for (const filePath of await walkFiles(path.join(BRAND_ROOT, directory))) { + const relativePath = path.relative(BRAND_ROOT, filePath).replaceAll('\\', '/'); + if (!expectedPaths.has(relativePath)) failures.push(relativePath + ' is unmanaged'); + if (path.extname(relativePath).toLowerCase() === '.svg') failures.push(relativePath + ' violates the PNG-only policy'); + } + } + for (const legacyPath of [ + 'source/sparo-mark-full.svg', + 'source/sparo-app-icon.svg', + 'source/sparo-wordmark.svg', + 'source/sparo-lockup-horizontal.svg', + 'source/small', + ]) { + if (existsSync(path.join(BRAND_ROOT, legacyPath))) failures.push(legacyPath + ' is a legacy vector source'); + } + if (failures.length > 0) { + throw new Error('Brand assets are not current:\n- ' + failures.join('\n- ') + '\nRun pnpm run brand:generate.'); + } + const qaCount = [...expected.keys()].filter(isQaArtifact).length; + const deterministicCount = expected.size - qaCount; + console.log( + 'Verified ' + deterministicCount + ' deterministic Sparo brand files and ' + + qaCount + ' host-rendered QA previews.', + ); +} + +const isMain = process.argv[1] && path.resolve(process.argv[1]) === fileURLToPath(import.meta.url); +if (isMain) { + const shouldCheck = process.argv.includes('--check'); + (shouldCheck ? checkBrandAssets() : generateBrandAssets()).catch((error) => { + console.error(error instanceof Error ? error.message : error); + process.exitCode = 1; + }); +} diff --git a/scripts/generate-icons.mjs b/scripts/generate-icons.mjs deleted file mode 100644 index 52056606..00000000 --- a/scripts/generate-icons.mjs +++ /dev/null @@ -1,267 +0,0 @@ -/** - * Generate rounded-rect Tauri desktop icons from the new logo. - * - * Strategy: start from sparo-logo-mark.png (logo mark on transparent bg, - * trimmed tight). Composite it onto a rounded-rect filled with the brand dark - * surface. Padding is pixel-controlled so small sizes stay crisp and legible. - * - * Run AFTER `pnpm tauri icon` so rounded versions overwrite the plain ones. - * Handles both the main desktop app and the installer. - */ - -import { createRequire } from 'module'; -import { fileURLToPath } from 'url'; -import path from 'path'; -import fs from 'fs'; - -const require = createRequire(import.meta.url); -const sharp = require('sharp'); - -const __dirname = path.dirname(fileURLToPath(import.meta.url)); -const root = path.resolve(__dirname, '..'); - -// Source = trimmed logo mark (transparent background). -const markSrc = path.join(root, 'image', 'sparo-logo-mark.png'); -// Brand app icon background. -const BG = { r: 26, g: 26, b: 26 }; - -// Padding ratio (fraction of icon size used as inner padding on each side). -// Smaller padding → mark fills more of the icon. Adaptive: tiny icons need -// minimal padding so the mark doesn't shrink to an unreadable blob. -function paddingRatioFor(size) { - if (size <= 20) return 0.02; - if (size <= 32) return 0.035; - if (size <= 48) return 0.05; - if (size <= 128) return 0.07; - return 0.085; -} - -// Rounded-rect corner radius (ratio of size). -function radiusRatioFor(size) { - if (size <= 20) return 0.20; - if (size <= 48) return 0.22; - return 0.225; -} - -// Sharpen strength by size. -function sharpenFor(size) { - if (size <= 24) return { sigma: 0.7, m1: 1.4, m2: 2.8 }; - if (size <= 48) return { sigma: 0.8, m1: 1.0, m2: 2.0 }; - if (size <= 128) return { sigma: 0.5, m1: 1.0, m2: 1.5 }; - return { sigma: 0.3, m1: 1.0, m2: 1.0 }; -} - -function roundedBackgroundSvg(size) { - const r = Math.round(size * radiusRatioFor(size)); - const hex = `rgb(${BG.r},${BG.g},${BG.b})`; - return Buffer.from( - `` + - `` + - `` - ); -} - -function roundedMaskSvg(size) { - const r = Math.round(size * radiusRatioFor(size)); - return Buffer.from( - `` + - `` + - `` - ); -} - -/** - * Build a rounded icon: - * 1. Render the rounded-rect background from SVG (crisp vector edges). - * 2. Resize the transparent mark to (size - 2*padding) with high-quality filter. - * 3. Composite mark at centre. - * 4. Sharpen gently for small sizes. - * 5. Apply rounded-rect mask to guarantee clean corners (alpha-cut). - */ -async function makeRoundedIcon(markBuffer, size) { - const pad = Math.round(size * paddingRatioFor(size)); - const inner = Math.max(1, size - pad * 2); - - const markResized = await sharp(markBuffer) - .ensureAlpha() - .resize(inner, inner, { - fit: 'contain', - background: { r: 0, g: 0, b: 0, alpha: 0 }, - kernel: sharp.kernel.lanczos3, - }) - .toBuffer(); - - const bg = await sharp(roundedBackgroundSvg(size), { density: 384 }) - .resize(size, size) - .png() - .toBuffer(); - - const composited = await sharp(bg) - .composite([{ input: markResized, top: pad, left: pad }]) - .toBuffer(); - - const sh = sharpenFor(size); - return sharp(composited) - .sharpen({ sigma: sh.sigma, m1: sh.m1, m2: sh.m2 }) - .composite([{ input: roundedMaskSvg(size), blend: 'dest-in' }]) - .png({ compressionLevel: 9 }) - .toBuffer(); -} - -// Multi-size ICO writer with PNG frames (PNG-in-ICO, Vista+). -// -// Frame order matters a lot on Tauri 2 (up to at least 2.11): -// tauri-codegen's `new_ico()` only reads `entries()[0]` and uses that single -// RGBA for the runtime window icon AND the taskbar HICON — every other frame -// in the ICO is ignored at runtime. So we must put the HIGHEST resolution -// first; Windows will downsample from 256 to taskbar size (32 / 40 / 48 / 64 -// depending on DPI) using its high-quality filter, which looks far crisper -// than a pre-baked 32x32 bitmap. -// bitCount=32 (RGBA) matches stock Tauri output; bitCount=0 makes some -// Windows icon selection paths treat the frame as low-quality. -async function writeIco(markBuf, outPath) { - const icoSizes = [256, 128]; - const pngFrames = await Promise.all(icoSizes.map((s) => makeRoundedIcon(markBuf, s))); - - const count = icoSizes.length; - let dataOffset = 6 + count * 16; - const header = Buffer.alloc(6); - header.writeUInt16LE(0, 0); - header.writeUInt16LE(1, 2); - header.writeUInt16LE(count, 4); - - const entries = icoSizes.map((s, i) => { - const entry = Buffer.alloc(16); - entry.writeUInt8(s >= 256 ? 0 : s, 0); - entry.writeUInt8(s >= 256 ? 0 : s, 1); - entry.writeUInt8(0, 2); - entry.writeUInt8(0, 3); - entry.writeUInt16LE(1, 4); // planes - entry.writeUInt16LE(32, 6); // bitCount = 32 (RGBA) — matches stock Tauri output - entry.writeUInt32LE(pngFrames[i].length, 8); - entry.writeUInt32LE(dataOffset, 12); - dataOffset += pngFrames[i].length; - return entry; - }); - - fs.writeFileSync(outPath, Buffer.concat([header, ...entries, ...pngFrames])); -} - -async function writeFile(filePath, buf) { - try { - fs.writeFileSync(filePath, buf); - console.log(` ${path.basename(filePath)}`); - } catch { - console.warn(` ${path.basename(filePath)} (skipped - file locked)`); - } -} - -async function generateForDir(iconDir) { - const markBuf = fs.readFileSync(markSrc); - - try { - await writeIco(markBuf, path.join(iconDir, 'icon.ico')); - console.log(` icon.ico (rounded, 128-256px)`); - } catch { - console.warn(` icon.ico (skipped - file locked)`); - } - - await writeFile(path.join(iconDir, 'icon.png'), await makeRoundedIcon(markBuf, 512)); - - for (const [name, size] of [ - ['32x32.png', 32], - ['64x64.png', 64], - ['128x128.png', 128], - ['128x128@2x.png', 256], - ]) { - await writeFile(path.join(iconDir, name), await makeRoundedIcon(markBuf, size)); - } - - for (const [name, size] of [ - ['Square30x30Logo.png', 30], - ['Square44x44Logo.png', 44], - ['Square71x71Logo.png', 71], - ['Square89x89Logo.png', 89], - ['Square107x107Logo.png', 107], - ['Square142x142Logo.png', 142], - ['Square150x150Logo.png', 150], - ['Square284x284Logo.png', 284], - ['Square310x310Logo.png', 310], - ['StoreLogo.png', 50], - ]) { - await writeFile(path.join(iconDir, name), await makeRoundedIcon(markBuf, size)); - } - - await writeFile( - path.join(iconDir, 'app-icon-rounded-source.png'), - await makeRoundedIcon(markBuf, 1024), - ); - - const appIconPath = path.join(iconDir, 'sparo-app-icon.png'); - if (fs.existsSync(appIconPath)) { - await writeFile(appIconPath, await makeRoundedIcon(markBuf, 512)); - } - - const iosDir = path.join(iconDir, 'ios'); - if (fs.existsSync(iosDir)) { - for (const f of fs.readdirSync(iosDir)) { - if (!f.endsWith('.png')) continue; - const m = f.match(/(\d+)x\1@(\d+)x/); - if (m) { - const size = parseInt(m[1]) * parseInt(m[2]); - try { - fs.writeFileSync(path.join(iosDir, f), await makeRoundedIcon(markBuf, size)); - console.log(` ios/${f}`); - } catch { - console.warn(` ios/${f} (skipped - file locked)`); - } - } - } - } - - const androidDir = path.join(iconDir, 'android'); - if (fs.existsSync(androidDir)) { - const sizeMap = { 'mipmap-mdpi': 48, 'mipmap-hdpi': 72, 'mipmap-xhdpi': 96, 'mipmap-xxhdpi': 144, 'mipmap-xxxhdpi': 192 }; - for (const [folder, size] of Object.entries(sizeMap)) { - const dir = path.join(androidDir, folder); - if (!fs.existsSync(dir)) continue; - for (const f of fs.readdirSync(dir)) { - if (!f.endsWith('.png')) continue; - await writeFile(path.join(dir, f), await makeRoundedIcon(markBuf, size)); - } - } - } - - const hicolorDir = path.join(iconDir, 'hicolor'); - if (fs.existsSync(hicolorDir)) { - for (const sizeFolder of fs.readdirSync(hicolorDir)) { - const appsDir = path.join(hicolorDir, sizeFolder, 'apps'); - if (!fs.existsSync(appsDir)) continue; - const size = parseInt(sizeFolder); - if (!size) continue; - const oldFile = path.join(appsDir, 'sparo-desktop.png'); - const newFile = path.join(appsDir, 'sparo-os.png'); - if (fs.existsSync(oldFile) && !fs.existsSync(newFile)) { - fs.renameSync(oldFile, newFile); - } - for (const f of fs.readdirSync(appsDir)) { - if (!f.endsWith('.png')) continue; - await writeFile(path.join(appsDir, f), await makeRoundedIcon(markBuf, size)); - } - } - } -} - -async function run() { - const targets = [ - path.join(root, 'src', 'apps', 'desktop', 'icons'), - path.join(root, 'installer', 'src-tauri', 'icons'), - ]; - for (const dir of targets) { - console.log(`\n[${dir}]`); - await generateForDir(dir); - } - console.log('\nAll rounded icons generated successfully.'); -} - -run().catch((err) => { console.error(err); process.exit(1); }); diff --git a/scripts/generate-mobile-web-icons.mjs b/scripts/generate-mobile-web-icons.mjs deleted file mode 100644 index 4cc81678..00000000 --- a/scripts/generate-mobile-web-icons.mjs +++ /dev/null @@ -1,61 +0,0 @@ -/** - * Sync mobile-remote Web branding from repository `image/` sources: - * - Rounded favicons from image/sparo-app-icon-rounded.png (home-screen / tab icon) - * - Logo mark from image/sparo-logo-mark.png → bundled assets - */ -import { createRequire } from 'module'; -import { fileURLToPath } from 'url'; -import path from 'path'; -import fs from 'fs'; - -const require = createRequire(import.meta.url); -const sharp = require('sharp'); - -const __dirname = path.dirname(fileURLToPath(import.meta.url)); -const root = path.resolve(__dirname, '..'); -const imageDir = path.join(root, 'image'); -const srcMark = fs.readFileSync(path.join(imageDir, 'sparo-app-icon-rounded.png')); -const logoMark = 'sparo-logo-mark.png'; -const publicDir = path.join(root, 'src', 'mobile-web', 'public'); -const assetsDir = path.join(root, 'src', 'mobile-web', 'src', 'assets'); - -function roundedMask(size, ratio = 0.225) { - const r = Math.round(size * ratio); - return Buffer.from( - `` + - `` + - `` - ); -} - -async function makeRounded(size) { - const resized = await sharp(srcMark).resize(size, size, { fit: 'cover', position: 'centre' }).toBuffer(); - return sharp(resized).composite([{ input: roundedMask(size), blend: 'dest-in' }]).png().toBuffer(); -} - -function copyLogoMark() { - if (!fs.existsSync(assetsDir)) { - fs.mkdirSync(assetsDir, { recursive: true }); - } - const from = path.join(imageDir, logoMark); - if (!fs.existsSync(from)) { - console.warn(`skip missing logo mark: ${from}`); - return; - } - fs.copyFileSync(from, path.join(assetsDir, logoMark)); - console.log(`copied ${logoMark} → mobile-web src/assets`); -} - -async function run() { - fs.writeFileSync(path.join(publicDir, 'favicon.png'), await makeRounded(32)); - console.log('wrote favicon.png (32x32 rounded)'); - - fs.writeFileSync(path.join(publicDir, 'apple-touch-icon.png'), await makeRounded(180)); - console.log('wrote apple-touch-icon.png (180x180 rounded)'); - - copyLogoMark(); - - console.log('Done.'); -} - -run().catch((e) => { console.error(e); process.exit(1); }); diff --git a/scripts/generate-rounded-app-icon.mjs b/scripts/generate-rounded-app-icon.mjs deleted file mode 100644 index 462018a6..00000000 --- a/scripts/generate-rounded-app-icon.mjs +++ /dev/null @@ -1,31 +0,0 @@ -import sharp from "sharp"; - -const input = process.argv[2] ?? "png/logo-dark.png"; -const output = process.argv[3] ?? "src/apps/desktop/icons/app-icon-rounded-source.png"; -const logoOutput = process.argv[4] ?? "src/apps/desktop/icons/sparo-app-icon.png"; -const hicolorRoot = "src/apps/desktop/icons/hicolor"; - -const size = 1024; -const radius = Math.round(size * 0.22); -const roundedRect = Buffer.from( - ` - - `, -); - -const roundedIcon = await sharp(input) - .resize(size, size, { fit: "cover", position: "center" }) - .ensureAlpha() - .composite([{ input: roundedRect, blend: "dest-in" }]) - .png() - .toBuffer(); - -await sharp(roundedIcon).toFile(output); -await sharp(roundedIcon).resize(512, 512).png().toFile(logoOutput); - -for (const iconSize of [16, 32, 48, 64, 96, 128, 256, 512]) { - await sharp(roundedIcon) - .resize(iconSize, iconSize) - .png() - .toFile(`${hicolorRoot}/${iconSize}x${iconSize}/apps/sparo-os.png`); -} diff --git a/scripts/mobile-web-build.cjs b/scripts/mobile-web-build.cjs index 20aa5d3d..552670be 100644 --- a/scripts/mobile-web-build.cjs +++ b/scripts/mobile-web-build.cjs @@ -105,9 +105,9 @@ function buildMobileWeb(options = {}) { cleanStaleMobileWebResources(logInfo); - const brandSync = runSilent('node scripts/generate-mobile-web-icons.mjs', ROOT_DIR); + const brandSync = runSilent('node scripts/sync-brand-assets.mjs --target mobile', ROOT_DIR); if (!brandSync.ok) { - logError('mobile-web brand sync failed (scripts/generate-mobile-web-icons.mjs)'); + logError('mobile-web brand sync failed (scripts/sync-brand-assets.mjs)'); const output = tailOutput(brandSync.stderr || brandSync.stdout); if (output) logError(output); return { ok: false }; diff --git a/scripts/sync-brand-assets.mjs b/scripts/sync-brand-assets.mjs new file mode 100644 index 00000000..92eca99c --- /dev/null +++ b/scripts/sync-brand-assets.mjs @@ -0,0 +1,397 @@ +import { spawnSync } from 'node:child_process'; +import { createHash } from 'node:crypto'; +import { existsSync } from 'node:fs'; +import { + copyFile, + mkdir, + mkdtemp, + readFile, + readdir, + rm, + rmdir, + stat, + writeFile, +} from 'node:fs/promises'; +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; + +import sharp from 'sharp'; + +import { + brandAssetCopies, + legacyBrandAssets, + legacyBrandDirectories, + linuxHicolorSizes, + platformIconTargets, +} from './brand-assets.config.mjs'; +import { checkBrandAssets, generateBrandAssets } from './generate-brand-assets.mjs'; + +const REPO_ROOT = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..'); +const BRAND_ROOT = path.join(REPO_ROOT, 'assets', 'brand'); +const ADOPTION_MANIFEST = path.join(BRAND_ROOT, 'adoption-manifest.json'); +const CONFIG_PATH = path.join(REPO_ROOT, 'scripts', 'brand-assets.config.mjs'); +const APP_ICON_SOURCE = path.join(BRAND_ROOT, 'exports', 'app-icon', 'sparo-app-icon-1024.png'); +const APP_ICON_OPAQUE_BACKGROUND = '#F5F2EE'; +const TAURI_CLI = path.join(REPO_ROOT, 'node_modules', '@tauri-apps', 'cli', 'tauri.js'); + +function repoPath(relativePath) { + return path.join(REPO_ROOT, relativePath); +} + +function brandPath(relativePath) { + return path.join(BRAND_ROOT, relativePath); +} + +function normalized(relativePath) { + return relativePath.replace(/\\/g, '/'); +} + +function sha256(value) { + return createHash('sha256').update(value).digest('hex'); +} + +function sourceForAppIconSize(size) { + if (size <= 20) return brandPath('exports/app-icon/sparo-app-icon-16.png'); + if (size <= 28) return brandPath('exports/app-icon/sparo-app-icon-24.png'); + if (size <= 40) return brandPath('exports/app-icon/sparo-app-icon-32.png'); + if (size < 64) return brandPath('exports/app-icon/sparo-app-icon-48.png'); + if (size === 64) return brandPath('exports/app-icon/sparo-app-icon-64.png'); + return APP_ICON_SOURCE; +} + +async function renderAppIcon(size, { opaque = false } = {}) { + let pipeline = sharp(await readFile(sourceForAppIconSize(size))) + .resize(size, size, { fit: 'contain' }); + if (opaque) pipeline = pipeline.flatten({ background: APP_ICON_OPAQUE_BACKGROUND }); + return pipeline.png({ compressionLevel: 9, adaptiveFiltering: false }).toBuffer(); +} + +async function writeFileWithRetry(destination, value) { + const maximumAttempts = process.platform === 'win32' ? 5 : 1; + for (let attempt = 1; attempt <= maximumAttempts; attempt += 1) { + try { + await writeFile(destination, value); + return; + } catch (error) { + if (attempt === maximumAttempts) throw error; + await new Promise((resolve) => setTimeout(resolve, attempt * 100)); + } + } +} + +async function writeRasterIcon(destination, size, options) { + await mkdir(path.dirname(destination), { recursive: true }); + await writeFileWithRetry(destination, await renderAppIcon(size, options)); +} + +async function walkFiles(directory) { + if (!existsSync(directory)) return []; + const result = []; + for (const entry of await readdir(directory, { withFileTypes: true })) { + const entryPath = path.join(directory, entry.name); + if (entry.isDirectory()) { + result.push(...await walkFiles(entryPath)); + } else if (entry.isFile()) { + result.push(entryPath); + } + } + return result; +} + +async function writeResponsiveIco(destination) { + // Tauri 2 uses the first ICO frame for its runtime window icon. A 64 px + // compact-master frame is the best compromise for common 32-64 px taskbar + // sizes; the remaining frames let Explorer choose an exact representation. + const sizes = [64, 256, 128, 48, 32, 24, 16]; + const frames = await Promise.all(sizes.map((size) => renderAppIcon(size))); + const header = Buffer.alloc(6); + header.writeUInt16LE(0, 0); + header.writeUInt16LE(1, 2); + header.writeUInt16LE(sizes.length, 4); + + let dataOffset = 6 + sizes.length * 16; + const entries = frames.map((frame, index) => { + const size = sizes[index]; + const entry = Buffer.alloc(16); + entry.writeUInt8(size >= 256 ? 0 : size, 0); + entry.writeUInt8(size >= 256 ? 0 : size, 1); + entry.writeUInt8(0, 2); + entry.writeUInt8(0, 3); + entry.writeUInt16LE(1, 4); + entry.writeUInt16LE(32, 6); + entry.writeUInt32LE(frame.length, 8); + entry.writeUInt32LE(dataOffset, 12); + dataOffset += frame.length; + return entry; + }); + + await writeFileWithRetry(destination, Buffer.concat([header, ...entries, ...frames])); +} + +async function overwriteTauriRasterSet(iconDirectory) { + const rootRasterSizes = new Map([ + ['32x32.png', 32], + ['64x64.png', 64], + ['128x128.png', 128], + ['128x128@2x.png', 256], + ['icon.png', 512], + ['Square30x30Logo.png', 30], + ['Square44x44Logo.png', 44], + ['Square71x71Logo.png', 71], + ['Square89x89Logo.png', 89], + ['Square107x107Logo.png', 107], + ['Square142x142Logo.png', 142], + ['Square150x150Logo.png', 150], + ['Square284x284Logo.png', 284], + ['Square310x310Logo.png', 310], + ['StoreLogo.png', 50], + ]); + + for (const [fileName, size] of rootRasterSizes) { + await writeRasterIcon(path.join(iconDirectory, fileName), size); + } + + for (const platform of ['android', 'ios']) { + const platformDirectory = path.join(iconDirectory, platform); + for (const filePath of await walkFiles(platformDirectory)) { + if (path.extname(filePath).toLowerCase() !== '.png') continue; + const metadata = await sharp(filePath).metadata(); + if (!metadata.width || metadata.width !== metadata.height) { + throw new Error('Expected a square platform icon: ' + filePath); + } + await writeRasterIcon(filePath, metadata.width, { opaque: true }); + } + } + + await writeResponsiveIco(path.join(iconDirectory, 'icon.ico')); +} + +function runTauriIcon(outputDirectory) { + const maximumAttempts = process.platform === 'win32' ? 3 : 1; + for (let attempt = 1; attempt <= maximumAttempts; attempt += 1) { + const result = spawnSync( + process.execPath, + [TAURI_CLI, 'icon', APP_ICON_SOURCE, '--output', outputDirectory, '--ios-color', APP_ICON_OPAQUE_BACKGROUND], + { cwd: REPO_ROOT, stdio: 'inherit' }, + ); + if (result.status === 0) return; + if (attempt < maximumAttempts) { + console.warn( + 'Tauri platform icon generation failed; retrying (' + + attempt + + '/' + + maximumAttempts + + '): ' + + outputDirectory, + ); + } + } + throw new Error('Tauri platform icon generation failed for ' + outputDirectory); +} + +async function generatePlatformIcons() { + if (!existsSync(TAURI_CLI)) { + throw new Error('Tauri CLI is unavailable. Run pnpm install before pnpm run brand:sync.'); + } + + for (const relativeTarget of platformIconTargets) { + const target = repoPath(relativeTarget); + await mkdir(target, { recursive: true }); + const temporaryOutput = await mkdtemp(path.join(BRAND_ROOT, '.platform-icons-')); + try { + // Generate into a fresh directory so Windows file mappings on an + // installed/current icon cannot interrupt the Tauri CLI halfway through. + runTauriIcon(temporaryOutput); + for (const generatedFile of await walkFiles(temporaryOutput)) { + const relativeFile = path.relative(temporaryOutput, generatedFile); + const destination = path.join(target, relativeFile); + await mkdir(path.dirname(destination), { recursive: true }); + await writeFileWithRetry(destination, await readFile(generatedFile)); + } + await overwriteTauriRasterSet(target); + } finally { + await rm(temporaryOutput, { force: true, recursive: true }); + } + } + + const hicolorRoot = repoPath('src/apps/desktop/icons/hicolor'); + for (const size of linuxHicolorSizes) { + await writeRasterIcon( + path.join(hicolorRoot, `${size}x${size}`, 'apps', 'sparo-os.png'), + size, + ); + } +} + +async function syncCopies(groups) { + const selected = groups.size === 0 + ? brandAssetCopies + : brandAssetCopies.filter((entry) => groups.has(entry.group)); + + if (groups.size > 0 && selected.length === 0) { + throw new Error('Unknown brand sync target: ' + [...groups].join(', ')); + } + + for (const entry of selected) { + const source = brandPath(entry.source); + const target = repoPath(entry.target); + await mkdir(path.dirname(target), { recursive: true }); + await copyFile(source, target); + } + + return selected.length; +} + +async function removeLegacyAssets() { + for (const relativePath of legacyBrandAssets) { + await rm(repoPath(relativePath), { force: true }); + } + for (const relativePath of legacyBrandDirectories) { + try { + await rmdir(repoPath(relativePath)); + } catch (error) { + if (error?.code !== 'ENOENT' && error?.code !== 'ENOTEMPTY') throw error; + } + } +} + +async function managedPlatformFiles() { + const files = []; + for (const relativeTarget of platformIconTargets) { + const target = repoPath(relativeTarget); + for (const filePath of await walkFiles(target)) { + const relative = normalized(path.relative(REPO_ROOT, filePath)); + if (relative.includes('/tray/')) continue; + files.push(relative); + } + } + return files.sort(); +} + +async function manifestEntry(relativePath) { + const value = await readFile(repoPath(relativePath)); + return { path: normalized(relativePath), bytes: value.length, sha256: sha256(value) }; +} + +async function writeAdoptionManifest() { + const sourceManifest = await readFile(brandPath('manifest.json')); + const config = await readFile(CONFIG_PATH); + const managedPaths = new Set([ + ...brandAssetCopies.map((entry) => normalized(entry.target)), + ...await managedPlatformFiles(), + ]); + const files = []; + for (const relativePath of [...managedPaths].sort()) { + files.push(await manifestEntry(relativePath)); + } + + const manifest = { + schemaVersion: 1, + generatedBy: 'pnpm run brand:sync', + sourceManifestSha256: sha256(sourceManifest), + configSha256: sha256(config), + files, + }; + await writeFile(ADOPTION_MANIFEST, JSON.stringify(manifest, null, 2) + '\n'); +} + +export async function checkProductBrandAssets() { + await checkBrandAssets(); + const failures = []; + + for (const entry of brandAssetCopies) { + try { + const [source, target] = await Promise.all([ + readFile(brandPath(entry.source)), + readFile(repoPath(entry.target)), + ]); + if (!source.equals(target)) failures.push(entry.target + ' is stale'); + } catch { + failures.push(entry.target + ' is missing'); + } + } + + for (const relativePath of legacyBrandAssets) { + if (existsSync(repoPath(relativePath))) failures.push(relativePath + ' is a legacy asset'); + } + + try { + const [manifestText, sourceManifest, config] = await Promise.all([ + readFile(ADOPTION_MANIFEST, 'utf8'), + readFile(brandPath('manifest.json')), + readFile(CONFIG_PATH), + ]); + const manifest = JSON.parse(manifestText); + if (manifest.sourceManifestSha256 !== sha256(sourceManifest)) { + failures.push('assets/brand/adoption-manifest.json has a stale source manifest'); + } + if (manifest.configSha256 !== sha256(config)) { + failures.push('assets/brand/adoption-manifest.json has a stale target configuration'); + } + for (const entry of manifest.files ?? []) { + try { + const value = await readFile(repoPath(entry.path)); + if (value.length !== entry.bytes || sha256(value) !== entry.sha256) { + failures.push(entry.path + ' differs from the adoption manifest'); + } + } catch { + failures.push(entry.path + ' is missing'); + } + } + } catch (error) { + failures.push( + 'assets/brand/adoption-manifest.json is missing or invalid: ' + + (error instanceof Error ? error.message : String(error)), + ); + } + + if (failures.length > 0) { + throw new Error( + 'Product brand assets are out of sync:\n- ' + + failures.join('\n- ') + + '\nRun pnpm run brand:sync.', + ); + } + + console.log('Verified ' + brandAssetCopies.length + ' declared brand copies and platform icons.'); +} + +export async function syncBrandAssets({ groups = new Set(), full = groups.size === 0 } = {}) { + if (full) { + await generateBrandAssets(); + } else { + await checkBrandAssets(); + } + + const copyCount = await syncCopies(groups); + if (!full) { + console.log('Synchronized ' + copyCount + ' brand assets for ' + [...groups].join(', ') + '.'); + return; + } + + await generatePlatformIcons(); + await removeLegacyAssets(); + await writeAdoptionManifest(); + await checkProductBrandAssets(); + console.log('Synchronized the current Sparo brand across all declared product targets.'); +} + +function selectedGroups(argv) { + const groups = new Set(); + for (let index = 0; index < argv.length; index += 1) { + if (argv[index] === '--target' && argv[index + 1]) { + groups.add(argv[index + 1]); + index += 1; + } + } + return groups; +} + +const isMain = process.argv[1] && path.resolve(process.argv[1]) === fileURLToPath(import.meta.url); +if (isMain) { + const groups = selectedGroups(process.argv.slice(2)); + syncBrandAssets({ groups }).catch((error) => { + console.error(error instanceof Error ? error.message : error); + process.exitCode = 1; + }); +} diff --git a/src/apps/desktop/icons/128x128.png b/src/apps/desktop/icons/128x128.png index fb0343a7..1c7b4e23 100644 Binary files a/src/apps/desktop/icons/128x128.png and b/src/apps/desktop/icons/128x128.png differ diff --git a/src/apps/desktop/icons/128x128@2x.png b/src/apps/desktop/icons/128x128@2x.png index b1394ad1..74f18439 100644 Binary files a/src/apps/desktop/icons/128x128@2x.png and b/src/apps/desktop/icons/128x128@2x.png differ diff --git a/src/apps/desktop/icons/32x32.png b/src/apps/desktop/icons/32x32.png index 1665dd04..2f5e44f9 100644 Binary files a/src/apps/desktop/icons/32x32.png and b/src/apps/desktop/icons/32x32.png differ diff --git a/src/apps/desktop/icons/64x64.png b/src/apps/desktop/icons/64x64.png index 95b475af..5b7a72cc 100644 Binary files a/src/apps/desktop/icons/64x64.png and b/src/apps/desktop/icons/64x64.png differ diff --git a/src/apps/desktop/icons/Square107x107Logo.png b/src/apps/desktop/icons/Square107x107Logo.png index 74ea32ee..d5b248a1 100644 Binary files a/src/apps/desktop/icons/Square107x107Logo.png and b/src/apps/desktop/icons/Square107x107Logo.png differ diff --git a/src/apps/desktop/icons/Square142x142Logo.png b/src/apps/desktop/icons/Square142x142Logo.png index e4e81f52..e44ff7af 100644 Binary files a/src/apps/desktop/icons/Square142x142Logo.png and b/src/apps/desktop/icons/Square142x142Logo.png differ diff --git a/src/apps/desktop/icons/Square150x150Logo.png b/src/apps/desktop/icons/Square150x150Logo.png index 1cb61237..e607c495 100644 Binary files a/src/apps/desktop/icons/Square150x150Logo.png and b/src/apps/desktop/icons/Square150x150Logo.png differ diff --git a/src/apps/desktop/icons/Square284x284Logo.png b/src/apps/desktop/icons/Square284x284Logo.png index 1ed1e2b6..d98e7c79 100644 Binary files a/src/apps/desktop/icons/Square284x284Logo.png and b/src/apps/desktop/icons/Square284x284Logo.png differ diff --git a/src/apps/desktop/icons/Square30x30Logo.png b/src/apps/desktop/icons/Square30x30Logo.png index dbab0b41..03a76719 100644 Binary files a/src/apps/desktop/icons/Square30x30Logo.png and b/src/apps/desktop/icons/Square30x30Logo.png differ diff --git a/src/apps/desktop/icons/Square310x310Logo.png b/src/apps/desktop/icons/Square310x310Logo.png index 7e5b6c42..f4cff6a5 100644 Binary files a/src/apps/desktop/icons/Square310x310Logo.png and b/src/apps/desktop/icons/Square310x310Logo.png differ diff --git a/src/apps/desktop/icons/Square44x44Logo.png b/src/apps/desktop/icons/Square44x44Logo.png index f7502bb3..b669621c 100644 Binary files a/src/apps/desktop/icons/Square44x44Logo.png and b/src/apps/desktop/icons/Square44x44Logo.png differ diff --git a/src/apps/desktop/icons/Square71x71Logo.png b/src/apps/desktop/icons/Square71x71Logo.png index 97abcb31..8c2261fe 100644 Binary files a/src/apps/desktop/icons/Square71x71Logo.png and b/src/apps/desktop/icons/Square71x71Logo.png differ diff --git a/src/apps/desktop/icons/Square89x89Logo.png b/src/apps/desktop/icons/Square89x89Logo.png index e0deaedd..daec8d29 100644 Binary files a/src/apps/desktop/icons/Square89x89Logo.png and b/src/apps/desktop/icons/Square89x89Logo.png differ diff --git a/src/apps/desktop/icons/StoreLogo.png b/src/apps/desktop/icons/StoreLogo.png index 749c4216..407dc94f 100644 Binary files a/src/apps/desktop/icons/StoreLogo.png and b/src/apps/desktop/icons/StoreLogo.png differ diff --git a/src/apps/desktop/icons/android/mipmap-hdpi/ic_launcher.png b/src/apps/desktop/icons/android/mipmap-hdpi/ic_launcher.png index 458fb127..c7dd6f14 100644 Binary files a/src/apps/desktop/icons/android/mipmap-hdpi/ic_launcher.png and b/src/apps/desktop/icons/android/mipmap-hdpi/ic_launcher.png differ diff --git a/src/apps/desktop/icons/android/mipmap-hdpi/ic_launcher_foreground.png b/src/apps/desktop/icons/android/mipmap-hdpi/ic_launcher_foreground.png index 458fb127..a177ef41 100644 Binary files a/src/apps/desktop/icons/android/mipmap-hdpi/ic_launcher_foreground.png and b/src/apps/desktop/icons/android/mipmap-hdpi/ic_launcher_foreground.png differ diff --git a/src/apps/desktop/icons/android/mipmap-hdpi/ic_launcher_round.png b/src/apps/desktop/icons/android/mipmap-hdpi/ic_launcher_round.png index 458fb127..c7dd6f14 100644 Binary files a/src/apps/desktop/icons/android/mipmap-hdpi/ic_launcher_round.png and b/src/apps/desktop/icons/android/mipmap-hdpi/ic_launcher_round.png differ diff --git a/src/apps/desktop/icons/android/mipmap-mdpi/ic_launcher.png b/src/apps/desktop/icons/android/mipmap-mdpi/ic_launcher.png index b675894d..d6ef9ea9 100644 Binary files a/src/apps/desktop/icons/android/mipmap-mdpi/ic_launcher.png and b/src/apps/desktop/icons/android/mipmap-mdpi/ic_launcher.png differ diff --git a/src/apps/desktop/icons/android/mipmap-mdpi/ic_launcher_foreground.png b/src/apps/desktop/icons/android/mipmap-mdpi/ic_launcher_foreground.png index b675894d..2a1429ff 100644 Binary files a/src/apps/desktop/icons/android/mipmap-mdpi/ic_launcher_foreground.png and b/src/apps/desktop/icons/android/mipmap-mdpi/ic_launcher_foreground.png differ diff --git a/src/apps/desktop/icons/android/mipmap-mdpi/ic_launcher_round.png b/src/apps/desktop/icons/android/mipmap-mdpi/ic_launcher_round.png index b675894d..d6ef9ea9 100644 Binary files a/src/apps/desktop/icons/android/mipmap-mdpi/ic_launcher_round.png and b/src/apps/desktop/icons/android/mipmap-mdpi/ic_launcher_round.png differ diff --git a/src/apps/desktop/icons/android/mipmap-xhdpi/ic_launcher.png b/src/apps/desktop/icons/android/mipmap-xhdpi/ic_launcher.png index 051bd062..e66ae720 100644 Binary files a/src/apps/desktop/icons/android/mipmap-xhdpi/ic_launcher.png and b/src/apps/desktop/icons/android/mipmap-xhdpi/ic_launcher.png differ diff --git a/src/apps/desktop/icons/android/mipmap-xhdpi/ic_launcher_foreground.png b/src/apps/desktop/icons/android/mipmap-xhdpi/ic_launcher_foreground.png index 051bd062..58f6a024 100644 Binary files a/src/apps/desktop/icons/android/mipmap-xhdpi/ic_launcher_foreground.png and b/src/apps/desktop/icons/android/mipmap-xhdpi/ic_launcher_foreground.png differ diff --git a/src/apps/desktop/icons/android/mipmap-xhdpi/ic_launcher_round.png b/src/apps/desktop/icons/android/mipmap-xhdpi/ic_launcher_round.png index 051bd062..e66ae720 100644 Binary files a/src/apps/desktop/icons/android/mipmap-xhdpi/ic_launcher_round.png and b/src/apps/desktop/icons/android/mipmap-xhdpi/ic_launcher_round.png differ diff --git a/src/apps/desktop/icons/android/mipmap-xxhdpi/ic_launcher.png b/src/apps/desktop/icons/android/mipmap-xxhdpi/ic_launcher.png index db6199a8..a8ff2ace 100644 Binary files a/src/apps/desktop/icons/android/mipmap-xxhdpi/ic_launcher.png and b/src/apps/desktop/icons/android/mipmap-xxhdpi/ic_launcher.png differ diff --git a/src/apps/desktop/icons/android/mipmap-xxhdpi/ic_launcher_foreground.png b/src/apps/desktop/icons/android/mipmap-xxhdpi/ic_launcher_foreground.png index db6199a8..73ab55a0 100644 Binary files a/src/apps/desktop/icons/android/mipmap-xxhdpi/ic_launcher_foreground.png and b/src/apps/desktop/icons/android/mipmap-xxhdpi/ic_launcher_foreground.png differ diff --git a/src/apps/desktop/icons/android/mipmap-xxhdpi/ic_launcher_round.png b/src/apps/desktop/icons/android/mipmap-xxhdpi/ic_launcher_round.png index db6199a8..a8ff2ace 100644 Binary files a/src/apps/desktop/icons/android/mipmap-xxhdpi/ic_launcher_round.png and b/src/apps/desktop/icons/android/mipmap-xxhdpi/ic_launcher_round.png differ diff --git a/src/apps/desktop/icons/android/mipmap-xxxhdpi/ic_launcher.png b/src/apps/desktop/icons/android/mipmap-xxxhdpi/ic_launcher.png index df0ac0ff..63a0eaa7 100644 Binary files a/src/apps/desktop/icons/android/mipmap-xxxhdpi/ic_launcher.png and b/src/apps/desktop/icons/android/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/src/apps/desktop/icons/android/mipmap-xxxhdpi/ic_launcher_foreground.png b/src/apps/desktop/icons/android/mipmap-xxxhdpi/ic_launcher_foreground.png index df0ac0ff..8d688951 100644 Binary files a/src/apps/desktop/icons/android/mipmap-xxxhdpi/ic_launcher_foreground.png and b/src/apps/desktop/icons/android/mipmap-xxxhdpi/ic_launcher_foreground.png differ diff --git a/src/apps/desktop/icons/android/mipmap-xxxhdpi/ic_launcher_round.png b/src/apps/desktop/icons/android/mipmap-xxxhdpi/ic_launcher_round.png index df0ac0ff..63a0eaa7 100644 Binary files a/src/apps/desktop/icons/android/mipmap-xxxhdpi/ic_launcher_round.png and b/src/apps/desktop/icons/android/mipmap-xxxhdpi/ic_launcher_round.png differ diff --git a/src/apps/desktop/icons/android/values/ic_launcher_background.xml b/src/apps/desktop/icons/android/values/ic_launcher_background.xml index ea9c223a..7938c64e 100644 --- a/src/apps/desktop/icons/android/values/ic_launcher_background.xml +++ b/src/apps/desktop/icons/android/values/ic_launcher_background.xml @@ -1,4 +1,4 @@ - #fff + #F5F2EE \ No newline at end of file diff --git a/src/apps/desktop/icons/app-icon-rounded-source.png b/src/apps/desktop/icons/app-icon-rounded-source.png deleted file mode 100644 index d5e59ffc..00000000 Binary files a/src/apps/desktop/icons/app-icon-rounded-source.png and /dev/null differ diff --git a/src/apps/desktop/icons/hicolor/128x128/apps/sparo-os.png b/src/apps/desktop/icons/hicolor/128x128/apps/sparo-os.png index fb0343a7..1c7b4e23 100644 Binary files a/src/apps/desktop/icons/hicolor/128x128/apps/sparo-os.png and b/src/apps/desktop/icons/hicolor/128x128/apps/sparo-os.png differ diff --git a/src/apps/desktop/icons/hicolor/16x16/apps/sparo-os.png b/src/apps/desktop/icons/hicolor/16x16/apps/sparo-os.png index 624879ba..0e7ccb52 100644 Binary files a/src/apps/desktop/icons/hicolor/16x16/apps/sparo-os.png and b/src/apps/desktop/icons/hicolor/16x16/apps/sparo-os.png differ diff --git a/src/apps/desktop/icons/hicolor/256x256/apps/sparo-os.png b/src/apps/desktop/icons/hicolor/256x256/apps/sparo-os.png index b1394ad1..74f18439 100644 Binary files a/src/apps/desktop/icons/hicolor/256x256/apps/sparo-os.png and b/src/apps/desktop/icons/hicolor/256x256/apps/sparo-os.png differ diff --git a/src/apps/desktop/icons/hicolor/32x32/apps/sparo-os.png b/src/apps/desktop/icons/hicolor/32x32/apps/sparo-os.png index 1665dd04..2f5e44f9 100644 Binary files a/src/apps/desktop/icons/hicolor/32x32/apps/sparo-os.png and b/src/apps/desktop/icons/hicolor/32x32/apps/sparo-os.png differ diff --git a/src/apps/desktop/icons/hicolor/48x48/apps/sparo-os.png b/src/apps/desktop/icons/hicolor/48x48/apps/sparo-os.png index 663e6036..3a8be1f4 100644 Binary files a/src/apps/desktop/icons/hicolor/48x48/apps/sparo-os.png and b/src/apps/desktop/icons/hicolor/48x48/apps/sparo-os.png differ diff --git a/src/apps/desktop/icons/hicolor/512x512/apps/sparo-os.png b/src/apps/desktop/icons/hicolor/512x512/apps/sparo-os.png index 9e8086ab..2fe045bc 100644 Binary files a/src/apps/desktop/icons/hicolor/512x512/apps/sparo-os.png and b/src/apps/desktop/icons/hicolor/512x512/apps/sparo-os.png differ diff --git a/src/apps/desktop/icons/hicolor/64x64/apps/sparo-os.png b/src/apps/desktop/icons/hicolor/64x64/apps/sparo-os.png index 95b475af..5b7a72cc 100644 Binary files a/src/apps/desktop/icons/hicolor/64x64/apps/sparo-os.png and b/src/apps/desktop/icons/hicolor/64x64/apps/sparo-os.png differ diff --git a/src/apps/desktop/icons/hicolor/96x96/apps/sparo-os.png b/src/apps/desktop/icons/hicolor/96x96/apps/sparo-os.png index 718bbe4e..2637c320 100644 Binary files a/src/apps/desktop/icons/hicolor/96x96/apps/sparo-os.png and b/src/apps/desktop/icons/hicolor/96x96/apps/sparo-os.png differ diff --git a/src/apps/desktop/icons/icon.icns b/src/apps/desktop/icons/icon.icns index f27982aa..8ab3b1ab 100644 Binary files a/src/apps/desktop/icons/icon.icns and b/src/apps/desktop/icons/icon.icns differ diff --git a/src/apps/desktop/icons/icon.ico b/src/apps/desktop/icons/icon.ico index feb7c28c..0506188b 100644 Binary files a/src/apps/desktop/icons/icon.ico and b/src/apps/desktop/icons/icon.ico differ diff --git a/src/apps/desktop/icons/icon.png b/src/apps/desktop/icons/icon.png index 9e8086ab..2fe045bc 100644 Binary files a/src/apps/desktop/icons/icon.png and b/src/apps/desktop/icons/icon.png differ diff --git a/src/apps/desktop/icons/ios/AppIcon-20x20@1x.png b/src/apps/desktop/icons/ios/AppIcon-20x20@1x.png index 40e733ab..624494b0 100644 Binary files a/src/apps/desktop/icons/ios/AppIcon-20x20@1x.png and b/src/apps/desktop/icons/ios/AppIcon-20x20@1x.png differ diff --git a/src/apps/desktop/icons/ios/AppIcon-20x20@2x-1.png b/src/apps/desktop/icons/ios/AppIcon-20x20@2x-1.png index bb17d84f..0cfd832a 100644 Binary files a/src/apps/desktop/icons/ios/AppIcon-20x20@2x-1.png and b/src/apps/desktop/icons/ios/AppIcon-20x20@2x-1.png differ diff --git a/src/apps/desktop/icons/ios/AppIcon-20x20@2x.png b/src/apps/desktop/icons/ios/AppIcon-20x20@2x.png index bb17d84f..0cfd832a 100644 Binary files a/src/apps/desktop/icons/ios/AppIcon-20x20@2x.png and b/src/apps/desktop/icons/ios/AppIcon-20x20@2x.png differ diff --git a/src/apps/desktop/icons/ios/AppIcon-20x20@3x.png b/src/apps/desktop/icons/ios/AppIcon-20x20@3x.png index d5816836..77532256 100644 Binary files a/src/apps/desktop/icons/ios/AppIcon-20x20@3x.png and b/src/apps/desktop/icons/ios/AppIcon-20x20@3x.png differ diff --git a/src/apps/desktop/icons/ios/AppIcon-29x29@1x.png b/src/apps/desktop/icons/ios/AppIcon-29x29@1x.png index 564fbd58..46d013c3 100644 Binary files a/src/apps/desktop/icons/ios/AppIcon-29x29@1x.png and b/src/apps/desktop/icons/ios/AppIcon-29x29@1x.png differ diff --git a/src/apps/desktop/icons/ios/AppIcon-29x29@2x-1.png b/src/apps/desktop/icons/ios/AppIcon-29x29@2x-1.png index 4f785120..ad6d68a6 100644 Binary files a/src/apps/desktop/icons/ios/AppIcon-29x29@2x-1.png and b/src/apps/desktop/icons/ios/AppIcon-29x29@2x-1.png differ diff --git a/src/apps/desktop/icons/ios/AppIcon-29x29@2x.png b/src/apps/desktop/icons/ios/AppIcon-29x29@2x.png index 4f785120..ad6d68a6 100644 Binary files a/src/apps/desktop/icons/ios/AppIcon-29x29@2x.png and b/src/apps/desktop/icons/ios/AppIcon-29x29@2x.png differ diff --git a/src/apps/desktop/icons/ios/AppIcon-29x29@3x.png b/src/apps/desktop/icons/ios/AppIcon-29x29@3x.png index 5f20be25..77908fd0 100644 Binary files a/src/apps/desktop/icons/ios/AppIcon-29x29@3x.png and b/src/apps/desktop/icons/ios/AppIcon-29x29@3x.png differ diff --git a/src/apps/desktop/icons/ios/AppIcon-40x40@1x.png b/src/apps/desktop/icons/ios/AppIcon-40x40@1x.png index bb17d84f..0cfd832a 100644 Binary files a/src/apps/desktop/icons/ios/AppIcon-40x40@1x.png and b/src/apps/desktop/icons/ios/AppIcon-40x40@1x.png differ diff --git a/src/apps/desktop/icons/ios/AppIcon-40x40@2x-1.png b/src/apps/desktop/icons/ios/AppIcon-40x40@2x-1.png index 3a03d8af..d1c893ff 100644 Binary files a/src/apps/desktop/icons/ios/AppIcon-40x40@2x-1.png and b/src/apps/desktop/icons/ios/AppIcon-40x40@2x-1.png differ diff --git a/src/apps/desktop/icons/ios/AppIcon-40x40@2x.png b/src/apps/desktop/icons/ios/AppIcon-40x40@2x.png index 3a03d8af..d1c893ff 100644 Binary files a/src/apps/desktop/icons/ios/AppIcon-40x40@2x.png and b/src/apps/desktop/icons/ios/AppIcon-40x40@2x.png differ diff --git a/src/apps/desktop/icons/ios/AppIcon-40x40@3x.png b/src/apps/desktop/icons/ios/AppIcon-40x40@3x.png index fd414ce0..694cee05 100644 Binary files a/src/apps/desktop/icons/ios/AppIcon-40x40@3x.png and b/src/apps/desktop/icons/ios/AppIcon-40x40@3x.png differ diff --git a/src/apps/desktop/icons/ios/AppIcon-512@2x.png b/src/apps/desktop/icons/ios/AppIcon-512@2x.png index 39bfb11d..91169e65 100644 Binary files a/src/apps/desktop/icons/ios/AppIcon-512@2x.png and b/src/apps/desktop/icons/ios/AppIcon-512@2x.png differ diff --git a/src/apps/desktop/icons/ios/AppIcon-60x60@2x.png b/src/apps/desktop/icons/ios/AppIcon-60x60@2x.png index fd414ce0..694cee05 100644 Binary files a/src/apps/desktop/icons/ios/AppIcon-60x60@2x.png and b/src/apps/desktop/icons/ios/AppIcon-60x60@2x.png differ diff --git a/src/apps/desktop/icons/ios/AppIcon-60x60@3x.png b/src/apps/desktop/icons/ios/AppIcon-60x60@3x.png index 94c2fcad..303b4768 100644 Binary files a/src/apps/desktop/icons/ios/AppIcon-60x60@3x.png and b/src/apps/desktop/icons/ios/AppIcon-60x60@3x.png differ diff --git a/src/apps/desktop/icons/ios/AppIcon-76x76@1x.png b/src/apps/desktop/icons/ios/AppIcon-76x76@1x.png index ed316487..caed8331 100644 Binary files a/src/apps/desktop/icons/ios/AppIcon-76x76@1x.png and b/src/apps/desktop/icons/ios/AppIcon-76x76@1x.png differ diff --git a/src/apps/desktop/icons/ios/AppIcon-76x76@2x.png b/src/apps/desktop/icons/ios/AppIcon-76x76@2x.png index 2673175d..3b241b54 100644 Binary files a/src/apps/desktop/icons/ios/AppIcon-76x76@2x.png and b/src/apps/desktop/icons/ios/AppIcon-76x76@2x.png differ diff --git a/src/apps/desktop/icons/ios/AppIcon-83.5x83.5@2x.png b/src/apps/desktop/icons/ios/AppIcon-83.5x83.5@2x.png index d69b34de..7bb7efe5 100644 Binary files a/src/apps/desktop/icons/ios/AppIcon-83.5x83.5@2x.png and b/src/apps/desktop/icons/ios/AppIcon-83.5x83.5@2x.png differ diff --git a/src/apps/desktop/icons/sparo-app-icon.png b/src/apps/desktop/icons/sparo-app-icon.png deleted file mode 100644 index 9e8086ab..00000000 Binary files a/src/apps/desktop/icons/sparo-app-icon.png and /dev/null differ diff --git a/src/apps/desktop/icons/tray/tray-error.png b/src/apps/desktop/icons/tray/tray-error.png index 20fefb19..38183031 100644 Binary files a/src/apps/desktop/icons/tray/tray-error.png and b/src/apps/desktop/icons/tray/tray-error.png differ diff --git a/src/apps/desktop/icons/tray/tray-idle.png b/src/apps/desktop/icons/tray/tray-idle.png index 4f2d3fb8..2f5e44f9 100644 Binary files a/src/apps/desktop/icons/tray/tray-idle.png and b/src/apps/desktop/icons/tray/tray-idle.png differ diff --git a/src/apps/desktop/icons/tray/tray-running.png b/src/apps/desktop/icons/tray/tray-running.png index 3684381d..c7751275 100644 Binary files a/src/apps/desktop/icons/tray/tray-running.png and b/src/apps/desktop/icons/tray/tray-running.png differ diff --git a/src/apps/desktop/icons/tray/tray-waiting.png b/src/apps/desktop/icons/tray/tray-waiting.png index df6b872d..8860bfe9 100644 Binary files a/src/apps/desktop/icons/tray/tray-waiting.png and b/src/apps/desktop/icons/tray/tray-waiting.png differ diff --git a/src/apps/desktop/src/tray/mod.rs b/src/apps/desktop/src/tray/mod.rs index 60d9a1a4..f9ccbf93 100644 --- a/src/apps/desktop/src/tray/mod.rs +++ b/src/apps/desktop/src/tray/mod.rs @@ -162,7 +162,8 @@ pub fn init_tray(app: &AppHandle) -> Result<(), Box> { TrayIconBuilder::with_id("sparo-main") .icon(icon) - .icon_as_template(cfg!(target_os = "macos")) + // Runtime state is encoded by the mark's single solid color on every OS. + .icon_as_template(false) .tooltip("Sparo OS") .show_menu_on_left_click(false) .menu(&initial_menu) diff --git a/src/apps/relay-server/static/apple-touch-icon.png b/src/apps/relay-server/static/apple-touch-icon.png deleted file mode 100644 index 18ab438b..00000000 Binary files a/src/apps/relay-server/static/apple-touch-icon.png and /dev/null differ diff --git a/src/apps/relay-server/static/assets/index-BnwLOzZ9.js b/src/apps/relay-server/static/assets/index-CSpvm6tT.js similarity index 85% rename from src/apps/relay-server/static/assets/index-BnwLOzZ9.js rename to src/apps/relay-server/static/assets/index-CSpvm6tT.js index b209e0f5..d42c0566 100644 --- a/src/apps/relay-server/static/assets/index-BnwLOzZ9.js +++ b/src/apps/relay-server/static/assets/index-CSpvm6tT.js @@ -6,43 +6,43 @@ `).replace(EN,"")}function Ji(r,a,s){if(a=yb(a),yb(r)!==a&&s)throw Error(n(425))}function eo(){}var Xs=null,Qs=null;function Js(r,a){return r==="textarea"||r==="noscript"||typeof a.children=="string"||typeof a.children=="number"||typeof a.dangerouslySetInnerHTML=="object"&&a.dangerouslySetInnerHTML!==null&&a.dangerouslySetInnerHTML.__html!=null}var el=typeof setTimeout=="function"?setTimeout:void 0,SN=typeof clearTimeout=="function"?clearTimeout:void 0,Eb=typeof Promise=="function"?Promise:void 0,vN=typeof queueMicrotask=="function"?queueMicrotask:typeof Eb<"u"?function(r){return Eb.resolve(null).then(r).catch(kN)}:el;function kN(r){setTimeout(function(){throw r})}function tl(r,a){var s=a,d=0;do{var b=s.nextSibling;if(r.removeChild(s),b&&b.nodeType===8)if(s=b.data,s==="/$"){if(d===0){r.removeChild(b),Ba(a);return}d--}else s!=="$"&&s!=="$?"&&s!=="$!"||d++;s=b}while(s);Ba(a)}function dr(r){for(;r!=null;r=r.nextSibling){var a=r.nodeType;if(a===1||a===3)break;if(a===8){if(a=r.data,a==="$"||a==="$!"||a==="$?")break;if(a==="/$")return null}}return r}function Sb(r){r=r.previousSibling;for(var a=0;r;){if(r.nodeType===8){var s=r.data;if(s==="$"||s==="$!"||s==="$?"){if(a===0)return r;a--}else s==="/$"&&a++}r=r.previousSibling}return null}var ra=Math.random().toString(36).slice(2),Dn="__reactFiber$"+ra,Za="__reactProps$"+ra,qn="__reactContainer$"+ra,nl="__reactEvents$"+ra,_N="__reactListeners$"+ra,wN="__reactHandles$"+ra;function Nr(r){var a=r[Dn];if(a)return a;for(var s=r.parentNode;s;){if(a=s[qn]||s[Dn]){if(s=a.alternate,a.child!==null||s!==null&&s.child!==null)for(r=Sb(r);r!==null;){if(s=r[Dn])return s;r=Sb(r)}return a}r=s,s=r.parentNode}return null}function Xa(r){return r=r[Dn]||r[qn],!r||r.tag!==5&&r.tag!==6&&r.tag!==13&&r.tag!==3?null:r}function aa(r){if(r.tag===5||r.tag===6)return r.stateNode;throw Error(n(33))}function to(r){return r[Za]||null}var rl=[],ia=-1;function pr(r){return{current:r}}function Xe(r){0>ia||(r.current=rl[ia],rl[ia]=null,ia--)}function Ve(r,a){ia++,rl[ia]=r.current,r.current=a}var fr={},Pt=pr(fr),Kt=pr(!1),Cr=fr;function oa(r,a){var s=r.type.contextTypes;if(!s)return fr;var d=r.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===a)return d.__reactInternalMemoizedMaskedChildContext;var b={},y;for(y in s)b[y]=a[y];return d&&(r=r.stateNode,r.__reactInternalMemoizedUnmaskedChildContext=a,r.__reactInternalMemoizedMaskedChildContext=b),b}function Zt(r){return r=r.childContextTypes,r!=null}function no(){Xe(Kt),Xe(Pt)}function vb(r,a,s){if(Pt.current!==fr)throw Error(n(168));Ve(Pt,a),Ve(Kt,s)}function kb(r,a,s){var d=r.stateNode;if(a=a.childContextTypes,typeof d.getChildContext!="function")return s;d=d.getChildContext();for(var b in d)if(!(b in a))throw Error(n(108,Se(r)||"Unknown",b));return x({},s,d)}function ro(r){return r=(r=r.stateNode)&&r.__reactInternalMemoizedMergedChildContext||fr,Cr=Pt.current,Ve(Pt,r),Ve(Kt,Kt.current),!0}function _b(r,a,s){var d=r.stateNode;if(!d)throw Error(n(169));s?(r=kb(r,a,Cr),d.__reactInternalMemoizedMergedChildContext=r,Xe(Kt),Xe(Pt),Ve(Pt,r)):Xe(Kt),Ve(Kt,s)}var Gn=null,ao=!1,al=!1;function wb(r){Gn===null?Gn=[r]:Gn.push(r)}function TN(r){ao=!0,wb(r)}function gr(){if(!al&&Gn!==null){al=!0;var r=0,a=qe;try{var s=Gn;for(qe=1;r>=_,b-=_,Hn=1<<32-wn(a)+b|s<Ae?(Nt=Te,Te=null):Nt=Te.sibling;var je=re(z,Te,G[Ae],ce);if(je===null){Te===null&&(Te=Nt);break}r&&Te&&je.alternate===null&&a(z,Te),U=y(je,U,Ae),we===null?ve=je:we.sibling=je,we=je,Te=Nt}if(Ae===G.length)return s(z,Te),et&&Or(z,Ae),ve;if(Te===null){for(;AeAe?(Nt=Te,Te=null):Nt=Te.sibling;var _r=re(z,Te,je.value,ce);if(_r===null){Te===null&&(Te=Nt);break}r&&Te&&_r.alternate===null&&a(z,Te),U=y(_r,U,Ae),we===null?ve=_r:we.sibling=_r,we=_r,Te=Nt}if(je.done)return s(z,Te),et&&Or(z,Ae),ve;if(Te===null){for(;!je.done;Ae++,je=G.next())je=oe(z,je.value,ce),je!==null&&(U=y(je,U,Ae),we===null?ve=je:we.sibling=je,we=je);return et&&Or(z,Ae),ve}for(Te=d(z,Te);!je.done;Ae++,je=G.next())je=me(Te,z,Ae,je.value,ce),je!==null&&(r&&je.alternate!==null&&Te.delete(je.key===null?Ae:je.key),U=y(je,U,Ae),we===null?ve=je:we.sibling=je,we=je);return r&&Te.forEach(function(iC){return a(z,iC)}),et&&Or(z,Ae),ve}function ht(z,U,G,ce){if(typeof G=="object"&&G!==null&&G.type===B&&G.key===null&&(G=G.props.children),typeof G=="object"&&G!==null){switch(G.$$typeof){case L:e:{for(var ve=G.key,we=U;we!==null;){if(we.key===ve){if(ve=G.type,ve===B){if(we.tag===7){s(z,we.sibling),U=b(we,G.props.children),U.return=z,z=U;break e}}else if(we.elementType===ve||typeof ve=="object"&&ve!==null&&ve.$$typeof===te&&Cb(ve)===we.type){s(z,we.sibling),U=b(we,G.props),U.ref=Qa(z,we,G),U.return=z,z=U;break e}s(z,we);break}else a(z,we);we=we.sibling}G.type===B?(U=jr(G.props.children,z.mode,ce,G.key),U.return=z,z=U):(ce=Lo(G.type,G.key,G.props,null,z.mode,ce),ce.ref=Qa(z,U,G),ce.return=z,z=ce)}return _(z);case w:e:{for(we=G.key;U!==null;){if(U.key===we)if(U.tag===4&&U.stateNode.containerInfo===G.containerInfo&&U.stateNode.implementation===G.implementation){s(z,U.sibling),U=b(U,G.children||[]),U.return=z,z=U;break e}else{s(z,U);break}else a(z,U);U=U.sibling}U=tu(G,z.mode,ce),U.return=z,z=U}return _(z);case te:return we=G._init,ht(z,U,we(G._payload),ce)}if(kt(G))return ye(z,U,G,ce);if(Q(G))return Ee(z,U,G,ce);lo(z,G)}return typeof G=="string"&&G!==""||typeof G=="number"?(G=""+G,U!==null&&U.tag===6?(s(z,U.sibling),U=b(U,G),U.return=z,z=U):(s(z,U),U=eu(G,z.mode,ce),U.return=z,z=U),_(z)):s(z,U)}return ht}var ca=Ib(!0),Ob=Ib(!1),uo=pr(null),co=null,da=null,cl=null;function dl(){cl=da=co=null}function pl(r){var a=uo.current;Xe(uo),r._currentValue=a}function fl(r,a,s){for(;r!==null;){var d=r.alternate;if((r.childLanes&a)!==a?(r.childLanes|=a,d!==null&&(d.childLanes|=a)):d!==null&&(d.childLanes&a)!==a&&(d.childLanes|=a),r===s)break;r=r.return}}function pa(r,a){co=r,cl=da=null,r=r.dependencies,r!==null&&r.firstContext!==null&&((r.lanes&a)!==0&&(Xt=!0),r.firstContext=null)}function gn(r){var a=r._currentValue;if(cl!==r)if(r={context:r,memoizedValue:a,next:null},da===null){if(co===null)throw Error(n(308));da=r,co.dependencies={lanes:0,firstContext:r}}else da=da.next=r;return a}var Lr=null;function gl(r){Lr===null?Lr=[r]:Lr.push(r)}function Lb(r,a,s,d){var b=a.interleaved;return b===null?(s.next=s,gl(a)):(s.next=b.next,b.next=s),a.interleaved=s,Vn(r,d)}function Vn(r,a){r.lanes|=a;var s=r.alternate;for(s!==null&&(s.lanes|=a),s=r,r=r.return;r!==null;)r.childLanes|=a,s=r.alternate,s!==null&&(s.childLanes|=a),s=r,r=r.return;return s.tag===3?s.stateNode:null}var mr=!1;function ml(r){r.updateQueue={baseState:r.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Db(r,a){r=r.updateQueue,a.updateQueue===r&&(a.updateQueue={baseState:r.baseState,firstBaseUpdate:r.firstBaseUpdate,lastBaseUpdate:r.lastBaseUpdate,shared:r.shared,effects:r.effects})}function Yn(r,a){return{eventTime:r,lane:a,tag:0,payload:null,callback:null,next:null}}function hr(r,a,s){var d=r.updateQueue;if(d===null)return null;if(d=d.shared,(Ue&2)!==0){var b=d.pending;return b===null?a.next=a:(a.next=b.next,b.next=a),d.pending=a,Vn(r,s)}return b=d.interleaved,b===null?(a.next=a,gl(d)):(a.next=b.next,b.next=a),d.interleaved=a,Vn(r,s)}function po(r,a,s){if(a=a.updateQueue,a!==null&&(a=a.shared,(s&4194240)!==0)){var d=a.lanes;d&=r.pendingLanes,s|=d,a.lanes=s,Ns(r,s)}}function Mb(r,a){var s=r.updateQueue,d=r.alternate;if(d!==null&&(d=d.updateQueue,s===d)){var b=null,y=null;if(s=s.firstBaseUpdate,s!==null){do{var _={eventTime:s.eventTime,lane:s.lane,tag:s.tag,payload:s.payload,callback:s.callback,next:null};y===null?b=y=_:y=y.next=_,s=s.next}while(s!==null);y===null?b=y=a:y=y.next=a}else b=y=a;s={baseState:d.baseState,firstBaseUpdate:b,lastBaseUpdate:y,shared:d.shared,effects:d.effects},r.updateQueue=s;return}r=s.lastBaseUpdate,r===null?s.firstBaseUpdate=a:r.next=a,s.lastBaseUpdate=a}function fo(r,a,s,d){var b=r.updateQueue;mr=!1;var y=b.firstBaseUpdate,_=b.lastBaseUpdate,I=b.shared.pending;if(I!==null){b.shared.pending=null;var F=I,V=F.next;F.next=null,_===null?y=V:_.next=V,_=F;var ie=r.alternate;ie!==null&&(ie=ie.updateQueue,I=ie.lastBaseUpdate,I!==_&&(I===null?ie.firstBaseUpdate=V:I.next=V,ie.lastBaseUpdate=F))}if(y!==null){var oe=b.baseState;_=0,ie=V=F=null,I=y;do{var re=I.lane,me=I.eventTime;if((d&re)===re){ie!==null&&(ie=ie.next={eventTime:me,lane:0,tag:I.tag,payload:I.payload,callback:I.callback,next:null});e:{var ye=r,Ee=I;switch(re=a,me=s,Ee.tag){case 1:if(ye=Ee.payload,typeof ye=="function"){oe=ye.call(me,oe,re);break e}oe=ye;break e;case 3:ye.flags=ye.flags&-65537|128;case 0:if(ye=Ee.payload,re=typeof ye=="function"?ye.call(me,oe,re):ye,re==null)break e;oe=x({},oe,re);break e;case 2:mr=!0}}I.callback!==null&&I.lane!==0&&(r.flags|=64,re=b.effects,re===null?b.effects=[I]:re.push(I))}else me={eventTime:me,lane:re,tag:I.tag,payload:I.payload,callback:I.callback,next:null},ie===null?(V=ie=me,F=oe):ie=ie.next=me,_|=re;if(I=I.next,I===null){if(I=b.shared.pending,I===null)break;re=I,I=re.next,re.next=null,b.lastBaseUpdate=re,b.shared.pending=null}}while(!0);if(ie===null&&(F=oe),b.baseState=F,b.firstBaseUpdate=V,b.lastBaseUpdate=ie,a=b.shared.interleaved,a!==null){b=a;do _|=b.lane,b=b.next;while(b!==a)}else y===null&&(b.shared.lanes=0);Fr|=_,r.lanes=_,r.memoizedState=oe}}function Fb(r,a,s){if(r=a.effects,a.effects=null,r!==null)for(a=0;as?s:4,r(!0);var d=Sl.transition;Sl.transition={};try{r(!1),a()}finally{qe=s,Sl.transition=d}}function ty(){return mn().memoizedState}function NN(r,a,s){var d=Sr(r);if(s={lane:d,action:s,hasEagerState:!1,eagerState:null,next:null},ny(r))ry(a,s);else if(s=Lb(r,a,s,d),s!==null){var b=Gt();Cn(s,r,d,b),ay(s,a,d)}}function CN(r,a,s){var d=Sr(r),b={lane:d,action:s,hasEagerState:!1,eagerState:null,next:null};if(ny(r))ry(a,b);else{var y=r.alternate;if(r.lanes===0&&(y===null||y.lanes===0)&&(y=a.lastRenderedReducer,y!==null))try{var _=a.lastRenderedState,I=y(_,s);if(b.hasEagerState=!0,b.eagerState=I,Tn(I,_)){var F=a.interleaved;F===null?(b.next=b,gl(a)):(b.next=F.next,F.next=b),a.interleaved=b;return}}catch{}s=Lb(r,a,b,d),s!==null&&(b=Gt(),Cn(s,r,d,b),ay(s,a,d))}}function ny(r){var a=r.alternate;return r===ot||a!==null&&a===ot}function ry(r,a){ni=ho=!0;var s=r.pending;s===null?a.next=a:(a.next=s.next,s.next=a),r.pending=a}function ay(r,a,s){if((s&4194240)!==0){var d=a.lanes;d&=r.pendingLanes,s|=d,a.lanes=s,Ns(r,s)}}var Eo={readContext:gn,useCallback:Ut,useContext:Ut,useEffect:Ut,useImperativeHandle:Ut,useInsertionEffect:Ut,useLayoutEffect:Ut,useMemo:Ut,useReducer:Ut,useRef:Ut,useState:Ut,useDebugValue:Ut,useDeferredValue:Ut,useTransition:Ut,useMutableSource:Ut,useSyncExternalStore:Ut,useId:Ut,unstable_isNewReconciler:!1},IN={readContext:gn,useCallback:function(r,a){return Fn().memoizedState=[r,a===void 0?null:a],r},useContext:gn,useEffect:Vb,useImperativeHandle:function(r,a,s){return s=s!=null?s.concat([r]):null,bo(4194308,4,Zb.bind(null,a,r),s)},useLayoutEffect:function(r,a){return bo(4194308,4,r,a)},useInsertionEffect:function(r,a){return bo(4,2,r,a)},useMemo:function(r,a){var s=Fn();return a=a===void 0?null:a,r=r(),s.memoizedState=[r,a],r},useReducer:function(r,a,s){var d=Fn();return a=s!==void 0?s(a):a,d.memoizedState=d.baseState=a,r={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:r,lastRenderedState:a},d.queue=r,r=r.dispatch=NN.bind(null,ot,r),[d.memoizedState,r]},useRef:function(r){var a=Fn();return r={current:r},a.memoizedState=r},useState:Hb,useDebugValue:Al,useDeferredValue:function(r){return Fn().memoizedState=r},useTransition:function(){var r=Hb(!1),a=r[0];return r=RN.bind(null,r[1]),Fn().memoizedState=r,[a,r]},useMutableSource:function(){},useSyncExternalStore:function(r,a,s){var d=ot,b=Fn();if(et){if(s===void 0)throw Error(n(407));s=s()}else{if(s=a(),Rt===null)throw Error(n(349));(Mr&30)!==0||jb(d,a,s)}b.memoizedState=s;var y={value:s,getSnapshot:a};return b.queue=y,Vb($b.bind(null,d,y,r),[r]),d.flags|=2048,ii(9,zb.bind(null,d,y,s,a),void 0,null),s},useId:function(){var r=Fn(),a=Rt.identifierPrefix;if(et){var s=Wn,d=Hn;s=(d&~(1<<32-wn(d)-1)).toString(32)+s,a=":"+a+"R"+s,s=ri++,0<\/script>",r=r.removeChild(r.firstChild)):typeof d.is=="string"?r=_.createElement(s,{is:d.is}):(r=_.createElement(s),s==="select"&&(_=r,d.multiple?_.multiple=!0:d.size&&(_.size=d.size))):r=_.createElementNS(r,s),r[Dn]=a,r[Za]=d,wy(r,a,!1,!1),a.stateNode=r;e:{switch(_=gt(s,d),s){case"dialog":Ze("cancel",r),Ze("close",r),b=d;break;case"iframe":case"object":case"embed":Ze("load",r),b=d;break;case"video":case"audio":for(b=0;bba&&(a.flags|=128,d=!0,oi(y,!1),a.lanes=4194304)}else{if(!d)if(r=go(_),r!==null){if(a.flags|=128,d=!0,s=r.updateQueue,s!==null&&(a.updateQueue=s,a.flags|=4),oi(y,!0),y.tail===null&&y.tailMode==="hidden"&&!_.alternate&&!et)return Bt(a),null}else 2*mt()-y.renderingStartTime>ba&&s!==1073741824&&(a.flags|=128,d=!0,oi(y,!1),a.lanes=4194304);y.isBackwards?(_.sibling=a.child,a.child=_):(s=y.last,s!==null?s.sibling=_:a.child=_,y.last=_)}return y.tail!==null?(a=y.tail,y.rendering=a,y.tail=a.sibling,y.renderingStartTime=mt(),a.sibling=null,s=it.current,Ve(it,d?s&1|2:s&1),a):(Bt(a),null);case 22:case 23:return Xl(),d=a.memoizedState!==null,r!==null&&r.memoizedState!==null!==d&&(a.flags|=8192),d&&(a.mode&1)!==0?(un&1073741824)!==0&&(Bt(a),a.subtreeFlags&6&&(a.flags|=8192)):Bt(a),null;case 24:return null;case 25:return null}throw Error(n(156,a.tag))}function BN(r,a){switch(ol(a),a.tag){case 1:return Zt(a.type)&&no(),r=a.flags,r&65536?(a.flags=r&-65537|128,a):null;case 3:return fa(),Xe(Kt),Xe(Pt),El(),r=a.flags,(r&65536)!==0&&(r&128)===0?(a.flags=r&-65537|128,a):null;case 5:return bl(a),null;case 13:if(Xe(it),r=a.memoizedState,r!==null&&r.dehydrated!==null){if(a.alternate===null)throw Error(n(340));ua()}return r=a.flags,r&65536?(a.flags=r&-65537|128,a):null;case 19:return Xe(it),null;case 4:return fa(),null;case 10:return pl(a.type._context),null;case 22:case 23:return Xl(),null;case 24:return null;default:return null}}var _o=!1,jt=!1,jN=typeof WeakSet=="function"?WeakSet:Set,be=null;function ma(r,a){var s=r.ref;if(s!==null)if(typeof s=="function")try{s(null)}catch(d){ut(r,a,d)}else s.current=null}function Bl(r,a,s){try{s()}catch(d){ut(r,a,d)}}var Ay=!1;function zN(r,a){if(Xs=$i,r=ib(),qs(r)){if("selectionStart"in r)var s={start:r.selectionStart,end:r.selectionEnd};else e:{s=(s=r.ownerDocument)&&s.defaultView||window;var d=s.getSelection&&s.getSelection();if(d&&d.rangeCount!==0){s=d.anchorNode;var b=d.anchorOffset,y=d.focusNode;d=d.focusOffset;try{s.nodeType,y.nodeType}catch{s=null;break e}var _=0,I=-1,F=-1,V=0,ie=0,oe=r,re=null;t:for(;;){for(var me;oe!==s||b!==0&&oe.nodeType!==3||(I=_+b),oe!==y||d!==0&&oe.nodeType!==3||(F=_+d),oe.nodeType===3&&(_+=oe.nodeValue.length),(me=oe.firstChild)!==null;)re=oe,oe=me;for(;;){if(oe===r)break t;if(re===s&&++V===b&&(I=_),re===y&&++ie===d&&(F=_),(me=oe.nextSibling)!==null)break;oe=re,re=oe.parentNode}oe=me}s=I===-1||F===-1?null:{start:I,end:F}}else s=null}s=s||{start:0,end:0}}else s=null;for(Qs={focusedElem:r,selectionRange:s},$i=!1,be=a;be!==null;)if(a=be,r=a.child,(a.subtreeFlags&1028)!==0&&r!==null)r.return=a,be=r;else for(;be!==null;){a=be;try{var ye=a.alternate;if((a.flags&1024)!==0)switch(a.tag){case 0:case 11:case 15:break;case 1:if(ye!==null){var Ee=ye.memoizedProps,ht=ye.memoizedState,z=a.stateNode,U=z.getSnapshotBeforeUpdate(a.elementType===a.type?Ee:An(a.type,Ee),ht);z.__reactInternalSnapshotBeforeUpdate=U}break;case 3:var G=a.stateNode.containerInfo;G.nodeType===1?G.textContent="":G.nodeType===9&&G.documentElement&&G.removeChild(G.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(n(163))}}catch(ce){ut(a,a.return,ce)}if(r=a.sibling,r!==null){r.return=a.return,be=r;break}be=a.return}return ye=Ay,Ay=!1,ye}function si(r,a,s){var d=a.updateQueue;if(d=d!==null?d.lastEffect:null,d!==null){var b=d=d.next;do{if((b.tag&r)===r){var y=b.destroy;b.destroy=void 0,y!==void 0&&Bl(a,s,y)}b=b.next}while(b!==d)}}function wo(r,a){if(a=a.updateQueue,a=a!==null?a.lastEffect:null,a!==null){var s=a=a.next;do{if((s.tag&r)===r){var d=s.create;s.destroy=d()}s=s.next}while(s!==a)}}function jl(r){var a=r.ref;if(a!==null){var s=r.stateNode;r.tag,r=s,typeof a=="function"?a(r):a.current=r}}function Ry(r){var a=r.alternate;a!==null&&(r.alternate=null,Ry(a)),r.child=null,r.deletions=null,r.sibling=null,r.tag===5&&(a=r.stateNode,a!==null&&(delete a[Dn],delete a[Za],delete a[nl],delete a[_N],delete a[wN])),r.stateNode=null,r.return=null,r.dependencies=null,r.memoizedProps=null,r.memoizedState=null,r.pendingProps=null,r.stateNode=null,r.updateQueue=null}function Ny(r){return r.tag===5||r.tag===3||r.tag===4}function Cy(r){e:for(;;){for(;r.sibling===null;){if(r.return===null||Ny(r.return))return null;r=r.return}for(r.sibling.return=r.return,r=r.sibling;r.tag!==5&&r.tag!==6&&r.tag!==18;){if(r.flags&2||r.child===null||r.tag===4)continue e;r.child.return=r,r=r.child}if(!(r.flags&2))return r.stateNode}}function zl(r,a,s){var d=r.tag;if(d===5||d===6)r=r.stateNode,a?s.nodeType===8?s.parentNode.insertBefore(r,a):s.insertBefore(r,a):(s.nodeType===8?(a=s.parentNode,a.insertBefore(r,s)):(a=s,a.appendChild(r)),s=s._reactRootContainer,s!=null||a.onclick!==null||(a.onclick=eo));else if(d!==4&&(r=r.child,r!==null))for(zl(r,a,s),r=r.sibling;r!==null;)zl(r,a,s),r=r.sibling}function $l(r,a,s){var d=r.tag;if(d===5||d===6)r=r.stateNode,a?s.insertBefore(r,a):s.appendChild(r);else if(d!==4&&(r=r.child,r!==null))for($l(r,a,s),r=r.sibling;r!==null;)$l(r,a,s),r=r.sibling}var Ot=null,Rn=!1;function br(r,a,s){for(s=s.child;s!==null;)Iy(r,a,s),s=s.sibling}function Iy(r,a,s){if(Ln&&typeof Ln.onCommitFiberUnmount=="function")try{Ln.onCommitFiberUnmount(Fi,s)}catch{}switch(s.tag){case 5:jt||ma(s,a);case 6:var d=Ot,b=Rn;Ot=null,br(r,a,s),Ot=d,Rn=b,Ot!==null&&(Rn?(r=Ot,s=s.stateNode,r.nodeType===8?r.parentNode.removeChild(s):r.removeChild(s)):Ot.removeChild(s.stateNode));break;case 18:Ot!==null&&(Rn?(r=Ot,s=s.stateNode,r.nodeType===8?tl(r.parentNode,s):r.nodeType===1&&tl(r,s),Ba(r)):tl(Ot,s.stateNode));break;case 4:d=Ot,b=Rn,Ot=s.stateNode.containerInfo,Rn=!0,br(r,a,s),Ot=d,Rn=b;break;case 0:case 11:case 14:case 15:if(!jt&&(d=s.updateQueue,d!==null&&(d=d.lastEffect,d!==null))){b=d=d.next;do{var y=b,_=y.destroy;y=y.tag,_!==void 0&&((y&2)!==0||(y&4)!==0)&&Bl(s,a,_),b=b.next}while(b!==d)}br(r,a,s);break;case 1:if(!jt&&(ma(s,a),d=s.stateNode,typeof d.componentWillUnmount=="function"))try{d.props=s.memoizedProps,d.state=s.memoizedState,d.componentWillUnmount()}catch(I){ut(s,a,I)}br(r,a,s);break;case 21:br(r,a,s);break;case 22:s.mode&1?(jt=(d=jt)||s.memoizedState!==null,br(r,a,s),jt=d):br(r,a,s);break;default:br(r,a,s)}}function Oy(r){var a=r.updateQueue;if(a!==null){r.updateQueue=null;var s=r.stateNode;s===null&&(s=r.stateNode=new jN),a.forEach(function(d){var b=ZN.bind(null,r,d);s.has(d)||(s.add(d),d.then(b,b))})}}function Nn(r,a){var s=a.deletions;if(s!==null)for(var d=0;db&&(b=_),d&=~y}if(d=b,d=mt()-d,d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3e3>d?3e3:4320>d?4320:1960*qN(d/1960))-d,10r?16:r,Er===null)var d=!1;else{if(r=Er,Er=null,No=0,(Ue&6)!==0)throw Error(n(331));var b=Ue;for(Ue|=4,be=r.current;be!==null;){var y=be,_=y.child;if((be.flags&16)!==0){var I=y.deletions;if(I!==null){for(var F=0;Fmt()-Hl?Ur(r,0):Gl|=s),Jt(r,a)}function Hy(r,a){a===0&&((r.mode&1)===0?a=1:(a=Ui,Ui<<=1,(Ui&130023424)===0&&(Ui=4194304)));var s=Gt();r=Vn(r,a),r!==null&&(Da(r,a,s),Jt(r,s))}function KN(r){var a=r.memoizedState,s=0;a!==null&&(s=a.retryLane),Hy(r,s)}function ZN(r,a){var s=0;switch(r.tag){case 13:var d=r.stateNode,b=r.memoizedState;b!==null&&(s=b.retryLane);break;case 19:d=r.stateNode;break;default:throw Error(n(314))}d!==null&&d.delete(a),Hy(r,s)}var Wy;Wy=function(r,a,s){if(r!==null)if(r.memoizedProps!==a.pendingProps||Kt.current)Xt=!0;else{if((r.lanes&s)===0&&(a.flags&128)===0)return Xt=!1,PN(r,a,s);Xt=(r.flags&131072)!==0}else Xt=!1,et&&(a.flags&1048576)!==0&&Tb(a,oo,a.index);switch(a.lanes=0,a.tag){case 2:var d=a.type;ko(r,a),r=a.pendingProps;var b=oa(a,Pt.current);pa(a,s),b=kl(null,a,d,r,b,s);var y=_l();return a.flags|=1,typeof b=="object"&&b!==null&&typeof b.render=="function"&&b.$$typeof===void 0?(a.tag=1,a.memoizedState=null,a.updateQueue=null,Zt(d)?(y=!0,ro(a)):y=!1,a.memoizedState=b.state!==null&&b.state!==void 0?b.state:null,ml(a),b.updater=So,a.stateNode=b,b._reactInternals=a,Nl(a,d,r,s),a=Ll(null,a,d,!0,y,s)):(a.tag=0,et&&y&&il(a),qt(null,a,b,s),a=a.child),a;case 16:d=a.elementType;e:{switch(ko(r,a),r=a.pendingProps,b=d._init,d=b(d._payload),a.type=d,b=a.tag=QN(d),r=An(d,r),b){case 0:a=Ol(null,a,d,r,s);break e;case 1:a=yy(null,a,d,r,s);break e;case 11:a=fy(null,a,d,r,s);break e;case 14:a=gy(null,a,d,An(d.type,r),s);break e}throw Error(n(306,d,""))}return a;case 0:return d=a.type,b=a.pendingProps,b=a.elementType===d?b:An(d,b),Ol(r,a,d,b,s);case 1:return d=a.type,b=a.pendingProps,b=a.elementType===d?b:An(d,b),yy(r,a,d,b,s);case 3:e:{if(Ey(a),r===null)throw Error(n(387));d=a.pendingProps,y=a.memoizedState,b=y.element,Db(r,a),fo(a,d,null,s);var _=a.memoizedState;if(d=_.element,y.isDehydrated)if(y={element:d,isDehydrated:!1,cache:_.cache,pendingSuspenseBoundaries:_.pendingSuspenseBoundaries,transitions:_.transitions},a.updateQueue.baseState=y,a.memoizedState=y,a.flags&256){b=ga(Error(n(423)),a),a=Sy(r,a,d,s,b);break e}else if(d!==b){b=ga(Error(n(424)),a),a=Sy(r,a,d,s,b);break e}else for(ln=dr(a.stateNode.containerInfo.firstChild),sn=a,et=!0,xn=null,s=Ob(a,null,d,s),a.child=s;s;)s.flags=s.flags&-3|4096,s=s.sibling;else{if(ua(),d===b){a=Kn(r,a,s);break e}qt(r,a,d,s)}a=a.child}return a;case 5:return Pb(a),r===null&&ll(a),d=a.type,b=a.pendingProps,y=r!==null?r.memoizedProps:null,_=b.children,Js(d,b)?_=null:y!==null&&Js(d,y)&&(a.flags|=32),by(r,a),qt(r,a,_,s),a.child;case 6:return r===null&&ll(a),null;case 13:return vy(r,a,s);case 4:return hl(a,a.stateNode.containerInfo),d=a.pendingProps,r===null?a.child=ca(a,null,d,s):qt(r,a,d,s),a.child;case 11:return d=a.type,b=a.pendingProps,b=a.elementType===d?b:An(d,b),fy(r,a,d,b,s);case 7:return qt(r,a,a.pendingProps,s),a.child;case 8:return qt(r,a,a.pendingProps.children,s),a.child;case 12:return qt(r,a,a.pendingProps.children,s),a.child;case 10:e:{if(d=a.type._context,b=a.pendingProps,y=a.memoizedProps,_=b.value,Ve(uo,d._currentValue),d._currentValue=_,y!==null)if(Tn(y.value,_)){if(y.children===b.children&&!Kt.current){a=Kn(r,a,s);break e}}else for(y=a.child,y!==null&&(y.return=a);y!==null;){var I=y.dependencies;if(I!==null){_=y.child;for(var F=I.firstContext;F!==null;){if(F.context===d){if(y.tag===1){F=Yn(-1,s&-s),F.tag=2;var V=y.updateQueue;if(V!==null){V=V.shared;var ie=V.pending;ie===null?F.next=F:(F.next=ie.next,ie.next=F),V.pending=F}}y.lanes|=s,F=y.alternate,F!==null&&(F.lanes|=s),fl(y.return,s,a),I.lanes|=s;break}F=F.next}}else if(y.tag===10)_=y.type===a.type?null:y.child;else if(y.tag===18){if(_=y.return,_===null)throw Error(n(341));_.lanes|=s,I=_.alternate,I!==null&&(I.lanes|=s),fl(_,s,a),_=y.sibling}else _=y.child;if(_!==null)_.return=y;else for(_=y;_!==null;){if(_===a){_=null;break}if(y=_.sibling,y!==null){y.return=_.return,_=y;break}_=_.return}y=_}qt(r,a,b.children,s),a=a.child}return a;case 9:return b=a.type,d=a.pendingProps.children,pa(a,s),b=gn(b),d=d(b),a.flags|=1,qt(r,a,d,s),a.child;case 14:return d=a.type,b=An(d,a.pendingProps),b=An(d.type,b),gy(r,a,d,b,s);case 15:return my(r,a,a.type,a.pendingProps,s);case 17:return d=a.type,b=a.pendingProps,b=a.elementType===d?b:An(d,b),ko(r,a),a.tag=1,Zt(d)?(r=!0,ro(a)):r=!1,pa(a,s),oy(a,d,b),Nl(a,d,b,s),Ll(null,a,d,!0,r,s);case 19:return _y(r,a,s);case 22:return hy(r,a,s)}throw Error(n(156,a.tag))};function Vy(r,a){return xh(r,a)}function XN(r,a,s,d){this.tag=r,this.key=s,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=a,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=d,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function bn(r,a,s,d){return new XN(r,a,s,d)}function Jl(r){return r=r.prototype,!(!r||!r.isReactComponent)}function QN(r){if(typeof r=="function")return Jl(r)?1:0;if(r!=null){if(r=r.$$typeof,r===J)return 11;if(r===H)return 14}return 2}function kr(r,a){var s=r.alternate;return s===null?(s=bn(r.tag,a,r.key,r.mode),s.elementType=r.elementType,s.type=r.type,s.stateNode=r.stateNode,s.alternate=r,r.alternate=s):(s.pendingProps=a,s.type=r.type,s.flags=0,s.subtreeFlags=0,s.deletions=null),s.flags=r.flags&14680064,s.childLanes=r.childLanes,s.lanes=r.lanes,s.child=r.child,s.memoizedProps=r.memoizedProps,s.memoizedState=r.memoizedState,s.updateQueue=r.updateQueue,a=r.dependencies,s.dependencies=a===null?null:{lanes:a.lanes,firstContext:a.firstContext},s.sibling=r.sibling,s.index=r.index,s.ref=r.ref,s}function Lo(r,a,s,d,b,y){var _=2;if(d=r,typeof r=="function")Jl(r)&&(_=1);else if(typeof r=="string")_=5;else e:switch(r){case B:return jr(s.children,b,y,a);case W:_=8,b|=8;break;case j:return r=bn(12,s,a,b|2),r.elementType=j,r.lanes=y,r;case de:return r=bn(13,s,a,b),r.elementType=de,r.lanes=y,r;case Z:return r=bn(19,s,a,b),r.elementType=Z,r.lanes=y,r;case ue:return Do(s,b,y,a);default:if(typeof r=="object"&&r!==null)switch(r.$$typeof){case M:_=10;break e;case Y:_=9;break e;case J:_=11;break e;case H:_=14;break e;case te:_=16,d=null;break e}throw Error(n(130,r==null?r:typeof r,""))}return a=bn(_,s,a,b),a.elementType=r,a.type=d,a.lanes=y,a}function jr(r,a,s,d){return r=bn(7,r,d,a),r.lanes=s,r}function Do(r,a,s,d){return r=bn(22,r,d,a),r.elementType=ue,r.lanes=s,r.stateNode={isHidden:!1},r}function eu(r,a,s){return r=bn(6,r,null,a),r.lanes=s,r}function tu(r,a,s){return a=bn(4,r.children!==null?r.children:[],r.key,a),a.lanes=s,a.stateNode={containerInfo:r.containerInfo,pendingChildren:null,implementation:r.implementation},a}function JN(r,a,s,d,b){this.tag=a,this.containerInfo=r,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Rs(0),this.expirationTimes=Rs(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Rs(0),this.identifierPrefix=d,this.onRecoverableError=b,this.mutableSourceEagerHydrationData=null}function nu(r,a,s,d,b,y,_,I,F){return r=new JN(r,a,s,I,F),a===1?(a=1,y===!0&&(a|=8)):a=0,y=bn(3,null,null,a),r.current=y,y.stateNode=r,y.memoizedState={element:d,isDehydrated:s,cache:null,transitions:null,pendingSuspenseBoundaries:null},ml(y),r}function eC(r,a,s){var d=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}return e(),lu.exports=dC(),lu.exports}var sE;function fC(){if(sE)return zo;sE=1;var e=pC();return zo.createRoot=e.createRoot,zo.hydrateRoot=e.hydrateRoot,zo}var gC=fC();const mC=Ni(gC),qm="en-US",lE={"en-US":{common:{appName:"Sparo OS",slogan:"Ignite AI for Everyone",back:"Back",continue:"Continue",cancel:"Cancel",switch:"Switch",workspace:"Workspace",userId:"User ID",loading:"Loading...",language:"Language",switchLanguage:"Switch language",toggleTheme:"Toggle theme",attachImage:"Attach image",stop:"Stop",submit:"Submit",submitting:"Submitting...",submitted:"Submitted",other:"Other",customTextInput:"Custom text input",typeYourAnswer:"Type your answer...",itemCount:"{count} items",justNow:"just now",minutesAgo:"{count}m ago",hoursAgo:"{count}h ago",daysAgo:"{count}d ago"},pairing:{enterUserIdToContinue:"Enter your user ID to continue",connectingAndPairing:"Connecting and pairing...",pairedLoadingSessions:"Paired! Loading sessions...",connectionError:"Connection error",invalidQrCode:"Invalid QR code: missing room or public key",userIdRequired:"User ID is required",tooManyAttempts:"Too many failed attempts. Try again in {seconds}s.",pairingFailed:"Pairing failed",fieldLabel:"User ID",placeholder:"Enter a user ID",note:"The first successful connection binds this URL to your user ID for the current remote session.",connecting:"Connecting...",retryIn:"Retry in {seconds}s",continue:"Continue"},sessions:{remoteCockpit:"Remote cockpit",workspace:"Workspace",switchWorkspace:"Switch workspace",selectWorkspace:"Select Workspace",noWorkspaces:"No workspaces found",noWorkspaceSelected:"No workspace selected",launch:"Launch",startRemoteFlow:"Start a new remote flow",codeSession:"Code Session",codeSessionDesc:"For coding anywhere, anytime.",coworkSession:"Cowork Session",coworkSessionDesc:"For assisting with everyday work.",recent:"Recent",sessionHistory:"Session history",loadingSessions:"Loading sessions...",noSessions:"No sessions yet. Create one to get started.",untitledSession:"Untitled Session",loadingMore:"Loading more...",remoteCodeSession:"Remote Code Session",remoteCoworkSession:"Remote Cowork Session",agentBitFunCoder:"BitFun Coder",agentCowork:"Cowork",agentDesign:"Design",agentDeepResearch:"Deep Research",appBuilder:"App Builder",agentAgenticOs:"Sparo OS",agentDefault:"Default",agentBitFunCoderDesc:"AI coding and engineering tasks",agentCoworkDesc:"Collaborative assistant for daily work",agentDesignDesc:"Visual design with AI-powered canvas",agentDeepResearchDesc:"In-depth research and analysis",appBuilderDesc:"Build and preview Product Apps",pullToRefresh:"Pull to refresh",agentView:"Agent",manualView:"Manual",active:"Active",history:"History",newSession:"New Session",deleteSession:"Delete",renameSession:"Rename",confirmDelete:"Delete this session?",confirmDeleteDesc:"This action cannot be undone.",agenticOsSession:"Sparo OS"},tasks:{title:"Tasks",noActiveSessions:"No active sessions.",noRecentSessions:"No recent sessions."},apps:{title:"Apps",skills:"Skills",skillsDesc:"Manage and run built-in skills",memory:"Memory",memoryDesc:"View and manage agent memory",shell:"Shell",shellDesc:"View agent terminal sessions",settings:"Settings",settingsDesc:"Appearance, language, and account",comingSoon:"Coming soon",manageOnDesktop:"Manage on desktop",manageOnDesktopDesc:"This feature is available in the desktop app."},me:{title:"Me",workspace:"Workspace",switchWorkspace:"Switch Workspace",copyPath:"Copy Path",preferences:"Preferences",appearance:"Appearance",language:"Language",debugLogs:"Debug Logs",account:"Account",userId:"User ID",deviceId:"Device",signOut:"Sign Out",signOutConfirm:"Sign out from this remote session?",signOutDesc:"You will need to scan the QR code again to reconnect.",followSystem:"Follow System",light:"Light",dark:"Dark"},search:{title:"Search",placeholder:"Search sessions, workspaces...",sessions:"Sessions",workspaces:"Workspaces",noResults:"No results found."},topbar:{openMenu:"Open menu",tasks:"Tasks",apps:"Apps",backToOS:"Back to Sparo OS"},workspace:{title:"Workspace",loadingInfo:"Loading workspace info...",selectedWorkspace:"Selected Workspace",unknownProject:"Unknown Project",noWorkspaceOpen:"No workspace is currently open on the desktop.",noWorkspaceHint:"Select a recent workspace below, or open one on the desktop first.",selectWorkspace:"Select Workspace",recentWorkspaces:"Recent Workspaces",noRecentWorkspaces:"No recent workspaces found. Please open a workspace on the desktop first.",failedToSetWorkspace:"Failed to set workspace",openingWorkspace:"Opening workspace..."},chat:{session:"Session",loadingOlderMessages:"Loading older messages...",showResponse:"Show response",hideResponse:"Hide response",analyzingImage:"Analyzing image with image understanding model...",inputPlaceholder:"How can I help you...",collapsedInputPlaceholder:"Ask Sparo OS...",workingPlaceholder:"Sparo OS is working...",streamingTapToQueue:"Assistant is replying — tap to type a follow-up (queued)",collapsedStreamingPlaceholder:"Replying...",messageQueued:"Message queued; it will run after the current step",imageAnalyzingPlaceholder:"Analyzing image...",imageAttachmentFallback:"(see attached images)",modelSelection:"Select model",modelPrimary:"Primary Model",modelFast:"Fast Model",modelNotConfigured:"Model not configured",askQuestionCount:"{count} question{suffix}",waiting:"Waiting",modeBitFunCoder:"BitFun Coder",modePlan:"Plan",modeDebug:"Debug",modeTeam:"Team",thinking:"Thinking...",allTasksCompleted:"All tasks completed",task:"Task",toolCalls:"{count} tool call{suffix}",done:"{count} done",running:"{count} running",thoughtCharacters:"Thought {count} characters",textCharacters:"Text {count} characters",readToolsDone:"{summary}",readToolsRunning:"{summary} ({doneCount} done)",fileLoading:"Loading...",fileUnavailable:"File unavailable",fileDownloading:"Downloading...",fileDownloaded:"Downloaded",clickToDownload:"Click to download"},tools:{explore:"Explore",read:"Read",write:"Write",ls:"LS",shell:"Shell",glob:"Glob",grep:"Grep",delete:"Delete",task:"Task",search:"Search",edit:"Edit",web:"Web",todo:"Todo"}},"zh-CN":{common:{appName:"Sparo OS",slogan:"点亮每个人的 AI 火种",back:"返回",continue:"继续",cancel:"取消",switch:"切换",workspace:"工作区",userId:"用户 ID",loading:"加载中...",language:"语言",switchLanguage:"切换语言",toggleTheme:"切换主题",attachImage:"添加图片",stop:"停止",submit:"提交",submitting:"提交中...",submitted:"已提交",other:"其他",customTextInput:"自定义输入",typeYourAnswer:"请输入你的回答...",itemCount:"{count} 项",justNow:"刚刚",minutesAgo:"{count} 分钟前",hoursAgo:"{count} 小时前",daysAgo:"{count} 天前"},pairing:{enterUserIdToContinue:"请输入你的用户 ID 继续",connectingAndPairing:"正在连接并配对...",pairedLoadingSessions:"配对成功,正在加载会话...",connectionError:"连接异常",invalidQrCode:"二维码无效:缺少 room 或 public key",userIdRequired:"用户 ID 不能为空",tooManyAttempts:"失败次数过多,请在 {seconds} 秒后重试。",pairingFailed:"配对失败",fieldLabel:"用户 ID",placeholder:"请输入用户 ID",note:"首次成功连接后,本次远程会话会把该 URL 绑定到你的用户 ID。",connecting:"连接中...",retryIn:"{seconds} 秒后重试",continue:"继续"},sessions:{remoteCockpit:"Remote cockpit",workspace:"工作区",switchWorkspace:"切换工作区",selectWorkspace:"选择工作区",noWorkspaces:"暂无工作区",noWorkspaceSelected:"未选择工作区",launch:"启动",startRemoteFlow:"开始一个新的远程流程",codeSession:"代码会话",codeSessionDesc:"随时随地进行编码。",coworkSession:"协作会话",coworkSessionDesc:"处理日常协作与办公任务。",recent:"最近",sessionHistory:"会话历史",loadingSessions:"正在加载会话...",noSessions:"还没有会话,先创建一个开始吧。",untitledSession:"未命名会话",loadingMore:"正在加载更多...",remoteCodeSession:"远程代码会话",remoteCoworkSession:"远程协作会话",agentBitFunCoder:"BitFun Coder",agentCowork:"Cowork",agentDesign:"设计",agentDeepResearch:"深度研究",appBuilder:"App Builder",agentAgenticOs:"Sparo OS",agentDefault:"默认",agentBitFunCoderDesc:"AI 编码和工程任务",agentCoworkDesc:"日常工作协作助理",agentDesignDesc:"AI 视觉设计画布",agentDeepResearchDesc:"深度研究与分析",appBuilderDesc:"构建并预览 Product App",pullToRefresh:"下拉刷新",agentView:"Agent",manualView:"手动",active:"进行中",history:"历史",newSession:"新会话",deleteSession:"删除",renameSession:"重命名",confirmDelete:"删除此会话?",confirmDeleteDesc:"此操作不可撤销。",agenticOsSession:"Sparo OS"},tasks:{title:"任务",noActiveSessions:"暂无进行中的会话。",noRecentSessions:"暂无历史会话。"},apps:{title:"应用",skills:"技能库",skillsDesc:"管理和运行内置技能",memory:"记忆",memoryDesc:"查看和管理 agent 记忆",shell:"终端",shellDesc:"查看 agent 终端会话",settings:"设置",settingsDesc:"外观、语言与账户",comingSoon:"即将开放",manageOnDesktop:"请在桌面端管理",manageOnDesktopDesc:"此功能在桌面应用中可用。"},me:{title:"我",workspace:"工作区",switchWorkspace:"切换工作区",copyPath:"复制路径",preferences:"偏好设置",appearance:"外观",language:"语言",debugLogs:"调试日志",account:"账户",userId:"用户 ID",deviceId:"设备",signOut:"退出登录",signOutConfirm:"退出此远程会话?",signOutDesc:"退出后需要重新扫码才能重新连接。",followSystem:"跟随系统",light:"浅色",dark:"深色"},search:{title:"搜索",placeholder:"搜索会话、工作区...",sessions:"会话",workspaces:"工作区",noResults:"没有找到相关结果。"},topbar:{openMenu:"打开菜单",tasks:"任务",apps:"应用",backToOS:"返回 Sparo OS"},workspace:{title:"工作区",loadingInfo:"正在加载工作区信息...",selectedWorkspace:"所选工作区",unknownProject:"未知项目",noWorkspaceOpen:"桌面端当前没有打开工作区。",noWorkspaceHint:"你可以在下方选择最近工作区,或先在桌面端打开一个工作区。",selectWorkspace:"选择工作区",recentWorkspaces:"最近工作区",noRecentWorkspaces:"没有找到最近工作区,请先在桌面端打开一个工作区。",failedToSetWorkspace:"设置工作区失败",openingWorkspace:"正在打开工作区..."},chat:{session:"会话",loadingOlderMessages:"正在加载更早的消息...",showResponse:"Show response",hideResponse:"Hide response",analyzingImage:"正在使用图像理解模型分析图片...",inputPlaceholder:"有什么可以帮您...",collapsedInputPlaceholder:"发消息...",workingPlaceholder:"Sparo OS 正在处理中...",streamingTapToQueue:"助手正在回复 — 点击输入后续消息(将排队)",collapsedStreamingPlaceholder:"正在回复...",messageQueued:"已加入队列,将在当前步骤结束后处理",imageAnalyzingPlaceholder:"正在分析图片...",imageAttachmentFallback:"(见附带图片)",modelSelection:"选择模型",modelPrimary:"Primary 模型",modelFast:"Fast 模型",modelNotConfigured:"模型未配置",askQuestionCount:"{count} 个问题",waiting:"等待中",modeBitFunCoder:"BitFun Coder",modePlan:"Plan",modeDebug:"Debug",modeTeam:"Team",thinking:"思考中...",allTasksCompleted:"所有任务已完成",task:"任务",toolCalls:"{count} 次工具调用",done:"已完成 {count}",running:"运行中 {count}",thoughtCharacters:"思考 {count} 个字符",textCharacters:"文本 {count} 个字符",readToolsDone:"{summary}",readToolsRunning:"{summary}(已完成 {doneCount})",fileLoading:"加载中...",fileUnavailable:"文件不可用",fileDownloading:"下载中...",fileDownloaded:"已下载",clickToDownload:"点击下载"},tools:{explore:"探索",read:"读取",write:"写入",ls:"列表",shell:"Shell",glob:"Glob",grep:"Grep",delete:"删除",task:"任务",search:"搜索",edit:"编辑",web:"网络",todo:"待办"}}},mx="sparo-mobile-language";function hx(e){return e==="zh-CN"||e==="en-US"}function uE(e,t){const n=t.split(".");let i=e;for(const o of n){if(!i||typeof i!="object"||!(o in i))return null;i=i[o]}return typeof i=="string"?i:null}function hC(e,t){return t?e.replace(/\{(\w+)\}/g,(n,i)=>{const o=t[i];return o==null?"":String(o)}):e}function bC(e,t,n){const i=uE(lE[e],t)??uE(lE[qm],t)??t;return hC(i,n)}function yC(){try{const n=localStorage.getItem(mx);if(hx(n))return n}catch{}const e=EC();return e||((navigator.language?.toLowerCase()||"").startsWith("zh")?"zh-CN":qm)}function EC(){const e=[];try{e.push(new URLSearchParams(window.location.search).get("lang"))}catch{}const t=window.location.hash||"",n=t.indexOf("?");if(n>=0)try{const i=t.slice(n+1);e.push(new URLSearchParams(i).get("lang"))}catch{}for(const i of e)if(hx(i))return i;return null}const bx=P.createContext({language:qm,setLanguage:()=>{},toggleLanguage:()=>{},t:e=>e}),SC=({children:e})=>{const[t,n]=P.useState(yC);P.useLayoutEffect(()=>{document.documentElement.lang=t;try{localStorage.setItem(mx,t)}catch{}},[t]);const i=P.useCallback(u=>{n(u)},[]),o=P.useCallback(()=>{n(u=>u==="zh-CN"?"en-US":"zh-CN")},[]),l=P.useMemo(()=>({language:t,setLanguage:i,toggleLanguage:o,t:(u,c)=>bC(t,u,c)}),[t,i,o]);return g.jsx(bx.Provider,{value:l,children:e})};function dt(){return P.useContext(bx)}const yx={"--ink":"#0F172A","--graphite":"#253044","--slate":"#5B6B8C","--print":"#B7372F","--echo":"#E06B5F","--cloud":"#F8FAFC","--surface":"#FFFFFF","--hairline":"rgba(255, 255, 255, 0.12)","--hairline-soft":"rgba(255, 255, 255, 0.08)","--color-bg-primary":"#0F172A","--color-bg-secondary":"#151E2F","--color-bg-tertiary":"#0F172A","--color-bg-quaternary":"#1C2840","--color-bg-elevated":"#1A2436","--color-bg-workbench":"#0F172A","--color-bg-scene":"#151E2F","--color-bg-flowchat":"#151E2F","--color-bg-tooltip":"rgba(26, 36, 54, 0.96)","--color-text-primary":"rgba(248, 250, 252, 0.92)","--color-text-secondary":"rgba(248, 250, 252, 0.70)","--color-text-muted":"rgba(248, 250, 252, 0.45)","--color-text-disabled":"rgba(248, 250, 252, 0.28)","--element-bg-subtle":"rgba(255, 255, 255, 0.04)","--element-bg-soft":"rgba(255, 255, 255, 0.07)","--element-bg-base":"rgba(255, 255, 255, 0.10)","--element-bg-medium":"rgba(255, 255, 255, 0.14)","--element-bg-strong":"rgba(255, 255, 255, 0.20)","--element-bg-elevated":"rgba(255, 255, 255, 0.08)","--color-accent-50":"rgba(183, 55, 47, 0.06)","--color-accent-100":"rgba(183, 55, 47, 0.12)","--color-accent-200":"rgba(183, 55, 47, 0.20)","--color-accent-300":"rgba(183, 55, 47, 0.32)","--color-accent-400":"rgba(183, 55, 47, 0.50)","--color-accent-500":"#E06B5F","--color-accent-600":"#B7372F","--color-accent-700":"rgba(224, 107, 95, 0.8)","--color-accent-800":"rgba(224, 107, 95, 0.9)","--color-purple-50":"rgba(139, 92, 246, 0.04)","--color-purple-100":"rgba(139, 92, 246, 0.08)","--color-purple-200":"rgba(139, 92, 246, 0.15)","--color-purple-300":"rgba(139, 92, 246, 0.25)","--color-purple-400":"rgba(139, 92, 246, 0.4)","--color-purple-500":"#8b5cf6","--color-purple-600":"#7c3aed","--color-purple-700":"rgba(124, 58, 237, 0.8)","--color-purple-800":"rgba(124, 58, 237, 0.9)","--color-pink-50":"rgba(236, 72, 153, 0.04)","--color-pink-100":"rgba(236, 72, 153, 0.08)","--color-pink-200":"rgba(236, 72, 153, 0.15)","--color-pink-300":"rgba(236, 72, 153, 0.25)","--color-pink-400":"rgba(236, 72, 153, 0.4)","--color-pink-500":"#ec4899","--color-pink-600":"#db2777","--color-pink-700":"rgba(219, 39, 119, 0.8)","--color-pink-800":"rgba(219, 39, 119, 0.9)","--color-orange-50":"rgba(249, 115, 22, 0.04)","--color-orange-100":"rgba(249, 115, 22, 0.08)","--color-orange-200":"rgba(249, 115, 22, 0.15)","--color-orange-300":"rgba(249, 115, 22, 0.25)","--color-orange-400":"rgba(249, 115, 22, 0.4)","--color-orange-500":"#f97316","--color-orange-600":"#ea580c","--color-orange-700":"rgba(234, 88, 12, 0.8)","--color-orange-800":"rgba(234, 88, 12, 0.9)","--color-success":"#4ADE80","--color-success-bg":"rgba(74, 222, 128, 0.10)","--color-success-border":"rgba(74, 222, 128, 0.30)","--color-warning":"#FBBF24","--color-warning-bg":"rgba(251, 191, 36, 0.10)","--color-warning-border":"rgba(251, 191, 36, 0.30)","--color-error":"#E06B5F","--color-error-bg":"rgba(224, 107, 95, 0.12)","--color-error-border":"rgba(224, 107, 95, 0.35)","--color-info":"#60A5FA","--color-info-bg":"rgba(96, 165, 250, 0.10)","--color-info-border":"rgba(96, 165, 250, 0.30)","--color-highlight":"#E06B5F","--color-highlight-bg":"rgba(224, 107, 95, 0.15)","--color-overlay":"rgba(0, 0, 0, 0.55)","--border-subtle":"rgba(255, 255, 255, 0.08)","--border-base":"rgba(255, 255, 255, 0.12)","--border-medium":"rgba(255, 255, 255, 0.20)","--border-strong":"rgba(255, 255, 255, 0.30)","--border-prominent":"rgba(224, 107, 95, 0.50)","--glow-blue":"0 12px 32px rgba(224, 107, 95, 0.20), 0 6px 16px rgba(224, 107, 95, 0.14)","--glow-purple":"0 12px 32px rgba(139, 92, 246, 0.20), 0 6px 16px rgba(124, 58, 237, 0.14)","--glow-orange":"0 12px 32px rgba(249, 115, 22, 0.20), 0 6px 16px rgba(234, 88, 12, 0.14)","--glow-mixed":"0 12px 32px rgba(224, 107, 95, 0.16), 0 6px 16px rgba(139, 92, 246, 0.12)","--shadow-xs":"0 1px 2px rgba(0, 0, 0, 0.5)","--shadow-sm":"0 2px 4px rgba(0, 0, 0, 0.45)","--shadow-base":"0 4px 8px rgba(0, 0, 0, 0.40)","--shadow-lg":"0 8px 16px rgba(0, 0, 0, 0.35)","--shadow-xl":"0 12px 24px rgba(0, 0, 0, 0.30)","--shadow-2xl":"0 16px 32px rgba(0, 0, 0, 0.25)","--blur-subtle":"blur(4px) saturate(1.05)","--blur-base":"blur(8px) saturate(1.1)","--blur-medium":"blur(12px) saturate(1.2)","--blur-strong":"blur(16px) saturate(1.3) brightness(1.1)","--blur-intense":"blur(20px) saturate(1.4) brightness(1.15)","--size-radius-sm":"6px","--size-radius-base":"8px","--size-radius-lg":"12px","--size-radius-xl":"16px","--size-radius-2xl":"20px","--size-radius-full":"9999px","--size-gap-1":"4px","--size-gap-2":"8px","--size-gap-3":"12px","--size-gap-4":"16px","--size-gap-5":"20px","--size-gap-6":"24px","--size-gap-8":"32px","--size-gap-10":"40px","--size-gap-12":"48px","--size-gap-16":"64px","--motion-instant":"0.1s","--motion-fast":"0.15s","--motion-base":"0.24s","--motion-slow":"0.6s","--motion-lazy":"1s","--easing-standard":"cubic-bezier(0.4, 0, 0.2, 1)","--easing-decelerate":"cubic-bezier(0, 0, 0.2, 1)","--easing-accelerate":"cubic-bezier(0.4, 0, 1, 1)","--easing-bounce":"cubic-bezier(0.68, -0.55, 0.265, 1.55)","--easing-smooth":"cubic-bezier(0.4, 0, 0.2, 1)","--font-family-sans":"'Inter', 'Geist', 'Noto Sans SC', 'HarmonyOS Sans SC', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif","--font-family-mono":"'Menlo', 'SF Mono', 'Cascadia Code', 'Consolas', 'Liberation Mono', 'Courier New', 'Noto Sans Mono CJK SC', 'Noto Sans Mono', monospace","--font-weight-normal":"400","--font-weight-medium":"500","--font-weight-semibold":"600","--font-weight-bold":"700","--font-size-xs":"12px","--font-size-sm":"14px","--font-size-base":"15px","--font-size-lg":"16px","--font-size-xl":"18px","--font-size-2xl":"20px","--font-size-3xl":"24px","--line-height-tight":"1.2","--line-height-base":"1.5","--line-height-relaxed":"1.75","--opacity-disabled":"0.6","--opacity-hover":"0.8","--opacity-focus":"0.9","--opacity-overlay":"0.4","--scrollbar-thumb":"rgba(255, 255, 255, 0.15)","--scrollbar-thumb-hover":"rgba(255, 255, 255, 0.28)","--btn-default-bg":"rgba(255, 255, 255, 0.08)","--btn-default-color":"rgba(248, 250, 252, 0.70)","--btn-hover-bg":"rgba(255, 255, 255, 0.14)","--btn-hover-color":"rgba(248, 250, 252, 0.92)","--btn-primary-bg":"#F8FAFC","--btn-primary-color":"#0F172A","--btn-primary-hover-bg":"rgba(248, 250, 252, 0.90)","--btn-ghost-bg":"transparent","--btn-ghost-color":"rgba(248, 250, 252, 0.70)","--btn-ghost-hover-bg":"rgba(255, 255, 255, 0.08)"},Ex={"--ink":"#0F172A","--graphite":"#253044","--slate":"#5B6B8C","--print":"#B7372F","--echo":"#E06B5F","--cloud":"#F8FAFC","--surface":"#FFFFFF","--hairline":"rgba(15, 23, 42, 0.12)","--hairline-soft":"rgba(15, 23, 42, 0.08)","--color-bg-primary":"#F8FAFC","--color-bg-secondary":"#FFFFFF","--color-bg-tertiary":"#F8FAFC","--color-bg-quaternary":"#EEF1F5","--color-bg-elevated":"#FFFFFF","--color-bg-workbench":"#F8FAFC","--color-bg-scene":"#FFFFFF","--color-bg-flowchat":"#FFFFFF","--color-bg-tooltip":"rgba(255, 255, 255, 0.98)","--color-text-primary":"#0F172A","--color-text-secondary":"#253044","--color-text-muted":"#5B6B8C","--color-text-disabled":"#A0AEBE","--element-bg-subtle":"rgba(15, 23, 42, 0.03)","--element-bg-soft":"rgba(15, 23, 42, 0.05)","--element-bg-base":"rgba(15, 23, 42, 0.07)","--element-bg-medium":"rgba(15, 23, 42, 0.10)","--element-bg-strong":"rgba(15, 23, 42, 0.15)","--element-bg-elevated":"rgba(255, 255, 255, 0.94)","--color-accent-50":"rgba(183, 55, 47, 0.04)","--color-accent-100":"rgba(183, 55, 47, 0.08)","--color-accent-200":"rgba(183, 55, 47, 0.14)","--color-accent-300":"rgba(183, 55, 47, 0.22)","--color-accent-400":"rgba(183, 55, 47, 0.36)","--color-accent-500":"#B7372F","--color-accent-600":"#9B2E27","--color-accent-700":"rgba(155, 46, 39, 0.8)","--color-accent-800":"rgba(155, 46, 39, 0.9)","--color-purple-50":"rgba(175, 82, 222, 0.04)","--color-purple-100":"rgba(175, 82, 222, 0.08)","--color-purple-200":"rgba(175, 82, 222, 0.14)","--color-purple-300":"rgba(175, 82, 222, 0.22)","--color-purple-400":"rgba(175, 82, 222, 0.36)","--color-purple-500":"#AF52DE","--color-purple-600":"#9536CC","--color-purple-700":"rgba(149, 54, 204, 0.8)","--color-purple-800":"rgba(149, 54, 204, 0.9)","--color-pink-50":"rgba(236, 72, 153, 0.04)","--color-pink-100":"rgba(236, 72, 153, 0.08)","--color-pink-200":"rgba(236, 72, 153, 0.14)","--color-pink-300":"rgba(236, 72, 153, 0.22)","--color-pink-400":"rgba(236, 72, 153, 0.36)","--color-pink-500":"#EC4899","--color-pink-600":"#DB2777","--color-pink-700":"rgba(219, 39, 119, 0.8)","--color-pink-800":"rgba(219, 39, 119, 0.9)","--color-orange-50":"rgba(255, 149, 0, 0.04)","--color-orange-100":"rgba(255, 149, 0, 0.08)","--color-orange-200":"rgba(255, 149, 0, 0.14)","--color-orange-300":"rgba(255, 149, 0, 0.22)","--color-orange-400":"rgba(255, 149, 0, 0.36)","--color-orange-500":"#FF9500","--color-orange-600":"#CC7A00","--color-orange-700":"rgba(204, 122, 0, 0.8)","--color-orange-800":"rgba(204, 122, 0, 0.9)","--color-success":"#16A34A","--color-success-bg":"rgba(22, 163, 74, 0.08)","--color-success-border":"rgba(22, 163, 74, 0.25)","--color-warning":"#D97706","--color-warning-bg":"rgba(217, 119, 6, 0.08)","--color-warning-border":"rgba(217, 119, 6, 0.25)","--color-error":"#B7372F","--color-error-bg":"rgba(183, 55, 47, 0.08)","--color-error-border":"rgba(183, 55, 47, 0.25)","--color-info":"#0369A1","--color-info-bg":"rgba(3, 105, 161, 0.08)","--color-info-border":"rgba(3, 105, 161, 0.25)","--color-highlight":"#B7372F","--color-highlight-bg":"rgba(183, 55, 47, 0.10)","--color-overlay":"rgba(15, 23, 42, 0.35)","--border-subtle":"rgba(15, 23, 42, 0.08)","--border-base":"rgba(15, 23, 42, 0.12)","--border-medium":"rgba(15, 23, 42, 0.20)","--border-strong":"rgba(15, 23, 42, 0.30)","--border-prominent":"rgba(15, 23, 42, 0.40)","--glow-blue":"0 2px 8px rgba(183, 55, 47, 0.08)","--glow-purple":"0 2px 8px rgba(175, 82, 222, 0.08)","--glow-orange":"0 2px 8px rgba(255, 149, 0, 0.08)","--glow-mixed":"0 2px 8px rgba(183, 55, 47, 0.06), 0 2px 8px rgba(175, 82, 222, 0.04)","--shadow-xs":"0 1px 2px rgba(15, 23, 42, 0.04)","--shadow-sm":"0 1px 3px rgba(15, 23, 42, 0.06), 0 1px 2px rgba(15, 23, 42, 0.04)","--shadow-base":"0 2px 8px rgba(15, 23, 42, 0.06), 0 1px 3px rgba(15, 23, 42, 0.04)","--shadow-lg":"0 4px 16px rgba(15, 23, 42, 0.08), 0 2px 6px rgba(15, 23, 42, 0.04)","--shadow-xl":"0 8px 24px rgba(15, 23, 42, 0.10), 0 4px 8px rgba(15, 23, 42, 0.04)","--shadow-2xl":"0 12px 32px rgba(15, 23, 42, 0.12), 0 4px 12px rgba(15, 23, 42, 0.06)","--blur-subtle":"blur(4px) saturate(1.2)","--blur-base":"blur(8px) saturate(1.4)","--blur-medium":"blur(12px) saturate(1.6)","--blur-strong":"blur(16px) saturate(1.8)","--blur-intense":"blur(20px) saturate(2.0)","--size-radius-sm":"6px","--size-radius-base":"8px","--size-radius-lg":"12px","--size-radius-xl":"16px","--size-radius-2xl":"20px","--size-radius-full":"9999px","--size-gap-1":"4px","--size-gap-2":"8px","--size-gap-3":"12px","--size-gap-4":"16px","--size-gap-5":"20px","--size-gap-6":"24px","--size-gap-8":"32px","--size-gap-10":"40px","--size-gap-12":"48px","--size-gap-16":"64px","--motion-instant":"0.1s","--motion-fast":"0.15s","--motion-base":"0.24s","--motion-slow":"0.6s","--motion-lazy":"1s","--easing-standard":"cubic-bezier(0.4, 0, 0.2, 1)","--easing-decelerate":"cubic-bezier(0, 0, 0.2, 1)","--easing-accelerate":"cubic-bezier(0.4, 0, 1, 1)","--easing-bounce":"cubic-bezier(0.68, -0.55, 0.265, 1.55)","--easing-smooth":"cubic-bezier(0.4, 0, 0.2, 1)","--font-family-sans":"'Inter', 'Geist', 'Noto Sans SC', 'HarmonyOS Sans SC', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif","--font-family-mono":"'Menlo', 'SF Mono', 'Cascadia Code', 'Consolas', 'Liberation Mono', 'Courier New', 'Noto Sans Mono CJK SC', 'Noto Sans Mono', monospace","--font-weight-normal":"400","--font-weight-medium":"500","--font-weight-semibold":"600","--font-weight-bold":"700","--font-size-xs":"12px","--font-size-sm":"14px","--font-size-base":"15px","--font-size-lg":"16px","--font-size-xl":"18px","--font-size-2xl":"20px","--font-size-3xl":"24px","--line-height-tight":"1.2","--line-height-base":"1.5","--line-height-relaxed":"1.75","--opacity-disabled":"0.55","--opacity-hover":"0.75","--opacity-focus":"0.9","--opacity-overlay":"0.35","--scrollbar-thumb":"rgba(15, 23, 42, 0.15)","--scrollbar-thumb-hover":"rgba(15, 23, 42, 0.25)","--btn-default-bg":"rgba(15, 23, 42, 0.06)","--btn-default-color":"#253044","--btn-hover-bg":"rgba(15, 23, 42, 0.10)","--btn-hover-color":"#0F172A","--btn-primary-bg":"#0F172A","--btn-primary-color":"#ffffff","--btn-primary-hover-bg":"#253044","--btn-ghost-bg":"transparent","--btn-ghost-color":"#253044","--btn-ghost-hover-bg":"rgba(15, 23, 42, 0.06)"},Sx="sparo-mobile-theme",cE="data-sparo-theme",vC={dark:yx,light:Ex},ym={dark:"#121214",light:"#f2f2f7"},vx={dark:"#e8e8e8",light:"#1c1c1e"};function dE(e,t){const n=ym[e],i=vx[e],o=[":root {"];for(const[l,u]of Object.entries(t))o.push(` ${l}: ${u};`);return o.push(` color-scheme: ${e};`),o.push("}"),o.push(`html, body { background-color: ${n}; color: ${i}; color-scheme: ${e}; }`),o.join(` -`)}const kC={dark:dE("dark",yx),light:dE("light",Ex)};function _C(e){const t=document.documentElement,n=document.body,i=vC[e],o=document.createElement("style");o.setAttribute(cE,e),o.textContent=kC[e],document.head.appendChild(o),document.head.querySelectorAll(`style[${cE}]`).forEach(u=>{u!==o&&u.remove()});for(const u of Object.keys(i))t.style.setProperty(u,i[u]);t.style.setProperty("color-scheme",e),t.setAttribute("data-theme",e),t.setAttribute("data-theme-type",e),n.setAttribute("data-theme",e),n.style.backgroundColor=ym[e],n.style.color=vx[e];const l=document.querySelector('meta[name="theme-color"]');l&&(l.setAttribute("content",ym[e]),l.removeAttribute("media"))}function wC(){try{const e=localStorage.getItem(Sx);if(e==="dark"||e==="light")return e}catch{}return window.matchMedia?.("(prefers-color-scheme: light)").matches?"light":"dark"}const kx=P.createContext({themeId:"dark",isDark:!0,setTheme:()=>{},toggleTheme:()=>{}}),TC=280;let pE;const xC=({children:e})=>{const[t,n]=P.useState(wC);P.useLayoutEffect(()=>{const l=document.documentElement,u=l.getAttribute("data-theme"),c=u&&u!==t;c&&(clearTimeout(pE),l.classList.add("theme-switching"),l.offsetHeight),_C(t),c&&(pE=setTimeout(()=>{l.classList.remove("theme-switching")},TC+40));try{localStorage.setItem(Sx,t)}catch{}},[t]);const i=P.useCallback(l=>n(l),[]),o=P.useCallback(()=>n(l=>l==="dark"?"light":"dark"),[]);return g.jsx(kx.Provider,{value:{themeId:t,isDark:t==="dark",setTheme:i,toggleTheme:o},children:e})};function Ca(){return P.useContext(kx)}const AC=({className:e})=>{const{language:t,toggleLanguage:n,t:i}=dt();return g.jsx("button",{type:"button",className:e||"mobile-lang-btn",onClick:n,"aria-label":i("common.switchLanguage"),title:i("common.switchLanguage"),children:t==="zh-CN"?"中":"EN"})};function RC(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function _x(e,t=""){if(!Number.isSafeInteger(e)||e<0){const n=t&&`"${t}" `;throw new Error(`${n}expected integer >= 0, got ${e}`)}}function Ei(e,t,n=""){const i=RC(e),o=e?.length,l=t!==void 0;if(!i||l&&o!==t){const u=n&&`"${n}" `,c=l?` of length ${t}`:"",p=i?`length=${o}`:`type=${typeof e}`;throw new Error(u+"expected Uint8Array"+c+", got "+p)}return e}const wx=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",NC=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function CC(e){if(Ei(e),wx)return e.toHex();let t="";for(let n=0;n=Xn._0&&e<=Xn._9)return e-Xn._0;if(e>=Xn.A&&e<=Xn.F)return e-(Xn.A-10);if(e>=Xn.a&&e<=Xn.f)return e-(Xn.a-10)}function IC(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);if(wx)return Uint8Array.fromHex(e);const t=e.length,n=t/2;if(t%2)throw new Error("hex string expected, got unpadded hex of length "+t);const i=new Uint8Array(n);for(let o=0,l=0;otypeof e=="bigint"&&Tx<=e;function PC(e,t,n){return ts(e)&&ts(t)&&ts(n)&&t<=e&&eObject.entries(l).forEach(([c,p])=>i(c,p,u));o(t,!1),o(n,!0)}const xx=BigInt(0);function Ax(e,t){const n=e%t;return n>=xx?n:t+n}function In(e,t,n){let i=e;for(;t-- >xx;)i*=i,i%=n;return i}function BC(e,t){return function(i){const o=e(i);return{secretKey:o,publicKey:t(o)}}}const fi=BigInt(0),Ea=BigInt(1),$o=BigInt(2);function jC(e){return UC(e,{adjustScalarBytes:"function",powPminus2:"function"}),Object.freeze({...e})}function zC(e){const t=jC(e),{P:n,type:i,adjustScalarBytes:o,powPminus2:l,randomBytes:u}=t,c=i==="x25519";if(!c&&i!=="x448")throw new Error("invalid type");const p=u||OC,f=c?255:448,m=c?32:56,h=BigInt(c?9:5),S=BigInt(c?121665:39081),E=c?$o**BigInt(254):$o**BigInt(447),v=c?BigInt(8)*$o**BigInt(251)-Ea:BigInt(4)*$o**BigInt(445)-Ea,k=E+v+Ea,T=Z=>Ax(Z,n),N=R(h);function R(Z){return FC(T(Z),m)}function A(Z){const H=Em(Ei(Z,m,"uCoordinate"));return c&&(H[31]&=127),T(gE(H))}function O(Z){return gE(o(Em(Ei(Z,m,"scalar"))))}function L(Z,H){const te=M(A(H),O(Z));if(te===fi)throw new Error("invalid private or public key received");return R(te)}function w(Z){return L(Z,N)}const B=w,W=L;function j(Z,H,te){const ue=T(Z*(H-te));return H=T(H-ue),te=T(te+ue),{x_2:H,x_3:te}}function M(Z,H){mE("u",Z,fi,n),mE("scalar",H,E,k);const te=H,ue=Z;let q=Ea,Q=fi,x=Z,D=Ea,$=fi;for(let ae=BigInt(f-1);ae>=fi;ae--){const pe=te>>ae&Ea;$^=pe,{x_2:q,x_3:x}=j($,q,x),{x_2:Q,x_3:D}=j($,Q,D),$=pe;const fe=q+Q,Se=T(fe*fe),ke=q-Q,X=T(ke*ke),he=Se-X,Ie=x+D,Qe=x-D,Ce=T(Qe*fe),$e=T(Ie*ke),pt=Ce+$e,tt=Ce-$e;x=T(pt*pt),D=T(ue*T(tt*tt)),q=T(Se*X),Q=T(he*(Se+T(S*he)))}({x_2:q,x_3:x}=j($,q,x)),{x_2:Q,x_3:D}=j($,Q,D);const C=l(Q);return T(q*C)}const Y={secretKey:m,publicKey:m,seed:m},J=(Z=p(m))=>(Ei(Z,Y.seed,"seed"),Z),de={randomSecretKey:J};return Object.freeze({keygen:BC(J,B),getSharedSecret:W,getPublicKey:B,scalarMult:L,scalarMultBase:w,utils:de,GuBytes:N.slice(),lengths:Y})}const $C=BigInt(1),hE=BigInt(2),qC=BigInt(3),GC=BigInt(5);BigInt(8);const Rx=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed");function HC(e){const t=BigInt(10),n=BigInt(20),i=BigInt(40),o=BigInt(80),l=Rx,c=e*e%l*e%l,p=In(c,hE,l)*c%l,f=In(p,$C,l)*e%l,m=In(f,GC,l)*f%l,h=In(m,t,l)*m%l,S=In(h,n,l)*h%l,E=In(S,i,l)*S%l,v=In(E,o,l)*E%l,k=In(v,o,l)*E%l,T=In(k,t,l)*m%l;return{pow_p_5_8:In(T,hE,l)*e%l,b2:c}}function WC(e){return e[0]&=248,e[31]&=127,e[31]|=64,e}const Nx=(()=>{const e=Rx;return zC({P:e,type:"x25519",powPminus2:t=>{const{pow_p_5_8:n,b2:i}=HC(t);return Ax(In(n,qC,e)*i,e)},adjustScalarBytes:WC})})();function VC(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function nn(e,t,n=""){const i=VC(e),o=e?.length,l=t!==void 0;if(!i||l&&o!==t){const u=n&&`"${n}" `,c=l?` of length ${t}`:"",p=i?`length=${o}`:`type=${typeof e}`;throw new Error(u+"expected Uint8Array"+c+", got "+p)}return e}function os(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function Cx(e,t){nn(e,void 0,"output");const n=t.outputLen;if(e.length{function n(i,...o){if(nn(i,void 0,"key"),!KC)throw new Error("Non little-endian hardware is not yet supported");if(e.nonceLength!==void 0){const m=o[0];nn(m,e.varSizeNonce?void 0:e.nonceLength,"nonce")}const l=e.tagLength;l&&o[1]!==void 0&&nn(o[1],void 0,"AAD");const u=t(i,...o),c=(m,h)=>{if(h!==void 0){if(m!==2)throw new Error("cipher output not supported");nn(h,void 0,"output")}};let p=!1;return{encrypt(m,h){if(p)throw new Error("cannot encrypt() twice with same key + nonce");return p=!0,nn(m),c(u.encrypt.length,h),u.encrypt(m,h)},decrypt(m,h){if(nn(m),l&&m.length{const o=i&1;return{s3:n<<31|i>>>1,s2:t<<31|n>>>1,s1:e<<31|t>>>1,s0:e>>>1^eI<<24&-(o&1)}},En=e=>(e>>>0&255)<<24|(e>>>8&255)<<16|(e>>>16&255)<<8|e>>>24&255|0;function nI(e){e.reverse();const t=e[15]&1;let n=0;for(let i=0;i>>1|n,n=(o&1)<<7}return e[0]^=-t&225,e}const rI=e=>e>64*1024?8:e>1024?4:2;class Ix{blockLen=Jn;outputLen=Jn;s0=0;s1=0;s2=0;s3=0;finished=!1;t;W;windowSize;constructor(t,n){nn(t,16,"key"),t=Hr(t);const i=hs(t);let o=i.getUint32(0,!1),l=i.getUint32(4,!1),u=i.getUint32(8,!1),c=i.getUint32(12,!1);const p=[];for(let v=0;v<128;v++)p.push({s0:En(o),s1:En(l),s2:En(u),s3:En(c)}),{s0:o,s1:l,s2:u,s3:c}=tI(o,l,u,c);const f=rI(n||1024);if(![1,2,4,8].includes(f))throw new Error("ghash: invalid window size, expected 2, 4 or 8");this.W=f;const h=128/f,S=this.windowSize=2**f,E=[];for(let v=0;v>>f-O-1&1))continue;const{s0:w,s1:B,s2:W,s3:j}=p[f*v+O];T^=w,N^=B,R^=W,A^=j}E.push({s0:T,s1:N,s2:R,s3:A})}this.t=E}_updateBlock(t,n,i,o){t^=this.s0,n^=this.s1,i^=this.s2,o^=this.s3;const{W:l,t:u,windowSize:c}=this;let p=0,f=0,m=0,h=0;const S=(1<>>8*k&255;for(let N=8/l-1;N>=0;N--){const R=T>>>l*N&S,{s0:A,s1:O,s2:L,s3:w}=u[E*c+R];p^=A,f^=O,m^=L,h^=w,E+=1}}this.s0=p,this.s1=f,this.s2=m,this.s3=h}update(t){os(this),nn(t),t=Hr(t);const n=er(t),i=Math.floor(t.length/Jn),o=t.length%Jn;for(let l=0;le(o,i.length).update(i).digest(),n=e(new Uint8Array(16),0);return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=(i,o)=>e(i,o),t}const bE=Ox((e,t)=>new Ix(e,t));Ox((e,t)=>new aI(e,t));const Sm=16,iI=4,qo=new Uint8Array(Sm),oI=283;function sI(e){if(![16,24,32].includes(e.length))throw new Error('"aes key" expected Uint8Array of length 16/24/32, got length='+e.length)}function Hm(e){return e<<1^oI&-(e>>7)}function yE(e,t){let n=0;for(;t>0;t>>=1)n^=e&-(t&1),e=Hm(e);return n}const lI=(()=>{const e=new Uint8Array(256);for(let n=0,i=1;n<256;n++,i^=Hm(i))e[n]=i;const t=new Uint8Array(256);t[0]=99;for(let n=0;n<255;n++){let i=e[255-n];i|=i<<8,t[e[n]]=(i^i>>4^i>>5^i>>6^i>>7^99)&255}return tr(e),t})(),uI=e=>e<<24|e>>>8,du=e=>e<<8|e>>>24;function cI(e,t){if(e.length!==256)throw new Error("Wrong sbox length");const n=new Uint32Array(256).map((f,m)=>t(e[m])),i=n.map(du),o=i.map(du),l=o.map(du),u=new Uint32Array(256*256),c=new Uint32Array(256*256),p=new Uint16Array(256*256);for(let f=0;f<256;f++)for(let m=0;m<256;m++){const h=f*256+m;u[h]=n[f]^i[m],c[h]=o[f]^l[m],p[h]=e[f]<<8|e[m]}return{sbox:e,sbox2:p,T0:n,T1:i,T2:o,T3:l,T01:u,T23:c}}const Lx=cI(lI,e=>yE(e,3)<<24|e<<16|e<<8|yE(e,2)),dI=(()=>{const e=new Uint8Array(16);for(let t=0,n=1;t<16;t++,n=Hm(n))e[t]=n;return e})();function pI(e){nn(e);const t=e.length;sI(e);const{sbox2:n}=Lx,i=[];ss(e)||i.push(e=Hr(e));const o=er(e),l=o.length,u=p=>yi(n,p,p,p,p),c=new Uint32Array(t+28);c.set(o);for(let p=l;p6&&p%l===4&&(f=u(f)),c[p]=c[p-l]^f}return tr(...i),c}function Go(e,t,n,i,o,l){return e[n<<8&65280|i>>>8&255]^t[o>>>8&65280|l>>>24&255]}function yi(e,t,n,i,o){return e[t&255|n&65280]|e[i>>>16&255|o>>>16&65280]<<16}function EE(e,t,n,i,o){const{sbox2:l,T01:u,T23:c}=Lx;let p=0;t^=e[p++],n^=e[p++],i^=e[p++],o^=e[p++];const f=e.length/4-2;for(let v=0;v>>0,c.setUint32(m,S,t),{s0:E,s1:v,s2:k,s3:T}=EE(e,u[0],u[1],u[2],u[3]);const N=Sm*Math.floor(p.length/iI);if(Nt+=String.fromCharCode(n)),btoa(t)}function km(e){const t=atob(e),n=new Uint8Array(t.length);for(let i=0;io.agent_type==="OSAgent");return i?i.session_id:this.createSession("OSAgent","Sparo OS",t)}async getSessionMessages(t,n,i){const o=await this.request({cmd:"get_session_messages",session_id:t,limit:n,before_message_id:i});return{messages:o.messages||[],has_more:o.has_more||!1}}async getModelCatalog(t){return(await this.request({cmd:"get_model_catalog",session_id:t??void 0})).catalog}async setSessionModel(t,n){return(await this.request({cmd:"set_session_model",session_id:t,model_id:n})).model_id}async sendMessage(t,n,i,o){return(await this.request({cmd:"send_message",session_id:t,content:n,agent_type:i||void 0,image_contexts:o&&o.length>0?o:void 0})).turn_id}async cancelTask(t,n){await this.request({cmd:"cancel_task",session_id:t,turn_id:n??void 0})}async cancelTool(t,n){await this.request({cmd:"cancel_tool",tool_id:t,reason:n??void 0})}async deleteSession(t){await this.request({cmd:"delete_session",session_id:t})}async answerQuestion(t,n){await this.request({cmd:"answer_question",tool_id:t,answers:n})}async pollSession(t,n,i,o=0){return this.request({cmd:"poll_session",session_id:t,since_version:n,known_msg_count:i,known_model_catalog_version:o})}async ping(){await this.request({cmd:"ping"})}async getFileInfo(t,n){const i=await this.request({cmd:"get_file_info",path:t,session_id:n??void 0});return{name:i.name,size:i.size,mimeType:i.mime_type}}async readFile(t,n,i){let l=0;const u=[];let c="",p="",f=0;for(;;){const m=await this.request({cmd:"read_file_chunk",path:t,session_id:n??void 0,offset:l,limit:3145728});if(u.push(m.chunk_base64),c=m.name,p=m.mime_type,f=m.total_size,l+=m.chunk_size,i?.(Math.min(l,f),f),l>=f||m.chunk_size===0)break}return{name:c,contentBase64:u.join(""),mimeType:p,size:f}}}class EI{intervalId=null;sinceVersion=0;knownMsgCount=0;sessionId;sessionMgr;onUpdate;polling=!1;stopped=!1;hasActiveTurn=!1;knownModelCatalogVersion=0;turnJustEndedAt=null;TURN_JUST_ENDED_GRACE_PERIOD_MS=5e3;constructor(t,n,i,o=0){this.sessionMgr=t,this.sessionId=n,this.onUpdate=i,this.knownModelCatalogVersion=o}start(t=0){this.stopped=!1,this.knownMsgCount=t,this.tick(),document.addEventListener("visibilitychange",this.onVisibilityChange)}stop(){this.stopped=!0,this.intervalId!==null&&(clearTimeout(this.intervalId),this.intervalId=null),document.removeEventListener("visibilitychange",this.onVisibilityChange)}resetCursors(){this.sinceVersion=0,this.knownMsgCount=0}setKnownModelCatalogVersion(t){this.knownModelCatalogVersion=t}nudge(){this.hasActiveTurn=!0,this.intervalId!==null&&clearTimeout(this.intervalId),this.tick()}getInterval(){if(document.visibilityState!=="visible")return 5e3;const t=Date.now();return this.turnJustEndedAt!=null&&t-this.turnJustEndedAtthis.tick(),this.getInterval()))}onVisibilityChange=()=>{this.stopped||(document.visibilityState==="visible"?(this.intervalId!==null&&clearTimeout(this.intervalId),this.tick()):this.scheduleNext())};async tick(){if(this.stopped||this.polling){this.scheduleNext();return}this.polling=!0;try{const t=await this.sessionMgr.pollSession(this.sessionId,this.sinceVersion,this.knownMsgCount,this.knownModelCatalogVersion);if(t.changed){const n=this.hasActiveTurn,i=t.active_turn!=null&&t.active_turn.status==="active";this.hasActiveTurn=i,n&&!i&&(this.turnJustEndedAt=Date.now()),t.new_messages&&t.new_messages.length>0&&(this.turnJustEndedAt=null),this.sinceVersion=t.version,t.total_msg_count!=null&&(this.knownMsgCount=t.total_msg_count),t.model_catalog?.version!=null&&(this.knownModelCatalogVersion=t.model_catalog.version),this.onUpdate(t)}}catch(t){console.error("[Poller] poll error",t)}finally{this.polling=!1,this.scheduleNext()}}}const vE=e=>{let t;const n=new Set,i=(f,m)=>{const h=typeof f=="function"?f(t):f;if(!Object.is(h,t)){const S=t;t=m??(typeof h!="object"||h===null)?h:Object.assign({},t,h),n.forEach(E=>E(t,S))}},o=()=>t,c={setState:i,getState:o,getInitialState:()=>p,subscribe:f=>(n.add(f),()=>n.delete(f))},p=t=e(i,o,c);return c},SI=(e=>e?vE(e):vE),vI=e=>e;function kI(e,t=vI){const n=ct.useSyncExternalStore(e.subscribe,ct.useCallback(()=>t(e.getState()),[e,t]),ct.useCallback(()=>t(e.getInitialState()),[e,t]));return ct.useDebugValue(n),n}const kE=e=>{const t=SI(e),n=i=>kI(t,i);return Object.assign(n,t),n},Fx=(e=>e?kE(e):kE),vn=Fx((e,t)=>({connectionStatus:"idle",setConnectionStatus:n=>e({connectionStatus:n}),selectedWorkspace:null,setSelectedWorkspace:n=>e({selectedWorkspace:n}),authenticatedUserId:null,setAuthenticatedUserId:n=>e({authenticatedUserId:n}),sessions:[],setSessions:n=>e({sessions:n}),appendSessions:n=>e(i=>({sessions:[...i.sessions,...n]})),updateSessionName:(n,i)=>e(o=>({sessions:o.sessions.map(l=>l.session_id===n?{...l,name:i}:l)})),activeSessionId:null,setActiveSessionId:n=>e({activeSessionId:n}),messagesBySession:{},getMessages:n=>t().messagesBySession[n]||[],setMessages:(n,i)=>e(o=>({messagesBySession:{...o.messagesBySession,[n]:i}})),appendNewMessages:(n,i)=>e(o=>{if(i.length===0)return o;const l=o.messagesBySession[n]||[],u=new Set(l.map(p=>p.id)),c=i.filter(p=>!u.has(p.id));return c.length===0?o:{messagesBySession:{...o.messagesBySession,[n]:[...l,...c]}}}),activeTurn:null,setActiveTurn:n=>e({activeTurn:n}),error:null,setError:n=>e({error:n})})),Px=""+new URL("sparo-logo-mark-BchWKRwx.png",import.meta.url).href,_E="sparo.mobile.install_id",wE="sparo.mobile.user_id",zr="sparo.mobile.user_id_lock_until",Sa="sparo.mobile.user_id_failure_count",_I=3,TE=6e4;function wI(e){return e.includes("This remote URL is already protected")||e.includes("This mobile device must continue using the previously confirmed user ID")}function TI(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():`mobile-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,10)}`}function xE(){const e=localStorage.getItem(_E)?.trim();if(e)return e;const t=TI();return localStorage.setItem(_E,t),t}function xI(){const e=window.location.hash,t=new URLSearchParams(e.replace(/^#\/pair\?/,"")),n=t.get("room"),i=t.get("pk"),o=t.get("relay");if(o)return{room:n,pk:i,httpBaseUrl:o.replace(/^wss:\/\//,"https://").replace(/^ws:\/\//,"http://").replace(/\/ws\/?$/,"").replace(/\/$/,"")};const l=window.location.origin,u=window.location.pathname.replace(/\/[^/]*$/,"").replace(/\/r\/[^/]*$/,"");return{room:n,pk:i,httpBaseUrl:l+u}}const AI=({onPaired:e})=>{const{t}=dt(),{connectionStatus:n,setConnectionStatus:i,setError:o,error:l,setAuthenticatedUserId:u}=vn(),[c,p]=P.useState(""),[f,m]=P.useState(""),[h,S]=P.useState(!1),[E,v]=P.useState(0),[k,T]=P.useState(null),[N,R]=P.useState(()=>Date.now()),A=P.useRef(!1),O=P.useRef(0),L=P.useRef(null),w=P.useMemo(()=>xI(),[]),B=!!k&&k>N,W=B?Math.max(1,Math.ceil((k-N)/1e3)):0,j=P.useCallback(async(Z,H)=>{const te=Z.trim(),ue=H?.autoReconnect===!0,q=H?.installId||f||xE(),Q=L.current,x=!!Q&&Q>Date.now(),D=x?Math.max(1,Math.ceil((Q-Date.now())/1e3)):0;if(!w.room||!w.pk){o(t("pairing.invalidQrCode")),i("error");return}if(!te){o(t("pairing.userIdRequired")),i("error");return}if(!ue&&x){o(t("pairing.tooManyAttempts",{seconds:D})),i("error");return}m(q),S(!0);const $=new bI(w.httpBaseUrl,w.room);try{o(null),i("pairing");const C=await $.pair(w.pk,{userId:te,mobileInstallId:q});i("paired"),localStorage.setItem(wE,te),localStorage.removeItem(Sa),localStorage.removeItem(zr),v(0),T(null),u(C.authenticated_user_id??te);const ae=new yI($),pe=vn.getState();C.has_workspace&&pe.setSelectedWorkspace({has_workspace:!0,path:C.path,project_name:C.project_name,git_branch:C.git_branch,workspace_kind:C.workspace_kind}),C.sessions&&pe.setSessions(C.sessions),e($,ae)}catch(C){const ae=C?.message||t("pairing.pairingFailed");if(!ue&&wI(ae)){const pe=O.current+1,fe=pe>=_I,Se=fe?Date.now()+TE:null;localStorage.setItem(Sa,String(pe)),Se?localStorage.setItem(zr,String(Se)):localStorage.removeItem(zr),v(pe),T(Se),o(fe?t("pairing.tooManyAttempts",{seconds:Math.ceil(TE/1e3)}):ae)}else o(ae);i("error")}finally{S(!1)}},[f,w.httpBaseUrl,w.pk,w.room,u,i,o,t]);P.useEffect(()=>{const Z=localStorage.getItem(wE)?.trim()??"",H=xE(),te=Number(localStorage.getItem(Sa)||"0"),ue=Number(localStorage.getItem(zr)||"0"),q=ue>Date.now()?ue:null;ue&&!q&&(localStorage.removeItem(zr),localStorage.removeItem(Sa));const Q=!!Z&&!!H&&!!w.room&&!!w.pk;p(Z),m(H),v(q?te:0),T(q),i(Q?"pairing":"idle"),o(null),Q&&!A.current&&(A.current=!0,j(Z,{autoReconnect:!0,installId:H}))},[j,w.pk,w.room,i,o]),P.useEffect(()=>{O.current=E,L.current=k},[E,k]),P.useEffect(()=>{if(!k)return;if(k<=Date.now()){T(null),v(0),localStorage.removeItem(zr),localStorage.removeItem(Sa);return}const Z=window.setInterval(()=>{const H=Date.now();R(H),k<=H&&(T(null),v(0),localStorage.removeItem(zr),localStorage.removeItem(Sa))},1e3);return()=>window.clearInterval(Z)},[k]);const M=async()=>{A.current=!0,await j(c,{autoReconnect:!1})},Y={idle:t("pairing.enterUserIdToContinue"),pairing:t("pairing.connectingAndPairing"),paired:t("pairing.pairedLoadingSessions"),error:t("pairing.connectionError")},J=n==="pairing",de=n==="idle"||n==="error";return g.jsxs("div",{className:"pairing-page",children:[g.jsx("div",{className:"pairing-page__actions",children:g.jsx(AC,{})}),g.jsx("div",{className:"pairing-page__mark",children:g.jsx("img",{src:Px,alt:"Sparo OS",className:"pairing-page__logo-img"})}),g.jsx("div",{className:"pairing-page__brand",children:g.jsxs("div",{className:"pairing-page__brand-slogan",children:[g.jsx("span",{className:"pairing-page__slogan-dot","aria-hidden":"true"}),t("common.slogan")]})}),g.jsx("div",{className:"pairing-page__spinner-wrap",children:J&&g.jsx("div",{className:"pairing-page__orbit-spinner"})}),g.jsx("div",{className:"pairing-page__state",children:Y[n]||n}),l&&g.jsxs("div",{className:"pairing-page__error",children:[g.jsx("span",{className:"pairing-page__error-dot","aria-hidden":"true"}),l]}),de&&g.jsxs("div",{className:"pairing-page__form",children:[g.jsxs("label",{className:"pairing-page__field",children:[g.jsx("span",{className:"pairing-page__field-label",children:t("pairing.fieldLabel")}),g.jsx("input",{className:"pairing-page__input",type:"text",value:c,onChange:Z=>p(Z.target.value),onKeyDown:Z=>{Z.key==="Enter"&&M()},placeholder:t("pairing.placeholder"),autoCapitalize:"off",autoCorrect:"off",autoComplete:"username",disabled:h||B})]}),g.jsx("p",{className:"pairing-page__note",children:t("pairing.note")}),g.jsxs("button",{className:"pairing-page__submit",onClick:()=>{M()},disabled:h||B,children:[g.jsx("span",{className:"pairing-page__submit-dot","aria-hidden":"true"}),h?t("pairing.connecting"):B?t("pairing.retryIn",{seconds:W}):t("pairing.continue")]})]})]})},RI=["app:skills","app:memory","app:shell","app:settings","me","search"];function fu(e){return RI.includes(e)}const Bn=Fx((e,t)=>({activeScene:"home",pageStack:["home"],sessionContext:null,push(n){e(i=>({activeScene:n,pageStack:[...i.pageStack,n]})),history.pushState({scene:n},"")},pop(){const{pageStack:n}=t();if(n.length<=1)return;const i=n[n.length-2];e(o=>({activeScene:i,pageStack:o.pageStack.slice(0,-1)})),history.back()},closeOverlay(){const{activeScene:n,pageStack:i}=t();if(!fu(n))return;const o=i.slice().reverse().find(u=>!fu(u))??"home",l=i.filter(u=>!fu(u));e({activeScene:o,pageStack:l.length?l:["home"]}),history.back()},openAgenticOs(){e({activeScene:"home",pageStack:["home"],sessionContext:null}),history.pushState({scene:"home"},"")},setSessionContext(n){e({sessionContext:n})},openChat(n){e(i=>({activeScene:"chat",pageStack:[...i.pageStack,"chat"],sessionContext:n})),history.pushState({scene:"chat"},"")}})),NI="modulepreload",CI=function(e,t){return new URL(e,t).href},AE={},II=function(t,n,i){let o=Promise.resolve();if(n&&n.length>0){let f=function(m){return Promise.all(m.map(h=>Promise.resolve(h).then(S=>({status:"fulfilled",value:S}),S=>({status:"rejected",reason:S}))))};const u=document.getElementsByTagName("link"),c=document.querySelector("meta[property=csp-nonce]"),p=c?.nonce||c?.getAttribute("nonce");o=f(n.map(m=>{if(m=CI(m,i),m in AE)return;AE[m]=!0;const h=m.endsWith(".css"),S=h?'[rel="stylesheet"]':"";if(i)for(let v=u.length-1;v>=0;v--){const k=u[v];if(k.href===m&&(!h||k.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${m}"]${S}`))return;const E=document.createElement("link");if(E.rel=h?"stylesheet":NI,h||(E.as="script"),E.crossOrigin="",E.href=m,p&&E.setAttribute("nonce",p),document.head.appendChild(E),h)return new Promise((v,k)=>{E.addEventListener("load",v),E.addEventListener("error",()=>k(new Error(`Unable to preload CSS for ${m}`)))})}))}function l(u){const c=new Event("vite:preloadError",{cancelable:!0});if(c.payload=u,window.dispatchEvent(c),!c.defaultPrevented)throw u}return o.then(u=>{for(const c of u||[])c.status==="rejected"&&l(c.reason);return t().catch(l)})};function OI(e,t){const n={};return(e[e.length-1]===""?[...e,""]:e).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}const LI=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,DI=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,MI={};function RE(e,t){return(MI.jsx?DI:LI).test(e)}const FI=/[ \t\n\f\r]/g;function PI(e){return typeof e=="object"?e.type==="text"?NE(e.value):!1:NE(e)}function NE(e){return e.replace(FI,"")===""}class Ci{constructor(t,n,i){this.normal=n,this.property=t,i&&(this.space=i)}}Ci.prototype.normal={};Ci.prototype.property={};Ci.prototype.space=void 0;function Ux(e,t){const n={},i={};for(const o of e)Object.assign(n,o.property),Object.assign(i,o.normal);return new Ci(n,i,t)}function _m(e){return e.toLowerCase()}class rn{constructor(t,n){this.attribute=n,this.property=t}}rn.prototype.attribute="";rn.prototype.booleanish=!1;rn.prototype.boolean=!1;rn.prototype.commaOrSpaceSeparated=!1;rn.prototype.commaSeparated=!1;rn.prototype.defined=!1;rn.prototype.mustUseProperty=!1;rn.prototype.number=!1;rn.prototype.overloadedBoolean=!1;rn.prototype.property="";rn.prototype.spaceSeparated=!1;rn.prototype.space=void 0;let UI=0;const Re=Vr(),vt=Vr(),wm=Vr(),le=Vr(),Ye=Vr(),Ta=Vr(),cn=Vr();function Vr(){return 2**++UI}const Tm=Object.freeze(Object.defineProperty({__proto__:null,boolean:Re,booleanish:vt,commaOrSpaceSeparated:cn,commaSeparated:Ta,number:le,overloadedBoolean:wm,spaceSeparated:Ye},Symbol.toStringTag,{value:"Module"})),gu=Object.keys(Tm);class Wm extends rn{constructor(t,n,i,o){let l=-1;if(super(t,n),CE(this,"space",o),typeof i=="number")for(;++l4&&n.slice(0,4)==="data"&&qI.test(t)){if(t.charAt(4)==="-"){const l=t.slice(5).replace(IE,WI);i="data"+l.charAt(0).toUpperCase()+l.slice(1)}else{const l=t.slice(4);if(!IE.test(l)){let u=l.replace($I,HI);u.charAt(0)!=="-"&&(u="-"+u),t="data"+u}}o=Wm}return new o(i,t)}function HI(e){return"-"+e.toLowerCase()}function WI(e){return e.charAt(1).toUpperCase()}const VI=Ux([Bx,BI,$x,qx,Gx],"html"),Vm=Ux([Bx,jI,$x,qx,Gx],"svg");function YI(e){return e.join(" ").trim()}var va={},mu,OE;function KI(){if(OE)return mu;OE=1;var e=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,t=/\n/g,n=/^\s*/,i=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,o=/^:\s*/,l=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,u=/^[;\s]*/,c=/^\s+|\s+$/g,p=` -`,f="/",m="*",h="",S="comment",E="declaration";function v(T,N){if(typeof T!="string")throw new TypeError("First argument must be a string");if(!T)return[];N=N||{};var R=1,A=1;function O(Z){var H=Z.match(t);H&&(R+=H.length);var te=Z.lastIndexOf(p);A=~te?Z.length-te:A+Z.length}function L(){var Z={line:R,column:A};return function(H){return H.position=new w(Z),j(),H}}function w(Z){this.start=Z,this.end={line:R,column:A},this.source=N.source}w.prototype.content=T;function B(Z){var H=new Error(N.source+":"+R+":"+A+": "+Z);if(H.reason=Z,H.filename=N.source,H.line=R,H.column=A,H.source=T,!N.silent)throw H}function W(Z){var H=Z.exec(T);if(H){var te=H[0];return O(te),T=T.slice(te.length),H}}function j(){W(n)}function M(Z){var H;for(Z=Z||[];H=Y();)H!==!1&&Z.push(H);return Z}function Y(){var Z=L();if(!(f!=T.charAt(0)||m!=T.charAt(1))){for(var H=2;h!=T.charAt(H)&&(m!=T.charAt(H)||f!=T.charAt(H+1));)++H;if(H+=2,h===T.charAt(H-1))return B("End of comment missing");var te=T.slice(2,H-2);return A+=2,O(te),T=T.slice(H),A+=2,Z({type:S,comment:te})}}function J(){var Z=L(),H=W(i);if(H){if(Y(),!W(o))return B("property missing ':'");var te=W(l),ue=Z({type:E,property:k(H[0].replace(e,h)),value:te?k(te[0].replace(e,h)):h});return W(u),ue}}function de(){var Z=[];M(Z);for(var H;H=J();)H!==!1&&(Z.push(H),M(Z));return Z}return j(),de()}function k(T){return T?T.replace(c,h):h}return mu=v,mu}var LE;function ZI(){if(LE)return va;LE=1;var e=va&&va.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(va,"__esModule",{value:!0}),va.default=n;const t=e(KI());function n(i,o){let l=null;if(!i||typeof i!="string")return l;const u=(0,t.default)(i),c=typeof o=="function";return u.forEach(p=>{if(p.type!=="declaration")return;const{property:f,value:m}=p;c?o(f,m,p):m&&(l=l||{},l[f]=m)}),l}return va}var gi={},DE;function XI(){if(DE)return gi;DE=1,Object.defineProperty(gi,"__esModule",{value:!0}),gi.camelCase=void 0;var e=/^--[a-zA-Z0-9_-]+$/,t=/-([a-z])/g,n=/^[^-]+$/,i=/^-(webkit|moz|ms|o|khtml)-/,o=/^-(ms)-/,l=function(f){return!f||n.test(f)||e.test(f)},u=function(f,m){return m.toUpperCase()},c=function(f,m){return"".concat(m,"-")},p=function(f,m){return m===void 0&&(m={}),l(f)?f:(f=f.toLowerCase(),m.reactCompat?f=f.replace(o,c):f=f.replace(i,c),f.replace(t,u))};return gi.camelCase=p,gi}var mi,ME;function QI(){if(ME)return mi;ME=1;var e=mi&&mi.__importDefault||function(o){return o&&o.__esModule?o:{default:o}},t=e(ZI()),n=XI();function i(o,l){var u={};return!o||typeof o!="string"||(0,t.default)(o,function(c,p){c&&p&&(u[(0,n.camelCase)(c,l)]=p)}),u}return i.default=i,mi=i,mi}var JI=QI();const e1=Ni(JI),Hx=Wx("end"),Ym=Wx("start");function Wx(e){return t;function t(n){const i=n&&n.position&&n.position[e]||{};if(typeof i.line=="number"&&i.line>0&&typeof i.column=="number"&&i.column>0)return{line:i.line,column:i.column,offset:typeof i.offset=="number"&&i.offset>-1?i.offset:void 0}}}function t1(e){const t=Ym(e),n=Hx(e);if(t&&n)return{start:t,end:n}}function Si(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?FE(e.position):"start"in e||"end"in e?FE(e):"line"in e||"column"in e?xm(e):""}function xm(e){return PE(e&&e.line)+":"+PE(e&&e.column)}function FE(e){return xm(e&&e.start)+"-"+xm(e&&e.end)}function PE(e){return e&&typeof e=="number"?e:1}class $t extends Error{constructor(t,n,i){super(),typeof n=="string"&&(i=n,n=void 0);let o="",l={},u=!1;if(n&&("line"in n&&"column"in n?l={place:n}:"start"in n&&"end"in n?l={place:n}:"type"in n?l={ancestors:[n],place:n.position}:l={...n}),typeof t=="string"?o=t:!l.cause&&t&&(u=!0,o=t.message,l.cause=t),!l.ruleId&&!l.source&&typeof i=="string"){const p=i.indexOf(":");p===-1?l.ruleId=i:(l.source=i.slice(0,p),l.ruleId=i.slice(p+1))}if(!l.place&&l.ancestors&&l.ancestors){const p=l.ancestors[l.ancestors.length-1];p&&(l.place=p.position)}const c=l.place&&"start"in l.place?l.place.start:l.place;this.ancestors=l.ancestors||void 0,this.cause=l.cause||void 0,this.column=c?c.column:void 0,this.fatal=void 0,this.file="",this.message=o,this.line=c?c.line:void 0,this.name=Si(l.place)||"1:1",this.place=l.place||void 0,this.reason=this.message,this.ruleId=l.ruleId||void 0,this.source=l.source||void 0,this.stack=u&&l.cause&&typeof l.cause.stack=="string"?l.cause.stack:"",this.actual=void 0,this.expected=void 0,this.note=void 0,this.url=void 0}}$t.prototype.file="";$t.prototype.name="";$t.prototype.reason="";$t.prototype.message="";$t.prototype.stack="";$t.prototype.column=void 0;$t.prototype.line=void 0;$t.prototype.ancestors=void 0;$t.prototype.cause=void 0;$t.prototype.fatal=void 0;$t.prototype.place=void 0;$t.prototype.ruleId=void 0;$t.prototype.source=void 0;const Km={}.hasOwnProperty,n1=new Map,r1=/[A-Z]/g,a1=new Set(["table","tbody","thead","tfoot","tr"]),i1=new Set(["td","th"]),Vx="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function o1(e,t){if(!t||t.Fragment===void 0)throw new TypeError("Expected `Fragment` in options");const n=t.filePath||void 0;let i;if(t.development){if(typeof t.jsxDEV!="function")throw new TypeError("Expected `jsxDEV` in options when `development: true`");i=g1(n,t.jsxDEV)}else{if(typeof t.jsx!="function")throw new TypeError("Expected `jsx` in production options");if(typeof t.jsxs!="function")throw new TypeError("Expected `jsxs` in production options");i=f1(n,t.jsx,t.jsxs)}const o={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:i,elementAttributeNameCase:t.elementAttributeNameCase||"react",evaluater:t.createEvaluater?t.createEvaluater():void 0,filePath:n,ignoreInvalidStyle:t.ignoreInvalidStyle||!1,passKeys:t.passKeys!==!1,passNode:t.passNode||!1,schema:t.space==="svg"?Vm:VI,stylePropertyNameCase:t.stylePropertyNameCase||"dom",tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},l=Yx(o,e,void 0);return l&&typeof l!="string"?l:o.create(e,o.Fragment,{children:l||void 0},void 0)}function Yx(e,t,n){if(t.type==="element")return s1(e,t,n);if(t.type==="mdxFlowExpression"||t.type==="mdxTextExpression")return l1(e,t);if(t.type==="mdxJsxFlowElement"||t.type==="mdxJsxTextElement")return c1(e,t,n);if(t.type==="mdxjsEsm")return u1(e,t);if(t.type==="root")return d1(e,t,n);if(t.type==="text")return p1(e,t)}function s1(e,t,n){const i=e.schema;let o=i;t.tagName.toLowerCase()==="svg"&&i.space==="html"&&(o=Vm,e.schema=o),e.ancestors.push(t);const l=Zx(e,t.tagName,!1),u=m1(e,t);let c=Xm(e,t);return a1.has(t.tagName)&&(c=c.filter(function(p){return typeof p=="string"?!PI(p):!0})),Kx(e,u,l,t),Zm(u,c),e.ancestors.pop(),e.schema=i,e.create(t,l,u,n)}function l1(e,t){if(t.data&&t.data.estree&&e.evaluater){const i=t.data.estree.body[0];return i.type,e.evaluater.evaluateExpression(i.expression)}Ti(e,t.position)}function u1(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);Ti(e,t.position)}function c1(e,t,n){const i=e.schema;let o=i;t.name==="svg"&&i.space==="html"&&(o=Vm,e.schema=o),e.ancestors.push(t);const l=t.name===null?e.Fragment:Zx(e,t.name,!0),u=h1(e,t),c=Xm(e,t);return Kx(e,u,l,t),Zm(u,c),e.ancestors.pop(),e.schema=i,e.create(t,l,u,n)}function d1(e,t,n){const i={};return Zm(i,Xm(e,t)),e.create(t,e.Fragment,i,n)}function p1(e,t){return t.value}function Kx(e,t,n,i){typeof n!="string"&&n!==e.Fragment&&e.passNode&&(t.node=i)}function Zm(e,t){if(t.length>0){const n=t.length>1?t:t[0];n&&(e.children=n)}}function f1(e,t,n){return i;function i(o,l,u,c){const f=Array.isArray(u.children)?n:t;return c?f(l,u,c):f(l,u)}}function g1(e,t){return n;function n(i,o,l,u){const c=Array.isArray(l.children),p=Ym(i);return t(o,l,u,c,{columnNumber:p?p.column-1:void 0,fileName:e,lineNumber:p?p.line:void 0},void 0)}}function m1(e,t){const n={};let i,o;for(o in t.properties)if(o!=="children"&&Km.call(t.properties,o)){const l=b1(e,o,t.properties[o]);if(l){const[u,c]=l;e.tableCellAlignToStyle&&u==="align"&&typeof c=="string"&&i1.has(t.tagName)?i=c:n[u]=c}}if(i){const l=n.style||(n.style={});l[e.stylePropertyNameCase==="css"?"text-align":"textAlign"]=i}return n}function h1(e,t){const n={};for(const i of t.attributes)if(i.type==="mdxJsxExpressionAttribute")if(i.data&&i.data.estree&&e.evaluater){const l=i.data.estree.body[0];l.type;const u=l.expression;u.type;const c=u.properties[0];c.type,Object.assign(n,e.evaluater.evaluateExpression(c.argument))}else Ti(e,t.position);else{const o=i.name;let l;if(i.value&&typeof i.value=="object")if(i.value.data&&i.value.data.estree&&e.evaluater){const c=i.value.data.estree.body[0];c.type,l=e.evaluater.evaluateExpression(c.expression)}else Ti(e,t.position);else l=i.value===null?!0:i.value;n[o]=l}return n}function Xm(e,t){const n=[];let i=-1;const o=e.passKeys?new Map:n1;for(;++io?0:o+t:t=t>o?o:t,n=n>0?n:0,i.length<1e4)u=Array.from(i),u.unshift(t,n),e.splice(...u);else for(n&&e.splice(t,n);l0?(dn(e,e.length,0,t),e):t}const jE={}.hasOwnProperty;function Qx(e){const t={};let n=-1;for(;++n13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||(n&65535)===65535||(n&65535)===65534||n>1114111?"�":String.fromCodePoint(n)}function On(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const Ht=xr(/[A-Za-z]/),zt=xr(/[\dA-Za-z]/),x1=xr(/[#-'*+\--9=?A-Z^-~]/);function ls(e){return e!==null&&(e<32||e===127)}const Am=xr(/\d/),A1=xr(/[\dA-Fa-f]/),R1=xr(/[!-/:-@[-`{-~]/);function xe(e){return e!==null&&e<-2}function He(e){return e!==null&&(e<0||e===32)}function Fe(e){return e===-2||e===-1||e===32}const bs=xr(new RegExp("\\p{P}|\\p{S}","u")),Wr=xr(/\s/);function xr(e){return t;function t(n){return n!==null&&n>-1&&e.test(String.fromCharCode(n))}}function Oa(e){const t=[];let n=-1,i=0,o=0;for(;++n55295&&l<57344){const c=e.charCodeAt(n+1);l<56320&&c>56319&&c<57344?(u=String.fromCharCode(l,c),o=1):u="�"}else u=String.fromCharCode(l);u&&(t.push(e.slice(i,n),encodeURIComponent(u)),i=n+o+1,u=""),o&&(n+=o,o=0)}return t.join("")+e.slice(i)}function Pe(e,t,n,i){const o=i?i-1:Number.POSITIVE_INFINITY;let l=0;return u;function u(p){return Fe(p)?(e.enter(n),c(p)):t(p)}function c(p){return Fe(p)&&l++u))return;const B=t.events.length;let W=B,j,M;for(;W--;)if(t.events[W][0]==="exit"&&t.events[W][1].type==="chunkFlow"){if(j){M=t.events[W][1].end;break}j=!0}for(N(i),w=B;wA;){const L=n[O];t.containerState=L[1],L[0].exit.call(t,e)}n.length=A}function R(){o.write([null]),l=void 0,o=void 0,t.containerState._closeFlow=void 0}}function L1(e,t,n){return Pe(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function Ra(e){if(e===null||He(e)||Wr(e))return 1;if(bs(e))return 2}function ys(e,t,n){const i=[];let o=-1;for(;++o1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1;const h={...e[i][1].end},S={...e[n][1].start};$E(h,-p),$E(S,p),u={type:p>1?"strongSequence":"emphasisSequence",start:h,end:{...e[i][1].end}},c={type:p>1?"strongSequence":"emphasisSequence",start:{...e[n][1].start},end:S},l={type:p>1?"strongText":"emphasisText",start:{...e[i][1].end},end:{...e[n][1].start}},o={type:p>1?"strong":"emphasis",start:{...u.start},end:{...c.end}},e[i][1].end={...u.start},e[n][1].start={...c.end},f=[],e[i][1].end.offset-e[i][1].start.offset&&(f=Sn(f,[["enter",e[i][1],t],["exit",e[i][1],t]])),f=Sn(f,[["enter",o,t],["enter",u,t],["exit",u,t],["enter",l,t]]),f=Sn(f,ys(t.parser.constructs.insideSpan.null,e.slice(i+1,n),t)),f=Sn(f,[["exit",l,t],["enter",c,t],["exit",c,t],["exit",o,t]]),e[n][1].end.offset-e[n][1].start.offset?(m=2,f=Sn(f,[["enter",e[n][1],t],["exit",e[n][1],t]])):m=0,dn(e,i-1,n-i+3,f),n=i+f.length-m-2;break}}for(n=-1;++n0&&Fe(w)?Pe(e,R,"linePrefix",l+1)(w):R(w)}function R(w){return w===null||xe(w)?e.check(qE,k,O)(w):(e.enter("codeFlowValue"),A(w))}function A(w){return w===null||xe(w)?(e.exit("codeFlowValue"),R(w)):(e.consume(w),A)}function O(w){return e.exit("codeFenced"),t(w)}function L(w,B,W){let j=0;return M;function M(H){return w.enter("lineEnding"),w.consume(H),w.exit("lineEnding"),Y}function Y(H){return w.enter("codeFencedFence"),Fe(H)?Pe(w,J,"linePrefix",i.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(H):J(H)}function J(H){return H===c?(w.enter("codeFencedFenceSequence"),de(H)):W(H)}function de(H){return H===c?(j++,w.consume(H),de):j>=u?(w.exit("codeFencedFenceSequence"),Fe(H)?Pe(w,Z,"whitespace")(H):Z(H)):W(H)}function Z(H){return H===null||xe(H)?(w.exit("codeFencedFence"),B(H)):W(H)}}}function H1(e,t,n){const i=this;return o;function o(u){return u===null?n(u):(e.enter("lineEnding"),e.consume(u),e.exit("lineEnding"),l)}function l(u){return i.parser.lazy[i.now().line]?n(u):t(u)}}const bu={name:"codeIndented",tokenize:V1},W1={partial:!0,tokenize:Y1};function V1(e,t,n){const i=this;return o;function o(f){return e.enter("codeIndented"),Pe(e,l,"linePrefix",5)(f)}function l(f){const m=i.events[i.events.length-1];return m&&m[1].type==="linePrefix"&&m[2].sliceSerialize(m[1],!0).length>=4?u(f):n(f)}function u(f){return f===null?p(f):xe(f)?e.attempt(W1,u,p)(f):(e.enter("codeFlowValue"),c(f))}function c(f){return f===null||xe(f)?(e.exit("codeFlowValue"),u(f)):(e.consume(f),c)}function p(f){return e.exit("codeIndented"),t(f)}}function Y1(e,t,n){const i=this;return o;function o(u){return i.parser.lazy[i.now().line]?n(u):xe(u)?(e.enter("lineEnding"),e.consume(u),e.exit("lineEnding"),o):Pe(e,l,"linePrefix",5)(u)}function l(u){const c=i.events[i.events.length-1];return c&&c[1].type==="linePrefix"&&c[2].sliceSerialize(c[1],!0).length>=4?t(u):xe(u)?o(u):n(u)}}const K1={name:"codeText",previous:X1,resolve:Z1,tokenize:Q1};function Z1(e){let t=e.length-4,n=3,i,o;if((e[n][1].type==="lineEnding"||e[n][1].type==="space")&&(e[t][1].type==="lineEnding"||e[t][1].type==="space")){for(i=n;++i=this.left.length+this.right.length)throw new RangeError("Cannot access index `"+t+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return tthis.left.length?this.right.slice(this.right.length-i+this.left.length,this.right.length-t+this.left.length).reverse():this.left.slice(t).concat(this.right.slice(this.right.length-i+this.left.length).reverse())}splice(t,n,i){const o=n||0;this.setCursor(Math.trunc(t));const l=this.right.splice(this.right.length-o,Number.POSITIVE_INFINITY);return i&&hi(this.left,i),l.reverse()}pop(){return this.setCursor(Number.POSITIVE_INFINITY),this.left.pop()}push(t){this.setCursor(Number.POSITIVE_INFINITY),this.left.push(t)}pushMany(t){this.setCursor(Number.POSITIVE_INFINITY),hi(this.left,t)}unshift(t){this.setCursor(0),this.right.push(t)}unshiftMany(t){this.setCursor(0),hi(this.right,t.reverse())}setCursor(t){if(!(t===this.left.length||t>this.left.length&&this.right.length===0||t<0&&this.left.length===0))if(t=4?t(u):e.interrupt(i.parser.constructs.flow,n,t)(u)}}function aA(e,t,n,i,o,l,u,c,p){const f=p||Number.POSITIVE_INFINITY;let m=0;return h;function h(N){return N===60?(e.enter(i),e.enter(o),e.enter(l),e.consume(N),e.exit(l),S):N===null||N===32||N===41||ls(N)?n(N):(e.enter(i),e.enter(u),e.enter(c),e.enter("chunkString",{contentType:"string"}),k(N))}function S(N){return N===62?(e.enter(l),e.consume(N),e.exit(l),e.exit(o),e.exit(i),t):(e.enter(c),e.enter("chunkString",{contentType:"string"}),E(N))}function E(N){return N===62?(e.exit("chunkString"),e.exit(c),S(N)):N===null||N===60||xe(N)?n(N):(e.consume(N),N===92?v:E)}function v(N){return N===60||N===62||N===92?(e.consume(N),E):E(N)}function k(N){return!m&&(N===null||N===41||He(N))?(e.exit("chunkString"),e.exit(c),e.exit(u),e.exit(i),t(N)):m999||E===null||E===91||E===93&&!p||E===94&&!c&&"_hiddenFootnoteSupport"in u.parser.constructs?n(E):E===93?(e.exit(l),e.enter(o),e.consume(E),e.exit(o),e.exit(i),t):xe(E)?(e.enter("lineEnding"),e.consume(E),e.exit("lineEnding"),m):(e.enter("chunkString",{contentType:"string"}),h(E))}function h(E){return E===null||E===91||E===93||xe(E)||c++>999?(e.exit("chunkString"),m(E)):(e.consume(E),p||(p=!Fe(E)),E===92?S:h)}function S(E){return E===91||E===92||E===93?(e.consume(E),c++,h):h(E)}}function oA(e,t,n,i,o,l){let u;return c;function c(S){return S===34||S===39||S===40?(e.enter(i),e.enter(o),e.consume(S),e.exit(o),u=S===40?41:S,p):n(S)}function p(S){return S===u?(e.enter(o),e.consume(S),e.exit(o),e.exit(i),t):(e.enter(l),f(S))}function f(S){return S===u?(e.exit(l),p(u)):S===null?n(S):xe(S)?(e.enter("lineEnding"),e.consume(S),e.exit("lineEnding"),Pe(e,f,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),m(S))}function m(S){return S===u||S===null||xe(S)?(e.exit("chunkString"),f(S)):(e.consume(S),S===92?h:m)}function h(S){return S===u||S===92?(e.consume(S),m):m(S)}}function vi(e,t){let n;return i;function i(o){return xe(o)?(e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),n=!0,i):Fe(o)?Pe(e,i,n?"linePrefix":"lineSuffix")(o):t(o)}}const o0={name:"definition",tokenize:l0},s0={partial:!0,tokenize:u0};function l0(e,t,n){const i=this;let o;return l;function l(E){return e.enter("definition"),u(E)}function u(E){return iA.call(i,e,c,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(E)}function c(E){return o=On(i.sliceSerialize(i.events[i.events.length-1][1]).slice(1,-1)),E===58?(e.enter("definitionMarker"),e.consume(E),e.exit("definitionMarker"),p):n(E)}function p(E){return He(E)?vi(e,f)(E):f(E)}function f(E){return aA(e,m,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(E)}function m(E){return e.attempt(s0,h,h)(E)}function h(E){return Fe(E)?Pe(e,S,"whitespace")(E):S(E)}function S(E){return E===null||xe(E)?(e.exit("definition"),i.parser.defined.push(o),t(E)):n(E)}}function u0(e,t,n){return i;function i(c){return He(c)?vi(e,o)(c):n(c)}function o(c){return oA(e,l,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(c)}function l(c){return Fe(c)?Pe(e,u,"whitespace")(c):u(c)}function u(c){return c===null||xe(c)?t(c):n(c)}}const c0={name:"hardBreakEscape",tokenize:d0};function d0(e,t,n){return i;function i(l){return e.enter("hardBreakEscape"),e.consume(l),o}function o(l){return xe(l)?(e.exit("hardBreakEscape"),t(l)):n(l)}}const p0={name:"headingAtx",resolve:f0,tokenize:g0};function f0(e,t){let n=e.length-2,i=3,o,l;return e[i][1].type==="whitespace"&&(i+=2),n-2>i&&e[n][1].type==="whitespace"&&(n-=2),e[n][1].type==="atxHeadingSequence"&&(i===n-1||n-4>i&&e[n-2][1].type==="whitespace")&&(n-=i+1===n?2:4),n>i&&(o={type:"atxHeadingText",start:e[i][1].start,end:e[n][1].end},l={type:"chunkText",start:e[i][1].start,end:e[n][1].end,contentType:"text"},dn(e,i,n-i+1,[["enter",o,t],["enter",l,t],["exit",l,t],["exit",o,t]])),e}function g0(e,t,n){let i=0;return o;function o(m){return e.enter("atxHeading"),l(m)}function l(m){return e.enter("atxHeadingSequence"),u(m)}function u(m){return m===35&&i++<6?(e.consume(m),u):m===null||He(m)?(e.exit("atxHeadingSequence"),c(m)):n(m)}function c(m){return m===35?(e.enter("atxHeadingSequence"),p(m)):m===null||xe(m)?(e.exit("atxHeading"),t(m)):Fe(m)?Pe(e,c,"whitespace")(m):(e.enter("atxHeadingText"),f(m))}function p(m){return m===35?(e.consume(m),p):(e.exit("atxHeadingSequence"),c(m))}function f(m){return m===null||m===35||He(m)?(e.exit("atxHeadingText"),c(m)):(e.consume(m),f)}}const m0=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],HE=["pre","script","style","textarea"],h0={concrete:!0,name:"htmlFlow",resolveTo:E0,tokenize:S0},b0={partial:!0,tokenize:k0},y0={partial:!0,tokenize:v0};function E0(e){let t=e.length;for(;t--&&!(e[t][0]==="enter"&&e[t][1].type==="htmlFlow"););return t>1&&e[t-2][1].type==="linePrefix"&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e}function S0(e,t,n){const i=this;let o,l,u,c,p;return f;function f(C){return m(C)}function m(C){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(C),h}function h(C){return C===33?(e.consume(C),S):C===47?(e.consume(C),l=!0,k):C===63?(e.consume(C),o=3,i.interrupt?t:x):Ht(C)?(e.consume(C),u=String.fromCharCode(C),T):n(C)}function S(C){return C===45?(e.consume(C),o=2,E):C===91?(e.consume(C),o=5,c=0,v):Ht(C)?(e.consume(C),o=4,i.interrupt?t:x):n(C)}function E(C){return C===45?(e.consume(C),i.interrupt?t:x):n(C)}function v(C){const ae="CDATA[";return C===ae.charCodeAt(c++)?(e.consume(C),c===ae.length?i.interrupt?t:J:v):n(C)}function k(C){return Ht(C)?(e.consume(C),u=String.fromCharCode(C),T):n(C)}function T(C){if(C===null||C===47||C===62||He(C)){const ae=C===47,pe=u.toLowerCase();return!ae&&!l&&HE.includes(pe)?(o=1,i.interrupt?t(C):J(C)):m0.includes(u.toLowerCase())?(o=6,ae?(e.consume(C),N):i.interrupt?t(C):J(C)):(o=7,i.interrupt&&!i.parser.lazy[i.now().line]?n(C):l?R(C):A(C))}return C===45||zt(C)?(e.consume(C),u+=String.fromCharCode(C),T):n(C)}function N(C){return C===62?(e.consume(C),i.interrupt?t:J):n(C)}function R(C){return Fe(C)?(e.consume(C),R):M(C)}function A(C){return C===47?(e.consume(C),M):C===58||C===95||Ht(C)?(e.consume(C),O):Fe(C)?(e.consume(C),A):M(C)}function O(C){return C===45||C===46||C===58||C===95||zt(C)?(e.consume(C),O):L(C)}function L(C){return C===61?(e.consume(C),w):Fe(C)?(e.consume(C),L):A(C)}function w(C){return C===null||C===60||C===61||C===62||C===96?n(C):C===34||C===39?(e.consume(C),p=C,B):Fe(C)?(e.consume(C),w):W(C)}function B(C){return C===p?(e.consume(C),p=null,j):C===null||xe(C)?n(C):(e.consume(C),B)}function W(C){return C===null||C===34||C===39||C===47||C===60||C===61||C===62||C===96||He(C)?L(C):(e.consume(C),W)}function j(C){return C===47||C===62||Fe(C)?A(C):n(C)}function M(C){return C===62?(e.consume(C),Y):n(C)}function Y(C){return C===null||xe(C)?J(C):Fe(C)?(e.consume(C),Y):n(C)}function J(C){return C===45&&o===2?(e.consume(C),te):C===60&&o===1?(e.consume(C),ue):C===62&&o===4?(e.consume(C),D):C===63&&o===3?(e.consume(C),x):C===93&&o===5?(e.consume(C),Q):xe(C)&&(o===6||o===7)?(e.exit("htmlFlowData"),e.check(b0,$,de)(C)):C===null||xe(C)?(e.exit("htmlFlowData"),de(C)):(e.consume(C),J)}function de(C){return e.check(y0,Z,$)(C)}function Z(C){return e.enter("lineEnding"),e.consume(C),e.exit("lineEnding"),H}function H(C){return C===null||xe(C)?de(C):(e.enter("htmlFlowData"),J(C))}function te(C){return C===45?(e.consume(C),x):J(C)}function ue(C){return C===47?(e.consume(C),u="",q):J(C)}function q(C){if(C===62){const ae=u.toLowerCase();return HE.includes(ae)?(e.consume(C),D):J(C)}return Ht(C)&&u.length<8?(e.consume(C),u+=String.fromCharCode(C),q):J(C)}function Q(C){return C===93?(e.consume(C),x):J(C)}function x(C){return C===62?(e.consume(C),D):C===45&&o===2?(e.consume(C),x):J(C)}function D(C){return C===null||xe(C)?(e.exit("htmlFlowData"),$(C)):(e.consume(C),D)}function $(C){return e.exit("htmlFlow"),t(C)}}function v0(e,t,n){const i=this;return o;function o(u){return xe(u)?(e.enter("lineEnding"),e.consume(u),e.exit("lineEnding"),l):n(u)}function l(u){return i.parser.lazy[i.now().line]?n(u):t(u)}}function k0(e,t,n){return i;function i(o){return e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),e.attempt(Ii,t,n)}}const _0={name:"htmlText",tokenize:w0};function w0(e,t,n){const i=this;let o,l,u;return c;function c(x){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(x),p}function p(x){return x===33?(e.consume(x),f):x===47?(e.consume(x),L):x===63?(e.consume(x),A):Ht(x)?(e.consume(x),W):n(x)}function f(x){return x===45?(e.consume(x),m):x===91?(e.consume(x),l=0,v):Ht(x)?(e.consume(x),R):n(x)}function m(x){return x===45?(e.consume(x),E):n(x)}function h(x){return x===null?n(x):x===45?(e.consume(x),S):xe(x)?(u=h,ue(x)):(e.consume(x),h)}function S(x){return x===45?(e.consume(x),E):h(x)}function E(x){return x===62?te(x):x===45?S(x):h(x)}function v(x){const D="CDATA[";return x===D.charCodeAt(l++)?(e.consume(x),l===D.length?k:v):n(x)}function k(x){return x===null?n(x):x===93?(e.consume(x),T):xe(x)?(u=k,ue(x)):(e.consume(x),k)}function T(x){return x===93?(e.consume(x),N):k(x)}function N(x){return x===62?te(x):x===93?(e.consume(x),N):k(x)}function R(x){return x===null||x===62?te(x):xe(x)?(u=R,ue(x)):(e.consume(x),R)}function A(x){return x===null?n(x):x===63?(e.consume(x),O):xe(x)?(u=A,ue(x)):(e.consume(x),A)}function O(x){return x===62?te(x):A(x)}function L(x){return Ht(x)?(e.consume(x),w):n(x)}function w(x){return x===45||zt(x)?(e.consume(x),w):B(x)}function B(x){return xe(x)?(u=B,ue(x)):Fe(x)?(e.consume(x),B):te(x)}function W(x){return x===45||zt(x)?(e.consume(x),W):x===47||x===62||He(x)?j(x):n(x)}function j(x){return x===47?(e.consume(x),te):x===58||x===95||Ht(x)?(e.consume(x),M):xe(x)?(u=j,ue(x)):Fe(x)?(e.consume(x),j):te(x)}function M(x){return x===45||x===46||x===58||x===95||zt(x)?(e.consume(x),M):Y(x)}function Y(x){return x===61?(e.consume(x),J):xe(x)?(u=Y,ue(x)):Fe(x)?(e.consume(x),Y):j(x)}function J(x){return x===null||x===60||x===61||x===62||x===96?n(x):x===34||x===39?(e.consume(x),o=x,de):xe(x)?(u=J,ue(x)):Fe(x)?(e.consume(x),J):(e.consume(x),Z)}function de(x){return x===o?(e.consume(x),o=void 0,H):x===null?n(x):xe(x)?(u=de,ue(x)):(e.consume(x),de)}function Z(x){return x===null||x===34||x===39||x===60||x===61||x===96?n(x):x===47||x===62||He(x)?j(x):(e.consume(x),Z)}function H(x){return x===47||x===62||He(x)?j(x):n(x)}function te(x){return x===62?(e.consume(x),e.exit("htmlTextData"),e.exit("htmlText"),t):n(x)}function ue(x){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(x),e.exit("lineEnding"),q}function q(x){return Fe(x)?Pe(e,Q,"linePrefix",i.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(x):Q(x)}function Q(x){return e.enter("htmlTextData"),u(x)}}const eh={name:"labelEnd",resolveAll:R0,resolveTo:N0,tokenize:C0},T0={tokenize:I0},x0={tokenize:O0},A0={tokenize:L0};function R0(e){let t=-1;const n=[];for(;++t=3&&(f===null||xe(f))?(e.exit("thematicBreak"),t(f)):n(f)}function p(f){return f===o?(e.consume(f),i++,p):(e.exit("thematicBreakSequence"),Fe(f)?Pe(e,c,"whitespace")(f):c(f))}}const tn={continuation:{tokenize:q0},exit:H0,name:"list",tokenize:$0},j0={partial:!0,tokenize:W0},z0={partial:!0,tokenize:G0};function $0(e,t,n){const i=this,o=i.events[i.events.length-1];let l=o&&o[1].type==="linePrefix"?o[2].sliceSerialize(o[1],!0).length:0,u=0;return c;function c(E){const v=i.containerState.type||(E===42||E===43||E===45?"listUnordered":"listOrdered");if(v==="listUnordered"?!i.containerState.marker||E===i.containerState.marker:Am(E)){if(i.containerState.type||(i.containerState.type=v,e.enter(v,{_container:!0})),v==="listUnordered")return e.enter("listItemPrefix"),E===42||E===45?e.check(ns,n,f)(E):f(E);if(!i.interrupt||E===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),p(E)}return n(E)}function p(E){return Am(E)&&++u<10?(e.consume(E),p):(!i.interrupt||u<2)&&(i.containerState.marker?E===i.containerState.marker:E===41||E===46)?(e.exit("listItemValue"),f(E)):n(E)}function f(E){return e.enter("listItemMarker"),e.consume(E),e.exit("listItemMarker"),i.containerState.marker=i.containerState.marker||E,e.check(Ii,i.interrupt?n:m,e.attempt(j0,S,h))}function m(E){return i.containerState.initialBlankLine=!0,l++,S(E)}function h(E){return Fe(E)?(e.enter("listItemPrefixWhitespace"),e.consume(E),e.exit("listItemPrefixWhitespace"),S):n(E)}function S(E){return i.containerState.size=l+i.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(E)}}function q0(e,t,n){const i=this;return i.containerState._closeFlow=void 0,e.check(Ii,o,l);function o(c){return i.containerState.furtherBlankLines=i.containerState.furtherBlankLines||i.containerState.initialBlankLine,Pe(e,t,"listItemIndent",i.containerState.size+1)(c)}function l(c){return i.containerState.furtherBlankLines||!Fe(c)?(i.containerState.furtherBlankLines=void 0,i.containerState.initialBlankLine=void 0,u(c)):(i.containerState.furtherBlankLines=void 0,i.containerState.initialBlankLine=void 0,e.attempt(z0,t,u)(c))}function u(c){return i.containerState._closeFlow=!0,i.interrupt=void 0,Pe(e,e.attempt(tn,t,n),"linePrefix",i.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(c)}}function G0(e,t,n){const i=this;return Pe(e,o,"listItemIndent",i.containerState.size+1);function o(l){const u=i.events[i.events.length-1];return u&&u[1].type==="listItemIndent"&&u[2].sliceSerialize(u[1],!0).length===i.containerState.size?t(l):n(l)}}function H0(e){e.exit(this.containerState.type)}function W0(e,t,n){const i=this;return Pe(e,o,"listItemPrefixWhitespace",i.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function o(l){const u=i.events[i.events.length-1];return!Fe(l)&&u&&u[1].type==="listItemPrefixWhitespace"?t(l):n(l)}}const WE={name:"setextUnderline",resolveTo:V0,tokenize:Y0};function V0(e,t){let n=e.length,i,o,l;for(;n--;)if(e[n][0]==="enter"){if(e[n][1].type==="content"){i=n;break}e[n][1].type==="paragraph"&&(o=n)}else e[n][1].type==="content"&&e.splice(n,1),!l&&e[n][1].type==="definition"&&(l=n);const u={type:"setextHeading",start:{...e[i][1].start},end:{...e[e.length-1][1].end}};return e[o][1].type="setextHeadingText",l?(e.splice(o,0,["enter",u,t]),e.splice(l+1,0,["exit",e[i][1],t]),e[i][1].end={...e[l][1].end}):e[i][1]=u,e.push(["exit",u,t]),e}function Y0(e,t,n){const i=this;let o;return l;function l(f){let m=i.events.length,h;for(;m--;)if(i.events[m][1].type!=="lineEnding"&&i.events[m][1].type!=="linePrefix"&&i.events[m][1].type!=="content"){h=i.events[m][1].type==="paragraph";break}return!i.parser.lazy[i.now().line]&&(i.interrupt||h)?(e.enter("setextHeadingLine"),o=f,u(f)):n(f)}function u(f){return e.enter("setextHeadingLineSequence"),c(f)}function c(f){return f===o?(e.consume(f),c):(e.exit("setextHeadingLineSequence"),Fe(f)?Pe(e,p,"lineSuffix")(f):p(f))}function p(f){return f===null||xe(f)?(e.exit("setextHeadingLine"),t(f)):n(f)}}const K0={tokenize:Z0};function Z0(e){const t=this,n=e.attempt(Ii,i,e.attempt(this.parser.constructs.flowInitial,o,Pe(e,e.attempt(this.parser.constructs.flow,o,e.attempt(t0,o)),"linePrefix")));return n;function i(l){if(l===null){e.consume(l);return}return e.enter("lineEndingBlank"),e.consume(l),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n}function o(l){if(l===null){e.consume(l);return}return e.enter("lineEnding"),e.consume(l),e.exit("lineEnding"),t.currentConstruct=void 0,n}}const X0={resolveAll:lA()},Q0=sA("string"),J0=sA("text");function sA(e){return{resolveAll:lA(e==="text"?eO:void 0),tokenize:t};function t(n){const i=this,o=this.parser.constructs[e],l=n.attempt(o,u,c);return u;function u(m){return f(m)?l(m):c(m)}function c(m){if(m===null){n.consume(m);return}return n.enter("data"),n.consume(m),p}function p(m){return f(m)?(n.exit("data"),l(m)):(n.consume(m),p)}function f(m){if(m===null)return!0;const h=o[m];let S=-1;if(h)for(;++S-1){const c=u[0];typeof c=="string"?u[0]=c.slice(i):u.shift()}l>0&&u.push(e[o].slice(0,l))}return u}function fO(e,t){let n=-1;const i=[];let o;for(;++n{u!==o&&u.remove()});for(const u of Object.keys(i))t.style.setProperty(u,i[u]);t.style.setProperty("color-scheme",e),t.setAttribute("data-theme",e),t.setAttribute("data-theme-type",e),n.setAttribute("data-theme",e),n.style.backgroundColor=ym[e],n.style.color=vx[e];const l=document.querySelector('meta[name="theme-color"]');l&&(l.setAttribute("content",ym[e]),l.removeAttribute("media"))}function wC(){try{const e=localStorage.getItem(Sx);if(e==="dark"||e==="light")return e}catch{}return window.matchMedia?.("(prefers-color-scheme: light)").matches?"light":"dark"}const kx=P.createContext({themeId:"dark",isDark:!0,setTheme:()=>{},toggleTheme:()=>{}}),TC=280;let pE;const xC=({children:e})=>{const[t,n]=P.useState(wC);P.useLayoutEffect(()=>{const l=document.documentElement,u=l.getAttribute("data-theme"),c=u&&u!==t;c&&(clearTimeout(pE),l.classList.add("theme-switching"),l.offsetHeight),_C(t),c&&(pE=setTimeout(()=>{l.classList.remove("theme-switching")},TC+40));try{localStorage.setItem(Sx,t)}catch{}},[t]);const i=P.useCallback(l=>n(l),[]),o=P.useCallback(()=>n(l=>l==="dark"?"light":"dark"),[]);return g.jsx(kx.Provider,{value:{themeId:t,isDark:t==="dark",setTheme:i,toggleTheme:o},children:e})};function Ca(){return P.useContext(kx)}const AC=({className:e})=>{const{language:t,toggleLanguage:n,t:i}=dt();return g.jsx("button",{type:"button",className:e||"mobile-lang-btn",onClick:n,"aria-label":i("common.switchLanguage"),title:i("common.switchLanguage"),children:t==="zh-CN"?"中":"EN"})};function RC(e){return e<=20?"sparo-mark-16.png":e<=28?"sparo-mark-24.png":e<=40?"sparo-mark-32.png":e<64?"sparo-mark-48.png":"sparo-mark-full.png"}function _x({size:e,alt:t="",draggable:n=!1,...i}){return g.jsx("img",{src:`./brand/${RC(e)}`,width:e,height:e,alt:t,draggable:n,...i})}function NC(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function wx(e,t=""){if(!Number.isSafeInteger(e)||e<0){const n=t&&`"${t}" `;throw new Error(`${n}expected integer >= 0, got ${e}`)}}function Ei(e,t,n=""){const i=NC(e),o=e?.length,l=t!==void 0;if(!i||l&&o!==t){const u=n&&`"${n}" `,c=l?` of length ${t}`:"",p=i?`length=${o}`:`type=${typeof e}`;throw new Error(u+"expected Uint8Array"+c+", got "+p)}return e}const Tx=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",CC=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function IC(e){if(Ei(e),Tx)return e.toHex();let t="";for(let n=0;n=Xn._0&&e<=Xn._9)return e-Xn._0;if(e>=Xn.A&&e<=Xn.F)return e-(Xn.A-10);if(e>=Xn.a&&e<=Xn.f)return e-(Xn.a-10)}function OC(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);if(Tx)return Uint8Array.fromHex(e);const t=e.length,n=t/2;if(t%2)throw new Error("hex string expected, got unpadded hex of length "+t);const i=new Uint8Array(n);for(let o=0,l=0;otypeof e=="bigint"&&xx<=e;function UC(e,t,n){return ts(e)&&ts(t)&&ts(n)&&t<=e&&eObject.entries(l).forEach(([c,p])=>i(c,p,u));o(t,!1),o(n,!0)}const Ax=BigInt(0);function Rx(e,t){const n=e%t;return n>=Ax?n:t+n}function In(e,t,n){let i=e;for(;t-- >Ax;)i*=i,i%=n;return i}function jC(e,t){return function(i){const o=e(i);return{secretKey:o,publicKey:t(o)}}}const fi=BigInt(0),Ea=BigInt(1),$o=BigInt(2);function zC(e){return BC(e,{adjustScalarBytes:"function",powPminus2:"function"}),Object.freeze({...e})}function $C(e){const t=zC(e),{P:n,type:i,adjustScalarBytes:o,powPminus2:l,randomBytes:u}=t,c=i==="x25519";if(!c&&i!=="x448")throw new Error("invalid type");const p=u||LC,f=c?255:448,m=c?32:56,h=BigInt(c?9:5),S=BigInt(c?121665:39081),E=c?$o**BigInt(254):$o**BigInt(447),v=c?BigInt(8)*$o**BigInt(251)-Ea:BigInt(4)*$o**BigInt(445)-Ea,k=E+v+Ea,T=Z=>Rx(Z,n),N=R(h);function R(Z){return PC(T(Z),m)}function A(Z){const H=Em(Ei(Z,m,"uCoordinate"));return c&&(H[31]&=127),T(gE(H))}function O(Z){return gE(o(Em(Ei(Z,m,"scalar"))))}function L(Z,H){const te=M(A(H),O(Z));if(te===fi)throw new Error("invalid private or public key received");return R(te)}function w(Z){return L(Z,N)}const B=w,W=L;function j(Z,H,te){const ue=T(Z*(H-te));return H=T(H-ue),te=T(te+ue),{x_2:H,x_3:te}}function M(Z,H){mE("u",Z,fi,n),mE("scalar",H,E,k);const te=H,ue=Z;let q=Ea,Q=fi,x=Z,D=Ea,$=fi;for(let ae=BigInt(f-1);ae>=fi;ae--){const pe=te>>ae&Ea;$^=pe,{x_2:q,x_3:x}=j($,q,x),{x_2:Q,x_3:D}=j($,Q,D),$=pe;const fe=q+Q,Se=T(fe*fe),ke=q-Q,X=T(ke*ke),he=Se-X,Ie=x+D,Qe=x-D,Ce=T(Qe*fe),$e=T(Ie*ke),pt=Ce+$e,tt=Ce-$e;x=T(pt*pt),D=T(ue*T(tt*tt)),q=T(Se*X),Q=T(he*(Se+T(S*he)))}({x_2:q,x_3:x}=j($,q,x)),{x_2:Q,x_3:D}=j($,Q,D);const C=l(Q);return T(q*C)}const Y={secretKey:m,publicKey:m,seed:m},J=(Z=p(m))=>(Ei(Z,Y.seed,"seed"),Z),de={randomSecretKey:J};return Object.freeze({keygen:jC(J,B),getSharedSecret:W,getPublicKey:B,scalarMult:L,scalarMultBase:w,utils:de,GuBytes:N.slice(),lengths:Y})}const qC=BigInt(1),hE=BigInt(2),GC=BigInt(3),HC=BigInt(5);BigInt(8);const Nx=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed");function WC(e){const t=BigInt(10),n=BigInt(20),i=BigInt(40),o=BigInt(80),l=Nx,c=e*e%l*e%l,p=In(c,hE,l)*c%l,f=In(p,qC,l)*e%l,m=In(f,HC,l)*f%l,h=In(m,t,l)*m%l,S=In(h,n,l)*h%l,E=In(S,i,l)*S%l,v=In(E,o,l)*E%l,k=In(v,o,l)*E%l,T=In(k,t,l)*m%l;return{pow_p_5_8:In(T,hE,l)*e%l,b2:c}}function VC(e){return e[0]&=248,e[31]&=127,e[31]|=64,e}const Cx=(()=>{const e=Nx;return $C({P:e,type:"x25519",powPminus2:t=>{const{pow_p_5_8:n,b2:i}=WC(t);return Rx(In(n,GC,e)*i,e)},adjustScalarBytes:VC})})();function YC(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function nn(e,t,n=""){const i=YC(e),o=e?.length,l=t!==void 0;if(!i||l&&o!==t){const u=n&&`"${n}" `,c=l?` of length ${t}`:"",p=i?`length=${o}`:`type=${typeof e}`;throw new Error(u+"expected Uint8Array"+c+", got "+p)}return e}function os(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function Ix(e,t){nn(e,void 0,"output");const n=t.outputLen;if(e.length{function n(i,...o){if(nn(i,void 0,"key"),!ZC)throw new Error("Non little-endian hardware is not yet supported");if(e.nonceLength!==void 0){const m=o[0];nn(m,e.varSizeNonce?void 0:e.nonceLength,"nonce")}const l=e.tagLength;l&&o[1]!==void 0&&nn(o[1],void 0,"AAD");const u=t(i,...o),c=(m,h)=>{if(h!==void 0){if(m!==2)throw new Error("cipher output not supported");nn(h,void 0,"output")}};let p=!1;return{encrypt(m,h){if(p)throw new Error("cannot encrypt() twice with same key + nonce");return p=!0,nn(m),c(u.encrypt.length,h),u.encrypt(m,h)},decrypt(m,h){if(nn(m),l&&m.length{const o=i&1;return{s3:n<<31|i>>>1,s2:t<<31|n>>>1,s1:e<<31|t>>>1,s0:e>>>1^tI<<24&-(o&1)}},En=e=>(e>>>0&255)<<24|(e>>>8&255)<<16|(e>>>16&255)<<8|e>>>24&255|0;function rI(e){e.reverse();const t=e[15]&1;let n=0;for(let i=0;i>>1|n,n=(o&1)<<7}return e[0]^=-t&225,e}const aI=e=>e>64*1024?8:e>1024?4:2;class Ox{blockLen=Jn;outputLen=Jn;s0=0;s1=0;s2=0;s3=0;finished=!1;t;W;windowSize;constructor(t,n){nn(t,16,"key"),t=Hr(t);const i=hs(t);let o=i.getUint32(0,!1),l=i.getUint32(4,!1),u=i.getUint32(8,!1),c=i.getUint32(12,!1);const p=[];for(let v=0;v<128;v++)p.push({s0:En(o),s1:En(l),s2:En(u),s3:En(c)}),{s0:o,s1:l,s2:u,s3:c}=nI(o,l,u,c);const f=aI(n||1024);if(![1,2,4,8].includes(f))throw new Error("ghash: invalid window size, expected 2, 4 or 8");this.W=f;const h=128/f,S=this.windowSize=2**f,E=[];for(let v=0;v>>f-O-1&1))continue;const{s0:w,s1:B,s2:W,s3:j}=p[f*v+O];T^=w,N^=B,R^=W,A^=j}E.push({s0:T,s1:N,s2:R,s3:A})}this.t=E}_updateBlock(t,n,i,o){t^=this.s0,n^=this.s1,i^=this.s2,o^=this.s3;const{W:l,t:u,windowSize:c}=this;let p=0,f=0,m=0,h=0;const S=(1<>>8*k&255;for(let N=8/l-1;N>=0;N--){const R=T>>>l*N&S,{s0:A,s1:O,s2:L,s3:w}=u[E*c+R];p^=A,f^=O,m^=L,h^=w,E+=1}}this.s0=p,this.s1=f,this.s2=m,this.s3=h}update(t){os(this),nn(t),t=Hr(t);const n=er(t),i=Math.floor(t.length/Jn),o=t.length%Jn;for(let l=0;le(o,i.length).update(i).digest(),n=e(new Uint8Array(16),0);return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=(i,o)=>e(i,o),t}const bE=Lx((e,t)=>new Ox(e,t));Lx((e,t)=>new iI(e,t));const Sm=16,oI=4,qo=new Uint8Array(Sm),sI=283;function lI(e){if(![16,24,32].includes(e.length))throw new Error('"aes key" expected Uint8Array of length 16/24/32, got length='+e.length)}function Hm(e){return e<<1^sI&-(e>>7)}function yE(e,t){let n=0;for(;t>0;t>>=1)n^=e&-(t&1),e=Hm(e);return n}const uI=(()=>{const e=new Uint8Array(256);for(let n=0,i=1;n<256;n++,i^=Hm(i))e[n]=i;const t=new Uint8Array(256);t[0]=99;for(let n=0;n<255;n++){let i=e[255-n];i|=i<<8,t[e[n]]=(i^i>>4^i>>5^i>>6^i>>7^99)&255}return tr(e),t})(),cI=e=>e<<24|e>>>8,du=e=>e<<8|e>>>24;function dI(e,t){if(e.length!==256)throw new Error("Wrong sbox length");const n=new Uint32Array(256).map((f,m)=>t(e[m])),i=n.map(du),o=i.map(du),l=o.map(du),u=new Uint32Array(256*256),c=new Uint32Array(256*256),p=new Uint16Array(256*256);for(let f=0;f<256;f++)for(let m=0;m<256;m++){const h=f*256+m;u[h]=n[f]^i[m],c[h]=o[f]^l[m],p[h]=e[f]<<8|e[m]}return{sbox:e,sbox2:p,T0:n,T1:i,T2:o,T3:l,T01:u,T23:c}}const Dx=dI(uI,e=>yE(e,3)<<24|e<<16|e<<8|yE(e,2)),pI=(()=>{const e=new Uint8Array(16);for(let t=0,n=1;t<16;t++,n=Hm(n))e[t]=n;return e})();function fI(e){nn(e);const t=e.length;lI(e);const{sbox2:n}=Dx,i=[];ss(e)||i.push(e=Hr(e));const o=er(e),l=o.length,u=p=>yi(n,p,p,p,p),c=new Uint32Array(t+28);c.set(o);for(let p=l;p6&&p%l===4&&(f=u(f)),c[p]=c[p-l]^f}return tr(...i),c}function Go(e,t,n,i,o,l){return e[n<<8&65280|i>>>8&255]^t[o>>>8&65280|l>>>24&255]}function yi(e,t,n,i,o){return e[t&255|n&65280]|e[i>>>16&255|o>>>16&65280]<<16}function EE(e,t,n,i,o){const{sbox2:l,T01:u,T23:c}=Dx;let p=0;t^=e[p++],n^=e[p++],i^=e[p++],o^=e[p++];const f=e.length/4-2;for(let v=0;v>>0,c.setUint32(m,S,t),{s0:E,s1:v,s2:k,s3:T}=EE(e,u[0],u[1],u[2],u[3]);const N=Sm*Math.floor(p.length/oI);if(Nt+=String.fromCharCode(n)),btoa(t)}function km(e){const t=atob(e),n=new Uint8Array(t.length);for(let i=0;io.agent_type==="OSAgent");return i?i.session_id:this.createSession("OSAgent","Sparo OS",t)}async getSessionMessages(t,n,i){const o=await this.request({cmd:"get_session_messages",session_id:t,limit:n,before_message_id:i});return{messages:o.messages||[],has_more:o.has_more||!1}}async getModelCatalog(t){return(await this.request({cmd:"get_model_catalog",session_id:t??void 0})).catalog}async setSessionModel(t,n){return(await this.request({cmd:"set_session_model",session_id:t,model_id:n})).model_id}async sendMessage(t,n,i,o){return(await this.request({cmd:"send_message",session_id:t,content:n,agent_type:i||void 0,image_contexts:o&&o.length>0?o:void 0})).turn_id}async cancelTask(t,n){await this.request({cmd:"cancel_task",session_id:t,turn_id:n??void 0})}async cancelTool(t,n){await this.request({cmd:"cancel_tool",tool_id:t,reason:n??void 0})}async deleteSession(t){await this.request({cmd:"delete_session",session_id:t})}async answerQuestion(t,n){await this.request({cmd:"answer_question",tool_id:t,answers:n})}async pollSession(t,n,i,o=0){return this.request({cmd:"poll_session",session_id:t,since_version:n,known_msg_count:i,known_model_catalog_version:o})}async ping(){await this.request({cmd:"ping"})}async getFileInfo(t,n){const i=await this.request({cmd:"get_file_info",path:t,session_id:n??void 0});return{name:i.name,size:i.size,mimeType:i.mime_type}}async readFile(t,n,i){let l=0;const u=[];let c="",p="",f=0;for(;;){const m=await this.request({cmd:"read_file_chunk",path:t,session_id:n??void 0,offset:l,limit:3145728});if(u.push(m.chunk_base64),c=m.name,p=m.mime_type,f=m.total_size,l+=m.chunk_size,i?.(Math.min(l,f),f),l>=f||m.chunk_size===0)break}return{name:c,contentBase64:u.join(""),mimeType:p,size:f}}}class SI{intervalId=null;sinceVersion=0;knownMsgCount=0;sessionId;sessionMgr;onUpdate;polling=!1;stopped=!1;hasActiveTurn=!1;knownModelCatalogVersion=0;turnJustEndedAt=null;TURN_JUST_ENDED_GRACE_PERIOD_MS=5e3;constructor(t,n,i,o=0){this.sessionMgr=t,this.sessionId=n,this.onUpdate=i,this.knownModelCatalogVersion=o}start(t=0){this.stopped=!1,this.knownMsgCount=t,this.tick(),document.addEventListener("visibilitychange",this.onVisibilityChange)}stop(){this.stopped=!0,this.intervalId!==null&&(clearTimeout(this.intervalId),this.intervalId=null),document.removeEventListener("visibilitychange",this.onVisibilityChange)}resetCursors(){this.sinceVersion=0,this.knownMsgCount=0}setKnownModelCatalogVersion(t){this.knownModelCatalogVersion=t}nudge(){this.hasActiveTurn=!0,this.intervalId!==null&&clearTimeout(this.intervalId),this.tick()}getInterval(){if(document.visibilityState!=="visible")return 5e3;const t=Date.now();return this.turnJustEndedAt!=null&&t-this.turnJustEndedAtthis.tick(),this.getInterval()))}onVisibilityChange=()=>{this.stopped||(document.visibilityState==="visible"?(this.intervalId!==null&&clearTimeout(this.intervalId),this.tick()):this.scheduleNext())};async tick(){if(this.stopped||this.polling){this.scheduleNext();return}this.polling=!0;try{const t=await this.sessionMgr.pollSession(this.sessionId,this.sinceVersion,this.knownMsgCount,this.knownModelCatalogVersion);if(t.changed){const n=this.hasActiveTurn,i=t.active_turn!=null&&t.active_turn.status==="active";this.hasActiveTurn=i,n&&!i&&(this.turnJustEndedAt=Date.now()),t.new_messages&&t.new_messages.length>0&&(this.turnJustEndedAt=null),this.sinceVersion=t.version,t.total_msg_count!=null&&(this.knownMsgCount=t.total_msg_count),t.model_catalog?.version!=null&&(this.knownModelCatalogVersion=t.model_catalog.version),this.onUpdate(t)}}catch(t){console.error("[Poller] poll error",t)}finally{this.polling=!1,this.scheduleNext()}}}const vE=e=>{let t;const n=new Set,i=(f,m)=>{const h=typeof f=="function"?f(t):f;if(!Object.is(h,t)){const S=t;t=m??(typeof h!="object"||h===null)?h:Object.assign({},t,h),n.forEach(E=>E(t,S))}},o=()=>t,c={setState:i,getState:o,getInitialState:()=>p,subscribe:f=>(n.add(f),()=>n.delete(f))},p=t=e(i,o,c);return c},vI=(e=>e?vE(e):vE),kI=e=>e;function _I(e,t=kI){const n=ct.useSyncExternalStore(e.subscribe,ct.useCallback(()=>t(e.getState()),[e,t]),ct.useCallback(()=>t(e.getInitialState()),[e,t]));return ct.useDebugValue(n),n}const kE=e=>{const t=vI(e),n=i=>_I(t,i);return Object.assign(n,t),n},Px=(e=>e?kE(e):kE),vn=Px((e,t)=>({connectionStatus:"idle",setConnectionStatus:n=>e({connectionStatus:n}),selectedWorkspace:null,setSelectedWorkspace:n=>e({selectedWorkspace:n}),authenticatedUserId:null,setAuthenticatedUserId:n=>e({authenticatedUserId:n}),sessions:[],setSessions:n=>e({sessions:n}),appendSessions:n=>e(i=>({sessions:[...i.sessions,...n]})),updateSessionName:(n,i)=>e(o=>({sessions:o.sessions.map(l=>l.session_id===n?{...l,name:i}:l)})),activeSessionId:null,setActiveSessionId:n=>e({activeSessionId:n}),messagesBySession:{},getMessages:n=>t().messagesBySession[n]||[],setMessages:(n,i)=>e(o=>({messagesBySession:{...o.messagesBySession,[n]:i}})),appendNewMessages:(n,i)=>e(o=>{if(i.length===0)return o;const l=o.messagesBySession[n]||[],u=new Set(l.map(p=>p.id)),c=i.filter(p=>!u.has(p.id));return c.length===0?o:{messagesBySession:{...o.messagesBySession,[n]:[...l,...c]}}}),activeTurn:null,setActiveTurn:n=>e({activeTurn:n}),error:null,setError:n=>e({error:n})})),_E="sparo.mobile.install_id",wE="sparo.mobile.user_id",zr="sparo.mobile.user_id_lock_until",Sa="sparo.mobile.user_id_failure_count",wI=3,TE=6e4;function TI(e){return e.includes("This remote URL is already protected")||e.includes("This mobile device must continue using the previously confirmed user ID")}function xI(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():`mobile-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,10)}`}function xE(){const e=localStorage.getItem(_E)?.trim();if(e)return e;const t=xI();return localStorage.setItem(_E,t),t}function AI(){const e=window.location.hash,t=new URLSearchParams(e.replace(/^#\/pair\?/,"")),n=t.get("room"),i=t.get("pk"),o=t.get("relay");if(o)return{room:n,pk:i,httpBaseUrl:o.replace(/^wss:\/\//,"https://").replace(/^ws:\/\//,"http://").replace(/\/ws\/?$/,"").replace(/\/$/,"")};const l=window.location.origin,u=window.location.pathname.replace(/\/[^/]*$/,"").replace(/\/r\/[^/]*$/,"");return{room:n,pk:i,httpBaseUrl:l+u}}const RI=({onPaired:e})=>{const{t}=dt(),{connectionStatus:n,setConnectionStatus:i,setError:o,error:l,setAuthenticatedUserId:u}=vn(),[c,p]=P.useState(""),[f,m]=P.useState(""),[h,S]=P.useState(!1),[E,v]=P.useState(0),[k,T]=P.useState(null),[N,R]=P.useState(()=>Date.now()),A=P.useRef(!1),O=P.useRef(0),L=P.useRef(null),w=P.useMemo(()=>AI(),[]),B=!!k&&k>N,W=B?Math.max(1,Math.ceil((k-N)/1e3)):0,j=P.useCallback(async(Z,H)=>{const te=Z.trim(),ue=H?.autoReconnect===!0,q=H?.installId||f||xE(),Q=L.current,x=!!Q&&Q>Date.now(),D=x?Math.max(1,Math.ceil((Q-Date.now())/1e3)):0;if(!w.room||!w.pk){o(t("pairing.invalidQrCode")),i("error");return}if(!te){o(t("pairing.userIdRequired")),i("error");return}if(!ue&&x){o(t("pairing.tooManyAttempts",{seconds:D})),i("error");return}m(q),S(!0);const $=new yI(w.httpBaseUrl,w.room);try{o(null),i("pairing");const C=await $.pair(w.pk,{userId:te,mobileInstallId:q});i("paired"),localStorage.setItem(wE,te),localStorage.removeItem(Sa),localStorage.removeItem(zr),v(0),T(null),u(C.authenticated_user_id??te);const ae=new EI($),pe=vn.getState();C.has_workspace&&pe.setSelectedWorkspace({has_workspace:!0,path:C.path,project_name:C.project_name,git_branch:C.git_branch,workspace_kind:C.workspace_kind}),C.sessions&&pe.setSessions(C.sessions),e($,ae)}catch(C){const ae=C?.message||t("pairing.pairingFailed");if(!ue&&TI(ae)){const pe=O.current+1,fe=pe>=wI,Se=fe?Date.now()+TE:null;localStorage.setItem(Sa,String(pe)),Se?localStorage.setItem(zr,String(Se)):localStorage.removeItem(zr),v(pe),T(Se),o(fe?t("pairing.tooManyAttempts",{seconds:Math.ceil(TE/1e3)}):ae)}else o(ae);i("error")}finally{S(!1)}},[f,w.httpBaseUrl,w.pk,w.room,u,i,o,t]);P.useEffect(()=>{const Z=localStorage.getItem(wE)?.trim()??"",H=xE(),te=Number(localStorage.getItem(Sa)||"0"),ue=Number(localStorage.getItem(zr)||"0"),q=ue>Date.now()?ue:null;ue&&!q&&(localStorage.removeItem(zr),localStorage.removeItem(Sa));const Q=!!Z&&!!H&&!!w.room&&!!w.pk;p(Z),m(H),v(q?te:0),T(q),i(Q?"pairing":"idle"),o(null),Q&&!A.current&&(A.current=!0,j(Z,{autoReconnect:!0,installId:H}))},[j,w.pk,w.room,i,o]),P.useEffect(()=>{O.current=E,L.current=k},[E,k]),P.useEffect(()=>{if(!k)return;if(k<=Date.now()){T(null),v(0),localStorage.removeItem(zr),localStorage.removeItem(Sa);return}const Z=window.setInterval(()=>{const H=Date.now();R(H),k<=H&&(T(null),v(0),localStorage.removeItem(zr),localStorage.removeItem(Sa))},1e3);return()=>window.clearInterval(Z)},[k]);const M=async()=>{A.current=!0,await j(c,{autoReconnect:!1})},Y={idle:t("pairing.enterUserIdToContinue"),pairing:t("pairing.connectingAndPairing"),paired:t("pairing.pairedLoadingSessions"),error:t("pairing.connectionError")},J=n==="pairing",de=n==="idle"||n==="error";return g.jsxs("div",{className:"pairing-page",children:[g.jsx("div",{className:"pairing-page__actions",children:g.jsx(AC,{})}),g.jsx("div",{className:"pairing-page__mark",children:g.jsx(_x,{size:72,alt:"Sparo OS",className:"pairing-page__logo-img"})}),g.jsx("div",{className:"pairing-page__brand",children:g.jsxs("div",{className:"pairing-page__brand-slogan",children:[g.jsx("span",{className:"pairing-page__slogan-dot","aria-hidden":"true"}),t("common.slogan")]})}),g.jsx("div",{className:"pairing-page__spinner-wrap",children:J&&g.jsx("div",{className:"pairing-page__orbit-spinner"})}),g.jsx("div",{className:"pairing-page__state",children:Y[n]||n}),l&&g.jsxs("div",{className:"pairing-page__error",children:[g.jsx("span",{className:"pairing-page__error-dot","aria-hidden":"true"}),l]}),de&&g.jsxs("div",{className:"pairing-page__form",children:[g.jsxs("label",{className:"pairing-page__field",children:[g.jsx("span",{className:"pairing-page__field-label",children:t("pairing.fieldLabel")}),g.jsx("input",{className:"pairing-page__input",type:"text",value:c,onChange:Z=>p(Z.target.value),onKeyDown:Z=>{Z.key==="Enter"&&M()},placeholder:t("pairing.placeholder"),autoCapitalize:"off",autoCorrect:"off",autoComplete:"username",disabled:h||B})]}),g.jsx("p",{className:"pairing-page__note",children:t("pairing.note")}),g.jsxs("button",{className:"pairing-page__submit",onClick:()=>{M()},disabled:h||B,children:[g.jsx("span",{className:"pairing-page__submit-dot","aria-hidden":"true"}),h?t("pairing.connecting"):B?t("pairing.retryIn",{seconds:W}):t("pairing.continue")]})]})]})},NI=["app:skills","app:memory","app:shell","app:settings","me","search"];function fu(e){return NI.includes(e)}const Bn=Px((e,t)=>({activeScene:"home",pageStack:["home"],sessionContext:null,push(n){e(i=>({activeScene:n,pageStack:[...i.pageStack,n]})),history.pushState({scene:n},"")},pop(){const{pageStack:n}=t();if(n.length<=1)return;const i=n[n.length-2];e(o=>({activeScene:i,pageStack:o.pageStack.slice(0,-1)})),history.back()},closeOverlay(){const{activeScene:n,pageStack:i}=t();if(!fu(n))return;const o=i.slice().reverse().find(u=>!fu(u))??"home",l=i.filter(u=>!fu(u));e({activeScene:o,pageStack:l.length?l:["home"]}),history.back()},openAgenticOs(){e({activeScene:"home",pageStack:["home"],sessionContext:null}),history.pushState({scene:"home"},"")},setSessionContext(n){e({sessionContext:n})},openChat(n){e(i=>({activeScene:"chat",pageStack:[...i.pageStack,"chat"],sessionContext:n})),history.pushState({scene:"chat"},"")}})),CI="modulepreload",II=function(e,t){return new URL(e,t).href},AE={},OI=function(t,n,i){let o=Promise.resolve();if(n&&n.length>0){let f=function(m){return Promise.all(m.map(h=>Promise.resolve(h).then(S=>({status:"fulfilled",value:S}),S=>({status:"rejected",reason:S}))))};const u=document.getElementsByTagName("link"),c=document.querySelector("meta[property=csp-nonce]"),p=c?.nonce||c?.getAttribute("nonce");o=f(n.map(m=>{if(m=II(m,i),m in AE)return;AE[m]=!0;const h=m.endsWith(".css"),S=h?'[rel="stylesheet"]':"";if(i)for(let v=u.length-1;v>=0;v--){const k=u[v];if(k.href===m&&(!h||k.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${m}"]${S}`))return;const E=document.createElement("link");if(E.rel=h?"stylesheet":CI,h||(E.as="script"),E.crossOrigin="",E.href=m,p&&E.setAttribute("nonce",p),document.head.appendChild(E),h)return new Promise((v,k)=>{E.addEventListener("load",v),E.addEventListener("error",()=>k(new Error(`Unable to preload CSS for ${m}`)))})}))}function l(u){const c=new Event("vite:preloadError",{cancelable:!0});if(c.payload=u,window.dispatchEvent(c),!c.defaultPrevented)throw u}return o.then(u=>{for(const c of u||[])c.status==="rejected"&&l(c.reason);return t().catch(l)})};function LI(e,t){const n={};return(e[e.length-1]===""?[...e,""]:e).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}const DI=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,MI=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,FI={};function RE(e,t){return(FI.jsx?MI:DI).test(e)}const PI=/[ \t\n\f\r]/g;function UI(e){return typeof e=="object"?e.type==="text"?NE(e.value):!1:NE(e)}function NE(e){return e.replace(PI,"")===""}class Ci{constructor(t,n,i){this.normal=n,this.property=t,i&&(this.space=i)}}Ci.prototype.normal={};Ci.prototype.property={};Ci.prototype.space=void 0;function Ux(e,t){const n={},i={};for(const o of e)Object.assign(n,o.property),Object.assign(i,o.normal);return new Ci(n,i,t)}function _m(e){return e.toLowerCase()}class rn{constructor(t,n){this.attribute=n,this.property=t}}rn.prototype.attribute="";rn.prototype.booleanish=!1;rn.prototype.boolean=!1;rn.prototype.commaOrSpaceSeparated=!1;rn.prototype.commaSeparated=!1;rn.prototype.defined=!1;rn.prototype.mustUseProperty=!1;rn.prototype.number=!1;rn.prototype.overloadedBoolean=!1;rn.prototype.property="";rn.prototype.spaceSeparated=!1;rn.prototype.space=void 0;let BI=0;const Re=Vr(),vt=Vr(),wm=Vr(),le=Vr(),Ye=Vr(),Ta=Vr(),cn=Vr();function Vr(){return 2**++BI}const Tm=Object.freeze(Object.defineProperty({__proto__:null,boolean:Re,booleanish:vt,commaOrSpaceSeparated:cn,commaSeparated:Ta,number:le,overloadedBoolean:wm,spaceSeparated:Ye},Symbol.toStringTag,{value:"Module"})),gu=Object.keys(Tm);class Wm extends rn{constructor(t,n,i,o){let l=-1;if(super(t,n),CE(this,"space",o),typeof i=="number")for(;++l4&&n.slice(0,4)==="data"&&GI.test(t)){if(t.charAt(4)==="-"){const l=t.slice(5).replace(IE,VI);i="data"+l.charAt(0).toUpperCase()+l.slice(1)}else{const l=t.slice(4);if(!IE.test(l)){let u=l.replace(qI,WI);u.charAt(0)!=="-"&&(u="-"+u),t="data"+u}}o=Wm}return new o(i,t)}function WI(e){return"-"+e.toLowerCase()}function VI(e){return e.charAt(1).toUpperCase()}const YI=Ux([Bx,jI,$x,qx,Gx],"html"),Vm=Ux([Bx,zI,$x,qx,Gx],"svg");function KI(e){return e.join(" ").trim()}var va={},mu,OE;function ZI(){if(OE)return mu;OE=1;var e=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,t=/\n/g,n=/^\s*/,i=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,o=/^:\s*/,l=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,u=/^[;\s]*/,c=/^\s+|\s+$/g,p=` +`,f="/",m="*",h="",S="comment",E="declaration";function v(T,N){if(typeof T!="string")throw new TypeError("First argument must be a string");if(!T)return[];N=N||{};var R=1,A=1;function O(Z){var H=Z.match(t);H&&(R+=H.length);var te=Z.lastIndexOf(p);A=~te?Z.length-te:A+Z.length}function L(){var Z={line:R,column:A};return function(H){return H.position=new w(Z),j(),H}}function w(Z){this.start=Z,this.end={line:R,column:A},this.source=N.source}w.prototype.content=T;function B(Z){var H=new Error(N.source+":"+R+":"+A+": "+Z);if(H.reason=Z,H.filename=N.source,H.line=R,H.column=A,H.source=T,!N.silent)throw H}function W(Z){var H=Z.exec(T);if(H){var te=H[0];return O(te),T=T.slice(te.length),H}}function j(){W(n)}function M(Z){var H;for(Z=Z||[];H=Y();)H!==!1&&Z.push(H);return Z}function Y(){var Z=L();if(!(f!=T.charAt(0)||m!=T.charAt(1))){for(var H=2;h!=T.charAt(H)&&(m!=T.charAt(H)||f!=T.charAt(H+1));)++H;if(H+=2,h===T.charAt(H-1))return B("End of comment missing");var te=T.slice(2,H-2);return A+=2,O(te),T=T.slice(H),A+=2,Z({type:S,comment:te})}}function J(){var Z=L(),H=W(i);if(H){if(Y(),!W(o))return B("property missing ':'");var te=W(l),ue=Z({type:E,property:k(H[0].replace(e,h)),value:te?k(te[0].replace(e,h)):h});return W(u),ue}}function de(){var Z=[];M(Z);for(var H;H=J();)H!==!1&&(Z.push(H),M(Z));return Z}return j(),de()}function k(T){return T?T.replace(c,h):h}return mu=v,mu}var LE;function XI(){if(LE)return va;LE=1;var e=va&&va.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(va,"__esModule",{value:!0}),va.default=n;const t=e(ZI());function n(i,o){let l=null;if(!i||typeof i!="string")return l;const u=(0,t.default)(i),c=typeof o=="function";return u.forEach(p=>{if(p.type!=="declaration")return;const{property:f,value:m}=p;c?o(f,m,p):m&&(l=l||{},l[f]=m)}),l}return va}var gi={},DE;function QI(){if(DE)return gi;DE=1,Object.defineProperty(gi,"__esModule",{value:!0}),gi.camelCase=void 0;var e=/^--[a-zA-Z0-9_-]+$/,t=/-([a-z])/g,n=/^[^-]+$/,i=/^-(webkit|moz|ms|o|khtml)-/,o=/^-(ms)-/,l=function(f){return!f||n.test(f)||e.test(f)},u=function(f,m){return m.toUpperCase()},c=function(f,m){return"".concat(m,"-")},p=function(f,m){return m===void 0&&(m={}),l(f)?f:(f=f.toLowerCase(),m.reactCompat?f=f.replace(o,c):f=f.replace(i,c),f.replace(t,u))};return gi.camelCase=p,gi}var mi,ME;function JI(){if(ME)return mi;ME=1;var e=mi&&mi.__importDefault||function(o){return o&&o.__esModule?o:{default:o}},t=e(XI()),n=QI();function i(o,l){var u={};return!o||typeof o!="string"||(0,t.default)(o,function(c,p){c&&p&&(u[(0,n.camelCase)(c,l)]=p)}),u}return i.default=i,mi=i,mi}var e1=JI();const t1=Ni(e1),Hx=Wx("end"),Ym=Wx("start");function Wx(e){return t;function t(n){const i=n&&n.position&&n.position[e]||{};if(typeof i.line=="number"&&i.line>0&&typeof i.column=="number"&&i.column>0)return{line:i.line,column:i.column,offset:typeof i.offset=="number"&&i.offset>-1?i.offset:void 0}}}function n1(e){const t=Ym(e),n=Hx(e);if(t&&n)return{start:t,end:n}}function Si(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?FE(e.position):"start"in e||"end"in e?FE(e):"line"in e||"column"in e?xm(e):""}function xm(e){return PE(e&&e.line)+":"+PE(e&&e.column)}function FE(e){return xm(e&&e.start)+"-"+xm(e&&e.end)}function PE(e){return e&&typeof e=="number"?e:1}class $t extends Error{constructor(t,n,i){super(),typeof n=="string"&&(i=n,n=void 0);let o="",l={},u=!1;if(n&&("line"in n&&"column"in n?l={place:n}:"start"in n&&"end"in n?l={place:n}:"type"in n?l={ancestors:[n],place:n.position}:l={...n}),typeof t=="string"?o=t:!l.cause&&t&&(u=!0,o=t.message,l.cause=t),!l.ruleId&&!l.source&&typeof i=="string"){const p=i.indexOf(":");p===-1?l.ruleId=i:(l.source=i.slice(0,p),l.ruleId=i.slice(p+1))}if(!l.place&&l.ancestors&&l.ancestors){const p=l.ancestors[l.ancestors.length-1];p&&(l.place=p.position)}const c=l.place&&"start"in l.place?l.place.start:l.place;this.ancestors=l.ancestors||void 0,this.cause=l.cause||void 0,this.column=c?c.column:void 0,this.fatal=void 0,this.file="",this.message=o,this.line=c?c.line:void 0,this.name=Si(l.place)||"1:1",this.place=l.place||void 0,this.reason=this.message,this.ruleId=l.ruleId||void 0,this.source=l.source||void 0,this.stack=u&&l.cause&&typeof l.cause.stack=="string"?l.cause.stack:"",this.actual=void 0,this.expected=void 0,this.note=void 0,this.url=void 0}}$t.prototype.file="";$t.prototype.name="";$t.prototype.reason="";$t.prototype.message="";$t.prototype.stack="";$t.prototype.column=void 0;$t.prototype.line=void 0;$t.prototype.ancestors=void 0;$t.prototype.cause=void 0;$t.prototype.fatal=void 0;$t.prototype.place=void 0;$t.prototype.ruleId=void 0;$t.prototype.source=void 0;const Km={}.hasOwnProperty,r1=new Map,a1=/[A-Z]/g,i1=new Set(["table","tbody","thead","tfoot","tr"]),o1=new Set(["td","th"]),Vx="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function s1(e,t){if(!t||t.Fragment===void 0)throw new TypeError("Expected `Fragment` in options");const n=t.filePath||void 0;let i;if(t.development){if(typeof t.jsxDEV!="function")throw new TypeError("Expected `jsxDEV` in options when `development: true`");i=m1(n,t.jsxDEV)}else{if(typeof t.jsx!="function")throw new TypeError("Expected `jsx` in production options");if(typeof t.jsxs!="function")throw new TypeError("Expected `jsxs` in production options");i=g1(n,t.jsx,t.jsxs)}const o={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:i,elementAttributeNameCase:t.elementAttributeNameCase||"react",evaluater:t.createEvaluater?t.createEvaluater():void 0,filePath:n,ignoreInvalidStyle:t.ignoreInvalidStyle||!1,passKeys:t.passKeys!==!1,passNode:t.passNode||!1,schema:t.space==="svg"?Vm:YI,stylePropertyNameCase:t.stylePropertyNameCase||"dom",tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},l=Yx(o,e,void 0);return l&&typeof l!="string"?l:o.create(e,o.Fragment,{children:l||void 0},void 0)}function Yx(e,t,n){if(t.type==="element")return l1(e,t,n);if(t.type==="mdxFlowExpression"||t.type==="mdxTextExpression")return u1(e,t);if(t.type==="mdxJsxFlowElement"||t.type==="mdxJsxTextElement")return d1(e,t,n);if(t.type==="mdxjsEsm")return c1(e,t);if(t.type==="root")return p1(e,t,n);if(t.type==="text")return f1(e,t)}function l1(e,t,n){const i=e.schema;let o=i;t.tagName.toLowerCase()==="svg"&&i.space==="html"&&(o=Vm,e.schema=o),e.ancestors.push(t);const l=Zx(e,t.tagName,!1),u=h1(e,t);let c=Xm(e,t);return i1.has(t.tagName)&&(c=c.filter(function(p){return typeof p=="string"?!UI(p):!0})),Kx(e,u,l,t),Zm(u,c),e.ancestors.pop(),e.schema=i,e.create(t,l,u,n)}function u1(e,t){if(t.data&&t.data.estree&&e.evaluater){const i=t.data.estree.body[0];return i.type,e.evaluater.evaluateExpression(i.expression)}Ti(e,t.position)}function c1(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);Ti(e,t.position)}function d1(e,t,n){const i=e.schema;let o=i;t.name==="svg"&&i.space==="html"&&(o=Vm,e.schema=o),e.ancestors.push(t);const l=t.name===null?e.Fragment:Zx(e,t.name,!0),u=b1(e,t),c=Xm(e,t);return Kx(e,u,l,t),Zm(u,c),e.ancestors.pop(),e.schema=i,e.create(t,l,u,n)}function p1(e,t,n){const i={};return Zm(i,Xm(e,t)),e.create(t,e.Fragment,i,n)}function f1(e,t){return t.value}function Kx(e,t,n,i){typeof n!="string"&&n!==e.Fragment&&e.passNode&&(t.node=i)}function Zm(e,t){if(t.length>0){const n=t.length>1?t:t[0];n&&(e.children=n)}}function g1(e,t,n){return i;function i(o,l,u,c){const f=Array.isArray(u.children)?n:t;return c?f(l,u,c):f(l,u)}}function m1(e,t){return n;function n(i,o,l,u){const c=Array.isArray(l.children),p=Ym(i);return t(o,l,u,c,{columnNumber:p?p.column-1:void 0,fileName:e,lineNumber:p?p.line:void 0},void 0)}}function h1(e,t){const n={};let i,o;for(o in t.properties)if(o!=="children"&&Km.call(t.properties,o)){const l=y1(e,o,t.properties[o]);if(l){const[u,c]=l;e.tableCellAlignToStyle&&u==="align"&&typeof c=="string"&&o1.has(t.tagName)?i=c:n[u]=c}}if(i){const l=n.style||(n.style={});l[e.stylePropertyNameCase==="css"?"text-align":"textAlign"]=i}return n}function b1(e,t){const n={};for(const i of t.attributes)if(i.type==="mdxJsxExpressionAttribute")if(i.data&&i.data.estree&&e.evaluater){const l=i.data.estree.body[0];l.type;const u=l.expression;u.type;const c=u.properties[0];c.type,Object.assign(n,e.evaluater.evaluateExpression(c.argument))}else Ti(e,t.position);else{const o=i.name;let l;if(i.value&&typeof i.value=="object")if(i.value.data&&i.value.data.estree&&e.evaluater){const c=i.value.data.estree.body[0];c.type,l=e.evaluater.evaluateExpression(c.expression)}else Ti(e,t.position);else l=i.value===null?!0:i.value;n[o]=l}return n}function Xm(e,t){const n=[];let i=-1;const o=e.passKeys?new Map:r1;for(;++io?0:o+t:t=t>o?o:t,n=n>0?n:0,i.length<1e4)u=Array.from(i),u.unshift(t,n),e.splice(...u);else for(n&&e.splice(t,n);l0?(dn(e,e.length,0,t),e):t}const jE={}.hasOwnProperty;function Qx(e){const t={};let n=-1;for(;++n13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||(n&65535)===65535||(n&65535)===65534||n>1114111?"�":String.fromCodePoint(n)}function On(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const Ht=xr(/[A-Za-z]/),zt=xr(/[\dA-Za-z]/),A1=xr(/[#-'*+\--9=?A-Z^-~]/);function ls(e){return e!==null&&(e<32||e===127)}const Am=xr(/\d/),R1=xr(/[\dA-Fa-f]/),N1=xr(/[!-/:-@[-`{-~]/);function xe(e){return e!==null&&e<-2}function He(e){return e!==null&&(e<0||e===32)}function Fe(e){return e===-2||e===-1||e===32}const bs=xr(new RegExp("\\p{P}|\\p{S}","u")),Wr=xr(/\s/);function xr(e){return t;function t(n){return n!==null&&n>-1&&e.test(String.fromCharCode(n))}}function Oa(e){const t=[];let n=-1,i=0,o=0;for(;++n55295&&l<57344){const c=e.charCodeAt(n+1);l<56320&&c>56319&&c<57344?(u=String.fromCharCode(l,c),o=1):u="�"}else u=String.fromCharCode(l);u&&(t.push(e.slice(i,n),encodeURIComponent(u)),i=n+o+1,u=""),o&&(n+=o,o=0)}return t.join("")+e.slice(i)}function Pe(e,t,n,i){const o=i?i-1:Number.POSITIVE_INFINITY;let l=0;return u;function u(p){return Fe(p)?(e.enter(n),c(p)):t(p)}function c(p){return Fe(p)&&l++u))return;const B=t.events.length;let W=B,j,M;for(;W--;)if(t.events[W][0]==="exit"&&t.events[W][1].type==="chunkFlow"){if(j){M=t.events[W][1].end;break}j=!0}for(N(i),w=B;wA;){const L=n[O];t.containerState=L[1],L[0].exit.call(t,e)}n.length=A}function R(){o.write([null]),l=void 0,o=void 0,t.containerState._closeFlow=void 0}}function D1(e,t,n){return Pe(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function Ra(e){if(e===null||He(e)||Wr(e))return 1;if(bs(e))return 2}function ys(e,t,n){const i=[];let o=-1;for(;++o1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1;const h={...e[i][1].end},S={...e[n][1].start};$E(h,-p),$E(S,p),u={type:p>1?"strongSequence":"emphasisSequence",start:h,end:{...e[i][1].end}},c={type:p>1?"strongSequence":"emphasisSequence",start:{...e[n][1].start},end:S},l={type:p>1?"strongText":"emphasisText",start:{...e[i][1].end},end:{...e[n][1].start}},o={type:p>1?"strong":"emphasis",start:{...u.start},end:{...c.end}},e[i][1].end={...u.start},e[n][1].start={...c.end},f=[],e[i][1].end.offset-e[i][1].start.offset&&(f=Sn(f,[["enter",e[i][1],t],["exit",e[i][1],t]])),f=Sn(f,[["enter",o,t],["enter",u,t],["exit",u,t],["enter",l,t]]),f=Sn(f,ys(t.parser.constructs.insideSpan.null,e.slice(i+1,n),t)),f=Sn(f,[["exit",l,t],["enter",c,t],["exit",c,t],["exit",o,t]]),e[n][1].end.offset-e[n][1].start.offset?(m=2,f=Sn(f,[["enter",e[n][1],t],["exit",e[n][1],t]])):m=0,dn(e,i-1,n-i+3,f),n=i+f.length-m-2;break}}for(n=-1;++n0&&Fe(w)?Pe(e,R,"linePrefix",l+1)(w):R(w)}function R(w){return w===null||xe(w)?e.check(qE,k,O)(w):(e.enter("codeFlowValue"),A(w))}function A(w){return w===null||xe(w)?(e.exit("codeFlowValue"),R(w)):(e.consume(w),A)}function O(w){return e.exit("codeFenced"),t(w)}function L(w,B,W){let j=0;return M;function M(H){return w.enter("lineEnding"),w.consume(H),w.exit("lineEnding"),Y}function Y(H){return w.enter("codeFencedFence"),Fe(H)?Pe(w,J,"linePrefix",i.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(H):J(H)}function J(H){return H===c?(w.enter("codeFencedFenceSequence"),de(H)):W(H)}function de(H){return H===c?(j++,w.consume(H),de):j>=u?(w.exit("codeFencedFenceSequence"),Fe(H)?Pe(w,Z,"whitespace")(H):Z(H)):W(H)}function Z(H){return H===null||xe(H)?(w.exit("codeFencedFence"),B(H)):W(H)}}}function W1(e,t,n){const i=this;return o;function o(u){return u===null?n(u):(e.enter("lineEnding"),e.consume(u),e.exit("lineEnding"),l)}function l(u){return i.parser.lazy[i.now().line]?n(u):t(u)}}const bu={name:"codeIndented",tokenize:Y1},V1={partial:!0,tokenize:K1};function Y1(e,t,n){const i=this;return o;function o(f){return e.enter("codeIndented"),Pe(e,l,"linePrefix",5)(f)}function l(f){const m=i.events[i.events.length-1];return m&&m[1].type==="linePrefix"&&m[2].sliceSerialize(m[1],!0).length>=4?u(f):n(f)}function u(f){return f===null?p(f):xe(f)?e.attempt(V1,u,p)(f):(e.enter("codeFlowValue"),c(f))}function c(f){return f===null||xe(f)?(e.exit("codeFlowValue"),u(f)):(e.consume(f),c)}function p(f){return e.exit("codeIndented"),t(f)}}function K1(e,t,n){const i=this;return o;function o(u){return i.parser.lazy[i.now().line]?n(u):xe(u)?(e.enter("lineEnding"),e.consume(u),e.exit("lineEnding"),o):Pe(e,l,"linePrefix",5)(u)}function l(u){const c=i.events[i.events.length-1];return c&&c[1].type==="linePrefix"&&c[2].sliceSerialize(c[1],!0).length>=4?t(u):xe(u)?o(u):n(u)}}const Z1={name:"codeText",previous:Q1,resolve:X1,tokenize:J1};function X1(e){let t=e.length-4,n=3,i,o;if((e[n][1].type==="lineEnding"||e[n][1].type==="space")&&(e[t][1].type==="lineEnding"||e[t][1].type==="space")){for(i=n;++i=this.left.length+this.right.length)throw new RangeError("Cannot access index `"+t+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return tthis.left.length?this.right.slice(this.right.length-i+this.left.length,this.right.length-t+this.left.length).reverse():this.left.slice(t).concat(this.right.slice(this.right.length-i+this.left.length).reverse())}splice(t,n,i){const o=n||0;this.setCursor(Math.trunc(t));const l=this.right.splice(this.right.length-o,Number.POSITIVE_INFINITY);return i&&hi(this.left,i),l.reverse()}pop(){return this.setCursor(Number.POSITIVE_INFINITY),this.left.pop()}push(t){this.setCursor(Number.POSITIVE_INFINITY),this.left.push(t)}pushMany(t){this.setCursor(Number.POSITIVE_INFINITY),hi(this.left,t)}unshift(t){this.setCursor(0),this.right.push(t)}unshiftMany(t){this.setCursor(0),hi(this.right,t.reverse())}setCursor(t){if(!(t===this.left.length||t>this.left.length&&this.right.length===0||t<0&&this.left.length===0))if(t=4?t(u):e.interrupt(i.parser.constructs.flow,n,t)(u)}}function aA(e,t,n,i,o,l,u,c,p){const f=p||Number.POSITIVE_INFINITY;let m=0;return h;function h(N){return N===60?(e.enter(i),e.enter(o),e.enter(l),e.consume(N),e.exit(l),S):N===null||N===32||N===41||ls(N)?n(N):(e.enter(i),e.enter(u),e.enter(c),e.enter("chunkString",{contentType:"string"}),k(N))}function S(N){return N===62?(e.enter(l),e.consume(N),e.exit(l),e.exit(o),e.exit(i),t):(e.enter(c),e.enter("chunkString",{contentType:"string"}),E(N))}function E(N){return N===62?(e.exit("chunkString"),e.exit(c),S(N)):N===null||N===60||xe(N)?n(N):(e.consume(N),N===92?v:E)}function v(N){return N===60||N===62||N===92?(e.consume(N),E):E(N)}function k(N){return!m&&(N===null||N===41||He(N))?(e.exit("chunkString"),e.exit(c),e.exit(u),e.exit(i),t(N)):m999||E===null||E===91||E===93&&!p||E===94&&!c&&"_hiddenFootnoteSupport"in u.parser.constructs?n(E):E===93?(e.exit(l),e.enter(o),e.consume(E),e.exit(o),e.exit(i),t):xe(E)?(e.enter("lineEnding"),e.consume(E),e.exit("lineEnding"),m):(e.enter("chunkString",{contentType:"string"}),h(E))}function h(E){return E===null||E===91||E===93||xe(E)||c++>999?(e.exit("chunkString"),m(E)):(e.consume(E),p||(p=!Fe(E)),E===92?S:h)}function S(E){return E===91||E===92||E===93?(e.consume(E),c++,h):h(E)}}function oA(e,t,n,i,o,l){let u;return c;function c(S){return S===34||S===39||S===40?(e.enter(i),e.enter(o),e.consume(S),e.exit(o),u=S===40?41:S,p):n(S)}function p(S){return S===u?(e.enter(o),e.consume(S),e.exit(o),e.exit(i),t):(e.enter(l),f(S))}function f(S){return S===u?(e.exit(l),p(u)):S===null?n(S):xe(S)?(e.enter("lineEnding"),e.consume(S),e.exit("lineEnding"),Pe(e,f,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),m(S))}function m(S){return S===u||S===null||xe(S)?(e.exit("chunkString"),f(S)):(e.consume(S),S===92?h:m)}function h(S){return S===u||S===92?(e.consume(S),m):m(S)}}function vi(e,t){let n;return i;function i(o){return xe(o)?(e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),n=!0,i):Fe(o)?Pe(e,i,n?"linePrefix":"lineSuffix")(o):t(o)}}const s0={name:"definition",tokenize:u0},l0={partial:!0,tokenize:c0};function u0(e,t,n){const i=this;let o;return l;function l(E){return e.enter("definition"),u(E)}function u(E){return iA.call(i,e,c,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(E)}function c(E){return o=On(i.sliceSerialize(i.events[i.events.length-1][1]).slice(1,-1)),E===58?(e.enter("definitionMarker"),e.consume(E),e.exit("definitionMarker"),p):n(E)}function p(E){return He(E)?vi(e,f)(E):f(E)}function f(E){return aA(e,m,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(E)}function m(E){return e.attempt(l0,h,h)(E)}function h(E){return Fe(E)?Pe(e,S,"whitespace")(E):S(E)}function S(E){return E===null||xe(E)?(e.exit("definition"),i.parser.defined.push(o),t(E)):n(E)}}function c0(e,t,n){return i;function i(c){return He(c)?vi(e,o)(c):n(c)}function o(c){return oA(e,l,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(c)}function l(c){return Fe(c)?Pe(e,u,"whitespace")(c):u(c)}function u(c){return c===null||xe(c)?t(c):n(c)}}const d0={name:"hardBreakEscape",tokenize:p0};function p0(e,t,n){return i;function i(l){return e.enter("hardBreakEscape"),e.consume(l),o}function o(l){return xe(l)?(e.exit("hardBreakEscape"),t(l)):n(l)}}const f0={name:"headingAtx",resolve:g0,tokenize:m0};function g0(e,t){let n=e.length-2,i=3,o,l;return e[i][1].type==="whitespace"&&(i+=2),n-2>i&&e[n][1].type==="whitespace"&&(n-=2),e[n][1].type==="atxHeadingSequence"&&(i===n-1||n-4>i&&e[n-2][1].type==="whitespace")&&(n-=i+1===n?2:4),n>i&&(o={type:"atxHeadingText",start:e[i][1].start,end:e[n][1].end},l={type:"chunkText",start:e[i][1].start,end:e[n][1].end,contentType:"text"},dn(e,i,n-i+1,[["enter",o,t],["enter",l,t],["exit",l,t],["exit",o,t]])),e}function m0(e,t,n){let i=0;return o;function o(m){return e.enter("atxHeading"),l(m)}function l(m){return e.enter("atxHeadingSequence"),u(m)}function u(m){return m===35&&i++<6?(e.consume(m),u):m===null||He(m)?(e.exit("atxHeadingSequence"),c(m)):n(m)}function c(m){return m===35?(e.enter("atxHeadingSequence"),p(m)):m===null||xe(m)?(e.exit("atxHeading"),t(m)):Fe(m)?Pe(e,c,"whitespace")(m):(e.enter("atxHeadingText"),f(m))}function p(m){return m===35?(e.consume(m),p):(e.exit("atxHeadingSequence"),c(m))}function f(m){return m===null||m===35||He(m)?(e.exit("atxHeadingText"),c(m)):(e.consume(m),f)}}const h0=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],HE=["pre","script","style","textarea"],b0={concrete:!0,name:"htmlFlow",resolveTo:S0,tokenize:v0},y0={partial:!0,tokenize:_0},E0={partial:!0,tokenize:k0};function S0(e){let t=e.length;for(;t--&&!(e[t][0]==="enter"&&e[t][1].type==="htmlFlow"););return t>1&&e[t-2][1].type==="linePrefix"&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e}function v0(e,t,n){const i=this;let o,l,u,c,p;return f;function f(C){return m(C)}function m(C){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(C),h}function h(C){return C===33?(e.consume(C),S):C===47?(e.consume(C),l=!0,k):C===63?(e.consume(C),o=3,i.interrupt?t:x):Ht(C)?(e.consume(C),u=String.fromCharCode(C),T):n(C)}function S(C){return C===45?(e.consume(C),o=2,E):C===91?(e.consume(C),o=5,c=0,v):Ht(C)?(e.consume(C),o=4,i.interrupt?t:x):n(C)}function E(C){return C===45?(e.consume(C),i.interrupt?t:x):n(C)}function v(C){const ae="CDATA[";return C===ae.charCodeAt(c++)?(e.consume(C),c===ae.length?i.interrupt?t:J:v):n(C)}function k(C){return Ht(C)?(e.consume(C),u=String.fromCharCode(C),T):n(C)}function T(C){if(C===null||C===47||C===62||He(C)){const ae=C===47,pe=u.toLowerCase();return!ae&&!l&&HE.includes(pe)?(o=1,i.interrupt?t(C):J(C)):h0.includes(u.toLowerCase())?(o=6,ae?(e.consume(C),N):i.interrupt?t(C):J(C)):(o=7,i.interrupt&&!i.parser.lazy[i.now().line]?n(C):l?R(C):A(C))}return C===45||zt(C)?(e.consume(C),u+=String.fromCharCode(C),T):n(C)}function N(C){return C===62?(e.consume(C),i.interrupt?t:J):n(C)}function R(C){return Fe(C)?(e.consume(C),R):M(C)}function A(C){return C===47?(e.consume(C),M):C===58||C===95||Ht(C)?(e.consume(C),O):Fe(C)?(e.consume(C),A):M(C)}function O(C){return C===45||C===46||C===58||C===95||zt(C)?(e.consume(C),O):L(C)}function L(C){return C===61?(e.consume(C),w):Fe(C)?(e.consume(C),L):A(C)}function w(C){return C===null||C===60||C===61||C===62||C===96?n(C):C===34||C===39?(e.consume(C),p=C,B):Fe(C)?(e.consume(C),w):W(C)}function B(C){return C===p?(e.consume(C),p=null,j):C===null||xe(C)?n(C):(e.consume(C),B)}function W(C){return C===null||C===34||C===39||C===47||C===60||C===61||C===62||C===96||He(C)?L(C):(e.consume(C),W)}function j(C){return C===47||C===62||Fe(C)?A(C):n(C)}function M(C){return C===62?(e.consume(C),Y):n(C)}function Y(C){return C===null||xe(C)?J(C):Fe(C)?(e.consume(C),Y):n(C)}function J(C){return C===45&&o===2?(e.consume(C),te):C===60&&o===1?(e.consume(C),ue):C===62&&o===4?(e.consume(C),D):C===63&&o===3?(e.consume(C),x):C===93&&o===5?(e.consume(C),Q):xe(C)&&(o===6||o===7)?(e.exit("htmlFlowData"),e.check(y0,$,de)(C)):C===null||xe(C)?(e.exit("htmlFlowData"),de(C)):(e.consume(C),J)}function de(C){return e.check(E0,Z,$)(C)}function Z(C){return e.enter("lineEnding"),e.consume(C),e.exit("lineEnding"),H}function H(C){return C===null||xe(C)?de(C):(e.enter("htmlFlowData"),J(C))}function te(C){return C===45?(e.consume(C),x):J(C)}function ue(C){return C===47?(e.consume(C),u="",q):J(C)}function q(C){if(C===62){const ae=u.toLowerCase();return HE.includes(ae)?(e.consume(C),D):J(C)}return Ht(C)&&u.length<8?(e.consume(C),u+=String.fromCharCode(C),q):J(C)}function Q(C){return C===93?(e.consume(C),x):J(C)}function x(C){return C===62?(e.consume(C),D):C===45&&o===2?(e.consume(C),x):J(C)}function D(C){return C===null||xe(C)?(e.exit("htmlFlowData"),$(C)):(e.consume(C),D)}function $(C){return e.exit("htmlFlow"),t(C)}}function k0(e,t,n){const i=this;return o;function o(u){return xe(u)?(e.enter("lineEnding"),e.consume(u),e.exit("lineEnding"),l):n(u)}function l(u){return i.parser.lazy[i.now().line]?n(u):t(u)}}function _0(e,t,n){return i;function i(o){return e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),e.attempt(Ii,t,n)}}const w0={name:"htmlText",tokenize:T0};function T0(e,t,n){const i=this;let o,l,u;return c;function c(x){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(x),p}function p(x){return x===33?(e.consume(x),f):x===47?(e.consume(x),L):x===63?(e.consume(x),A):Ht(x)?(e.consume(x),W):n(x)}function f(x){return x===45?(e.consume(x),m):x===91?(e.consume(x),l=0,v):Ht(x)?(e.consume(x),R):n(x)}function m(x){return x===45?(e.consume(x),E):n(x)}function h(x){return x===null?n(x):x===45?(e.consume(x),S):xe(x)?(u=h,ue(x)):(e.consume(x),h)}function S(x){return x===45?(e.consume(x),E):h(x)}function E(x){return x===62?te(x):x===45?S(x):h(x)}function v(x){const D="CDATA[";return x===D.charCodeAt(l++)?(e.consume(x),l===D.length?k:v):n(x)}function k(x){return x===null?n(x):x===93?(e.consume(x),T):xe(x)?(u=k,ue(x)):(e.consume(x),k)}function T(x){return x===93?(e.consume(x),N):k(x)}function N(x){return x===62?te(x):x===93?(e.consume(x),N):k(x)}function R(x){return x===null||x===62?te(x):xe(x)?(u=R,ue(x)):(e.consume(x),R)}function A(x){return x===null?n(x):x===63?(e.consume(x),O):xe(x)?(u=A,ue(x)):(e.consume(x),A)}function O(x){return x===62?te(x):A(x)}function L(x){return Ht(x)?(e.consume(x),w):n(x)}function w(x){return x===45||zt(x)?(e.consume(x),w):B(x)}function B(x){return xe(x)?(u=B,ue(x)):Fe(x)?(e.consume(x),B):te(x)}function W(x){return x===45||zt(x)?(e.consume(x),W):x===47||x===62||He(x)?j(x):n(x)}function j(x){return x===47?(e.consume(x),te):x===58||x===95||Ht(x)?(e.consume(x),M):xe(x)?(u=j,ue(x)):Fe(x)?(e.consume(x),j):te(x)}function M(x){return x===45||x===46||x===58||x===95||zt(x)?(e.consume(x),M):Y(x)}function Y(x){return x===61?(e.consume(x),J):xe(x)?(u=Y,ue(x)):Fe(x)?(e.consume(x),Y):j(x)}function J(x){return x===null||x===60||x===61||x===62||x===96?n(x):x===34||x===39?(e.consume(x),o=x,de):xe(x)?(u=J,ue(x)):Fe(x)?(e.consume(x),J):(e.consume(x),Z)}function de(x){return x===o?(e.consume(x),o=void 0,H):x===null?n(x):xe(x)?(u=de,ue(x)):(e.consume(x),de)}function Z(x){return x===null||x===34||x===39||x===60||x===61||x===96?n(x):x===47||x===62||He(x)?j(x):(e.consume(x),Z)}function H(x){return x===47||x===62||He(x)?j(x):n(x)}function te(x){return x===62?(e.consume(x),e.exit("htmlTextData"),e.exit("htmlText"),t):n(x)}function ue(x){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(x),e.exit("lineEnding"),q}function q(x){return Fe(x)?Pe(e,Q,"linePrefix",i.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(x):Q(x)}function Q(x){return e.enter("htmlTextData"),u(x)}}const eh={name:"labelEnd",resolveAll:N0,resolveTo:C0,tokenize:I0},x0={tokenize:O0},A0={tokenize:L0},R0={tokenize:D0};function N0(e){let t=-1;const n=[];for(;++t=3&&(f===null||xe(f))?(e.exit("thematicBreak"),t(f)):n(f)}function p(f){return f===o?(e.consume(f),i++,p):(e.exit("thematicBreakSequence"),Fe(f)?Pe(e,c,"whitespace")(f):c(f))}}const tn={continuation:{tokenize:G0},exit:W0,name:"list",tokenize:q0},z0={partial:!0,tokenize:V0},$0={partial:!0,tokenize:H0};function q0(e,t,n){const i=this,o=i.events[i.events.length-1];let l=o&&o[1].type==="linePrefix"?o[2].sliceSerialize(o[1],!0).length:0,u=0;return c;function c(E){const v=i.containerState.type||(E===42||E===43||E===45?"listUnordered":"listOrdered");if(v==="listUnordered"?!i.containerState.marker||E===i.containerState.marker:Am(E)){if(i.containerState.type||(i.containerState.type=v,e.enter(v,{_container:!0})),v==="listUnordered")return e.enter("listItemPrefix"),E===42||E===45?e.check(ns,n,f)(E):f(E);if(!i.interrupt||E===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),p(E)}return n(E)}function p(E){return Am(E)&&++u<10?(e.consume(E),p):(!i.interrupt||u<2)&&(i.containerState.marker?E===i.containerState.marker:E===41||E===46)?(e.exit("listItemValue"),f(E)):n(E)}function f(E){return e.enter("listItemMarker"),e.consume(E),e.exit("listItemMarker"),i.containerState.marker=i.containerState.marker||E,e.check(Ii,i.interrupt?n:m,e.attempt(z0,S,h))}function m(E){return i.containerState.initialBlankLine=!0,l++,S(E)}function h(E){return Fe(E)?(e.enter("listItemPrefixWhitespace"),e.consume(E),e.exit("listItemPrefixWhitespace"),S):n(E)}function S(E){return i.containerState.size=l+i.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(E)}}function G0(e,t,n){const i=this;return i.containerState._closeFlow=void 0,e.check(Ii,o,l);function o(c){return i.containerState.furtherBlankLines=i.containerState.furtherBlankLines||i.containerState.initialBlankLine,Pe(e,t,"listItemIndent",i.containerState.size+1)(c)}function l(c){return i.containerState.furtherBlankLines||!Fe(c)?(i.containerState.furtherBlankLines=void 0,i.containerState.initialBlankLine=void 0,u(c)):(i.containerState.furtherBlankLines=void 0,i.containerState.initialBlankLine=void 0,e.attempt($0,t,u)(c))}function u(c){return i.containerState._closeFlow=!0,i.interrupt=void 0,Pe(e,e.attempt(tn,t,n),"linePrefix",i.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(c)}}function H0(e,t,n){const i=this;return Pe(e,o,"listItemIndent",i.containerState.size+1);function o(l){const u=i.events[i.events.length-1];return u&&u[1].type==="listItemIndent"&&u[2].sliceSerialize(u[1],!0).length===i.containerState.size?t(l):n(l)}}function W0(e){e.exit(this.containerState.type)}function V0(e,t,n){const i=this;return Pe(e,o,"listItemPrefixWhitespace",i.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function o(l){const u=i.events[i.events.length-1];return!Fe(l)&&u&&u[1].type==="listItemPrefixWhitespace"?t(l):n(l)}}const WE={name:"setextUnderline",resolveTo:Y0,tokenize:K0};function Y0(e,t){let n=e.length,i,o,l;for(;n--;)if(e[n][0]==="enter"){if(e[n][1].type==="content"){i=n;break}e[n][1].type==="paragraph"&&(o=n)}else e[n][1].type==="content"&&e.splice(n,1),!l&&e[n][1].type==="definition"&&(l=n);const u={type:"setextHeading",start:{...e[i][1].start},end:{...e[e.length-1][1].end}};return e[o][1].type="setextHeadingText",l?(e.splice(o,0,["enter",u,t]),e.splice(l+1,0,["exit",e[i][1],t]),e[i][1].end={...e[l][1].end}):e[i][1]=u,e.push(["exit",u,t]),e}function K0(e,t,n){const i=this;let o;return l;function l(f){let m=i.events.length,h;for(;m--;)if(i.events[m][1].type!=="lineEnding"&&i.events[m][1].type!=="linePrefix"&&i.events[m][1].type!=="content"){h=i.events[m][1].type==="paragraph";break}return!i.parser.lazy[i.now().line]&&(i.interrupt||h)?(e.enter("setextHeadingLine"),o=f,u(f)):n(f)}function u(f){return e.enter("setextHeadingLineSequence"),c(f)}function c(f){return f===o?(e.consume(f),c):(e.exit("setextHeadingLineSequence"),Fe(f)?Pe(e,p,"lineSuffix")(f):p(f))}function p(f){return f===null||xe(f)?(e.exit("setextHeadingLine"),t(f)):n(f)}}const Z0={tokenize:X0};function X0(e){const t=this,n=e.attempt(Ii,i,e.attempt(this.parser.constructs.flowInitial,o,Pe(e,e.attempt(this.parser.constructs.flow,o,e.attempt(n0,o)),"linePrefix")));return n;function i(l){if(l===null){e.consume(l);return}return e.enter("lineEndingBlank"),e.consume(l),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n}function o(l){if(l===null){e.consume(l);return}return e.enter("lineEnding"),e.consume(l),e.exit("lineEnding"),t.currentConstruct=void 0,n}}const Q0={resolveAll:lA()},J0=sA("string"),eO=sA("text");function sA(e){return{resolveAll:lA(e==="text"?tO:void 0),tokenize:t};function t(n){const i=this,o=this.parser.constructs[e],l=n.attempt(o,u,c);return u;function u(m){return f(m)?l(m):c(m)}function c(m){if(m===null){n.consume(m);return}return n.enter("data"),n.consume(m),p}function p(m){return f(m)?(n.exit("data"),l(m)):(n.consume(m),p)}function f(m){if(m===null)return!0;const h=o[m];let S=-1;if(h)for(;++S-1){const c=u[0];typeof c=="string"?u[0]=c.slice(i):u.shift()}l>0&&u.push(e[o].slice(0,l))}return u}function gO(e,t){let n=-1;const i=[];let o;for(;++n0){const We=ge.tokenStack[ge.tokenStack.length-1];(We[1]||YE).call(ge,void 0,We[0])}for(ee.position={start:wr(K.length>0?K[0][1].start:{line:1,column:1,offset:0}),end:wr(K.length>0?K[K.length-2][1].end:{line:1,column:1,offset:0})},Ne=-1;++Ne0&&(i.className=["language-"+o[0]]);let l={type:"element",tagName:"code",properties:i,children:[{type:"text",value:n}]};return t.meta&&(l.data={meta:t.meta}),e.patch(t,l),l=e.applyData(t,l),l={type:"element",tagName:"pre",properties:{},children:[l]},e.patch(t,l),l}function AO(e,t){const n={type:"element",tagName:"del",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function RO(e,t){const n={type:"element",tagName:"em",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function NO(e,t){const n=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",i=String(t.identifier).toUpperCase(),o=Oa(i.toLowerCase()),l=e.footnoteOrder.indexOf(i);let u,c=e.footnoteCounts.get(i);c===void 0?(c=0,e.footnoteOrder.push(i),u=e.footnoteOrder.length):u=l+1,c+=1,e.footnoteCounts.set(i,c);const p={type:"element",tagName:"a",properties:{href:"#"+n+"fn-"+o,id:n+"fnref-"+o+(c>1?"-"+c:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(u)}]};e.patch(t,p);const f={type:"element",tagName:"sup",properties:{},children:[p]};return e.patch(t,f),e.applyData(t,f)}function CO(e,t){const n={type:"element",tagName:"h"+t.depth,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function IO(e,t){if(e.options.allowDangerousHtml){const n={type:"raw",value:t.value};return e.patch(t,n),e.applyData(t,n)}}function dA(e,t){const n=t.referenceType;let i="]";if(n==="collapsed"?i+="[]":n==="full"&&(i+="["+(t.label||t.identifier)+"]"),t.type==="imageReference")return[{type:"text",value:"!["+t.alt+i}];const o=e.all(t),l=o[0];l&&l.type==="text"?l.value="["+l.value:o.unshift({type:"text",value:"["});const u=o[o.length-1];return u&&u.type==="text"?u.value+=i:o.push({type:"text",value:i}),o}function OO(e,t){const n=String(t.identifier).toUpperCase(),i=e.definitionById.get(n);if(!i)return dA(e,t);const o={src:Oa(i.url||""),alt:t.alt};i.title!==null&&i.title!==void 0&&(o.title=i.title);const l={type:"element",tagName:"img",properties:o,children:[]};return e.patch(t,l),e.applyData(t,l)}function LO(e,t){const n={src:Oa(t.url)};t.alt!==null&&t.alt!==void 0&&(n.alt=t.alt),t.title!==null&&t.title!==void 0&&(n.title=t.title);const i={type:"element",tagName:"img",properties:n,children:[]};return e.patch(t,i),e.applyData(t,i)}function DO(e,t){const n={type:"text",value:t.value.replace(/\r?\n|\r/g," ")};e.patch(t,n);const i={type:"element",tagName:"code",properties:{},children:[n]};return e.patch(t,i),e.applyData(t,i)}function MO(e,t){const n=String(t.identifier).toUpperCase(),i=e.definitionById.get(n);if(!i)return dA(e,t);const o={href:Oa(i.url||"")};i.title!==null&&i.title!==void 0&&(o.title=i.title);const l={type:"element",tagName:"a",properties:o,children:e.all(t)};return e.patch(t,l),e.applyData(t,l)}function FO(e,t){const n={href:Oa(t.url)};t.title!==null&&t.title!==void 0&&(n.title=t.title);const i={type:"element",tagName:"a",properties:n,children:e.all(t)};return e.patch(t,i),e.applyData(t,i)}function PO(e,t,n){const i=e.all(t),o=n?UO(n):pA(t),l={},u=[];if(typeof t.checked=="boolean"){const m=i[0];let h;m&&m.type==="element"&&m.tagName==="p"?h=m:(h={type:"element",tagName:"p",properties:{},children:[]},i.unshift(h)),h.children.length>0&&h.children.unshift({type:"text",value:" "}),h.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:t.checked,disabled:!0},children:[]}),l.className=["task-list-item"]}let c=-1;for(;++c0){const We=ge.tokenStack[ge.tokenStack.length-1];(We[1]||YE).call(ge,void 0,We[0])}for(ee.position={start:wr(K.length>0?K[0][1].start:{line:1,column:1,offset:0}),end:wr(K.length>0?K[K.length-2][1].end:{line:1,column:1,offset:0})},Ne=-1;++Ne0&&(i.className=["language-"+o[0]]);let l={type:"element",tagName:"code",properties:i,children:[{type:"text",value:n}]};return t.meta&&(l.data={meta:t.meta}),e.patch(t,l),l=e.applyData(t,l),l={type:"element",tagName:"pre",properties:{},children:[l]},e.patch(t,l),l}function RO(e,t){const n={type:"element",tagName:"del",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function NO(e,t){const n={type:"element",tagName:"em",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function CO(e,t){const n=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",i=String(t.identifier).toUpperCase(),o=Oa(i.toLowerCase()),l=e.footnoteOrder.indexOf(i);let u,c=e.footnoteCounts.get(i);c===void 0?(c=0,e.footnoteOrder.push(i),u=e.footnoteOrder.length):u=l+1,c+=1,e.footnoteCounts.set(i,c);const p={type:"element",tagName:"a",properties:{href:"#"+n+"fn-"+o,id:n+"fnref-"+o+(c>1?"-"+c:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(u)}]};e.patch(t,p);const f={type:"element",tagName:"sup",properties:{},children:[p]};return e.patch(t,f),e.applyData(t,f)}function IO(e,t){const n={type:"element",tagName:"h"+t.depth,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function OO(e,t){if(e.options.allowDangerousHtml){const n={type:"raw",value:t.value};return e.patch(t,n),e.applyData(t,n)}}function dA(e,t){const n=t.referenceType;let i="]";if(n==="collapsed"?i+="[]":n==="full"&&(i+="["+(t.label||t.identifier)+"]"),t.type==="imageReference")return[{type:"text",value:"!["+t.alt+i}];const o=e.all(t),l=o[0];l&&l.type==="text"?l.value="["+l.value:o.unshift({type:"text",value:"["});const u=o[o.length-1];return u&&u.type==="text"?u.value+=i:o.push({type:"text",value:i}),o}function LO(e,t){const n=String(t.identifier).toUpperCase(),i=e.definitionById.get(n);if(!i)return dA(e,t);const o={src:Oa(i.url||""),alt:t.alt};i.title!==null&&i.title!==void 0&&(o.title=i.title);const l={type:"element",tagName:"img",properties:o,children:[]};return e.patch(t,l),e.applyData(t,l)}function DO(e,t){const n={src:Oa(t.url)};t.alt!==null&&t.alt!==void 0&&(n.alt=t.alt),t.title!==null&&t.title!==void 0&&(n.title=t.title);const i={type:"element",tagName:"img",properties:n,children:[]};return e.patch(t,i),e.applyData(t,i)}function MO(e,t){const n={type:"text",value:t.value.replace(/\r?\n|\r/g," ")};e.patch(t,n);const i={type:"element",tagName:"code",properties:{},children:[n]};return e.patch(t,i),e.applyData(t,i)}function FO(e,t){const n=String(t.identifier).toUpperCase(),i=e.definitionById.get(n);if(!i)return dA(e,t);const o={href:Oa(i.url||"")};i.title!==null&&i.title!==void 0&&(o.title=i.title);const l={type:"element",tagName:"a",properties:o,children:e.all(t)};return e.patch(t,l),e.applyData(t,l)}function PO(e,t){const n={href:Oa(t.url)};t.title!==null&&t.title!==void 0&&(n.title=t.title);const i={type:"element",tagName:"a",properties:n,children:e.all(t)};return e.patch(t,i),e.applyData(t,i)}function UO(e,t,n){const i=e.all(t),o=n?BO(n):pA(t),l={},u=[];if(typeof t.checked=="boolean"){const m=i[0];let h;m&&m.type==="element"&&m.tagName==="p"?h=m:(h={type:"element",tagName:"p",properties:{},children:[]},i.unshift(h)),h.children.length>0&&h.children.unshift({type:"text",value:" "}),h.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:t.checked,disabled:!0},children:[]}),l.className=["task-list-item"]}let c=-1;for(;++c1}function BO(e,t){const n={},i=e.all(t);let o=-1;for(typeof t.start=="number"&&t.start!==1&&(n.start=t.start);++o0){const u={type:"element",tagName:"tbody",properties:{},children:e.wrap(n,!0)},c=Ym(t.children[1]),p=Hx(t.children[t.children.length-1]);c&&p&&(u.position={start:c,end:p}),o.push(u)}const l={type:"element",tagName:"table",properties:{},children:e.wrap(o,!0)};return e.patch(t,l),e.applyData(t,l)}function GO(e,t,n){const i=n?n.children:void 0,l=(i?i.indexOf(t):1)===0?"th":"td",u=n&&n.type==="table"?n.align:void 0,c=u?u.length:t.children.length;let p=-1;const f=[];for(;++p0,!0),i[0]),o=i.index+i[0].length,i=n.exec(t);return l.push(XE(t.slice(o),o>0,!1)),l.join("")}function XE(e,t,n){let i=0,o=e.length;if(t){let l=e.codePointAt(i);for(;l===KE||l===ZE;)i++,l=e.codePointAt(i)}if(n){let l=e.codePointAt(o-1);for(;l===KE||l===ZE;)o--,l=e.codePointAt(o-1)}return o>i?e.slice(i,o):""}function VO(e,t){const n={type:"text",value:WO(String(t.value))};return e.patch(t,n),e.applyData(t,n)}function YO(e,t){const n={type:"element",tagName:"hr",properties:{},children:[]};return e.patch(t,n),e.applyData(t,n)}const KO={blockquote:wO,break:TO,code:xO,delete:AO,emphasis:RO,footnoteReference:NO,heading:CO,html:IO,imageReference:OO,image:LO,inlineCode:DO,linkReference:MO,link:FO,listItem:PO,list:BO,paragraph:jO,root:zO,strong:$O,table:qO,tableCell:HO,tableRow:GO,text:VO,thematicBreak:YO,toml:Wo,yaml:Wo,definition:Wo,footnoteDefinition:Wo};function Wo(){}const fA=-1,Es=0,ki=1,us=2,th=3,nh=4,rh=5,ah=6,gA=7,mA=8,QE=typeof self=="object"?self:globalThis,ZO=(e,t)=>{const n=(o,l)=>(e.set(l,o),o),i=o=>{if(e.has(o))return e.get(o);const[l,u]=t[o];switch(l){case Es:case fA:return n(u,o);case ki:{const c=n([],o);for(const p of u)c.push(i(p));return c}case us:{const c=n({},o);for(const[p,f]of u)c[i(p)]=i(f);return c}case th:return n(new Date(u),o);case nh:{const{source:c,flags:p}=u;return n(new RegExp(c,p),o)}case rh:{const c=n(new Map,o);for(const[p,f]of u)c.set(i(p),i(f));return c}case ah:{const c=n(new Set,o);for(const p of u)c.add(i(p));return c}case gA:{const{name:c,message:p}=u;return n(new QE[c](p),o)}case mA:return n(BigInt(u),o);case"BigInt":return n(Object(BigInt(u)),o);case"ArrayBuffer":return n(new Uint8Array(u).buffer,u);case"DataView":{const{buffer:c}=new Uint8Array(u);return n(new DataView(c),u)}}return n(new QE[l](u),o)};return i},JE=e=>ZO(new Map,e)(0),ka="",{toString:XO}={},{keys:QO}=Object,bi=e=>{const t=typeof e;if(t!=="object"||!e)return[Es,t];const n=XO.call(e).slice(8,-1);switch(n){case"Array":return[ki,ka];case"Object":return[us,ka];case"Date":return[th,ka];case"RegExp":return[nh,ka];case"Map":return[rh,ka];case"Set":return[ah,ka];case"DataView":return[ki,n]}return n.includes("Array")?[ki,n]:n.includes("Error")?[gA,n]:[us,n]},Vo=([e,t])=>e===Es&&(t==="function"||t==="symbol"),JO=(e,t,n,i)=>{const o=(u,c)=>{const p=i.push(u)-1;return n.set(c,p),p},l=u=>{if(n.has(u))return n.get(u);let[c,p]=bi(u);switch(c){case Es:{let m=u;switch(p){case"bigint":c=mA,m=u.toString();break;case"function":case"symbol":if(e)throw new TypeError("unable to serialize "+p);m=null;break;case"undefined":return o([fA],u)}return o([c,m],u)}case ki:{if(p){let S=u;return p==="DataView"?S=new Uint8Array(u.buffer):p==="ArrayBuffer"&&(S=new Uint8Array(u)),o([p,[...S]],u)}const m=[],h=o([c,m],u);for(const S of u)m.push(l(S));return h}case us:{if(p)switch(p){case"BigInt":return o([p,u.toString()],u);case"Boolean":case"Number":case"String":return o([p,u.valueOf()],u)}if(t&&"toJSON"in u)return l(u.toJSON());const m=[],h=o([c,m],u);for(const S of QO(u))(e||!Vo(bi(u[S])))&&m.push([l(S),l(u[S])]);return h}case th:return o([c,u.toISOString()],u);case nh:{const{source:m,flags:h}=u;return o([c,{source:m,flags:h}],u)}case rh:{const m=[],h=o([c,m],u);for(const[S,E]of u)(e||!(Vo(bi(S))||Vo(bi(E))))&&m.push([l(S),l(E)]);return h}case ah:{const m=[],h=o([c,m],u);for(const S of u)(e||!Vo(bi(S)))&&m.push(l(S));return h}}const{message:f}=u;return o([c,{name:p,message:f}],u)};return l},eS=(e,{json:t,lossy:n}={})=>{const i=[];return JO(!(t||n),!!t,new Map,i)(e),i},cs=typeof structuredClone=="function"?(e,t)=>t&&("json"in t||"lossy"in t)?JE(eS(e,t)):structuredClone(e):(e,t)=>JE(eS(e,t));function eL(e,t){const n=[{type:"text",value:"↩"}];return t>1&&n.push({type:"element",tagName:"sup",properties:{},children:[{type:"text",value:String(t)}]}),n}function tL(e,t){return"Back to reference "+(e+1)+(t>1?"-"+t:"")}function nL(e){const t=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",n=e.options.footnoteBackContent||eL,i=e.options.footnoteBackLabel||tL,o=e.options.footnoteLabel||"Footnotes",l=e.options.footnoteLabelTagName||"h2",u=e.options.footnoteLabelProperties||{className:["sr-only"]},c=[];let p=-1;for(;++p0&&v.push({type:"text",value:" "});let R=typeof n=="string"?n:n(p,E);typeof R=="string"&&(R={type:"text",value:R}),v.push({type:"element",tagName:"a",properties:{href:"#"+t+"fnref-"+S+(E>1?"-"+E:""),dataFootnoteBackref:"",ariaLabel:typeof i=="string"?i:i(p,E),className:["data-footnote-backref"]},children:Array.isArray(R)?R:[R]})}const T=m[m.length-1];if(T&&T.type==="element"&&T.tagName==="p"){const R=T.children[T.children.length-1];R&&R.type==="text"?R.value+=" ":T.children.push({type:"text",value:" "}),T.children.push(...v)}else m.push(...v);const N={type:"element",tagName:"li",properties:{id:t+"fn-"+S},children:e.wrap(m,!0)};e.patch(f,N),c.push(N)}if(c.length!==0)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:l,properties:{...cs(u),id:"footnote-label"},children:[{type:"text",value:o}]},{type:"text",value:` +`});const f={type:"element",tagName:"li",properties:l,children:u};return e.patch(t,f),e.applyData(t,f)}function BO(e){let t=!1;if(e.type==="list"){t=e.spread||!1;const n=e.children;let i=-1;for(;!t&&++i1}function jO(e,t){const n={},i=e.all(t);let o=-1;for(typeof t.start=="number"&&t.start!==1&&(n.start=t.start);++o0){const u={type:"element",tagName:"tbody",properties:{},children:e.wrap(n,!0)},c=Ym(t.children[1]),p=Hx(t.children[t.children.length-1]);c&&p&&(u.position={start:c,end:p}),o.push(u)}const l={type:"element",tagName:"table",properties:{},children:e.wrap(o,!0)};return e.patch(t,l),e.applyData(t,l)}function HO(e,t,n){const i=n?n.children:void 0,l=(i?i.indexOf(t):1)===0?"th":"td",u=n&&n.type==="table"?n.align:void 0,c=u?u.length:t.children.length;let p=-1;const f=[];for(;++p0,!0),i[0]),o=i.index+i[0].length,i=n.exec(t);return l.push(XE(t.slice(o),o>0,!1)),l.join("")}function XE(e,t,n){let i=0,o=e.length;if(t){let l=e.codePointAt(i);for(;l===KE||l===ZE;)i++,l=e.codePointAt(i)}if(n){let l=e.codePointAt(o-1);for(;l===KE||l===ZE;)o--,l=e.codePointAt(o-1)}return o>i?e.slice(i,o):""}function YO(e,t){const n={type:"text",value:VO(String(t.value))};return e.patch(t,n),e.applyData(t,n)}function KO(e,t){const n={type:"element",tagName:"hr",properties:{},children:[]};return e.patch(t,n),e.applyData(t,n)}const ZO={blockquote:TO,break:xO,code:AO,delete:RO,emphasis:NO,footnoteReference:CO,heading:IO,html:OO,imageReference:LO,image:DO,inlineCode:MO,linkReference:FO,link:PO,listItem:UO,list:jO,paragraph:zO,root:$O,strong:qO,table:GO,tableCell:WO,tableRow:HO,text:YO,thematicBreak:KO,toml:Wo,yaml:Wo,definition:Wo,footnoteDefinition:Wo};function Wo(){}const fA=-1,Es=0,ki=1,us=2,th=3,nh=4,rh=5,ah=6,gA=7,mA=8,QE=typeof self=="object"?self:globalThis,XO=(e,t)=>{const n=(o,l)=>(e.set(l,o),o),i=o=>{if(e.has(o))return e.get(o);const[l,u]=t[o];switch(l){case Es:case fA:return n(u,o);case ki:{const c=n([],o);for(const p of u)c.push(i(p));return c}case us:{const c=n({},o);for(const[p,f]of u)c[i(p)]=i(f);return c}case th:return n(new Date(u),o);case nh:{const{source:c,flags:p}=u;return n(new RegExp(c,p),o)}case rh:{const c=n(new Map,o);for(const[p,f]of u)c.set(i(p),i(f));return c}case ah:{const c=n(new Set,o);for(const p of u)c.add(i(p));return c}case gA:{const{name:c,message:p}=u;return n(new QE[c](p),o)}case mA:return n(BigInt(u),o);case"BigInt":return n(Object(BigInt(u)),o);case"ArrayBuffer":return n(new Uint8Array(u).buffer,u);case"DataView":{const{buffer:c}=new Uint8Array(u);return n(new DataView(c),u)}}return n(new QE[l](u),o)};return i},JE=e=>XO(new Map,e)(0),ka="",{toString:QO}={},{keys:JO}=Object,bi=e=>{const t=typeof e;if(t!=="object"||!e)return[Es,t];const n=QO.call(e).slice(8,-1);switch(n){case"Array":return[ki,ka];case"Object":return[us,ka];case"Date":return[th,ka];case"RegExp":return[nh,ka];case"Map":return[rh,ka];case"Set":return[ah,ka];case"DataView":return[ki,n]}return n.includes("Array")?[ki,n]:n.includes("Error")?[gA,n]:[us,n]},Vo=([e,t])=>e===Es&&(t==="function"||t==="symbol"),eL=(e,t,n,i)=>{const o=(u,c)=>{const p=i.push(u)-1;return n.set(c,p),p},l=u=>{if(n.has(u))return n.get(u);let[c,p]=bi(u);switch(c){case Es:{let m=u;switch(p){case"bigint":c=mA,m=u.toString();break;case"function":case"symbol":if(e)throw new TypeError("unable to serialize "+p);m=null;break;case"undefined":return o([fA],u)}return o([c,m],u)}case ki:{if(p){let S=u;return p==="DataView"?S=new Uint8Array(u.buffer):p==="ArrayBuffer"&&(S=new Uint8Array(u)),o([p,[...S]],u)}const m=[],h=o([c,m],u);for(const S of u)m.push(l(S));return h}case us:{if(p)switch(p){case"BigInt":return o([p,u.toString()],u);case"Boolean":case"Number":case"String":return o([p,u.valueOf()],u)}if(t&&"toJSON"in u)return l(u.toJSON());const m=[],h=o([c,m],u);for(const S of JO(u))(e||!Vo(bi(u[S])))&&m.push([l(S),l(u[S])]);return h}case th:return o([c,u.toISOString()],u);case nh:{const{source:m,flags:h}=u;return o([c,{source:m,flags:h}],u)}case rh:{const m=[],h=o([c,m],u);for(const[S,E]of u)(e||!(Vo(bi(S))||Vo(bi(E))))&&m.push([l(S),l(E)]);return h}case ah:{const m=[],h=o([c,m],u);for(const S of u)(e||!Vo(bi(S)))&&m.push(l(S));return h}}const{message:f}=u;return o([c,{name:p,message:f}],u)};return l},eS=(e,{json:t,lossy:n}={})=>{const i=[];return eL(!(t||n),!!t,new Map,i)(e),i},cs=typeof structuredClone=="function"?(e,t)=>t&&("json"in t||"lossy"in t)?JE(eS(e,t)):structuredClone(e):(e,t)=>JE(eS(e,t));function tL(e,t){const n=[{type:"text",value:"↩"}];return t>1&&n.push({type:"element",tagName:"sup",properties:{},children:[{type:"text",value:String(t)}]}),n}function nL(e,t){return"Back to reference "+(e+1)+(t>1?"-"+t:"")}function rL(e){const t=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",n=e.options.footnoteBackContent||tL,i=e.options.footnoteBackLabel||nL,o=e.options.footnoteLabel||"Footnotes",l=e.options.footnoteLabelTagName||"h2",u=e.options.footnoteLabelProperties||{className:["sr-only"]},c=[];let p=-1;for(;++p0&&v.push({type:"text",value:" "});let R=typeof n=="string"?n:n(p,E);typeof R=="string"&&(R={type:"text",value:R}),v.push({type:"element",tagName:"a",properties:{href:"#"+t+"fnref-"+S+(E>1?"-"+E:""),dataFootnoteBackref:"",ariaLabel:typeof i=="string"?i:i(p,E),className:["data-footnote-backref"]},children:Array.isArray(R)?R:[R]})}const T=m[m.length-1];if(T&&T.type==="element"&&T.tagName==="p"){const R=T.children[T.children.length-1];R&&R.type==="text"?R.value+=" ":T.children.push({type:"text",value:" "}),T.children.push(...v)}else m.push(...v);const N={type:"element",tagName:"li",properties:{id:t+"fn-"+S},children:e.wrap(m,!0)};e.patch(f,N),c.push(N)}if(c.length!==0)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:l,properties:{...cs(u),id:"footnote-label"},children:[{type:"text",value:o}]},{type:"text",value:` `},{type:"element",tagName:"ol",properties:{},children:e.wrap(c,!0)},{type:"text",value:` -`}]}}const Ss=(function(e){if(e==null)return oL;if(typeof e=="function")return vs(e);if(typeof e=="object")return Array.isArray(e)?rL(e):aL(e);if(typeof e=="string")return iL(e);throw new Error("Expected function, string, or object as test")});function rL(e){const t=[];let n=-1;for(;++n":""))+")"})}return S;function S(){let E=hA,v,k,T;if((!t||l(p,f,m[m.length-1]||void 0))&&(E=cL(n(p,m)),E[0]===Nm))return E;if("children"in p&&p.children){const N=p;if(N.children&&E[0]!==uL)for(k=(i?N.children.length:-1)+u,T=m.concat(N);k>-1&&k":""))+")"})}return S;function S(){let E=hA,v,k,T;if((!t||l(p,f,m[m.length-1]||void 0))&&(E=dL(n(p,m)),E[0]===Nm))return E;if("children"in p&&p.children){const N=p;if(N.children&&E[0]!==cL)for(k=(i?N.children.length:-1)+u,T=m.concat(N);k>-1&&k0&&n.push({type:"text",value:` -`}),n}function tS(e){let t=0,n=e.charCodeAt(t);for(;n===9||n===32;)t++,n=e.charCodeAt(t);return e.slice(t)}function nS(e,t){const n=pL(e,t),i=n.one(e,void 0),o=nL(n),l=Array.isArray(i)?{type:"root",children:i}:i||{type:"root",children:[]};return o&&l.children.push({type:"text",value:` -`},o),l}function bL(e,t){return e&&"run"in e?async function(n,i){const o=nS(n,{file:i,...t});await e.run(o,i)}:function(n,i){return nS(n,{file:i,...e||t})}}function rS(e){if(e)throw e}var Eu,aS;function yL(){if(aS)return Eu;aS=1;var e=Object.prototype.hasOwnProperty,t=Object.prototype.toString,n=Object.defineProperty,i=Object.getOwnPropertyDescriptor,o=function(f){return typeof Array.isArray=="function"?Array.isArray(f):t.call(f)==="[object Array]"},l=function(f){if(!f||t.call(f)!=="[object Object]")return!1;var m=e.call(f,"constructor"),h=f.constructor&&f.constructor.prototype&&e.call(f.constructor.prototype,"isPrototypeOf");if(f.constructor&&!m&&!h)return!1;var S;for(S in f);return typeof S>"u"||e.call(f,S)},u=function(f,m){n&&m.name==="__proto__"?n(f,m.name,{enumerable:!0,configurable:!0,value:m.newValue,writable:!0}):f[m.name]=m.newValue},c=function(f,m){if(m==="__proto__")if(e.call(f,m)){if(i)return i(f,m).value}else return;return f[m]};return Eu=function p(){var f,m,h,S,E,v,k=arguments[0],T=1,N=arguments.length,R=!1;for(typeof k=="boolean"&&(R=k,k=arguments[1]||{},T=2),(k==null||typeof k!="object"&&typeof k!="function")&&(k={});Tu.length;let p;c&&u.push(o);try{p=e.apply(this,u)}catch(f){const m=f;if(c&&n)throw m;return o(m)}c||(p&&p.then&&typeof p.then=="function"?p.then(l,o):p instanceof Error?o(p):l(p))}function o(u,...c){n||(n=!0,t(u,...c))}function l(u){o(null,u)}}const Un={basename:kL,dirname:_L,extname:wL,join:TL,sep:"/"};function kL(e,t){if(t!==void 0&&typeof t!="string")throw new TypeError('"ext" argument must be a string');Oi(e);let n=0,i=-1,o=e.length,l;if(t===void 0||t.length===0||t.length>e.length){for(;o--;)if(e.codePointAt(o)===47){if(l){n=o+1;break}}else i<0&&(l=!0,i=o+1);return i<0?"":e.slice(n,i)}if(t===e)return"";let u=-1,c=t.length-1;for(;o--;)if(e.codePointAt(o)===47){if(l){n=o+1;break}}else u<0&&(l=!0,u=o+1),c>-1&&(e.codePointAt(o)===t.codePointAt(c--)?c<0&&(i=o):(c=-1,i=u));return n===i?i=u:i<0&&(i=e.length),e.slice(n,i)}function _L(e){if(Oi(e),e.length===0)return".";let t=-1,n=e.length,i;for(;--n;)if(e.codePointAt(n)===47){if(i){t=n;break}}else i||(i=!0);return t<0?e.codePointAt(0)===47?"/":".":t===1&&e.codePointAt(0)===47?"//":e.slice(0,t)}function wL(e){Oi(e);let t=e.length,n=-1,i=0,o=-1,l=0,u;for(;t--;){const c=e.codePointAt(t);if(c===47){if(u){i=t+1;break}continue}n<0&&(u=!0,n=t+1),c===46?o<0?o=t:l!==1&&(l=1):o>-1&&(l=-1)}return o<0||n<0||l===0||l===1&&o===n-1&&o===i+1?"":e.slice(o,n)}function TL(...e){let t=-1,n;for(;++t0&&e.codePointAt(e.length-1)===47&&(n+="/"),t?"/"+n:n}function AL(e,t){let n="",i=0,o=-1,l=0,u=-1,c,p;for(;++u<=e.length;){if(u2){if(p=n.lastIndexOf("/"),p!==n.length-1){p<0?(n="",i=0):(n=n.slice(0,p),i=n.length-1-n.lastIndexOf("/")),o=u,l=0;continue}}else if(n.length>0){n="",i=0,o=u,l=0;continue}}t&&(n=n.length>0?n+"/..":"..",i=2)}else n.length>0?n+="/"+e.slice(o+1,u):n=e.slice(o+1,u),i=u-o-1;o=u,l=0}else c===46&&l>-1?l++:l=-1}return n}function Oi(e){if(typeof e!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}const RL={cwd:NL};function NL(){return"/"}function Om(e){return!!(e!==null&&typeof e=="object"&&"href"in e&&e.href&&"protocol"in e&&e.protocol&&e.auth===void 0)}function CL(e){if(typeof e=="string")e=new URL(e);else if(!Om(e)){const t=new TypeError('The "path" argument must be of type string or an instance of URL. Received `'+e+"`");throw t.code="ERR_INVALID_ARG_TYPE",t}if(e.protocol!=="file:"){const t=new TypeError("The URL must be of scheme file");throw t.code="ERR_INVALID_URL_SCHEME",t}return IL(e)}function IL(e){if(e.hostname!==""){const i=new TypeError('File URL host must be "localhost" or empty on darwin');throw i.code="ERR_INVALID_FILE_URL_HOST",i}const t=e.pathname;let n=-1;for(;++n0){let[E,...v]=m;const k=i[S][1];Im(k)&&Im(E)&&(E=Su(!0,k,E)),i[S]=[f,E,...v]}}}}const ML=new oh().freeze();function wu(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `parser`")}function Tu(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `compiler`")}function xu(e,t){if(t)throw new Error("Cannot call `"+e+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function oS(e){if(!Im(e)||typeof e.type!="string")throw new TypeError("Expected node, got `"+e+"`")}function sS(e,t,n){if(!n)throw new Error("`"+e+"` finished async. Use `"+t+"` instead")}function Yo(e){return FL(e)?e:new yA(e)}function FL(e){return!!(e&&typeof e=="object"&&"message"in e&&"messages"in e)}function PL(e){return typeof e=="string"||UL(e)}function UL(e){return!!(e&&typeof e=="object"&&"byteLength"in e&&"byteOffset"in e)}const BL="https://github.com/remarkjs/react-markdown/blob/main/changelog.md",lS=[],uS={allowDangerousHtml:!0},jL=/^(https?|ircs?|mailto|xmpp)$/i,zL=[{from:"astPlugins",id:"remove-buggy-html-in-markdown-parser"},{from:"allowDangerousHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"allowNode",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowElement"},{from:"allowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowedElements"},{from:"className",id:"remove-classname"},{from:"disallowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"disallowedElements"},{from:"escapeHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"includeElementIndex",id:"#remove-includeelementindex"},{from:"includeNodeIndex",id:"change-includenodeindex-to-includeelementindex"},{from:"linkTarget",id:"remove-linktarget"},{from:"plugins",id:"change-plugins-to-remarkplugins",to:"remarkPlugins"},{from:"rawSourcePos",id:"#remove-rawsourcepos"},{from:"renderers",id:"change-renderers-to-components",to:"components"},{from:"source",id:"change-source-to-children",to:"children"},{from:"sourcePos",id:"#remove-sourcepos"},{from:"transformImageUri",id:"#add-urltransform",to:"urlTransform"},{from:"transformLinkUri",id:"#add-urltransform",to:"urlTransform"}];function $L(e){const t=qL(e),n=GL(e);return HL(t.runSync(t.parse(n),n),e)}function qL(e){const t=e.rehypePlugins||lS,n=e.remarkPlugins||lS,i=e.remarkRehypeOptions?{...e.remarkRehypeOptions,...uS}:uS;return ML().use(_O).use(n).use(bL,i).use(t)}function GL(e){const t=e.children||"",n=new yA;return typeof t=="string"&&(n.value=t),n}function HL(e,t){const n=t.allowedElements,i=t.allowElement,o=t.components,l=t.disallowedElements,u=t.skipHtml,c=t.unwrapDisallowed,p=t.urlTransform||WL;for(const m of zL)Object.hasOwn(t,m.from)&&(""+m.from+(m.to?"use `"+m.to+"` instead":"remove it")+BL+m.id,void 0);return ih(e,f),o1(e,{Fragment:g.Fragment,components:o,ignoreInvalidStyle:!0,jsx:g.jsx,jsxs:g.jsxs,passKeys:!0,passNode:!0});function f(m,h,S){if(m.type==="raw"&&S&&typeof h=="number")return u?S.children.splice(h,1):S.children[h]={type:"text",value:m.value},h;if(m.type==="element"){let E;for(E in hu)if(Object.hasOwn(hu,E)&&Object.hasOwn(m.properties,E)){const v=m.properties[E],k=hu[E];(k===null||k.includes(m.tagName))&&(m.properties[E]=p(String(v||""),E,m))}}if(m.type==="element"){let E=n?!n.includes(m.tagName):l?l.includes(m.tagName):!1;if(!E&&i&&typeof h=="number"&&(E=!i(m,h,S)),E&&S&&typeof h=="number")return c&&m.children?S.children.splice(h,1,...m.children):S.children.splice(h,1),h}}}function WL(e){const t=e.indexOf(":"),n=e.indexOf("?"),i=e.indexOf("#"),o=e.indexOf("/");return t===-1||o!==-1&&t>o||n!==-1&&t>n||i!==-1&&t>i||jL.test(e.slice(0,t))?e:""}function cS(e,t){const n=String(e);if(typeof t!="string")throw new TypeError("Expected character");let i=0,o=n.indexOf(t);for(;o!==-1;)i++,o=n.indexOf(t,o+t.length);return i}function VL(e){if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}function YL(e,t,n){const o=Ss((n||{}).ignore||[]),l=KL(t);let u=-1;for(;++u0?{type:"text",value:w}:void 0),w===!1?S.lastIndex=O+1:(v!==O&&R.push({type:"text",value:f.value.slice(v,O)}),Array.isArray(w)?R.push(...w):w&&R.push(w),v=O+A[0].length,N=!0),!S.global)break;A=S.exec(f.value)}return N?(v?\]}]+$/.exec(e);if(!t)return[e,void 0];e=e.slice(0,t.index);let n=t[0],i=n.indexOf(")");const o=cS(e,"(");let l=cS(e,")");for(;i!==-1&&o>l;)e+=n.slice(0,i+1),n=n.slice(i+1),i=n.indexOf(")"),l++;return[e,n]}function EA(e,t){const n=e.input.charCodeAt(e.index-1);return(e.index===0||Wr(n)||bs(n))&&(!t||n!==47)}SA.peek=yD;function cD(){this.buffer()}function dD(e){this.enter({type:"footnoteReference",identifier:"",label:""},e)}function pD(){this.buffer()}function fD(e){this.enter({type:"footnoteDefinition",identifier:"",label:"",children:[]},e)}function gD(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=On(this.sliceSerialize(e)).toLowerCase(),n.label=t}function mD(e){this.exit(e)}function hD(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=On(this.sliceSerialize(e)).toLowerCase(),n.label=t}function bD(e){this.exit(e)}function yD(){return"["}function SA(e,t,n,i){const o=n.createTracker(i);let l=o.move("[^");const u=n.enter("footnoteReference"),c=n.enter("reference");return l+=o.move(n.safe(n.associationId(e),{after:"]",before:l})),c(),u(),l+=o.move("]"),l}function ED(){return{enter:{gfmFootnoteCallString:cD,gfmFootnoteCall:dD,gfmFootnoteDefinitionLabelString:pD,gfmFootnoteDefinition:fD},exit:{gfmFootnoteCallString:gD,gfmFootnoteCall:mD,gfmFootnoteDefinitionLabelString:hD,gfmFootnoteDefinition:bD}}}function SD(e){let t=!1;return e&&e.firstLineBlank&&(t=!0),{handlers:{footnoteDefinition:n,footnoteReference:SA},unsafe:[{character:"[",inConstruct:["label","phrasing","reference"]}]};function n(i,o,l,u){const c=l.createTracker(u);let p=c.move("[^");const f=l.enter("footnoteDefinition"),m=l.enter("label");return p+=c.move(l.safe(l.associationId(i),{before:p,after:"]"})),m(),p+=c.move("]:"),i.children&&i.children.length>0&&(c.shift(4),p+=c.move((t?` -`:" ")+l.indentLines(l.containerFlow(i,c.current()),t?vA:vD))),f(),p}}function vD(e,t,n){return t===0?e:vA(e,t,n)}function vA(e,t,n){return(n?"":" ")+e}const kD=["autolink","destinationLiteral","destinationRaw","reference","titleQuote","titleApostrophe"];kA.peek=AD;function _D(){return{canContainEols:["delete"],enter:{strikethrough:TD},exit:{strikethrough:xD}}}function wD(){return{unsafe:[{character:"~",inConstruct:"phrasing",notInConstruct:kD}],handlers:{delete:kA}}}function TD(e){this.enter({type:"delete",children:[]},e)}function xD(e){this.exit(e)}function kA(e,t,n,i){const o=n.createTracker(i),l=n.enter("strikethrough");let u=o.move("~~");return u+=n.containerPhrasing(e,{...o.current(),before:u,after:"~"}),u+=o.move("~~"),l(),u}function AD(){return"~"}function RD(e){return e.length}function ND(e,t){const n=t||{},i=(n.align||[]).concat(),o=n.stringLength||RD,l=[],u=[],c=[],p=[];let f=0,m=-1;for(;++mf&&(f=e[m].length);++Np[N])&&(p[N]=A)}k.push(R)}u[m]=k,c[m]=T}let h=-1;if(typeof i=="object"&&"length"in i)for(;++hp[h]&&(p[h]=R),E[h]=R),S[h]=A}u.splice(1,0,S),c.splice(1,0,E),m=-1;const v=[];for(;++m "),l.shift(2);const u=n.indentLines(n.containerFlow(e,l.current()),OD);return o(),u}function OD(e,t,n){return">"+(n?"":" ")+e}function LD(e,t){return pS(e,t.inConstruct,!0)&&!pS(e,t.notInConstruct,!1)}function pS(e,t,n){if(typeof t=="string"&&(t=[t]),!t||t.length===0)return n;let i=-1;for(;++iu&&(u=l):l=1,o=i+t.length,i=n.indexOf(t,o);return u}function MD(e,t){return!!(t.options.fences===!1&&e.value&&!e.lang&&/[^ \r\n]/.test(e.value)&&!/^[\t ]*(?:[\r\n]|$)|(?:^|[\r\n])[\t ]*$/.test(e.value))}function FD(e){const t=e.options.fence||"`";if(t!=="`"&&t!=="~")throw new Error("Cannot serialize code with `"+t+"` for `options.fence`, expected `` ` `` or `~`");return t}function PD(e,t,n,i){const o=FD(n),l=e.value||"",u=o==="`"?"GraveAccent":"Tilde";if(MD(e,n)){const h=n.enter("codeIndented"),S=n.indentLines(l,UD);return h(),S}const c=n.createTracker(i),p=o.repeat(Math.max(DD(l,o)+1,3)),f=n.enter("codeFenced");let m=c.move(p);if(e.lang){const h=n.enter(`codeFencedLang${u}`);m+=c.move(n.safe(e.lang,{before:m,after:" ",encode:["`"],...c.current()})),h()}if(e.lang&&e.meta){const h=n.enter(`codeFencedMeta${u}`);m+=c.move(" "),m+=c.move(n.safe(e.meta,{before:m,after:` +`}),n}function tS(e){let t=0,n=e.charCodeAt(t);for(;n===9||n===32;)t++,n=e.charCodeAt(t);return e.slice(t)}function nS(e,t){const n=fL(e,t),i=n.one(e,void 0),o=rL(n),l=Array.isArray(i)?{type:"root",children:i}:i||{type:"root",children:[]};return o&&l.children.push({type:"text",value:` +`},o),l}function yL(e,t){return e&&"run"in e?async function(n,i){const o=nS(n,{file:i,...t});await e.run(o,i)}:function(n,i){return nS(n,{file:i,...e||t})}}function rS(e){if(e)throw e}var Eu,aS;function EL(){if(aS)return Eu;aS=1;var e=Object.prototype.hasOwnProperty,t=Object.prototype.toString,n=Object.defineProperty,i=Object.getOwnPropertyDescriptor,o=function(f){return typeof Array.isArray=="function"?Array.isArray(f):t.call(f)==="[object Array]"},l=function(f){if(!f||t.call(f)!=="[object Object]")return!1;var m=e.call(f,"constructor"),h=f.constructor&&f.constructor.prototype&&e.call(f.constructor.prototype,"isPrototypeOf");if(f.constructor&&!m&&!h)return!1;var S;for(S in f);return typeof S>"u"||e.call(f,S)},u=function(f,m){n&&m.name==="__proto__"?n(f,m.name,{enumerable:!0,configurable:!0,value:m.newValue,writable:!0}):f[m.name]=m.newValue},c=function(f,m){if(m==="__proto__")if(e.call(f,m)){if(i)return i(f,m).value}else return;return f[m]};return Eu=function p(){var f,m,h,S,E,v,k=arguments[0],T=1,N=arguments.length,R=!1;for(typeof k=="boolean"&&(R=k,k=arguments[1]||{},T=2),(k==null||typeof k!="object"&&typeof k!="function")&&(k={});Tu.length;let p;c&&u.push(o);try{p=e.apply(this,u)}catch(f){const m=f;if(c&&n)throw m;return o(m)}c||(p&&p.then&&typeof p.then=="function"?p.then(l,o):p instanceof Error?o(p):l(p))}function o(u,...c){n||(n=!0,t(u,...c))}function l(u){o(null,u)}}const Un={basename:_L,dirname:wL,extname:TL,join:xL,sep:"/"};function _L(e,t){if(t!==void 0&&typeof t!="string")throw new TypeError('"ext" argument must be a string');Oi(e);let n=0,i=-1,o=e.length,l;if(t===void 0||t.length===0||t.length>e.length){for(;o--;)if(e.codePointAt(o)===47){if(l){n=o+1;break}}else i<0&&(l=!0,i=o+1);return i<0?"":e.slice(n,i)}if(t===e)return"";let u=-1,c=t.length-1;for(;o--;)if(e.codePointAt(o)===47){if(l){n=o+1;break}}else u<0&&(l=!0,u=o+1),c>-1&&(e.codePointAt(o)===t.codePointAt(c--)?c<0&&(i=o):(c=-1,i=u));return n===i?i=u:i<0&&(i=e.length),e.slice(n,i)}function wL(e){if(Oi(e),e.length===0)return".";let t=-1,n=e.length,i;for(;--n;)if(e.codePointAt(n)===47){if(i){t=n;break}}else i||(i=!0);return t<0?e.codePointAt(0)===47?"/":".":t===1&&e.codePointAt(0)===47?"//":e.slice(0,t)}function TL(e){Oi(e);let t=e.length,n=-1,i=0,o=-1,l=0,u;for(;t--;){const c=e.codePointAt(t);if(c===47){if(u){i=t+1;break}continue}n<0&&(u=!0,n=t+1),c===46?o<0?o=t:l!==1&&(l=1):o>-1&&(l=-1)}return o<0||n<0||l===0||l===1&&o===n-1&&o===i+1?"":e.slice(o,n)}function xL(...e){let t=-1,n;for(;++t0&&e.codePointAt(e.length-1)===47&&(n+="/"),t?"/"+n:n}function RL(e,t){let n="",i=0,o=-1,l=0,u=-1,c,p;for(;++u<=e.length;){if(u2){if(p=n.lastIndexOf("/"),p!==n.length-1){p<0?(n="",i=0):(n=n.slice(0,p),i=n.length-1-n.lastIndexOf("/")),o=u,l=0;continue}}else if(n.length>0){n="",i=0,o=u,l=0;continue}}t&&(n=n.length>0?n+"/..":"..",i=2)}else n.length>0?n+="/"+e.slice(o+1,u):n=e.slice(o+1,u),i=u-o-1;o=u,l=0}else c===46&&l>-1?l++:l=-1}return n}function Oi(e){if(typeof e!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}const NL={cwd:CL};function CL(){return"/"}function Om(e){return!!(e!==null&&typeof e=="object"&&"href"in e&&e.href&&"protocol"in e&&e.protocol&&e.auth===void 0)}function IL(e){if(typeof e=="string")e=new URL(e);else if(!Om(e)){const t=new TypeError('The "path" argument must be of type string or an instance of URL. Received `'+e+"`");throw t.code="ERR_INVALID_ARG_TYPE",t}if(e.protocol!=="file:"){const t=new TypeError("The URL must be of scheme file");throw t.code="ERR_INVALID_URL_SCHEME",t}return OL(e)}function OL(e){if(e.hostname!==""){const i=new TypeError('File URL host must be "localhost" or empty on darwin');throw i.code="ERR_INVALID_FILE_URL_HOST",i}const t=e.pathname;let n=-1;for(;++n0){let[E,...v]=m;const k=i[S][1];Im(k)&&Im(E)&&(E=Su(!0,k,E)),i[S]=[f,E,...v]}}}}const FL=new oh().freeze();function wu(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `parser`")}function Tu(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `compiler`")}function xu(e,t){if(t)throw new Error("Cannot call `"+e+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function oS(e){if(!Im(e)||typeof e.type!="string")throw new TypeError("Expected node, got `"+e+"`")}function sS(e,t,n){if(!n)throw new Error("`"+e+"` finished async. Use `"+t+"` instead")}function Yo(e){return PL(e)?e:new yA(e)}function PL(e){return!!(e&&typeof e=="object"&&"message"in e&&"messages"in e)}function UL(e){return typeof e=="string"||BL(e)}function BL(e){return!!(e&&typeof e=="object"&&"byteLength"in e&&"byteOffset"in e)}const jL="https://github.com/remarkjs/react-markdown/blob/main/changelog.md",lS=[],uS={allowDangerousHtml:!0},zL=/^(https?|ircs?|mailto|xmpp)$/i,$L=[{from:"astPlugins",id:"remove-buggy-html-in-markdown-parser"},{from:"allowDangerousHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"allowNode",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowElement"},{from:"allowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowedElements"},{from:"className",id:"remove-classname"},{from:"disallowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"disallowedElements"},{from:"escapeHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"includeElementIndex",id:"#remove-includeelementindex"},{from:"includeNodeIndex",id:"change-includenodeindex-to-includeelementindex"},{from:"linkTarget",id:"remove-linktarget"},{from:"plugins",id:"change-plugins-to-remarkplugins",to:"remarkPlugins"},{from:"rawSourcePos",id:"#remove-rawsourcepos"},{from:"renderers",id:"change-renderers-to-components",to:"components"},{from:"source",id:"change-source-to-children",to:"children"},{from:"sourcePos",id:"#remove-sourcepos"},{from:"transformImageUri",id:"#add-urltransform",to:"urlTransform"},{from:"transformLinkUri",id:"#add-urltransform",to:"urlTransform"}];function qL(e){const t=GL(e),n=HL(e);return WL(t.runSync(t.parse(n),n),e)}function GL(e){const t=e.rehypePlugins||lS,n=e.remarkPlugins||lS,i=e.remarkRehypeOptions?{...e.remarkRehypeOptions,...uS}:uS;return FL().use(wO).use(n).use(yL,i).use(t)}function HL(e){const t=e.children||"",n=new yA;return typeof t=="string"&&(n.value=t),n}function WL(e,t){const n=t.allowedElements,i=t.allowElement,o=t.components,l=t.disallowedElements,u=t.skipHtml,c=t.unwrapDisallowed,p=t.urlTransform||VL;for(const m of $L)Object.hasOwn(t,m.from)&&(""+m.from+(m.to?"use `"+m.to+"` instead":"remove it")+jL+m.id,void 0);return ih(e,f),s1(e,{Fragment:g.Fragment,components:o,ignoreInvalidStyle:!0,jsx:g.jsx,jsxs:g.jsxs,passKeys:!0,passNode:!0});function f(m,h,S){if(m.type==="raw"&&S&&typeof h=="number")return u?S.children.splice(h,1):S.children[h]={type:"text",value:m.value},h;if(m.type==="element"){let E;for(E in hu)if(Object.hasOwn(hu,E)&&Object.hasOwn(m.properties,E)){const v=m.properties[E],k=hu[E];(k===null||k.includes(m.tagName))&&(m.properties[E]=p(String(v||""),E,m))}}if(m.type==="element"){let E=n?!n.includes(m.tagName):l?l.includes(m.tagName):!1;if(!E&&i&&typeof h=="number"&&(E=!i(m,h,S)),E&&S&&typeof h=="number")return c&&m.children?S.children.splice(h,1,...m.children):S.children.splice(h,1),h}}}function VL(e){const t=e.indexOf(":"),n=e.indexOf("?"),i=e.indexOf("#"),o=e.indexOf("/");return t===-1||o!==-1&&t>o||n!==-1&&t>n||i!==-1&&t>i||zL.test(e.slice(0,t))?e:""}function cS(e,t){const n=String(e);if(typeof t!="string")throw new TypeError("Expected character");let i=0,o=n.indexOf(t);for(;o!==-1;)i++,o=n.indexOf(t,o+t.length);return i}function YL(e){if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}function KL(e,t,n){const o=Ss((n||{}).ignore||[]),l=ZL(t);let u=-1;for(;++u0?{type:"text",value:w}:void 0),w===!1?S.lastIndex=O+1:(v!==O&&R.push({type:"text",value:f.value.slice(v,O)}),Array.isArray(w)?R.push(...w):w&&R.push(w),v=O+A[0].length,N=!0),!S.global)break;A=S.exec(f.value)}return N?(v?\]}]+$/.exec(e);if(!t)return[e,void 0];e=e.slice(0,t.index);let n=t[0],i=n.indexOf(")");const o=cS(e,"(");let l=cS(e,")");for(;i!==-1&&o>l;)e+=n.slice(0,i+1),n=n.slice(i+1),i=n.indexOf(")"),l++;return[e,n]}function EA(e,t){const n=e.input.charCodeAt(e.index-1);return(e.index===0||Wr(n)||bs(n))&&(!t||n!==47)}SA.peek=ED;function dD(){this.buffer()}function pD(e){this.enter({type:"footnoteReference",identifier:"",label:""},e)}function fD(){this.buffer()}function gD(e){this.enter({type:"footnoteDefinition",identifier:"",label:"",children:[]},e)}function mD(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=On(this.sliceSerialize(e)).toLowerCase(),n.label=t}function hD(e){this.exit(e)}function bD(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=On(this.sliceSerialize(e)).toLowerCase(),n.label=t}function yD(e){this.exit(e)}function ED(){return"["}function SA(e,t,n,i){const o=n.createTracker(i);let l=o.move("[^");const u=n.enter("footnoteReference"),c=n.enter("reference");return l+=o.move(n.safe(n.associationId(e),{after:"]",before:l})),c(),u(),l+=o.move("]"),l}function SD(){return{enter:{gfmFootnoteCallString:dD,gfmFootnoteCall:pD,gfmFootnoteDefinitionLabelString:fD,gfmFootnoteDefinition:gD},exit:{gfmFootnoteCallString:mD,gfmFootnoteCall:hD,gfmFootnoteDefinitionLabelString:bD,gfmFootnoteDefinition:yD}}}function vD(e){let t=!1;return e&&e.firstLineBlank&&(t=!0),{handlers:{footnoteDefinition:n,footnoteReference:SA},unsafe:[{character:"[",inConstruct:["label","phrasing","reference"]}]};function n(i,o,l,u){const c=l.createTracker(u);let p=c.move("[^");const f=l.enter("footnoteDefinition"),m=l.enter("label");return p+=c.move(l.safe(l.associationId(i),{before:p,after:"]"})),m(),p+=c.move("]:"),i.children&&i.children.length>0&&(c.shift(4),p+=c.move((t?` +`:" ")+l.indentLines(l.containerFlow(i,c.current()),t?vA:kD))),f(),p}}function kD(e,t,n){return t===0?e:vA(e,t,n)}function vA(e,t,n){return(n?"":" ")+e}const _D=["autolink","destinationLiteral","destinationRaw","reference","titleQuote","titleApostrophe"];kA.peek=RD;function wD(){return{canContainEols:["delete"],enter:{strikethrough:xD},exit:{strikethrough:AD}}}function TD(){return{unsafe:[{character:"~",inConstruct:"phrasing",notInConstruct:_D}],handlers:{delete:kA}}}function xD(e){this.enter({type:"delete",children:[]},e)}function AD(e){this.exit(e)}function kA(e,t,n,i){const o=n.createTracker(i),l=n.enter("strikethrough");let u=o.move("~~");return u+=n.containerPhrasing(e,{...o.current(),before:u,after:"~"}),u+=o.move("~~"),l(),u}function RD(){return"~"}function ND(e){return e.length}function CD(e,t){const n=t||{},i=(n.align||[]).concat(),o=n.stringLength||ND,l=[],u=[],c=[],p=[];let f=0,m=-1;for(;++mf&&(f=e[m].length);++Np[N])&&(p[N]=A)}k.push(R)}u[m]=k,c[m]=T}let h=-1;if(typeof i=="object"&&"length"in i)for(;++hp[h]&&(p[h]=R),E[h]=R),S[h]=A}u.splice(1,0,S),c.splice(1,0,E),m=-1;const v=[];for(;++m "),l.shift(2);const u=n.indentLines(n.containerFlow(e,l.current()),LD);return o(),u}function LD(e,t,n){return">"+(n?"":" ")+e}function DD(e,t){return pS(e,t.inConstruct,!0)&&!pS(e,t.notInConstruct,!1)}function pS(e,t,n){if(typeof t=="string"&&(t=[t]),!t||t.length===0)return n;let i=-1;for(;++iu&&(u=l):l=1,o=i+t.length,i=n.indexOf(t,o);return u}function FD(e,t){return!!(t.options.fences===!1&&e.value&&!e.lang&&/[^ \r\n]/.test(e.value)&&!/^[\t ]*(?:[\r\n]|$)|(?:^|[\r\n])[\t ]*$/.test(e.value))}function PD(e){const t=e.options.fence||"`";if(t!=="`"&&t!=="~")throw new Error("Cannot serialize code with `"+t+"` for `options.fence`, expected `` ` `` or `~`");return t}function UD(e,t,n,i){const o=PD(n),l=e.value||"",u=o==="`"?"GraveAccent":"Tilde";if(FD(e,n)){const h=n.enter("codeIndented"),S=n.indentLines(l,BD);return h(),S}const c=n.createTracker(i),p=o.repeat(Math.max(MD(l,o)+1,3)),f=n.enter("codeFenced");let m=c.move(p);if(e.lang){const h=n.enter(`codeFencedLang${u}`);m+=c.move(n.safe(e.lang,{before:m,after:" ",encode:["`"],...c.current()})),h()}if(e.lang&&e.meta){const h=n.enter(`codeFencedMeta${u}`);m+=c.move(" "),m+=c.move(n.safe(e.meta,{before:m,after:` `,encode:["`"],...c.current()})),h()}return m+=c.move(` `),l&&(m+=c.move(l+` -`)),m+=c.move(p),f(),m}function UD(e,t,n){return(n?"":" ")+e}function sh(e){const t=e.options.quote||'"';if(t!=='"'&&t!=="'")throw new Error("Cannot serialize title with `"+t+"` for `options.quote`, expected `\"`, or `'`");return t}function BD(e,t,n,i){const o=sh(n),l=o==='"'?"Quote":"Apostrophe",u=n.enter("definition");let c=n.enter("label");const p=n.createTracker(i);let f=p.move("[");return f+=p.move(n.safe(n.associationId(e),{before:f,after:"]",...p.current()})),f+=p.move("]: "),c(),!e.url||/[\0- \u007F]/.test(e.url)?(c=n.enter("destinationLiteral"),f+=p.move("<"),f+=p.move(n.safe(e.url,{before:f,after:">",...p.current()})),f+=p.move(">")):(c=n.enter("destinationRaw"),f+=p.move(n.safe(e.url,{before:f,after:e.title?" ":` -`,...p.current()}))),c(),e.title&&(c=n.enter(`title${l}`),f+=p.move(" "+o),f+=p.move(n.safe(e.title,{before:f,after:o,...p.current()})),f+=p.move(o),c()),u(),f}function jD(e){const t=e.options.emphasis||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize emphasis with `"+t+"` for `options.emphasis`, expected `*`, or `_`");return t}function xi(e){return"&#x"+e.toString(16).toUpperCase()+";"}function ds(e,t,n){const i=Ra(e),o=Ra(t);return i===void 0?o===void 0?n==="_"?{inside:!0,outside:!0}:{inside:!1,outside:!1}:o===1?{inside:!0,outside:!0}:{inside:!1,outside:!0}:i===1?o===void 0?{inside:!1,outside:!1}:o===1?{inside:!0,outside:!0}:{inside:!1,outside:!1}:o===void 0?{inside:!1,outside:!1}:o===1?{inside:!0,outside:!1}:{inside:!1,outside:!1}}_A.peek=zD;function _A(e,t,n,i){const o=jD(n),l=n.enter("emphasis"),u=n.createTracker(i),c=u.move(o);let p=u.move(n.containerPhrasing(e,{after:o,before:c,...u.current()}));const f=p.charCodeAt(0),m=ds(i.before.charCodeAt(i.before.length-1),f,o);m.inside&&(p=xi(f)+p.slice(1));const h=p.charCodeAt(p.length-1),S=ds(i.after.charCodeAt(0),h,o);S.inside&&(p=p.slice(0,-1)+xi(h));const E=u.move(o);return l(),n.attentionEncodeSurroundingInfo={after:S.outside,before:m.outside},c+p+E}function zD(e,t,n){return n.options.emphasis||"*"}function $D(e,t){let n=!1;return ih(e,function(i){if("value"in i&&/\r?\n|\r/.test(i.value)||i.type==="break")return n=!0,Nm}),!!((!e.depth||e.depth<3)&&Qm(e)&&(t.options.setext||n))}function qD(e,t,n,i){const o=Math.max(Math.min(6,e.depth||1),1),l=n.createTracker(i);if($D(e,n)){const m=n.enter("headingSetext"),h=n.enter("phrasing"),S=n.containerPhrasing(e,{...l.current(),before:` +`)),m+=c.move(p),f(),m}function BD(e,t,n){return(n?"":" ")+e}function sh(e){const t=e.options.quote||'"';if(t!=='"'&&t!=="'")throw new Error("Cannot serialize title with `"+t+"` for `options.quote`, expected `\"`, or `'`");return t}function jD(e,t,n,i){const o=sh(n),l=o==='"'?"Quote":"Apostrophe",u=n.enter("definition");let c=n.enter("label");const p=n.createTracker(i);let f=p.move("[");return f+=p.move(n.safe(n.associationId(e),{before:f,after:"]",...p.current()})),f+=p.move("]: "),c(),!e.url||/[\0- \u007F]/.test(e.url)?(c=n.enter("destinationLiteral"),f+=p.move("<"),f+=p.move(n.safe(e.url,{before:f,after:">",...p.current()})),f+=p.move(">")):(c=n.enter("destinationRaw"),f+=p.move(n.safe(e.url,{before:f,after:e.title?" ":` +`,...p.current()}))),c(),e.title&&(c=n.enter(`title${l}`),f+=p.move(" "+o),f+=p.move(n.safe(e.title,{before:f,after:o,...p.current()})),f+=p.move(o),c()),u(),f}function zD(e){const t=e.options.emphasis||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize emphasis with `"+t+"` for `options.emphasis`, expected `*`, or `_`");return t}function xi(e){return"&#x"+e.toString(16).toUpperCase()+";"}function ds(e,t,n){const i=Ra(e),o=Ra(t);return i===void 0?o===void 0?n==="_"?{inside:!0,outside:!0}:{inside:!1,outside:!1}:o===1?{inside:!0,outside:!0}:{inside:!1,outside:!0}:i===1?o===void 0?{inside:!1,outside:!1}:o===1?{inside:!0,outside:!0}:{inside:!1,outside:!1}:o===void 0?{inside:!1,outside:!1}:o===1?{inside:!0,outside:!1}:{inside:!1,outside:!1}}_A.peek=$D;function _A(e,t,n,i){const o=zD(n),l=n.enter("emphasis"),u=n.createTracker(i),c=u.move(o);let p=u.move(n.containerPhrasing(e,{after:o,before:c,...u.current()}));const f=p.charCodeAt(0),m=ds(i.before.charCodeAt(i.before.length-1),f,o);m.inside&&(p=xi(f)+p.slice(1));const h=p.charCodeAt(p.length-1),S=ds(i.after.charCodeAt(0),h,o);S.inside&&(p=p.slice(0,-1)+xi(h));const E=u.move(o);return l(),n.attentionEncodeSurroundingInfo={after:S.outside,before:m.outside},c+p+E}function $D(e,t,n){return n.options.emphasis||"*"}function qD(e,t){let n=!1;return ih(e,function(i){if("value"in i&&/\r?\n|\r/.test(i.value)||i.type==="break")return n=!0,Nm}),!!((!e.depth||e.depth<3)&&Qm(e)&&(t.options.setext||n))}function GD(e,t,n,i){const o=Math.max(Math.min(6,e.depth||1),1),l=n.createTracker(i);if(qD(e,n)){const m=n.enter("headingSetext"),h=n.enter("phrasing"),S=n.containerPhrasing(e,{...l.current(),before:` `,after:` `});return h(),m(),S+` `+(o===1?"=":"-").repeat(S.length-(Math.max(S.lastIndexOf("\r"),S.lastIndexOf(` `))+1))}const u="#".repeat(o),c=n.enter("headingAtx"),p=n.enter("phrasing");l.move(u+" ");let f=n.containerPhrasing(e,{before:"# ",after:` -`,...l.current()});return/^[\t ]/.test(f)&&(f=xi(f.charCodeAt(0))+f.slice(1)),f=f?u+" "+f:u,n.options.closeAtx&&(f+=" "+u),p(),c(),f}wA.peek=GD;function wA(e){return e.value||""}function GD(){return"<"}TA.peek=HD;function TA(e,t,n,i){const o=sh(n),l=o==='"'?"Quote":"Apostrophe",u=n.enter("image");let c=n.enter("label");const p=n.createTracker(i);let f=p.move("![");return f+=p.move(n.safe(e.alt,{before:f,after:"]",...p.current()})),f+=p.move("]("),c(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(c=n.enter("destinationLiteral"),f+=p.move("<"),f+=p.move(n.safe(e.url,{before:f,after:">",...p.current()})),f+=p.move(">")):(c=n.enter("destinationRaw"),f+=p.move(n.safe(e.url,{before:f,after:e.title?" ":")",...p.current()}))),c(),e.title&&(c=n.enter(`title${l}`),f+=p.move(" "+o),f+=p.move(n.safe(e.title,{before:f,after:o,...p.current()})),f+=p.move(o),c()),f+=p.move(")"),u(),f}function HD(){return"!"}xA.peek=WD;function xA(e,t,n,i){const o=e.referenceType,l=n.enter("imageReference");let u=n.enter("label");const c=n.createTracker(i);let p=c.move("![");const f=n.safe(e.alt,{before:p,after:"]",...c.current()});p+=c.move(f+"]["),u();const m=n.stack;n.stack=[],u=n.enter("reference");const h=n.safe(n.associationId(e),{before:p,after:"]",...c.current()});return u(),n.stack=m,l(),o==="full"||!f||f!==h?p+=c.move(h+"]"):o==="shortcut"?p=p.slice(0,-1):p+=c.move("]"),p}function WD(){return"!"}AA.peek=VD;function AA(e,t,n){let i=e.value||"",o="`",l=-1;for(;new RegExp("(^|[^`])"+o+"([^`]|$)").test(i);)o+="`";for(/[^ \r\n]/.test(i)&&(/^[ \r\n]/.test(i)&&/[ \r\n]$/.test(i)||/^`|`$/.test(i))&&(i=" "+i+" ");++l\u007F]/.test(e.url))}NA.peek=YD;function NA(e,t,n,i){const o=sh(n),l=o==='"'?"Quote":"Apostrophe",u=n.createTracker(i);let c,p;if(RA(e,n)){const m=n.stack;n.stack=[],c=n.enter("autolink");let h=u.move("<");return h+=u.move(n.containerPhrasing(e,{before:h,after:">",...u.current()})),h+=u.move(">"),c(),n.stack=m,h}c=n.enter("link"),p=n.enter("label");let f=u.move("[");return f+=u.move(n.containerPhrasing(e,{before:f,after:"](",...u.current()})),f+=u.move("]("),p(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(p=n.enter("destinationLiteral"),f+=u.move("<"),f+=u.move(n.safe(e.url,{before:f,after:">",...u.current()})),f+=u.move(">")):(p=n.enter("destinationRaw"),f+=u.move(n.safe(e.url,{before:f,after:e.title?" ":")",...u.current()}))),p(),e.title&&(p=n.enter(`title${l}`),f+=u.move(" "+o),f+=u.move(n.safe(e.title,{before:f,after:o,...u.current()})),f+=u.move(o),p()),f+=u.move(")"),c(),f}function YD(e,t,n){return RA(e,n)?"<":"["}CA.peek=KD;function CA(e,t,n,i){const o=e.referenceType,l=n.enter("linkReference");let u=n.enter("label");const c=n.createTracker(i);let p=c.move("[");const f=n.containerPhrasing(e,{before:p,after:"]",...c.current()});p+=c.move(f+"]["),u();const m=n.stack;n.stack=[],u=n.enter("reference");const h=n.safe(n.associationId(e),{before:p,after:"]",...c.current()});return u(),n.stack=m,l(),o==="full"||!f||f!==h?p+=c.move(h+"]"):o==="shortcut"?p=p.slice(0,-1):p+=c.move("]"),p}function KD(){return"["}function lh(e){const t=e.options.bullet||"*";if(t!=="*"&&t!=="+"&&t!=="-")throw new Error("Cannot serialize items with `"+t+"` for `options.bullet`, expected `*`, `+`, or `-`");return t}function ZD(e){const t=lh(e),n=e.options.bulletOther;if(!n)return t==="*"?"-":"*";if(n!=="*"&&n!=="+"&&n!=="-")throw new Error("Cannot serialize items with `"+n+"` for `options.bulletOther`, expected `*`, `+`, or `-`");if(n===t)throw new Error("Expected `bullet` (`"+t+"`) and `bulletOther` (`"+n+"`) to be different");return n}function XD(e){const t=e.options.bulletOrdered||".";if(t!=="."&&t!==")")throw new Error("Cannot serialize items with `"+t+"` for `options.bulletOrdered`, expected `.` or `)`");return t}function IA(e){const t=e.options.rule||"*";if(t!=="*"&&t!=="-"&&t!=="_")throw new Error("Cannot serialize rules with `"+t+"` for `options.rule`, expected `*`, `-`, or `_`");return t}function QD(e,t,n,i){const o=n.enter("list"),l=n.bulletCurrent;let u=e.ordered?XD(n):lh(n);const c=e.ordered?u==="."?")":".":ZD(n);let p=t&&n.bulletLastUsed?u===n.bulletLastUsed:!1;if(!e.ordered){const m=e.children?e.children[0]:void 0;if((u==="*"||u==="-")&&m&&(!m.children||!m.children[0])&&n.stack[n.stack.length-1]==="list"&&n.stack[n.stack.length-2]==="listItem"&&n.stack[n.stack.length-3]==="list"&&n.stack[n.stack.length-4]==="listItem"&&n.indexStack[n.indexStack.length-1]===0&&n.indexStack[n.indexStack.length-2]===0&&n.indexStack[n.indexStack.length-3]===0&&(p=!0),IA(n)===u&&m){let h=-1;for(;++h-1?t.start:1)+(n.options.incrementListMarker===!1?0:t.children.indexOf(e))+l);let u=l.length+1;(o==="tab"||o==="mixed"&&(t&&t.type==="list"&&t.spread||e.spread))&&(u=Math.ceil(u/4)*4);const c=n.createTracker(i);c.move(l+" ".repeat(u-l.length)),c.shift(u);const p=n.enter("listItem"),f=n.indentLines(n.containerFlow(e,c.current()),m);return p(),f;function m(h,S,E){return S?(E?"":" ".repeat(u))+h:(E?l:l+" ".repeat(u-l.length))+h}}function t2(e,t,n,i){const o=n.enter("paragraph"),l=n.enter("phrasing"),u=n.containerPhrasing(e,i);return l(),o(),u}const n2=Ss(["break","delete","emphasis","footnote","footnoteReference","image","imageReference","inlineCode","inlineMath","link","linkReference","mdxJsxTextElement","mdxTextExpression","strong","text","textDirective"]);function r2(e,t,n,i){return(e.children.some(function(u){return n2(u)})?n.containerPhrasing:n.containerFlow).call(n,e,i)}function a2(e){const t=e.options.strong||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize strong with `"+t+"` for `options.strong`, expected `*`, or `_`");return t}OA.peek=i2;function OA(e,t,n,i){const o=a2(n),l=n.enter("strong"),u=n.createTracker(i),c=u.move(o+o);let p=u.move(n.containerPhrasing(e,{after:o,before:c,...u.current()}));const f=p.charCodeAt(0),m=ds(i.before.charCodeAt(i.before.length-1),f,o);m.inside&&(p=xi(f)+p.slice(1));const h=p.charCodeAt(p.length-1),S=ds(i.after.charCodeAt(0),h,o);S.inside&&(p=p.slice(0,-1)+xi(h));const E=u.move(o+o);return l(),n.attentionEncodeSurroundingInfo={after:S.outside,before:m.outside},c+p+E}function i2(e,t,n){return n.options.strong||"*"}function o2(e,t,n,i){return n.safe(e.value,i)}function s2(e){const t=e.options.ruleRepetition||3;if(t<3)throw new Error("Cannot serialize rules with repetition `"+t+"` for `options.ruleRepetition`, expected `3` or more");return t}function l2(e,t,n){const i=(IA(n)+(n.options.ruleSpaces?" ":"")).repeat(s2(n));return n.options.ruleSpaces?i.slice(0,-1):i}const LA={blockquote:ID,break:fS,code:PD,definition:BD,emphasis:_A,hardBreak:fS,heading:qD,html:wA,image:TA,imageReference:xA,inlineCode:AA,link:NA,linkReference:CA,list:QD,listItem:e2,paragraph:t2,root:r2,strong:OA,text:o2,thematicBreak:l2};function u2(){return{enter:{table:c2,tableData:gS,tableHeader:gS,tableRow:p2},exit:{codeText:f2,table:d2,tableData:Cu,tableHeader:Cu,tableRow:Cu}}}function c2(e){const t=e._align;this.enter({type:"table",align:t.map(function(n){return n==="none"?null:n}),children:[]},e),this.data.inTable=!0}function d2(e){this.exit(e),this.data.inTable=void 0}function p2(e){this.enter({type:"tableRow",children:[]},e)}function Cu(e){this.exit(e)}function gS(e){this.enter({type:"tableCell",children:[]},e)}function f2(e){let t=this.resume();this.data.inTable&&(t=t.replace(/\\([\\|])/g,g2));const n=this.stack[this.stack.length-1];n.type,n.value=t,this.exit(e)}function g2(e,t){return t==="|"?t:e}function m2(e){const t=e||{},n=t.tableCellPadding,i=t.tablePipeAlign,o=t.stringLength,l=n?" ":"|";return{unsafe:[{character:"\r",inConstruct:"tableCell"},{character:` +`,...l.current()});return/^[\t ]/.test(f)&&(f=xi(f.charCodeAt(0))+f.slice(1)),f=f?u+" "+f:u,n.options.closeAtx&&(f+=" "+u),p(),c(),f}wA.peek=HD;function wA(e){return e.value||""}function HD(){return"<"}TA.peek=WD;function TA(e,t,n,i){const o=sh(n),l=o==='"'?"Quote":"Apostrophe",u=n.enter("image");let c=n.enter("label");const p=n.createTracker(i);let f=p.move("![");return f+=p.move(n.safe(e.alt,{before:f,after:"]",...p.current()})),f+=p.move("]("),c(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(c=n.enter("destinationLiteral"),f+=p.move("<"),f+=p.move(n.safe(e.url,{before:f,after:">",...p.current()})),f+=p.move(">")):(c=n.enter("destinationRaw"),f+=p.move(n.safe(e.url,{before:f,after:e.title?" ":")",...p.current()}))),c(),e.title&&(c=n.enter(`title${l}`),f+=p.move(" "+o),f+=p.move(n.safe(e.title,{before:f,after:o,...p.current()})),f+=p.move(o),c()),f+=p.move(")"),u(),f}function WD(){return"!"}xA.peek=VD;function xA(e,t,n,i){const o=e.referenceType,l=n.enter("imageReference");let u=n.enter("label");const c=n.createTracker(i);let p=c.move("![");const f=n.safe(e.alt,{before:p,after:"]",...c.current()});p+=c.move(f+"]["),u();const m=n.stack;n.stack=[],u=n.enter("reference");const h=n.safe(n.associationId(e),{before:p,after:"]",...c.current()});return u(),n.stack=m,l(),o==="full"||!f||f!==h?p+=c.move(h+"]"):o==="shortcut"?p=p.slice(0,-1):p+=c.move("]"),p}function VD(){return"!"}AA.peek=YD;function AA(e,t,n){let i=e.value||"",o="`",l=-1;for(;new RegExp("(^|[^`])"+o+"([^`]|$)").test(i);)o+="`";for(/[^ \r\n]/.test(i)&&(/^[ \r\n]/.test(i)&&/[ \r\n]$/.test(i)||/^`|`$/.test(i))&&(i=" "+i+" ");++l\u007F]/.test(e.url))}NA.peek=KD;function NA(e,t,n,i){const o=sh(n),l=o==='"'?"Quote":"Apostrophe",u=n.createTracker(i);let c,p;if(RA(e,n)){const m=n.stack;n.stack=[],c=n.enter("autolink");let h=u.move("<");return h+=u.move(n.containerPhrasing(e,{before:h,after:">",...u.current()})),h+=u.move(">"),c(),n.stack=m,h}c=n.enter("link"),p=n.enter("label");let f=u.move("[");return f+=u.move(n.containerPhrasing(e,{before:f,after:"](",...u.current()})),f+=u.move("]("),p(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(p=n.enter("destinationLiteral"),f+=u.move("<"),f+=u.move(n.safe(e.url,{before:f,after:">",...u.current()})),f+=u.move(">")):(p=n.enter("destinationRaw"),f+=u.move(n.safe(e.url,{before:f,after:e.title?" ":")",...u.current()}))),p(),e.title&&(p=n.enter(`title${l}`),f+=u.move(" "+o),f+=u.move(n.safe(e.title,{before:f,after:o,...u.current()})),f+=u.move(o),p()),f+=u.move(")"),c(),f}function KD(e,t,n){return RA(e,n)?"<":"["}CA.peek=ZD;function CA(e,t,n,i){const o=e.referenceType,l=n.enter("linkReference");let u=n.enter("label");const c=n.createTracker(i);let p=c.move("[");const f=n.containerPhrasing(e,{before:p,after:"]",...c.current()});p+=c.move(f+"]["),u();const m=n.stack;n.stack=[],u=n.enter("reference");const h=n.safe(n.associationId(e),{before:p,after:"]",...c.current()});return u(),n.stack=m,l(),o==="full"||!f||f!==h?p+=c.move(h+"]"):o==="shortcut"?p=p.slice(0,-1):p+=c.move("]"),p}function ZD(){return"["}function lh(e){const t=e.options.bullet||"*";if(t!=="*"&&t!=="+"&&t!=="-")throw new Error("Cannot serialize items with `"+t+"` for `options.bullet`, expected `*`, `+`, or `-`");return t}function XD(e){const t=lh(e),n=e.options.bulletOther;if(!n)return t==="*"?"-":"*";if(n!=="*"&&n!=="+"&&n!=="-")throw new Error("Cannot serialize items with `"+n+"` for `options.bulletOther`, expected `*`, `+`, or `-`");if(n===t)throw new Error("Expected `bullet` (`"+t+"`) and `bulletOther` (`"+n+"`) to be different");return n}function QD(e){const t=e.options.bulletOrdered||".";if(t!=="."&&t!==")")throw new Error("Cannot serialize items with `"+t+"` for `options.bulletOrdered`, expected `.` or `)`");return t}function IA(e){const t=e.options.rule||"*";if(t!=="*"&&t!=="-"&&t!=="_")throw new Error("Cannot serialize rules with `"+t+"` for `options.rule`, expected `*`, `-`, or `_`");return t}function JD(e,t,n,i){const o=n.enter("list"),l=n.bulletCurrent;let u=e.ordered?QD(n):lh(n);const c=e.ordered?u==="."?")":".":XD(n);let p=t&&n.bulletLastUsed?u===n.bulletLastUsed:!1;if(!e.ordered){const m=e.children?e.children[0]:void 0;if((u==="*"||u==="-")&&m&&(!m.children||!m.children[0])&&n.stack[n.stack.length-1]==="list"&&n.stack[n.stack.length-2]==="listItem"&&n.stack[n.stack.length-3]==="list"&&n.stack[n.stack.length-4]==="listItem"&&n.indexStack[n.indexStack.length-1]===0&&n.indexStack[n.indexStack.length-2]===0&&n.indexStack[n.indexStack.length-3]===0&&(p=!0),IA(n)===u&&m){let h=-1;for(;++h-1?t.start:1)+(n.options.incrementListMarker===!1?0:t.children.indexOf(e))+l);let u=l.length+1;(o==="tab"||o==="mixed"&&(t&&t.type==="list"&&t.spread||e.spread))&&(u=Math.ceil(u/4)*4);const c=n.createTracker(i);c.move(l+" ".repeat(u-l.length)),c.shift(u);const p=n.enter("listItem"),f=n.indentLines(n.containerFlow(e,c.current()),m);return p(),f;function m(h,S,E){return S?(E?"":" ".repeat(u))+h:(E?l:l+" ".repeat(u-l.length))+h}}function n2(e,t,n,i){const o=n.enter("paragraph"),l=n.enter("phrasing"),u=n.containerPhrasing(e,i);return l(),o(),u}const r2=Ss(["break","delete","emphasis","footnote","footnoteReference","image","imageReference","inlineCode","inlineMath","link","linkReference","mdxJsxTextElement","mdxTextExpression","strong","text","textDirective"]);function a2(e,t,n,i){return(e.children.some(function(u){return r2(u)})?n.containerPhrasing:n.containerFlow).call(n,e,i)}function i2(e){const t=e.options.strong||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize strong with `"+t+"` for `options.strong`, expected `*`, or `_`");return t}OA.peek=o2;function OA(e,t,n,i){const o=i2(n),l=n.enter("strong"),u=n.createTracker(i),c=u.move(o+o);let p=u.move(n.containerPhrasing(e,{after:o,before:c,...u.current()}));const f=p.charCodeAt(0),m=ds(i.before.charCodeAt(i.before.length-1),f,o);m.inside&&(p=xi(f)+p.slice(1));const h=p.charCodeAt(p.length-1),S=ds(i.after.charCodeAt(0),h,o);S.inside&&(p=p.slice(0,-1)+xi(h));const E=u.move(o+o);return l(),n.attentionEncodeSurroundingInfo={after:S.outside,before:m.outside},c+p+E}function o2(e,t,n){return n.options.strong||"*"}function s2(e,t,n,i){return n.safe(e.value,i)}function l2(e){const t=e.options.ruleRepetition||3;if(t<3)throw new Error("Cannot serialize rules with repetition `"+t+"` for `options.ruleRepetition`, expected `3` or more");return t}function u2(e,t,n){const i=(IA(n)+(n.options.ruleSpaces?" ":"")).repeat(l2(n));return n.options.ruleSpaces?i.slice(0,-1):i}const LA={blockquote:OD,break:fS,code:UD,definition:jD,emphasis:_A,hardBreak:fS,heading:GD,html:wA,image:TA,imageReference:xA,inlineCode:AA,link:NA,linkReference:CA,list:JD,listItem:t2,paragraph:n2,root:a2,strong:OA,text:s2,thematicBreak:u2};function c2(){return{enter:{table:d2,tableData:gS,tableHeader:gS,tableRow:f2},exit:{codeText:g2,table:p2,tableData:Cu,tableHeader:Cu,tableRow:Cu}}}function d2(e){const t=e._align;this.enter({type:"table",align:t.map(function(n){return n==="none"?null:n}),children:[]},e),this.data.inTable=!0}function p2(e){this.exit(e),this.data.inTable=void 0}function f2(e){this.enter({type:"tableRow",children:[]},e)}function Cu(e){this.exit(e)}function gS(e){this.enter({type:"tableCell",children:[]},e)}function g2(e){let t=this.resume();this.data.inTable&&(t=t.replace(/\\([\\|])/g,m2));const n=this.stack[this.stack.length-1];n.type,n.value=t,this.exit(e)}function m2(e,t){return t==="|"?t:e}function h2(e){const t=e||{},n=t.tableCellPadding,i=t.tablePipeAlign,o=t.stringLength,l=n?" ":"|";return{unsafe:[{character:"\r",inConstruct:"tableCell"},{character:` `,inConstruct:"tableCell"},{atBreak:!0,character:"|",after:"[ :-]"},{character:"|",inConstruct:"tableCell"},{atBreak:!0,character:":",after:"-"},{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{inlineCode:S,table:u,tableCell:p,tableRow:c}};function u(E,v,k,T){return f(m(E,k,T),E.align)}function c(E,v,k,T){const N=h(E,k,T),R=f([N]);return R.slice(0,R.indexOf(` -`))}function p(E,v,k,T){const N=k.enter("tableCell"),R=k.enter("phrasing"),A=k.containerPhrasing(E,{...T,before:l,after:l});return R(),N(),A}function f(E,v){return ND(E,{align:v,alignDelimiters:i,padding:n,stringLength:o})}function m(E,v,k){const T=E.children;let N=-1;const R=[],A=v.enter("table");for(;++N0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}const L2={tokenize:z2,partial:!0};function D2(){return{document:{91:{name:"gfmFootnoteDefinition",tokenize:U2,continuation:{tokenize:B2},exit:j2}},text:{91:{name:"gfmFootnoteCall",tokenize:P2},93:{name:"gfmPotentialFootnoteCall",add:"after",tokenize:M2,resolveTo:F2}}}}function M2(e,t,n){const i=this;let o=i.events.length;const l=i.parser.gfmFootnotes||(i.parser.gfmFootnotes=[]);let u;for(;o--;){const p=i.events[o][1];if(p.type==="labelImage"){u=p;break}if(p.type==="gfmFootnoteCall"||p.type==="labelLink"||p.type==="label"||p.type==="image"||p.type==="link")break}return c;function c(p){if(!u||!u._balanced)return n(p);const f=On(i.sliceSerialize({start:u.end,end:i.now()}));return f.codePointAt(0)!==94||!l.includes(f.slice(1))?n(p):(e.enter("gfmFootnoteCallLabelMarker"),e.consume(p),e.exit("gfmFootnoteCallLabelMarker"),t(p))}}function F2(e,t){let n=e.length;for(;n--;)if(e[n][1].type==="labelImage"&&e[n][0]==="enter"){e[n][1];break}e[n+1][1].type="data",e[n+3][1].type="gfmFootnoteCallLabelMarker";const i={type:"gfmFootnoteCall",start:Object.assign({},e[n+3][1].start),end:Object.assign({},e[e.length-1][1].end)},o={type:"gfmFootnoteCallMarker",start:Object.assign({},e[n+3][1].end),end:Object.assign({},e[n+3][1].end)};o.end.column++,o.end.offset++,o.end._bufferIndex++;const l={type:"gfmFootnoteCallString",start:Object.assign({},o.end),end:Object.assign({},e[e.length-1][1].start)},u={type:"chunkString",contentType:"string",start:Object.assign({},l.start),end:Object.assign({},l.end)},c=[e[n+1],e[n+2],["enter",i,t],e[n+3],e[n+4],["enter",o,t],["exit",o,t],["enter",l,t],["enter",u,t],["exit",u,t],["exit",l,t],e[e.length-2],e[e.length-1],["exit",i,t]];return e.splice(n,e.length-n+1,...c),e}function P2(e,t,n){const i=this,o=i.parser.gfmFootnotes||(i.parser.gfmFootnotes=[]);let l=0,u;return c;function c(h){return e.enter("gfmFootnoteCall"),e.enter("gfmFootnoteCallLabelMarker"),e.consume(h),e.exit("gfmFootnoteCallLabelMarker"),p}function p(h){return h!==94?n(h):(e.enter("gfmFootnoteCallMarker"),e.consume(h),e.exit("gfmFootnoteCallMarker"),e.enter("gfmFootnoteCallString"),e.enter("chunkString").contentType="string",f)}function f(h){if(l>999||h===93&&!u||h===null||h===91||He(h))return n(h);if(h===93){e.exit("chunkString");const S=e.exit("gfmFootnoteCallString");return o.includes(On(i.sliceSerialize(S)))?(e.enter("gfmFootnoteCallLabelMarker"),e.consume(h),e.exit("gfmFootnoteCallLabelMarker"),e.exit("gfmFootnoteCall"),t):n(h)}return He(h)||(u=!0),l++,e.consume(h),h===92?m:f}function m(h){return h===91||h===92||h===93?(e.consume(h),l++,f):f(h)}}function U2(e,t,n){const i=this,o=i.parser.gfmFootnotes||(i.parser.gfmFootnotes=[]);let l,u=0,c;return p;function p(v){return e.enter("gfmFootnoteDefinition")._container=!0,e.enter("gfmFootnoteDefinitionLabel"),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(v),e.exit("gfmFootnoteDefinitionLabelMarker"),f}function f(v){return v===94?(e.enter("gfmFootnoteDefinitionMarker"),e.consume(v),e.exit("gfmFootnoteDefinitionMarker"),e.enter("gfmFootnoteDefinitionLabelString"),e.enter("chunkString").contentType="string",m):n(v)}function m(v){if(u>999||v===93&&!c||v===null||v===91||He(v))return n(v);if(v===93){e.exit("chunkString");const k=e.exit("gfmFootnoteDefinitionLabelString");return l=On(i.sliceSerialize(k)),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(v),e.exit("gfmFootnoteDefinitionLabelMarker"),e.exit("gfmFootnoteDefinitionLabel"),S}return He(v)||(c=!0),u++,e.consume(v),v===92?h:m}function h(v){return v===91||v===92||v===93?(e.consume(v),u++,m):m(v)}function S(v){return v===58?(e.enter("definitionMarker"),e.consume(v),e.exit("definitionMarker"),o.includes(l)||o.push(l),Pe(e,E,"gfmFootnoteDefinitionWhitespace")):n(v)}function E(v){return t(v)}}function B2(e,t,n){return e.check(Ii,t,e.attempt(L2,t,n))}function j2(e){e.exit("gfmFootnoteDefinition")}function z2(e,t,n){const i=this;return Pe(e,o,"gfmFootnoteDefinitionIndent",5);function o(l){const u=i.events[i.events.length-1];return u&&u[1].type==="gfmFootnoteDefinitionIndent"&&u[2].sliceSerialize(u[1],!0).length===4?t(l):n(l)}}function $2(e){let n=(e||{}).singleTilde;const i={name:"strikethrough",tokenize:l,resolveAll:o};return n==null&&(n=!0),{text:{126:i},insideSpan:{null:[i]},attentionMarkers:{null:[126]}};function o(u,c){let p=-1;for(;++p1?p(v):(u.consume(v),h++,E);if(h<2&&!n)return p(v);const T=u.exit("strikethroughSequenceTemporary"),N=Ra(v);return T._open=!N||N===2&&!!k,T._close=!k||k===2&&!!N,c(v)}}}class q2{constructor(){this.map=[]}add(t,n,i){G2(this,t,n,i)}consume(t){if(this.map.sort(function(l,u){return l[0]-u[0]}),this.map.length===0)return;let n=this.map.length;const i=[];for(;n>0;)n-=1,i.push(t.slice(this.map[n][0]+this.map[n][1]),this.map[n][2]),t.length=this.map[n][0];i.push(t.slice()),t.length=0;let o=i.pop();for(;o;){for(const l of o)t.push(l);o=i.pop()}this.map.length=0}}function G2(e,t,n,i){let o=0;if(!(n===0&&i.length===0)){for(;o-1;){const Z=i.events[Y][1].type;if(Z==="lineEnding"||Z==="linePrefix")Y--;else break}const J=Y>-1?i.events[Y][1].type:null,de=J==="tableHead"||J==="tableRow"?w:p;return de===w&&i.parser.lazy[i.now().line]?n(M):de(M)}function p(M){return e.enter("tableHead"),e.enter("tableRow"),f(M)}function f(M){return M===124||(u=!0,l+=1),m(M)}function m(M){return M===null?n(M):xe(M)?l>1?(l=0,i.interrupt=!0,e.exit("tableRow"),e.enter("lineEnding"),e.consume(M),e.exit("lineEnding"),E):n(M):Fe(M)?Pe(e,m,"whitespace")(M):(l+=1,u&&(u=!1,o+=1),M===124?(e.enter("tableCellDivider"),e.consume(M),e.exit("tableCellDivider"),u=!0,m):(e.enter("data"),h(M)))}function h(M){return M===null||M===124||He(M)?(e.exit("data"),m(M)):(e.consume(M),M===92?S:h)}function S(M){return M===92||M===124?(e.consume(M),h):h(M)}function E(M){return i.interrupt=!1,i.parser.lazy[i.now().line]?n(M):(e.enter("tableDelimiterRow"),u=!1,Fe(M)?Pe(e,v,"linePrefix",i.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(M):v(M))}function v(M){return M===45||M===58?T(M):M===124?(u=!0,e.enter("tableCellDivider"),e.consume(M),e.exit("tableCellDivider"),k):L(M)}function k(M){return Fe(M)?Pe(e,T,"whitespace")(M):T(M)}function T(M){return M===58?(l+=1,u=!0,e.enter("tableDelimiterMarker"),e.consume(M),e.exit("tableDelimiterMarker"),N):M===45?(l+=1,N(M)):M===null||xe(M)?O(M):L(M)}function N(M){return M===45?(e.enter("tableDelimiterFiller"),R(M)):L(M)}function R(M){return M===45?(e.consume(M),R):M===58?(u=!0,e.exit("tableDelimiterFiller"),e.enter("tableDelimiterMarker"),e.consume(M),e.exit("tableDelimiterMarker"),A):(e.exit("tableDelimiterFiller"),A(M))}function A(M){return Fe(M)?Pe(e,O,"whitespace")(M):O(M)}function O(M){return M===124?v(M):M===null||xe(M)?!u||o!==l?L(M):(e.exit("tableDelimiterRow"),e.exit("tableHead"),t(M)):L(M)}function L(M){return n(M)}function w(M){return e.enter("tableRow"),B(M)}function B(M){return M===124?(e.enter("tableCellDivider"),e.consume(M),e.exit("tableCellDivider"),B):M===null||xe(M)?(e.exit("tableRow"),t(M)):Fe(M)?Pe(e,B,"whitespace")(M):(e.enter("data"),W(M))}function W(M){return M===null||M===124||He(M)?(e.exit("data"),B(M)):(e.consume(M),M===92?j:W)}function j(M){return M===92||M===124?(e.consume(M),W):W(M)}}function Y2(e,t){let n=-1,i=!0,o=0,l=[0,0,0,0],u=[0,0,0,0],c=!1,p=0,f,m,h;const S=new q2;for(;++nn[2]+1){const v=n[2]+1,k=n[3]-n[2]-1;e.add(v,k,[])}}e.add(n[3]+1,0,[["exit",h,t]])}return o!==void 0&&(l.end=Object.assign({},_a(t.events,o)),e.add(o,0,[["exit",l,t]]),l=void 0),l}function hS(e,t,n,i,o){const l=[],u=_a(t.events,n);o&&(o.end=Object.assign({},u),l.push(["exit",o,t])),i.end=Object.assign({},u),l.push(["exit",i,t]),e.add(n+1,0,l)}function _a(e,t){const n=e[t],i=n[0]==="enter"?"start":"end";return n[1][i]}const K2={name:"tasklistCheck",tokenize:X2};function Z2(){return{text:{91:K2}}}function X2(e,t,n){const i=this;return o;function o(p){return i.previous!==null||!i._gfmTasklistFirstContentOfListItem?n(p):(e.enter("taskListCheck"),e.enter("taskListCheckMarker"),e.consume(p),e.exit("taskListCheckMarker"),l)}function l(p){return He(p)?(e.enter("taskListCheckValueUnchecked"),e.consume(p),e.exit("taskListCheckValueUnchecked"),u):p===88||p===120?(e.enter("taskListCheckValueChecked"),e.consume(p),e.exit("taskListCheckValueChecked"),u):n(p)}function u(p){return p===93?(e.enter("taskListCheckMarker"),e.consume(p),e.exit("taskListCheckMarker"),e.exit("taskListCheck"),c):n(p)}function c(p){return xe(p)?t(p):Fe(p)?e.check({tokenize:Q2},t,n)(p):n(p)}}function Q2(e,t,n){return Pe(e,i,"whitespace");function i(o){return o===null?n(o):t(o)}}function J2(e){return Qx([w2(),D2(),$2(e),W2(),Z2()])}const eM={};function tM(e){const t=this,n=e||eM,i=t.data(),o=i.micromarkExtensions||(i.micromarkExtensions=[]),l=i.fromMarkdownExtensions||(i.fromMarkdownExtensions=[]),u=i.toMarkdownExtensions||(i.toMarkdownExtensions=[]);o.push(J2(n)),l.push(S2()),u.push(v2(n))}function nM(e,t){if(e==null)return{};var n={};for(var i in e)if({}.hasOwnProperty.call(e,i)){if(t.indexOf(i)!==-1)continue;n[i]=e[i]}return n}function rM(e,t){if(e==null)return{};var n,i,o=nM(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(i=0;ie.length)&&(t=e.length);for(var n=0,i=Array(t);n=4)return[e[0],e[1],e[2],e[3],"".concat(e[0],".").concat(e[1]),"".concat(e[0],".").concat(e[2]),"".concat(e[0],".").concat(e[3]),"".concat(e[1],".").concat(e[0]),"".concat(e[1],".").concat(e[2]),"".concat(e[1],".").concat(e[3]),"".concat(e[2],".").concat(e[0]),"".concat(e[2],".").concat(e[1]),"".concat(e[2],".").concat(e[3]),"".concat(e[3],".").concat(e[0]),"".concat(e[3],".").concat(e[1]),"".concat(e[3],".").concat(e[2]),"".concat(e[0],".").concat(e[1],".").concat(e[2]),"".concat(e[0],".").concat(e[1],".").concat(e[3]),"".concat(e[0],".").concat(e[2],".").concat(e[1]),"".concat(e[0],".").concat(e[2],".").concat(e[3]),"".concat(e[0],".").concat(e[3],".").concat(e[1]),"".concat(e[0],".").concat(e[3],".").concat(e[2]),"".concat(e[1],".").concat(e[0],".").concat(e[2]),"".concat(e[1],".").concat(e[0],".").concat(e[3]),"".concat(e[1],".").concat(e[2],".").concat(e[0]),"".concat(e[1],".").concat(e[2],".").concat(e[3]),"".concat(e[1],".").concat(e[3],".").concat(e[0]),"".concat(e[1],".").concat(e[3],".").concat(e[2]),"".concat(e[2],".").concat(e[0],".").concat(e[1]),"".concat(e[2],".").concat(e[0],".").concat(e[3]),"".concat(e[2],".").concat(e[1],".").concat(e[0]),"".concat(e[2],".").concat(e[1],".").concat(e[3]),"".concat(e[2],".").concat(e[3],".").concat(e[0]),"".concat(e[2],".").concat(e[3],".").concat(e[1]),"".concat(e[3],".").concat(e[0],".").concat(e[1]),"".concat(e[3],".").concat(e[0],".").concat(e[2]),"".concat(e[3],".").concat(e[1],".").concat(e[0]),"".concat(e[3],".").concat(e[1],".").concat(e[2]),"".concat(e[3],".").concat(e[2],".").concat(e[0]),"".concat(e[3],".").concat(e[2],".").concat(e[1]),"".concat(e[0],".").concat(e[1],".").concat(e[2],".").concat(e[3]),"".concat(e[0],".").concat(e[1],".").concat(e[3],".").concat(e[2]),"".concat(e[0],".").concat(e[2],".").concat(e[1],".").concat(e[3]),"".concat(e[0],".").concat(e[2],".").concat(e[3],".").concat(e[1]),"".concat(e[0],".").concat(e[3],".").concat(e[1],".").concat(e[2]),"".concat(e[0],".").concat(e[3],".").concat(e[2],".").concat(e[1]),"".concat(e[1],".").concat(e[0],".").concat(e[2],".").concat(e[3]),"".concat(e[1],".").concat(e[0],".").concat(e[3],".").concat(e[2]),"".concat(e[1],".").concat(e[2],".").concat(e[0],".").concat(e[3]),"".concat(e[1],".").concat(e[2],".").concat(e[3],".").concat(e[0]),"".concat(e[1],".").concat(e[3],".").concat(e[0],".").concat(e[2]),"".concat(e[1],".").concat(e[3],".").concat(e[2],".").concat(e[0]),"".concat(e[2],".").concat(e[0],".").concat(e[1],".").concat(e[3]),"".concat(e[2],".").concat(e[0],".").concat(e[3],".").concat(e[1]),"".concat(e[2],".").concat(e[1],".").concat(e[0],".").concat(e[3]),"".concat(e[2],".").concat(e[1],".").concat(e[3],".").concat(e[0]),"".concat(e[2],".").concat(e[3],".").concat(e[0],".").concat(e[1]),"".concat(e[2],".").concat(e[3],".").concat(e[1],".").concat(e[0]),"".concat(e[3],".").concat(e[0],".").concat(e[1],".").concat(e[2]),"".concat(e[3],".").concat(e[0],".").concat(e[2],".").concat(e[1]),"".concat(e[3],".").concat(e[1],".").concat(e[0],".").concat(e[2]),"".concat(e[3],".").concat(e[1],".").concat(e[2],".").concat(e[0]),"".concat(e[3],".").concat(e[2],".").concat(e[0],".").concat(e[1]),"".concat(e[3],".").concat(e[2],".").concat(e[1],".").concat(e[0])]}var Iu={};function dM(e){if(e.length===0||e.length===1)return e;var t=e.join(".");return Iu[t]||(Iu[t]=cM(e)),Iu[t]}function pM(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0,i=e.filter(function(l){return l!=="token"}),o=dM(i);return o.reduce(function(l,u){return wa(wa({},l),n[u])},t)}function yS(e){return e.join(" ")}function fM(e,t){var n=0;return function(i){return n+=1,i.map(function(o,l){return qA({node:o,stylesheet:e,useInlineStyles:t,key:"code-segment-".concat(n,"-").concat(l)})})}}function qA(e){var t=e.node,n=e.stylesheet,i=e.style,o=i===void 0?{}:i,l=e.useInlineStyles,u=e.key,c=t.properties,p=t.type,f=t.tagName,m=t.value;if(p==="text")return m;if(f){var h=fM(n,l),S;if(!l)S=wa(wa({},c),{},{className:yS(c.className)});else{var E=Object.keys(n).reduce(function(N,R){return R.split(".").forEach(function(A){N.includes(A)||N.push(A)}),N},[]),v=c.className&&c.className.includes("token")?["token"]:[],k=c.className&&v.concat(c.className.filter(function(N){return!E.includes(N)}));S=wa(wa({},c),{},{className:yS(k)||void 0,style:pM(c.className,Object.assign({},c.style,o),n)})}var T=h(t.children);return ct.createElement(f,Fm({key:u},S),T)}}const gM=(function(e,t){var n=e.listLanguages();return n.indexOf(t)!==-1});var mM=["language","children","style","customStyle","codeTagProps","useInlineStyles","showLineNumbers","showInlineLineNumbers","startingLineNumber","lineNumberContainerStyle","lineNumberStyle","wrapLines","wrapLongLines","lineProps","renderer","PreTag","CodeTag","code","astGenerator"];function ES(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),n.push.apply(n,i)}return n}function Tr(e){for(var t=1;t1&&arguments[1]!==void 0?arguments[1]:[],n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[],i=0;i2&&arguments[2]!==void 0?arguments[2]:[];return rs({children:L,lineNumber:w,lineNumberStyle:c,largestLineNumber:u,showInlineLineNumbers:o,lineProps:n,className:B,showLineNumbers:i,wrapLongLines:p,wrapLines:t})}function k(L,w){if(i&&w&&o){var B=HA(c,w,u);L.unshift(GA(w,B))}return L}function T(L,w){var B=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[];return t||B.length>0?v(L,w,B):k(L,w)}for(var N=function(){var w=m[E],B=w.children[0].value,W=bM(B);if(W){var j=B.split(` +`))}function p(E,v,k,T){const N=k.enter("tableCell"),R=k.enter("phrasing"),A=k.containerPhrasing(E,{...T,before:l,after:l});return R(),N(),A}function f(E,v){return CD(E,{align:v,alignDelimiters:i,padding:n,stringLength:o})}function m(E,v,k){const T=E.children;let N=-1;const R=[],A=v.enter("table");for(;++N0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}const D2={tokenize:$2,partial:!0};function M2(){return{document:{91:{name:"gfmFootnoteDefinition",tokenize:B2,continuation:{tokenize:j2},exit:z2}},text:{91:{name:"gfmFootnoteCall",tokenize:U2},93:{name:"gfmPotentialFootnoteCall",add:"after",tokenize:F2,resolveTo:P2}}}}function F2(e,t,n){const i=this;let o=i.events.length;const l=i.parser.gfmFootnotes||(i.parser.gfmFootnotes=[]);let u;for(;o--;){const p=i.events[o][1];if(p.type==="labelImage"){u=p;break}if(p.type==="gfmFootnoteCall"||p.type==="labelLink"||p.type==="label"||p.type==="image"||p.type==="link")break}return c;function c(p){if(!u||!u._balanced)return n(p);const f=On(i.sliceSerialize({start:u.end,end:i.now()}));return f.codePointAt(0)!==94||!l.includes(f.slice(1))?n(p):(e.enter("gfmFootnoteCallLabelMarker"),e.consume(p),e.exit("gfmFootnoteCallLabelMarker"),t(p))}}function P2(e,t){let n=e.length;for(;n--;)if(e[n][1].type==="labelImage"&&e[n][0]==="enter"){e[n][1];break}e[n+1][1].type="data",e[n+3][1].type="gfmFootnoteCallLabelMarker";const i={type:"gfmFootnoteCall",start:Object.assign({},e[n+3][1].start),end:Object.assign({},e[e.length-1][1].end)},o={type:"gfmFootnoteCallMarker",start:Object.assign({},e[n+3][1].end),end:Object.assign({},e[n+3][1].end)};o.end.column++,o.end.offset++,o.end._bufferIndex++;const l={type:"gfmFootnoteCallString",start:Object.assign({},o.end),end:Object.assign({},e[e.length-1][1].start)},u={type:"chunkString",contentType:"string",start:Object.assign({},l.start),end:Object.assign({},l.end)},c=[e[n+1],e[n+2],["enter",i,t],e[n+3],e[n+4],["enter",o,t],["exit",o,t],["enter",l,t],["enter",u,t],["exit",u,t],["exit",l,t],e[e.length-2],e[e.length-1],["exit",i,t]];return e.splice(n,e.length-n+1,...c),e}function U2(e,t,n){const i=this,o=i.parser.gfmFootnotes||(i.parser.gfmFootnotes=[]);let l=0,u;return c;function c(h){return e.enter("gfmFootnoteCall"),e.enter("gfmFootnoteCallLabelMarker"),e.consume(h),e.exit("gfmFootnoteCallLabelMarker"),p}function p(h){return h!==94?n(h):(e.enter("gfmFootnoteCallMarker"),e.consume(h),e.exit("gfmFootnoteCallMarker"),e.enter("gfmFootnoteCallString"),e.enter("chunkString").contentType="string",f)}function f(h){if(l>999||h===93&&!u||h===null||h===91||He(h))return n(h);if(h===93){e.exit("chunkString");const S=e.exit("gfmFootnoteCallString");return o.includes(On(i.sliceSerialize(S)))?(e.enter("gfmFootnoteCallLabelMarker"),e.consume(h),e.exit("gfmFootnoteCallLabelMarker"),e.exit("gfmFootnoteCall"),t):n(h)}return He(h)||(u=!0),l++,e.consume(h),h===92?m:f}function m(h){return h===91||h===92||h===93?(e.consume(h),l++,f):f(h)}}function B2(e,t,n){const i=this,o=i.parser.gfmFootnotes||(i.parser.gfmFootnotes=[]);let l,u=0,c;return p;function p(v){return e.enter("gfmFootnoteDefinition")._container=!0,e.enter("gfmFootnoteDefinitionLabel"),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(v),e.exit("gfmFootnoteDefinitionLabelMarker"),f}function f(v){return v===94?(e.enter("gfmFootnoteDefinitionMarker"),e.consume(v),e.exit("gfmFootnoteDefinitionMarker"),e.enter("gfmFootnoteDefinitionLabelString"),e.enter("chunkString").contentType="string",m):n(v)}function m(v){if(u>999||v===93&&!c||v===null||v===91||He(v))return n(v);if(v===93){e.exit("chunkString");const k=e.exit("gfmFootnoteDefinitionLabelString");return l=On(i.sliceSerialize(k)),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(v),e.exit("gfmFootnoteDefinitionLabelMarker"),e.exit("gfmFootnoteDefinitionLabel"),S}return He(v)||(c=!0),u++,e.consume(v),v===92?h:m}function h(v){return v===91||v===92||v===93?(e.consume(v),u++,m):m(v)}function S(v){return v===58?(e.enter("definitionMarker"),e.consume(v),e.exit("definitionMarker"),o.includes(l)||o.push(l),Pe(e,E,"gfmFootnoteDefinitionWhitespace")):n(v)}function E(v){return t(v)}}function j2(e,t,n){return e.check(Ii,t,e.attempt(D2,t,n))}function z2(e){e.exit("gfmFootnoteDefinition")}function $2(e,t,n){const i=this;return Pe(e,o,"gfmFootnoteDefinitionIndent",5);function o(l){const u=i.events[i.events.length-1];return u&&u[1].type==="gfmFootnoteDefinitionIndent"&&u[2].sliceSerialize(u[1],!0).length===4?t(l):n(l)}}function q2(e){let n=(e||{}).singleTilde;const i={name:"strikethrough",tokenize:l,resolveAll:o};return n==null&&(n=!0),{text:{126:i},insideSpan:{null:[i]},attentionMarkers:{null:[126]}};function o(u,c){let p=-1;for(;++p1?p(v):(u.consume(v),h++,E);if(h<2&&!n)return p(v);const T=u.exit("strikethroughSequenceTemporary"),N=Ra(v);return T._open=!N||N===2&&!!k,T._close=!k||k===2&&!!N,c(v)}}}class G2{constructor(){this.map=[]}add(t,n,i){H2(this,t,n,i)}consume(t){if(this.map.sort(function(l,u){return l[0]-u[0]}),this.map.length===0)return;let n=this.map.length;const i=[];for(;n>0;)n-=1,i.push(t.slice(this.map[n][0]+this.map[n][1]),this.map[n][2]),t.length=this.map[n][0];i.push(t.slice()),t.length=0;let o=i.pop();for(;o;){for(const l of o)t.push(l);o=i.pop()}this.map.length=0}}function H2(e,t,n,i){let o=0;if(!(n===0&&i.length===0)){for(;o-1;){const Z=i.events[Y][1].type;if(Z==="lineEnding"||Z==="linePrefix")Y--;else break}const J=Y>-1?i.events[Y][1].type:null,de=J==="tableHead"||J==="tableRow"?w:p;return de===w&&i.parser.lazy[i.now().line]?n(M):de(M)}function p(M){return e.enter("tableHead"),e.enter("tableRow"),f(M)}function f(M){return M===124||(u=!0,l+=1),m(M)}function m(M){return M===null?n(M):xe(M)?l>1?(l=0,i.interrupt=!0,e.exit("tableRow"),e.enter("lineEnding"),e.consume(M),e.exit("lineEnding"),E):n(M):Fe(M)?Pe(e,m,"whitespace")(M):(l+=1,u&&(u=!1,o+=1),M===124?(e.enter("tableCellDivider"),e.consume(M),e.exit("tableCellDivider"),u=!0,m):(e.enter("data"),h(M)))}function h(M){return M===null||M===124||He(M)?(e.exit("data"),m(M)):(e.consume(M),M===92?S:h)}function S(M){return M===92||M===124?(e.consume(M),h):h(M)}function E(M){return i.interrupt=!1,i.parser.lazy[i.now().line]?n(M):(e.enter("tableDelimiterRow"),u=!1,Fe(M)?Pe(e,v,"linePrefix",i.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(M):v(M))}function v(M){return M===45||M===58?T(M):M===124?(u=!0,e.enter("tableCellDivider"),e.consume(M),e.exit("tableCellDivider"),k):L(M)}function k(M){return Fe(M)?Pe(e,T,"whitespace")(M):T(M)}function T(M){return M===58?(l+=1,u=!0,e.enter("tableDelimiterMarker"),e.consume(M),e.exit("tableDelimiterMarker"),N):M===45?(l+=1,N(M)):M===null||xe(M)?O(M):L(M)}function N(M){return M===45?(e.enter("tableDelimiterFiller"),R(M)):L(M)}function R(M){return M===45?(e.consume(M),R):M===58?(u=!0,e.exit("tableDelimiterFiller"),e.enter("tableDelimiterMarker"),e.consume(M),e.exit("tableDelimiterMarker"),A):(e.exit("tableDelimiterFiller"),A(M))}function A(M){return Fe(M)?Pe(e,O,"whitespace")(M):O(M)}function O(M){return M===124?v(M):M===null||xe(M)?!u||o!==l?L(M):(e.exit("tableDelimiterRow"),e.exit("tableHead"),t(M)):L(M)}function L(M){return n(M)}function w(M){return e.enter("tableRow"),B(M)}function B(M){return M===124?(e.enter("tableCellDivider"),e.consume(M),e.exit("tableCellDivider"),B):M===null||xe(M)?(e.exit("tableRow"),t(M)):Fe(M)?Pe(e,B,"whitespace")(M):(e.enter("data"),W(M))}function W(M){return M===null||M===124||He(M)?(e.exit("data"),B(M)):(e.consume(M),M===92?j:W)}function j(M){return M===92||M===124?(e.consume(M),W):W(M)}}function K2(e,t){let n=-1,i=!0,o=0,l=[0,0,0,0],u=[0,0,0,0],c=!1,p=0,f,m,h;const S=new G2;for(;++nn[2]+1){const v=n[2]+1,k=n[3]-n[2]-1;e.add(v,k,[])}}e.add(n[3]+1,0,[["exit",h,t]])}return o!==void 0&&(l.end=Object.assign({},_a(t.events,o)),e.add(o,0,[["exit",l,t]]),l=void 0),l}function hS(e,t,n,i,o){const l=[],u=_a(t.events,n);o&&(o.end=Object.assign({},u),l.push(["exit",o,t])),i.end=Object.assign({},u),l.push(["exit",i,t]),e.add(n+1,0,l)}function _a(e,t){const n=e[t],i=n[0]==="enter"?"start":"end";return n[1][i]}const Z2={name:"tasklistCheck",tokenize:Q2};function X2(){return{text:{91:Z2}}}function Q2(e,t,n){const i=this;return o;function o(p){return i.previous!==null||!i._gfmTasklistFirstContentOfListItem?n(p):(e.enter("taskListCheck"),e.enter("taskListCheckMarker"),e.consume(p),e.exit("taskListCheckMarker"),l)}function l(p){return He(p)?(e.enter("taskListCheckValueUnchecked"),e.consume(p),e.exit("taskListCheckValueUnchecked"),u):p===88||p===120?(e.enter("taskListCheckValueChecked"),e.consume(p),e.exit("taskListCheckValueChecked"),u):n(p)}function u(p){return p===93?(e.enter("taskListCheckMarker"),e.consume(p),e.exit("taskListCheckMarker"),e.exit("taskListCheck"),c):n(p)}function c(p){return xe(p)?t(p):Fe(p)?e.check({tokenize:J2},t,n)(p):n(p)}}function J2(e,t,n){return Pe(e,i,"whitespace");function i(o){return o===null?n(o):t(o)}}function eM(e){return Qx([T2(),M2(),q2(e),V2(),X2()])}const tM={};function nM(e){const t=this,n=e||tM,i=t.data(),o=i.micromarkExtensions||(i.micromarkExtensions=[]),l=i.fromMarkdownExtensions||(i.fromMarkdownExtensions=[]),u=i.toMarkdownExtensions||(i.toMarkdownExtensions=[]);o.push(eM(n)),l.push(v2()),u.push(k2(n))}function rM(e,t){if(e==null)return{};var n={};for(var i in e)if({}.hasOwnProperty.call(e,i)){if(t.indexOf(i)!==-1)continue;n[i]=e[i]}return n}function aM(e,t){if(e==null)return{};var n,i,o=rM(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(i=0;ie.length)&&(t=e.length);for(var n=0,i=Array(t);n=4)return[e[0],e[1],e[2],e[3],"".concat(e[0],".").concat(e[1]),"".concat(e[0],".").concat(e[2]),"".concat(e[0],".").concat(e[3]),"".concat(e[1],".").concat(e[0]),"".concat(e[1],".").concat(e[2]),"".concat(e[1],".").concat(e[3]),"".concat(e[2],".").concat(e[0]),"".concat(e[2],".").concat(e[1]),"".concat(e[2],".").concat(e[3]),"".concat(e[3],".").concat(e[0]),"".concat(e[3],".").concat(e[1]),"".concat(e[3],".").concat(e[2]),"".concat(e[0],".").concat(e[1],".").concat(e[2]),"".concat(e[0],".").concat(e[1],".").concat(e[3]),"".concat(e[0],".").concat(e[2],".").concat(e[1]),"".concat(e[0],".").concat(e[2],".").concat(e[3]),"".concat(e[0],".").concat(e[3],".").concat(e[1]),"".concat(e[0],".").concat(e[3],".").concat(e[2]),"".concat(e[1],".").concat(e[0],".").concat(e[2]),"".concat(e[1],".").concat(e[0],".").concat(e[3]),"".concat(e[1],".").concat(e[2],".").concat(e[0]),"".concat(e[1],".").concat(e[2],".").concat(e[3]),"".concat(e[1],".").concat(e[3],".").concat(e[0]),"".concat(e[1],".").concat(e[3],".").concat(e[2]),"".concat(e[2],".").concat(e[0],".").concat(e[1]),"".concat(e[2],".").concat(e[0],".").concat(e[3]),"".concat(e[2],".").concat(e[1],".").concat(e[0]),"".concat(e[2],".").concat(e[1],".").concat(e[3]),"".concat(e[2],".").concat(e[3],".").concat(e[0]),"".concat(e[2],".").concat(e[3],".").concat(e[1]),"".concat(e[3],".").concat(e[0],".").concat(e[1]),"".concat(e[3],".").concat(e[0],".").concat(e[2]),"".concat(e[3],".").concat(e[1],".").concat(e[0]),"".concat(e[3],".").concat(e[1],".").concat(e[2]),"".concat(e[3],".").concat(e[2],".").concat(e[0]),"".concat(e[3],".").concat(e[2],".").concat(e[1]),"".concat(e[0],".").concat(e[1],".").concat(e[2],".").concat(e[3]),"".concat(e[0],".").concat(e[1],".").concat(e[3],".").concat(e[2]),"".concat(e[0],".").concat(e[2],".").concat(e[1],".").concat(e[3]),"".concat(e[0],".").concat(e[2],".").concat(e[3],".").concat(e[1]),"".concat(e[0],".").concat(e[3],".").concat(e[1],".").concat(e[2]),"".concat(e[0],".").concat(e[3],".").concat(e[2],".").concat(e[1]),"".concat(e[1],".").concat(e[0],".").concat(e[2],".").concat(e[3]),"".concat(e[1],".").concat(e[0],".").concat(e[3],".").concat(e[2]),"".concat(e[1],".").concat(e[2],".").concat(e[0],".").concat(e[3]),"".concat(e[1],".").concat(e[2],".").concat(e[3],".").concat(e[0]),"".concat(e[1],".").concat(e[3],".").concat(e[0],".").concat(e[2]),"".concat(e[1],".").concat(e[3],".").concat(e[2],".").concat(e[0]),"".concat(e[2],".").concat(e[0],".").concat(e[1],".").concat(e[3]),"".concat(e[2],".").concat(e[0],".").concat(e[3],".").concat(e[1]),"".concat(e[2],".").concat(e[1],".").concat(e[0],".").concat(e[3]),"".concat(e[2],".").concat(e[1],".").concat(e[3],".").concat(e[0]),"".concat(e[2],".").concat(e[3],".").concat(e[0],".").concat(e[1]),"".concat(e[2],".").concat(e[3],".").concat(e[1],".").concat(e[0]),"".concat(e[3],".").concat(e[0],".").concat(e[1],".").concat(e[2]),"".concat(e[3],".").concat(e[0],".").concat(e[2],".").concat(e[1]),"".concat(e[3],".").concat(e[1],".").concat(e[0],".").concat(e[2]),"".concat(e[3],".").concat(e[1],".").concat(e[2],".").concat(e[0]),"".concat(e[3],".").concat(e[2],".").concat(e[0],".").concat(e[1]),"".concat(e[3],".").concat(e[2],".").concat(e[1],".").concat(e[0])]}var Iu={};function pM(e){if(e.length===0||e.length===1)return e;var t=e.join(".");return Iu[t]||(Iu[t]=dM(e)),Iu[t]}function fM(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0,i=e.filter(function(l){return l!=="token"}),o=pM(i);return o.reduce(function(l,u){return wa(wa({},l),n[u])},t)}function yS(e){return e.join(" ")}function gM(e,t){var n=0;return function(i){return n+=1,i.map(function(o,l){return qA({node:o,stylesheet:e,useInlineStyles:t,key:"code-segment-".concat(n,"-").concat(l)})})}}function qA(e){var t=e.node,n=e.stylesheet,i=e.style,o=i===void 0?{}:i,l=e.useInlineStyles,u=e.key,c=t.properties,p=t.type,f=t.tagName,m=t.value;if(p==="text")return m;if(f){var h=gM(n,l),S;if(!l)S=wa(wa({},c),{},{className:yS(c.className)});else{var E=Object.keys(n).reduce(function(N,R){return R.split(".").forEach(function(A){N.includes(A)||N.push(A)}),N},[]),v=c.className&&c.className.includes("token")?["token"]:[],k=c.className&&v.concat(c.className.filter(function(N){return!E.includes(N)}));S=wa(wa({},c),{},{className:yS(k)||void 0,style:fM(c.className,Object.assign({},c.style,o),n)})}var T=h(t.children);return ct.createElement(f,Fm({key:u},S),T)}}const mM=(function(e,t){var n=e.listLanguages();return n.indexOf(t)!==-1});var hM=["language","children","style","customStyle","codeTagProps","useInlineStyles","showLineNumbers","showInlineLineNumbers","startingLineNumber","lineNumberContainerStyle","lineNumberStyle","wrapLines","wrapLongLines","lineProps","renderer","PreTag","CodeTag","code","astGenerator"];function ES(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),n.push.apply(n,i)}return n}function Tr(e){for(var t=1;t1&&arguments[1]!==void 0?arguments[1]:[],n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[],i=0;i2&&arguments[2]!==void 0?arguments[2]:[];return rs({children:L,lineNumber:w,lineNumberStyle:c,largestLineNumber:u,showInlineLineNumbers:o,lineProps:n,className:B,showLineNumbers:i,wrapLongLines:p,wrapLines:t})}function k(L,w){if(i&&w&&o){var B=HA(c,w,u);L.unshift(GA(w,B))}return L}function T(L,w){var B=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[];return t||B.length>0?v(L,w,B):k(L,w)}for(var N=function(){var w=m[E],B=w.children[0].value,W=yM(B);if(W){var j=B.split(` `);j.forEach(function(M,Y){var J=i&&h.length+l,de={type:"text",value:"".concat(M,` -`)};if(Y===0){var Z=m.slice(S+1,E).concat(rs({children:[de],className:w.properties.className})),H=T(Z,J);h.push(H)}else if(Y===j.length-1){var te=m[E+1]&&m[E+1].children&&m[E+1].children[0],ue={type:"text",value:"".concat(M)};if(te){var q=rs({children:[ue],className:w.properties.className});m.splice(E+1,0,q)}else{var Q=[ue],x=T(Q,J,w.properties.className);h.push(x)}}else{var D=[de],$=T(D,J,w.properties.className);h.push($)}}),S=E}E++};E4&&v.slice(0,4)===i&&o.test(E)&&(E.charAt(4)==="-"?k=p(E):E=f(E),T=t),new T(k,E))}function p(S){var E=S.slice(5).replace(l,h);return i+E.charAt(0).toUpperCase()+E.slice(1)}function f(S){var E=S.slice(4);return l.test(E)?S:(E=E.replace(u,m),E.charAt(0)!=="-"&&(E="-"+E),i+E)}function m(S){return"-"+S.toLowerCase()}function h(S){return S.charAt(1).toUpperCase()}return Vu}var Yu,PS;function FM(){if(PS)return Yu;PS=1,Yu=t;var e=/[#.]/g;function t(n,i){for(var o=n||"",l=i||"div",u={},c=0,p,f,m;c=48&&n<=57}return Qu}var Ju,GS;function $P(){if(GS)return Ju;GS=1,Ju=e;function e(t){var n=typeof t=="string"?t.charCodeAt(0):t;return n>=97&&n<=102||n>=65&&n<=70||n>=48&&n<=57}return Ju}var ec,HS;function qP(){if(HS)return ec;HS=1,ec=e;function e(t){var n=typeof t=="string"?t.charCodeAt(0):t;return n>=97&&n<=122||n>=65&&n<=90}return ec}var tc,WS;function GP(){if(WS)return tc;WS=1;var e=qP(),t=QA();tc=n;function n(i){return e(i)||t(i)}return tc}var nc,VS;function HP(){if(VS)return nc;VS=1;var e,t=59;nc=n;function n(i){var o="&"+i+";",l;return e=e||document.createElement("i"),e.innerHTML=o,l=e.textContent,l.charCodeAt(l.length-1)===t&&i!=="semi"||l===o?!1:l}return nc}var rc,YS;function WP(){if(YS)return rc;YS=1;var e=jP,t=zP,n=QA(),i=$P(),o=GP(),l=HP();rc=Q;var u={}.hasOwnProperty,c=String.fromCharCode,p=Function.prototype,f={warning:null,reference:null,text:null,warningContext:null,referenceContext:null,textContext:null,position:{},additional:null,attribute:!1,nonTerminated:!0},m=9,h=10,S=12,E=32,v=38,k=59,T=60,N=61,R=35,A=88,O=120,L=65533,w="named",B="hexadecimal",W="decimal",j={};j[B]=16,j[W]=10;var M={};M[w]=o,M[W]=n,M[B]=i;var Y=1,J=2,de=3,Z=4,H=5,te=6,ue=7,q={};q[Y]="Named character references must be terminated by a semicolon",q[J]="Numeric character references must be terminated by a semicolon",q[de]="Named character references cannot be empty",q[Z]="Numeric character references cannot be empty",q[H]="Named character references must be known",q[te]="Numeric character references cannot be disallowed",q[ue]="Numeric character references cannot be outside the permissible Unicode range";function Q(C,ae){var pe={},fe,Se;ae||(ae={});for(Se in f)fe=ae[Se],pe[Se]=fe??f[Se];return(pe.position.indent||pe.position.start)&&(pe.indent=pe.position.indent||[],pe.position=pe.position.start),x(C,pe)}function x(C,ae){var pe=ae.additional,fe=ae.nonTerminated,Se=ae.text,ke=ae.reference,X=ae.warning,he=ae.textContext,Ie=ae.referenceContext,Qe=ae.warningContext,Ce=ae.position,$e=ae.indent||[],pt=C.length,tt=0,Wt=-1,Ct=Ce.column||1,kn=Ce.line||1,kt="",It=[],Mt,ft,_t,bt,K,ee,ge,_e,Ne,We,nt,yt,xt,rt,Ke,gt,st,Ft,Je;for(typeof pe=="string"&&(pe=pe.charCodeAt(0)),gt=Vt(),_e=X?_n:p,tt--,pt++;++tt65535&&(ee-=65536,We+=c(ee>>>10|55296),ee=56320|ee&1023),ee=We+c(ee))):rt!==w&&_e(Z,Ft)),ee?($n(),gt=Vt(),tt=Je-1,Ct+=Je-xt+1,It.push(ee),st=Vt(),st.offset++,ke&&ke.call(Ie,ee,{start:gt,end:st},C.slice(xt-1,Je)),gt=st):(bt=C.slice(xt-1,Je),kt+=bt,Ct+=bt.length,tt=Je-1)}else K===10&&(kn++,Wt++,Ct=0),K===K?(kt+=c(K),Ct++):$n();return It.join("");function Vt(){return{line:kn,column:Ct,offset:tt+(Ce.offset||0)}}function _n(Ar,Rr){var rr=Vt();rr.column+=Rr,rr.offset+=Rr,X.call(Qe,q[Ar],rr,Ar)}function $n(){kt&&(It.push(kt),Se&&Se.call(he,kt,{start:gt,end:Vt()}),kt="")}}function D(C){return C>=55296&&C<=57343||C>1114111}function $(C){return C>=1&&C<=8||C===11||C>=13&&C<=31||C>=127&&C<=159||C>=64976&&C<=65007||(C&65535)===65535||(C&65535)===65534}return rc}var ac={exports:{}},KS;function VP(){return KS||(KS=1,(function(e){var t=typeof window<"u"?window:typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope?self:{};var n=(function(i){var o=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,l=0,u={},c={manual:i.Prism&&i.Prism.manual,disableWorkerMessageHandler:i.Prism&&i.Prism.disableWorkerMessageHandler,util:{encode:function R(A){return A instanceof p?new p(A.type,R(A.content),A.alias):Array.isArray(A)?A.map(R):A.replace(/&/g,"&").replace(/"u")return null;if("currentScript"in document)return document.currentScript;try{throw new Error}catch(L){var R=(/at [^(\r\n]*\((.*):[^:]+:[^:]+\)$/i.exec(L.stack)||[])[1];if(R){var A=document.getElementsByTagName("script");for(var O in A)if(A[O].src==R)return A[O]}return null}},isActive:function(R,A,O){for(var L="no-"+A;R;){var w=R.classList;if(w.contains(A))return!0;if(w.contains(L))return!1;R=R.parentElement}return!!O}},languages:{plain:u,plaintext:u,text:u,txt:u,extend:function(R,A){var O=c.util.clone(c.languages[R]);for(var L in A)O[L]=A[L];return O},insertBefore:function(R,A,O,L){L=L||c.languages;var w=L[R],B={};for(var W in w)if(w.hasOwnProperty(W)){if(W==A)for(var j in O)O.hasOwnProperty(j)&&(B[j]=O[j]);O.hasOwnProperty(W)||(B[W]=w[W])}var M=L[R];return L[R]=B,c.languages.DFS(c.languages,function(Y,J){J===M&&Y!=R&&(this[Y]=B)}),B},DFS:function R(A,O,L,w){w=w||{};var B=c.util.objId;for(var W in A)if(A.hasOwnProperty(W)){O.call(A,W,A[W],L||W);var j=A[W],M=c.util.type(j);M==="Object"&&!w[B(j)]?(w[B(j)]=!0,R(j,O,null,w)):M==="Array"&&!w[B(j)]&&(w[B(j)]=!0,R(j,O,W,w))}}},plugins:{},highlightAll:function(R,A){c.highlightAllUnder(document,R,A)},highlightAllUnder:function(R,A,O){var L={callback:O,container:R,selector:'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'};c.hooks.run("before-highlightall",L),L.elements=Array.prototype.slice.apply(L.container.querySelectorAll(L.selector)),c.hooks.run("before-all-elements-highlight",L);for(var w=0,B;B=L.elements[w++];)c.highlightElement(B,A===!0,L.callback)},highlightElement:function(R,A,O){var L=c.util.getLanguage(R),w=c.languages[L];c.util.setLanguage(R,L);var B=R.parentElement;B&&B.nodeName.toLowerCase()==="pre"&&c.util.setLanguage(B,L);var W=R.textContent,j={element:R,language:L,grammar:w,code:W};function M(J){j.highlightedCode=J,c.hooks.run("before-insert",j),j.element.innerHTML=j.highlightedCode,c.hooks.run("after-highlight",j),c.hooks.run("complete",j),O&&O.call(j.element)}if(c.hooks.run("before-sanity-check",j),B=j.element.parentElement,B&&B.nodeName.toLowerCase()==="pre"&&!B.hasAttribute("tabindex")&&B.setAttribute("tabindex","0"),!j.code){c.hooks.run("complete",j),O&&O.call(j.element);return}if(c.hooks.run("before-highlight",j),!j.grammar){M(c.util.encode(j.code));return}if(A&&i.Worker){var Y=new Worker(c.filename);Y.onmessage=function(J){M(J.data)},Y.postMessage(JSON.stringify({language:j.language,code:j.code,immediateClose:!0}))}else M(c.highlight(j.code,j.grammar,j.language))},highlight:function(R,A,O){var L={code:R,grammar:A,language:O};if(c.hooks.run("before-tokenize",L),!L.grammar)throw new Error('The language "'+L.language+'" has no grammar.');return L.tokens=c.tokenize(L.code,L.grammar),c.hooks.run("after-tokenize",L),p.stringify(c.util.encode(L.tokens),L.language)},tokenize:function(R,A){var O=A.rest;if(O){for(var L in O)A[L]=O[L];delete A.rest}var w=new h;return S(w,w.head,R),m(R,w,A,w.head,0),v(w)},hooks:{all:{},add:function(R,A){var O=c.hooks.all;O[R]=O[R]||[],O[R].push(A)},run:function(R,A){var O=c.hooks.all[R];if(!(!O||!O.length))for(var L=0,w;w=O[L++];)w(A)}},Token:p};i.Prism=c;function p(R,A,O,L){this.type=R,this.content=A,this.alias=O,this.length=(L||"").length|0}p.stringify=function R(A,O){if(typeof A=="string")return A;if(Array.isArray(A)){var L="";return A.forEach(function(M){L+=R(M,O)}),L}var w={type:A.type,content:R(A.content,O),tag:"span",classes:["token",A.type],attributes:{},language:O},B=A.alias;B&&(Array.isArray(B)?Array.prototype.push.apply(w.classes,B):w.classes.push(B)),c.hooks.run("wrap",w);var W="";for(var j in w.attributes)W+=" "+j+'="'+(w.attributes[j]||"").replace(/"/g,""")+'"';return"<"+w.tag+' class="'+w.classes.join(" ")+'"'+W+">"+w.content+""};function f(R,A,O,L){R.lastIndex=A;var w=R.exec(O);if(w&&L&&w[1]){var B=w[1].length;w.index+=B,w[0]=w[0].slice(B)}return w}function m(R,A,O,L,w,B){for(var W in O)if(!(!O.hasOwnProperty(W)||!O[W])){var j=O[W];j=Array.isArray(j)?j:[j];for(var M=0;M=B.reach);Q+=q.value.length,q=q.next){var x=q.value;if(A.length>R.length)return;if(!(x instanceof p)){var D=1,$;if(Z){if($=f(ue,Q,R,de),!$||$.index>=R.length)break;var fe=$.index,C=$.index+$[0].length,ae=Q;for(ae+=q.value.length;fe>=ae;)q=q.next,ae+=q.value.length;if(ae-=q.value.length,Q=ae,q.value instanceof p)continue;for(var pe=q;pe!==A.tail&&(aeB.reach&&(B.reach=he);var Ie=q.prev;ke&&(Ie=S(A,Ie,ke),Q+=ke.length),E(A,Ie,D);var Qe=new p(W,J?c.tokenize(Se,J):Se,H,Se);if(q=S(A,Ie,Qe),X&&S(A,q,X),D>1){var Ce={cause:W+","+M,reach:he};m(R,A,O,q.prev,Q,Ce),B&&Ce.reach>B.reach&&(B.reach=Ce.reach)}}}}}}function h(){var R={value:null,prev:null,next:null},A={value:null,prev:R,next:null};R.next=A,this.head=R,this.tail=A,this.length=0}function S(R,A,O){var L=A.next,w={value:O,prev:A,next:L};return A.next=w,L.prev=w,R.length++,w}function E(R,A,O){for(var L=A.next,w=0;w/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern://i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},t.languages.markup.tag.inside["attr-value"].inside.entity=t.languages.markup.entity,t.languages.markup.doctype.inside["internal-subset"].inside=t.languages.markup,t.hooks.add("wrap",function(n){n.type==="entity"&&(n.attributes.title=n.content.value.replace(/&/,"&"))}),Object.defineProperty(t.languages.markup.tag,"addInlined",{value:function(i,o){var l={};l["language-"+o]={pattern:/(^$)/i,lookbehind:!0,inside:t.languages[o]},l.cdata=/^$/i;var u={"included-cdata":{pattern://i,inside:l}};u["language-"+o]={pattern:/[\s\S]+/,inside:t.languages[o]};var c={};c[i]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,function(){return i}),"i"),lookbehind:!0,greedy:!0,inside:u},t.languages.insertBefore("markup","cdata",c)}}),Object.defineProperty(t.languages.markup.tag,"addAttribute",{value:function(n,i){t.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+n+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[i,"language-"+i],inside:t.languages[i]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),t.languages.html=t.languages.markup,t.languages.mathml=t.languages.markup,t.languages.svg=t.languages.markup,t.languages.xml=t.languages.extend("markup",{}),t.languages.ssml=t.languages.xml,t.languages.atom=t.languages.xml,t.languages.rss=t.languages.xml}return ic}var oc,XS;function KP(){if(XS)return oc;XS=1,oc=e,e.displayName="css",e.aliases=[];function e(t){(function(n){var i=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;n.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+i.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+i.source+"$"),alias:"url"}}},selector:{pattern:RegExp(`(^|[{}\\s])[^{}\\s](?:[^{};"'\\s]|\\s+(?![\\s{])|`+i.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:i,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},n.languages.css.atrule.inside.rest=n.languages.css;var o=n.languages.markup;o&&(o.tag.addInlined("style","css"),o.tag.addAttribute("style","css"))})(t)}return oc}var sc,QS;function ZP(){if(QS)return sc;QS=1,sc=e,e.displayName="clike",e.aliases=[];function e(t){t.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/}}return sc}var lc,JS;function XP(){if(JS)return lc;JS=1,lc=e,e.displayName="javascript",e.aliases=["js"];function e(t){t.languages.javascript=t.languages.extend("clike",{"class-name":[t.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+(/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source)+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),t.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,t.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:t.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:t.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:t.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:t.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:t.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),t.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:t.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),t.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),t.languages.markup&&(t.languages.markup.tag.addInlined("script","javascript"),t.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),t.languages.js=t.languages.javascript}return lc}var uc,ev;function QP(){if(ev)return uc;ev=1;var e=typeof globalThis=="object"?globalThis:typeof self=="object"?self:typeof window=="object"?window:typeof is=="object"?is:{},t=L();e.Prism={manual:!0,disableWorkerMessageHandler:!0};var n=zM(),i=WP(),o=VP(),l=YP(),u=KP(),c=ZP(),p=XP();t();var f={}.hasOwnProperty;function m(){}m.prototype=o;var h=new m;uc=h,h.highlight=v,h.register=S,h.alias=E,h.registered=k,h.listLanguages=T,S(l),S(u),S(c),S(p),h.util.encode=A,h.Token.stringify=N;function S(w){if(typeof w!="function"||!w.displayName)throw new Error("Expected `function` for `grammar`, got `"+w+"`");h.languages[w.displayName]===void 0&&w(h)}function E(w,B){var W=h.languages,j=w,M,Y,J,de;B&&(j={},j[w]=B);for(M in j)for(Y=j[M],Y=typeof Y=="string"?[Y]:Y,J=Y.length,de=-1;++de code[class*="language-"]':{background:"#f5f2f0",padding:".1em",borderRadius:".3em",whiteSpace:"normal"},comment:{color:"slategray"},prolog:{color:"slategray"},doctype:{color:"slategray"},cdata:{color:"slategray"},punctuation:{color:"#999"},namespace:{Opacity:".7"},property:{color:"#905"},tag:{color:"#905"},boolean:{color:"#905"},number:{color:"#905"},constant:{color:"#905"},symbol:{color:"#905"},deleted:{color:"#905"},selector:{color:"#690"},"attr-name":{color:"#690"},string:{color:"#690"},char:{color:"#690"},builtin:{color:"#690"},inserted:{color:"#690"},operator:{color:"#9a6e3a",background:"hsla(0, 0%, 100%, .5)"},entity:{color:"#9a6e3a",background:"hsla(0, 0%, 100%, .5)",cursor:"help"},url:{color:"#9a6e3a",background:"hsla(0, 0%, 100%, .5)"},".language-css .token.string":{color:"#9a6e3a",background:"hsla(0, 0%, 100%, .5)"},".style .token.string":{color:"#9a6e3a",background:"hsla(0, 0%, 100%, .5)"},atrule:{color:"#07a"},"attr-value":{color:"#07a"},keyword:{color:"#07a"},function:{color:"#DD4A68"},"class-name":{color:"#DD4A68"},regex:{color:"#e90"},important:{color:"#e90",fontWeight:"bold"},variable:{color:"#e90"},bold:{fontWeight:"bold"},italic:{fontStyle:"italic"}};var cc,tv;function eU(){if(tv)return cc;tv=1,cc=e,e.displayName="abap",e.aliases=[];function e(t){t.languages.abap={comment:/^\*.*/m,string:/(`|')(?:\\.|(?!\1)[^\\\r\n])*\1/,"string-template":{pattern:/([|}])(?:\\.|[^\\|{\r\n])*(?=[|{])/,lookbehind:!0,alias:"string"},"eol-comment":{pattern:/(^|\s)".*/m,lookbehind:!0,alias:"comment"},keyword:{pattern:/(\s|\.|^)(?:SCIENTIFIC_WITH_LEADING_ZERO|SCALE_PRESERVING_SCIENTIFIC|RMC_COMMUNICATION_FAILURE|END-ENHANCEMENT-SECTION|MULTIPLY-CORRESPONDING|SUBTRACT-CORRESPONDING|VERIFICATION-MESSAGE|DIVIDE-CORRESPONDING|ENHANCEMENT-SECTION|CURRENCY_CONVERSION|RMC_SYSTEM_FAILURE|START-OF-SELECTION|MOVE-CORRESPONDING|RMC_INVALID_STATUS|CUSTOMER-FUNCTION|END-OF-DEFINITION|ENHANCEMENT-POINT|SYSTEM-EXCEPTIONS|ADD-CORRESPONDING|SCALE_PRESERVING|SELECTION-SCREEN|CURSOR-SELECTION|END-OF-SELECTION|LOAD-OF-PROGRAM|SCROLL-BOUNDARY|SELECTION-TABLE|EXCEPTION-TABLE|IMPLEMENTATIONS|PARAMETER-TABLE|RIGHT-JUSTIFIED|UNIT_CONVERSION|AUTHORITY-CHECK|LIST-PROCESSING|SIGN_AS_POSTFIX|COL_BACKGROUND|IMPLEMENTATION|INTERFACE-POOL|TRANSFORMATION|IDENTIFICATION|ENDENHANCEMENT|LINE-SELECTION|INITIALIZATION|LEFT-JUSTIFIED|SELECT-OPTIONS|SELECTION-SETS|COMMUNICATION|CORRESPONDING|DECIMAL_SHIFT|PRINT-CONTROL|VALUE-REQUEST|CHAIN-REQUEST|FUNCTION-POOL|FIELD-SYMBOLS|FUNCTIONALITY|INVERTED-DATE|SELECTION-SET|CLASS-METHODS|OUTPUT-LENGTH|CLASS-CODING|COL_NEGATIVE|ERRORMESSAGE|FIELD-GROUPS|HELP-REQUEST|NO-EXTENSION|NO-TOPOFPAGE|REDEFINITION|DISPLAY-MODE|ENDINTERFACE|EXIT-COMMAND|FIELD-SYMBOL|NO-SCROLLING|SHORTDUMP-ID|ACCESSPOLICY|CLASS-EVENTS|COL_POSITIVE|DECLARATIONS|ENHANCEMENTS|FILTER-TABLE|SWITCHSTATES|SYNTAX-CHECK|TRANSPORTING|ASYNCHRONOUS|SYNTAX-TRACE|TOKENIZATION|USER-COMMAND|WITH-HEADING|ABAP-SOURCE|BREAK-POINT|CHAIN-INPUT|COMPRESSION|FIXED-POINT|NEW-SECTION|NON-UNICODE|OCCURRENCES|RESPONSIBLE|SYSTEM-CALL|TRACE-TABLE|ABBREVIATED|CHAR-TO-HEX|END-OF-FILE|ENDFUNCTION|ENVIRONMENT|ASSOCIATION|COL_HEADING|EDITOR-CALL|END-OF-PAGE|ENGINEERING|IMPLEMENTED|INTENSIFIED|RADIOBUTTON|SYSTEM-EXIT|TOP-OF-PAGE|TRANSACTION|APPLICATION|CONCATENATE|DESTINATION|ENHANCEMENT|IMMEDIATELY|NO-GROUPING|PRECOMPILED|REPLACEMENT|TITLE-LINES|ACTIVATION|BYTE-ORDER|CLASS-POOL|CONNECTION|CONVERSION|DEFINITION|DEPARTMENT|EXPIRATION|INHERITING|MESSAGE-ID|NO-HEADING|PERFORMING|QUEUE-ONLY|RIGHTSPACE|SCIENTIFIC|STATUSINFO|STRUCTURES|SYNCPOINTS|WITH-TITLE|ATTRIBUTES|BOUNDARIES|CLASS-DATA|COL_NORMAL|DD\/MM\/YYYY|DESCENDING|INTERFACES|LINE-COUNT|MM\/DD\/YYYY|NON-UNIQUE|PRESERVING|SELECTIONS|STATEMENTS|SUBROUTINE|TRUNCATION|TYPE-POOLS|ARITHMETIC|BACKGROUND|ENDPROVIDE|EXCEPTIONS|IDENTIFIER|INDEX-LINE|OBLIGATORY|PARAMETERS|PERCENTAGE|PUSHBUTTON|RESOLUTION|COMPONENTS|DEALLOCATE|DISCONNECT|DUPLICATES|FIRST-LINE|HEAD-LINES|NO-DISPLAY|OCCURRENCE|RESPECTING|RETURNCODE|SUBMATCHES|TRACE-FILE|ASCENDING|BYPASSING|ENDMODULE|EXCEPTION|EXCLUDING|EXPORTING|INCREMENT|MATCHCODE|PARAMETER|PARTIALLY|PREFERRED|REFERENCE|REPLACING|RETURNING|SELECTION|SEPARATED|SPECIFIED|STATEMENT|TIMESTAMP|TYPE-POOL|ACCEPTING|APPENDAGE|ASSIGNING|COL_GROUP|COMPARING|CONSTANTS|DANGEROUS|IMPORTING|INSTANCES|LEFTSPACE|LOG-POINT|QUICKINFO|READ-ONLY|SCROLLING|SQLSCRIPT|STEP-LOOP|TOP-LINES|TRANSLATE|APPENDING|AUTHORITY|CHARACTER|COMPONENT|CONDITION|DIRECTORY|DUPLICATE|MESSAGING|RECEIVING|SUBSCREEN|ACCORDING|COL_TOTAL|END-LINES|ENDMETHOD|ENDSELECT|EXPANDING|EXTENSION|INCLUDING|INFOTYPES|INTERFACE|INTERVALS|LINE-SIZE|PF-STATUS|PROCEDURE|PROTECTED|REQUESTED|RESUMABLE|RIGHTPLUS|SAP-SPOOL|SECONDARY|STRUCTURE|SUBSTRING|TABLEVIEW|NUMOFCHAR|ADJACENT|ANALYSIS|ASSIGNED|BACKWARD|CHANNELS|CHECKBOX|CONTINUE|CRITICAL|DATAINFO|DD\/MM\/YY|DURATION|ENCODING|ENDCLASS|FUNCTION|LEFTPLUS|LINEFEED|MM\/DD\/YY|OVERFLOW|RECEIVED|SKIPPING|SORTABLE|STANDARD|SUBTRACT|SUPPRESS|TABSTRIP|TITLEBAR|TRUNCATE|UNASSIGN|WHENEVER|ANALYZER|COALESCE|COMMENTS|CONDENSE|DECIMALS|DEFERRED|ENDWHILE|EXPLICIT|KEYWORDS|MESSAGES|POSITION|PRIORITY|RECEIVER|RENAMING|TIMEZONE|TRAILING|ALLOCATE|CENTERED|CIRCULAR|CONTROLS|CURRENCY|DELETING|DESCRIBE|DISTANCE|ENDCATCH|EXPONENT|EXTENDED|GENERATE|IGNORING|INCLUDES|INTERNAL|MAJOR-ID|MODIFIER|NEW-LINE|OPTIONAL|PROPERTY|ROLLBACK|STARTING|SUPPLIED|ABSTRACT|CHANGING|CONTEXTS|CREATING|CUSTOMER|DATABASE|DAYLIGHT|DEFINING|DISTINCT|DIVISION|ENABLING|ENDCHAIN|ESCAPING|HARMLESS|IMPLICIT|INACTIVE|LANGUAGE|MINOR-ID|MULTIPLY|NEW-PAGE|NO-TITLE|POS_HIGH|SEPARATE|TEXTPOOL|TRANSFER|SELECTOR|DBMAXLEN|ITERATOR|ARCHIVE|BIT-XOR|BYTE-CO|COLLECT|COMMENT|CURRENT|DEFAULT|DISPLAY|ENDFORM|EXTRACT|LEADING|LISTBOX|LOCATOR|MEMBERS|METHODS|NESTING|POS_LOW|PROCESS|PROVIDE|RAISING|RESERVE|SECONDS|SUMMARY|VISIBLE|BETWEEN|BIT-AND|BYTE-CS|CLEANUP|COMPUTE|CONTROL|CONVERT|DATASET|ENDCASE|FORWARD|HEADERS|HOTSPOT|INCLUDE|INVERSE|KEEPING|NO-ZERO|OBJECTS|OVERLAY|PADDING|PATTERN|PROGRAM|REFRESH|SECTION|SUMMING|TESTING|VERSION|WINDOWS|WITHOUT|BIT-NOT|BYTE-CA|BYTE-NA|CASTING|CONTEXT|COUNTRY|DYNAMIC|ENABLED|ENDLOOP|EXECUTE|FRIENDS|HANDLER|HEADING|INITIAL|\*-INPUT|LOGFILE|MAXIMUM|MINIMUM|NO-GAPS|NO-SIGN|PRAGMAS|PRIMARY|PRIVATE|REDUCED|REPLACE|REQUEST|RESULTS|UNICODE|WARNING|ALIASES|BYTE-CN|BYTE-NS|CALLING|COL_KEY|COLUMNS|CONNECT|ENDEXEC|ENTRIES|EXCLUDE|FILTERS|FURTHER|HELP-ID|LOGICAL|MAPPING|MESSAGE|NAMETAB|OPTIONS|PACKAGE|PERFORM|RECEIVE|STATICS|VARYING|BINDING|CHARLEN|GREATER|XSTRLEN|ACCEPT|APPEND|DETAIL|ELSEIF|ENDING|ENDTRY|FORMAT|FRAMES|GIVING|HASHED|HEADER|IMPORT|INSERT|MARGIN|MODULE|NATIVE|OBJECT|OFFSET|REMOTE|RESUME|SAVING|SIMPLE|SUBMIT|TABBED|TOKENS|UNIQUE|UNPACK|UPDATE|WINDOW|YELLOW|ACTUAL|ASPECT|CENTER|CURSOR|DELETE|DIALOG|DIVIDE|DURING|ERRORS|EVENTS|EXTEND|FILTER|HANDLE|HAVING|IGNORE|LITTLE|MEMORY|NO-GAP|OCCURS|OPTION|PERSON|PLACES|PUBLIC|REDUCE|REPORT|RESULT|SINGLE|SORTED|SWITCH|SYNTAX|TARGET|VALUES|WRITER|ASSERT|BLOCKS|BOUNDS|BUFFER|CHANGE|COLUMN|COMMIT|CONCAT|COPIES|CREATE|DDMMYY|DEFINE|ENDIAN|ESCAPE|EXPAND|KERNEL|LAYOUT|LEGACY|LEVELS|MMDDYY|NUMBER|OUTPUT|RANGES|READER|RETURN|SCREEN|SEARCH|SELECT|SHARED|SOURCE|STABLE|STATIC|SUBKEY|SUFFIX|TABLES|UNWIND|YYMMDD|ASSIGN|BACKUP|BEFORE|BINARY|BIT-OR|BLANKS|CLIENT|CODING|COMMON|DEMAND|DYNPRO|EXCEPT|EXISTS|EXPORT|FIELDS|GLOBAL|GROUPS|LENGTH|LOCALE|MEDIUM|METHOD|MODIFY|NESTED|OTHERS|REJECT|SCROLL|SUPPLY|SYMBOL|ENDFOR|STRLEN|ALIGN|BEGIN|BOUND|ENDAT|ENTRY|EVENT|FINAL|FLUSH|GRANT|INNER|SHORT|USING|WRITE|AFTER|BLACK|BLOCK|CLOCK|COLOR|COUNT|DUMMY|EMPTY|ENDDO|ENDON|GREEN|INDEX|INOUT|LEAVE|LEVEL|LINES|MODIF|ORDER|OUTER|RANGE|RESET|RETRY|RIGHT|SMART|SPLIT|STYLE|TABLE|THROW|UNDER|UNTIL|UPPER|UTF-8|WHERE|ALIAS|BLANK|CLEAR|CLOSE|EXACT|FETCH|FIRST|FOUND|GROUP|LLANG|LOCAL|OTHER|REGEX|SPOOL|TITLE|TYPES|VALID|WHILE|ALPHA|BOXED|CATCH|CHAIN|CHECK|CLASS|COVER|ENDIF|EQUIV|FIELD|FLOOR|FRAME|INPUT|LOWER|MATCH|NODES|PAGES|PRINT|RAISE|ROUND|SHIFT|SPACE|SPOTS|STAMP|STATE|TASKS|TIMES|TRMAC|ULINE|UNION|VALUE|WIDTH|EQUAL|LOG10|TRUNC|BLOB|CASE|CEIL|CLOB|COND|EXIT|FILE|GAPS|HOLD|INCL|INTO|KEEP|KEYS|LAST|LINE|LONG|LPAD|MAIL|MODE|OPEN|PINK|READ|ROWS|TEST|THEN|ZERO|AREA|BACK|BADI|BYTE|CAST|EDIT|EXEC|FAIL|FIND|FKEQ|FONT|FREE|GKEQ|HIDE|INIT|ITNO|LATE|LOOP|MAIN|MARK|MOVE|NEXT|NULL|RISK|ROLE|UNIT|WAIT|ZONE|BASE|CALL|CODE|DATA|DATE|FKGE|GKGE|HIGH|KIND|LEFT|LIST|MASK|MESH|NAME|NODE|PACK|PAGE|POOL|SEND|SIGN|SIZE|SOME|STOP|TASK|TEXT|TIME|USER|VARY|WITH|WORD|BLUE|CONV|COPY|DEEP|ELSE|FORM|FROM|HINT|ICON|JOIN|LIKE|LOAD|ONLY|PART|SCAN|SKIP|SORT|TYPE|UNIX|VIEW|WHEN|WORK|ACOS|ASIN|ATAN|COSH|EACH|FRAC|LESS|RTTI|SINH|SQRT|TANH|AVG|BIT|DIV|ISO|LET|OUT|PAD|SQL|ALL|CI_|CPI|END|LOB|LPI|MAX|MIN|NEW|OLE|RUN|SET|\?TO|YES|ABS|ADD|AND|BIG|FOR|HDB|JOB|LOW|NOT|SAP|TRY|VIA|XML|ANY|GET|IDS|KEY|MOD|OFF|PUT|RAW|RED|REF|SUM|TAB|XSD|CNT|COS|EXP|LOG|SIN|TAN|XOR|AT|CO|CP|DO|GT|ID|IF|NS|OR|BT|CA|CS|GE|NA|NB|EQ|IN|LT|NE|NO|OF|ON|PF|TO|AS|BY|CN|IS|LE|NP|UP|E|I|M|O|Z|C|X)\b/i,lookbehind:!0},number:/\b\d+\b/,operator:{pattern:/(\s)(?:\*\*?|<[=>]?|>=?|\?=|[-+\/=])(?=\s)/,lookbehind:!0},"string-operator":{pattern:/(\s)&&?(?=\s)/,lookbehind:!0,alias:"keyword"},"token-operator":[{pattern:/(\w)(?:->?|=>|[~|{}])(?=\w)/,lookbehind:!0,alias:"punctuation"},{pattern:/[|{}]/,alias:"punctuation"}],punctuation:/[,.:()]/}}return cc}var dc,nv;function tU(){if(nv)return dc;nv=1,dc=e,e.displayName="abnf",e.aliases=[];function e(t){(function(n){var i="(?:ALPHA|BIT|CHAR|CR|CRLF|CTL|DIGIT|DQUOTE|HEXDIG|HTAB|LF|LWSP|OCTET|SP|VCHAR|WSP)";n.languages.abnf={comment:/;.*/,string:{pattern:/(?:%[is])?"[^"\n\r]*"/,greedy:!0,inside:{punctuation:/^%[is]/}},range:{pattern:/%(?:b[01]+-[01]+|d\d+-\d+|x[A-F\d]+-[A-F\d]+)/i,alias:"number"},terminal:{pattern:/%(?:b[01]+(?:\.[01]+)*|d\d+(?:\.\d+)*|x[A-F\d]+(?:\.[A-F\d]+)*)/i,alias:"number"},repetition:{pattern:/(^|[^\w-])(?:\d*\*\d*|\d+)/,lookbehind:!0,alias:"operator"},definition:{pattern:/(^[ \t]*)(?:[a-z][\w-]*|<[^<>\r\n]*>)(?=\s*=)/m,lookbehind:!0,alias:"keyword",inside:{punctuation:/<|>/}},"core-rule":{pattern:RegExp("(?:(^|[^<\\w-])"+i+"|<"+i+">)(?![\\w-])","i"),lookbehind:!0,alias:["rule","constant"],inside:{punctuation:/<|>/}},rule:{pattern:/(^|[^<\w-])[a-z][\w-]*|<[^<>\r\n]*>/i,lookbehind:!0,inside:{punctuation:/<|>/}},operator:/=\/?|\//,punctuation:/[()\[\]]/}})(t)}return dc}var pc,rv;function nU(){if(rv)return pc;rv=1,pc=e,e.displayName="actionscript",e.aliases=[];function e(t){t.languages.actionscript=t.languages.extend("javascript",{keyword:/\b(?:as|break|case|catch|class|const|default|delete|do|dynamic|each|else|extends|final|finally|for|function|get|if|implements|import|in|include|instanceof|interface|internal|is|namespace|native|new|null|override|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|use|var|void|while|with)\b/,operator:/\+\+|--|(?:[+\-*\/%^]|&&?|\|\|?|<>?>?|[!=]=?)=?|[~?@]/}),t.languages.actionscript["class-name"].alias="function",delete t.languages.actionscript.parameter,delete t.languages.actionscript["literal-property"],t.languages.markup&&t.languages.insertBefore("actionscript","string",{xml:{pattern:/(^|[^.])<\/?\w+(?:\s+[^\s>\/=]+=("|')(?:\\[\s\S]|(?!\2)[^\\])*\2)*\s*\/?>/,lookbehind:!0,inside:t.languages.markup}})}return pc}var fc,av;function rU(){if(av)return fc;av=1,fc=e,e.displayName="ada",e.aliases=[];function e(t){t.languages.ada={comment:/--.*/,string:/"(?:""|[^"\r\f\n])*"/,number:[{pattern:/\b\d(?:_?\d)*#[\dA-F](?:_?[\dA-F])*(?:\.[\dA-F](?:_?[\dA-F])*)?#(?:E[+-]?\d(?:_?\d)*)?/i},{pattern:/\b\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:E[+-]?\d(?:_?\d)*)?\b/i}],"attr-name":/\b'\w+/,keyword:/\b(?:abort|abs|abstract|accept|access|aliased|all|and|array|at|begin|body|case|constant|declare|delay|delta|digits|do|else|elsif|end|entry|exception|exit|for|function|generic|goto|if|in|interface|is|limited|loop|mod|new|not|null|of|others|out|overriding|package|pragma|private|procedure|protected|raise|range|record|rem|renames|requeue|return|reverse|select|separate|some|subtype|synchronized|tagged|task|terminate|then|type|until|use|when|while|with|xor)\b/i,boolean:/\b(?:false|true)\b/i,operator:/<[=>]?|>=?|=>?|:=|\/=?|\*\*?|[&+-]/,punctuation:/\.\.?|[,;():]/,char:/'.'/,variable:/\b[a-z](?:\w)*\b/i}}return fc}var gc,iv;function aU(){if(iv)return gc;iv=1,gc=e,e.displayName="agda",e.aliases=[];function e(t){(function(n){n.languages.agda={comment:/\{-[\s\S]*?(?:-\}|$)|--.*/,string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},punctuation:/[(){}⦃⦄.;@]/,"class-name":{pattern:/((?:data|record) +)\S+/,lookbehind:!0},function:{pattern:/(^[ \t]*)(?!\s)[^:\r\n]+(?=:)/m,lookbehind:!0},operator:{pattern:/(^\s*|\s)(?:[=|:∀→λ\\?_]|->)(?=\s)/,lookbehind:!0},keyword:/\b(?:Set|abstract|constructor|data|eta-equality|field|forall|hiding|import|in|inductive|infix|infixl|infixr|instance|let|macro|module|mutual|no-eta-equality|open|overlap|pattern|postulate|primitive|private|public|quote|quoteContext|quoteGoal|quoteTerm|record|renaming|rewrite|syntax|tactic|unquote|unquoteDecl|unquoteDef|using|variable|where|with)\b/}})(t)}return gc}var mc,ov;function iU(){if(ov)return mc;ov=1,mc=e,e.displayName="al",e.aliases=[];function e(t){t.languages.al={comment:/\/\/.*|\/\*[\s\S]*?\*\//,string:{pattern:/'(?:''|[^'\r\n])*'(?!')|"(?:""|[^"\r\n])*"(?!")/,greedy:!0},function:{pattern:/(\b(?:event|procedure|trigger)\s+|(?:^|[^.])\.\s*)[a-z_]\w*(?=\s*\()/i,lookbehind:!0},keyword:[/\b(?:array|asserterror|begin|break|case|do|downto|else|end|event|exit|for|foreach|function|if|implements|in|indataset|interface|internal|local|of|procedure|program|protected|repeat|runonclient|securityfiltering|suppressdispose|temporary|then|to|trigger|until|var|while|with|withevents)\b/i,/\b(?:action|actions|addafter|addbefore|addfirst|addlast|area|assembly|chartpart|codeunit|column|controladdin|cuegroup|customizes|dataitem|dataset|dotnet|elements|enum|enumextension|extends|field|fieldattribute|fieldelement|fieldgroup|fieldgroups|fields|filter|fixed|grid|group|key|keys|label|labels|layout|modify|moveafter|movebefore|movefirst|movelast|page|pagecustomization|pageextension|part|profile|query|repeater|report|requestpage|schema|separator|systempart|table|tableelement|tableextension|textattribute|textelement|type|usercontrol|value|xmlport)\b/i],number:/\b(?:0x[\da-f]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?)(?:F|LL?|U(?:LL?)?)?\b/i,boolean:/\b(?:false|true)\b/i,variable:/\b(?:Curr(?:FieldNo|Page|Report)|x?Rec|RequestOptionsPage)\b/,"class-name":/\b(?:automation|biginteger|bigtext|blob|boolean|byte|char|clienttype|code|completiontriggererrorlevel|connectiontype|database|dataclassification|datascope|date|dateformula|datetime|decimal|defaultlayout|dialog|dictionary|dotnetassembly|dotnettypedeclaration|duration|errorinfo|errortype|executioncontext|executionmode|fieldclass|fieldref|fieldtype|file|filterpagebuilder|guid|httpclient|httpcontent|httpheaders|httprequestmessage|httpresponsemessage|instream|integer|joker|jsonarray|jsonobject|jsontoken|jsonvalue|keyref|list|moduledependencyinfo|moduleinfo|none|notification|notificationscope|objecttype|option|outstream|pageresult|record|recordid|recordref|reportformat|securityfilter|sessionsettings|tableconnectiontype|tablefilter|testaction|testfield|testfilterfield|testpage|testpermissions|testrequestpage|text|textbuilder|textconst|textencoding|time|transactionmodel|transactiontype|variant|verbosity|version|view|views|webserviceactioncontext|webserviceactionresultcode|xmlattribute|xmlattributecollection|xmlcdata|xmlcomment|xmldeclaration|xmldocument|xmldocumenttype|xmlelement|xmlnamespacemanager|xmlnametable|xmlnode|xmlnodelist|xmlprocessinginstruction|xmlreadoptions|xmltext|xmlwriteoptions)\b/i,operator:/\.\.|:[=:]|[-+*/]=?|<>|[<>]=?|=|\b(?:and|div|mod|not|or|xor)\b/i,punctuation:/[()\[\]{}:.;,]/}}return mc}var hc,sv;function oU(){if(sv)return hc;sv=1,hc=e,e.displayName="antlr4",e.aliases=["g4"];function e(t){t.languages.antlr4={comment:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,string:{pattern:/'(?:\\.|[^\\'\r\n])*'/,greedy:!0},"character-class":{pattern:/\[(?:\\.|[^\\\]\r\n])*\]/,greedy:!0,alias:"regex",inside:{range:{pattern:/([^[]|(?:^|[^\\])(?:\\\\)*\\\[)-(?!\])/,lookbehind:!0,alias:"punctuation"},escape:/\\(?:u(?:[a-fA-F\d]{4}|\{[a-fA-F\d]+\})|[pP]\{[=\w-]+\}|[^\r\nupP])/,punctuation:/[\[\]]/}},action:{pattern:/\{(?:[^{}]|\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})*\})*\}/,greedy:!0,inside:{content:{pattern:/(\{)[\s\S]+(?=\})/,lookbehind:!0},punctuation:/[{}]/}},command:{pattern:/(->\s*(?!\s))(?:\s*(?:,\s*)?\b[a-z]\w*(?:\s*\([^()\r\n]*\))?)+(?=\s*;)/i,lookbehind:!0,inside:{function:/\b\w+(?=\s*(?:[,(]|$))/,punctuation:/[,()]/}},annotation:{pattern:/@\w+(?:::\w+)*/,alias:"keyword"},label:{pattern:/#[ \t]*\w+/,alias:"punctuation"},keyword:/\b(?:catch|channels|finally|fragment|grammar|import|lexer|locals|mode|options|parser|returns|throws|tokens)\b/,definition:[{pattern:/\b[a-z]\w*(?=\s*:)/,alias:["rule","class-name"]},{pattern:/\b[A-Z]\w*(?=\s*:)/,alias:["token","constant"]}],constant:/\b[A-Z][A-Z_]*\b/,operator:/\.\.|->|[|~]|[*+?]\??/,punctuation:/[;:()=]/},t.languages.g4=t.languages.antlr4}return hc}var bc,lv;function sU(){if(lv)return bc;lv=1,bc=e,e.displayName="apacheconf",e.aliases=[];function e(t){t.languages.apacheconf={comment:/#.*/,"directive-inline":{pattern:/(^[\t ]*)\b(?:AcceptFilter|AcceptPathInfo|AccessFileName|Action|Add(?:Alt|AltByEncoding|AltByType|Charset|DefaultCharset|Description|Encoding|Handler|Icon|IconByEncoding|IconByType|InputFilter|Language|ModuleInfo|OutputFilter|OutputFilterByType|Type)|Alias|AliasMatch|Allow(?:CONNECT|EncodedSlashes|Methods|Override|OverrideList)?|Anonymous(?:_LogEmail|_MustGiveEmail|_NoUserID|_VerifyEmail)?|AsyncRequestWorkerFactor|Auth(?:BasicAuthoritative|BasicFake|BasicProvider|BasicUseDigestAlgorithm|DBDUserPWQuery|DBDUserRealmQuery|DBMGroupFile|DBMType|DBMUserFile|Digest(?:Algorithm|Domain|NonceLifetime|Provider|Qop|ShmemSize)|Form(?:Authoritative|Body|DisableNoStore|FakeBasicAuth|Location|LoginRequiredLocation|LoginSuccessLocation|LogoutLocation|Method|Mimetype|Password|Provider|SitePassphrase|Size|Username)|GroupFile|LDAP(?:AuthorizePrefix|BindAuthoritative|BindDN|BindPassword|CharsetConfig|CompareAsUser|CompareDNOnServer|DereferenceAliases|GroupAttribute|GroupAttributeIsDN|InitialBindAsUser|InitialBindPattern|MaxSubGroupDepth|RemoteUserAttribute|RemoteUserIsDN|SearchAsUser|SubGroupAttribute|SubGroupClass|Url)|Merging|Name|nCache(?:Context|Enable|ProvideFor|SOCache|Timeout)|nzFcgiCheckAuthnProvider|nzFcgiDefineProvider|Type|UserFile|zDBDLoginToReferer|zDBDQuery|zDBDRedirectQuery|zDBMType|zSendForbiddenOnFailure)|BalancerGrowth|BalancerInherit|BalancerMember|BalancerPersist|BrowserMatch|BrowserMatchNoCase|BufferedLogs|BufferSize|Cache(?:DefaultExpire|DetailHeader|DirLength|DirLevels|Disable|Enable|File|Header|IgnoreCacheControl|IgnoreHeaders|IgnoreNoLastMod|IgnoreQueryString|IgnoreURLSessionIdentifiers|KeyBaseURL|LastModifiedFactor|Lock|LockMaxAge|LockPath|MaxExpire|MaxFileSize|MinExpire|MinFileSize|NegotiatedDocs|QuickHandler|ReadSize|ReadTime|Root|Socache(?:MaxSize|MaxTime|MinTime|ReadSize|ReadTime)?|StaleOnError|StoreExpired|StoreNoStore|StorePrivate)|CGIDScriptTimeout|CGIMapExtension|CharsetDefault|CharsetOptions|CharsetSourceEnc|CheckCaseOnly|CheckSpelling|ChrootDir|ContentDigest|CookieDomain|CookieExpires|CookieName|CookieStyle|CookieTracking|CoreDumpDirectory|CustomLog|Dav|DavDepthInfinity|DavGenericLockDB|DavLockDB|DavMinTimeout|DBDExptime|DBDInitSQL|DBDKeep|DBDMax|DBDMin|DBDParams|DBDPersist|DBDPrepareSQL|DBDriver|DefaultIcon|DefaultLanguage|DefaultRuntimeDir|DefaultType|Define|Deflate(?:BufferSize|CompressionLevel|FilterNote|InflateLimitRequestBody|InflateRatio(?:Burst|Limit)|MemLevel|WindowSize)|Deny|DirectoryCheckHandler|DirectoryIndex|DirectoryIndexRedirect|DirectorySlash|DocumentRoot|DTracePrivileges|DumpIOInput|DumpIOOutput|EnableExceptionHook|EnableMMAP|EnableSendfile|Error|ErrorDocument|ErrorLog|ErrorLogFormat|Example|ExpiresActive|ExpiresByType|ExpiresDefault|ExtendedStatus|ExtFilterDefine|ExtFilterOptions|FallbackResource|FileETag|FilterChain|FilterDeclare|FilterProtocol|FilterProvider|FilterTrace|ForceLanguagePriority|ForceType|ForensicLog|GprofDir|GracefulShutdownTimeout|Group|Header|HeaderName|Heartbeat(?:Address|Listen|MaxServers|Storage)|HostnameLookups|IdentityCheck|IdentityCheckTimeout|ImapBase|ImapDefault|ImapMenu|Include|IncludeOptional|Index(?:HeadInsert|Ignore|IgnoreReset|Options|OrderDefault|StyleSheet)|InputSed|ISAPI(?:AppendLogToErrors|AppendLogToQuery|CacheFile|FakeAsync|LogNotSupported|ReadAheadBuffer)|KeepAlive|KeepAliveTimeout|KeptBodySize|LanguagePriority|LDAP(?:CacheEntries|CacheTTL|ConnectionPoolTTL|ConnectionTimeout|LibraryDebug|OpCacheEntries|OpCacheTTL|ReferralHopLimit|Referrals|Retries|RetryDelay|SharedCacheFile|SharedCacheSize|Timeout|TrustedClientCert|TrustedGlobalCert|TrustedMode|VerifyServerCert)|Limit(?:InternalRecursion|Request(?:Body|Fields|FieldSize|Line)|XMLRequestBody)|Listen|ListenBackLog|LoadFile|LoadModule|LogFormat|LogLevel|LogMessage|LuaAuthzProvider|LuaCodeCache|Lua(?:Hook(?:AccessChecker|AuthChecker|CheckUserID|Fixups|InsertFilter|Log|MapToStorage|TranslateName|TypeChecker)|Inherit|InputFilter|MapHandler|OutputFilter|PackageCPath|PackagePath|QuickHandler|Root|Scope)|Max(?:ConnectionsPerChild|KeepAliveRequests|MemFree|RangeOverlaps|RangeReversals|Ranges|RequestWorkers|SpareServers|SpareThreads|Threads)|MergeTrailers|MetaDir|MetaFiles|MetaSuffix|MimeMagicFile|MinSpareServers|MinSpareThreads|MMapFile|ModemStandard|ModMimeUsePathInfo|MultiviewsMatch|Mutex|NameVirtualHost|NoProxy|NWSSLTrustedCerts|NWSSLUpgradeable|Options|Order|OutputSed|PassEnv|PidFile|PrivilegesMode|Protocol|ProtocolEcho|Proxy(?:AddHeaders|BadHeader|Block|Domain|ErrorOverride|ExpressDBMFile|ExpressDBMType|ExpressEnable|FtpDirCharset|FtpEscapeWildcards|FtpListOnWildcard|HTML(?:BufSize|CharsetOut|DocType|Enable|Events|Extended|Fixups|Interp|Links|Meta|StripComments|URLMap)|IOBufferSize|MaxForwards|Pass(?:Inherit|InterpolateEnv|Match|Reverse|ReverseCookieDomain|ReverseCookiePath)?|PreserveHost|ReceiveBufferSize|Remote|RemoteMatch|Requests|SCGIInternalRedirect|SCGISendfile|Set|SourceAddress|Status|Timeout|Via)|ReadmeName|ReceiveBufferSize|Redirect|RedirectMatch|RedirectPermanent|RedirectTemp|ReflectorHeader|RemoteIP(?:Header|InternalProxy|InternalProxyList|ProxiesHeader|TrustedProxy|TrustedProxyList)|RemoveCharset|RemoveEncoding|RemoveHandler|RemoveInputFilter|RemoveLanguage|RemoveOutputFilter|RemoveType|RequestHeader|RequestReadTimeout|Require|Rewrite(?:Base|Cond|Engine|Map|Options|Rule)|RLimitCPU|RLimitMEM|RLimitNPROC|Satisfy|ScoreBoardFile|Script(?:Alias|AliasMatch|InterpreterSource|Log|LogBuffer|LogLength|Sock)?|SecureListen|SeeRequestTail|SendBufferSize|Server(?:Admin|Alias|Limit|Name|Path|Root|Signature|Tokens)|Session(?:Cookie(?:Name|Name2|Remove)|Crypto(?:Cipher|Driver|Passphrase|PassphraseFile)|DBD(?:CookieName|CookieName2|CookieRemove|DeleteLabel|InsertLabel|PerUser|SelectLabel|UpdateLabel)|Env|Exclude|Header|Include|MaxAge)?|SetEnv|SetEnvIf|SetEnvIfExpr|SetEnvIfNoCase|SetHandler|SetInputFilter|SetOutputFilter|SSIEndTag|SSIErrorMsg|SSIETag|SSILastModified|SSILegacyExprParser|SSIStartTag|SSITimeFormat|SSIUndefinedEcho|SSL(?:CACertificateFile|CACertificatePath|CADNRequestFile|CADNRequestPath|CARevocationCheck|CARevocationFile|CARevocationPath|CertificateChainFile|CertificateFile|CertificateKeyFile|CipherSuite|Compression|CryptoDevice|Engine|FIPS|HonorCipherOrder|InsecureRenegotiation|OCSP(?:DefaultResponder|Enable|OverrideResponder|ResponderTimeout|ResponseMaxAge|ResponseTimeSkew|UseRequestNonce)|OpenSSLConfCmd|Options|PassPhraseDialog|Protocol|Proxy(?:CACertificateFile|CACertificatePath|CARevocation(?:Check|File|Path)|CheckPeer(?:CN|Expire|Name)|CipherSuite|Engine|MachineCertificate(?:ChainFile|File|Path)|Protocol|Verify|VerifyDepth)|RandomSeed|RenegBufferSize|Require|RequireSSL|Session(?:Cache|CacheTimeout|TicketKeyFile|Tickets)|SRPUnknownUserSeed|SRPVerifierFile|Stapling(?:Cache|ErrorCacheTimeout|FakeTryLater|ForceURL|ResponderTimeout|ResponseMaxAge|ResponseTimeSkew|ReturnResponderErrors|StandardCacheTimeout)|StrictSNIVHostCheck|UserName|UseStapling|VerifyClient|VerifyDepth)|StartServers|StartThreads|Substitute|Suexec|SuexecUserGroup|ThreadLimit|ThreadsPerChild|ThreadStackSize|TimeOut|TraceEnable|TransferLog|TypesConfig|UnDefine|UndefMacro|UnsetEnv|Use|UseCanonicalName|UseCanonicalPhysicalPort|User|UserDir|VHostCGIMode|VHostCGIPrivs|VHostGroup|VHostPrivs|VHostSecure|VHostUser|Virtual(?:DocumentRoot|ScriptAlias)(?:IP)?|WatchdogInterval|XBitHack|xml2EncAlias|xml2EncDefault|xml2StartParse)\b/im,lookbehind:!0,alias:"property"},"directive-block":{pattern:/<\/?\b(?:Auth[nz]ProviderAlias|Directory|DirectoryMatch|Else|ElseIf|Files|FilesMatch|If|IfDefine|IfModule|IfVersion|Limit|LimitExcept|Location|LocationMatch|Macro|Proxy|Require(?:All|Any|None)|VirtualHost)\b.*>/i,inside:{"directive-block":{pattern:/^<\/?\w+/,inside:{punctuation:/^<\/?/},alias:"tag"},"directive-block-parameter":{pattern:/.*[^>]/,inside:{punctuation:/:/,string:{pattern:/("|').*\1/,inside:{variable:/[$%]\{?(?:\w\.?[-+:]?)+\}?/}}},alias:"attr-value"},punctuation:/>/},alias:"tag"},"directive-flags":{pattern:/\[(?:[\w=],?)+\]/,alias:"keyword"},string:{pattern:/("|').*\1/,inside:{variable:/[$%]\{?(?:\w\.?[-+:]?)+\}?/}},variable:/[$%]\{?(?:\w\.?[-+:]?)+\}?/,regex:/\^?.*\$|\^.*\$?/}}return bc}var yc,uv;function ph(){if(uv)return yc;uv=1,yc=e,e.displayName="sql",e.aliases=[];function e(t){t.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},identifier:{pattern:/(^|[^@\\])`(?:\\[\s\S]|[^`\\]|``)*`/,greedy:!0,lookbehind:!0,inside:{punctuation:/^`|`$/}},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:FALSE|NULL|TRUE)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/}}return yc}var Ec,cv;function lU(){if(cv)return Ec;cv=1;var e=ph();Ec=t,t.displayName="apex",t.aliases=[];function t(n){n.register(e),(function(i){var o=/\b(?:(?:after|before)(?=\s+[a-z])|abstract|activate|and|any|array|as|asc|autonomous|begin|bigdecimal|blob|boolean|break|bulk|by|byte|case|cast|catch|char|class|collect|commit|const|continue|currency|date|datetime|decimal|default|delete|desc|do|double|else|end|enum|exception|exit|export|extends|final|finally|float|for|from|get(?=\s*[{};])|global|goto|group|having|hint|if|implements|import|in|inner|insert|instanceof|int|integer|interface|into|join|like|limit|list|long|loop|map|merge|new|not|null|nulls|number|object|of|on|or|outer|override|package|parallel|pragma|private|protected|public|retrieve|return|rollback|select|set|short|sObject|sort|static|string|super|switch|synchronized|system|testmethod|then|this|throw|time|transaction|transient|trigger|try|undelete|update|upsert|using|virtual|void|webservice|when|where|while|(?:inherited|with|without)\s+sharing)\b/i,l=/\b(?:(?=[a-z_]\w*\s*[<\[])|(?!))[A-Z_]\w*(?:\s*\.\s*[A-Z_]\w*)*\b(?:\s*(?:\[\s*\]|<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>))*/.source.replace(//g,function(){return o.source});function u(p){return RegExp(p.replace(//g,function(){return l}),"i")}var c={keyword:o,punctuation:/[()\[\]{};,:.<>]/};i.languages.apex={comment:i.languages.clike.comment,string:i.languages.clike.string,sql:{pattern:/((?:[=,({:]|\breturn)\s*)\[[^\[\]]*\]/i,lookbehind:!0,greedy:!0,alias:"language-sql",inside:i.languages.sql},annotation:{pattern:/@\w+\b/,alias:"punctuation"},"class-name":[{pattern:u(/(\b(?:class|enum|extends|implements|instanceof|interface|new|trigger\s+\w+\s+on)\s+)/.source),lookbehind:!0,inside:c},{pattern:u(/(\(\s*)(?=\s*\)\s*[\w(])/.source),lookbehind:!0,inside:c},{pattern:u(/(?=\s*\w+\s*[;=,(){:])/.source),inside:c}],trigger:{pattern:/(\btrigger\s+)\w+\b/i,lookbehind:!0,alias:"class-name"},keyword:o,function:/\b[a-z_]\w*(?=\s*\()/i,boolean:/\b(?:false|true)\b/i,number:/(?:\B\.\d+|\b\d+(?:\.\d+|L)?)\b/i,operator:/[!=](?:==?)?|\?\.?|&&|\|\||--|\+\+|[-+*/^&|]=?|:|<{1,3}=?/,punctuation:/[()\[\]{};,.]/}})(n)}return Ec}var Sc,dv;function uU(){if(dv)return Sc;dv=1,Sc=e,e.displayName="apl",e.aliases=[];function e(t){t.languages.apl={comment:/(?:⍝|#[! ]).*$/m,string:{pattern:/'(?:[^'\r\n]|'')*'/,greedy:!0},number:/¯?(?:\d*\.?\b\d+(?:e[+¯]?\d+)?|¯|∞)(?:j¯?(?:(?:\d+(?:\.\d+)?|\.\d+)(?:e[+¯]?\d+)?|¯|∞))?/i,statement:/:[A-Z][a-z][A-Za-z]*\b/,"system-function":{pattern:/⎕[A-Z]+/i,alias:"function"},constant:/[⍬⌾#⎕⍞]/,function:/[-+×÷⌈⌊∣|⍳⍸?*⍟○!⌹<≤=>≥≠≡≢∊⍷∪∩~∨∧⍱⍲⍴,⍪⌽⊖⍉↑↓⊂⊃⊆⊇⌷⍋⍒⊤⊥⍕⍎⊣⊢⍁⍂≈⍯↗¤→]/,"monadic-operator":{pattern:/[\\\/⌿⍀¨⍨⌶&∥]/,alias:"operator"},"dyadic-operator":{pattern:/[.⍣⍠⍤∘⌸@⌺⍥]/,alias:"operator"},assignment:{pattern:/←/,alias:"keyword"},punctuation:/[\[;\]()◇⋄]/,dfn:{pattern:/[{}⍺⍵⍶⍹∇⍫:]/,alias:"builtin"}}}return Sc}var vc,pv;function cU(){if(pv)return vc;pv=1,vc=e,e.displayName="applescript",e.aliases=[];function e(t){t.languages.applescript={comment:[/\(\*(?:\(\*(?:[^*]|\*(?!\)))*\*\)|(?!\(\*)[\s\S])*?\*\)/,/--.+/,/#.+/],string:/"(?:\\.|[^"\\\r\n])*"/,number:/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e-?\d+)?\b/i,operator:[/[&=≠≤≥*+\-\/÷^]|[<>]=?/,/\b(?:(?:begin|end|start)s? with|(?:contains?|(?:does not|doesn't) contain)|(?:is|isn't|is not) (?:contained by|in)|(?:(?:is|isn't|is not) )?(?:greater|less) than(?: or equal)?(?: to)?|(?:comes|(?:does not|doesn't) come) (?:after|before)|(?:is|isn't|is not) equal(?: to)?|(?:(?:does not|doesn't) equal|equal to|equals|is not|isn't)|(?:a )?(?:ref(?: to)?|reference to)|(?:and|as|div|mod|not|or))\b/],keyword:/\b(?:about|above|after|against|apart from|around|aside from|at|back|before|beginning|behind|below|beneath|beside|between|but|by|considering|continue|copy|does|eighth|else|end|equal|error|every|exit|false|fifth|first|for|fourth|from|front|get|given|global|if|ignoring|in|instead of|into|is|it|its|last|local|me|middle|my|ninth|of|on|onto|out of|over|prop|property|put|repeat|return|returning|second|set|seventh|since|sixth|some|tell|tenth|that|the|then|third|through|thru|timeout|times|to|transaction|true|try|until|where|while|whose|with|without)\b/,"class-name":/\b(?:POSIX file|RGB color|alias|application|boolean|centimeters|centimetres|class|constant|cubic centimeters|cubic centimetres|cubic feet|cubic inches|cubic meters|cubic metres|cubic yards|date|degrees Celsius|degrees Fahrenheit|degrees Kelvin|feet|file|gallons|grams|inches|integer|kilograms|kilometers|kilometres|list|liters|litres|meters|metres|miles|number|ounces|pounds|quarts|real|record|reference|script|square feet|square kilometers|square kilometres|square meters|square metres|square miles|square yards|text|yards)\b/,punctuation:/[{}():,¬«»《》]/}}return vc}var kc,fv;function dU(){if(fv)return kc;fv=1,kc=e,e.displayName="aql",e.aliases=[];function e(t){t.languages.aql={comment:/\/\/.*|\/\*[\s\S]*?\*\//,property:{pattern:/([{,]\s*)(?:(?!\d)\w+|(["'´`])(?:(?!\2)[^\\\r\n]|\\.)*\2)(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(["'])(?:(?!\1)[^\\\r\n]|\\.)*\1/,greedy:!0},identifier:{pattern:/([´`])(?:(?!\1)[^\\\r\n]|\\.)*\1/,greedy:!0},variable:/@@?\w+/,keyword:[{pattern:/(\bWITH\s+)COUNT(?=\s+INTO\b)/i,lookbehind:!0},/\b(?:AGGREGATE|ALL|AND|ANY|ASC|COLLECT|DESC|DISTINCT|FILTER|FOR|GRAPH|IN|INBOUND|INSERT|INTO|K_PATHS|K_SHORTEST_PATHS|LET|LIKE|LIMIT|NONE|NOT|NULL|OR|OUTBOUND|REMOVE|REPLACE|RETURN|SHORTEST_PATH|SORT|UPDATE|UPSERT|WINDOW|WITH)\b/i,{pattern:/(^|[^\w.[])(?:KEEP|PRUNE|SEARCH|TO)\b/i,lookbehind:!0},{pattern:/(^|[^\w.[])(?:CURRENT|NEW|OLD)\b/,lookbehind:!0},{pattern:/\bOPTIONS(?=\s*\{)/i}],function:/\b(?!\d)\w+(?=\s*\()/,boolean:/\b(?:false|true)\b/i,range:{pattern:/\.\./,alias:"operator"},number:[/\b0b[01]+/i,/\b0x[0-9a-f]+/i,/(?:\B\.\d+|\b(?:0|[1-9]\d*)(?:\.\d+)?)(?:e[+-]?\d+)?/i],operator:/\*{2,}|[=!]~|[!=<>]=?|&&|\|\||[-+*/%]/,punctuation:/::|[?.:,;()[\]{}]/}}return kc}var _c,gv;function Yr(){if(gv)return _c;gv=1,_c=e,e.displayName="c",e.aliases=[];function e(t){t.languages.c=t.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),t.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),t.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},t.languages.c.string],char:t.languages.c.char,comment:t.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:t.languages.c}}}}),t.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete t.languages.c.boolean}return _c}var wc,mv;function fh(){if(mv)return wc;mv=1;var e=Yr();wc=t,t.displayName="cpp",t.aliases=[];function t(n){n.register(e),(function(i){var o=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,l=/\b(?!)\w+(?:\s*\.\s*\w+)*\b/.source.replace(//g,function(){return o.source});i.languages.cpp=i.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!)\w+/.source.replace(//g,function(){return o.source})),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:o,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),i.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/(?:\s*:\s*)?|:\s*/.source.replace(//g,function(){return l})+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),i.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:i.languages.cpp}}}}),i.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),i.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:i.languages.extend("cpp",{})}}),i.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},i.languages.cpp["base-clause"])})(n)}return wc}var Tc,hv;function pU(){if(hv)return Tc;hv=1;var e=fh();Tc=t,t.displayName="arduino",t.aliases=["ino"];function t(n){n.register(e),n.languages.arduino=n.languages.extend("cpp",{keyword:/\b(?:String|array|bool|boolean|break|byte|case|catch|continue|default|do|double|else|finally|for|function|goto|if|in|instanceof|int|integer|long|loop|new|null|return|setup|string|switch|throw|try|void|while|word)\b/,constant:/\b(?:ANALOG_MESSAGE|DEFAULT|DIGITAL_MESSAGE|EXTERNAL|FIRMATA_STRING|HIGH|INPUT|INPUT_PULLUP|INTERNAL|INTERNAL1V1|INTERNAL2V56|LED_BUILTIN|LOW|OUTPUT|REPORT_ANALOG|REPORT_DIGITAL|SET_PIN_MODE|SYSEX_START|SYSTEM_RESET)\b/,builtin:/\b(?:Audio|BSSID|Bridge|Client|Console|EEPROM|Esplora|EsploraTFT|Ethernet|EthernetClient|EthernetServer|EthernetUDP|File|FileIO|FileSystem|Firmata|GPRS|GSM|GSMBand|GSMClient|GSMModem|GSMPIN|GSMScanner|GSMServer|GSMVoiceCall|GSM_SMS|HttpClient|IPAddress|IRread|Keyboard|KeyboardController|LiquidCrystal|LiquidCrystal_I2C|Mailbox|Mouse|MouseController|PImage|Process|RSSI|RobotControl|RobotMotor|SD|SPI|SSID|Scheduler|Serial|Server|Servo|SoftwareSerial|Stepper|Stream|TFT|Task|USBHost|WiFi|WiFiClient|WiFiServer|WiFiUDP|Wire|YunClient|YunServer|abs|addParameter|analogRead|analogReadResolution|analogReference|analogWrite|analogWriteResolution|answerCall|attach|attachGPRS|attachInterrupt|attached|autoscroll|available|background|beep|begin|beginPacket|beginSD|beginSMS|beginSpeaker|beginTFT|beginTransmission|beginWrite|bit|bitClear|bitRead|bitSet|bitWrite|blink|blinkVersion|buffer|changePIN|checkPIN|checkPUK|checkReg|circle|cityNameRead|cityNameWrite|clear|clearScreen|click|close|compassRead|config|connect|connected|constrain|cos|countryNameRead|countryNameWrite|createChar|cursor|debugPrint|delay|delayMicroseconds|detach|detachInterrupt|digitalRead|digitalWrite|disconnect|display|displayLogos|drawBMP|drawCompass|encryptionType|end|endPacket|endSMS|endTransmission|endWrite|exists|exitValue|fill|find|findUntil|flush|gatewayIP|get|getAsynchronously|getBand|getButton|getCurrentCarrier|getIMEI|getKey|getModifiers|getOemKey|getPINUsed|getResult|getSignalStrength|getSocket|getVoiceCallStatus|getXChange|getYChange|hangCall|height|highByte|home|image|interrupts|isActionDone|isDirectory|isListening|isPIN|isPressed|isValid|keyPressed|keyReleased|keyboardRead|knobRead|leftToRight|line|lineFollowConfig|listen|listenOnLocalhost|loadImage|localIP|lowByte|macAddress|maintain|map|max|messageAvailable|micros|millis|min|mkdir|motorsStop|motorsWrite|mouseDragged|mouseMoved|mousePressed|mouseReleased|move|noAutoscroll|noBlink|noBuffer|noCursor|noDisplay|noFill|noInterrupts|noListenOnLocalhost|noStroke|noTone|onReceive|onRequest|open|openNextFile|overflow|parseCommand|parseFloat|parseInt|parsePacket|pauseMode|peek|pinMode|playFile|playMelody|point|pointTo|position|pow|prepare|press|print|printFirmwareVersion|printVersion|println|process|processInput|pulseIn|put|random|randomSeed|read|readAccelerometer|readBlue|readButton|readBytes|readBytesUntil|readGreen|readJoystickButton|readJoystickSwitch|readJoystickX|readJoystickY|readLightSensor|readMessage|readMicrophone|readNetworks|readRed|readSlider|readString|readStringUntil|readTemperature|ready|rect|release|releaseAll|remoteIP|remoteNumber|remotePort|remove|requestFrom|retrieveCallingNumber|rewindDirectory|rightToLeft|rmdir|robotNameRead|robotNameWrite|run|runAsynchronously|runShellCommand|runShellCommandAsynchronously|running|scanNetworks|scrollDisplayLeft|scrollDisplayRight|seek|sendAnalog|sendDigitalPortPair|sendDigitalPorts|sendString|sendSysex|serialEvent|setBand|setBitOrder|setClockDivider|setCursor|setDNS|setDataMode|setFirmwareVersion|setMode|setPINUsed|setSpeed|setTextSize|setTimeout|shiftIn|shiftOut|shutdown|sin|size|sqrt|startLoop|step|stop|stroke|subnetMask|switchPIN|tan|tempoWrite|text|tone|transfer|tuneWrite|turn|updateIR|userNameRead|userNameWrite|voiceCall|waitContinue|width|write|writeBlue|writeGreen|writeJSON|writeMessage|writeMicroseconds|writeRGB|writeRed|yield)\b/}),n.languages.ino=n.languages.arduino}return Tc}var xc,bv;function fU(){if(bv)return xc;bv=1,xc=e,e.displayName="arff",e.aliases=[];function e(t){t.languages.arff={comment:/%.*/,string:{pattern:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},keyword:/@(?:attribute|data|end|relation)\b/i,number:/\b\d+(?:\.\d+)?\b/,punctuation:/[{},]/}}return xc}var Ac,yv;function gU(){if(yv)return Ac;yv=1,Ac=e,e.displayName="asciidoc",e.aliases=["adoc"];function e(t){(function(n){var i={pattern:/(^[ \t]*)\[(?!\[)(?:(["'$`])(?:(?!\2)[^\\]|\\.)*\2|\[(?:[^\[\]\\]|\\.)*\]|[^\[\]\\"'$`]|\\.)*\]/m,lookbehind:!0,inside:{quoted:{pattern:/([$`])(?:(?!\1)[^\\]|\\.)*\1/,inside:{punctuation:/^[$`]|[$`]$/}},interpreted:{pattern:/'(?:[^'\\]|\\.)*'/,inside:{punctuation:/^'|'$/}},string:/"(?:[^"\\]|\\.)*"/,variable:/\w+(?==)/,punctuation:/^\[|\]$|,/,operator:/=/,"attr-value":/(?!^\s+$).+/}},o=n.languages.asciidoc={"comment-block":{pattern:/^(\/{4,})(?:\r?\n|\r)(?:[\s\S]*(?:\r?\n|\r))??\1/m,alias:"comment"},table:{pattern:/^\|={3,}(?:(?:\r?\n|\r(?!\n)).*)*?(?:\r?\n|\r)\|={3,}$/m,inside:{specifiers:{pattern:/(?:(?:(?:\d+(?:\.\d+)?|\.\d+)[+*](?:[<^>](?:\.[<^>])?|\.[<^>])?|[<^>](?:\.[<^>])?|\.[<^>])[a-z]*|[a-z]+)(?=\|)/,alias:"attr-value"},punctuation:{pattern:/(^|[^\\])[|!]=*/,lookbehind:!0}}},"passthrough-block":{pattern:/^(\+{4,})(?:\r?\n|\r)(?:[\s\S]*(?:\r?\n|\r))??\1$/m,inside:{punctuation:/^\++|\++$/}},"literal-block":{pattern:/^(-{4,}|\.{4,})(?:\r?\n|\r)(?:[\s\S]*(?:\r?\n|\r))??\1$/m,inside:{punctuation:/^(?:-+|\.+)|(?:-+|\.+)$/}},"other-block":{pattern:/^(--|\*{4,}|_{4,}|={4,})(?:\r?\n|\r)(?:[\s\S]*(?:\r?\n|\r))??\1$/m,inside:{punctuation:/^(?:-+|\*+|_+|=+)|(?:-+|\*+|_+|=+)$/}},"list-punctuation":{pattern:/(^[ \t]*)(?:-|\*{1,5}|\.{1,5}|(?:[a-z]|\d+)\.|[xvi]+\))(?= )/im,lookbehind:!0,alias:"punctuation"},"list-label":{pattern:/(^[ \t]*)[a-z\d].+(?::{2,4}|;;)(?=\s)/im,lookbehind:!0,alias:"symbol"},"indented-block":{pattern:/((\r?\n|\r)\2)([ \t]+)\S.*(?:(?:\r?\n|\r)\3.+)*(?=\2{2}|$)/,lookbehind:!0},comment:/^\/\/.*/m,title:{pattern:/^.+(?:\r?\n|\r)(?:={3,}|-{3,}|~{3,}|\^{3,}|\+{3,})$|^={1,5} .+|^\.(?![\s.]).*/m,alias:"important",inside:{punctuation:/^(?:\.|=+)|(?:=+|-+|~+|\^+|\++)$/}},"attribute-entry":{pattern:/^:[^:\r\n]+:(?: .*?(?: \+(?:\r?\n|\r).*?)*)?$/m,alias:"tag"},attributes:i,hr:{pattern:/^'{3,}$/m,alias:"punctuation"},"page-break":{pattern:/^<{3,}$/m,alias:"punctuation"},admonition:{pattern:/^(?:CAUTION|IMPORTANT|NOTE|TIP|WARNING):/m,alias:"keyword"},callout:[{pattern:/(^[ \t]*)/m,lookbehind:!0,alias:"symbol"},{pattern:/<\d+>/,alias:"symbol"}],macro:{pattern:/\b[a-z\d][a-z\d-]*::?(?:[^\s\[\]]*\[(?:[^\]\\"']|(["'])(?:(?!\1)[^\\]|\\.)*\1|\\.)*\])/,inside:{function:/^[a-z\d-]+(?=:)/,punctuation:/^::?/,attributes:{pattern:/(?:\[(?:[^\]\\"']|(["'])(?:(?!\1)[^\\]|\\.)*\1|\\.)*\])/,inside:i.inside}}},inline:{pattern:/(^|[^\\])(?:(?:\B\[(?:[^\]\\"']|(["'])(?:(?!\2)[^\\]|\\.)*\2|\\.)*\])?(?:\b_(?!\s)(?: _|[^_\\\r\n]|\\.)+(?:(?:\r?\n|\r)(?: _|[^_\\\r\n]|\\.)+)*_\b|\B``(?!\s).+?(?:(?:\r?\n|\r).+?)*''\B|\B`(?!\s)(?:[^`'\s]|\s+\S)+['`]\B|\B(['*+#])(?!\s)(?: \3|(?!\3)[^\\\r\n]|\\.)+(?:(?:\r?\n|\r)(?: \3|(?!\3)[^\\\r\n]|\\.)+)*\3\B)|(?:\[(?:[^\]\\"']|(["'])(?:(?!\4)[^\\]|\\.)*\4|\\.)*\])?(?:(__|\*\*|\+\+\+?|##|\$\$|[~^]).+?(?:(?:\r?\n|\r).+?)*\5|\{[^}\r\n]+\}|\[\[\[?.+?(?:(?:\r?\n|\r).+?)*\]?\]\]|<<.+?(?:(?:\r?\n|\r).+?)*>>|\(\(\(?.+?(?:(?:\r?\n|\r).+?)*\)?\)\)))/m,lookbehind:!0,inside:{attributes:i,url:{pattern:/^(?:\[\[\[?.+?\]?\]\]|<<.+?>>)$/,inside:{punctuation:/^(?:\[\[\[?|<<)|(?:\]\]\]?|>>)$/}},"attribute-ref":{pattern:/^\{.+\}$/,inside:{variable:{pattern:/(^\{)[a-z\d,+_-]+/,lookbehind:!0},operator:/^[=?!#%@$]|!(?=[:}])/,punctuation:/^\{|\}$|::?/}},italic:{pattern:/^(['_])[\s\S]+\1$/,inside:{punctuation:/^(?:''?|__?)|(?:''?|__?)$/}},bold:{pattern:/^\*[\s\S]+\*$/,inside:{punctuation:/^\*\*?|\*\*?$/}},punctuation:/^(?:``?|\+{1,3}|##?|\$\$|[~^]|\(\(\(?)|(?:''?|\+{1,3}|##?|\$\$|[~^`]|\)?\)\))$/}},replacement:{pattern:/\((?:C|R|TM)\)/,alias:"builtin"},entity:/&#?[\da-z]{1,8};/i,"line-continuation":{pattern:/(^| )\+$/m,lookbehind:!0,alias:"punctuation"}};function l(u){u=u.split(" ");for(var c={},p=0,f=u.length;p>=?|<<=?|&&?|\|\|?|[-+*/%&|^!=<>?]=?/,punctuation:/[(),:]/}}return Nc}var Cc,vv;function ks(){if(vv)return Cc;vv=1,Cc=e,e.displayName="csharp",e.aliases=["dotnet","cs"];function e(t){(function(n){function i(D,$){return D.replace(/<<(\d+)>>/g,function(C,ae){return"(?:"+$[+ae]+")"})}function o(D,$,C){return RegExp(i(D,$),"")}function l(D,$){for(var C=0;C<$;C++)D=D.replace(/<>/g,function(){return"(?:"+D+")"});return D.replace(/<>/g,"[^\\s\\S]")}var u={type:"bool byte char decimal double dynamic float int long object sbyte short string uint ulong ushort var void",typeDeclaration:"class enum interface record struct",contextual:"add alias and ascending async await by descending from(?=\\s*(?:\\w|$)) get global group into init(?=\\s*;) join let nameof not notnull on or orderby partial remove select set unmanaged value when where with(?=\\s*{)",other:"abstract as base break case catch checked const continue default delegate do else event explicit extern finally fixed for foreach goto if implicit in internal is lock namespace new null operator out override params private protected public readonly ref return sealed sizeof stackalloc static switch this throw try typeof unchecked unsafe using virtual volatile while yield"};function c(D){return"\\b(?:"+D.trim().replace(/ /g,"|")+")\\b"}var p=c(u.typeDeclaration),f=RegExp(c(u.type+" "+u.typeDeclaration+" "+u.contextual+" "+u.other)),m=c(u.typeDeclaration+" "+u.contextual+" "+u.other),h=c(u.type+" "+u.typeDeclaration+" "+u.other),S=l(/<(?:[^<>;=+\-*/%&|^]|<>)*>/.source,2),E=l(/\((?:[^()]|<>)*\)/.source,2),v=/@?\b[A-Za-z_]\w*\b/.source,k=i(/<<0>>(?:\s*<<1>>)?/.source,[v,S]),T=i(/(?!<<0>>)<<1>>(?:\s*\.\s*<<1>>)*/.source,[m,k]),N=/\[\s*(?:,\s*)*\]/.source,R=i(/<<0>>(?:\s*(?:\?\s*)?<<1>>)*(?:\s*\?)?/.source,[T,N]),A=i(/[^,()<>[\];=+\-*/%&|^]|<<0>>|<<1>>|<<2>>/.source,[S,E,N]),O=i(/\(<<0>>+(?:,<<0>>+)+\)/.source,[A]),L=i(/(?:<<0>>|<<1>>)(?:\s*(?:\?\s*)?<<2>>)*(?:\s*\?)?/.source,[O,T,N]),w={keyword:f,punctuation:/[<>()?,.:[\]]/},B=/'(?:[^\r\n'\\]|\\.|\\[Uux][\da-fA-F]{1,8})'/.source,W=/"(?:\\.|[^\\"\r\n])*"/.source,j=/@"(?:""|\\[\s\S]|[^\\"])*"(?!")/.source;n.languages.csharp=n.languages.extend("clike",{string:[{pattern:o(/(^|[^$\\])<<0>>/.source,[j]),lookbehind:!0,greedy:!0},{pattern:o(/(^|[^@$\\])<<0>>/.source,[W]),lookbehind:!0,greedy:!0}],"class-name":[{pattern:o(/(\busing\s+static\s+)<<0>>(?=\s*;)/.source,[T]),lookbehind:!0,inside:w},{pattern:o(/(\busing\s+<<0>>\s*=\s*)<<1>>(?=\s*;)/.source,[v,L]),lookbehind:!0,inside:w},{pattern:o(/(\busing\s+)<<0>>(?=\s*=)/.source,[v]),lookbehind:!0},{pattern:o(/(\b<<0>>\s+)<<1>>/.source,[p,k]),lookbehind:!0,inside:w},{pattern:o(/(\bcatch\s*\(\s*)<<0>>/.source,[T]),lookbehind:!0,inside:w},{pattern:o(/(\bwhere\s+)<<0>>/.source,[v]),lookbehind:!0},{pattern:o(/(\b(?:is(?:\s+not)?|as)\s+)<<0>>/.source,[R]),lookbehind:!0,inside:w},{pattern:o(/\b<<0>>(?=\s+(?!<<1>>|with\s*\{)<<2>>(?:\s*[=,;:{)\]]|\s+(?:in|when)\b))/.source,[L,h,v]),inside:w}],keyword:f,number:/(?:\b0(?:x[\da-f_]*[\da-f]|b[01_]*[01])|(?:\B\.\d+(?:_+\d+)*|\b\d+(?:_+\d+)*(?:\.\d+(?:_+\d+)*)?)(?:e[-+]?\d+(?:_+\d+)*)?)(?:[dflmu]|lu|ul)?\b/i,operator:/>>=?|<<=?|[-=]>|([-+&|])\1|~|\?\?=?|[-+*/%&|^!=<>]=?/,punctuation:/\?\.?|::|[{}[\];(),.:]/}),n.languages.insertBefore("csharp","number",{range:{pattern:/\.\./,alias:"operator"}}),n.languages.insertBefore("csharp","punctuation",{"named-parameter":{pattern:o(/([(,]\s*)<<0>>(?=\s*:)/.source,[v]),lookbehind:!0,alias:"punctuation"}}),n.languages.insertBefore("csharp","class-name",{namespace:{pattern:o(/(\b(?:namespace|using)\s+)<<0>>(?:\s*\.\s*<<0>>)*(?=\s*[;{])/.source,[v]),lookbehind:!0,inside:{punctuation:/\./}},"type-expression":{pattern:o(/(\b(?:default|sizeof|typeof)\s*\(\s*(?!\s))(?:[^()\s]|\s(?!\s)|<<0>>)*(?=\s*\))/.source,[E]),lookbehind:!0,alias:"class-name",inside:w},"return-type":{pattern:o(/<<0>>(?=\s+(?:<<1>>\s*(?:=>|[({]|\.\s*this\s*\[)|this\s*\[))/.source,[L,T]),inside:w,alias:"class-name"},"constructor-invocation":{pattern:o(/(\bnew\s+)<<0>>(?=\s*[[({])/.source,[L]),lookbehind:!0,inside:w,alias:"class-name"},"generic-method":{pattern:o(/<<0>>\s*<<1>>(?=\s*\()/.source,[v,S]),inside:{function:o(/^<<0>>/.source,[v]),generic:{pattern:RegExp(S),alias:"class-name",inside:w}}},"type-list":{pattern:o(/\b((?:<<0>>\s+<<1>>|record\s+<<1>>\s*<<5>>|where\s+<<2>>)\s*:\s*)(?:<<3>>|<<4>>|<<1>>\s*<<5>>|<<6>>)(?:\s*,\s*(?:<<3>>|<<4>>|<<6>>))*(?=\s*(?:where|[{;]|=>|$))/.source,[p,k,v,L,f.source,E,/\bnew\s*\(\s*\)/.source]),lookbehind:!0,inside:{"record-arguments":{pattern:o(/(^(?!new\s*\()<<0>>\s*)<<1>>/.source,[k,E]),lookbehind:!0,greedy:!0,inside:n.languages.csharp},keyword:f,"class-name":{pattern:RegExp(L),greedy:!0,inside:w},punctuation:/[,()]/}},preprocessor:{pattern:/(^[\t ]*)#.*/m,lookbehind:!0,alias:"property",inside:{directive:{pattern:/(#)\b(?:define|elif|else|endif|endregion|error|if|line|nullable|pragma|region|undef|warning)\b/,lookbehind:!0,alias:"keyword"}}}});var M=W+"|"+B,Y=i(/\/(?![*/])|\/\/[^\r\n]*[\r\n]|\/\*(?:[^*]|\*(?!\/))*\*\/|<<0>>/.source,[M]),J=l(i(/[^"'/()]|<<0>>|\(<>*\)/.source,[Y]),2),de=/\b(?:assembly|event|field|method|module|param|property|return|type)\b/.source,Z=i(/<<0>>(?:\s*\(<<1>>*\))?/.source,[T,J]);n.languages.insertBefore("csharp","class-name",{attribute:{pattern:o(/((?:^|[^\s\w>)?])\s*\[\s*)(?:<<0>>\s*:\s*)?<<1>>(?:\s*,\s*<<1>>)*(?=\s*\])/.source,[de,Z]),lookbehind:!0,greedy:!0,inside:{target:{pattern:o(/^<<0>>(?=\s*:)/.source,[de]),alias:"keyword"},"attribute-arguments":{pattern:o(/\(<<0>>*\)/.source,[J]),inside:n.languages.csharp},"class-name":{pattern:RegExp(T),inside:{punctuation:/\./}},punctuation:/[:,]/}}});var H=/:[^}\r\n]+/.source,te=l(i(/[^"'/()]|<<0>>|\(<>*\)/.source,[Y]),2),ue=i(/\{(?!\{)(?:(?![}:])<<0>>)*<<1>>?\}/.source,[te,H]),q=l(i(/[^"'/()]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|<<0>>|\(<>*\)/.source,[M]),2),Q=i(/\{(?!\{)(?:(?![}:])<<0>>)*<<1>>?\}/.source,[q,H]);function x(D,$){return{interpolation:{pattern:o(/((?:^|[^{])(?:\{\{)*)<<0>>/.source,[D]),lookbehind:!0,inside:{"format-string":{pattern:o(/(^\{(?:(?![}:])<<0>>)*)<<1>>(?=\}$)/.source,[$,H]),lookbehind:!0,inside:{punctuation:/^:/}},punctuation:/^\{|\}$/,expression:{pattern:/[\s\S]+/,alias:"language-csharp",inside:n.languages.csharp}}},string:/[\s\S]+/}}n.languages.insertBefore("csharp","string",{"interpolation-string":[{pattern:o(/(^|[^\\])(?:\$@|@\$)"(?:""|\\[\s\S]|\{\{|<<0>>|[^\\{"])*"/.source,[ue]),lookbehind:!0,greedy:!0,inside:x(ue,te)},{pattern:o(/(^|[^@\\])\$"(?:\\.|\{\{|<<0>>|[^\\"{])*"/.source,[Q]),lookbehind:!0,greedy:!0,inside:x(Q,q)}],char:{pattern:RegExp(B),greedy:!0}}),n.languages.dotnet=n.languages.cs=n.languages.csharp})(t)}return Cc}var Ic,kv;function bU(){if(kv)return Ic;kv=1;var e=ks();Ic=t,t.displayName="aspnet",t.aliases=[];function t(n){n.register(e),n.languages.aspnet=n.languages.extend("markup",{"page-directive":{pattern:/<%\s*@.*%>/,alias:"tag",inside:{"page-directive":{pattern:/<%\s*@\s*(?:Assembly|Control|Implements|Import|Master(?:Type)?|OutputCache|Page|PreviousPageType|Reference|Register)?|%>/i,alias:"tag"},rest:n.languages.markup.tag.inside}},directive:{pattern:/<%.*%>/,alias:"tag",inside:{directive:{pattern:/<%\s*?[$=%#:]{0,2}|%>/,alias:"tag"},rest:n.languages.csharp}}}),n.languages.aspnet.tag.pattern=/<(?!%)\/?[^\s>\/]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/,n.languages.insertBefore("inside","punctuation",{directive:n.languages.aspnet.directive},n.languages.aspnet.tag.inside["attr-value"]),n.languages.insertBefore("aspnet","comment",{"asp-comment":{pattern:/<%--[\s\S]*?--%>/,alias:["asp","comment"]}}),n.languages.insertBefore("aspnet",n.languages.javascript?"script":"tag",{"asp-script":{pattern:/(]*>)[\s\S]*?(?=<\/script>)/i,lookbehind:!0,alias:["asp","script"],inside:n.languages.csharp||{}}})}return Ic}var Oc,_v;function yU(){if(_v)return Oc;_v=1,Oc=e,e.displayName="autohotkey",e.aliases=[];function e(t){t.languages.autohotkey={comment:[{pattern:/(^|\s);.*/,lookbehind:!0},{pattern:/(^[\t ]*)\/\*(?:[\r\n](?![ \t]*\*\/)|[^\r\n])*(?:[\r\n][ \t]*\*\/)?/m,lookbehind:!0,greedy:!0}],tag:{pattern:/^([ \t]*)[^\s,`":]+(?=:[ \t]*$)/m,lookbehind:!0},string:/"(?:[^"\n\r]|"")*"/,variable:/%\w+%/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/\?|\/\/?=?|:=|\|[=|]?|&[=&]?|\+[=+]?|-[=-]?|\*[=*]?|<(?:<=?|>|=)?|>>?=?|[.^!=~]=?|\b(?:AND|NOT|OR)\b/,boolean:/\b(?:false|true)\b/,selector:/\b(?:AutoTrim|BlockInput|Break|Click|ClipWait|Continue|Control|ControlClick|ControlFocus|ControlGet|ControlGetFocus|ControlGetPos|ControlGetText|ControlMove|ControlSend|ControlSendRaw|ControlSetText|CoordMode|Critical|DetectHiddenText|DetectHiddenWindows|Drive|DriveGet|DriveSpaceFree|EnvAdd|EnvDiv|EnvGet|EnvMult|EnvSet|EnvSub|EnvUpdate|Exit|ExitApp|FileAppend|FileCopy|FileCopyDir|FileCreateDir|FileCreateShortcut|FileDelete|FileEncoding|FileGetAttrib|FileGetShortcut|FileGetSize|FileGetTime|FileGetVersion|FileInstall|FileMove|FileMoveDir|FileRead|FileReadLine|FileRecycle|FileRecycleEmpty|FileRemoveDir|FileSelectFile|FileSelectFolder|FileSetAttrib|FileSetTime|FormatTime|GetKeyState|Gosub|Goto|GroupActivate|GroupAdd|GroupClose|GroupDeactivate|Gui|GuiControl|GuiControlGet|Hotkey|ImageSearch|IniDelete|IniRead|IniWrite|Input|InputBox|KeyWait|ListHotkeys|ListLines|ListVars|Loop|Menu|MouseClick|MouseClickDrag|MouseGetPos|MouseMove|MsgBox|OnExit|OutputDebug|Pause|PixelGetColor|PixelSearch|PostMessage|Process|Progress|Random|RegDelete|RegRead|RegWrite|Reload|Repeat|Return|Run|RunAs|RunWait|Send|SendEvent|SendInput|SendMessage|SendMode|SendPlay|SendRaw|SetBatchLines|SetCapslockState|SetControlDelay|SetDefaultMouseSpeed|SetEnv|SetFormat|SetKeyDelay|SetMouseDelay|SetNumlockState|SetRegView|SetScrollLockState|SetStoreCapslockMode|SetTimer|SetTitleMatchMode|SetWinDelay|SetWorkingDir|Shutdown|Sleep|Sort|SoundBeep|SoundGet|SoundGetWaveVolume|SoundPlay|SoundSet|SoundSetWaveVolume|SplashImage|SplashTextOff|SplashTextOn|SplitPath|StatusBarGetText|StatusBarWait|StringCaseSense|StringGetPos|StringLeft|StringLen|StringLower|StringMid|StringReplace|StringRight|StringSplit|StringTrimLeft|StringTrimRight|StringUpper|Suspend|SysGet|Thread|ToolTip|Transform|TrayTip|URLDownloadToFile|WinActivate|WinActivateBottom|WinClose|WinGet|WinGetActiveStats|WinGetActiveTitle|WinGetClass|WinGetPos|WinGetText|WinGetTitle|WinHide|WinKill|WinMaximize|WinMenuSelectItem|WinMinimize|WinMinimizeAll|WinMinimizeAllUndo|WinMove|WinRestore|WinSet|WinSetTitle|WinShow|WinWait|WinWaitActive|WinWaitClose|WinWaitNotActive)\b/i,constant:/\b(?:a_ahkpath|a_ahkversion|a_appdata|a_appdatacommon|a_autotrim|a_batchlines|a_caretx|a_carety|a_computername|a_controldelay|a_cursor|a_dd|a_ddd|a_dddd|a_defaultmousespeed|a_desktop|a_desktopcommon|a_detecthiddentext|a_detecthiddenwindows|a_endchar|a_eventinfo|a_exitreason|a_fileencoding|a_formatfloat|a_formatinteger|a_gui|a_guicontrol|a_guicontrolevent|a_guievent|a_guiheight|a_guiwidth|a_guix|a_guiy|a_hour|a_iconfile|a_iconhidden|a_iconnumber|a_icontip|a_index|a_ipaddress1|a_ipaddress2|a_ipaddress3|a_ipaddress4|a_is64bitos|a_isadmin|a_iscompiled|a_iscritical|a_ispaused|a_issuspended|a_isunicode|a_keydelay|a_language|a_lasterror|a_linefile|a_linenumber|a_loopfield|a_loopfileattrib|a_loopfiledir|a_loopfileext|a_loopfilefullpath|a_loopfilelongpath|a_loopfilename|a_loopfileshortname|a_loopfileshortpath|a_loopfilesize|a_loopfilesizekb|a_loopfilesizemb|a_loopfiletimeaccessed|a_loopfiletimecreated|a_loopfiletimemodified|a_loopreadline|a_loopregkey|a_loopregname|a_loopregsubkey|a_loopregtimemodified|a_loopregtype|a_mday|a_min|a_mm|a_mmm|a_mmmm|a_mon|a_mousedelay|a_msec|a_mydocuments|a_now|a_nowutc|a_numbatchlines|a_ostype|a_osversion|a_priorhotkey|a_priorkey|a_programfiles|a_programs|a_programscommon|a_ptrsize|a_regview|a_screendpi|a_screenheight|a_screenwidth|a_scriptdir|a_scriptfullpath|a_scripthwnd|a_scriptname|a_sec|a_space|a_startmenu|a_startmenucommon|a_startup|a_startupcommon|a_stringcasesense|a_tab|a_temp|a_thisfunc|a_thishotkey|a_thislabel|a_thismenu|a_thismenuitem|a_thismenuitempos|a_tickcount|a_timeidle|a_timeidlephysical|a_timesincepriorhotkey|a_timesincethishotkey|a_titlematchmode|a_titlematchmodespeed|a_username|a_wday|a_windelay|a_windir|a_workingdir|a_yday|a_year|a_yweek|a_yyyy|clipboard|clipboardall|comspec|errorlevel|programfiles)\b/i,builtin:/\b(?:abs|acos|asc|asin|atan|ceil|chr|class|comobjactive|comobjarray|comobjconnect|comobjcreate|comobjerror|comobjflags|comobjget|comobjquery|comobjtype|comobjvalue|cos|dllcall|exp|fileexist|Fileopen|floor|format|il_add|il_create|il_destroy|instr|isfunc|islabel|IsObject|ln|log|ltrim|lv_add|lv_delete|lv_deletecol|lv_getcount|lv_getnext|lv_gettext|lv_insert|lv_insertcol|lv_modify|lv_modifycol|lv_setimagelist|mod|numget|numput|onmessage|regexmatch|regexreplace|registercallback|round|rtrim|sb_seticon|sb_setparts|sb_settext|sin|sqrt|strlen|strreplace|strsplit|substr|tan|tv_add|tv_delete|tv_get|tv_getchild|tv_getcount|tv_getnext|tv_getparent|tv_getprev|tv_getselection|tv_gettext|tv_modify|varsetcapacity|winactive|winexist|__Call|__Get|__New|__Set)\b/i,symbol:/\b(?:alt|altdown|altup|appskey|backspace|browser_back|browser_favorites|browser_forward|browser_home|browser_refresh|browser_search|browser_stop|bs|capslock|ctrl|ctrlbreak|ctrldown|ctrlup|del|delete|down|end|enter|esc|escape|f1|f10|f11|f12|f13|f14|f15|f16|f17|f18|f19|f2|f20|f21|f22|f23|f24|f3|f4|f5|f6|f7|f8|f9|home|ins|insert|joy1|joy10|joy11|joy12|joy13|joy14|joy15|joy16|joy17|joy18|joy19|joy2|joy20|joy21|joy22|joy23|joy24|joy25|joy26|joy27|joy28|joy29|joy3|joy30|joy31|joy32|joy4|joy5|joy6|joy7|joy8|joy9|joyaxes|joybuttons|joyinfo|joyname|joypov|joyr|joyu|joyv|joyx|joyy|joyz|lalt|launch_app1|launch_app2|launch_mail|launch_media|lbutton|lcontrol|lctrl|left|lshift|lwin|lwindown|lwinup|mbutton|media_next|media_play_pause|media_prev|media_stop|numlock|numpad0|numpad1|numpad2|numpad3|numpad4|numpad5|numpad6|numpad7|numpad8|numpad9|numpadadd|numpadclear|numpaddel|numpaddiv|numpaddot|numpaddown|numpadend|numpadenter|numpadhome|numpadins|numpadleft|numpadmult|numpadpgdn|numpadpgup|numpadright|numpadsub|numpadup|pgdn|pgup|printscreen|ralt|rbutton|rcontrol|rctrl|right|rshift|rwin|rwindown|rwinup|scrolllock|shift|shiftdown|shiftup|space|tab|up|volume_down|volume_mute|volume_up|wheeldown|wheelleft|wheelright|wheelup|xbutton1|xbutton2)\b/i,important:/#\b(?:AllowSameLineComments|ClipboardTimeout|CommentFlag|DerefChar|ErrorStdOut|EscapeChar|HotkeyInterval|HotkeyModifierTimeout|Hotstring|If|IfTimeout|IfWinActive|IfWinExist|IfWinNotActive|IfWinNotExist|Include|IncludeAgain|InputLevel|InstallKeybdHook|InstallMouseHook|KeyHistory|MaxHotkeysPerInterval|MaxMem|MaxThreads|MaxThreadsBuffer|MaxThreadsPerHotkey|MenuMaskKey|NoEnv|NoTrayIcon|Persistent|SingleInstance|UseHook|Warn|WinActivateForce)\b/i,keyword:/\b(?:Abort|AboveNormal|Add|ahk_class|ahk_exe|ahk_group|ahk_id|ahk_pid|All|Alnum|Alpha|AltSubmit|AltTab|AltTabAndMenu|AltTabMenu|AltTabMenuDismiss|AlwaysOnTop|AutoSize|Background|BackgroundTrans|BelowNormal|between|BitAnd|BitNot|BitOr|BitShiftLeft|BitShiftRight|BitXOr|Bold|Border|Button|ByRef|Catch|Checkbox|Checked|CheckedGray|Choose|ChooseString|Close|Color|ComboBox|Contains|ControlList|Count|Date|DateTime|Days|DDL|Default|DeleteAll|Delimiter|Deref|Destroy|Digit|Disable|Disabled|DropDownList|Edit|Eject|Else|Enable|Enabled|Error|Exist|Expand|ExStyle|FileSystem|Finally|First|Flash|Float|FloatFast|Focus|Font|for|global|Grid|Group|GroupBox|GuiClose|GuiContextMenu|GuiDropFiles|GuiEscape|GuiSize|Hdr|Hidden|Hide|High|HKCC|HKCR|HKCU|HKEY_CLASSES_ROOT|HKEY_CURRENT_CONFIG|HKEY_CURRENT_USER|HKEY_LOCAL_MACHINE|HKEY_USERS|HKLM|HKU|Hours|HScroll|Icon|IconSmall|ID|IDLast|If|IfEqual|IfExist|IfGreater|IfGreaterOrEqual|IfInString|IfLess|IfLessOrEqual|IfMsgBox|IfNotEqual|IfNotExist|IfNotInString|IfWinActive|IfWinExist|IfWinNotActive|IfWinNotExist|Ignore|ImageList|in|Integer|IntegerFast|Interrupt|is|italic|Join|Label|LastFound|LastFoundExist|Limit|Lines|List|ListBox|ListView|local|Lock|Logoff|Low|Lower|Lowercase|MainWindow|Margin|Maximize|MaximizeBox|MaxSize|Minimize|MinimizeBox|MinMax|MinSize|Minutes|MonthCal|Mouse|Move|Multi|NA|No|NoActivate|NoDefault|NoHide|NoIcon|NoMainWindow|norm|Normal|NoSort|NoSortHdr|NoStandard|Not|NoTab|NoTimers|Number|Off|Ok|On|OwnDialogs|Owner|Parse|Password|Picture|Pixel|Pos|Pow|Priority|ProcessName|Radio|Range|Read|ReadOnly|Realtime|Redraw|Region|REG_BINARY|REG_DWORD|REG_EXPAND_SZ|REG_MULTI_SZ|REG_SZ|Relative|Rename|Report|Resize|Restore|Retry|RGB|Screen|Seconds|Section|Serial|SetLabel|ShiftAltTab|Show|Single|Slider|SortDesc|Standard|static|Status|StatusBar|StatusCD|strike|Style|Submit|SysMenu|Tab2|TabStop|Text|Theme|Throw|Tile|ToggleCheck|ToggleEnable|ToolWindow|Top|Topmost|TransColor|Transparent|Tray|TreeView|Try|TryAgain|Type|UnCheck|underline|Unicode|Unlock|Until|UpDown|Upper|Uppercase|UseErrorLevel|Vis|VisFirst|Visible|VScroll|Wait|WaitClose|WantCtrlA|WantF2|WantReturn|While|Wrap|Xdigit|xm|xp|xs|Yes|ym|yp|ys)\b/i,function:/[^(); \t,\n+*\-=?>:\\\/<&%\[\]]+(?=\()/,punctuation:/[{}[\]():,]/}}return Oc}var Lc,wv;function EU(){if(wv)return Lc;wv=1,Lc=e,e.displayName="autoit",e.aliases=[];function e(t){t.languages.autoit={comment:[/;.*/,{pattern:/(^[\t ]*)#(?:comments-start|cs)[\s\S]*?^[ \t]*#(?:ce|comments-end)/m,lookbehind:!0}],url:{pattern:/(^[\t ]*#include\s+)(?:<[^\r\n>]+>|"[^\r\n"]+")/m,lookbehind:!0},string:{pattern:/(["'])(?:\1\1|(?!\1)[^\r\n])*\1/,greedy:!0,inside:{variable:/([%$@])\w+\1/}},directive:{pattern:/(^[\t ]*)#[\w-]+/m,lookbehind:!0,alias:"keyword"},function:/\b\w+(?=\()/,variable:/[$@]\w+/,keyword:/\b(?:Case|Const|Continue(?:Case|Loop)|Default|Dim|Do|Else(?:If)?|End(?:Func|If|Select|Switch|With)|Enum|Exit(?:Loop)?|For|Func|Global|If|In|Local|Next|Null|ReDim|Select|Static|Step|Switch|Then|To|Until|Volatile|WEnd|While|With)\b/i,number:/\b(?:0x[\da-f]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?)\b/i,boolean:/\b(?:False|True)\b/i,operator:/<[=>]?|[-+*\/=&>]=?|[?^]|\b(?:And|Not|Or)\b/i,punctuation:/[\[\]().,:]/}}return Lc}var Dc,Tv;function SU(){if(Tv)return Dc;Tv=1,Dc=e,e.displayName="avisynth",e.aliases=["avs"];function e(t){(function(n){function i(m,h){return m.replace(/<<(\d+)>>/g,function(S,E){return h[+E]})}function o(m,h,S){return RegExp(i(m,h),S)}var l=/bool|clip|float|int|string|val/.source,u=[/is(?:bool|clip|float|int|string)|defined|(?:(?:internal)?function|var)?exists?/.source,/apply|assert|default|eval|import|nop|select|undefined/.source,/opt_(?:allowfloataudio|avipadscanlines|dwchannelmask|enable_(?:b64a|planartopackedrgb|v210|y3_10_10|y3_10_16)|usewaveextensible|vdubplanarhack)|set(?:cachemode|maxcpu|memorymax|planarlegacyalignment|workingdir)/.source,/hex(?:value)?|value/.source,/abs|ceil|continued(?:denominator|numerator)?|exp|floor|fmod|frac|log(?:10)?|max|min|muldiv|pi|pow|rand|round|sign|spline|sqrt/.source,/a?sinh?|a?cosh?|a?tan[2h]?/.source,/(?:bit(?:and|not|x?or|[lr]?shift[aslu]?|sh[lr]|sa[lr]|[lr]rotatel?|ro[rl]|te?st|set(?:count)?|cl(?:ea)?r|ch(?:an)?ge?))/.source,/average(?:[bgr]|chroma[uv]|luma)|(?:[rgb]|chroma[uv]|luma|rgb|[yuv](?=difference(?:fromprevious|tonext)))difference(?:fromprevious|tonext)?|[yuvrgb]plane(?:median|min|max|minmaxdifference)/.source,/getprocessinfo|logmsg|script(?:dir(?:utf8)?|file(?:utf8)?|name(?:utf8)?)|setlogparams/.source,/chr|(?:fill|find|left|mid|replace|rev|right)str|format|[lu]case|ord|str(?:cmpi?|fromutf8|len|toutf8)|time|trim(?:all|left|right)/.source,/isversionorgreater|version(?:number|string)/.source,/buildpixeltype|colorspacenametopixeltype/.source,/addautoloaddir|on(?:cpu|cuda)|prefetch|setfiltermtmode/.source].join("|"),c=[/has(?:audio|video)/.source,/height|width/.source,/frame(?:count|rate)|framerate(?:denominator|numerator)/.source,/getparity|is(?:field|frame)based/.source,/bitspercomponent|componentsize|hasalpha|is(?:planar(?:rgba?)?|interleaved|rgb(?:24|32|48|64)?|y(?:8|u(?:va?|y2))?|yv(?:12|16|24|411)|420|422|444|packedrgb)|numcomponents|pixeltype/.source,/audio(?:bits|channels|duration|length(?:[fs]|hi|lo)?|rate)|isaudio(?:float|int)/.source].join("|"),p=[/avi(?:file)?source|directshowsource|image(?:reader|source|sourceanim)|opendmlsource|segmented(?:avisource|directshowsource)|wavsource/.source,/coloryuv|convertbacktoyuy2|convertto(?:RGB(?:24|32|48|64)|(?:planar)?RGBA?|Y8?|YV(?:12|16|24|411)|YUVA?(?:411|420|422|444)|YUY2)|fixluminance|gr[ae]yscale|invert|levels|limiter|mergea?rgb|merge(?:chroma|luma)|rgbadjust|show(?:alpha|blue|green|red)|swapuv|tweak|[uv]toy8?|ytouv/.source,/(?:colorkey|reset)mask|layer|mask(?:hs)?|merge|overlay|subtract/.source,/addborders|(?:bicubic|bilinear|blackman|gauss|lanczos4|lanczos|point|sinc|spline(?:16|36|64))resize|crop(?:bottom)?|flip(?:horizontal|vertical)|(?:horizontal|vertical)?reduceby2|letterbox|skewrows|turn(?:180|left|right)/.source,/blur|fixbrokenchromaupsampling|generalconvolution|(?:spatial|temporal)soften|sharpen/.source,/trim|(?:un)?alignedsplice|(?:assume|assumescaled|change|convert)FPS|(?:delete|duplicate)frame|dissolve|fade(?:in|io|out)[02]?|freezeframe|interleave|loop|reverse|select(?:even|odd|(?:range)?every)/.source,/assume[bt]ff|assume(?:field|frame)based|bob|complementparity|doubleweave|peculiarblend|pulldown|separate(?:columns|fields|rows)|swapfields|weave(?:columns|rows)?/.source,/amplify(?:db)?|assumesamplerate|audiodub(?:ex)?|audiotrim|convertaudioto(?:(?:8|16|24|32)bit|float)|converttomono|delayaudio|ensurevbrmp3sync|get(?:left|right)?channel|kill(?:audio|video)|mergechannels|mixaudio|monotostereo|normalize|resampleaudio|ssrc|supereq|timestretch/.source,/animate|applyrange|conditional(?:filter|reader|select)|frameevaluate|scriptclip|tcp(?:server|source)|writefile(?:end|if|start)?/.source,/imagewriter/.source,/blackness|blankclip|colorbars(?:hd)?|compare|dumpfiltergraph|echo|histogram|info|messageclip|preroll|setgraphanalysis|show(?:framenumber|smpte|time)|showfiveversions|stack(?:horizontal|vertical)|subtitle|tone|version/.source].join("|"),f=[u,c,p].join("|");n.languages.avisynth={comment:[{pattern:/(^|[^\\])\[\*(?:[^\[*]|\[(?!\*)|\*(?!\])|\[\*(?:[^\[*]|\[(?!\*)|\*(?!\]))*\*\])*\*\]/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\$])#.*/,lookbehind:!0,greedy:!0}],argument:{pattern:o(/\b(?:<<0>>)\s+("?)\w+\1/.source,[l],"i"),inside:{keyword:/^\w+/}},"argument-label":{pattern:/([,(][\s\\]*)\w+\s*=(?!=)/,lookbehind:!0,inside:{"argument-name":{pattern:/^\w+/,alias:"punctuation"},punctuation:/=$/}},string:[{pattern:/"""[\s\S]*?"""/,greedy:!0},{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0,inside:{constant:{pattern:/\b(?:DEFAULT_MT_MODE|(?:MAINSCRIPT|PROGRAM|SCRIPT)DIR|(?:MACHINE|USER)_(?:CLASSIC|PLUS)_PLUGINS)\b/}}}],variable:/\b(?:last)\b/i,boolean:/\b(?:false|no|true|yes)\b/i,keyword:/\b(?:catch|else|for|function|global|if|return|try|while|__END__)\b/i,constant:/\bMT_(?:MULTI_INSTANCE|NICE_FILTER|SERIALIZED|SPECIAL_MT)\b/,"builtin-function":{pattern:o(/\b(?:<<0>>)\b/.source,[f],"i"),alias:"function"},"type-cast":{pattern:o(/\b(?:<<0>>)(?=\s*\()/.source,[l],"i"),alias:"keyword"},function:{pattern:/\b[a-z_]\w*(?=\s*\()|(\.)[a-z_]\w*\b/i,lookbehind:!0},"line-continuation":{pattern:/(^[ \t]*)\\|\\(?=[ \t]*$)/m,lookbehind:!0,alias:"punctuation"},number:/\B\$(?:[\da-f]{6}|[\da-f]{8})\b|(?:(?:\b|\B-)\d+(?:\.\d*)?\b|\B\.\d+\b)/i,operator:/\+\+?|[!=<>]=?|&&|\|\||[?:*/%-]/,punctuation:/[{}\[\]();,.]/},n.languages.avs=n.languages.avisynth})(t)}return Dc}var Mc,xv;function vU(){if(xv)return Mc;xv=1,Mc=e,e.displayName="avroIdl",e.aliases=[];function e(t){t.languages["avro-idl"]={comment:{pattern:/\/\/.*|\/\*[\s\S]*?\*\//,greedy:!0},string:{pattern:/(^|[^\\])"(?:[^\r\n"\\]|\\.)*"/,lookbehind:!0,greedy:!0},annotation:{pattern:/@(?:[$\w.-]|`[^\r\n`]+`)+/,greedy:!0,alias:"function"},"function-identifier":{pattern:/`[^\r\n`]+`(?=\s*\()/,greedy:!0,alias:"function"},identifier:{pattern:/`[^\r\n`]+`/,greedy:!0},"class-name":{pattern:/(\b(?:enum|error|protocol|record|throws)\b\s+)[$\w]+/,lookbehind:!0,greedy:!0},keyword:/\b(?:array|boolean|bytes|date|decimal|double|enum|error|false|fixed|float|idl|import|int|local_timestamp_ms|long|map|null|oneway|protocol|record|schema|string|throws|time_ms|timestamp_ms|true|union|uuid|void)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:[{pattern:/(^|[^\w.])-?(?:(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|0x(?:[a-f0-9]+(?:\.[a-f0-9]*)?|\.[a-f0-9]+)(?:p[+-]?\d+)?)[dfl]?(?![\w.])/i,lookbehind:!0},/-?\b(?:Infinity|NaN)\b/],operator:/=/,punctuation:/[()\[\]{}<>.:,;-]/},t.languages.avdl=t.languages["avro-idl"]}return Mc}var Fc,Av;function JA(){if(Av)return Fc;Av=1,Fc=e,e.displayName="bash",e.aliases=["shell"];function e(t){(function(n){var i="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",o={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},l={bash:o,environment:{pattern:RegExp("\\$"+i),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+i),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};n.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+i),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:l},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:o}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:l},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:l.entity}}],environment:{pattern:RegExp("\\$?"+i),alias:"constant"},variable:l.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},o.inside=n.languages.bash;for(var u=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],c=l.variable[1].inside,p=0;p?^\w +\-.])*"/,greedy:!0},number:/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:E[+-]?\d+)?/i,keyword:/\b(?:AS|BEEP|BLOAD|BSAVE|CALL(?: ABSOLUTE)?|CASE|CHAIN|CHDIR|CLEAR|CLOSE|CLS|COM|COMMON|CONST|DATA|DECLARE|DEF(?: FN| SEG|DBL|INT|LNG|SNG|STR)|DIM|DO|DOUBLE|ELSE|ELSEIF|END|ENVIRON|ERASE|ERROR|EXIT|FIELD|FILES|FOR|FUNCTION|GET|GOSUB|GOTO|IF|INPUT|INTEGER|IOCTL|KEY|KILL|LINE INPUT|LOCATE|LOCK|LONG|LOOP|LSET|MKDIR|NAME|NEXT|OFF|ON(?: COM| ERROR| KEY| TIMER)?|OPEN|OPTION BASE|OUT|POKE|PUT|READ|REDIM|REM|RESTORE|RESUME|RETURN|RMDIR|RSET|RUN|SELECT CASE|SHARED|SHELL|SINGLE|SLEEP|STATIC|STEP|STOP|STRING|SUB|SWAP|SYSTEM|THEN|TIMER|TO|TROFF|TRON|TYPE|UNLOCK|UNTIL|USING|VIEW PRINT|WAIT|WEND|WHILE|WRITE)(?:\$|\b)/i,function:/\b(?:ABS|ACCESS|ACOS|ANGLE|AREA|ARITHMETIC|ARRAY|ASIN|ASK|AT|ATN|BASE|BEGIN|BREAK|CAUSE|CEIL|CHR|CLIP|COLLATE|COLOR|CON|COS|COSH|COT|CSC|DATE|DATUM|DEBUG|DECIMAL|DEF|DEG|DEGREES|DELETE|DET|DEVICE|DISPLAY|DOT|ELAPSED|EPS|ERASABLE|EXLINE|EXP|EXTERNAL|EXTYPE|FILETYPE|FIXED|FP|GO|GRAPH|HANDLER|IDN|IMAGE|IN|INT|INTERNAL|IP|IS|KEYED|LBOUND|LCASE|LEFT|LEN|LENGTH|LET|LINE|LINES|LOG|LOG10|LOG2|LTRIM|MARGIN|MAT|MAX|MAXNUM|MID|MIN|MISSING|MOD|NATIVE|NUL|NUMERIC|OF|OPTION|ORD|ORGANIZATION|OUTIN|OUTPUT|PI|POINT|POINTER|POINTS|POS|PRINT|PROGRAM|PROMPT|RAD|RADIANS|RANDOMIZE|RECORD|RECSIZE|RECTYPE|RELATIVE|REMAINDER|REPEAT|REST|RETRY|REWRITE|RIGHT|RND|ROUND|RTRIM|SAME|SEC|SELECT|SEQUENTIAL|SET|SETTER|SGN|SIN|SINH|SIZE|SKIP|SQR|STANDARD|STATUS|STR|STREAM|STYLE|TAB|TAN|TANH|TEMPLATE|TEXT|THERE|TIME|TIMEOUT|TRACE|TRANSFORM|TRUNCATE|UBOUND|UCASE|USE|VAL|VARIABLE|VIEWPORT|WHEN|WINDOW|WITH|ZER|ZONEWIDTH)(?:\$|\b)/i,operator:/<[=>]?|>=?|[+\-*\/^=&]|\b(?:AND|EQV|IMP|NOT|OR|XOR)\b/i,punctuation:/[,;:()]/}}return Pc}var Uc,Nv;function kU(){if(Nv)return Uc;Nv=1,Uc=e,e.displayName="batch",e.aliases=[];function e(t){(function(n){var i=/%%?[~:\w]+%?|!\S+!/,o={pattern:/\/[a-z?]+(?=[ :]|$):?|-[a-z]\b|--[a-z-]+\b/im,alias:"attr-name",inside:{punctuation:/:/}},l=/"(?:[\\"]"|[^"])*"(?!")/,u=/(?:\b|-)\d+\b/;n.languages.batch={comment:[/^::.*/m,{pattern:/((?:^|[&(])[ \t]*)rem\b(?:[^^&)\r\n]|\^(?:\r\n|[\s\S]))*/im,lookbehind:!0}],label:{pattern:/^:.*/m,alias:"property"},command:[{pattern:/((?:^|[&(])[ \t]*)for(?: \/[a-z?](?:[ :](?:"[^"]*"|[^\s"/]\S*))?)* \S+ in \([^)]+\) do/im,lookbehind:!0,inside:{keyword:/\b(?:do|in)\b|^for\b/i,string:l,parameter:o,variable:i,number:u,punctuation:/[()',]/}},{pattern:/((?:^|[&(])[ \t]*)if(?: \/[a-z?](?:[ :](?:"[^"]*"|[^\s"/]\S*))?)* (?:not )?(?:cmdextversion \d+|defined \w+|errorlevel \d+|exist \S+|(?:"[^"]*"|(?!")(?:(?!==)\S)+)?(?:==| (?:equ|geq|gtr|leq|lss|neq) )(?:"[^"]*"|[^\s"]\S*))/im,lookbehind:!0,inside:{keyword:/\b(?:cmdextversion|defined|errorlevel|exist|not)\b|^if\b/i,string:l,parameter:o,variable:i,number:u,operator:/\^|==|\b(?:equ|geq|gtr|leq|lss|neq)\b/i}},{pattern:/((?:^|[&()])[ \t]*)else\b/im,lookbehind:!0,inside:{keyword:/^else\b/i}},{pattern:/((?:^|[&(])[ \t]*)set(?: \/[a-z](?:[ :](?:"[^"]*"|[^\s"/]\S*))?)* (?:[^^&)\r\n]|\^(?:\r\n|[\s\S]))*/im,lookbehind:!0,inside:{keyword:/^set\b/i,string:l,parameter:o,variable:[i,/\w+(?=(?:[*\/%+\-&^|]|<<|>>)?=)/],number:u,operator:/[*\/%+\-&^|]=?|<<=?|>>=?|[!~_=]/,punctuation:/[()',]/}},{pattern:/((?:^|[&(])[ \t]*@?)\w+\b(?:"(?:[\\"]"|[^"])*"(?!")|[^"^&)\r\n]|\^(?:\r\n|[\s\S]))*/m,lookbehind:!0,inside:{keyword:/^\w+\b/,string:l,parameter:o,label:{pattern:/(^\s*):\S+/m,lookbehind:!0,alias:"property"},variable:i,number:u,operator:/\^/}}],operator:/[&@]/,punctuation:/[()']/}})(t)}return Uc}var Bc,Cv;function _U(){if(Cv)return Bc;Cv=1,Bc=e,e.displayName="bbcode",e.aliases=["shortcode"];function e(t){t.languages.bbcode={tag:{pattern:/\[\/?[^\s=\]]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'"\]=]+))?(?:\s+[^\s=\]]+\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'"\]=]+))*\s*\]/,inside:{tag:{pattern:/^\[\/?[^\s=\]]+/,inside:{punctuation:/^\[\/?/}},"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'"\]=]+)/,inside:{punctuation:[/^=/,{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\]/,"attr-name":/[^\s=\]]+/}}},t.languages.shortcode=t.languages.bbcode}return Bc}var jc,Iv;function wU(){if(Iv)return jc;Iv=1,jc=e,e.displayName="bicep",e.aliases=[];function e(t){t.languages.bicep={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],property:[{pattern:/([\r\n][ \t]*)[a-z_]\w*(?=[ \t]*:)/i,lookbehind:!0},{pattern:/([\r\n][ \t]*)'(?:\\.|\$(?!\{)|[^'\\\r\n$])*'(?=[ \t]*:)/,lookbehind:!0,greedy:!0}],string:[{pattern:/'''[^'][\s\S]*?'''/,greedy:!0},{pattern:/(^|[^\\'])'(?:\\.|\$(?!\{)|[^'\\\r\n$])*'/,lookbehind:!0,greedy:!0}],"interpolated-string":{pattern:/(^|[^\\'])'(?:\\.|\$(?:(?!\{)|\{[^{}\r\n]*\})|[^'\\\r\n$])*'/,lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/\$\{[^{}\r\n]*\}/,inside:{expression:{pattern:/(^\$\{)[\s\S]+(?=\}$)/,lookbehind:!0},punctuation:/^\$\{|\}$/}},string:/[\s\S]+/}},datatype:{pattern:/(\b(?:output|param)\b[ \t]+\w+[ \t]+)\w+\b/,lookbehind:!0,alias:"class-name"},boolean:/\b(?:false|true)\b/,keyword:/\b(?:existing|for|if|in|module|null|output|param|resource|targetScope|var)\b/,decorator:/@\w+\b/,function:/\b[a-z_]\w*(?=[ \t]*\()/i,number:/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:E[+-]?\d+)?/i,operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/,punctuation:/[{}[\];(),.:]/},t.languages.bicep["interpolated-string"].inside.interpolation.inside.expression.inside=t.languages.bicep}return jc}var zc,Ov;function TU(){if(Ov)return zc;Ov=1,zc=e,e.displayName="birb",e.aliases=[];function e(t){t.languages.birb=t.languages.extend("clike",{string:{pattern:/r?("|')(?:\\.|(?!\1)[^\\])*\1/,greedy:!0},"class-name":[/\b[A-Z](?:[\d_]*[a-zA-Z]\w*)?\b/,/\b(?:[A-Z]\w*|(?!(?:var|void)\b)[a-z]\w*)(?=\s+\w+\s*[;,=()])/],keyword:/\b(?:assert|break|case|class|const|default|else|enum|final|follows|for|grab|if|nest|new|next|noSeeb|return|static|switch|throw|var|void|while)\b/,operator:/\+\+|--|&&|\|\||<<=?|>>=?|~(?:\/=?)?|[+\-*\/%&^|=!<>]=?|\?|:/,variable:/\b[a-z_]\w*\b/}),t.languages.insertBefore("birb","function",{metadata:{pattern:/<\w+>/,greedy:!0,alias:"symbol"}})}return zc}var $c,Lv;function xU(){if(Lv)return $c;Lv=1;var e=Yr();$c=t,t.displayName="bison",t.aliases=[];function t(n){n.register(e),n.languages.bison=n.languages.extend("c",{}),n.languages.insertBefore("bison","comment",{bison:{pattern:/^(?:[^%]|%(?!%))*%%[\s\S]*?%%/,inside:{c:{pattern:/%\{[\s\S]*?%\}|\{(?:\{[^}]*\}|[^{}])*\}/,inside:{delimiter:{pattern:/^%?\{|%?\}$/,alias:"punctuation"},"bison-variable":{pattern:/[$@](?:<[^\s>]+>)?[\w$]+/,alias:"variable",inside:{punctuation:/<|>/}},rest:n.languages.c}},comment:n.languages.c.comment,string:n.languages.c.string,property:/\S+(?=:)/,keyword:/%\w+/,number:{pattern:/(^|[^@])\b(?:0x[\da-f]+|\d+)/i,lookbehind:!0},punctuation:/%[%?]|[|:;\[\]<>]/}}})}return $c}var qc,Dv;function AU(){if(Dv)return qc;Dv=1,qc=e,e.displayName="bnf",e.aliases=["rbnf"];function e(t){t.languages.bnf={string:{pattern:/"[^\r\n"]*"|'[^\r\n']*'/},definition:{pattern:/<[^<>\r\n\t]+>(?=\s*::=)/,alias:["rule","keyword"],inside:{punctuation:/^<|>$/}},rule:{pattern:/<[^<>\r\n\t]+>/,inside:{punctuation:/^<|>$/}},operator:/::=|[|()[\]{}*+?]|\.{3}/},t.languages.rbnf=t.languages.bnf}return qc}var Gc,Mv;function RU(){if(Mv)return Gc;Mv=1,Gc=e,e.displayName="brainfuck",e.aliases=[];function e(t){t.languages.brainfuck={pointer:{pattern:/<|>/,alias:"keyword"},increment:{pattern:/\+/,alias:"inserted"},decrement:{pattern:/-/,alias:"deleted"},branching:{pattern:/\[|\]/,alias:"important"},operator:/[.,]/,comment:/\S+/}}return Gc}var Hc,Fv;function NU(){if(Fv)return Hc;Fv=1,Hc=e,e.displayName="brightscript",e.aliases=[];function e(t){t.languages.brightscript={comment:/(?:\brem|').*/i,"directive-statement":{pattern:/(^[\t ]*)#(?:const|else(?:[\t ]+if)?|end[\t ]+if|error|if).*/im,lookbehind:!0,alias:"property",inside:{"error-message":{pattern:/(^#error).+/,lookbehind:!0},directive:{pattern:/^#(?:const|else(?:[\t ]+if)?|end[\t ]+if|error|if)/,alias:"keyword"},expression:{pattern:/[\s\S]+/,inside:null}}},property:{pattern:/([\r\n{,][\t ]*)(?:(?!\d)\w+|"(?:[^"\r\n]|"")*"(?!"))(?=[ \t]*:)/,lookbehind:!0,greedy:!0},string:{pattern:/"(?:[^"\r\n]|"")*"(?!")/,greedy:!0},"class-name":{pattern:/(\bAs[\t ]+)\w+/i,lookbehind:!0},keyword:/\b(?:As|Dim|Each|Else|Elseif|End|Exit|For|Function|Goto|If|In|Print|Return|Step|Stop|Sub|Then|To|While)\b/i,boolean:/\b(?:false|true)\b/i,function:/\b(?!\d)\w+(?=[\t ]*\()/,number:/(?:\b\d+(?:\.\d+)?(?:[ed][+-]\d+)?|&h[a-f\d]+)\b[%&!#]?/i,operator:/--|\+\+|>>=?|<<=?|<>|[-+*/\\<>]=?|[:^=?]|\b(?:and|mod|not|or)\b/i,punctuation:/[.,;()[\]{}]/,constant:/\b(?:LINE_NUM)\b/i},t.languages.brightscript["directive-statement"].inside.expression.inside=t.languages.brightscript}return Hc}var Wc,Pv;function CU(){if(Pv)return Wc;Pv=1,Wc=e,e.displayName="bro",e.aliases=[];function e(t){t.languages.bro={comment:{pattern:/(^|[^\\$])#.*/,lookbehind:!0,inside:{italic:/\b(?:FIXME|TODO|XXX)\b/}},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},boolean:/\b[TF]\b/,function:{pattern:/(\b(?:event|function|hook)[ \t]+)\w+(?:::\w+)?/,lookbehind:!0},builtin:/(?:@(?:load(?:-(?:plugin|sigs))?|unload|prefixes|ifn?def|else|(?:end)?if|DIR|FILENAME))|(?:&?(?:add_func|create_expire|default|delete_func|encrypt|error_handler|expire_func|group|log|mergeable|optional|persistent|priority|raw_output|read_expire|redef|rotate_interval|rotate_size|synchronized|type_column|write_expire))/,constant:{pattern:/(\bconst[ \t]+)\w+/i,lookbehind:!0},keyword:/\b(?:add|addr|alarm|any|bool|break|const|continue|count|delete|double|else|enum|event|export|file|for|function|global|hook|if|in|int|interval|local|module|next|of|opaque|pattern|port|print|record|return|schedule|set|string|subnet|table|time|timeout|using|vector|when)\b/,operator:/--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&|\|\|?|\?|\*|\/|~|\^|%/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,punctuation:/[{}[\];(),.:]/}}return Wc}var Vc,Uv;function IU(){if(Uv)return Vc;Uv=1,Vc=e,e.displayName="bsl",e.aliases=[];function e(t){t.languages.bsl={comment:/\/\/.*/,string:[{pattern:/"(?:[^"]|"")*"(?!")/,greedy:!0},{pattern:/'(?:[^'\r\n\\]|\\.)*'/}],keyword:[{pattern:/(^|[^\w\u0400-\u0484\u0487-\u052f\u1d2b\u1d78\u2de0-\u2dff\ua640-\ua69f\ufe2e\ufe2f])(?:пока|для|новый|прервать|попытка|исключение|вызватьисключение|иначе|конецпопытки|неопределено|функция|перем|возврат|конецфункции|если|иначеесли|процедура|конецпроцедуры|тогда|знач|экспорт|конецесли|из|каждого|истина|ложь|по|цикл|конеццикла|выполнить)(?![\w\u0400-\u0484\u0487-\u052f\u1d2b\u1d78\u2de0-\u2dff\ua640-\ua69f\ufe2e\ufe2f])/i,lookbehind:!0},{pattern:/\b(?:break|do|each|else|elseif|enddo|endfunction|endif|endprocedure|endtry|except|execute|export|false|for|function|if|in|new|null|procedure|raise|return|then|to|true|try|undefined|val|var|while)\b/i}],number:{pattern:/(^(?=\d)|[^\w\u0400-\u0484\u0487-\u052f\u1d2b\u1d78\u2de0-\u2dff\ua640-\ua69f\ufe2e\ufe2f])(?:\d+(?:\.\d*)?|\.\d+)(?:E[+-]?\d+)?/i,lookbehind:!0},operator:[/[<>+\-*/]=?|[%=]/,{pattern:/(^|[^\w\u0400-\u0484\u0487-\u052f\u1d2b\u1d78\u2de0-\u2dff\ua640-\ua69f\ufe2e\ufe2f])(?:и|или|не)(?![\w\u0400-\u0484\u0487-\u052f\u1d2b\u1d78\u2de0-\u2dff\ua640-\ua69f\ufe2e\ufe2f])/i,lookbehind:!0},{pattern:/\b(?:and|not|or)\b/i}],punctuation:/\(\.|\.\)|[()\[\]:;,.]/,directive:[{pattern:/^([ \t]*)&.*/m,lookbehind:!0,greedy:!0,alias:"important"},{pattern:/^([ \t]*)#.*/gm,lookbehind:!0,greedy:!0,alias:"important"}]},t.languages.oscript=t.languages.bsl}return Vc}var Yc,Bv;function OU(){if(Bv)return Yc;Bv=1,Yc=e,e.displayName="cfscript",e.aliases=[];function e(t){t.languages.cfscript=t.languages.extend("clike",{comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,inside:{annotation:{pattern:/(?:^|[^.])@[\w\.]+/,alias:"punctuation"}}},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],keyword:/\b(?:abstract|break|catch|component|continue|default|do|else|extends|final|finally|for|function|if|in|include|package|private|property|public|remote|required|rethrow|return|static|switch|throw|try|var|while|xml)\b(?!\s*=)/,operator:[/\+\+|--|&&|\|\||::|=>|[!=]==|<=?|>=?|[-+*/%&|^!=<>]=?|\?(?:\.|:)?|[?:]/,/\b(?:and|contains|eq|equal|eqv|gt|gte|imp|is|lt|lte|mod|not|or|xor)\b/],scope:{pattern:/\b(?:application|arguments|cgi|client|cookie|local|session|super|this|variables)\b/,alias:"global"},type:{pattern:/\b(?:any|array|binary|boolean|date|guid|numeric|query|string|struct|uuid|void|xml)\b/,alias:"builtin"}}),t.languages.insertBefore("cfscript","keyword",{"function-variable":{pattern:/[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"}}),delete t.languages.cfscript["class-name"],t.languages.cfc=t.languages.cfscript}return Yc}var Kc,jv;function LU(){if(jv)return Kc;jv=1;var e=fh();Kc=t,t.displayName="chaiscript",t.aliases=[];function t(n){n.register(e),n.languages.chaiscript=n.languages.extend("clike",{string:{pattern:/(^|[^\\])'(?:[^'\\]|\\[\s\S])*'/,lookbehind:!0,greedy:!0},"class-name":[{pattern:/(\bclass\s+)\w+/,lookbehind:!0},{pattern:/(\b(?:attr|def)\s+)\w+(?=\s*::)/,lookbehind:!0}],keyword:/\b(?:attr|auto|break|case|catch|class|continue|def|default|else|finally|for|fun|global|if|return|switch|this|try|var|while)\b/,number:[n.languages.cpp.number,/\b(?:Infinity|NaN)\b/],operator:/>>=?|<<=?|\|\||&&|:[:=]?|--|\+\+|[=!<>+\-*/%|&^]=?|[?~]|`[^`\r\n]{1,4}`/}),n.languages.insertBefore("chaiscript","operator",{"parameter-type":{pattern:/([,(]\s*)\w+(?=\s+\w)/,lookbehind:!0,alias:"class-name"}}),n.languages.insertBefore("chaiscript","string",{"string-interpolation":{pattern:/(^|[^\\])"(?:[^"$\\]|\\[\s\S]|\$(?!\{)|\$\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})*\})*"/,lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})*\}/,lookbehind:!0,inside:{"interpolation-expression":{pattern:/(^\$\{)[\s\S]+(?=\}$)/,lookbehind:!0,inside:n.languages.chaiscript},"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"}}},string:/[\s\S]+/}}})}return Kc}var Zc,zv;function DU(){if(zv)return Zc;zv=1,Zc=e,e.displayName="cil",e.aliases=[];function e(t){t.languages.cil={comment:/\/\/.*/,string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},directive:{pattern:/(^|\W)\.[a-z]+(?=\s)/,lookbehind:!0,alias:"class-name"},variable:/\[[\w\.]+\]/,keyword:/\b(?:abstract|ansi|assembly|auto|autochar|beforefieldinit|bool|bstr|byvalstr|catch|char|cil|class|currency|date|decimal|default|enum|error|explicit|extends|extern|famandassem|family|famorassem|final(?:ly)?|float32|float64|hidebysig|u?int(?:8|16|32|64)?|iant|idispatch|implements|import|initonly|instance|interface|iunknown|literal|lpstr|lpstruct|lptstr|lpwstr|managed|method|native(?:Type)?|nested|newslot|object(?:ref)?|pinvokeimpl|private|privatescope|public|reqsecobj|rtspecialname|runtime|sealed|sequential|serializable|specialname|static|string|struct|syschar|tbstr|unicode|unmanagedexp|unsigned|value(?:type)?|variant|virtual|void)\b/,function:/\b(?:(?:constrained|no|readonly|tail|unaligned|volatile)\.)?(?:conv\.(?:[iu][1248]?|ovf\.[iu][1248]?(?:\.un)?|r\.un|r4|r8)|ldc\.(?:i4(?:\.\d+|\.[mM]1|\.s)?|i8|r4|r8)|ldelem(?:\.[iu][1248]?|\.r[48]|\.ref|a)?|ldind\.(?:[iu][1248]?|r[48]|ref)|stelem\.?(?:i[1248]?|r[48]|ref)?|stind\.(?:i[1248]?|r[48]|ref)?|end(?:fault|filter|finally)|ldarg(?:\.[0-3s]|a(?:\.s)?)?|ldloc(?:\.\d+|\.s)?|sub(?:\.ovf(?:\.un)?)?|mul(?:\.ovf(?:\.un)?)?|add(?:\.ovf(?:\.un)?)?|stloc(?:\.[0-3s])?|refany(?:type|val)|blt(?:\.un)?(?:\.s)?|ble(?:\.un)?(?:\.s)?|bgt(?:\.un)?(?:\.s)?|bge(?:\.un)?(?:\.s)?|unbox(?:\.any)?|init(?:blk|obj)|call(?:i|virt)?|brfalse(?:\.s)?|bne\.un(?:\.s)?|ldloca(?:\.s)?|brzero(?:\.s)?|brtrue(?:\.s)?|brnull(?:\.s)?|brinst(?:\.s)?|starg(?:\.s)?|leave(?:\.s)?|shr(?:\.un)?|rem(?:\.un)?|div(?:\.un)?|clt(?:\.un)?|alignment|castclass|ldvirtftn|beq(?:\.s)?|ckfinite|ldsflda|ldtoken|localloc|mkrefany|rethrow|cgt\.un|arglist|switch|stsfld|sizeof|newobj|newarr|ldsfld|ldnull|ldflda|isinst|throw|stobj|stfld|ldstr|ldobj|ldlen|ldftn|ldfld|cpobj|cpblk|break|br\.s|xor|shl|ret|pop|not|nop|neg|jmp|dup|cgt|ceq|box|and|or|br)\b/,boolean:/\b(?:false|true)\b/,number:/\b-?(?:0x[0-9a-f]+|\d+)(?:\.[0-9a-f]+)?\b/i,punctuation:/[{}[\];(),:=]|IL_[0-9A-Za-z]+/}}return Zc}var Xc,$v;function MU(){if($v)return Xc;$v=1,Xc=e,e.displayName="clojure",e.aliases=[];function e(t){t.languages.clojure={comment:{pattern:/;.*/,greedy:!0},string:{pattern:/"(?:[^"\\]|\\.)*"/,greedy:!0},char:/\\\w+/,symbol:{pattern:/(^|[\s()\[\]{},])::?[\w*+!?'<>=/.-]+/,lookbehind:!0},keyword:{pattern:/(\()(?:-|->|->>|\.|\.\.|\*|\/|\+|<|<=|=|==|>|>=|accessor|agent|agent-errors|aget|alength|all-ns|alter|and|append-child|apply|array-map|aset|aset-boolean|aset-byte|aset-char|aset-double|aset-float|aset-int|aset-long|aset-short|assert|assoc|await|await-for|bean|binding|bit-and|bit-not|bit-or|bit-shift-left|bit-shift-right|bit-xor|boolean|branch\?|butlast|byte|cast|char|children|class|clear-agent-errors|comment|commute|comp|comparator|complement|concat|cond|conj|cons|constantly|construct-proxy|contains\?|count|create-ns|create-struct|cycle|dec|declare|def|def-|definline|definterface|defmacro|defmethod|defmulti|defn|defn-|defonce|defproject|defprotocol|defrecord|defstruct|deftype|deref|difference|disj|dissoc|distinct|do|doall|doc|dorun|doseq|dosync|dotimes|doto|double|down|drop|drop-while|edit|end\?|ensure|eval|every\?|false\?|ffirst|file-seq|filter|find|find-doc|find-ns|find-var|first|float|flush|fn|fnseq|for|frest|gensym|get|get-proxy-class|hash-map|hash-set|identical\?|identity|if|if-let|if-not|import|in-ns|inc|index|insert-child|insert-left|insert-right|inspect-table|inspect-tree|instance\?|int|interleave|intersection|into|into-array|iterate|join|key|keys|keyword|keyword\?|last|lazy-cat|lazy-cons|left|lefts|let|line-seq|list|list\*|load|load-file|locking|long|loop|macroexpand|macroexpand-1|make-array|make-node|map|map-invert|map\?|mapcat|max|max-key|memfn|merge|merge-with|meta|min|min-key|monitor-enter|name|namespace|neg\?|new|newline|next|nil\?|node|not|not-any\?|not-every\?|not=|ns|ns-imports|ns-interns|ns-map|ns-name|ns-publics|ns-refers|ns-resolve|ns-unmap|nth|nthrest|or|parse|partial|path|peek|pop|pos\?|pr|pr-str|print|print-str|println|println-str|prn|prn-str|project|proxy|proxy-mappings|quot|quote|rand|rand-int|range|re-find|re-groups|re-matcher|re-matches|re-pattern|re-seq|read|read-line|recur|reduce|ref|ref-set|refer|rem|remove|remove-method|remove-ns|rename|rename-keys|repeat|replace|replicate|resolve|rest|resultset-seq|reverse|rfirst|right|rights|root|rrest|rseq|second|select|select-keys|send|send-off|seq|seq-zip|seq\?|set|set!|short|slurp|some|sort|sort-by|sorted-map|sorted-map-by|sorted-set|special-symbol\?|split-at|split-with|str|string\?|struct|struct-map|subs|subvec|symbol|symbol\?|sync|take|take-nth|take-while|test|throw|time|to-array|to-array-2d|tree-seq|true\?|try|union|up|update-proxy|val|vals|var|var-get|var-set|var\?|vector|vector-zip|vector\?|when|when-first|when-let|when-not|with-local-vars|with-meta|with-open|with-out-str|xml-seq|xml-zip|zero\?|zipmap|zipper)(?=[\s)]|$)/,lookbehind:!0},boolean:/\b(?:false|nil|true)\b/,number:{pattern:/(^|[^\w$@])(?:\d+(?:[/.]\d+)?(?:e[+-]?\d+)?|0x[a-f0-9]+|[1-9]\d?r[a-z0-9]+)[lmn]?(?![\w$@])/i,lookbehind:!0},function:{pattern:/((?:^|[^'])\()[\w*+!?'<>=/.-]+(?=[\s)]|$)/,lookbehind:!0},operator:/[#@^`~]/,punctuation:/[{}\[\](),]/}}return Xc}var Qc,qv;function FU(){if(qv)return Qc;qv=1,Qc=e,e.displayName="cmake",e.aliases=[];function e(t){t.languages.cmake={comment:/#.*/,string:{pattern:/"(?:[^\\"]|\\.)*"/,greedy:!0,inside:{interpolation:{pattern:/\$\{(?:[^{}$]|\$\{[^{}$]*\})*\}/,inside:{punctuation:/\$\{|\}/,variable:/\w+/}}}},variable:/\b(?:CMAKE_\w+|\w+_(?:(?:BINARY|SOURCE)_DIR|DESCRIPTION|HOMEPAGE_URL|ROOT|VERSION(?:_MAJOR|_MINOR|_PATCH|_TWEAK)?)|(?:ANDROID|APPLE|BORLAND|BUILD_SHARED_LIBS|CACHE|CPACK_(?:ABSOLUTE_DESTINATION_FILES|COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY|ERROR_ON_ABSOLUTE_INSTALL_DESTINATION|INCLUDE_TOPLEVEL_DIRECTORY|INSTALL_DEFAULT_DIRECTORY_PERMISSIONS|INSTALL_SCRIPT|PACKAGING_INSTALL_PREFIX|SET_DESTDIR|WARN_ON_ABSOLUTE_INSTALL_DESTINATION)|CTEST_(?:BINARY_DIRECTORY|BUILD_COMMAND|BUILD_NAME|BZR_COMMAND|BZR_UPDATE_OPTIONS|CHANGE_ID|CHECKOUT_COMMAND|CONFIGURATION_TYPE|CONFIGURE_COMMAND|COVERAGE_COMMAND|COVERAGE_EXTRA_FLAGS|CURL_OPTIONS|CUSTOM_(?:COVERAGE_EXCLUDE|ERROR_EXCEPTION|ERROR_MATCH|ERROR_POST_CONTEXT|ERROR_PRE_CONTEXT|MAXIMUM_FAILED_TEST_OUTPUT_SIZE|MAXIMUM_NUMBER_OF_(?:ERRORS|WARNINGS)|MAXIMUM_PASSED_TEST_OUTPUT_SIZE|MEMCHECK_IGNORE|POST_MEMCHECK|POST_TEST|PRE_MEMCHECK|PRE_TEST|TESTS_IGNORE|WARNING_EXCEPTION|WARNING_MATCH)|CVS_CHECKOUT|CVS_COMMAND|CVS_UPDATE_OPTIONS|DROP_LOCATION|DROP_METHOD|DROP_SITE|DROP_SITE_CDASH|DROP_SITE_PASSWORD|DROP_SITE_USER|EXTRA_COVERAGE_GLOB|GIT_COMMAND|GIT_INIT_SUBMODULES|GIT_UPDATE_CUSTOM|GIT_UPDATE_OPTIONS|HG_COMMAND|HG_UPDATE_OPTIONS|LABELS_FOR_SUBPROJECTS|MEMORYCHECK_(?:COMMAND|COMMAND_OPTIONS|SANITIZER_OPTIONS|SUPPRESSIONS_FILE|TYPE)|NIGHTLY_START_TIME|P4_CLIENT|P4_COMMAND|P4_OPTIONS|P4_UPDATE_OPTIONS|RUN_CURRENT_SCRIPT|SCP_COMMAND|SITE|SOURCE_DIRECTORY|SUBMIT_URL|SVN_COMMAND|SVN_OPTIONS|SVN_UPDATE_OPTIONS|TEST_LOAD|TEST_TIMEOUT|TRIGGER_SITE|UPDATE_COMMAND|UPDATE_OPTIONS|UPDATE_VERSION_ONLY|USE_LAUNCHERS)|CYGWIN|ENV|EXECUTABLE_OUTPUT_PATH|GHS-MULTI|IOS|LIBRARY_OUTPUT_PATH|MINGW|MSVC(?:10|11|12|14|60|70|71|80|90|_IDE|_TOOLSET_VERSION|_VERSION)?|MSYS|PROJECT_(?:BINARY_DIR|DESCRIPTION|HOMEPAGE_URL|NAME|SOURCE_DIR|VERSION|VERSION_(?:MAJOR|MINOR|PATCH|TWEAK))|UNIX|WIN32|WINCE|WINDOWS_PHONE|WINDOWS_STORE|XCODE|XCODE_VERSION))\b/,property:/\b(?:cxx_\w+|(?:ARCHIVE_OUTPUT_(?:DIRECTORY|NAME)|COMPILE_DEFINITIONS|COMPILE_PDB_NAME|COMPILE_PDB_OUTPUT_DIRECTORY|EXCLUDE_FROM_DEFAULT_BUILD|IMPORTED_(?:IMPLIB|LIBNAME|LINK_DEPENDENT_LIBRARIES|LINK_INTERFACE_LANGUAGES|LINK_INTERFACE_LIBRARIES|LINK_INTERFACE_MULTIPLICITY|LOCATION|NO_SONAME|OBJECTS|SONAME)|INTERPROCEDURAL_OPTIMIZATION|LIBRARY_OUTPUT_DIRECTORY|LIBRARY_OUTPUT_NAME|LINK_FLAGS|LINK_INTERFACE_LIBRARIES|LINK_INTERFACE_MULTIPLICITY|LOCATION|MAP_IMPORTED_CONFIG|OSX_ARCHITECTURES|OUTPUT_NAME|PDB_NAME|PDB_OUTPUT_DIRECTORY|RUNTIME_OUTPUT_DIRECTORY|RUNTIME_OUTPUT_NAME|STATIC_LIBRARY_FLAGS|VS_CSHARP|VS_DOTNET_REFERENCEPROP|VS_DOTNET_REFERENCE|VS_GLOBAL_SECTION_POST|VS_GLOBAL_SECTION_PRE|VS_GLOBAL|XCODE_ATTRIBUTE)_\w+|\w+_(?:CLANG_TIDY|COMPILER_LAUNCHER|CPPCHECK|CPPLINT|INCLUDE_WHAT_YOU_USE|OUTPUT_NAME|POSTFIX|VISIBILITY_PRESET)|ABSTRACT|ADDITIONAL_MAKE_CLEAN_FILES|ADVANCED|ALIASED_TARGET|ALLOW_DUPLICATE_CUSTOM_TARGETS|ANDROID_(?:ANT_ADDITIONAL_OPTIONS|API|API_MIN|ARCH|ASSETS_DIRECTORIES|GUI|JAR_DEPENDENCIES|NATIVE_LIB_DEPENDENCIES|NATIVE_LIB_DIRECTORIES|PROCESS_MAX|PROGUARD|PROGUARD_CONFIG_PATH|SECURE_PROPS_PATH|SKIP_ANT_STEP|STL_TYPE)|ARCHIVE_OUTPUT_DIRECTORY|ATTACHED_FILES|ATTACHED_FILES_ON_FAIL|AUTOGEN_(?:BUILD_DIR|ORIGIN_DEPENDS|PARALLEL|SOURCE_GROUP|TARGETS_FOLDER|TARGET_DEPENDS)|AUTOMOC|AUTOMOC_(?:COMPILER_PREDEFINES|DEPEND_FILTERS|EXECUTABLE|MACRO_NAMES|MOC_OPTIONS|SOURCE_GROUP|TARGETS_FOLDER)|AUTORCC|AUTORCC_EXECUTABLE|AUTORCC_OPTIONS|AUTORCC_SOURCE_GROUP|AUTOUIC|AUTOUIC_EXECUTABLE|AUTOUIC_OPTIONS|AUTOUIC_SEARCH_PATHS|BINARY_DIR|BUILDSYSTEM_TARGETS|BUILD_RPATH|BUILD_RPATH_USE_ORIGIN|BUILD_WITH_INSTALL_NAME_DIR|BUILD_WITH_INSTALL_RPATH|BUNDLE|BUNDLE_EXTENSION|CACHE_VARIABLES|CLEAN_NO_CUSTOM|COMMON_LANGUAGE_RUNTIME|COMPATIBLE_INTERFACE_(?:BOOL|NUMBER_MAX|NUMBER_MIN|STRING)|COMPILE_(?:DEFINITIONS|FEATURES|FLAGS|OPTIONS|PDB_NAME|PDB_OUTPUT_DIRECTORY)|COST|CPACK_DESKTOP_SHORTCUTS|CPACK_NEVER_OVERWRITE|CPACK_PERMANENT|CPACK_STARTUP_SHORTCUTS|CPACK_START_MENU_SHORTCUTS|CPACK_WIX_ACL|CROSSCOMPILING_EMULATOR|CUDA_EXTENSIONS|CUDA_PTX_COMPILATION|CUDA_RESOLVE_DEVICE_SYMBOLS|CUDA_SEPARABLE_COMPILATION|CUDA_STANDARD|CUDA_STANDARD_REQUIRED|CXX_EXTENSIONS|CXX_STANDARD|CXX_STANDARD_REQUIRED|C_EXTENSIONS|C_STANDARD|C_STANDARD_REQUIRED|DEBUG_CONFIGURATIONS|DEFINE_SYMBOL|DEFINITIONS|DEPENDS|DEPLOYMENT_ADDITIONAL_FILES|DEPLOYMENT_REMOTE_DIRECTORY|DISABLED|DISABLED_FEATURES|ECLIPSE_EXTRA_CPROJECT_CONTENTS|ECLIPSE_EXTRA_NATURES|ENABLED_FEATURES|ENABLED_LANGUAGES|ENABLE_EXPORTS|ENVIRONMENT|EXCLUDE_FROM_ALL|EXCLUDE_FROM_DEFAULT_BUILD|EXPORT_NAME|EXPORT_PROPERTIES|EXTERNAL_OBJECT|EchoString|FAIL_REGULAR_EXPRESSION|FIND_LIBRARY_USE_LIB32_PATHS|FIND_LIBRARY_USE_LIB64_PATHS|FIND_LIBRARY_USE_LIBX32_PATHS|FIND_LIBRARY_USE_OPENBSD_VERSIONING|FIXTURES_CLEANUP|FIXTURES_REQUIRED|FIXTURES_SETUP|FOLDER|FRAMEWORK|Fortran_FORMAT|Fortran_MODULE_DIRECTORY|GENERATED|GENERATOR_FILE_NAME|GENERATOR_IS_MULTI_CONFIG|GHS_INTEGRITY_APP|GHS_NO_SOURCE_GROUP_FILE|GLOBAL_DEPENDS_DEBUG_MODE|GLOBAL_DEPENDS_NO_CYCLES|GNUtoMS|HAS_CXX|HEADER_FILE_ONLY|HELPSTRING|IMPLICIT_DEPENDS_INCLUDE_TRANSFORM|IMPORTED|IMPORTED_(?:COMMON_LANGUAGE_RUNTIME|CONFIGURATIONS|GLOBAL|IMPLIB|LIBNAME|LINK_DEPENDENT_LIBRARIES|LINK_INTERFACE_(?:LANGUAGES|LIBRARIES|MULTIPLICITY)|LOCATION|NO_SONAME|OBJECTS|SONAME)|IMPORT_PREFIX|IMPORT_SUFFIX|INCLUDE_DIRECTORIES|INCLUDE_REGULAR_EXPRESSION|INSTALL_NAME_DIR|INSTALL_RPATH|INSTALL_RPATH_USE_LINK_PATH|INTERFACE_(?:AUTOUIC_OPTIONS|COMPILE_DEFINITIONS|COMPILE_FEATURES|COMPILE_OPTIONS|INCLUDE_DIRECTORIES|LINK_DEPENDS|LINK_DIRECTORIES|LINK_LIBRARIES|LINK_OPTIONS|POSITION_INDEPENDENT_CODE|SOURCES|SYSTEM_INCLUDE_DIRECTORIES)|INTERPROCEDURAL_OPTIMIZATION|IN_TRY_COMPILE|IOS_INSTALL_COMBINED|JOB_POOLS|JOB_POOL_COMPILE|JOB_POOL_LINK|KEEP_EXTENSION|LABELS|LANGUAGE|LIBRARY_OUTPUT_DIRECTORY|LINKER_LANGUAGE|LINK_(?:DEPENDS|DEPENDS_NO_SHARED|DIRECTORIES|FLAGS|INTERFACE_LIBRARIES|INTERFACE_MULTIPLICITY|LIBRARIES|OPTIONS|SEARCH_END_STATIC|SEARCH_START_STATIC|WHAT_YOU_USE)|LISTFILE_STACK|LOCATION|MACOSX_BUNDLE|MACOSX_BUNDLE_INFO_PLIST|MACOSX_FRAMEWORK_INFO_PLIST|MACOSX_PACKAGE_LOCATION|MACOSX_RPATH|MACROS|MANUALLY_ADDED_DEPENDENCIES|MEASUREMENT|MODIFIED|NAME|NO_SONAME|NO_SYSTEM_FROM_IMPORTED|OBJECT_DEPENDS|OBJECT_OUTPUTS|OSX_ARCHITECTURES|OUTPUT_NAME|PACKAGES_FOUND|PACKAGES_NOT_FOUND|PARENT_DIRECTORY|PASS_REGULAR_EXPRESSION|PDB_NAME|PDB_OUTPUT_DIRECTORY|POSITION_INDEPENDENT_CODE|POST_INSTALL_SCRIPT|PREDEFINED_TARGETS_FOLDER|PREFIX|PRE_INSTALL_SCRIPT|PRIVATE_HEADER|PROCESSORS|PROCESSOR_AFFINITY|PROJECT_LABEL|PUBLIC_HEADER|REPORT_UNDEFINED_PROPERTIES|REQUIRED_FILES|RESOURCE|RESOURCE_LOCK|RULE_LAUNCH_COMPILE|RULE_LAUNCH_CUSTOM|RULE_LAUNCH_LINK|RULE_MESSAGES|RUNTIME_OUTPUT_DIRECTORY|RUN_SERIAL|SKIP_AUTOGEN|SKIP_AUTOMOC|SKIP_AUTORCC|SKIP_AUTOUIC|SKIP_BUILD_RPATH|SKIP_RETURN_CODE|SOURCES|SOURCE_DIR|SOVERSION|STATIC_LIBRARY_FLAGS|STATIC_LIBRARY_OPTIONS|STRINGS|SUBDIRECTORIES|SUFFIX|SYMBOLIC|TARGET_ARCHIVES_MAY_BE_SHARED_LIBS|TARGET_MESSAGES|TARGET_SUPPORTS_SHARED_LIBS|TESTS|TEST_INCLUDE_FILE|TEST_INCLUDE_FILES|TIMEOUT|TIMEOUT_AFTER_MATCH|TYPE|USE_FOLDERS|VALUE|VARIABLES|VERSION|VISIBILITY_INLINES_HIDDEN|VS_(?:CONFIGURATION_TYPE|COPY_TO_OUT_DIR|DEBUGGER_(?:COMMAND|COMMAND_ARGUMENTS|ENVIRONMENT|WORKING_DIRECTORY)|DEPLOYMENT_CONTENT|DEPLOYMENT_LOCATION|DOTNET_REFERENCES|DOTNET_REFERENCES_COPY_LOCAL|GLOBAL_KEYWORD|GLOBAL_PROJECT_TYPES|GLOBAL_ROOTNAMESPACE|INCLUDE_IN_VSIX|IOT_STARTUP_TASK|KEYWORD|RESOURCE_GENERATOR|SCC_AUXPATH|SCC_LOCALPATH|SCC_PROJECTNAME|SCC_PROVIDER|SDK_REFERENCES|SHADER_(?:DISABLE_OPTIMIZATIONS|ENABLE_DEBUG|ENTRYPOINT|FLAGS|MODEL|OBJECT_FILE_NAME|OUTPUT_HEADER_FILE|TYPE|VARIABLE_NAME)|STARTUP_PROJECT|TOOL_OVERRIDE|USER_PROPS|WINRT_COMPONENT|WINRT_EXTENSIONS|WINRT_REFERENCES|XAML_TYPE)|WILL_FAIL|WIN32_EXECUTABLE|WINDOWS_EXPORT_ALL_SYMBOLS|WORKING_DIRECTORY|WRAP_EXCLUDE|XCODE_(?:EMIT_EFFECTIVE_PLATFORM_NAME|EXPLICIT_FILE_TYPE|FILE_ATTRIBUTES|LAST_KNOWN_FILE_TYPE|PRODUCT_TYPE|SCHEME_(?:ADDRESS_SANITIZER|ADDRESS_SANITIZER_USE_AFTER_RETURN|ARGUMENTS|DISABLE_MAIN_THREAD_CHECKER|DYNAMIC_LIBRARY_LOADS|DYNAMIC_LINKER_API_USAGE|ENVIRONMENT|EXECUTABLE|GUARD_MALLOC|MAIN_THREAD_CHECKER_STOP|MALLOC_GUARD_EDGES|MALLOC_SCRIBBLE|MALLOC_STACK|THREAD_SANITIZER(?:_STOP)?|UNDEFINED_BEHAVIOUR_SANITIZER(?:_STOP)?|ZOMBIE_OBJECTS))|XCTEST)\b/,keyword:/\b(?:add_compile_definitions|add_compile_options|add_custom_command|add_custom_target|add_definitions|add_dependencies|add_executable|add_library|add_link_options|add_subdirectory|add_test|aux_source_directory|break|build_command|build_name|cmake_host_system_information|cmake_minimum_required|cmake_parse_arguments|cmake_policy|configure_file|continue|create_test_sourcelist|ctest_build|ctest_configure|ctest_coverage|ctest_empty_binary_directory|ctest_memcheck|ctest_read_custom_files|ctest_run_script|ctest_sleep|ctest_start|ctest_submit|ctest_test|ctest_update|ctest_upload|define_property|else|elseif|enable_language|enable_testing|endforeach|endfunction|endif|endmacro|endwhile|exec_program|execute_process|export|export_library_dependencies|file|find_file|find_library|find_package|find_path|find_program|fltk_wrap_ui|foreach|function|get_cmake_property|get_directory_property|get_filename_component|get_property|get_source_file_property|get_target_property|get_test_property|if|include|include_directories|include_external_msproject|include_guard|include_regular_expression|install|install_files|install_programs|install_targets|link_directories|link_libraries|list|load_cache|load_command|macro|make_directory|mark_as_advanced|math|message|option|output_required_files|project|qt_wrap_cpp|qt_wrap_ui|remove|remove_definitions|return|separate_arguments|set|set_directory_properties|set_property|set_source_files_properties|set_target_properties|set_tests_properties|site_name|source_group|string|subdir_depends|subdirs|target_compile_definitions|target_compile_features|target_compile_options|target_include_directories|target_link_directories|target_link_libraries|target_link_options|target_sources|try_compile|try_run|unset|use_mangled_mesa|utility_source|variable_requires|variable_watch|while|write_file)(?=\s*\()\b/,boolean:/\b(?:FALSE|OFF|ON|TRUE)\b/,namespace:/\b(?:INTERFACE|PRIVATE|PROPERTIES|PUBLIC|SHARED|STATIC|TARGET_OBJECTS)\b/,operator:/\b(?:AND|DEFINED|EQUAL|GREATER|LESS|MATCHES|NOT|OR|STREQUAL|STRGREATER|STRLESS|VERSION_EQUAL|VERSION_GREATER|VERSION_LESS)\b/,inserted:{pattern:/\b\w+::\w+\b/,alias:"class-name"},number:/\b\d+(?:\.\d+)*\b/,function:/\b[a-z_]\w*(?=\s*\()\b/i,punctuation:/[()>}]|\$[<{]/}}return Qc}var Jc,Gv;function PU(){if(Gv)return Jc;Gv=1,Jc=e,e.displayName="cobol",e.aliases=[];function e(t){t.languages.cobol={comment:{pattern:/\*>.*|(^[ \t]*)\*.*/m,lookbehind:!0,greedy:!0},string:{pattern:/[xzgn]?(?:"(?:[^\r\n"]|"")*"(?!")|'(?:[^\r\n']|'')*'(?!'))/i,greedy:!0},level:{pattern:/(^[ \t]*)\d+\b/m,lookbehind:!0,greedy:!0,alias:"number"},"class-name":{pattern:/(\bpic(?:ture)?\s+)(?:(?:[-\w$/,:*+<>]|\.(?!\s|$))(?:\(\d+\))?)+/i,lookbehind:!0,inside:{number:{pattern:/(\()\d+/,lookbehind:!0},punctuation:/[()]/}},keyword:{pattern:/(^|[^\w-])(?:ABORT|ACCEPT|ACCESS|ADD|ADDRESS|ADVANCING|AFTER|ALIGNED|ALL|ALPHABET|ALPHABETIC|ALPHABETIC-LOWER|ALPHABETIC-UPPER|ALPHANUMERIC|ALPHANUMERIC-EDITED|ALSO|ALTER|ALTERNATE|ANY|ARE|AREA|AREAS|AS|ASCENDING|ASCII|ASSIGN|ASSOCIATED-DATA|ASSOCIATED-DATA-LENGTH|AT|ATTRIBUTE|AUTHOR|AUTO|AUTO-SKIP|BACKGROUND-COLOR|BACKGROUND-COLOUR|BASIS|BEEP|BEFORE|BEGINNING|BELL|BINARY|BIT|BLANK|BLINK|BLOCK|BOTTOM|BOUNDS|BY|BYFUNCTION|BYTITLE|CALL|CANCEL|CAPABLE|CCSVERSION|CD|CF|CH|CHAINING|CHANGED|CHANNEL|CHARACTER|CHARACTERS|CLASS|CLASS-ID|CLOCK-UNITS|CLOSE|CLOSE-DISPOSITION|COBOL|CODE|CODE-SET|COL|COLLATING|COLUMN|COM-REG|COMMA|COMMITMENT|COMMON|COMMUNICATION|COMP|COMP-1|COMP-2|COMP-3|COMP-4|COMP-5|COMPUTATIONAL|COMPUTATIONAL-1|COMPUTATIONAL-2|COMPUTATIONAL-3|COMPUTATIONAL-4|COMPUTATIONAL-5|COMPUTE|CONFIGURATION|CONTAINS|CONTENT|CONTINUE|CONTROL|CONTROL-POINT|CONTROLS|CONVENTION|CONVERTING|COPY|CORR|CORRESPONDING|COUNT|CRUNCH|CURRENCY|CURSOR|DATA|DATA-BASE|DATE|DATE-COMPILED|DATE-WRITTEN|DAY|DAY-OF-WEEK|DBCS|DE|DEBUG-CONTENTS|DEBUG-ITEM|DEBUG-LINE|DEBUG-NAME|DEBUG-SUB-1|DEBUG-SUB-2|DEBUG-SUB-3|DEBUGGING|DECIMAL-POINT|DECLARATIVES|DEFAULT|DEFAULT-DISPLAY|DEFINITION|DELETE|DELIMITED|DELIMITER|DEPENDING|DESCENDING|DESTINATION|DETAIL|DFHRESP|DFHVALUE|DISABLE|DISK|DISPLAY|DISPLAY-1|DIVIDE|DIVISION|DONTCARE|DOUBLE|DOWN|DUPLICATES|DYNAMIC|EBCDIC|EGCS|EGI|ELSE|EMI|EMPTY-CHECK|ENABLE|END|END-ACCEPT|END-ADD|END-CALL|END-COMPUTE|END-DELETE|END-DIVIDE|END-EVALUATE|END-IF|END-MULTIPLY|END-OF-PAGE|END-PERFORM|END-READ|END-RECEIVE|END-RETURN|END-REWRITE|END-SEARCH|END-START|END-STRING|END-SUBTRACT|END-UNSTRING|END-WRITE|ENDING|ENTER|ENTRY|ENTRY-PROCEDURE|ENVIRONMENT|EOL|EOP|EOS|ERASE|ERROR|ESCAPE|ESI|EVALUATE|EVENT|EVERY|EXCEPTION|EXCLUSIVE|EXHIBIT|EXIT|EXPORT|EXTEND|EXTENDED|EXTERNAL|FD|FILE|FILE-CONTROL|FILLER|FINAL|FIRST|FOOTING|FOR|FOREGROUND-COLOR|FOREGROUND-COLOUR|FROM|FULL|FUNCTION|FUNCTION-POINTER|FUNCTIONNAME|GENERATE|GIVING|GLOBAL|GO|GOBACK|GRID|GROUP|HEADING|HIGH-VALUE|HIGH-VALUES|HIGHLIGHT|I-O|I-O-CONTROL|ID|IDENTIFICATION|IF|IMPLICIT|IMPORT|IN|INDEX|INDEXED|INDICATE|INITIAL|INITIALIZE|INITIATE|INPUT|INPUT-OUTPUT|INSPECT|INSTALLATION|INTEGER|INTO|INVALID|INVOKE|IS|JUST|JUSTIFIED|KANJI|KEPT|KEY|KEYBOARD|LABEL|LANGUAGE|LAST|LB|LD|LEADING|LEFT|LEFTLINE|LENGTH|LENGTH-CHECK|LIBACCESS|LIBPARAMETER|LIBRARY|LIMIT|LIMITS|LINAGE|LINAGE-COUNTER|LINE|LINE-COUNTER|LINES|LINKAGE|LIST|LOCAL|LOCAL-STORAGE|LOCK|LONG-DATE|LONG-TIME|LOW-VALUE|LOW-VALUES|LOWER|LOWLIGHT|MEMORY|MERGE|MESSAGE|MMDDYYYY|MODE|MODULES|MORE-LABELS|MOVE|MULTIPLE|MULTIPLY|NAMED|NATIONAL|NATIONAL-EDITED|NATIVE|NEGATIVE|NETWORK|NEXT|NO|NO-ECHO|NULL|NULLS|NUMBER|NUMERIC|NUMERIC-DATE|NUMERIC-EDITED|NUMERIC-TIME|OBJECT-COMPUTER|OCCURS|ODT|OF|OFF|OMITTED|ON|OPEN|OPTIONAL|ORDER|ORDERLY|ORGANIZATION|OTHER|OUTPUT|OVERFLOW|OVERLINE|OWN|PACKED-DECIMAL|PADDING|PAGE|PAGE-COUNTER|PASSWORD|PERFORM|PF|PH|PIC|PICTURE|PLUS|POINTER|PORT|POSITION|POSITIVE|PRINTER|PRINTING|PRIVATE|PROCEDURE|PROCEDURE-POINTER|PROCEDURES|PROCEED|PROCESS|PROGRAM|PROGRAM-ID|PROGRAM-LIBRARY|PROMPT|PURGE|QUEUE|QUOTE|QUOTES|RANDOM|RD|READ|READER|REAL|RECEIVE|RECEIVED|RECORD|RECORDING|RECORDS|RECURSIVE|REDEFINES|REEL|REF|REFERENCE|REFERENCES|RELATIVE|RELEASE|REMAINDER|REMARKS|REMOTE|REMOVAL|REMOVE|RENAMES|REPLACE|REPLACING|REPORT|REPORTING|REPORTS|REQUIRED|RERUN|RESERVE|RESET|RETURN|RETURN-CODE|RETURNING|REVERSE-VIDEO|REVERSED|REWIND|REWRITE|RF|RH|RIGHT|ROUNDED|RUN|SAME|SAVE|SCREEN|SD|SEARCH|SECTION|SECURE|SECURITY|SEGMENT|SEGMENT-LIMIT|SELECT|SEND|SENTENCE|SEPARATE|SEQUENCE|SEQUENTIAL|SET|SHARED|SHAREDBYALL|SHAREDBYRUNUNIT|SHARING|SHIFT-IN|SHIFT-OUT|SHORT-DATE|SIGN|SIZE|SORT|SORT-CONTROL|SORT-CORE-SIZE|SORT-FILE-SIZE|SORT-MERGE|SORT-MESSAGE|SORT-MODE-SIZE|SORT-RETURN|SOURCE|SOURCE-COMPUTER|SPACE|SPACES|SPECIAL-NAMES|STANDARD|STANDARD-1|STANDARD-2|START|STATUS|STOP|STRING|SUB-QUEUE-1|SUB-QUEUE-2|SUB-QUEUE-3|SUBTRACT|SUM|SUPPRESS|SYMBOL|SYMBOLIC|SYNC|SYNCHRONIZED|TABLE|TALLY|TALLYING|TAPE|TASK|TERMINAL|TERMINATE|TEST|TEXT|THEN|THREAD|THREAD-LOCAL|THROUGH|THRU|TIME|TIMER|TIMES|TITLE|TO|TODAYS-DATE|TODAYS-NAME|TOP|TRAILING|TRUNCATED|TYPE|TYPEDEF|UNDERLINE|UNIT|UNSTRING|UNTIL|UP|UPON|USAGE|USE|USING|VALUE|VALUES|VARYING|VIRTUAL|WAIT|WHEN|WHEN-COMPILED|WITH|WORDS|WORKING-STORAGE|WRITE|YEAR|YYYYDDD|YYYYMMDD|ZERO-FILL|ZEROES|ZEROS)(?![\w-])/i,lookbehind:!0},boolean:{pattern:/(^|[^\w-])(?:false|true)(?![\w-])/i,lookbehind:!0},number:{pattern:/(^|[^\w-])(?:[+-]?(?:(?:\d+(?:[.,]\d+)?|[.,]\d+)(?:e[+-]?\d+)?|zero))(?![\w-])/i,lookbehind:!0},operator:[/<>|[<>]=?|[=+*/&]/,{pattern:/(^|[^\w-])(?:-|and|equal|greater|less|not|or|than)(?![\w-])/i,lookbehind:!0}],punctuation:/[.:,()]/}}return Jc}var ed,Hv;function UU(){if(Hv)return ed;Hv=1,ed=e,e.displayName="coffeescript",e.aliases=["coffee"];function e(t){(function(n){var i=/#(?!\{).+/,o={pattern:/#\{[^}]+\}/,alias:"variable"};n.languages.coffeescript=n.languages.extend("javascript",{comment:i,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:o}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),n.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:i,interpolation:o}}}),n.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:n.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:o}}]}),n.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete n.languages.coffeescript["template-string"],n.languages.coffee=n.languages.coffeescript})(t)}return ed}var td,Wv;function BU(){if(Wv)return td;Wv=1,td=e,e.displayName="concurnas",e.aliases=["conc"];function e(t){t.languages.concurnas={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?(?:\*\/|$)|\/\/.*)/,lookbehind:!0,greedy:!0},langext:{pattern:/\b\w+\s*\|\|[\s\S]+?\|\|/,greedy:!0,inside:{"class-name":/^\w+/,string:{pattern:/(^\s*\|\|)[\s\S]+(?=\|\|$)/,lookbehind:!0},punctuation:/\|\|/}},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/,lookbehind:!0},keyword:/\b(?:abstract|actor|also|annotation|assert|async|await|bool|boolean|break|byte|case|catch|changed|char|class|closed|constant|continue|def|default|del|double|elif|else|enum|every|extends|false|finally|float|for|from|global|gpudef|gpukernel|if|import|in|init|inject|int|lambda|local|long|loop|match|new|nodefault|null|of|onchange|open|out|override|package|parfor|parforsync|post|pre|private|protected|provide|provider|public|return|shared|short|single|size_t|sizeof|super|sync|this|throw|trait|trans|transient|true|try|typedef|unchecked|using|val|var|void|while|with)\b/,boolean:/\b(?:false|true)\b/,number:/\b0b[01][01_]*L?\b|\b0x(?:[\da-f_]*\.)?[\da-f_p+-]+\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfls]?/i,punctuation:/[{}[\];(),.:]/,operator:/<==|>==|=>|->|<-|<>|&==|&<>|\?:?|\.\?|\+\+|--|[-+*/=<>]=?|[!^~]|\b(?:and|as|band|bor|bxor|comp|is|isnot|mod|or)\b=?/,annotation:{pattern:/@(?:\w+:)?(?:\w+|\[[^\]]+\])?/,alias:"builtin"}},t.languages.insertBefore("concurnas","langext",{"regex-literal":{pattern:/\br("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:t.languages.concurnas},regex:/[\s\S]+/}},"string-literal":{pattern:/(?:\B|\bs)("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:t.languages.concurnas},string:/[\s\S]+/}}}),t.languages.conc=t.languages.concurnas}return td}var nd,Vv;function jU(){if(Vv)return nd;Vv=1,nd=e,e.displayName="coq",e.aliases=[];function e(t){(function(n){for(var i=/\(\*(?:[^(*]|\((?!\*)|\*(?!\))|)*\*\)/.source,o=0;o<2;o++)i=i.replace(//g,function(){return i});i=i.replace(//g,"[]"),n.languages.coq={comment:RegExp(i),string:{pattern:/"(?:[^"]|"")*"(?!")/,greedy:!0},attribute:[{pattern:RegExp(/#\[(?:[^\[\]("]|"(?:[^"]|"")*"(?!")|\((?!\*)|)*\]/.source.replace(//g,function(){return i})),greedy:!0,alias:"attr-name",inside:{comment:RegExp(i),string:{pattern:/"(?:[^"]|"")*"(?!")/,greedy:!0},operator:/=/,punctuation:/^#\[|\]$|[,()]/}},{pattern:/\b(?:Cumulative|Global|Local|Monomorphic|NonCumulative|Polymorphic|Private|Program)\b/,alias:"attr-name"}],keyword:/\b(?:Abort|About|Add|Admit|Admitted|All|Arguments|As|Assumptions|Axiom|Axioms|Back|BackTo|Backtrace|BinOp|BinOpSpec|BinRel|Bind|Blacklist|Canonical|Case|Cd|Check|Class|Classes|Close|CoFixpoint|CoInductive|Coercion|Coercions|Collection|Combined|Compute|Conjecture|Conjectures|Constant|Constants|Constraint|Constructors|Context|Corollary|Create|CstOp|Custom|Cut|Debug|Declare|Defined|Definition|Delimit|Dependencies|Dependent|Derive|Diffs|Drop|Elimination|End|Entry|Equality|Eval|Example|Existential|Existentials|Existing|Export|Extern|Extraction|Fact|Fail|Field|File|Firstorder|Fixpoint|Flags|Focus|From|Funclass|Function|Functional|GC|Generalizable|Goal|Grab|Grammar|Graph|Guarded|Haskell|Heap|Hide|Hint|HintDb|Hints|Hypotheses|Hypothesis|IF|Identity|Immediate|Implicit|Implicits|Import|Include|Induction|Inductive|Infix|Info|Initial|InjTyp|Inline|Inspect|Instance|Instances|Intro|Intros|Inversion|Inversion_clear|JSON|Language|Left|Lemma|Let|Lia|Libraries|Library|Load|LoadPath|Locate|Ltac|Ltac2|ML|Match|Method|Minimality|Module|Modules|Morphism|Next|NoInline|Notation|Number|OCaml|Obligation|Obligations|Opaque|Open|Optimize|Parameter|Parameters|Parametric|Path|Paths|Prenex|Preterm|Primitive|Print|Profile|Projections|Proof|Prop|PropBinOp|PropOp|PropUOp|Property|Proposition|Pwd|Qed|Quit|Rec|Record|Recursive|Redirect|Reduction|Register|Relation|Remark|Remove|Require|Reserved|Reset|Resolve|Restart|Rewrite|Right|Ring|Rings|SProp|Saturate|Save|Scheme|Scope|Scopes|Search|SearchHead|SearchPattern|SearchRewrite|Section|Separate|Set|Setoid|Show|Signatures|Solve|Solver|Sort|Sortclass|Sorted|Spec|Step|Strategies|Strategy|String|Structure|SubClass|Subgraph|SuchThat|Tactic|Term|TestCompile|Theorem|Time|Timeout|To|Transparent|Type|Typeclasses|Types|Typing|UnOp|UnOpSpec|Undelimit|Undo|Unfocus|Unfocused|Unfold|Universe|Universes|Unshelve|Variable|Variables|Variant|Verbose|View|Visibility|Zify|_|apply|as|at|by|cofix|else|end|exists|exists2|fix|for|forall|fun|if|in|let|match|measure|move|removed|return|struct|then|using|wf|where|with)\b/,number:/\b(?:0x[a-f0-9][a-f0-9_]*(?:\.[a-f0-9_]+)?(?:p[+-]?\d[\d_]*)?|\d[\d_]*(?:\.[\d_]+)?(?:e[+-]?\d[\d_]*)?)\b/i,punct:{pattern:/@\{|\{\||\[=|:>/,alias:"punctuation"},operator:/\/\\|\\\/|\.{2,3}|:{1,2}=|\*\*|[-=]>|<(?:->?|[+:=>]|<:)|>(?:=|->)|\|[-|]?|[-!%&*+/<=>?@^~']/,punctuation:/\.\(|`\(|@\{|`\{|\{\||\[=|:>|[:.,;(){}\[\]]/}})(t)}return nd}var rd,Yv;function _s(){if(Yv)return rd;Yv=1,rd=e,e.displayName="ruby",e.aliases=["rb"];function e(t){(function(n){n.languages.ruby=n.languages.extend("clike",{comment:{pattern:/#.*|^=begin\s[\s\S]*?^=end/m,greedy:!0},"class-name":{pattern:/(\b(?:class|module)\s+|\bcatch\s+\()[\w.\\]+|\b[A-Z_]\w*(?=\s*\.\s*new\b)/,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:BEGIN|END|alias|and|begin|break|case|class|def|define_method|defined|do|each|else|elsif|end|ensure|extend|for|if|in|include|module|new|next|nil|not|or|prepend|private|protected|public|raise|redo|require|rescue|retry|return|self|super|then|throw|undef|unless|until|when|while|yield)\b/,operator:/\.{2,3}|&\.|===||[!=]?~|(?:&&|\|\||<<|>>|\*\*|[+\-*/%<>!^&|=])=?|[?:]/,punctuation:/[(){}[\].,;]/}),n.languages.insertBefore("ruby","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}});var i={pattern:/((?:^|[^\\])(?:\\{2})*)#\{(?:[^{}]|\{[^{}]*\})*\}/,lookbehind:!0,inside:{content:{pattern:/^(#\{)[\s\S]+(?=\}$)/,lookbehind:!0,inside:n.languages.ruby},delimiter:{pattern:/^#\{|\}$/,alias:"punctuation"}}};delete n.languages.ruby.function;var o="(?:"+[/([^a-zA-Z0-9\s{(\[<=])(?:(?!\1)[^\\]|\\[\s\S])*\1/.source,/\((?:[^()\\]|\\[\s\S]|\((?:[^()\\]|\\[\s\S])*\))*\)/.source,/\{(?:[^{}\\]|\\[\s\S]|\{(?:[^{}\\]|\\[\s\S])*\})*\}/.source,/\[(?:[^\[\]\\]|\\[\s\S]|\[(?:[^\[\]\\]|\\[\s\S])*\])*\]/.source,/<(?:[^<>\\]|\\[\s\S]|<(?:[^<>\\]|\\[\s\S])*>)*>/.source].join("|")+")",l=/(?:"(?:\\.|[^"\\\r\n])*"|(?:\b[a-zA-Z_]\w*|[^\s\0-\x7F]+)[?!]?|\$.)/.source;n.languages.insertBefore("ruby","keyword",{"regex-literal":[{pattern:RegExp(/%r/.source+o+/[egimnosux]{0,6}/.source),greedy:!0,inside:{interpolation:i,regex:/[\s\S]+/}},{pattern:/(^|[^/])\/(?!\/)(?:\[[^\r\n\]]+\]|\\.|[^[/\\\r\n])+\/[egimnosux]{0,6}(?=\s*(?:$|[\r\n,.;})#]))/,lookbehind:!0,greedy:!0,inside:{interpolation:i,regex:/[\s\S]+/}}],variable:/[@$]+[a-zA-Z_]\w*(?:[?!]|\b)/,symbol:[{pattern:RegExp(/(^|[^:]):/.source+l),lookbehind:!0,greedy:!0},{pattern:RegExp(/([\r\n{(,][ \t]*)/.source+l+/(?=:(?!:))/.source),lookbehind:!0,greedy:!0}],"method-definition":{pattern:/(\bdef\s+)\w+(?:\s*\.\s*\w+)?/,lookbehind:!0,inside:{function:/\b\w+$/,keyword:/^self\b/,"class-name":/^\w+/,punctuation:/\./}}}),n.languages.insertBefore("ruby","string",{"string-literal":[{pattern:RegExp(/%[qQiIwWs]?/.source+o),greedy:!0,inside:{interpolation:i,string:/[\s\S]+/}},{pattern:/("|')(?:#\{[^}]+\}|#(?!\{)|\\(?:\r\n|[\s\S])|(?!\1)[^\\#\r\n])*\1/,greedy:!0,inside:{interpolation:i,string:/[\s\S]+/}},{pattern:/<<[-~]?([a-z_]\w*)[\r\n](?:.*[\r\n])*?[\t ]*\1/i,alias:"heredoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<[-~]?[a-z_]\w*|\b[a-z_]\w*$/i,inside:{symbol:/\b\w+/,punctuation:/^<<[-~]?/}},interpolation:i,string:/[\s\S]+/}},{pattern:/<<[-~]?'([a-z_]\w*)'[\r\n](?:.*[\r\n])*?[\t ]*\1/i,alias:"heredoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<[-~]?'[a-z_]\w*'|\b[a-z_]\w*$/i,inside:{symbol:/\b\w+/,punctuation:/^<<[-~]?'|'$/}},string:/[\s\S]+/}}],"command-literal":[{pattern:RegExp(/%x/.source+o),greedy:!0,inside:{interpolation:i,command:{pattern:/[\s\S]+/,alias:"string"}}},{pattern:/`(?:#\{[^}]+\}|#(?!\{)|\\(?:\r\n|[\s\S])|[^\\`#\r\n])*`/,greedy:!0,inside:{interpolation:i,command:{pattern:/[\s\S]+/,alias:"string"}}}]}),delete n.languages.ruby.string,n.languages.insertBefore("ruby","number",{builtin:/\b(?:Array|Bignum|Binding|Class|Continuation|Dir|Exception|FalseClass|File|Fixnum|Float|Hash|IO|Integer|MatchData|Method|Module|NilClass|Numeric|Object|Proc|Range|Regexp|Stat|String|Struct|Symbol|TMS|Thread|ThreadGroup|Time|TrueClass)\b/,constant:/\b[A-Z][A-Z0-9_]*(?:[?!]|\b)/}),n.languages.rb=n.languages.ruby})(t)}return rd}var ad,Kv;function zU(){if(Kv)return ad;Kv=1;var e=_s();ad=t,t.displayName="crystal",t.aliases=[];function t(n){n.register(e),(function(i){i.languages.crystal=i.languages.extend("ruby",{keyword:[/\b(?:__DIR__|__END_LINE__|__FILE__|__LINE__|abstract|alias|annotation|as|asm|begin|break|case|class|def|do|else|elsif|end|ensure|enum|extend|for|fun|if|ifdef|include|instance_sizeof|lib|macro|module|next|of|out|pointerof|private|protected|ptr|require|rescue|return|select|self|sizeof|struct|super|then|type|typeof|undef|uninitialized|union|unless|until|when|while|with|yield)\b/,{pattern:/(\.\s*)(?:is_a|responds_to)\?/,lookbehind:!0}],number:/\b(?:0b[01_]*[01]|0o[0-7_]*[0-7]|0x[\da-fA-F_]*[\da-fA-F]|(?:\d(?:[\d_]*\d)?)(?:\.[\d_]*\d)?(?:[eE][+-]?[\d_]*\d)?)(?:_(?:[uif](?:8|16|32|64))?)?\b/,operator:[/->/,i.languages.ruby.operator],punctuation:/[(){}[\].,;\\]/}),i.languages.insertBefore("crystal","string-literal",{attribute:{pattern:/@\[.*?\]/,inside:{delimiter:{pattern:/^@\[|\]$/,alias:"punctuation"},attribute:{pattern:/^(\s*)\w+/,lookbehind:!0,alias:"class-name"},args:{pattern:/\S(?:[\s\S]*\S)?/,inside:i.languages.crystal}}},expansion:{pattern:/\{(?:\{.*?\}|%.*?%)\}/,inside:{content:{pattern:/^(\{.)[\s\S]+(?=.\}$)/,lookbehind:!0,inside:i.languages.crystal},delimiter:{pattern:/^\{[\{%]|[\}%]\}$/,alias:"operator"}}},char:{pattern:/'(?:[^\\\r\n]{1,2}|\\(?:.|u(?:[A-Fa-f0-9]{1,4}|\{[A-Fa-f0-9]{1,6}\})))'/,greedy:!0}})})(n)}return ad}var id,Zv;function $U(){if(Zv)return id;Zv=1;var e=ks();id=t,t.displayName="cshtml",t.aliases=["razor"];function t(n){n.register(e),(function(i){var o=/\/(?![/*])|\/\/.*[\r\n]|\/\*[^*]*(?:\*(?!\/)[^*]*)*\*\//.source,l=/@(?!")|"(?:[^\r\n\\"]|\\.)*"|@"(?:[^\\"]|""|\\[\s\S])*"(?!")/.source+"|"+/'(?:(?:[^\r\n'\\]|\\.|\\[Uux][\da-fA-F]{1,8})'|(?=[^\\](?!')))/.source;function u(T,N){for(var R=0;R/g,function(){return"(?:"+T+")"});return T.replace(//g,"[^\\s\\S]").replace(//g,"(?:"+l+")").replace(//g,"(?:"+o+")")}var c=u(/\((?:[^()'"@/]|||)*\)/.source,2),p=u(/\[(?:[^\[\]'"@/]|||)*\]/.source,2),f=u(/\{(?:[^{}'"@/]|||)*\}/.source,2),m=u(/<(?:[^<>'"@/]|||)*>/.source,2),h=/(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?/.source,S=/(?!\d)[^\s>\/=$<%]+/.source+h+/\s*\/?>/.source,E=/\B@?/.source+"(?:"+/<([a-zA-Z][\w:]*)/.source+h+/\s*>/.source+"(?:"+(/[^<]/.source+"|"+/<\/?(?!\1\b)/.source+S+"|"+u(/<\1/.source+h+/\s*>/.source+"(?:"+(/[^<]/.source+"|"+/<\/?(?!\1\b)/.source+S+"|")+")*"+/<\/\1\s*>/.source,2))+")*"+/<\/\1\s*>/.source+"|"+/|\+|~|\|\|/,punctuation:/[(),]/}},n.languages.css.atrule.inside["selector-function-argument"].inside=o,n.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}});var l={pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0},u={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0};n.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:l,number:u,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:l,number:u})})(t)}return sd}var ld,Jv;function HU(){if(Jv)return ld;Jv=1,ld=e,e.displayName="csv",e.aliases=[];function e(t){t.languages.csv={value:/[^\r\n,"]+|"(?:[^"]|"")*"(?!")/,punctuation:/,/}}return ld}var ud,ek;function WU(){if(ek)return ud;ek=1,ud=e,e.displayName="cypher",e.aliases=[];function e(t){t.languages.cypher={comment:/\/\/.*/,string:{pattern:/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/,greedy:!0},"class-name":{pattern:/(:\s*)(?:\w+|`(?:[^`\\\r\n])*`)(?=\s*[{):])/,lookbehind:!0,greedy:!0},relationship:{pattern:/(-\[\s*(?:\w+\s*|`(?:[^`\\\r\n])*`\s*)?:\s*|\|\s*:\s*)(?:\w+|`(?:[^`\\\r\n])*`)/,lookbehind:!0,greedy:!0,alias:"property"},identifier:{pattern:/`(?:[^`\\\r\n])*`/,greedy:!0},variable:/\$\w+/,keyword:/\b(?:ADD|ALL|AND|AS|ASC|ASCENDING|ASSERT|BY|CALL|CASE|COMMIT|CONSTRAINT|CONTAINS|CREATE|CSV|DELETE|DESC|DESCENDING|DETACH|DISTINCT|DO|DROP|ELSE|END|ENDS|EXISTS|FOR|FOREACH|IN|INDEX|IS|JOIN|KEY|LIMIT|LOAD|MANDATORY|MATCH|MERGE|NODE|NOT|OF|ON|OPTIONAL|OR|ORDER(?=\s+BY)|PERIODIC|REMOVE|REQUIRE|RETURN|SCALAR|SCAN|SET|SKIP|START|STARTS|THEN|UNION|UNIQUE|UNWIND|USING|WHEN|WHERE|WITH|XOR|YIELD)\b/i,function:/\b\w+\b(?=\s*\()/,boolean:/\b(?:false|null|true)\b/i,number:/\b(?:0x[\da-fA-F]+|\d+(?:\.\d+)?(?:[eE][+-]?\d+)?)\b/,operator:/:|<--?|--?>?|<>|=~?|[<>]=?|[+*/%^|]|\.\.\.?/,punctuation:/[()[\]{},;.]/}}return ud}var cd,tk;function VU(){if(tk)return cd;tk=1,cd=e,e.displayName="d",e.aliases=[];function e(t){t.languages.d=t.languages.extend("clike",{comment:[{pattern:/^\s*#!.+/,greedy:!0},{pattern:RegExp(/(^|[^\\])/.source+"(?:"+[/\/\+(?:\/\+(?:[^+]|\+(?!\/))*\+\/|(?!\/\+)[\s\S])*?\+\//.source,/\/\/.*/.source,/\/\*[\s\S]*?\*\//.source].join("|")+")"),lookbehind:!0,greedy:!0}],string:[{pattern:RegExp([/\b[rx]"(?:\\[\s\S]|[^\\"])*"[cwd]?/.source,/\bq"(?:\[[\s\S]*?\]|\([\s\S]*?\)|<[\s\S]*?>|\{[\s\S]*?\})"/.source,/\bq"((?!\d)\w+)$[\s\S]*?^\1"/.source,/\bq"(.)[\s\S]*?\2"/.source,/(["`])(?:\\[\s\S]|(?!\3)[^\\])*\3[cwd]?/.source].join("|"),"m"),greedy:!0},{pattern:/\bq\{(?:\{[^{}]*\}|[^{}])*\}/,greedy:!0,alias:"token-string"}],keyword:/\$|\b(?:__(?:(?:DATE|EOF|FILE|FUNCTION|LINE|MODULE|PRETTY_FUNCTION|TIMESTAMP|TIME|VENDOR|VERSION)__|gshared|parameters|traits|vector)|abstract|alias|align|asm|assert|auto|body|bool|break|byte|case|cast|catch|cdouble|cent|cfloat|char|class|const|continue|creal|dchar|debug|default|delegate|delete|deprecated|do|double|dstring|else|enum|export|extern|false|final|finally|float|for|foreach|foreach_reverse|function|goto|idouble|if|ifloat|immutable|import|inout|int|interface|invariant|ireal|lazy|long|macro|mixin|module|new|nothrow|null|out|override|package|pragma|private|protected|ptrdiff_t|public|pure|real|ref|return|scope|shared|short|size_t|static|string|struct|super|switch|synchronized|template|this|throw|true|try|typedef|typeid|typeof|ubyte|ucent|uint|ulong|union|unittest|ushort|version|void|volatile|wchar|while|with|wstring)\b/,number:[/\b0x\.?[a-f\d_]+(?:(?!\.\.)\.[a-f\d_]*)?(?:p[+-]?[a-f\d_]+)?[ulfi]{0,4}/i,{pattern:/((?:\.\.)?)(?:\b0b\.?|\b|\.)\d[\d_]*(?:(?!\.\.)\.[\d_]*)?(?:e[+-]?\d[\d_]*)?[ulfi]{0,4}/i,lookbehind:!0}],operator:/\|[|=]?|&[&=]?|\+[+=]?|-[-=]?|\.?\.\.|=[>=]?|!(?:i[ns]\b|<>?=?|>=?|=)?|\bi[ns]\b|(?:<[<>]?|>>?>?|\^\^|[*\/%^~])=?/}),t.languages.insertBefore("d","string",{char:/'(?:\\(?:\W|\w+)|[^\\])'/}),t.languages.insertBefore("d","keyword",{property:/\B@\w*/}),t.languages.insertBefore("d","function",{register:{pattern:/\b(?:[ABCD][LHX]|E?(?:BP|DI|SI|SP)|[BS]PL|[ECSDGF]S|CR[0234]|[DS]IL|DR[012367]|E[ABCD]X|X?MM[0-7]|R(?:1[0-5]|[89])[BWD]?|R[ABCD]X|R[BS]P|R[DS]I|TR[3-7]|XMM(?:1[0-5]|[89])|YMM(?:1[0-5]|\d))\b|\bST(?:\([0-7]\)|\b)/,alias:"variable"}})}return cd}var dd,nk;function YU(){if(nk)return dd;nk=1,dd=e,e.displayName="dart",e.aliases=[];function e(t){(function(n){var i=[/\b(?:async|sync|yield)\*/,/\b(?:abstract|assert|async|await|break|case|catch|class|const|continue|covariant|default|deferred|do|dynamic|else|enum|export|extends|extension|external|factory|final|finally|for|get|hide|if|implements|import|in|interface|library|mixin|new|null|on|operator|part|rethrow|return|set|show|static|super|switch|sync|this|throw|try|typedef|var|void|while|with|yield)\b/],o=/(^|[^\w.])(?:[a-z]\w*\s*\.\s*)*(?:[A-Z]\w*\s*\.\s*)*/.source,l={pattern:RegExp(o+/[A-Z](?:[\d_A-Z]*[a-z]\w*)?\b/.source),lookbehind:!0,inside:{namespace:{pattern:/^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/,inside:{punctuation:/\./}}}};n.languages.dart=n.languages.extend("clike",{"class-name":[l,{pattern:RegExp(o+/[A-Z]\w*(?=\s+\w+\s*[;,=()])/.source),lookbehind:!0,inside:l.inside}],keyword:i,operator:/\bis!|\b(?:as|is)\b|\+\+|--|&&|\|\||<<=?|>>=?|~(?:\/=?)?|[+\-*\/%&^|=!<>]=?|\?/}),n.languages.insertBefore("dart","string",{"string-literal":{pattern:/r?(?:("""|''')[\s\S]*?\1|(["'])(?:\\.|(?!\2)[^\\\r\n])*\2(?!\2))/,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$(?:\w+|\{(?:[^{}]|\{[^{}]*\})*\})/,lookbehind:!0,inside:{punctuation:/^\$\{?|\}$/,expression:{pattern:/[\s\S]+/,inside:n.languages.dart}}},string:/[\s\S]+/}},string:void 0}),n.languages.insertBefore("dart","class-name",{metadata:{pattern:/@\w+/,alias:"function"}}),n.languages.insertBefore("dart","class-name",{generics:{pattern:/<(?:[\w\s,.&?]|<(?:[\w\s,.&?]|<(?:[\w\s,.&?]|<[\w\s,.&?]*>)*>)*>)*>/,inside:{"class-name":l,keyword:i,punctuation:/[<>(),.:]/,operator:/[?&|]/}}})})(t)}return dd}var pd,rk;function KU(){if(rk)return pd;rk=1,pd=e,e.displayName="dataweave",e.aliases=[];function e(t){(function(n){n.languages.dataweave={url:/\b[A-Za-z]+:\/\/[\w/:.?=&-]+|\burn:[\w:.?=&-]+/,property:{pattern:/(?:\b\w+#)?(?:"(?:\\.|[^\\"\r\n])*"|\b\w+)(?=\s*[:@])/,greedy:!0},string:{pattern:/(["'`])(?:\\[\s\S]|(?!\1)[^\\])*\1/,greedy:!0},"mime-type":/\b(?:application|audio|image|multipart|text|video)\/[\w+-]+/,date:{pattern:/\|[\w:+-]+\|/,greedy:!0},comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],regex:{pattern:/\/(?:[^\\\/\r\n]|\\[^\r\n])+\//,greedy:!0},keyword:/\b(?:and|as|at|case|do|else|fun|if|input|is|match|not|ns|null|or|output|type|unless|update|using|var)\b/,function:/\b[A-Z_]\w*(?=\s*\()/i,number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\];(),.:@]/,operator:/<<|>>|->|[<>~=]=?|!=|--?-?|\+\+?|!|\?/,boolean:/\b(?:false|true)\b/}})(t)}return pd}var fd,ak;function ZU(){if(ak)return fd;ak=1,fd=e,e.displayName="dax",e.aliases=[];function e(t){t.languages.dax={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/).*)/,lookbehind:!0},"data-field":{pattern:/'(?:[^']|'')*'(?!')(?:\[[ \w\xA0-\uFFFF]+\])?|\w+\[[ \w\xA0-\uFFFF]+\]/,alias:"symbol"},measure:{pattern:/\[[ \w\xA0-\uFFFF]+\]/,alias:"constant"},string:{pattern:/"(?:[^"]|"")*"(?!")/,greedy:!0},function:/\b(?:ABS|ACOS|ACOSH|ACOT|ACOTH|ADDCOLUMNS|ADDMISSINGITEMS|ALL|ALLCROSSFILTERED|ALLEXCEPT|ALLNOBLANKROW|ALLSELECTED|AND|APPROXIMATEDISTINCTCOUNT|ASIN|ASINH|ATAN|ATANH|AVERAGE|AVERAGEA|AVERAGEX|BETA\.DIST|BETA\.INV|BLANK|CALCULATE|CALCULATETABLE|CALENDAR|CALENDARAUTO|CEILING|CHISQ\.DIST|CHISQ\.DIST\.RT|CHISQ\.INV|CHISQ\.INV\.RT|CLOSINGBALANCEMONTH|CLOSINGBALANCEQUARTER|CLOSINGBALANCEYEAR|COALESCE|COMBIN|COMBINA|COMBINEVALUES|CONCATENATE|CONCATENATEX|CONFIDENCE\.NORM|CONFIDENCE\.T|CONTAINS|CONTAINSROW|CONTAINSSTRING|CONTAINSSTRINGEXACT|CONVERT|COS|COSH|COT|COTH|COUNT|COUNTA|COUNTAX|COUNTBLANK|COUNTROWS|COUNTX|CROSSFILTER|CROSSJOIN|CURRENCY|CURRENTGROUP|CUSTOMDATA|DATATABLE|DATE|DATEADD|DATEDIFF|DATESBETWEEN|DATESINPERIOD|DATESMTD|DATESQTD|DATESYTD|DATEVALUE|DAY|DEGREES|DETAILROWS|DISTINCT|DISTINCTCOUNT|DISTINCTCOUNTNOBLANK|DIVIDE|EARLIER|EARLIEST|EDATE|ENDOFMONTH|ENDOFQUARTER|ENDOFYEAR|EOMONTH|ERROR|EVEN|EXACT|EXCEPT|EXP|EXPON\.DIST|FACT|FALSE|FILTER|FILTERS|FIND|FIRSTDATE|FIRSTNONBLANK|FIRSTNONBLANKVALUE|FIXED|FLOOR|FORMAT|GCD|GENERATE|GENERATEALL|GENERATESERIES|GEOMEAN|GEOMEANX|GROUPBY|HASONEFILTER|HASONEVALUE|HOUR|IF|IF\.EAGER|IFERROR|IGNORE|INT|INTERSECT|ISBLANK|ISCROSSFILTERED|ISEMPTY|ISERROR|ISEVEN|ISFILTERED|ISINSCOPE|ISLOGICAL|ISNONTEXT|ISNUMBER|ISO\.CEILING|ISODD|ISONORAFTER|ISSELECTEDMEASURE|ISSUBTOTAL|ISTEXT|KEEPFILTERS|KEYWORDMATCH|LASTDATE|LASTNONBLANK|LASTNONBLANKVALUE|LCM|LEFT|LEN|LN|LOG|LOG10|LOOKUPVALUE|LOWER|MAX|MAXA|MAXX|MEDIAN|MEDIANX|MID|MIN|MINA|MINUTE|MINX|MOD|MONTH|MROUND|NATURALINNERJOIN|NATURALLEFTOUTERJOIN|NEXTDAY|NEXTMONTH|NEXTQUARTER|NEXTYEAR|NONVISUAL|NORM\.DIST|NORM\.INV|NORM\.S\.DIST|NORM\.S\.INV|NOT|NOW|ODD|OPENINGBALANCEMONTH|OPENINGBALANCEQUARTER|OPENINGBALANCEYEAR|OR|PARALLELPERIOD|PATH|PATHCONTAINS|PATHITEM|PATHITEMREVERSE|PATHLENGTH|PERCENTILE\.EXC|PERCENTILE\.INC|PERCENTILEX\.EXC|PERCENTILEX\.INC|PERMUT|PI|POISSON\.DIST|POWER|PREVIOUSDAY|PREVIOUSMONTH|PREVIOUSQUARTER|PREVIOUSYEAR|PRODUCT|PRODUCTX|QUARTER|QUOTIENT|RADIANS|RAND|RANDBETWEEN|RANK\.EQ|RANKX|RELATED|RELATEDTABLE|REMOVEFILTERS|REPLACE|REPT|RIGHT|ROLLUP|ROLLUPADDISSUBTOTAL|ROLLUPGROUP|ROLLUPISSUBTOTAL|ROUND|ROUNDDOWN|ROUNDUP|ROW|SAMEPERIODLASTYEAR|SAMPLE|SEARCH|SECOND|SELECTCOLUMNS|SELECTEDMEASURE|SELECTEDMEASUREFORMATSTRING|SELECTEDMEASURENAME|SELECTEDVALUE|SIGN|SIN|SINH|SQRT|SQRTPI|STARTOFMONTH|STARTOFQUARTER|STARTOFYEAR|STDEV\.P|STDEV\.S|STDEVX\.P|STDEVX\.S|SUBSTITUTE|SUBSTITUTEWITHINDEX|SUM|SUMMARIZE|SUMMARIZECOLUMNS|SUMX|SWITCH|T\.DIST|T\.DIST\.2T|T\.DIST\.RT|T\.INV|T\.INV\.2T|TAN|TANH|TIME|TIMEVALUE|TODAY|TOPN|TOPNPERLEVEL|TOPNSKIP|TOTALMTD|TOTALQTD|TOTALYTD|TREATAS|TRIM|TRUE|TRUNC|UNICHAR|UNICODE|UNION|UPPER|USERELATIONSHIP|USERNAME|USEROBJECTID|USERPRINCIPALNAME|UTCNOW|UTCTODAY|VALUE|VALUES|VAR\.P|VAR\.S|VARX\.P|VARX\.S|WEEKDAY|WEEKNUM|XIRR|XNPV|YEAR|YEARFRAC)(?=\s*\()/i,keyword:/\b(?:DEFINE|EVALUATE|MEASURE|ORDER\s+BY|RETURN|VAR|START\s+AT|ASC|DESC)\b/i,boolean:{pattern:/\b(?:FALSE|NULL|TRUE)\b/i,alias:"constant"},number:/\b\d+(?:\.\d*)?|\B\.\d+\b/,operator:/:=|[-+*\/=^]|&&?|\|\||<(?:=>?|<|>)?|>[>=]?|\b(?:IN|NOT)\b/i,punctuation:/[;\[\](){}`,.]/}}return fd}var gd,ik;function XU(){if(ik)return gd;ik=1,gd=e,e.displayName="dhall",e.aliases=[];function e(t){t.languages.dhall={comment:/--.*|\{-(?:[^-{]|-(?!\})|\{(?!-)|\{-(?:[^-{]|-(?!\})|\{(?!-))*-\})*-\}/,string:{pattern:/"(?:[^"\\]|\\.)*"|''(?:[^']|'(?!')|'''|''\$\{)*''(?!'|\$)/,greedy:!0,inside:{interpolation:{pattern:/\$\{[^{}]*\}/,inside:{expression:{pattern:/(^\$\{)[\s\S]+(?=\}$)/,lookbehind:!0,alias:"language-dhall",inside:null},punctuation:/\$\{|\}/}}}},label:{pattern:/`[^`]*`/,greedy:!0},url:{pattern:/\bhttps?:\/\/[\w.:%!$&'*+;=@~-]+(?:\/[\w.:%!$&'*+;=@~-]*)*(?:\?[/?\w.:%!$&'*+;=@~-]*)?/,greedy:!0},env:{pattern:/\benv:(?:(?!\d)\w+|"(?:[^"\\=]|\\.)*")/,greedy:!0,inside:{function:/^env/,operator:/^:/,variable:/[\s\S]+/}},hash:{pattern:/\bsha256:[\da-fA-F]{64}\b/,inside:{function:/sha256/,operator:/:/,number:/[\da-fA-F]{64}/}},keyword:/\b(?:as|assert|else|forall|if|in|let|merge|missing|then|toMap|using|with)\b|\u2200/,builtin:/\b(?:None|Some)\b/,boolean:/\b(?:False|True)\b/,number:/\bNaN\b|-?\bInfinity\b|[+-]?\b(?:0x[\da-fA-F]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?)\b/,operator:/\/\\|\/\/\\\\|&&|\|\||===|[!=]=|\/\/|->|\+\+|::|[+*#@=:?<>|\\\u2227\u2a53\u2261\u2afd\u03bb\u2192]/,punctuation:/\.\.|[{}\[\](),./]/,"class-name":/\b[A-Z]\w*\b/},t.languages.dhall.string.inside.interpolation.inside.expression.inside=t.languages.dhall}return gd}var md,ok;function QU(){if(ok)return md;ok=1,md=e,e.displayName="diff",e.aliases=[];function e(t){(function(n){n.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d.*$/m]};var i={"deleted-sign":"-","deleted-arrow":"<","inserted-sign":"+","inserted-arrow":">",unchanged:" ",diff:"!"};Object.keys(i).forEach(function(o){var l=i[o],u=[];/^\w+$/.test(o)||u.push(/\w+/.exec(o)[0]),o==="diff"&&u.push("bold"),n.languages.diff[o]={pattern:RegExp("^(?:["+l+`].*(?:\r +`)};if(Y===0){var Z=m.slice(S+1,E).concat(rs({children:[de],className:w.properties.className})),H=T(Z,J);h.push(H)}else if(Y===j.length-1){var te=m[E+1]&&m[E+1].children&&m[E+1].children[0],ue={type:"text",value:"".concat(M)};if(te){var q=rs({children:[ue],className:w.properties.className});m.splice(E+1,0,q)}else{var Q=[ue],x=T(Q,J,w.properties.className);h.push(x)}}else{var D=[de],$=T(D,J,w.properties.className);h.push($)}}),S=E}E++};E4&&v.slice(0,4)===i&&o.test(E)&&(E.charAt(4)==="-"?k=p(E):E=f(E),T=t),new T(k,E))}function p(S){var E=S.slice(5).replace(l,h);return i+E.charAt(0).toUpperCase()+E.slice(1)}function f(S){var E=S.slice(4);return l.test(E)?S:(E=E.replace(u,m),E.charAt(0)!=="-"&&(E="-"+E),i+E)}function m(S){return"-"+S.toLowerCase()}function h(S){return S.charAt(1).toUpperCase()}return Vu}var Yu,PS;function PM(){if(PS)return Yu;PS=1,Yu=t;var e=/[#.]/g;function t(n,i){for(var o=n||"",l=i||"div",u={},c=0,p,f,m;c=48&&n<=57}return Qu}var Ju,GS;function qP(){if(GS)return Ju;GS=1,Ju=e;function e(t){var n=typeof t=="string"?t.charCodeAt(0):t;return n>=97&&n<=102||n>=65&&n<=70||n>=48&&n<=57}return Ju}var ec,HS;function GP(){if(HS)return ec;HS=1,ec=e;function e(t){var n=typeof t=="string"?t.charCodeAt(0):t;return n>=97&&n<=122||n>=65&&n<=90}return ec}var tc,WS;function HP(){if(WS)return tc;WS=1;var e=GP(),t=QA();tc=n;function n(i){return e(i)||t(i)}return tc}var nc,VS;function WP(){if(VS)return nc;VS=1;var e,t=59;nc=n;function n(i){var o="&"+i+";",l;return e=e||document.createElement("i"),e.innerHTML=o,l=e.textContent,l.charCodeAt(l.length-1)===t&&i!=="semi"||l===o?!1:l}return nc}var rc,YS;function VP(){if(YS)return rc;YS=1;var e=zP,t=$P,n=QA(),i=qP(),o=HP(),l=WP();rc=Q;var u={}.hasOwnProperty,c=String.fromCharCode,p=Function.prototype,f={warning:null,reference:null,text:null,warningContext:null,referenceContext:null,textContext:null,position:{},additional:null,attribute:!1,nonTerminated:!0},m=9,h=10,S=12,E=32,v=38,k=59,T=60,N=61,R=35,A=88,O=120,L=65533,w="named",B="hexadecimal",W="decimal",j={};j[B]=16,j[W]=10;var M={};M[w]=o,M[W]=n,M[B]=i;var Y=1,J=2,de=3,Z=4,H=5,te=6,ue=7,q={};q[Y]="Named character references must be terminated by a semicolon",q[J]="Numeric character references must be terminated by a semicolon",q[de]="Named character references cannot be empty",q[Z]="Numeric character references cannot be empty",q[H]="Named character references must be known",q[te]="Numeric character references cannot be disallowed",q[ue]="Numeric character references cannot be outside the permissible Unicode range";function Q(C,ae){var pe={},fe,Se;ae||(ae={});for(Se in f)fe=ae[Se],pe[Se]=fe??f[Se];return(pe.position.indent||pe.position.start)&&(pe.indent=pe.position.indent||[],pe.position=pe.position.start),x(C,pe)}function x(C,ae){var pe=ae.additional,fe=ae.nonTerminated,Se=ae.text,ke=ae.reference,X=ae.warning,he=ae.textContext,Ie=ae.referenceContext,Qe=ae.warningContext,Ce=ae.position,$e=ae.indent||[],pt=C.length,tt=0,Wt=-1,Ct=Ce.column||1,kn=Ce.line||1,kt="",It=[],Mt,ft,_t,bt,K,ee,ge,_e,Ne,We,nt,yt,xt,rt,Ke,gt,st,Ft,Je;for(typeof pe=="string"&&(pe=pe.charCodeAt(0)),gt=Vt(),_e=X?_n:p,tt--,pt++;++tt65535&&(ee-=65536,We+=c(ee>>>10|55296),ee=56320|ee&1023),ee=We+c(ee))):rt!==w&&_e(Z,Ft)),ee?($n(),gt=Vt(),tt=Je-1,Ct+=Je-xt+1,It.push(ee),st=Vt(),st.offset++,ke&&ke.call(Ie,ee,{start:gt,end:st},C.slice(xt-1,Je)),gt=st):(bt=C.slice(xt-1,Je),kt+=bt,Ct+=bt.length,tt=Je-1)}else K===10&&(kn++,Wt++,Ct=0),K===K?(kt+=c(K),Ct++):$n();return It.join("");function Vt(){return{line:kn,column:Ct,offset:tt+(Ce.offset||0)}}function _n(Ar,Rr){var rr=Vt();rr.column+=Rr,rr.offset+=Rr,X.call(Qe,q[Ar],rr,Ar)}function $n(){kt&&(It.push(kt),Se&&Se.call(he,kt,{start:gt,end:Vt()}),kt="")}}function D(C){return C>=55296&&C<=57343||C>1114111}function $(C){return C>=1&&C<=8||C===11||C>=13&&C<=31||C>=127&&C<=159||C>=64976&&C<=65007||(C&65535)===65535||(C&65535)===65534}return rc}var ac={exports:{}},KS;function YP(){return KS||(KS=1,(function(e){var t=typeof window<"u"?window:typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope?self:{};var n=(function(i){var o=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,l=0,u={},c={manual:i.Prism&&i.Prism.manual,disableWorkerMessageHandler:i.Prism&&i.Prism.disableWorkerMessageHandler,util:{encode:function R(A){return A instanceof p?new p(A.type,R(A.content),A.alias):Array.isArray(A)?A.map(R):A.replace(/&/g,"&").replace(/"u")return null;if("currentScript"in document)return document.currentScript;try{throw new Error}catch(L){var R=(/at [^(\r\n]*\((.*):[^:]+:[^:]+\)$/i.exec(L.stack)||[])[1];if(R){var A=document.getElementsByTagName("script");for(var O in A)if(A[O].src==R)return A[O]}return null}},isActive:function(R,A,O){for(var L="no-"+A;R;){var w=R.classList;if(w.contains(A))return!0;if(w.contains(L))return!1;R=R.parentElement}return!!O}},languages:{plain:u,plaintext:u,text:u,txt:u,extend:function(R,A){var O=c.util.clone(c.languages[R]);for(var L in A)O[L]=A[L];return O},insertBefore:function(R,A,O,L){L=L||c.languages;var w=L[R],B={};for(var W in w)if(w.hasOwnProperty(W)){if(W==A)for(var j in O)O.hasOwnProperty(j)&&(B[j]=O[j]);O.hasOwnProperty(W)||(B[W]=w[W])}var M=L[R];return L[R]=B,c.languages.DFS(c.languages,function(Y,J){J===M&&Y!=R&&(this[Y]=B)}),B},DFS:function R(A,O,L,w){w=w||{};var B=c.util.objId;for(var W in A)if(A.hasOwnProperty(W)){O.call(A,W,A[W],L||W);var j=A[W],M=c.util.type(j);M==="Object"&&!w[B(j)]?(w[B(j)]=!0,R(j,O,null,w)):M==="Array"&&!w[B(j)]&&(w[B(j)]=!0,R(j,O,W,w))}}},plugins:{},highlightAll:function(R,A){c.highlightAllUnder(document,R,A)},highlightAllUnder:function(R,A,O){var L={callback:O,container:R,selector:'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'};c.hooks.run("before-highlightall",L),L.elements=Array.prototype.slice.apply(L.container.querySelectorAll(L.selector)),c.hooks.run("before-all-elements-highlight",L);for(var w=0,B;B=L.elements[w++];)c.highlightElement(B,A===!0,L.callback)},highlightElement:function(R,A,O){var L=c.util.getLanguage(R),w=c.languages[L];c.util.setLanguage(R,L);var B=R.parentElement;B&&B.nodeName.toLowerCase()==="pre"&&c.util.setLanguage(B,L);var W=R.textContent,j={element:R,language:L,grammar:w,code:W};function M(J){j.highlightedCode=J,c.hooks.run("before-insert",j),j.element.innerHTML=j.highlightedCode,c.hooks.run("after-highlight",j),c.hooks.run("complete",j),O&&O.call(j.element)}if(c.hooks.run("before-sanity-check",j),B=j.element.parentElement,B&&B.nodeName.toLowerCase()==="pre"&&!B.hasAttribute("tabindex")&&B.setAttribute("tabindex","0"),!j.code){c.hooks.run("complete",j),O&&O.call(j.element);return}if(c.hooks.run("before-highlight",j),!j.grammar){M(c.util.encode(j.code));return}if(A&&i.Worker){var Y=new Worker(c.filename);Y.onmessage=function(J){M(J.data)},Y.postMessage(JSON.stringify({language:j.language,code:j.code,immediateClose:!0}))}else M(c.highlight(j.code,j.grammar,j.language))},highlight:function(R,A,O){var L={code:R,grammar:A,language:O};if(c.hooks.run("before-tokenize",L),!L.grammar)throw new Error('The language "'+L.language+'" has no grammar.');return L.tokens=c.tokenize(L.code,L.grammar),c.hooks.run("after-tokenize",L),p.stringify(c.util.encode(L.tokens),L.language)},tokenize:function(R,A){var O=A.rest;if(O){for(var L in O)A[L]=O[L];delete A.rest}var w=new h;return S(w,w.head,R),m(R,w,A,w.head,0),v(w)},hooks:{all:{},add:function(R,A){var O=c.hooks.all;O[R]=O[R]||[],O[R].push(A)},run:function(R,A){var O=c.hooks.all[R];if(!(!O||!O.length))for(var L=0,w;w=O[L++];)w(A)}},Token:p};i.Prism=c;function p(R,A,O,L){this.type=R,this.content=A,this.alias=O,this.length=(L||"").length|0}p.stringify=function R(A,O){if(typeof A=="string")return A;if(Array.isArray(A)){var L="";return A.forEach(function(M){L+=R(M,O)}),L}var w={type:A.type,content:R(A.content,O),tag:"span",classes:["token",A.type],attributes:{},language:O},B=A.alias;B&&(Array.isArray(B)?Array.prototype.push.apply(w.classes,B):w.classes.push(B)),c.hooks.run("wrap",w);var W="";for(var j in w.attributes)W+=" "+j+'="'+(w.attributes[j]||"").replace(/"/g,""")+'"';return"<"+w.tag+' class="'+w.classes.join(" ")+'"'+W+">"+w.content+""};function f(R,A,O,L){R.lastIndex=A;var w=R.exec(O);if(w&&L&&w[1]){var B=w[1].length;w.index+=B,w[0]=w[0].slice(B)}return w}function m(R,A,O,L,w,B){for(var W in O)if(!(!O.hasOwnProperty(W)||!O[W])){var j=O[W];j=Array.isArray(j)?j:[j];for(var M=0;M=B.reach);Q+=q.value.length,q=q.next){var x=q.value;if(A.length>R.length)return;if(!(x instanceof p)){var D=1,$;if(Z){if($=f(ue,Q,R,de),!$||$.index>=R.length)break;var fe=$.index,C=$.index+$[0].length,ae=Q;for(ae+=q.value.length;fe>=ae;)q=q.next,ae+=q.value.length;if(ae-=q.value.length,Q=ae,q.value instanceof p)continue;for(var pe=q;pe!==A.tail&&(aeB.reach&&(B.reach=he);var Ie=q.prev;ke&&(Ie=S(A,Ie,ke),Q+=ke.length),E(A,Ie,D);var Qe=new p(W,J?c.tokenize(Se,J):Se,H,Se);if(q=S(A,Ie,Qe),X&&S(A,q,X),D>1){var Ce={cause:W+","+M,reach:he};m(R,A,O,q.prev,Q,Ce),B&&Ce.reach>B.reach&&(B.reach=Ce.reach)}}}}}}function h(){var R={value:null,prev:null,next:null},A={value:null,prev:R,next:null};R.next=A,this.head=R,this.tail=A,this.length=0}function S(R,A,O){var L=A.next,w={value:O,prev:A,next:L};return A.next=w,L.prev=w,R.length++,w}function E(R,A,O){for(var L=A.next,w=0;w/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern://i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},t.languages.markup.tag.inside["attr-value"].inside.entity=t.languages.markup.entity,t.languages.markup.doctype.inside["internal-subset"].inside=t.languages.markup,t.hooks.add("wrap",function(n){n.type==="entity"&&(n.attributes.title=n.content.value.replace(/&/,"&"))}),Object.defineProperty(t.languages.markup.tag,"addInlined",{value:function(i,o){var l={};l["language-"+o]={pattern:/(^$)/i,lookbehind:!0,inside:t.languages[o]},l.cdata=/^$/i;var u={"included-cdata":{pattern://i,inside:l}};u["language-"+o]={pattern:/[\s\S]+/,inside:t.languages[o]};var c={};c[i]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,function(){return i}),"i"),lookbehind:!0,greedy:!0,inside:u},t.languages.insertBefore("markup","cdata",c)}}),Object.defineProperty(t.languages.markup.tag,"addAttribute",{value:function(n,i){t.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+n+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[i,"language-"+i],inside:t.languages[i]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),t.languages.html=t.languages.markup,t.languages.mathml=t.languages.markup,t.languages.svg=t.languages.markup,t.languages.xml=t.languages.extend("markup",{}),t.languages.ssml=t.languages.xml,t.languages.atom=t.languages.xml,t.languages.rss=t.languages.xml}return ic}var oc,XS;function ZP(){if(XS)return oc;XS=1,oc=e,e.displayName="css",e.aliases=[];function e(t){(function(n){var i=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;n.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+i.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+i.source+"$"),alias:"url"}}},selector:{pattern:RegExp(`(^|[{}\\s])[^{}\\s](?:[^{};"'\\s]|\\s+(?![\\s{])|`+i.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:i,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},n.languages.css.atrule.inside.rest=n.languages.css;var o=n.languages.markup;o&&(o.tag.addInlined("style","css"),o.tag.addAttribute("style","css"))})(t)}return oc}var sc,QS;function XP(){if(QS)return sc;QS=1,sc=e,e.displayName="clike",e.aliases=[];function e(t){t.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/}}return sc}var lc,JS;function QP(){if(JS)return lc;JS=1,lc=e,e.displayName="javascript",e.aliases=["js"];function e(t){t.languages.javascript=t.languages.extend("clike",{"class-name":[t.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+(/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source)+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),t.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,t.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:t.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:t.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:t.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:t.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:t.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),t.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:t.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),t.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),t.languages.markup&&(t.languages.markup.tag.addInlined("script","javascript"),t.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),t.languages.js=t.languages.javascript}return lc}var uc,ev;function JP(){if(ev)return uc;ev=1;var e=typeof globalThis=="object"?globalThis:typeof self=="object"?self:typeof window=="object"?window:typeof is=="object"?is:{},t=L();e.Prism={manual:!0,disableWorkerMessageHandler:!0};var n=$M(),i=VP(),o=YP(),l=KP(),u=ZP(),c=XP(),p=QP();t();var f={}.hasOwnProperty;function m(){}m.prototype=o;var h=new m;uc=h,h.highlight=v,h.register=S,h.alias=E,h.registered=k,h.listLanguages=T,S(l),S(u),S(c),S(p),h.util.encode=A,h.Token.stringify=N;function S(w){if(typeof w!="function"||!w.displayName)throw new Error("Expected `function` for `grammar`, got `"+w+"`");h.languages[w.displayName]===void 0&&w(h)}function E(w,B){var W=h.languages,j=w,M,Y,J,de;B&&(j={},j[w]=B);for(M in j)for(Y=j[M],Y=typeof Y=="string"?[Y]:Y,J=Y.length,de=-1;++de code[class*="language-"]':{background:"#f5f2f0",padding:".1em",borderRadius:".3em",whiteSpace:"normal"},comment:{color:"slategray"},prolog:{color:"slategray"},doctype:{color:"slategray"},cdata:{color:"slategray"},punctuation:{color:"#999"},namespace:{Opacity:".7"},property:{color:"#905"},tag:{color:"#905"},boolean:{color:"#905"},number:{color:"#905"},constant:{color:"#905"},symbol:{color:"#905"},deleted:{color:"#905"},selector:{color:"#690"},"attr-name":{color:"#690"},string:{color:"#690"},char:{color:"#690"},builtin:{color:"#690"},inserted:{color:"#690"},operator:{color:"#9a6e3a",background:"hsla(0, 0%, 100%, .5)"},entity:{color:"#9a6e3a",background:"hsla(0, 0%, 100%, .5)",cursor:"help"},url:{color:"#9a6e3a",background:"hsla(0, 0%, 100%, .5)"},".language-css .token.string":{color:"#9a6e3a",background:"hsla(0, 0%, 100%, .5)"},".style .token.string":{color:"#9a6e3a",background:"hsla(0, 0%, 100%, .5)"},atrule:{color:"#07a"},"attr-value":{color:"#07a"},keyword:{color:"#07a"},function:{color:"#DD4A68"},"class-name":{color:"#DD4A68"},regex:{color:"#e90"},important:{color:"#e90",fontWeight:"bold"},variable:{color:"#e90"},bold:{fontWeight:"bold"},italic:{fontStyle:"italic"}};var cc,tv;function tU(){if(tv)return cc;tv=1,cc=e,e.displayName="abap",e.aliases=[];function e(t){t.languages.abap={comment:/^\*.*/m,string:/(`|')(?:\\.|(?!\1)[^\\\r\n])*\1/,"string-template":{pattern:/([|}])(?:\\.|[^\\|{\r\n])*(?=[|{])/,lookbehind:!0,alias:"string"},"eol-comment":{pattern:/(^|\s)".*/m,lookbehind:!0,alias:"comment"},keyword:{pattern:/(\s|\.|^)(?:SCIENTIFIC_WITH_LEADING_ZERO|SCALE_PRESERVING_SCIENTIFIC|RMC_COMMUNICATION_FAILURE|END-ENHANCEMENT-SECTION|MULTIPLY-CORRESPONDING|SUBTRACT-CORRESPONDING|VERIFICATION-MESSAGE|DIVIDE-CORRESPONDING|ENHANCEMENT-SECTION|CURRENCY_CONVERSION|RMC_SYSTEM_FAILURE|START-OF-SELECTION|MOVE-CORRESPONDING|RMC_INVALID_STATUS|CUSTOMER-FUNCTION|END-OF-DEFINITION|ENHANCEMENT-POINT|SYSTEM-EXCEPTIONS|ADD-CORRESPONDING|SCALE_PRESERVING|SELECTION-SCREEN|CURSOR-SELECTION|END-OF-SELECTION|LOAD-OF-PROGRAM|SCROLL-BOUNDARY|SELECTION-TABLE|EXCEPTION-TABLE|IMPLEMENTATIONS|PARAMETER-TABLE|RIGHT-JUSTIFIED|UNIT_CONVERSION|AUTHORITY-CHECK|LIST-PROCESSING|SIGN_AS_POSTFIX|COL_BACKGROUND|IMPLEMENTATION|INTERFACE-POOL|TRANSFORMATION|IDENTIFICATION|ENDENHANCEMENT|LINE-SELECTION|INITIALIZATION|LEFT-JUSTIFIED|SELECT-OPTIONS|SELECTION-SETS|COMMUNICATION|CORRESPONDING|DECIMAL_SHIFT|PRINT-CONTROL|VALUE-REQUEST|CHAIN-REQUEST|FUNCTION-POOL|FIELD-SYMBOLS|FUNCTIONALITY|INVERTED-DATE|SELECTION-SET|CLASS-METHODS|OUTPUT-LENGTH|CLASS-CODING|COL_NEGATIVE|ERRORMESSAGE|FIELD-GROUPS|HELP-REQUEST|NO-EXTENSION|NO-TOPOFPAGE|REDEFINITION|DISPLAY-MODE|ENDINTERFACE|EXIT-COMMAND|FIELD-SYMBOL|NO-SCROLLING|SHORTDUMP-ID|ACCESSPOLICY|CLASS-EVENTS|COL_POSITIVE|DECLARATIONS|ENHANCEMENTS|FILTER-TABLE|SWITCHSTATES|SYNTAX-CHECK|TRANSPORTING|ASYNCHRONOUS|SYNTAX-TRACE|TOKENIZATION|USER-COMMAND|WITH-HEADING|ABAP-SOURCE|BREAK-POINT|CHAIN-INPUT|COMPRESSION|FIXED-POINT|NEW-SECTION|NON-UNICODE|OCCURRENCES|RESPONSIBLE|SYSTEM-CALL|TRACE-TABLE|ABBREVIATED|CHAR-TO-HEX|END-OF-FILE|ENDFUNCTION|ENVIRONMENT|ASSOCIATION|COL_HEADING|EDITOR-CALL|END-OF-PAGE|ENGINEERING|IMPLEMENTED|INTENSIFIED|RADIOBUTTON|SYSTEM-EXIT|TOP-OF-PAGE|TRANSACTION|APPLICATION|CONCATENATE|DESTINATION|ENHANCEMENT|IMMEDIATELY|NO-GROUPING|PRECOMPILED|REPLACEMENT|TITLE-LINES|ACTIVATION|BYTE-ORDER|CLASS-POOL|CONNECTION|CONVERSION|DEFINITION|DEPARTMENT|EXPIRATION|INHERITING|MESSAGE-ID|NO-HEADING|PERFORMING|QUEUE-ONLY|RIGHTSPACE|SCIENTIFIC|STATUSINFO|STRUCTURES|SYNCPOINTS|WITH-TITLE|ATTRIBUTES|BOUNDARIES|CLASS-DATA|COL_NORMAL|DD\/MM\/YYYY|DESCENDING|INTERFACES|LINE-COUNT|MM\/DD\/YYYY|NON-UNIQUE|PRESERVING|SELECTIONS|STATEMENTS|SUBROUTINE|TRUNCATION|TYPE-POOLS|ARITHMETIC|BACKGROUND|ENDPROVIDE|EXCEPTIONS|IDENTIFIER|INDEX-LINE|OBLIGATORY|PARAMETERS|PERCENTAGE|PUSHBUTTON|RESOLUTION|COMPONENTS|DEALLOCATE|DISCONNECT|DUPLICATES|FIRST-LINE|HEAD-LINES|NO-DISPLAY|OCCURRENCE|RESPECTING|RETURNCODE|SUBMATCHES|TRACE-FILE|ASCENDING|BYPASSING|ENDMODULE|EXCEPTION|EXCLUDING|EXPORTING|INCREMENT|MATCHCODE|PARAMETER|PARTIALLY|PREFERRED|REFERENCE|REPLACING|RETURNING|SELECTION|SEPARATED|SPECIFIED|STATEMENT|TIMESTAMP|TYPE-POOL|ACCEPTING|APPENDAGE|ASSIGNING|COL_GROUP|COMPARING|CONSTANTS|DANGEROUS|IMPORTING|INSTANCES|LEFTSPACE|LOG-POINT|QUICKINFO|READ-ONLY|SCROLLING|SQLSCRIPT|STEP-LOOP|TOP-LINES|TRANSLATE|APPENDING|AUTHORITY|CHARACTER|COMPONENT|CONDITION|DIRECTORY|DUPLICATE|MESSAGING|RECEIVING|SUBSCREEN|ACCORDING|COL_TOTAL|END-LINES|ENDMETHOD|ENDSELECT|EXPANDING|EXTENSION|INCLUDING|INFOTYPES|INTERFACE|INTERVALS|LINE-SIZE|PF-STATUS|PROCEDURE|PROTECTED|REQUESTED|RESUMABLE|RIGHTPLUS|SAP-SPOOL|SECONDARY|STRUCTURE|SUBSTRING|TABLEVIEW|NUMOFCHAR|ADJACENT|ANALYSIS|ASSIGNED|BACKWARD|CHANNELS|CHECKBOX|CONTINUE|CRITICAL|DATAINFO|DD\/MM\/YY|DURATION|ENCODING|ENDCLASS|FUNCTION|LEFTPLUS|LINEFEED|MM\/DD\/YY|OVERFLOW|RECEIVED|SKIPPING|SORTABLE|STANDARD|SUBTRACT|SUPPRESS|TABSTRIP|TITLEBAR|TRUNCATE|UNASSIGN|WHENEVER|ANALYZER|COALESCE|COMMENTS|CONDENSE|DECIMALS|DEFERRED|ENDWHILE|EXPLICIT|KEYWORDS|MESSAGES|POSITION|PRIORITY|RECEIVER|RENAMING|TIMEZONE|TRAILING|ALLOCATE|CENTERED|CIRCULAR|CONTROLS|CURRENCY|DELETING|DESCRIBE|DISTANCE|ENDCATCH|EXPONENT|EXTENDED|GENERATE|IGNORING|INCLUDES|INTERNAL|MAJOR-ID|MODIFIER|NEW-LINE|OPTIONAL|PROPERTY|ROLLBACK|STARTING|SUPPLIED|ABSTRACT|CHANGING|CONTEXTS|CREATING|CUSTOMER|DATABASE|DAYLIGHT|DEFINING|DISTINCT|DIVISION|ENABLING|ENDCHAIN|ESCAPING|HARMLESS|IMPLICIT|INACTIVE|LANGUAGE|MINOR-ID|MULTIPLY|NEW-PAGE|NO-TITLE|POS_HIGH|SEPARATE|TEXTPOOL|TRANSFER|SELECTOR|DBMAXLEN|ITERATOR|ARCHIVE|BIT-XOR|BYTE-CO|COLLECT|COMMENT|CURRENT|DEFAULT|DISPLAY|ENDFORM|EXTRACT|LEADING|LISTBOX|LOCATOR|MEMBERS|METHODS|NESTING|POS_LOW|PROCESS|PROVIDE|RAISING|RESERVE|SECONDS|SUMMARY|VISIBLE|BETWEEN|BIT-AND|BYTE-CS|CLEANUP|COMPUTE|CONTROL|CONVERT|DATASET|ENDCASE|FORWARD|HEADERS|HOTSPOT|INCLUDE|INVERSE|KEEPING|NO-ZERO|OBJECTS|OVERLAY|PADDING|PATTERN|PROGRAM|REFRESH|SECTION|SUMMING|TESTING|VERSION|WINDOWS|WITHOUT|BIT-NOT|BYTE-CA|BYTE-NA|CASTING|CONTEXT|COUNTRY|DYNAMIC|ENABLED|ENDLOOP|EXECUTE|FRIENDS|HANDLER|HEADING|INITIAL|\*-INPUT|LOGFILE|MAXIMUM|MINIMUM|NO-GAPS|NO-SIGN|PRAGMAS|PRIMARY|PRIVATE|REDUCED|REPLACE|REQUEST|RESULTS|UNICODE|WARNING|ALIASES|BYTE-CN|BYTE-NS|CALLING|COL_KEY|COLUMNS|CONNECT|ENDEXEC|ENTRIES|EXCLUDE|FILTERS|FURTHER|HELP-ID|LOGICAL|MAPPING|MESSAGE|NAMETAB|OPTIONS|PACKAGE|PERFORM|RECEIVE|STATICS|VARYING|BINDING|CHARLEN|GREATER|XSTRLEN|ACCEPT|APPEND|DETAIL|ELSEIF|ENDING|ENDTRY|FORMAT|FRAMES|GIVING|HASHED|HEADER|IMPORT|INSERT|MARGIN|MODULE|NATIVE|OBJECT|OFFSET|REMOTE|RESUME|SAVING|SIMPLE|SUBMIT|TABBED|TOKENS|UNIQUE|UNPACK|UPDATE|WINDOW|YELLOW|ACTUAL|ASPECT|CENTER|CURSOR|DELETE|DIALOG|DIVIDE|DURING|ERRORS|EVENTS|EXTEND|FILTER|HANDLE|HAVING|IGNORE|LITTLE|MEMORY|NO-GAP|OCCURS|OPTION|PERSON|PLACES|PUBLIC|REDUCE|REPORT|RESULT|SINGLE|SORTED|SWITCH|SYNTAX|TARGET|VALUES|WRITER|ASSERT|BLOCKS|BOUNDS|BUFFER|CHANGE|COLUMN|COMMIT|CONCAT|COPIES|CREATE|DDMMYY|DEFINE|ENDIAN|ESCAPE|EXPAND|KERNEL|LAYOUT|LEGACY|LEVELS|MMDDYY|NUMBER|OUTPUT|RANGES|READER|RETURN|SCREEN|SEARCH|SELECT|SHARED|SOURCE|STABLE|STATIC|SUBKEY|SUFFIX|TABLES|UNWIND|YYMMDD|ASSIGN|BACKUP|BEFORE|BINARY|BIT-OR|BLANKS|CLIENT|CODING|COMMON|DEMAND|DYNPRO|EXCEPT|EXISTS|EXPORT|FIELDS|GLOBAL|GROUPS|LENGTH|LOCALE|MEDIUM|METHOD|MODIFY|NESTED|OTHERS|REJECT|SCROLL|SUPPLY|SYMBOL|ENDFOR|STRLEN|ALIGN|BEGIN|BOUND|ENDAT|ENTRY|EVENT|FINAL|FLUSH|GRANT|INNER|SHORT|USING|WRITE|AFTER|BLACK|BLOCK|CLOCK|COLOR|COUNT|DUMMY|EMPTY|ENDDO|ENDON|GREEN|INDEX|INOUT|LEAVE|LEVEL|LINES|MODIF|ORDER|OUTER|RANGE|RESET|RETRY|RIGHT|SMART|SPLIT|STYLE|TABLE|THROW|UNDER|UNTIL|UPPER|UTF-8|WHERE|ALIAS|BLANK|CLEAR|CLOSE|EXACT|FETCH|FIRST|FOUND|GROUP|LLANG|LOCAL|OTHER|REGEX|SPOOL|TITLE|TYPES|VALID|WHILE|ALPHA|BOXED|CATCH|CHAIN|CHECK|CLASS|COVER|ENDIF|EQUIV|FIELD|FLOOR|FRAME|INPUT|LOWER|MATCH|NODES|PAGES|PRINT|RAISE|ROUND|SHIFT|SPACE|SPOTS|STAMP|STATE|TASKS|TIMES|TRMAC|ULINE|UNION|VALUE|WIDTH|EQUAL|LOG10|TRUNC|BLOB|CASE|CEIL|CLOB|COND|EXIT|FILE|GAPS|HOLD|INCL|INTO|KEEP|KEYS|LAST|LINE|LONG|LPAD|MAIL|MODE|OPEN|PINK|READ|ROWS|TEST|THEN|ZERO|AREA|BACK|BADI|BYTE|CAST|EDIT|EXEC|FAIL|FIND|FKEQ|FONT|FREE|GKEQ|HIDE|INIT|ITNO|LATE|LOOP|MAIN|MARK|MOVE|NEXT|NULL|RISK|ROLE|UNIT|WAIT|ZONE|BASE|CALL|CODE|DATA|DATE|FKGE|GKGE|HIGH|KIND|LEFT|LIST|MASK|MESH|NAME|NODE|PACK|PAGE|POOL|SEND|SIGN|SIZE|SOME|STOP|TASK|TEXT|TIME|USER|VARY|WITH|WORD|BLUE|CONV|COPY|DEEP|ELSE|FORM|FROM|HINT|ICON|JOIN|LIKE|LOAD|ONLY|PART|SCAN|SKIP|SORT|TYPE|UNIX|VIEW|WHEN|WORK|ACOS|ASIN|ATAN|COSH|EACH|FRAC|LESS|RTTI|SINH|SQRT|TANH|AVG|BIT|DIV|ISO|LET|OUT|PAD|SQL|ALL|CI_|CPI|END|LOB|LPI|MAX|MIN|NEW|OLE|RUN|SET|\?TO|YES|ABS|ADD|AND|BIG|FOR|HDB|JOB|LOW|NOT|SAP|TRY|VIA|XML|ANY|GET|IDS|KEY|MOD|OFF|PUT|RAW|RED|REF|SUM|TAB|XSD|CNT|COS|EXP|LOG|SIN|TAN|XOR|AT|CO|CP|DO|GT|ID|IF|NS|OR|BT|CA|CS|GE|NA|NB|EQ|IN|LT|NE|NO|OF|ON|PF|TO|AS|BY|CN|IS|LE|NP|UP|E|I|M|O|Z|C|X)\b/i,lookbehind:!0},number:/\b\d+\b/,operator:{pattern:/(\s)(?:\*\*?|<[=>]?|>=?|\?=|[-+\/=])(?=\s)/,lookbehind:!0},"string-operator":{pattern:/(\s)&&?(?=\s)/,lookbehind:!0,alias:"keyword"},"token-operator":[{pattern:/(\w)(?:->?|=>|[~|{}])(?=\w)/,lookbehind:!0,alias:"punctuation"},{pattern:/[|{}]/,alias:"punctuation"}],punctuation:/[,.:()]/}}return cc}var dc,nv;function nU(){if(nv)return dc;nv=1,dc=e,e.displayName="abnf",e.aliases=[];function e(t){(function(n){var i="(?:ALPHA|BIT|CHAR|CR|CRLF|CTL|DIGIT|DQUOTE|HEXDIG|HTAB|LF|LWSP|OCTET|SP|VCHAR|WSP)";n.languages.abnf={comment:/;.*/,string:{pattern:/(?:%[is])?"[^"\n\r]*"/,greedy:!0,inside:{punctuation:/^%[is]/}},range:{pattern:/%(?:b[01]+-[01]+|d\d+-\d+|x[A-F\d]+-[A-F\d]+)/i,alias:"number"},terminal:{pattern:/%(?:b[01]+(?:\.[01]+)*|d\d+(?:\.\d+)*|x[A-F\d]+(?:\.[A-F\d]+)*)/i,alias:"number"},repetition:{pattern:/(^|[^\w-])(?:\d*\*\d*|\d+)/,lookbehind:!0,alias:"operator"},definition:{pattern:/(^[ \t]*)(?:[a-z][\w-]*|<[^<>\r\n]*>)(?=\s*=)/m,lookbehind:!0,alias:"keyword",inside:{punctuation:/<|>/}},"core-rule":{pattern:RegExp("(?:(^|[^<\\w-])"+i+"|<"+i+">)(?![\\w-])","i"),lookbehind:!0,alias:["rule","constant"],inside:{punctuation:/<|>/}},rule:{pattern:/(^|[^<\w-])[a-z][\w-]*|<[^<>\r\n]*>/i,lookbehind:!0,inside:{punctuation:/<|>/}},operator:/=\/?|\//,punctuation:/[()\[\]]/}})(t)}return dc}var pc,rv;function rU(){if(rv)return pc;rv=1,pc=e,e.displayName="actionscript",e.aliases=[];function e(t){t.languages.actionscript=t.languages.extend("javascript",{keyword:/\b(?:as|break|case|catch|class|const|default|delete|do|dynamic|each|else|extends|final|finally|for|function|get|if|implements|import|in|include|instanceof|interface|internal|is|namespace|native|new|null|override|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|use|var|void|while|with)\b/,operator:/\+\+|--|(?:[+\-*\/%^]|&&?|\|\|?|<>?>?|[!=]=?)=?|[~?@]/}),t.languages.actionscript["class-name"].alias="function",delete t.languages.actionscript.parameter,delete t.languages.actionscript["literal-property"],t.languages.markup&&t.languages.insertBefore("actionscript","string",{xml:{pattern:/(^|[^.])<\/?\w+(?:\s+[^\s>\/=]+=("|')(?:\\[\s\S]|(?!\2)[^\\])*\2)*\s*\/?>/,lookbehind:!0,inside:t.languages.markup}})}return pc}var fc,av;function aU(){if(av)return fc;av=1,fc=e,e.displayName="ada",e.aliases=[];function e(t){t.languages.ada={comment:/--.*/,string:/"(?:""|[^"\r\f\n])*"/,number:[{pattern:/\b\d(?:_?\d)*#[\dA-F](?:_?[\dA-F])*(?:\.[\dA-F](?:_?[\dA-F])*)?#(?:E[+-]?\d(?:_?\d)*)?/i},{pattern:/\b\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:E[+-]?\d(?:_?\d)*)?\b/i}],"attr-name":/\b'\w+/,keyword:/\b(?:abort|abs|abstract|accept|access|aliased|all|and|array|at|begin|body|case|constant|declare|delay|delta|digits|do|else|elsif|end|entry|exception|exit|for|function|generic|goto|if|in|interface|is|limited|loop|mod|new|not|null|of|others|out|overriding|package|pragma|private|procedure|protected|raise|range|record|rem|renames|requeue|return|reverse|select|separate|some|subtype|synchronized|tagged|task|terminate|then|type|until|use|when|while|with|xor)\b/i,boolean:/\b(?:false|true)\b/i,operator:/<[=>]?|>=?|=>?|:=|\/=?|\*\*?|[&+-]/,punctuation:/\.\.?|[,;():]/,char:/'.'/,variable:/\b[a-z](?:\w)*\b/i}}return fc}var gc,iv;function iU(){if(iv)return gc;iv=1,gc=e,e.displayName="agda",e.aliases=[];function e(t){(function(n){n.languages.agda={comment:/\{-[\s\S]*?(?:-\}|$)|--.*/,string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},punctuation:/[(){}⦃⦄.;@]/,"class-name":{pattern:/((?:data|record) +)\S+/,lookbehind:!0},function:{pattern:/(^[ \t]*)(?!\s)[^:\r\n]+(?=:)/m,lookbehind:!0},operator:{pattern:/(^\s*|\s)(?:[=|:∀→λ\\?_]|->)(?=\s)/,lookbehind:!0},keyword:/\b(?:Set|abstract|constructor|data|eta-equality|field|forall|hiding|import|in|inductive|infix|infixl|infixr|instance|let|macro|module|mutual|no-eta-equality|open|overlap|pattern|postulate|primitive|private|public|quote|quoteContext|quoteGoal|quoteTerm|record|renaming|rewrite|syntax|tactic|unquote|unquoteDecl|unquoteDef|using|variable|where|with)\b/}})(t)}return gc}var mc,ov;function oU(){if(ov)return mc;ov=1,mc=e,e.displayName="al",e.aliases=[];function e(t){t.languages.al={comment:/\/\/.*|\/\*[\s\S]*?\*\//,string:{pattern:/'(?:''|[^'\r\n])*'(?!')|"(?:""|[^"\r\n])*"(?!")/,greedy:!0},function:{pattern:/(\b(?:event|procedure|trigger)\s+|(?:^|[^.])\.\s*)[a-z_]\w*(?=\s*\()/i,lookbehind:!0},keyword:[/\b(?:array|asserterror|begin|break|case|do|downto|else|end|event|exit|for|foreach|function|if|implements|in|indataset|interface|internal|local|of|procedure|program|protected|repeat|runonclient|securityfiltering|suppressdispose|temporary|then|to|trigger|until|var|while|with|withevents)\b/i,/\b(?:action|actions|addafter|addbefore|addfirst|addlast|area|assembly|chartpart|codeunit|column|controladdin|cuegroup|customizes|dataitem|dataset|dotnet|elements|enum|enumextension|extends|field|fieldattribute|fieldelement|fieldgroup|fieldgroups|fields|filter|fixed|grid|group|key|keys|label|labels|layout|modify|moveafter|movebefore|movefirst|movelast|page|pagecustomization|pageextension|part|profile|query|repeater|report|requestpage|schema|separator|systempart|table|tableelement|tableextension|textattribute|textelement|type|usercontrol|value|xmlport)\b/i],number:/\b(?:0x[\da-f]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?)(?:F|LL?|U(?:LL?)?)?\b/i,boolean:/\b(?:false|true)\b/i,variable:/\b(?:Curr(?:FieldNo|Page|Report)|x?Rec|RequestOptionsPage)\b/,"class-name":/\b(?:automation|biginteger|bigtext|blob|boolean|byte|char|clienttype|code|completiontriggererrorlevel|connectiontype|database|dataclassification|datascope|date|dateformula|datetime|decimal|defaultlayout|dialog|dictionary|dotnetassembly|dotnettypedeclaration|duration|errorinfo|errortype|executioncontext|executionmode|fieldclass|fieldref|fieldtype|file|filterpagebuilder|guid|httpclient|httpcontent|httpheaders|httprequestmessage|httpresponsemessage|instream|integer|joker|jsonarray|jsonobject|jsontoken|jsonvalue|keyref|list|moduledependencyinfo|moduleinfo|none|notification|notificationscope|objecttype|option|outstream|pageresult|record|recordid|recordref|reportformat|securityfilter|sessionsettings|tableconnectiontype|tablefilter|testaction|testfield|testfilterfield|testpage|testpermissions|testrequestpage|text|textbuilder|textconst|textencoding|time|transactionmodel|transactiontype|variant|verbosity|version|view|views|webserviceactioncontext|webserviceactionresultcode|xmlattribute|xmlattributecollection|xmlcdata|xmlcomment|xmldeclaration|xmldocument|xmldocumenttype|xmlelement|xmlnamespacemanager|xmlnametable|xmlnode|xmlnodelist|xmlprocessinginstruction|xmlreadoptions|xmltext|xmlwriteoptions)\b/i,operator:/\.\.|:[=:]|[-+*/]=?|<>|[<>]=?|=|\b(?:and|div|mod|not|or|xor)\b/i,punctuation:/[()\[\]{}:.;,]/}}return mc}var hc,sv;function sU(){if(sv)return hc;sv=1,hc=e,e.displayName="antlr4",e.aliases=["g4"];function e(t){t.languages.antlr4={comment:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,string:{pattern:/'(?:\\.|[^\\'\r\n])*'/,greedy:!0},"character-class":{pattern:/\[(?:\\.|[^\\\]\r\n])*\]/,greedy:!0,alias:"regex",inside:{range:{pattern:/([^[]|(?:^|[^\\])(?:\\\\)*\\\[)-(?!\])/,lookbehind:!0,alias:"punctuation"},escape:/\\(?:u(?:[a-fA-F\d]{4}|\{[a-fA-F\d]+\})|[pP]\{[=\w-]+\}|[^\r\nupP])/,punctuation:/[\[\]]/}},action:{pattern:/\{(?:[^{}]|\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})*\})*\}/,greedy:!0,inside:{content:{pattern:/(\{)[\s\S]+(?=\})/,lookbehind:!0},punctuation:/[{}]/}},command:{pattern:/(->\s*(?!\s))(?:\s*(?:,\s*)?\b[a-z]\w*(?:\s*\([^()\r\n]*\))?)+(?=\s*;)/i,lookbehind:!0,inside:{function:/\b\w+(?=\s*(?:[,(]|$))/,punctuation:/[,()]/}},annotation:{pattern:/@\w+(?:::\w+)*/,alias:"keyword"},label:{pattern:/#[ \t]*\w+/,alias:"punctuation"},keyword:/\b(?:catch|channels|finally|fragment|grammar|import|lexer|locals|mode|options|parser|returns|throws|tokens)\b/,definition:[{pattern:/\b[a-z]\w*(?=\s*:)/,alias:["rule","class-name"]},{pattern:/\b[A-Z]\w*(?=\s*:)/,alias:["token","constant"]}],constant:/\b[A-Z][A-Z_]*\b/,operator:/\.\.|->|[|~]|[*+?]\??/,punctuation:/[;:()=]/},t.languages.g4=t.languages.antlr4}return hc}var bc,lv;function lU(){if(lv)return bc;lv=1,bc=e,e.displayName="apacheconf",e.aliases=[];function e(t){t.languages.apacheconf={comment:/#.*/,"directive-inline":{pattern:/(^[\t ]*)\b(?:AcceptFilter|AcceptPathInfo|AccessFileName|Action|Add(?:Alt|AltByEncoding|AltByType|Charset|DefaultCharset|Description|Encoding|Handler|Icon|IconByEncoding|IconByType|InputFilter|Language|ModuleInfo|OutputFilter|OutputFilterByType|Type)|Alias|AliasMatch|Allow(?:CONNECT|EncodedSlashes|Methods|Override|OverrideList)?|Anonymous(?:_LogEmail|_MustGiveEmail|_NoUserID|_VerifyEmail)?|AsyncRequestWorkerFactor|Auth(?:BasicAuthoritative|BasicFake|BasicProvider|BasicUseDigestAlgorithm|DBDUserPWQuery|DBDUserRealmQuery|DBMGroupFile|DBMType|DBMUserFile|Digest(?:Algorithm|Domain|NonceLifetime|Provider|Qop|ShmemSize)|Form(?:Authoritative|Body|DisableNoStore|FakeBasicAuth|Location|LoginRequiredLocation|LoginSuccessLocation|LogoutLocation|Method|Mimetype|Password|Provider|SitePassphrase|Size|Username)|GroupFile|LDAP(?:AuthorizePrefix|BindAuthoritative|BindDN|BindPassword|CharsetConfig|CompareAsUser|CompareDNOnServer|DereferenceAliases|GroupAttribute|GroupAttributeIsDN|InitialBindAsUser|InitialBindPattern|MaxSubGroupDepth|RemoteUserAttribute|RemoteUserIsDN|SearchAsUser|SubGroupAttribute|SubGroupClass|Url)|Merging|Name|nCache(?:Context|Enable|ProvideFor|SOCache|Timeout)|nzFcgiCheckAuthnProvider|nzFcgiDefineProvider|Type|UserFile|zDBDLoginToReferer|zDBDQuery|zDBDRedirectQuery|zDBMType|zSendForbiddenOnFailure)|BalancerGrowth|BalancerInherit|BalancerMember|BalancerPersist|BrowserMatch|BrowserMatchNoCase|BufferedLogs|BufferSize|Cache(?:DefaultExpire|DetailHeader|DirLength|DirLevels|Disable|Enable|File|Header|IgnoreCacheControl|IgnoreHeaders|IgnoreNoLastMod|IgnoreQueryString|IgnoreURLSessionIdentifiers|KeyBaseURL|LastModifiedFactor|Lock|LockMaxAge|LockPath|MaxExpire|MaxFileSize|MinExpire|MinFileSize|NegotiatedDocs|QuickHandler|ReadSize|ReadTime|Root|Socache(?:MaxSize|MaxTime|MinTime|ReadSize|ReadTime)?|StaleOnError|StoreExpired|StoreNoStore|StorePrivate)|CGIDScriptTimeout|CGIMapExtension|CharsetDefault|CharsetOptions|CharsetSourceEnc|CheckCaseOnly|CheckSpelling|ChrootDir|ContentDigest|CookieDomain|CookieExpires|CookieName|CookieStyle|CookieTracking|CoreDumpDirectory|CustomLog|Dav|DavDepthInfinity|DavGenericLockDB|DavLockDB|DavMinTimeout|DBDExptime|DBDInitSQL|DBDKeep|DBDMax|DBDMin|DBDParams|DBDPersist|DBDPrepareSQL|DBDriver|DefaultIcon|DefaultLanguage|DefaultRuntimeDir|DefaultType|Define|Deflate(?:BufferSize|CompressionLevel|FilterNote|InflateLimitRequestBody|InflateRatio(?:Burst|Limit)|MemLevel|WindowSize)|Deny|DirectoryCheckHandler|DirectoryIndex|DirectoryIndexRedirect|DirectorySlash|DocumentRoot|DTracePrivileges|DumpIOInput|DumpIOOutput|EnableExceptionHook|EnableMMAP|EnableSendfile|Error|ErrorDocument|ErrorLog|ErrorLogFormat|Example|ExpiresActive|ExpiresByType|ExpiresDefault|ExtendedStatus|ExtFilterDefine|ExtFilterOptions|FallbackResource|FileETag|FilterChain|FilterDeclare|FilterProtocol|FilterProvider|FilterTrace|ForceLanguagePriority|ForceType|ForensicLog|GprofDir|GracefulShutdownTimeout|Group|Header|HeaderName|Heartbeat(?:Address|Listen|MaxServers|Storage)|HostnameLookups|IdentityCheck|IdentityCheckTimeout|ImapBase|ImapDefault|ImapMenu|Include|IncludeOptional|Index(?:HeadInsert|Ignore|IgnoreReset|Options|OrderDefault|StyleSheet)|InputSed|ISAPI(?:AppendLogToErrors|AppendLogToQuery|CacheFile|FakeAsync|LogNotSupported|ReadAheadBuffer)|KeepAlive|KeepAliveTimeout|KeptBodySize|LanguagePriority|LDAP(?:CacheEntries|CacheTTL|ConnectionPoolTTL|ConnectionTimeout|LibraryDebug|OpCacheEntries|OpCacheTTL|ReferralHopLimit|Referrals|Retries|RetryDelay|SharedCacheFile|SharedCacheSize|Timeout|TrustedClientCert|TrustedGlobalCert|TrustedMode|VerifyServerCert)|Limit(?:InternalRecursion|Request(?:Body|Fields|FieldSize|Line)|XMLRequestBody)|Listen|ListenBackLog|LoadFile|LoadModule|LogFormat|LogLevel|LogMessage|LuaAuthzProvider|LuaCodeCache|Lua(?:Hook(?:AccessChecker|AuthChecker|CheckUserID|Fixups|InsertFilter|Log|MapToStorage|TranslateName|TypeChecker)|Inherit|InputFilter|MapHandler|OutputFilter|PackageCPath|PackagePath|QuickHandler|Root|Scope)|Max(?:ConnectionsPerChild|KeepAliveRequests|MemFree|RangeOverlaps|RangeReversals|Ranges|RequestWorkers|SpareServers|SpareThreads|Threads)|MergeTrailers|MetaDir|MetaFiles|MetaSuffix|MimeMagicFile|MinSpareServers|MinSpareThreads|MMapFile|ModemStandard|ModMimeUsePathInfo|MultiviewsMatch|Mutex|NameVirtualHost|NoProxy|NWSSLTrustedCerts|NWSSLUpgradeable|Options|Order|OutputSed|PassEnv|PidFile|PrivilegesMode|Protocol|ProtocolEcho|Proxy(?:AddHeaders|BadHeader|Block|Domain|ErrorOverride|ExpressDBMFile|ExpressDBMType|ExpressEnable|FtpDirCharset|FtpEscapeWildcards|FtpListOnWildcard|HTML(?:BufSize|CharsetOut|DocType|Enable|Events|Extended|Fixups|Interp|Links|Meta|StripComments|URLMap)|IOBufferSize|MaxForwards|Pass(?:Inherit|InterpolateEnv|Match|Reverse|ReverseCookieDomain|ReverseCookiePath)?|PreserveHost|ReceiveBufferSize|Remote|RemoteMatch|Requests|SCGIInternalRedirect|SCGISendfile|Set|SourceAddress|Status|Timeout|Via)|ReadmeName|ReceiveBufferSize|Redirect|RedirectMatch|RedirectPermanent|RedirectTemp|ReflectorHeader|RemoteIP(?:Header|InternalProxy|InternalProxyList|ProxiesHeader|TrustedProxy|TrustedProxyList)|RemoveCharset|RemoveEncoding|RemoveHandler|RemoveInputFilter|RemoveLanguage|RemoveOutputFilter|RemoveType|RequestHeader|RequestReadTimeout|Require|Rewrite(?:Base|Cond|Engine|Map|Options|Rule)|RLimitCPU|RLimitMEM|RLimitNPROC|Satisfy|ScoreBoardFile|Script(?:Alias|AliasMatch|InterpreterSource|Log|LogBuffer|LogLength|Sock)?|SecureListen|SeeRequestTail|SendBufferSize|Server(?:Admin|Alias|Limit|Name|Path|Root|Signature|Tokens)|Session(?:Cookie(?:Name|Name2|Remove)|Crypto(?:Cipher|Driver|Passphrase|PassphraseFile)|DBD(?:CookieName|CookieName2|CookieRemove|DeleteLabel|InsertLabel|PerUser|SelectLabel|UpdateLabel)|Env|Exclude|Header|Include|MaxAge)?|SetEnv|SetEnvIf|SetEnvIfExpr|SetEnvIfNoCase|SetHandler|SetInputFilter|SetOutputFilter|SSIEndTag|SSIErrorMsg|SSIETag|SSILastModified|SSILegacyExprParser|SSIStartTag|SSITimeFormat|SSIUndefinedEcho|SSL(?:CACertificateFile|CACertificatePath|CADNRequestFile|CADNRequestPath|CARevocationCheck|CARevocationFile|CARevocationPath|CertificateChainFile|CertificateFile|CertificateKeyFile|CipherSuite|Compression|CryptoDevice|Engine|FIPS|HonorCipherOrder|InsecureRenegotiation|OCSP(?:DefaultResponder|Enable|OverrideResponder|ResponderTimeout|ResponseMaxAge|ResponseTimeSkew|UseRequestNonce)|OpenSSLConfCmd|Options|PassPhraseDialog|Protocol|Proxy(?:CACertificateFile|CACertificatePath|CARevocation(?:Check|File|Path)|CheckPeer(?:CN|Expire|Name)|CipherSuite|Engine|MachineCertificate(?:ChainFile|File|Path)|Protocol|Verify|VerifyDepth)|RandomSeed|RenegBufferSize|Require|RequireSSL|Session(?:Cache|CacheTimeout|TicketKeyFile|Tickets)|SRPUnknownUserSeed|SRPVerifierFile|Stapling(?:Cache|ErrorCacheTimeout|FakeTryLater|ForceURL|ResponderTimeout|ResponseMaxAge|ResponseTimeSkew|ReturnResponderErrors|StandardCacheTimeout)|StrictSNIVHostCheck|UserName|UseStapling|VerifyClient|VerifyDepth)|StartServers|StartThreads|Substitute|Suexec|SuexecUserGroup|ThreadLimit|ThreadsPerChild|ThreadStackSize|TimeOut|TraceEnable|TransferLog|TypesConfig|UnDefine|UndefMacro|UnsetEnv|Use|UseCanonicalName|UseCanonicalPhysicalPort|User|UserDir|VHostCGIMode|VHostCGIPrivs|VHostGroup|VHostPrivs|VHostSecure|VHostUser|Virtual(?:DocumentRoot|ScriptAlias)(?:IP)?|WatchdogInterval|XBitHack|xml2EncAlias|xml2EncDefault|xml2StartParse)\b/im,lookbehind:!0,alias:"property"},"directive-block":{pattern:/<\/?\b(?:Auth[nz]ProviderAlias|Directory|DirectoryMatch|Else|ElseIf|Files|FilesMatch|If|IfDefine|IfModule|IfVersion|Limit|LimitExcept|Location|LocationMatch|Macro|Proxy|Require(?:All|Any|None)|VirtualHost)\b.*>/i,inside:{"directive-block":{pattern:/^<\/?\w+/,inside:{punctuation:/^<\/?/},alias:"tag"},"directive-block-parameter":{pattern:/.*[^>]/,inside:{punctuation:/:/,string:{pattern:/("|').*\1/,inside:{variable:/[$%]\{?(?:\w\.?[-+:]?)+\}?/}}},alias:"attr-value"},punctuation:/>/},alias:"tag"},"directive-flags":{pattern:/\[(?:[\w=],?)+\]/,alias:"keyword"},string:{pattern:/("|').*\1/,inside:{variable:/[$%]\{?(?:\w\.?[-+:]?)+\}?/}},variable:/[$%]\{?(?:\w\.?[-+:]?)+\}?/,regex:/\^?.*\$|\^.*\$?/}}return bc}var yc,uv;function ph(){if(uv)return yc;uv=1,yc=e,e.displayName="sql",e.aliases=[];function e(t){t.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},identifier:{pattern:/(^|[^@\\])`(?:\\[\s\S]|[^`\\]|``)*`/,greedy:!0,lookbehind:!0,inside:{punctuation:/^`|`$/}},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:FALSE|NULL|TRUE)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/}}return yc}var Ec,cv;function uU(){if(cv)return Ec;cv=1;var e=ph();Ec=t,t.displayName="apex",t.aliases=[];function t(n){n.register(e),(function(i){var o=/\b(?:(?:after|before)(?=\s+[a-z])|abstract|activate|and|any|array|as|asc|autonomous|begin|bigdecimal|blob|boolean|break|bulk|by|byte|case|cast|catch|char|class|collect|commit|const|continue|currency|date|datetime|decimal|default|delete|desc|do|double|else|end|enum|exception|exit|export|extends|final|finally|float|for|from|get(?=\s*[{};])|global|goto|group|having|hint|if|implements|import|in|inner|insert|instanceof|int|integer|interface|into|join|like|limit|list|long|loop|map|merge|new|not|null|nulls|number|object|of|on|or|outer|override|package|parallel|pragma|private|protected|public|retrieve|return|rollback|select|set|short|sObject|sort|static|string|super|switch|synchronized|system|testmethod|then|this|throw|time|transaction|transient|trigger|try|undelete|update|upsert|using|virtual|void|webservice|when|where|while|(?:inherited|with|without)\s+sharing)\b/i,l=/\b(?:(?=[a-z_]\w*\s*[<\[])|(?!))[A-Z_]\w*(?:\s*\.\s*[A-Z_]\w*)*\b(?:\s*(?:\[\s*\]|<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>))*/.source.replace(//g,function(){return o.source});function u(p){return RegExp(p.replace(//g,function(){return l}),"i")}var c={keyword:o,punctuation:/[()\[\]{};,:.<>]/};i.languages.apex={comment:i.languages.clike.comment,string:i.languages.clike.string,sql:{pattern:/((?:[=,({:]|\breturn)\s*)\[[^\[\]]*\]/i,lookbehind:!0,greedy:!0,alias:"language-sql",inside:i.languages.sql},annotation:{pattern:/@\w+\b/,alias:"punctuation"},"class-name":[{pattern:u(/(\b(?:class|enum|extends|implements|instanceof|interface|new|trigger\s+\w+\s+on)\s+)/.source),lookbehind:!0,inside:c},{pattern:u(/(\(\s*)(?=\s*\)\s*[\w(])/.source),lookbehind:!0,inside:c},{pattern:u(/(?=\s*\w+\s*[;=,(){:])/.source),inside:c}],trigger:{pattern:/(\btrigger\s+)\w+\b/i,lookbehind:!0,alias:"class-name"},keyword:o,function:/\b[a-z_]\w*(?=\s*\()/i,boolean:/\b(?:false|true)\b/i,number:/(?:\B\.\d+|\b\d+(?:\.\d+|L)?)\b/i,operator:/[!=](?:==?)?|\?\.?|&&|\|\||--|\+\+|[-+*/^&|]=?|:|<{1,3}=?/,punctuation:/[()\[\]{};,.]/}})(n)}return Ec}var Sc,dv;function cU(){if(dv)return Sc;dv=1,Sc=e,e.displayName="apl",e.aliases=[];function e(t){t.languages.apl={comment:/(?:⍝|#[! ]).*$/m,string:{pattern:/'(?:[^'\r\n]|'')*'/,greedy:!0},number:/¯?(?:\d*\.?\b\d+(?:e[+¯]?\d+)?|¯|∞)(?:j¯?(?:(?:\d+(?:\.\d+)?|\.\d+)(?:e[+¯]?\d+)?|¯|∞))?/i,statement:/:[A-Z][a-z][A-Za-z]*\b/,"system-function":{pattern:/⎕[A-Z]+/i,alias:"function"},constant:/[⍬⌾#⎕⍞]/,function:/[-+×÷⌈⌊∣|⍳⍸?*⍟○!⌹<≤=>≥≠≡≢∊⍷∪∩~∨∧⍱⍲⍴,⍪⌽⊖⍉↑↓⊂⊃⊆⊇⌷⍋⍒⊤⊥⍕⍎⊣⊢⍁⍂≈⍯↗¤→]/,"monadic-operator":{pattern:/[\\\/⌿⍀¨⍨⌶&∥]/,alias:"operator"},"dyadic-operator":{pattern:/[.⍣⍠⍤∘⌸@⌺⍥]/,alias:"operator"},assignment:{pattern:/←/,alias:"keyword"},punctuation:/[\[;\]()◇⋄]/,dfn:{pattern:/[{}⍺⍵⍶⍹∇⍫:]/,alias:"builtin"}}}return Sc}var vc,pv;function dU(){if(pv)return vc;pv=1,vc=e,e.displayName="applescript",e.aliases=[];function e(t){t.languages.applescript={comment:[/\(\*(?:\(\*(?:[^*]|\*(?!\)))*\*\)|(?!\(\*)[\s\S])*?\*\)/,/--.+/,/#.+/],string:/"(?:\\.|[^"\\\r\n])*"/,number:/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e-?\d+)?\b/i,operator:[/[&=≠≤≥*+\-\/÷^]|[<>]=?/,/\b(?:(?:begin|end|start)s? with|(?:contains?|(?:does not|doesn't) contain)|(?:is|isn't|is not) (?:contained by|in)|(?:(?:is|isn't|is not) )?(?:greater|less) than(?: or equal)?(?: to)?|(?:comes|(?:does not|doesn't) come) (?:after|before)|(?:is|isn't|is not) equal(?: to)?|(?:(?:does not|doesn't) equal|equal to|equals|is not|isn't)|(?:a )?(?:ref(?: to)?|reference to)|(?:and|as|div|mod|not|or))\b/],keyword:/\b(?:about|above|after|against|apart from|around|aside from|at|back|before|beginning|behind|below|beneath|beside|between|but|by|considering|continue|copy|does|eighth|else|end|equal|error|every|exit|false|fifth|first|for|fourth|from|front|get|given|global|if|ignoring|in|instead of|into|is|it|its|last|local|me|middle|my|ninth|of|on|onto|out of|over|prop|property|put|repeat|return|returning|second|set|seventh|since|sixth|some|tell|tenth|that|the|then|third|through|thru|timeout|times|to|transaction|true|try|until|where|while|whose|with|without)\b/,"class-name":/\b(?:POSIX file|RGB color|alias|application|boolean|centimeters|centimetres|class|constant|cubic centimeters|cubic centimetres|cubic feet|cubic inches|cubic meters|cubic metres|cubic yards|date|degrees Celsius|degrees Fahrenheit|degrees Kelvin|feet|file|gallons|grams|inches|integer|kilograms|kilometers|kilometres|list|liters|litres|meters|metres|miles|number|ounces|pounds|quarts|real|record|reference|script|square feet|square kilometers|square kilometres|square meters|square metres|square miles|square yards|text|yards)\b/,punctuation:/[{}():,¬«»《》]/}}return vc}var kc,fv;function pU(){if(fv)return kc;fv=1,kc=e,e.displayName="aql",e.aliases=[];function e(t){t.languages.aql={comment:/\/\/.*|\/\*[\s\S]*?\*\//,property:{pattern:/([{,]\s*)(?:(?!\d)\w+|(["'´`])(?:(?!\2)[^\\\r\n]|\\.)*\2)(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(["'])(?:(?!\1)[^\\\r\n]|\\.)*\1/,greedy:!0},identifier:{pattern:/([´`])(?:(?!\1)[^\\\r\n]|\\.)*\1/,greedy:!0},variable:/@@?\w+/,keyword:[{pattern:/(\bWITH\s+)COUNT(?=\s+INTO\b)/i,lookbehind:!0},/\b(?:AGGREGATE|ALL|AND|ANY|ASC|COLLECT|DESC|DISTINCT|FILTER|FOR|GRAPH|IN|INBOUND|INSERT|INTO|K_PATHS|K_SHORTEST_PATHS|LET|LIKE|LIMIT|NONE|NOT|NULL|OR|OUTBOUND|REMOVE|REPLACE|RETURN|SHORTEST_PATH|SORT|UPDATE|UPSERT|WINDOW|WITH)\b/i,{pattern:/(^|[^\w.[])(?:KEEP|PRUNE|SEARCH|TO)\b/i,lookbehind:!0},{pattern:/(^|[^\w.[])(?:CURRENT|NEW|OLD)\b/,lookbehind:!0},{pattern:/\bOPTIONS(?=\s*\{)/i}],function:/\b(?!\d)\w+(?=\s*\()/,boolean:/\b(?:false|true)\b/i,range:{pattern:/\.\./,alias:"operator"},number:[/\b0b[01]+/i,/\b0x[0-9a-f]+/i,/(?:\B\.\d+|\b(?:0|[1-9]\d*)(?:\.\d+)?)(?:e[+-]?\d+)?/i],operator:/\*{2,}|[=!]~|[!=<>]=?|&&|\|\||[-+*/%]/,punctuation:/::|[?.:,;()[\]{}]/}}return kc}var _c,gv;function Yr(){if(gv)return _c;gv=1,_c=e,e.displayName="c",e.aliases=[];function e(t){t.languages.c=t.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),t.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),t.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},t.languages.c.string],char:t.languages.c.char,comment:t.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:t.languages.c}}}}),t.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete t.languages.c.boolean}return _c}var wc,mv;function fh(){if(mv)return wc;mv=1;var e=Yr();wc=t,t.displayName="cpp",t.aliases=[];function t(n){n.register(e),(function(i){var o=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,l=/\b(?!)\w+(?:\s*\.\s*\w+)*\b/.source.replace(//g,function(){return o.source});i.languages.cpp=i.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!)\w+/.source.replace(//g,function(){return o.source})),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:o,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),i.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/(?:\s*:\s*)?|:\s*/.source.replace(//g,function(){return l})+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),i.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:i.languages.cpp}}}}),i.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),i.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:i.languages.extend("cpp",{})}}),i.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},i.languages.cpp["base-clause"])})(n)}return wc}var Tc,hv;function fU(){if(hv)return Tc;hv=1;var e=fh();Tc=t,t.displayName="arduino",t.aliases=["ino"];function t(n){n.register(e),n.languages.arduino=n.languages.extend("cpp",{keyword:/\b(?:String|array|bool|boolean|break|byte|case|catch|continue|default|do|double|else|finally|for|function|goto|if|in|instanceof|int|integer|long|loop|new|null|return|setup|string|switch|throw|try|void|while|word)\b/,constant:/\b(?:ANALOG_MESSAGE|DEFAULT|DIGITAL_MESSAGE|EXTERNAL|FIRMATA_STRING|HIGH|INPUT|INPUT_PULLUP|INTERNAL|INTERNAL1V1|INTERNAL2V56|LED_BUILTIN|LOW|OUTPUT|REPORT_ANALOG|REPORT_DIGITAL|SET_PIN_MODE|SYSEX_START|SYSTEM_RESET)\b/,builtin:/\b(?:Audio|BSSID|Bridge|Client|Console|EEPROM|Esplora|EsploraTFT|Ethernet|EthernetClient|EthernetServer|EthernetUDP|File|FileIO|FileSystem|Firmata|GPRS|GSM|GSMBand|GSMClient|GSMModem|GSMPIN|GSMScanner|GSMServer|GSMVoiceCall|GSM_SMS|HttpClient|IPAddress|IRread|Keyboard|KeyboardController|LiquidCrystal|LiquidCrystal_I2C|Mailbox|Mouse|MouseController|PImage|Process|RSSI|RobotControl|RobotMotor|SD|SPI|SSID|Scheduler|Serial|Server|Servo|SoftwareSerial|Stepper|Stream|TFT|Task|USBHost|WiFi|WiFiClient|WiFiServer|WiFiUDP|Wire|YunClient|YunServer|abs|addParameter|analogRead|analogReadResolution|analogReference|analogWrite|analogWriteResolution|answerCall|attach|attachGPRS|attachInterrupt|attached|autoscroll|available|background|beep|begin|beginPacket|beginSD|beginSMS|beginSpeaker|beginTFT|beginTransmission|beginWrite|bit|bitClear|bitRead|bitSet|bitWrite|blink|blinkVersion|buffer|changePIN|checkPIN|checkPUK|checkReg|circle|cityNameRead|cityNameWrite|clear|clearScreen|click|close|compassRead|config|connect|connected|constrain|cos|countryNameRead|countryNameWrite|createChar|cursor|debugPrint|delay|delayMicroseconds|detach|detachInterrupt|digitalRead|digitalWrite|disconnect|display|displayLogos|drawBMP|drawCompass|encryptionType|end|endPacket|endSMS|endTransmission|endWrite|exists|exitValue|fill|find|findUntil|flush|gatewayIP|get|getAsynchronously|getBand|getButton|getCurrentCarrier|getIMEI|getKey|getModifiers|getOemKey|getPINUsed|getResult|getSignalStrength|getSocket|getVoiceCallStatus|getXChange|getYChange|hangCall|height|highByte|home|image|interrupts|isActionDone|isDirectory|isListening|isPIN|isPressed|isValid|keyPressed|keyReleased|keyboardRead|knobRead|leftToRight|line|lineFollowConfig|listen|listenOnLocalhost|loadImage|localIP|lowByte|macAddress|maintain|map|max|messageAvailable|micros|millis|min|mkdir|motorsStop|motorsWrite|mouseDragged|mouseMoved|mousePressed|mouseReleased|move|noAutoscroll|noBlink|noBuffer|noCursor|noDisplay|noFill|noInterrupts|noListenOnLocalhost|noStroke|noTone|onReceive|onRequest|open|openNextFile|overflow|parseCommand|parseFloat|parseInt|parsePacket|pauseMode|peek|pinMode|playFile|playMelody|point|pointTo|position|pow|prepare|press|print|printFirmwareVersion|printVersion|println|process|processInput|pulseIn|put|random|randomSeed|read|readAccelerometer|readBlue|readButton|readBytes|readBytesUntil|readGreen|readJoystickButton|readJoystickSwitch|readJoystickX|readJoystickY|readLightSensor|readMessage|readMicrophone|readNetworks|readRed|readSlider|readString|readStringUntil|readTemperature|ready|rect|release|releaseAll|remoteIP|remoteNumber|remotePort|remove|requestFrom|retrieveCallingNumber|rewindDirectory|rightToLeft|rmdir|robotNameRead|robotNameWrite|run|runAsynchronously|runShellCommand|runShellCommandAsynchronously|running|scanNetworks|scrollDisplayLeft|scrollDisplayRight|seek|sendAnalog|sendDigitalPortPair|sendDigitalPorts|sendString|sendSysex|serialEvent|setBand|setBitOrder|setClockDivider|setCursor|setDNS|setDataMode|setFirmwareVersion|setMode|setPINUsed|setSpeed|setTextSize|setTimeout|shiftIn|shiftOut|shutdown|sin|size|sqrt|startLoop|step|stop|stroke|subnetMask|switchPIN|tan|tempoWrite|text|tone|transfer|tuneWrite|turn|updateIR|userNameRead|userNameWrite|voiceCall|waitContinue|width|write|writeBlue|writeGreen|writeJSON|writeMessage|writeMicroseconds|writeRGB|writeRed|yield)\b/}),n.languages.ino=n.languages.arduino}return Tc}var xc,bv;function gU(){if(bv)return xc;bv=1,xc=e,e.displayName="arff",e.aliases=[];function e(t){t.languages.arff={comment:/%.*/,string:{pattern:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},keyword:/@(?:attribute|data|end|relation)\b/i,number:/\b\d+(?:\.\d+)?\b/,punctuation:/[{},]/}}return xc}var Ac,yv;function mU(){if(yv)return Ac;yv=1,Ac=e,e.displayName="asciidoc",e.aliases=["adoc"];function e(t){(function(n){var i={pattern:/(^[ \t]*)\[(?!\[)(?:(["'$`])(?:(?!\2)[^\\]|\\.)*\2|\[(?:[^\[\]\\]|\\.)*\]|[^\[\]\\"'$`]|\\.)*\]/m,lookbehind:!0,inside:{quoted:{pattern:/([$`])(?:(?!\1)[^\\]|\\.)*\1/,inside:{punctuation:/^[$`]|[$`]$/}},interpreted:{pattern:/'(?:[^'\\]|\\.)*'/,inside:{punctuation:/^'|'$/}},string:/"(?:[^"\\]|\\.)*"/,variable:/\w+(?==)/,punctuation:/^\[|\]$|,/,operator:/=/,"attr-value":/(?!^\s+$).+/}},o=n.languages.asciidoc={"comment-block":{pattern:/^(\/{4,})(?:\r?\n|\r)(?:[\s\S]*(?:\r?\n|\r))??\1/m,alias:"comment"},table:{pattern:/^\|={3,}(?:(?:\r?\n|\r(?!\n)).*)*?(?:\r?\n|\r)\|={3,}$/m,inside:{specifiers:{pattern:/(?:(?:(?:\d+(?:\.\d+)?|\.\d+)[+*](?:[<^>](?:\.[<^>])?|\.[<^>])?|[<^>](?:\.[<^>])?|\.[<^>])[a-z]*|[a-z]+)(?=\|)/,alias:"attr-value"},punctuation:{pattern:/(^|[^\\])[|!]=*/,lookbehind:!0}}},"passthrough-block":{pattern:/^(\+{4,})(?:\r?\n|\r)(?:[\s\S]*(?:\r?\n|\r))??\1$/m,inside:{punctuation:/^\++|\++$/}},"literal-block":{pattern:/^(-{4,}|\.{4,})(?:\r?\n|\r)(?:[\s\S]*(?:\r?\n|\r))??\1$/m,inside:{punctuation:/^(?:-+|\.+)|(?:-+|\.+)$/}},"other-block":{pattern:/^(--|\*{4,}|_{4,}|={4,})(?:\r?\n|\r)(?:[\s\S]*(?:\r?\n|\r))??\1$/m,inside:{punctuation:/^(?:-+|\*+|_+|=+)|(?:-+|\*+|_+|=+)$/}},"list-punctuation":{pattern:/(^[ \t]*)(?:-|\*{1,5}|\.{1,5}|(?:[a-z]|\d+)\.|[xvi]+\))(?= )/im,lookbehind:!0,alias:"punctuation"},"list-label":{pattern:/(^[ \t]*)[a-z\d].+(?::{2,4}|;;)(?=\s)/im,lookbehind:!0,alias:"symbol"},"indented-block":{pattern:/((\r?\n|\r)\2)([ \t]+)\S.*(?:(?:\r?\n|\r)\3.+)*(?=\2{2}|$)/,lookbehind:!0},comment:/^\/\/.*/m,title:{pattern:/^.+(?:\r?\n|\r)(?:={3,}|-{3,}|~{3,}|\^{3,}|\+{3,})$|^={1,5} .+|^\.(?![\s.]).*/m,alias:"important",inside:{punctuation:/^(?:\.|=+)|(?:=+|-+|~+|\^+|\++)$/}},"attribute-entry":{pattern:/^:[^:\r\n]+:(?: .*?(?: \+(?:\r?\n|\r).*?)*)?$/m,alias:"tag"},attributes:i,hr:{pattern:/^'{3,}$/m,alias:"punctuation"},"page-break":{pattern:/^<{3,}$/m,alias:"punctuation"},admonition:{pattern:/^(?:CAUTION|IMPORTANT|NOTE|TIP|WARNING):/m,alias:"keyword"},callout:[{pattern:/(^[ \t]*)/m,lookbehind:!0,alias:"symbol"},{pattern:/<\d+>/,alias:"symbol"}],macro:{pattern:/\b[a-z\d][a-z\d-]*::?(?:[^\s\[\]]*\[(?:[^\]\\"']|(["'])(?:(?!\1)[^\\]|\\.)*\1|\\.)*\])/,inside:{function:/^[a-z\d-]+(?=:)/,punctuation:/^::?/,attributes:{pattern:/(?:\[(?:[^\]\\"']|(["'])(?:(?!\1)[^\\]|\\.)*\1|\\.)*\])/,inside:i.inside}}},inline:{pattern:/(^|[^\\])(?:(?:\B\[(?:[^\]\\"']|(["'])(?:(?!\2)[^\\]|\\.)*\2|\\.)*\])?(?:\b_(?!\s)(?: _|[^_\\\r\n]|\\.)+(?:(?:\r?\n|\r)(?: _|[^_\\\r\n]|\\.)+)*_\b|\B``(?!\s).+?(?:(?:\r?\n|\r).+?)*''\B|\B`(?!\s)(?:[^`'\s]|\s+\S)+['`]\B|\B(['*+#])(?!\s)(?: \3|(?!\3)[^\\\r\n]|\\.)+(?:(?:\r?\n|\r)(?: \3|(?!\3)[^\\\r\n]|\\.)+)*\3\B)|(?:\[(?:[^\]\\"']|(["'])(?:(?!\4)[^\\]|\\.)*\4|\\.)*\])?(?:(__|\*\*|\+\+\+?|##|\$\$|[~^]).+?(?:(?:\r?\n|\r).+?)*\5|\{[^}\r\n]+\}|\[\[\[?.+?(?:(?:\r?\n|\r).+?)*\]?\]\]|<<.+?(?:(?:\r?\n|\r).+?)*>>|\(\(\(?.+?(?:(?:\r?\n|\r).+?)*\)?\)\)))/m,lookbehind:!0,inside:{attributes:i,url:{pattern:/^(?:\[\[\[?.+?\]?\]\]|<<.+?>>)$/,inside:{punctuation:/^(?:\[\[\[?|<<)|(?:\]\]\]?|>>)$/}},"attribute-ref":{pattern:/^\{.+\}$/,inside:{variable:{pattern:/(^\{)[a-z\d,+_-]+/,lookbehind:!0},operator:/^[=?!#%@$]|!(?=[:}])/,punctuation:/^\{|\}$|::?/}},italic:{pattern:/^(['_])[\s\S]+\1$/,inside:{punctuation:/^(?:''?|__?)|(?:''?|__?)$/}},bold:{pattern:/^\*[\s\S]+\*$/,inside:{punctuation:/^\*\*?|\*\*?$/}},punctuation:/^(?:``?|\+{1,3}|##?|\$\$|[~^]|\(\(\(?)|(?:''?|\+{1,3}|##?|\$\$|[~^`]|\)?\)\))$/}},replacement:{pattern:/\((?:C|R|TM)\)/,alias:"builtin"},entity:/&#?[\da-z]{1,8};/i,"line-continuation":{pattern:/(^| )\+$/m,lookbehind:!0,alias:"punctuation"}};function l(u){u=u.split(" ");for(var c={},p=0,f=u.length;p>=?|<<=?|&&?|\|\|?|[-+*/%&|^!=<>?]=?/,punctuation:/[(),:]/}}return Nc}var Cc,vv;function ks(){if(vv)return Cc;vv=1,Cc=e,e.displayName="csharp",e.aliases=["dotnet","cs"];function e(t){(function(n){function i(D,$){return D.replace(/<<(\d+)>>/g,function(C,ae){return"(?:"+$[+ae]+")"})}function o(D,$,C){return RegExp(i(D,$),"")}function l(D,$){for(var C=0;C<$;C++)D=D.replace(/<>/g,function(){return"(?:"+D+")"});return D.replace(/<>/g,"[^\\s\\S]")}var u={type:"bool byte char decimal double dynamic float int long object sbyte short string uint ulong ushort var void",typeDeclaration:"class enum interface record struct",contextual:"add alias and ascending async await by descending from(?=\\s*(?:\\w|$)) get global group into init(?=\\s*;) join let nameof not notnull on or orderby partial remove select set unmanaged value when where with(?=\\s*{)",other:"abstract as base break case catch checked const continue default delegate do else event explicit extern finally fixed for foreach goto if implicit in internal is lock namespace new null operator out override params private protected public readonly ref return sealed sizeof stackalloc static switch this throw try typeof unchecked unsafe using virtual volatile while yield"};function c(D){return"\\b(?:"+D.trim().replace(/ /g,"|")+")\\b"}var p=c(u.typeDeclaration),f=RegExp(c(u.type+" "+u.typeDeclaration+" "+u.contextual+" "+u.other)),m=c(u.typeDeclaration+" "+u.contextual+" "+u.other),h=c(u.type+" "+u.typeDeclaration+" "+u.other),S=l(/<(?:[^<>;=+\-*/%&|^]|<>)*>/.source,2),E=l(/\((?:[^()]|<>)*\)/.source,2),v=/@?\b[A-Za-z_]\w*\b/.source,k=i(/<<0>>(?:\s*<<1>>)?/.source,[v,S]),T=i(/(?!<<0>>)<<1>>(?:\s*\.\s*<<1>>)*/.source,[m,k]),N=/\[\s*(?:,\s*)*\]/.source,R=i(/<<0>>(?:\s*(?:\?\s*)?<<1>>)*(?:\s*\?)?/.source,[T,N]),A=i(/[^,()<>[\];=+\-*/%&|^]|<<0>>|<<1>>|<<2>>/.source,[S,E,N]),O=i(/\(<<0>>+(?:,<<0>>+)+\)/.source,[A]),L=i(/(?:<<0>>|<<1>>)(?:\s*(?:\?\s*)?<<2>>)*(?:\s*\?)?/.source,[O,T,N]),w={keyword:f,punctuation:/[<>()?,.:[\]]/},B=/'(?:[^\r\n'\\]|\\.|\\[Uux][\da-fA-F]{1,8})'/.source,W=/"(?:\\.|[^\\"\r\n])*"/.source,j=/@"(?:""|\\[\s\S]|[^\\"])*"(?!")/.source;n.languages.csharp=n.languages.extend("clike",{string:[{pattern:o(/(^|[^$\\])<<0>>/.source,[j]),lookbehind:!0,greedy:!0},{pattern:o(/(^|[^@$\\])<<0>>/.source,[W]),lookbehind:!0,greedy:!0}],"class-name":[{pattern:o(/(\busing\s+static\s+)<<0>>(?=\s*;)/.source,[T]),lookbehind:!0,inside:w},{pattern:o(/(\busing\s+<<0>>\s*=\s*)<<1>>(?=\s*;)/.source,[v,L]),lookbehind:!0,inside:w},{pattern:o(/(\busing\s+)<<0>>(?=\s*=)/.source,[v]),lookbehind:!0},{pattern:o(/(\b<<0>>\s+)<<1>>/.source,[p,k]),lookbehind:!0,inside:w},{pattern:o(/(\bcatch\s*\(\s*)<<0>>/.source,[T]),lookbehind:!0,inside:w},{pattern:o(/(\bwhere\s+)<<0>>/.source,[v]),lookbehind:!0},{pattern:o(/(\b(?:is(?:\s+not)?|as)\s+)<<0>>/.source,[R]),lookbehind:!0,inside:w},{pattern:o(/\b<<0>>(?=\s+(?!<<1>>|with\s*\{)<<2>>(?:\s*[=,;:{)\]]|\s+(?:in|when)\b))/.source,[L,h,v]),inside:w}],keyword:f,number:/(?:\b0(?:x[\da-f_]*[\da-f]|b[01_]*[01])|(?:\B\.\d+(?:_+\d+)*|\b\d+(?:_+\d+)*(?:\.\d+(?:_+\d+)*)?)(?:e[-+]?\d+(?:_+\d+)*)?)(?:[dflmu]|lu|ul)?\b/i,operator:/>>=?|<<=?|[-=]>|([-+&|])\1|~|\?\?=?|[-+*/%&|^!=<>]=?/,punctuation:/\?\.?|::|[{}[\];(),.:]/}),n.languages.insertBefore("csharp","number",{range:{pattern:/\.\./,alias:"operator"}}),n.languages.insertBefore("csharp","punctuation",{"named-parameter":{pattern:o(/([(,]\s*)<<0>>(?=\s*:)/.source,[v]),lookbehind:!0,alias:"punctuation"}}),n.languages.insertBefore("csharp","class-name",{namespace:{pattern:o(/(\b(?:namespace|using)\s+)<<0>>(?:\s*\.\s*<<0>>)*(?=\s*[;{])/.source,[v]),lookbehind:!0,inside:{punctuation:/\./}},"type-expression":{pattern:o(/(\b(?:default|sizeof|typeof)\s*\(\s*(?!\s))(?:[^()\s]|\s(?!\s)|<<0>>)*(?=\s*\))/.source,[E]),lookbehind:!0,alias:"class-name",inside:w},"return-type":{pattern:o(/<<0>>(?=\s+(?:<<1>>\s*(?:=>|[({]|\.\s*this\s*\[)|this\s*\[))/.source,[L,T]),inside:w,alias:"class-name"},"constructor-invocation":{pattern:o(/(\bnew\s+)<<0>>(?=\s*[[({])/.source,[L]),lookbehind:!0,inside:w,alias:"class-name"},"generic-method":{pattern:o(/<<0>>\s*<<1>>(?=\s*\()/.source,[v,S]),inside:{function:o(/^<<0>>/.source,[v]),generic:{pattern:RegExp(S),alias:"class-name",inside:w}}},"type-list":{pattern:o(/\b((?:<<0>>\s+<<1>>|record\s+<<1>>\s*<<5>>|where\s+<<2>>)\s*:\s*)(?:<<3>>|<<4>>|<<1>>\s*<<5>>|<<6>>)(?:\s*,\s*(?:<<3>>|<<4>>|<<6>>))*(?=\s*(?:where|[{;]|=>|$))/.source,[p,k,v,L,f.source,E,/\bnew\s*\(\s*\)/.source]),lookbehind:!0,inside:{"record-arguments":{pattern:o(/(^(?!new\s*\()<<0>>\s*)<<1>>/.source,[k,E]),lookbehind:!0,greedy:!0,inside:n.languages.csharp},keyword:f,"class-name":{pattern:RegExp(L),greedy:!0,inside:w},punctuation:/[,()]/}},preprocessor:{pattern:/(^[\t ]*)#.*/m,lookbehind:!0,alias:"property",inside:{directive:{pattern:/(#)\b(?:define|elif|else|endif|endregion|error|if|line|nullable|pragma|region|undef|warning)\b/,lookbehind:!0,alias:"keyword"}}}});var M=W+"|"+B,Y=i(/\/(?![*/])|\/\/[^\r\n]*[\r\n]|\/\*(?:[^*]|\*(?!\/))*\*\/|<<0>>/.source,[M]),J=l(i(/[^"'/()]|<<0>>|\(<>*\)/.source,[Y]),2),de=/\b(?:assembly|event|field|method|module|param|property|return|type)\b/.source,Z=i(/<<0>>(?:\s*\(<<1>>*\))?/.source,[T,J]);n.languages.insertBefore("csharp","class-name",{attribute:{pattern:o(/((?:^|[^\s\w>)?])\s*\[\s*)(?:<<0>>\s*:\s*)?<<1>>(?:\s*,\s*<<1>>)*(?=\s*\])/.source,[de,Z]),lookbehind:!0,greedy:!0,inside:{target:{pattern:o(/^<<0>>(?=\s*:)/.source,[de]),alias:"keyword"},"attribute-arguments":{pattern:o(/\(<<0>>*\)/.source,[J]),inside:n.languages.csharp},"class-name":{pattern:RegExp(T),inside:{punctuation:/\./}},punctuation:/[:,]/}}});var H=/:[^}\r\n]+/.source,te=l(i(/[^"'/()]|<<0>>|\(<>*\)/.source,[Y]),2),ue=i(/\{(?!\{)(?:(?![}:])<<0>>)*<<1>>?\}/.source,[te,H]),q=l(i(/[^"'/()]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|<<0>>|\(<>*\)/.source,[M]),2),Q=i(/\{(?!\{)(?:(?![}:])<<0>>)*<<1>>?\}/.source,[q,H]);function x(D,$){return{interpolation:{pattern:o(/((?:^|[^{])(?:\{\{)*)<<0>>/.source,[D]),lookbehind:!0,inside:{"format-string":{pattern:o(/(^\{(?:(?![}:])<<0>>)*)<<1>>(?=\}$)/.source,[$,H]),lookbehind:!0,inside:{punctuation:/^:/}},punctuation:/^\{|\}$/,expression:{pattern:/[\s\S]+/,alias:"language-csharp",inside:n.languages.csharp}}},string:/[\s\S]+/}}n.languages.insertBefore("csharp","string",{"interpolation-string":[{pattern:o(/(^|[^\\])(?:\$@|@\$)"(?:""|\\[\s\S]|\{\{|<<0>>|[^\\{"])*"/.source,[ue]),lookbehind:!0,greedy:!0,inside:x(ue,te)},{pattern:o(/(^|[^@\\])\$"(?:\\.|\{\{|<<0>>|[^\\"{])*"/.source,[Q]),lookbehind:!0,greedy:!0,inside:x(Q,q)}],char:{pattern:RegExp(B),greedy:!0}}),n.languages.dotnet=n.languages.cs=n.languages.csharp})(t)}return Cc}var Ic,kv;function yU(){if(kv)return Ic;kv=1;var e=ks();Ic=t,t.displayName="aspnet",t.aliases=[];function t(n){n.register(e),n.languages.aspnet=n.languages.extend("markup",{"page-directive":{pattern:/<%\s*@.*%>/,alias:"tag",inside:{"page-directive":{pattern:/<%\s*@\s*(?:Assembly|Control|Implements|Import|Master(?:Type)?|OutputCache|Page|PreviousPageType|Reference|Register)?|%>/i,alias:"tag"},rest:n.languages.markup.tag.inside}},directive:{pattern:/<%.*%>/,alias:"tag",inside:{directive:{pattern:/<%\s*?[$=%#:]{0,2}|%>/,alias:"tag"},rest:n.languages.csharp}}}),n.languages.aspnet.tag.pattern=/<(?!%)\/?[^\s>\/]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/,n.languages.insertBefore("inside","punctuation",{directive:n.languages.aspnet.directive},n.languages.aspnet.tag.inside["attr-value"]),n.languages.insertBefore("aspnet","comment",{"asp-comment":{pattern:/<%--[\s\S]*?--%>/,alias:["asp","comment"]}}),n.languages.insertBefore("aspnet",n.languages.javascript?"script":"tag",{"asp-script":{pattern:/(]*>)[\s\S]*?(?=<\/script>)/i,lookbehind:!0,alias:["asp","script"],inside:n.languages.csharp||{}}})}return Ic}var Oc,_v;function EU(){if(_v)return Oc;_v=1,Oc=e,e.displayName="autohotkey",e.aliases=[];function e(t){t.languages.autohotkey={comment:[{pattern:/(^|\s);.*/,lookbehind:!0},{pattern:/(^[\t ]*)\/\*(?:[\r\n](?![ \t]*\*\/)|[^\r\n])*(?:[\r\n][ \t]*\*\/)?/m,lookbehind:!0,greedy:!0}],tag:{pattern:/^([ \t]*)[^\s,`":]+(?=:[ \t]*$)/m,lookbehind:!0},string:/"(?:[^"\n\r]|"")*"/,variable:/%\w+%/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/\?|\/\/?=?|:=|\|[=|]?|&[=&]?|\+[=+]?|-[=-]?|\*[=*]?|<(?:<=?|>|=)?|>>?=?|[.^!=~]=?|\b(?:AND|NOT|OR)\b/,boolean:/\b(?:false|true)\b/,selector:/\b(?:AutoTrim|BlockInput|Break|Click|ClipWait|Continue|Control|ControlClick|ControlFocus|ControlGet|ControlGetFocus|ControlGetPos|ControlGetText|ControlMove|ControlSend|ControlSendRaw|ControlSetText|CoordMode|Critical|DetectHiddenText|DetectHiddenWindows|Drive|DriveGet|DriveSpaceFree|EnvAdd|EnvDiv|EnvGet|EnvMult|EnvSet|EnvSub|EnvUpdate|Exit|ExitApp|FileAppend|FileCopy|FileCopyDir|FileCreateDir|FileCreateShortcut|FileDelete|FileEncoding|FileGetAttrib|FileGetShortcut|FileGetSize|FileGetTime|FileGetVersion|FileInstall|FileMove|FileMoveDir|FileRead|FileReadLine|FileRecycle|FileRecycleEmpty|FileRemoveDir|FileSelectFile|FileSelectFolder|FileSetAttrib|FileSetTime|FormatTime|GetKeyState|Gosub|Goto|GroupActivate|GroupAdd|GroupClose|GroupDeactivate|Gui|GuiControl|GuiControlGet|Hotkey|ImageSearch|IniDelete|IniRead|IniWrite|Input|InputBox|KeyWait|ListHotkeys|ListLines|ListVars|Loop|Menu|MouseClick|MouseClickDrag|MouseGetPos|MouseMove|MsgBox|OnExit|OutputDebug|Pause|PixelGetColor|PixelSearch|PostMessage|Process|Progress|Random|RegDelete|RegRead|RegWrite|Reload|Repeat|Return|Run|RunAs|RunWait|Send|SendEvent|SendInput|SendMessage|SendMode|SendPlay|SendRaw|SetBatchLines|SetCapslockState|SetControlDelay|SetDefaultMouseSpeed|SetEnv|SetFormat|SetKeyDelay|SetMouseDelay|SetNumlockState|SetRegView|SetScrollLockState|SetStoreCapslockMode|SetTimer|SetTitleMatchMode|SetWinDelay|SetWorkingDir|Shutdown|Sleep|Sort|SoundBeep|SoundGet|SoundGetWaveVolume|SoundPlay|SoundSet|SoundSetWaveVolume|SplashImage|SplashTextOff|SplashTextOn|SplitPath|StatusBarGetText|StatusBarWait|StringCaseSense|StringGetPos|StringLeft|StringLen|StringLower|StringMid|StringReplace|StringRight|StringSplit|StringTrimLeft|StringTrimRight|StringUpper|Suspend|SysGet|Thread|ToolTip|Transform|TrayTip|URLDownloadToFile|WinActivate|WinActivateBottom|WinClose|WinGet|WinGetActiveStats|WinGetActiveTitle|WinGetClass|WinGetPos|WinGetText|WinGetTitle|WinHide|WinKill|WinMaximize|WinMenuSelectItem|WinMinimize|WinMinimizeAll|WinMinimizeAllUndo|WinMove|WinRestore|WinSet|WinSetTitle|WinShow|WinWait|WinWaitActive|WinWaitClose|WinWaitNotActive)\b/i,constant:/\b(?:a_ahkpath|a_ahkversion|a_appdata|a_appdatacommon|a_autotrim|a_batchlines|a_caretx|a_carety|a_computername|a_controldelay|a_cursor|a_dd|a_ddd|a_dddd|a_defaultmousespeed|a_desktop|a_desktopcommon|a_detecthiddentext|a_detecthiddenwindows|a_endchar|a_eventinfo|a_exitreason|a_fileencoding|a_formatfloat|a_formatinteger|a_gui|a_guicontrol|a_guicontrolevent|a_guievent|a_guiheight|a_guiwidth|a_guix|a_guiy|a_hour|a_iconfile|a_iconhidden|a_iconnumber|a_icontip|a_index|a_ipaddress1|a_ipaddress2|a_ipaddress3|a_ipaddress4|a_is64bitos|a_isadmin|a_iscompiled|a_iscritical|a_ispaused|a_issuspended|a_isunicode|a_keydelay|a_language|a_lasterror|a_linefile|a_linenumber|a_loopfield|a_loopfileattrib|a_loopfiledir|a_loopfileext|a_loopfilefullpath|a_loopfilelongpath|a_loopfilename|a_loopfileshortname|a_loopfileshortpath|a_loopfilesize|a_loopfilesizekb|a_loopfilesizemb|a_loopfiletimeaccessed|a_loopfiletimecreated|a_loopfiletimemodified|a_loopreadline|a_loopregkey|a_loopregname|a_loopregsubkey|a_loopregtimemodified|a_loopregtype|a_mday|a_min|a_mm|a_mmm|a_mmmm|a_mon|a_mousedelay|a_msec|a_mydocuments|a_now|a_nowutc|a_numbatchlines|a_ostype|a_osversion|a_priorhotkey|a_priorkey|a_programfiles|a_programs|a_programscommon|a_ptrsize|a_regview|a_screendpi|a_screenheight|a_screenwidth|a_scriptdir|a_scriptfullpath|a_scripthwnd|a_scriptname|a_sec|a_space|a_startmenu|a_startmenucommon|a_startup|a_startupcommon|a_stringcasesense|a_tab|a_temp|a_thisfunc|a_thishotkey|a_thislabel|a_thismenu|a_thismenuitem|a_thismenuitempos|a_tickcount|a_timeidle|a_timeidlephysical|a_timesincepriorhotkey|a_timesincethishotkey|a_titlematchmode|a_titlematchmodespeed|a_username|a_wday|a_windelay|a_windir|a_workingdir|a_yday|a_year|a_yweek|a_yyyy|clipboard|clipboardall|comspec|errorlevel|programfiles)\b/i,builtin:/\b(?:abs|acos|asc|asin|atan|ceil|chr|class|comobjactive|comobjarray|comobjconnect|comobjcreate|comobjerror|comobjflags|comobjget|comobjquery|comobjtype|comobjvalue|cos|dllcall|exp|fileexist|Fileopen|floor|format|il_add|il_create|il_destroy|instr|isfunc|islabel|IsObject|ln|log|ltrim|lv_add|lv_delete|lv_deletecol|lv_getcount|lv_getnext|lv_gettext|lv_insert|lv_insertcol|lv_modify|lv_modifycol|lv_setimagelist|mod|numget|numput|onmessage|regexmatch|regexreplace|registercallback|round|rtrim|sb_seticon|sb_setparts|sb_settext|sin|sqrt|strlen|strreplace|strsplit|substr|tan|tv_add|tv_delete|tv_get|tv_getchild|tv_getcount|tv_getnext|tv_getparent|tv_getprev|tv_getselection|tv_gettext|tv_modify|varsetcapacity|winactive|winexist|__Call|__Get|__New|__Set)\b/i,symbol:/\b(?:alt|altdown|altup|appskey|backspace|browser_back|browser_favorites|browser_forward|browser_home|browser_refresh|browser_search|browser_stop|bs|capslock|ctrl|ctrlbreak|ctrldown|ctrlup|del|delete|down|end|enter|esc|escape|f1|f10|f11|f12|f13|f14|f15|f16|f17|f18|f19|f2|f20|f21|f22|f23|f24|f3|f4|f5|f6|f7|f8|f9|home|ins|insert|joy1|joy10|joy11|joy12|joy13|joy14|joy15|joy16|joy17|joy18|joy19|joy2|joy20|joy21|joy22|joy23|joy24|joy25|joy26|joy27|joy28|joy29|joy3|joy30|joy31|joy32|joy4|joy5|joy6|joy7|joy8|joy9|joyaxes|joybuttons|joyinfo|joyname|joypov|joyr|joyu|joyv|joyx|joyy|joyz|lalt|launch_app1|launch_app2|launch_mail|launch_media|lbutton|lcontrol|lctrl|left|lshift|lwin|lwindown|lwinup|mbutton|media_next|media_play_pause|media_prev|media_stop|numlock|numpad0|numpad1|numpad2|numpad3|numpad4|numpad5|numpad6|numpad7|numpad8|numpad9|numpadadd|numpadclear|numpaddel|numpaddiv|numpaddot|numpaddown|numpadend|numpadenter|numpadhome|numpadins|numpadleft|numpadmult|numpadpgdn|numpadpgup|numpadright|numpadsub|numpadup|pgdn|pgup|printscreen|ralt|rbutton|rcontrol|rctrl|right|rshift|rwin|rwindown|rwinup|scrolllock|shift|shiftdown|shiftup|space|tab|up|volume_down|volume_mute|volume_up|wheeldown|wheelleft|wheelright|wheelup|xbutton1|xbutton2)\b/i,important:/#\b(?:AllowSameLineComments|ClipboardTimeout|CommentFlag|DerefChar|ErrorStdOut|EscapeChar|HotkeyInterval|HotkeyModifierTimeout|Hotstring|If|IfTimeout|IfWinActive|IfWinExist|IfWinNotActive|IfWinNotExist|Include|IncludeAgain|InputLevel|InstallKeybdHook|InstallMouseHook|KeyHistory|MaxHotkeysPerInterval|MaxMem|MaxThreads|MaxThreadsBuffer|MaxThreadsPerHotkey|MenuMaskKey|NoEnv|NoTrayIcon|Persistent|SingleInstance|UseHook|Warn|WinActivateForce)\b/i,keyword:/\b(?:Abort|AboveNormal|Add|ahk_class|ahk_exe|ahk_group|ahk_id|ahk_pid|All|Alnum|Alpha|AltSubmit|AltTab|AltTabAndMenu|AltTabMenu|AltTabMenuDismiss|AlwaysOnTop|AutoSize|Background|BackgroundTrans|BelowNormal|between|BitAnd|BitNot|BitOr|BitShiftLeft|BitShiftRight|BitXOr|Bold|Border|Button|ByRef|Catch|Checkbox|Checked|CheckedGray|Choose|ChooseString|Close|Color|ComboBox|Contains|ControlList|Count|Date|DateTime|Days|DDL|Default|DeleteAll|Delimiter|Deref|Destroy|Digit|Disable|Disabled|DropDownList|Edit|Eject|Else|Enable|Enabled|Error|Exist|Expand|ExStyle|FileSystem|Finally|First|Flash|Float|FloatFast|Focus|Font|for|global|Grid|Group|GroupBox|GuiClose|GuiContextMenu|GuiDropFiles|GuiEscape|GuiSize|Hdr|Hidden|Hide|High|HKCC|HKCR|HKCU|HKEY_CLASSES_ROOT|HKEY_CURRENT_CONFIG|HKEY_CURRENT_USER|HKEY_LOCAL_MACHINE|HKEY_USERS|HKLM|HKU|Hours|HScroll|Icon|IconSmall|ID|IDLast|If|IfEqual|IfExist|IfGreater|IfGreaterOrEqual|IfInString|IfLess|IfLessOrEqual|IfMsgBox|IfNotEqual|IfNotExist|IfNotInString|IfWinActive|IfWinExist|IfWinNotActive|IfWinNotExist|Ignore|ImageList|in|Integer|IntegerFast|Interrupt|is|italic|Join|Label|LastFound|LastFoundExist|Limit|Lines|List|ListBox|ListView|local|Lock|Logoff|Low|Lower|Lowercase|MainWindow|Margin|Maximize|MaximizeBox|MaxSize|Minimize|MinimizeBox|MinMax|MinSize|Minutes|MonthCal|Mouse|Move|Multi|NA|No|NoActivate|NoDefault|NoHide|NoIcon|NoMainWindow|norm|Normal|NoSort|NoSortHdr|NoStandard|Not|NoTab|NoTimers|Number|Off|Ok|On|OwnDialogs|Owner|Parse|Password|Picture|Pixel|Pos|Pow|Priority|ProcessName|Radio|Range|Read|ReadOnly|Realtime|Redraw|Region|REG_BINARY|REG_DWORD|REG_EXPAND_SZ|REG_MULTI_SZ|REG_SZ|Relative|Rename|Report|Resize|Restore|Retry|RGB|Screen|Seconds|Section|Serial|SetLabel|ShiftAltTab|Show|Single|Slider|SortDesc|Standard|static|Status|StatusBar|StatusCD|strike|Style|Submit|SysMenu|Tab2|TabStop|Text|Theme|Throw|Tile|ToggleCheck|ToggleEnable|ToolWindow|Top|Topmost|TransColor|Transparent|Tray|TreeView|Try|TryAgain|Type|UnCheck|underline|Unicode|Unlock|Until|UpDown|Upper|Uppercase|UseErrorLevel|Vis|VisFirst|Visible|VScroll|Wait|WaitClose|WantCtrlA|WantF2|WantReturn|While|Wrap|Xdigit|xm|xp|xs|Yes|ym|yp|ys)\b/i,function:/[^(); \t,\n+*\-=?>:\\\/<&%\[\]]+(?=\()/,punctuation:/[{}[\]():,]/}}return Oc}var Lc,wv;function SU(){if(wv)return Lc;wv=1,Lc=e,e.displayName="autoit",e.aliases=[];function e(t){t.languages.autoit={comment:[/;.*/,{pattern:/(^[\t ]*)#(?:comments-start|cs)[\s\S]*?^[ \t]*#(?:ce|comments-end)/m,lookbehind:!0}],url:{pattern:/(^[\t ]*#include\s+)(?:<[^\r\n>]+>|"[^\r\n"]+")/m,lookbehind:!0},string:{pattern:/(["'])(?:\1\1|(?!\1)[^\r\n])*\1/,greedy:!0,inside:{variable:/([%$@])\w+\1/}},directive:{pattern:/(^[\t ]*)#[\w-]+/m,lookbehind:!0,alias:"keyword"},function:/\b\w+(?=\()/,variable:/[$@]\w+/,keyword:/\b(?:Case|Const|Continue(?:Case|Loop)|Default|Dim|Do|Else(?:If)?|End(?:Func|If|Select|Switch|With)|Enum|Exit(?:Loop)?|For|Func|Global|If|In|Local|Next|Null|ReDim|Select|Static|Step|Switch|Then|To|Until|Volatile|WEnd|While|With)\b/i,number:/\b(?:0x[\da-f]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?)\b/i,boolean:/\b(?:False|True)\b/i,operator:/<[=>]?|[-+*\/=&>]=?|[?^]|\b(?:And|Not|Or)\b/i,punctuation:/[\[\]().,:]/}}return Lc}var Dc,Tv;function vU(){if(Tv)return Dc;Tv=1,Dc=e,e.displayName="avisynth",e.aliases=["avs"];function e(t){(function(n){function i(m,h){return m.replace(/<<(\d+)>>/g,function(S,E){return h[+E]})}function o(m,h,S){return RegExp(i(m,h),S)}var l=/bool|clip|float|int|string|val/.source,u=[/is(?:bool|clip|float|int|string)|defined|(?:(?:internal)?function|var)?exists?/.source,/apply|assert|default|eval|import|nop|select|undefined/.source,/opt_(?:allowfloataudio|avipadscanlines|dwchannelmask|enable_(?:b64a|planartopackedrgb|v210|y3_10_10|y3_10_16)|usewaveextensible|vdubplanarhack)|set(?:cachemode|maxcpu|memorymax|planarlegacyalignment|workingdir)/.source,/hex(?:value)?|value/.source,/abs|ceil|continued(?:denominator|numerator)?|exp|floor|fmod|frac|log(?:10)?|max|min|muldiv|pi|pow|rand|round|sign|spline|sqrt/.source,/a?sinh?|a?cosh?|a?tan[2h]?/.source,/(?:bit(?:and|not|x?or|[lr]?shift[aslu]?|sh[lr]|sa[lr]|[lr]rotatel?|ro[rl]|te?st|set(?:count)?|cl(?:ea)?r|ch(?:an)?ge?))/.source,/average(?:[bgr]|chroma[uv]|luma)|(?:[rgb]|chroma[uv]|luma|rgb|[yuv](?=difference(?:fromprevious|tonext)))difference(?:fromprevious|tonext)?|[yuvrgb]plane(?:median|min|max|minmaxdifference)/.source,/getprocessinfo|logmsg|script(?:dir(?:utf8)?|file(?:utf8)?|name(?:utf8)?)|setlogparams/.source,/chr|(?:fill|find|left|mid|replace|rev|right)str|format|[lu]case|ord|str(?:cmpi?|fromutf8|len|toutf8)|time|trim(?:all|left|right)/.source,/isversionorgreater|version(?:number|string)/.source,/buildpixeltype|colorspacenametopixeltype/.source,/addautoloaddir|on(?:cpu|cuda)|prefetch|setfiltermtmode/.source].join("|"),c=[/has(?:audio|video)/.source,/height|width/.source,/frame(?:count|rate)|framerate(?:denominator|numerator)/.source,/getparity|is(?:field|frame)based/.source,/bitspercomponent|componentsize|hasalpha|is(?:planar(?:rgba?)?|interleaved|rgb(?:24|32|48|64)?|y(?:8|u(?:va?|y2))?|yv(?:12|16|24|411)|420|422|444|packedrgb)|numcomponents|pixeltype/.source,/audio(?:bits|channels|duration|length(?:[fs]|hi|lo)?|rate)|isaudio(?:float|int)/.source].join("|"),p=[/avi(?:file)?source|directshowsource|image(?:reader|source|sourceanim)|opendmlsource|segmented(?:avisource|directshowsource)|wavsource/.source,/coloryuv|convertbacktoyuy2|convertto(?:RGB(?:24|32|48|64)|(?:planar)?RGBA?|Y8?|YV(?:12|16|24|411)|YUVA?(?:411|420|422|444)|YUY2)|fixluminance|gr[ae]yscale|invert|levels|limiter|mergea?rgb|merge(?:chroma|luma)|rgbadjust|show(?:alpha|blue|green|red)|swapuv|tweak|[uv]toy8?|ytouv/.source,/(?:colorkey|reset)mask|layer|mask(?:hs)?|merge|overlay|subtract/.source,/addborders|(?:bicubic|bilinear|blackman|gauss|lanczos4|lanczos|point|sinc|spline(?:16|36|64))resize|crop(?:bottom)?|flip(?:horizontal|vertical)|(?:horizontal|vertical)?reduceby2|letterbox|skewrows|turn(?:180|left|right)/.source,/blur|fixbrokenchromaupsampling|generalconvolution|(?:spatial|temporal)soften|sharpen/.source,/trim|(?:un)?alignedsplice|(?:assume|assumescaled|change|convert)FPS|(?:delete|duplicate)frame|dissolve|fade(?:in|io|out)[02]?|freezeframe|interleave|loop|reverse|select(?:even|odd|(?:range)?every)/.source,/assume[bt]ff|assume(?:field|frame)based|bob|complementparity|doubleweave|peculiarblend|pulldown|separate(?:columns|fields|rows)|swapfields|weave(?:columns|rows)?/.source,/amplify(?:db)?|assumesamplerate|audiodub(?:ex)?|audiotrim|convertaudioto(?:(?:8|16|24|32)bit|float)|converttomono|delayaudio|ensurevbrmp3sync|get(?:left|right)?channel|kill(?:audio|video)|mergechannels|mixaudio|monotostereo|normalize|resampleaudio|ssrc|supereq|timestretch/.source,/animate|applyrange|conditional(?:filter|reader|select)|frameevaluate|scriptclip|tcp(?:server|source)|writefile(?:end|if|start)?/.source,/imagewriter/.source,/blackness|blankclip|colorbars(?:hd)?|compare|dumpfiltergraph|echo|histogram|info|messageclip|preroll|setgraphanalysis|show(?:framenumber|smpte|time)|showfiveversions|stack(?:horizontal|vertical)|subtitle|tone|version/.source].join("|"),f=[u,c,p].join("|");n.languages.avisynth={comment:[{pattern:/(^|[^\\])\[\*(?:[^\[*]|\[(?!\*)|\*(?!\])|\[\*(?:[^\[*]|\[(?!\*)|\*(?!\]))*\*\])*\*\]/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\$])#.*/,lookbehind:!0,greedy:!0}],argument:{pattern:o(/\b(?:<<0>>)\s+("?)\w+\1/.source,[l],"i"),inside:{keyword:/^\w+/}},"argument-label":{pattern:/([,(][\s\\]*)\w+\s*=(?!=)/,lookbehind:!0,inside:{"argument-name":{pattern:/^\w+/,alias:"punctuation"},punctuation:/=$/}},string:[{pattern:/"""[\s\S]*?"""/,greedy:!0},{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0,inside:{constant:{pattern:/\b(?:DEFAULT_MT_MODE|(?:MAINSCRIPT|PROGRAM|SCRIPT)DIR|(?:MACHINE|USER)_(?:CLASSIC|PLUS)_PLUGINS)\b/}}}],variable:/\b(?:last)\b/i,boolean:/\b(?:false|no|true|yes)\b/i,keyword:/\b(?:catch|else|for|function|global|if|return|try|while|__END__)\b/i,constant:/\bMT_(?:MULTI_INSTANCE|NICE_FILTER|SERIALIZED|SPECIAL_MT)\b/,"builtin-function":{pattern:o(/\b(?:<<0>>)\b/.source,[f],"i"),alias:"function"},"type-cast":{pattern:o(/\b(?:<<0>>)(?=\s*\()/.source,[l],"i"),alias:"keyword"},function:{pattern:/\b[a-z_]\w*(?=\s*\()|(\.)[a-z_]\w*\b/i,lookbehind:!0},"line-continuation":{pattern:/(^[ \t]*)\\|\\(?=[ \t]*$)/m,lookbehind:!0,alias:"punctuation"},number:/\B\$(?:[\da-f]{6}|[\da-f]{8})\b|(?:(?:\b|\B-)\d+(?:\.\d*)?\b|\B\.\d+\b)/i,operator:/\+\+?|[!=<>]=?|&&|\|\||[?:*/%-]/,punctuation:/[{}\[\]();,.]/},n.languages.avs=n.languages.avisynth})(t)}return Dc}var Mc,xv;function kU(){if(xv)return Mc;xv=1,Mc=e,e.displayName="avroIdl",e.aliases=[];function e(t){t.languages["avro-idl"]={comment:{pattern:/\/\/.*|\/\*[\s\S]*?\*\//,greedy:!0},string:{pattern:/(^|[^\\])"(?:[^\r\n"\\]|\\.)*"/,lookbehind:!0,greedy:!0},annotation:{pattern:/@(?:[$\w.-]|`[^\r\n`]+`)+/,greedy:!0,alias:"function"},"function-identifier":{pattern:/`[^\r\n`]+`(?=\s*\()/,greedy:!0,alias:"function"},identifier:{pattern:/`[^\r\n`]+`/,greedy:!0},"class-name":{pattern:/(\b(?:enum|error|protocol|record|throws)\b\s+)[$\w]+/,lookbehind:!0,greedy:!0},keyword:/\b(?:array|boolean|bytes|date|decimal|double|enum|error|false|fixed|float|idl|import|int|local_timestamp_ms|long|map|null|oneway|protocol|record|schema|string|throws|time_ms|timestamp_ms|true|union|uuid|void)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:[{pattern:/(^|[^\w.])-?(?:(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|0x(?:[a-f0-9]+(?:\.[a-f0-9]*)?|\.[a-f0-9]+)(?:p[+-]?\d+)?)[dfl]?(?![\w.])/i,lookbehind:!0},/-?\b(?:Infinity|NaN)\b/],operator:/=/,punctuation:/[()\[\]{}<>.:,;-]/},t.languages.avdl=t.languages["avro-idl"]}return Mc}var Fc,Av;function JA(){if(Av)return Fc;Av=1,Fc=e,e.displayName="bash",e.aliases=["shell"];function e(t){(function(n){var i="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",o={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},l={bash:o,environment:{pattern:RegExp("\\$"+i),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+i),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};n.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+i),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:l},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:o}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:l},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:l.entity}}],environment:{pattern:RegExp("\\$?"+i),alias:"constant"},variable:l.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},o.inside=n.languages.bash;for(var u=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],c=l.variable[1].inside,p=0;p?^\w +\-.])*"/,greedy:!0},number:/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:E[+-]?\d+)?/i,keyword:/\b(?:AS|BEEP|BLOAD|BSAVE|CALL(?: ABSOLUTE)?|CASE|CHAIN|CHDIR|CLEAR|CLOSE|CLS|COM|COMMON|CONST|DATA|DECLARE|DEF(?: FN| SEG|DBL|INT|LNG|SNG|STR)|DIM|DO|DOUBLE|ELSE|ELSEIF|END|ENVIRON|ERASE|ERROR|EXIT|FIELD|FILES|FOR|FUNCTION|GET|GOSUB|GOTO|IF|INPUT|INTEGER|IOCTL|KEY|KILL|LINE INPUT|LOCATE|LOCK|LONG|LOOP|LSET|MKDIR|NAME|NEXT|OFF|ON(?: COM| ERROR| KEY| TIMER)?|OPEN|OPTION BASE|OUT|POKE|PUT|READ|REDIM|REM|RESTORE|RESUME|RETURN|RMDIR|RSET|RUN|SELECT CASE|SHARED|SHELL|SINGLE|SLEEP|STATIC|STEP|STOP|STRING|SUB|SWAP|SYSTEM|THEN|TIMER|TO|TROFF|TRON|TYPE|UNLOCK|UNTIL|USING|VIEW PRINT|WAIT|WEND|WHILE|WRITE)(?:\$|\b)/i,function:/\b(?:ABS|ACCESS|ACOS|ANGLE|AREA|ARITHMETIC|ARRAY|ASIN|ASK|AT|ATN|BASE|BEGIN|BREAK|CAUSE|CEIL|CHR|CLIP|COLLATE|COLOR|CON|COS|COSH|COT|CSC|DATE|DATUM|DEBUG|DECIMAL|DEF|DEG|DEGREES|DELETE|DET|DEVICE|DISPLAY|DOT|ELAPSED|EPS|ERASABLE|EXLINE|EXP|EXTERNAL|EXTYPE|FILETYPE|FIXED|FP|GO|GRAPH|HANDLER|IDN|IMAGE|IN|INT|INTERNAL|IP|IS|KEYED|LBOUND|LCASE|LEFT|LEN|LENGTH|LET|LINE|LINES|LOG|LOG10|LOG2|LTRIM|MARGIN|MAT|MAX|MAXNUM|MID|MIN|MISSING|MOD|NATIVE|NUL|NUMERIC|OF|OPTION|ORD|ORGANIZATION|OUTIN|OUTPUT|PI|POINT|POINTER|POINTS|POS|PRINT|PROGRAM|PROMPT|RAD|RADIANS|RANDOMIZE|RECORD|RECSIZE|RECTYPE|RELATIVE|REMAINDER|REPEAT|REST|RETRY|REWRITE|RIGHT|RND|ROUND|RTRIM|SAME|SEC|SELECT|SEQUENTIAL|SET|SETTER|SGN|SIN|SINH|SIZE|SKIP|SQR|STANDARD|STATUS|STR|STREAM|STYLE|TAB|TAN|TANH|TEMPLATE|TEXT|THERE|TIME|TIMEOUT|TRACE|TRANSFORM|TRUNCATE|UBOUND|UCASE|USE|VAL|VARIABLE|VIEWPORT|WHEN|WINDOW|WITH|ZER|ZONEWIDTH)(?:\$|\b)/i,operator:/<[=>]?|>=?|[+\-*\/^=&]|\b(?:AND|EQV|IMP|NOT|OR|XOR)\b/i,punctuation:/[,;:()]/}}return Pc}var Uc,Nv;function _U(){if(Nv)return Uc;Nv=1,Uc=e,e.displayName="batch",e.aliases=[];function e(t){(function(n){var i=/%%?[~:\w]+%?|!\S+!/,o={pattern:/\/[a-z?]+(?=[ :]|$):?|-[a-z]\b|--[a-z-]+\b/im,alias:"attr-name",inside:{punctuation:/:/}},l=/"(?:[\\"]"|[^"])*"(?!")/,u=/(?:\b|-)\d+\b/;n.languages.batch={comment:[/^::.*/m,{pattern:/((?:^|[&(])[ \t]*)rem\b(?:[^^&)\r\n]|\^(?:\r\n|[\s\S]))*/im,lookbehind:!0}],label:{pattern:/^:.*/m,alias:"property"},command:[{pattern:/((?:^|[&(])[ \t]*)for(?: \/[a-z?](?:[ :](?:"[^"]*"|[^\s"/]\S*))?)* \S+ in \([^)]+\) do/im,lookbehind:!0,inside:{keyword:/\b(?:do|in)\b|^for\b/i,string:l,parameter:o,variable:i,number:u,punctuation:/[()',]/}},{pattern:/((?:^|[&(])[ \t]*)if(?: \/[a-z?](?:[ :](?:"[^"]*"|[^\s"/]\S*))?)* (?:not )?(?:cmdextversion \d+|defined \w+|errorlevel \d+|exist \S+|(?:"[^"]*"|(?!")(?:(?!==)\S)+)?(?:==| (?:equ|geq|gtr|leq|lss|neq) )(?:"[^"]*"|[^\s"]\S*))/im,lookbehind:!0,inside:{keyword:/\b(?:cmdextversion|defined|errorlevel|exist|not)\b|^if\b/i,string:l,parameter:o,variable:i,number:u,operator:/\^|==|\b(?:equ|geq|gtr|leq|lss|neq)\b/i}},{pattern:/((?:^|[&()])[ \t]*)else\b/im,lookbehind:!0,inside:{keyword:/^else\b/i}},{pattern:/((?:^|[&(])[ \t]*)set(?: \/[a-z](?:[ :](?:"[^"]*"|[^\s"/]\S*))?)* (?:[^^&)\r\n]|\^(?:\r\n|[\s\S]))*/im,lookbehind:!0,inside:{keyword:/^set\b/i,string:l,parameter:o,variable:[i,/\w+(?=(?:[*\/%+\-&^|]|<<|>>)?=)/],number:u,operator:/[*\/%+\-&^|]=?|<<=?|>>=?|[!~_=]/,punctuation:/[()',]/}},{pattern:/((?:^|[&(])[ \t]*@?)\w+\b(?:"(?:[\\"]"|[^"])*"(?!")|[^"^&)\r\n]|\^(?:\r\n|[\s\S]))*/m,lookbehind:!0,inside:{keyword:/^\w+\b/,string:l,parameter:o,label:{pattern:/(^\s*):\S+/m,lookbehind:!0,alias:"property"},variable:i,number:u,operator:/\^/}}],operator:/[&@]/,punctuation:/[()']/}})(t)}return Uc}var Bc,Cv;function wU(){if(Cv)return Bc;Cv=1,Bc=e,e.displayName="bbcode",e.aliases=["shortcode"];function e(t){t.languages.bbcode={tag:{pattern:/\[\/?[^\s=\]]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'"\]=]+))?(?:\s+[^\s=\]]+\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'"\]=]+))*\s*\]/,inside:{tag:{pattern:/^\[\/?[^\s=\]]+/,inside:{punctuation:/^\[\/?/}},"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'"\]=]+)/,inside:{punctuation:[/^=/,{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\]/,"attr-name":/[^\s=\]]+/}}},t.languages.shortcode=t.languages.bbcode}return Bc}var jc,Iv;function TU(){if(Iv)return jc;Iv=1,jc=e,e.displayName="bicep",e.aliases=[];function e(t){t.languages.bicep={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],property:[{pattern:/([\r\n][ \t]*)[a-z_]\w*(?=[ \t]*:)/i,lookbehind:!0},{pattern:/([\r\n][ \t]*)'(?:\\.|\$(?!\{)|[^'\\\r\n$])*'(?=[ \t]*:)/,lookbehind:!0,greedy:!0}],string:[{pattern:/'''[^'][\s\S]*?'''/,greedy:!0},{pattern:/(^|[^\\'])'(?:\\.|\$(?!\{)|[^'\\\r\n$])*'/,lookbehind:!0,greedy:!0}],"interpolated-string":{pattern:/(^|[^\\'])'(?:\\.|\$(?:(?!\{)|\{[^{}\r\n]*\})|[^'\\\r\n$])*'/,lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/\$\{[^{}\r\n]*\}/,inside:{expression:{pattern:/(^\$\{)[\s\S]+(?=\}$)/,lookbehind:!0},punctuation:/^\$\{|\}$/}},string:/[\s\S]+/}},datatype:{pattern:/(\b(?:output|param)\b[ \t]+\w+[ \t]+)\w+\b/,lookbehind:!0,alias:"class-name"},boolean:/\b(?:false|true)\b/,keyword:/\b(?:existing|for|if|in|module|null|output|param|resource|targetScope|var)\b/,decorator:/@\w+\b/,function:/\b[a-z_]\w*(?=[ \t]*\()/i,number:/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:E[+-]?\d+)?/i,operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/,punctuation:/[{}[\];(),.:]/},t.languages.bicep["interpolated-string"].inside.interpolation.inside.expression.inside=t.languages.bicep}return jc}var zc,Ov;function xU(){if(Ov)return zc;Ov=1,zc=e,e.displayName="birb",e.aliases=[];function e(t){t.languages.birb=t.languages.extend("clike",{string:{pattern:/r?("|')(?:\\.|(?!\1)[^\\])*\1/,greedy:!0},"class-name":[/\b[A-Z](?:[\d_]*[a-zA-Z]\w*)?\b/,/\b(?:[A-Z]\w*|(?!(?:var|void)\b)[a-z]\w*)(?=\s+\w+\s*[;,=()])/],keyword:/\b(?:assert|break|case|class|const|default|else|enum|final|follows|for|grab|if|nest|new|next|noSeeb|return|static|switch|throw|var|void|while)\b/,operator:/\+\+|--|&&|\|\||<<=?|>>=?|~(?:\/=?)?|[+\-*\/%&^|=!<>]=?|\?|:/,variable:/\b[a-z_]\w*\b/}),t.languages.insertBefore("birb","function",{metadata:{pattern:/<\w+>/,greedy:!0,alias:"symbol"}})}return zc}var $c,Lv;function AU(){if(Lv)return $c;Lv=1;var e=Yr();$c=t,t.displayName="bison",t.aliases=[];function t(n){n.register(e),n.languages.bison=n.languages.extend("c",{}),n.languages.insertBefore("bison","comment",{bison:{pattern:/^(?:[^%]|%(?!%))*%%[\s\S]*?%%/,inside:{c:{pattern:/%\{[\s\S]*?%\}|\{(?:\{[^}]*\}|[^{}])*\}/,inside:{delimiter:{pattern:/^%?\{|%?\}$/,alias:"punctuation"},"bison-variable":{pattern:/[$@](?:<[^\s>]+>)?[\w$]+/,alias:"variable",inside:{punctuation:/<|>/}},rest:n.languages.c}},comment:n.languages.c.comment,string:n.languages.c.string,property:/\S+(?=:)/,keyword:/%\w+/,number:{pattern:/(^|[^@])\b(?:0x[\da-f]+|\d+)/i,lookbehind:!0},punctuation:/%[%?]|[|:;\[\]<>]/}}})}return $c}var qc,Dv;function RU(){if(Dv)return qc;Dv=1,qc=e,e.displayName="bnf",e.aliases=["rbnf"];function e(t){t.languages.bnf={string:{pattern:/"[^\r\n"]*"|'[^\r\n']*'/},definition:{pattern:/<[^<>\r\n\t]+>(?=\s*::=)/,alias:["rule","keyword"],inside:{punctuation:/^<|>$/}},rule:{pattern:/<[^<>\r\n\t]+>/,inside:{punctuation:/^<|>$/}},operator:/::=|[|()[\]{}*+?]|\.{3}/},t.languages.rbnf=t.languages.bnf}return qc}var Gc,Mv;function NU(){if(Mv)return Gc;Mv=1,Gc=e,e.displayName="brainfuck",e.aliases=[];function e(t){t.languages.brainfuck={pointer:{pattern:/<|>/,alias:"keyword"},increment:{pattern:/\+/,alias:"inserted"},decrement:{pattern:/-/,alias:"deleted"},branching:{pattern:/\[|\]/,alias:"important"},operator:/[.,]/,comment:/\S+/}}return Gc}var Hc,Fv;function CU(){if(Fv)return Hc;Fv=1,Hc=e,e.displayName="brightscript",e.aliases=[];function e(t){t.languages.brightscript={comment:/(?:\brem|').*/i,"directive-statement":{pattern:/(^[\t ]*)#(?:const|else(?:[\t ]+if)?|end[\t ]+if|error|if).*/im,lookbehind:!0,alias:"property",inside:{"error-message":{pattern:/(^#error).+/,lookbehind:!0},directive:{pattern:/^#(?:const|else(?:[\t ]+if)?|end[\t ]+if|error|if)/,alias:"keyword"},expression:{pattern:/[\s\S]+/,inside:null}}},property:{pattern:/([\r\n{,][\t ]*)(?:(?!\d)\w+|"(?:[^"\r\n]|"")*"(?!"))(?=[ \t]*:)/,lookbehind:!0,greedy:!0},string:{pattern:/"(?:[^"\r\n]|"")*"(?!")/,greedy:!0},"class-name":{pattern:/(\bAs[\t ]+)\w+/i,lookbehind:!0},keyword:/\b(?:As|Dim|Each|Else|Elseif|End|Exit|For|Function|Goto|If|In|Print|Return|Step|Stop|Sub|Then|To|While)\b/i,boolean:/\b(?:false|true)\b/i,function:/\b(?!\d)\w+(?=[\t ]*\()/,number:/(?:\b\d+(?:\.\d+)?(?:[ed][+-]\d+)?|&h[a-f\d]+)\b[%&!#]?/i,operator:/--|\+\+|>>=?|<<=?|<>|[-+*/\\<>]=?|[:^=?]|\b(?:and|mod|not|or)\b/i,punctuation:/[.,;()[\]{}]/,constant:/\b(?:LINE_NUM)\b/i},t.languages.brightscript["directive-statement"].inside.expression.inside=t.languages.brightscript}return Hc}var Wc,Pv;function IU(){if(Pv)return Wc;Pv=1,Wc=e,e.displayName="bro",e.aliases=[];function e(t){t.languages.bro={comment:{pattern:/(^|[^\\$])#.*/,lookbehind:!0,inside:{italic:/\b(?:FIXME|TODO|XXX)\b/}},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},boolean:/\b[TF]\b/,function:{pattern:/(\b(?:event|function|hook)[ \t]+)\w+(?:::\w+)?/,lookbehind:!0},builtin:/(?:@(?:load(?:-(?:plugin|sigs))?|unload|prefixes|ifn?def|else|(?:end)?if|DIR|FILENAME))|(?:&?(?:add_func|create_expire|default|delete_func|encrypt|error_handler|expire_func|group|log|mergeable|optional|persistent|priority|raw_output|read_expire|redef|rotate_interval|rotate_size|synchronized|type_column|write_expire))/,constant:{pattern:/(\bconst[ \t]+)\w+/i,lookbehind:!0},keyword:/\b(?:add|addr|alarm|any|bool|break|const|continue|count|delete|double|else|enum|event|export|file|for|function|global|hook|if|in|int|interval|local|module|next|of|opaque|pattern|port|print|record|return|schedule|set|string|subnet|table|time|timeout|using|vector|when)\b/,operator:/--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&|\|\|?|\?|\*|\/|~|\^|%/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,punctuation:/[{}[\];(),.:]/}}return Wc}var Vc,Uv;function OU(){if(Uv)return Vc;Uv=1,Vc=e,e.displayName="bsl",e.aliases=[];function e(t){t.languages.bsl={comment:/\/\/.*/,string:[{pattern:/"(?:[^"]|"")*"(?!")/,greedy:!0},{pattern:/'(?:[^'\r\n\\]|\\.)*'/}],keyword:[{pattern:/(^|[^\w\u0400-\u0484\u0487-\u052f\u1d2b\u1d78\u2de0-\u2dff\ua640-\ua69f\ufe2e\ufe2f])(?:пока|для|новый|прервать|попытка|исключение|вызватьисключение|иначе|конецпопытки|неопределено|функция|перем|возврат|конецфункции|если|иначеесли|процедура|конецпроцедуры|тогда|знач|экспорт|конецесли|из|каждого|истина|ложь|по|цикл|конеццикла|выполнить)(?![\w\u0400-\u0484\u0487-\u052f\u1d2b\u1d78\u2de0-\u2dff\ua640-\ua69f\ufe2e\ufe2f])/i,lookbehind:!0},{pattern:/\b(?:break|do|each|else|elseif|enddo|endfunction|endif|endprocedure|endtry|except|execute|export|false|for|function|if|in|new|null|procedure|raise|return|then|to|true|try|undefined|val|var|while)\b/i}],number:{pattern:/(^(?=\d)|[^\w\u0400-\u0484\u0487-\u052f\u1d2b\u1d78\u2de0-\u2dff\ua640-\ua69f\ufe2e\ufe2f])(?:\d+(?:\.\d*)?|\.\d+)(?:E[+-]?\d+)?/i,lookbehind:!0},operator:[/[<>+\-*/]=?|[%=]/,{pattern:/(^|[^\w\u0400-\u0484\u0487-\u052f\u1d2b\u1d78\u2de0-\u2dff\ua640-\ua69f\ufe2e\ufe2f])(?:и|или|не)(?![\w\u0400-\u0484\u0487-\u052f\u1d2b\u1d78\u2de0-\u2dff\ua640-\ua69f\ufe2e\ufe2f])/i,lookbehind:!0},{pattern:/\b(?:and|not|or)\b/i}],punctuation:/\(\.|\.\)|[()\[\]:;,.]/,directive:[{pattern:/^([ \t]*)&.*/m,lookbehind:!0,greedy:!0,alias:"important"},{pattern:/^([ \t]*)#.*/gm,lookbehind:!0,greedy:!0,alias:"important"}]},t.languages.oscript=t.languages.bsl}return Vc}var Yc,Bv;function LU(){if(Bv)return Yc;Bv=1,Yc=e,e.displayName="cfscript",e.aliases=[];function e(t){t.languages.cfscript=t.languages.extend("clike",{comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,inside:{annotation:{pattern:/(?:^|[^.])@[\w\.]+/,alias:"punctuation"}}},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],keyword:/\b(?:abstract|break|catch|component|continue|default|do|else|extends|final|finally|for|function|if|in|include|package|private|property|public|remote|required|rethrow|return|static|switch|throw|try|var|while|xml)\b(?!\s*=)/,operator:[/\+\+|--|&&|\|\||::|=>|[!=]==|<=?|>=?|[-+*/%&|^!=<>]=?|\?(?:\.|:)?|[?:]/,/\b(?:and|contains|eq|equal|eqv|gt|gte|imp|is|lt|lte|mod|not|or|xor)\b/],scope:{pattern:/\b(?:application|arguments|cgi|client|cookie|local|session|super|this|variables)\b/,alias:"global"},type:{pattern:/\b(?:any|array|binary|boolean|date|guid|numeric|query|string|struct|uuid|void|xml)\b/,alias:"builtin"}}),t.languages.insertBefore("cfscript","keyword",{"function-variable":{pattern:/[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"}}),delete t.languages.cfscript["class-name"],t.languages.cfc=t.languages.cfscript}return Yc}var Kc,jv;function DU(){if(jv)return Kc;jv=1;var e=fh();Kc=t,t.displayName="chaiscript",t.aliases=[];function t(n){n.register(e),n.languages.chaiscript=n.languages.extend("clike",{string:{pattern:/(^|[^\\])'(?:[^'\\]|\\[\s\S])*'/,lookbehind:!0,greedy:!0},"class-name":[{pattern:/(\bclass\s+)\w+/,lookbehind:!0},{pattern:/(\b(?:attr|def)\s+)\w+(?=\s*::)/,lookbehind:!0}],keyword:/\b(?:attr|auto|break|case|catch|class|continue|def|default|else|finally|for|fun|global|if|return|switch|this|try|var|while)\b/,number:[n.languages.cpp.number,/\b(?:Infinity|NaN)\b/],operator:/>>=?|<<=?|\|\||&&|:[:=]?|--|\+\+|[=!<>+\-*/%|&^]=?|[?~]|`[^`\r\n]{1,4}`/}),n.languages.insertBefore("chaiscript","operator",{"parameter-type":{pattern:/([,(]\s*)\w+(?=\s+\w)/,lookbehind:!0,alias:"class-name"}}),n.languages.insertBefore("chaiscript","string",{"string-interpolation":{pattern:/(^|[^\\])"(?:[^"$\\]|\\[\s\S]|\$(?!\{)|\$\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})*\})*"/,lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})*\}/,lookbehind:!0,inside:{"interpolation-expression":{pattern:/(^\$\{)[\s\S]+(?=\}$)/,lookbehind:!0,inside:n.languages.chaiscript},"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"}}},string:/[\s\S]+/}}})}return Kc}var Zc,zv;function MU(){if(zv)return Zc;zv=1,Zc=e,e.displayName="cil",e.aliases=[];function e(t){t.languages.cil={comment:/\/\/.*/,string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},directive:{pattern:/(^|\W)\.[a-z]+(?=\s)/,lookbehind:!0,alias:"class-name"},variable:/\[[\w\.]+\]/,keyword:/\b(?:abstract|ansi|assembly|auto|autochar|beforefieldinit|bool|bstr|byvalstr|catch|char|cil|class|currency|date|decimal|default|enum|error|explicit|extends|extern|famandassem|family|famorassem|final(?:ly)?|float32|float64|hidebysig|u?int(?:8|16|32|64)?|iant|idispatch|implements|import|initonly|instance|interface|iunknown|literal|lpstr|lpstruct|lptstr|lpwstr|managed|method|native(?:Type)?|nested|newslot|object(?:ref)?|pinvokeimpl|private|privatescope|public|reqsecobj|rtspecialname|runtime|sealed|sequential|serializable|specialname|static|string|struct|syschar|tbstr|unicode|unmanagedexp|unsigned|value(?:type)?|variant|virtual|void)\b/,function:/\b(?:(?:constrained|no|readonly|tail|unaligned|volatile)\.)?(?:conv\.(?:[iu][1248]?|ovf\.[iu][1248]?(?:\.un)?|r\.un|r4|r8)|ldc\.(?:i4(?:\.\d+|\.[mM]1|\.s)?|i8|r4|r8)|ldelem(?:\.[iu][1248]?|\.r[48]|\.ref|a)?|ldind\.(?:[iu][1248]?|r[48]|ref)|stelem\.?(?:i[1248]?|r[48]|ref)?|stind\.(?:i[1248]?|r[48]|ref)?|end(?:fault|filter|finally)|ldarg(?:\.[0-3s]|a(?:\.s)?)?|ldloc(?:\.\d+|\.s)?|sub(?:\.ovf(?:\.un)?)?|mul(?:\.ovf(?:\.un)?)?|add(?:\.ovf(?:\.un)?)?|stloc(?:\.[0-3s])?|refany(?:type|val)|blt(?:\.un)?(?:\.s)?|ble(?:\.un)?(?:\.s)?|bgt(?:\.un)?(?:\.s)?|bge(?:\.un)?(?:\.s)?|unbox(?:\.any)?|init(?:blk|obj)|call(?:i|virt)?|brfalse(?:\.s)?|bne\.un(?:\.s)?|ldloca(?:\.s)?|brzero(?:\.s)?|brtrue(?:\.s)?|brnull(?:\.s)?|brinst(?:\.s)?|starg(?:\.s)?|leave(?:\.s)?|shr(?:\.un)?|rem(?:\.un)?|div(?:\.un)?|clt(?:\.un)?|alignment|castclass|ldvirtftn|beq(?:\.s)?|ckfinite|ldsflda|ldtoken|localloc|mkrefany|rethrow|cgt\.un|arglist|switch|stsfld|sizeof|newobj|newarr|ldsfld|ldnull|ldflda|isinst|throw|stobj|stfld|ldstr|ldobj|ldlen|ldftn|ldfld|cpobj|cpblk|break|br\.s|xor|shl|ret|pop|not|nop|neg|jmp|dup|cgt|ceq|box|and|or|br)\b/,boolean:/\b(?:false|true)\b/,number:/\b-?(?:0x[0-9a-f]+|\d+)(?:\.[0-9a-f]+)?\b/i,punctuation:/[{}[\];(),:=]|IL_[0-9A-Za-z]+/}}return Zc}var Xc,$v;function FU(){if($v)return Xc;$v=1,Xc=e,e.displayName="clojure",e.aliases=[];function e(t){t.languages.clojure={comment:{pattern:/;.*/,greedy:!0},string:{pattern:/"(?:[^"\\]|\\.)*"/,greedy:!0},char:/\\\w+/,symbol:{pattern:/(^|[\s()\[\]{},])::?[\w*+!?'<>=/.-]+/,lookbehind:!0},keyword:{pattern:/(\()(?:-|->|->>|\.|\.\.|\*|\/|\+|<|<=|=|==|>|>=|accessor|agent|agent-errors|aget|alength|all-ns|alter|and|append-child|apply|array-map|aset|aset-boolean|aset-byte|aset-char|aset-double|aset-float|aset-int|aset-long|aset-short|assert|assoc|await|await-for|bean|binding|bit-and|bit-not|bit-or|bit-shift-left|bit-shift-right|bit-xor|boolean|branch\?|butlast|byte|cast|char|children|class|clear-agent-errors|comment|commute|comp|comparator|complement|concat|cond|conj|cons|constantly|construct-proxy|contains\?|count|create-ns|create-struct|cycle|dec|declare|def|def-|definline|definterface|defmacro|defmethod|defmulti|defn|defn-|defonce|defproject|defprotocol|defrecord|defstruct|deftype|deref|difference|disj|dissoc|distinct|do|doall|doc|dorun|doseq|dosync|dotimes|doto|double|down|drop|drop-while|edit|end\?|ensure|eval|every\?|false\?|ffirst|file-seq|filter|find|find-doc|find-ns|find-var|first|float|flush|fn|fnseq|for|frest|gensym|get|get-proxy-class|hash-map|hash-set|identical\?|identity|if|if-let|if-not|import|in-ns|inc|index|insert-child|insert-left|insert-right|inspect-table|inspect-tree|instance\?|int|interleave|intersection|into|into-array|iterate|join|key|keys|keyword|keyword\?|last|lazy-cat|lazy-cons|left|lefts|let|line-seq|list|list\*|load|load-file|locking|long|loop|macroexpand|macroexpand-1|make-array|make-node|map|map-invert|map\?|mapcat|max|max-key|memfn|merge|merge-with|meta|min|min-key|monitor-enter|name|namespace|neg\?|new|newline|next|nil\?|node|not|not-any\?|not-every\?|not=|ns|ns-imports|ns-interns|ns-map|ns-name|ns-publics|ns-refers|ns-resolve|ns-unmap|nth|nthrest|or|parse|partial|path|peek|pop|pos\?|pr|pr-str|print|print-str|println|println-str|prn|prn-str|project|proxy|proxy-mappings|quot|quote|rand|rand-int|range|re-find|re-groups|re-matcher|re-matches|re-pattern|re-seq|read|read-line|recur|reduce|ref|ref-set|refer|rem|remove|remove-method|remove-ns|rename|rename-keys|repeat|replace|replicate|resolve|rest|resultset-seq|reverse|rfirst|right|rights|root|rrest|rseq|second|select|select-keys|send|send-off|seq|seq-zip|seq\?|set|set!|short|slurp|some|sort|sort-by|sorted-map|sorted-map-by|sorted-set|special-symbol\?|split-at|split-with|str|string\?|struct|struct-map|subs|subvec|symbol|symbol\?|sync|take|take-nth|take-while|test|throw|time|to-array|to-array-2d|tree-seq|true\?|try|union|up|update-proxy|val|vals|var|var-get|var-set|var\?|vector|vector-zip|vector\?|when|when-first|when-let|when-not|with-local-vars|with-meta|with-open|with-out-str|xml-seq|xml-zip|zero\?|zipmap|zipper)(?=[\s)]|$)/,lookbehind:!0},boolean:/\b(?:false|nil|true)\b/,number:{pattern:/(^|[^\w$@])(?:\d+(?:[/.]\d+)?(?:e[+-]?\d+)?|0x[a-f0-9]+|[1-9]\d?r[a-z0-9]+)[lmn]?(?![\w$@])/i,lookbehind:!0},function:{pattern:/((?:^|[^'])\()[\w*+!?'<>=/.-]+(?=[\s)]|$)/,lookbehind:!0},operator:/[#@^`~]/,punctuation:/[{}\[\](),]/}}return Xc}var Qc,qv;function PU(){if(qv)return Qc;qv=1,Qc=e,e.displayName="cmake",e.aliases=[];function e(t){t.languages.cmake={comment:/#.*/,string:{pattern:/"(?:[^\\"]|\\.)*"/,greedy:!0,inside:{interpolation:{pattern:/\$\{(?:[^{}$]|\$\{[^{}$]*\})*\}/,inside:{punctuation:/\$\{|\}/,variable:/\w+/}}}},variable:/\b(?:CMAKE_\w+|\w+_(?:(?:BINARY|SOURCE)_DIR|DESCRIPTION|HOMEPAGE_URL|ROOT|VERSION(?:_MAJOR|_MINOR|_PATCH|_TWEAK)?)|(?:ANDROID|APPLE|BORLAND|BUILD_SHARED_LIBS|CACHE|CPACK_(?:ABSOLUTE_DESTINATION_FILES|COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY|ERROR_ON_ABSOLUTE_INSTALL_DESTINATION|INCLUDE_TOPLEVEL_DIRECTORY|INSTALL_DEFAULT_DIRECTORY_PERMISSIONS|INSTALL_SCRIPT|PACKAGING_INSTALL_PREFIX|SET_DESTDIR|WARN_ON_ABSOLUTE_INSTALL_DESTINATION)|CTEST_(?:BINARY_DIRECTORY|BUILD_COMMAND|BUILD_NAME|BZR_COMMAND|BZR_UPDATE_OPTIONS|CHANGE_ID|CHECKOUT_COMMAND|CONFIGURATION_TYPE|CONFIGURE_COMMAND|COVERAGE_COMMAND|COVERAGE_EXTRA_FLAGS|CURL_OPTIONS|CUSTOM_(?:COVERAGE_EXCLUDE|ERROR_EXCEPTION|ERROR_MATCH|ERROR_POST_CONTEXT|ERROR_PRE_CONTEXT|MAXIMUM_FAILED_TEST_OUTPUT_SIZE|MAXIMUM_NUMBER_OF_(?:ERRORS|WARNINGS)|MAXIMUM_PASSED_TEST_OUTPUT_SIZE|MEMCHECK_IGNORE|POST_MEMCHECK|POST_TEST|PRE_MEMCHECK|PRE_TEST|TESTS_IGNORE|WARNING_EXCEPTION|WARNING_MATCH)|CVS_CHECKOUT|CVS_COMMAND|CVS_UPDATE_OPTIONS|DROP_LOCATION|DROP_METHOD|DROP_SITE|DROP_SITE_CDASH|DROP_SITE_PASSWORD|DROP_SITE_USER|EXTRA_COVERAGE_GLOB|GIT_COMMAND|GIT_INIT_SUBMODULES|GIT_UPDATE_CUSTOM|GIT_UPDATE_OPTIONS|HG_COMMAND|HG_UPDATE_OPTIONS|LABELS_FOR_SUBPROJECTS|MEMORYCHECK_(?:COMMAND|COMMAND_OPTIONS|SANITIZER_OPTIONS|SUPPRESSIONS_FILE|TYPE)|NIGHTLY_START_TIME|P4_CLIENT|P4_COMMAND|P4_OPTIONS|P4_UPDATE_OPTIONS|RUN_CURRENT_SCRIPT|SCP_COMMAND|SITE|SOURCE_DIRECTORY|SUBMIT_URL|SVN_COMMAND|SVN_OPTIONS|SVN_UPDATE_OPTIONS|TEST_LOAD|TEST_TIMEOUT|TRIGGER_SITE|UPDATE_COMMAND|UPDATE_OPTIONS|UPDATE_VERSION_ONLY|USE_LAUNCHERS)|CYGWIN|ENV|EXECUTABLE_OUTPUT_PATH|GHS-MULTI|IOS|LIBRARY_OUTPUT_PATH|MINGW|MSVC(?:10|11|12|14|60|70|71|80|90|_IDE|_TOOLSET_VERSION|_VERSION)?|MSYS|PROJECT_(?:BINARY_DIR|DESCRIPTION|HOMEPAGE_URL|NAME|SOURCE_DIR|VERSION|VERSION_(?:MAJOR|MINOR|PATCH|TWEAK))|UNIX|WIN32|WINCE|WINDOWS_PHONE|WINDOWS_STORE|XCODE|XCODE_VERSION))\b/,property:/\b(?:cxx_\w+|(?:ARCHIVE_OUTPUT_(?:DIRECTORY|NAME)|COMPILE_DEFINITIONS|COMPILE_PDB_NAME|COMPILE_PDB_OUTPUT_DIRECTORY|EXCLUDE_FROM_DEFAULT_BUILD|IMPORTED_(?:IMPLIB|LIBNAME|LINK_DEPENDENT_LIBRARIES|LINK_INTERFACE_LANGUAGES|LINK_INTERFACE_LIBRARIES|LINK_INTERFACE_MULTIPLICITY|LOCATION|NO_SONAME|OBJECTS|SONAME)|INTERPROCEDURAL_OPTIMIZATION|LIBRARY_OUTPUT_DIRECTORY|LIBRARY_OUTPUT_NAME|LINK_FLAGS|LINK_INTERFACE_LIBRARIES|LINK_INTERFACE_MULTIPLICITY|LOCATION|MAP_IMPORTED_CONFIG|OSX_ARCHITECTURES|OUTPUT_NAME|PDB_NAME|PDB_OUTPUT_DIRECTORY|RUNTIME_OUTPUT_DIRECTORY|RUNTIME_OUTPUT_NAME|STATIC_LIBRARY_FLAGS|VS_CSHARP|VS_DOTNET_REFERENCEPROP|VS_DOTNET_REFERENCE|VS_GLOBAL_SECTION_POST|VS_GLOBAL_SECTION_PRE|VS_GLOBAL|XCODE_ATTRIBUTE)_\w+|\w+_(?:CLANG_TIDY|COMPILER_LAUNCHER|CPPCHECK|CPPLINT|INCLUDE_WHAT_YOU_USE|OUTPUT_NAME|POSTFIX|VISIBILITY_PRESET)|ABSTRACT|ADDITIONAL_MAKE_CLEAN_FILES|ADVANCED|ALIASED_TARGET|ALLOW_DUPLICATE_CUSTOM_TARGETS|ANDROID_(?:ANT_ADDITIONAL_OPTIONS|API|API_MIN|ARCH|ASSETS_DIRECTORIES|GUI|JAR_DEPENDENCIES|NATIVE_LIB_DEPENDENCIES|NATIVE_LIB_DIRECTORIES|PROCESS_MAX|PROGUARD|PROGUARD_CONFIG_PATH|SECURE_PROPS_PATH|SKIP_ANT_STEP|STL_TYPE)|ARCHIVE_OUTPUT_DIRECTORY|ATTACHED_FILES|ATTACHED_FILES_ON_FAIL|AUTOGEN_(?:BUILD_DIR|ORIGIN_DEPENDS|PARALLEL|SOURCE_GROUP|TARGETS_FOLDER|TARGET_DEPENDS)|AUTOMOC|AUTOMOC_(?:COMPILER_PREDEFINES|DEPEND_FILTERS|EXECUTABLE|MACRO_NAMES|MOC_OPTIONS|SOURCE_GROUP|TARGETS_FOLDER)|AUTORCC|AUTORCC_EXECUTABLE|AUTORCC_OPTIONS|AUTORCC_SOURCE_GROUP|AUTOUIC|AUTOUIC_EXECUTABLE|AUTOUIC_OPTIONS|AUTOUIC_SEARCH_PATHS|BINARY_DIR|BUILDSYSTEM_TARGETS|BUILD_RPATH|BUILD_RPATH_USE_ORIGIN|BUILD_WITH_INSTALL_NAME_DIR|BUILD_WITH_INSTALL_RPATH|BUNDLE|BUNDLE_EXTENSION|CACHE_VARIABLES|CLEAN_NO_CUSTOM|COMMON_LANGUAGE_RUNTIME|COMPATIBLE_INTERFACE_(?:BOOL|NUMBER_MAX|NUMBER_MIN|STRING)|COMPILE_(?:DEFINITIONS|FEATURES|FLAGS|OPTIONS|PDB_NAME|PDB_OUTPUT_DIRECTORY)|COST|CPACK_DESKTOP_SHORTCUTS|CPACK_NEVER_OVERWRITE|CPACK_PERMANENT|CPACK_STARTUP_SHORTCUTS|CPACK_START_MENU_SHORTCUTS|CPACK_WIX_ACL|CROSSCOMPILING_EMULATOR|CUDA_EXTENSIONS|CUDA_PTX_COMPILATION|CUDA_RESOLVE_DEVICE_SYMBOLS|CUDA_SEPARABLE_COMPILATION|CUDA_STANDARD|CUDA_STANDARD_REQUIRED|CXX_EXTENSIONS|CXX_STANDARD|CXX_STANDARD_REQUIRED|C_EXTENSIONS|C_STANDARD|C_STANDARD_REQUIRED|DEBUG_CONFIGURATIONS|DEFINE_SYMBOL|DEFINITIONS|DEPENDS|DEPLOYMENT_ADDITIONAL_FILES|DEPLOYMENT_REMOTE_DIRECTORY|DISABLED|DISABLED_FEATURES|ECLIPSE_EXTRA_CPROJECT_CONTENTS|ECLIPSE_EXTRA_NATURES|ENABLED_FEATURES|ENABLED_LANGUAGES|ENABLE_EXPORTS|ENVIRONMENT|EXCLUDE_FROM_ALL|EXCLUDE_FROM_DEFAULT_BUILD|EXPORT_NAME|EXPORT_PROPERTIES|EXTERNAL_OBJECT|EchoString|FAIL_REGULAR_EXPRESSION|FIND_LIBRARY_USE_LIB32_PATHS|FIND_LIBRARY_USE_LIB64_PATHS|FIND_LIBRARY_USE_LIBX32_PATHS|FIND_LIBRARY_USE_OPENBSD_VERSIONING|FIXTURES_CLEANUP|FIXTURES_REQUIRED|FIXTURES_SETUP|FOLDER|FRAMEWORK|Fortran_FORMAT|Fortran_MODULE_DIRECTORY|GENERATED|GENERATOR_FILE_NAME|GENERATOR_IS_MULTI_CONFIG|GHS_INTEGRITY_APP|GHS_NO_SOURCE_GROUP_FILE|GLOBAL_DEPENDS_DEBUG_MODE|GLOBAL_DEPENDS_NO_CYCLES|GNUtoMS|HAS_CXX|HEADER_FILE_ONLY|HELPSTRING|IMPLICIT_DEPENDS_INCLUDE_TRANSFORM|IMPORTED|IMPORTED_(?:COMMON_LANGUAGE_RUNTIME|CONFIGURATIONS|GLOBAL|IMPLIB|LIBNAME|LINK_DEPENDENT_LIBRARIES|LINK_INTERFACE_(?:LANGUAGES|LIBRARIES|MULTIPLICITY)|LOCATION|NO_SONAME|OBJECTS|SONAME)|IMPORT_PREFIX|IMPORT_SUFFIX|INCLUDE_DIRECTORIES|INCLUDE_REGULAR_EXPRESSION|INSTALL_NAME_DIR|INSTALL_RPATH|INSTALL_RPATH_USE_LINK_PATH|INTERFACE_(?:AUTOUIC_OPTIONS|COMPILE_DEFINITIONS|COMPILE_FEATURES|COMPILE_OPTIONS|INCLUDE_DIRECTORIES|LINK_DEPENDS|LINK_DIRECTORIES|LINK_LIBRARIES|LINK_OPTIONS|POSITION_INDEPENDENT_CODE|SOURCES|SYSTEM_INCLUDE_DIRECTORIES)|INTERPROCEDURAL_OPTIMIZATION|IN_TRY_COMPILE|IOS_INSTALL_COMBINED|JOB_POOLS|JOB_POOL_COMPILE|JOB_POOL_LINK|KEEP_EXTENSION|LABELS|LANGUAGE|LIBRARY_OUTPUT_DIRECTORY|LINKER_LANGUAGE|LINK_(?:DEPENDS|DEPENDS_NO_SHARED|DIRECTORIES|FLAGS|INTERFACE_LIBRARIES|INTERFACE_MULTIPLICITY|LIBRARIES|OPTIONS|SEARCH_END_STATIC|SEARCH_START_STATIC|WHAT_YOU_USE)|LISTFILE_STACK|LOCATION|MACOSX_BUNDLE|MACOSX_BUNDLE_INFO_PLIST|MACOSX_FRAMEWORK_INFO_PLIST|MACOSX_PACKAGE_LOCATION|MACOSX_RPATH|MACROS|MANUALLY_ADDED_DEPENDENCIES|MEASUREMENT|MODIFIED|NAME|NO_SONAME|NO_SYSTEM_FROM_IMPORTED|OBJECT_DEPENDS|OBJECT_OUTPUTS|OSX_ARCHITECTURES|OUTPUT_NAME|PACKAGES_FOUND|PACKAGES_NOT_FOUND|PARENT_DIRECTORY|PASS_REGULAR_EXPRESSION|PDB_NAME|PDB_OUTPUT_DIRECTORY|POSITION_INDEPENDENT_CODE|POST_INSTALL_SCRIPT|PREDEFINED_TARGETS_FOLDER|PREFIX|PRE_INSTALL_SCRIPT|PRIVATE_HEADER|PROCESSORS|PROCESSOR_AFFINITY|PROJECT_LABEL|PUBLIC_HEADER|REPORT_UNDEFINED_PROPERTIES|REQUIRED_FILES|RESOURCE|RESOURCE_LOCK|RULE_LAUNCH_COMPILE|RULE_LAUNCH_CUSTOM|RULE_LAUNCH_LINK|RULE_MESSAGES|RUNTIME_OUTPUT_DIRECTORY|RUN_SERIAL|SKIP_AUTOGEN|SKIP_AUTOMOC|SKIP_AUTORCC|SKIP_AUTOUIC|SKIP_BUILD_RPATH|SKIP_RETURN_CODE|SOURCES|SOURCE_DIR|SOVERSION|STATIC_LIBRARY_FLAGS|STATIC_LIBRARY_OPTIONS|STRINGS|SUBDIRECTORIES|SUFFIX|SYMBOLIC|TARGET_ARCHIVES_MAY_BE_SHARED_LIBS|TARGET_MESSAGES|TARGET_SUPPORTS_SHARED_LIBS|TESTS|TEST_INCLUDE_FILE|TEST_INCLUDE_FILES|TIMEOUT|TIMEOUT_AFTER_MATCH|TYPE|USE_FOLDERS|VALUE|VARIABLES|VERSION|VISIBILITY_INLINES_HIDDEN|VS_(?:CONFIGURATION_TYPE|COPY_TO_OUT_DIR|DEBUGGER_(?:COMMAND|COMMAND_ARGUMENTS|ENVIRONMENT|WORKING_DIRECTORY)|DEPLOYMENT_CONTENT|DEPLOYMENT_LOCATION|DOTNET_REFERENCES|DOTNET_REFERENCES_COPY_LOCAL|GLOBAL_KEYWORD|GLOBAL_PROJECT_TYPES|GLOBAL_ROOTNAMESPACE|INCLUDE_IN_VSIX|IOT_STARTUP_TASK|KEYWORD|RESOURCE_GENERATOR|SCC_AUXPATH|SCC_LOCALPATH|SCC_PROJECTNAME|SCC_PROVIDER|SDK_REFERENCES|SHADER_(?:DISABLE_OPTIMIZATIONS|ENABLE_DEBUG|ENTRYPOINT|FLAGS|MODEL|OBJECT_FILE_NAME|OUTPUT_HEADER_FILE|TYPE|VARIABLE_NAME)|STARTUP_PROJECT|TOOL_OVERRIDE|USER_PROPS|WINRT_COMPONENT|WINRT_EXTENSIONS|WINRT_REFERENCES|XAML_TYPE)|WILL_FAIL|WIN32_EXECUTABLE|WINDOWS_EXPORT_ALL_SYMBOLS|WORKING_DIRECTORY|WRAP_EXCLUDE|XCODE_(?:EMIT_EFFECTIVE_PLATFORM_NAME|EXPLICIT_FILE_TYPE|FILE_ATTRIBUTES|LAST_KNOWN_FILE_TYPE|PRODUCT_TYPE|SCHEME_(?:ADDRESS_SANITIZER|ADDRESS_SANITIZER_USE_AFTER_RETURN|ARGUMENTS|DISABLE_MAIN_THREAD_CHECKER|DYNAMIC_LIBRARY_LOADS|DYNAMIC_LINKER_API_USAGE|ENVIRONMENT|EXECUTABLE|GUARD_MALLOC|MAIN_THREAD_CHECKER_STOP|MALLOC_GUARD_EDGES|MALLOC_SCRIBBLE|MALLOC_STACK|THREAD_SANITIZER(?:_STOP)?|UNDEFINED_BEHAVIOUR_SANITIZER(?:_STOP)?|ZOMBIE_OBJECTS))|XCTEST)\b/,keyword:/\b(?:add_compile_definitions|add_compile_options|add_custom_command|add_custom_target|add_definitions|add_dependencies|add_executable|add_library|add_link_options|add_subdirectory|add_test|aux_source_directory|break|build_command|build_name|cmake_host_system_information|cmake_minimum_required|cmake_parse_arguments|cmake_policy|configure_file|continue|create_test_sourcelist|ctest_build|ctest_configure|ctest_coverage|ctest_empty_binary_directory|ctest_memcheck|ctest_read_custom_files|ctest_run_script|ctest_sleep|ctest_start|ctest_submit|ctest_test|ctest_update|ctest_upload|define_property|else|elseif|enable_language|enable_testing|endforeach|endfunction|endif|endmacro|endwhile|exec_program|execute_process|export|export_library_dependencies|file|find_file|find_library|find_package|find_path|find_program|fltk_wrap_ui|foreach|function|get_cmake_property|get_directory_property|get_filename_component|get_property|get_source_file_property|get_target_property|get_test_property|if|include|include_directories|include_external_msproject|include_guard|include_regular_expression|install|install_files|install_programs|install_targets|link_directories|link_libraries|list|load_cache|load_command|macro|make_directory|mark_as_advanced|math|message|option|output_required_files|project|qt_wrap_cpp|qt_wrap_ui|remove|remove_definitions|return|separate_arguments|set|set_directory_properties|set_property|set_source_files_properties|set_target_properties|set_tests_properties|site_name|source_group|string|subdir_depends|subdirs|target_compile_definitions|target_compile_features|target_compile_options|target_include_directories|target_link_directories|target_link_libraries|target_link_options|target_sources|try_compile|try_run|unset|use_mangled_mesa|utility_source|variable_requires|variable_watch|while|write_file)(?=\s*\()\b/,boolean:/\b(?:FALSE|OFF|ON|TRUE)\b/,namespace:/\b(?:INTERFACE|PRIVATE|PROPERTIES|PUBLIC|SHARED|STATIC|TARGET_OBJECTS)\b/,operator:/\b(?:AND|DEFINED|EQUAL|GREATER|LESS|MATCHES|NOT|OR|STREQUAL|STRGREATER|STRLESS|VERSION_EQUAL|VERSION_GREATER|VERSION_LESS)\b/,inserted:{pattern:/\b\w+::\w+\b/,alias:"class-name"},number:/\b\d+(?:\.\d+)*\b/,function:/\b[a-z_]\w*(?=\s*\()\b/i,punctuation:/[()>}]|\$[<{]/}}return Qc}var Jc,Gv;function UU(){if(Gv)return Jc;Gv=1,Jc=e,e.displayName="cobol",e.aliases=[];function e(t){t.languages.cobol={comment:{pattern:/\*>.*|(^[ \t]*)\*.*/m,lookbehind:!0,greedy:!0},string:{pattern:/[xzgn]?(?:"(?:[^\r\n"]|"")*"(?!")|'(?:[^\r\n']|'')*'(?!'))/i,greedy:!0},level:{pattern:/(^[ \t]*)\d+\b/m,lookbehind:!0,greedy:!0,alias:"number"},"class-name":{pattern:/(\bpic(?:ture)?\s+)(?:(?:[-\w$/,:*+<>]|\.(?!\s|$))(?:\(\d+\))?)+/i,lookbehind:!0,inside:{number:{pattern:/(\()\d+/,lookbehind:!0},punctuation:/[()]/}},keyword:{pattern:/(^|[^\w-])(?:ABORT|ACCEPT|ACCESS|ADD|ADDRESS|ADVANCING|AFTER|ALIGNED|ALL|ALPHABET|ALPHABETIC|ALPHABETIC-LOWER|ALPHABETIC-UPPER|ALPHANUMERIC|ALPHANUMERIC-EDITED|ALSO|ALTER|ALTERNATE|ANY|ARE|AREA|AREAS|AS|ASCENDING|ASCII|ASSIGN|ASSOCIATED-DATA|ASSOCIATED-DATA-LENGTH|AT|ATTRIBUTE|AUTHOR|AUTO|AUTO-SKIP|BACKGROUND-COLOR|BACKGROUND-COLOUR|BASIS|BEEP|BEFORE|BEGINNING|BELL|BINARY|BIT|BLANK|BLINK|BLOCK|BOTTOM|BOUNDS|BY|BYFUNCTION|BYTITLE|CALL|CANCEL|CAPABLE|CCSVERSION|CD|CF|CH|CHAINING|CHANGED|CHANNEL|CHARACTER|CHARACTERS|CLASS|CLASS-ID|CLOCK-UNITS|CLOSE|CLOSE-DISPOSITION|COBOL|CODE|CODE-SET|COL|COLLATING|COLUMN|COM-REG|COMMA|COMMITMENT|COMMON|COMMUNICATION|COMP|COMP-1|COMP-2|COMP-3|COMP-4|COMP-5|COMPUTATIONAL|COMPUTATIONAL-1|COMPUTATIONAL-2|COMPUTATIONAL-3|COMPUTATIONAL-4|COMPUTATIONAL-5|COMPUTE|CONFIGURATION|CONTAINS|CONTENT|CONTINUE|CONTROL|CONTROL-POINT|CONTROLS|CONVENTION|CONVERTING|COPY|CORR|CORRESPONDING|COUNT|CRUNCH|CURRENCY|CURSOR|DATA|DATA-BASE|DATE|DATE-COMPILED|DATE-WRITTEN|DAY|DAY-OF-WEEK|DBCS|DE|DEBUG-CONTENTS|DEBUG-ITEM|DEBUG-LINE|DEBUG-NAME|DEBUG-SUB-1|DEBUG-SUB-2|DEBUG-SUB-3|DEBUGGING|DECIMAL-POINT|DECLARATIVES|DEFAULT|DEFAULT-DISPLAY|DEFINITION|DELETE|DELIMITED|DELIMITER|DEPENDING|DESCENDING|DESTINATION|DETAIL|DFHRESP|DFHVALUE|DISABLE|DISK|DISPLAY|DISPLAY-1|DIVIDE|DIVISION|DONTCARE|DOUBLE|DOWN|DUPLICATES|DYNAMIC|EBCDIC|EGCS|EGI|ELSE|EMI|EMPTY-CHECK|ENABLE|END|END-ACCEPT|END-ADD|END-CALL|END-COMPUTE|END-DELETE|END-DIVIDE|END-EVALUATE|END-IF|END-MULTIPLY|END-OF-PAGE|END-PERFORM|END-READ|END-RECEIVE|END-RETURN|END-REWRITE|END-SEARCH|END-START|END-STRING|END-SUBTRACT|END-UNSTRING|END-WRITE|ENDING|ENTER|ENTRY|ENTRY-PROCEDURE|ENVIRONMENT|EOL|EOP|EOS|ERASE|ERROR|ESCAPE|ESI|EVALUATE|EVENT|EVERY|EXCEPTION|EXCLUSIVE|EXHIBIT|EXIT|EXPORT|EXTEND|EXTENDED|EXTERNAL|FD|FILE|FILE-CONTROL|FILLER|FINAL|FIRST|FOOTING|FOR|FOREGROUND-COLOR|FOREGROUND-COLOUR|FROM|FULL|FUNCTION|FUNCTION-POINTER|FUNCTIONNAME|GENERATE|GIVING|GLOBAL|GO|GOBACK|GRID|GROUP|HEADING|HIGH-VALUE|HIGH-VALUES|HIGHLIGHT|I-O|I-O-CONTROL|ID|IDENTIFICATION|IF|IMPLICIT|IMPORT|IN|INDEX|INDEXED|INDICATE|INITIAL|INITIALIZE|INITIATE|INPUT|INPUT-OUTPUT|INSPECT|INSTALLATION|INTEGER|INTO|INVALID|INVOKE|IS|JUST|JUSTIFIED|KANJI|KEPT|KEY|KEYBOARD|LABEL|LANGUAGE|LAST|LB|LD|LEADING|LEFT|LEFTLINE|LENGTH|LENGTH-CHECK|LIBACCESS|LIBPARAMETER|LIBRARY|LIMIT|LIMITS|LINAGE|LINAGE-COUNTER|LINE|LINE-COUNTER|LINES|LINKAGE|LIST|LOCAL|LOCAL-STORAGE|LOCK|LONG-DATE|LONG-TIME|LOW-VALUE|LOW-VALUES|LOWER|LOWLIGHT|MEMORY|MERGE|MESSAGE|MMDDYYYY|MODE|MODULES|MORE-LABELS|MOVE|MULTIPLE|MULTIPLY|NAMED|NATIONAL|NATIONAL-EDITED|NATIVE|NEGATIVE|NETWORK|NEXT|NO|NO-ECHO|NULL|NULLS|NUMBER|NUMERIC|NUMERIC-DATE|NUMERIC-EDITED|NUMERIC-TIME|OBJECT-COMPUTER|OCCURS|ODT|OF|OFF|OMITTED|ON|OPEN|OPTIONAL|ORDER|ORDERLY|ORGANIZATION|OTHER|OUTPUT|OVERFLOW|OVERLINE|OWN|PACKED-DECIMAL|PADDING|PAGE|PAGE-COUNTER|PASSWORD|PERFORM|PF|PH|PIC|PICTURE|PLUS|POINTER|PORT|POSITION|POSITIVE|PRINTER|PRINTING|PRIVATE|PROCEDURE|PROCEDURE-POINTER|PROCEDURES|PROCEED|PROCESS|PROGRAM|PROGRAM-ID|PROGRAM-LIBRARY|PROMPT|PURGE|QUEUE|QUOTE|QUOTES|RANDOM|RD|READ|READER|REAL|RECEIVE|RECEIVED|RECORD|RECORDING|RECORDS|RECURSIVE|REDEFINES|REEL|REF|REFERENCE|REFERENCES|RELATIVE|RELEASE|REMAINDER|REMARKS|REMOTE|REMOVAL|REMOVE|RENAMES|REPLACE|REPLACING|REPORT|REPORTING|REPORTS|REQUIRED|RERUN|RESERVE|RESET|RETURN|RETURN-CODE|RETURNING|REVERSE-VIDEO|REVERSED|REWIND|REWRITE|RF|RH|RIGHT|ROUNDED|RUN|SAME|SAVE|SCREEN|SD|SEARCH|SECTION|SECURE|SECURITY|SEGMENT|SEGMENT-LIMIT|SELECT|SEND|SENTENCE|SEPARATE|SEQUENCE|SEQUENTIAL|SET|SHARED|SHAREDBYALL|SHAREDBYRUNUNIT|SHARING|SHIFT-IN|SHIFT-OUT|SHORT-DATE|SIGN|SIZE|SORT|SORT-CONTROL|SORT-CORE-SIZE|SORT-FILE-SIZE|SORT-MERGE|SORT-MESSAGE|SORT-MODE-SIZE|SORT-RETURN|SOURCE|SOURCE-COMPUTER|SPACE|SPACES|SPECIAL-NAMES|STANDARD|STANDARD-1|STANDARD-2|START|STATUS|STOP|STRING|SUB-QUEUE-1|SUB-QUEUE-2|SUB-QUEUE-3|SUBTRACT|SUM|SUPPRESS|SYMBOL|SYMBOLIC|SYNC|SYNCHRONIZED|TABLE|TALLY|TALLYING|TAPE|TASK|TERMINAL|TERMINATE|TEST|TEXT|THEN|THREAD|THREAD-LOCAL|THROUGH|THRU|TIME|TIMER|TIMES|TITLE|TO|TODAYS-DATE|TODAYS-NAME|TOP|TRAILING|TRUNCATED|TYPE|TYPEDEF|UNDERLINE|UNIT|UNSTRING|UNTIL|UP|UPON|USAGE|USE|USING|VALUE|VALUES|VARYING|VIRTUAL|WAIT|WHEN|WHEN-COMPILED|WITH|WORDS|WORKING-STORAGE|WRITE|YEAR|YYYYDDD|YYYYMMDD|ZERO-FILL|ZEROES|ZEROS)(?![\w-])/i,lookbehind:!0},boolean:{pattern:/(^|[^\w-])(?:false|true)(?![\w-])/i,lookbehind:!0},number:{pattern:/(^|[^\w-])(?:[+-]?(?:(?:\d+(?:[.,]\d+)?|[.,]\d+)(?:e[+-]?\d+)?|zero))(?![\w-])/i,lookbehind:!0},operator:[/<>|[<>]=?|[=+*/&]/,{pattern:/(^|[^\w-])(?:-|and|equal|greater|less|not|or|than)(?![\w-])/i,lookbehind:!0}],punctuation:/[.:,()]/}}return Jc}var ed,Hv;function BU(){if(Hv)return ed;Hv=1,ed=e,e.displayName="coffeescript",e.aliases=["coffee"];function e(t){(function(n){var i=/#(?!\{).+/,o={pattern:/#\{[^}]+\}/,alias:"variable"};n.languages.coffeescript=n.languages.extend("javascript",{comment:i,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:o}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),n.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:i,interpolation:o}}}),n.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:n.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:o}}]}),n.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete n.languages.coffeescript["template-string"],n.languages.coffee=n.languages.coffeescript})(t)}return ed}var td,Wv;function jU(){if(Wv)return td;Wv=1,td=e,e.displayName="concurnas",e.aliases=["conc"];function e(t){t.languages.concurnas={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?(?:\*\/|$)|\/\/.*)/,lookbehind:!0,greedy:!0},langext:{pattern:/\b\w+\s*\|\|[\s\S]+?\|\|/,greedy:!0,inside:{"class-name":/^\w+/,string:{pattern:/(^\s*\|\|)[\s\S]+(?=\|\|$)/,lookbehind:!0},punctuation:/\|\|/}},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/,lookbehind:!0},keyword:/\b(?:abstract|actor|also|annotation|assert|async|await|bool|boolean|break|byte|case|catch|changed|char|class|closed|constant|continue|def|default|del|double|elif|else|enum|every|extends|false|finally|float|for|from|global|gpudef|gpukernel|if|import|in|init|inject|int|lambda|local|long|loop|match|new|nodefault|null|of|onchange|open|out|override|package|parfor|parforsync|post|pre|private|protected|provide|provider|public|return|shared|short|single|size_t|sizeof|super|sync|this|throw|trait|trans|transient|true|try|typedef|unchecked|using|val|var|void|while|with)\b/,boolean:/\b(?:false|true)\b/,number:/\b0b[01][01_]*L?\b|\b0x(?:[\da-f_]*\.)?[\da-f_p+-]+\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfls]?/i,punctuation:/[{}[\];(),.:]/,operator:/<==|>==|=>|->|<-|<>|&==|&<>|\?:?|\.\?|\+\+|--|[-+*/=<>]=?|[!^~]|\b(?:and|as|band|bor|bxor|comp|is|isnot|mod|or)\b=?/,annotation:{pattern:/@(?:\w+:)?(?:\w+|\[[^\]]+\])?/,alias:"builtin"}},t.languages.insertBefore("concurnas","langext",{"regex-literal":{pattern:/\br("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:t.languages.concurnas},regex:/[\s\S]+/}},"string-literal":{pattern:/(?:\B|\bs)("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:t.languages.concurnas},string:/[\s\S]+/}}}),t.languages.conc=t.languages.concurnas}return td}var nd,Vv;function zU(){if(Vv)return nd;Vv=1,nd=e,e.displayName="coq",e.aliases=[];function e(t){(function(n){for(var i=/\(\*(?:[^(*]|\((?!\*)|\*(?!\))|)*\*\)/.source,o=0;o<2;o++)i=i.replace(//g,function(){return i});i=i.replace(//g,"[]"),n.languages.coq={comment:RegExp(i),string:{pattern:/"(?:[^"]|"")*"(?!")/,greedy:!0},attribute:[{pattern:RegExp(/#\[(?:[^\[\]("]|"(?:[^"]|"")*"(?!")|\((?!\*)|)*\]/.source.replace(//g,function(){return i})),greedy:!0,alias:"attr-name",inside:{comment:RegExp(i),string:{pattern:/"(?:[^"]|"")*"(?!")/,greedy:!0},operator:/=/,punctuation:/^#\[|\]$|[,()]/}},{pattern:/\b(?:Cumulative|Global|Local|Monomorphic|NonCumulative|Polymorphic|Private|Program)\b/,alias:"attr-name"}],keyword:/\b(?:Abort|About|Add|Admit|Admitted|All|Arguments|As|Assumptions|Axiom|Axioms|Back|BackTo|Backtrace|BinOp|BinOpSpec|BinRel|Bind|Blacklist|Canonical|Case|Cd|Check|Class|Classes|Close|CoFixpoint|CoInductive|Coercion|Coercions|Collection|Combined|Compute|Conjecture|Conjectures|Constant|Constants|Constraint|Constructors|Context|Corollary|Create|CstOp|Custom|Cut|Debug|Declare|Defined|Definition|Delimit|Dependencies|Dependent|Derive|Diffs|Drop|Elimination|End|Entry|Equality|Eval|Example|Existential|Existentials|Existing|Export|Extern|Extraction|Fact|Fail|Field|File|Firstorder|Fixpoint|Flags|Focus|From|Funclass|Function|Functional|GC|Generalizable|Goal|Grab|Grammar|Graph|Guarded|Haskell|Heap|Hide|Hint|HintDb|Hints|Hypotheses|Hypothesis|IF|Identity|Immediate|Implicit|Implicits|Import|Include|Induction|Inductive|Infix|Info|Initial|InjTyp|Inline|Inspect|Instance|Instances|Intro|Intros|Inversion|Inversion_clear|JSON|Language|Left|Lemma|Let|Lia|Libraries|Library|Load|LoadPath|Locate|Ltac|Ltac2|ML|Match|Method|Minimality|Module|Modules|Morphism|Next|NoInline|Notation|Number|OCaml|Obligation|Obligations|Opaque|Open|Optimize|Parameter|Parameters|Parametric|Path|Paths|Prenex|Preterm|Primitive|Print|Profile|Projections|Proof|Prop|PropBinOp|PropOp|PropUOp|Property|Proposition|Pwd|Qed|Quit|Rec|Record|Recursive|Redirect|Reduction|Register|Relation|Remark|Remove|Require|Reserved|Reset|Resolve|Restart|Rewrite|Right|Ring|Rings|SProp|Saturate|Save|Scheme|Scope|Scopes|Search|SearchHead|SearchPattern|SearchRewrite|Section|Separate|Set|Setoid|Show|Signatures|Solve|Solver|Sort|Sortclass|Sorted|Spec|Step|Strategies|Strategy|String|Structure|SubClass|Subgraph|SuchThat|Tactic|Term|TestCompile|Theorem|Time|Timeout|To|Transparent|Type|Typeclasses|Types|Typing|UnOp|UnOpSpec|Undelimit|Undo|Unfocus|Unfocused|Unfold|Universe|Universes|Unshelve|Variable|Variables|Variant|Verbose|View|Visibility|Zify|_|apply|as|at|by|cofix|else|end|exists|exists2|fix|for|forall|fun|if|in|let|match|measure|move|removed|return|struct|then|using|wf|where|with)\b/,number:/\b(?:0x[a-f0-9][a-f0-9_]*(?:\.[a-f0-9_]+)?(?:p[+-]?\d[\d_]*)?|\d[\d_]*(?:\.[\d_]+)?(?:e[+-]?\d[\d_]*)?)\b/i,punct:{pattern:/@\{|\{\||\[=|:>/,alias:"punctuation"},operator:/\/\\|\\\/|\.{2,3}|:{1,2}=|\*\*|[-=]>|<(?:->?|[+:=>]|<:)|>(?:=|->)|\|[-|]?|[-!%&*+/<=>?@^~']/,punctuation:/\.\(|`\(|@\{|`\{|\{\||\[=|:>|[:.,;(){}\[\]]/}})(t)}return nd}var rd,Yv;function _s(){if(Yv)return rd;Yv=1,rd=e,e.displayName="ruby",e.aliases=["rb"];function e(t){(function(n){n.languages.ruby=n.languages.extend("clike",{comment:{pattern:/#.*|^=begin\s[\s\S]*?^=end/m,greedy:!0},"class-name":{pattern:/(\b(?:class|module)\s+|\bcatch\s+\()[\w.\\]+|\b[A-Z_]\w*(?=\s*\.\s*new\b)/,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:BEGIN|END|alias|and|begin|break|case|class|def|define_method|defined|do|each|else|elsif|end|ensure|extend|for|if|in|include|module|new|next|nil|not|or|prepend|private|protected|public|raise|redo|require|rescue|retry|return|self|super|then|throw|undef|unless|until|when|while|yield)\b/,operator:/\.{2,3}|&\.|===||[!=]?~|(?:&&|\|\||<<|>>|\*\*|[+\-*/%<>!^&|=])=?|[?:]/,punctuation:/[(){}[\].,;]/}),n.languages.insertBefore("ruby","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}});var i={pattern:/((?:^|[^\\])(?:\\{2})*)#\{(?:[^{}]|\{[^{}]*\})*\}/,lookbehind:!0,inside:{content:{pattern:/^(#\{)[\s\S]+(?=\}$)/,lookbehind:!0,inside:n.languages.ruby},delimiter:{pattern:/^#\{|\}$/,alias:"punctuation"}}};delete n.languages.ruby.function;var o="(?:"+[/([^a-zA-Z0-9\s{(\[<=])(?:(?!\1)[^\\]|\\[\s\S])*\1/.source,/\((?:[^()\\]|\\[\s\S]|\((?:[^()\\]|\\[\s\S])*\))*\)/.source,/\{(?:[^{}\\]|\\[\s\S]|\{(?:[^{}\\]|\\[\s\S])*\})*\}/.source,/\[(?:[^\[\]\\]|\\[\s\S]|\[(?:[^\[\]\\]|\\[\s\S])*\])*\]/.source,/<(?:[^<>\\]|\\[\s\S]|<(?:[^<>\\]|\\[\s\S])*>)*>/.source].join("|")+")",l=/(?:"(?:\\.|[^"\\\r\n])*"|(?:\b[a-zA-Z_]\w*|[^\s\0-\x7F]+)[?!]?|\$.)/.source;n.languages.insertBefore("ruby","keyword",{"regex-literal":[{pattern:RegExp(/%r/.source+o+/[egimnosux]{0,6}/.source),greedy:!0,inside:{interpolation:i,regex:/[\s\S]+/}},{pattern:/(^|[^/])\/(?!\/)(?:\[[^\r\n\]]+\]|\\.|[^[/\\\r\n])+\/[egimnosux]{0,6}(?=\s*(?:$|[\r\n,.;})#]))/,lookbehind:!0,greedy:!0,inside:{interpolation:i,regex:/[\s\S]+/}}],variable:/[@$]+[a-zA-Z_]\w*(?:[?!]|\b)/,symbol:[{pattern:RegExp(/(^|[^:]):/.source+l),lookbehind:!0,greedy:!0},{pattern:RegExp(/([\r\n{(,][ \t]*)/.source+l+/(?=:(?!:))/.source),lookbehind:!0,greedy:!0}],"method-definition":{pattern:/(\bdef\s+)\w+(?:\s*\.\s*\w+)?/,lookbehind:!0,inside:{function:/\b\w+$/,keyword:/^self\b/,"class-name":/^\w+/,punctuation:/\./}}}),n.languages.insertBefore("ruby","string",{"string-literal":[{pattern:RegExp(/%[qQiIwWs]?/.source+o),greedy:!0,inside:{interpolation:i,string:/[\s\S]+/}},{pattern:/("|')(?:#\{[^}]+\}|#(?!\{)|\\(?:\r\n|[\s\S])|(?!\1)[^\\#\r\n])*\1/,greedy:!0,inside:{interpolation:i,string:/[\s\S]+/}},{pattern:/<<[-~]?([a-z_]\w*)[\r\n](?:.*[\r\n])*?[\t ]*\1/i,alias:"heredoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<[-~]?[a-z_]\w*|\b[a-z_]\w*$/i,inside:{symbol:/\b\w+/,punctuation:/^<<[-~]?/}},interpolation:i,string:/[\s\S]+/}},{pattern:/<<[-~]?'([a-z_]\w*)'[\r\n](?:.*[\r\n])*?[\t ]*\1/i,alias:"heredoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<[-~]?'[a-z_]\w*'|\b[a-z_]\w*$/i,inside:{symbol:/\b\w+/,punctuation:/^<<[-~]?'|'$/}},string:/[\s\S]+/}}],"command-literal":[{pattern:RegExp(/%x/.source+o),greedy:!0,inside:{interpolation:i,command:{pattern:/[\s\S]+/,alias:"string"}}},{pattern:/`(?:#\{[^}]+\}|#(?!\{)|\\(?:\r\n|[\s\S])|[^\\`#\r\n])*`/,greedy:!0,inside:{interpolation:i,command:{pattern:/[\s\S]+/,alias:"string"}}}]}),delete n.languages.ruby.string,n.languages.insertBefore("ruby","number",{builtin:/\b(?:Array|Bignum|Binding|Class|Continuation|Dir|Exception|FalseClass|File|Fixnum|Float|Hash|IO|Integer|MatchData|Method|Module|NilClass|Numeric|Object|Proc|Range|Regexp|Stat|String|Struct|Symbol|TMS|Thread|ThreadGroup|Time|TrueClass)\b/,constant:/\b[A-Z][A-Z0-9_]*(?:[?!]|\b)/}),n.languages.rb=n.languages.ruby})(t)}return rd}var ad,Kv;function $U(){if(Kv)return ad;Kv=1;var e=_s();ad=t,t.displayName="crystal",t.aliases=[];function t(n){n.register(e),(function(i){i.languages.crystal=i.languages.extend("ruby",{keyword:[/\b(?:__DIR__|__END_LINE__|__FILE__|__LINE__|abstract|alias|annotation|as|asm|begin|break|case|class|def|do|else|elsif|end|ensure|enum|extend|for|fun|if|ifdef|include|instance_sizeof|lib|macro|module|next|of|out|pointerof|private|protected|ptr|require|rescue|return|select|self|sizeof|struct|super|then|type|typeof|undef|uninitialized|union|unless|until|when|while|with|yield)\b/,{pattern:/(\.\s*)(?:is_a|responds_to)\?/,lookbehind:!0}],number:/\b(?:0b[01_]*[01]|0o[0-7_]*[0-7]|0x[\da-fA-F_]*[\da-fA-F]|(?:\d(?:[\d_]*\d)?)(?:\.[\d_]*\d)?(?:[eE][+-]?[\d_]*\d)?)(?:_(?:[uif](?:8|16|32|64))?)?\b/,operator:[/->/,i.languages.ruby.operator],punctuation:/[(){}[\].,;\\]/}),i.languages.insertBefore("crystal","string-literal",{attribute:{pattern:/@\[.*?\]/,inside:{delimiter:{pattern:/^@\[|\]$/,alias:"punctuation"},attribute:{pattern:/^(\s*)\w+/,lookbehind:!0,alias:"class-name"},args:{pattern:/\S(?:[\s\S]*\S)?/,inside:i.languages.crystal}}},expansion:{pattern:/\{(?:\{.*?\}|%.*?%)\}/,inside:{content:{pattern:/^(\{.)[\s\S]+(?=.\}$)/,lookbehind:!0,inside:i.languages.crystal},delimiter:{pattern:/^\{[\{%]|[\}%]\}$/,alias:"operator"}}},char:{pattern:/'(?:[^\\\r\n]{1,2}|\\(?:.|u(?:[A-Fa-f0-9]{1,4}|\{[A-Fa-f0-9]{1,6}\})))'/,greedy:!0}})})(n)}return ad}var id,Zv;function qU(){if(Zv)return id;Zv=1;var e=ks();id=t,t.displayName="cshtml",t.aliases=["razor"];function t(n){n.register(e),(function(i){var o=/\/(?![/*])|\/\/.*[\r\n]|\/\*[^*]*(?:\*(?!\/)[^*]*)*\*\//.source,l=/@(?!")|"(?:[^\r\n\\"]|\\.)*"|@"(?:[^\\"]|""|\\[\s\S])*"(?!")/.source+"|"+/'(?:(?:[^\r\n'\\]|\\.|\\[Uux][\da-fA-F]{1,8})'|(?=[^\\](?!')))/.source;function u(T,N){for(var R=0;R/g,function(){return"(?:"+T+")"});return T.replace(//g,"[^\\s\\S]").replace(//g,"(?:"+l+")").replace(//g,"(?:"+o+")")}var c=u(/\((?:[^()'"@/]|||)*\)/.source,2),p=u(/\[(?:[^\[\]'"@/]|||)*\]/.source,2),f=u(/\{(?:[^{}'"@/]|||)*\}/.source,2),m=u(/<(?:[^<>'"@/]|||)*>/.source,2),h=/(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?/.source,S=/(?!\d)[^\s>\/=$<%]+/.source+h+/\s*\/?>/.source,E=/\B@?/.source+"(?:"+/<([a-zA-Z][\w:]*)/.source+h+/\s*>/.source+"(?:"+(/[^<]/.source+"|"+/<\/?(?!\1\b)/.source+S+"|"+u(/<\1/.source+h+/\s*>/.source+"(?:"+(/[^<]/.source+"|"+/<\/?(?!\1\b)/.source+S+"|")+")*"+/<\/\1\s*>/.source,2))+")*"+/<\/\1\s*>/.source+"|"+/|\+|~|\|\|/,punctuation:/[(),]/}},n.languages.css.atrule.inside["selector-function-argument"].inside=o,n.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}});var l={pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0},u={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0};n.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:l,number:u,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:l,number:u})})(t)}return sd}var ld,Jv;function WU(){if(Jv)return ld;Jv=1,ld=e,e.displayName="csv",e.aliases=[];function e(t){t.languages.csv={value:/[^\r\n,"]+|"(?:[^"]|"")*"(?!")/,punctuation:/,/}}return ld}var ud,ek;function VU(){if(ek)return ud;ek=1,ud=e,e.displayName="cypher",e.aliases=[];function e(t){t.languages.cypher={comment:/\/\/.*/,string:{pattern:/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/,greedy:!0},"class-name":{pattern:/(:\s*)(?:\w+|`(?:[^`\\\r\n])*`)(?=\s*[{):])/,lookbehind:!0,greedy:!0},relationship:{pattern:/(-\[\s*(?:\w+\s*|`(?:[^`\\\r\n])*`\s*)?:\s*|\|\s*:\s*)(?:\w+|`(?:[^`\\\r\n])*`)/,lookbehind:!0,greedy:!0,alias:"property"},identifier:{pattern:/`(?:[^`\\\r\n])*`/,greedy:!0},variable:/\$\w+/,keyword:/\b(?:ADD|ALL|AND|AS|ASC|ASCENDING|ASSERT|BY|CALL|CASE|COMMIT|CONSTRAINT|CONTAINS|CREATE|CSV|DELETE|DESC|DESCENDING|DETACH|DISTINCT|DO|DROP|ELSE|END|ENDS|EXISTS|FOR|FOREACH|IN|INDEX|IS|JOIN|KEY|LIMIT|LOAD|MANDATORY|MATCH|MERGE|NODE|NOT|OF|ON|OPTIONAL|OR|ORDER(?=\s+BY)|PERIODIC|REMOVE|REQUIRE|RETURN|SCALAR|SCAN|SET|SKIP|START|STARTS|THEN|UNION|UNIQUE|UNWIND|USING|WHEN|WHERE|WITH|XOR|YIELD)\b/i,function:/\b\w+\b(?=\s*\()/,boolean:/\b(?:false|null|true)\b/i,number:/\b(?:0x[\da-fA-F]+|\d+(?:\.\d+)?(?:[eE][+-]?\d+)?)\b/,operator:/:|<--?|--?>?|<>|=~?|[<>]=?|[+*/%^|]|\.\.\.?/,punctuation:/[()[\]{},;.]/}}return ud}var cd,tk;function YU(){if(tk)return cd;tk=1,cd=e,e.displayName="d",e.aliases=[];function e(t){t.languages.d=t.languages.extend("clike",{comment:[{pattern:/^\s*#!.+/,greedy:!0},{pattern:RegExp(/(^|[^\\])/.source+"(?:"+[/\/\+(?:\/\+(?:[^+]|\+(?!\/))*\+\/|(?!\/\+)[\s\S])*?\+\//.source,/\/\/.*/.source,/\/\*[\s\S]*?\*\//.source].join("|")+")"),lookbehind:!0,greedy:!0}],string:[{pattern:RegExp([/\b[rx]"(?:\\[\s\S]|[^\\"])*"[cwd]?/.source,/\bq"(?:\[[\s\S]*?\]|\([\s\S]*?\)|<[\s\S]*?>|\{[\s\S]*?\})"/.source,/\bq"((?!\d)\w+)$[\s\S]*?^\1"/.source,/\bq"(.)[\s\S]*?\2"/.source,/(["`])(?:\\[\s\S]|(?!\3)[^\\])*\3[cwd]?/.source].join("|"),"m"),greedy:!0},{pattern:/\bq\{(?:\{[^{}]*\}|[^{}])*\}/,greedy:!0,alias:"token-string"}],keyword:/\$|\b(?:__(?:(?:DATE|EOF|FILE|FUNCTION|LINE|MODULE|PRETTY_FUNCTION|TIMESTAMP|TIME|VENDOR|VERSION)__|gshared|parameters|traits|vector)|abstract|alias|align|asm|assert|auto|body|bool|break|byte|case|cast|catch|cdouble|cent|cfloat|char|class|const|continue|creal|dchar|debug|default|delegate|delete|deprecated|do|double|dstring|else|enum|export|extern|false|final|finally|float|for|foreach|foreach_reverse|function|goto|idouble|if|ifloat|immutable|import|inout|int|interface|invariant|ireal|lazy|long|macro|mixin|module|new|nothrow|null|out|override|package|pragma|private|protected|ptrdiff_t|public|pure|real|ref|return|scope|shared|short|size_t|static|string|struct|super|switch|synchronized|template|this|throw|true|try|typedef|typeid|typeof|ubyte|ucent|uint|ulong|union|unittest|ushort|version|void|volatile|wchar|while|with|wstring)\b/,number:[/\b0x\.?[a-f\d_]+(?:(?!\.\.)\.[a-f\d_]*)?(?:p[+-]?[a-f\d_]+)?[ulfi]{0,4}/i,{pattern:/((?:\.\.)?)(?:\b0b\.?|\b|\.)\d[\d_]*(?:(?!\.\.)\.[\d_]*)?(?:e[+-]?\d[\d_]*)?[ulfi]{0,4}/i,lookbehind:!0}],operator:/\|[|=]?|&[&=]?|\+[+=]?|-[-=]?|\.?\.\.|=[>=]?|!(?:i[ns]\b|<>?=?|>=?|=)?|\bi[ns]\b|(?:<[<>]?|>>?>?|\^\^|[*\/%^~])=?/}),t.languages.insertBefore("d","string",{char:/'(?:\\(?:\W|\w+)|[^\\])'/}),t.languages.insertBefore("d","keyword",{property:/\B@\w*/}),t.languages.insertBefore("d","function",{register:{pattern:/\b(?:[ABCD][LHX]|E?(?:BP|DI|SI|SP)|[BS]PL|[ECSDGF]S|CR[0234]|[DS]IL|DR[012367]|E[ABCD]X|X?MM[0-7]|R(?:1[0-5]|[89])[BWD]?|R[ABCD]X|R[BS]P|R[DS]I|TR[3-7]|XMM(?:1[0-5]|[89])|YMM(?:1[0-5]|\d))\b|\bST(?:\([0-7]\)|\b)/,alias:"variable"}})}return cd}var dd,nk;function KU(){if(nk)return dd;nk=1,dd=e,e.displayName="dart",e.aliases=[];function e(t){(function(n){var i=[/\b(?:async|sync|yield)\*/,/\b(?:abstract|assert|async|await|break|case|catch|class|const|continue|covariant|default|deferred|do|dynamic|else|enum|export|extends|extension|external|factory|final|finally|for|get|hide|if|implements|import|in|interface|library|mixin|new|null|on|operator|part|rethrow|return|set|show|static|super|switch|sync|this|throw|try|typedef|var|void|while|with|yield)\b/],o=/(^|[^\w.])(?:[a-z]\w*\s*\.\s*)*(?:[A-Z]\w*\s*\.\s*)*/.source,l={pattern:RegExp(o+/[A-Z](?:[\d_A-Z]*[a-z]\w*)?\b/.source),lookbehind:!0,inside:{namespace:{pattern:/^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/,inside:{punctuation:/\./}}}};n.languages.dart=n.languages.extend("clike",{"class-name":[l,{pattern:RegExp(o+/[A-Z]\w*(?=\s+\w+\s*[;,=()])/.source),lookbehind:!0,inside:l.inside}],keyword:i,operator:/\bis!|\b(?:as|is)\b|\+\+|--|&&|\|\||<<=?|>>=?|~(?:\/=?)?|[+\-*\/%&^|=!<>]=?|\?/}),n.languages.insertBefore("dart","string",{"string-literal":{pattern:/r?(?:("""|''')[\s\S]*?\1|(["'])(?:\\.|(?!\2)[^\\\r\n])*\2(?!\2))/,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$(?:\w+|\{(?:[^{}]|\{[^{}]*\})*\})/,lookbehind:!0,inside:{punctuation:/^\$\{?|\}$/,expression:{pattern:/[\s\S]+/,inside:n.languages.dart}}},string:/[\s\S]+/}},string:void 0}),n.languages.insertBefore("dart","class-name",{metadata:{pattern:/@\w+/,alias:"function"}}),n.languages.insertBefore("dart","class-name",{generics:{pattern:/<(?:[\w\s,.&?]|<(?:[\w\s,.&?]|<(?:[\w\s,.&?]|<[\w\s,.&?]*>)*>)*>)*>/,inside:{"class-name":l,keyword:i,punctuation:/[<>(),.:]/,operator:/[?&|]/}}})})(t)}return dd}var pd,rk;function ZU(){if(rk)return pd;rk=1,pd=e,e.displayName="dataweave",e.aliases=[];function e(t){(function(n){n.languages.dataweave={url:/\b[A-Za-z]+:\/\/[\w/:.?=&-]+|\burn:[\w:.?=&-]+/,property:{pattern:/(?:\b\w+#)?(?:"(?:\\.|[^\\"\r\n])*"|\b\w+)(?=\s*[:@])/,greedy:!0},string:{pattern:/(["'`])(?:\\[\s\S]|(?!\1)[^\\])*\1/,greedy:!0},"mime-type":/\b(?:application|audio|image|multipart|text|video)\/[\w+-]+/,date:{pattern:/\|[\w:+-]+\|/,greedy:!0},comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],regex:{pattern:/\/(?:[^\\\/\r\n]|\\[^\r\n])+\//,greedy:!0},keyword:/\b(?:and|as|at|case|do|else|fun|if|input|is|match|not|ns|null|or|output|type|unless|update|using|var)\b/,function:/\b[A-Z_]\w*(?=\s*\()/i,number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\];(),.:@]/,operator:/<<|>>|->|[<>~=]=?|!=|--?-?|\+\+?|!|\?/,boolean:/\b(?:false|true)\b/}})(t)}return pd}var fd,ak;function XU(){if(ak)return fd;ak=1,fd=e,e.displayName="dax",e.aliases=[];function e(t){t.languages.dax={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/).*)/,lookbehind:!0},"data-field":{pattern:/'(?:[^']|'')*'(?!')(?:\[[ \w\xA0-\uFFFF]+\])?|\w+\[[ \w\xA0-\uFFFF]+\]/,alias:"symbol"},measure:{pattern:/\[[ \w\xA0-\uFFFF]+\]/,alias:"constant"},string:{pattern:/"(?:[^"]|"")*"(?!")/,greedy:!0},function:/\b(?:ABS|ACOS|ACOSH|ACOT|ACOTH|ADDCOLUMNS|ADDMISSINGITEMS|ALL|ALLCROSSFILTERED|ALLEXCEPT|ALLNOBLANKROW|ALLSELECTED|AND|APPROXIMATEDISTINCTCOUNT|ASIN|ASINH|ATAN|ATANH|AVERAGE|AVERAGEA|AVERAGEX|BETA\.DIST|BETA\.INV|BLANK|CALCULATE|CALCULATETABLE|CALENDAR|CALENDARAUTO|CEILING|CHISQ\.DIST|CHISQ\.DIST\.RT|CHISQ\.INV|CHISQ\.INV\.RT|CLOSINGBALANCEMONTH|CLOSINGBALANCEQUARTER|CLOSINGBALANCEYEAR|COALESCE|COMBIN|COMBINA|COMBINEVALUES|CONCATENATE|CONCATENATEX|CONFIDENCE\.NORM|CONFIDENCE\.T|CONTAINS|CONTAINSROW|CONTAINSSTRING|CONTAINSSTRINGEXACT|CONVERT|COS|COSH|COT|COTH|COUNT|COUNTA|COUNTAX|COUNTBLANK|COUNTROWS|COUNTX|CROSSFILTER|CROSSJOIN|CURRENCY|CURRENTGROUP|CUSTOMDATA|DATATABLE|DATE|DATEADD|DATEDIFF|DATESBETWEEN|DATESINPERIOD|DATESMTD|DATESQTD|DATESYTD|DATEVALUE|DAY|DEGREES|DETAILROWS|DISTINCT|DISTINCTCOUNT|DISTINCTCOUNTNOBLANK|DIVIDE|EARLIER|EARLIEST|EDATE|ENDOFMONTH|ENDOFQUARTER|ENDOFYEAR|EOMONTH|ERROR|EVEN|EXACT|EXCEPT|EXP|EXPON\.DIST|FACT|FALSE|FILTER|FILTERS|FIND|FIRSTDATE|FIRSTNONBLANK|FIRSTNONBLANKVALUE|FIXED|FLOOR|FORMAT|GCD|GENERATE|GENERATEALL|GENERATESERIES|GEOMEAN|GEOMEANX|GROUPBY|HASONEFILTER|HASONEVALUE|HOUR|IF|IF\.EAGER|IFERROR|IGNORE|INT|INTERSECT|ISBLANK|ISCROSSFILTERED|ISEMPTY|ISERROR|ISEVEN|ISFILTERED|ISINSCOPE|ISLOGICAL|ISNONTEXT|ISNUMBER|ISO\.CEILING|ISODD|ISONORAFTER|ISSELECTEDMEASURE|ISSUBTOTAL|ISTEXT|KEEPFILTERS|KEYWORDMATCH|LASTDATE|LASTNONBLANK|LASTNONBLANKVALUE|LCM|LEFT|LEN|LN|LOG|LOG10|LOOKUPVALUE|LOWER|MAX|MAXA|MAXX|MEDIAN|MEDIANX|MID|MIN|MINA|MINUTE|MINX|MOD|MONTH|MROUND|NATURALINNERJOIN|NATURALLEFTOUTERJOIN|NEXTDAY|NEXTMONTH|NEXTQUARTER|NEXTYEAR|NONVISUAL|NORM\.DIST|NORM\.INV|NORM\.S\.DIST|NORM\.S\.INV|NOT|NOW|ODD|OPENINGBALANCEMONTH|OPENINGBALANCEQUARTER|OPENINGBALANCEYEAR|OR|PARALLELPERIOD|PATH|PATHCONTAINS|PATHITEM|PATHITEMREVERSE|PATHLENGTH|PERCENTILE\.EXC|PERCENTILE\.INC|PERCENTILEX\.EXC|PERCENTILEX\.INC|PERMUT|PI|POISSON\.DIST|POWER|PREVIOUSDAY|PREVIOUSMONTH|PREVIOUSQUARTER|PREVIOUSYEAR|PRODUCT|PRODUCTX|QUARTER|QUOTIENT|RADIANS|RAND|RANDBETWEEN|RANK\.EQ|RANKX|RELATED|RELATEDTABLE|REMOVEFILTERS|REPLACE|REPT|RIGHT|ROLLUP|ROLLUPADDISSUBTOTAL|ROLLUPGROUP|ROLLUPISSUBTOTAL|ROUND|ROUNDDOWN|ROUNDUP|ROW|SAMEPERIODLASTYEAR|SAMPLE|SEARCH|SECOND|SELECTCOLUMNS|SELECTEDMEASURE|SELECTEDMEASUREFORMATSTRING|SELECTEDMEASURENAME|SELECTEDVALUE|SIGN|SIN|SINH|SQRT|SQRTPI|STARTOFMONTH|STARTOFQUARTER|STARTOFYEAR|STDEV\.P|STDEV\.S|STDEVX\.P|STDEVX\.S|SUBSTITUTE|SUBSTITUTEWITHINDEX|SUM|SUMMARIZE|SUMMARIZECOLUMNS|SUMX|SWITCH|T\.DIST|T\.DIST\.2T|T\.DIST\.RT|T\.INV|T\.INV\.2T|TAN|TANH|TIME|TIMEVALUE|TODAY|TOPN|TOPNPERLEVEL|TOPNSKIP|TOTALMTD|TOTALQTD|TOTALYTD|TREATAS|TRIM|TRUE|TRUNC|UNICHAR|UNICODE|UNION|UPPER|USERELATIONSHIP|USERNAME|USEROBJECTID|USERPRINCIPALNAME|UTCNOW|UTCTODAY|VALUE|VALUES|VAR\.P|VAR\.S|VARX\.P|VARX\.S|WEEKDAY|WEEKNUM|XIRR|XNPV|YEAR|YEARFRAC)(?=\s*\()/i,keyword:/\b(?:DEFINE|EVALUATE|MEASURE|ORDER\s+BY|RETURN|VAR|START\s+AT|ASC|DESC)\b/i,boolean:{pattern:/\b(?:FALSE|NULL|TRUE)\b/i,alias:"constant"},number:/\b\d+(?:\.\d*)?|\B\.\d+\b/,operator:/:=|[-+*\/=^]|&&?|\|\||<(?:=>?|<|>)?|>[>=]?|\b(?:IN|NOT)\b/i,punctuation:/[;\[\](){}`,.]/}}return fd}var gd,ik;function QU(){if(ik)return gd;ik=1,gd=e,e.displayName="dhall",e.aliases=[];function e(t){t.languages.dhall={comment:/--.*|\{-(?:[^-{]|-(?!\})|\{(?!-)|\{-(?:[^-{]|-(?!\})|\{(?!-))*-\})*-\}/,string:{pattern:/"(?:[^"\\]|\\.)*"|''(?:[^']|'(?!')|'''|''\$\{)*''(?!'|\$)/,greedy:!0,inside:{interpolation:{pattern:/\$\{[^{}]*\}/,inside:{expression:{pattern:/(^\$\{)[\s\S]+(?=\}$)/,lookbehind:!0,alias:"language-dhall",inside:null},punctuation:/\$\{|\}/}}}},label:{pattern:/`[^`]*`/,greedy:!0},url:{pattern:/\bhttps?:\/\/[\w.:%!$&'*+;=@~-]+(?:\/[\w.:%!$&'*+;=@~-]*)*(?:\?[/?\w.:%!$&'*+;=@~-]*)?/,greedy:!0},env:{pattern:/\benv:(?:(?!\d)\w+|"(?:[^"\\=]|\\.)*")/,greedy:!0,inside:{function:/^env/,operator:/^:/,variable:/[\s\S]+/}},hash:{pattern:/\bsha256:[\da-fA-F]{64}\b/,inside:{function:/sha256/,operator:/:/,number:/[\da-fA-F]{64}/}},keyword:/\b(?:as|assert|else|forall|if|in|let|merge|missing|then|toMap|using|with)\b|\u2200/,builtin:/\b(?:None|Some)\b/,boolean:/\b(?:False|True)\b/,number:/\bNaN\b|-?\bInfinity\b|[+-]?\b(?:0x[\da-fA-F]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?)\b/,operator:/\/\\|\/\/\\\\|&&|\|\||===|[!=]=|\/\/|->|\+\+|::|[+*#@=:?<>|\\\u2227\u2a53\u2261\u2afd\u03bb\u2192]/,punctuation:/\.\.|[{}\[\](),./]/,"class-name":/\b[A-Z]\w*\b/},t.languages.dhall.string.inside.interpolation.inside.expression.inside=t.languages.dhall}return gd}var md,ok;function JU(){if(ok)return md;ok=1,md=e,e.displayName="diff",e.aliases=[];function e(t){(function(n){n.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d.*$/m]};var i={"deleted-sign":"-","deleted-arrow":"<","inserted-sign":"+","inserted-arrow":">",unchanged:" ",diff:"!"};Object.keys(i).forEach(function(o){var l=i[o],u=[];/^\w+$/.test(o)||u.push(/\w+/.exec(o)[0]),o==="diff"&&u.push("bold"),n.languages.diff[o]={pattern:RegExp("^(?:["+l+`].*(?:\r ?| -|(?![\\s\\S])))+`,"m"),alias:u,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(o)[0]}}}}),Object.defineProperty(n.languages.diff,"PREFIXES",{value:i})})(t)}return md}var hd,sk;function an(){if(sk)return hd;sk=1,hd=e,e.displayName="markupTemplating",e.aliases=[];function e(t){(function(n){function i(o,l){return"___"+o.toUpperCase()+l+"___"}Object.defineProperties(n.languages["markup-templating"]={},{buildPlaceholders:{value:function(o,l,u,c){if(o.language===l){var p=o.tokenStack=[];o.code=o.code.replace(u,function(f){if(typeof c=="function"&&!c(f))return f;for(var m=p.length,h;o.code.indexOf(h=i(l,m))!==-1;)++m;return p[m]=f,h}),o.grammar=n.languages.markup}}},tokenizePlaceholders:{value:function(o,l){if(o.language!==l||!o.tokenStack)return;o.grammar=n.languages[l];var u=0,c=Object.keys(o.tokenStack);function p(f){for(var m=0;m=c.length);m++){var h=f[m];if(typeof h=="string"||h.content&&typeof h.content=="string"){var S=c[u],E=o.tokenStack[S],v=typeof h=="string"?h:h.content,k=i(l,S),T=v.indexOf(k);if(T>-1){++u;var N=v.substring(0,T),R=new n.Token(l,n.tokenize(E,o.grammar),"language-"+l,E),A=v.substring(T+k.length),O=[];N&&O.push.apply(O,p([N])),O.push(R),A&&O.push.apply(O,p([A])),typeof h=="string"?f.splice.apply(f,[m,1].concat(O)):h.content=O}}else h.content&&p(h.content)}return f}p(o.tokens)}}})})(t)}return hd}var bd,lk;function JU(){if(lk)return bd;lk=1;var e=an();bd=t,t.displayName="django",t.aliases=["jinja2"];function t(n){n.register(e),(function(i){i.languages.django={comment:/^\{#[\s\S]*?#\}$/,tag:{pattern:/(^\{%[+-]?\s*)\w+/,lookbehind:!0,alias:"keyword"},delimiter:{pattern:/^\{[{%][+-]?|[+-]?[}%]\}$/,alias:"punctuation"},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},filter:{pattern:/(\|)\w+/,lookbehind:!0,alias:"function"},test:{pattern:/(\bis\s+(?:not\s+)?)(?!not\b)\w+/,lookbehind:!0,alias:"function"},function:/\b[a-z_]\w+(?=\s*\()/i,keyword:/\b(?:and|as|by|else|for|if|import|in|is|loop|not|or|recursive|with|without)\b/,operator:/[-+%=]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,number:/\b\d+(?:\.\d+)?\b/,boolean:/[Ff]alse|[Nn]one|[Tt]rue/,variable:/\b\w+\b/,punctuation:/[{}[\](),.:;]/};var o=/\{\{[\s\S]*?\}\}|\{%[\s\S]*?%\}|\{#[\s\S]*?#\}/g,l=i.languages["markup-templating"];i.hooks.add("before-tokenize",function(u){l.buildPlaceholders(u,"django",o)}),i.hooks.add("after-tokenize",function(u){l.tokenizePlaceholders(u,"django")}),i.languages.jinja2=i.languages.django,i.hooks.add("before-tokenize",function(u){l.buildPlaceholders(u,"jinja2",o)}),i.hooks.add("after-tokenize",function(u){l.tokenizePlaceholders(u,"jinja2")})})(n)}return bd}var yd,uk;function eB(){if(uk)return yd;uk=1,yd=e,e.displayName="dnsZoneFile",e.aliases=[];function e(t){t.languages["dns-zone-file"]={comment:/;.*/,string:{pattern:/"(?:\\.|[^"\\\r\n])*"/,greedy:!0},variable:[{pattern:/(^\$ORIGIN[ \t]+)\S+/m,lookbehind:!0},{pattern:/(^|\s)@(?=\s|$)/,lookbehind:!0}],keyword:/^\$(?:INCLUDE|ORIGIN|TTL)(?=\s|$)/m,class:{pattern:/(^|\s)(?:CH|CS|HS|IN)(?=\s|$)/,lookbehind:!0,alias:"keyword"},type:{pattern:/(^|\s)(?:A|A6|AAAA|AFSDB|APL|ATMA|CAA|CDNSKEY|CDS|CERT|CNAME|DHCID|DLV|DNAME|DNSKEY|DS|EID|GID|GPOS|HINFO|HIP|IPSECKEY|ISDN|KEY|KX|LOC|MAILA|MAILB|MB|MD|MF|MG|MINFO|MR|MX|NAPTR|NB|NBSTAT|NIMLOC|NINFO|NS|NSAP|NSAP-PTR|NSEC|NSEC3|NSEC3PARAM|NULL|NXT|OPENPGPKEY|PTR|PX|RKEY|RP|RRSIG|RT|SIG|SINK|SMIMEA|SOA|SPF|SRV|SSHFP|TA|TKEY|TLSA|TSIG|TXT|UID|UINFO|UNSPEC|URI|WKS|X25)(?=\s|$)/,lookbehind:!0,alias:"keyword"},punctuation:/[()]/},t.languages["dns-zone"]=t.languages["dns-zone-file"]}return yd}var Ed,ck;function tB(){if(ck)return Ed;ck=1,Ed=e,e.displayName="docker",e.aliases=["dockerfile"];function e(t){(function(n){var i=/\\[\r\n](?:\s|\\[\r\n]|#.*(?!.))*(?![\s#]|\\[\r\n])/.source,o=/(?:[ \t]+(?![ \t])(?:)?|)/.source.replace(//g,function(){return i}),l=/"(?:[^"\\\r\n]|\\(?:\r\n|[\s\S]))*"|'(?:[^'\\\r\n]|\\(?:\r\n|[\s\S]))*'/.source,u=/--[\w-]+=(?:|(?!["'])(?:[^\s\\]|\\.)+)/.source.replace(//g,function(){return l}),c={pattern:RegExp(l),greedy:!0},p={pattern:/(^[ \t]*)#.*/m,lookbehind:!0,greedy:!0};function f(m,h){return m=m.replace(//g,function(){return u}).replace(//g,function(){return o}),RegExp(m,h)}n.languages.docker={instruction:{pattern:/(^[ \t]*)(?:ADD|ARG|CMD|COPY|ENTRYPOINT|ENV|EXPOSE|FROM|HEALTHCHECK|LABEL|MAINTAINER|ONBUILD|RUN|SHELL|STOPSIGNAL|USER|VOLUME|WORKDIR)(?=\s)(?:\\.|[^\r\n\\])*(?:\\$(?:\s|#.*$)*(?![\s#])(?:\\.|[^\r\n\\])*)*/im,lookbehind:!0,greedy:!0,inside:{options:{pattern:f(/(^(?:ONBUILD)?\w+)(?:)*/.source,"i"),lookbehind:!0,greedy:!0,inside:{property:{pattern:/(^|\s)--[\w-]+/,lookbehind:!0},string:[c,{pattern:/(=)(?!["'])(?:[^\s\\]|\\.)+/,lookbehind:!0}],operator:/\\$/m,punctuation:/=/}},keyword:[{pattern:f(/(^(?:ONBUILD)?HEALTHCHECK(?:)*)(?:CMD|NONE)\b/.source,"i"),lookbehind:!0,greedy:!0},{pattern:f(/(^(?:ONBUILD)?FROM(?:)*(?!--)[^ \t\\]+)AS/.source,"i"),lookbehind:!0,greedy:!0},{pattern:f(/(^ONBUILD)\w+/.source,"i"),lookbehind:!0,greedy:!0},{pattern:/^\w+/,greedy:!0}],comment:p,string:c,variable:/\$(?:\w+|\{[^{}"'\\]*\})/,operator:/\\$/m}},comment:p},n.languages.dockerfile=n.languages.docker})(t)}return Ed}var Sd,dk;function nB(){if(dk)return Sd;dk=1,Sd=e,e.displayName="dot",e.aliases=["gv"];function e(t){(function(n){var i="(?:"+[/[a-zA-Z_\x80-\uFFFF][\w\x80-\uFFFF]*/.source,/-?(?:\.\d+|\d+(?:\.\d*)?)/.source,/"[^"\\]*(?:\\[\s\S][^"\\]*)*"/.source,/<(?:[^<>]|(?!)*>/.source].join("|")+")",o={markup:{pattern:/(^<)[\s\S]+(?=>$)/,lookbehind:!0,alias:["language-markup","language-html","language-xml"],inside:n.languages.markup}};function l(u,c){return RegExp(u.replace(//g,function(){return i}),c)}n.languages.dot={comment:{pattern:/\/\/.*|\/\*[\s\S]*?\*\/|^#.*/m,greedy:!0},"graph-name":{pattern:l(/(\b(?:digraph|graph|subgraph)[ \t\r\n]+)/.source,"i"),lookbehind:!0,greedy:!0,alias:"class-name",inside:o},"attr-value":{pattern:l(/(=[ \t\r\n]*)/.source),lookbehind:!0,greedy:!0,inside:o},"attr-name":{pattern:l(/([\[;, \t\r\n])(?=[ \t\r\n]*=)/.source),lookbehind:!0,greedy:!0,inside:o},keyword:/\b(?:digraph|edge|graph|node|strict|subgraph)\b/i,"compass-point":{pattern:/(:[ \t\r\n]*)(?:[ewc_]|[ns][ew]?)(?![\w\x80-\uFFFF])/,lookbehind:!0,alias:"builtin"},node:{pattern:l(/(^|[^-.\w\x80-\uFFFF\\])/.source),lookbehind:!0,greedy:!0,inside:o},operator:/[=:]|-[->]/,punctuation:/[\[\]{};,]/},n.languages.gv=n.languages.dot})(t)}return Sd}var vd,pk;function rB(){if(pk)return vd;pk=1,vd=e,e.displayName="ebnf",e.aliases=[];function e(t){t.languages.ebnf={comment:/\(\*[\s\S]*?\*\)/,string:{pattern:/"[^"\r\n]*"|'[^'\r\n]*'/,greedy:!0},special:{pattern:/\?[^?\r\n]*\?/,greedy:!0,alias:"class-name"},definition:{pattern:/^([\t ]*)[a-z]\w*(?:[ \t]+[a-z]\w*)*(?=\s*=)/im,lookbehind:!0,alias:["rule","keyword"]},rule:/\b[a-z]\w*(?:[ \t]+[a-z]\w*)*\b/i,punctuation:/\([:/]|[:/]\)|[.,;()[\]{}]/,operator:/[-=|*/!]/}}return vd}var kd,fk;function aB(){if(fk)return kd;fk=1,kd=e,e.displayName="editorconfig",e.aliases=[];function e(t){t.languages.editorconfig={comment:/[;#].*/,section:{pattern:/(^[ \t]*)\[.+\]/m,lookbehind:!0,alias:"selector",inside:{regex:/\\\\[\[\]{},!?.*]/,operator:/[!?]|\.\.|\*{1,2}/,punctuation:/[\[\]{},]/}},key:{pattern:/(^[ \t]*)[^\s=]+(?=[ \t]*=)/m,lookbehind:!0,alias:"attr-name"},value:{pattern:/=.*/,alias:"attr-value",inside:{punctuation:/^=/}}}}return kd}var _d,gk;function iB(){if(gk)return _d;gk=1,_d=e,e.displayName="eiffel",e.aliases=[];function e(t){t.languages.eiffel={comment:/--.*/,string:[{pattern:/"([^[]*)\[[\s\S]*?\]\1"/,greedy:!0},{pattern:/"([^{]*)\{[\s\S]*?\}\1"/,greedy:!0},{pattern:/"(?:%(?:(?!\n)\s)*\n\s*%|%\S|[^%"\r\n])*"/,greedy:!0}],char:/'(?:%.|[^%'\r\n])+'/,keyword:/\b(?:across|agent|alias|all|and|as|assign|attached|attribute|check|class|convert|create|Current|debug|deferred|detachable|do|else|elseif|end|ensure|expanded|export|external|feature|from|frozen|if|implies|inherit|inspect|invariant|like|local|loop|not|note|obsolete|old|once|or|Precursor|redefine|rename|require|rescue|Result|retry|select|separate|some|then|undefine|until|variant|Void|when|xor)\b/i,boolean:/\b(?:False|True)\b/i,"class-name":/\b[A-Z][\dA-Z_]*\b/,number:[/\b0[xcb][\da-f](?:_*[\da-f])*\b/i,/(?:\b\d(?:_*\d)*)?\.(?:(?:\d(?:_*\d)*)?e[+-]?)?\d(?:_*\d)*\b|\b\d(?:_*\d)*\b\.?/i],punctuation:/:=|<<|>>|\(\||\|\)|->|\.(?=\w)|[{}[\];(),:?]/,operator:/\\\\|\|\.\.\||\.\.|\/[~\/=]?|[><]=?|[-+*^=~]/}}return _d}var wd,mk;function oB(){if(mk)return wd;mk=1;var e=an();wd=t,t.displayName="ejs",t.aliases=["eta"];function t(n){n.register(e),(function(i){i.languages.ejs={delimiter:{pattern:/^<%[-_=]?|[-_]?%>$/,alias:"punctuation"},comment:/^#[\s\S]*/,"language-javascript":{pattern:/[\s\S]+/,inside:i.languages.javascript}},i.hooks.add("before-tokenize",function(o){var l=/<%(?!%)[\s\S]+?%>/g;i.languages["markup-templating"].buildPlaceholders(o,"ejs",l)}),i.hooks.add("after-tokenize",function(o){i.languages["markup-templating"].tokenizePlaceholders(o,"ejs")}),i.languages.eta=i.languages.ejs})(n)}return wd}var Td,hk;function sB(){if(hk)return Td;hk=1,Td=e,e.displayName="elixir",e.aliases=[];function e(t){t.languages.elixir={doc:{pattern:/@(?:doc|moduledoc)\s+(?:("""|''')[\s\S]*?\1|("|')(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2)/,inside:{attribute:/^@\w+/,string:/['"][\s\S]+/}},comment:{pattern:/#.*/,greedy:!0},regex:{pattern:/~[rR](?:("""|''')(?:\\[\s\S]|(?!\1)[^\\])+\1|([\/|"'])(?:\\.|(?!\2)[^\\\r\n])+\2|\((?:\\.|[^\\)\r\n])+\)|\[(?:\\.|[^\\\]\r\n])+\]|\{(?:\\.|[^\\}\r\n])+\}|<(?:\\.|[^\\>\r\n])+>)[uismxfr]*/,greedy:!0},string:[{pattern:/~[cCsSwW](?:("""|''')(?:\\[\s\S]|(?!\1)[^\\])+\1|([\/|"'])(?:\\.|(?!\2)[^\\\r\n])+\2|\((?:\\.|[^\\)\r\n])+\)|\[(?:\\.|[^\\\]\r\n])+\]|\{(?:\\.|#\{[^}]+\}|#(?!\{)|[^#\\}\r\n])+\}|<(?:\\.|[^\\>\r\n])+>)[csa]?/,greedy:!0,inside:{}},{pattern:/("""|''')[\s\S]*?\1/,greedy:!0,inside:{}},{pattern:/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0,inside:{}}],atom:{pattern:/(^|[^:]):\w+/,lookbehind:!0,alias:"symbol"},module:{pattern:/\b[A-Z]\w*\b/,alias:"class-name"},"attr-name":/\b\w+\??:(?!:)/,argument:{pattern:/(^|[^&])&\d+/,lookbehind:!0,alias:"variable"},attribute:{pattern:/@\w+/,alias:"variable"},function:/\b[_a-zA-Z]\w*[?!]?(?:(?=\s*(?:\.\s*)?\()|(?=\/\d))/,number:/\b(?:0[box][a-f\d_]+|\d[\d_]*)(?:\.[\d_]+)?(?:e[+-]?[\d_]+)?\b/i,keyword:/\b(?:after|alias|and|case|catch|cond|def(?:callback|delegate|exception|impl|macro|module|n|np|p|protocol|struct)?|do|else|end|fn|for|if|import|not|or|quote|raise|require|rescue|try|unless|unquote|use|when)\b/,boolean:/\b(?:false|nil|true)\b/,operator:[/\bin\b|&&?|\|[|>]?|\\\\|::|\.\.\.?|\+\+?|-[->]?|<[-=>]|>=|!==?|\B!|=(?:==?|[>~])?|[*\/^]/,{pattern:/([^<])<(?!<)/,lookbehind:!0},{pattern:/([^>])>(?!>)/,lookbehind:!0}],punctuation:/<<|>>|[.,%\[\]{}()]/},t.languages.elixir.string.forEach(function(n){n.inside={interpolation:{pattern:/#\{[^}]+\}/,inside:{delimiter:{pattern:/^#\{|\}$/,alias:"punctuation"},rest:t.languages.elixir}}}})}return Td}var xd,bk;function lB(){if(bk)return xd;bk=1,xd=e,e.displayName="elm",e.aliases=[];function e(t){t.languages.elm={comment:/--.*|\{-[\s\S]*?-\}/,char:{pattern:/'(?:[^\\'\r\n]|\\(?:[abfnrtv\\']|\d+|x[0-9a-fA-F]+|u\{[0-9a-fA-F]+\}))'/,greedy:!0},string:[{pattern:/"""[\s\S]*?"""/,greedy:!0},{pattern:/"(?:[^\\"\r\n]|\\.)*"/,greedy:!0}],"import-statement":{pattern:/(^[\t ]*)import\s+[A-Z]\w*(?:\.[A-Z]\w*)*(?:\s+as\s+(?:[A-Z]\w*)(?:\.[A-Z]\w*)*)?(?:\s+exposing\s+)?/m,lookbehind:!0,inside:{keyword:/\b(?:as|exposing|import)\b/}},keyword:/\b(?:alias|as|case|else|exposing|if|in|infixl|infixr|let|module|of|then|type)\b/,builtin:/\b(?:abs|acos|always|asin|atan|atan2|ceiling|clamp|compare|cos|curry|degrees|e|flip|floor|fromPolar|identity|isInfinite|isNaN|logBase|max|min|negate|never|not|pi|radians|rem|round|sin|sqrt|tan|toFloat|toPolar|toString|truncate|turns|uncurry|xor)\b/,number:/\b(?:\d+(?:\.\d+)?(?:e[+-]?\d+)?|0x[0-9a-f]+)\b/i,operator:/\s\.\s|[+\-/*=.$<>:&|^?%#@~!]{2,}|[+\-/*=$<>:&|^?%#@~!]/,hvariable:/\b(?:[A-Z]\w*\.)*[a-z]\w*\b/,constant:/\b(?:[A-Z]\w*\.)*[A-Z]\w*\b/,punctuation:/[{}[\]|(),.:]/}}return xd}var Ad,yk;function uB(){if(yk)return Ad;yk=1;var e=_s(),t=an();Ad=n,n.displayName="erb",n.aliases=[];function n(i){i.register(e),i.register(t),(function(o){o.languages.erb={delimiter:{pattern:/^(\s*)<%=?|%>(?=\s*$)/,lookbehind:!0,alias:"punctuation"},ruby:{pattern:/\s*\S[\s\S]*/,alias:"language-ruby",inside:o.languages.ruby}},o.hooks.add("before-tokenize",function(l){var u=/<%=?(?:[^\r\n]|[\r\n](?!=begin)|[\r\n]=begin\s(?:[^\r\n]|[\r\n](?!=end))*[\r\n]=end)+?%>/g;o.languages["markup-templating"].buildPlaceholders(l,"erb",u)}),o.hooks.add("after-tokenize",function(l){o.languages["markup-templating"].tokenizePlaceholders(l,"erb")})})(i)}return Ad}var Rd,Ek;function cB(){if(Ek)return Rd;Ek=1,Rd=e,e.displayName="erlang",e.aliases=[];function e(t){t.languages.erlang={comment:/%.+/,string:{pattern:/"(?:\\.|[^\\"\r\n])*"/,greedy:!0},"quoted-function":{pattern:/'(?:\\.|[^\\'\r\n])+'(?=\()/,alias:"function"},"quoted-atom":{pattern:/'(?:\\.|[^\\'\r\n])+'/,alias:"atom"},boolean:/\b(?:false|true)\b/,keyword:/\b(?:after|case|catch|end|fun|if|of|receive|try|when)\b/,number:[/\$\\?./,/\b\d+#[a-z0-9]+/i,/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i],function:/\b[a-z][\w@]*(?=\()/,variable:{pattern:/(^|[^@])(?:\b|\?)[A-Z_][\w@]*/,lookbehind:!0},operator:[/[=\/<>:]=|=[:\/]=|\+\+?|--?|[=*\/!]|\b(?:and|andalso|band|bnot|bor|bsl|bsr|bxor|div|not|or|orelse|rem|xor)\b/,{pattern:/(^|[^<])<(?!<)/,lookbehind:!0},{pattern:/(^|[^>])>(?!>)/,lookbehind:!0}],atom:/\b[a-z][\w@]*/,punctuation:/[()[\]{}:;,.#|]|<<|>>/}}return Rd}var Nd,Sk;function tR(){if(Sk)return Nd;Sk=1,Nd=e,e.displayName="lua",e.aliases=[];function e(t){t.languages.lua={comment:/^#!.+|--(?:\[(=*)\[[\s\S]*?\]\1\]|.*)/m,string:{pattern:/(["'])(?:(?!\1)[^\\\r\n]|\\z(?:\r\n|\s)|\\(?:\r\n|[^z]))*\1|\[(=*)\[[\s\S]*?\]\2\]/,greedy:!0},number:/\b0x[a-f\d]+(?:\.[a-f\d]*)?(?:p[+-]?\d+)?\b|\b\d+(?:\.\B|(?:\.\d*)?(?:e[+-]?\d+)?\b)|\B\.\d+(?:e[+-]?\d+)?\b/i,keyword:/\b(?:and|break|do|else|elseif|end|false|for|function|goto|if|in|local|nil|not|or|repeat|return|then|true|until|while)\b/,function:/(?!\d)\w+(?=\s*(?:[({]))/,operator:[/[-+*%^&|#]|\/\/?|<[<=]?|>[>=]?|[=~]=?/,{pattern:/(^|[^.])\.\.(?!\.)/,lookbehind:!0}],punctuation:/[\[\](){},;]|\.+|:+/}}return Nd}var Cd,vk;function dB(){if(vk)return Cd;vk=1;var e=tR(),t=an();Cd=n,n.displayName="etlua",n.aliases=[];function n(i){i.register(e),i.register(t),(function(o){o.languages.etlua={delimiter:{pattern:/^<%[-=]?|-?%>$/,alias:"punctuation"},"language-lua":{pattern:/[\s\S]+/,inside:o.languages.lua}},o.hooks.add("before-tokenize",function(l){var u=/<%[\s\S]+?%>/g;o.languages["markup-templating"].buildPlaceholders(l,"etlua",u)}),o.hooks.add("after-tokenize",function(l){o.languages["markup-templating"].tokenizePlaceholders(l,"etlua")})})(i)}return Cd}var Id,kk;function pB(){if(kk)return Id;kk=1,Id=e,e.displayName="excelFormula",e.aliases=[];function e(t){t.languages["excel-formula"]={comment:{pattern:/(\bN\(\s*)"(?:[^"]|"")*"(?=\s*\))/i,lookbehind:!0,greedy:!0},string:{pattern:/"(?:[^"]|"")*"(?!")/,greedy:!0},reference:{pattern:/(?:'[^']*'|(?:[^\s()[\]{}<>*?"';,$&]*\[[^^\s()[\]{}<>*?"']+\])?\w+)!/,greedy:!0,alias:"string",inside:{operator:/!$/,punctuation:/'/,sheet:{pattern:/[^[\]]+$/,alias:"function"},file:{pattern:/\[[^[\]]+\]$/,inside:{punctuation:/[[\]]/}},path:/[\s\S]+/}},"function-name":{pattern:/\b[A-Z]\w*(?=\()/i,alias:"keyword"},range:{pattern:/\$?\b(?:[A-Z]+\$?\d+:\$?[A-Z]+\$?\d+|[A-Z]+:\$?[A-Z]+|\d+:\$?\d+)\b/i,alias:"property",inside:{operator:/:/,cell:/\$?[A-Z]+\$?\d+/i,column:/\$?[A-Z]+/i,row:/\$?\d+/}},cell:{pattern:/\b[A-Z]+\d+\b|\$[A-Za-z]+\$?\d+\b|\b[A-Za-z]+\$\d+\b/,alias:"property"},number:/(?:\b\d+(?:\.\d+)?|\B\.\d+)(?:e[+-]?\d+)?\b/i,boolean:/\b(?:FALSE|TRUE)\b/i,operator:/[-+*/^%=&,]|<[=>]?|>=?/,punctuation:/[[\]();{}|]/},t.languages.xlsx=t.languages.xls=t.languages["excel-formula"]}return Id}var Od,_k;function fB(){if(_k)return Od;_k=1,Od=e,e.displayName="factor",e.aliases=[];function e(t){(function(n){var i={function:/\b(?:BUGS?|FIX(?:MES?)?|NOTES?|TODOS?|XX+|HACKS?|WARN(?:ING)?|\?{2,}|!{2,})\b/},o={number:/\\[^\s']|%\w/},l={comment:[{pattern:/(^|\s)(?:! .*|!$)/,lookbehind:!0,inside:i},{pattern:/(^|\s)\/\*\s[\s\S]*?\*\/(?=\s|$)/,lookbehind:!0,greedy:!0,inside:i},{pattern:/(^|\s)!\[(={0,6})\[\s[\s\S]*?\]\2\](?=\s|$)/,lookbehind:!0,greedy:!0,inside:i}],number:[{pattern:/(^|\s)[+-]?\d+(?=\s|$)/,lookbehind:!0},{pattern:/(^|\s)[+-]?0(?:b[01]+|o[0-7]+|d\d+|x[\dA-F]+)(?=\s|$)/i,lookbehind:!0},{pattern:/(^|\s)[+-]?\d+\/\d+\.?(?=\s|$)/,lookbehind:!0},{pattern:/(^|\s)\+?\d+\+\d+\/\d+(?=\s|$)/,lookbehind:!0},{pattern:/(^|\s)-\d+-\d+\/\d+(?=\s|$)/,lookbehind:!0},{pattern:/(^|\s)[+-]?(?:\d*\.\d+|\d+\.\d*|\d+)(?:e[+-]?\d+)?(?=\s|$)/i,lookbehind:!0},{pattern:/(^|\s)NAN:\s+[\da-fA-F]+(?=\s|$)/,lookbehind:!0},{pattern:/(^|\s)[+-]?0(?:b1\.[01]*|o1\.[0-7]*|d1\.\d*|x1\.[\dA-F]*)p\d+(?=\s|$)/i,lookbehind:!0}],regexp:{pattern:/(^|\s)R\/\s(?:\\\S|[^\\/])*\/(?:[idmsr]*|[idmsr]+-[idmsr]+)(?=\s|$)/,lookbehind:!0,alias:"number",inside:{variable:/\\\S/,keyword:/[+?*\[\]^$(){}.|]/,operator:{pattern:/(\/)[idmsr]+(?:-[idmsr]+)?/,lookbehind:!0}}},boolean:{pattern:/(^|\s)[tf](?=\s|$)/,lookbehind:!0},"custom-string":{pattern:/(^|\s)[A-Z0-9\-]+"\s(?:\\\S|[^"\\])*"/,lookbehind:!0,greedy:!0,alias:"string",inside:{number:/\\\S|%\w|\//}},"multiline-string":[{pattern:/(^|\s)STRING:\s+\S+(?:\n|\r\n).*(?:\n|\r\n)\s*;(?=\s|$)/,lookbehind:!0,greedy:!0,alias:"string",inside:{number:o.number,"semicolon-or-setlocal":{pattern:/([\r\n][ \t]*);(?=\s|$)/,lookbehind:!0,alias:"function"}}},{pattern:/(^|\s)HEREDOC:\s+\S+(?:\n|\r\n).*(?:\n|\r\n)\s*\S+(?=\s|$)/,lookbehind:!0,greedy:!0,alias:"string",inside:o},{pattern:/(^|\s)\[(={0,6})\[\s[\s\S]*?\]\2\](?=\s|$)/,lookbehind:!0,greedy:!0,alias:"string",inside:o}],"special-using":{pattern:/(^|\s)USING:(?:\s\S+)*(?=\s+;(?:\s|$))/,lookbehind:!0,alias:"function",inside:{string:{pattern:/(\s)[^:\s]+/,lookbehind:!0}}},"stack-effect-delimiter":[{pattern:/(^|\s)(?:call|eval|execute)?\((?=\s)/,lookbehind:!0,alias:"operator"},{pattern:/(\s)--(?=\s)/,lookbehind:!0,alias:"operator"},{pattern:/(\s)\)(?=\s|$)/,lookbehind:!0,alias:"operator"}],combinators:{pattern:null,lookbehind:!0,alias:"keyword"},"kernel-builtin":{pattern:null,lookbehind:!0,alias:"variable"},"sequences-builtin":{pattern:null,lookbehind:!0,alias:"variable"},"math-builtin":{pattern:null,lookbehind:!0,alias:"variable"},"constructor-word":{pattern:/(^|\s)<(?!=+>|-+>)\S+>(?=\s|$)/,lookbehind:!0,alias:"keyword"},"other-builtin-syntax":{pattern:null,lookbehind:!0,alias:"operator"},"conventionally-named-word":{pattern:/(^|\s)(?!")(?:(?:change|new|set|with)-\S+|\$\S+|>[^>\s]+|[^:>\s]+>|[^>\s]+>[^>\s]+|\+[^+\s]+\+|[^?\s]+\?|\?[^?\s]+|[^>\s]+>>|>>[^>\s]+|[^<\s]+<<|\([^()\s]+\)|[^!\s]+!|[^*\s]\S*\*|[^.\s]\S*\.)(?=\s|$)/,lookbehind:!0,alias:"keyword"},"colon-syntax":{pattern:/(^|\s)(?:[A-Z0-9\-]+#?)?:{1,2}\s+(?:;\S+|(?!;)\S+)(?=\s|$)/,lookbehind:!0,greedy:!0,alias:"function"},"semicolon-or-setlocal":{pattern:/(\s)(?:;|:>)(?=\s|$)/,lookbehind:!0,alias:"function"},"curly-brace-literal-delimiter":[{pattern:/(^|\s)[a-z]*\{(?=\s)/i,lookbehind:!0,alias:"operator"},{pattern:/(\s)\}(?=\s|$)/,lookbehind:!0,alias:"operator"}],"quotation-delimiter":[{pattern:/(^|\s)\[(?=\s)/,lookbehind:!0,alias:"operator"},{pattern:/(\s)\](?=\s|$)/,lookbehind:!0,alias:"operator"}],"normal-word":{pattern:/(^|\s)[^"\s]\S*(?=\s|$)/,lookbehind:!0},string:{pattern:/"(?:\\\S|[^"\\])*"/,greedy:!0,inside:o}},u=function(m){return(m+"").replace(/([.?*+\^$\[\]\\(){}|\-])/g,"\\$1")},c=function(m){return new RegExp("(^|\\s)(?:"+m.map(u).join("|")+")(?=\\s|$)")},p={"kernel-builtin":["or","2nipd","4drop","tuck","wrapper","nip","wrapper?","callstack>array","die","dupd","callstack","callstack?","3dup","hashcode","pick","4nip","build",">boolean","nipd","clone","5nip","eq?","?","=","swapd","2over","clear","2dup","get-retainstack","not","tuple?","dup","3nipd","call","-rotd","object","drop","assert=","assert?","-rot","execute","boa","get-callstack","curried?","3drop","pickd","overd","over","roll","3nip","swap","and","2nip","rotd","throw","(clone)","hashcode*","spin","reach","4dup","equal?","get-datastack","assert","2drop","","boolean?","identity-hashcode","identity-tuple?","null","composed?","new","5drop","rot","-roll","xor","identity-tuple","boolean"],"other-builtin-syntax":["=======","recursive","flushable",">>","<<<<<<","M\\","B","PRIVATE>","\\","======","final","inline","delimiter","deprecated",">>>>>","<<<<<<<","parse-complex","malformed-complex","read-only",">>>>>>>","call-next-method","<<","foldable","$","$[","${"],"sequences-builtin":["member-eq?","mismatch","append","assert-sequence=","longer","repetition","clone-like","3sequence","assert-sequence?","last-index-from","reversed","index-from","cut*","pad-tail","join-as","remove-eq!","concat-as","but-last","snip","nths","nth","sequence","longest","slice?","","remove-nth","tail-slice","empty?","tail*","member?","virtual-sequence?","set-length","drop-prefix","iota","unclip","bounds-error?","unclip-last-slice","non-negative-integer-expected","non-negative-integer-expected?","midpoint@","longer?","?set-nth","?first","rest-slice","prepend-as","prepend","fourth","sift","subseq-start","new-sequence","?last","like","first4","1sequence","reverse","slice","virtual@","repetition?","set-last","index","4sequence","max-length","set-second","immutable-sequence","first2","first3","supremum","unclip-slice","suffix!","insert-nth","tail","3append","short","suffix","concat","flip","immutable?","reverse!","2sequence","sum","delete-all","indices","snip-slice","","check-slice","sequence?","head","append-as","halves","sequence=","collapse-slice","?second","slice-error?","product","bounds-check?","bounds-check","immutable","virtual-exemplar","harvest","remove","pad-head","last","set-fourth","cartesian-product","remove-eq","shorten","shorter","reversed?","shorter?","shortest","head-slice","pop*","tail-slice*","but-last-slice","iota?","append!","cut-slice","new-resizable","head-slice*","sequence-hashcode","pop","set-nth","?nth","second","join","immutable-sequence?","","3append-as","virtual-sequence","subseq?","remove-nth!","length","last-index","lengthen","assert-sequence","copy","move","third","first","tail?","set-first","prefix","bounds-error","","exchange","surround","cut","min-length","set-third","push-all","head?","subseq-start-from","delete-slice","rest","sum-lengths","head*","infimum","remove!","glue","slice-error","subseq","push","replace-slice","subseq-as","unclip-last"],"math-builtin":["number=","next-power-of-2","?1+","fp-special?","imaginary-part","float>bits","number?","fp-infinity?","bignum?","fp-snan?","denominator","gcd","*","+","fp-bitwise=","-","u>=","/",">=","bitand","power-of-2?","log2-expects-positive","neg?","<","log2",">","integer?","number","bits>double","2/","zero?","bits>float","float?","shift","ratio?","rect>","even?","ratio","fp-sign","bitnot",">fixnum","complex?","/i","integer>fixnum","/f","sgn",">bignum","next-float","u<","u>","mod","recip","rational",">float","2^","integer","fixnum?","neg","fixnum","sq","bignum",">rect","bit?","fp-qnan?","simple-gcd","complex","","real",">fraction","double>bits","bitor","rem","fp-nan-payload","real-part","log2-expects-positive?","prev-float","align","unordered?","float","fp-nan?","abs","bitxor","integer>fixnum-strict","u<=","odd?","<=","/mod",">integer","real?","rational?","numerator"]};Object.keys(p).forEach(function(m){l[m].pattern=c(p[m])});var f=["2bi","while","2tri","bi*","4dip","both?","same?","tri@","curry","prepose","3bi","?if","tri*","2keep","3keep","curried","2keepd","when","2bi*","2tri*","4keep","bi@","keepdd","do","unless*","tri-curry","if*","loop","bi-curry*","when*","2bi@","2tri@","with","2with","either?","bi","until","3dip","3curry","tri-curry*","tri-curry@","bi-curry","keepd","compose","2dip","if","3tri","unless","tuple","keep","2curry","tri","most","while*","dip","composed","bi-curry@","find-last-from","trim-head-slice","map-as","each-from","none?","trim-tail","partition","if-empty","accumulate*","reject!","find-from","accumulate-as","collector-for-as","reject","map","map-sum","accumulate!","2each-from","follow","supremum-by","map!","unless-empty","collector","padding","reduce-index","replicate-as","infimum-by","trim-tail-slice","count","find-index","filter","accumulate*!","reject-as","map-integers","map-find","reduce","selector","interleave","2map","filter-as","binary-reduce","map-index-as","find","produce","filter!","replicate","cartesian-map","cartesian-each","find-index-from","map-find-last","3map-as","3map","find-last","selector-as","2map-as","2map-reduce","accumulate","each","each-index","accumulate*-as","when-empty","all?","collector-as","push-either","new-like","collector-for","2selector","push-if","2all?","map-reduce","3each","any?","trim-slice","2reduce","change-nth","produce-as","2each","trim","trim-head","cartesian-find","map-index","if-zero","each-integer","unless-zero","(find-integer)","when-zero","find-last-integer","(all-integers?)","times","(each-integer)","find-integer","all-integers?","unless-negative","if-positive","when-positive","when-negative","unless-positive","if-negative","case","2cleave","cond>quot","case>quot","3cleave","wrong-values","to-fixed-point","alist>quot","cond","cleave","call-effect","recursive-hashcode","spread","deep-spread>quot","2||","0||","n||","0&&","2&&","3||","1||","1&&","n&&","3&&","smart-unless*","keep-inputs","reduce-outputs","smart-when*","cleave>array","smart-with","smart-apply","smart-if","inputs/outputs","output>sequence-n","map-outputs","map-reduce-outputs","dropping","output>array","smart-map-reduce","smart-2map-reduce","output>array-n","nullary","inputsequence"];l.combinators.pattern=c(f),n.languages.factor=l})(t)}return Od}var Ld,wk;function gB(){if(wk)return Ld;wk=1,Ld=e,e.displayName="$false",e.aliases=[];function e(t){(function(n){n.languages.false={comment:{pattern:/\{[^}]*\}/},string:{pattern:/"[^"]*"/,greedy:!0},"character-code":{pattern:/'(?:[^\r]|\r\n?)/,alias:"number"},"assembler-code":{pattern:/\d+`/,alias:"important"},number:/\d+/,operator:/[-!#$%&'*+,./:;=>?@\\^_`|~ßø]/,punctuation:/\[|\]/,variable:/[a-z]/,"non-standard":{pattern:/[()!=]=?|[-+*/%]|\b(?:in|is)\b/}),delete t.languages["firestore-security-rules"]["class-name"],t.languages.insertBefore("firestore-security-rules","keyword",{path:{pattern:/(^|[\s(),])(?:\/(?:[\w\xA0-\uFFFF]+|\{[\w\xA0-\uFFFF]+(?:=\*\*)?\}|\$\([\w\xA0-\uFFFF.]+\)))+/,lookbehind:!0,greedy:!0,inside:{variable:{pattern:/\{[\w\xA0-\uFFFF]+(?:=\*\*)?\}|\$\([\w\xA0-\uFFFF.]+\)/,inside:{operator:/=/,keyword:/\*\*/,punctuation:/[.$(){}]/}},punctuation:/\//}},method:{pattern:/(\ballow\s+)[a-z]+(?:\s*,\s*[a-z]+)*(?=\s*[:;])/,lookbehind:!0,alias:"builtin",inside:{punctuation:/,/}}})}return Dd}var Md,xk;function hB(){if(xk)return Md;xk=1,Md=e,e.displayName="flow",e.aliases=[];function e(t){(function(n){n.languages.flow=n.languages.extend("javascript",{}),n.languages.insertBefore("flow","keyword",{type:[{pattern:/\b(?:[Bb]oolean|Function|[Nn]umber|[Ss]tring|any|mixed|null|void)\b/,alias:"tag"}]}),n.languages.flow["function-variable"].pattern=/(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=\s*(?:function\b|(?:\([^()]*\)(?:\s*:\s*\w+)?|(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/i,delete n.languages.flow.parameter,n.languages.insertBefore("flow","operator",{"flow-punctuation":{pattern:/\{\||\|\}/,alias:"punctuation"}}),Array.isArray(n.languages.flow.keyword)||(n.languages.flow.keyword=[n.languages.flow.keyword]),n.languages.flow.keyword.unshift({pattern:/(^|[^$]\b)(?:Class|declare|opaque|type)\b(?!\$)/,lookbehind:!0},{pattern:/(^|[^$]\B)\$(?:Diff|Enum|Exact|Keys|ObjMap|PropertyType|Record|Shape|Subtype|Supertype|await)\b(?!\$)/,lookbehind:!0})})(t)}return Md}var Fd,Ak;function bB(){if(Ak)return Fd;Ak=1,Fd=e,e.displayName="fortran",e.aliases=[];function e(t){t.languages.fortran={"quoted-number":{pattern:/[BOZ](['"])[A-F0-9]+\1/i,alias:"number"},string:{pattern:/(?:\b\w+_)?(['"])(?:\1\1|&(?:\r\n?|\n)(?:[ \t]*!.*(?:\r\n?|\n)|(?![ \t]*!))|(?!\1).)*(?:\1|&)/,inside:{comment:{pattern:/(&(?:\r\n?|\n)\s*)!.*/,lookbehind:!0}}},comment:{pattern:/!.*/,greedy:!0},boolean:/\.(?:FALSE|TRUE)\.(?:_\w+)?/i,number:/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[ED][+-]?\d+)?(?:_\w+)?/i,keyword:[/\b(?:CHARACTER|COMPLEX|DOUBLE ?PRECISION|INTEGER|LOGICAL|REAL)\b/i,/\b(?:END ?)?(?:BLOCK ?DATA|DO|FILE|FORALL|FUNCTION|IF|INTERFACE|MODULE(?! PROCEDURE)|PROGRAM|SELECT|SUBROUTINE|TYPE|WHERE)\b/i,/\b(?:ALLOCATABLE|ALLOCATE|BACKSPACE|CALL|CASE|CLOSE|COMMON|CONTAINS|CONTINUE|CYCLE|DATA|DEALLOCATE|DIMENSION|DO|END|EQUIVALENCE|EXIT|EXTERNAL|FORMAT|GO ?TO|IMPLICIT(?: NONE)?|INQUIRE|INTENT|INTRINSIC|MODULE PROCEDURE|NAMELIST|NULLIFY|OPEN|OPTIONAL|PARAMETER|POINTER|PRINT|PRIVATE|PUBLIC|READ|RETURN|REWIND|SAVE|SELECT|STOP|TARGET|WHILE|WRITE)\b/i,/\b(?:ASSIGNMENT|DEFAULT|ELEMENTAL|ELSE|ELSEIF|ELSEWHERE|ENTRY|IN|INCLUDE|INOUT|KIND|NULL|ONLY|OPERATOR|OUT|PURE|RECURSIVE|RESULT|SEQUENCE|STAT|THEN|USE)\b/i],operator:[/\*\*|\/\/|=>|[=\/]=|[<>]=?|::|[+\-*=%]|\.[A-Z]+\./i,{pattern:/(^|(?!\().)\/(?!\))/,lookbehind:!0}],punctuation:/\(\/|\/\)|[(),;:&]/}}return Fd}var Pd,Rk;function yB(){if(Rk)return Pd;Rk=1,Pd=e,e.displayName="fsharp",e.aliases=[];function e(t){t.languages.fsharp=t.languages.extend("clike",{comment:[{pattern:/(^|[^\\])\(\*(?!\))[\s\S]*?\*\)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(?:"""[\s\S]*?"""|@"(?:""|[^"])*"|"(?:\\[\s\S]|[^\\"])*")B?/,greedy:!0},"class-name":{pattern:/(\b(?:exception|inherit|interface|new|of|type)\s+|\w\s*:\s*|\s:\??>\s*)[.\w]+\b(?:\s*(?:->|\*)\s*[.\w]+\b)*(?!\s*[:.])/,lookbehind:!0,inside:{operator:/->|\*/,punctuation:/\./}},keyword:/\b(?:let|return|use|yield)(?:!\B|\b)|\b(?:abstract|and|as|asr|assert|atomic|base|begin|break|checked|class|component|const|constraint|constructor|continue|default|delegate|do|done|downcast|downto|eager|elif|else|end|event|exception|extern|external|false|finally|fixed|for|fun|function|functor|global|if|in|include|inherit|inline|interface|internal|land|lazy|lor|lsl|lsr|lxor|match|member|method|mixin|mod|module|mutable|namespace|new|not|null|object|of|open|or|override|parallel|private|process|protected|public|pure|rec|sealed|select|sig|static|struct|tailcall|then|to|trait|true|try|type|upcast|val|virtual|void|volatile|when|while|with)\b/,number:[/\b0x[\da-fA-F]+(?:LF|lf|un)?\b/,/\b0b[01]+(?:uy|y)?\b/,/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[fm]|e[+-]?\d+)?\b/i,/\b\d+(?:[IlLsy]|UL|u[lsy]?)?\b/],operator:/([<>~&^])\1\1|([*.:<>&])\2|<-|->|[!=:]=|?|\??(?:<=|>=|<>|[-+*/%=<>])\??|[!?^&]|~[+~-]|:>|:\?>?/}),t.languages.insertBefore("fsharp","keyword",{preprocessor:{pattern:/(^[\t ]*)#.*/m,lookbehind:!0,alias:"property",inside:{directive:{pattern:/(^#)\b(?:else|endif|if|light|line|nowarn)\b/,lookbehind:!0,alias:"keyword"}}}}),t.languages.insertBefore("fsharp","punctuation",{"computation-expression":{pattern:/\b[_a-z]\w*(?=\s*\{)/i,alias:"keyword"}}),t.languages.insertBefore("fsharp","string",{annotation:{pattern:/\[<.+?>\]/,greedy:!0,inside:{punctuation:/^\[<|>\]$/,"class-name":{pattern:/^\w+$|(^|;\s*)[A-Z]\w*(?=\()/,lookbehind:!0},"annotation-content":{pattern:/[\s\S]+/,inside:t.languages.fsharp}}},char:{pattern:/'(?:[^\\']|\\(?:.|\d{3}|x[a-fA-F\d]{2}|u[a-fA-F\d]{4}|U[a-fA-F\d]{8}))'B?/,greedy:!0}})}return Pd}var Ud,Nk;function EB(){if(Nk)return Ud;Nk=1;var e=an();Ud=t,t.displayName="ftl",t.aliases=[];function t(n){n.register(e),(function(i){for(var o=/[^<()"']|\((?:)*\)|<(?!#--)|<#--(?:[^-]|-(?!->))*-->|"(?:[^\\"]|\\.)*"|'(?:[^\\']|\\.)*'/.source,l=0;l<2;l++)o=o.replace(//g,function(){return o});o=o.replace(//g,/[^\s\S]/.source);var u={comment:/<#--[\s\S]*?-->/,string:[{pattern:/\br("|')(?:(?!\1)[^\\]|\\.)*\1/,greedy:!0},{pattern:RegExp(/("|')(?:(?!\1|\$\{)[^\\]|\\.|\$\{(?:(?!\})(?:))*\})*\1/.source.replace(//g,function(){return o})),greedy:!0,inside:{interpolation:{pattern:RegExp(/((?:^|[^\\])(?:\\\\)*)\$\{(?:(?!\})(?:))*\}/.source.replace(//g,function(){return o})),lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:null}}}}],keyword:/\b(?:as)\b/,boolean:/\b(?:false|true)\b/,"builtin-function":{pattern:/((?:^|[^?])\?\s*)\w+/,lookbehind:!0,alias:"function"},function:/\b\w+(?=\s*\()/,number:/\b\d+(?:\.\d+)?\b/,operator:/\.\.[<*!]?|->|--|\+\+|&&|\|\||\?{1,2}|[-+*/%!=<>]=?|\b(?:gt|gte|lt|lte)\b/,punctuation:/[,;.:()[\]{}]/};u.string[1].inside.interpolation.inside.rest=u,i.languages.ftl={"ftl-comment":{pattern:/^<#--[\s\S]*/,alias:"comment"},"ftl-directive":{pattern:/^<[\s\S]+>$/,inside:{directive:{pattern:/(^<\/?)[#@][a-z]\w*/i,lookbehind:!0,alias:"keyword"},punctuation:/^<\/?|\/?>$/,content:{pattern:/\s*\S[\s\S]*/,alias:"ftl",inside:u}}},"ftl-interpolation":{pattern:/^\$\{[\s\S]*\}$/,inside:{punctuation:/^\$\{|\}$/,content:{pattern:/\s*\S[\s\S]*/,alias:"ftl",inside:u}}}},i.hooks.add("before-tokenize",function(c){var p=RegExp(/<#--[\s\S]*?-->|<\/?[#@][a-zA-Z](?:)*?>|\$\{(?:)*?\}/.source.replace(//g,function(){return o}),"gi");i.languages["markup-templating"].buildPlaceholders(c,"ftl",p)}),i.hooks.add("after-tokenize",function(c){i.languages["markup-templating"].tokenizePlaceholders(c,"ftl")})})(n)}return Ud}var Bd,Ck;function SB(){if(Ck)return Bd;Ck=1,Bd=e,e.displayName="gap",e.aliases=[];function e(t){t.languages.gap={shell:{pattern:/^gap>[\s\S]*?(?=^gap>|$(?![\s\S]))/m,greedy:!0,inside:{gap:{pattern:/^(gap>).+(?:(?:\r(?:\n|(?!\n))|\n)>.*)*/,lookbehind:!0,inside:null},punctuation:/^gap>/}},comment:{pattern:/#.*/,greedy:!0},string:{pattern:/(^|[^\\'"])(?:'(?:[^\r\n\\']|\\.){1,10}'|"(?:[^\r\n\\"]|\\.)*"(?!")|"""[\s\S]*?""")/,lookbehind:!0,greedy:!0,inside:{continuation:{pattern:/([\r\n])>/,lookbehind:!0,alias:"punctuation"}}},keyword:/\b(?:Assert|Info|IsBound|QUIT|TryNextMethod|Unbind|and|atomic|break|continue|do|elif|else|end|fi|for|function|if|in|local|mod|not|od|or|quit|readonly|readwrite|rec|repeat|return|then|until|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:{pattern:/(^|[^\w.]|\.\.)(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?(?:_[a-z]?)?(?=$|[^\w.]|\.\.)/,lookbehind:!0},continuation:{pattern:/([\r\n])>/,lookbehind:!0,alias:"punctuation"},operator:/->|[-+*/^~=!]|<>|[<>]=?|:=|\.\./,punctuation:/[()[\]{},;.:]/},t.languages.gap.shell.inside.gap.inside=t.languages.gap}return Bd}var jd,Ik;function vB(){if(Ik)return jd;Ik=1,jd=e,e.displayName="gcode",e.aliases=[];function e(t){t.languages.gcode={comment:/;.*|\B\(.*?\)\B/,string:{pattern:/"(?:""|[^"])*"/,greedy:!0},keyword:/\b[GM]\d+(?:\.\d+)?\b/,property:/\b[A-Z]/,checksum:{pattern:/(\*)\d+/,lookbehind:!0,alias:"number"},punctuation:/[:*]/}}return jd}var zd,Ok;function kB(){if(Ok)return zd;Ok=1,zd=e,e.displayName="gdscript",e.aliases=[];function e(t){t.languages.gdscript={comment:/#.*/,string:{pattern:/@?(?:("|')(?:(?!\1)[^\n\\]|\\[\s\S])*\1(?!"|')|"""(?:[^\\]|\\[\s\S])*?""")/,greedy:!0},"class-name":{pattern:/(^(?:class|class_name|extends)[ \t]+|^export\([ \t]*|\bas[ \t]+|(?:\b(?:const|var)[ \t]|[,(])[ \t]*\w+[ \t]*:[ \t]*|->[ \t]*)[a-zA-Z_]\w*/m,lookbehind:!0},keyword:/\b(?:and|as|assert|break|breakpoint|class|class_name|const|continue|elif|else|enum|export|extends|for|func|if|in|is|master|mastersync|match|not|null|onready|or|pass|preload|puppet|puppetsync|remote|remotesync|return|self|setget|signal|static|tool|var|while|yield)\b/,function:/\b[a-z_]\w*(?=[ \t]*\()/i,variable:/\$\w+/,number:[/\b0b[01_]+\b|\b0x[\da-fA-F_]+\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.[\d_]+)(?:e[+-]?[\d_]+)?\b/,/\b(?:INF|NAN|PI|TAU)\b/],constant:/\b[A-Z][A-Z_\d]*\b/,boolean:/\b(?:false|true)\b/,operator:/->|:=|&&|\|\||<<|>>|[-+*/%&|!<>=]=?|[~^]/,punctuation:/[.:,;()[\]{}]/}}return zd}var $d,Lk;function _B(){if(Lk)return $d;Lk=1,$d=e,e.displayName="gedcom",e.aliases=[];function e(t){t.languages.gedcom={"line-value":{pattern:/(^[\t ]*\d+ +(?:@\w[\w!"$%&'()*+,\-./:;<=>?[\\\]^`{|}~\x80-\xfe #]*@ +)?\w+ ).+/m,lookbehind:!0,inside:{pointer:{pattern:/^@\w[\w!"$%&'()*+,\-./:;<=>?[\\\]^`{|}~\x80-\xfe #]*@$/,alias:"variable"}}},tag:{pattern:/(^[\t ]*\d+ +(?:@\w[\w!"$%&'()*+,\-./:;<=>?[\\\]^`{|}~\x80-\xfe #]*@ +)?)\w+/m,lookbehind:!0,alias:"string"},level:{pattern:/(^[\t ]*)\d+/m,lookbehind:!0,alias:"number"},pointer:{pattern:/@\w[\w!"$%&'()*+,\-./:;<=>?[\\\]^`{|}~\x80-\xfe #]*@/,alias:"variable"}}}return $d}var qd,Dk;function wB(){if(Dk)return qd;Dk=1,qd=e,e.displayName="gherkin",e.aliases=[];function e(t){(function(n){var i=/(?:\r?\n|\r)[ \t]*\|.+\|(?:(?!\|).)*/.source;n.languages.gherkin={pystring:{pattern:/("""|''')[\s\S]+?\1/,alias:"string"},comment:{pattern:/(^[ \t]*)#.*/m,lookbehind:!0},tag:{pattern:/(^[ \t]*)@\S*/m,lookbehind:!0},feature:{pattern:/((?:^|\r?\n|\r)[ \t]*)(?:Ability|Ahoy matey!|Arwedd|Aspekt|Besigheid Behoefte|Business Need|Caracteristica|Característica|Egenskab|Egenskap|Eiginleiki|Feature|Fīča|Fitur|Fonctionnalité|Fonksyonalite|Funcionalidade|Funcionalitat|Functionalitate|Funcţionalitate|Funcționalitate|Functionaliteit|Fungsi|Funkcia|Funkcija|Funkcionalitāte|Funkcionalnost|Funkcja|Funksie|Funktionalität|Funktionalitéit|Funzionalità|Hwaet|Hwæt|Jellemző|Karakteristik|Lastnost|Mak|Mogucnost|laH|Mogućnost|Moznosti|Možnosti|OH HAI|Omadus|Ominaisuus|Osobina|Özellik|Potrzeba biznesowa|perbogh|poQbogh malja'|Požadavek|Požiadavka|Pretty much|Qap|Qu'meH 'ut|Savybė|Tính năng|Trajto|Vermoë|Vlastnosť|Właściwość|Značilnost|Δυνατότητα|Λειτουργία|Могућност|Мөмкинлек|Особина|Свойство|Үзенчәлеклелек|Функционал|Функционалност|Функция|Функціонал|תכונה|خاصية|خصوصیت|صلاحیت|کاروبار کی ضرورت|وِیژگی|रूप लेख|ਖਾਸੀਅਤ|ਨਕਸ਼ ਨੁਹਾਰ|ਮੁਹਾਂਦਰਾ|గుణము|ಹೆಚ್ಚಳ|ความต้องการทางธุรกิจ|ความสามารถ|โครงหลัก|기능|フィーチャ|功能|機能):(?:[^:\r\n]+(?:\r?\n|\r|$))*/,lookbehind:!0,inside:{important:{pattern:/(:)[^\r\n]+/,lookbehind:!0},keyword:/[^:\r\n]+:/}},scenario:{pattern:/(^[ \t]*)(?:Abstract Scenario|Abstrakt Scenario|Achtergrond|Aer|Ær|Agtergrond|All y'all|Antecedentes|Antecedents|Atburðarás|Atburðarásir|Awww, look mate|B4|Background|Baggrund|Bakgrund|Bakgrunn|Bakgrunnur|Beispiele|Beispiller|Bối cảnh|Cefndir|Cenario|Cenário|Cenario de Fundo|Cenário de Fundo|Cenarios|Cenários|Contesto|Context|Contexte|Contexto|Conto|Contoh|Contone|Dæmi|Dasar|Dead men tell no tales|Delineacao do Cenario|Delineação do Cenário|Dis is what went down|Dữ liệu|Dyagram Senaryo|Dyagram senaryo|Egzanp|Ejemplos|Eksempler|Ekzemploj|Enghreifftiau|Esbozo do escenario|Escenari|Escenario|Esempi|Esquema de l'escenari|Esquema del escenario|Esquema do Cenario|Esquema do Cenário|EXAMPLZ|Examples|Exempel|Exemple|Exemples|Exemplos|First off|Fono|Forgatókönyv|Forgatókönyv vázlat|Fundo|Geçmiş|Grundlage|Hannergrond|ghantoH|Háttér|Heave to|Istorik|Juhtumid|Keadaan|Khung kịch bản|Khung tình huống|Kịch bản|Koncept|Konsep skenario|Kontèks|Kontekst|Kontekstas|Konteksts|Kontext|Konturo de la scenaro|Latar Belakang|lut chovnatlh|lut|lutmey|Lýsing Atburðarásar|Lýsing Dæma|MISHUN SRSLY|MISHUN|Menggariskan Senario|mo'|Náčrt Scenára|Náčrt Scénáře|Náčrt Scenáru|Oris scenarija|Örnekler|Osnova|Osnova Scenára|Osnova scénáře|Osnutek|Ozadje|Paraugs|Pavyzdžiai|Példák|Piemēri|Plan du scénario|Plan du Scénario|Plan Senaryo|Plan senaryo|Plang vum Szenario|Pozadí|Pozadie|Pozadina|Príklady|Příklady|Primer|Primeri|Primjeri|Przykłady|Raamstsenaarium|Reckon it's like|Rerefons|Scenár|Scénář|Scenarie|Scenarij|Scenarijai|Scenarijaus šablonas|Scenariji|Scenārijs|Scenārijs pēc parauga|Scenarijus|Scenario|Scénario|Scenario Amlinellol|Scenario Outline|Scenario Template|Scenariomal|Scenariomall|Scenarios|Scenariu|Scenariusz|Scenaro|Schema dello scenario|Se ðe|Se the|Se þe|Senario|Senaryo Deskripsyon|Senaryo deskripsyon|Senaryo|Senaryo taslağı|Shiver me timbers|Situācija|Situai|Situasie Uiteensetting|Situasie|Skenario konsep|Skenario|Skica|Structura scenariu|Structură scenariu|Struktura scenarija|Stsenaarium|Swa hwaer swa|Swa|Swa hwær swa|Szablon scenariusza|Szenario|Szenariogrundriss|Tapaukset|Tapaus|Tapausaihio|Taust|Tausta|Template Keadaan|Template Senario|Template Situai|The thing of it is|Tình huống|Variantai|Voorbeelde|Voorbeelden|Wharrimean is|Yo-ho-ho|You'll wanna|Założenia|Παραδείγματα|Περιγραφή Σεναρίου|Σενάρια|Σενάριο|Υπόβαθρο|Кереш|Контекст|Концепт|Мисаллар|Мисоллар|Основа|Передумова|Позадина|Предистория|Предыстория|Приклади|Пример|Примери|Примеры|Рамка на сценарий|Скица|Структура сценарија|Структура сценария|Структура сценарію|Сценарий|Сценарий структураси|Сценарийның төзелеше|Сценарији|Сценарио|Сценарій|Тарих|Үрнәкләр|דוגמאות|רקע|תבנית תרחיש|תרחיש|الخلفية|الگوی سناریو|امثلة|پس منظر|زمینه|سناریو|سيناريو|سيناريو مخطط|مثالیں|منظر نامے کا خاکہ|منظرنامہ|نمونه ها|उदाहरण|परिदृश्य|परिदृश्य रूपरेखा|पृष्ठभूमि|ਉਦਾਹਰਨਾਂ|ਪਟਕਥਾ|ਪਟਕਥਾ ਢਾਂਚਾ|ਪਟਕਥਾ ਰੂਪ ਰੇਖਾ|ਪਿਛੋਕੜ|ఉదాహరణలు|కథనం|నేపథ్యం|సన్నివేశం|ಉದಾಹರಣೆಗಳು|ಕಥಾಸಾರಾಂಶ|ವಿವರಣೆ|ಹಿನ್ನೆಲೆ|โครงสร้างของเหตุการณ์|ชุดของตัวอย่าง|ชุดของเหตุการณ์|แนวคิด|สรุปเหตุการณ์|เหตุการณ์|배경|시나리오|시나리오 개요|예|サンプル|シナリオ|シナリオアウトライン|シナリオテンプレ|シナリオテンプレート|テンプレ|例|例子|剧本|剧本大纲|劇本|劇本大綱|场景|场景大纲|場景|場景大綱|背景):[^:\r\n]*/m,lookbehind:!0,inside:{important:{pattern:/(:)[^\r\n]*/,lookbehind:!0},keyword:/[^:\r\n]+:/}},"table-body":{pattern:RegExp("("+i+")(?:"+i+")+"),lookbehind:!0,inside:{outline:{pattern:/<[^>]+>/,alias:"variable"},td:{pattern:/\s*[^\s|][^|]*/,alias:"string"},punctuation:/\|/}},"table-head":{pattern:RegExp(i),inside:{th:{pattern:/\s*[^\s|][^|]*/,alias:"variable"},punctuation:/\|/}},atrule:{pattern:/(^[ \t]+)(?:'a|'ach|'ej|7|a|A také|A taktiež|A tiež|A zároveň|Aber|Ac|Adott|Akkor|Ak|Aleshores|Ale|Ali|Allora|Alors|Als|Ama|Amennyiben|Amikor|Ampak|an|AN|Ananging|And y'all|And|Angenommen|Anrhegedig a|An|Apabila|Atès|Atesa|Atunci|Avast!|Aye|A|awer|Bagi|Banjur|Bet|Biết|Blimey!|Buh|But at the end of the day I reckon|But y'all|But|BUT|Cal|Când|Cand|Cando|Ce|Cuando|Če|Ða ðe|Ða|Dadas|Dada|Dados|Dado|DaH ghu' bejlu'|dann|Dann|Dano|Dan|Dar|Dat fiind|Data|Date fiind|Date|Dati fiind|Dati|Daţi fiind|Dați fiind|DEN|Dato|De|Den youse gotta|Dengan|Diberi|Diyelim ki|Donada|Donat|Donitaĵo|Do|Dun|Duota|Ðurh|Eeldades|Ef|Eğer ki|Entao|Então|Entón|E|En|Entonces|Epi|És|Etant donnée|Etant donné|Et|Étant données|Étant donnée|Étant donné|Etant données|Etant donnés|Étant donnés|Fakat|Gangway!|Gdy|Gegeben seien|Gegeben sei|Gegeven|Gegewe|ghu' noblu'|Gitt|Given y'all|Given|Givet|Givun|Ha|Cho|I CAN HAZ|In|Ir|It's just unbelievable|I|Ja|Jeśli|Jeżeli|Kad|Kada|Kadar|Kai|Kaj|Když|Keď|Kemudian|Ketika|Khi|Kiedy|Ko|Kuid|Kui|Kun|Lan|latlh|Le sa a|Let go and haul|Le|Lè sa a|Lè|Logo|Lorsqu'<|Lorsque|mä|Maar|Mais|Mając|Ma|Majd|Maka|Manawa|Mas|Men|Menawa|Mutta|Nalika|Nalikaning|Nanging|Når|När|Nato|Nhưng|Niin|Njuk|O zaman|Och|Og|Oletetaan|Ond|Onda|Oraz|Pak|Pero|Però|Podano|Pokiaľ|Pokud|Potem|Potom|Privzeto|Pryd|Quan|Quand|Quando|qaSDI'|Så|Sed|Se|Siis|Sipoze ke|Sipoze Ke|Sipoze|Si|Şi|Și|Soit|Stel|Tada|Tad|Takrat|Tak|Tapi|Ter|Tetapi|Tha the|Tha|Then y'all|Then|Thì|Thurh|Toda|Too right|Un|Und|ugeholl|Và|vaj|Vendar|Ve|wann|Wanneer|WEN|Wenn|When y'all|When|Wtedy|Wun|Y'know|Yeah nah|Yna|Youse know like when|Youse know when youse got|Y|Za predpokladu|Za předpokladu|Zadan|Zadani|Zadano|Zadate|Zadato|Zakładając|Zaradi|Zatati|Þa þe|Þa|Þá|Þegar|Þurh|Αλλά|Δεδομένου|Και|Όταν|Τότε|А також|Агар|Але|Али|Аммо|А|Әгәр|Әйтик|Әмма|Бирок|Ва|Вә|Дадено|Дано|Допустим|Если|Задате|Задати|Задато|И|І|К тому же|Када|Кад|Когато|Когда|Коли|Ләкин|Лекин|Нәтиҗәдә|Нехай|Но|Онда|Припустимо, що|Припустимо|Пусть|Также|Та|Тогда|Тоді|То|Унда|Һәм|Якщо|אבל|אזי|אז|בהינתן|וגם|כאשר|آنگاه|اذاً|اگر|اما|اور|با فرض|بالفرض|بفرض|پھر|تب|ثم|جب|عندما|فرض کیا|لكن|لیکن|متى|هنگامی|و|अगर|और|कदा|किन्तु|चूंकि|जब|तथा|तदा|तब|परन्तु|पर|यदि|ਅਤੇ|ਜਦੋਂ|ਜਿਵੇਂ ਕਿ|ਜੇਕਰ|ਤਦ|ਪਰ|అప్పుడు|ఈ పరిస్థితిలో|కాని|చెప్పబడినది|మరియు|ಆದರೆ|ನಂತರ|ನೀಡಿದ|ಮತ್ತು|ಸ್ಥಿತಿಯನ್ನು|กำหนดให้|ดังนั้น|แต่|เมื่อ|และ|그러면<|그리고<|단<|만약<|만일<|먼저<|조건<|하지만<|かつ<|しかし<|ただし<|ならば<|もし<|並且<|但し<|但是<|假如<|假定<|假設<|假设<|前提<|同时<|同時<|并且<|当<|當<|而且<|那么<|那麼<)(?=[ \t])/m,lookbehind:!0},string:{pattern:/"(?:\\.|[^"\\\r\n])*"|'(?:\\.|[^'\\\r\n])*'/,inside:{outline:{pattern:/<[^>]+>/,alias:"variable"}}},outline:{pattern:/<[^>]+>/,alias:"variable"}}})(t)}return qd}var Gd,Mk;function TB(){if(Mk)return Gd;Mk=1,Gd=e,e.displayName="git",e.aliases=[];function e(t){t.languages.git={comment:/^#.*/m,deleted:/^[-–].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s--?\w+/}},coord:/^@@.*@@$/m,"commit-sha1":/^commit \w{40}$/m}}return Gd}var Hd,Fk;function xB(){if(Fk)return Hd;Fk=1;var e=Yr();Hd=t,t.displayName="glsl",t.aliases=[];function t(n){n.register(e),n.languages.glsl=n.languages.extend("c",{keyword:/\b(?:active|asm|atomic_uint|attribute|[ibdu]?vec[234]|bool|break|buffer|case|cast|centroid|class|coherent|common|const|continue|d?mat[234](?:x[234])?|default|discard|do|double|else|enum|extern|external|false|filter|fixed|flat|float|for|fvec[234]|goto|half|highp|hvec[234]|[iu]?sampler2DMS(?:Array)?|[iu]?sampler2DRect|[iu]?samplerBuffer|[iu]?samplerCube|[iu]?samplerCubeArray|[iu]?sampler[123]D|[iu]?sampler[12]DArray|[iu]?image2DMS(?:Array)?|[iu]?image2DRect|[iu]?imageBuffer|[iu]?imageCube|[iu]?imageCubeArray|[iu]?image[123]D|[iu]?image[12]DArray|if|in|inline|inout|input|int|interface|invariant|layout|long|lowp|mediump|namespace|noinline|noperspective|out|output|partition|patch|precise|precision|public|readonly|resource|restrict|return|sample|sampler[12]DArrayShadow|sampler[12]DShadow|sampler2DRectShadow|sampler3DRect|samplerCubeArrayShadow|samplerCubeShadow|shared|short|sizeof|smooth|static|struct|subroutine|superp|switch|template|this|true|typedef|uint|uniform|union|unsigned|using|varying|void|volatile|while|writeonly)\b/})}return Hd}var Wd,Pk;function AB(){if(Pk)return Wd;Pk=1,Wd=e,e.displayName="gml",e.aliases=[];function e(t){t.languages.gamemakerlanguage=t.languages.gml=t.languages.extend("clike",{keyword:/\b(?:break|case|continue|default|do|else|enum|exit|for|globalvar|if|repeat|return|switch|until|var|while)\b/,number:/(?:\b0x[\da-f]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ulf]{0,4}/i,operator:/--|\+\+|[-+%/=]=?|!=|\*\*?=?|<[<=>]?|>[=>]?|&&?|\^\^?|\|\|?|~|\b(?:and|at|not|or|with|xor)\b/,constant:/\b(?:GM_build_date|GM_version|action_(?:continue|restart|reverse|stop)|all|gamespeed_(?:fps|microseconds)|global|local|noone|other|pi|pointer_(?:invalid|null)|self|timezone_(?:local|utc)|undefined|ev_(?:create|destroy|step|alarm|keyboard|mouse|collision|other|draw|draw_(?:begin|end|post|pre)|keypress|keyrelease|trigger|(?:left|middle|no|right)_button|(?:left|middle|right)_press|(?:left|middle|right)_release|mouse_(?:enter|leave|wheel_down|wheel_up)|global_(?:left|middle|right)_button|global_(?:left|middle|right)_press|global_(?:left|middle|right)_release|joystick(?:1|2)_(?:button1|button2|button3|button4|button5|button6|button7|button8|down|left|right|up)|outside|boundary|game_start|game_end|room_start|room_end|no_more_lives|animation_end|end_of_path|no_more_health|user\d|gui|gui_begin|gui_end|step_(?:begin|end|normal))|vk_(?:alt|anykey|backspace|control|delete|down|end|enter|escape|home|insert|left|nokey|pagedown|pageup|pause|printscreen|return|right|shift|space|tab|up|f\d|numpad\d|add|decimal|divide|lalt|lcontrol|lshift|multiply|ralt|rcontrol|rshift|subtract)|achievement_(?:filter_(?:all_players|favorites_only|friends_only)|friends_info|info|leaderboard_info|our_info|pic_loaded|show_(?:achievement|bank|friend_picker|leaderboard|profile|purchase_prompt|ui)|type_challenge|type_score_challenge)|asset_(?:font|object|path|room|script|shader|sound|sprite|tiles|timeline|unknown)|audio_(?:3d|falloff_(?:exponent_distance|exponent_distance_clamped|inverse_distance|inverse_distance_clamped|linear_distance|linear_distance_clamped|none)|mono|new_system|old_system|stereo)|bm_(?:add|complex|dest_alpha|dest_color|dest_colour|inv_dest_alpha|inv_dest_color|inv_dest_colour|inv_src_alpha|inv_src_color|inv_src_colour|max|normal|one|src_alpha|src_alpha_sat|src_color|src_colour|subtract|zero)|browser_(?:chrome|firefox|ie|ie_mobile|not_a_browser|opera|safari|safari_mobile|tizen|unknown|windows_store)|buffer_(?:bool|f16|f32|f64|fast|fixed|generalerror|grow|invalidtype|network|outofbounds|outofspace|s16|s32|s8|seek_end|seek_relative|seek_start|string|text|u16|u32|u64|u8|vbuffer|wrap)|c_(?:aqua|black|blue|dkgray|fuchsia|gray|green|lime|ltgray|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow)|cmpfunc_(?:always|equal|greater|greaterequal|less|lessequal|never|notequal)|cr_(?:appstart|arrow|beam|cross|default|drag|handpoint|hourglass|none|size_all|size_nesw|size_ns|size_nwse|size_we|uparrow)|cull_(?:clockwise|counterclockwise|noculling)|device_(?:emulator|tablet)|device_ios_(?:ipad|ipad_retina|iphone|iphone5|iphone6|iphone6plus|iphone_retina|unknown)|display_(?:landscape|landscape_flipped|portrait|portrait_flipped)|dll_(?:cdecl|cdel|stdcall)|ds_type_(?:grid|list|map|priority|queue|stack)|ef_(?:cloud|ellipse|explosion|firework|flare|rain|ring|smoke|smokeup|snow|spark|star)|fa_(?:archive|bottom|center|directory|hidden|left|middle|readonly|right|sysfile|top|volumeid)|fb_login_(?:default|fallback_to_webview|forcing_safari|forcing_webview|no_fallback_to_webview|use_system_account)|iap_(?:available|canceled|ev_consume|ev_product|ev_purchase|ev_restore|ev_storeload|failed|purchased|refunded|status_available|status_loading|status_processing|status_restoring|status_unavailable|status_uninitialised|storeload_failed|storeload_ok|unavailable)|leaderboard_type_(?:number|time_mins_secs)|lighttype_(?:dir|point)|matrix_(?:projection|view|world)|mb_(?:any|left|middle|none|right)|network_(?:config_(?:connect_timeout|disable_reliable_udp|enable_reliable_udp|use_non_blocking_socket)|socket_(?:bluetooth|tcp|udp)|type_(?:connect|data|disconnect|non_blocking_connect))|of_challenge_(?:lose|tie|win)|os_(?:android|ios|linux|macosx|ps3|ps4|psvita|unknown|uwp|win32|win8native|windows|winphone|xboxone)|phy_debug_render_(?:aabb|collision_pairs|coms|core_shapes|joints|obb|shapes)|phy_joint_(?:anchor_1_x|anchor_1_y|anchor_2_x|anchor_2_y|angle|angle_limits|damping_ratio|frequency|length_1|length_2|lower_angle_limit|max_force|max_length|max_motor_force|max_motor_torque|max_torque|motor_force|motor_speed|motor_torque|reaction_force_x|reaction_force_y|reaction_torque|speed|translation|upper_angle_limit)|phy_particle_data_flag_(?:category|color|colour|position|typeflags|velocity)|phy_particle_flag_(?:colormixing|colourmixing|elastic|powder|spring|tensile|viscous|wall|water|zombie)|phy_particle_group_flag_(?:rigid|solid)|pr_(?:linelist|linestrip|pointlist|trianglefan|trianglelist|trianglestrip)|ps_(?:distr|shape)_(?:diamond|ellipse|gaussian|invgaussian|line|linear|rectangle)|pt_shape_(?:circle|cloud|disk|explosion|flare|line|pixel|ring|smoke|snow|spark|sphere|square|star)|ty_(?:real|string)|gp_(?:face\d|axislh|axislv|axisrh|axisrv|padd|padl|padr|padu|select|shoulderl|shoulderlb|shoulderr|shoulderrb|start|stickl|stickr)|lb_disp_(?:none|numeric|time_ms|time_sec)|lb_sort_(?:ascending|descending|none)|ov_(?:achievements|community|friends|gamegroup|players|settings)|ugc_(?:filetype_(?:community|microtrans)|list_(?:Favorited|Followed|Published|Subscribed|UsedOrPlayed|VotedDown|VotedOn|VotedUp|WillVoteLater)|match_(?:AllGuides|Artwork|Collections|ControllerBindings|IntegratedGuides|Items|Items_Mtx|Items_ReadyToUse|Screenshots|UsableInGame|Videos|WebGuides)|query_(?:AcceptedForGameRankedByAcceptanceDate|CreatedByFriendsRankedByPublicationDate|FavoritedByFriendsRankedByPublicationDate|NotYetRated)|query_RankedBy(?:NumTimesReported|PublicationDate|TextSearch|TotalVotesAsc|Trend|Vote|VotesUp)|result_success|sortorder_CreationOrder(?:Asc|Desc)|sortorder_(?:ForModeration|LastUpdatedDesc|SubscriptionDateDesc|TitleAsc|VoteScoreDesc)|visibility_(?:friends_only|private|public))|vertex_usage_(?:binormal|blendindices|blendweight|color|colour|depth|fog|normal|position|psize|sample|tangent|texcoord|textcoord)|vertex_type_(?:float\d|color|colour|ubyte4)|input_type|layerelementtype_(?:background|instance|oldtilemap|particlesystem|sprite|tile|tilemap|undefined)|se_(?:chorus|compressor|echo|equalizer|flanger|gargle|none|reverb)|text_type|tile_(?:flip|index_mask|mirror|rotate)|(?:obj|rm|scr|spr)\w+)\b/,variable:/\b(?:alarm|application_surface|async_load|background_(?:alpha|blend|color|colour|foreground|height|hspeed|htiled|index|showcolor|showcolour|visible|vspeed|vtiled|width|x|xscale|y|yscale)|bbox_(?:bottom|left|right|top)|browser_(?:height|width)|caption_(?:health|lives|score)|current_(?:day|hour|minute|month|second|time|weekday|year)|cursor_sprite|debug_mode|delta_time|direction|display_aa|error_(?:last|occurred)|event_(?:action|number|object|type)|fps|fps_real|friction|game_(?:display|project|save)_(?:id|name)|gamemaker_(?:pro|registered|version)|gravity|gravity_direction|(?:h|v)speed|health|iap_data|id|image_(?:alpha|angle|blend|depth|index|number|speed|xscale|yscale)|instance_(?:count|id)|keyboard_(?:key|lastchar|lastkey|string)|layer|lives|mask_index|mouse_(?:button|lastbutton|x|y)|object_index|os_(?:browser|device|type|version)|path_(?:endaction|index|orientation|position|positionprevious|scale|speed)|persistent|phy_(?:rotation|(?:col_normal|collision|com|linear_velocity|position|speed)_(?:x|y)|angular_(?:damping|velocity)|position_(?:x|y)previous|speed|linear_damping|bullet|fixed_rotation|active|mass|inertia|dynamic|kinematic|sleeping|collision_points)|pointer_(?:invalid|null)|room|room_(?:caption|first|height|last|persistent|speed|width)|score|secure_mode|show_(?:health|lives|score)|solid|speed|sprite_(?:height|index|width|xoffset|yoffset)|temp_directory|timeline_(?:index|loop|position|running|speed)|transition_(?:color|kind|steps)|undefined|view_(?:angle|current|enabled|(?:h|v)(?:border|speed)|(?:h|w|x|y)port|(?:h|w|x|y)view|object|surface_id|visible)|visible|webgl_enabled|working_directory|(?:x|y)(?:previous|start)|x|y|argument(?:_relitive|_count|\d)|argument|global|local|other|self)\b/})}return Wd}var Vd,Uk;function RB(){if(Uk)return Vd;Uk=1,Vd=e,e.displayName="gn",e.aliases=["gni"];function e(t){t.languages.gn={comment:{pattern:/#.*/,greedy:!0},"string-literal":{pattern:/(^|[^\\"])"(?:[^\r\n"\\]|\\.)*"/,lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$(?:\{[\s\S]*?\}|[a-zA-Z_]\w*|0x[a-fA-F0-9]{2})/,lookbehind:!0,inside:{number:/^\$0x[\s\S]{2}$/,variable:/^\$\w+$/,"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},expression:{pattern:/[\s\S]+/,inside:null}}},string:/[\s\S]+/}},keyword:/\b(?:else|if)\b/,boolean:/\b(?:false|true)\b/,"builtin-function":{pattern:/\b(?:assert|defined|foreach|import|pool|print|template|tool|toolchain)(?=\s*\()/i,alias:"keyword"},function:/\b[a-z_]\w*(?=\s*\()/i,constant:/\b(?:current_cpu|current_os|current_toolchain|default_toolchain|host_cpu|host_os|root_build_dir|root_gen_dir|root_out_dir|target_cpu|target_gen_dir|target_os|target_out_dir)\b/,number:/-?\b\d+\b/,operator:/[-+!=<>]=?|&&|\|\|/,punctuation:/[(){}[\],.]/},t.languages.gn["string-literal"].inside.interpolation.inside.expression.inside=t.languages.gn,t.languages.gni=t.languages.gn}return Vd}var Yd,Bk;function NB(){if(Bk)return Yd;Bk=1,Yd=e,e.displayName="goModule",e.aliases=[];function e(t){t.languages["go-mod"]=t.languages["go-module"]={comment:{pattern:/\/\/.*/,greedy:!0},version:{pattern:/(^|[\s()[\],])v\d+\.\d+\.\d+(?:[+-][-+.\w]*)?(?![^\s()[\],])/,lookbehind:!0,alias:"number"},"go-version":{pattern:/((?:^|\s)go\s+)\d+(?:\.\d+){1,2}/,lookbehind:!0,alias:"number"},keyword:{pattern:/^([ \t]*)(?:exclude|go|module|replace|require|retract)\b/m,lookbehind:!0},operator:/=>/,punctuation:/[()[\],]/}}return Yd}var Kd,jk;function CB(){if(jk)return Kd;jk=1,Kd=e,e.displayName="go",e.aliases=[];function e(t){t.languages.go=t.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),t.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete t.languages.go["class-name"]}return Kd}var Zd,zk;function IB(){if(zk)return Zd;zk=1,Zd=e,e.displayName="graphql",e.aliases=[];function e(t){t.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:t.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},t.hooks.add("after-tokenize",function(i){if(i.language!=="graphql")return;var o=i.tokens.filter(function(N){return typeof N!="string"&&N.type!=="comment"&&N.type!=="scalar"}),l=0;function u(N){return o[l+N]}function c(N,R){R=R||0;for(var A=0;A0)){var v=p(/^\{$/,/^\}$/);if(v===-1)continue;for(var k=l;k=0&&f(T,"variable-input")}}}}})}return Zd}var Xd,$k;function OB(){if($k)return Xd;$k=1,Xd=e,e.displayName="groovy",e.aliases=[];function e(t){t.languages.groovy=t.languages.extend("clike",{string:[{pattern:/("""|''')(?:[^\\]|\\[\s\S])*?\1|\$\/(?:[^/$]|\$(?:[/$]|(?![/$]))|\/(?!\$))*\/\$/,greedy:!0},{pattern:/(["'/])(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0}],keyword:/\b(?:abstract|as|assert|boolean|break|byte|case|catch|char|class|const|continue|def|default|do|double|else|enum|extends|final|finally|float|for|goto|if|implements|import|in|instanceof|int|interface|long|native|new|package|private|protected|public|return|short|static|strictfp|super|switch|synchronized|this|throw|throws|trait|transient|try|void|volatile|while)\b/,number:/\b(?:0b[01_]+|0x[\da-f_]+(?:\.[\da-f_p\-]+)?|[\d_]+(?:\.[\d_]+)?(?:e[+-]?\d+)?)[glidf]?\b/i,operator:{pattern:/(^|[^.])(?:~|==?~?|\?[.:]?|\*(?:[.=]|\*=?)?|\.[@&]|\.\.<|\.\.(?!\.)|-[-=>]?|\+[+=]?|!=?|<(?:<=?|=>?)?|>(?:>>?=?|=)?|&[&=]?|\|[|=]?|\/=?|\^=?|%=?)/,lookbehind:!0},punctuation:/\.+|[{}[\];(),:$]/}),t.languages.insertBefore("groovy","string",{shebang:{pattern:/#!.+/,alias:"comment"}}),t.languages.insertBefore("groovy","punctuation",{"spock-block":/\b(?:and|cleanup|expect|given|setup|then|when|where):/}),t.languages.insertBefore("groovy","function",{annotation:{pattern:/(^|[^.])@\w+/,lookbehind:!0,alias:"punctuation"}}),t.hooks.add("wrap",function(n){if(n.language==="groovy"&&n.type==="string"){var i=n.content.value[0];if(i!="'"){var o=/([^\\])(?:\$(?:\{.*?\}|[\w.]+))/;i==="$"&&(o=/([^\$])(?:\$(?:\{.*?\}|[\w.]+))/),n.content.value=n.content.value.replace(/</g,"<").replace(/&/g,"&"),n.content=t.highlight(n.content.value,{expression:{pattern:o,lookbehind:!0,inside:t.languages.groovy}}),n.classes.push(i==="/"?"regex":"gstring")}}})}return Xd}var Qd,qk;function LB(){if(qk)return Qd;qk=1;var e=_s();Qd=t,t.displayName="haml",t.aliases=[];function t(n){n.register(e),(function(i){i.languages.haml={"multiline-comment":{pattern:/((?:^|\r?\n|\r)([\t ]*))(?:\/|-#).*(?:(?:\r?\n|\r)\2[\t ].+)*/,lookbehind:!0,alias:"comment"},"multiline-code":[{pattern:/((?:^|\r?\n|\r)([\t ]*)(?:[~-]|[&!]?=)).*,[\t ]*(?:(?:\r?\n|\r)\2[\t ].*,[\t ]*)*(?:(?:\r?\n|\r)\2[\t ].+)/,lookbehind:!0,inside:i.languages.ruby},{pattern:/((?:^|\r?\n|\r)([\t ]*)(?:[~-]|[&!]?=)).*\|[\t ]*(?:(?:\r?\n|\r)\2[\t ].*\|[\t ]*)*/,lookbehind:!0,inside:i.languages.ruby}],filter:{pattern:/((?:^|\r?\n|\r)([\t ]*)):[\w-]+(?:(?:\r?\n|\r)(?:\2[\t ].+|\s*?(?=\r?\n|\r)))+/,lookbehind:!0,inside:{"filter-name":{pattern:/^:[\w-]+/,alias:"symbol"}}},markup:{pattern:/((?:^|\r?\n|\r)[\t ]*)<.+/,lookbehind:!0,inside:i.languages.markup},doctype:{pattern:/((?:^|\r?\n|\r)[\t ]*)!!!(?: .+)?/,lookbehind:!0},tag:{pattern:/((?:^|\r?\n|\r)[\t ]*)[%.#][\w\-#.]*[\w\-](?:\([^)]+\)|\{(?:\{[^}]+\}|[^{}])+\}|\[[^\]]+\])*[\/<>]*/,lookbehind:!0,inside:{attributes:[{pattern:/(^|[^#])\{(?:\{[^}]+\}|[^{}])+\}/,lookbehind:!0,inside:i.languages.ruby},{pattern:/\([^)]+\)/,inside:{"attr-value":{pattern:/(=\s*)(?:"(?:\\.|[^\\"\r\n])*"|[^)\s]+)/,lookbehind:!0},"attr-name":/[\w:-]+(?=\s*!?=|\s*[,)])/,punctuation:/[=(),]/}},{pattern:/\[[^\]]+\]/,inside:i.languages.ruby}],punctuation:/[<>]/}},code:{pattern:/((?:^|\r?\n|\r)[\t ]*(?:[~-]|[&!]?=)).+/,lookbehind:!0,inside:i.languages.ruby},interpolation:{pattern:/#\{[^}]+\}/,inside:{delimiter:{pattern:/^#\{|\}$/,alias:"punctuation"},ruby:{pattern:/[\s\S]+/,inside:i.languages.ruby}}},punctuation:{pattern:/((?:^|\r?\n|\r)[\t ]*)[~=\-&!]+/,lookbehind:!0}};for(var o="((?:^|\\r?\\n|\\r)([\\t ]*)):{{filter_name}}(?:(?:\\r?\\n|\\r)(?:\\2[\\t ].+|\\s*?(?=\\r?\\n|\\r)))+",l=["css",{filter:"coffee",language:"coffeescript"},"erb","javascript","less","markdown","ruby","scss","textile"],u={},c=0,p=l.length;c@\[\\\]^`{|}~]/,variable:/[^!"#%&'()*+,\/;<=>@\[\\\]^`{|}~\s]+/},i.hooks.add("before-tokenize",function(o){var l=/\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g;i.languages["markup-templating"].buildPlaceholders(o,"handlebars",l)}),i.hooks.add("after-tokenize",function(o){i.languages["markup-templating"].tokenizePlaceholders(o,"handlebars")}),i.languages.hbs=i.languages.handlebars})(n)}return Jd}var ep,Hk;function gh(){if(Hk)return ep;Hk=1,ep=e,e.displayName="haskell",e.aliases=["hs"];function e(t){t.languages.haskell={comment:{pattern:/(^|[^-!#$%*+=?&@|~.:<>^\\\/])(?:--(?:(?=.)[^-!#$%*+=?&@|~.:<>^\\\/].*|$)|\{-[\s\S]*?-\})/m,lookbehind:!0},char:{pattern:/'(?:[^\\']|\\(?:[abfnrtv\\"'&]|\^[A-Z@[\]^_]|ACK|BEL|BS|CAN|CR|DC1|DC2|DC3|DC4|DEL|DLE|EM|ENQ|EOT|ESC|ETB|ETX|FF|FS|GS|HT|LF|NAK|NUL|RS|SI|SO|SOH|SP|STX|SUB|SYN|US|VT|\d+|o[0-7]+|x[0-9a-fA-F]+))'/,alias:"string"},string:{pattern:/"(?:[^\\"]|\\(?:\S|\s+\\))*"/,greedy:!0},keyword:/\b(?:case|class|data|deriving|do|else|if|in|infixl|infixr|instance|let|module|newtype|of|primitive|then|type|where)\b/,"import-statement":{pattern:/(^[\t ]*)import\s+(?:qualified\s+)?(?:[A-Z][\w']*)(?:\.[A-Z][\w']*)*(?:\s+as\s+(?:[A-Z][\w']*)(?:\.[A-Z][\w']*)*)?(?:\s+hiding\b)?/m,lookbehind:!0,inside:{keyword:/\b(?:as|hiding|import|qualified)\b/,punctuation:/\./}},builtin:/\b(?:abs|acos|acosh|all|and|any|appendFile|approxRational|asTypeOf|asin|asinh|atan|atan2|atanh|basicIORun|break|catch|ceiling|chr|compare|concat|concatMap|const|cos|cosh|curry|cycle|decodeFloat|denominator|digitToInt|div|divMod|drop|dropWhile|either|elem|encodeFloat|enumFrom|enumFromThen|enumFromThenTo|enumFromTo|error|even|exp|exponent|fail|filter|flip|floatDigits|floatRadix|floatRange|floor|fmap|foldl|foldl1|foldr|foldr1|fromDouble|fromEnum|fromInt|fromInteger|fromIntegral|fromRational|fst|gcd|getChar|getContents|getLine|group|head|id|inRange|index|init|intToDigit|interact|ioError|isAlpha|isAlphaNum|isAscii|isControl|isDenormalized|isDigit|isHexDigit|isIEEE|isInfinite|isLower|isNaN|isNegativeZero|isOctDigit|isPrint|isSpace|isUpper|iterate|last|lcm|length|lex|lexDigits|lexLitChar|lines|log|logBase|lookup|map|mapM|mapM_|max|maxBound|maximum|maybe|min|minBound|minimum|mod|negate|not|notElem|null|numerator|odd|or|ord|otherwise|pack|pi|pred|primExitWith|print|product|properFraction|putChar|putStr|putStrLn|quot|quotRem|range|rangeSize|read|readDec|readFile|readFloat|readHex|readIO|readInt|readList|readLitChar|readLn|readOct|readParen|readSigned|reads|readsPrec|realToFrac|recip|rem|repeat|replicate|return|reverse|round|scaleFloat|scanl|scanl1|scanr|scanr1|seq|sequence|sequence_|show|showChar|showInt|showList|showLitChar|showParen|showSigned|showString|shows|showsPrec|significand|signum|sin|sinh|snd|sort|span|splitAt|sqrt|subtract|succ|sum|tail|take|takeWhile|tan|tanh|threadToIOResult|toEnum|toInt|toInteger|toLower|toRational|toUpper|truncate|uncurry|undefined|unlines|until|unwords|unzip|unzip3|userError|words|writeFile|zip|zip3|zipWith|zipWith3)\b/,number:/\b(?:\d+(?:\.\d+)?(?:e[+-]?\d+)?|0o[0-7]+|0x[0-9a-f]+)\b/i,operator:[{pattern:/`(?:[A-Z][\w']*\.)*[_a-z][\w']*`/,greedy:!0},{pattern:/(\s)\.(?=\s)/,lookbehind:!0},/[-!#$%*+=?&@|~:<>^\\\/][-!#$%*+=?&@|~.:<>^\\\/]*|\.[-!#$%*+=?&@|~.:<>^\\\/]+/],hvariable:{pattern:/\b(?:[A-Z][\w']*\.)*[_a-z][\w']*/,inside:{punctuation:/\./}},constant:{pattern:/\b(?:[A-Z][\w']*\.)*[A-Z][\w']*/,inside:{punctuation:/\./}},punctuation:/[{}[\];(),.:]/},t.languages.hs=t.languages.haskell}return ep}var tp,Wk;function MB(){if(Wk)return tp;Wk=1,tp=e,e.displayName="haxe",e.aliases=[];function e(t){t.languages.haxe=t.languages.extend("clike",{string:{pattern:/"(?:[^"\\]|\\[\s\S])*"/,greedy:!0},"class-name":[{pattern:/(\b(?:abstract|class|enum|extends|implements|interface|new|typedef)\s+)[A-Z_]\w*/,lookbehind:!0},/\b[A-Z]\w*/],keyword:/\bthis\b|\b(?:abstract|as|break|case|cast|catch|class|continue|default|do|dynamic|else|enum|extends|extern|final|for|from|function|if|implements|import|in|inline|interface|macro|new|null|operator|overload|override|package|private|public|return|static|super|switch|throw|to|try|typedef|untyped|using|var|while)(?!\.)\b/,function:{pattern:/\b[a-z_]\w*(?=\s*(?:<[^<>]*>\s*)?\()/i,greedy:!0},operator:/\.{3}|\+\+|--|&&|\|\||->|=>|(?:<{1,3}|[-+*/%!=&|^])=?|[?:~]/}),t.languages.insertBefore("haxe","string",{"string-interpolation":{pattern:/'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{interpolation:{pattern:/(^|[^\\])\$(?:\w+|\{[^{}]+\})/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{?|\}$/,alias:"punctuation"},expression:{pattern:/[\s\S]+/,inside:t.languages.haxe}}},string:/[\s\S]+/}}}),t.languages.insertBefore("haxe","class-name",{regex:{pattern:/~\/(?:[^\/\\\r\n]|\\.)+\/[a-z]*/,greedy:!0,inside:{"regex-flags":/\b[a-z]+$/,"regex-source":{pattern:/^(~\/)[\s\S]+(?=\/$)/,lookbehind:!0,alias:"language-regex",inside:t.languages.regex},"regex-delimiter":/^~\/|\/$/}}}),t.languages.insertBefore("haxe","keyword",{preprocessor:{pattern:/#(?:else|elseif|end|if)\b.*/,alias:"property"},metadata:{pattern:/@:?[\w.]+/,alias:"symbol"},reification:{pattern:/\$(?:\w+|(?=\{))/,alias:"important"}})}return tp}var np,Vk;function FB(){if(Vk)return np;Vk=1,np=e,e.displayName="hcl",e.aliases=[];function e(t){t.languages.hcl={comment:/(?:\/\/|#).*|\/\*[\s\S]*?(?:\*\/|$)/,heredoc:{pattern:/<<-?(\w+\b)[\s\S]*?^[ \t]*\1/m,greedy:!0,alias:"string"},keyword:[{pattern:/(?:data|resource)\s+(?:"(?:\\[\s\S]|[^\\"])*")(?=\s+"[\w-]+"\s+\{)/i,inside:{type:{pattern:/(resource|data|\s+)(?:"(?:\\[\s\S]|[^\\"])*")/i,lookbehind:!0,alias:"variable"}}},{pattern:/(?:backend|module|output|provider|provisioner|variable)\s+(?:[\w-]+|"(?:\\[\s\S]|[^\\"])*")\s+(?=\{)/i,inside:{type:{pattern:/(backend|module|output|provider|provisioner|variable)\s+(?:[\w-]+|"(?:\\[\s\S]|[^\\"])*")\s+/i,lookbehind:!0,alias:"variable"}}},/[\w-]+(?=\s+\{)/],property:[/[-\w\.]+(?=\s*=(?!=))/,/"(?:\\[\s\S]|[^\\"])+"(?=\s*[:=])/],string:{pattern:/"(?:[^\\$"]|\\[\s\S]|\$(?:(?=")|\$+(?!\$)|[^"${])|\$\{(?:[^{}"]|"(?:[^\\"]|\\[\s\S])*")*\})*"/,greedy:!0,inside:{interpolation:{pattern:/(^|[^$])\$\{(?:[^{}"]|"(?:[^\\"]|\\[\s\S])*")*\}/,lookbehind:!0,inside:{type:{pattern:/(\b(?:count|data|local|module|path|self|terraform|var)\b\.)[\w\*]+/i,lookbehind:!0,alias:"variable"},keyword:/\b(?:count|data|local|module|path|self|terraform|var)\b/i,function:/\w+(?=\()/,string:{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0},number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?(?:e[+-]?\d+)?/i,punctuation:/[!\$#%&'()*+,.\/;<=>@\[\\\]^`{|}~?:]/}}}},number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?(?:e[+-]?\d+)?/i,boolean:/\b(?:false|true)\b/i,punctuation:/[=\[\]{}]/}}return np}var rp,Yk;function PB(){if(Yk)return rp;Yk=1;var e=Yr();rp=t,t.displayName="hlsl",t.aliases=[];function t(n){n.register(e),n.languages.hlsl=n.languages.extend("c",{"class-name":[n.languages.c["class-name"],/\b(?:AppendStructuredBuffer|BlendState|Buffer|ByteAddressBuffer|CompileShader|ComputeShader|ConsumeStructuredBuffer|DepthStencilState|DepthStencilView|DomainShader|GeometryShader|Hullshader|InputPatch|LineStream|OutputPatch|PixelShader|PointStream|RWBuffer|RWByteAddressBuffer|RWStructuredBuffer|RWTexture(?:1D|1DArray|2D|2DArray|3D)|RasterizerState|RenderTargetView|SamplerComparisonState|SamplerState|StructuredBuffer|Texture(?:1D|1DArray|2D|2DArray|2DMS|2DMSArray|3D|Cube|CubeArray)|TriangleStream|VertexShader)\b/],keyword:[/\b(?:asm|asm_fragment|auto|break|case|catch|cbuffer|centroid|char|class|column_major|compile|compile_fragment|const|const_cast|continue|default|delete|discard|do|dynamic_cast|else|enum|explicit|export|extern|for|friend|fxgroup|goto|groupshared|if|in|inline|inout|interface|line|lineadj|linear|long|matrix|mutable|namespace|new|nointerpolation|noperspective|operator|out|packoffset|pass|pixelfragment|point|precise|private|protected|public|register|reinterpret_cast|return|row_major|sample|sampler|shared|short|signed|sizeof|snorm|stateblock|stateblock_state|static|static_cast|string|struct|switch|tbuffer|technique|technique10|technique11|template|texture|this|throw|triangle|triangleadj|try|typedef|typename|uniform|union|unorm|unsigned|using|vector|vertexfragment|virtual|void|volatile|while)\b/,/\b(?:bool|double|dword|float|half|int|min(?:10float|12int|16(?:float|int|uint))|uint)(?:[1-4](?:x[1-4])?)?\b/],number:/(?:(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[eE][+-]?\d+)?|\b0x[\da-fA-F]+)[fFhHlLuU]?\b/,boolean:/\b(?:false|true)\b/})}return rp}var ap,Kk;function UB(){if(Kk)return ap;Kk=1,ap=e,e.displayName="hoon",e.aliases=[];function e(t){t.languages.hoon={comment:{pattern:/::.*/,greedy:!0},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},constant:/%(?:\.[ny]|[\w-]+)/,"class-name":/@(?:[a-z0-9-]*[a-z0-9])?|\*/i,function:/(?:\+[-+] {2})?(?:[a-z](?:[a-z0-9-]*[a-z0-9])?)/,keyword:/\.[\^\+\*=\?]|![><:\.=\?!]|=[>|:,\.\-\^<+;/~\*\?]|\?[>|:\.\-\^<\+&~=@!]|\|[\$_%:\.\-\^~\*=@\?]|\+[|\$\+\*]|:[_\-\^\+~\*]|%[_:\.\-\^\+~\*=]|\^[|:\.\-\+&~\*=\?]|\$[|_%:<>\-\^&~@=\?]|;[:<\+;\/~\*=]|~[>|\$_%<\+\/&=\?!]|--|==/}}return ap}var ip,Zk;function BB(){if(Zk)return ip;Zk=1,ip=e,e.displayName="hpkp",e.aliases=[];function e(t){t.languages.hpkp={directive:{pattern:/\b(?:includeSubDomains|max-age|pin-sha256|preload|report-to|report-uri|strict)(?=[\s;=]|$)/i,alias:"property"},operator:/=/,punctuation:/;/}}return ip}var op,Xk;function jB(){if(Xk)return op;Xk=1,op=e,e.displayName="hsts",e.aliases=[];function e(t){t.languages.hsts={directive:{pattern:/\b(?:includeSubDomains|max-age|preload)(?=[\s;=]|$)/i,alias:"property"},operator:/=/,punctuation:/;/}}return op}var sp,Qk;function zB(){if(Qk)return sp;Qk=1,sp=e,e.displayName="http",e.aliases=[];function e(t){(function(n){function i(h){return RegExp("(^(?:"+h+"):[ ]*(?![ ]))[^]+","i")}n.languages.http={"request-line":{pattern:/^(?:CONNECT|DELETE|GET|HEAD|OPTIONS|PATCH|POST|PRI|PUT|SEARCH|TRACE)\s(?:https?:\/\/|\/)\S*\sHTTP\/[\d.]+/m,inside:{method:{pattern:/^[A-Z]+\b/,alias:"property"},"request-target":{pattern:/^(\s)(?:https?:\/\/|\/)\S*(?=\s)/,lookbehind:!0,alias:"url",inside:n.languages.uri},"http-version":{pattern:/^(\s)HTTP\/[\d.]+/,lookbehind:!0,alias:"property"}}},"response-status":{pattern:/^HTTP\/[\d.]+ \d+ .+/m,inside:{"http-version":{pattern:/^HTTP\/[\d.]+/,alias:"property"},"status-code":{pattern:/^(\s)\d+(?=\s)/,lookbehind:!0,alias:"number"},"reason-phrase":{pattern:/^(\s).+/,lookbehind:!0,alias:"string"}}},header:{pattern:/^[\w-]+:.+(?:(?:\r\n?|\n)[ \t].+)*/m,inside:{"header-value":[{pattern:i(/Content-Security-Policy/.source),lookbehind:!0,alias:["csp","languages-csp"],inside:n.languages.csp},{pattern:i(/Public-Key-Pins(?:-Report-Only)?/.source),lookbehind:!0,alias:["hpkp","languages-hpkp"],inside:n.languages.hpkp},{pattern:i(/Strict-Transport-Security/.source),lookbehind:!0,alias:["hsts","languages-hsts"],inside:n.languages.hsts},{pattern:i(/[^:]+/.source),lookbehind:!0}],"header-name":{pattern:/^[^:]+/,alias:"keyword"},punctuation:/^:/}}};var o=n.languages,l={"application/javascript":o.javascript,"application/json":o.json||o.javascript,"application/xml":o.xml,"text/xml":o.xml,"text/html":o.html,"text/css":o.css,"text/plain":o.plain},u={"application/json":!0,"application/xml":!0};function c(h){var S=h.replace(/^[a-z]+\//,""),E="\\w+/(?:[\\w.-]+\\+)+"+S+"(?![+\\w.-])";return"(?:"+h+"|"+E+")"}var p;for(var f in l)if(l[f]){p=p||{};var m=u[f]?c(f):f;p[f.replace(/\//g,"-")]={pattern:RegExp("("+/content-type:\s*/.source+m+/(?:(?:\r\n?|\n)[\w-].*)*(?:\r(?:\n|(?!\n))|\n)/.source+")"+/[^ \t\w-][\s\S]*/.source,"i"),lookbehind:!0,inside:l[f]}}p&&n.languages.insertBefore("http","header",p)})(t)}return sp}var lp,Jk;function $B(){if(Jk)return lp;Jk=1,lp=e,e.displayName="ichigojam",e.aliases=[];function e(t){t.languages.ichigojam={comment:/(?:\B'|REM)(?:[^\n\r]*)/i,string:{pattern:/"(?:""|[!#$%&'()*,\/:;<=>?^\w +\-.])*"/,greedy:!0},number:/\B#[0-9A-F]+|\B`[01]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:E[+-]?\d+)?/i,keyword:/\b(?:BEEP|BPS|CASE|CLEAR|CLK|CLO|CLP|CLS|CLT|CLV|CONT|COPY|ELSE|END|FILE|FILES|FOR|GOSUB|GOTO|GSB|IF|INPUT|KBD|LED|LET|LIST|LOAD|LOCATE|LRUN|NEW|NEXT|OUT|PLAY|POKE|PRINT|PWM|REM|RENUM|RESET|RETURN|RIGHT|RTN|RUN|SAVE|SCROLL|SLEEP|SRND|STEP|STOP|SUB|TEMPO|THEN|TO|UART|VIDEO|WAIT)(?:\$|\b)/i,function:/\b(?:ABS|ANA|ASC|BIN|BTN|DEC|END|FREE|HELP|HEX|I2CR|I2CW|IN|INKEY|LEN|LINE|PEEK|RND|SCR|SOUND|STR|TICK|USR|VER|VPEEK|ZER)(?:\$|\b)/i,label:/(?:\B@\S+)/,operator:/<[=>]?|>=?|\|\||&&|[+\-*\/=|&^~!]|\b(?:AND|NOT|OR)\b/i,punctuation:/[\[,;:()\]]/}}return lp}var up,e_;function qB(){if(e_)return up;e_=1,up=e,e.displayName="icon",e.aliases=[];function e(t){t.languages.icon={comment:/#.*/,string:{pattern:/(["'])(?:(?!\1)[^\\\r\n_]|\\.|_(?!\1)(?:\r\n|[\s\S]))*\1/,greedy:!0},number:/\b(?:\d+r[a-z\d]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?)\b|\.\d+\b/i,"builtin-keyword":{pattern:/&(?:allocated|ascii|clock|collections|cset|current|date|dateline|digits|dump|e|error(?:number|text|value)?|errout|fail|features|file|host|input|lcase|letters|level|line|main|null|output|phi|pi|pos|progname|random|regions|source|storage|subject|time|trace|ucase|version)\b/,alias:"variable"},directive:{pattern:/\$\w+/,alias:"builtin"},keyword:/\b(?:break|by|case|create|default|do|else|end|every|fail|global|if|initial|invocable|link|local|next|not|of|procedure|record|repeat|return|static|suspend|then|to|until|while)\b/,function:/\b(?!\d)\w+(?=\s*[({]|\s*!\s*\[)/,operator:/[+-]:(?!=)|(?:[\/?@^%&]|\+\+?|--?|==?=?|~==?=?|\*\*?|\|\|\|?|<(?:->?|>?=?)(?::=)?|:(?:=:?)?|[!.\\|~]/,punctuation:/[\[\](){},;]/}}return up}var cp,t_;function GB(){if(t_)return cp;t_=1,cp=e,e.displayName="icuMessageFormat",e.aliases=[];function e(t){(function(n){function i(f,m){return m<=0?/[]/.source:f.replace(//g,function(){return i(f,m-1)})}var o=/'[{}:=,](?:[^']|'')*'(?!')/,l={pattern:/''/,greedy:!0,alias:"operator"},u={pattern:o,greedy:!0,inside:{escape:l}},c=i(/\{(?:[^{}']|'(?![{},'])|''||)*\}/.source.replace(//g,function(){return o.source}),8),p={pattern:RegExp(c),inside:{message:{pattern:/^(\{)[\s\S]+(?=\}$)/,lookbehind:!0,inside:null},"message-delimiter":{pattern:/./,alias:"punctuation"}}};n.languages["icu-message-format"]={argument:{pattern:RegExp(c),greedy:!0,inside:{content:{pattern:/^(\{)[\s\S]+(?=\}$)/,lookbehind:!0,inside:{"argument-name":{pattern:/^(\s*)[^{}:=,\s]+/,lookbehind:!0},"choice-style":{pattern:/^(\s*,\s*choice\s*,\s*)\S(?:[\s\S]*\S)?/,lookbehind:!0,inside:{punctuation:/\|/,range:{pattern:/^(\s*)[+-]?(?:\d+(?:\.\d*)?|\u221e)\s*[<#\u2264]/,lookbehind:!0,inside:{operator:/[<#\u2264]/,number:/\S+/}},rest:null}},"plural-style":{pattern:/^(\s*,\s*(?:plural|selectordinal)\s*,\s*)\S(?:[\s\S]*\S)?/,lookbehind:!0,inside:{offset:/^offset:\s*\d+/,"nested-message":p,selector:{pattern:/=\d+|[^{}:=,\s]+/,inside:{keyword:/^(?:few|many|one|other|two|zero)$/}}}},"select-style":{pattern:/^(\s*,\s*select\s*,\s*)\S(?:[\s\S]*\S)?/,lookbehind:!0,inside:{"nested-message":p,selector:{pattern:/[^{}:=,\s]+/,inside:{keyword:/^other$/}}}},keyword:/\b(?:choice|plural|select|selectordinal)\b/,"arg-type":{pattern:/\b(?:date|duration|number|ordinal|spellout|time)\b/,alias:"keyword"},"arg-skeleton":{pattern:/(,\s*)::[^{}:=,\s]+/,lookbehind:!0},"arg-style":{pattern:/(,\s*)(?:currency|full|integer|long|medium|percent|short)(?=\s*$)/,lookbehind:!0},"arg-style-text":{pattern:RegExp(/(^\s*,\s*(?=\S))/.source+i(/(?:[^{}']|'[^']*'|\{(?:)?\})+/.source,8)+"$"),lookbehind:!0,alias:"string"},punctuation:/,/}},"argument-delimiter":{pattern:/./,alias:"operator"}}},escape:l,string:u},p.inside.message.inside=n.languages["icu-message-format"],n.languages["icu-message-format"].argument.inside.content.inside["choice-style"].inside.rest=n.languages["icu-message-format"]})(t)}return cp}var dp,n_;function HB(){if(n_)return dp;n_=1;var e=gh();dp=t,t.displayName="idris",t.aliases=["idr"];function t(n){n.register(e),n.languages.idris=n.languages.extend("haskell",{comment:{pattern:/(?:(?:--|\|\|\|).*$|\{-[\s\S]*?-\})/m},keyword:/\b(?:Type|case|class|codata|constructor|corecord|data|do|dsl|else|export|if|implementation|implicit|import|impossible|in|infix|infixl|infixr|instance|interface|let|module|mutual|namespace|of|parameters|partial|postulate|private|proof|public|quoteGoal|record|rewrite|syntax|then|total|using|where|with)\b/,builtin:void 0}),n.languages.insertBefore("idris","keyword",{"import-statement":{pattern:/(^\s*import\s+)(?:[A-Z][\w']*)(?:\.[A-Z][\w']*)*/m,lookbehind:!0,inside:{punctuation:/\./}}}),n.languages.idr=n.languages.idris}return dp}var pp,r_;function WB(){if(r_)return pp;r_=1,pp=e,e.displayName="iecst",e.aliases=[];function e(t){t.languages.iecst={comment:[{pattern:/(^|[^\\])(?:\/\*[\s\S]*?(?:\*\/|$)|\(\*[\s\S]*?(?:\*\)|$)|\{[\s\S]*?(?:\}|$))/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},keyword:[/\b(?:END_)?(?:PROGRAM|CONFIGURATION|INTERFACE|FUNCTION_BLOCK|FUNCTION|ACTION|TRANSITION|TYPE|STRUCT|(?:INITIAL_)?STEP|NAMESPACE|LIBRARY|CHANNEL|FOLDER|RESOURCE|VAR_(?:ACCESS|CONFIG|EXTERNAL|GLOBAL|INPUT|IN_OUT|OUTPUT|TEMP)|VAR|METHOD|PROPERTY)\b/i,/\b(?:AT|BY|(?:END_)?(?:CASE|FOR|IF|REPEAT|WHILE)|CONSTANT|CONTINUE|DO|ELSE|ELSIF|EXIT|EXTENDS|FROM|GET|GOTO|IMPLEMENTS|JMP|NON_RETAIN|OF|PRIVATE|PROTECTED|PUBLIC|RETAIN|RETURN|SET|TASK|THEN|TO|UNTIL|USING|WITH|__CATCH|__ENDTRY|__FINALLY|__TRY)\b/],"class-name":/\b(?:ANY|ARRAY|BOOL|BYTE|U?(?:D|L|S)?INT|(?:D|L)?WORD|DATE(?:_AND_TIME)?|DT|L?REAL|POINTER|STRING|TIME(?:_OF_DAY)?|TOD)\b/,address:{pattern:/%[IQM][XBWDL][\d.]*|%[IQ][\d.]*/,alias:"symbol"},number:/\b(?:16#[\da-f]+|2#[01_]+|0x[\da-f]+)\b|\b(?:D|DT|T|TOD)#[\d_shmd:]*|\b[A-Z]*#[\d.,_]*|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,boolean:/\b(?:FALSE|NULL|TRUE)\b/,operator:/S?R?:?=>?|&&?|\*\*?|<[=>]?|>=?|[-:^/+#]|\b(?:AND|EQ|EXPT|GE|GT|LE|LT|MOD|NE|NOT|OR|XOR)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,punctuation:/[()[\].,;]/}}return pp}var fp,a_;function VB(){if(a_)return fp;a_=1,fp=e,e.displayName="ignore",e.aliases=["gitignore","hgignore","npmignore"];function e(t){(function(n){n.languages.ignore={comment:/^#.*/m,entry:{pattern:/\S(?:.*(?:(?:\\ )|\S))?/,alias:"string",inside:{operator:/^!|\*\*?|\?/,regex:{pattern:/(^|[^\\])\[[^\[\]]*\]/,lookbehind:!0},punctuation:/\//}}},n.languages.gitignore=n.languages.ignore,n.languages.hgignore=n.languages.ignore,n.languages.npmignore=n.languages.ignore})(t)}return fp}var gp,i_;function YB(){if(i_)return gp;i_=1,gp=e,e.displayName="inform7",e.aliases=[];function e(t){t.languages.inform7={string:{pattern:/"[^"]*"/,inside:{substitution:{pattern:/\[[^\[\]]+\]/,inside:{delimiter:{pattern:/\[|\]/,alias:"punctuation"}}}}},comment:{pattern:/\[[^\[\]]+\]/,greedy:!0},title:{pattern:/^[ \t]*(?:book|chapter|part(?! of)|section|table|volume)\b.+/im,alias:"important"},number:{pattern:/(^|[^-])(?:\b\d+(?:\.\d+)?(?:\^\d+)?(?:(?!\d)\w+)?|\b(?:eight|eleven|five|four|nine|one|seven|six|ten|three|twelve|two))\b(?!-)/i,lookbehind:!0},verb:{pattern:/(^|[^-])\b(?:answering|applying to|are|asking|attacking|be(?:ing)?|burning|buying|called|carries|carry(?! out)|carrying|climbing|closing|conceal(?:ing|s)?|consulting|contain(?:ing|s)?|cutting|drinking|dropping|eating|enclos(?:es?|ing)|entering|examining|exiting|getting|giving|going|ha(?:s|ve|ving)|hold(?:ing|s)?|impl(?:ies|y)|incorporat(?:es?|ing)|inserting|is|jumping|kissing|listening|locking|looking|mean(?:ing|s)?|opening|provid(?:es?|ing)|pulling|pushing|putting|relat(?:es?|ing)|removing|searching|see(?:ing|s)?|setting|showing|singing|sleeping|smelling|squeezing|support(?:ing|s)?|swearing|switching|taking|tasting|telling|thinking|throwing|touching|turning|tying|unlock(?:ing|s)?|var(?:ies|y|ying)|waiting|waking|waving|wear(?:ing|s)?)\b(?!-)/i,lookbehind:!0,alias:"operator"},keyword:{pattern:/(^|[^-])\b(?:after|before|carry out|check|continue the action|definition(?= *:)|do nothing|else|end (?:if|the story|unless)|every turn|if|include|instead(?: of)?|let|move|no|now|otherwise|repeat|report|resume the story|rule for|running through|say(?:ing)?|stop the action|test|try(?:ing)?|understand|unless|use|when|while|yes)\b(?!-)/i,lookbehind:!0},property:{pattern:/(^|[^-])\b(?:adjacent(?! to)|carried|closed|concealed|contained|dark|described|edible|empty|enclosed|enterable|even|female|fixed in place|full|handled|held|improper-named|incorporated|inedible|invisible|lighted|lit|lock(?:able|ed)|male|marked for listing|mentioned|negative|neuter|non-(?:empty|full|recurring)|odd|opaque|open(?:able)?|plural-named|portable|positive|privately-named|proper-named|provided|publically-named|pushable between rooms|recurring|related|rubbing|scenery|seen|singular-named|supported|swinging|switch(?:able|ed(?: off| on)?)|touch(?:able|ed)|transparent|unconcealed|undescribed|unlit|unlocked|unmarked for listing|unmentioned|unopenable|untouchable|unvisited|variable|visible|visited|wearable|worn)\b(?!-)/i,lookbehind:!0,alias:"symbol"},position:{pattern:/(^|[^-])\b(?:above|adjacent to|back side of|below|between|down|east|everywhere|front side|here|in|inside(?: from)?|north(?:east|west)?|nowhere|on(?: top of)?|other side|outside(?: from)?|parts? of|regionally in|south(?:east|west)?|through|up|west|within)\b(?!-)/i,lookbehind:!0,alias:"keyword"},type:{pattern:/(^|[^-])\b(?:actions?|activit(?:ies|y)|actors?|animals?|backdrops?|containers?|devices?|directions?|doors?|holders?|kinds?|lists?|m[ae]n|nobody|nothing|nouns?|numbers?|objects?|people|persons?|player(?:'s holdall)?|regions?|relations?|rooms?|rule(?:book)?s?|scenes?|someone|something|supporters?|tables?|texts?|things?|time|vehicles?|wom[ae]n)\b(?!-)/i,lookbehind:!0,alias:"variable"},punctuation:/[.,:;(){}]/},t.languages.inform7.string.inside.substitution.inside.rest=t.languages.inform7,t.languages.inform7.string.inside.substitution.inside.rest.text={pattern:/\S(?:\s*\S)*/,alias:"comment"}}return gp}var mp,o_;function KB(){if(o_)return mp;o_=1,mp=e,e.displayName="ini",e.aliases=[];function e(t){t.languages.ini={comment:{pattern:/(^[ \f\t\v]*)[#;][^\n\r]*/m,lookbehind:!0},section:{pattern:/(^[ \f\t\v]*)\[[^\n\r\]]*\]?/m,lookbehind:!0,inside:{"section-name":{pattern:/(^\[[ \f\t\v]*)[^ \f\t\v\]]+(?:[ \f\t\v]+[^ \f\t\v\]]+)*/,lookbehind:!0,alias:"selector"},punctuation:/\[|\]/}},key:{pattern:/(^[ \f\t\v]*)[^ \f\n\r\t\v=]+(?:[ \f\t\v]+[^ \f\n\r\t\v=]+)*(?=[ \f\t\v]*=)/m,lookbehind:!0,alias:"attr-name"},value:{pattern:/(=[ \f\t\v]*)[^ \f\n\r\t\v]+(?:[ \f\t\v]+[^ \f\n\r\t\v]+)*/,lookbehind:!0,alias:"attr-value",inside:{"inner-value":{pattern:/^("|').+(?=\1$)/,lookbehind:!0}}},punctuation:/=/}}return mp}var hp,s_;function ZB(){if(s_)return hp;s_=1,hp=e,e.displayName="io",e.aliases=[];function e(t){t.languages.io={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?(?:\*\/|$)|\/\/.*|#.*)/,lookbehind:!0,greedy:!0},"triple-quoted-string":{pattern:/"""(?:\\[\s\S]|(?!""")[^\\])*"""/,greedy:!0,alias:"string"},string:{pattern:/"(?:\\.|[^\\\r\n"])*"/,greedy:!0},keyword:/\b(?:activate|activeCoroCount|asString|block|break|call|catch|clone|collectGarbage|compileString|continue|do|doFile|doMessage|doString|else|elseif|exit|for|foreach|forward|getEnvironmentVariable|getSlot|hasSlot|if|ifFalse|ifNil|ifNilEval|ifTrue|isActive|isNil|isResumable|list|message|method|parent|pass|pause|perform|performWithArgList|print|println|proto|raise|raiseResumable|removeSlot|resend|resume|schedulerSleepSeconds|self|sender|setSchedulerSleepSeconds|setSlot|shallowCopy|slotNames|super|system|then|thisBlock|thisContext|try|type|uniqueId|updateSlot|wait|while|write|yield)\b/,builtin:/\b(?:Array|AudioDevice|AudioMixer|BigNum|Block|Box|Buffer|CFunction|CGI|Color|Curses|DBM|DNSResolver|DOConnection|DOProxy|DOServer|Date|Directory|Duration|DynLib|Error|Exception|FFT|File|Fnmatch|Font|Future|GL|GLE|GLScissor|GLU|GLUCylinder|GLUQuadric|GLUSphere|GLUT|Host|Image|Importer|LinkList|List|Lobby|Locals|MD5|MP3Decoder|MP3Encoder|Map|Message|Movie|Notification|Number|Object|OpenGL|Point|Protos|Random|Regex|SGML|SGMLElement|SGMLParser|SQLite|Sequence|Server|ShowMessage|SleepyCat|SleepyCatCursor|Socket|SocketManager|Sound|Soup|Store|String|Tree|UDPSender|UPDReceiver|URL|User|Warning|WeakLink)\b/,boolean:/\b(?:false|nil|true)\b/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e-?\d+)?/i,operator:/[=!*/%+\-^&|]=|>>?=?|<+*\-%$|,#][.:]?|[?^]\.?|[;\[]:?|[~}"i][.:]|[ACeEIjLor]\.|(?:[_\/\\qsux]|_?\d):)/,alias:"keyword"},number:/\b_?(?:(?!\d:)\d+(?:\.\d+)?(?:(?:ad|ar|[ejpx])_?\d+(?:\.\d+)?)*(?:b_?[\da-z]+(?:\.[\da-z]+)?)?|_\b(?!\.))/,adverb:{pattern:/[~}]|[\/\\]\.?|[bfM]\.|t[.:]/,alias:"builtin"},operator:/[=a][.:]|_\./,conjunction:{pattern:/&(?:\.:?|:)?|[.:@][.:]?|[!D][.:]|[;dHT]\.|`:?|[\^LS]:|"/,alias:"variable"},punctuation:/[()]/}}return bp}var yp,u_;function mh(){if(u_)return yp;u_=1,yp=e,e.displayName="java",e.aliases=[];function e(t){(function(n){var i=/\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\b/,o=/(^|[^\w.])(?:[a-z]\w*\s*\.\s*)*(?:[A-Z]\w*\s*\.\s*)*/.source,l={pattern:RegExp(o+/[A-Z](?:[\d_A-Z]*[a-z]\w*)?\b/.source),lookbehind:!0,inside:{namespace:{pattern:/^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/,inside:{punctuation:/\./}},punctuation:/\./}};n.languages.java=n.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"/,lookbehind:!0,greedy:!0},"class-name":[l,{pattern:RegExp(o+/[A-Z]\w*(?=\s+\w+\s*[;,=()])/.source),lookbehind:!0,inside:l.inside}],keyword:i,function:[n.languages.clike.function,{pattern:/(::\s*)[a-z_]\w*/,lookbehind:!0}],number:/\b0b[01][01_]*L?\b|\b0x(?:\.[\da-f_p+-]+|[\da-f_]+(?:\.[\da-f_p+-]+)?)\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfl]?/i,operator:{pattern:/(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,lookbehind:!0}}),n.languages.insertBefore("java","string",{"triple-quoted-string":{pattern:/"""[ \t]*[\r\n](?:(?:"|"")?(?:\\.|[^"\\]))*"""/,greedy:!0,alias:"string"},char:{pattern:/'(?:\\.|[^'\\\r\n]){1,6}'/,greedy:!0}}),n.languages.insertBefore("java","class-name",{annotation:{pattern:/(^|[^.])@\w+(?:\s*\.\s*\w+)*/,lookbehind:!0,alias:"punctuation"},generics:{pattern:/<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&))*>)*>)*>)*>/,inside:{"class-name":l,keyword:i,punctuation:/[<>(),.:]/,operator:/[?&|]/}},namespace:{pattern:RegExp(/(\b(?:exports|import(?:\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\s+)(?!)[a-z]\w*(?:\.[a-z]\w*)*\.?/.source.replace(//g,function(){return i.source})),lookbehind:!0,inside:{punctuation:/\./}}})})(t)}return yp}var Ep,c_;function ws(){if(c_)return Ep;c_=1,Ep=e,e.displayName="javadoclike",e.aliases=[];function e(t){(function(n){var i=n.languages.javadoclike={parameter:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*@(?:arg|arguments|param)\s+)\w+/m,lookbehind:!0},keyword:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*|\{)@[a-z][a-zA-Z-]+\b/m,lookbehind:!0},punctuation:/[{}]/};function o(u,c){var p="doc-comment",f=n.languages[u];if(f){var m=f[p];if(!m){var h={};h[p]={pattern:/(^|[^\\])\/\*\*[^/][\s\S]*?(?:\*\/|$)/,lookbehind:!0,alias:"comment"},f=n.languages.insertBefore(u,"comment",h),m=f[p]}if(m instanceof RegExp&&(m=f[p]={pattern:m}),Array.isArray(m))for(var S=0,E=m.length;S)?|/.source.replace(//g,function(){return u});o.languages.javadoc=o.languages.extend("javadoclike",{}),o.languages.insertBefore("javadoc","keyword",{reference:{pattern:RegExp(/(@(?:exception|link|linkplain|see|throws|value)\s+(?:\*\s*)?)/.source+"(?:"+c+")"),lookbehind:!0,inside:{function:{pattern:/(#\s*)\w+(?=\s*\()/,lookbehind:!0},field:{pattern:/(#\s*)\w+/,lookbehind:!0},namespace:{pattern:/\b(?:[a-z]\w*\s*\.\s*)+/,inside:{punctuation:/\./}},"class-name":/\b[A-Z]\w*/,keyword:o.languages.java.keyword,punctuation:/[#()[\],.]/}},"class-name":{pattern:/(@param\s+)<[A-Z]\w*>/,lookbehind:!0,inside:{punctuation:/[.<>]/}},"code-section":[{pattern:/(\{@code\s+(?!\s))(?:[^\s{}]|\s+(?![\s}])|\{(?:[^{}]|\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})*\})*\})+(?=\s*\})/,lookbehind:!0,inside:{code:{pattern:l,lookbehind:!0,inside:o.languages.java,alias:"language-java"}}},{pattern:/(<(code|pre|tt)>(?!)\s*)\S(?:\S|\s+\S)*?(?=\s*<\/\2>)/,lookbehind:!0,inside:{line:{pattern:l,lookbehind:!0,inside:{tag:o.languages.markup.tag,entity:o.languages.markup.entity,code:{pattern:/.+/,inside:o.languages.java,alias:"language-java"}}}}}],tag:o.languages.markup.tag,entity:o.languages.markup.entity}),o.languages.javadoclike.addSupport("java",o.languages.javadoc)})(i)}return Sp}var vp,p_;function JB(){if(p_)return vp;p_=1,vp=e,e.displayName="javastacktrace",e.aliases=[];function e(t){t.languages.javastacktrace={summary:{pattern:/^([\t ]*)(?:(?:Caused by:|Suppressed:|Exception in thread "[^"]*")[\t ]+)?[\w$.]+(?::.*)?$/m,lookbehind:!0,inside:{keyword:{pattern:/^([\t ]*)(?:(?:Caused by|Suppressed)(?=:)|Exception in thread)/m,lookbehind:!0},string:{pattern:/^(\s*)"[^"]*"/,lookbehind:!0},exceptions:{pattern:/^(:?\s*)[\w$.]+(?=:|$)/,lookbehind:!0,inside:{"class-name":/[\w$]+$/,namespace:/\b[a-z]\w*\b/,punctuation:/\./}},message:{pattern:/(:\s*)\S.*/,lookbehind:!0,alias:"string"},punctuation:/:/}},"stack-frame":{pattern:/^([\t ]*)at (?:[\w$./]|@[\w$.+-]*\/)+(?:)?\([^()]*\)/m,lookbehind:!0,inside:{keyword:{pattern:/^(\s*)at(?= )/,lookbehind:!0},source:[{pattern:/(\()\w+\.\w+:\d+(?=\))/,lookbehind:!0,inside:{file:/^\w+\.\w+/,punctuation:/:/,"line-number":{pattern:/\b\d+\b/,alias:"number"}}},{pattern:/(\()[^()]*(?=\))/,lookbehind:!0,inside:{keyword:/^(?:Native Method|Unknown Source)$/}}],"class-name":/[\w$]+(?=\.(?:|[\w$]+)\()/,function:/(?:|[\w$]+)(?=\()/,"class-loader":{pattern:/(\s)[a-z]\w*(?:\.[a-z]\w*)*(?=\/[\w@$.]*\/)/,lookbehind:!0,alias:"namespace",inside:{punctuation:/\./}},module:{pattern:/([\s/])[a-z]\w*(?:\.[a-z]\w*)*(?:@[\w$.+-]*)?(?=\/)/,lookbehind:!0,inside:{version:{pattern:/(@)[\s\S]+/,lookbehind:!0,alias:"number"},punctuation:/[@.]/}},namespace:{pattern:/(?:\b[a-z]\w*\.)+/,inside:{punctuation:/\./}},punctuation:/[()/.]/}},more:{pattern:/^([\t ]*)\.{3} \d+ [a-z]+(?: [a-z]+)*/m,lookbehind:!0,inside:{punctuation:/\.{3}/,number:/\d+/,keyword:/\b[a-z]+(?: [a-z]+)*\b/}}}}return vp}var kp,f_;function ej(){if(f_)return kp;f_=1,kp=e,e.displayName="jexl",e.aliases=[];function e(t){t.languages.jexl={string:/(["'])(?:\\[\s\S]|(?!\1)[^\\])*\1/,transform:{pattern:/(\|\s*)[a-zA-Zа-яА-Я_\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF$][\wа-яА-Я\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF$]*/,alias:"function",lookbehind:!0},function:/[a-zA-Zа-яА-Я_\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF$][\wа-яА-Я\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF$]*\s*(?=\()/,number:/\b\d+(?:\.\d+)?\b|\B\.\d+\b/,operator:/[<>!]=?|-|\+|&&|==|\|\|?|\/\/?|[?:*^%]/,boolean:/\b(?:false|true)\b/,keyword:/\bin\b/,punctuation:/[{}[\](),.]/}}return kp}var _p,g_;function tj(){if(g_)return _p;g_=1,_p=e,e.displayName="jolie",e.aliases=[];function e(t){t.languages.jolie=t.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\[\s\S]|[^"\\])*"/,lookbehind:!0,greedy:!0},"class-name":{pattern:/((?:\b(?:as|courier|embed|in|inputPort|outputPort|service)\b|@)[ \t]*)\w+/,lookbehind:!0},keyword:/\b(?:as|cH|comp|concurrent|constants|courier|cset|csets|default|define|else|embed|embedded|execution|exit|extender|for|foreach|forward|from|global|if|import|in|include|init|inputPort|install|instanceof|interface|is_defined|linkIn|linkOut|main|new|nullProcess|outputPort|over|private|provide|public|scope|sequential|service|single|spawn|synchronized|this|throw|throws|type|undef|until|while|with)\b/,function:/\b[a-z_]\w*(?=[ \t]*[@(])/i,number:/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?l?/i,operator:/-[-=>]?|\+[+=]?|<[<=]?|[>=*!]=?|&&|\|\||[?\/%^@|]/,punctuation:/[()[\]{},;.:]/,builtin:/\b(?:Byte|any|bool|char|double|enum|float|int|length|long|ranges|regex|string|undefined|void)\b/}),t.languages.insertBefore("jolie","keyword",{aggregates:{pattern:/(\bAggregates\s*:\s*)(?:\w+(?:\s+with\s+\w+)?\s*,\s*)*\w+(?:\s+with\s+\w+)?/,lookbehind:!0,inside:{keyword:/\bwith\b/,"class-name":/\w+/,punctuation:/,/}},redirects:{pattern:/(\bRedirects\s*:\s*)(?:\w+\s*=>\s*\w+\s*,\s*)*(?:\w+\s*=>\s*\w+)/,lookbehind:!0,inside:{punctuation:/,/,"class-name":/\w+/,operator:/=>/}},property:{pattern:/\b(?:Aggregates|[Ii]nterfaces|Java|Javascript|Jolie|[Ll]ocation|OneWay|[Pp]rotocol|Redirects|RequestResponse)\b(?=[ \t]*:)/}})}return _p}var wp,m_;function nj(){if(m_)return wp;m_=1,wp=e,e.displayName="jq",e.aliases=[];function e(t){(function(n){var i=/\\\((?:[^()]|\([^()]*\))*\)/.source,o=RegExp(/(^|[^\\])"(?:[^"\r\n\\]|\\[^\r\n(]|__)*"/.source.replace(/__/g,function(){return i})),l={interpolation:{pattern:RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+i),lookbehind:!0,inside:{content:{pattern:/^(\\\()[\s\S]+(?=\)$)/,lookbehind:!0,inside:null},punctuation:/^\\\(|\)$/}}},u=n.languages.jq={comment:/#.*/,property:{pattern:RegExp(o.source+/(?=\s*:(?!:))/.source),lookbehind:!0,greedy:!0,inside:l},string:{pattern:o,lookbehind:!0,greedy:!0,inside:l},function:{pattern:/(\bdef\s+)[a-z_]\w+/i,lookbehind:!0},variable:/\B\$\w+/,"property-literal":{pattern:/\b[a-z_]\w*(?=\s*:(?!:))/i,alias:"property"},keyword:/\b(?:as|break|catch|def|elif|else|end|foreach|if|import|include|label|module|modulemeta|null|reduce|then|try|while)\b/,boolean:/\b(?:false|true)\b/,number:/(?:\b\d+\.|\B\.)?\b\d+(?:[eE][+-]?\d+)?\b/,operator:[{pattern:/\|=?/,alias:"pipe"},/\.\.|[!=<>]?=|\?\/\/|\/\/=?|[-+*/%]=?|[<>?]|\b(?:and|not|or)\b/],"c-style-function":{pattern:/\b[a-z_]\w*(?=\s*\()/i,alias:"function"},punctuation:/::|[()\[\]{},:;]|\.(?=\s*[\[\w$])/,dot:{pattern:/\./,alias:"important"}};l.interpolation.inside.content.inside=u})(t)}return wp}var Tp,h_;function rj(){if(h_)return Tp;h_=1,Tp=e,e.displayName="jsExtras",e.aliases=[];function e(t){(function(n){n.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+n.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),n.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+n.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),n.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]});function i(f,m){return RegExp(f.replace(//g,function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source}),m)}n.languages.insertBefore("javascript","keyword",{imports:{pattern:i(/(\bimport\b\s*)(?:(?:\s*,\s*(?:\*\s*as\s+|\{[^{}]*\}))?|\*\s*as\s+|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:n.languages.javascript},exports:{pattern:i(/(\bexport\b\s*)(?:\*(?:\s*as\s+)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:n.languages.javascript}}),n.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),n.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),n.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:i(/(\.\s*)#?/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var o=["function","function-variable","method","method-variable","property-access"],l=0;l=B.length)return;var Y=j[M];if(typeof Y=="string"||typeof Y.content=="string"){var J=B[A],de=typeof Y=="string"?Y:Y.content,Z=de.indexOf(J);if(Z!==-1){++A;var H=de.substring(0,Z),te=h(O[J]),ue=de.substring(Z+J.length),q=[];if(H&&q.push(H),q.push(te),ue){var Q=[ue];W(Q),q.push.apply(q,Q)}typeof Y=="string"?(j.splice.apply(j,[M,1].concat(q)),M+=q.length-1):Y.content=q}}else{var x=Y.content;Array.isArray(x)?W(x):W([x])}}}return W(w),new n.Token(N,w,"language-"+N,k)}var E={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};n.hooks.add("after-tokenize",function(k){if(!(k.language in E))return;function T(N){for(var R=0,A=N.length;R]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),n.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete n.languages.typescript.parameter,delete n.languages.typescript["literal-property"];var i=n.languages.extend("typescript",{});delete i["class-name"],n.languages.typescript["class-name"].inside=i,n.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:i}}}}),n.languages.ts=n.languages.typescript})(t)}return Ap}var Rp,E_;function ij(){if(E_)return Rp;E_=1;var e=ws(),t=hh();Rp=n,n.displayName="jsdoc",n.aliases=[];function n(i){i.register(e),i.register(t),(function(o){var l=o.languages.javascript,u=/\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})+\}/.source,c="(@(?:arg|argument|param|property)\\s+(?:"+u+"\\s+)?)";o.languages.jsdoc=o.languages.extend("javadoclike",{parameter:{pattern:RegExp(c+/(?:(?!\s)[$\w\xA0-\uFFFF.])+(?=\s|$)/.source),lookbehind:!0,inside:{punctuation:/\./}}}),o.languages.insertBefore("jsdoc","keyword",{"optional-parameter":{pattern:RegExp(c+/\[(?:(?!\s)[$\w\xA0-\uFFFF.])+(?:=[^[\]]+)?\](?=\s|$)/.source),lookbehind:!0,inside:{parameter:{pattern:/(^\[)[$\w\xA0-\uFFFF\.]+/,lookbehind:!0,inside:{punctuation:/\./}},code:{pattern:/(=)[\s\S]*(?=\]$)/,lookbehind:!0,inside:l,alias:"language-javascript"},punctuation:/[=[\]]/}},"class-name":[{pattern:RegExp(/(@(?:augments|class|extends|interface|memberof!?|template|this|typedef)\s+(?:\s+)?)[A-Z]\w*(?:\.[A-Z]\w*)*/.source.replace(//g,function(){return u})),lookbehind:!0,inside:{punctuation:/\./}},{pattern:RegExp("(@[a-z]+\\s+)"+u),lookbehind:!0,inside:{string:l.string,number:l.number,boolean:l.boolean,keyword:o.languages.typescript.keyword,operator:/=>|\.\.\.|[&|?:*]/,punctuation:/[.,;=<>{}()[\]]/}}],example:{pattern:/(@example\s+(?!\s))(?:[^@\s]|\s+(?!\s))+?(?=\s*(?:\*\s*)?(?:@\w|\*\/))/,lookbehind:!0,inside:{code:{pattern:/^([\t ]*(?:\*\s*)?)\S.*$/m,lookbehind:!0,inside:l,alias:"language-javascript"}}}}),o.languages.javadoclike.addSupport("javascript",o.languages.jsdoc)})(i)}return Rp}var Np,S_;function bh(){if(S_)return Np;S_=1,Np=e,e.displayName="json",e.aliases=["webmanifest"];function e(t){t.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},t.languages.webmanifest=t.languages.json}return Np}var Cp,v_;function oj(){if(v_)return Cp;v_=1;var e=bh();Cp=t,t.displayName="json5",t.aliases=[];function t(n){n.register(e),(function(i){var o=/("|')(?:\\(?:\r\n?|\n|.)|(?!\1)[^\\\r\n])*\1/;i.languages.json5=i.languages.extend("json",{property:[{pattern:RegExp(o.source+"(?=\\s*:)"),greedy:!0},{pattern:/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/,alias:"unquoted"}],string:{pattern:o,greedy:!0},number:/[+-]?\b(?:NaN|Infinity|0x[a-fA-F\d]+)\b|[+-]?(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[eE][+-]?\d+\b)?/})})(n)}return Cp}var Ip,k_;function sj(){if(k_)return Ip;k_=1;var e=bh();Ip=t,t.displayName="jsonp",t.aliases=[];function t(n){n.register(e),n.languages.jsonp=n.languages.extend("json",{punctuation:/[{}[\]();,.]/}),n.languages.insertBefore("jsonp","punctuation",{function:/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*\()/})}return Ip}var Op,__;function lj(){if(__)return Op;__=1,Op=e,e.displayName="jsstacktrace",e.aliases=[];function e(t){t.languages.jsstacktrace={"error-message":{pattern:/^\S.*/m,alias:"string"},"stack-frame":{pattern:/(^[ \t]+)at[ \t].*/m,lookbehind:!0,inside:{"not-my-code":{pattern:/^at[ \t]+(?!\s)(?:node\.js||.*(?:node_modules|\(\)|\(|$|\(internal\/|\(node\.js)).*/m,alias:"comment"},filename:{pattern:/(\bat\s+(?!\s)|\()(?:[a-zA-Z]:)?[^():]+(?=:)/,lookbehind:!0,alias:"url"},function:{pattern:/(\bat\s+(?:new\s+)?)(?!\s)[_$a-zA-Z\xA0-\uFFFF<][.$\w\xA0-\uFFFF<>]*/,lookbehind:!0,inside:{punctuation:/\./}},punctuation:/[()]/,keyword:/\b(?:at|new)\b/,alias:{pattern:/\[(?:as\s+)?(?!\s)[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*\]/,alias:"variable"},"line-number":{pattern:/:\d+(?::\d+)?\b/,alias:"number",inside:{punctuation:/:/}}}}}}return Op}var Lp,w_;function nR(){if(w_)return Lp;w_=1,Lp=e,e.displayName="jsx",e.aliases=[];function e(t){(function(n){var i=n.util.clone(n.languages.javascript),o=/(?:\s|\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))\*\/)/.source,l=/(?:\{(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])*\})/.source,u=/(?:\{*\.{3}(?:[^{}]|)*\})/.source;function c(m,h){return m=m.replace(//g,function(){return o}).replace(//g,function(){return l}).replace(//g,function(){return u}),RegExp(m,h)}u=c(u).source,n.languages.jsx=n.languages.extend("markup",i),n.languages.jsx.tag.pattern=c(/<\/?(?:[\w.:-]+(?:+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|))?|))**\/?)?>/.source),n.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,n.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,n.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,n.languages.jsx.tag.inside.comment=i.comment,n.languages.insertBefore("inside","attr-name",{spread:{pattern:c(//.source),inside:n.languages.jsx}},n.languages.jsx.tag),n.languages.insertBefore("inside","special-attr",{script:{pattern:c(/=/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:n.languages.jsx}}},n.languages.jsx.tag);var p=function(m){return m?typeof m=="string"?m:typeof m.content=="string"?m.content:m.content.map(p).join(""):""},f=function(m){for(var h=[],S=0;S0&&h[h.length-1].tagName===p(E.content[0].content[1])&&h.pop():E.content[E.content.length-1].content==="/>"||h.push({tagName:p(E.content[0].content[1]),openedBraces:0}):h.length>0&&E.type==="punctuation"&&E.content==="{"?h[h.length-1].openedBraces++:h.length>0&&h[h.length-1].openedBraces>0&&E.type==="punctuation"&&E.content==="}"?h[h.length-1].openedBraces--:v=!0),(v||typeof E=="string")&&h.length>0&&h[h.length-1].openedBraces===0){var k=p(E);S0&&(typeof m[S-1]=="string"||m[S-1].type==="plain-text")&&(k=p(m[S-1])+k,m.splice(S-1,1),S--),m[S]=new n.Token("plain-text",k,null,k)}E.content&&typeof E.content!="string"&&f(E.content)}};n.hooks.add("after-tokenize",function(m){m.language!=="jsx"&&m.language!=="tsx"||f(m.tokens)})})(t)}return Lp}var Dp,T_;function uj(){if(T_)return Dp;T_=1,Dp=e,e.displayName="julia",e.aliases=[];function e(t){t.languages.julia={comment:{pattern:/(^|[^\\])(?:#=(?:[^#=]|=(?!#)|#(?!=)|#=(?:[^#=]|=(?!#)|#(?!=))*=#)*=#|#.*)/,lookbehind:!0},regex:{pattern:/r"(?:\\.|[^"\\\r\n])*"[imsx]{0,4}/,greedy:!0},string:{pattern:/"""[\s\S]+?"""|(?:\b\w+)?"(?:\\.|[^"\\\r\n])*"|`(?:[^\\`\r\n]|\\.)*`/,greedy:!0},char:{pattern:/(^|[^\w'])'(?:\\[^\r\n][^'\r\n]*|[^\\\r\n])'/,lookbehind:!0,greedy:!0},keyword:/\b(?:abstract|baremodule|begin|bitstype|break|catch|ccall|const|continue|do|else|elseif|end|export|finally|for|function|global|if|immutable|import|importall|in|let|local|macro|module|print|println|quote|return|struct|try|type|typealias|using|while)\b/,boolean:/\b(?:false|true)\b/,number:/(?:\b(?=\d)|\B(?=\.))(?:0[box])?(?:[\da-f]+(?:_[\da-f]+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[efp][+-]?\d+(?:_\d+)*)?j?/i,operator:/&&|\|\||[-+*^%÷⊻&$\\]=?|\/[\/=]?|!=?=?|\|[=>]?|<(?:<=?|[=:|])?|>(?:=|>>?=?)?|==?=?|[~≠≤≥'√∛]/,punctuation:/::?|[{}[\]();,.?]/,constant:/\b(?:(?:Inf|NaN)(?:16|32|64)?|im|pi)\b|[πℯ]/}}return Dp}var Mp,x_;function cj(){if(x_)return Mp;x_=1,Mp=e,e.displayName="keepalived",e.aliases=[];function e(t){t.languages.keepalived={comment:{pattern:/[#!].*/,greedy:!0},string:{pattern:/(^|[^\\])(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/,lookbehind:!0,greedy:!0},ip:{pattern:RegExp(/\b(?:(?:(?:[\da-f]{1,4}:){7}[\da-f]{1,4}|(?:[\da-f]{1,4}:){6}:[\da-f]{1,4}|(?:[\da-f]{1,4}:){5}:(?:[\da-f]{1,4}:)?[\da-f]{1,4}|(?:[\da-f]{1,4}:){4}:(?:[\da-f]{1,4}:){0,2}[\da-f]{1,4}|(?:[\da-f]{1,4}:){3}:(?:[\da-f]{1,4}:){0,3}[\da-f]{1,4}|(?:[\da-f]{1,4}:){2}:(?:[\da-f]{1,4}:){0,4}[\da-f]{1,4}|(?:[\da-f]{1,4}:){6}|(?:[\da-f]{1,4}:){0,5}:|::(?:[\da-f]{1,4}:){0,5}|[\da-f]{1,4}::(?:[\da-f]{1,4}:){0,5}[\da-f]{1,4}|::(?:[\da-f]{1,4}:){0,6}[\da-f]{1,4}|(?:[\da-f]{1,4}:){1,7}:)(?:\/\d{1,3})?|(?:\/\d{1,2})?)\b/.source.replace(//g,function(){return/(?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d))/.source}),"i"),alias:"number"},path:{pattern:/(\s)\/(?:[^\/\s]+\/)*[^\/\s]*|\b[a-zA-Z]:\\(?:[^\\\s]+\\)*[^\\\s]*/,lookbehind:!0,alias:"string"},variable:/\$\{?\w+\}?/,email:{pattern:/[\w-]+@[\w-]+(?:\.[\w-]{2,3}){1,2}/,alias:"string"},"conditional-configuration":{pattern:/@\^?[\w-]+/,alias:"variable"},operator:/=/,property:/\b(?:BFD_CHECK|DNS_CHECK|FILE_CHECK|HTTP_GET|MISC_CHECK|NAME|PING_CHECK|SCRIPTS|SMTP_CHECK|SSL|SSL_GET|TCP_CHECK|UDP_CHECK|accept|advert_int|alpha|auth_pass|auth_type|authentication|bfd_cpu_affinity|bfd_instance|bfd_no_swap|bfd_priority|bfd_process_name|bfd_rlimit_rttime|bfd_rt_priority|bind_if|bind_port|bindto|ca|certificate|check_unicast_src|checker|checker_cpu_affinity|checker_log_all_failures|checker_no_swap|checker_priority|checker_rlimit_rttime|checker_rt_priority|child_wait_time|connect_ip|connect_port|connect_timeout|dbus_service_name|debug|default_interface|delay|delay_before_retry|delay_loop|digest|dont_track_primary|dynamic|dynamic_interfaces|enable_(?:dbus|script_security|sni|snmp_checker|snmp_rfc|snmp_rfcv2|snmp_rfcv3|snmp_vrrp|traps)|end|fall|fast_recovery|file|flag-[123]|fork_delay|full_command|fwmark|garp_group|garp_interval|garp_lower_prio_delay|garp_lower_prio_repeat|garp_master_delay|garp_master_refresh|garp_master_refresh_repeat|garp_master_repeat|global_defs|global_tracking|gna_interval|group|ha_suspend|hashed|helo_name|higher_prio_send_advert|hoplimit|http_protocol|hysteresis|idle_tx|include|inhibit_on_failure|init_fail|init_file|instance|interface|interfaces|interval|ip_family|ipvs_process_name|keepalived.conf|kernel_rx_buf_size|key|linkbeat_interfaces|linkbeat_use_polling|log_all_failures|log_unknown_vrids|lower_prio_no_advert|lthreshold|lvs_flush|lvs_flush_onstop|lvs_method|lvs_netlink_cmd_rcv_bufs|lvs_netlink_cmd_rcv_bufs_force|lvs_netlink_monitor_rcv_bufs|lvs_netlink_monitor_rcv_bufs_force|lvs_notify_fifo|lvs_notify_fifo_script|lvs_sched|lvs_sync_daemon|max_auto_priority|max_hops|mcast_src_ip|mh-fallback|mh-port|min_auto_priority_delay|min_rx|min_tx|misc_dynamic|misc_path|misc_timeout|multiplier|name|namespace_with_ipsets|native_ipv6|neighbor_ip|net_namespace|net_namespace_ipvs|nftables|nftables_counters|nftables_ifindex|nftables_priority|no_accept|no_checker_emails|no_email_faults|nopreempt|notification_email|notification_email_from|notify|notify_backup|notify_deleted|notify_down|notify_fault|notify_fifo|notify_fifo_script|notify_master|notify_master_rx_lower_pri|notify_priority_changes|notify_stop|notify_up|old_unicast_checksum|omega|ops|param_match|passive|password|path|persistence_engine|persistence_granularity|persistence_timeout|preempt|preempt_delay|priority|process|process_monitor_rcv_bufs|process_monitor_rcv_bufs_force|process_name|process_names|promote_secondaries|protocol|proxy_arp|proxy_arp_pvlan|quorum|quorum_down|quorum_max|quorum_up|random_seed|real_server|regex|regex_max_offset|regex_min_offset|regex_no_match|regex_options|regex_stack|reload_repeat|reload_time_file|require_reply|retry|rise|router_id|rs_init_notifies|script|script_user|sh-fallback|sh-port|shutdown_script|shutdown_script_timeout|skip_check_adv_addr|smtp_alert|smtp_alert_checker|smtp_alert_vrrp|smtp_connect_timeout|smtp_helo_name|smtp_server|snmp_socket|sorry_server|sorry_server_inhibit|sorry_server_lvs_method|source_ip|start|startup_script|startup_script_timeout|state|static_ipaddress|static_routes|static_rules|status_code|step|strict_mode|sync_group_tracking_weight|terminate_delay|timeout|track_bfd|track_file|track_group|track_interface|track_process|track_script|track_src_ip|ttl|type|umask|unicast_peer|unicast_src_ip|unicast_ttl|url|use_ipvlan|use_pid_dir|use_vmac|user|uthreshold|val[123]|version|virtual_ipaddress|virtual_ipaddress_excluded|virtual_router_id|virtual_routes|virtual_rules|virtual_server|virtual_server_group|virtualhost|vmac_xmit_base|vrrp|vrrp_(?:check_unicast_src|cpu_affinity|garp_interval|garp_lower_prio_delay|garp_lower_prio_repeat|garp_master_delay|garp_master_refresh|garp_master_refresh_repeat|garp_master_repeat|gna_interval|higher_prio_send_advert|instance|ipsets|iptables|lower_prio_no_advert|mcast_group4|mcast_group6|min_garp|netlink_cmd_rcv_bufs|netlink_cmd_rcv_bufs_force|netlink_monitor_rcv_bufs|netlink_monitor_rcv_bufs_force|no_swap|notify_fifo|notify_fifo_script|notify_priority_changes|priority|process_name|rlimit_rttime|rt_priority|rx_bufs_multiplier|rx_bufs_policy|script|skip_check_adv_addr|startup_delay|strict|sync_group|track_process|version)|warmup|weight)\b/,constant:/\b(?:A|AAAA|AH|BACKUP|CNAME|DR|MASTER|MX|NAT|NS|PASS|SCTP|SOA|TCP|TUN|TXT|UDP|dh|fo|lblc|lblcr|lc|mh|nq|ovf|rr|sed|sh|wlc|wrr)\b/,number:{pattern:/(^|[^\w.-])-?\d+(?:\.\d+)?/,lookbehind:!0},boolean:/\b(?:false|no|off|on|true|yes)\b/,punctuation:/[\{\}]/}}return Mp}var Fp,A_;function dj(){if(A_)return Fp;A_=1,Fp=e,e.displayName="keyman",e.aliases=[];function e(t){t.languages.keyman={comment:{pattern:/\bc .*/i,greedy:!0},string:{pattern:/"[^"\r\n]*"|'[^'\r\n]*'/,greedy:!0},"virtual-key":{pattern:/\[\s*(?:(?:ALT|CAPS|CTRL|LALT|LCTRL|NCAPS|RALT|RCTRL|SHIFT)\s+)*(?:[TKU]_[\w?]+|[A-E]\d\d?|"[^"\r\n]*"|'[^'\r\n]*')\s*\]/i,greedy:!0,alias:"function"},"header-keyword":{pattern:/&\w+/,alias:"bold"},"header-statement":{pattern:/\b(?:bitmap|bitmaps|caps always off|caps on only|copyright|hotkey|language|layout|message|name|shift frees caps|version)\b/i,alias:"bold"},"rule-keyword":{pattern:/\b(?:any|baselayout|beep|call|context|deadkey|dk|if|index|layer|notany|nul|outs|platform|reset|return|save|set|store|use)\b/i,alias:"keyword"},"structural-keyword":{pattern:/\b(?:ansi|begin|group|match|nomatch|unicode|using keys)\b/i,alias:"keyword"},"compile-target":{pattern:/\$(?:keyman|keymanonly|keymanweb|kmfl|weaver):/i,alias:"property"},number:/\b(?:U\+[\dA-F]+|d\d+|x[\da-f]+|\d+)\b/i,operator:/[+>\\$]|\.\./,punctuation:/[()=,]/}}return Fp}var Pp,R_;function pj(){if(R_)return Pp;R_=1,Pp=e,e.displayName="kotlin",e.aliases=["kt","kts"];function e(t){(function(n){n.languages.kotlin=n.languages.extend("clike",{keyword:{pattern:/(^|[^.])\b(?:abstract|actual|annotation|as|break|by|catch|class|companion|const|constructor|continue|crossinline|data|do|dynamic|else|enum|expect|external|final|finally|for|fun|get|if|import|in|infix|init|inline|inner|interface|internal|is|lateinit|noinline|null|object|open|operator|out|override|package|private|protected|public|reified|return|sealed|set|super|suspend|tailrec|this|throw|to|try|typealias|val|var|vararg|when|where|while)\b/,lookbehind:!0},function:[{pattern:/(?:`[^\r\n`]+`|\b\w+)(?=\s*\()/,greedy:!0},{pattern:/(\.)(?:`[^\r\n`]+`|\w+)(?=\s*\{)/,lookbehind:!0,greedy:!0}],number:/\b(?:0[xX][\da-fA-F]+(?:_[\da-fA-F]+)*|0[bB][01]+(?:_[01]+)*|\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?(?:[eE][+-]?\d+(?:_\d+)*)?[fFL]?)\b/,operator:/\+[+=]?|-[-=>]?|==?=?|!(?:!|==?)?|[\/*%<>]=?|[?:]:?|\.\.|&&|\|\||\b(?:and|inv|or|shl|shr|ushr|xor)\b/}),delete n.languages.kotlin["class-name"];var i={"interpolation-punctuation":{pattern:/^\$\{?|\}$/,alias:"punctuation"},expression:{pattern:/[\s\S]+/,inside:n.languages.kotlin}};n.languages.insertBefore("kotlin","string",{"string-literal":[{pattern:/"""(?:[^$]|\$(?:(?!\{)|\{[^{}]*\}))*?"""/,alias:"multiline",inside:{interpolation:{pattern:/\$(?:[a-z_]\w*|\{[^{}]*\})/i,inside:i},string:/[\s\S]+/}},{pattern:/"(?:[^"\\\r\n$]|\\.|\$(?:(?!\{)|\{[^{}]*\}))*"/,alias:"singleline",inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$(?:[a-z_]\w*|\{[^{}]*\})/i,lookbehind:!0,inside:i},string:/[\s\S]+/}}],char:{pattern:/'(?:[^'\\\r\n]|\\(?:.|u[a-fA-F0-9]{0,4}))'/,greedy:!0}}),delete n.languages.kotlin.string,n.languages.insertBefore("kotlin","keyword",{annotation:{pattern:/\B@(?:\w+:)?(?:[A-Z]\w*|\[[^\]]+\])/,alias:"builtin"}}),n.languages.insertBefore("kotlin","function",{label:{pattern:/\b\w+@|@\w+\b/,alias:"symbol"}}),n.languages.kt=n.languages.kotlin,n.languages.kts=n.languages.kotlin})(t)}return Pp}var Up,N_;function fj(){if(N_)return Up;N_=1,Up=e,e.displayName="kumir",e.aliases=["kum"];function e(t){(function(n){var i=/\s\x00-\x1f\x22-\x2f\x3a-\x3f\x5b-\x5e\x60\x7b-\x7e/.source;function o(l,u){return RegExp(l.replace(//g,i),u)}n.languages.kumir={comment:{pattern:/\|.*/},prolog:{pattern:/#.*/,greedy:!0},string:{pattern:/"[^\n\r"]*"|'[^\n\r']*'/,greedy:!0},boolean:{pattern:o(/(^|[])(?:да|нет)(?=[]|$)/.source),lookbehind:!0},"operator-word":{pattern:o(/(^|[])(?:и|или|не)(?=[]|$)/.source),lookbehind:!0,alias:"keyword"},"system-variable":{pattern:o(/(^|[])знач(?=[]|$)/.source),lookbehind:!0,alias:"keyword"},type:[{pattern:o(/(^|[])(?:вещ|лит|лог|сим|цел)(?:\x20*таб)?(?=[]|$)/.source),lookbehind:!0,alias:"builtin"},{pattern:o(/(^|[])(?:компл|сканкод|файл|цвет)(?=[]|$)/.source),lookbehind:!0,alias:"important"}],keyword:{pattern:o(/(^|[])(?:алг|арг(?:\x20*рез)?|ввод|ВКЛЮЧИТЬ|вс[её]|выбор|вывод|выход|дано|для|до|дс|если|иначе|исп|использовать|кон(?:(?:\x20+|_)исп)?|кц(?:(?:\x20+|_)при)?|надо|нач|нс|нц|от|пауза|пока|при|раза?|рез|стоп|таб|то|утв|шаг)(?=[]|$)/.source),lookbehind:!0},name:{pattern:o(/(^|[])[^\d][^]*(?:\x20+[^]+)*(?=[]|$)/.source),lookbehind:!0},number:{pattern:o(/(^|[])(?:\B\$[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)(?=[]|$)/.source,"i"),lookbehind:!0},punctuation:/:=|[(),:;\[\]]/,"operator-char":{pattern:/\*\*?|<[=>]?|>=?|[-+/=]/,alias:"operator"}},n.languages.kum=n.languages.kumir})(t)}return Up}var Bp,C_;function gj(){if(C_)return Bp;C_=1,Bp=e,e.displayName="kusto",e.aliases=[];function e(t){t.languages.kusto={comment:{pattern:/\/\/.*/,greedy:!0},string:{pattern:/```[\s\S]*?```|[hH]?(?:"(?:[^\r\n\\"]|\\.)*"|'(?:[^\r\n\\']|\\.)*'|@(?:"[^\r\n"]*"|'[^\r\n']*'))/,greedy:!0},verb:{pattern:/(\|\s*)[a-z][\w-]*/i,lookbehind:!0,alias:"keyword"},command:{pattern:/\.[a-z][a-z\d-]*\b/,alias:"keyword"},"class-name":/\b(?:bool|datetime|decimal|dynamic|guid|int|long|real|string|timespan)\b/,keyword:/\b(?:access|alias|and|anti|as|asc|auto|between|by|(?:contains|(?:ends|starts)with|has(?:perfix|suffix)?)(?:_cs)?|database|declare|desc|external|from|fullouter|has_all|in|ingestion|inline|inner|innerunique|into|(?:left|right)(?:anti(?:semi)?|inner|outer|semi)?|let|like|local|not|of|on|or|pattern|print|query_parameters|range|restrict|schema|set|step|table|tables|to|view|where|with|matches\s+regex|nulls\s+(?:first|last))(?![\w-])/,boolean:/\b(?:false|null|true)\b/,function:/\b[a-z_]\w*(?=\s*\()/,datetime:[{pattern:/\b(?:(?:Fri|Friday|Mon|Monday|Sat|Saturday|Sun|Sunday|Thu|Thursday|Tue|Tuesday|Wed|Wednesday)\s*,\s*)?\d{1,2}(?:\s+|-)(?:Apr|Aug|Dec|Feb|Jan|Jul|Jun|Mar|May|Nov|Oct|Sep)(?:\s+|-)\d{2}\s+\d{2}:\d{2}(?::\d{2})?(?:\s*(?:\b(?:[A-Z]|(?:[ECMT][DS]|GM|U)T)|[+-]\d{4}))?\b/,alias:"number"},{pattern:/[+-]?\b(?:\d{4}-\d{2}-\d{2}(?:[ T]\d{2}:\d{2}(?::\d{2}(?:\.\d+)?)?)?|\d{2}:\d{2}(?::\d{2}(?:\.\d+)?)?)Z?/,alias:"number"}],number:/\b(?:0x[0-9A-Fa-f]+|\d+(?:\.\d+)?(?:[Ee][+-]?\d+)?)(?:(?:min|sec|[mnµ]s|[dhms]|microsecond|tick)\b)?|[+-]?\binf\b/,operator:/=>|[!=]~|[!=<>]=?|[-+*/%|]|\.\./,punctuation:/[()\[\]{},;.:]/}}return Bp}var jp,I_;function mj(){if(I_)return jp;I_=1,jp=e,e.displayName="latex",e.aliases=["tex","context"];function e(t){(function(n){var i=/\\(?:[^a-z()[\]]|[a-z*]+)/i,o={"equation-command":{pattern:i,alias:"regex"}};n.languages.latex={comment:/%.*/,cdata:{pattern:/(\\begin\{((?:lstlisting|verbatim)\*?)\})[\s\S]*?(?=\\end\{\2\})/,lookbehind:!0},equation:[{pattern:/\$\$(?:\\[\s\S]|[^\\$])+\$\$|\$(?:\\[\s\S]|[^\\$])+\$|\\\([\s\S]*?\\\)|\\\[[\s\S]*?\\\]/,inside:o,alias:"string"},{pattern:/(\\begin\{((?:align|eqnarray|equation|gather|math|multline)\*?)\})[\s\S]*?(?=\\end\{\2\})/,lookbehind:!0,inside:o,alias:"string"}],keyword:{pattern:/(\\(?:begin|cite|documentclass|end|label|ref|usepackage)(?:\[[^\]]+\])?\{)[^}]+(?=\})/,lookbehind:!0},url:{pattern:/(\\url\{)[^}]+(?=\})/,lookbehind:!0},headline:{pattern:/(\\(?:chapter|frametitle|paragraph|part|section|subparagraph|subsection|subsubparagraph|subsubsection|subsubsubparagraph)\*?(?:\[[^\]]+\])?\{)[^}]+(?=\})/,lookbehind:!0,alias:"class-name"},function:{pattern:i,alias:"selector"},punctuation:/[[\]{}&]/},n.languages.tex=n.languages.latex,n.languages.context=n.languages.latex})(t)}return jp}var zp,O_;function Ts(){if(O_)return zp;O_=1;var e=an();zp=t,t.displayName="php",t.aliases=[];function t(n){n.register(e),(function(i){var o=/\/\*[\s\S]*?\*\/|\/\/.*|#(?!\[).*/,l=[{pattern:/\b(?:false|true)\b/i,alias:"boolean"},{pattern:/(::\s*)\b[a-z_]\w*\b(?!\s*\()/i,greedy:!0,lookbehind:!0},{pattern:/(\b(?:case|const)\s+)\b[a-z_]\w*(?=\s*[;=])/i,greedy:!0,lookbehind:!0},/\b(?:null)\b/i,/\b[A-Z_][A-Z0-9_]*\b(?!\s*\()/],u=/\b0b[01]+(?:_[01]+)*\b|\b0o[0-7]+(?:_[0-7]+)*\b|\b0x[\da-f]+(?:_[\da-f]+)*\b|(?:\b\d+(?:_\d+)*\.?(?:\d+(?:_\d+)*)?|\B\.\d+)(?:e[+-]?\d+)?/i,c=/|\?\?=?|\.{3}|\??->|[!=]=?=?|::|\*\*=?|--|\+\+|&&|\|\||<<|>>|[?~]|[/^|%*&<>.+-]=?/,p=/[{}\[\](),:;]/;i.languages.php={delimiter:{pattern:/\?>$|^<\?(?:php(?=\s)|=)?/i,alias:"important"},comment:o,variable:/\$+(?:\w+\b|(?=\{))/,package:{pattern:/(namespace\s+|use\s+(?:function\s+)?)(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,lookbehind:!0,inside:{punctuation:/\\/}},"class-name-definition":{pattern:/(\b(?:class|enum|interface|trait)\s+)\b[a-z_]\w*(?!\\)\b/i,lookbehind:!0,alias:"class-name"},"function-definition":{pattern:/(\bfunction\s+)[a-z_]\w*(?=\s*\()/i,lookbehind:!0,alias:"function"},keyword:[{pattern:/(\(\s*)\b(?:array|bool|boolean|float|int|integer|object|string)\b(?=\s*\))/i,alias:"type-casting",greedy:!0,lookbehind:!0},{pattern:/([(,?]\s*)\b(?:array(?!\s*\()|bool|callable|(?:false|null)(?=\s*\|)|float|int|iterable|mixed|object|self|static|string)\b(?=\s*\$)/i,alias:"type-hint",greedy:!0,lookbehind:!0},{pattern:/(\)\s*:\s*(?:\?\s*)?)\b(?:array(?!\s*\()|bool|callable|(?:false|null)(?=\s*\|)|float|int|iterable|mixed|object|self|static|string|void)\b/i,alias:"return-type",greedy:!0,lookbehind:!0},{pattern:/\b(?:array(?!\s*\()|bool|float|int|iterable|mixed|object|string|void)\b/i,alias:"type-declaration",greedy:!0},{pattern:/(\|\s*)(?:false|null)\b|\b(?:false|null)(?=\s*\|)/i,alias:"type-declaration",greedy:!0,lookbehind:!0},{pattern:/\b(?:parent|self|static)(?=\s*::)/i,alias:"static-context",greedy:!0},{pattern:/(\byield\s+)from\b/i,lookbehind:!0},/\bclass\b/i,{pattern:/((?:^|[^\s>:]|(?:^|[^-])>|(?:^|[^:]):)\s*)\b(?:abstract|and|array|as|break|callable|case|catch|clone|const|continue|declare|default|die|do|echo|else|elseif|empty|enddeclare|endfor|endforeach|endif|endswitch|endwhile|enum|eval|exit|extends|final|finally|fn|for|foreach|function|global|goto|if|implements|include|include_once|instanceof|insteadof|interface|isset|list|match|namespace|new|or|parent|print|private|protected|public|require|require_once|return|self|static|switch|throw|trait|try|unset|use|var|while|xor|yield|__halt_compiler)\b/i,lookbehind:!0}],"argument-name":{pattern:/([(,]\s+)\b[a-z_]\w*(?=\s*:(?!:))/i,lookbehind:!0},"class-name":[{pattern:/(\b(?:extends|implements|instanceof|new(?!\s+self|\s+static))\s+|\bcatch\s*\()\b[a-z_]\w*(?!\\)\b/i,greedy:!0,lookbehind:!0},{pattern:/(\|\s*)\b[a-z_]\w*(?!\\)\b/i,greedy:!0,lookbehind:!0},{pattern:/\b[a-z_]\w*(?!\\)\b(?=\s*\|)/i,greedy:!0},{pattern:/(\|\s*)(?:\\?\b[a-z_]\w*)+\b/i,alias:"class-name-fully-qualified",greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/(?:\\?\b[a-z_]\w*)+\b(?=\s*\|)/i,alias:"class-name-fully-qualified",greedy:!0,inside:{punctuation:/\\/}},{pattern:/(\b(?:extends|implements|instanceof|new(?!\s+self\b|\s+static\b))\s+|\bcatch\s*\()(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,alias:"class-name-fully-qualified",greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/\b[a-z_]\w*(?=\s*\$)/i,alias:"type-declaration",greedy:!0},{pattern:/(?:\\?\b[a-z_]\w*)+(?=\s*\$)/i,alias:["class-name-fully-qualified","type-declaration"],greedy:!0,inside:{punctuation:/\\/}},{pattern:/\b[a-z_]\w*(?=\s*::)/i,alias:"static-context",greedy:!0},{pattern:/(?:\\?\b[a-z_]\w*)+(?=\s*::)/i,alias:["class-name-fully-qualified","static-context"],greedy:!0,inside:{punctuation:/\\/}},{pattern:/([(,?]\s*)[a-z_]\w*(?=\s*\$)/i,alias:"type-hint",greedy:!0,lookbehind:!0},{pattern:/([(,?]\s*)(?:\\?\b[a-z_]\w*)+(?=\s*\$)/i,alias:["class-name-fully-qualified","type-hint"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/(\)\s*:\s*(?:\?\s*)?)\b[a-z_]\w*(?!\\)\b/i,alias:"return-type",greedy:!0,lookbehind:!0},{pattern:/(\)\s*:\s*(?:\?\s*)?)(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,alias:["class-name-fully-qualified","return-type"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}}],constant:l,function:{pattern:/(^|[^\\\w])\\?[a-z_](?:[\w\\]*\w)?(?=\s*\()/i,lookbehind:!0,inside:{punctuation:/\\/}},property:{pattern:/(->\s*)\w+/,lookbehind:!0},number:u,operator:c,punctuation:p};var f={pattern:/\{\$(?:\{(?:\{[^{}]+\}|[^{}]+)\}|[^{}])+\}|(^|[^\\{])\$+(?:\w+(?:\[[^\r\n\[\]]+\]|->\w+)?)/,lookbehind:!0,inside:i.languages.php},m=[{pattern:/<<<'([^']+)'[\r\n](?:.*[\r\n])*?\1;/,alias:"nowdoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<<'[^']+'|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<'?|[';]$/}}}},{pattern:/<<<(?:"([^"]+)"[\r\n](?:.*[\r\n])*?\1;|([a-z_]\w*)[\r\n](?:.*[\r\n])*?\2;)/i,alias:"heredoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<<(?:"[^"]+"|[a-z_]\w*)|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<"?|[";]$/}},interpolation:f}},{pattern:/`(?:\\[\s\S]|[^\\`])*`/,alias:"backtick-quoted-string",greedy:!0},{pattern:/'(?:\\[\s\S]|[^\\'])*'/,alias:"single-quoted-string",greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,alias:"double-quoted-string",greedy:!0,inside:{interpolation:f}}];i.languages.insertBefore("php","variable",{string:m,attribute:{pattern:/#\[(?:[^"'\/#]|\/(?![*/])|\/\/.*$|#(?!\[).*$|\/\*(?:[^*]|\*(?!\/))*\*\/|"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*')+\](?=\s*[a-z$#])/im,greedy:!0,inside:{"attribute-content":{pattern:/^(#\[)[\s\S]+(?=\]$)/,lookbehind:!0,inside:{comment:o,string:m,"attribute-class-name":[{pattern:/([^:]|^)\b[a-z_]\w*(?!\\)\b/i,alias:"class-name",greedy:!0,lookbehind:!0},{pattern:/([^:]|^)(?:\\?\b[a-z_]\w*)+/i,alias:["class-name","class-name-fully-qualified"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}}],constant:l,number:u,operator:c,punctuation:p}},delimiter:{pattern:/^#\[|\]$/,alias:"punctuation"}}}}),i.hooks.add("before-tokenize",function(h){if(/<\?/.test(h.code)){var S=/<\?(?:[^"'/#]|\/(?![*/])|("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|(?:\/\/|#(?!\[))(?:[^?\n\r]|\?(?!>))*(?=$|\?>|[\r\n])|#\[|\/\*(?:[^*]|\*(?!\/))*(?:\*\/|$))*?(?:\?>|$)/g;i.languages["markup-templating"].buildPlaceholders(h,"php",S)}}),i.hooks.add("after-tokenize",function(h){i.languages["markup-templating"].tokenizePlaceholders(h,"php")})})(n)}return zp}var $p,L_;function hj(){if(L_)return $p;L_=1;var e=an(),t=Ts();$p=n,n.displayName="latte",n.aliases=[];function n(i){i.register(e),i.register(t),(function(o){o.languages.latte={comment:/^\{\*[\s\S]*/,"latte-tag":{pattern:/(^\{(?:\/(?=[a-z]))?)(?:[=_]|[a-z]\w*\b(?!\())/i,lookbehind:!0,alias:"important"},delimiter:{pattern:/^\{\/?|\}$/,alias:"punctuation"},php:{pattern:/\S(?:[\s\S]*\S)?/,alias:"language-php",inside:o.languages.php}};var l=o.languages.extend("markup",{});o.languages.insertBefore("inside","attr-value",{"n-attr":{pattern:/n:[\w-]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+))?/,inside:{"attr-name":{pattern:/^[^\s=]+/,alias:"important"},"attr-value":{pattern:/=[\s\S]+/,inside:{punctuation:[/^=/,{pattern:/^(\s*)["']|["']$/,lookbehind:!0}],php:{pattern:/\S(?:[\s\S]*\S)?/,inside:o.languages.php}}}}}},l.tag),o.hooks.add("before-tokenize",function(u){if(u.language==="latte"){var c=/\{\*[\s\S]*?\*\}|\{[^'"\s{}*](?:[^"'/{}]|\/(?![*/])|("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|\/\*(?:[^*]|\*(?!\/))*\*\/)*\}/g;o.languages["markup-templating"].buildPlaceholders(u,"latte",c),u.grammar=l}}),o.hooks.add("after-tokenize",function(u){o.languages["markup-templating"].tokenizePlaceholders(u,"latte")})})(i)}return $p}var qp,D_;function bj(){if(D_)return qp;D_=1,qp=e,e.displayName="less",e.aliases=[];function e(t){t.languages.less=t.languages.extend("css",{comment:[/\/\*[\s\S]*?\*\//,{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0}],atrule:{pattern:/@[\w-](?:\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};@\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{variable:/@+[\w-]+/}},property:/(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/,operator:/[+\-*\/]/}),t.languages.insertBefore("less","property",{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-].*?(?=[(;])/,lookbehind:!0,alias:"function"}})}return qp}var Gp,M_;function yh(){if(M_)return Gp;M_=1,Gp=e,e.displayName="scheme",e.aliases=[];function e(t){(function(n){n.languages.scheme={comment:/;.*|#;\s*(?:\((?:[^()]|\([^()]*\))*\)|\[(?:[^\[\]]|\[[^\[\]]*\])*\])|#\|(?:[^#|]|#(?!\|)|\|(?!#)|#\|(?:[^#|]|#(?!\|)|\|(?!#))*\|#)*\|#/,string:{pattern:/"(?:[^"\\]|\\.)*"/,greedy:!0},symbol:{pattern:/'[^()\[\]#'\s]+/,greedy:!0},char:{pattern:/#\\(?:[ux][a-fA-F\d]+\b|[-a-zA-Z]+\b|[\uD800-\uDBFF][\uDC00-\uDFFF]|\S)/,greedy:!0},"lambda-parameter":[{pattern:/((?:^|[^'`#])[(\[]lambda\s+)(?:[^|()\[\]'\s]+|\|(?:[^\\|]|\\.)*\|)/,lookbehind:!0},{pattern:/((?:^|[^'`#])[(\[]lambda\s+[(\[])[^()\[\]']+/,lookbehind:!0}],keyword:{pattern:/((?:^|[^'`#])[(\[])(?:begin|case(?:-lambda)?|cond(?:-expand)?|define(?:-library|-macro|-record-type|-syntax|-values)?|defmacro|delay(?:-force)?|do|else|except|export|guard|if|import|include(?:-ci|-library-declarations)?|lambda|let(?:rec)?(?:-syntax|-values|\*)?|let\*-values|only|parameterize|prefix|(?:quasi-?)?quote|rename|set!|syntax-(?:case|rules)|unless|unquote(?:-splicing)?|when)(?=[()\[\]\s]|$)/,lookbehind:!0},builtin:{pattern:/((?:^|[^'`#])[(\[])(?:abs|and|append|apply|assoc|ass[qv]|binary-port\?|boolean=?\?|bytevector(?:-append|-copy|-copy!|-length|-u8-ref|-u8-set!|\?)?|caar|cadr|call-with-(?:current-continuation|port|values)|call\/cc|car|cdar|cddr|cdr|ceiling|char(?:->integer|-ready\?|\?|<\?|<=\?|=\?|>\?|>=\?)|close-(?:input-port|output-port|port)|complex\?|cons|current-(?:error|input|output)-port|denominator|dynamic-wind|eof-object\??|eq\?|equal\?|eqv\?|error|error-object(?:-irritants|-message|\?)|eval|even\?|exact(?:-integer-sqrt|-integer\?|\?)?|expt|features|file-error\?|floor(?:-quotient|-remainder|\/)?|flush-output-port|for-each|gcd|get-output-(?:bytevector|string)|inexact\??|input-port(?:-open\?|\?)|integer(?:->char|\?)|lcm|length|list(?:->string|->vector|-copy|-ref|-set!|-tail|\?)?|make-(?:bytevector|list|parameter|string|vector)|map|max|member|memq|memv|min|modulo|negative\?|newline|not|null\?|number(?:->string|\?)|numerator|odd\?|open-(?:input|output)-(?:bytevector|string)|or|output-port(?:-open\?|\?)|pair\?|peek-char|peek-u8|port\?|positive\?|procedure\?|quotient|raise|raise-continuable|rational\?|rationalize|read-(?:bytevector|bytevector!|char|error\?|line|string|u8)|real\?|remainder|reverse|round|set-c[ad]r!|square|string(?:->list|->number|->symbol|->utf8|->vector|-append|-copy|-copy!|-fill!|-for-each|-length|-map|-ref|-set!|\?|<\?|<=\?|=\?|>\?|>=\?)?|substring|symbol(?:->string|\?|=\?)|syntax-error|textual-port\?|truncate(?:-quotient|-remainder|\/)?|u8-ready\?|utf8->string|values|vector(?:->list|->string|-append|-copy|-copy!|-fill!|-for-each|-length|-map|-ref|-set!|\?)?|with-exception-handler|write-(?:bytevector|char|string|u8)|zero\?)(?=[()\[\]\s]|$)/,lookbehind:!0},operator:{pattern:/((?:^|[^'`#])[(\[])(?:[-+*%/]|[<>]=?|=>?)(?=[()\[\]\s]|$)/,lookbehind:!0},number:{pattern:RegExp(i({"":/\d+(?:\/\d+)|(?:\d+(?:\.\d*)?|\.\d+)(?:[esfdl][+-]?\d+)?/.source,"":/[+-]?|[+-](?:inf|nan)\.0/.source,"":/[+-](?:|(?:inf|nan)\.0)?i/.source,"":/(?:@|)?|/.source,"":/(?:#d(?:#[ei])?|#[ei](?:#d)?)?/.source,"":/[0-9a-f]+(?:\/[0-9a-f]+)?/.source,"":/[+-]?|[+-](?:inf|nan)\.0/.source,"":/[+-](?:|(?:inf|nan)\.0)?i/.source,"":/(?:@|)?|/.source,"":/#[box](?:#[ei])?|(?:#[ei])?#[box]/.source,"":/(^|[()\[\]\s])(?:|)(?=[()\[\]\s]|$)/.source}),"i"),lookbehind:!0},boolean:{pattern:/(^|[()\[\]\s])#(?:[ft]|false|true)(?=[()\[\]\s]|$)/,lookbehind:!0},function:{pattern:/((?:^|[^'`#])[(\[])(?:[^|()\[\]'\s]+|\|(?:[^\\|]|\\.)*\|)(?=[()\[\]\s]|$)/,lookbehind:!0},identifier:{pattern:/(^|[()\[\]\s])\|(?:[^\\|]|\\.)*\|(?=[()\[\]\s]|$)/,lookbehind:!0,greedy:!0},punctuation:/[()\[\]']/};function i(o){for(var l in o)o[l]=o[l].replace(/<[\w\s]+>/g,function(u){return"(?:"+o[u].trim()+")"});return o[l]}})(t)}return Gp}var Hp,F_;function yj(){if(F_)return Hp;F_=1;var e=yh();Hp=t,t.displayName="lilypond",t.aliases=[];function t(n){n.register(e),(function(i){for(var o=/\((?:[^();"#\\]|\\[\s\S]|;.*(?!.)|"(?:[^"\\]|\\.)*"|#(?:\{(?:(?!#\})[\s\S])*#\}|[^{])|)*\)/.source,l=5,u=0;u/g,function(){return o});o=o.replace(//g,/[^\s\S]/.source);var c=i.languages.lilypond={comment:/%(?:(?!\{).*|\{[\s\S]*?%\})/,"embedded-scheme":{pattern:RegExp(/(^|[=\s])#(?:"(?:[^"\\]|\\.)*"|[^\s()"]*(?:[^\s()]|))/.source.replace(//g,function(){return o}),"m"),lookbehind:!0,greedy:!0,inside:{scheme:{pattern:/^(#)[\s\S]+$/,lookbehind:!0,alias:"language-scheme",inside:{"embedded-lilypond":{pattern:/#\{[\s\S]*?#\}/,greedy:!0,inside:{punctuation:/^#\{|#\}$/,lilypond:{pattern:/[\s\S]+/,alias:"language-lilypond",inside:null}}},rest:i.languages.scheme}},punctuation:/#/}},string:{pattern:/"(?:[^"\\]|\\.)*"/,greedy:!0},"class-name":{pattern:/(\\new\s+)[\w-]+/,lookbehind:!0},keyword:{pattern:/\\[a-z][-\w]*/i,inside:{punctuation:/^\\/}},operator:/[=|]|<<|>>/,punctuation:{pattern:/(^|[a-z\d])(?:'+|,+|[_^]?-[_^]?(?:[-+^!>._]|(?=\d))|[_^]\.?|[.!])|[{}()[\]<>^~]|\\[()[\]<>\\!]|--|__/,lookbehind:!0},number:/\b\d+(?:\/\d+)?\b/};c["embedded-scheme"].inside.scheme.inside["embedded-lilypond"].inside.lilypond.inside=c,i.languages.ly=c})(n)}return Hp}var Wp,P_;function Ej(){if(P_)return Wp;P_=1;var e=an();Wp=t,t.displayName="liquid",t.aliases=[];function t(n){n.register(e),n.languages.liquid={comment:{pattern:/(^\{%\s*comment\s*%\})[\s\S]+(?=\{%\s*endcomment\s*%\}$)/,lookbehind:!0},delimiter:{pattern:/^\{(?:\{\{|[%\{])-?|-?(?:\}\}|[%\}])\}$/,alias:"punctuation"},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},keyword:/\b(?:as|assign|break|(?:end)?(?:capture|case|comment|for|form|if|paginate|raw|style|tablerow|unless)|continue|cycle|decrement|echo|else|elsif|in|include|increment|limit|liquid|offset|range|render|reversed|section|when|with)\b/,object:/\b(?:address|all_country_option_tags|article|block|blog|cart|checkout|collection|color|country|country_option_tags|currency|current_page|current_tags|customer|customer_address|date|discount_allocation|discount_application|external_video|filter|filter_value|font|forloop|fulfillment|generic_file|gift_card|group|handle|image|line_item|link|linklist|localization|location|measurement|media|metafield|model|model_source|order|page|page_description|page_image|page_title|part|policy|product|product_option|recommendations|request|robots|routes|rule|script|search|selling_plan|selling_plan_allocation|selling_plan_group|shipping_method|shop|shop_locale|sitemap|store_availability|tax_line|template|theme|transaction|unit_price_measurement|user_agent|variant|video|video_source)\b/,function:[{pattern:/(\|\s*)\w+/,lookbehind:!0,alias:"filter"},{pattern:/(\.\s*)(?:first|last|size)/,lookbehind:!0}],boolean:/\b(?:false|nil|true)\b/,range:{pattern:/\.\./,alias:"operator"},number:/\b\d+(?:\.\d+)?\b/,operator:/[!=]=|<>|[<>]=?|[|?:=-]|\b(?:and|contains(?=\s)|or)\b/,punctuation:/[.,\[\]()]/,empty:{pattern:/\bempty\b/,alias:"keyword"}},n.hooks.add("before-tokenize",function(i){var o=/\{%\s*comment\s*%\}[\s\S]*?\{%\s*endcomment\s*%\}|\{(?:%[\s\S]*?%|\{\{[\s\S]*?\}\}|\{[\s\S]*?\})\}/g,l=!1;n.languages["markup-templating"].buildPlaceholders(i,"liquid",o,function(u){var c=/^\{%-?\s*(\w+)/.exec(u);if(c){var p=c[1];if(p==="raw"&&!l)return l=!0,!0;if(p==="endraw")return l=!1,!0}return!l})}),n.hooks.add("after-tokenize",function(i){n.languages["markup-templating"].tokenizePlaceholders(i,"liquid")})}return Wp}var Vp,U_;function Sj(){if(U_)return Vp;U_=1,Vp=e,e.displayName="lisp",e.aliases=[];function e(t){(function(n){function i(k){return RegExp(/(\()/.source+"(?:"+k+")"+/(?=[\s\)])/.source)}function o(k){return RegExp(/([\s([])/.source+"(?:"+k+")"+/(?=[\s)])/.source)}var l=/(?!\d)[-+*/~!@$%^=<>{}\w]+/.source,u="&"+l,c="(\\()",p="(?=\\))",f="(?=\\s)",m=/(?:[^()]|\((?:[^()]|\((?:[^()]|\((?:[^()]|\((?:[^()]|\([^()]*\))*\))*\))*\))*\))*/.source,h={heading:{pattern:/;;;.*/,alias:["comment","title"]},comment:/;.*/,string:{pattern:/"(?:[^"\\]|\\.)*"/,greedy:!0,inside:{argument:/[-A-Z]+(?=[.,\s])/,symbol:RegExp("`"+l+"'")}},"quoted-symbol":{pattern:RegExp("#?'"+l),alias:["variable","symbol"]},"lisp-property":{pattern:RegExp(":"+l),alias:"property"},splice:{pattern:RegExp(",@?"+l),alias:["symbol","variable"]},keyword:[{pattern:RegExp(c+"(?:and|(?:cl-)?letf|cl-loop|cond|cons|error|if|(?:lexical-)?let\\*?|message|not|null|or|provide|require|setq|unless|use-package|when|while)"+f),lookbehind:!0},{pattern:RegExp(c+"(?:append|by|collect|concat|do|finally|for|in|return)"+f),lookbehind:!0}],declare:{pattern:i(/declare/.source),lookbehind:!0,alias:"keyword"},interactive:{pattern:i(/interactive/.source),lookbehind:!0,alias:"keyword"},boolean:{pattern:o(/nil|t/.source),lookbehind:!0},number:{pattern:o(/[-+]?\d+(?:\.\d*)?/.source),lookbehind:!0},defvar:{pattern:RegExp(c+"def(?:const|custom|group|var)\\s+"+l),lookbehind:!0,inside:{keyword:/^def[a-z]+/,variable:RegExp(l)}},defun:{pattern:RegExp(c+/(?:cl-)?(?:defmacro|defun\*?)\s+/.source+l+/\s+\(/.source+m+/\)/.source),lookbehind:!0,greedy:!0,inside:{keyword:/^(?:cl-)?def\S+/,arguments:null,function:{pattern:RegExp("(^\\s)"+l),lookbehind:!0},punctuation:/[()]/}},lambda:{pattern:RegExp(c+"lambda\\s+\\(\\s*(?:&?"+l+"(?:\\s+&?"+l+")*\\s*)?\\)"),lookbehind:!0,greedy:!0,inside:{keyword:/^lambda/,arguments:null,punctuation:/[()]/}},car:{pattern:RegExp(c+l),lookbehind:!0},punctuation:[/(?:['`,]?\(|[)\[\]])/,{pattern:/(\s)\.(?=\s)/,lookbehind:!0}]},S={"lisp-marker":RegExp(u),varform:{pattern:RegExp(/\(/.source+l+/\s+(?=\S)/.source+m+/\)/.source),inside:h},argument:{pattern:RegExp(/(^|[\s(])/.source+l),lookbehind:!0,alias:"variable"},rest:h},E="\\S+(?:\\s+\\S+)*",v={pattern:RegExp(c+m+p),lookbehind:!0,inside:{"rest-vars":{pattern:RegExp("&(?:body|rest)\\s+"+E),inside:S},"other-marker-vars":{pattern:RegExp("&(?:aux|optional)\\s+"+E),inside:S},keys:{pattern:RegExp("&key\\s+"+E+"(?:\\s+&allow-other-keys)?"),inside:S},argument:{pattern:RegExp(l),alias:"variable"},punctuation:/[()]/}};h.lambda.inside.arguments=v,h.defun.inside.arguments=n.util.clone(v),h.defun.inside.arguments.inside.sublist=v,n.languages.lisp=h,n.languages.elisp=h,n.languages.emacs=h,n.languages["emacs-lisp"]=h})(t)}return Vp}var Yp,B_;function vj(){if(B_)return Yp;B_=1,Yp=e,e.displayName="livescript",e.aliases=[];function e(t){t.languages.livescript={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?\*\//,lookbehind:!0},{pattern:/(^|[^\\])#.*/,lookbehind:!0}],"interpolated-string":{pattern:/(^|[^"])("""|")(?:\\[\s\S]|(?!\2)[^\\])*\2(?!")/,lookbehind:!0,greedy:!0,inside:{variable:{pattern:/(^|[^\\])#[a-z_](?:-?[a-z]|[\d_])*/m,lookbehind:!0},interpolation:{pattern:/(^|[^\\])#\{[^}]+\}/m,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^#\{|\}$/,alias:"variable"}}},string:/[\s\S]+/}},string:[{pattern:/('''|')(?:\\[\s\S]|(?!\1)[^\\])*\1/,greedy:!0},{pattern:/<\[[\s\S]*?\]>/,greedy:!0},/\\[^\s,;\])}]+/],regex:[{pattern:/\/\/(?:\[[^\r\n\]]*\]|\\.|(?!\/\/)[^\\\[])+\/\/[gimyu]{0,5}/,greedy:!0,inside:{comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0}}},{pattern:/\/(?:\[[^\r\n\]]*\]|\\.|[^/\\\r\n\[])+\/[gimyu]{0,5}/,greedy:!0}],keyword:{pattern:/(^|(?!-).)\b(?:break|case|catch|class|const|continue|default|do|else|extends|fallthrough|finally|for(?: ever)?|function|if|implements|it|let|loop|new|null|otherwise|own|return|super|switch|that|then|this|throw|try|unless|until|var|void|when|while|yield)(?!-)\b/m,lookbehind:!0},"keyword-operator":{pattern:/(^|[^-])\b(?:(?:delete|require|typeof)!|(?:and|by|delete|export|from|import(?: all)?|in|instanceof|is(?: not|nt)?|not|of|or|til|to|typeof|with|xor)(?!-)\b)/m,lookbehind:!0,alias:"operator"},boolean:{pattern:/(^|[^-])\b(?:false|no|off|on|true|yes)(?!-)\b/m,lookbehind:!0},argument:{pattern:/(^|(?!\.&\.)[^&])&(?!&)\d*/m,lookbehind:!0,alias:"variable"},number:/\b(?:\d+~[\da-z]+|\d[\d_]*(?:\.\d[\d_]*)?(?:[a-z]\w*)?)/i,identifier:/[a-z_](?:-?[a-z]|[\d_])*/i,operator:[{pattern:/( )\.(?= )/,lookbehind:!0},/\.(?:[=~]|\.\.?)|\.(?:[&|^]|<<|>>>?)\.|:(?:=|:=?)|&&|\|[|>]|<(?:<[>=?]?|-(?:->?|>)?|\+\+?|@@?|%%?|\*\*?|!(?:~?=|--?>|~?~>)?|~(?:~?>|=)?|==?|\^\^?|[\/?]/],punctuation:/[(){}\[\]|.,:;`]/},t.languages.livescript["interpolated-string"].inside.interpolation.inside.rest=t.languages.livescript}return Yp}var Kp,j_;function kj(){if(j_)return Kp;j_=1,Kp=e,e.displayName="llvm",e.aliases=[];function e(t){(function(n){n.languages.llvm={comment:/;.*/,string:{pattern:/"[^"]*"/,greedy:!0},boolean:/\b(?:false|true)\b/,variable:/[%@!#](?:(?!\d)(?:[-$.\w]|\\[a-f\d]{2})+|\d+)/i,label:/(?!\d)(?:[-$.\w]|\\[a-f\d]{2})+:/i,type:{pattern:/\b(?:double|float|fp128|half|i[1-9]\d*|label|metadata|ppc_fp128|token|void|x86_fp80|x86_mmx)\b/,alias:"class-name"},keyword:/\b[a-z_][a-z_0-9]*\b/,number:/[+-]?\b\d+(?:\.\d+)?(?:[eE][+-]?\d+)?\b|\b0x[\dA-Fa-f]+\b|\b0xK[\dA-Fa-f]{20}\b|\b0x[ML][\dA-Fa-f]{32}\b|\b0xH[\dA-Fa-f]{4}\b/,punctuation:/[{}[\];(),.!*=<>]/}})(t)}return Kp}var Zp,z_;function _j(){if(z_)return Zp;z_=1,Zp=e,e.displayName="log",e.aliases=[];function e(t){t.languages.log={string:{pattern:/"(?:[^"\\\r\n]|\\.)*"|'(?![st] | \w)(?:[^'\\\r\n]|\\.)*'/,greedy:!0},exception:{pattern:/(^|[^\w.])[a-z][\w.]*(?:Error|Exception):.*(?:(?:\r\n?|\n)[ \t]*(?:at[ \t].+|\.{3}.*|Caused by:.*))+(?:(?:\r\n?|\n)[ \t]*\.\.\. .*)?/,lookbehind:!0,greedy:!0,alias:["javastacktrace","language-javastacktrace"],inside:t.languages.javastacktrace||{keyword:/\bat\b/,function:/[a-z_][\w$]*(?=\()/,punctuation:/[.:()]/}},level:[{pattern:/\b(?:ALERT|CRIT|CRITICAL|EMERG|EMERGENCY|ERR|ERROR|FAILURE|FATAL|SEVERE)\b/,alias:["error","important"]},{pattern:/\b(?:WARN|WARNING|WRN)\b/,alias:["warning","important"]},{pattern:/\b(?:DISPLAY|INF|INFO|NOTICE|STATUS)\b/,alias:["info","keyword"]},{pattern:/\b(?:DBG|DEBUG|FINE)\b/,alias:["debug","keyword"]},{pattern:/\b(?:FINER|FINEST|TRACE|TRC|VERBOSE|VRB)\b/,alias:["trace","comment"]}],property:{pattern:/((?:^|[\]|])[ \t]*)[a-z_](?:[\w-]|\b\/\b)*(?:[. ]\(?\w(?:[\w-]|\b\/\b)*\)?)*:(?=\s)/im,lookbehind:!0},separator:{pattern:/(^|[^-+])-{3,}|={3,}|\*{3,}|- - /m,lookbehind:!0,alias:"comment"},url:/\b(?:file|ftp|https?):\/\/[^\s|,;'"]*[^\s|,;'">.]/,email:{pattern:/(^|\s)[-\w+.]+@[a-z][a-z0-9-]*(?:\.[a-z][a-z0-9-]*)+(?=\s)/,lookbehind:!0,alias:"url"},"ip-address":{pattern:/\b(?:\d{1,3}(?:\.\d{1,3}){3})\b/,alias:"constant"},"mac-address":{pattern:/\b[a-f0-9]{2}(?::[a-f0-9]{2}){5}\b/i,alias:"constant"},domain:{pattern:/(^|\s)[a-z][a-z0-9-]*(?:\.[a-z][a-z0-9-]*)*\.[a-z][a-z0-9-]+(?=\s)/,lookbehind:!0,alias:"constant"},uuid:{pattern:/\b[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\b/i,alias:"constant"},hash:{pattern:/\b(?:[a-f0-9]{32}){1,2}\b/i,alias:"constant"},"file-path":{pattern:/\b[a-z]:[\\/][^\s|,;:(){}\[\]"']+|(^|[\s:\[\](>|])\.{0,2}\/\w[^\s|,;:(){}\[\]"']*/i,lookbehind:!0,greedy:!0,alias:"string"},date:{pattern:RegExp(/\b\d{4}[-/]\d{2}[-/]\d{2}(?:T(?=\d{1,2}:)|(?=\s\d{1,2}:))/.source+"|"+/\b\d{1,4}[-/ ](?:\d{1,2}|Apr|Aug|Dec|Feb|Jan|Jul|Jun|Mar|May|Nov|Oct|Sep)[-/ ]\d{2,4}T?\b/.source+"|"+/\b(?:(?:Fri|Mon|Sat|Sun|Thu|Tue|Wed)(?:\s{1,2}(?:Apr|Aug|Dec|Feb|Jan|Jul|Jun|Mar|May|Nov|Oct|Sep))?|Apr|Aug|Dec|Feb|Jan|Jul|Jun|Mar|May|Nov|Oct|Sep)\s{1,2}\d{1,2}\b/.source,"i"),alias:"number"},time:{pattern:/\b\d{1,2}:\d{1,2}:\d{1,2}(?:[.,:]\d+)?(?:\s?[+-]\d{2}:?\d{2}|Z)?\b/,alias:"number"},boolean:/\b(?:false|null|true)\b/i,number:{pattern:/(^|[^.\w])(?:0x[a-f0-9]+|0o[0-7]+|0b[01]+|v?\d[\da-f]*(?:\.\d+)*(?:e[+-]?\d+)?[a-z]{0,3}\b)\b(?!\.\w)/i,lookbehind:!0},operator:/[;:?<=>~/@!$%&+\-|^(){}*#]/,punctuation:/[\[\].,]/}}return Zp}var Xp,$_;function wj(){if($_)return Xp;$_=1,Xp=e,e.displayName="lolcode",e.aliases=[];function e(t){t.languages.lolcode={comment:[/\bOBTW\s[\s\S]*?\sTLDR\b/,/\bBTW.+/],string:{pattern:/"(?::.|[^":])*"/,inside:{variable:/:\{[^}]+\}/,symbol:[/:\([a-f\d]+\)/i,/:\[[^\]]+\]/,/:[)>o":]/]},greedy:!0},number:/(?:\B-)?(?:\b\d+(?:\.\d*)?|\B\.\d+)/,symbol:{pattern:/(^|\s)(?:A )?(?:BUKKIT|NOOB|NUMBAR|NUMBR|TROOF|YARN)(?=\s|,|$)/,lookbehind:!0,inside:{keyword:/A(?=\s)/}},label:{pattern:/((?:^|\s)(?:IM IN YR|IM OUTTA YR) )[a-zA-Z]\w*/,lookbehind:!0,alias:"string"},function:{pattern:/((?:^|\s)(?:HOW IZ I|I IZ|IZ) )[a-zA-Z]\w*/,lookbehind:!0},keyword:[{pattern:/(^|\s)(?:AN|FOUND YR|GIMMEH|GTFO|HAI|HAS A|HOW IZ I|I HAS A|I IZ|IF U SAY SO|IM IN YR|IM OUTTA YR|IS NOW(?: A)?|ITZ(?: A)?|IZ|KTHX|KTHXBYE|LIEK(?: A)?|MAEK|MEBBE|MKAY|NERFIN|NO WAI|O HAI IM|O RLY\?|OIC|OMG|OMGWTF|R|SMOOSH|SRS|TIL|UPPIN|VISIBLE|WILE|WTF\?|YA RLY|YR)(?=\s|,|$)/,lookbehind:!0},/'Z(?=\s|,|$)/],boolean:{pattern:/(^|\s)(?:FAIL|WIN)(?=\s|,|$)/,lookbehind:!0},variable:{pattern:/(^|\s)IT(?=\s|,|$)/,lookbehind:!0},operator:{pattern:/(^|\s)(?:NOT|BOTH SAEM|DIFFRINT|(?:ALL|ANY|BIGGR|BOTH|DIFF|EITHER|MOD|PRODUKT|QUOSHUNT|SMALLR|SUM|WON) OF)(?=\s|,|$)/,lookbehind:!0},punctuation:/\.{3}|…|,|!/}}return Xp}var Qp,q_;function Tj(){if(q_)return Qp;q_=1,Qp=e,e.displayName="magma",e.aliases=[];function e(t){t.languages.magma={output:{pattern:/^(>.*(?:\r(?:\n|(?!\n))|\n))(?!>)(?:.+|(?:\r(?:\n|(?!\n))|\n)(?!>).*)(?:(?:\r(?:\n|(?!\n))|\n)(?!>).*)*/m,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?\*\//,greedy:!0},string:{pattern:/(^|[^\\"])"(?:[^\r\n\\"]|\\.)*"/,lookbehind:!0,greedy:!0},keyword:/\b(?:_|adj|and|assert|assert2|assert3|assigned|break|by|case|cat|catch|clear|cmpeq|cmpne|continue|declare|default|delete|diff|div|do|elif|else|end|eq|error|eval|exists|exit|for|forall|forward|fprintf|freeze|function|ge|gt|if|iload|import|in|intrinsic|is|join|le|load|local|lt|meet|mod|ne|not|notadj|notin|notsubset|or|print|printf|procedure|quit|random|read|readi|repeat|require|requirege|requirerange|restore|return|save|sdiff|select|subset|then|time|to|try|until|vprint|vprintf|vtime|when|where|while|xor)\b/,boolean:/\b(?:false|true)\b/,generator:{pattern:/\b[a-z_]\w*(?=\s*<)/i,alias:"class-name"},function:/\b[a-z_]\w*(?=\s*\()/i,number:{pattern:/(^|[^\w.]|\.\.)(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?(?:_[a-z]?)?(?=$|[^\w.]|\.\.)/,lookbehind:!0},operator:/->|[-+*/^~!|#=]|:=|\.\./,punctuation:/[()[\]{}<>,;.:]/}}return Qp}var Jp,G_;function xj(){if(G_)return Jp;G_=1,Jp=e,e.displayName="makefile",e.aliases=[];function e(t){t.languages.makefile={comment:{pattern:/(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/,lookbehind:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"builtin-target":{pattern:/\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,alias:"builtin"},target:{pattern:/^(?:[^:=\s]|[ \t]+(?![\s:]))+(?=\s*:(?!=))/m,alias:"symbol",inside:{variable:/\$+(?:(?!\$)[^(){}:#=\s]+|(?=[({]))/}},variable:/\$+(?:(?!\$)[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,keyword:/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,function:{pattern:/(\()(?:abspath|addsuffix|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:list|s)?)(?=[ \t])/,lookbehind:!0},operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/}}return Jp}var ef,H_;function Aj(){if(H_)return ef;H_=1,ef=e,e.displayName="markdown",e.aliases=["md"];function e(t){(function(n){var i=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function o(S){return S=S.replace(//g,function(){return i}),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+S+")")}var l=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,u=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,function(){return l}),c=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source;n.languages.markdown=n.languages.extend("markup",{}),n.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:n.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+u+c+"(?:"+u+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+u+c+")(?:"+u+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(l),inside:n.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+u+")"+c+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+u+"$"),inside:{"table-header":{pattern:RegExp(l),alias:"important",inside:n.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:o(/\b__(?:(?!_)|_(?:(?!_))+_)+__\b|\*\*(?:(?!\*)|\*(?:(?!\*))+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:o(/\b_(?:(?!_)|__(?:(?!_))+__)+_\b|\*(?:(?!\*)|\*\*(?:(?!\*))+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:o(/(~~?)(?:(?!~))+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:o(/!?\[(?:(?!\]))+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\]))+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach(function(S){["url","bold","italic","strike","code-snippet"].forEach(function(E){S!==E&&(n.languages.markdown[S].inside.content.inside[E]=n.languages.markdown[E])})}),n.hooks.add("after-tokenize",function(S){if(S.language!=="markdown"&&S.language!=="md")return;function E(v){if(!(!v||typeof v=="string"))for(var k=0,T=v.length;k",quot:'"'},m=String.fromCodePoint||String.fromCharCode;function h(S){var E=S.replace(p,"");return E=E.replace(/&(\w{1,8}|#x?[\da-f]{1,8});/gi,function(v,k){if(k=k.toLowerCase(),k[0]==="#"){var T;return k[1]==="x"?T=parseInt(k.slice(2),16):T=Number(k.slice(1)),m(T)}else{var N=f[k];return N||v}}),E}n.languages.md=n.languages.markdown})(t)}return ef}var tf,W_;function Rj(){if(W_)return tf;W_=1,tf=e,e.displayName="matlab",e.aliases=[];function e(t){t.languages.matlab={comment:[/%\{[\s\S]*?\}%/,/%.+/],string:{pattern:/\B'(?:''|[^'\r\n])*'/,greedy:!0},number:/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[eE][+-]?\d+)?(?:[ij])?|\b[ij]\b/,keyword:/\b(?:NaN|break|case|catch|continue|else|elseif|end|for|function|if|inf|otherwise|parfor|pause|pi|return|switch|try|while)\b/,function:/\b(?!\d)\w+(?=\s*\()/,operator:/\.?[*^\/\\']|[+\-:@]|[<>=~]=?|&&?|\|\|?/,punctuation:/\.{3}|[.,;\[\](){}!]/}}return tf}var nf,V_;function Nj(){if(V_)return nf;V_=1,nf=e,e.displayName="maxscript",e.aliases=[];function e(t){(function(n){var i=/\b(?:about|and|animate|as|at|attributes|by|case|catch|collect|continue|coordsys|do|else|exit|fn|for|from|function|global|if|in|local|macroscript|mapped|max|not|of|off|on|or|parameters|persistent|plugin|rcmenu|return|rollout|set|struct|then|throw|to|tool|try|undo|utility|when|where|while|with)\b/i;n.languages.maxscript={comment:{pattern:/\/\*[\s\S]*?(?:\*\/|$)|--.*/,greedy:!0},string:{pattern:/(^|[^"\\@])(?:"(?:[^"\\]|\\[\s\S])*"|@"[^"]*")/,lookbehind:!0,greedy:!0},path:{pattern:/\$(?:[\w/\\.*?]|'[^']*')*/,greedy:!0,alias:"string"},"function-call":{pattern:RegExp("((?:"+(/^/.source+"|"+/[;=<>+\-*/^({\[]/.source+"|"+/\b(?:and|by|case|catch|collect|do|else|if|in|not|or|return|then|to|try|where|while|with)\b/.source)+")[ ]*)(?!"+i.source+")"+/[a-z_]\w*\b/.source+"(?=[ ]*(?:"+("(?!"+i.source+")"+/[a-z_]/.source+"|"+/\d|-\.?\d/.source+"|"+/[({'"$@#?]/.source)+"))","im"),lookbehind:!0,greedy:!0,alias:"function"},"function-definition":{pattern:/(\b(?:fn|function)\s+)\w+\b/i,lookbehind:!0,alias:"function"},argument:{pattern:/\b[a-z_]\w*(?=:)/i,alias:"attr-name"},keyword:i,boolean:/\b(?:false|true)\b/,time:{pattern:/(^|[^\w.])(?:(?:(?:\d+(?:\.\d*)?|\.\d+)(?:[eEdD][+-]\d+|[LP])?[msft])+|\d+:\d+(?:\.\d*)?)(?![\w.:])/,lookbehind:!0,alias:"number"},number:[{pattern:/(^|[^\w.])(?:(?:\d+(?:\.\d*)?|\.\d+)(?:[eEdD][+-]\d+|[LP])?|0x[a-fA-F0-9]+)(?![\w.:])/,lookbehind:!0},/\b(?:e|pi)\b/],constant:/\b(?:dontcollect|ok|silentValue|undefined|unsupplied)\b/,color:{pattern:/\b(?:black|blue|brown|gray|green|orange|red|white|yellow)\b/i,alias:"constant"},operator:/[-+*/<>=!]=?|[&^?]|#(?!\()/,punctuation:/[()\[\]{}.:,;]|#(?=\()|\\$/m}})(t)}return nf}var rf,Y_;function Cj(){if(Y_)return rf;Y_=1,rf=e,e.displayName="mel",e.aliases=[];function e(t){t.languages.mel={comment:/\/\/.*/,code:{pattern:/`(?:\\.|[^\\`\r\n])*`/,greedy:!0,alias:"italic",inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"}}},string:{pattern:/"(?:\\.|[^\\"\r\n])*"/,greedy:!0},variable:/\$\w+/,number:/\b0x[\da-fA-F]+\b|\b\d+(?:\.\d*)?|\B\.\d+/,flag:{pattern:/-[^\d\W]\w*/,alias:"operator"},keyword:/\b(?:break|case|continue|default|do|else|float|for|global|if|in|int|matrix|proc|return|string|switch|vector|while)\b/,function:/\b\w+(?=\()|\b(?:CBG|HfAddAttractorToAS|HfAssignAS|HfBuildEqualMap|HfBuildFurFiles|HfBuildFurImages|HfCancelAFR|HfConnectASToHF|HfCreateAttractor|HfDeleteAS|HfEditAS|HfPerformCreateAS|HfRemoveAttractorFromAS|HfSelectAttached|HfSelectAttractors|HfUnAssignAS|Mayatomr|about|abs|addAttr|addAttributeEditorNodeHelp|addDynamic|addNewShelfTab|addPP|addPanelCategory|addPrefixToName|advanceToNextDrivenKey|affectedNet|affects|aimConstraint|air|alias|aliasAttr|align|alignCtx|alignCurve|alignSurface|allViewFit|ambientLight|angle|angleBetween|animCone|animCurveEditor|animDisplay|animView|annotate|appendStringArray|applicationName|applyAttrPreset|applyTake|arcLenDimContext|arcLengthDimension|arclen|arrayMapper|art3dPaintCtx|artAttrCtx|artAttrPaintVertexCtx|artAttrSkinPaintCtx|artAttrTool|artBuildPaintMenu|artFluidAttrCtx|artPuttyCtx|artSelectCtx|artSetPaintCtx|artUserPaintCtx|assignCommand|assignInputDevice|assignViewportFactories|attachCurve|attachDeviceAttr|attachSurface|attrColorSliderGrp|attrCompatibility|attrControlGrp|attrEnumOptionMenu|attrEnumOptionMenuGrp|attrFieldGrp|attrFieldSliderGrp|attrNavigationControlGrp|attrPresetEditWin|attributeExists|attributeInfo|attributeMenu|attributeQuery|autoKeyframe|autoPlace|bakeClip|bakeFluidShading|bakePartialHistory|bakeResults|bakeSimulation|basename|basenameEx|batchRender|bessel|bevel|bevelPlus|binMembership|bindSkin|blend2|blendShape|blendShapeEditor|blendShapePanel|blendTwoAttr|blindDataType|boneLattice|boundary|boxDollyCtx|boxZoomCtx|bufferCurve|buildBookmarkMenu|buildKeyframeMenu|button|buttonManip|cacheFile|cacheFileCombine|cacheFileMerge|cacheFileTrack|camera|cameraView|canCreateManip|canvas|capitalizeString|catch|catchQuiet|ceil|changeSubdivComponentDisplayLevel|changeSubdivRegion|channelBox|character|characterMap|characterOutlineEditor|characterize|chdir|checkBox|checkBoxGrp|checkDefaultRenderGlobals|choice|circle|circularFillet|clamp|clear|clearCache|clip|clipEditor|clipEditorCurrentTimeCtx|clipSchedule|clipSchedulerOutliner|clipTrimBefore|closeCurve|closeSurface|cluster|cmdFileOutput|cmdScrollFieldExecuter|cmdScrollFieldReporter|cmdShell|coarsenSubdivSelectionList|collision|color|colorAtPoint|colorEditor|colorIndex|colorIndexSliderGrp|colorSliderButtonGrp|colorSliderGrp|columnLayout|commandEcho|commandLine|commandPort|compactHairSystem|componentEditor|compositingInterop|computePolysetVolume|condition|cone|confirmDialog|connectAttr|connectControl|connectDynamic|connectJoint|connectionInfo|constrain|constrainValue|constructionHistory|container|containsMultibyte|contextInfo|control|convertFromOldLayers|convertIffToPsd|convertLightmap|convertSolidTx|convertTessellation|convertUnit|copyArray|copyFlexor|copyKey|copySkinWeights|cos|cpButton|cpCache|cpClothSet|cpCollision|cpConstraint|cpConvClothToMesh|cpForces|cpGetSolverAttr|cpPanel|cpProperty|cpRigidCollisionFilter|cpSeam|cpSetEdit|cpSetSolverAttr|cpSolver|cpSolverTypes|cpTool|cpUpdateClothUVs|createDisplayLayer|createDrawCtx|createEditor|createLayeredPsdFile|createMotionField|createNewShelf|createNode|createRenderLayer|createSubdivRegion|cross|crossProduct|ctxAbort|ctxCompletion|ctxEditMode|ctxTraverse|currentCtx|currentTime|currentTimeCtx|currentUnit|curve|curveAddPtCtx|curveCVCtx|curveEPCtx|curveEditorCtx|curveIntersect|curveMoveEPCtx|curveOnSurface|curveSketchCtx|cutKey|cycleCheck|cylinder|dagPose|date|defaultLightListCheckBox|defaultNavigation|defineDataServer|defineVirtualDevice|deformer|deg_to_rad|delete|deleteAttr|deleteShadingGroupsAndMaterials|deleteShelfTab|deleteUI|deleteUnusedBrushes|delrandstr|detachCurve|detachDeviceAttr|detachSurface|deviceEditor|devicePanel|dgInfo|dgdirty|dgeval|dgtimer|dimWhen|directKeyCtx|directionalLight|dirmap|dirname|disable|disconnectAttr|disconnectJoint|diskCache|displacementToPoly|displayAffected|displayColor|displayCull|displayLevelOfDetail|displayPref|displayRGBColor|displaySmoothness|displayStats|displayString|displaySurface|distanceDimContext|distanceDimension|doBlur|dolly|dollyCtx|dopeSheetEditor|dot|dotProduct|doubleProfileBirailSurface|drag|dragAttrContext|draggerContext|dropoffLocator|duplicate|duplicateCurve|duplicateSurface|dynCache|dynControl|dynExport|dynExpression|dynGlobals|dynPaintEditor|dynParticleCtx|dynPref|dynRelEdPanel|dynRelEditor|dynamicLoad|editAttrLimits|editDisplayLayerGlobals|editDisplayLayerMembers|editRenderLayerAdjustment|editRenderLayerGlobals|editRenderLayerMembers|editor|editorTemplate|effector|emit|emitter|enableDevice|encodeString|endString|endsWith|env|equivalent|equivalentTol|erf|error|eval|evalDeferred|evalEcho|event|exactWorldBoundingBox|exclusiveLightCheckBox|exec|executeForEachObject|exists|exp|expression|expressionEditorListen|extendCurve|extendSurface|extrude|fcheck|fclose|feof|fflush|fgetline|fgetword|file|fileBrowserDialog|fileDialog|fileExtension|fileInfo|filetest|filletCurve|filter|filterCurve|filterExpand|filterStudioImport|findAllIntersections|findAnimCurves|findKeyframe|findMenuItem|findRelatedSkinCluster|finder|firstParentOf|fitBspline|flexor|floatEq|floatField|floatFieldGrp|floatScrollBar|floatSlider|floatSlider2|floatSliderButtonGrp|floatSliderGrp|floor|flow|fluidCacheInfo|fluidEmitter|fluidVoxelInfo|flushUndo|fmod|fontDialog|fopen|formLayout|format|fprint|frameLayout|fread|freeFormFillet|frewind|fromNativePath|fwrite|gamma|gauss|geometryConstraint|getApplicationVersionAsFloat|getAttr|getClassification|getDefaultBrush|getFileList|getFluidAttr|getInputDeviceRange|getMayaPanelTypes|getModifiers|getPanel|getParticleAttr|getPluginResource|getenv|getpid|glRender|glRenderEditor|globalStitch|gmatch|goal|gotoBindPose|grabColor|gradientControl|gradientControlNoAttr|graphDollyCtx|graphSelectContext|graphTrackCtx|gravity|grid|gridLayout|group|groupObjectsByName|hardenPointCurve|hardware|hardwareRenderPanel|headsUpDisplay|headsUpMessage|help|helpLine|hermite|hide|hilite|hitTest|hotBox|hotkey|hotkeyCheck|hsv_to_rgb|hudButton|hudSlider|hudSliderButton|hwReflectionMap|hwRender|hwRenderLoad|hyperGraph|hyperPanel|hyperShade|hypot|iconTextButton|iconTextCheckBox|iconTextRadioButton|iconTextRadioCollection|iconTextScrollList|iconTextStaticLabel|ikHandle|ikHandleCtx|ikHandleDisplayScale|ikSolver|ikSplineHandleCtx|ikSystem|ikSystemInfo|ikfkDisplayMethod|illustratorCurves|image|imfPlugins|inheritTransform|insertJoint|insertJointCtx|insertKeyCtx|insertKnotCurve|insertKnotSurface|instance|instanceable|instancer|intField|intFieldGrp|intScrollBar|intSlider|intSliderGrp|interToUI|internalVar|intersect|iprEngine|isAnimCurve|isConnected|isDirty|isParentOf|isSameObject|isTrue|isValidObjectName|isValidString|isValidUiName|isolateSelect|itemFilter|itemFilterAttr|itemFilterRender|itemFilterType|joint|jointCluster|jointCtx|jointDisplayScale|jointLattice|keyTangent|keyframe|keyframeOutliner|keyframeRegionCurrentTimeCtx|keyframeRegionDirectKeyCtx|keyframeRegionDollyCtx|keyframeRegionInsertKeyCtx|keyframeRegionMoveKeyCtx|keyframeRegionScaleKeyCtx|keyframeRegionSelectKeyCtx|keyframeRegionSetKeyCtx|keyframeRegionTrackCtx|keyframeStats|lassoContext|lattice|latticeDeformKeyCtx|launch|launchImageEditor|layerButton|layeredShaderPort|layeredTexturePort|layout|layoutDialog|lightList|lightListEditor|lightListPanel|lightlink|lineIntersection|linearPrecision|linstep|listAnimatable|listAttr|listCameras|listConnections|listDeviceAttachments|listHistory|listInputDeviceAxes|listInputDeviceButtons|listInputDevices|listMenuAnnotation|listNodeTypes|listPanelCategories|listRelatives|listSets|listTransforms|listUnselected|listerEditor|loadFluid|loadNewShelf|loadPlugin|loadPluginLanguageResources|loadPrefObjects|localizedPanelLabel|lockNode|loft|log|longNameOf|lookThru|ls|lsThroughFilter|lsType|lsUI|mag|makeIdentity|makeLive|makePaintable|makeRoll|makeSingleSurface|makeTubeOn|makebot|manipMoveContext|manipMoveLimitsCtx|manipOptions|manipRotateContext|manipRotateLimitsCtx|manipScaleContext|manipScaleLimitsCtx|marker|match|max|memory|menu|menuBarLayout|menuEditor|menuItem|menuItemToShelf|menuSet|menuSetPref|messageLine|min|minimizeApp|mirrorJoint|modelCurrentTimeCtx|modelEditor|modelPanel|mouse|movIn|movOut|move|moveIKtoFK|moveKeyCtx|moveVertexAlongDirection|multiProfileBirailSurface|mute|nParticle|nameCommand|nameField|namespace|namespaceInfo|newPanelItems|newton|nodeCast|nodeIconButton|nodeOutliner|nodePreset|nodeType|noise|nonLinear|normalConstraint|normalize|nurbsBoolean|nurbsCopyUVSet|nurbsCube|nurbsEditUV|nurbsPlane|nurbsSelect|nurbsSquare|nurbsToPoly|nurbsToPolygonsPref|nurbsToSubdiv|nurbsToSubdivPref|nurbsUVSet|nurbsViewDirectionVector|objExists|objectCenter|objectLayer|objectType|objectTypeUI|obsoleteProc|oceanNurbsPreviewPlane|offsetCurve|offsetCurveOnSurface|offsetSurface|openGLExtension|openMayaPref|optionMenu|optionMenuGrp|optionVar|orbit|orbitCtx|orientConstraint|outlinerEditor|outlinerPanel|overrideModifier|paintEffectsDisplay|pairBlend|palettePort|paneLayout|panel|panelConfiguration|panelHistory|paramDimContext|paramDimension|paramLocator|parent|parentConstraint|particle|particleExists|particleInstancer|particleRenderInfo|partition|pasteKey|pathAnimation|pause|pclose|percent|performanceOptions|pfxstrokes|pickWalk|picture|pixelMove|planarSrf|plane|play|playbackOptions|playblast|plugAttr|plugNode|pluginInfo|pluginResourceUtil|pointConstraint|pointCurveConstraint|pointLight|pointMatrixMult|pointOnCurve|pointOnSurface|pointPosition|poleVectorConstraint|polyAppend|polyAppendFacetCtx|polyAppendVertex|polyAutoProjection|polyAverageNormal|polyAverageVertex|polyBevel|polyBlendColor|polyBlindData|polyBoolOp|polyBridgeEdge|polyCacheMonitor|polyCheck|polyChipOff|polyClipboard|polyCloseBorder|polyCollapseEdge|polyCollapseFacet|polyColorBlindData|polyColorDel|polyColorPerVertex|polyColorSet|polyCompare|polyCone|polyCopyUV|polyCrease|polyCreaseCtx|polyCreateFacet|polyCreateFacetCtx|polyCube|polyCut|polyCutCtx|polyCylinder|polyCylindricalProjection|polyDelEdge|polyDelFacet|polyDelVertex|polyDuplicateAndConnect|polyDuplicateEdge|polyEditUV|polyEditUVShell|polyEvaluate|polyExtrudeEdge|polyExtrudeFacet|polyExtrudeVertex|polyFlipEdge|polyFlipUV|polyForceUV|polyGeoSampler|polyHelix|polyInfo|polyInstallAction|polyLayoutUV|polyListComponentConversion|polyMapCut|polyMapDel|polyMapSew|polyMapSewMove|polyMergeEdge|polyMergeEdgeCtx|polyMergeFacet|polyMergeFacetCtx|polyMergeUV|polyMergeVertex|polyMirrorFace|polyMoveEdge|polyMoveFacet|polyMoveFacetUV|polyMoveUV|polyMoveVertex|polyNormal|polyNormalPerVertex|polyNormalizeUV|polyOptUvs|polyOptions|polyOutput|polyPipe|polyPlanarProjection|polyPlane|polyPlatonicSolid|polyPoke|polyPrimitive|polyPrism|polyProjection|polyPyramid|polyQuad|polyQueryBlindData|polyReduce|polySelect|polySelectConstraint|polySelectConstraintMonitor|polySelectCtx|polySelectEditCtx|polySeparate|polySetToFaceNormal|polySewEdge|polyShortestPathCtx|polySmooth|polySoftEdge|polySphere|polySphericalProjection|polySplit|polySplitCtx|polySplitEdge|polySplitRing|polySplitVertex|polyStraightenUVBorder|polySubdivideEdge|polySubdivideFacet|polyToSubdiv|polyTorus|polyTransfer|polyTriangulate|polyUVSet|polyUnite|polyWedgeFace|popen|popupMenu|pose|pow|preloadRefEd|print|progressBar|progressWindow|projFileViewer|projectCurve|projectTangent|projectionContext|projectionManip|promptDialog|propModCtx|propMove|psdChannelOutliner|psdEditTextureFile|psdExport|psdTextureFile|putenv|pwd|python|querySubdiv|quit|rad_to_deg|radial|radioButton|radioButtonGrp|radioCollection|radioMenuItemCollection|rampColorPort|rand|randomizeFollicles|randstate|rangeControl|readTake|rebuildCurve|rebuildSurface|recordAttr|recordDevice|redo|reference|referenceEdit|referenceQuery|refineSubdivSelectionList|refresh|refreshAE|registerPluginResource|rehash|reloadImage|removeJoint|removeMultiInstance|removePanelCategory|rename|renameAttr|renameSelectionList|renameUI|render|renderGlobalsNode|renderInfo|renderLayerButton|renderLayerParent|renderLayerPostProcess|renderLayerUnparent|renderManip|renderPartition|renderQualityNode|renderSettings|renderThumbnailUpdate|renderWindowEditor|renderWindowSelectContext|renderer|reorder|reorderDeformers|requires|reroot|resampleFluid|resetAE|resetPfxToPolyCamera|resetTool|resolutionNode|retarget|reverseCurve|reverseSurface|revolve|rgb_to_hsv|rigidBody|rigidSolver|roll|rollCtx|rootOf|rot|rotate|rotationInterpolation|roundConstantRadius|rowColumnLayout|rowLayout|runTimeCommand|runup|sampleImage|saveAllShelves|saveAttrPreset|saveFluid|saveImage|saveInitialState|saveMenu|savePrefObjects|savePrefs|saveShelf|saveToolSettings|scale|scaleBrushBrightness|scaleComponents|scaleConstraint|scaleKey|scaleKeyCtx|sceneEditor|sceneUIReplacement|scmh|scriptCtx|scriptEditorInfo|scriptJob|scriptNode|scriptTable|scriptToShelf|scriptedPanel|scriptedPanelType|scrollField|scrollLayout|sculpt|searchPathArray|seed|selLoadSettings|select|selectContext|selectCurveCV|selectKey|selectKeyCtx|selectKeyframeRegionCtx|selectMode|selectPref|selectPriority|selectType|selectedNodes|selectionConnection|separator|setAttr|setAttrEnumResource|setAttrMapping|setAttrNiceNameResource|setConstraintRestPosition|setDefaultShadingGroup|setDrivenKeyframe|setDynamic|setEditCtx|setEditor|setFluidAttr|setFocus|setInfinity|setInputDeviceMapping|setKeyCtx|setKeyPath|setKeyframe|setKeyframeBlendshapeTargetWts|setMenuMode|setNodeNiceNameResource|setNodeTypeFlag|setParent|setParticleAttr|setPfxToPolyCamera|setPluginResource|setProject|setStampDensity|setStartupMessage|setState|setToolTo|setUITemplate|setXformManip|sets|shadingConnection|shadingGeometryRelCtx|shadingLightRelCtx|shadingNetworkCompare|shadingNode|shapeCompare|shelfButton|shelfLayout|shelfTabLayout|shellField|shortNameOf|showHelp|showHidden|showManipCtx|showSelectionInTitle|showShadingGroupAttrEditor|showWindow|sign|simplify|sin|singleProfileBirailSurface|size|sizeBytes|skinCluster|skinPercent|smoothCurve|smoothTangentSurface|smoothstep|snap2to2|snapKey|snapMode|snapTogetherCtx|snapshot|soft|softMod|softModCtx|sort|sound|soundControl|source|spaceLocator|sphere|sphrand|spotLight|spotLightPreviewPort|spreadSheetEditor|spring|sqrt|squareSurface|srtContext|stackTrace|startString|startsWith|stitchAndExplodeShell|stitchSurface|stitchSurfacePoints|strcmp|stringArrayCatenate|stringArrayContains|stringArrayCount|stringArrayInsertAtIndex|stringArrayIntersector|stringArrayRemove|stringArrayRemoveAtIndex|stringArrayRemoveDuplicates|stringArrayRemoveExact|stringArrayToString|stringToStringArray|strip|stripPrefixFromName|stroke|subdAutoProjection|subdCleanTopology|subdCollapse|subdDuplicateAndConnect|subdEditUV|subdListComponentConversion|subdMapCut|subdMapSewMove|subdMatchTopology|subdMirror|subdToBlind|subdToPoly|subdTransferUVsToCache|subdiv|subdivCrease|subdivDisplaySmoothness|substitute|substituteAllString|substituteGeometry|substring|surface|surfaceSampler|surfaceShaderList|swatchDisplayPort|switchTable|symbolButton|symbolCheckBox|sysFile|system|tabLayout|tan|tangentConstraint|texLatticeDeformContext|texManipContext|texMoveContext|texMoveUVShellContext|texRotateContext|texScaleContext|texSelectContext|texSelectShortestPathCtx|texSmudgeUVContext|texWinToolCtx|text|textCurves|textField|textFieldButtonGrp|textFieldGrp|textManip|textScrollList|textToShelf|textureDisplacePlane|textureHairColor|texturePlacementContext|textureWindow|threadCount|threePointArcCtx|timeControl|timePort|timerX|toNativePath|toggle|toggleAxis|toggleWindowVisibility|tokenize|tokenizeList|tolerance|tolower|toolButton|toolCollection|toolDropped|toolHasOptions|toolPropertyWindow|torus|toupper|trace|track|trackCtx|transferAttributes|transformCompare|transformLimits|translator|trim|trunc|truncateFluidCache|truncateHairCache|tumble|tumbleCtx|turbulence|twoPointArcCtx|uiRes|uiTemplate|unassignInputDevice|undo|undoInfo|ungroup|uniform|unit|unloadPlugin|untangleUV|untitledFileName|untrim|upAxis|updateAE|userCtx|uvLink|uvSnapshot|validateShelfName|vectorize|view2dToolCtx|viewCamera|viewClipPlane|viewFit|viewHeadOn|viewLookAt|viewManip|viewPlace|viewSet|visor|volumeAxis|vortex|waitCursor|warning|webBrowser|webBrowserPrefs|whatIs|window|windowPref|wire|wireContext|workspace|wrinkle|wrinkleContext|writeTake|xbmLangPathList|xform)\b/,operator:[/\+[+=]?|-[-=]?|&&|\|\||[<>]=|[*\/!=]=?|[%^]/,{pattern:/(^|[^<])<(?!<)/,lookbehind:!0},{pattern:/(^|[^>])>(?!>)/,lookbehind:!0}],punctuation:/<<|>>|[.,:;?\[\](){}]/},t.languages.mel.code.inside.rest=t.languages.mel}return rf}var af,K_;function Ij(){if(K_)return af;K_=1,af=e,e.displayName="mermaid",e.aliases=[];function e(t){t.languages.mermaid={comment:{pattern:/%%.*/,greedy:!0},style:{pattern:/^([ \t]*(?:classDef|linkStyle|style)[ \t]+[\w$-]+[ \t]+)\w.*[^\s;]/m,lookbehind:!0,inside:{property:/\b\w[\w-]*(?=[ \t]*:)/,operator:/:/,punctuation:/,/}},"inter-arrow-label":{pattern:/([^<>ox.=-])(?:-[-.]|==)(?![<>ox.=-])[ \t]*(?:"[^"\r\n]*"|[^\s".=-](?:[^\r\n.=-]*[^\s.=-])?)[ \t]*(?:\.+->?|--+[->]|==+[=>])(?![<>ox.=-])/,lookbehind:!0,greedy:!0,inside:{arrow:{pattern:/(?:\.+->?|--+[->]|==+[=>])$/,alias:"operator"},label:{pattern:/^([\s\S]{2}[ \t]*)\S(?:[\s\S]*\S)?/,lookbehind:!0,alias:"property"},"arrow-head":{pattern:/^\S+/,alias:["arrow","operator"]}}},arrow:[{pattern:/(^|[^{}|o.-])[|}][|o](?:--|\.\.)[|o][|{](?![{}|o.-])/,lookbehind:!0,alias:"operator"},{pattern:/(^|[^<>ox.=-])(?:[ox]?|(?:==+|--+|-\.*-)[>ox]|===+|---+|-\.+-)(?![<>ox.=-])/,lookbehind:!0,alias:"operator"},{pattern:/(^|[^<>()x-])(?:--?(?:>>|[x>)])(?![<>()x])|(?:<<|[x<(])--?(?!-))/,lookbehind:!0,alias:"operator"},{pattern:/(^|[^<>|*o.-])(?:[*o]--|--[*o]|<\|?(?:--|\.\.)|(?:--|\.\.)\|?>|--|\.\.)(?![<>|*o.-])/,lookbehind:!0,alias:"operator"}],label:{pattern:/(^|[^|<])\|(?:[^\r\n"|]|"[^"\r\n]*")+\|/,lookbehind:!0,greedy:!0,alias:"property"},text:{pattern:/(?:[(\[{]+|\b>)(?:[^\r\n"()\[\]{}]|"[^"\r\n]*")+(?:[)\]}]+|>)/,alias:"string"},string:{pattern:/"[^"\r\n]*"/,greedy:!0},annotation:{pattern:/<<(?:abstract|choice|enumeration|fork|interface|join|service)>>|\[\[(?:choice|fork|join)\]\]/i,alias:"important"},keyword:[{pattern:/(^[ \t]*)(?:action|callback|class|classDef|classDiagram|click|direction|erDiagram|flowchart|gantt|gitGraph|graph|journey|link|linkStyle|pie|requirementDiagram|sequenceDiagram|stateDiagram|stateDiagram-v2|style|subgraph)(?![\w$-])/m,lookbehind:!0,greedy:!0},{pattern:/(^[ \t]*)(?:activate|alt|and|as|autonumber|deactivate|else|end(?:[ \t]+note)?|loop|opt|par|participant|rect|state|note[ \t]+(?:over|(?:left|right)[ \t]+of))(?![\w$-])/im,lookbehind:!0,greedy:!0}],entity:/#[a-z0-9]+;/,operator:{pattern:/(\w[ \t]*)&(?=[ \t]*\w)|:::|:/,lookbehind:!0},punctuation:/[(){};]/}}return af}var of,Z_;function Oj(){if(Z_)return of;Z_=1,of=e,e.displayName="mizar",e.aliases=[];function e(t){t.languages.mizar={comment:/::.+/,keyword:/@proof\b|\b(?:according|aggregate|all|and|antonym|are|as|associativity|assume|asymmetry|attr|be|begin|being|by|canceled|case|cases|clusters?|coherence|commutativity|compatibility|connectedness|consider|consistency|constructors|contradiction|correctness|def|deffunc|define|definitions?|defpred|do|does|end|environ|equals|ex|exactly|existence|for|from|func|given|hence|hereby|holds|idempotence|identity|iff?|implies|involutiveness|irreflexivity|is|it|let|means|mode|non|not|notations?|now|of|or|otherwise|over|per|pred|prefix|projectivity|proof|provided|qua|reconsider|redefine|reduce|reducibility|reflexivity|registrations?|requirements|reserve|sch|schemes?|section|selector|set|sethood|st|struct|such|suppose|symmetry|synonym|take|that|the|then|theorems?|thesis|thus|to|transitivity|uniqueness|vocabular(?:ies|y)|when|where|with|wrt)\b/,parameter:{pattern:/\$(?:10|\d)/,alias:"variable"},variable:/\b\w+(?=:)/,number:/(?:\b|-)\d+\b/,operator:/\.\.\.|->|&|\.?=/,punctuation:/\(#|#\)|[,:;\[\](){}]/}}return of}var sf,X_;function Lj(){if(X_)return sf;X_=1,sf=e,e.displayName="mongodb",e.aliases=[];function e(t){(function(n){var i=["$eq","$gt","$gte","$in","$lt","$lte","$ne","$nin","$and","$not","$nor","$or","$exists","$type","$expr","$jsonSchema","$mod","$regex","$text","$where","$geoIntersects","$geoWithin","$near","$nearSphere","$all","$elemMatch","$size","$bitsAllClear","$bitsAllSet","$bitsAnyClear","$bitsAnySet","$comment","$elemMatch","$meta","$slice","$currentDate","$inc","$min","$max","$mul","$rename","$set","$setOnInsert","$unset","$addToSet","$pop","$pull","$push","$pullAll","$each","$position","$slice","$sort","$bit","$addFields","$bucket","$bucketAuto","$collStats","$count","$currentOp","$facet","$geoNear","$graphLookup","$group","$indexStats","$limit","$listLocalSessions","$listSessions","$lookup","$match","$merge","$out","$planCacheStats","$project","$redact","$replaceRoot","$replaceWith","$sample","$set","$skip","$sort","$sortByCount","$unionWith","$unset","$unwind","$setWindowFields","$abs","$accumulator","$acos","$acosh","$add","$addToSet","$allElementsTrue","$and","$anyElementTrue","$arrayElemAt","$arrayToObject","$asin","$asinh","$atan","$atan2","$atanh","$avg","$binarySize","$bsonSize","$ceil","$cmp","$concat","$concatArrays","$cond","$convert","$cos","$dateFromParts","$dateToParts","$dateFromString","$dateToString","$dayOfMonth","$dayOfWeek","$dayOfYear","$degreesToRadians","$divide","$eq","$exp","$filter","$first","$floor","$function","$gt","$gte","$hour","$ifNull","$in","$indexOfArray","$indexOfBytes","$indexOfCP","$isArray","$isNumber","$isoDayOfWeek","$isoWeek","$isoWeekYear","$last","$last","$let","$literal","$ln","$log","$log10","$lt","$lte","$ltrim","$map","$max","$mergeObjects","$meta","$min","$millisecond","$minute","$mod","$month","$multiply","$ne","$not","$objectToArray","$or","$pow","$push","$radiansToDegrees","$range","$reduce","$regexFind","$regexFindAll","$regexMatch","$replaceOne","$replaceAll","$reverseArray","$round","$rtrim","$second","$setDifference","$setEquals","$setIntersection","$setIsSubset","$setUnion","$size","$sin","$slice","$split","$sqrt","$stdDevPop","$stdDevSamp","$strcasecmp","$strLenBytes","$strLenCP","$substr","$substrBytes","$substrCP","$subtract","$sum","$switch","$tan","$toBool","$toDate","$toDecimal","$toDouble","$toInt","$toLong","$toObjectId","$toString","$toLower","$toUpper","$trim","$trunc","$type","$week","$year","$zip","$count","$dateAdd","$dateDiff","$dateSubtract","$dateTrunc","$getField","$rand","$sampleRate","$setField","$unsetField","$comment","$explain","$hint","$max","$maxTimeMS","$min","$orderby","$query","$returnKey","$showDiskLoc","$natural"],o=["ObjectId","Code","BinData","DBRef","Timestamp","NumberLong","NumberDecimal","MaxKey","MinKey","RegExp","ISODate","UUID"];i=i.map(function(u){return u.replace("$","\\$")});var l="(?:"+i.join("|")+")\\b";n.languages.mongodb=n.languages.extend("javascript",{}),n.languages.insertBefore("mongodb","string",{property:{pattern:/(?:(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)(?=\s*:)/,greedy:!0,inside:{keyword:RegExp(`^(['"])?`+l+"(?:\\1)?$")}}}),n.languages.mongodb.string.inside={url:{pattern:/https?:\/\/[-\w@:%.+~#=]{1,256}\.[a-z0-9()]{1,6}\b[-\w()@:%+.~#?&/=]*/i,greedy:!0},entity:{pattern:/\b(?:(?:[01]?\d\d?|2[0-4]\d|25[0-5])\.){3}(?:[01]?\d\d?|2[0-4]\d|25[0-5])\b/,greedy:!0}},n.languages.insertBefore("mongodb","constant",{builtin:{pattern:RegExp("\\b(?:"+o.join("|")+")\\b"),alias:"keyword"}})})(t)}return sf}var lf,Q_;function Dj(){if(Q_)return lf;Q_=1,lf=e,e.displayName="monkey",e.aliases=[];function e(t){t.languages.monkey={comment:{pattern:/^#Rem\s[\s\S]*?^#End|'.+/im,greedy:!0},string:{pattern:/"[^"\r\n]*"/,greedy:!0},preprocessor:{pattern:/(^[ \t]*)#.+/m,lookbehind:!0,greedy:!0,alias:"property"},function:/\b\w+(?=\()/,"type-char":{pattern:/\b[?%#$]/,alias:"class-name"},number:{pattern:/((?:\.\.)?)(?:(?:\b|\B-\.?|\B\.)\d+(?:(?!\.\.)\.\d*)?|\$[\da-f]+)/i,lookbehind:!0},keyword:/\b(?:Abstract|Array|Bool|Case|Catch|Class|Const|Continue|Default|Eachin|Else|ElseIf|End|EndIf|Exit|Extends|Extern|False|Field|Final|Float|For|Forever|Function|Global|If|Implements|Import|Inline|Int|Interface|Local|Method|Module|New|Next|Null|Object|Private|Property|Public|Repeat|Return|Select|Self|Step|Strict|String|Super|Then|Throw|To|True|Try|Until|Void|Wend|While)\b/i,operator:/\.\.|<[=>]?|>=?|:?=|(?:[+\-*\/&~|]|\b(?:Mod|Shl|Shr)\b)=?|\b(?:And|Not|Or)\b/i,punctuation:/[.,:;()\[\]]/}}return lf}var uf,J_;function Mj(){if(J_)return uf;J_=1,uf=e,e.displayName="moonscript",e.aliases=["moon"];function e(t){t.languages.moonscript={comment:/--.*/,string:[{pattern:/'[^']*'|\[(=*)\[[\s\S]*?\]\1\]/,greedy:!0},{pattern:/"[^"]*"/,greedy:!0,inside:{interpolation:{pattern:/#\{[^{}]*\}/,inside:{moonscript:{pattern:/(^#\{)[\s\S]+(?=\})/,lookbehind:!0,inside:null},"interpolation-punctuation":{pattern:/#\{|\}/,alias:"punctuation"}}}}}],"class-name":[{pattern:/(\b(?:class|extends)[ \t]+)\w+/,lookbehind:!0},/\b[A-Z]\w*/],keyword:/\b(?:class|continue|do|else|elseif|export|extends|for|from|if|import|in|local|nil|return|self|super|switch|then|unless|using|when|while|with)\b/,variable:/@@?\w*/,property:{pattern:/\b(?!\d)\w+(?=:)|(:)(?!\d)\w+/,lookbehind:!0},function:{pattern:/\b(?:_G|_VERSION|assert|collectgarbage|coroutine\.(?:create|resume|running|status|wrap|yield)|debug\.(?:debug|getfenv|gethook|getinfo|getlocal|getmetatable|getregistry|getupvalue|setfenv|sethook|setlocal|setmetatable|setupvalue|traceback)|dofile|error|getfenv|getmetatable|io\.(?:close|flush|input|lines|open|output|popen|read|stderr|stdin|stdout|tmpfile|type|write)|ipairs|load|loadfile|loadstring|math\.(?:abs|acos|asin|atan|atan2|ceil|cos|cosh|deg|exp|floor|fmod|frexp|ldexp|log|log10|max|min|modf|pi|pow|rad|random|randomseed|sin|sinh|sqrt|tan|tanh)|module|next|os\.(?:clock|date|difftime|execute|exit|getenv|remove|rename|setlocale|time|tmpname)|package\.(?:cpath|loaded|loadlib|path|preload|seeall)|pairs|pcall|print|rawequal|rawget|rawset|require|select|setfenv|setmetatable|string\.(?:byte|char|dump|find|format|gmatch|gsub|len|lower|match|rep|reverse|sub|upper)|table\.(?:concat|insert|maxn|remove|sort)|tonumber|tostring|type|unpack|xpcall)\b/,inside:{punctuation:/\./}},boolean:/\b(?:false|true)\b/,number:/(?:\B\.\d+|\b\d+\.\d+|\b\d+(?=[eE]))(?:[eE][-+]?\d+)?\b|\b(?:0x[a-fA-F\d]+|\d+)(?:U?LL)?\b/,operator:/\.{3}|[-=]>|~=|(?:[-+*/%<>!=]|\.\.)=?|[:#^]|\b(?:and|or)\b=?|\b(?:not)\b/,punctuation:/[.,()[\]{}\\]/},t.languages.moonscript.string[1].inside.interpolation.inside.moonscript.inside=t.languages.moonscript,t.languages.moon=t.languages.moonscript}return uf}var cf,ew;function Fj(){if(ew)return cf;ew=1,cf=e,e.displayName="n1ql",e.aliases=[];function e(t){t.languages.n1ql={comment:{pattern:/\/\*[\s\S]*?(?:$|\*\/)|--.*/,greedy:!0},string:{pattern:/(["'])(?:\\[\s\S]|(?!\1)[^\\]|\1\1)*\1/,greedy:!0},identifier:{pattern:/`(?:\\[\s\S]|[^\\`]|``)*`/,greedy:!0},parameter:/\$[\w.]+/,keyword:/\b(?:ADVISE|ALL|ALTER|ANALYZE|AS|ASC|AT|BEGIN|BINARY|BOOLEAN|BREAK|BUCKET|BUILD|BY|CALL|CAST|CLUSTER|COLLATE|COLLECTION|COMMIT|COMMITTED|CONNECT|CONTINUE|CORRELATE|CORRELATED|COVER|CREATE|CURRENT|DATABASE|DATASET|DATASTORE|DECLARE|DECREMENT|DELETE|DERIVED|DESC|DESCRIBE|DISTINCT|DO|DROP|EACH|ELEMENT|EXCEPT|EXCLUDE|EXECUTE|EXPLAIN|FETCH|FILTER|FLATTEN|FLUSH|FOLLOWING|FOR|FORCE|FROM|FTS|FUNCTION|GOLANG|GRANT|GROUP|GROUPS|GSI|HASH|HAVING|IF|IGNORE|ILIKE|INCLUDE|INCREMENT|INDEX|INFER|INLINE|INNER|INSERT|INTERSECT|INTO|IS|ISOLATION|JAVASCRIPT|JOIN|KEY|KEYS|KEYSPACE|KNOWN|LANGUAGE|LAST|LEFT|LET|LETTING|LEVEL|LIMIT|LSM|MAP|MAPPING|MATCHED|MATERIALIZED|MERGE|MINUS|MISSING|NAMESPACE|NEST|NL|NO|NTH_VALUE|NULL|NULLS|NUMBER|OBJECT|OFFSET|ON|OPTION|OPTIONS|ORDER|OTHERS|OUTER|OVER|PARSE|PARTITION|PASSWORD|PATH|POOL|PRECEDING|PREPARE|PRIMARY|PRIVATE|PRIVILEGE|PROBE|PROCEDURE|PUBLIC|RANGE|RAW|REALM|REDUCE|RENAME|RESPECT|RETURN|RETURNING|REVOKE|RIGHT|ROLE|ROLLBACK|ROW|ROWS|SATISFIES|SAVEPOINT|SCHEMA|SCOPE|SELECT|SELF|SEMI|SET|SHOW|SOME|START|STATISTICS|STRING|SYSTEM|TIES|TO|TRAN|TRANSACTION|TRIGGER|TRUNCATE|UNBOUNDED|UNDER|UNION|UNIQUE|UNKNOWN|UNNEST|UNSET|UPDATE|UPSERT|USE|USER|USING|VALIDATE|VALUE|VALUES|VIA|VIEW|WHERE|WHILE|WINDOW|WITH|WORK|XOR)\b/i,function:/\b[a-z_]\w*(?=\s*\()/i,boolean:/\b(?:FALSE|TRUE)\b/i,number:/(?:\b\d+\.|\B\.)\d+e[+\-]?\d+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/%]|!=|==?|\|\||<[>=]?|>=?|\b(?:AND|ANY|ARRAY|BETWEEN|CASE|ELSE|END|EVERY|EXISTS|FIRST|IN|LIKE|NOT|OR|THEN|VALUED|WHEN|WITHIN)\b/i,punctuation:/[;[\](),.{}:]/}}return cf}var df,tw;function Pj(){if(tw)return df;tw=1,df=e,e.displayName="n4js",e.aliases=["n4jsd"];function e(t){t.languages.n4js=t.languages.extend("javascript",{keyword:/\b(?:Array|any|boolean|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|false|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|module|new|null|number|package|private|protected|public|return|set|static|string|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\b/}),t.languages.insertBefore("n4js","constant",{annotation:{pattern:/@+\w+/,alias:"operator"}}),t.languages.n4jsd=t.languages.n4js}return df}var pf,nw;function Uj(){if(nw)return pf;nw=1,pf=e,e.displayName="nand2tetrisHdl",e.aliases=[];function e(t){t.languages["nand2tetris-hdl"]={comment:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,keyword:/\b(?:BUILTIN|CHIP|CLOCKED|IN|OUT|PARTS)\b/,boolean:/\b(?:false|true)\b/,function:/\b[A-Za-z][A-Za-z0-9]*(?=\()/,number:/\b\d+\b/,operator:/=|\.\./,punctuation:/[{}[\];(),:]/}}return pf}var ff,rw;function Bj(){if(rw)return ff;rw=1,ff=e,e.displayName="naniscript",e.aliases=[];function e(t){(function(n){var i=/\{[^\r\n\[\]{}]*\}/,o={"quoted-string":{pattern:/"(?:[^"\\]|\\.)*"/,alias:"operator"},"command-param-id":{pattern:/(\s)\w+:/,lookbehind:!0,alias:"property"},"command-param-value":[{pattern:i,alias:"selector"},{pattern:/([\t ])\S+/,lookbehind:!0,greedy:!0,alias:"operator"},{pattern:/\S(?:.*\S)?/,alias:"operator"}]};n.languages.naniscript={comment:{pattern:/^([\t ]*);.*/m,lookbehind:!0},define:{pattern:/^>.+/m,alias:"tag",inside:{value:{pattern:/(^>\w+[\t ]+)(?!\s)[^{}\r\n]+/,lookbehind:!0,alias:"operator"},key:{pattern:/(^>)\w+/,lookbehind:!0}}},label:{pattern:/^([\t ]*)#[\t ]*\w+[\t ]*$/m,lookbehind:!0,alias:"regex"},command:{pattern:/^([\t ]*)@\w+(?=[\t ]|$).*/m,lookbehind:!0,alias:"function",inside:{"command-name":/^@\w+/,expression:{pattern:i,greedy:!0,alias:"selector"},"command-params":{pattern:/\s*\S[\s\S]*/,inside:o}}},"generic-text":{pattern:/(^[ \t]*)[^#@>;\s].*/m,lookbehind:!0,alias:"punctuation",inside:{"escaped-char":/\\[{}\[\]"]/,expression:{pattern:i,greedy:!0,alias:"selector"},"inline-command":{pattern:/\[[\t ]*\w[^\r\n\[\]]*\]/,greedy:!0,alias:"function",inside:{"command-params":{pattern:/(^\[[\t ]*\w+\b)[\s\S]+(?=\]$)/,lookbehind:!0,inside:o},"command-param-name":{pattern:/^(\[[\t ]*)\w+/,lookbehind:!0,alias:"name"},"start-stop-char":/[\[\]]/}}}}},n.languages.nani=n.languages.naniscript,n.hooks.add("after-tokenize",function(c){var p=c.tokens;p.forEach(function(f){if(typeof f!="string"&&f.type==="generic-text"){var m=u(f);l(m)||(f.type="bad-line",f.content=m)}})});function l(c){for(var p="[]{}",f=[],m=0;m=&|$!]/}}return gf}var mf,iw;function zj(){if(iw)return mf;iw=1,mf=e,e.displayName="neon",e.aliases=[];function e(t){t.languages.neon={comment:{pattern:/#.*/,greedy:!0},datetime:{pattern:/(^|[[{(=:,\s])\d\d\d\d-\d\d?-\d\d?(?:(?:[Tt]| +)\d\d?:\d\d:\d\d(?:\.\d*)? *(?:Z|[-+]\d\d?(?::?\d\d)?)?)?(?=$|[\]}),\s])/,lookbehind:!0,alias:"number"},key:{pattern:/(^|[[{(,\s])[^,:=[\]{}()'"\s]+(?=\s*:(?:$|[\]}),\s])|\s*=)/,lookbehind:!0,alias:"atrule"},number:{pattern:/(^|[[{(=:,\s])[+-]?(?:0x[\da-fA-F]+|0o[0-7]+|0b[01]+|(?:\d+(?:\.\d*)?|\.?\d+)(?:[eE][+-]?\d+)?)(?=$|[\]}),:=\s])/,lookbehind:!0},boolean:{pattern:/(^|[[{(=:,\s])(?:false|no|true|yes)(?=$|[\]}),:=\s])/i,lookbehind:!0},null:{pattern:/(^|[[{(=:,\s])(?:null)(?=$|[\]}),:=\s])/i,lookbehind:!0,alias:"keyword"},string:{pattern:/(^|[[{(=:,\s])(?:('''|""")\r?\n(?:(?:[^\r\n]|\r?\n(?![\t ]*\2))*\r?\n)?[\t ]*\2|'[^'\r\n]*'|"(?:\\.|[^\\"\r\n])*")/,lookbehind:!0,greedy:!0},literal:{pattern:/(^|[[{(=:,\s])(?:[^#"',:=[\]{}()\s`-]|[:-][^"',=[\]{}()\s])(?:[^,:=\]})(\s]|:(?![\s,\]})]|$)|[ \t]+[^#,:=\]})(\s])*/,lookbehind:!0,alias:"string"},punctuation:/[,:=[\]{}()-]/}}return mf}var hf,ow;function $j(){if(ow)return hf;ow=1,hf=e,e.displayName="nevod",e.aliases=[];function e(t){t.languages.nevod={comment:/\/\/.*|(?:\/\*[\s\S]*?(?:\*\/|$))/,string:{pattern:/(?:"(?:""|[^"])*"(?!")|'(?:''|[^'])*'(?!'))!?\*?/,greedy:!0,inside:{"string-attrs":/!$|!\*$|\*$/}},namespace:{pattern:/(@namespace\s+)[a-zA-Z0-9\-.]+(?=\s*\{)/,lookbehind:!0},pattern:{pattern:/(@pattern\s+)?#?[a-zA-Z0-9\-.]+(?:\s*\(\s*(?:~\s*)?[a-zA-Z0-9\-.]+\s*(?:,\s*(?:~\s*)?[a-zA-Z0-9\-.]*)*\))?(?=\s*=)/,lookbehind:!0,inside:{"pattern-name":{pattern:/^#?[a-zA-Z0-9\-.]+/,alias:"class-name"},fields:{pattern:/\(.*\)/,inside:{"field-name":{pattern:/[a-zA-Z0-9\-.]+/,alias:"variable"},punctuation:/[,()]/,operator:{pattern:/~/,alias:"field-hidden-mark"}}}}},search:{pattern:/(@search\s+|#)[a-zA-Z0-9\-.]+(?:\.\*)?(?=\s*;)/,alias:"function",lookbehind:!0},keyword:/@(?:having|inside|namespace|outside|pattern|require|search|where)\b/,"standard-pattern":{pattern:/\b(?:Alpha|AlphaNum|Any|Blank|End|LineBreak|Num|NumAlpha|Punct|Space|Start|Symbol|Word|WordBreak)\b(?:\([a-zA-Z0-9\-.,\s+]*\))?/,inside:{"standard-pattern-name":{pattern:/^[a-zA-Z0-9\-.]+/,alias:"builtin"},quantifier:{pattern:/\b\d+(?:\s*\+|\s*-\s*\d+)?(?!\w)/,alias:"number"},"standard-pattern-attr":{pattern:/[a-zA-Z0-9\-.]+/,alias:"builtin"},punctuation:/[,()]/}},quantifier:{pattern:/\b\d+(?:\s*\+|\s*-\s*\d+)?(?!\w)/,alias:"number"},operator:[{pattern:/=/,alias:"pattern-def"},{pattern:/&/,alias:"conjunction"},{pattern:/~/,alias:"exception"},{pattern:/\?/,alias:"optionality"},{pattern:/[[\]]/,alias:"repetition"},{pattern:/[{}]/,alias:"variation"},{pattern:/[+_]/,alias:"sequence"},{pattern:/\.{2,3}/,alias:"span"}],"field-capture":[{pattern:/([a-zA-Z0-9\-.]+\s*\()\s*[a-zA-Z0-9\-.]+\s*:\s*[a-zA-Z0-9\-.]+(?:\s*,\s*[a-zA-Z0-9\-.]+\s*:\s*[a-zA-Z0-9\-.]+)*(?=\s*\))/,lookbehind:!0,inside:{"field-name":{pattern:/[a-zA-Z0-9\-.]+/,alias:"variable"},colon:/:/}},{pattern:/[a-zA-Z0-9\-.]+\s*:/,inside:{"field-name":{pattern:/[a-zA-Z0-9\-.]+/,alias:"variable"},colon:/:/}}],punctuation:/[:;,()]/,name:/[a-zA-Z0-9\-.]+/}}return hf}var bf,sw;function qj(){if(sw)return bf;sw=1,bf=e,e.displayName="nginx",e.aliases=[];function e(t){(function(n){var i=/\$(?:\w[a-z\d]*(?:_[^\x00-\x1F\s"'\\()$]*)?|\{[^}\s"'\\]+\})/i;n.languages.nginx={comment:{pattern:/(^|[\s{};])#.*/,lookbehind:!0,greedy:!0},directive:{pattern:/(^|\s)\w(?:[^;{}"'\\\s]|\\.|"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*'|\s+(?:#.*(?!.)|(?![#\s])))*?(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:{string:{pattern:/((?:^|[^\\])(?:\\\\)*)(?:"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*')/,lookbehind:!0,greedy:!0,inside:{escape:{pattern:/\\["'\\nrt]/,alias:"entity"},variable:i}},comment:{pattern:/(\s)#.*/,lookbehind:!0,greedy:!0},keyword:{pattern:/^\S+/,greedy:!0},boolean:{pattern:/(\s)(?:off|on)(?!\S)/,lookbehind:!0},number:{pattern:/(\s)\d+[a-z]*(?!\S)/i,lookbehind:!0},variable:i}},punctuation:/[{};]/}})(t)}return bf}var yf,lw;function Gj(){if(lw)return yf;lw=1,yf=e,e.displayName="nim",e.aliases=[];function e(t){t.languages.nim={comment:{pattern:/#.*/,greedy:!0},string:{pattern:/(?:\b(?!\d)(?:\w|\\x[89a-fA-F][0-9a-fA-F])+)?(?:"""[\s\S]*?"""(?!")|"(?:\\[\s\S]|""|[^"\\])*")/,greedy:!0},char:{pattern:/'(?:\\(?:\d+|x[\da-fA-F]{0,2}|.)|[^'])'/,greedy:!0},function:{pattern:/(?:(?!\d)(?:\w|\\x[89a-fA-F][0-9a-fA-F])+|`[^`\r\n]+`)\*?(?:\[[^\]]+\])?(?=\s*\()/,greedy:!0,inside:{operator:/\*$/}},identifier:{pattern:/`[^`\r\n]+`/,greedy:!0,inside:{punctuation:/`/}},number:/\b(?:0[xXoObB][\da-fA-F_]+|\d[\d_]*(?:(?!\.\.)\.[\d_]*)?(?:[eE][+-]?\d[\d_]*)?)(?:'?[iuf]\d*)?/,keyword:/\b(?:addr|as|asm|atomic|bind|block|break|case|cast|concept|const|continue|converter|defer|discard|distinct|do|elif|else|end|enum|except|export|finally|for|from|func|generic|if|import|include|interface|iterator|let|macro|method|mixin|nil|object|out|proc|ptr|raise|ref|return|static|template|try|tuple|type|using|var|when|while|with|without|yield)\b/,operator:{pattern:/(^|[({\[](?=\.\.)|(?![({\[]\.).)(?:(?:[=+\-*\/<>@$~&%|!?^:\\]|\.\.|\.(?![)}\]]))+|\b(?:and|div|in|is|isnot|mod|not|notin|of|or|shl|shr|xor)\b)/m,lookbehind:!0},punctuation:/[({\[]\.|\.[)}\]]|[`(){}\[\],:]/}}return yf}var Ef,uw;function Hj(){if(uw)return Ef;uw=1,Ef=e,e.displayName="nix",e.aliases=[];function e(t){t.languages.nix={comment:{pattern:/\/\*[\s\S]*?\*\/|#.*/,greedy:!0},string:{pattern:/"(?:[^"\\]|\\[\s\S])*"|''(?:(?!'')[\s\S]|''(?:'|\\|\$\{))*''/,greedy:!0,inside:{interpolation:{pattern:/(^|(?:^|(?!'').)[^\\])\$\{(?:[^{}]|\{[^}]*\})*\}/,lookbehind:!0,inside:null}}},url:[/\b(?:[a-z]{3,7}:\/\/)[\w\-+%~\/.:#=?&]+/,{pattern:/([^\/])(?:[\w\-+%~.:#=?&]*(?!\/\/)[\w\-+%~\/.:#=?&])?(?!\/\/)\/[\w\-+%~\/.:#=?&]*/,lookbehind:!0}],antiquotation:{pattern:/\$(?=\{)/,alias:"important"},number:/\b\d+\b/,keyword:/\b(?:assert|builtins|else|if|in|inherit|let|null|or|then|with)\b/,function:/\b(?:abort|add|all|any|attrNames|attrValues|baseNameOf|compareVersions|concatLists|currentSystem|deepSeq|derivation|dirOf|div|elem(?:At)?|fetch(?:Tarball|url)|filter(?:Source)?|fromJSON|genList|getAttr|getEnv|hasAttr|hashString|head|import|intersectAttrs|is(?:Attrs|Bool|Function|Int|List|Null|String)|length|lessThan|listToAttrs|map|mul|parseDrvName|pathExists|read(?:Dir|File)|removeAttrs|replaceStrings|seq|sort|stringLength|sub(?:string)?|tail|throw|to(?:File|JSON|Path|String|XML)|trace|typeOf)\b|\bfoldl'\B/,boolean:/\b(?:false|true)\b/,operator:/[=!<>]=?|\+\+?|\|\||&&|\/\/|->?|[?@]/,punctuation:/[{}()[\].,:;]/},t.languages.nix.string.inside.interpolation.inside=t.languages.nix}return Ef}var Sf,cw;function Wj(){if(cw)return Sf;cw=1,Sf=e,e.displayName="nsis",e.aliases=[];function e(t){t.languages.nsis={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|[#;].*)/,lookbehind:!0,greedy:!0},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},keyword:{pattern:/(^[\t ]*)(?:Abort|Add(?:BrandingImage|Size)|AdvSplash|Allow(?:RootDirInstall|SkipFiles)|AutoCloseWindow|BG(?:Font|Gradient|Image)|Banner|BrandingText|BringToFront|CRCCheck|Call(?:InstDLL)?|Caption|ChangeUI|CheckBitmap|ClearErrors|CompletedText|ComponentText|CopyFiles|Create(?:Directory|Font|ShortCut)|Delete(?:INISec|INIStr|RegKey|RegValue)?|Detail(?:Print|sButtonText)|Dialer|Dir(?:Text|Var|Verify)|EnableWindow|Enum(?:RegKey|RegValue)|Exch|Exec(?:Shell(?:Wait)?|Wait)?|ExpandEnvStrings|File(?:BufSize|Close|ErrorText|Open|Read|ReadByte|ReadUTF16LE|ReadWord|Seek|Write|WriteByte|WriteUTF16LE|WriteWord)?|Find(?:Close|First|Next|Window)|FlushINI|Get(?:CurInstType|CurrentAddress|DLLVersion(?:Local)?|DlgItem|ErrorLevel|FileTime(?:Local)?|FullPathName|Function(?:Address|End)?|InstDirError|LabelAddress|TempFileName)|Goto|HideWindow|Icon|If(?:Abort|Errors|FileExists|RebootFlag|Silent)|InitPluginsDir|InstProgressFlags|Inst(?:Type(?:GetText|SetText)?)|Install(?:ButtonText|Colors|Dir(?:RegKey)?)|Int(?:64|Ptr)?CmpU?|Int(?:64)?Fmt|Int(?:Ptr)?Op|IsWindow|Lang(?:DLL|String)|License(?:BkColor|Data|ForceSelection|LangString|Text)|LoadLanguageFile|LockWindow|Log(?:Set|Text)|Manifest(?:DPIAware|SupportedOS)|Math|MessageBox|MiscButtonText|NSISdl|Name|Nop|OutFile|PE(?:DllCharacteristics|SubsysVer)|Page(?:Callbacks)?|Pop|Push|Quit|RMDir|Read(?:EnvStr|INIStr|RegDWORD|RegStr)|Reboot|RegDLL|Rename|RequestExecutionLevel|ReserveFile|Return|SearchPath|Section(?:End|GetFlags|GetInstTypes|GetSize|GetText|Group|In|SetFlags|SetInstTypes|SetSize|SetText)?|SendMessage|Set(?:AutoClose|BrandingImage|Compress|Compressor(?:DictSize)?|CtlColors|CurInstType|DatablockOptimize|DateSave|Details(?:Print|View)|ErrorLevel|Errors|FileAttributes|Font|OutPath|Overwrite|PluginUnload|RebootFlag|RegView|ShellVarContext|Silent)|Show(?:InstDetails|UninstDetails|Window)|Silent(?:Install|UnInstall)|Sleep|SpaceTexts|Splash|StartMenu|Str(?:CmpS?|Cpy|Len)|SubCaption|System|UnRegDLL|Unicode|UninstPage|Uninstall(?:ButtonText|Caption|Icon|SubCaption|Text)|UserInfo|VI(?:AddVersionKey|FileVersion|ProductVersion)|VPatch|Var|WindowIcon|Write(?:INIStr|Reg(?:Bin|DWORD|ExpandStr|MultiStr|None|Str)|Uninstaller)|XPStyle|ns(?:Dialogs|Exec))\b/m,lookbehind:!0},property:/\b(?:ARCHIVE|FILE_(?:ATTRIBUTE_ARCHIVE|ATTRIBUTE_NORMAL|ATTRIBUTE_OFFLINE|ATTRIBUTE_READONLY|ATTRIBUTE_SYSTEM|ATTRIBUTE_TEMPORARY)|HK(?:(?:CR|CU|LM)(?:32|64)?|DD|PD|U)|HKEY_(?:CLASSES_ROOT|CURRENT_CONFIG|CURRENT_USER|DYN_DATA|LOCAL_MACHINE|PERFORMANCE_DATA|USERS)|ID(?:ABORT|CANCEL|IGNORE|NO|OK|RETRY|YES)|MB_(?:ABORTRETRYIGNORE|DEFBUTTON1|DEFBUTTON2|DEFBUTTON3|DEFBUTTON4|ICONEXCLAMATION|ICONINFORMATION|ICONQUESTION|ICONSTOP|OK|OKCANCEL|RETRYCANCEL|RIGHT|RTLREADING|SETFOREGROUND|TOPMOST|USERICON|YESNO)|NORMAL|OFFLINE|READONLY|SHCTX|SHELL_CONTEXT|SYSTEM|TEMPORARY|admin|all|auto|both|colored|false|force|hide|highest|lastused|leave|listonly|none|normal|notset|off|on|open|print|show|silent|silentlog|smooth|textonly|true|user)\b/,constant:/\$\{[!\w\.:\^-]+\}|\$\([!\w\.:\^-]+\)/,variable:/\$\w[\w\.]*/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--?|\+\+?|<=?|>=?|==?=?|&&?|\|\|?|[?*\/~^%]/,punctuation:/[{}[\];(),.:]/,important:{pattern:/(^[\t ]*)!(?:addincludedir|addplugindir|appendfile|cd|define|delfile|echo|else|endif|error|execute|finalize|getdllversion|gettlbversion|if|ifdef|ifmacrodef|ifmacrondef|ifndef|include|insertmacro|macro|macroend|makensis|packhdr|pragma|searchparse|searchreplace|system|tempfile|undef|verbose|warning)\b/im,lookbehind:!0}}}return Sf}var vf,dw;function Vj(){if(dw)return vf;dw=1;var e=Yr();vf=t,t.displayName="objectivec",t.aliases=["objc"];function t(n){n.register(e),n.languages.objectivec=n.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete n.languages.objectivec["class-name"],n.languages.objc=n.languages.objectivec}return vf}var kf,pw;function Yj(){if(pw)return kf;pw=1,kf=e,e.displayName="ocaml",e.aliases=[];function e(t){t.languages.ocaml={comment:{pattern:/\(\*[\s\S]*?\*\)/,greedy:!0},char:{pattern:/'(?:[^\\\r\n']|\\(?:.|[ox]?[0-9a-f]{1,3}))'/i,greedy:!0},string:[{pattern:/"(?:\\(?:[\s\S]|\r\n)|[^\\\r\n"])*"/,greedy:!0},{pattern:/\{([a-z_]*)\|[\s\S]*?\|\1\}/,greedy:!0}],number:[/\b(?:0b[01][01_]*|0o[0-7][0-7_]*)\b/i,/\b0x[a-f0-9][a-f0-9_]*(?:\.[a-f0-9_]*)?(?:p[+-]?\d[\d_]*)?(?!\w)/i,/\b\d[\d_]*(?:\.[\d_]*)?(?:e[+-]?\d[\d_]*)?(?!\w)/i],directive:{pattern:/\B#\w+/,alias:"property"},label:{pattern:/\B~\w+/,alias:"property"},"type-variable":{pattern:/\B'\w+/,alias:"function"},variant:{pattern:/`\w+/,alias:"symbol"},keyword:/\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|nonrec|object|of|open|private|rec|sig|struct|then|to|try|type|val|value|virtual|when|where|while|with)\b/,boolean:/\b(?:false|true)\b/,"operator-like-punctuation":{pattern:/\[[<>|]|[>|]\]|\{<|>\}/,alias:"punctuation"},operator:/\.[.~]|:[=>]|[=<>@^|&+\-*\/$%!?~][!$%&*+\-.\/:<=>?@^|~]*|\b(?:and|asr|land|lor|lsl|lsr|lxor|mod|or)\b/,punctuation:/;;|::|[(){}\[\].,:;#]|\b_\b/}}return kf}var _f,fw;function Kj(){if(fw)return _f;fw=1;var e=Yr();_f=t,t.displayName="opencl",t.aliases=[];function t(n){n.register(e),(function(i){i.languages.opencl=i.languages.extend("c",{keyword:/\b(?:(?:__)?(?:constant|global|kernel|local|private|read_only|read_write|write_only)|__attribute__|auto|(?:bool|u?(?:char|int|long|short)|half|quad)(?:2|3|4|8|16)?|break|case|complex|const|continue|(?:double|float)(?:16(?:x(?:1|2|4|8|16))?|1x(?:1|2|4|8|16)|2(?:x(?:1|2|4|8|16))?|3|4(?:x(?:1|2|4|8|16))?|8(?:x(?:1|2|4|8|16))?)?|default|do|else|enum|extern|for|goto|if|imaginary|inline|packed|pipe|register|restrict|return|signed|sizeof|static|struct|switch|typedef|uniform|union|unsigned|void|volatile|while)\b/,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[fuhl]{0,4}/i,boolean:/\b(?:false|true)\b/,"constant-opencl-kernel":{pattern:/\b(?:CHAR_(?:BIT|MAX|MIN)|CLK_(?:ADDRESS_(?:CLAMP(?:_TO_EDGE)?|NONE|REPEAT)|FILTER_(?:LINEAR|NEAREST)|(?:GLOBAL|LOCAL)_MEM_FENCE|NORMALIZED_COORDS_(?:FALSE|TRUE))|CL_(?:BGRA|(?:HALF_)?FLOAT|INTENSITY|LUMINANCE|A?R?G?B?[Ax]?|(?:(?:UN)?SIGNED|[US]NORM)_(?:INT(?:8|16|32))|UNORM_(?:INT_101010|SHORT_(?:555|565)))|(?:DBL|FLT|HALF)_(?:DIG|EPSILON|(?:MAX|MIN)(?:(?:_10)?_EXP)?|MANT_DIG)|FLT_RADIX|HUGE_VALF?|(?:INT|LONG|SCHAR|SHRT)_(?:MAX|MIN)|INFINITY|MAXFLOAT|M_(?:[12]_PI|2_SQRTPI|E|LN(?:2|10)|LOG(?:2|10)E?|PI(?:_[24])?|SQRT(?:1_2|2))(?:_F|_H)?|NAN|(?:UCHAR|UINT|ULONG|USHRT)_MAX)\b/,alias:"constant"}}),i.languages.insertBefore("opencl","class-name",{"builtin-type":{pattern:/\b(?:_cl_(?:command_queue|context|device_id|event|kernel|mem|platform_id|program|sampler)|cl_(?:image_format|mem_fence_flags)|clk_event_t|event_t|image(?:1d_(?:array_|buffer_)?t|2d_(?:array_(?:depth_|msaa_depth_|msaa_)?|depth_|msaa_depth_|msaa_)?t|3d_t)|intptr_t|ndrange_t|ptrdiff_t|queue_t|reserve_id_t|sampler_t|size_t|uintptr_t)\b/,alias:"keyword"}});var o={"type-opencl-host":{pattern:/\b(?:cl_(?:GLenum|GLint|GLuin|addressing_mode|bitfield|bool|buffer_create_type|build_status|channel_(?:order|type)|(?:u?(?:char|int|long|short)|double|float)(?:2|3|4|8|16)?|command_(?:queue(?:_info|_properties)?|type)|context(?:_info|_properties)?|device_(?:exec_capabilities|fp_config|id|info|local_mem_type|mem_cache_type|type)|(?:event|sampler)(?:_info)?|filter_mode|half|image_info|kernel(?:_info|_work_group_info)?|map_flags|mem(?:_flags|_info|_object_type)?|platform_(?:id|info)|profiling_info|program(?:_build_info|_info)?))\b/,alias:"keyword"},"boolean-opencl-host":{pattern:/\bCL_(?:FALSE|TRUE)\b/,alias:"boolean"},"constant-opencl-host":{pattern:/\bCL_(?:A|ABGR|ADDRESS_(?:CLAMP(?:_TO_EDGE)?|MIRRORED_REPEAT|NONE|REPEAT)|ARGB|BGRA|BLOCKING|BUFFER_CREATE_TYPE_REGION|BUILD_(?:ERROR|IN_PROGRESS|NONE|PROGRAM_FAILURE|SUCCESS)|COMMAND_(?:ACQUIRE_GL_OBJECTS|BARRIER|COPY_(?:BUFFER(?:_RECT|_TO_IMAGE)?|IMAGE(?:_TO_BUFFER)?)|FILL_(?:BUFFER|IMAGE)|MAP(?:_BUFFER|_IMAGE)|MARKER|MIGRATE(?:_SVM)?_MEM_OBJECTS|NATIVE_KERNEL|NDRANGE_KERNEL|READ_(?:BUFFER(?:_RECT)?|IMAGE)|RELEASE_GL_OBJECTS|SVM_(?:FREE|MAP|MEMCPY|MEMFILL|UNMAP)|TASK|UNMAP_MEM_OBJECT|USER|WRITE_(?:BUFFER(?:_RECT)?|IMAGE))|COMPILER_NOT_AVAILABLE|COMPILE_PROGRAM_FAILURE|COMPLETE|CONTEXT_(?:DEVICES|INTEROP_USER_SYNC|NUM_DEVICES|PLATFORM|PROPERTIES|REFERENCE_COUNT)|DEPTH(?:_STENCIL)?|DEVICE_(?:ADDRESS_BITS|AFFINITY_DOMAIN_(?:L[1-4]_CACHE|NEXT_PARTITIONABLE|NUMA)|AVAILABLE|BUILT_IN_KERNELS|COMPILER_AVAILABLE|DOUBLE_FP_CONFIG|ENDIAN_LITTLE|ERROR_CORRECTION_SUPPORT|EXECUTION_CAPABILITIES|EXTENSIONS|GLOBAL_(?:MEM_(?:CACHELINE_SIZE|CACHE_SIZE|CACHE_TYPE|SIZE)|VARIABLE_PREFERRED_TOTAL_SIZE)|HOST_UNIFIED_MEMORY|IL_VERSION|IMAGE(?:2D_MAX_(?:HEIGHT|WIDTH)|3D_MAX_(?:DEPTH|HEIGHT|WIDTH)|_BASE_ADDRESS_ALIGNMENT|_MAX_ARRAY_SIZE|_MAX_BUFFER_SIZE|_PITCH_ALIGNMENT|_SUPPORT)|LINKER_AVAILABLE|LOCAL_MEM_SIZE|LOCAL_MEM_TYPE|MAX_(?:CLOCK_FREQUENCY|COMPUTE_UNITS|CONSTANT_ARGS|CONSTANT_BUFFER_SIZE|GLOBAL_VARIABLE_SIZE|MEM_ALLOC_SIZE|NUM_SUB_GROUPS|ON_DEVICE_(?:EVENTS|QUEUES)|PARAMETER_SIZE|PIPE_ARGS|READ_IMAGE_ARGS|READ_WRITE_IMAGE_ARGS|SAMPLERS|WORK_GROUP_SIZE|WORK_ITEM_DIMENSIONS|WORK_ITEM_SIZES|WRITE_IMAGE_ARGS)|MEM_BASE_ADDR_ALIGN|MIN_DATA_TYPE_ALIGN_SIZE|NAME|NATIVE_VECTOR_WIDTH_(?:CHAR|DOUBLE|FLOAT|HALF|INT|LONG|SHORT)|NOT_(?:AVAILABLE|FOUND)|OPENCL_C_VERSION|PARENT_DEVICE|PARTITION_(?:AFFINITY_DOMAIN|BY_AFFINITY_DOMAIN|BY_COUNTS|BY_COUNTS_LIST_END|EQUALLY|FAILED|MAX_SUB_DEVICES|PROPERTIES|TYPE)|PIPE_MAX_(?:ACTIVE_RESERVATIONS|PACKET_SIZE)|PLATFORM|PREFERRED_(?:GLOBAL_ATOMIC_ALIGNMENT|INTEROP_USER_SYNC|LOCAL_ATOMIC_ALIGNMENT|PLATFORM_ATOMIC_ALIGNMENT|VECTOR_WIDTH_(?:CHAR|DOUBLE|FLOAT|HALF|INT|LONG|SHORT))|PRINTF_BUFFER_SIZE|PROFILE|PROFILING_TIMER_RESOLUTION|QUEUE_(?:ON_(?:DEVICE_(?:MAX_SIZE|PREFERRED_SIZE|PROPERTIES)|HOST_PROPERTIES)|PROPERTIES)|REFERENCE_COUNT|SINGLE_FP_CONFIG|SUB_GROUP_INDEPENDENT_FORWARD_PROGRESS|SVM_(?:ATOMICS|CAPABILITIES|COARSE_GRAIN_BUFFER|FINE_GRAIN_BUFFER|FINE_GRAIN_SYSTEM)|TYPE(?:_ACCELERATOR|_ALL|_CPU|_CUSTOM|_DEFAULT|_GPU)?|VENDOR(?:_ID)?|VERSION)|DRIVER_VERSION|EVENT_(?:COMMAND_(?:EXECUTION_STATUS|QUEUE|TYPE)|CONTEXT|REFERENCE_COUNT)|EXEC_(?:KERNEL|NATIVE_KERNEL|STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST)|FILTER_(?:LINEAR|NEAREST)|FLOAT|FP_(?:CORRECTLY_ROUNDED_DIVIDE_SQRT|DENORM|FMA|INF_NAN|ROUND_TO_INF|ROUND_TO_NEAREST|ROUND_TO_ZERO|SOFT_FLOAT)|GLOBAL|HALF_FLOAT|IMAGE_(?:ARRAY_SIZE|BUFFER|DEPTH|ELEMENT_SIZE|FORMAT|FORMAT_MISMATCH|FORMAT_NOT_SUPPORTED|HEIGHT|NUM_MIP_LEVELS|NUM_SAMPLES|ROW_PITCH|SLICE_PITCH|WIDTH)|INTENSITY|INVALID_(?:ARG_INDEX|ARG_SIZE|ARG_VALUE|BINARY|BUFFER_SIZE|BUILD_OPTIONS|COMMAND_QUEUE|COMPILER_OPTIONS|CONTEXT|DEVICE|DEVICE_PARTITION_COUNT|DEVICE_QUEUE|DEVICE_TYPE|EVENT|EVENT_WAIT_LIST|GLOBAL_OFFSET|GLOBAL_WORK_SIZE|GL_OBJECT|HOST_PTR|IMAGE_DESCRIPTOR|IMAGE_FORMAT_DESCRIPTOR|IMAGE_SIZE|KERNEL|KERNEL_ARGS|KERNEL_DEFINITION|KERNEL_NAME|LINKER_OPTIONS|MEM_OBJECT|MIP_LEVEL|OPERATION|PIPE_SIZE|PLATFORM|PROGRAM|PROGRAM_EXECUTABLE|PROPERTY|QUEUE_PROPERTIES|SAMPLER|VALUE|WORK_DIMENSION|WORK_GROUP_SIZE|WORK_ITEM_SIZE)|KERNEL_(?:ARG_(?:ACCESS_(?:NONE|QUALIFIER|READ_ONLY|READ_WRITE|WRITE_ONLY)|ADDRESS_(?:CONSTANT|GLOBAL|LOCAL|PRIVATE|QUALIFIER)|INFO_NOT_AVAILABLE|NAME|TYPE_(?:CONST|NAME|NONE|PIPE|QUALIFIER|RESTRICT|VOLATILE))|ATTRIBUTES|COMPILE_NUM_SUB_GROUPS|COMPILE_WORK_GROUP_SIZE|CONTEXT|EXEC_INFO_SVM_FINE_GRAIN_SYSTEM|EXEC_INFO_SVM_PTRS|FUNCTION_NAME|GLOBAL_WORK_SIZE|LOCAL_MEM_SIZE|LOCAL_SIZE_FOR_SUB_GROUP_COUNT|MAX_NUM_SUB_GROUPS|MAX_SUB_GROUP_SIZE_FOR_NDRANGE|NUM_ARGS|PREFERRED_WORK_GROUP_SIZE_MULTIPLE|PRIVATE_MEM_SIZE|PROGRAM|REFERENCE_COUNT|SUB_GROUP_COUNT_FOR_NDRANGE|WORK_GROUP_SIZE)|LINKER_NOT_AVAILABLE|LINK_PROGRAM_FAILURE|LOCAL|LUMINANCE|MAP_(?:FAILURE|READ|WRITE|WRITE_INVALIDATE_REGION)|MEM_(?:ALLOC_HOST_PTR|ASSOCIATED_MEMOBJECT|CONTEXT|COPY_HOST_PTR|COPY_OVERLAP|FLAGS|HOST_NO_ACCESS|HOST_PTR|HOST_READ_ONLY|HOST_WRITE_ONLY|KERNEL_READ_AND_WRITE|MAP_COUNT|OBJECT_(?:ALLOCATION_FAILURE|BUFFER|IMAGE1D|IMAGE1D_ARRAY|IMAGE1D_BUFFER|IMAGE2D|IMAGE2D_ARRAY|IMAGE3D|PIPE)|OFFSET|READ_ONLY|READ_WRITE|REFERENCE_COUNT|SIZE|SVM_ATOMICS|SVM_FINE_GRAIN_BUFFER|TYPE|USES_SVM_POINTER|USE_HOST_PTR|WRITE_ONLY)|MIGRATE_MEM_OBJECT_(?:CONTENT_UNDEFINED|HOST)|MISALIGNED_SUB_BUFFER_OFFSET|NONE|NON_BLOCKING|OUT_OF_(?:HOST_MEMORY|RESOURCES)|PIPE_(?:MAX_PACKETS|PACKET_SIZE)|PLATFORM_(?:EXTENSIONS|HOST_TIMER_RESOLUTION|NAME|PROFILE|VENDOR|VERSION)|PROFILING_(?:COMMAND_(?:COMPLETE|END|QUEUED|START|SUBMIT)|INFO_NOT_AVAILABLE)|PROGRAM_(?:BINARIES|BINARY_SIZES|BINARY_TYPE(?:_COMPILED_OBJECT|_EXECUTABLE|_LIBRARY|_NONE)?|BUILD_(?:GLOBAL_VARIABLE_TOTAL_SIZE|LOG|OPTIONS|STATUS)|CONTEXT|DEVICES|IL|KERNEL_NAMES|NUM_DEVICES|NUM_KERNELS|REFERENCE_COUNT|SOURCE)|QUEUED|QUEUE_(?:CONTEXT|DEVICE|DEVICE_DEFAULT|ON_DEVICE|ON_DEVICE_DEFAULT|OUT_OF_ORDER_EXEC_MODE_ENABLE|PROFILING_ENABLE|PROPERTIES|REFERENCE_COUNT|SIZE)|R|RA|READ_(?:ONLY|WRITE)_CACHE|RG|RGB|RGBA|RGBx|RGx|RUNNING|Rx|SAMPLER_(?:ADDRESSING_MODE|CONTEXT|FILTER_MODE|LOD_MAX|LOD_MIN|MIP_FILTER_MODE|NORMALIZED_COORDS|REFERENCE_COUNT)|(?:UN)?SIGNED_INT(?:8|16|32)|SNORM_INT(?:8|16)|SUBMITTED|SUCCESS|UNORM_INT(?:8|16|24|_101010|_101010_2)|UNORM_SHORT_(?:555|565)|VERSION_(?:1_0|1_1|1_2|2_0|2_1)|sBGRA|sRGB|sRGBA|sRGBx)\b/,alias:"constant"},"function-opencl-host":{pattern:/\bcl(?:BuildProgram|CloneKernel|CompileProgram|Create(?:Buffer|CommandQueue(?:WithProperties)?|Context|ContextFromType|Image|Image2D|Image3D|Kernel|KernelsInProgram|Pipe|ProgramWith(?:Binary|BuiltInKernels|IL|Source)|Sampler|SamplerWithProperties|SubBuffer|SubDevices|UserEvent)|Enqueue(?:(?:Barrier|Marker)(?:WithWaitList)?|Copy(?:Buffer(?:Rect|ToImage)?|Image(?:ToBuffer)?)|(?:Fill|Map)(?:Buffer|Image)|MigrateMemObjects|NDRangeKernel|NativeKernel|(?:Read|Write)(?:Buffer(?:Rect)?|Image)|SVM(?:Free|Map|MemFill|Memcpy|MigrateMem|Unmap)|Task|UnmapMemObject|WaitForEvents)|Finish|Flush|Get(?:CommandQueueInfo|ContextInfo|Device(?:AndHostTimer|IDs|Info)|Event(?:Profiling)?Info|ExtensionFunctionAddress(?:ForPlatform)?|HostTimer|ImageInfo|Kernel(?:ArgInfo|Info|SubGroupInfo|WorkGroupInfo)|MemObjectInfo|PipeInfo|Platform(?:IDs|Info)|Program(?:Build)?Info|SamplerInfo|SupportedImageFormats)|LinkProgram|(?:Release|Retain)(?:CommandQueue|Context|Device|Event|Kernel|MemObject|Program|Sampler)|SVM(?:Alloc|Free)|Set(?:CommandQueueProperty|DefaultDeviceCommandQueue|EventCallback|Kernel|Kernel(?:Arg(?:SVMPointer)?|ExecInfo)|MemObjectDestructorCallback|UserEventStatus)|Unload(?:Platform)?Compiler|WaitForEvents)\b/,alias:"function"}};i.languages.insertBefore("c","keyword",o),i.languages.cpp&&(o["type-opencl-host-cpp"]={pattern:/\b(?:Buffer|BufferGL|BufferRenderGL|CommandQueue|Context|Device|DeviceCommandQueue|EnqueueArgs|Event|Image|Image1D|Image1DArray|Image1DBuffer|Image2D|Image2DArray|Image2DGL|Image3D|Image3DGL|ImageFormat|ImageGL|Kernel|KernelFunctor|LocalSpaceArg|Memory|NDRange|Pipe|Platform|Program|SVMAllocator|SVMTraitAtomic|SVMTraitCoarse|SVMTraitFine|SVMTraitReadOnly|SVMTraitReadWrite|SVMTraitWriteOnly|Sampler|UserEvent)\b/,alias:"keyword"},i.languages.insertBefore("cpp","keyword",o))})(n)}return _f}var wf,gw;function Zj(){if(gw)return wf;gw=1,wf=e,e.displayName="openqasm",e.aliases=["qasm"];function e(t){t.languages.openqasm={comment:/\/\*[\s\S]*?\*\/|\/\/.*/,string:{pattern:/"[^"\r\n\t]*"|'[^'\r\n\t]*'/,greedy:!0},keyword:/\b(?:CX|OPENQASM|U|barrier|boxas|boxto|break|const|continue|ctrl|def|defcal|defcalgrammar|delay|else|end|for|gate|gphase|if|in|include|inv|kernel|lengthof|let|measure|pow|reset|return|rotary|stretchinf|while)\b|#pragma\b/,"class-name":/\b(?:angle|bit|bool|creg|fixed|float|int|length|qreg|qubit|stretch|uint)\b/,function:/\b(?:cos|exp|ln|popcount|rotl|rotr|sin|sqrt|tan)\b(?=\s*\()/,constant:/\b(?:euler|pi|tau)\b|π|𝜏|ℇ/,number:{pattern:/(^|[^.\w$])(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?(?:dt|ns|us|µs|ms|s)?/i,lookbehind:!0},operator:/->|>>=?|<<=?|&&|\|\||\+\+|--|[!=<>&|~^+\-*/%]=?|@/,punctuation:/[(){}\[\];,:.]/},t.languages.qasm=t.languages.openqasm}return wf}var Tf,mw;function Xj(){if(mw)return Tf;mw=1,Tf=e,e.displayName="oz",e.aliases=[];function e(t){t.languages.oz={comment:{pattern:/\/\*[\s\S]*?\*\/|%.*/,greedy:!0},string:{pattern:/"(?:[^"\\]|\\[\s\S])*"/,greedy:!0},atom:{pattern:/'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,alias:"builtin"},keyword:/\$|\[\]|\b(?:_|at|attr|case|catch|choice|class|cond|declare|define|dis|else(?:case|if)?|end|export|fail|false|feat|finally|from|fun|functor|if|import|in|local|lock|meth|nil|not|of|or|prepare|proc|prop|raise|require|self|skip|then|thread|true|try|unit)\b/,function:[/\b[a-z][A-Za-z\d]*(?=\()/,{pattern:/(\{)[A-Z][A-Za-z\d]*\b/,lookbehind:!0}],number:/\b(?:0[bx][\da-f]+|\d+(?:\.\d*)?(?:e~?\d+)?)\b|&(?:[^\\]|\\(?:\d{3}|.))/i,variable:/`(?:[^`\\]|\\.)+`/,"attr-name":/\b\w+(?=[ \t]*:(?![:=]))/,operator:/:(?:=|::?)|<[-:=]?|=(?:=|=?:?|\\=:?|!!?|[|#+\-*\/,~^@]|\b(?:andthen|div|mod|orelse)\b/,punctuation:/[\[\](){}.:;?]/}}return Tf}var xf,hw;function Qj(){if(hw)return xf;hw=1,xf=e,e.displayName="parigp",e.aliases=[];function e(t){t.languages.parigp={comment:/\/\*[\s\S]*?\*\/|\\\\.*/,string:{pattern:/"(?:[^"\\\r\n]|\\.)*"/,greedy:!0},keyword:(function(){var n=["breakpoint","break","dbg_down","dbg_err","dbg_up","dbg_x","forcomposite","fordiv","forell","forpart","forprime","forstep","forsubgroup","forvec","for","iferr","if","local","my","next","return","until","while"];return n=n.map(function(i){return i.split("").join(" *")}).join("|"),RegExp("\\b(?:"+n+")\\b")})(),function:/\b\w(?:[\w ]*\w)?(?= *\()/,number:{pattern:/((?:\. *\. *)?)(?:\b\d(?: *\d)*(?: *(?!\. *\.)\.(?: *\d)*)?|\. *\d(?: *\d)*)(?: *e *(?:[+-] *)?\d(?: *\d)*)?/i,lookbehind:!0},operator:/\. *\.|[*\/!](?: *=)?|%(?: *=|(?: *#)?(?: *')*)?|\+(?: *[+=])?|-(?: *[-=>])?|<(?: *>|(?: *<)?(?: *=)?)?|>(?: *>)?(?: *=)?|=(?: *=){0,2}|\\(?: *\/)?(?: *=)?|&(?: *&)?|\| *\||['#~^]/,punctuation:/[\[\]{}().,:;|]/}}return xf}var Af,bw;function Jj(){if(bw)return Af;bw=1,Af=e,e.displayName="parser",e.aliases=[];function e(t){(function(n){var i=n.languages.parser=n.languages.extend("markup",{keyword:{pattern:/(^|[^^])(?:\^(?:case|eval|for|if|switch|throw)\b|@(?:BASE|CLASS|GET(?:_DEFAULT)?|OPTIONS|SET_DEFAULT|USE)\b)/,lookbehind:!0},variable:{pattern:/(^|[^^])\B\$(?:\w+|(?=[.{]))(?:(?:\.|::?)\w+)*(?:\.|::?)?/,lookbehind:!0,inside:{punctuation:/\.|:+/}},function:{pattern:/(^|[^^])\B[@^]\w+(?:(?:\.|::?)\w+)*(?:\.|::?)?/,lookbehind:!0,inside:{keyword:{pattern:/(^@)(?:GET_|SET_)/,lookbehind:!0},punctuation:/\.|:+/}},escape:{pattern:/\^(?:[$^;@()\[\]{}"':]|#[a-f\d]*)/i,alias:"builtin"},punctuation:/[\[\](){};]/});i=n.languages.insertBefore("parser","keyword",{"parser-comment":{pattern:/(\s)#.*/,lookbehind:!0,alias:"comment"},expression:{pattern:/(^|[^^])\((?:[^()]|\((?:[^()]|\((?:[^()])*\))*\))*\)/,greedy:!0,lookbehind:!0,inside:{string:{pattern:/(^|[^^])(["'])(?:(?!\2)[^^]|\^[\s\S])*\2/,lookbehind:!0},keyword:i.keyword,variable:i.variable,function:i.function,boolean:/\b(?:false|true)\b/,number:/\b(?:0x[a-f\d]+|\d+(?:\.\d*)?(?:e[+-]?\d+)?)\b/i,escape:i.escape,operator:/[~+*\/\\%]|!(?:\|\|?|=)?|&&?|\|\|?|==|<[<=]?|>[>=]?|-[fd]?|\b(?:def|eq|ge|gt|in|is|le|lt|ne)\b/,punctuation:i.punctuation}}}),n.languages.insertBefore("inside","punctuation",{expression:i.expression,keyword:i.keyword,variable:i.variable,function:i.function,escape:i.escape,"parser-punctuation":{pattern:i.punctuation,alias:"punctuation"}},i.tag.inside["attr-value"])})(t)}return Af}var Rf,yw;function ez(){if(yw)return Rf;yw=1,Rf=e,e.displayName="pascal",e.aliases=["objectpascal"];function e(t){t.languages.pascal={directive:{pattern:/\{\$[\s\S]*?\}/,greedy:!0,alias:["marco","property"]},comment:{pattern:/\(\*[\s\S]*?\*\)|\{[\s\S]*?\}|\/\/.*/,greedy:!0},string:{pattern:/(?:'(?:''|[^'\r\n])*'(?!')|#[&$%]?[a-f\d]+)+|\^[a-z]/i,greedy:!0},asm:{pattern:/(\basm\b)[\s\S]+?(?=\bend\s*[;[])/i,lookbehind:!0,greedy:!0,inside:null},keyword:[{pattern:/(^|[^&])\b(?:absolute|array|asm|begin|case|const|constructor|destructor|do|downto|else|end|file|for|function|goto|if|implementation|inherited|inline|interface|label|nil|object|of|operator|packed|procedure|program|record|reintroduce|repeat|self|set|string|then|to|type|unit|until|uses|var|while|with)\b/i,lookbehind:!0},{pattern:/(^|[^&])\b(?:dispose|exit|false|new|true)\b/i,lookbehind:!0},{pattern:/(^|[^&])\b(?:class|dispinterface|except|exports|finalization|finally|initialization|inline|library|on|out|packed|property|raise|resourcestring|threadvar|try)\b/i,lookbehind:!0},{pattern:/(^|[^&])\b(?:absolute|abstract|alias|assembler|bitpacked|break|cdecl|continue|cppdecl|cvar|default|deprecated|dynamic|enumerator|experimental|export|external|far|far16|forward|generic|helper|implements|index|interrupt|iochecks|local|message|name|near|nodefault|noreturn|nostackframe|oldfpccall|otherwise|overload|override|pascal|platform|private|protected|public|published|read|register|reintroduce|result|safecall|saveregisters|softfloat|specialize|static|stdcall|stored|strict|unaligned|unimplemented|varargs|virtual|write)\b/i,lookbehind:!0}],number:[/(?:[&%]\d+|\$[a-f\d]+)/i,/\b\d+(?:\.\d+)?(?:e[+-]?\d+)?/i],operator:[/\.\.|\*\*|:=|<[<=>]?|>[>=]?|[+\-*\/]=?|[@^=]/,{pattern:/(^|[^&])\b(?:and|as|div|exclude|in|include|is|mod|not|or|shl|shr|xor)\b/,lookbehind:!0}],punctuation:/\(\.|\.\)|[()\[\]:;,.]/},t.languages.pascal.asm.inside=t.languages.extend("pascal",{asm:void 0,keyword:void 0,operator:void 0}),t.languages.objectpascal=t.languages.pascal}return Rf}var Nf,Ew;function tz(){if(Ew)return Nf;Ew=1,Nf=e,e.displayName="pascaligo",e.aliases=[];function e(t){(function(n){var i=/\((?:[^()]|\((?:[^()]|\([^()]*\))*\))*\)/.source,o=/(?:\b\w+(?:)?|)/.source.replace(//g,function(){return i}),l=n.languages.pascaligo={comment:/\(\*[\s\S]+?\*\)|\/\/.*/,string:{pattern:/(["'`])(?:\\[\s\S]|(?!\1)[^\\])*\1|\^[a-z]/i,greedy:!0},"class-name":[{pattern:RegExp(/(\btype\s+\w+\s+is\s+)/.source.replace(//g,function(){return o}),"i"),lookbehind:!0,inside:null},{pattern:RegExp(/(?=\s+is\b)/.source.replace(//g,function(){return o}),"i"),inside:null},{pattern:RegExp(/(:\s*)/.source.replace(//g,function(){return o})),lookbehind:!0,inside:null}],keyword:{pattern:/(^|[^&])\b(?:begin|block|case|const|else|end|fail|for|from|function|if|is|nil|of|remove|return|skip|then|type|var|while|with)\b/i,lookbehind:!0},boolean:{pattern:/(^|[^&])\b(?:False|True)\b/i,lookbehind:!0},builtin:{pattern:/(^|[^&])\b(?:bool|int|list|map|nat|record|string|unit)\b/i,lookbehind:!0},function:/\b\w+(?=\s*\()/,number:[/%[01]+|&[0-7]+|\$[a-f\d]+/i,/\b\d+(?:\.\d+)?(?:e[+-]?\d+)?(?:mtz|n)?/i],operator:/->|=\/=|\.\.|\*\*|:=|<[<=>]?|>[>=]?|[+\-*\/]=?|[@^=|]|\b(?:and|mod|or)\b/,punctuation:/\(\.|\.\)|[()\[\]:;,.{}]/},u=["comment","keyword","builtin","operator","punctuation"].reduce(function(c,p){return c[p]=l[p],c},{});l["class-name"].forEach(function(c){c.inside=u})})(t)}return Nf}var Cf,Sw;function nz(){if(Sw)return Cf;Sw=1,Cf=e,e.displayName="pcaxis",e.aliases=["px"];function e(t){t.languages.pcaxis={string:/"[^"]*"/,keyword:{pattern:/((?:^|;)\s*)[-A-Z\d]+(?:\s*\[[-\w]+\])?(?:\s*\("[^"]*"(?:,\s*"[^"]*")*\))?(?=\s*=)/,lookbehind:!0,greedy:!0,inside:{keyword:/^[-A-Z\d]+/,language:{pattern:/^(\s*)\[[-\w]+\]/,lookbehind:!0,inside:{punctuation:/^\[|\]$/,property:/[-\w]+/}},"sub-key":{pattern:/^(\s*)\S[\s\S]*/,lookbehind:!0,inside:{parameter:{pattern:/"[^"]*"/,alias:"property"},punctuation:/^\(|\)$|,/}}}},operator:/=/,tlist:{pattern:/TLIST\s*\(\s*\w+(?:(?:\s*,\s*"[^"]*")+|\s*,\s*"[^"]*"-"[^"]*")?\s*\)/,greedy:!0,inside:{function:/^TLIST/,property:{pattern:/^(\s*\(\s*)\w+/,lookbehind:!0},string:/"[^"]*"/,punctuation:/[(),]/,operator:/-/}},punctuation:/[;,]/,number:{pattern:/(^|\s)\d+(?:\.\d+)?(?!\S)/,lookbehind:!0},boolean:/NO|YES/},t.languages.px=t.languages.pcaxis}return Cf}var If,vw;function rz(){if(vw)return If;vw=1,If=e,e.displayName="peoplecode",e.aliases=["pcode"];function e(t){t.languages.peoplecode={comment:RegExp([/\/\*[\s\S]*?\*\//.source,/\bREM[^;]*;/.source,/<\*(?:[^<*]|\*(?!>)|<(?!\*)|<\*(?:(?!\*>)[\s\S])*\*>)*\*>/.source,/\/\+[\s\S]*?\+\//.source].join("|")),string:{pattern:/'(?:''|[^'\r\n])*'(?!')|"(?:""|[^"\r\n])*"(?!")/,greedy:!0},variable:/%\w+/,"function-definition":{pattern:/((?:^|[^\w-])(?:function|method)\s+)\w+/i,lookbehind:!0,alias:"function"},"class-name":{pattern:/((?:^|[^-\w])(?:as|catch|class|component|create|extends|global|implements|instance|local|of|property|returns)\s+)\w+(?::\w+)*/i,lookbehind:!0,inside:{punctuation:/:/}},keyword:/\b(?:abstract|alias|as|catch|class|component|constant|create|declare|else|end-(?:class|evaluate|for|function|get|if|method|set|try|while)|evaluate|extends|for|function|get|global|if|implements|import|instance|library|local|method|null|of|out|peopleCode|private|program|property|protected|readonly|ref|repeat|returns?|set|step|then|throw|to|try|until|value|when(?:-other)?|while)\b/i,"operator-keyword":{pattern:/\b(?:and|not|or)\b/i,alias:"operator"},function:/[_a-z]\w*(?=\s*\()/i,boolean:/\b(?:false|true)\b/i,number:/\b\d+(?:\.\d+)?\b/,operator:/<>|[<>]=?|!=|\*\*|[-+*/|=@]/,punctuation:/[:.;,()[\]]/},t.languages.pcode=t.languages.peoplecode}return If}var Of,kw;function az(){if(kw)return Of;kw=1,Of=e,e.displayName="perl",e.aliases=[];function e(t){(function(n){var i=/(?:\((?:[^()\\]|\\[\s\S])*\)|\{(?:[^{}\\]|\\[\s\S])*\}|\[(?:[^[\]\\]|\\[\s\S])*\]|<(?:[^<>\\]|\\[\s\S])*>)/.source;n.languages.perl={comment:[{pattern:/(^\s*)=\w[\s\S]*?=cut.*/m,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\$])#.*/,lookbehind:!0,greedy:!0}],string:[{pattern:RegExp(/\b(?:q|qq|qw|qx)(?![a-zA-Z0-9])\s*/.source+"(?:"+[/([^a-zA-Z0-9\s{(\[<])(?:(?!\1)[^\\]|\\[\s\S])*\1/.source,/([a-zA-Z0-9])(?:(?!\2)[^\\]|\\[\s\S])*\2/.source,i].join("|")+")"),greedy:!0},{pattern:/("|`)(?:(?!\1)[^\\]|\\[\s\S])*\1/,greedy:!0},{pattern:/'(?:[^'\\\r\n]|\\.)*'/,greedy:!0}],regex:[{pattern:RegExp(/\b(?:m|qr)(?![a-zA-Z0-9])\s*/.source+"(?:"+[/([^a-zA-Z0-9\s{(\[<])(?:(?!\1)[^\\]|\\[\s\S])*\1/.source,/([a-zA-Z0-9])(?:(?!\2)[^\\]|\\[\s\S])*\2/.source,i].join("|")+")"+/[msixpodualngc]*/.source),greedy:!0},{pattern:RegExp(/(^|[^-])\b(?:s|tr|y)(?![a-zA-Z0-9])\s*/.source+"(?:"+[/([^a-zA-Z0-9\s{(\[<])(?:(?!\2)[^\\]|\\[\s\S])*\2(?:(?!\2)[^\\]|\\[\s\S])*\2/.source,/([a-zA-Z0-9])(?:(?!\3)[^\\]|\\[\s\S])*\3(?:(?!\3)[^\\]|\\[\s\S])*\3/.source,i+/\s*/.source+i].join("|")+")"+/[msixpodualngcer]*/.source),lookbehind:!0,greedy:!0},{pattern:/\/(?:[^\/\\\r\n]|\\.)*\/[msixpodualngc]*(?=\s*(?:$|[\r\n,.;})&|\-+*~<>!?^]|(?:and|cmp|eq|ge|gt|le|lt|ne|not|or|x|xor)\b))/,greedy:!0}],variable:[/[&*$@%]\{\^[A-Z]+\}/,/[&*$@%]\^[A-Z_]/,/[&*$@%]#?(?=\{)/,/[&*$@%]#?(?:(?:::)*'?(?!\d)[\w$]+(?![\w$]))+(?:::)*/,/[&*$@%]\d+/,/(?!%=)[$@%][!"#$%&'()*+,\-.\/:;<=>?@[\\\]^_`{|}~]/],filehandle:{pattern:/<(?![<=])\S*?>|\b_\b/,alias:"symbol"},"v-string":{pattern:/v\d+(?:\.\d+)*|\d+(?:\.\d+){2,}/,alias:"string"},function:{pattern:/(\bsub[ \t]+)\w+/,lookbehind:!0},keyword:/\b(?:any|break|continue|default|delete|die|do|else|elsif|eval|for|foreach|given|goto|if|last|local|my|next|our|package|print|redo|require|return|say|state|sub|switch|undef|unless|until|use|when|while)\b/,number:/\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0b[01](?:_?[01])*|(?:(?:\d(?:_?\d)*)?\.)?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)\b/,operator:/-[rwxoRWXOezsfdlpSbctugkTBMAC]\b|\+[+=]?|-[-=>]?|\*\*?=?|\/\/?=?|=[=~>]?|~[~=]?|\|\|?=?|&&?=?|<(?:=>?|<=?)?|>>?=?|![~=]?|[%^]=?|\.(?:=|\.\.?)?|[\\?]|\bx(?:=|\b)|\b(?:and|cmp|eq|ge|gt|le|lt|ne|not|or|xor)\b/,punctuation:/[{}[\];(),:]/}})(t)}return Of}var Lf,_w;function iz(){if(_w)return Lf;_w=1;var e=Ts();Lf=t,t.displayName="phpExtras",t.aliases=[];function t(n){n.register(e),n.languages.insertBefore("php","variable",{this:{pattern:/\$this\b/,alias:"keyword"},global:/\$(?:GLOBALS|HTTP_RAW_POST_DATA|_(?:COOKIE|ENV|FILES|GET|POST|REQUEST|SERVER|SESSION)|argc|argv|http_response_header|php_errormsg)\b/,scope:{pattern:/\b[\w\\]+::/,inside:{keyword:/\b(?:parent|self|static)\b/,punctuation:/::|\\/}}})}return Lf}var Df,ww;function oz(){if(ww)return Df;ww=1;var e=Ts(),t=ws();Df=n,n.displayName="phpdoc",n.aliases=[];function n(i){i.register(e),i.register(t),(function(o){var l=/(?:\b[a-zA-Z]\w*|[|\\[\]])+/.source;o.languages.phpdoc=o.languages.extend("javadoclike",{parameter:{pattern:RegExp("(@(?:global|param|property(?:-read|-write)?|var)\\s+(?:"+l+"\\s+)?)\\$\\w+"),lookbehind:!0}}),o.languages.insertBefore("phpdoc","keyword",{"class-name":[{pattern:RegExp("(@(?:global|package|param|property(?:-read|-write)?|return|subpackage|throws|var)\\s+)"+l),lookbehind:!0,inside:{keyword:/\b(?:array|bool|boolean|callback|double|false|float|int|integer|mixed|null|object|resource|self|string|true|void)\b/,punctuation:/[|\\[\]()]/}}]}),o.languages.javadoclike.addSupport("php",o.languages.phpdoc)})(i)}return Df}var Mf,Tw;function sz(){if(Tw)return Mf;Tw=1;var e=ph();Mf=t,t.displayName="plsql",t.aliases=[];function t(n){n.register(e),n.languages.plsql=n.languages.extend("sql",{comment:{pattern:/\/\*[\s\S]*?\*\/|--.*/,greedy:!0},keyword:/\b(?:A|ACCESSIBLE|ADD|AGENT|AGGREGATE|ALL|ALTER|AND|ANY|ARRAY|AS|ASC|AT|ATTRIBUTE|AUTHID|AVG|BEGIN|BETWEEN|BFILE_BASE|BINARY|BLOB_BASE|BLOCK|BODY|BOTH|BOUND|BULK|BY|BYTE|C|CALL|CALLING|CASCADE|CASE|CHAR|CHARACTER|CHARSET|CHARSETFORM|CHARSETID|CHAR_BASE|CHECK|CLOB_BASE|CLONE|CLOSE|CLUSTER|CLUSTERS|COLAUTH|COLLECT|COLUMNS|COMMENT|COMMIT|COMMITTED|COMPILED|COMPRESS|CONNECT|CONSTANT|CONSTRUCTOR|CONTEXT|CONTINUE|CONVERT|COUNT|CRASH|CREATE|CREDENTIAL|CURRENT|CURSOR|CUSTOMDATUM|DANGLING|DATA|DATE|DATE_BASE|DAY|DECLARE|DEFAULT|DEFINE|DELETE|DESC|DETERMINISTIC|DIRECTORY|DISTINCT|DOUBLE|DROP|DURATION|ELEMENT|ELSE|ELSIF|EMPTY|END|ESCAPE|EXCEPT|EXCEPTION|EXCEPTIONS|EXCLUSIVE|EXECUTE|EXISTS|EXIT|EXTERNAL|FETCH|FINAL|FIRST|FIXED|FLOAT|FOR|FORALL|FORCE|FROM|FUNCTION|GENERAL|GOTO|GRANT|GROUP|HASH|HAVING|HEAP|HIDDEN|HOUR|IDENTIFIED|IF|IMMEDIATE|IMMUTABLE|IN|INCLUDING|INDEX|INDEXES|INDICATOR|INDICES|INFINITE|INSERT|INSTANTIABLE|INT|INTERFACE|INTERSECT|INTERVAL|INTO|INVALIDATE|IS|ISOLATION|JAVA|LANGUAGE|LARGE|LEADING|LENGTH|LEVEL|LIBRARY|LIKE|LIKE2|LIKE4|LIKEC|LIMIT|LIMITED|LOCAL|LOCK|LONG|LOOP|MAP|MAX|MAXLEN|MEMBER|MERGE|MIN|MINUS|MINUTE|MOD|MODE|MODIFY|MONTH|MULTISET|MUTABLE|NAME|NAN|NATIONAL|NATIVE|NCHAR|NEW|NOCOMPRESS|NOCOPY|NOT|NOWAIT|NULL|NUMBER_BASE|OBJECT|OCICOLL|OCIDATE|OCIDATETIME|OCIDURATION|OCIINTERVAL|OCILOBLOCATOR|OCINUMBER|OCIRAW|OCIREF|OCIREFCURSOR|OCIROWID|OCISTRING|OCITYPE|OF|OLD|ON|ONLY|OPAQUE|OPEN|OPERATOR|OPTION|OR|ORACLE|ORADATA|ORDER|ORGANIZATION|ORLANY|ORLVARY|OTHERS|OUT|OVERLAPS|OVERRIDING|PACKAGE|PARALLEL_ENABLE|PARAMETER|PARAMETERS|PARENT|PARTITION|PASCAL|PERSISTABLE|PIPE|PIPELINED|PLUGGABLE|POLYMORPHIC|PRAGMA|PRECISION|PRIOR|PRIVATE|PROCEDURE|PUBLIC|RAISE|RANGE|RAW|READ|RECORD|REF|REFERENCE|RELIES_ON|REM|REMAINDER|RENAME|RESOURCE|RESULT|RESULT_CACHE|RETURN|RETURNING|REVERSE|REVOKE|ROLLBACK|ROW|SAMPLE|SAVE|SAVEPOINT|SB1|SB2|SB4|SECOND|SEGMENT|SELECT|SELF|SEPARATE|SEQUENCE|SERIALIZABLE|SET|SHARE|SHORT|SIZE|SIZE_T|SOME|SPARSE|SQL|SQLCODE|SQLDATA|SQLNAME|SQLSTATE|STANDARD|START|STATIC|STDDEV|STORED|STRING|STRUCT|STYLE|SUBMULTISET|SUBPARTITION|SUBSTITUTABLE|SUBTYPE|SUM|SYNONYM|TABAUTH|TABLE|TDO|THE|THEN|TIME|TIMESTAMP|TIMEZONE_ABBR|TIMEZONE_HOUR|TIMEZONE_MINUTE|TIMEZONE_REGION|TO|TRAILING|TRANSACTION|TRANSACTIONAL|TRUSTED|TYPE|UB1|UB2|UB4|UNDER|UNION|UNIQUE|UNPLUG|UNSIGNED|UNTRUSTED|UPDATE|USE|USING|VALIST|VALUE|VALUES|VARIABLE|VARIANCE|VARRAY|VARYING|VIEW|VIEWS|VOID|WHEN|WHERE|WHILE|WITH|WORK|WRAPPED|WRITE|YEAR|ZONE)\b/i,operator:/:=?|=>|[<>^~!]=|\.\.|\|\||\*\*|[-+*/%<>=@]/}),n.languages.insertBefore("plsql","operator",{label:{pattern:/<<\s*\w+\s*>>/,alias:"symbol"}})}return Mf}var Ff,xw;function lz(){if(xw)return Ff;xw=1,Ff=e,e.displayName="powerquery",e.aliases=[];function e(t){t.languages.powerquery={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0,greedy:!0},"quoted-identifier":{pattern:/#"(?:[^"\r\n]|"")*"(?!")/,greedy:!0},string:{pattern:/(?:#!)?"(?:[^"\r\n]|"")*"(?!")/,greedy:!0},constant:[/\bDay\.(?:Friday|Monday|Saturday|Sunday|Thursday|Tuesday|Wednesday)\b/,/\bTraceLevel\.(?:Critical|Error|Information|Verbose|Warning)\b/,/\bOccurrence\.(?:All|First|Last)\b/,/\bOrder\.(?:Ascending|Descending)\b/,/\bRoundingMode\.(?:AwayFromZero|Down|ToEven|TowardZero|Up)\b/,/\bMissingField\.(?:Error|Ignore|UseNull)\b/,/\bQuoteStyle\.(?:Csv|None)\b/,/\bJoinKind\.(?:FullOuter|Inner|LeftAnti|LeftOuter|RightAnti|RightOuter)\b/,/\bGroupKind\.(?:Global|Local)\b/,/\bExtraValues\.(?:Error|Ignore|List)\b/,/\bJoinAlgorithm\.(?:Dynamic|LeftHash|LeftIndex|PairwiseHash|RightHash|RightIndex|SortMerge)\b/,/\bJoinSide\.(?:Left|Right)\b/,/\bPrecision\.(?:Decimal|Double)\b/,/\bRelativePosition\.From(?:End|Start)\b/,/\bTextEncoding\.(?:Ascii|BigEndianUnicode|Unicode|Utf16|Utf8|Windows)\b/,/\b(?:Any|Binary|Date|DateTime|DateTimeZone|Duration|Function|Int16|Int32|Int64|Int8|List|Logical|None|Number|Record|Table|Text|Time)\.Type\b/,/\bnull\b/],boolean:/\b(?:false|true)\b/,keyword:/\b(?:and|as|each|else|error|if|in|is|let|meta|not|nullable|optional|or|otherwise|section|shared|then|try|type)\b|#(?:binary|date|datetime|datetimezone|duration|infinity|nan|sections|shared|table|time)\b/,function:{pattern:/(^|[^#\w.])[a-z_][\w.]*(?=\s*\()/i,lookbehind:!0},"data-type":{pattern:/\b(?:any|anynonnull|binary|date|datetime|datetimezone|duration|function|list|logical|none|number|record|table|text|time)\b/,alias:"class-name"},number:{pattern:/\b0x[\da-f]+\b|(?:[+-]?(?:\b\d+\.)?\b\d+|[+-]\.\d+|(^|[^.])\B\.\d+)(?:e[+-]?\d+)?\b/i,lookbehind:!0},operator:/[-+*\/&?@^]|<(?:=>?|>)?|>=?|=>?|\.\.\.?/,punctuation:/[,;\[\](){}]/},t.languages.pq=t.languages.powerquery,t.languages.mscript=t.languages.powerquery}return Ff}var Pf,Aw;function uz(){if(Aw)return Pf;Aw=1,Pf=e,e.displayName="powershell",e.aliases=[];function e(t){(function(n){var i=n.languages.powershell={comment:[{pattern:/(^|[^`])<#[\s\S]*?#>/,lookbehind:!0},{pattern:/(^|[^`])#.*/,lookbehind:!0}],string:[{pattern:/"(?:`[\s\S]|[^`"])*"/,greedy:!0,inside:null},{pattern:/'(?:[^']|'')*'/,greedy:!0}],namespace:/\[[a-z](?:\[(?:\[[^\]]*\]|[^\[\]])*\]|[^\[\]])*\]/i,boolean:/\$(?:false|true)\b/i,variable:/\$\w+\b/,function:[/\b(?:Add|Approve|Assert|Backup|Block|Checkpoint|Clear|Close|Compare|Complete|Compress|Confirm|Connect|Convert|ConvertFrom|ConvertTo|Copy|Debug|Deny|Disable|Disconnect|Dismount|Edit|Enable|Enter|Exit|Expand|Export|Find|ForEach|Format|Get|Grant|Group|Hide|Import|Initialize|Install|Invoke|Join|Limit|Lock|Measure|Merge|Move|New|Open|Optimize|Out|Ping|Pop|Protect|Publish|Push|Read|Receive|Redo|Register|Remove|Rename|Repair|Request|Reset|Resize|Resolve|Restart|Restore|Resume|Revoke|Save|Search|Select|Send|Set|Show|Skip|Sort|Split|Start|Step|Stop|Submit|Suspend|Switch|Sync|Tee|Test|Trace|Unblock|Undo|Uninstall|Unlock|Unprotect|Unpublish|Unregister|Update|Use|Wait|Watch|Where|Write)-[a-z]+\b/i,/\b(?:ac|cat|chdir|clc|cli|clp|clv|compare|copy|cp|cpi|cpp|cvpa|dbp|del|diff|dir|ebp|echo|epal|epcsv|epsn|erase|fc|fl|ft|fw|gal|gbp|gc|gci|gcs|gdr|gi|gl|gm|gp|gps|group|gsv|gu|gv|gwmi|iex|ii|ipal|ipcsv|ipsn|irm|iwmi|iwr|kill|lp|ls|measure|mi|mount|move|mp|mv|nal|ndr|ni|nv|ogv|popd|ps|pushd|pwd|rbp|rd|rdr|ren|ri|rm|rmdir|rni|rnp|rp|rv|rvpa|rwmi|sal|saps|sasv|sbp|sc|select|set|shcm|si|sl|sleep|sls|sort|sp|spps|spsv|start|sv|swmi|tee|trcm|type|write)\b/i],keyword:/\b(?:Begin|Break|Catch|Class|Continue|Data|Define|Do|DynamicParam|Else|ElseIf|End|Exit|Filter|Finally|For|ForEach|From|Function|If|InlineScript|Parallel|Param|Process|Return|Sequence|Switch|Throw|Trap|Try|Until|Using|Var|While|Workflow)\b/i,operator:{pattern:/(^|\W)(?:!|-(?:b?(?:and|x?or)|as|(?:Not)?(?:Contains|In|Like|Match)|eq|ge|gt|is(?:Not)?|Join|le|lt|ne|not|Replace|sh[lr])\b|-[-=]?|\+[+=]?|[*\/%]=?)/i,lookbehind:!0},punctuation:/[|{}[\];(),.]/};i.string[0].inside={function:{pattern:/(^|[^`])\$\((?:\$\([^\r\n()]*\)|(?!\$\()[^\r\n)])*\)/,lookbehind:!0,inside:i},boolean:i.boolean,variable:i.variable}})(t)}return Pf}var Uf,Rw;function cz(){if(Rw)return Uf;Rw=1,Uf=e,e.displayName="processing",e.aliases=[];function e(t){t.languages.processing=t.languages.extend("clike",{keyword:/\b(?:break|case|catch|class|continue|default|else|extends|final|for|if|implements|import|new|null|private|public|return|static|super|switch|this|try|void|while)\b/,function:/\b\w+(?=\s*\()/,operator:/<[<=]?|>[>=]?|&&?|\|\|?|[%?]|[!=+\-*\/]=?/}),t.languages.insertBefore("processing","number",{constant:/\b(?!XML\b)[A-Z][A-Z\d_]+\b/,type:{pattern:/\b(?:boolean|byte|char|color|double|float|int|[A-Z]\w*)\b/,alias:"class-name"}})}return Uf}var Bf,Nw;function dz(){if(Nw)return Bf;Nw=1,Bf=e,e.displayName="prolog",e.aliases=[];function e(t){t.languages.prolog={comment:{pattern:/\/\*[\s\S]*?\*\/|%.*/,greedy:!0},string:{pattern:/(["'])(?:\1\1|\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1(?!\1)/,greedy:!0},builtin:/\b(?:fx|fy|xf[xy]?|yfx?)\b/,function:/\b[a-z]\w*(?:(?=\()|\/\d+)/,number:/\b\d+(?:\.\d*)?/,operator:/[:\\=><\-?*@\/;+^|!$.]+|\b(?:is|mod|not|xor)\b/,punctuation:/[(){}\[\],]/}}return Bf}var jf,Cw;function pz(){if(Cw)return jf;Cw=1,jf=e,e.displayName="promql",e.aliases=[];function e(t){(function(n){var i=["sum","min","max","avg","group","stddev","stdvar","count","count_values","bottomk","topk","quantile"],o=["on","ignoring","group_right","group_left","by","without"],l=["offset"],u=i.concat(o,l);n.languages.promql={comment:{pattern:/(^[ \t]*)#.*/m,lookbehind:!0},"vector-match":{pattern:new RegExp("((?:"+o.join("|")+")\\s*)\\([^)]*\\)"),lookbehind:!0,inside:{"label-key":{pattern:/\b[^,]+\b/,alias:"attr-name"},punctuation:/[(),]/}},"context-labels":{pattern:/\{[^{}]*\}/,inside:{"label-key":{pattern:/\b[a-z_]\w*(?=\s*(?:=|![=~]))/,alias:"attr-name"},"label-value":{pattern:/(["'`])(?:\\[\s\S]|(?!\1)[^\\])*\1/,greedy:!0,alias:"attr-value"},punctuation:/\{|\}|=~?|![=~]|,/}},"context-range":[{pattern:/\[[\w\s:]+\]/,inside:{punctuation:/\[|\]|:/,"range-duration":{pattern:/\b(?:\d+(?:[smhdwy]|ms))+\b/i,alias:"number"}}},{pattern:/(\boffset\s+)\w+/,lookbehind:!0,inside:{"range-duration":{pattern:/\b(?:\d+(?:[smhdwy]|ms))+\b/i,alias:"number"}}}],keyword:new RegExp("\\b(?:"+u.join("|")+")\\b","i"),function:/\b[a-z_]\w*(?=\s*\()/i,number:/[-+]?(?:(?:\b\d+(?:\.\d+)?|\B\.\d+)(?:e[-+]?\d+)?\b|\b(?:0x[0-9a-f]+|nan|inf)\b)/i,operator:/[\^*/%+-]|==|!=|<=|<|>=|>|\b(?:and|or|unless)\b/i,punctuation:/[{};()`,.[\]]/}})(t)}return jf}var zf,Iw;function fz(){if(Iw)return zf;Iw=1,zf=e,e.displayName="properties",e.aliases=[];function e(t){t.languages.properties={comment:/^[ \t]*[#!].*$/m,"attr-value":{pattern:/(^[ \t]*(?:\\(?:\r\n|[\s\S])|[^\\\s:=])+(?: *[=:] *(?! )| ))(?:\\(?:\r\n|[\s\S])|[^\\\r\n])+/m,lookbehind:!0},"attr-name":/^[ \t]*(?:\\(?:\r\n|[\s\S])|[^\\\s:=])+(?= *[=:]| )/m,punctuation:/[=:]/}}return zf}var $f,Ow;function gz(){if(Ow)return $f;Ow=1,$f=e,e.displayName="protobuf",e.aliases=[];function e(t){(function(n){var i=/\b(?:bool|bytes|double|s?fixed(?:32|64)|float|[su]?int(?:32|64)|string)\b/;n.languages.protobuf=n.languages.extend("clike",{"class-name":[{pattern:/(\b(?:enum|extend|message|service)\s+)[A-Za-z_]\w*(?=\s*\{)/,lookbehind:!0},{pattern:/(\b(?:rpc\s+\w+|returns)\s*\(\s*(?:stream\s+)?)\.?[A-Za-z_]\w*(?:\.[A-Za-z_]\w*)*(?=\s*\))/,lookbehind:!0}],keyword:/\b(?:enum|extend|extensions|import|message|oneof|option|optional|package|public|repeated|required|reserved|returns|rpc(?=\s+\w)|service|stream|syntax|to)\b(?!\s*=\s*\d)/,function:/\b[a-z_]\w*(?=\s*\()/i}),n.languages.insertBefore("protobuf","operator",{map:{pattern:/\bmap<\s*[\w.]+\s*,\s*[\w.]+\s*>(?=\s+[a-z_]\w*\s*[=;])/i,alias:"class-name",inside:{punctuation:/[<>.,]/,builtin:i}},builtin:i,"positional-class-name":{pattern:/(?:\b|\B\.)[a-z_]\w*(?:\.[a-z_]\w*)*(?=\s+[a-z_]\w*\s*[=;])/i,alias:"class-name",inside:{punctuation:/\./}},annotation:{pattern:/(\[\s*)[a-z_]\w*(?=\s*=)/i,lookbehind:!0}})})(t)}return $f}var qf,Lw;function mz(){if(Lw)return qf;Lw=1,qf=e,e.displayName="psl",e.aliases=[];function e(t){t.languages.psl={comment:{pattern:/#.*/,greedy:!0},string:{pattern:/"(?:\\.|[^\\"])*"/,greedy:!0,inside:{symbol:/\\[ntrbA-Z"\\]/}},"heredoc-string":{pattern:/<<<([a-zA-Z_]\w*)[\r\n](?:.*[\r\n])*?\1\b/,alias:"string",greedy:!0},keyword:/\b(?:__multi|__single|case|default|do|else|elsif|exit|export|for|foreach|function|if|last|line|local|next|requires|return|switch|until|while|word)\b/,constant:/\b(?:ALARM|CHART_ADD_GRAPH|CHART_DELETE_GRAPH|CHART_DESTROY|CHART_LOAD|CHART_PRINT|EOF|OFFLINE|OK|PSL_PROF_LOG|R_CHECK_HORIZ|R_CHECK_VERT|R_CLICKER|R_COLUMN|R_FRAME|R_ICON|R_LABEL|R_LABEL_CENTER|R_LIST_MULTIPLE|R_LIST_MULTIPLE_ND|R_LIST_SINGLE|R_LIST_SINGLE_ND|R_MENU|R_POPUP|R_POPUP_SCROLLED|R_RADIO_HORIZ|R_RADIO_VERT|R_ROW|R_SCALE_HORIZ|R_SCALE_VERT|R_SEP_HORIZ|R_SEP_VERT|R_SPINNER|R_TEXT_FIELD|R_TEXT_FIELD_LABEL|R_TOGGLE|TRIM_LEADING|TRIM_LEADING_AND_TRAILING|TRIM_REDUNDANT|TRIM_TRAILING|VOID|WARN)\b/,boolean:/\b(?:FALSE|False|NO|No|TRUE|True|YES|Yes|false|no|true|yes)\b/,variable:/\b(?:PslDebug|errno|exit_status)\b/,builtin:{pattern:/\b(?:PslExecute|PslFunctionCall|PslFunctionExists|PslSetOptions|_snmp_debug|acos|add_diary|annotate|annotate_get|ascii_to_ebcdic|asctime|asin|atan|atexit|batch_set|blackout|cat|ceil|chan_exists|change_state|close|code_cvt|cond_signal|cond_wait|console_type|convert_base|convert_date|convert_locale_date|cos|cosh|create|date|dcget_text|destroy|destroy_lock|dget_text|difference|dump_hist|ebcdic_to_ascii|encrypt|event_archive|event_catalog_get|event_check|event_query|event_range_manage|event_range_query|event_report|event_schedule|event_trigger|event_trigger2|execute|exists|exp|fabs|file|floor|fmod|fopen|fseek|ftell|full_discovery|get|get_chan_info|get_ranges|get_text|get_vars|getenv|gethostinfo|getpid|getpname|grep|history|history_get_retention|in_transition|index|int|internal|intersection|is_var|isnumber|join|kill|length|lines|lock|lock_info|log|log10|loge|matchline|msg_check|msg_get_format|msg_get_severity|msg_printf|msg_sprintf|ntharg|nthargf|nthline|nthlinef|num_bytes|num_consoles|pconfig|popen|poplines|pow|print|printf|proc_exists|process|random|read|readln|refresh_parameters|remote_check|remote_close|remote_event_query|remote_event_trigger|remote_file_send|remote_open|remove|replace|rindex|sec_check_priv|sec_store_get|sec_store_set|set|set_alarm_ranges|set_locale|share|sin|sinh|sleep|snmp_agent_config|snmp_agent_start|snmp_agent_stop|snmp_close|snmp_config|snmp_get|snmp_get_next|snmp_h_get|snmp_h_get_next|snmp_h_set|snmp_open|snmp_set|snmp_trap_ignore|snmp_trap_listen|snmp_trap_raise_std_trap|snmp_trap_receive|snmp_trap_register_im|snmp_trap_send|snmp_walk|sopen|sort|splitline|sprintf|sqrt|srandom|str_repeat|strcasecmp|subset|substr|system|tail|tan|tanh|text_domain|time|tmpnam|tolower|toupper|trace_psl_process|trim|union|unique|unlock|unset|va_arg|va_start|write)\b/,alias:"builtin-function"},"foreach-variable":{pattern:/(\bforeach\s+(?:(?:\w+\b|"(?:\\.|[^\\"])*")\s+){0,2})[_a-zA-Z]\w*(?=\s*\()/,lookbehind:!0,greedy:!0},function:/\b[_a-z]\w*\b(?=\s*\()/i,number:/\b(?:0x[0-9a-f]+|\d+(?:\.\d+)?)\b/i,operator:/--|\+\+|&&=?|\|\|=?|<<=?|>>=?|[=!]~|[-+*/%&|^!=<>]=?|\.|[:?]/,punctuation:/[(){}\[\];,]/}}return qf}var Gf,Dw;function hz(){if(Dw)return Gf;Dw=1,Gf=e,e.displayName="pug",e.aliases=[];function e(t){(function(n){n.languages.pug={comment:{pattern:/(^([\t ]*))\/\/.*(?:(?:\r?\n|\r)\2[\t ].+)*/m,lookbehind:!0},"multiline-script":{pattern:/(^([\t ]*)script\b.*\.[\t ]*)(?:(?:\r?\n|\r(?!\n))(?:\2[\t ].+|\s*?(?=\r?\n|\r)))+/m,lookbehind:!0,inside:n.languages.javascript},filter:{pattern:/(^([\t ]*)):.+(?:(?:\r?\n|\r(?!\n))(?:\2[\t ].+|\s*?(?=\r?\n|\r)))+/m,lookbehind:!0,inside:{"filter-name":{pattern:/^:[\w-]+/,alias:"variable"},text:/\S[\s\S]*/}},"multiline-plain-text":{pattern:/(^([\t ]*)[\w\-#.]+\.[\t ]*)(?:(?:\r?\n|\r(?!\n))(?:\2[\t ].+|\s*?(?=\r?\n|\r)))+/m,lookbehind:!0},markup:{pattern:/(^[\t ]*)<.+/m,lookbehind:!0,inside:n.languages.markup},doctype:{pattern:/((?:^|\n)[\t ]*)doctype(?: .+)?/,lookbehind:!0},"flow-control":{pattern:/(^[\t ]*)(?:case|default|each|else|if|unless|when|while)\b(?: .+)?/m,lookbehind:!0,inside:{each:{pattern:/^each .+? in\b/,inside:{keyword:/\b(?:each|in)\b/,punctuation:/,/}},branch:{pattern:/^(?:case|default|else|if|unless|when|while)\b/,alias:"keyword"},rest:n.languages.javascript}},keyword:{pattern:/(^[\t ]*)(?:append|block|extends|include|prepend)\b.+/m,lookbehind:!0},mixin:[{pattern:/(^[\t ]*)mixin .+/m,lookbehind:!0,inside:{keyword:/^mixin/,function:/\w+(?=\s*\(|\s*$)/,punctuation:/[(),.]/}},{pattern:/(^[\t ]*)\+.+/m,lookbehind:!0,inside:{name:{pattern:/^\+\w+/,alias:"function"},rest:n.languages.javascript}}],script:{pattern:/(^[\t ]*script(?:(?:&[^(]+)?\([^)]+\))*[\t ]).+/m,lookbehind:!0,inside:n.languages.javascript},"plain-text":{pattern:/(^[\t ]*(?!-)[\w\-#.]*[\w\-](?:(?:&[^(]+)?\([^)]+\))*\/?[\t ]).+/m,lookbehind:!0},tag:{pattern:/(^[\t ]*)(?!-)[\w\-#.]*[\w\-](?:(?:&[^(]+)?\([^)]+\))*\/?:?/m,lookbehind:!0,inside:{attributes:[{pattern:/&[^(]+\([^)]+\)/,inside:n.languages.javascript},{pattern:/\([^)]+\)/,inside:{"attr-value":{pattern:/(=\s*(?!\s))(?:\{[^}]*\}|[^,)\r\n]+)/,lookbehind:!0,inside:n.languages.javascript},"attr-name":/[\w-]+(?=\s*!?=|\s*[,)])/,punctuation:/[!=(),]+/}}],punctuation:/:/,"attr-id":/#[\w\-]+/,"attr-class":/\.[\w\-]+/}},code:[{pattern:/(^[\t ]*(?:-|!?=)).+/m,lookbehind:!0,inside:n.languages.javascript}],punctuation:/[.\-!=|]+/};for(var i=/(^([\t ]*)):(?:(?:\r?\n|\r(?!\n))(?:\2[\t ].+|\s*?(?=\r?\n|\r)))+/.source,o=[{filter:"atpl",language:"twig"},{filter:"coffee",language:"coffeescript"},"ejs","handlebars","less","livescript","markdown",{filter:"sass",language:"scss"},"stylus"],l={},u=0,c=o.length;u",function(){return p.filter}),"m"),lookbehind:!0,inside:{"filter-name":{pattern:/^:[\w-]+/,alias:"variable"},text:{pattern:/\S[\s\S]*/,alias:[p.language,"language-"+p.language],inside:n.languages[p.language]}}})}n.languages.insertBefore("pug","filter",l)})(t)}return Gf}var Hf,Mw;function bz(){if(Mw)return Hf;Mw=1,Hf=e,e.displayName="puppet",e.aliases=[];function e(t){(function(n){n.languages.puppet={heredoc:[{pattern:/(@\("([^"\r\n\/):]+)"(?:\/[nrts$uL]*)?\).*(?:\r?\n|\r))(?:.*(?:\r?\n|\r(?!\n)))*?[ \t]*(?:\|[ \t]*)?(?:-[ \t]*)?\2/,lookbehind:!0,alias:"string",inside:{punctuation:/(?=\S).*\S(?= *$)/}},{pattern:/(@\(([^"\r\n\/):]+)(?:\/[nrts$uL]*)?\).*(?:\r?\n|\r))(?:.*(?:\r?\n|\r(?!\n)))*?[ \t]*(?:\|[ \t]*)?(?:-[ \t]*)?\2/,lookbehind:!0,greedy:!0,alias:"string",inside:{punctuation:/(?=\S).*\S(?= *$)/}},{pattern:/@\("?(?:[^"\r\n\/):]+)"?(?:\/[nrts$uL]*)?\)/,alias:"string",inside:{punctuation:{pattern:/(\().+?(?=\))/,lookbehind:!0}}}],"multiline-comment":{pattern:/(^|[^\\])\/\*[\s\S]*?\*\//,lookbehind:!0,greedy:!0,alias:"comment"},regex:{pattern:/((?:\bnode\s+|[~=\(\[\{,]\s*|[=+]>\s*|^\s*))\/(?:[^\/\\]|\\[\s\S])+\/(?:[imx]+\b|\B)/,lookbehind:!0,greedy:!0,inside:{"extended-regex":{pattern:/^\/(?:[^\/\\]|\\[\s\S])+\/[im]*x[im]*$/,inside:{comment:/#.*/}}}},comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},string:{pattern:/(["'])(?:\$\{(?:[^'"}]|(["'])(?:(?!\2)[^\\]|\\[\s\S])*\2)+\}|\$(?!\{)|(?!\1)[^\\$]|\\[\s\S])*\1/,greedy:!0,inside:{"double-quoted":{pattern:/^"[\s\S]*"$/,inside:{}}}},variable:{pattern:/\$(?:::)?\w+(?:::\w+)*/,inside:{punctuation:/::/}},"attr-name":/(?:\b\w+|\*)(?=\s*=>)/,function:[{pattern:/(\.)(?!\d)\w+/,lookbehind:!0},/\b(?:contain|debug|err|fail|include|info|notice|realize|require|tag|warning)\b|\b(?!\d)\w+(?=\()/],number:/\b(?:0x[a-f\d]+|\d+(?:\.\d+)?(?:e-?\d+)?)\b/i,boolean:/\b(?:false|true)\b/,keyword:/\b(?:application|attr|case|class|consumes|default|define|else|elsif|function|if|import|inherits|node|private|produces|type|undef|unless)\b/,datatype:{pattern:/\b(?:Any|Array|Boolean|Callable|Catalogentry|Class|Collection|Data|Default|Enum|Float|Hash|Integer|NotUndef|Numeric|Optional|Pattern|Regexp|Resource|Runtime|Scalar|String|Struct|Tuple|Type|Undef|Variant)\b/,alias:"symbol"},operator:/=[=~>]?|![=~]?|<(?:<\|?|[=~|-])?|>[>=]?|->?|~>|\|>?>?|[*\/%+?]|\b(?:and|in|or)\b/,punctuation:/[\[\]{}().,;]|:+/};var i=[{pattern:/(^|[^\\])\$\{(?:[^'"{}]|\{[^}]*\}|(["'])(?:(?!\2)[^\\]|\\[\s\S])*\2)+\}/,lookbehind:!0,inside:{"short-variable":{pattern:/(^\$\{)(?!\w+\()(?:::)?\w+(?:::\w+)*/,lookbehind:!0,alias:"variable",inside:{punctuation:/::/}},delimiter:{pattern:/^\$/,alias:"variable"},rest:n.languages.puppet}},{pattern:/(^|[^\\])\$(?:::)?\w+(?:::\w+)*/,lookbehind:!0,alias:"variable",inside:{punctuation:/::/}}];n.languages.puppet.heredoc[0].inside.interpolation=i,n.languages.puppet.string.inside["double-quoted"].inside.interpolation=i})(t)}return Hf}var Wf,Fw;function yz(){if(Fw)return Wf;Fw=1,Wf=e,e.displayName="pure",e.aliases=[];function e(t){(function(n){n.languages.pure={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?\*\//,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0},/#!.+/],"inline-lang":{pattern:/%<[\s\S]+?%>/,greedy:!0,inside:{lang:{pattern:/(^%< *)-\*-.+?-\*-/,lookbehind:!0,alias:"comment"},delimiter:{pattern:/^%<.*|%>$/,alias:"punctuation"}}},string:{pattern:/"(?:\\.|[^"\\\r\n])*"/,greedy:!0},number:{pattern:/((?:\.\.)?)(?:\b(?:inf|nan)\b|\b0x[\da-f]+|(?:\b(?:0b)?\d+(?:\.\d+)?|\B\.\d+)(?:e[+-]?\d+)?L?)/i,lookbehind:!0},keyword:/\b(?:NULL|ans|break|bt|case|catch|cd|clear|const|def|del|dump|else|end|exit|extern|false|force|help|if|infix[lr]?|interface|let|ls|mem|namespace|nonfix|of|otherwise|outfix|override|postfix|prefix|private|public|pwd|quit|run|save|show|stats|then|throw|trace|true|type|underride|using|when|with)\b/,function:/\b(?:abs|add_(?:addr|constdef|(?:fundef|interface|macdef|typedef)(?:_at)?|vardef)|all|any|applp?|arity|bigintp?|blob(?:_crc|_size|p)?|boolp?|byte_c?string(?:_pointer)?|byte_(?:matrix|pointer)|calloc|cat|catmap|ceil|char[ps]?|check_ptrtag|chr|clear_sentry|clearsym|closurep?|cmatrixp?|cols?|colcat(?:map)?|colmap|colrev|colvector(?:p|seq)?|complex(?:_float_(?:matrix|pointer)|_matrix(?:_view)?|_pointer|p)?|conj|cookedp?|cst|cstring(?:_(?:dup|list|vector))?|curry3?|cyclen?|del_(?:constdef|fundef|interface|macdef|typedef|vardef)|delete|diag(?:mat)?|dim|dmatrixp?|do|double(?:_matrix(?:_view)?|_pointer|p)?|dowith3?|drop|dropwhile|eval(?:cmd)?|exactp|filter|fix|fixity|flip|float(?:_matrix|_pointer)|floor|fold[lr]1?|frac|free|funp?|functionp?|gcd|get(?:_(?:byte|constdef|double|float|fundef|int(?:64)?|interface(?:_typedef)?|long|macdef|pointer|ptrtag|sentry|short|string|typedef|vardef))?|globsym|hash|head|id|im|imatrixp?|index|inexactp|infp|init|insert|int(?:_matrix(?:_view)?|_pointer|p)?|int64_(?:matrix|pointer)|integerp?|iteraten?|iterwhile|join|keys?|lambdap?|last(?:err(?:pos)?)?|lcd|list[2p]?|listmap|make_ptrtag|malloc|map|matcat|matrixp?|max|member|min|nanp|nargs|nmatrixp?|null|numberp?|ord|pack(?:ed)?|pointer(?:_cast|_tag|_type|p)?|pow|pred|ptrtag|put(?:_(?:byte|double|float|int(?:64)?|long|pointer|short|string))?|rationalp?|re|realp?|realloc|recordp?|redim|reduce(?:_with)?|refp?|repeatn?|reverse|rlistp?|round|rows?|rowcat(?:map)?|rowmap|rowrev|rowvector(?:p|seq)?|same|scan[lr]1?|sentry|sgn|short_(?:matrix|pointer)|slice|smatrixp?|sort|split|str|strcat|stream|stride|string(?:_(?:dup|list|vector)|p)?|subdiag(?:mat)?|submat|subseq2?|substr|succ|supdiag(?:mat)?|symbolp?|tail|take|takewhile|thunkp?|transpose|trunc|tuplep?|typep|ubyte|uint(?:64)?|ulong|uncurry3?|unref|unzip3?|update|ushort|vals?|varp?|vector(?:p|seq)?|void|zip3?|zipwith3?)\b/,special:{pattern:/\b__[a-z]+__\b/i,alias:"builtin"},operator:/(?:[!"#$%&'*+,\-.\/:<=>?@\\^`|~\u00a1-\u00bf\u00d7-\u00f7\u20d0-\u2bff]|\b_+\b)+|\b(?:and|div|mod|not|or)\b/,punctuation:/[(){}\[\];,|]/};var i=["c",{lang:"c++",alias:"cpp"},"fortran"],o=/%< *-\*- *\d* *-\*-[\s\S]+?%>/.source;i.forEach(function(l){var u=l;if(typeof l!="string"&&(u=l.alias,l=l.lang),n.languages[u]){var c={};c["inline-lang-"+u]={pattern:RegExp(o.replace("",l.replace(/([.+*?\/\\(){}\[\]])/g,"\\$1")),"i"),inside:n.util.clone(n.languages.pure["inline-lang"].inside)},c["inline-lang-"+u].inside.rest=n.util.clone(n.languages[u]),n.languages.insertBefore("pure","inline-lang",c)}}),n.languages.c&&(n.languages.pure["inline-lang"].inside.rest=n.util.clone(n.languages.c))})(t)}return Wf}var Vf,Pw;function Ez(){if(Pw)return Vf;Pw=1,Vf=e,e.displayName="purebasic",e.aliases=[];function e(t){t.languages.purebasic=t.languages.extend("clike",{comment:/;.*/,keyword:/\b(?:align|and|as|break|calldebugger|case|compilercase|compilerdefault|compilerelse|compilerelseif|compilerendif|compilerendselect|compilererror|compilerif|compilerselect|continue|data|datasection|debug|debuglevel|declare|declarec|declarecdll|declaredll|declaremodule|default|define|dim|disableasm|disabledebugger|disableexplicit|else|elseif|enableasm|enabledebugger|enableexplicit|end|enddatasection|enddeclaremodule|endenumeration|endif|endimport|endinterface|endmacro|endmodule|endprocedure|endselect|endstructure|endstructureunion|endwith|enumeration|extends|fakereturn|for|foreach|forever|global|gosub|goto|if|import|importc|includebinary|includefile|includepath|interface|macro|module|newlist|newmap|next|not|or|procedure|procedurec|procedurecdll|proceduredll|procedurereturn|protected|prototype|prototypec|read|redim|repeat|restore|return|runtime|select|shared|static|step|structure|structureunion|swap|threaded|to|until|wend|while|with|xincludefile|xor)\b/i,function:/\b\w+(?:\.\w+)?\s*(?=\()/,number:/(?:\$[\da-f]+|\b-?(?:\d+(?:\.\d+)?|\.\d+)(?:e[+-]?\d+)?)\b/i,operator:/(?:@\*?|\?|\*)\w+|-[>-]?|\+\+?|!=?|<>?=?|==?|&&?|\|?\||[~^%?*/@]/}),t.languages.insertBefore("purebasic","keyword",{tag:/#\w+\$?/,asm:{pattern:/(^[\t ]*)!.*/m,lookbehind:!0,alias:"tag",inside:{comment:/;.*/,string:{pattern:/(["'`])(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},"label-reference-anonymous":{pattern:/(!\s*j[a-z]+\s+)@[fb]/i,lookbehind:!0,alias:"fasm-label"},"label-reference-addressed":{pattern:/(!\s*j[a-z]+\s+)[A-Z._?$@][\w.?$@~#]*/i,lookbehind:!0,alias:"fasm-label"},keyword:[/\b(?:extern|global)\b[^;\r\n]*/i,/\b(?:CPU|DEFAULT|FLOAT)\b.*/],function:{pattern:/^([\t ]*!\s*)[\da-z]+(?=\s|$)/im,lookbehind:!0},"function-inline":{pattern:/(:\s*)[\da-z]+(?=\s)/i,lookbehind:!0,alias:"function"},label:{pattern:/^([\t ]*!\s*)[A-Za-z._?$@][\w.?$@~#]*(?=:)/m,lookbehind:!0,alias:"fasm-label"},register:/\b(?:st\d|[xyz]mm\d\d?|[cdt]r\d|r\d\d?[bwd]?|[er]?[abcd]x|[abcd][hl]|[er]?(?:bp|di|si|sp)|[cdefgs]s|mm\d+)\b/i,number:/(?:\b|-|(?=\$))(?:0[hx](?:[\da-f]*\.)?[\da-f]+(?:p[+-]?\d+)?|\d[\da-f]+[hx]|\$\d[\da-f]*|0[oq][0-7]+|[0-7]+[oq]|0[by][01]+|[01]+[by]|0[dt]\d+|(?:\d+(?:\.\d+)?|\.\d+)(?:\.?e[+-]?\d+)?[dt]?)\b/i,operator:/[\[\]*+\-/%<>=&|$!,.:]/}}}),delete t.languages.purebasic["class-name"],delete t.languages.purebasic.boolean,t.languages.pbfasm=t.languages.purebasic}return Vf}var Yf,Uw;function Sz(){if(Uw)return Yf;Uw=1;var e=gh();Yf=t,t.displayName="purescript",t.aliases=["purs"];function t(n){n.register(e),n.languages.purescript=n.languages.extend("haskell",{keyword:/\b(?:ado|case|class|data|derive|do|else|forall|if|in|infixl|infixr|instance|let|module|newtype|of|primitive|then|type|where)\b|∀/,"import-statement":{pattern:/(^[\t ]*)import\s+[A-Z][\w']*(?:\.[A-Z][\w']*)*(?:\s+as\s+[A-Z][\w']*(?:\.[A-Z][\w']*)*)?(?:\s+hiding\b)?/m,lookbehind:!0,inside:{keyword:/\b(?:as|hiding|import)\b/,punctuation:/\./}},builtin:/\b(?:absurd|add|ap|append|apply|between|bind|bottom|clamp|compare|comparing|compose|conj|const|degree|discard|disj|div|eq|flap|flip|gcd|identity|ifM|join|lcm|liftA1|liftM1|map|max|mempty|min|mod|mul|negate|not|notEq|one|otherwise|recip|show|sub|top|unit|unless|unlessM|void|when|whenM|zero)\b/,operator:[n.languages.haskell.operator[0],n.languages.haskell.operator[2],/[\xa2-\xa6\xa8\xa9\xac\xae-\xb1\xb4\xb8\xd7\xf7\u02c2-\u02c5\u02d2-\u02df\u02e5-\u02eb\u02ed\u02ef-\u02ff\u0375\u0384\u0385\u03f6\u0482\u058d-\u058f\u0606-\u0608\u060b\u060e\u060f\u06de\u06e9\u06fd\u06fe\u07f6\u07fe\u07ff\u09f2\u09f3\u09fa\u09fb\u0af1\u0b70\u0bf3-\u0bfa\u0c7f\u0d4f\u0d79\u0e3f\u0f01-\u0f03\u0f13\u0f15-\u0f17\u0f1a-\u0f1f\u0f34\u0f36\u0f38\u0fbe-\u0fc5\u0fc7-\u0fcc\u0fce\u0fcf\u0fd5-\u0fd8\u109e\u109f\u1390-\u1399\u166d\u17db\u1940\u19de-\u19ff\u1b61-\u1b6a\u1b74-\u1b7c\u1fbd\u1fbf-\u1fc1\u1fcd-\u1fcf\u1fdd-\u1fdf\u1fed-\u1fef\u1ffd\u1ffe\u2044\u2052\u207a-\u207c\u208a-\u208c\u20a0-\u20bf\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211e-\u2123\u2125\u2127\u2129\u212e\u213a\u213b\u2140-\u2144\u214a-\u214d\u214f\u218a\u218b\u2190-\u2307\u230c-\u2328\u232b-\u2426\u2440-\u244a\u249c-\u24e9\u2500-\u2767\u2794-\u27c4\u27c7-\u27e5\u27f0-\u2982\u2999-\u29d7\u29dc-\u29fb\u29fe-\u2b73\u2b76-\u2b95\u2b97-\u2bff\u2ce5-\u2cea\u2e50\u2e51\u2e80-\u2e99\u2e9b-\u2ef3\u2f00-\u2fd5\u2ff0-\u2ffb\u3004\u3012\u3013\u3020\u3036\u3037\u303e\u303f\u309b\u309c\u3190\u3191\u3196-\u319f\u31c0-\u31e3\u3200-\u321e\u322a-\u3247\u3250\u3260-\u327f\u328a-\u32b0\u32c0-\u33ff\u4dc0-\u4dff\ua490-\ua4c6\ua700-\ua716\ua720\ua721\ua789\ua78a\ua828-\ua82b\ua836-\ua839\uaa77-\uaa79\uab5b\uab6a\uab6b\ufb29\ufbb2-\ufbc1\ufdfc\ufdfd\ufe62\ufe64-\ufe66\ufe69\uff04\uff0b\uff1c-\uff1e\uff3e\uff40\uff5c\uff5e\uffe0-\uffe6\uffe8-\uffee\ufffc\ufffd]/]}),n.languages.purs=n.languages.purescript}return Yf}var Kf,Bw;function vz(){if(Bw)return Kf;Bw=1,Kf=e,e.displayName="python",e.aliases=["py"];function e(t){t.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},t.languages.python["string-interpolation"].inside.interpolation.inside.rest=t.languages.python,t.languages.py=t.languages.python}return Kf}var Zf,jw;function kz(){if(jw)return Zf;jw=1,Zf=e,e.displayName="q",e.aliases=[];function e(t){t.languages.q={string:/"(?:\\.|[^"\\\r\n])*"/,comment:[{pattern:/([\t )\]}])\/.*/,lookbehind:!0,greedy:!0},{pattern:/(^|\r?\n|\r)\/[\t ]*(?:(?:\r?\n|\r)(?:.*(?:\r?\n|\r(?!\n)))*?(?:\\(?=[\t ]*(?:\r?\n|\r))|$)|\S.*)/,lookbehind:!0,greedy:!0},{pattern:/^\\[\t ]*(?:\r?\n|\r)[\s\S]+/m,greedy:!0},{pattern:/^#!.+/m,greedy:!0}],symbol:/`(?::\S+|[\w.]*)/,datetime:{pattern:/0N[mdzuvt]|0W[dtz]|\d{4}\.\d\d(?:m|\.\d\d(?:T(?:\d\d(?::\d\d(?::\d\d(?:[.:]\d\d\d)?)?)?)?)?[dz]?)|\d\d:\d\d(?::\d\d(?:[.:]\d\d\d)?)?[uvt]?/,alias:"number"},number:/\b(?![01]:)(?:0N[hje]?|0W[hj]?|0[wn]|0x[\da-fA-F]+|\d+(?:\.\d*)?(?:e[+-]?\d+)?[hjfeb]?)/,keyword:/\\\w+\b|\b(?:abs|acos|aj0?|all|and|any|asc|asin|asof|atan|attr|avgs?|binr?|by|ceiling|cols|cor|cos|count|cov|cross|csv|cut|delete|deltas|desc|dev|differ|distinct|div|do|dsave|ej|enlist|eval|except|exec|exit|exp|fby|fills|first|fkeys|flip|floor|from|get|getenv|group|gtime|hclose|hcount|hdel|hopen|hsym|iasc|identity|idesc|if|ij|in|insert|inter|inv|keys?|last|like|list|ljf?|load|log|lower|lsq|ltime|ltrim|mavg|maxs?|mcount|md5|mdev|med|meta|mins?|mmax|mmin|mmu|mod|msum|neg|next|not|null|or|over|parse|peach|pj|plist|prds?|prev|prior|rand|rank|ratios|raze|read0|read1|reciprocal|reval|reverse|rload|rotate|rsave|rtrim|save|scan|scov|sdev|select|set|setenv|show|signum|sin|sqrt|ssr?|string|sublist|sums?|sv|svar|system|tables|tan|til|trim|txf|type|uj|ungroup|union|update|upper|upsert|value|var|views?|vs|wavg|where|while|within|wj1?|wsum|ww|xasc|xbar|xcols?|xdesc|xexp|xgroup|xkey|xlog|xprev|xrank)\b/,adverb:{pattern:/['\/\\]:?|\beach\b/,alias:"function"},verb:{pattern:/(?:\B\.\B|\b[01]:|<[=>]?|>=?|[:+\-*%,!?~=|$&#@^]):?|\b_\b:?/,alias:"operator"},punctuation:/[(){}\[\];.]/}}return Zf}var Xf,zw;function _z(){if(zw)return Xf;zw=1,Xf=e,e.displayName="qml",e.aliases=[];function e(t){(function(n){for(var i=/"(?:\\.|[^\\"\r\n])*"|'(?:\\.|[^\\'\r\n])*'/.source,o=/\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))*\*\//.source,l=/(?:[^\\()[\]{}"'/]||\/(?![*/])||\(*\)|\[*\]|\{*\}|\\[\s\S])/.source.replace(//g,function(){return i}).replace(//g,function(){return o}),u=0;u<2;u++)l=l.replace(//g,function(){return l});l=l.replace(//g,"[^\\s\\S]"),n.languages.qml={comment:{pattern:/\/\/.*|\/\*[\s\S]*?\*\//,greedy:!0},"javascript-function":{pattern:RegExp(/((?:^|;)[ \t]*)function\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*\(*\)\s*\{*\}/.source.replace(//g,function(){return l}),"m"),lookbehind:!0,greedy:!0,alias:"language-javascript",inside:n.languages.javascript},"class-name":{pattern:/((?:^|[:;])[ \t]*)(?!\d)\w+(?=[ \t]*\{|[ \t]+on\b)/m,lookbehind:!0},property:[{pattern:/((?:^|[;{])[ \t]*)(?!\d)\w+(?:\.\w+)*(?=[ \t]*:)/m,lookbehind:!0},{pattern:/((?:^|[;{])[ \t]*)property[ \t]+(?!\d)\w+(?:\.\w+)*[ \t]+(?!\d)\w+(?:\.\w+)*(?=[ \t]*:)/m,lookbehind:!0,inside:{keyword:/^property/,property:/\w+(?:\.\w+)*/}}],"javascript-expression":{pattern:RegExp(/(:[ \t]*)(?![\s;}[])(?:(?!$|[;}]))+/.source.replace(//g,function(){return l}),"m"),lookbehind:!0,greedy:!0,alias:"language-javascript",inside:n.languages.javascript},string:{pattern:/"(?:\\.|[^\\"\r\n])*"/,greedy:!0},keyword:/\b(?:as|import|on)\b/,punctuation:/[{}[\]:;,]/}})(t)}return Xf}var Qf,$w;function wz(){if($w)return Qf;$w=1,Qf=e,e.displayName="qore",e.aliases=[];function e(t){t.languages.qore=t.languages.extend("clike",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:\/\/|#).*)/,lookbehind:!0},string:{pattern:/("|')(?:\\[\s\S]|(?!\1)[^\\])*\1/,greedy:!0},keyword:/\b(?:abstract|any|assert|binary|bool|boolean|break|byte|case|catch|char|class|code|const|continue|data|default|do|double|else|enum|extends|final|finally|float|for|goto|hash|if|implements|import|inherits|instanceof|int|interface|long|my|native|new|nothing|null|object|our|own|private|reference|rethrow|return|short|soft(?:bool|date|float|int|list|number|string)|static|strictfp|string|sub|super|switch|synchronized|this|throw|throws|transient|try|void|volatile|while)\b/,boolean:/\b(?:false|true)\b/i,function:/\$?\b(?!\d)\w+(?=\()/,number:/\b(?:0b[01]+|0x(?:[\da-f]*\.)?[\da-fp\-]+|(?:\d+(?:\.\d+)?|\.\d+)(?:e\d+)?[df]|(?:\d+(?:\.\d+)?|\.\d+))\b/i,operator:{pattern:/(^|[^.])(?:\+[+=]?|-[-=]?|[!=](?:==?|~)?|>>?=?|<(?:=>?|<=?)?|&[&=]?|\|[|=]?|[*\/%^]=?|[~?])/,lookbehind:!0},variable:/\$(?!\d)\w+\b/})}return Qf}var Jf,qw;function Tz(){if(qw)return Jf;qw=1,Jf=e,e.displayName="qsharp",e.aliases=["qs"];function e(t){(function(n){function i(v,k){return v.replace(/<<(\d+)>>/g,function(T,N){return"(?:"+k[+N]+")"})}function o(v,k,T){return RegExp(i(v,k),"")}function l(v,k){for(var T=0;T>/g,function(){return"(?:"+v+")"});return v.replace(/<>/g,"[^\\s\\S]")}var u={type:"Adj BigInt Bool Ctl Double false Int One Pauli PauliI PauliX PauliY PauliZ Qubit Range Result String true Unit Zero",other:"Adjoint adjoint apply as auto body borrow borrowing Controlled controlled distribute elif else fail fixup for function if in internal intrinsic invert is let mutable namespace new newtype open operation repeat return self set until use using while within"};function c(v){return"\\b(?:"+v.trim().replace(/ /g,"|")+")\\b"}var p=RegExp(c(u.type+" "+u.other)),f=/\b[A-Za-z_]\w*\b/.source,m=i(/<<0>>(?:\s*\.\s*<<0>>)*/.source,[f]),h={keyword:p,punctuation:/[<>()?,.:[\]]/},S=/"(?:\\.|[^\\"])*"/.source;n.languages.qsharp=n.languages.extend("clike",{comment:/\/\/.*/,string:[{pattern:o(/(^|[^$\\])<<0>>/.source,[S]),lookbehind:!0,greedy:!0}],"class-name":[{pattern:o(/(\b(?:as|open)\s+)<<0>>(?=\s*(?:;|as\b))/.source,[m]),lookbehind:!0,inside:h},{pattern:o(/(\bnamespace\s+)<<0>>(?=\s*\{)/.source,[m]),lookbehind:!0,inside:h}],keyword:p,number:/(?:\b0(?:x[\da-f]+|b[01]+|o[0-7]+)|(?:\B\.\d+|\b\d+(?:\.\d*)?)(?:e[-+]?\d+)?)l?\b/i,operator:/\band=|\bor=|\band\b|\bnot\b|\bor\b|<[-=]|[-=]>|>>>=?|<<<=?|\^\^\^=?|\|\|\|=?|&&&=?|w\/=?|~~~|[*\/+\-^=!%]=?/,punctuation:/::|[{}[\];(),.:]/}),n.languages.insertBefore("qsharp","number",{range:{pattern:/\.\./,alias:"operator"}});var E=l(i(/\{(?:[^"{}]|<<0>>|<>)*\}/.source,[S]),2);n.languages.insertBefore("qsharp","string",{"interpolation-string":{pattern:o(/\$"(?:\\.|<<0>>|[^\\"{])*"/.source,[E]),greedy:!0,inside:{interpolation:{pattern:o(/((?:^|[^\\])(?:\\\\)*)<<0>>/.source,[E]),lookbehind:!0,inside:{punctuation:/^\{|\}$/,expression:{pattern:/[\s\S]+/,alias:"language-qsharp",inside:n.languages.qsharp}}},string:/[\s\S]+/}}})})(t),t.languages.qs=t.languages.qsharp}return Jf}var eg,Gw;function xz(){if(Gw)return eg;Gw=1,eg=e,e.displayName="r",e.aliases=[];function e(t){t.languages.r={comment:/#.*/,string:{pattern:/(['"])(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},"percent-operator":{pattern:/%[^%\s]*%/,alias:"operator"},boolean:/\b(?:FALSE|TRUE)\b/,ellipsis:/\.\.(?:\.|\d+)/,number:[/\b(?:Inf|NaN)\b/,/(?:\b0x[\dA-Fa-f]+(?:\.\d*)?|\b\d+(?:\.\d*)?|\B\.\d+)(?:[EePp][+-]?\d+)?[iL]?/],keyword:/\b(?:NA|NA_character_|NA_complex_|NA_integer_|NA_real_|NULL|break|else|for|function|if|in|next|repeat|while)\b/,operator:/->?>?|<(?:=|=!]=?|::?|&&?|\|\|?|[+*\/^$@~]/,punctuation:/[(){}\[\],;]/}}return eg}var tg,Hw;function Az(){if(Hw)return tg;Hw=1;var e=yh();tg=t,t.displayName="racket",t.aliases=["rkt"];function t(n){n.register(e),n.languages.racket=n.languages.extend("scheme",{"lambda-parameter":{pattern:/([(\[]lambda\s+[(\[])[^()\[\]'\s]+/,lookbehind:!0}}),n.languages.insertBefore("racket","string",{lang:{pattern:/^#lang.+/m,greedy:!0,alias:"keyword"}}),n.languages.rkt=n.languages.racket}return tg}var ng,Ww;function Rz(){if(Ww)return ng;Ww=1,ng=e,e.displayName="reason",e.aliases=[];function e(t){t.languages.reason=t.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),t.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete t.languages.reason.function}return ng}var rg,Vw;function Nz(){if(Vw)return rg;Vw=1,rg=e,e.displayName="regex",e.aliases=[];function e(t){(function(n){var i={pattern:/\\[\\(){}[\]^$+*?|.]/,alias:"escape"},o=/\\(?:x[\da-fA-F]{2}|u[\da-fA-F]{4}|u\{[\da-fA-F]+\}|0[0-7]{0,2}|[123][0-7]{2}|c[a-zA-Z]|.)/,l={pattern:/\.|\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},u={pattern:/\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},c="(?:[^\\\\-]|"+o.source+")",p=RegExp(c+"-"+c),f={pattern:/(<|')[^<>']+(?=[>']$)/,lookbehind:!0,alias:"variable"};n.languages.regex={"char-class":{pattern:/((?:^|[^\\])(?:\\\\)*)\[(?:[^\\\]]|\\[\s\S])*\]/,lookbehind:!0,inside:{"char-class-negation":{pattern:/(^\[)\^/,lookbehind:!0,alias:"operator"},"char-class-punctuation":{pattern:/^\[|\]$/,alias:"punctuation"},range:{pattern:p,inside:{escape:o,"range-punctuation":{pattern:/-/,alias:"operator"}}},"special-escape":i,"char-set":u,escape:o}},"special-escape":i,"char-set":l,backreference:[{pattern:/\\(?![123][0-7]{2})[1-9]/,alias:"keyword"},{pattern:/\\k<[^<>']+>/,alias:"keyword",inside:{"group-name":f}}],anchor:{pattern:/[$^]|\\[ABbGZz]/,alias:"function"},escape:o,group:[{pattern:/\((?:\?(?:<[^<>']+>|'[^<>']+'|[>:]|:=]=?|!=|\b_\b/,punctuation:/[,;.\[\]{}()]/}}return ag}var ig,Kw;function Iz(){if(Kw)return ig;Kw=1,ig=e,e.displayName="renpy",e.aliases=["rpy"];function e(t){t.languages.renpy={comment:{pattern:/(^|[^\\])#.+/,lookbehind:!0},string:{pattern:/("""|''')[\s\S]+?\1|("|')(?:\\.|(?!\2)[^\\])*\2|(?:^#?(?:(?:[0-9a-fA-F]){3}|[0-9a-fA-F]{6})$)/m,greedy:!0},function:/\b[a-z_]\w*(?=\()/i,property:/\b(?:Update|UpdateVersion|action|activate_sound|adv_nvl_transition|after_load_transition|align|alpha|alt|anchor|antialias|area|auto|background|bar_invert|bar_resizing|bar_vertical|black_color|bold|bottom_bar|bottom_gutter|bottom_margin|bottom_padding|box_reverse|box_wrap|can_update|caret|child|color|crop|default_afm_enable|default_afm_time|default_fullscreen|default_text_cps|developer|directory_name|drag_handle|drag_joined|drag_name|drag_raise|draggable|dragged|drop_shadow|drop_shadow_color|droppable|dropped|easein|easeout|edgescroll|end_game_transition|end_splash_transition|enter_replay_transition|enter_sound|enter_transition|enter_yesno_transition|executable_name|exit_replay_transition|exit_sound|exit_transition|exit_yesno_transition|fadein|fadeout|first_indent|first_spacing|fit_first|focus|focus_mask|font|foreground|game_main_transition|get_installed_packages|google_play_key|google_play_salt|ground|has_music|has_sound|has_voice|height|help|hinting|hover|hover_background|hover_color|hover_sound|hovered|hyperlink_functions|idle|idle_color|image_style|include_update|insensitive|insensitive_background|insensitive_color|inside|intra_transition|italic|justify|kerning|keyboard_focus|language|layer_clipping|layers|layout|left_bar|left_gutter|left_margin|left_padding|length|line_leading|line_overlap_split|line_spacing|linear|main_game_transition|main_menu_music|maximum|min_width|minimum|minwidth|modal|mouse|mousewheel|name|narrator_menu|newline_indent|nvl_adv_transition|offset|order_reverse|outlines|overlay_functions|pos|position|prefix|radius|range|rest_indent|right_bar|right_gutter|right_margin|right_padding|rotate|rotate_pad|ruby_style|sample_sound|save_directory|say_attribute_transition|screen_height|screen_width|scrollbars|selected_hover|selected_hover_color|selected_idle|selected_idle_color|selected_insensitive|show_side_image|show_two_window|side_spacing|side_xpos|side_ypos|size|size_group|slow_cps|slow_cps_multiplier|spacing|strikethrough|subpixel|text_align|text_style|text_xpos|text_y_fudge|text_ypos|thumb|thumb_offset|thumb_shadow|thumbnail_height|thumbnail_width|time|top_bar|top_gutter|top_margin|top_padding|translations|underline|unscrollable|update|value|version|version_name|version_tuple|vertical|width|window_hide_transition|window_icon|window_left_padding|window_show_transition|window_title|windows_icon|xadjustment|xalign|xanchor|xanchoraround|xaround|xcenter|xfill|xinitial|xmargin|xmaximum|xminimum|xoffset|xofsset|xpadding|xpos|xsize|xzoom|yadjustment|yalign|yanchor|yanchoraround|yaround|ycenter|yfill|yinitial|ymargin|ymaximum|yminimum|yoffset|ypadding|ypos|ysize|ysizexysize|yzoom|zoom|zorder)\b/,tag:/\b(?:bar|block|button|buttoscreenn|drag|draggroup|fixed|frame|grid|[hv]box|hotbar|hotspot|image|imagebutton|imagemap|input|key|label|menu|mm_menu_frame|mousearea|nvl|parallel|screen|self|side|tag|text|textbutton|timer|vbar|viewport|window)\b|\$/,keyword:/\b(?:None|add|adjustment|alignaround|allow|angle|animation|around|as|assert|behind|box_layout|break|build|cache|call|center|changed|child_size|choice|circles|class|clear|clicked|clipping|clockwise|config|contains|continue|corner1|corner2|counterclockwise|def|default|define|del|delay|disabled|disabled_text|dissolve|elif|else|event|except|exclude|exec|expression|fade|finally|for|from|function|global|gm_root|has|hide|id|if|import|in|init|is|jump|knot|lambda|left|less_rounded|mm_root|movie|music|null|on|onlayer|pass|pause|persistent|play|print|python|queue|raise|random|renpy|repeat|return|right|rounded_window|scene|scope|set|show|slow|slow_abortable|slow_done|sound|stop|store|style|style_group|substitute|suffix|theme|transform|transform_anchor|transpose|try|ui|unhovered|updater|use|voice|while|widget|widget_hover|widget_selected|widget_text|yield)\b/,boolean:/\b(?:[Ff]alse|[Tt]rue)\b/,number:/(?:\b(?:0[bo])?(?:(?:\d|0x[\da-f])[\da-f]*(?:\.\d*)?)|\B\.\d+)(?:e[+-]?\d+)?j?/i,operator:/[-+%=]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]|\b(?:and|at|not|or|with)\b/,punctuation:/[{}[\];(),.:]/},t.languages.rpy=t.languages.renpy}return ig}var og,Zw;function Oz(){if(Zw)return og;Zw=1,og=e,e.displayName="rest",e.aliases=[];function e(t){t.languages.rest={table:[{pattern:/(^[\t ]*)(?:\+[=-]+)+\+(?:\r?\n|\r)(?:\1[+|].+[+|](?:\r?\n|\r))+\1(?:\+[=-]+)+\+/m,lookbehind:!0,inside:{punctuation:/\||(?:\+[=-]+)+\+/}},{pattern:/(^[\t ]*)=+ [ =]*=(?:(?:\r?\n|\r)\1.+)+(?:\r?\n|\r)\1=+ [ =]*=(?=(?:\r?\n|\r){2}|\s*$)/m,lookbehind:!0,inside:{punctuation:/[=-]+/}}],"substitution-def":{pattern:/(^[\t ]*\.\. )\|(?:[^|\s](?:[^|]*[^|\s])?)\| [^:]+::/m,lookbehind:!0,inside:{substitution:{pattern:/^\|(?:[^|\s]|[^|\s][^|]*[^|\s])\|/,alias:"attr-value",inside:{punctuation:/^\||\|$/}},directive:{pattern:/( )(?! )[^:]+::/,lookbehind:!0,alias:"function",inside:{punctuation:/::$/}}}},"link-target":[{pattern:/(^[\t ]*\.\. )\[[^\]]+\]/m,lookbehind:!0,alias:"string",inside:{punctuation:/^\[|\]$/}},{pattern:/(^[\t ]*\.\. )_(?:`[^`]+`|(?:[^:\\]|\\.)+):/m,lookbehind:!0,alias:"string",inside:{punctuation:/^_|:$/}}],directive:{pattern:/(^[\t ]*\.\. )[^:]+::/m,lookbehind:!0,alias:"function",inside:{punctuation:/::$/}},comment:{pattern:/(^[\t ]*\.\.)(?:(?: .+)?(?:(?:\r?\n|\r).+)+| .+)(?=(?:\r?\n|\r){2}|$)/m,lookbehind:!0},title:[{pattern:/^(([!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~])\2+)(?:\r?\n|\r).+(?:\r?\n|\r)\1$/m,inside:{punctuation:/^[!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~]+|[!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~]+$/,important:/.+/}},{pattern:/(^|(?:\r?\n|\r){2}).+(?:\r?\n|\r)([!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~])\2+(?=\r?\n|\r|$)/,lookbehind:!0,inside:{punctuation:/[!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~]+$/,important:/.+/}}],hr:{pattern:/((?:\r?\n|\r){2})([!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~])\2{3,}(?=(?:\r?\n|\r){2})/,lookbehind:!0,alias:"punctuation"},field:{pattern:/(^[\t ]*):[^:\r\n]+:(?= )/m,lookbehind:!0,alias:"attr-name"},"command-line-option":{pattern:/(^[\t ]*)(?:[+-][a-z\d]|(?:--|\/)[a-z\d-]+)(?:[ =](?:[a-z][\w-]*|<[^<>]+>))?(?:, (?:[+-][a-z\d]|(?:--|\/)[a-z\d-]+)(?:[ =](?:[a-z][\w-]*|<[^<>]+>))?)*(?=(?:\r?\n|\r)? {2,}\S)/im,lookbehind:!0,alias:"symbol"},"literal-block":{pattern:/::(?:\r?\n|\r){2}([ \t]+)(?![ \t]).+(?:(?:\r?\n|\r)\1.+)*/,inside:{"literal-block-punctuation":{pattern:/^::/,alias:"punctuation"}}},"quoted-literal-block":{pattern:/::(?:\r?\n|\r){2}([!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~]).*(?:(?:\r?\n|\r)\1.*)*/,inside:{"literal-block-punctuation":{pattern:/^(?:::|([!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~])\1*)/m,alias:"punctuation"}}},"list-bullet":{pattern:/(^[\t ]*)(?:[*+\-•‣⁃]|\(?(?:\d+|[a-z]|[ivxdclm]+)\)|(?:\d+|[a-z]|[ivxdclm]+)\.)(?= )/im,lookbehind:!0,alias:"punctuation"},"doctest-block":{pattern:/(^[\t ]*)>>> .+(?:(?:\r?\n|\r).+)*/m,lookbehind:!0,inside:{punctuation:/^>>>/}},inline:[{pattern:/(^|[\s\-:\/'"<(\[{])(?::[^:]+:`.*?`|`.*?`:[^:]+:|(\*\*?|``?|\|)(?!\s)(?:(?!\2).)*\S\2(?=[\s\-.,:;!?\\\/'")\]}]|$))/m,lookbehind:!0,inside:{bold:{pattern:/(^\*\*).+(?=\*\*$)/,lookbehind:!0},italic:{pattern:/(^\*).+(?=\*$)/,lookbehind:!0},"inline-literal":{pattern:/(^``).+(?=``$)/,lookbehind:!0,alias:"symbol"},role:{pattern:/^:[^:]+:|:[^:]+:$/,alias:"function",inside:{punctuation:/^:|:$/}},"interpreted-text":{pattern:/(^`).+(?=`$)/,lookbehind:!0,alias:"attr-value"},substitution:{pattern:/(^\|).+(?=\|$)/,lookbehind:!0,alias:"attr-value"},punctuation:/\*\*?|``?|\|/}}],link:[{pattern:/\[[^\[\]]+\]_(?=[\s\-.,:;!?\\\/'")\]}]|$)/,alias:"string",inside:{punctuation:/^\[|\]_$/}},{pattern:/(?:\b[a-z\d]+(?:[_.:+][a-z\d]+)*_?_|`[^`]+`_?_|_`[^`]+`)(?=[\s\-.,:;!?\\\/'")\]}]|$)/i,alias:"string",inside:{punctuation:/^_?`|`$|`?_?_$/}}],punctuation:{pattern:/(^[\t ]*)(?:\|(?= |$)|(?:---?|—|\.\.|__)(?= )|\.\.$)/m,lookbehind:!0}}}return og}var sg,Xw;function Lz(){if(Xw)return sg;Xw=1,sg=e,e.displayName="rip",e.aliases=[];function e(t){t.languages.rip={comment:{pattern:/#.*/,greedy:!0},char:{pattern:/\B`[^\s`'",.:;#\/\\()<>\[\]{}]\b/,greedy:!0},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},regex:{pattern:/(^|[^/])\/(?!\/)(?:\[[^\n\r\]]*\]|\\.|[^/\\\r\n\[])+\/(?=\s*(?:$|[\r\n,.;})]))/,lookbehind:!0,greedy:!0},keyword:/(?:=>|->)|\b(?:case|catch|class|else|exit|finally|if|raise|return|switch|try)\b/,builtin:/@|\bSystem\b/,boolean:/\b(?:false|true)\b/,date:/\b\d{4}-\d{2}-\d{2}\b/,time:/\b\d{2}:\d{2}:\d{2}\b/,datetime:/\b\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\b/,symbol:/:[^\d\s`'",.:;#\/\\()<>\[\]{}][^\s`'",.:;#\/\\()<>\[\]{}]*/,number:/[+-]?\b(?:\d+\.\d+|\d+)\b/,punctuation:/(?:\.{2,3})|[`,.:;=\/\\()<>\[\]{}]/,reference:/[^\d\s`'",.:;#\/\\()<>\[\]{}][^\s`'",.:;#\/\\()<>\[\]{}]*/}}return sg}var lg,Qw;function Dz(){if(Qw)return lg;Qw=1,lg=e,e.displayName="roboconf",e.aliases=[];function e(t){t.languages.roboconf={comment:/#.*/,keyword:{pattern:/(^|\s)(?:(?:external|import)\b|(?:facet|instance of)(?=[ \t]+[\w-]+[ \t]*\{))/,lookbehind:!0},component:{pattern:/[\w-]+(?=[ \t]*\{)/,alias:"variable"},property:/[\w.-]+(?=[ \t]*:)/,value:{pattern:/(=[ \t]*(?![ \t]))[^,;]+/,lookbehind:!0,alias:"attr-value"},optional:{pattern:/\(optional\)/,alias:"builtin"},wildcard:{pattern:/(\.)\*/,lookbehind:!0,alias:"operator"},punctuation:/[{},.;:=]/}}return lg}var ug,Jw;function Mz(){if(Jw)return ug;Jw=1,ug=e,e.displayName="robotframework",e.aliases=[];function e(t){(function(n){var i={pattern:/(^[ \t]*| {2}|\t)#.*/m,lookbehind:!0,greedy:!0},o={pattern:/((?:^|[^\\])(?:\\{2})*)[$@&%]\{(?:[^{}\r\n]|\{[^{}\r\n]*\})*\}/,lookbehind:!0,inside:{punctuation:/^[$@&%]\{|\}$/}};function l(f,m){var h={};h["section-header"]={pattern:/^ ?\*{3}.+?\*{3}/,alias:"keyword"};for(var S in m)h[S]=m[S];return h.tag={pattern:/([\r\n](?: {2}|\t)[ \t]*)\[[-\w]+\]/,lookbehind:!0,inside:{punctuation:/\[|\]/}},h.variable=o,h.comment=i,{pattern:RegExp(/^ ?\*{3}[ \t]*[ \t]*\*{3}(?:.|[\r\n](?!\*{3}))*/.source.replace(//g,function(){return f}),"im"),alias:"section",inside:h}}var u={pattern:/(\[Documentation\](?: {2}|\t)[ \t]*)(?![ \t]|#)(?:.|(?:\r\n?|\n)[ \t]*\.{3})+/,lookbehind:!0,alias:"string"},c={pattern:/([\r\n] ?)(?!#)(?:\S(?:[ \t]\S)*)+/,lookbehind:!0,alias:"function",inside:{variable:o}},p={pattern:/([\r\n](?: {2}|\t)[ \t]*)(?!\[|\.{3}|#)(?:\S(?:[ \t]\S)*)+/,lookbehind:!0,inside:{variable:o}};n.languages.robotframework={settings:l("Settings",{documentation:{pattern:/([\r\n] ?Documentation(?: {2}|\t)[ \t]*)(?![ \t]|#)(?:.|(?:\r\n?|\n)[ \t]*\.{3})+/,lookbehind:!0,alias:"string"},property:{pattern:/([\r\n] ?)(?!\.{3}|#)(?:\S(?:[ \t]\S)*)+/,lookbehind:!0}}),variables:l("Variables"),"test-cases":l("Test Cases",{"test-name":c,documentation:u,property:p}),keywords:l("Keywords",{"keyword-name":c,documentation:u,property:p}),tasks:l("Tasks",{"task-name":c,documentation:u,property:p}),comment:i},n.languages.robot=n.languages.robotframework})(t)}return ug}var cg,eT;function Fz(){if(eT)return cg;eT=1,cg=e,e.displayName="rust",e.aliases=[];function e(t){(function(n){for(var i=/\/\*(?:[^*/]|\*(?!\/)|\/(?!\*)|)*\*\//.source,o=0;o<2;o++)i=i.replace(//g,function(){return i});i=i.replace(//g,function(){return/[^\s\S]/.source}),n.languages.rust={comment:[{pattern:RegExp(/(^|[^\\])/.source+i),lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/b?"(?:\\[\s\S]|[^\\"])*"|b?r(#*)"(?:[^"]|"(?!\1))*"\1/,greedy:!0},char:{pattern:/b?'(?:\\(?:x[0-7][\da-fA-F]|u\{(?:[\da-fA-F]_*){1,6}\}|.)|[^\\\r\n\t'])'/,greedy:!0},attribute:{pattern:/#!?\[(?:[^\[\]"]|"(?:\\[\s\S]|[^\\"])*")*\]/,greedy:!0,alias:"attr-name",inside:{string:null}},"closure-params":{pattern:/([=(,:]\s*|\bmove\s*)\|[^|]*\||\|[^|]*\|(?=\s*(?:\{|->))/,lookbehind:!0,greedy:!0,inside:{"closure-punctuation":{pattern:/^\||\|$/,alias:"punctuation"},rest:null}},"lifetime-annotation":{pattern:/'\w+/,alias:"symbol"},"fragment-specifier":{pattern:/(\$\w+:)[a-z]+/,lookbehind:!0,alias:"punctuation"},variable:/\$\w+/,"function-definition":{pattern:/(\bfn\s+)\w+/,lookbehind:!0,alias:"function"},"type-definition":{pattern:/(\b(?:enum|struct|trait|type|union)\s+)\w+/,lookbehind:!0,alias:"class-name"},"module-declaration":[{pattern:/(\b(?:crate|mod)\s+)[a-z][a-z_\d]*/,lookbehind:!0,alias:"namespace"},{pattern:/(\b(?:crate|self|super)\s*)::\s*[a-z][a-z_\d]*\b(?:\s*::(?:\s*[a-z][a-z_\d]*\s*::)*)?/,lookbehind:!0,alias:"namespace",inside:{punctuation:/::/}}],keyword:[/\b(?:Self|abstract|as|async|await|become|box|break|const|continue|crate|do|dyn|else|enum|extern|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|override|priv|pub|ref|return|self|static|struct|super|trait|try|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\b/,/\b(?:bool|char|f(?:32|64)|[ui](?:8|16|32|64|128|size)|str)\b/],function:/\b[a-z_]\w*(?=\s*(?:::\s*<|\())/,macro:{pattern:/\b\w+!/,alias:"property"},constant:/\b[A-Z_][A-Z_\d]+\b/,"class-name":/\b[A-Z]\w*\b/,namespace:{pattern:/(?:\b[a-z][a-z_\d]*\s*::\s*)*\b[a-z][a-z_\d]*\s*::(?!\s*<)/,inside:{punctuation:/::/}},number:/\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(?:(?:\d(?:_?\d)*)?\.)?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)(?:_?(?:f32|f64|[iu](?:8|16|32|64|size)?))?\b/,boolean:/\b(?:false|true)\b/,punctuation:/->|\.\.=|\.{1,3}|::|[{}[\];(),:]/,operator:/[-+*\/%!^]=?|=[=>]?|&[&=]?|\|[|=]?|<>?=?|[@?]/},n.languages.rust["closure-params"].inside.rest=n.languages.rust,n.languages.rust.attribute.inside.string=n.languages.rust.string})(t)}return cg}var dg,tT;function Pz(){if(tT)return dg;tT=1,dg=e,e.displayName="sas",e.aliases=[];function e(t){(function(n){var i=/(?:"(?:""|[^"])*"(?!")|'(?:''|[^'])*'(?!'))/.source,o=/\b(?:\d[\da-f]*x|\d+(?:\.\d+)?(?:e[+-]?\d+)?)\b/i,l={pattern:RegExp(i+"[bx]"),alias:"number"},u={pattern:/&[a-z_]\w*/i},c={pattern:/((?:^|\s|=|\())%(?:ABORT|BY|CMS|COPY|DISPLAY|DO|ELSE|END|EVAL|GLOBAL|GO|GOTO|IF|INC|INCLUDE|INDEX|INPUT|KTRIM|LENGTH|LET|LIST|LOCAL|PUT|QKTRIM|QSCAN|QSUBSTR|QSYSFUNC|QUPCASE|RETURN|RUN|SCAN|SUBSTR|SUPERQ|SYMDEL|SYMEXIST|SYMGLOBL|SYMLOCAL|SYSCALL|SYSEVALF|SYSEXEC|SYSFUNC|SYSGET|SYSRPUT|THEN|TO|TSO|UNQUOTE|UNTIL|UPCASE|WHILE|WINDOW)\b/i,lookbehind:!0,alias:"keyword"},p={pattern:/(^|\s)(?:proc\s+\w+|data(?!=)|quit|run)\b/i,alias:"keyword",lookbehind:!0},f=[/\/\*[\s\S]*?\*\//,{pattern:/(^[ \t]*|;\s*)\*[^;]*;/m,lookbehind:!0}],m={pattern:RegExp(i),greedy:!0},h=/[$%@.(){}\[\];,\\]/,S={pattern:/%?\b\w+(?=\()/,alias:"keyword"},E={function:S,"arg-value":{pattern:/(=\s*)[A-Z\.]+/i,lookbehind:!0},operator:/=/,"macro-variable":u,arg:{pattern:/[A-Z]+/i,alias:"keyword"},number:o,"numeric-constant":l,punctuation:h,string:m},v={pattern:/\b(?:format|put)\b=?[\w'$.]+/i,inside:{keyword:/^(?:format|put)(?==)/i,equals:/=/,format:{pattern:/(?:\w|\$\d)+\.\d?/,alias:"number"}}},k={pattern:/\b(?:format|put)\s+[\w']+(?:\s+[$.\w]+)+(?=;)/i,inside:{keyword:/^(?:format|put)/i,format:{pattern:/[\w$]+\.\d?/,alias:"number"}}},T={pattern:/((?:^|\s)=?)(?:catname|checkpoint execute_always|dm|endsas|filename|footnote|%include|libname|%list|lock|missing|options|page|resetline|%run|sasfile|skip|sysecho|title\d?)\b/i,lookbehind:!0,alias:"keyword"},N={pattern:/(^|\s)(?:submit(?:\s+(?:load|norun|parseonly))?|endsubmit)\b/i,lookbehind:!0,alias:"keyword"},R=/aStore|accessControl|aggregation|audio|autotune|bayesianNetClassifier|bioMedImage|boolRule|builtins|cardinality|cdm|clustering|conditionalRandomFields|configuration|copula|countreg|dataDiscovery|dataPreprocess|dataSciencePilot|dataStep|decisionTree|deduplication|deepLearn|deepNeural|deepRnn|ds2|ecm|entityRes|espCluster|explainModel|factmac|fastKnn|fcmpact|fedSql|freqTab|gVarCluster|gam|gleam|graphSemiSupLearn|hiddenMarkovModel|hyperGroup|ica|image|iml|kernalPca|langModel|ldaTopic|loadStreams|mbc|mixed|mlTools|modelPublishing|network|neuralNet|nmf|nonParametricBayes|nonlinear|optNetwork|optimization|panel|pca|percentile|phreg|pls|qkb|qlim|quantreg|recommend|regression|reinforcementLearn|robustPca|ruleMining|sampling|sandwich|sccasl|search(?:Analytics)?|sentimentAnalysis|sequence|session(?:Prop)?|severity|simSystem|simple|smartData|sparkEmbeddedProcess|sparseML|spatialreg|spc|stabilityMonitoring|svDataDescription|svm|table|text(?:Filters|Frequency|Mining|Parse|Rule(?:Develop|Score)|Topic|Util)|timeData|transpose|tsInfo|tsReconcile|uniTimeSeries|varReduce/.source,A={pattern:RegExp(/(^|\s)(?:action\s+)?(?:)\.[a-z]+\b[^;]+/.source.replace(//g,function(){return R}),"i"),lookbehind:!0,inside:{keyword:RegExp(/(?:)\.[a-z]+\b/.source.replace(//g,function(){return R}),"i"),action:{pattern:/(?:action)/i,alias:"keyword"},comment:f,function:S,"arg-value":E["arg-value"],operator:E.operator,argument:E.arg,number:o,"numeric-constant":l,punctuation:h,string:m}},O={pattern:/((?:^|\s)=?)(?:after|analysis|and|array|barchart|barwidth|begingraph|by|call|cas|cbarline|cfill|class(?:lev)?|close|column|computed?|contains|continue|data(?==)|define|delete|describe|document|do\s+over|do|dol|drop|dul|else|end(?:comp|source)?|entryTitle|eval(?:uate)?|exec(?:ute)?|exit|file(?:name)?|fill(?:attrs)?|flist|fnc|function(?:list)?|global|goto|group(?:by)?|headline|headskip|histogram|if|infile|keep|keylabel|keyword|label|layout|leave|legendlabel|length|libname|loadactionset|merge|midpoints|_?null_|name|noobs|nowd|ods|options|or|otherwise|out(?:put)?|over(?:lay)?|plot|print|put|raise|ranexp|rannor|rbreak|retain|return|select|session|sessref|set|source|statgraph|sum|summarize|table|temp|terminate|then\s+do|then|title\d?|to|var|when|where|xaxisopts|y2axisopts|yaxisopts)\b/i,lookbehind:!0};n.languages.sas={datalines:{pattern:/^([ \t]*)(?:cards|(?:data)?lines);[\s\S]+?^[ \t]*;/im,lookbehind:!0,alias:"string",inside:{keyword:{pattern:/^(?:cards|(?:data)?lines)/i},punctuation:/;/}},"proc-sql":{pattern:/(^proc\s+(?:fed)?sql(?:\s+[\w|=]+)?;)[\s\S]+?(?=^(?:proc\s+\w+|data|quit|run);|(?![\s\S]))/im,lookbehind:!0,inside:{sql:{pattern:RegExp(/^[ \t]*(?:select|alter\s+table|(?:create|describe|drop)\s+(?:index|table(?:\s+constraints)?|view)|create\s+unique\s+index|insert\s+into|update)(?:|[^;"'])+;/.source.replace(//g,function(){return i}),"im"),alias:"language-sql",inside:n.languages.sql},"global-statements":T,"sql-statements":{pattern:/(^|\s)(?:disconnect\s+from|begin|commit|exec(?:ute)?|reset|rollback|validate)\b/i,lookbehind:!0,alias:"keyword"},number:o,"numeric-constant":l,punctuation:h,string:m}},"proc-groovy":{pattern:/(^proc\s+groovy(?:\s+[\w|=]+)?;)[\s\S]+?(?=^(?:proc\s+\w+|data|quit|run);|(?![\s\S]))/im,lookbehind:!0,inside:{comment:f,groovy:{pattern:RegExp(/(^[ \t]*submit(?:\s+(?:load|norun|parseonly))?)(?:|[^"'])+?(?=endsubmit;)/.source.replace(//g,function(){return i}),"im"),lookbehind:!0,alias:"language-groovy",inside:n.languages.groovy},keyword:O,"submit-statement":N,"global-statements":T,number:o,"numeric-constant":l,punctuation:h,string:m}},"proc-lua":{pattern:/(^proc\s+lua(?:\s+[\w|=]+)?;)[\s\S]+?(?=^(?:proc\s+\w+|data|quit|run);|(?![\s\S]))/im,lookbehind:!0,inside:{comment:f,lua:{pattern:RegExp(/(^[ \t]*submit(?:\s+(?:load|norun|parseonly))?)(?:|[^"'])+?(?=endsubmit;)/.source.replace(//g,function(){return i}),"im"),lookbehind:!0,alias:"language-lua",inside:n.languages.lua},keyword:O,"submit-statement":N,"global-statements":T,number:o,"numeric-constant":l,punctuation:h,string:m}},"proc-cas":{pattern:/(^proc\s+cas(?:\s+[\w|=]+)?;)[\s\S]+?(?=^(?:proc\s+\w+|quit|data);|(?![\s\S]))/im,lookbehind:!0,inside:{comment:f,"statement-var":{pattern:/((?:^|\s)=?)saveresult\s[^;]+/im,lookbehind:!0,inside:{statement:{pattern:/^saveresult\s+\S+/i,inside:{keyword:/^(?:saveresult)/i}},rest:E}},"cas-actions":A,statement:{pattern:/((?:^|\s)=?)(?:default|(?:un)?set|on|output|upload)[^;]+/im,lookbehind:!0,inside:E},step:p,keyword:O,function:S,format:v,altformat:k,"global-statements":T,number:o,"numeric-constant":l,punctuation:h,string:m}},"proc-args":{pattern:RegExp(/(^proc\s+\w+\s+)(?!\s)(?:[^;"']|)+;/.source.replace(//g,function(){return i}),"im"),lookbehind:!0,inside:E},"macro-keyword":c,"macro-variable":u,"macro-string-functions":{pattern:/((?:^|\s|=))%(?:BQUOTE|NRBQUOTE|NRQUOTE|NRSTR|QUOTE|STR)\(.*?(?:[^%]\))/i,lookbehind:!0,inside:{function:{pattern:/%(?:BQUOTE|NRBQUOTE|NRQUOTE|NRSTR|QUOTE|STR)/i,alias:"keyword"},"macro-keyword":c,"macro-variable":u,"escaped-char":{pattern:/%['"()<>=¬^~;,#]/},punctuation:h}},"macro-declaration":{pattern:/^%macro[^;]+(?=;)/im,inside:{keyword:/%macro/i}},"macro-end":{pattern:/^%mend[^;]+(?=;)/im,inside:{keyword:/%mend/i}},macro:{pattern:/%_\w+(?=\()/,alias:"keyword"},input:{pattern:/\binput\s[-\w\s/*.$&]+;/i,inside:{input:{alias:"keyword",pattern:/^input/i},comment:f,number:o,"numeric-constant":l}},"options-args":{pattern:/(^options)[-'"|/\\<>*+=:()\w\s]*(?=;)/im,lookbehind:!0,inside:E},"cas-actions":A,comment:f,function:S,format:v,altformat:k,"numeric-constant":l,datetime:{pattern:RegExp(i+"(?:dt?|t)"),alias:"number"},string:m,step:p,keyword:O,"operator-keyword":{pattern:/\b(?:eq|ge|gt|in|le|lt|ne|not)\b/i,alias:"operator"},number:o,operator:/\*\*?|\|\|?|!!?|¦¦?|<[>=]?|>[<=]?|[-+\/=&]|[~¬^]=?/,punctuation:h}})(t)}return dg}var pg,nT;function Uz(){if(nT)return pg;nT=1,pg=e,e.displayName="sass",e.aliases=[];function e(t){(function(n){n.languages.sass=n.languages.extend("css",{comment:{pattern:/^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t].+)*/m,lookbehind:!0,greedy:!0}}),n.languages.insertBefore("sass","atrule",{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,greedy:!0,inside:{atrule:/(?:@[\w-]+|[+=])/}}}),delete n.languages.sass.atrule;var i=/\$[-\w]+|#\{\$[-\w]+\}/,o=[/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|not|or)\b/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}];n.languages.insertBefore("sass","property",{"variable-line":{pattern:/^[ \t]*\$.+/m,greedy:!0,inside:{punctuation:/:/,variable:i,operator:o}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s].*)/m,greedy:!0,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable:i,operator:o,important:n.languages.sass.important}}}),delete n.languages.sass.property,delete n.languages.sass.important,n.languages.insertBefore("sass","punctuation",{selector:{pattern:/^([ \t]*)\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*)*/m,lookbehind:!0,greedy:!0}})})(t)}return pg}var fg,rT;function Bz(){if(rT)return fg;rT=1;var e=mh();fg=t,t.displayName="scala",t.aliases=[];function t(n){n.register(e),n.languages.scala=n.languages.extend("java",{"triple-quoted-string":{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string"},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},keyword:/<-|=>|\b(?:abstract|case|catch|class|def|do|else|extends|final|finally|for|forSome|if|implicit|import|lazy|match|new|null|object|override|package|private|protected|return|sealed|self|super|this|throw|trait|try|type|val|var|while|with|yield)\b/,number:/\b0x(?:[\da-f]*\.)?[\da-f]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e\d+)?[dfl]?/i,builtin:/\b(?:Any|AnyRef|AnyVal|Boolean|Byte|Char|Double|Float|Int|Long|Nothing|Short|String|Unit)\b/,symbol:/'[^\d\s\\]\w*/}),n.languages.insertBefore("scala","triple-quoted-string",{"string-interpolation":{pattern:/\b[a-z]\w*(?:"""(?:[^$]|\$(?:[^{]|\{(?:[^{}]|\{[^{}]*\})*\}))*?"""|"(?:[^$"\r\n]|\$(?:[^{]|\{(?:[^{}]|\{[^{}]*\})*\}))*")/i,greedy:!0,inside:{id:{pattern:/^\w+/,greedy:!0,alias:"function"},escape:{pattern:/\\\$"|\$[$"]/,greedy:!0,alias:"symbol"},interpolation:{pattern:/\$(?:\w+|\{(?:[^{}]|\{[^{}]*\})*\})/,greedy:!0,inside:{punctuation:/^\$\{?|\}$/,expression:{pattern:/[\s\S]+/,inside:n.languages.scala}}},string:/[\s\S]+/}}}),delete n.languages.scala["class-name"],delete n.languages.scala.function}return fg}var gg,aT;function jz(){if(aT)return gg;aT=1,gg=e,e.displayName="scss",e.aliases=[];function e(t){t.languages.scss=t.languages.extend("css",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-](?:\([^()]+\)|[^()\s]|\s+(?!\s))*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)?url(?=\()/i,selector:{pattern:/(?=\S)[^@;{}()]?(?:[^@;{}()\s]|\s+(?!\s)|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}][^:{}]*[:{][^}]))/,inside:{parent:{pattern:/&/,alias:"important"},placeholder:/%[-\w]+/,variable:/\$[-\w]+|#\{\$[-\w]+\}/}},property:{pattern:/(?:[-\w]|\$[-\w]|#\{\$[-\w]+\})+(?=\s*:)/,inside:{variable:/\$[-\w]+|#\{\$[-\w]+\}/}}}),t.languages.insertBefore("scss","atrule",{keyword:[/@(?:content|debug|each|else(?: if)?|extend|for|forward|function|if|import|include|mixin|return|use|warn|while)\b/i,{pattern:/( )(?:from|through)(?= )/,lookbehind:!0}]}),t.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),t.languages.insertBefore("scss","function",{"module-modifier":{pattern:/\b(?:as|hide|show|with)\b/i,alias:"keyword"},placeholder:{pattern:/%[-\w]+/,alias:"selector"},statement:{pattern:/\B!(?:default|optional)\b/i,alias:"keyword"},boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"},operator:{pattern:/(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|not|or)(?=\s)/,lookbehind:!0}}),t.languages.scss.atrule.inside.rest=t.languages.scss}return gg}var mg,iT;function zz(){if(iT)return mg;iT=1;var e=JA();mg=t,t.displayName="shellSession",t.aliases=[];function t(n){n.register(e),(function(i){var o=[/"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/.source,/'[^']*'/.source,/\$'(?:[^'\\]|\\[\s\S])*'/.source,/<<-?\s*(["']?)(\w+)\1\s[\s\S]*?[\r\n]\2/.source].join("|");i.languages["shell-session"]={command:{pattern:RegExp(/^/.source+"(?:"+(/[^\s@:$#%*!/\\]+@[^\r\n@:$#%*!/\\]+(?::[^\0-\x1F$#%*?"<>:;|]+)?/.source+"|"+/[/~.][^\0-\x1F$#%*?"<>@:;|]*/.source)+")?"+/[$#%](?=\s)/.source+/(?:[^\\\r\n \t'"<$]|[ \t](?:(?!#)|#.*$)|\\(?:[^\r]|\r\n?)|\$(?!')|<(?!<)|<>)+/.source.replace(/<>/g,function(){return o}),"m"),greedy:!0,inside:{info:{pattern:/^[^#$%]+/,alias:"punctuation",inside:{user:/^[^\s@:$#%*!/\\]+@[^\r\n@:$#%*!/\\]+/,punctuation:/:/,path:/[\s\S]+/}},bash:{pattern:/(^[$#%]\s*)\S[\s\S]*/,lookbehind:!0,alias:"language-bash",inside:i.languages.bash},"shell-symbol":{pattern:/^[$#%]/,alias:"important"}}},output:/.(?:.*(?:[\r\n]|.$))*/},i.languages["sh-session"]=i.languages.shellsession=i.languages["shell-session"]})(n)}return mg}var hg,oT;function $z(){if(oT)return hg;oT=1,hg=e,e.displayName="smali",e.aliases=[];function e(t){t.languages.smali={comment:/#.*/,string:{pattern:/"(?:[^\r\n\\"]|\\.)*"|'(?:[^\r\n\\']|\\(?:.|u[\da-fA-F]{4}))'/,greedy:!0},"class-name":{pattern:/(^|[^L])L(?:(?:\w+|`[^`\r\n]*`)\/)*(?:[\w$]+|`[^`\r\n]*`)(?=\s*;)/,lookbehind:!0,inside:{"class-name":{pattern:/(^L|\/)(?:[\w$]+|`[^`\r\n]*`)$/,lookbehind:!0},namespace:{pattern:/^(L)(?:(?:\w+|`[^`\r\n]*`)\/)+/,lookbehind:!0,inside:{punctuation:/\//}},builtin:/^L/}},builtin:[{pattern:/([();\[])[BCDFIJSVZ]+/,lookbehind:!0},{pattern:/([\w$>]:)[BCDFIJSVZ]/,lookbehind:!0}],keyword:[{pattern:/(\.end\s+)[\w-]+/,lookbehind:!0},{pattern:/(^|[^\w.-])\.(?!\d)[\w-]+/,lookbehind:!0},{pattern:/(^|[^\w.-])(?:abstract|annotation|bridge|constructor|enum|final|interface|private|protected|public|runtime|static|synthetic|system|transient)(?![\w.-])/,lookbehind:!0}],function:{pattern:/(^|[^\w.-])(?:\w+|<[\w$-]+>)(?=\()/,lookbehind:!0},field:{pattern:/[\w$]+(?=:)/,alias:"variable"},register:{pattern:/(^|[^\w.-])[vp]\d(?![\w.-])/,lookbehind:!0,alias:"variable"},boolean:{pattern:/(^|[^\w.-])(?:false|true)(?![\w.-])/,lookbehind:!0},number:{pattern:/(^|[^/\w.-])-?(?:NAN|INFINITY|0x(?:[\dA-F]+(?:\.[\dA-F]*)?|\.[\dA-F]+)(?:p[+-]?[\dA-F]+)?|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?)[dflst]?(?![\w.-])/i,lookbehind:!0},label:{pattern:/(:)\w+/,lookbehind:!0,alias:"property"},operator:/->|\.\.|[\[=]/,punctuation:/[{}(),;:]/}}return hg}var bg,sT;function qz(){if(sT)return bg;sT=1,bg=e,e.displayName="smalltalk",e.aliases=[];function e(t){t.languages.smalltalk={comment:{pattern:/"(?:""|[^"])*"/,greedy:!0},char:{pattern:/\$./,greedy:!0},string:{pattern:/'(?:''|[^'])*'/,greedy:!0},symbol:/#[\da-z]+|#(?:-|([+\/\\*~<>=@%|&?!])\1?)|#(?=\()/i,"block-arguments":{pattern:/(\[\s*):[^\[|]*\|/,lookbehind:!0,inside:{variable:/:[\da-z]+/i,punctuation:/\|/}},"temporary-variables":{pattern:/\|[^|]+\|/,inside:{variable:/[\da-z]+/i,punctuation:/\|/}},keyword:/\b(?:new|nil|self|super)\b/,boolean:/\b(?:false|true)\b/,number:[/\d+r-?[\dA-Z]+(?:\.[\dA-Z]+)?(?:e-?\d+)?/,/\b\d+(?:\.\d+)?(?:e-?\d+)?/],operator:/[<=]=?|:=|~[~=]|\/\/?|\\\\|>[>=]?|[!^+\-*&|,@]/,punctuation:/[.;:?\[\](){}]/}}return bg}var yg,lT;function Gz(){if(lT)return yg;lT=1;var e=an();yg=t,t.displayName="smarty",t.aliases=[];function t(n){n.register(e),(function(i){i.languages.smarty={comment:{pattern:/^\{\*[\s\S]*?\*\}/,greedy:!0},"embedded-php":{pattern:/^\{php\}[\s\S]*?\{\/php\}/,greedy:!0,inside:{smarty:{pattern:/^\{php\}|\{\/php\}$/,inside:null},php:{pattern:/[\s\S]+/,alias:"language-php",inside:i.languages.php}}},string:[{pattern:/"(?:\\.|[^"\\\r\n])*"/,greedy:!0,inside:{interpolation:{pattern:/\{[^{}]*\}|`[^`]*`/,inside:{"interpolation-punctuation":{pattern:/^[{`]|[`}]$/,alias:"punctuation"},expression:{pattern:/[\s\S]+/,inside:null}}},variable:/\$\w+/}},{pattern:/'(?:\\.|[^'\\\r\n])*'/,greedy:!0}],keyword:{pattern:/(^\{\/?)[a-z_]\w*\b(?!\()/i,lookbehind:!0,greedy:!0},delimiter:{pattern:/^\{\/?|\}$/,greedy:!0,alias:"punctuation"},number:/\b0x[\dA-Fa-f]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][-+]?\d+)?/,variable:[/\$(?!\d)\w+/,/#(?!\d)\w+#/,{pattern:/(\.|->|\w\s*=)(?!\d)\w+\b(?!\()/,lookbehind:!0},{pattern:/(\[)(?!\d)\w+(?=\])/,lookbehind:!0}],function:{pattern:/(\|\s*)@?[a-z_]\w*|\b[a-z_]\w*(?=\()/i,lookbehind:!0},"attr-name":/\b[a-z_]\w*(?=\s*=)/i,boolean:/\b(?:false|no|off|on|true|yes)\b/,punctuation:/[\[\](){}.,:`]|->/,operator:[/[+\-*\/%]|==?=?|[!<>]=?|&&|\|\|?/,/\bis\s+(?:not\s+)?(?:div|even|odd)(?:\s+by)?\b/,/\b(?:and|eq|gt?e|gt|lt?e|lt|mod|neq?|not|or)\b/]},i.languages.smarty["embedded-php"].inside.smarty.inside=i.languages.smarty,i.languages.smarty.string[0].inside.interpolation.inside.expression.inside=i.languages.smarty;var o=/"(?:\\.|[^"\\\r\n])*"|'(?:\\.|[^'\\\r\n])*'/,l=RegExp(/\{\*[\s\S]*?\*\}/.source+"|"+/\{php\}[\s\S]*?\{\/php\}/.source+"|"+/\{(?:[^{}"']||\{(?:[^{}"']||\{(?:[^{}"']|)*\})*\})*\}/.source.replace(//g,function(){return o.source}),"g");i.hooks.add("before-tokenize",function(u){var c="{literal}",p="{/literal}",f=!1;i.languages["markup-templating"].buildPlaceholders(u,"smarty",l,function(m){return m===p&&(f=!1),f?!1:(m===c&&(f=!0),!0)})}),i.hooks.add("after-tokenize",function(u){i.languages["markup-templating"].tokenizePlaceholders(u,"smarty")})})(n)}return yg}var Eg,uT;function Hz(){if(uT)return Eg;uT=1,Eg=e,e.displayName="sml",e.aliases=["smlnj"];function e(t){(function(n){var i=/\b(?:abstype|and|andalso|as|case|datatype|do|else|end|eqtype|exception|fn|fun|functor|handle|if|in|include|infix|infixr|let|local|nonfix|of|op|open|orelse|raise|rec|sharing|sig|signature|struct|structure|then|type|val|where|while|with|withtype)\b/i;n.languages.sml={comment:/\(\*(?:[^*(]|\*(?!\))|\((?!\*)|\(\*(?:[^*(]|\*(?!\))|\((?!\*))*\*\))*\*\)/,string:{pattern:/#?"(?:[^"\\]|\\.)*"/,greedy:!0},"class-name":[{pattern:RegExp(/((?:^|[^:]):\s*)(?:\s*(?:(?:\*|->)\s*|,\s*(?:(?=)|(?!)\s+)))*/.source.replace(//g,function(){return/\s*(?:[*,]|->)/.source}).replace(//g,function(){return/(?:'[\w']*||\((?:[^()]|\([^()]*\))*\)|\{(?:[^{}]|\{[^{}]*\})*\})(?:\s+)*/.source}).replace(//g,function(){return/(?!)[a-z\d_][\w'.]*/.source}).replace(//g,function(){return i.source}),"i"),lookbehind:!0,greedy:!0,inside:null},{pattern:/((?:^|[^\w'])(?:datatype|exception|functor|signature|structure|type)\s+)[a-z_][\w'.]*/i,lookbehind:!0}],function:{pattern:/((?:^|[^\w'])fun\s+)[a-z_][\w'.]*/i,lookbehind:!0},keyword:i,variable:{pattern:/(^|[^\w'])'[\w']*/,lookbehind:!0},number:/~?\b(?:\d+(?:\.\d+)?(?:e~?\d+)?|0x[\da-f]+)\b/i,word:{pattern:/\b0w(?:\d+|x[\da-f]+)\b/i,alias:"constant"},boolean:/\b(?:false|true)\b/i,operator:/\.\.\.|:[>=:]|=>?|->|[<>]=?|[!+\-*/^#|@~]/,punctuation:/[(){}\[\].:,;]/},n.languages.sml["class-name"][0].inside=n.languages.sml,n.languages.smlnj=n.languages.sml})(t)}return Eg}var Sg,cT;function Wz(){if(cT)return Sg;cT=1,Sg=e,e.displayName="solidity",e.aliases=["sol"];function e(t){t.languages.solidity=t.languages.extend("clike",{"class-name":{pattern:/(\b(?:contract|enum|interface|library|new|struct|using)\s+)(?!\d)[\w$]+/,lookbehind:!0},keyword:/\b(?:_|anonymous|as|assembly|assert|break|calldata|case|constant|constructor|continue|contract|default|delete|do|else|emit|enum|event|external|for|from|function|if|import|indexed|inherited|interface|internal|is|let|library|mapping|memory|modifier|new|payable|pragma|private|public|pure|require|returns?|revert|selfdestruct|solidity|storage|struct|suicide|switch|this|throw|using|var|view|while)\b/,operator:/=>|->|:=|=:|\*\*|\+\+|--|\|\||&&|<<=?|>>=?|[-+*/%^&|<>!=]=?|[~?]/}),t.languages.insertBefore("solidity","keyword",{builtin:/\b(?:address|bool|byte|u?int(?:8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?|string|bytes(?:[1-9]|[12]\d|3[0-2])?)\b/}),t.languages.insertBefore("solidity","number",{version:{pattern:/([<>]=?|\^)\d+\.\d+\.\d+\b/,lookbehind:!0,alias:"number"}}),t.languages.sol=t.languages.solidity}return Sg}var vg,dT;function Vz(){if(dT)return vg;dT=1,vg=e,e.displayName="solutionFile",e.aliases=[];function e(t){(function(n){var i={pattern:/\{[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}\}/i,alias:"constant",inside:{punctuation:/[{}]/}};n.languages["solution-file"]={comment:{pattern:/#.*/,greedy:!0},string:{pattern:/"[^"\r\n]*"|'[^'\r\n]*'/,greedy:!0,inside:{guid:i}},object:{pattern:/^([ \t]*)(?:([A-Z]\w*)\b(?=.*(?:\r\n?|\n)(?:\1[ \t].*(?:\r\n?|\n))*\1End\2(?=[ \t]*$))|End[A-Z]\w*(?=[ \t]*$))/m,lookbehind:!0,greedy:!0,alias:"keyword"},property:{pattern:/^([ \t]*)(?!\s)[^\r\n"#=()]*[^\s"#=()](?=\s*=)/m,lookbehind:!0,inside:{guid:i}},guid:i,number:/\b\d+(?:\.\d+)*\b/,boolean:/\b(?:FALSE|TRUE)\b/,operator:/=/,punctuation:/[(),]/},n.languages.sln=n.languages["solution-file"]})(t)}return vg}var kg,pT;function Yz(){if(pT)return kg;pT=1;var e=an();kg=t,t.displayName="soy",t.aliases=[];function t(n){n.register(e),(function(i){var o=/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,l=/\b\d+(?:\.\d+)?(?:[eE][+-]?\d+)?\b|\b0x[\dA-F]+\b/;i.languages.soy={comment:[/\/\*[\s\S]*?\*\//,{pattern:/(\s)\/\/.*/,lookbehind:!0,greedy:!0}],"command-arg":{pattern:/(\{+\/?\s*(?:alias|call|delcall|delpackage|deltemplate|namespace|template)\s+)\.?[\w.]+/,lookbehind:!0,alias:"string",inside:{punctuation:/\./}},parameter:{pattern:/(\{+\/?\s*@?param\??\s+)\.?[\w.]+/,lookbehind:!0,alias:"variable"},keyword:[{pattern:/(\{+\/?[^\S\r\n]*)(?:\\[nrt]|alias|call|case|css|default|delcall|delpackage|deltemplate|else(?:if)?|fallbackmsg|for(?:each)?|if(?:empty)?|lb|let|literal|msg|namespace|nil|@?param\??|rb|sp|switch|template|xid)/,lookbehind:!0},/\b(?:any|as|attributes|bool|css|float|html|in|int|js|list|map|null|number|string|uri)\b/],delimiter:{pattern:/^\{+\/?|\/?\}+$/,alias:"punctuation"},property:/\w+(?==)/,variable:{pattern:/\$[^\W\d]\w*(?:\??(?:\.\w+|\[[^\]]+\]))*/,inside:{string:{pattern:o,greedy:!0},number:l,punctuation:/[\[\].?]/}},string:{pattern:o,greedy:!0},function:[/\w+(?=\()/,{pattern:/(\|[^\S\r\n]*)\w+/,lookbehind:!0}],boolean:/\b(?:false|true)\b/,number:l,operator:/\?:?|<=?|>=?|==?|!=|[+*/%-]|\b(?:and|not|or)\b/,punctuation:/[{}()\[\]|.,:]/},i.hooks.add("before-tokenize",function(u){var c=/\{\{.+?\}\}|\{.+?\}|\s\/\/.*|\/\*[\s\S]*?\*\//g,p="{literal}",f="{/literal}",m=!1;i.languages["markup-templating"].buildPlaceholders(u,"soy",c,function(h){return h===f&&(m=!1),m?!1:(h===p&&(m=!0),!0)})}),i.hooks.add("after-tokenize",function(u){i.languages["markup-templating"].tokenizePlaceholders(u,"soy")})})(n)}return kg}var _g,fT;function rR(){if(fT)return _g;fT=1,_g=e,e.displayName="turtle",e.aliases=[];function e(t){t.languages.turtle={comment:{pattern:/#.*/,greedy:!0},"multiline-string":{pattern:/"""(?:(?:""?)?(?:[^"\\]|\\.))*"""|'''(?:(?:''?)?(?:[^'\\]|\\.))*'''/,greedy:!0,alias:"string",inside:{comment:/#.*/}},string:{pattern:/"(?:[^\\"\r\n]|\\.)*"|'(?:[^\\'\r\n]|\\.)*'/,greedy:!0},url:{pattern:/<(?:[^\x00-\x20<>"{}|^`\\]|\\(?:u[\da-fA-F]{4}|U[\da-fA-F]{8}))*>/,greedy:!0,inside:{punctuation:/[<>]/}},function:{pattern:/(?:(?![-.\d\xB7])[-.\w\xB7\xC0-\uFFFD]+)?:(?:(?![-.])(?:[-.:\w\xC0-\uFFFD]|%[\da-f]{2}|\\.)+)?/i,inside:{"local-name":{pattern:/([^:]*:)[\s\S]+/,lookbehind:!0},prefix:{pattern:/[\s\S]+/,inside:{punctuation:/:/}}}},number:/[+-]?\b\d+(?:\.\d*)?(?:e[+-]?\d+)?/i,punctuation:/[{}.,;()[\]]|\^\^/,boolean:/\b(?:false|true)\b/,keyword:[/(?:\ba|@prefix|@base)\b|=/,/\b(?:base|graph|prefix)\b/i],tag:{pattern:/@[a-z]+(?:-[a-z\d]+)*/i,inside:{punctuation:/@/}}},t.languages.trig=t.languages.turtle}return _g}var wg,gT;function Kz(){if(gT)return wg;gT=1;var e=rR();wg=t,t.displayName="sparql",t.aliases=["rq"];function t(n){n.register(e),n.languages.sparql=n.languages.extend("turtle",{boolean:/\b(?:false|true)\b/i,variable:{pattern:/[?$]\w+/,greedy:!0}}),n.languages.insertBefore("sparql","punctuation",{keyword:[/\b(?:A|ADD|ALL|AS|ASC|ASK|BNODE|BY|CLEAR|CONSTRUCT|COPY|CREATE|DATA|DEFAULT|DELETE|DESC|DESCRIBE|DISTINCT|DROP|EXISTS|FILTER|FROM|GROUP|HAVING|INSERT|INTO|LIMIT|LOAD|MINUS|MOVE|NAMED|NOT|NOW|OFFSET|OPTIONAL|ORDER|RAND|REDUCED|SELECT|SEPARATOR|SERVICE|SILENT|STRUUID|UNION|USING|UUID|VALUES|WHERE)\b/i,/\b(?:ABS|AVG|BIND|BOUND|CEIL|COALESCE|CONCAT|CONTAINS|COUNT|DATATYPE|DAY|ENCODE_FOR_URI|FLOOR|GROUP_CONCAT|HOURS|IF|IRI|isBLANK|isIRI|isLITERAL|isNUMERIC|isURI|LANG|LANGMATCHES|LCASE|MAX|MD5|MIN|MINUTES|MONTH|REGEX|REPLACE|ROUND|sameTerm|SAMPLE|SECONDS|SHA1|SHA256|SHA384|SHA512|STR|STRAFTER|STRBEFORE|STRDT|STRENDS|STRLANG|STRLEN|STRSTARTS|SUBSTR|SUM|TIMEZONE|TZ|UCASE|URI|YEAR)\b(?=\s*\()/i,/\b(?:BASE|GRAPH|PREFIX)\b/i]}),n.languages.rq=n.languages.sparql}return wg}var Tg,mT;function Zz(){if(mT)return Tg;mT=1,Tg=e,e.displayName="splunkSpl",e.aliases=[];function e(t){t.languages["splunk-spl"]={comment:/`comment\("(?:\\.|[^\\"])*"\)`/,string:{pattern:/"(?:\\.|[^\\"])*"/,greedy:!0},keyword:/\b(?:abstract|accum|addcoltotals|addinfo|addtotals|analyzefields|anomalies|anomalousvalue|anomalydetection|append|appendcols|appendcsv|appendlookup|appendpipe|arules|associate|audit|autoregress|bin|bucket|bucketdir|chart|cluster|cofilter|collect|concurrency|contingency|convert|correlate|datamodel|dbinspect|dedup|delete|delta|diff|erex|eval|eventcount|eventstats|extract|fieldformat|fields|fieldsummary|filldown|fillnull|findtypes|folderize|foreach|format|from|gauge|gentimes|geom|geomfilter|geostats|head|highlight|history|iconify|input|inputcsv|inputlookup|iplocation|join|kmeans|kv|kvform|loadjob|localize|localop|lookup|makecontinuous|makemv|makeresults|map|mcollect|metadata|metasearch|meventcollect|mstats|multikv|multisearch|mvcombine|mvexpand|nomv|outlier|outputcsv|outputlookup|outputtext|overlap|pivot|predict|rangemap|rare|regex|relevancy|reltime|rename|replace|rest|return|reverse|rex|rtorder|run|savedsearch|script|scrub|search|searchtxn|selfjoin|sendemail|set|setfields|sichart|sirare|sistats|sitimechart|sitop|sort|spath|stats|strcat|streamstats|table|tags|tail|timechart|timewrap|top|transaction|transpose|trendline|tscollect|tstats|typeahead|typelearner|typer|union|uniq|untable|where|x11|xmlkv|xmlunescape|xpath|xyseries)\b/i,"operator-word":{pattern:/\b(?:and|as|by|not|or|xor)\b/i,alias:"operator"},function:/\b\w+(?=\s*\()/,property:/\b\w+(?=\s*=(?!=))/,date:{pattern:/\b\d{1,2}\/\d{1,2}\/\d{1,4}(?:(?::\d{1,2}){3})?\b/,alias:"number"},number:/\b\d+(?:\.\d+)?\b/,boolean:/\b(?:f|false|t|true)\b/i,operator:/[<>=]=?|[-+*/%|]/,punctuation:/[()[\],]/}}return Tg}var xg,hT;function Xz(){if(hT)return xg;hT=1,xg=e,e.displayName="sqf",e.aliases=[];function e(t){t.languages.sqf=t.languages.extend("clike",{string:{pattern:/"(?:(?:"")?[^"])*"(?!")|'(?:[^'])*'/,greedy:!0},keyword:/\b(?:breakOut|breakTo|call|case|catch|default|do|echo|else|execFSM|execVM|exitWith|for|forEach|forEachMember|forEachMemberAgent|forEachMemberTeam|from|goto|if|nil|preprocessFile|preprocessFileLineNumbers|private|scopeName|spawn|step|switch|then|throw|to|try|while|with)\b/i,boolean:/\b(?:false|true)\b/i,function:/\b(?:abs|accTime|acos|action|actionIDs|actionKeys|actionKeysImages|actionKeysNames|actionKeysNamesArray|actionName|actionParams|activateAddons|activatedAddons|activateKey|add3DENConnection|add3DENEventHandler|add3DENLayer|addAction|addBackpack|addBackpackCargo|addBackpackCargoGlobal|addBackpackGlobal|addCamShake|addCuratorAddons|addCuratorCameraArea|addCuratorEditableObjects|addCuratorEditingArea|addCuratorPoints|addEditorObject|addEventHandler|addForce|addForceGeneratorRTD|addGoggles|addGroupIcon|addHandgunItem|addHeadgear|addItem|addItemCargo|addItemCargoGlobal|addItemPool|addItemToBackpack|addItemToUniform|addItemToVest|addLiveStats|addMagazine|addMagazineAmmoCargo|addMagazineCargo|addMagazineCargoGlobal|addMagazineGlobal|addMagazinePool|addMagazines|addMagazineTurret|addMenu|addMenuItem|addMissionEventHandler|addMPEventHandler|addMusicEventHandler|addOwnedMine|addPlayerScores|addPrimaryWeaponItem|addPublicVariableEventHandler|addRating|addResources|addScore|addScoreSide|addSecondaryWeaponItem|addSwitchableUnit|addTeamMember|addToRemainsCollector|addTorque|addUniform|addVehicle|addVest|addWaypoint|addWeapon|addWeaponCargo|addWeaponCargoGlobal|addWeaponGlobal|addWeaponItem|addWeaponPool|addWeaponTurret|admin|agent|agents|AGLToASL|aimedAtTarget|aimPos|airDensityCurveRTD|airDensityRTD|airplaneThrottle|airportSide|AISFinishHeal|alive|all3DENEntities|allAirports|allControls|allCurators|allCutLayers|allDead|allDeadMen|allDisplays|allGroups|allMapMarkers|allMines|allMissionObjects|allow3DMode|allowCrewInImmobile|allowCuratorLogicIgnoreAreas|allowDamage|allowDammage|allowFileOperations|allowFleeing|allowGetIn|allowSprint|allPlayers|allSimpleObjects|allSites|allTurrets|allUnits|allUnitsUAV|allVariables|ammo|ammoOnPylon|animate|animateBay|animateDoor|animatePylon|animateSource|animationNames|animationPhase|animationSourcePhase|animationState|append|apply|armoryPoints|arrayIntersect|asin|ASLToAGL|ASLToATL|assert|assignAsCargo|assignAsCargoIndex|assignAsCommander|assignAsDriver|assignAsGunner|assignAsTurret|assignCurator|assignedCargo|assignedCommander|assignedDriver|assignedGunner|assignedItems|assignedTarget|assignedTeam|assignedVehicle|assignedVehicleRole|assignItem|assignTeam|assignToAirport|atan|atan2|atg|ATLToASL|attachedObject|attachedObjects|attachedTo|attachObject|attachTo|attackEnabled|backpack|backpackCargo|backpackContainer|backpackItems|backpackMagazines|backpackSpaceFor|behaviour|benchmark|binocular|blufor|boundingBox|boundingBoxReal|boundingCenter|briefingName|buildingExit|buildingPos|buldozer_EnableRoadDiag|buldozer_IsEnabledRoadDiag|buldozer_LoadNewRoads|buldozer_reloadOperMap|buttonAction|buttonSetAction|cadetMode|callExtension|camCommand|camCommit|camCommitPrepared|camCommitted|camConstuctionSetParams|camCreate|camDestroy|cameraEffect|cameraEffectEnableHUD|cameraInterest|cameraOn|cameraView|campaignConfigFile|camPreload|camPreloaded|camPrepareBank|camPrepareDir|camPrepareDive|camPrepareFocus|camPrepareFov|camPrepareFovRange|camPreparePos|camPrepareRelPos|camPrepareTarget|camSetBank|camSetDir|camSetDive|camSetFocus|camSetFov|camSetFovRange|camSetPos|camSetRelPos|camSetTarget|camTarget|camUseNVG|canAdd|canAddItemToBackpack|canAddItemToUniform|canAddItemToVest|cancelSimpleTaskDestination|canFire|canMove|canSlingLoad|canStand|canSuspend|canTriggerDynamicSimulation|canUnloadInCombat|canVehicleCargo|captive|captiveNum|cbChecked|cbSetChecked|ceil|channelEnabled|cheatsEnabled|checkAIFeature|checkVisibility|civilian|className|clear3DENAttribute|clear3DENInventory|clearAllItemsFromBackpack|clearBackpackCargo|clearBackpackCargoGlobal|clearForcesRTD|clearGroupIcons|clearItemCargo|clearItemCargoGlobal|clearItemPool|clearMagazineCargo|clearMagazineCargoGlobal|clearMagazinePool|clearOverlay|clearRadio|clearVehicleInit|clearWeaponCargo|clearWeaponCargoGlobal|clearWeaponPool|clientOwner|closeDialog|closeDisplay|closeOverlay|collapseObjectTree|collect3DENHistory|collectiveRTD|combatMode|commandArtilleryFire|commandChat|commander|commandFire|commandFollow|commandFSM|commandGetOut|commandingMenu|commandMove|commandRadio|commandStop|commandSuppressiveFire|commandTarget|commandWatch|comment|commitOverlay|compile|compileFinal|completedFSM|composeText|configClasses|configFile|configHierarchy|configName|configNull|configProperties|configSourceAddonList|configSourceMod|configSourceModList|confirmSensorTarget|connectTerminalToUAV|controlNull|controlsGroupCtrl|copyFromClipboard|copyToClipboard|copyWaypoints|cos|count|countEnemy|countFriendly|countSide|countType|countUnknown|create3DENComposition|create3DENEntity|createAgent|createCenter|createDialog|createDiaryLink|createDiaryRecord|createDiarySubject|createDisplay|createGearDialog|createGroup|createGuardedPoint|createLocation|createMarker|createMarkerLocal|createMenu|createMine|createMissionDisplay|createMPCampaignDisplay|createSimpleObject|createSimpleTask|createSite|createSoundSource|createTask|createTeam|createTrigger|createUnit|createVehicle|createVehicleCrew|createVehicleLocal|crew|ctAddHeader|ctAddRow|ctClear|ctCurSel|ctData|ctFindHeaderRows|ctFindRowHeader|ctHeaderControls|ctHeaderCount|ctRemoveHeaders|ctRemoveRows|ctrlActivate|ctrlAddEventHandler|ctrlAngle|ctrlAutoScrollDelay|ctrlAutoScrollRewind|ctrlAutoScrollSpeed|ctrlChecked|ctrlClassName|ctrlCommit|ctrlCommitted|ctrlCreate|ctrlDelete|ctrlEnable|ctrlEnabled|ctrlFade|ctrlHTMLLoaded|ctrlIDC|ctrlIDD|ctrlMapAnimAdd|ctrlMapAnimClear|ctrlMapAnimCommit|ctrlMapAnimDone|ctrlMapCursor|ctrlMapMouseOver|ctrlMapScale|ctrlMapScreenToWorld|ctrlMapWorldToScreen|ctrlModel|ctrlModelDirAndUp|ctrlModelScale|ctrlParent|ctrlParentControlsGroup|ctrlPosition|ctrlRemoveAllEventHandlers|ctrlRemoveEventHandler|ctrlScale|ctrlSetActiveColor|ctrlSetAngle|ctrlSetAutoScrollDelay|ctrlSetAutoScrollRewind|ctrlSetAutoScrollSpeed|ctrlSetBackgroundColor|ctrlSetChecked|ctrlSetDisabledColor|ctrlSetEventHandler|ctrlSetFade|ctrlSetFocus|ctrlSetFont|ctrlSetFontH1|ctrlSetFontH1B|ctrlSetFontH2|ctrlSetFontH2B|ctrlSetFontH3|ctrlSetFontH3B|ctrlSetFontH4|ctrlSetFontH4B|ctrlSetFontH5|ctrlSetFontH5B|ctrlSetFontH6|ctrlSetFontH6B|ctrlSetFontHeight|ctrlSetFontHeightH1|ctrlSetFontHeightH2|ctrlSetFontHeightH3|ctrlSetFontHeightH4|ctrlSetFontHeightH5|ctrlSetFontHeightH6|ctrlSetFontHeightSecondary|ctrlSetFontP|ctrlSetFontPB|ctrlSetFontSecondary|ctrlSetForegroundColor|ctrlSetModel|ctrlSetModelDirAndUp|ctrlSetModelScale|ctrlSetPixelPrecision|ctrlSetPosition|ctrlSetScale|ctrlSetStructuredText|ctrlSetText|ctrlSetTextColor|ctrlSetTextColorSecondary|ctrlSetTextSecondary|ctrlSetTooltip|ctrlSetTooltipColorBox|ctrlSetTooltipColorShade|ctrlSetTooltipColorText|ctrlShow|ctrlShown|ctrlText|ctrlTextHeight|ctrlTextSecondary|ctrlTextWidth|ctrlType|ctrlVisible|ctRowControls|ctRowCount|ctSetCurSel|ctSetData|ctSetHeaderTemplate|ctSetRowTemplate|ctSetValue|ctValue|curatorAddons|curatorCamera|curatorCameraArea|curatorCameraAreaCeiling|curatorCoef|curatorEditableObjects|curatorEditingArea|curatorEditingAreaType|curatorMouseOver|curatorPoints|curatorRegisteredObjects|curatorSelected|curatorWaypointCost|current3DENOperation|currentChannel|currentCommand|currentMagazine|currentMagazineDetail|currentMagazineDetailTurret|currentMagazineTurret|currentMuzzle|currentNamespace|currentTask|currentTasks|currentThrowable|currentVisionMode|currentWaypoint|currentWeapon|currentWeaponMode|currentWeaponTurret|currentZeroing|cursorObject|cursorTarget|customChat|customRadio|cutFadeOut|cutObj|cutRsc|cutText|damage|date|dateToNumber|daytime|deActivateKey|debriefingText|debugFSM|debugLog|deg|delete3DENEntities|deleteAt|deleteCenter|deleteCollection|deleteEditorObject|deleteGroup|deleteGroupWhenEmpty|deleteIdentity|deleteLocation|deleteMarker|deleteMarkerLocal|deleteRange|deleteResources|deleteSite|deleteStatus|deleteTeam|deleteVehicle|deleteVehicleCrew|deleteWaypoint|detach|detectedMines|diag_activeMissionFSMs|diag_activeScripts|diag_activeSQFScripts|diag_activeSQSScripts|diag_captureFrame|diag_captureFrameToFile|diag_captureSlowFrame|diag_codePerformance|diag_drawMode|diag_dynamicSimulationEnd|diag_enable|diag_enabled|diag_fps|diag_fpsMin|diag_frameNo|diag_lightNewLoad|diag_list|diag_log|diag_logSlowFrame|diag_mergeConfigFile|diag_recordTurretLimits|diag_setLightNew|diag_tickTime|diag_toggle|dialog|diarySubjectExists|didJIP|didJIPOwner|difficulty|difficultyEnabled|difficultyEnabledRTD|difficultyOption|direction|directSay|disableAI|disableCollisionWith|disableConversation|disableDebriefingStats|disableMapIndicators|disableNVGEquipment|disableRemoteSensors|disableSerialization|disableTIEquipment|disableUAVConnectability|disableUserInput|displayAddEventHandler|displayCtrl|displayNull|displayParent|displayRemoveAllEventHandlers|displayRemoveEventHandler|displaySetEventHandler|dissolveTeam|distance|distance2D|distanceSqr|distributionRegion|do3DENAction|doArtilleryFire|doFire|doFollow|doFSM|doGetOut|doMove|doorPhase|doStop|doSuppressiveFire|doTarget|doWatch|drawArrow|drawEllipse|drawIcon|drawIcon3D|drawLine|drawLine3D|drawLink|drawLocation|drawPolygon|drawRectangle|drawTriangle|driver|drop|dynamicSimulationDistance|dynamicSimulationDistanceCoef|dynamicSimulationEnabled|dynamicSimulationSystemEnabled|east|edit3DENMissionAttributes|editObject|editorSetEventHandler|effectiveCommander|emptyPositions|enableAI|enableAIFeature|enableAimPrecision|enableAttack|enableAudioFeature|enableAutoStartUpRTD|enableAutoTrimRTD|enableCamShake|enableCaustics|enableChannel|enableCollisionWith|enableCopilot|enableDebriefingStats|enableDiagLegend|enableDynamicSimulation|enableDynamicSimulationSystem|enableEndDialog|enableEngineArtillery|enableEnvironment|enableFatigue|enableGunLights|enableInfoPanelComponent|enableIRLasers|enableMimics|enablePersonTurret|enableRadio|enableReload|enableRopeAttach|enableSatNormalOnDetail|enableSaving|enableSentences|enableSimulation|enableSimulationGlobal|enableStamina|enableStressDamage|enableTeamSwitch|enableTraffic|enableUAVConnectability|enableUAVWaypoints|enableVehicleCargo|enableVehicleSensor|enableWeaponDisassembly|endl|endLoadingScreen|endMission|engineOn|enginesIsOnRTD|enginesPowerRTD|enginesRpmRTD|enginesTorqueRTD|entities|environmentEnabled|estimatedEndServerTime|estimatedTimeLeft|evalObjectArgument|everyBackpack|everyContainer|exec|execEditorScript|exp|expectedDestination|exportJIPMessages|eyeDirection|eyePos|face|faction|fadeMusic|fadeRadio|fadeSound|fadeSpeech|failMission|fillWeaponsFromPool|find|findCover|findDisplay|findEditorObject|findEmptyPosition|findEmptyPositionReady|findIf|findNearestEnemy|finishMissionInit|finite|fire|fireAtTarget|firstBackpack|flag|flagAnimationPhase|flagOwner|flagSide|flagTexture|fleeing|floor|flyInHeight|flyInHeightASL|fog|fogForecast|fogParams|forceAddUniform|forceAtPositionRTD|forcedMap|forceEnd|forceFlagTexture|forceFollowRoad|forceGeneratorRTD|forceMap|forceRespawn|forceSpeed|forceWalk|forceWeaponFire|forceWeatherChange|forgetTarget|format|formation|formationDirection|formationLeader|formationMembers|formationPosition|formationTask|formatText|formLeader|freeLook|fromEditor|fuel|fullCrew|gearIDCAmmoCount|gearSlotAmmoCount|gearSlotData|get3DENActionState|get3DENAttribute|get3DENCamera|get3DENConnections|get3DENEntity|get3DENEntityID|get3DENGrid|get3DENIconsVisible|get3DENLayerEntities|get3DENLinesVisible|get3DENMissionAttribute|get3DENMouseOver|get3DENSelected|getAimingCoef|getAllEnvSoundControllers|getAllHitPointsDamage|getAllOwnedMines|getAllSoundControllers|getAmmoCargo|getAnimAimPrecision|getAnimSpeedCoef|getArray|getArtilleryAmmo|getArtilleryComputerSettings|getArtilleryETA|getAssignedCuratorLogic|getAssignedCuratorUnit|getBackpackCargo|getBleedingRemaining|getBurningValue|getCameraViewDirection|getCargoIndex|getCenterOfMass|getClientState|getClientStateNumber|getCompatiblePylonMagazines|getConnectedUAV|getContainerMaxLoad|getCursorObjectParams|getCustomAimCoef|getDammage|getDescription|getDir|getDirVisual|getDLCAssetsUsage|getDLCAssetsUsageByName|getDLCs|getDLCUsageTime|getEditorCamera|getEditorMode|getEditorObjectScope|getElevationOffset|getEngineTargetRpmRTD|getEnvSoundController|getFatigue|getFieldManualStartPage|getForcedFlagTexture|getFriend|getFSMVariable|getFuelCargo|getGroupIcon|getGroupIconParams|getGroupIcons|getHideFrom|getHit|getHitIndex|getHitPointDamage|getItemCargo|getMagazineCargo|getMarkerColor|getMarkerPos|getMarkerSize|getMarkerType|getMass|getMissionConfig|getMissionConfigValue|getMissionDLCs|getMissionLayerEntities|getMissionLayers|getModelInfo|getMousePosition|getMusicPlayedTime|getNumber|getObjectArgument|getObjectChildren|getObjectDLC|getObjectMaterials|getObjectProxy|getObjectTextures|getObjectType|getObjectViewDistance|getOxygenRemaining|getPersonUsedDLCs|getPilotCameraDirection|getPilotCameraPosition|getPilotCameraRotation|getPilotCameraTarget|getPlateNumber|getPlayerChannel|getPlayerScores|getPlayerUID|getPlayerUIDOld|getPos|getPosASL|getPosASLVisual|getPosASLW|getPosATL|getPosATLVisual|getPosVisual|getPosWorld|getPylonMagazines|getRelDir|getRelPos|getRemoteSensorsDisabled|getRepairCargo|getResolution|getRotorBrakeRTD|getShadowDistance|getShotParents|getSlingLoad|getSoundController|getSoundControllerResult|getSpeed|getStamina|getStatValue|getSuppression|getTerrainGrid|getTerrainHeightASL|getText|getTotalDLCUsageTime|getTrimOffsetRTD|getUnitLoadout|getUnitTrait|getUserMFDText|getUserMFDValue|getVariable|getVehicleCargo|getWeaponCargo|getWeaponSway|getWingsOrientationRTD|getWingsPositionRTD|getWPPos|glanceAt|globalChat|globalRadio|goggles|group|groupChat|groupFromNetId|groupIconSelectable|groupIconsVisible|groupId|groupOwner|groupRadio|groupSelectedUnits|groupSelectUnit|grpNull|gunner|gusts|halt|handgunItems|handgunMagazine|handgunWeapon|handsHit|hasInterface|hasPilotCamera|hasWeapon|hcAllGroups|hcGroupParams|hcLeader|hcRemoveAllGroups|hcRemoveGroup|hcSelected|hcSelectGroup|hcSetGroup|hcShowBar|hcShownBar|headgear|hideBody|hideObject|hideObjectGlobal|hideSelection|hint|hintC|hintCadet|hintSilent|hmd|hostMission|htmlLoad|HUDMovementLevels|humidity|image|importAllGroups|importance|in|inArea|inAreaArray|incapacitatedState|independent|inflame|inflamed|infoPanel|infoPanelComponentEnabled|infoPanelComponents|infoPanels|inGameUISetEventHandler|inheritsFrom|initAmbientLife|inPolygon|inputAction|inRangeOfArtillery|insertEditorObject|intersect|is3DEN|is3DENMultiplayer|isAbleToBreathe|isAgent|isAimPrecisionEnabled|isArray|isAutoHoverOn|isAutonomous|isAutoStartUpEnabledRTD|isAutotest|isAutoTrimOnRTD|isBleeding|isBurning|isClass|isCollisionLightOn|isCopilotEnabled|isDamageAllowed|isDedicated|isDLCAvailable|isEngineOn|isEqualTo|isEqualType|isEqualTypeAll|isEqualTypeAny|isEqualTypeArray|isEqualTypeParams|isFilePatchingEnabled|isFlashlightOn|isFlatEmpty|isForcedWalk|isFormationLeader|isGroupDeletedWhenEmpty|isHidden|isInRemainsCollector|isInstructorFigureEnabled|isIRLaserOn|isKeyActive|isKindOf|isLaserOn|isLightOn|isLocalized|isManualFire|isMarkedForCollection|isMultiplayer|isMultiplayerSolo|isNil|isNull|isNumber|isObjectHidden|isObjectRTD|isOnRoad|isPipEnabled|isPlayer|isRealTime|isRemoteExecuted|isRemoteExecutedJIP|isServer|isShowing3DIcons|isSimpleObject|isSprintAllowed|isStaminaEnabled|isSteamMission|isStreamFriendlyUIEnabled|isStressDamageEnabled|isText|isTouchingGround|isTurnedOut|isTutHintsEnabled|isUAVConnectable|isUAVConnected|isUIContext|isUniformAllowed|isVehicleCargo|isVehicleRadarOn|isVehicleSensorEnabled|isWalking|isWeaponDeployed|isWeaponRested|itemCargo|items|itemsWithMagazines|join|joinAs|joinAsSilent|joinSilent|joinString|kbAddDatabase|kbAddDatabaseTargets|kbAddTopic|kbHasTopic|kbReact|kbRemoveTopic|kbTell|kbWasSaid|keyImage|keyName|knowsAbout|land|landAt|landResult|language|laserTarget|lbAdd|lbClear|lbColor|lbColorRight|lbCurSel|lbData|lbDelete|lbIsSelected|lbPicture|lbPictureRight|lbSelection|lbSetColor|lbSetColorRight|lbSetCurSel|lbSetData|lbSetPicture|lbSetPictureColor|lbSetPictureColorDisabled|lbSetPictureColorSelected|lbSetPictureRight|lbSetPictureRightColor|lbSetPictureRightColorDisabled|lbSetPictureRightColorSelected|lbSetSelectColor|lbSetSelectColorRight|lbSetSelected|lbSetText|lbSetTextRight|lbSetTooltip|lbSetValue|lbSize|lbSort|lbSortByValue|lbText|lbTextRight|lbValue|leader|leaderboardDeInit|leaderboardGetRows|leaderboardInit|leaderboardRequestRowsFriends|leaderboardRequestRowsGlobal|leaderboardRequestRowsGlobalAroundUser|leaderboardsRequestUploadScore|leaderboardsRequestUploadScoreKeepBest|leaderboardState|leaveVehicle|libraryCredits|libraryDisclaimers|lifeState|lightAttachObject|lightDetachObject|lightIsOn|lightnings|limitSpeed|linearConversion|lineBreak|lineIntersects|lineIntersectsObjs|lineIntersectsSurfaces|lineIntersectsWith|linkItem|list|listObjects|listRemoteTargets|listVehicleSensors|ln|lnbAddArray|lnbAddColumn|lnbAddRow|lnbClear|lnbColor|lnbColorRight|lnbCurSelRow|lnbData|lnbDeleteColumn|lnbDeleteRow|lnbGetColumnsPosition|lnbPicture|lnbPictureRight|lnbSetColor|lnbSetColorRight|lnbSetColumnsPos|lnbSetCurSelRow|lnbSetData|lnbSetPicture|lnbSetPictureColor|lnbSetPictureColorRight|lnbSetPictureColorSelected|lnbSetPictureColorSelectedRight|lnbSetPictureRight|lnbSetText|lnbSetTextRight|lnbSetValue|lnbSize|lnbSort|lnbSortByValue|lnbText|lnbTextRight|lnbValue|load|loadAbs|loadBackpack|loadFile|loadGame|loadIdentity|loadMagazine|loadOverlay|loadStatus|loadUniform|loadVest|local|localize|locationNull|locationPosition|lock|lockCameraTo|lockCargo|lockDriver|locked|lockedCargo|lockedDriver|lockedTurret|lockIdentity|lockTurret|lockWP|log|logEntities|logNetwork|logNetworkTerminate|lookAt|lookAtPos|magazineCargo|magazines|magazinesAllTurrets|magazinesAmmo|magazinesAmmoCargo|magazinesAmmoFull|magazinesDetail|magazinesDetailBackpack|magazinesDetailUniform|magazinesDetailVest|magazinesTurret|magazineTurretAmmo|mapAnimAdd|mapAnimClear|mapAnimCommit|mapAnimDone|mapCenterOnCamera|mapGridPosition|markAsFinishedOnSteam|markerAlpha|markerBrush|markerColor|markerDir|markerPos|markerShape|markerSize|markerText|markerType|max|members|menuAction|menuAdd|menuChecked|menuClear|menuCollapse|menuData|menuDelete|menuEnable|menuEnabled|menuExpand|menuHover|menuPicture|menuSetAction|menuSetCheck|menuSetData|menuSetPicture|menuSetValue|menuShortcut|menuShortcutText|menuSize|menuSort|menuText|menuURL|menuValue|min|mineActive|mineDetectedBy|missionConfigFile|missionDifficulty|missionName|missionNamespace|missionStart|missionVersion|modelToWorld|modelToWorldVisual|modelToWorldVisualWorld|modelToWorldWorld|modParams|moonIntensity|moonPhase|morale|move|move3DENCamera|moveInAny|moveInCargo|moveInCommander|moveInDriver|moveInGunner|moveInTurret|moveObjectToEnd|moveOut|moveTime|moveTo|moveToCompleted|moveToFailed|musicVolume|name|nameSound|nearEntities|nearestBuilding|nearestLocation|nearestLocations|nearestLocationWithDubbing|nearestObject|nearestObjects|nearestTerrainObjects|nearObjects|nearObjectsReady|nearRoads|nearSupplies|nearTargets|needReload|netId|netObjNull|newOverlay|nextMenuItemIndex|nextWeatherChange|nMenuItems|numberOfEnginesRTD|numberToDate|objectCurators|objectFromNetId|objectParent|objNull|objStatus|onBriefingGear|onBriefingGroup|onBriefingNotes|onBriefingPlan|onBriefingTeamSwitch|onCommandModeChanged|onDoubleClick|onEachFrame|onGroupIconClick|onGroupIconOverEnter|onGroupIconOverLeave|onHCGroupSelectionChanged|onMapSingleClick|onPlayerConnected|onPlayerDisconnected|onPreloadFinished|onPreloadStarted|onShowNewObject|onTeamSwitch|openCuratorInterface|openDLCPage|openDSInterface|openMap|openSteamApp|openYoutubeVideo|opfor|orderGetIn|overcast|overcastForecast|owner|param|params|parseNumber|parseSimpleArray|parseText|parsingNamespace|particlesQuality|pi|pickWeaponPool|pitch|pixelGrid|pixelGridBase|pixelGridNoUIScale|pixelH|pixelW|playableSlotsNumber|playableUnits|playAction|playActionNow|player|playerRespawnTime|playerSide|playersNumber|playGesture|playMission|playMove|playMoveNow|playMusic|playScriptedMission|playSound|playSound3D|position|positionCameraToWorld|posScreenToWorld|posWorldToScreen|ppEffectAdjust|ppEffectCommit|ppEffectCommitted|ppEffectCreate|ppEffectDestroy|ppEffectEnable|ppEffectEnabled|ppEffectForceInNVG|precision|preloadCamera|preloadObject|preloadSound|preloadTitleObj|preloadTitleRsc|primaryWeapon|primaryWeaponItems|primaryWeaponMagazine|priority|processDiaryLink|processInitCommands|productVersion|profileName|profileNamespace|profileNameSteam|progressLoadingScreen|progressPosition|progressSetPosition|publicVariable|publicVariableClient|publicVariableServer|pushBack|pushBackUnique|putWeaponPool|queryItemsPool|queryMagazinePool|queryWeaponPool|rad|radioChannelAdd|radioChannelCreate|radioChannelRemove|radioChannelSetCallSign|radioChannelSetLabel|radioVolume|rain|rainbow|random|rank|rankId|rating|rectangular|registeredTasks|registerTask|reload|reloadEnabled|remoteControl|remoteExec|remoteExecCall|remoteExecutedOwner|remove3DENConnection|remove3DENEventHandler|remove3DENLayer|removeAction|removeAll3DENEventHandlers|removeAllActions|removeAllAssignedItems|removeAllContainers|removeAllCuratorAddons|removeAllCuratorCameraAreas|removeAllCuratorEditingAreas|removeAllEventHandlers|removeAllHandgunItems|removeAllItems|removeAllItemsWithMagazines|removeAllMissionEventHandlers|removeAllMPEventHandlers|removeAllMusicEventHandlers|removeAllOwnedMines|removeAllPrimaryWeaponItems|removeAllWeapons|removeBackpack|removeBackpackGlobal|removeCuratorAddons|removeCuratorCameraArea|removeCuratorEditableObjects|removeCuratorEditingArea|removeDrawIcon|removeDrawLinks|removeEventHandler|removeFromRemainsCollector|removeGoggles|removeGroupIcon|removeHandgunItem|removeHeadgear|removeItem|removeItemFromBackpack|removeItemFromUniform|removeItemFromVest|removeItems|removeMagazine|removeMagazineGlobal|removeMagazines|removeMagazinesTurret|removeMagazineTurret|removeMenuItem|removeMissionEventHandler|removeMPEventHandler|removeMusicEventHandler|removeOwnedMine|removePrimaryWeaponItem|removeSecondaryWeaponItem|removeSimpleTask|removeSwitchableUnit|removeTeamMember|removeUniform|removeVest|removeWeapon|removeWeaponAttachmentCargo|removeWeaponCargo|removeWeaponGlobal|removeWeaponTurret|reportRemoteTarget|requiredVersion|resetCamShake|resetSubgroupDirection|resistance|resize|resources|respawnVehicle|restartEditorCamera|reveal|revealMine|reverse|reversedMouseY|roadAt|roadsConnectedTo|roleDescription|ropeAttachedObjects|ropeAttachedTo|ropeAttachEnabled|ropeAttachTo|ropeCreate|ropeCut|ropeDestroy|ropeDetach|ropeEndPosition|ropeLength|ropes|ropeUnwind|ropeUnwound|rotorsForcesRTD|rotorsRpmRTD|round|runInitScript|safeZoneH|safeZoneW|safeZoneWAbs|safeZoneX|safeZoneXAbs|safeZoneY|save3DENInventory|saveGame|saveIdentity|saveJoysticks|saveOverlay|saveProfileNamespace|saveStatus|saveVar|savingEnabled|say|say2D|say3D|score|scoreSide|screenshot|screenToWorld|scriptDone|scriptName|scriptNull|scudState|secondaryWeapon|secondaryWeaponItems|secondaryWeaponMagazine|select|selectBestPlaces|selectDiarySubject|selectedEditorObjects|selectEditorObject|selectionNames|selectionPosition|selectLeader|selectMax|selectMin|selectNoPlayer|selectPlayer|selectRandom|selectRandomWeighted|selectWeapon|selectWeaponTurret|sendAUMessage|sendSimpleCommand|sendTask|sendTaskResult|sendUDPMessage|serverCommand|serverCommandAvailable|serverCommandExecutable|serverName|serverTime|set|set3DENAttribute|set3DENAttributes|set3DENGrid|set3DENIconsVisible|set3DENLayer|set3DENLinesVisible|set3DENLogicType|set3DENMissionAttribute|set3DENMissionAttributes|set3DENModelsVisible|set3DENObjectType|set3DENSelected|setAccTime|setActualCollectiveRTD|setAirplaneThrottle|setAirportSide|setAmmo|setAmmoCargo|setAmmoOnPylon|setAnimSpeedCoef|setAperture|setApertureNew|setArmoryPoints|setAttributes|setAutonomous|setBehaviour|setBleedingRemaining|setBrakesRTD|setCameraInterest|setCamShakeDefParams|setCamShakeParams|setCamUseTI|setCaptive|setCenterOfMass|setCollisionLight|setCombatMode|setCompassOscillation|setConvoySeparation|setCuratorCameraAreaCeiling|setCuratorCoef|setCuratorEditingAreaType|setCuratorWaypointCost|setCurrentChannel|setCurrentTask|setCurrentWaypoint|setCustomAimCoef|setCustomWeightRTD|setDamage|setDammage|setDate|setDebriefingText|setDefaultCamera|setDestination|setDetailMapBlendPars|setDir|setDirection|setDrawIcon|setDriveOnPath|setDropInterval|setDynamicSimulationDistance|setDynamicSimulationDistanceCoef|setEditorMode|setEditorObjectScope|setEffectCondition|setEngineRpmRTD|setFace|setFaceAnimation|setFatigue|setFeatureType|setFlagAnimationPhase|setFlagOwner|setFlagSide|setFlagTexture|setFog|setForceGeneratorRTD|setFormation|setFormationTask|setFormDir|setFriend|setFromEditor|setFSMVariable|setFuel|setFuelCargo|setGroupIcon|setGroupIconParams|setGroupIconsSelectable|setGroupIconsVisible|setGroupId|setGroupIdGlobal|setGroupOwner|setGusts|setHideBehind|setHit|setHitIndex|setHitPointDamage|setHorizonParallaxCoef|setHUDMovementLevels|setIdentity|setImportance|setInfoPanel|setLeader|setLightAmbient|setLightAttenuation|setLightBrightness|setLightColor|setLightDayLight|setLightFlareMaxDistance|setLightFlareSize|setLightIntensity|setLightnings|setLightUseFlare|setLocalWindParams|setMagazineTurretAmmo|setMarkerAlpha|setMarkerAlphaLocal|setMarkerBrush|setMarkerBrushLocal|setMarkerColor|setMarkerColorLocal|setMarkerDir|setMarkerDirLocal|setMarkerPos|setMarkerPosLocal|setMarkerShape|setMarkerShapeLocal|setMarkerSize|setMarkerSizeLocal|setMarkerText|setMarkerTextLocal|setMarkerType|setMarkerTypeLocal|setMass|setMimic|setMousePosition|setMusicEffect|setMusicEventHandler|setName|setNameSound|setObjectArguments|setObjectMaterial|setObjectMaterialGlobal|setObjectProxy|setObjectTexture|setObjectTextureGlobal|setObjectViewDistance|setOvercast|setOwner|setOxygenRemaining|setParticleCircle|setParticleClass|setParticleFire|setParticleParams|setParticleRandom|setPilotCameraDirection|setPilotCameraRotation|setPilotCameraTarget|setPilotLight|setPiPEffect|setPitch|setPlateNumber|setPlayable|setPlayerRespawnTime|setPos|setPosASL|setPosASL2|setPosASLW|setPosATL|setPosition|setPosWorld|setPylonLoadOut|setPylonsPriority|setRadioMsg|setRain|setRainbow|setRandomLip|setRank|setRectangular|setRepairCargo|setRotorBrakeRTD|setShadowDistance|setShotParents|setSide|setSimpleTaskAlwaysVisible|setSimpleTaskCustomData|setSimpleTaskDescription|setSimpleTaskDestination|setSimpleTaskTarget|setSimpleTaskType|setSimulWeatherLayers|setSize|setSkill|setSlingLoad|setSoundEffect|setSpeaker|setSpeech|setSpeedMode|setStamina|setStaminaScheme|setStatValue|setSuppression|setSystemOfUnits|setTargetAge|setTaskMarkerOffset|setTaskResult|setTaskState|setTerrainGrid|setText|setTimeMultiplier|setTitleEffect|setToneMapping|setToneMappingParams|setTrafficDensity|setTrafficDistance|setTrafficGap|setTrafficSpeed|setTriggerActivation|setTriggerArea|setTriggerStatements|setTriggerText|setTriggerTimeout|setTriggerType|setType|setUnconscious|setUnitAbility|setUnitLoadout|setUnitPos|setUnitPosWeak|setUnitRank|setUnitRecoilCoefficient|setUnitTrait|setUnloadInCombat|setUserActionText|setUserMFDText|setUserMFDValue|setVariable|setVectorDir|setVectorDirAndUp|setVectorUp|setVehicleAmmo|setVehicleAmmoDef|setVehicleArmor|setVehicleCargo|setVehicleId|setVehicleInit|setVehicleLock|setVehiclePosition|setVehicleRadar|setVehicleReceiveRemoteTargets|setVehicleReportOwnPosition|setVehicleReportRemoteTargets|setVehicleTIPars|setVehicleVarName|setVelocity|setVelocityModelSpace|setVelocityTransformation|setViewDistance|setVisibleIfTreeCollapsed|setWantedRpmRTD|setWaves|setWaypointBehaviour|setWaypointCombatMode|setWaypointCompletionRadius|setWaypointDescription|setWaypointForceBehaviour|setWaypointFormation|setWaypointHousePosition|setWaypointLoiterRadius|setWaypointLoiterType|setWaypointName|setWaypointPosition|setWaypointScript|setWaypointSpeed|setWaypointStatements|setWaypointTimeout|setWaypointType|setWaypointVisible|setWeaponReloadingTime|setWind|setWindDir|setWindForce|setWindStr|setWingForceScaleRTD|setWPPos|show3DIcons|showChat|showCinemaBorder|showCommandingMenu|showCompass|showCuratorCompass|showGPS|showHUD|showLegend|showMap|shownArtilleryComputer|shownChat|shownCompass|shownCuratorCompass|showNewEditorObject|shownGPS|shownHUD|shownMap|shownPad|shownRadio|shownScoretable|shownUAVFeed|shownWarrant|shownWatch|showPad|showRadio|showScoretable|showSubtitles|showUAVFeed|showWarrant|showWatch|showWaypoint|showWaypoints|side|sideAmbientLife|sideChat|sideEmpty|sideEnemy|sideFriendly|sideLogic|sideRadio|sideUnknown|simpleTasks|simulationEnabled|simulCloudDensity|simulCloudOcclusion|simulInClouds|simulWeatherSync|sin|size|sizeOf|skill|skillFinal|skipTime|sleep|sliderPosition|sliderRange|sliderSetPosition|sliderSetRange|sliderSetSpeed|sliderSpeed|slingLoadAssistantShown|soldierMagazines|someAmmo|sort|soundVolume|speaker|speed|speedMode|splitString|sqrt|squadParams|stance|startLoadingScreen|stop|stopEngineRTD|stopped|str|sunOrMoon|supportInfo|suppressFor|surfaceIsWater|surfaceNormal|surfaceType|swimInDepth|switchableUnits|switchAction|switchCamera|switchGesture|switchLight|switchMove|synchronizedObjects|synchronizedTriggers|synchronizedWaypoints|synchronizeObjectsAdd|synchronizeObjectsRemove|synchronizeTrigger|synchronizeWaypoint|systemChat|systemOfUnits|tan|targetKnowledge|targets|targetsAggregate|targetsQuery|taskAlwaysVisible|taskChildren|taskCompleted|taskCustomData|taskDescription|taskDestination|taskHint|taskMarkerOffset|taskNull|taskParent|taskResult|taskState|taskType|teamMember|teamMemberNull|teamName|teams|teamSwitch|teamSwitchEnabled|teamType|terminate|terrainIntersect|terrainIntersectASL|terrainIntersectAtASL|text|textLog|textLogFormat|tg|time|timeMultiplier|titleCut|titleFadeOut|titleObj|titleRsc|titleText|toArray|toFixed|toLower|toString|toUpper|triggerActivated|triggerActivation|triggerArea|triggerAttachedVehicle|triggerAttachObject|triggerAttachVehicle|triggerDynamicSimulation|triggerStatements|triggerText|triggerTimeout|triggerTimeoutCurrent|triggerType|turretLocal|turretOwner|turretUnit|tvAdd|tvClear|tvCollapse|tvCollapseAll|tvCount|tvCurSel|tvData|tvDelete|tvExpand|tvExpandAll|tvPicture|tvPictureRight|tvSetColor|tvSetCurSel|tvSetData|tvSetPicture|tvSetPictureColor|tvSetPictureColorDisabled|tvSetPictureColorSelected|tvSetPictureRight|tvSetPictureRightColor|tvSetPictureRightColorDisabled|tvSetPictureRightColorSelected|tvSetSelectColor|tvSetText|tvSetTooltip|tvSetValue|tvSort|tvSortByValue|tvText|tvTooltip|tvValue|type|typeName|typeOf|UAVControl|uiNamespace|uiSleep|unassignCurator|unassignItem|unassignTeam|unassignVehicle|underwater|uniform|uniformContainer|uniformItems|uniformMagazines|unitAddons|unitAimPosition|unitAimPositionVisual|unitBackpack|unitIsUAV|unitPos|unitReady|unitRecoilCoefficient|units|unitsBelowHeight|unlinkItem|unlockAchievement|unregisterTask|updateDrawIcon|updateMenuItem|updateObjectTree|useAIOperMapObstructionTest|useAISteeringComponent|useAudioTimeForMoves|userInputDisabled|vectorAdd|vectorCos|vectorCrossProduct|vectorDiff|vectorDir|vectorDirVisual|vectorDistance|vectorDistanceSqr|vectorDotProduct|vectorFromTo|vectorMagnitude|vectorMagnitudeSqr|vectorModelToWorld|vectorModelToWorldVisual|vectorMultiply|vectorNormalized|vectorUp|vectorUpVisual|vectorWorldToModel|vectorWorldToModelVisual|vehicle|vehicleCargoEnabled|vehicleChat|vehicleRadio|vehicleReceiveRemoteTargets|vehicleReportOwnPosition|vehicleReportRemoteTargets|vehicles|vehicleVarName|velocity|velocityModelSpace|verifySignature|vest|vestContainer|vestItems|vestMagazines|viewDistance|visibleCompass|visibleGPS|visibleMap|visiblePosition|visiblePositionASL|visibleScoretable|visibleWatch|waitUntil|waves|waypointAttachedObject|waypointAttachedVehicle|waypointAttachObject|waypointAttachVehicle|waypointBehaviour|waypointCombatMode|waypointCompletionRadius|waypointDescription|waypointForceBehaviour|waypointFormation|waypointHousePosition|waypointLoiterRadius|waypointLoiterType|waypointName|waypointPosition|waypoints|waypointScript|waypointsEnabledUAV|waypointShow|waypointSpeed|waypointStatements|waypointTimeout|waypointTimeoutCurrent|waypointType|waypointVisible|weaponAccessories|weaponAccessoriesCargo|weaponCargo|weaponDirection|weaponInertia|weaponLowered|weapons|weaponsItems|weaponsItemsCargo|weaponState|weaponsTurret|weightRTD|west|WFSideText|wind|windDir|windRTD|windStr|wingsForcesRTD|worldName|worldSize|worldToModel|worldToModelVisual|worldToScreen)\b/i,number:/(?:\$|\b0x)[\da-f]+\b|(?:\B\.\d+|\b\d+(?:\.\d+)?)(?:e[+-]?\d+)?\b/i,operator:/##|>>|&&|\|\||[!=<>]=?|[-+*/%#^]|\b(?:and|mod|not|or)\b/i,"magic-variable":{pattern:/\b(?:this|thisList|thisTrigger|_exception|_fnc_scriptName|_fnc_scriptNameParent|_forEachIndex|_this|_thisEventHandler|_thisFSM|_thisScript|_x)\b/i,alias:"keyword"},constant:/\bDIK(?:_[a-z\d]+)+\b/i}),t.languages.insertBefore("sqf","string",{macro:{pattern:/(^[ \t]*)#[a-z](?:[^\r\n\\]|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{directive:{pattern:/#[a-z]+\b/i,alias:"keyword"},comment:t.languages.sqf.comment}}}),delete t.languages.sqf["class-name"]}return xg}var Ag,bT;function Qz(){if(bT)return Ag;bT=1,Ag=e,e.displayName="squirrel",e.aliases=[];function e(t){t.languages.squirrel=t.languages.extend("clike",{comment:[t.languages.clike.comment[0],{pattern:/(^|[^\\:])(?:\/\/|#).*/,lookbehind:!0,greedy:!0}],string:{pattern:/(^|[^\\"'@])(?:@"(?:[^"]|"")*"(?!")|"(?:[^\\\r\n"]|\\.)*")/,lookbehind:!0,greedy:!0},"class-name":{pattern:/(\b(?:class|enum|extends|instanceof)\s+)\w+(?:\.\w+)*/,lookbehind:!0,inside:{punctuation:/\./}},keyword:/\b(?:__FILE__|__LINE__|base|break|case|catch|class|clone|const|constructor|continue|default|delete|else|enum|extends|for|foreach|function|if|in|instanceof|local|null|resume|return|static|switch|this|throw|try|typeof|while|yield)\b/,number:/\b(?:0x[0-9a-fA-F]+|\d+(?:\.(?:\d+|[eE][+-]?\d+))?)\b/,operator:/\+\+|--|<=>|<[-<]|>>>?|&&?|\|\|?|[-+*/%!=<>]=?|[~^]|::?/,punctuation:/[(){}\[\],;.]/}),t.languages.insertBefore("squirrel","string",{char:{pattern:/(^|[^\\"'])'(?:[^\\']|\\(?:[xuU][0-9a-fA-F]{0,8}|[\s\S]))'/,lookbehind:!0,greedy:!0}}),t.languages.insertBefore("squirrel","operator",{"attribute-punctuation":{pattern:/<\/|\/>/,alias:"important"},lambda:{pattern:/@(?=\()/,alias:"operator"}})}return Ag}var Rg,yT;function Jz(){if(yT)return Rg;yT=1,Rg=e,e.displayName="stan",e.aliases=[];function e(t){(function(n){var i=/\b(?:algebra_solver|algebra_solver_newton|integrate_1d|integrate_ode|integrate_ode_bdf|integrate_ode_rk45|map_rect|ode_(?:adams|bdf|ckrk|rk45)(?:_tol)?|ode_adjoint_tol_ctl|reduce_sum|reduce_sum_static)\b/;n.languages.stan={comment:/\/\/.*|\/\*[\s\S]*?\*\/|#(?!include).*/,string:{pattern:/"[\x20\x21\x23-\x5B\x5D-\x7E]*"/,greedy:!0},directive:{pattern:/^([ \t]*)#include\b.*/m,lookbehind:!0,alias:"property"},"function-arg":{pattern:RegExp("("+i.source+/\s*\(\s*/.source+")"+/[a-zA-Z]\w*/.source),lookbehind:!0,alias:"function"},constraint:{pattern:/(\b(?:int|matrix|real|row_vector|vector)\s*)<[^<>]*>/,lookbehind:!0,inside:{expression:{pattern:/(=\s*)\S(?:\S|\s+(?!\s))*?(?=\s*(?:>$|,\s*\w+\s*=))/,lookbehind:!0,inside:null},property:/\b[a-z]\w*(?=\s*=)/i,operator:/=/,punctuation:/^<|>$|,/}},keyword:[{pattern:/\bdata(?=\s*\{)|\b(?:functions|generated|model|parameters|quantities|transformed)\b/,alias:"program-block"},/\b(?:array|break|cholesky_factor_corr|cholesky_factor_cov|complex|continue|corr_matrix|cov_matrix|data|else|for|if|in|increment_log_prob|int|matrix|ordered|positive_ordered|print|real|reject|return|row_vector|simplex|target|unit_vector|vector|void|while)\b/,i],function:/\b[a-z]\w*(?=\s*\()/i,number:/(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:E[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,boolean:/\b(?:false|true)\b/,operator:/<-|\.[*/]=?|\|\|?|&&|[!=<>+\-*/]=?|['^%~?:]/,punctuation:/[()\[\]{},;]/},n.languages.stan.constraint.inside.expression.inside=n.languages.stan})(t)}return Rg}var Ng,ET;function e4(){if(ET)return Ng;ET=1,Ng=e,e.displayName="stylus",e.aliases=[];function e(t){(function(n){var i={pattern:/(\b\d+)(?:%|[a-z]+)/,lookbehind:!0},o={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},l={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},url:{pattern:/\burl\((["']?).*?\1\)/i,greedy:!0},string:{pattern:/("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,greedy:!0},interpolation:null,func:null,important:/\B!(?:important|optional)\b/i,keyword:{pattern:/(^|\s+)(?:(?:else|for|if|return|unless)(?=\s|$)|@[\w-]+)/,lookbehind:!0},hexcode:/#[\da-f]{3,6}/i,color:[/\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\b/i,{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:i,number:o,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:i,boolean:/\b(?:false|true)\b/,operator:[/~|[+!\/%<>?=]=?|[-:]=|\*[*=]?|\.{2,3}|&&|\|\||\B-\B|\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\b/],number:o,punctuation:/[{}()\[\];:,]/};l.interpolation={pattern:/\{[^\r\n}:]+\}/,alias:"variable",inside:{delimiter:{pattern:/^\{|\}$/,alias:"punctuation"},rest:l}},l.func={pattern:/[\w-]+\([^)]*\).*/,inside:{function:/^[^(]+/,rest:l}},n.languages.stylus={"atrule-declaration":{pattern:/(^[ \t]*)@.+/m,lookbehind:!0,inside:{atrule:/^@[\w-]+/,rest:l}},"variable-declaration":{pattern:/(^[ \t]*)[\w$-]+\s*.?=[ \t]*(?:\{[^{}]*\}|\S.*|$)/m,lookbehind:!0,inside:{variable:/^\S+/,rest:l}},statement:{pattern:/(^[ \t]*)(?:else|for|if|return|unless)[ \t].+/m,lookbehind:!0,inside:{keyword:/^\S+/,rest:l}},"property-declaration":{pattern:/((?:^|\{)([ \t]*))(?:[\w-]|\{[^}\r\n]+\})+(?:\s*:\s*|[ \t]+)(?!\s)[^{\r\n]*(?:;|[^{\r\n,]$(?!(?:\r?\n|\r)(?:\{|\2[ \t])))/m,lookbehind:!0,inside:{property:{pattern:/^[^\s:]+/,inside:{interpolation:l.interpolation}},rest:l}},selector:{pattern:/(^[ \t]*)(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)(?:(?:\r?\n|\r)(?:\1(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)))*(?:,$|\{|(?=(?:\r?\n|\r)(?:\{|\1[ \t])))/m,lookbehind:!0,inside:{interpolation:l.interpolation,comment:l.comment,punctuation:/[{},]/}},func:l.func,string:l.string,comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0,greedy:!0},interpolation:l.interpolation,punctuation:/[{}()\[\];:.]/}})(t)}return Ng}var Cg,ST;function t4(){if(ST)return Cg;ST=1,Cg=e,e.displayName="swift",e.aliases=[];function e(t){t.languages.swift={comment:{pattern:/(^|[^\\:])(?:\/\/.*|\/\*(?:[^/*]|\/(?!\*)|\*(?!\/)|\/\*(?:[^*]|\*(?!\/))*\*\/)*\*\/)/,lookbehind:!0,greedy:!0},"string-literal":[{pattern:RegExp(/(^|[^"#])/.source+"(?:"+/"(?:\\(?:\((?:[^()]|\([^()]*\))*\)|\r\n|[^(])|[^\\\r\n"])*"/.source+"|"+/"""(?:\\(?:\((?:[^()]|\([^()]*\))*\)|[^(])|[^\\"]|"(?!""))*"""/.source+")"+/(?!["#])/.source),lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/(\\\()(?:[^()]|\([^()]*\))*(?=\))/,lookbehind:!0,inside:null},"interpolation-punctuation":{pattern:/^\)|\\\($/,alias:"punctuation"},punctuation:/\\(?=[\r\n])/,string:/[\s\S]+/}},{pattern:RegExp(/(^|[^"#])(#+)/.source+"(?:"+/"(?:\\(?:#+\((?:[^()]|\([^()]*\))*\)|\r\n|[^#])|[^\\\r\n])*?"/.source+"|"+/"""(?:\\(?:#+\((?:[^()]|\([^()]*\))*\)|[^#])|[^\\])*?"""/.source+")\\2"),lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/(\\#+\()(?:[^()]|\([^()]*\))*(?=\))/,lookbehind:!0,inside:null},"interpolation-punctuation":{pattern:/^\)|\\#+\($/,alias:"punctuation"},string:/[\s\S]+/}}],directive:{pattern:RegExp(/#/.source+"(?:"+(/(?:elseif|if)\b/.source+"(?:[ ]*"+/(?:![ \t]*)?(?:\b\w+\b(?:[ \t]*\((?:[^()]|\([^()]*\))*\))?|\((?:[^()]|\([^()]*\))*\))(?:[ \t]*(?:&&|\|\|))?/.source+")+")+"|"+/(?:else|endif)\b/.source+")"),alias:"property",inside:{"directive-name":/^#\w+/,boolean:/\b(?:false|true)\b/,number:/\b\d+(?:\.\d+)*\b/,operator:/!|&&|\|\||[<>]=?/,punctuation:/[(),]/}},literal:{pattern:/#(?:colorLiteral|column|dsohandle|file(?:ID|Literal|Path)?|function|imageLiteral|line)\b/,alias:"constant"},"other-directive":{pattern:/#\w+\b/,alias:"property"},attribute:{pattern:/@\w+/,alias:"atrule"},"function-definition":{pattern:/(\bfunc\s+)\w+/,lookbehind:!0,alias:"function"},label:{pattern:/\b(break|continue)\s+\w+|\b[a-zA-Z_]\w*(?=\s*:\s*(?:for|repeat|while)\b)/,lookbehind:!0,alias:"important"},keyword:/\b(?:Any|Protocol|Self|Type|actor|as|assignment|associatedtype|associativity|async|await|break|case|catch|class|continue|convenience|default|defer|deinit|didSet|do|dynamic|else|enum|extension|fallthrough|fileprivate|final|for|func|get|guard|higherThan|if|import|in|indirect|infix|init|inout|internal|is|isolated|lazy|left|let|lowerThan|mutating|none|nonisolated|nonmutating|open|operator|optional|override|postfix|precedencegroup|prefix|private|protocol|public|repeat|required|rethrows|return|right|safe|self|set|some|static|struct|subscript|super|switch|throw|throws|try|typealias|unowned|unsafe|var|weak|where|while|willSet)\b/,boolean:/\b(?:false|true)\b/,nil:{pattern:/\bnil\b/,alias:"constant"},"short-argument":/\$\d+\b/,omit:{pattern:/\b_\b/,alias:"keyword"},number:/\b(?:[\d_]+(?:\.[\de_]+)?|0x[a-f0-9_]+(?:\.[a-f0-9p_]+)?|0b[01_]+|0o[0-7_]+)\b/i,"class-name":/\b[A-Z](?:[A-Z_\d]*[a-z]\w*)?\b/,function:/\b[a-z_]\w*(?=\s*\()/i,constant:/\b(?:[A-Z_]{2,}|k[A-Z][A-Za-z_]+)\b/,operator:/[-+*/%=!<>&|^~?]+|\.[.\-+*/%=!<>&|^~?]+/,punctuation:/[{}[\]();,.:\\]/},t.languages.swift["string-literal"].forEach(function(n){n.inside.interpolation.inside=t.languages.swift})}return Cg}var Ig,vT;function n4(){if(vT)return Ig;vT=1,Ig=e,e.displayName="systemd",e.aliases=[];function e(t){(function(n){var i={pattern:/^[;#].*/m,greedy:!0},o=/"(?:[^\r\n"\\]|\\(?:[^\r]|\r\n?))*"(?!\S)/.source;n.languages.systemd={comment:i,section:{pattern:/^\[[^\n\r\[\]]*\](?=[ \t]*$)/m,greedy:!0,inside:{punctuation:/^\[|\]$/,"section-name":{pattern:/[\s\S]+/,alias:"selector"}}},key:{pattern:/^[^\s=]+(?=[ \t]*=)/m,greedy:!0,alias:"attr-name"},value:{pattern:RegExp(/(=[ \t]*(?!\s))/.source+"(?:"+o+`|(?=[^"\r -]))(?:`+(/[^\s\\]/.source+'|[ ]+(?:(?![ "])|'+o+")|"+/\\[\r\n]+(?:[#;].*[\r\n]+)*(?![#;])/.source)+")*"),lookbehind:!0,greedy:!0,alias:"attr-value",inside:{comment:i,quoted:{pattern:RegExp(/(^|\s)/.source+o),lookbehind:!0,greedy:!0},punctuation:/\\$/m,boolean:{pattern:/^(?:false|no|off|on|true|yes)$/,greedy:!0}}},punctuation:/=/}})(t)}return Ig}var Og,kT;function Eh(){if(kT)return Og;kT=1,Og=e,e.displayName="t4Templating",e.aliases=[];function e(t){(function(n){function i(l,u,c){return{pattern:RegExp("<#"+l+"[\\s\\S]*?#>"),alias:"block",inside:{delimiter:{pattern:RegExp("^<#"+l+"|#>$"),alias:"important"},content:{pattern:/[\s\S]+/,inside:u,alias:c}}}}function o(l){var u=n.languages[l],c="language-"+l;return{block:{pattern:/<#[\s\S]+?#>/,inside:{directive:i("@",{"attr-value":{pattern:/=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+)/,inside:{punctuation:/^=|^["']|["']$/}},keyword:/\b\w+(?=\s)/,"attr-name":/\b\w+/}),expression:i("=",u,c),"class-feature":i("\\+",u,c),standard:i("",u,c)}}}}n.languages["t4-templating"]=Object.defineProperty({},"createT4",{value:o})})(t)}return Og}var Lg,_T;function r4(){if(_T)return Lg;_T=1;var e=Eh(),t=ks();Lg=n,n.displayName="t4Cs",n.aliases=[];function n(i){i.register(e),i.register(t),i.languages.t4=i.languages["t4-cs"]=i.languages["t4-templating"].createT4("csharp")}return Lg}var Dg,wT;function aR(){if(wT)return Dg;wT=1;var e=eR();Dg=t,t.displayName="vbnet",t.aliases=[];function t(n){n.register(e),n.languages.vbnet=n.languages.extend("basic",{comment:[{pattern:/(?:!|REM\b).+/i,inside:{keyword:/^REM/i}},{pattern:/(^|[^\\:])'.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(^|[^"])"(?:""|[^"])*"(?!")/,lookbehind:!0,greedy:!0},keyword:/(?:\b(?:ADDHANDLER|ADDRESSOF|ALIAS|AND|ANDALSO|AS|BEEP|BLOAD|BOOLEAN|BSAVE|BYREF|BYTE|BYVAL|CALL(?: ABSOLUTE)?|CASE|CATCH|CBOOL|CBYTE|CCHAR|CDATE|CDBL|CDEC|CHAIN|CHAR|CHDIR|CINT|CLASS|CLEAR|CLNG|CLOSE|CLS|COBJ|COM|COMMON|CONST|CONTINUE|CSBYTE|CSHORT|CSNG|CSTR|CTYPE|CUINT|CULNG|CUSHORT|DATA|DATE|DECIMAL|DECLARE|DEF(?: FN| SEG|DBL|INT|LNG|SNG|STR)|DEFAULT|DELEGATE|DIM|DIRECTCAST|DO|DOUBLE|ELSE|ELSEIF|END|ENUM|ENVIRON|ERASE|ERROR|EVENT|EXIT|FALSE|FIELD|FILES|FINALLY|FOR(?: EACH)?|FRIEND|FUNCTION|GET|GETTYPE|GETXMLNAMESPACE|GLOBAL|GOSUB|GOTO|HANDLES|IF|IMPLEMENTS|IMPORTS|IN|INHERITS|INPUT|INTEGER|INTERFACE|IOCTL|IS|ISNOT|KEY|KILL|LET|LIB|LIKE|LINE INPUT|LOCATE|LOCK|LONG|LOOP|LSET|ME|MKDIR|MOD|MODULE|MUSTINHERIT|MUSTOVERRIDE|MYBASE|MYCLASS|NAME|NAMESPACE|NARROWING|NEW|NEXT|NOT|NOTHING|NOTINHERITABLE|NOTOVERRIDABLE|OBJECT|OF|OFF|ON(?: COM| ERROR| KEY| TIMER)?|OPEN|OPERATOR|OPTION(?: BASE)?|OPTIONAL|OR|ORELSE|OUT|OVERLOADS|OVERRIDABLE|OVERRIDES|PARAMARRAY|PARTIAL|POKE|PRIVATE|PROPERTY|PROTECTED|PUBLIC|PUT|RAISEEVENT|READ|READONLY|REDIM|REM|REMOVEHANDLER|RESTORE|RESUME|RETURN|RMDIR|RSET|RUN|SBYTE|SELECT(?: CASE)?|SET|SHADOWS|SHARED|SHELL|SHORT|SINGLE|SLEEP|STATIC|STEP|STOP|STRING|STRUCTURE|SUB|SWAP|SYNCLOCK|SYSTEM|THEN|THROW|TIMER|TO|TROFF|TRON|TRUE|TRY|TRYCAST|TYPE|TYPEOF|UINTEGER|ULONG|UNLOCK|UNTIL|USHORT|USING|VIEW PRINT|WAIT|WEND|WHEN|WHILE|WIDENING|WITH|WITHEVENTS|WRITE|WRITEONLY|XOR)|\B(?:#CONST|#ELSE|#ELSEIF|#END|#IF))(?:\$|\b)/i,punctuation:/[,;:(){}]/})}return Dg}var Mg,TT;function a4(){if(TT)return Mg;TT=1;var e=Eh(),t=aR();Mg=n,n.displayName="t4Vb",n.aliases=[];function n(i){i.register(e),i.register(t),i.languages["t4-vb"]=i.languages["t4-templating"].createT4("vbnet")}return Mg}var Fg,xT;function iR(){if(xT)return Fg;xT=1,Fg=e,e.displayName="yaml",e.aliases=["yml"];function e(t){(function(n){var i=/[*&][^\s[\]{},]+/,o=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,l="(?:"+o.source+"(?:[ ]+"+i.source+")?|"+i.source+"(?:[ ]+"+o.source+")?)",u=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-])(?:[ \t]*(?:(?![#:])|:))*/.source.replace(//g,function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source}),c=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function p(f,m){m=(m||"").replace(/m/g,"")+"m";var h=/([:\-,[{]\s*(?:\s<>[ \t]+)?)(?:<>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<>/g,function(){return l}).replace(/<>/g,function(){return f});return RegExp(h,m)}n.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<>/g,function(){return l})),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<>[ \t]+)?)<>(?=\s*:\s)/.source.replace(/<>/g,function(){return l}).replace(/<>/g,function(){return"(?:"+u+"|"+c+")"})),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:p(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:p(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:p(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:p(c),lookbehind:!0,greedy:!0},number:{pattern:p(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:o,important:i,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},n.languages.yml=n.languages.yaml})(t)}return Fg}var Pg,AT;function i4(){if(AT)return Pg;AT=1;var e=iR();Pg=t,t.displayName="tap",t.aliases=[];function t(n){n.register(e),n.languages.tap={fail:/not ok[^#{\n\r]*/,pass:/ok[^#{\n\r]*/,pragma:/pragma [+-][a-z]+/,bailout:/bail out!.*/i,version:/TAP version \d+/i,plan:/\b\d+\.\.\d+(?: +#.*)?/,subtest:{pattern:/# Subtest(?:: .*)?/,greedy:!0},punctuation:/[{}]/,directive:/#.*/,yamlish:{pattern:/(^[ \t]*)---[\s\S]*?[\r\n][ \t]*\.\.\.$/m,lookbehind:!0,inside:n.languages.yaml,alias:"language-yaml"}}}return Pg}var Ug,RT;function o4(){if(RT)return Ug;RT=1,Ug=e,e.displayName="tcl",e.aliases=[];function e(t){t.languages.tcl={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0},string:{pattern:/"(?:[^"\\\r\n]|\\(?:\r\n|[\s\S]))*"/,greedy:!0},variable:[{pattern:/(\$)(?:::)?(?:[a-zA-Z0-9]+::)*\w+/,lookbehind:!0},{pattern:/(\$)\{[^}]+\}/,lookbehind:!0},{pattern:/(^[\t ]*set[ \t]+)(?:::)?(?:[a-zA-Z0-9]+::)*\w+/m,lookbehind:!0}],function:{pattern:/(^[\t ]*proc[ \t]+)\S+/m,lookbehind:!0},builtin:[{pattern:/(^[\t ]*)(?:break|class|continue|error|eval|exit|for|foreach|if|proc|return|switch|while)\b/m,lookbehind:!0},/\b(?:else|elseif)\b/],scope:{pattern:/(^[\t ]*)(?:global|upvar|variable)\b/m,lookbehind:!0,alias:"constant"},keyword:{pattern:/(^[\t ]*|\[)(?:Safe_Base|Tcl|after|append|apply|array|auto_(?:execok|import|load|mkindex|qualify|reset)|automkindex_old|bgerror|binary|catch|cd|chan|clock|close|concat|dde|dict|encoding|eof|exec|expr|fblocked|fconfigure|fcopy|file(?:event|name)?|flush|gets|glob|history|http|incr|info|interp|join|lappend|lassign|lindex|linsert|list|llength|load|lrange|lrepeat|lreplace|lreverse|lsearch|lset|lsort|math(?:func|op)|memory|msgcat|namespace|open|package|parray|pid|pkg_mkIndex|platform|puts|pwd|re_syntax|read|refchan|regexp|registry|regsub|rename|scan|seek|set|socket|source|split|string|subst|tcl(?:_endOfWord|_findLibrary|startOf(?:Next|Previous)Word|test|vars|wordBreak(?:After|Before))|tell|time|tm|trace|unknown|unload|unset|update|uplevel|vwait)\b/m,lookbehind:!0},operator:/!=?|\*\*?|==|&&?|\|\|?|<[=<]?|>[=>]?|[-+~\/%?^]|\b(?:eq|in|ne|ni)\b/,punctuation:/[{}()\[\]]/}}return Ug}var Bg,NT;function s4(){if(NT)return Bg;NT=1,Bg=e,e.displayName="textile",e.aliases=[];function e(t){(function(n){var i=/\([^|()\n]+\)|\[[^\]\n]+\]|\{[^}\n]+\}/.source,o=/\)|\((?![^|()\n]+\))/.source;function l(S,E){return RegExp(S.replace(//g,function(){return"(?:"+i+")"}).replace(//g,function(){return"(?:"+o+")"}),E||"")}var u={css:{pattern:/\{[^{}]+\}/,inside:{rest:n.languages.css}},"class-id":{pattern:/(\()[^()]+(?=\))/,lookbehind:!0,alias:"attr-value"},lang:{pattern:/(\[)[^\[\]]+(?=\])/,lookbehind:!0,alias:"attr-value"},punctuation:/[\\\/]\d+|\S/},c=n.languages.textile=n.languages.extend("markup",{phrase:{pattern:/(^|\r|\n)\S[\s\S]*?(?=$|\r?\n\r?\n|\r\r)/,lookbehind:!0,inside:{"block-tag":{pattern:l(/^[a-z]\w*(?:||[<>=])*\./.source),inside:{modifier:{pattern:l(/(^[a-z]\w*)(?:||[<>=])+(?=\.)/.source),lookbehind:!0,inside:u},tag:/^[a-z]\w*/,punctuation:/\.$/}},list:{pattern:l(/^[*#]+*\s+\S.*/.source,"m"),inside:{modifier:{pattern:l(/(^[*#]+)+/.source),lookbehind:!0,inside:u},punctuation:/^[*#]+/}},table:{pattern:l(/^(?:(?:||[<>=^~])+\.\s*)?(?:\|(?:(?:||[<>=^~_]|[\\/]\d+)+\.|(?!(?:||[<>=^~_]|[\\/]\d+)+\.))[^|]*)+\|/.source,"m"),inside:{modifier:{pattern:l(/(^|\|(?:\r?\n|\r)?)(?:||[<>=^~_]|[\\/]\d+)+(?=\.)/.source),lookbehind:!0,inside:u},punctuation:/\||^\./}},inline:{pattern:l(/(^|[^a-zA-Z\d])(\*\*|__|\?\?|[*_%@+\-^~])*.+?\2(?![a-zA-Z\d])/.source),lookbehind:!0,inside:{bold:{pattern:l(/(^(\*\*?)*).+?(?=\2)/.source),lookbehind:!0},italic:{pattern:l(/(^(__?)*).+?(?=\2)/.source),lookbehind:!0},cite:{pattern:l(/(^\?\?*).+?(?=\?\?)/.source),lookbehind:!0,alias:"string"},code:{pattern:l(/(^@*).+?(?=@)/.source),lookbehind:!0,alias:"keyword"},inserted:{pattern:l(/(^\+*).+?(?=\+)/.source),lookbehind:!0},deleted:{pattern:l(/(^-*).+?(?=-)/.source),lookbehind:!0},span:{pattern:l(/(^%*).+?(?=%)/.source),lookbehind:!0},modifier:{pattern:l(/(^\*\*|__|\?\?|[*_%@+\-^~])+/.source),lookbehind:!0,inside:u},punctuation:/[*_%?@+\-^~]+/}},"link-ref":{pattern:/^\[[^\]]+\]\S+$/m,inside:{string:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0},url:{pattern:/(^\])\S+$/,lookbehind:!0},punctuation:/[\[\]]/}},link:{pattern:l(/"*[^"]+":.+?(?=[^\w/]?(?:\s|$))/.source),inside:{text:{pattern:l(/(^"*)[^"]+(?=")/.source),lookbehind:!0},modifier:{pattern:l(/(^")+/.source),lookbehind:!0,inside:u},url:{pattern:/(:).+/,lookbehind:!0},punctuation:/[":]/}},image:{pattern:l(/!(?:||[<>=])*(?![<>=])[^!\s()]+(?:\([^)]+\))?!(?::.+?(?=[^\w/]?(?:\s|$)))?/.source),inside:{source:{pattern:l(/(^!(?:||[<>=])*)(?![<>=])[^!\s()]+(?:\([^)]+\))?(?=!)/.source),lookbehind:!0,alias:"url"},modifier:{pattern:l(/(^!)(?:||[<>=])+/.source),lookbehind:!0,inside:u},url:{pattern:/(:).+/,lookbehind:!0},punctuation:/[!:]/}},footnote:{pattern:/\b\[\d+\]/,alias:"comment",inside:{punctuation:/\[|\]/}},acronym:{pattern:/\b[A-Z\d]+\([^)]+\)/,inside:{comment:{pattern:/(\()[^()]+(?=\))/,lookbehind:!0},punctuation:/[()]/}},mark:{pattern:/\b\((?:C|R|TM)\)/,alias:"comment",inside:{punctuation:/[()]/}}}}}),p=c.phrase.inside,f={inline:p.inline,link:p.link,image:p.image,footnote:p.footnote,acronym:p.acronym,mark:p.mark};c.tag.pattern=/<\/?(?!\d)[a-z0-9]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/i;var m=p.inline.inside;m.bold.inside=f,m.italic.inside=f,m.inserted.inside=f,m.deleted.inside=f,m.span.inside=f;var h=p.table.inside;h.inline=f.inline,h.link=f.link,h.image=f.image,h.footnote=f.footnote,h.acronym=f.acronym,h.mark=f.mark})(t)}return Bg}var jg,CT;function l4(){if(CT)return jg;CT=1,jg=e,e.displayName="toml",e.aliases=[];function e(t){(function(n){var i=/(?:[\w-]+|'[^'\n\r]*'|"(?:\\.|[^\\"\r\n])*")/.source;function o(l){return l.replace(/__/g,function(){return i})}n.languages.toml={comment:{pattern:/#.*/,greedy:!0},table:{pattern:RegExp(o(/(^[\t ]*\[\s*(?:\[\s*)?)__(?:\s*\.\s*__)*(?=\s*\])/.source),"m"),lookbehind:!0,greedy:!0,alias:"class-name"},key:{pattern:RegExp(o(/(^[\t ]*|[{,]\s*)__(?:\s*\.\s*__)*(?=\s*=)/.source),"m"),lookbehind:!0,greedy:!0,alias:"property"},string:{pattern:/"""(?:\\[\s\S]|[^\\])*?"""|'''[\s\S]*?'''|'[^'\n\r]*'|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},date:[{pattern:/\b\d{4}-\d{2}-\d{2}(?:[T\s]\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})?)?\b/i,alias:"number"},{pattern:/\b\d{2}:\d{2}:\d{2}(?:\.\d+)?\b/,alias:"number"}],number:/(?:\b0(?:x[\da-zA-Z]+(?:_[\da-zA-Z]+)*|o[0-7]+(?:_[0-7]+)*|b[10]+(?:_[10]+)*))\b|[-+]?\b\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?(?:[eE][+-]?\d+(?:_\d+)*)?\b|[-+]?\b(?:inf|nan)\b/,boolean:/\b(?:false|true)\b/,punctuation:/[.,=[\]{}]/}})(t)}return jg}var zg,IT;function u4(){if(IT)return zg;IT=1,zg=e,e.displayName="tremor",e.aliases=[];function e(t){(function(n){n.languages.tremor={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},"interpolated-string":null,extractor:{pattern:/\b[a-z_]\w*\|(?:[^\r\n\\|]|\\(?:\r\n|[\s\S]))*\|/i,greedy:!0,inside:{regex:{pattern:/(^re)\|[\s\S]+/,lookbehind:!0},function:/^\w+/,value:/\|[\s\S]+/}},identifier:{pattern:/`[^`]*`/,greedy:!0},function:/\b[a-z_]\w*(?=\s*(?:::\s*<|\())\b/,keyword:/\b(?:args|as|by|case|config|connect|connector|const|copy|create|default|define|deploy|drop|each|emit|end|erase|event|flow|fn|for|from|group|having|insert|into|intrinsic|let|links|match|merge|mod|move|of|operator|patch|pipeline|recur|script|select|set|sliding|state|stream|to|tumbling|update|use|when|where|window|with)\b/,boolean:/\b(?:false|null|true)\b/i,number:/\b(?:0b[01_]*|0x[0-9a-fA-F_]*|\d[\d_]*(?:\.\d[\d_]*)?(?:[Ee][+-]?[\d_]+)?)\b/,"pattern-punctuation":{pattern:/%(?=[({[])/,alias:"punctuation"},operator:/[-+*\/%~!^]=?|=[=>]?|&[&=]?|\|[|=]?|<>?>?=?|(?:absent|and|not|or|present|xor)\b/,punctuation:/::|[;\[\]()\{\},.:]/};var i=/#\{(?:[^"{}]|\{[^{}]*\}|"(?:[^"\\\r\n]|\\(?:\r\n|[\s\S]))*")*\}/.source;n.languages.tremor["interpolated-string"]={pattern:RegExp(/(^|[^\\])/.source+'(?:"""(?:'+/[^"\\#]|\\[\s\S]|"(?!"")|#(?!\{)/.source+"|"+i+')*"""|"(?:'+/[^"\\\r\n#]|\\(?:\r\n|[\s\S])|#(?!\{)/.source+"|"+i+')*")'),lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:RegExp(i),inside:{punctuation:/^#\{|\}$/,expression:{pattern:/[\s\S]+/,inside:n.languages.tremor}}},string:/[\s\S]+/}},n.languages.troy=n.languages.tremor,n.languages.trickle=n.languages.tremor})(t)}return zg}var $g,OT;function c4(){if(OT)return $g;OT=1;var e=nR(),t=hh();$g=n,n.displayName="tsx",n.aliases=[];function n(i){i.register(e),i.register(t),(function(o){var l=o.util.clone(o.languages.typescript);o.languages.tsx=o.languages.extend("jsx",l),delete o.languages.tsx.parameter,delete o.languages.tsx["literal-property"];var u=o.languages.tsx.tag;u.pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+u.pattern.source+")",u.pattern.flags),u.lookbehind=!0})(i)}return $g}var qg,LT;function d4(){if(LT)return qg;LT=1;var e=an();qg=t,t.displayName="tt2",t.aliases=[];function t(n){n.register(e),(function(i){i.languages.tt2=i.languages.extend("clike",{comment:/#.*|\[%#[\s\S]*?%\]/,keyword:/\b(?:BLOCK|CALL|CASE|CATCH|CLEAR|DEBUG|DEFAULT|ELSE|ELSIF|END|FILTER|FINAL|FOREACH|GET|IF|IN|INCLUDE|INSERT|LAST|MACRO|META|NEXT|PERL|PROCESS|RAWPERL|RETURN|SET|STOP|SWITCH|TAGS|THROW|TRY|UNLESS|USE|WHILE|WRAPPER)\b/,punctuation:/[[\]{},()]/}),i.languages.insertBefore("tt2","number",{operator:/=[>=]?|!=?|<=?|>=?|&&|\|\|?|\b(?:and|not|or)\b/,variable:{pattern:/\b[a-z]\w*(?:\s*\.\s*(?:\d+|\$?[a-z]\w*))*\b/i}}),i.languages.insertBefore("tt2","keyword",{delimiter:{pattern:/^(?:\[%|%%)-?|-?%\]$/,alias:"punctuation"}}),i.languages.insertBefore("tt2","string",{"single-quoted-string":{pattern:/'[^\\']*(?:\\[\s\S][^\\']*)*'/,greedy:!0,alias:"string"},"double-quoted-string":{pattern:/"[^\\"]*(?:\\[\s\S][^\\"]*)*"/,greedy:!0,alias:"string",inside:{variable:{pattern:/\$(?:[a-z]\w*(?:\.(?:\d+|\$?[a-z]\w*))*)/i}}}}),delete i.languages.tt2.string,i.hooks.add("before-tokenize",function(o){var l=/\[%[\s\S]+?%\]/g;i.languages["markup-templating"].buildPlaceholders(o,"tt2",l)}),i.hooks.add("after-tokenize",function(o){i.languages["markup-templating"].tokenizePlaceholders(o,"tt2")})})(n)}return qg}var Gg,DT;function p4(){if(DT)return Gg;DT=1;var e=an();Gg=t,t.displayName="twig",t.aliases=[];function t(n){n.register(e),n.languages.twig={comment:/^\{#[\s\S]*?#\}$/,"tag-name":{pattern:/(^\{%-?\s*)\w+/,lookbehind:!0,alias:"keyword"},delimiter:{pattern:/^\{[{%]-?|-?[%}]\}$/,alias:"punctuation"},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,inside:{punctuation:/^['"]|['"]$/}},keyword:/\b(?:even|if|odd)\b/,boolean:/\b(?:false|null|true)\b/,number:/\b0x[\dA-Fa-f]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][-+]?\d+)?/,operator:[{pattern:/(\s)(?:and|b-and|b-or|b-xor|ends with|in|is|matches|not|or|same as|starts with)(?=\s)/,lookbehind:!0},/[=<>]=?|!=|\*\*?|\/\/?|\?:?|[-+~%|]/],punctuation:/[()\[\]{}:.,]/},n.hooks.add("before-tokenize",function(i){if(i.language==="twig"){var o=/\{(?:#[\s\S]*?#|%[\s\S]*?%|\{[\s\S]*?\})\}/g;n.languages["markup-templating"].buildPlaceholders(i,"twig",o)}}),n.hooks.add("after-tokenize",function(i){n.languages["markup-templating"].tokenizePlaceholders(i,"twig")})}return Gg}var Hg,MT;function f4(){if(MT)return Hg;MT=1,Hg=e,e.displayName="typoscript",e.aliases=["tsconfig"];function e(t){(function(n){var i=/\b(?:ACT|ACTIFSUB|CARRAY|CASE|CLEARGIF|COA|COA_INT|CONSTANTS|CONTENT|CUR|EDITPANEL|EFFECT|EXT|FILE|FLUIDTEMPLATE|FORM|FRAME|FRAMESET|GIFBUILDER|GMENU|GMENU_FOLDOUT|GMENU_LAYERS|GP|HMENU|HRULER|HTML|IENV|IFSUB|IMAGE|IMGMENU|IMGMENUITEM|IMGTEXT|IMG_RESOURCE|INCLUDE_TYPOSCRIPT|JSMENU|JSMENUITEM|LLL|LOAD_REGISTER|NO|PAGE|RECORDS|RESTORE_REGISTER|TEMPLATE|TEXT|TMENU|TMENUITEM|TMENU_LAYERS|USER|USER_INT|_GIFBUILDER|global|globalString|globalVar)\b/;n.languages.typoscript={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0},{pattern:/(^|[^\\:= \t]|(?:^|[^= \t])[ \t]+)\/\/.*/,lookbehind:!0,greedy:!0},{pattern:/(^|[^"'])#.*/,lookbehind:!0,greedy:!0}],function:[{pattern://,inside:{string:{pattern:/"[^"\r\n]*"|'[^'\r\n]*'/,inside:{keyword:i}},keyword:{pattern:/INCLUDE_TYPOSCRIPT/}}},{pattern:/@import\s*(?:"[^"\r\n]*"|'[^'\r\n]*')/,inside:{string:/"[^"\r\n]*"|'[^'\r\n]*'/}}],string:{pattern:/^([^=]*=[< ]?)(?:(?!\]\n).)*/,lookbehind:!0,inside:{function:/\{\$.*\}/,keyword:i,number:/^\d+$/,punctuation:/[,|:]/}},keyword:i,number:{pattern:/\b\d+\s*[.{=]/,inside:{operator:/[.{=]/}},tag:{pattern:/\.?[-\w\\]+\.?/,inside:{punctuation:/\./}},punctuation:/[{}[\];(),.:|]/,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/},n.languages.tsconfig=n.languages.typoscript})(t)}return Hg}var Wg,FT;function g4(){if(FT)return Wg;FT=1,Wg=e,e.displayName="unrealscript",e.aliases=["uc","uscript"];function e(t){t.languages.unrealscript={comment:/\/\/.*|\/\*[\s\S]*?\*\//,string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},category:{pattern:/(\b(?:(?:autoexpand|hide|show)categories|var)\s*\()[^()]+(?=\))/,lookbehind:!0,greedy:!0,alias:"property"},metadata:{pattern:/(\w\s*)<\s*\w+\s*=[^<>|=\r\n]+(?:\|\s*\w+\s*=[^<>|=\r\n]+)*>/,lookbehind:!0,greedy:!0,inside:{property:/\b\w+(?=\s*=)/,operator:/=/,punctuation:/[<>|]/}},macro:{pattern:/`\w+/,alias:"property"},"class-name":{pattern:/(\b(?:class|enum|extends|interface|state(?:\(\))?|struct|within)\s+)\w+/,lookbehind:!0},keyword:/\b(?:abstract|actor|array|auto|autoexpandcategories|bool|break|byte|case|class|classgroup|client|coerce|collapsecategories|config|const|continue|default|defaultproperties|delegate|dependson|deprecated|do|dontcollapsecategories|editconst|editinlinenew|else|enum|event|exec|export|extends|final|float|for|forcescriptorder|foreach|function|goto|guid|hidecategories|hidedropdown|if|ignores|implements|inherits|input|int|interface|iterator|latent|local|material|name|native|nativereplication|noexport|nontransient|noteditinlinenew|notplaceable|operator|optional|out|pawn|perobjectconfig|perobjectlocalized|placeable|postoperator|preoperator|private|protected|reliable|replication|return|server|showcategories|simulated|singular|state|static|string|struct|structdefault|structdefaultproperties|switch|texture|transient|travel|unreliable|until|var|vector|while|within)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,boolean:/\b(?:false|true)\b/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/>>|<<|--|\+\+|\*\*|[-+*/~!=<>$@]=?|&&?|\|\|?|\^\^?|[?:%]|\b(?:ClockwiseFrom|Cross|Dot)\b/,punctuation:/[()[\]{};,.]/},t.languages.uc=t.languages.uscript=t.languages.unrealscript}return Wg}var Vg,PT;function m4(){if(PT)return Vg;PT=1,Vg=e,e.displayName="uorazor",e.aliases=[];function e(t){t.languages.uorazor={"comment-hash":{pattern:/#.*/,alias:"comment",greedy:!0},"comment-slash":{pattern:/\/\/.*/,alias:"comment",greedy:!0},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,inside:{punctuation:/^['"]|['"]$/},greedy:!0},"source-layers":{pattern:/\b(?:arms|backpack|blue|bracelet|cancel|clear|cloak|criminal|earrings|enemy|facialhair|friend|friendly|gloves|gray|grey|ground|hair|head|innerlegs|innertorso|innocent|lefthand|middletorso|murderer|neck|nonfriendly|onehandedsecondary|outerlegs|outertorso|pants|red|righthand|ring|self|shirt|shoes|talisman|waist)\b/i,alias:"function"},"source-commands":{pattern:/\b(?:alliance|attack|cast|clearall|clearignore|clearjournal|clearlist|clearsysmsg|createlist|createtimer|dclick|dclicktype|dclickvar|dress|dressconfig|drop|droprelloc|emote|getlabel|guild|gumpclose|gumpresponse|hotkey|ignore|lasttarget|lift|lifttype|menu|menuresponse|msg|org|organize|organizer|overhead|pause|poplist|potion|promptresponse|pushlist|removelist|removetimer|rename|restock|say|scav|scavenger|script|setability|setlasttarget|setskill|settimer|setvar|sysmsg|target|targetloc|targetrelloc|targettype|undress|unignore|unsetvar|useobject|useonce|useskill|usetype|virtue|wait|waitforgump|waitformenu|waitforprompt|waitforstat|waitforsysmsg|waitfortarget|walk|wfsysmsg|wft|whisper|yell)\b/,alias:"function"},"tag-name":{pattern:/(^\{%-?\s*)\w+/,lookbehind:!0,alias:"keyword"},delimiter:{pattern:/^\{[{%]-?|-?[%}]\}$/,alias:"punctuation"},function:/\b(?:atlist|close|closest|count|counter|counttype|dead|dex|diffhits|diffmana|diffstam|diffweight|find|findbuff|finddebuff|findlayer|findtype|findtypelist|followers|gumpexists|hidden|hits|hp|hue|human|humanoid|ingump|inlist|insysmessage|insysmsg|int|invul|lhandempty|list|listexists|mana|maxhits|maxhp|maxmana|maxstam|maxweight|monster|mounted|name|next|noto|paralyzed|poisoned|position|prev|previous|queued|rand|random|rhandempty|skill|stam|str|targetexists|timer|timerexists|varexist|warmode|weight)\b/,keyword:/\b(?:and|as|break|continue|else|elseif|endfor|endif|endwhile|for|if|loop|not|or|replay|stop|while)\b/,boolean:/\b(?:false|null|true)\b/,number:/\b0x[\dA-Fa-f]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][-+]?\d+)?/,operator:[{pattern:/(\s)(?:and|b-and|b-or|b-xor|ends with|in|is|matches|not|or|same as|starts with)(?=\s)/,lookbehind:!0},/[=<>]=?|!=|\*\*?|\/\/?|\?:?|[-+~%|]/],punctuation:/[()\[\]{}:.,]/}}return Vg}var Yg,UT;function h4(){if(UT)return Yg;UT=1,Yg=e,e.displayName="uri",e.aliases=["url"];function e(t){t.languages.uri={scheme:{pattern:/^[a-z][a-z0-9+.-]*:/im,greedy:!0,inside:{"scheme-delimiter":/:$/}},fragment:{pattern:/#[\w\-.~!$&'()*+,;=%:@/?]*/,inside:{"fragment-delimiter":/^#/}},query:{pattern:/\?[\w\-.~!$&'()*+,;=%:@/?]*/,inside:{"query-delimiter":{pattern:/^\?/,greedy:!0},"pair-delimiter":/[&;]/,pair:{pattern:/^[^=][\s\S]*/,inside:{key:/^[^=]+/,value:{pattern:/(^=)[\s\S]+/,lookbehind:!0}}}}},authority:{pattern:RegExp(/^\/\//.source+/(?:[\w\-.~!$&'()*+,;=%:]*@)?/.source+("(?:"+/\[(?:[0-9a-fA-F:.]{2,48}|v[0-9a-fA-F]+\.[\w\-.~!$&'()*+,;=]+)\]/.source+"|"+/[\w\-.~!$&'()*+,;=%]*/.source+")")+/(?::\d*)?/.source,"m"),inside:{"authority-delimiter":/^\/\//,"user-info-segment":{pattern:/^[\w\-.~!$&'()*+,;=%:]*@/,inside:{"user-info-delimiter":/@$/,"user-info":/^[\w\-.~!$&'()*+,;=%:]+/}},"port-segment":{pattern:/:\d*$/,inside:{"port-delimiter":/^:/,port:/^\d+/}},host:{pattern:/[\s\S]+/,inside:{"ip-literal":{pattern:/^\[[\s\S]+\]$/,inside:{"ip-literal-delimiter":/^\[|\]$/,"ipv-future":/^v[\s\S]+/,"ipv6-address":/^[\s\S]+/}},"ipv4-address":/^(?:(?:[03-9]\d?|[12]\d{0,2})\.){3}(?:[03-9]\d?|[12]\d{0,2})$/}}}},path:{pattern:/^[\w\-.~!$&'()*+,;=%:@/]+/m,inside:{"path-separator":/\//}}},t.languages.url=t.languages.uri}return Yg}var Kg,BT;function b4(){if(BT)return Kg;BT=1,Kg=e,e.displayName="v",e.aliases=[];function e(t){(function(n){var i={pattern:/[\s\S]+/,inside:null};n.languages.v=n.languages.extend("clike",{string:{pattern:/r?(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,alias:"quoted-string",greedy:!0,inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$(?:\{[^{}]*\}|\w+(?:\.\w+(?:\([^\(\)]*\))?|\[[^\[\]]+\])*)/,lookbehind:!0,inside:{"interpolation-variable":{pattern:/^\$\w[\s\S]*$/,alias:"variable"},"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},"interpolation-expression":i}}}},"class-name":{pattern:/(\b(?:enum|interface|struct|type)\s+)(?:C\.)?\w+/,lookbehind:!0},keyword:/(?:\b(?:__global|as|asm|assert|atomic|break|chan|const|continue|defer|else|embed|enum|fn|for|go(?:to)?|if|import|in|interface|is|lock|match|module|mut|none|or|pub|return|rlock|select|shared|sizeof|static|struct|type(?:of)?|union|unsafe)|\$(?:else|for|if)|#(?:flag|include))\b/,number:/\b(?:0x[a-f\d]+(?:_[a-f\d]+)*|0b[01]+(?:_[01]+)*|0o[0-7]+(?:_[0-7]+)*|\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?)\b/i,operator:/~|\?|[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\.?/,builtin:/\b(?:any(?:_float|_int)?|bool|byte(?:ptr)?|charptr|f(?:32|64)|i(?:8|16|64|128|nt)|rune|size_t|string|u(?:16|32|64|128)|voidptr)\b/}),i.inside=n.languages.v,n.languages.insertBefore("v","string",{char:{pattern:/`(?:\\`|\\?[^`]{1,2})`/,alias:"rune"}}),n.languages.insertBefore("v","operator",{attribute:{pattern:/(^[\t ]*)\[(?:deprecated|direct_array_access|flag|inline|live|ref_only|typedef|unsafe_fn|windows_stdcall)\]/m,lookbehind:!0,alias:"annotation",inside:{punctuation:/[\[\]]/,keyword:/\w+/}},generic:{pattern:/<\w+>(?=\s*[\)\{])/,inside:{punctuation:/[<>]/,"class-name":/\w+/}}}),n.languages.insertBefore("v","function",{"generic-function":{pattern:/\b\w+\s*<\w+>(?=\()/,inside:{function:/^\w+/,generic:{pattern:/<\w+>/,inside:n.languages.v.generic.inside}}}})})(t)}return Kg}var Zg,jT;function y4(){if(jT)return Zg;jT=1,Zg=e,e.displayName="vala",e.aliases=[];function e(t){t.languages.vala=t.languages.extend("clike",{"class-name":[{pattern:/\b[A-Z]\w*(?:\.\w+)*\b(?=(?:\?\s+|\*?\s+\*?)\w)/,inside:{punctuation:/\./}},{pattern:/(\[)[A-Z]\w*(?:\.\w+)*\b/,lookbehind:!0,inside:{punctuation:/\./}},{pattern:/(\b(?:class|interface)\s+[A-Z]\w*(?:\.\w+)*\s*:\s*)[A-Z]\w*(?:\.\w+)*\b/,lookbehind:!0,inside:{punctuation:/\./}},{pattern:/((?:\b(?:class|enum|interface|new|struct)\s+)|(?:catch\s+\())[A-Z]\w*(?:\.\w+)*\b/,lookbehind:!0,inside:{punctuation:/\./}}],keyword:/\b(?:abstract|as|assert|async|base|bool|break|case|catch|char|class|const|construct|continue|default|delegate|delete|do|double|dynamic|else|ensures|enum|errordomain|extern|finally|float|for|foreach|get|if|in|inline|int|int16|int32|int64|int8|interface|internal|is|lock|long|namespace|new|null|out|override|owned|params|private|protected|public|ref|requires|return|set|short|signal|sizeof|size_t|ssize_t|static|string|struct|switch|this|throw|throws|try|typeof|uchar|uint|uint16|uint32|uint64|uint8|ulong|unichar|unowned|ushort|using|value|var|virtual|void|volatile|weak|while|yield)\b/i,function:/\b\w+(?=\s*\()/,number:/(?:\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)(?:f|u?l?)?/i,operator:/\+\+|--|&&|\|\||<<=?|>>=?|=>|->|~|[+\-*\/%&^|=!<>]=?|\?\??|\.\.\./,punctuation:/[{}[\];(),.:]/,constant:/\b[A-Z0-9_]+\b/}),t.languages.insertBefore("vala","string",{"raw-string":{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string"},"template-string":{pattern:/@"[\s\S]*?"/,greedy:!0,inside:{interpolation:{pattern:/\$(?:\([^)]*\)|[a-zA-Z]\w*)/,inside:{delimiter:{pattern:/^\$\(?|\)$/,alias:"punctuation"},rest:t.languages.vala}},string:/[\s\S]+/}}}),t.languages.insertBefore("vala","keyword",{regex:{pattern:/\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[imsx]{0,4}(?=\s*(?:$|[\r\n,.;})\]]))/,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:t.languages.regex},"regex-delimiter":/^\//,"regex-flags":/^[a-z]+$/}}})}return Zg}var Xg,zT;function E4(){if(zT)return Xg;zT=1,Xg=e,e.displayName="velocity",e.aliases=[];function e(t){(function(n){n.languages.velocity=n.languages.extend("markup",{});var i={variable:{pattern:/(^|[^\\](?:\\\\)*)\$!?(?:[a-z][\w-]*(?:\([^)]*\))?(?:\.[a-z][\w-]*(?:\([^)]*\))?|\[[^\]]+\])*|\{[^}]+\})/i,lookbehind:!0,inside:{}},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},number:/\b\d+\b/,boolean:/\b(?:false|true)\b/,operator:/[=!<>]=?|[+*/%-]|&&|\|\||\.\.|\b(?:eq|g[et]|l[et]|n(?:e|ot))\b/,punctuation:/[(){}[\]:,.]/};i.variable.inside={string:i.string,function:{pattern:/([^\w-])[a-z][\w-]*(?=\()/,lookbehind:!0},number:i.number,boolean:i.boolean,punctuation:i.punctuation},n.languages.insertBefore("velocity","comment",{unparsed:{pattern:/(^|[^\\])#\[\[[\s\S]*?\]\]#/,lookbehind:!0,greedy:!0,inside:{punctuation:/^#\[\[|\]\]#$/}},"velocity-comment":[{pattern:/(^|[^\\])#\*[\s\S]*?\*#/,lookbehind:!0,greedy:!0,alias:"comment"},{pattern:/(^|[^\\])##.*/,lookbehind:!0,greedy:!0,alias:"comment"}],directive:{pattern:/(^|[^\\](?:\\\\)*)#@?(?:[a-z][\w-]*|\{[a-z][\w-]*\})(?:\s*\((?:[^()]|\([^()]*\))*\))?/i,lookbehind:!0,inside:{keyword:{pattern:/^#@?(?:[a-z][\w-]*|\{[a-z][\w-]*\})|\bin\b/,inside:{punctuation:/[{}]/}},rest:i}},variable:i.variable}),n.languages.velocity.tag.inside["attr-value"].inside.rest=n.languages.velocity})(t)}return Xg}var Qg,$T;function S4(){if($T)return Qg;$T=1,Qg=e,e.displayName="verilog",e.aliases=[];function e(t){t.languages.verilog={comment:{pattern:/\/\/.*|\/\*[\s\S]*?\*\//,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"kernel-function":{pattern:/\B\$\w+\b/,alias:"property"},constant:/\B`\w+\b/,function:/\b\w+(?=\()/,keyword:/\b(?:alias|and|assert|assign|assume|automatic|before|begin|bind|bins|binsof|bit|break|buf|bufif0|bufif1|byte|case|casex|casez|cell|chandle|class|clocking|cmos|config|const|constraint|context|continue|cover|covergroup|coverpoint|cross|deassign|default|defparam|design|disable|dist|do|edge|else|end|endcase|endclass|endclocking|endconfig|endfunction|endgenerate|endgroup|endinterface|endmodule|endpackage|endprimitive|endprogram|endproperty|endsequence|endspecify|endtable|endtask|enum|event|expect|export|extends|extern|final|first_match|for|force|foreach|forever|fork|forkjoin|function|generate|genvar|highz0|highz1|if|iff|ifnone|ignore_bins|illegal_bins|import|incdir|include|initial|inout|input|inside|instance|int|integer|interface|intersect|join|join_any|join_none|large|liblist|library|local|localparam|logic|longint|macromodule|matches|medium|modport|module|nand|negedge|new|nmos|nor|noshowcancelled|not|notif0|notif1|null|or|output|package|packed|parameter|pmos|posedge|primitive|priority|program|property|protected|pull0|pull1|pulldown|pullup|pulsestyle_ondetect|pulsestyle_onevent|pure|rand|randc|randcase|randsequence|rcmos|real|realtime|ref|reg|release|repeat|return|rnmos|rpmos|rtran|rtranif0|rtranif1|scalared|sequence|shortint|shortreal|showcancelled|signed|small|solve|specify|specparam|static|string|strong0|strong1|struct|super|supply0|supply1|table|tagged|task|this|throughout|time|timeprecision|timeunit|tran|tranif0|tranif1|tri|tri0|tri1|triand|trior|trireg|type|typedef|union|unique|unsigned|use|uwire|var|vectored|virtual|void|wait|wait_order|wand|weak0|weak1|while|wildcard|wire|with|within|wor|xnor|xor)\b/,important:/\b(?:always|always_comb|always_ff|always_latch)\b(?: *@)?/,number:/\B##?\d+|(?:\b\d+)?'[odbh] ?[\da-fzx_?]+|\b(?:\d*[._])?\d+(?:e[-+]?\d+)?/i,operator:/[-+{}^~%*\/?=!<>&|]+/,punctuation:/[[\];(),.:]/}}return Qg}var Jg,qT;function v4(){if(qT)return Jg;qT=1,Jg=e,e.displayName="vhdl",e.aliases=[];function e(t){t.languages.vhdl={comment:/--.+/,"vhdl-vectors":{pattern:/\b[oxb]"[\da-f_]+"|"[01uxzwlh-]+"/i,alias:"number"},"quoted-function":{pattern:/"\S+?"(?=\()/,alias:"function"},string:/"(?:[^\\"\r\n]|\\(?:\r\n|[\s\S]))*"/,constant:/\b(?:library|use)\b/i,keyword:/\b(?:'active|'ascending|'base|'delayed|'driving|'driving_value|'event|'high|'image|'instance_name|'last_active|'last_event|'last_value|'left|'leftof|'length|'low|'path_name|'pos|'pred|'quiet|'range|'reverse_range|'right|'rightof|'simple_name|'stable|'succ|'transaction|'val|'value|access|after|alias|all|architecture|array|assert|attribute|begin|block|body|buffer|bus|case|component|configuration|constant|disconnect|downto|else|elsif|end|entity|exit|file|for|function|generate|generic|group|guarded|if|impure|in|inertial|inout|is|label|library|linkage|literal|loop|map|new|next|null|of|on|open|others|out|package|port|postponed|procedure|process|pure|range|record|register|reject|report|return|select|severity|shared|signal|subtype|then|to|transport|type|unaffected|units|until|use|variable|wait|when|while|with)\b/i,boolean:/\b(?:false|true)\b/i,function:/\w+(?=\()/,number:/'[01uxzwlh-]'|\b(?:\d+#[\da-f_.]+#|\d[\d_.]*)(?:e[-+]?\d+)?/i,operator:/[<>]=?|:=|[-+*/&=]|\b(?:abs|and|mod|nand|nor|not|or|rem|rol|ror|sla|sll|sra|srl|xnor|xor)\b/i,punctuation:/[{}[\];(),.:]/}}return Jg}var em,GT;function k4(){if(GT)return em;GT=1,em=e,e.displayName="vim",e.aliases=[];function e(t){t.languages.vim={string:/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\r\n]|'')*'/,comment:/".*/,function:/\b\w+(?=\()/,keyword:/\b(?:N|Next|P|Print|X|XMLent|XMLns|ab|abbreviate|abc|abclear|abo|aboveleft|al|all|ar|arga|argadd|argd|argdelete|argdo|arge|argedit|argg|argglobal|argl|arglocal|args|argu|argument|as|ascii|b|bN|bNext|ba|bad|badd|ball|bd|bdelete|be|bel|belowright|bf|bfirst|bl|blast|bm|bmodified|bn|bnext|bo|botright|bp|bprevious|br|brea|break|breaka|breakadd|breakd|breakdel|breakl|breaklist|brewind|bro|browse|bufdo|buffer|buffers|bun|bunload|bw|bwipeout|c|cN|cNext|cNfcNfile|ca|cabbrev|cabc|cabclear|cad|caddb|caddbuffer|caddexpr|caddf|caddfile|cal|call|cat|catch|cb|cbuffer|cc|ccl|cclose|cd|ce|center|cex|cexpr|cf|cfile|cfir|cfirst|cg|cgetb|cgetbuffer|cgete|cgetexpr|cgetfile|change|changes|chd|chdir|che|checkpath|checkt|checktime|cl|cla|clast|clist|clo|close|cmapc|cmapclear|cn|cnew|cnewer|cnext|cnf|cnfile|cnorea|cnoreabbrev|co|col|colder|colo|colorscheme|comc|comclear|comp|compiler|con|conf|confirm|continue|cope|copen|copy|cp|cpf|cpfile|cprevious|cq|cquit|cr|crewind|cu|cuna|cunabbrev|cunmap|cw|cwindow|d|debugg|debuggreedy|delc|delcommand|delete|delf|delfunction|delm|delmarks|di|diffg|diffget|diffoff|diffpatch|diffpu|diffput|diffsplit|diffthis|diffu|diffupdate|dig|digraphs|display|dj|djump|dl|dlist|dr|drop|ds|dsearch|dsp|dsplit|e|earlier|echoe|echoerr|echom|echomsg|echon|edit|el|else|elsei|elseif|em|emenu|en|endf|endfo|endfor|endfun|endfunction|endif|endt|endtry|endw|endwhile|ene|enew|ex|exi|exit|exu|exusage|f|file|files|filetype|fin|fina|finally|find|fini|finish|fir|first|fix|fixdel|fo|fold|foldc|foldclose|foldd|folddoc|folddoclosed|folddoopen|foldo|foldopen|for|fu|fun|function|go|goto|gr|grep|grepa|grepadd|h|ha|hardcopy|help|helpf|helpfind|helpg|helpgrep|helpt|helptags|hid|hide|his|history|ia|iabbrev|iabc|iabclear|if|ij|ijump|il|ilist|imapc|imapclear|in|inorea|inoreabbrev|isearch|isp|isplit|iu|iuna|iunabbrev|iunmap|j|join|ju|jumps|k|kee|keepalt|keepj|keepjumps|keepmarks|l|lN|lNext|lNf|lNfile|la|lad|laddb|laddbuffer|laddexpr|laddf|laddfile|lan|language|last|later|lb|lbuffer|lc|lcd|lch|lchdir|lcl|lclose|left|lefta|leftabove|let|lex|lexpr|lf|lfile|lfir|lfirst|lg|lgetb|lgetbuffer|lgete|lgetexpr|lgetfile|lgr|lgrep|lgrepa|lgrepadd|lh|lhelpgrep|list|ll|lla|llast|lli|llist|lm|lmak|lmake|lmap|lmapc|lmapclear|ln|lne|lnew|lnewer|lnext|lnf|lnfile|lnoremap|lo|loadview|loc|lockmarks|lockv|lockvar|lol|lolder|lop|lopen|lp|lpf|lpfile|lprevious|lr|lrewind|ls|lt|ltag|lu|lunmap|lv|lvimgrep|lvimgrepa|lvimgrepadd|lw|lwindow|m|ma|mak|make|mark|marks|mat|match|menut|menutranslate|mk|mkexrc|mks|mksession|mksp|mkspell|mkv|mkvie|mkview|mkvimrc|mod|mode|move|mz|mzf|mzfile|mzscheme|n|nbkey|new|next|nmapc|nmapclear|noh|nohlsearch|norea|noreabbrev|nu|number|nun|nunmap|o|omapc|omapclear|on|only|open|opt|options|ou|ounmap|p|pc|pclose|pe|ped|pedit|perl|perld|perldo|po|pop|popu|popup|pp|ppop|pre|preserve|prev|previous|print|prof|profd|profdel|profile|promptf|promptfind|promptr|promptrepl|ps|psearch|ptN|ptNext|pta|ptag|ptf|ptfirst|ptj|ptjump|ptl|ptlast|ptn|ptnext|ptp|ptprevious|ptr|ptrewind|pts|ptselect|pu|put|pw|pwd|py|pyf|pyfile|python|q|qa|qall|quit|quita|quitall|r|read|rec|recover|red|redi|redir|redo|redr|redraw|redraws|redrawstatus|reg|registers|res|resize|ret|retab|retu|return|rew|rewind|ri|right|rightb|rightbelow|ru|rub|ruby|rubyd|rubydo|rubyf|rubyfile|runtime|rv|rviminfo|sN|sNext|sa|sal|sall|san|sandbox|sargument|sav|saveas|sb|sbN|sbNext|sba|sball|sbf|sbfirst|sbl|sblast|sbm|sbmodified|sbn|sbnext|sbp|sbprevious|sbr|sbrewind|sbuffer|scrip|scripte|scriptencoding|scriptnames|se|set|setf|setfiletype|setg|setglobal|setl|setlocal|sf|sfind|sfir|sfirst|sh|shell|sign|sil|silent|sim|simalt|sl|sla|slast|sleep|sm|smagic|smap|smapc|smapclear|sme|smenu|sn|snext|sni|sniff|sno|snomagic|snor|snoremap|snoreme|snoremenu|so|sor|sort|source|sp|spe|spelld|spelldump|spellgood|spelli|spellinfo|spellr|spellrepall|spellu|spellundo|spellw|spellwrong|split|spr|sprevious|sre|srewind|st|sta|stag|star|startg|startgreplace|startinsert|startr|startreplace|stj|stjump|stop|stopi|stopinsert|sts|stselect|sun|sunhide|sunm|sunmap|sus|suspend|sv|sview|syncbind|t|tN|tNext|ta|tab|tabN|tabNext|tabc|tabclose|tabd|tabdo|tabe|tabedit|tabf|tabfind|tabfir|tabfirst|tabl|tablast|tabm|tabmove|tabn|tabnew|tabnext|tabo|tabonly|tabp|tabprevious|tabr|tabrewind|tabs|tag|tags|tc|tcl|tcld|tcldo|tclf|tclfile|te|tearoff|tf|tfirst|th|throw|tj|tjump|tl|tlast|tm|tmenu|tn|tnext|to|topleft|tp|tprevious|tr|trewind|try|ts|tselect|tu|tunmenu|u|una|unabbreviate|undo|undoj|undojoin|undol|undolist|unh|unhide|unlet|unlo|unlockvar|unm|unmap|up|update|ve|verb|verbose|version|vert|vertical|vi|vie|view|vim|vimgrep|vimgrepa|vimgrepadd|visual|viu|viusage|vmapc|vmapclear|vne|vnew|vs|vsplit|vu|vunmap|w|wN|wNext|wa|wall|wh|while|win|winc|wincmd|windo|winp|winpos|winsize|wn|wnext|wp|wprevious|wq|wqa|wqall|write|ws|wsverb|wv|wviminfo|x|xa|xall|xit|xm|xmap|xmapc|xmapclear|xme|xmenu|xn|xnoremap|xnoreme|xnoremenu|xu|xunmap|y|yank)\b/,builtin:/\b(?:acd|ai|akm|aleph|allowrevins|altkeymap|ambiwidth|ambw|anti|antialias|arab|arabic|arabicshape|ari|arshape|autochdir|autocmd|autoindent|autoread|autowrite|autowriteall|aw|awa|background|backspace|backup|backupcopy|backupdir|backupext|backupskip|balloondelay|ballooneval|balloonexpr|bdir|bdlay|beval|bex|bexpr|bg|bh|bin|binary|biosk|bioskey|bk|bkc|bomb|breakat|brk|browsedir|bs|bsdir|bsk|bt|bufhidden|buflisted|buftype|casemap|ccv|cdpath|cedit|cfu|ch|charconvert|ci|cin|cindent|cink|cinkeys|cino|cinoptions|cinw|cinwords|clipboard|cmdheight|cmdwinheight|cmp|cms|columns|com|comments|commentstring|compatible|complete|completefunc|completeopt|consk|conskey|copyindent|cot|cpo|cpoptions|cpt|cscopepathcomp|cscopeprg|cscopequickfix|cscopetag|cscopetagorder|cscopeverbose|cspc|csprg|csqf|cst|csto|csverb|cuc|cul|cursorcolumn|cursorline|cwh|debug|deco|def|define|delcombine|dex|dg|dict|dictionary|diff|diffexpr|diffopt|digraph|dip|dir|directory|dy|ea|ead|eadirection|eb|ed|edcompatible|ef|efm|ei|ek|enc|encoding|endofline|eol|ep|equalalways|equalprg|errorbells|errorfile|errorformat|esckeys|et|eventignore|expandtab|exrc|fcl|fcs|fdc|fde|fdi|fdl|fdls|fdm|fdn|fdo|fdt|fen|fenc|fencs|fex|ff|ffs|fileencoding|fileencodings|fileformat|fileformats|fillchars|fk|fkmap|flp|fml|fmr|foldcolumn|foldenable|foldexpr|foldignore|foldlevel|foldlevelstart|foldmarker|foldmethod|foldminlines|foldnestmax|foldtext|formatexpr|formatlistpat|formatoptions|formatprg|fp|fs|fsync|ft|gcr|gd|gdefault|gfm|gfn|gfs|gfw|ghr|gp|grepformat|grepprg|gtl|gtt|guicursor|guifont|guifontset|guifontwide|guiheadroom|guioptions|guipty|guitablabel|guitabtooltip|helpfile|helpheight|helplang|hf|hh|hi|hidden|highlight|hk|hkmap|hkmapp|hkp|hl|hlg|hls|hlsearch|ic|icon|iconstring|ignorecase|im|imactivatekey|imak|imc|imcmdline|imd|imdisable|imi|iminsert|ims|imsearch|inc|include|includeexpr|incsearch|inde|indentexpr|indentkeys|indk|inex|inf|infercase|insertmode|invacd|invai|invakm|invallowrevins|invaltkeymap|invanti|invantialias|invar|invarab|invarabic|invarabicshape|invari|invarshape|invautochdir|invautoindent|invautoread|invautowrite|invautowriteall|invaw|invawa|invbackup|invballooneval|invbeval|invbin|invbinary|invbiosk|invbioskey|invbk|invbl|invbomb|invbuflisted|invcf|invci|invcin|invcindent|invcompatible|invconfirm|invconsk|invconskey|invcopyindent|invcp|invcscopetag|invcscopeverbose|invcst|invcsverb|invcuc|invcul|invcursorcolumn|invcursorline|invdeco|invdelcombine|invdg|invdiff|invdigraph|invdisable|invea|inveb|inved|invedcompatible|invek|invendofline|inveol|invequalalways|inverrorbells|invesckeys|invet|invex|invexpandtab|invexrc|invfen|invfk|invfkmap|invfoldenable|invgd|invgdefault|invguipty|invhid|invhidden|invhk|invhkmap|invhkmapp|invhkp|invhls|invhlsearch|invic|invicon|invignorecase|invim|invimc|invimcmdline|invimd|invincsearch|invinf|invinfercase|invinsertmode|invis|invjoinspaces|invjs|invlazyredraw|invlbr|invlinebreak|invlisp|invlist|invloadplugins|invlpl|invlz|invma|invmacatsui|invmagic|invmh|invml|invmod|invmodeline|invmodifiable|invmodified|invmore|invmousef|invmousefocus|invmousehide|invnu|invnumber|invodev|invopendevice|invpaste|invpi|invpreserveindent|invpreviewwindow|invprompt|invpvw|invreadonly|invremap|invrestorescreen|invrevins|invri|invrightleft|invrightleftcmd|invrl|invrlc|invro|invrs|invru|invruler|invsb|invsc|invscb|invscrollbind|invscs|invsecure|invsft|invshellslash|invshelltemp|invshiftround|invshortname|invshowcmd|invshowfulltag|invshowmatch|invshowmode|invsi|invsm|invsmartcase|invsmartindent|invsmarttab|invsmd|invsn|invsol|invspell|invsplitbelow|invsplitright|invspr|invsr|invssl|invsta|invstartofline|invstmp|invswapfile|invswf|invta|invtagbsearch|invtagrelative|invtagstack|invtbi|invtbidi|invtbs|invtermbidi|invterse|invtextauto|invtextmode|invtf|invtgst|invtildeop|invtimeout|invtitle|invto|invtop|invtr|invttimeout|invttybuiltin|invttyfast|invtx|invvb|invvisualbell|invwa|invwarn|invwb|invweirdinvert|invwfh|invwfw|invwildmenu|invwinfixheight|invwinfixwidth|invwiv|invwmnu|invwrap|invwrapscan|invwrite|invwriteany|invwritebackup|invws|isf|isfname|isi|isident|isk|iskeyword|isprint|joinspaces|js|key|keymap|keymodel|keywordprg|km|kmp|kp|langmap|langmenu|laststatus|lazyredraw|lbr|lcs|linebreak|lines|linespace|lisp|lispwords|listchars|loadplugins|lpl|lsp|lz|macatsui|magic|makeef|makeprg|matchpairs|matchtime|maxcombine|maxfuncdepth|maxmapdepth|maxmem|maxmempattern|maxmemtot|mco|mef|menuitems|mfd|mh|mis|mkspellmem|ml|mls|mm|mmd|mmp|mmt|modeline|modelines|modifiable|modified|more|mouse|mousef|mousefocus|mousehide|mousem|mousemodel|mouses|mouseshape|mouset|mousetime|mp|mps|msm|mzq|mzquantum|nf|noacd|noai|noakm|noallowrevins|noaltkeymap|noanti|noantialias|noar|noarab|noarabic|noarabicshape|noari|noarshape|noautochdir|noautoindent|noautoread|noautowrite|noautowriteall|noaw|noawa|nobackup|noballooneval|nobeval|nobin|nobinary|nobiosk|nobioskey|nobk|nobl|nobomb|nobuflisted|nocf|noci|nocin|nocindent|nocompatible|noconfirm|noconsk|noconskey|nocopyindent|nocp|nocscopetag|nocscopeverbose|nocst|nocsverb|nocuc|nocul|nocursorcolumn|nocursorline|nodeco|nodelcombine|nodg|nodiff|nodigraph|nodisable|noea|noeb|noed|noedcompatible|noek|noendofline|noeol|noequalalways|noerrorbells|noesckeys|noet|noex|noexpandtab|noexrc|nofen|nofk|nofkmap|nofoldenable|nogd|nogdefault|noguipty|nohid|nohidden|nohk|nohkmap|nohkmapp|nohkp|nohls|noic|noicon|noignorecase|noim|noimc|noimcmdline|noimd|noincsearch|noinf|noinfercase|noinsertmode|nois|nojoinspaces|nojs|nolazyredraw|nolbr|nolinebreak|nolisp|nolist|noloadplugins|nolpl|nolz|noma|nomacatsui|nomagic|nomh|noml|nomod|nomodeline|nomodifiable|nomodified|nomore|nomousef|nomousefocus|nomousehide|nonu|nonumber|noodev|noopendevice|nopaste|nopi|nopreserveindent|nopreviewwindow|noprompt|nopvw|noreadonly|noremap|norestorescreen|norevins|nori|norightleft|norightleftcmd|norl|norlc|noro|nors|noru|noruler|nosb|nosc|noscb|noscrollbind|noscs|nosecure|nosft|noshellslash|noshelltemp|noshiftround|noshortname|noshowcmd|noshowfulltag|noshowmatch|noshowmode|nosi|nosm|nosmartcase|nosmartindent|nosmarttab|nosmd|nosn|nosol|nospell|nosplitbelow|nosplitright|nospr|nosr|nossl|nosta|nostartofline|nostmp|noswapfile|noswf|nota|notagbsearch|notagrelative|notagstack|notbi|notbidi|notbs|notermbidi|noterse|notextauto|notextmode|notf|notgst|notildeop|notimeout|notitle|noto|notop|notr|nottimeout|nottybuiltin|nottyfast|notx|novb|novisualbell|nowa|nowarn|nowb|noweirdinvert|nowfh|nowfw|nowildmenu|nowinfixheight|nowinfixwidth|nowiv|nowmnu|nowrap|nowrapscan|nowrite|nowriteany|nowritebackup|nows|nrformats|numberwidth|nuw|odev|oft|ofu|omnifunc|opendevice|operatorfunc|opfunc|osfiletype|pa|para|paragraphs|paste|pastetoggle|patchexpr|patchmode|path|pdev|penc|pex|pexpr|pfn|ph|pheader|pi|pm|pmbcs|pmbfn|popt|preserveindent|previewheight|previewwindow|printdevice|printencoding|printexpr|printfont|printheader|printmbcharset|printmbfont|printoptions|prompt|pt|pumheight|pvh|pvw|qe|quoteescape|readonly|remap|report|restorescreen|revins|rightleft|rightleftcmd|rl|rlc|ro|rs|rtp|ruf|ruler|rulerformat|runtimepath|sbo|sc|scb|scr|scroll|scrollbind|scrolljump|scrolloff|scrollopt|scs|sect|sections|secure|sel|selection|selectmode|sessionoptions|sft|shcf|shellcmdflag|shellpipe|shellquote|shellredir|shellslash|shelltemp|shelltype|shellxquote|shiftround|shiftwidth|shm|shortmess|shortname|showbreak|showcmd|showfulltag|showmatch|showmode|showtabline|shq|si|sidescroll|sidescrolloff|siso|sj|slm|smartcase|smartindent|smarttab|smc|smd|softtabstop|sol|spc|spell|spellcapcheck|spellfile|spelllang|spellsuggest|spf|spl|splitbelow|splitright|sps|sr|srr|ss|ssl|ssop|stal|startofline|statusline|stl|stmp|su|sua|suffixes|suffixesadd|sw|swapfile|swapsync|swb|swf|switchbuf|sws|sxq|syn|synmaxcol|syntax|t_AB|t_AF|t_AL|t_CS|t_CV|t_Ce|t_Co|t_Cs|t_DL|t_EI|t_F1|t_F2|t_F3|t_F4|t_F5|t_F6|t_F7|t_F8|t_F9|t_IE|t_IS|t_K1|t_K3|t_K4|t_K5|t_K6|t_K7|t_K8|t_K9|t_KA|t_KB|t_KC|t_KD|t_KE|t_KF|t_KG|t_KH|t_KI|t_KJ|t_KK|t_KL|t_RI|t_RV|t_SI|t_Sb|t_Sf|t_WP|t_WS|t_ZH|t_ZR|t_al|t_bc|t_cd|t_ce|t_cl|t_cm|t_cs|t_da|t_db|t_dl|t_fs|t_k1|t_k2|t_k3|t_k4|t_k5|t_k6|t_k7|t_k8|t_k9|t_kB|t_kD|t_kI|t_kN|t_kP|t_kb|t_kd|t_ke|t_kh|t_kl|t_kr|t_ks|t_ku|t_le|t_mb|t_md|t_me|t_mr|t_ms|t_nd|t_op|t_se|t_so|t_sr|t_te|t_ti|t_ts|t_ue|t_us|t_ut|t_vb|t_ve|t_vi|t_vs|t_xs|tabline|tabpagemax|tabstop|tagbsearch|taglength|tagrelative|tagstack|tal|tb|tbi|tbidi|tbis|tbs|tenc|term|termbidi|termencoding|terse|textauto|textmode|textwidth|tgst|thesaurus|tildeop|timeout|timeoutlen|title|titlelen|titleold|titlestring|toolbar|toolbariconsize|top|tpm|tsl|tsr|ttimeout|ttimeoutlen|ttm|tty|ttybuiltin|ttyfast|ttym|ttymouse|ttyscroll|ttytype|tw|tx|uc|ul|undolevels|updatecount|updatetime|ut|vb|vbs|vdir|verbosefile|vfile|viewdir|viewoptions|viminfo|virtualedit|visualbell|vop|wak|warn|wb|wc|wcm|wd|weirdinvert|wfh|wfw|whichwrap|wi|wig|wildchar|wildcharm|wildignore|wildmenu|wildmode|wildoptions|wim|winaltkeys|window|winfixheight|winfixwidth|winheight|winminheight|winminwidth|winwidth|wiv|wiw|wm|wmh|wmnu|wmw|wop|wrap|wrapmargin|wrapscan|writeany|writebackup|writedelay|ww)\b/,number:/\b(?:0x[\da-f]+|\d+(?:\.\d+)?)\b/i,operator:/\|\||&&|[-+.]=?|[=!](?:[=~][#?]?)?|[<>]=?[#?]?|[*\/%?]|\b(?:is(?:not)?)\b/,punctuation:/[{}[\](),;:]/}}return em}var tm,HT;function _4(){if(HT)return tm;HT=1,tm=e,e.displayName="visualBasic",e.aliases=[];function e(t){t.languages["visual-basic"]={comment:{pattern:/(?:['‘’]|REM\b)(?:[^\r\n_]|_(?:\r\n?|\n)?)*/i,inside:{keyword:/^REM/i}},directive:{pattern:/#(?:Const|Else|ElseIf|End|ExternalChecksum|ExternalSource|If|Region)(?:\b_[ \t]*(?:\r\n?|\n)|.)+/i,alias:"property",greedy:!0},string:{pattern:/\$?["“”](?:["“”]{2}|[^"“”])*["“”]C?/i,greedy:!0},date:{pattern:/#[ \t]*(?:\d+([/-])\d+\1\d+(?:[ \t]+(?:\d+[ \t]*(?:AM|PM)|\d+:\d+(?::\d+)?(?:[ \t]*(?:AM|PM))?))?|\d+[ \t]*(?:AM|PM)|\d+:\d+(?::\d+)?(?:[ \t]*(?:AM|PM))?)[ \t]*#/i,alias:"number"},number:/(?:(?:\b\d+(?:\.\d+)?|\.\d+)(?:E[+-]?\d+)?|&[HO][\dA-F]+)(?:[FRD]|U?[ILS])?/i,boolean:/\b(?:False|Nothing|True)\b/i,keyword:/\b(?:AddHandler|AddressOf|Alias|And(?:Also)?|As|Boolean|ByRef|Byte|ByVal|Call|Case|Catch|C(?:Bool|Byte|Char|Date|Dbl|Dec|Int|Lng|Obj|SByte|Short|Sng|Str|Type|UInt|ULng|UShort)|Char|Class|Const|Continue|Currency|Date|Decimal|Declare|Default|Delegate|Dim|DirectCast|Do|Double|Each|Else(?:If)?|End(?:If)?|Enum|Erase|Error|Event|Exit|Finally|For|Friend|Function|Get(?:Type|XMLNamespace)?|Global|GoSub|GoTo|Handles|If|Implements|Imports|In|Inherits|Integer|Interface|Is|IsNot|Let|Lib|Like|Long|Loop|Me|Mod|Module|Must(?:Inherit|Override)|My(?:Base|Class)|Namespace|Narrowing|New|Next|Not(?:Inheritable|Overridable)?|Object|Of|On|Operator|Option(?:al)?|Or(?:Else)?|Out|Overloads|Overridable|Overrides|ParamArray|Partial|Private|Property|Protected|Public|RaiseEvent|ReadOnly|ReDim|RemoveHandler|Resume|Return|SByte|Select|Set|Shadows|Shared|short|Single|Static|Step|Stop|String|Structure|Sub|SyncLock|Then|Throw|To|Try|TryCast|Type|TypeOf|U(?:Integer|Long|Short)|Until|Using|Variant|Wend|When|While|Widening|With(?:Events)?|WriteOnly|Xor)\b/i,operator:/[+\-*/\\^<=>&#@$%!]|\b_(?=[ \t]*[\r\n])/,punctuation:/[{}().,:?]/},t.languages.vb=t.languages["visual-basic"],t.languages.vba=t.languages["visual-basic"]}return tm}var nm,WT;function w4(){if(WT)return nm;WT=1,nm=e,e.displayName="warpscript",e.aliases=[];function e(t){t.languages.warpscript={comment:/#.*|\/\/.*|\/\*[\s\S]*?\*\//,string:{pattern:/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'|<'(?:[^\\']|'(?!>)|\\.)*'>/,greedy:!0},variable:/\$\S+/,macro:{pattern:/@\S+/,alias:"property"},keyword:/\b(?:BREAK|CHECKMACRO|CONTINUE|CUDF|DEFINED|DEFINEDMACRO|EVAL|FAIL|FOR|FOREACH|FORSTEP|IFT|IFTE|MSGFAIL|NRETURN|RETHROW|RETURN|SWITCH|TRY|UDF|UNTIL|WHILE)\b/,number:/[+-]?\b(?:NaN|Infinity|\d+(?:\.\d*)?(?:[Ee][+-]?\d+)?|0x[\da-fA-F]+|0b[01]+)\b/,boolean:/\b(?:F|T|false|true)\b/,punctuation:/<%|%>|[{}[\]()]/,operator:/==|&&?|\|\|?|\*\*?|>>>?|<<|[<>!~]=?|[-/%^]|\+!?|\b(?:AND|NOT|OR)\b/}}return nm}var rm,VT;function T4(){if(VT)return rm;VT=1,rm=e,e.displayName="wasm",e.aliases=[];function e(t){t.languages.wasm={comment:[/\(;[\s\S]*?;\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/"(?:\\[\s\S]|[^"\\])*"/,greedy:!0},keyword:[{pattern:/\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|neg?|nearest|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|sqrt|store(?:8|16|32)?|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,inside:{punctuation:/\./}},/\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/],variable:/\$[\w!#$%&'*+\-./:<=>?@\\^`|~]+/,number:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,punctuation:/[()]/}}return rm}var am,YT;function x4(){if(YT)return am;YT=1,am=e,e.displayName="webIdl",e.aliases=[];function e(t){(function(n){var i=/(?:\B-|\b_|\b)[A-Za-z][\w-]*(?![\w-])/.source,o="(?:"+/\b(?:unsigned\s+)?long\s+long(?![\w-])/.source+"|"+/\b(?:unrestricted|unsigned)\s+[a-z]+(?![\w-])/.source+"|"+/(?!(?:unrestricted|unsigned)\b)/.source+i+/(?:\s*<(?:[^<>]|<[^<>]*>)*>)?/.source+")"+/(?:\s*\?)?/.source,l={};n.languages["web-idl"]={comment:{pattern:/\/\/.*|\/\*[\s\S]*?\*\//,greedy:!0},string:{pattern:/"[^"]*"/,greedy:!0},namespace:{pattern:RegExp(/(\bnamespace\s+)/.source+i),lookbehind:!0},"class-name":[{pattern:/(^|[^\w-])(?:iterable|maplike|setlike)\s*<(?:[^<>]|<[^<>]*>)*>/,lookbehind:!0,inside:l},{pattern:RegExp(/(\b(?:attribute|const|deleter|getter|optional|setter)\s+)/.source+o),lookbehind:!0,inside:l},{pattern:RegExp("("+/\bcallback\s+/.source+i+/\s*=\s*/.source+")"+o),lookbehind:!0,inside:l},{pattern:RegExp(/(\btypedef\b\s*)/.source+o),lookbehind:!0,inside:l},{pattern:RegExp(/(\b(?:callback|dictionary|enum|interface(?:\s+mixin)?)\s+)(?!(?:interface|mixin)\b)/.source+i),lookbehind:!0},{pattern:RegExp(/(:\s*)/.source+i),lookbehind:!0},RegExp(i+/(?=\s+(?:implements|includes)\b)/.source),{pattern:RegExp(/(\b(?:implements|includes)\s+)/.source+i),lookbehind:!0},{pattern:RegExp(o+"(?="+/\s*(?:\.{3}\s*)?/.source+i+/\s*[(),;=]/.source+")"),inside:l}],builtin:/\b(?:ArrayBuffer|BigInt64Array|BigUint64Array|ByteString|DOMString|DataView|Float32Array|Float64Array|FrozenArray|Int16Array|Int32Array|Int8Array|ObservableArray|Promise|USVString|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray)\b/,keyword:[/\b(?:async|attribute|callback|const|constructor|deleter|dictionary|enum|getter|implements|includes|inherit|interface|mixin|namespace|null|optional|or|partial|readonly|required|setter|static|stringifier|typedef|unrestricted)\b/,/\b(?:any|bigint|boolean|byte|double|float|iterable|long|maplike|object|octet|record|sequence|setlike|short|symbol|undefined|unsigned|void)\b/],boolean:/\b(?:false|true)\b/,number:{pattern:/(^|[^\w-])-?(?:0x[0-9a-f]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|NaN|Infinity)(?![\w-])/i,lookbehind:!0},operator:/\.{3}|[=:?<>-]/,punctuation:/[(){}[\].,;]/};for(var u in n.languages["web-idl"])u!=="class-name"&&(l[u]=n.languages["web-idl"][u]);n.languages.webidl=n.languages["web-idl"]})(t)}return am}var im,KT;function A4(){if(KT)return im;KT=1,im=e,e.displayName="wiki",e.aliases=[];function e(t){t.languages.wiki=t.languages.extend("markup",{"block-comment":{pattern:/(^|[^\\])\/\*[\s\S]*?\*\//,lookbehind:!0,alias:"comment"},heading:{pattern:/^(=+)[^=\r\n].*?\1/m,inside:{punctuation:/^=+|=+$/,important:/.+/}},emphasis:{pattern:/('{2,5}).+?\1/,inside:{"bold-italic":{pattern:/(''''').+?(?=\1)/,lookbehind:!0,alias:["bold","italic"]},bold:{pattern:/(''')[^'](?:.*?[^'])?(?=\1)/,lookbehind:!0},italic:{pattern:/('')[^'](?:.*?[^'])?(?=\1)/,lookbehind:!0},punctuation:/^''+|''+$/}},hr:{pattern:/^-{4,}/m,alias:"punctuation"},url:[/ISBN +(?:97[89][ -]?)?(?:\d[ -]?){9}[\dx]\b|(?:PMID|RFC) +\d+/i,/\[\[.+?\]\]|\[.+?\]/],variable:[/__[A-Z]+__/,/\{{3}.+?\}{3}/,/\{\{.+?\}\}/],symbol:[/^#redirect/im,/~{3,5}/],"table-tag":{pattern:/((?:^|[|!])[|!])[^|\r\n]+\|(?!\|)/m,lookbehind:!0,inside:{"table-bar":{pattern:/\|$/,alias:"punctuation"},rest:t.languages.markup.tag.inside}},punctuation:/^(?:\{\||\|\}|\|-|[*#:;!|])|\|\||!!/m}),t.languages.insertBefore("wiki","tag",{nowiki:{pattern:/<(nowiki|pre|source)\b[^>]*>[\s\S]*?<\/\1>/i,inside:{tag:{pattern:/<(?:nowiki|pre|source)\b[^>]*>|<\/(?:nowiki|pre|source)>/i,inside:t.languages.markup.tag.inside}}}})}return im}var om,ZT;function R4(){if(ZT)return om;ZT=1,om=e,e.displayName="wolfram",e.aliases=["mathematica","wl","nb"];function e(t){t.languages.wolfram={comment:/\(\*(?:\(\*(?:[^*]|\*(?!\)))*\*\)|(?!\(\*)[\s\S])*?\*\)/,string:{pattern:/"(?:\\.|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:Abs|AbsArg|Accuracy|Block|Do|For|Function|If|Manipulate|Module|Nest|NestList|None|Return|Switch|Table|Which|While)\b/,context:{pattern:/\b\w+`+\w*/,alias:"class-name"},blank:{pattern:/\b\w+_\b/,alias:"regex"},"global-variable":{pattern:/\$\w+/,alias:"variable"},boolean:/\b(?:False|True)\b/,number:/(?:\b(?=\d)|\B(?=\.))(?:0[bo])?(?:(?:\d|0x[\da-f])[\da-f]*(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?j?\b/i,operator:/\/\.|;|=\.|\^=|\^:=|:=|<<|>>|<\||\|>|:>|\|->|->|<-|@@@|@@|@|\/@|=!=|===|==|=|\+|-|\^|\[\/-+%=\]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},t.languages.mathematica=t.languages.wolfram,t.languages.wl=t.languages.wolfram,t.languages.nb=t.languages.wolfram}return om}var sm,XT;function N4(){if(XT)return sm;XT=1,sm=e,e.displayName="wren",e.aliases=[];function e(t){t.languages.wren={comment:[{pattern:/\/\*(?:[^*/]|\*(?!\/)|\/(?!\*)|\/\*(?:[^*/]|\*(?!\/)|\/(?!\*)|\/\*(?:[^*/]|\*(?!\/)|\/(?!\*))*\*\/)*\*\/)*\*\//,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],"triple-quoted-string":{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string"},"string-literal":null,hashbang:{pattern:/^#!\/.+/,greedy:!0,alias:"comment"},attribute:{pattern:/#!?[ \t\u3000]*\w+/,alias:"keyword"},"class-name":[{pattern:/(\bclass\s+)\w+/,lookbehind:!0},/\b[A-Z][a-z\d_]*\b/],constant:/\b[A-Z][A-Z\d_]*\b/,null:{pattern:/\bnull\b/,alias:"keyword"},keyword:/\b(?:as|break|class|construct|continue|else|for|foreign|if|import|in|is|return|static|super|this|var|while)\b/,boolean:/\b(?:false|true)\b/,number:/\b(?:0x[\da-f]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?)\b/i,function:/\b[a-z_]\w*(?=\s*[({])/i,operator:/<<|>>|[=!<>]=?|&&|\|\||[-+*/%~^&|?:]|\.{2,3}/,punctuation:/[\[\](){}.,;]/},t.languages.wren["string-literal"]={pattern:/(^|[^\\"])"(?:[^\\"%]|\\[\s\S]|%(?!\()|%\((?:[^()]|\((?:[^()]|\([^)]*\))*\))*\))*"/,lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)%\((?:[^()]|\((?:[^()]|\([^)]*\))*\))*\)/,lookbehind:!0,inside:{expression:{pattern:/^(%\()[\s\S]+(?=\)$)/,lookbehind:!0,inside:t.languages.wren},"interpolation-punctuation":{pattern:/^%\(|\)$/,alias:"punctuation"}}},string:/[\s\S]+/}}}return sm}var lm,QT;function C4(){if(QT)return lm;QT=1,lm=e,e.displayName="xeora",e.aliases=["xeoracube"];function e(t){(function(n){n.languages.xeora=n.languages.extend("markup",{constant:{pattern:/\$(?:DomainContents|PageRenderDuration)\$/,inside:{punctuation:{pattern:/\$/}}},variable:{pattern:/\$@?(?:#+|[-+*~=^])?[\w.]+\$/,inside:{punctuation:{pattern:/[$.]/},operator:{pattern:/#+|[-+*~=^@]/}}},"function-inline":{pattern:/\$F:[-\w.]+\?[-\w.]+(?:,(?:(?:@[-#]*\w+\.[\w+.]\.*)*\|)*(?:(?:[\w+]|[-#*.~^]+[\w+]|=\S)(?:[^$=]|=+[^=])*=*|(?:@[-#]*\w+\.[\w+.]\.*)+(?:(?:[\w+]|[-#*~^][-#*.~^]*[\w+]|=\S)(?:[^$=]|=+[^=])*=*)?)?)?\$/,inside:{variable:{pattern:/(?:[,|])@?(?:#+|[-+*~=^])?[\w.]+/,inside:{punctuation:{pattern:/[,.|]/},operator:{pattern:/#+|[-+*~=^@]/}}},punctuation:{pattern:/\$\w:|[$:?.,|]/}},alias:"function"},"function-block":{pattern:/\$XF:\{[-\w.]+\?[-\w.]+(?:,(?:(?:@[-#]*\w+\.[\w+.]\.*)*\|)*(?:(?:[\w+]|[-#*.~^]+[\w+]|=\S)(?:[^$=]|=+[^=])*=*|(?:@[-#]*\w+\.[\w+.]\.*)+(?:(?:[\w+]|[-#*~^][-#*.~^]*[\w+]|=\S)(?:[^$=]|=+[^=])*=*)?)?)?\}:XF\$/,inside:{punctuation:{pattern:/[$:{}?.,|]/}},alias:"function"},"directive-inline":{pattern:/\$\w(?:#\d+\+?)?(?:\[[-\w.]+\])?:[-\/\w.]+\$/,inside:{punctuation:{pattern:/\$(?:\w:|C(?:\[|#\d))?|[:{[\]]/,inside:{tag:{pattern:/#\d/}}}},alias:"function"},"directive-block-open":{pattern:/\$\w+:\{|\$\w(?:#\d+\+?)?(?:\[[-\w.]+\])?:[-\w.]+:\{(?:![A-Z]+)?/,inside:{punctuation:{pattern:/\$(?:\w:|C(?:\[|#\d))?|[:{[\]]/,inside:{tag:{pattern:/#\d/}}},attribute:{pattern:/![A-Z]+$/,inside:{punctuation:{pattern:/!/}},alias:"keyword"}},alias:"function"},"directive-block-separator":{pattern:/\}:[-\w.]+:\{/,inside:{punctuation:{pattern:/[:{}]/}},alias:"function"},"directive-block-close":{pattern:/\}:[-\w.]+\$/,inside:{punctuation:{pattern:/[:{}$]/}},alias:"function"}}),n.languages.insertBefore("inside","punctuation",{variable:n.languages.xeora["function-inline"].inside.variable},n.languages.xeora["function-block"]),n.languages.xeoracube=n.languages.xeora})(t)}return lm}var um,JT;function I4(){if(JT)return um;JT=1,um=e,e.displayName="xmlDoc",e.aliases=[];function e(t){(function(n){function i(c,p){n.languages[c]&&n.languages.insertBefore(c,"comment",{"doc-comment":p})}var o=n.languages.markup.tag,l={pattern:/\/\/\/.*/,greedy:!0,alias:"comment",inside:{tag:o}},u={pattern:/'''.*/,greedy:!0,alias:"comment",inside:{tag:o}};i("csharp",l),i("fsharp",l),i("vbnet",u)})(t)}return um}var cm,ex;function O4(){if(ex)return cm;ex=1,cm=e,e.displayName="xojo",e.aliases=[];function e(t){t.languages.xojo={comment:{pattern:/(?:'|\/\/|Rem\b).+/i,greedy:!0},string:{pattern:/"(?:""|[^"])*"/,greedy:!0},number:[/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:E[+-]?\d+)?/i,/&[bchou][a-z\d]+/i],directive:{pattern:/#(?:Else|ElseIf|Endif|If|Pragma)\b/i,alias:"property"},keyword:/\b(?:AddHandler|App|Array|As(?:signs)?|Auto|Boolean|Break|By(?:Ref|Val)|Byte|Call|Case|Catch|CFStringRef|CGFloat|Class|Color|Const|Continue|CString|Currency|CurrentMethodName|Declare|Delegate|Dim|Do(?:uble|wnTo)?|Each|Else(?:If)?|End|Enumeration|Event|Exception|Exit|Extends|False|Finally|For|Function|Get|GetTypeInfo|Global|GOTO|If|Implements|In|Inherits|Int(?:8|16|32|64|eger|erface)?|Lib|Loop|Me|Module|Next|Nil|Object|Optional|OSType|ParamArray|Private|Property|Protected|PString|Ptr|Raise(?:Event)?|ReDim|RemoveHandler|Return|Select(?:or)?|Self|Set|Shared|Short|Single|Soft|Static|Step|String|Sub|Super|Text|Then|To|True|Try|Ubound|UInt(?:8|16|32|64|eger)?|Until|Using|Var(?:iant)?|Wend|While|WindowPtr|WString)\b/i,operator:/<[=>]?|>=?|[+\-*\/\\^=]|\b(?:AddressOf|And|Ctype|IsA?|Mod|New|Not|Or|WeakAddressOf|Xor)\b/i,punctuation:/[.,;:()]/}}return cm}var dm,tx;function L4(){if(tx)return dm;tx=1,dm=e,e.displayName="xquery",e.aliases=[];function e(t){(function(n){n.languages.xquery=n.languages.extend("markup",{"xquery-comment":{pattern:/\(:[\s\S]*?:\)/,greedy:!0,alias:"comment"},string:{pattern:/(["'])(?:\1\1|(?!\1)[\s\S])*\1/,greedy:!0},extension:{pattern:/\(#.+?#\)/,alias:"symbol"},variable:/\$[-\w:]+/,axis:{pattern:/(^|[^-])(?:ancestor(?:-or-self)?|attribute|child|descendant(?:-or-self)?|following(?:-sibling)?|parent|preceding(?:-sibling)?|self)(?=::)/,lookbehind:!0,alias:"operator"},"keyword-operator":{pattern:/(^|[^:-])\b(?:and|castable as|div|eq|except|ge|gt|idiv|instance of|intersect|is|le|lt|mod|ne|or|union)\b(?=$|[^:-])/,lookbehind:!0,alias:"operator"},keyword:{pattern:/(^|[^:-])\b(?:as|ascending|at|base-uri|boundary-space|case|cast as|collation|construction|copy-namespaces|declare|default|descending|else|empty (?:greatest|least)|encoding|every|external|for|function|if|import|in|inherit|lax|let|map|module|namespace|no-inherit|no-preserve|option|order(?: by|ed|ing)?|preserve|return|satisfies|schema|some|stable|strict|strip|then|to|treat as|typeswitch|unordered|validate|variable|version|where|xquery)\b(?=$|[^:-])/,lookbehind:!0},function:/[\w-]+(?::[\w-]+)*(?=\s*\()/,"xquery-element":{pattern:/(element\s+)[\w-]+(?::[\w-]+)*/,lookbehind:!0,alias:"tag"},"xquery-attribute":{pattern:/(attribute\s+)[\w-]+(?::[\w-]+)*/,lookbehind:!0,alias:"attr-name"},builtin:{pattern:/(^|[^:-])\b(?:attribute|comment|document|element|processing-instruction|text|xs:(?:ENTITIES|ENTITY|ID|IDREFS?|NCName|NMTOKENS?|NOTATION|Name|QName|anyAtomicType|anyType|anyURI|base64Binary|boolean|byte|date|dateTime|dayTimeDuration|decimal|double|duration|float|gDay|gMonth|gMonthDay|gYear|gYearMonth|hexBinary|int|integer|language|long|negativeInteger|nonNegativeInteger|nonPositiveInteger|normalizedString|positiveInteger|short|string|time|token|unsigned(?:Byte|Int|Long|Short)|untyped(?:Atomic)?|yearMonthDuration))\b(?=$|[^:-])/,lookbehind:!0},number:/\b\d+(?:\.\d+)?(?:E[+-]?\d+)?/,operator:[/[+*=?|@]|\.\.?|:=|!=|<[=<]?|>[=>]?/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}],punctuation:/[[\](){},;:/]/}),n.languages.xquery.tag.pattern=/<\/?(?!\d)[^\s>\/=$<%]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|\{(?!\{)(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])+\}|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/,n.languages.xquery.tag.inside["attr-value"].pattern=/=(?:("|')(?:\\[\s\S]|\{(?!\{)(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])+\}|(?!\1)[^\\])*\1|[^\s'">=]+)/,n.languages.xquery.tag.inside["attr-value"].inside.punctuation=/^="|"$/,n.languages.xquery.tag.inside["attr-value"].inside.expression={pattern:/\{(?!\{)(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])+\}/,inside:n.languages.xquery,alias:"language-xquery"};var i=function(l){return typeof l=="string"?l:typeof l.content=="string"?l.content:l.content.map(i).join("")},o=function(l){for(var u=[],c=0;c0&&u[u.length-1].tagName===i(p.content[0].content[1])&&u.pop():p.content[p.content.length-1].content==="/>"||u.push({tagName:i(p.content[0].content[1]),openedBraces:0}):u.length>0&&p.type==="punctuation"&&p.content==="{"&&(!l[c+1]||l[c+1].type!=="punctuation"||l[c+1].content!=="{")&&(!l[c-1]||l[c-1].type!=="plain-text"||l[c-1].content!=="{")?u[u.length-1].openedBraces++:u.length>0&&u[u.length-1].openedBraces>0&&p.type==="punctuation"&&p.content==="}"?u[u.length-1].openedBraces--:p.type!=="comment"&&(f=!0)),(f||typeof p=="string")&&u.length>0&&u[u.length-1].openedBraces===0){var m=i(p);c0&&(typeof l[c-1]=="string"||l[c-1].type==="plain-text")&&(m=i(l[c-1])+m,l.splice(c-1,1),c--),/^\s+$/.test(m)?l[c]=m:l[c]=new n.Token("plain-text",m,null,m)}p.content&&typeof p.content!="string"&&o(p.content)}};n.hooks.add("after-tokenize",function(l){l.language==="xquery"&&o(l.tokens)})})(t)}return dm}var pm,nx;function D4(){if(nx)return pm;nx=1,pm=e,e.displayName="yang",e.aliases=[];function e(t){t.languages.yang={comment:/\/\*[\s\S]*?\*\/|\/\/.*/,string:{pattern:/"(?:[^\\"]|\\.)*"|'[^']*'/,greedy:!0},keyword:{pattern:/(^|[{};\r\n][ \t]*)[a-z_][\w.-]*/i,lookbehind:!0},namespace:{pattern:/(\s)[a-z_][\w.-]*(?=:)/i,lookbehind:!0},boolean:/\b(?:false|true)\b/,operator:/\+/,punctuation:/[{};:]/}}return pm}var fm,rx;function M4(){if(rx)return fm;rx=1,fm=e,e.displayName="zig",e.aliases=[];function e(t){(function(n){function i(m){return function(){return m}}var o=/\b(?:align|allowzero|and|anyframe|anytype|asm|async|await|break|cancel|catch|comptime|const|continue|defer|else|enum|errdefer|error|export|extern|fn|for|if|inline|linksection|nakedcc|noalias|nosuspend|null|or|orelse|packed|promise|pub|resume|return|stdcallcc|struct|suspend|switch|test|threadlocal|try|undefined|union|unreachable|usingnamespace|var|volatile|while)\b/,l="\\b(?!"+o.source+")(?!\\d)\\w+\\b",u=/align\s*\((?:[^()]|\([^()]*\))*\)/.source,c=/(?:\?|\bpromise->|(?:\[[^[\]]*\]|\*(?!\*)|\*\*)(?:\s*|\s*const\b|\s*volatile\b|\s*allowzero\b)*)/.source.replace(//g,i(u)),p=/(?:\bpromise\b|(?:\berror\.)?(?:\.)*(?!\s+))/.source.replace(//g,i(l)),f="(?!\\s)(?:!?\\s*(?:"+c+"\\s*)*"+p+")+";n.languages.zig={comment:[{pattern:/\/\/[/!].*/,alias:"doc-comment"},/\/{2}.*/],string:[{pattern:/(^|[^\\@])c?"(?:[^"\\\r\n]|\\.)*"/,lookbehind:!0,greedy:!0},{pattern:/([\r\n])([ \t]+c?\\{2}).*(?:(?:\r\n?|\n)\2.*)*/,lookbehind:!0,greedy:!0}],char:{pattern:/(^|[^\\])'(?:[^'\\\r\n]|[\uD800-\uDFFF]{2}|\\(?:.|x[a-fA-F\d]{2}|u\{[a-fA-F\d]{1,6}\}))'/,lookbehind:!0,greedy:!0},builtin:/\B@(?!\d)\w+(?=\s*\()/,label:{pattern:/(\b(?:break|continue)\s*:\s*)\w+\b|\b(?!\d)\w+\b(?=\s*:\s*(?:\{|while\b))/,lookbehind:!0},"class-name":[/\b(?!\d)\w+(?=\s*=\s*(?:(?:extern|packed)\s+)?(?:enum|struct|union)\s*[({])/,{pattern:RegExp(/(:\s*)(?=\s*(?:\s*)?[=;,)])|(?=\s*(?:\s*)?\{)/.source.replace(//g,i(f)).replace(//g,i(u))),lookbehind:!0,inside:null},{pattern:RegExp(/(\)\s*)(?=\s*(?:\s*)?;)/.source.replace(//g,i(f)).replace(//g,i(u))),lookbehind:!0,inside:null}],"builtin-type":{pattern:/\b(?:anyerror|bool|c_u?(?:int|long|longlong|short)|c_longdouble|c_void|comptime_(?:float|int)|f(?:16|32|64|128)|[iu](?:8|16|32|64|128|size)|noreturn|type|void)\b/,alias:"keyword"},keyword:o,function:/\b(?!\d)\w+(?=\s*\()/,number:/\b(?:0b[01]+|0o[0-7]+|0x[a-fA-F\d]+(?:\.[a-fA-F\d]*)?(?:[pP][+-]?[a-fA-F\d]+)?|\d+(?:\.\d*)?(?:[eE][+-]?\d+)?)\b/,boolean:/\b(?:false|true)\b/,operator:/\.[*?]|\.{2,3}|[-=]>|\*\*|\+\+|\|\||(?:<<|>>|[-+*]%|[-+*/%^&|<>!=])=?|[?~]/,punctuation:/[.:,;(){}[\]]/},n.languages.zig["class-name"].forEach(function(m){m.inside===null&&(m.inside=n.languages.zig)})})(t)}return fm}var gm,ax;function F4(){if(ax)return gm;ax=1;var e=QP();return gm=e,e.register(eU()),e.register(tU()),e.register(nU()),e.register(rU()),e.register(aU()),e.register(iU()),e.register(oU()),e.register(sU()),e.register(lU()),e.register(uU()),e.register(cU()),e.register(dU()),e.register(pU()),e.register(fU()),e.register(gU()),e.register(mU()),e.register(hU()),e.register(bU()),e.register(yU()),e.register(EU()),e.register(SU()),e.register(vU()),e.register(JA()),e.register(eR()),e.register(kU()),e.register(_U()),e.register(wU()),e.register(TU()),e.register(xU()),e.register(AU()),e.register(RU()),e.register(NU()),e.register(CU()),e.register(IU()),e.register(Yr()),e.register(OU()),e.register(LU()),e.register(DU()),e.register(MU()),e.register(FU()),e.register(PU()),e.register(UU()),e.register(BU()),e.register(jU()),e.register(fh()),e.register(zU()),e.register(ks()),e.register($U()),e.register(qU()),e.register(GU()),e.register(HU()),e.register(WU()),e.register(VU()),e.register(YU()),e.register(KU()),e.register(ZU()),e.register(XU()),e.register(QU()),e.register(JU()),e.register(eB()),e.register(tB()),e.register(nB()),e.register(rB()),e.register(aB()),e.register(iB()),e.register(oB()),e.register(sB()),e.register(lB()),e.register(uB()),e.register(cB()),e.register(dB()),e.register(pB()),e.register(fB()),e.register(gB()),e.register(mB()),e.register(hB()),e.register(bB()),e.register(yB()),e.register(EB()),e.register(SB()),e.register(vB()),e.register(kB()),e.register(_B()),e.register(wB()),e.register(TB()),e.register(xB()),e.register(AB()),e.register(RB()),e.register(NB()),e.register(CB()),e.register(IB()),e.register(OB()),e.register(LB()),e.register(DB()),e.register(gh()),e.register(MB()),e.register(FB()),e.register(PB()),e.register(UB()),e.register(BB()),e.register(jB()),e.register(zB()),e.register($B()),e.register(qB()),e.register(GB()),e.register(HB()),e.register(WB()),e.register(VB()),e.register(YB()),e.register(KB()),e.register(ZB()),e.register(XB()),e.register(mh()),e.register(QB()),e.register(ws()),e.register(JB()),e.register(ej()),e.register(tj()),e.register(nj()),e.register(rj()),e.register(aj()),e.register(ij()),e.register(bh()),e.register(oj()),e.register(sj()),e.register(lj()),e.register(nR()),e.register(uj()),e.register(cj()),e.register(dj()),e.register(pj()),e.register(fj()),e.register(gj()),e.register(mj()),e.register(hj()),e.register(bj()),e.register(yj()),e.register(Ej()),e.register(Sj()),e.register(vj()),e.register(kj()),e.register(_j()),e.register(wj()),e.register(tR()),e.register(Tj()),e.register(xj()),e.register(Aj()),e.register(an()),e.register(Rj()),e.register(Nj()),e.register(Cj()),e.register(Ij()),e.register(Oj()),e.register(Lj()),e.register(Dj()),e.register(Mj()),e.register(Fj()),e.register(Pj()),e.register(Uj()),e.register(Bj()),e.register(jj()),e.register(zj()),e.register($j()),e.register(qj()),e.register(Gj()),e.register(Hj()),e.register(Wj()),e.register(Vj()),e.register(Yj()),e.register(Kj()),e.register(Zj()),e.register(Xj()),e.register(Qj()),e.register(Jj()),e.register(ez()),e.register(tz()),e.register(nz()),e.register(rz()),e.register(az()),e.register(iz()),e.register(Ts()),e.register(oz()),e.register(sz()),e.register(lz()),e.register(uz()),e.register(cz()),e.register(dz()),e.register(pz()),e.register(fz()),e.register(gz()),e.register(mz()),e.register(hz()),e.register(bz()),e.register(yz()),e.register(Ez()),e.register(Sz()),e.register(vz()),e.register(kz()),e.register(_z()),e.register(wz()),e.register(Tz()),e.register(xz()),e.register(Az()),e.register(Rz()),e.register(Nz()),e.register(Cz()),e.register(Iz()),e.register(Oz()),e.register(Lz()),e.register(Dz()),e.register(Mz()),e.register(_s()),e.register(Fz()),e.register(Pz()),e.register(Uz()),e.register(Bz()),e.register(yh()),e.register(jz()),e.register(zz()),e.register($z()),e.register(qz()),e.register(Gz()),e.register(Hz()),e.register(Wz()),e.register(Vz()),e.register(Yz()),e.register(Kz()),e.register(Zz()),e.register(Xz()),e.register(ph()),e.register(Qz()),e.register(Jz()),e.register(e4()),e.register(t4()),e.register(n4()),e.register(r4()),e.register(Eh()),e.register(a4()),e.register(i4()),e.register(o4()),e.register(s4()),e.register(l4()),e.register(u4()),e.register(c4()),e.register(d4()),e.register(rR()),e.register(p4()),e.register(hh()),e.register(f4()),e.register(g4()),e.register(m4()),e.register(h4()),e.register(b4()),e.register(y4()),e.register(aR()),e.register(E4()),e.register(S4()),e.register(v4()),e.register(k4()),e.register(_4()),e.register(w4()),e.register(T4()),e.register(x4()),e.register(A4()),e.register(R4()),e.register(N4()),e.register(C4()),e.register(I4()),e.register(O4()),e.register(L4()),e.register(iR()),e.register(D4()),e.register(M4()),gm}var P4=F4();const U4=Ni(P4);var oR=wM(U4,JP);oR.supportedLanguages=TM;const B4={'code[class*="language-"]':{color:"#393A34",fontFamily:'"Consolas", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace',direction:"ltr",textAlign:"left",whiteSpace:"pre",wordSpacing:"normal",wordBreak:"normal",fontSize:".9em",lineHeight:"1.2em",MozTabSize:"4",OTabSize:"4",tabSize:"4",WebkitHyphens:"none",MozHyphens:"none",msHyphens:"none",hyphens:"none"},'pre[class*="language-"]':{color:"#393A34",fontFamily:'"Consolas", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace',direction:"ltr",textAlign:"left",whiteSpace:"pre",wordSpacing:"normal",wordBreak:"normal",fontSize:".9em",lineHeight:"1.2em",MozTabSize:"4",OTabSize:"4",tabSize:"4",WebkitHyphens:"none",MozHyphens:"none",msHyphens:"none",hyphens:"none",padding:"1em",margin:".5em 0",overflow:"auto",border:"1px solid #dddddd",backgroundColor:"white"},'pre > code[class*="language-"]':{fontSize:"1em"},'pre[class*="language-"]::-moz-selection':{background:"#C1DEF1"},'pre[class*="language-"] ::-moz-selection':{background:"#C1DEF1"},'code[class*="language-"]::-moz-selection':{background:"#C1DEF1"},'code[class*="language-"] ::-moz-selection':{background:"#C1DEF1"},'pre[class*="language-"]::selection':{background:"#C1DEF1"},'pre[class*="language-"] ::selection':{background:"#C1DEF1"},'code[class*="language-"]::selection':{background:"#C1DEF1"},'code[class*="language-"] ::selection':{background:"#C1DEF1"},':not(pre) > code[class*="language-"]':{padding:".2em",paddingTop:"1px",paddingBottom:"1px",background:"#f8f8f8",border:"1px solid #dddddd"},comment:{color:"#008000",fontStyle:"italic"},prolog:{color:"#008000",fontStyle:"italic"},doctype:{color:"#008000",fontStyle:"italic"},cdata:{color:"#008000",fontStyle:"italic"},namespace:{Opacity:".7"},string:{color:"#A31515"},punctuation:{color:"#393A34"},operator:{color:"#393A34"},url:{color:"#36acaa"},symbol:{color:"#36acaa"},number:{color:"#36acaa"},boolean:{color:"#36acaa"},variable:{color:"#36acaa"},constant:{color:"#36acaa"},inserted:{color:"#36acaa"},atrule:{color:"#0000ff"},keyword:{color:"#0000ff"},"attr-value":{color:"#0000ff"},".language-autohotkey .token.selector":{color:"#0000ff"},".language-json .token.boolean":{color:"#0000ff"},".language-json .token.number":{color:"#0000ff"},'code[class*="language-css"]':{color:"#0000ff"},function:{color:"#393A34"},deleted:{color:"#9a050f"},".language-autohotkey .token.tag":{color:"#9a050f"},selector:{color:"#800000"},".language-autohotkey .token.keyword":{color:"#00009f"},important:{color:"#e90",fontWeight:"bold"},bold:{fontWeight:"bold"},italic:{fontStyle:"italic"},"class-name":{color:"#2B91AF"},".language-json .token.property":{color:"#2B91AF"},tag:{color:"#800000"},"attr-name":{color:"#ff0000"},property:{color:"#ff0000"},regex:{color:"#ff0000"},entity:{color:"#ff0000"},"directive.tag.tag":{background:"#ffff00",color:"#393A34"},".line-numbers.line-numbers .line-numbers-rows":{borderRightColor:"#a5a5a5"},".line-numbers .line-numbers-rows > span:before":{color:"#2B91AF"},".line-highlight.line-highlight":{background:"linear-gradient(to right, rgba(193, 222, 241, 0.2) 70%, rgba(221, 222, 241, 0))"}},j4={'pre[class*="language-"]':{color:"#d4d4d4",fontSize:"13px",textShadow:"none",fontFamily:'Menlo, Monaco, Consolas, "Andale Mono", "Ubuntu Mono", "Courier New", monospace',direction:"ltr",textAlign:"left",whiteSpace:"pre",wordSpacing:"normal",wordBreak:"normal",lineHeight:"1.5",MozTabSize:"4",OTabSize:"4",tabSize:"4",WebkitHyphens:"none",MozHyphens:"none",msHyphens:"none",hyphens:"none",padding:"1em",margin:".5em 0",overflow:"auto",background:"#1e1e1e"},'code[class*="language-"]':{color:"#d4d4d4",fontSize:"13px",textShadow:"none",fontFamily:'Menlo, Monaco, Consolas, "Andale Mono", "Ubuntu Mono", "Courier New", monospace',direction:"ltr",textAlign:"left",whiteSpace:"pre",wordSpacing:"normal",wordBreak:"normal",lineHeight:"1.5",MozTabSize:"4",OTabSize:"4",tabSize:"4",WebkitHyphens:"none",MozHyphens:"none",msHyphens:"none",hyphens:"none"},'pre[class*="language-"]::selection':{textShadow:"none",background:"#264F78"},'code[class*="language-"]::selection':{textShadow:"none",background:"#264F78"},'pre[class*="language-"] *::selection':{textShadow:"none",background:"#264F78"},'code[class*="language-"] *::selection':{textShadow:"none",background:"#264F78"},':not(pre) > code[class*="language-"]':{padding:".1em .3em",borderRadius:".3em",color:"#db4c69",background:"#1e1e1e"},".namespace":{Opacity:".7"},"doctype.doctype-tag":{color:"#569CD6"},"doctype.name":{color:"#9cdcfe"},comment:{color:"#6a9955"},prolog:{color:"#6a9955"},punctuation:{color:"#d4d4d4"},".language-html .language-css .token.punctuation":{color:"#d4d4d4"},".language-html .language-javascript .token.punctuation":{color:"#d4d4d4"},property:{color:"#9cdcfe"},tag:{color:"#569cd6"},boolean:{color:"#569cd6"},number:{color:"#b5cea8"},constant:{color:"#9cdcfe"},symbol:{color:"#b5cea8"},inserted:{color:"#b5cea8"},unit:{color:"#b5cea8"},selector:{color:"#d7ba7d"},"attr-name":{color:"#9cdcfe"},string:{color:"#ce9178"},char:{color:"#ce9178"},builtin:{color:"#ce9178"},deleted:{color:"#ce9178"},".language-css .token.string.url":{textDecoration:"underline"},operator:{color:"#d4d4d4"},entity:{color:"#569cd6"},"operator.arrow":{color:"#569CD6"},atrule:{color:"#ce9178"},"atrule.rule":{color:"#c586c0"},"atrule.url":{color:"#9cdcfe"},"atrule.url.function":{color:"#dcdcaa"},"atrule.url.punctuation":{color:"#d4d4d4"},keyword:{color:"#569CD6"},"keyword.module":{color:"#c586c0"},"keyword.control-flow":{color:"#c586c0"},function:{color:"#dcdcaa"},"function.maybe-class-name":{color:"#dcdcaa"},regex:{color:"#d16969"},important:{color:"#569cd6"},italic:{fontStyle:"italic"},"class-name":{color:"#4ec9b0"},"maybe-class-name":{color:"#4ec9b0"},console:{color:"#9cdcfe"},parameter:{color:"#9cdcfe"},interpolation:{color:"#9cdcfe"},"punctuation.interpolation-punctuation":{color:"#569cd6"},variable:{color:"#9cdcfe"},"imports.maybe-class-name":{color:"#9cdcfe"},"exports.maybe-class-name":{color:"#9cdcfe"},escape:{color:"#d7ba7d"},"tag.punctuation":{color:"#808080"},cdata:{color:"#808080"},"attr-value":{color:"#ce9178"},"attr-value.punctuation":{color:"#ce9178"},"attr-value.punctuation.attr-equals":{color:"#d4d4d4"},namespace:{color:"#4ec9b0"},'pre[class*="language-javascript"]':{color:"#9cdcfe"},'code[class*="language-javascript"]':{color:"#9cdcfe"},'pre[class*="language-jsx"]':{color:"#9cdcfe"},'code[class*="language-jsx"]':{color:"#9cdcfe"},'pre[class*="language-typescript"]':{color:"#9cdcfe"},'code[class*="language-typescript"]':{color:"#9cdcfe"},'pre[class*="language-tsx"]':{color:"#9cdcfe"},'code[class*="language-tsx"]':{color:"#9cdcfe"},'pre[class*="language-css"]':{color:"#ce9178"},'code[class*="language-css"]':{color:"#ce9178"},'pre[class*="language-html"]':{color:"#d4d4d4"},'code[class*="language-html"]':{color:"#d4d4d4"},".language-regex .token.anchor":{color:"#dcdcaa"},".language-html .token.punctuation":{color:"#808080"},'pre[class*="language-"] > code[class*="language-"]':{position:"relative",zIndex:"1"},".line-highlight.line-highlight":{background:"#f7ebc6",boxShadow:"inset 5px 0 0 #f7d87c",zIndex:"0"}},Sh=({pulsing:e=!1,size:t="md",className:n})=>g.jsx("span",{className:["ignition-dot",`ignition-dot--${t}`,e&&"ignition-dot--pulsing",n].filter(Boolean).join(" "),"aria-hidden":"true"}),z4=["思维回路全速运转...","Token 们奋力排列中...","矩阵乘法进行中...","Transformer 全力变形...","最后一次梯度下降...","注意力机制已锁定...","思维发动机轰鸣启动...","激活函数全员上岗...","推理链跑起来了...","十四亿参数找答案...","上下文窗口挤一挤...","最合适的词正在出现...","正在 Debug 思维链...","在语言的岔路口选方向...","给神经网络倒咖啡...","模型正在思考人生...","神经元群情激昂...","正在召开内部评审会...","多个思路正在 PK...","答案在路上了...","拼图最后一块到位...","差不多了,收尾中...","还差一点点...","就差临门一脚...","搞定了百分之九十九...","答案正在着陆跑道...","翻阅无数可能中...","脑洞已打开...","在知识图谱里找路...","知识正在快速结晶...","字斟句酌,只给精华...","想想,再想想...","这道题,我会!","收到!全力处理中...","全情投入,心无旁骛...","才华正在集中爆发...","正在憋大招...","超强输出,即将到来...","最强答案正在成形...","把散落的灵感拼起来...","脑内灯泡闪烁中...","思路打结,解开中...","秒速百公里地思考...","知识储备调用中...","智慧内核全速转...","脑子已经全力转起来了...","正在为你量身定制...","把最好的留到最后...","用心对待每一个字...","注意力全给你了...","这一刻,全给你...","混沌转逻辑中...","思考齿轮咬合中...","合并所有子思路...","拆解成千个小问题...","千个念头取最好...","整理千头万绪中...","确认答案合理性中...","把模糊变清晰中...","思维正在对焦...","全速冲刺,答案在望...","思维扩容,装下更多...","逻辑拼图已完成...","有条不紊,稳步推进...","万事就绪,答案出发...","思路刚打通,马上来...","用推理缝合碎片...","召开紧急大脑会议...","整理出最佳路径...","正在审阅自己的思维...","努力中,绝不放弃...","正在做些不可思议的事...","我在,我想,我输出...","正在奋笔疾书...","正在将想法变为现实...","知识全力驰援中...","删删改改中...","比特们正在排队...","思维启动加速度...","正在给回答注入灵魂...","准备好了吗?快了...","就差最后一步...","答案即将成形...","正在快乐工作中...","大脑正在全速燃烧...","正在把复杂变简单...","知识海洋里捞最优解...","答案正在破壳而出...","大招正在蓄力中...","答案即将横空出世..."],$4=["Neural circuits running at full speed...","Tokens lining up in perfect order...","Matrix multiplications in progress...","One final gradient descent to go...","Attention heads: activated and locked...","Thought engine roaring to life...","Activation functions reporting for duty...","Reasoning chain is running...","Spelunking through fourteen billion parameters...","Squeezing into the context window...","The perfect word is surfacing...","Debugging my own chain of thought...","Picking a path through the language labyrinth...","Feeding the model its morning coffee...","Neurons firing in passionate debate...","Holding an internal peer review...","Multiple ideas in a heated competition...","Answer is on its way...","Last puzzle piece sliding into place...","Almost done, wrapping up...","Just a tiny bit more...","One final push to go...","Ninety-nine percent done...","Answer on final approach for landing...","Rummaging through the multiverse of ideas...","Navigating the knowledge graph...","Knowledge crystallizing rapidly...","Hand-picking only the best words...","Let me think... still thinking...","I know this one!","Roger that! Processing at full capacity...","Fully in the zone right now...","Talent concentrated and detonating...","Charging up the big move...","Supercharged output incoming...","The best answer is taking shape...","Lightbulb flickering in the back of my mind...","Untangling the knots in my reasoning...","Thinking at hundreds of miles per second...","Pulling from deep knowledge reserves...","Brain already spinning at full tilt...","Tailoring this response just for you...","Crafting every word with care...","All attention given to you...","This moment is entirely for you...","Converting chaos into logic...","Gears of thought clicking into place...","Breaking it into a thousand micro-problems...","Picking the best of a thousand thoughts...","Sorting through a tangle of threads...","Turning fuzzy into clear...","Thoughts coming into focus...","Sprinting to the finish line...","Logic puzzle: assembled...","Moving steadily, step by step...","Thread of thought just clicked — almost there...","Stitching the fragments together with reasoning...","Calling an emergency brain session...","Pushing through, won't give up...","Doing something kind of amazing right now...","I think, therefore I output...","Writing at full speed...","Turning ideas into reality...","Editing and re-editing...","Bits falling into line...","Thought engine accelerating...","Infusing the response with soul...","Almost there...","One last step to go...","Answer taking shape...","Happily working away...","Brain burning at full speed...","Turning complexity into simplicity...","Optimal path: locked in...","Creating something from nothing, just for you...","Answer hatching right now..."],ix=({visible:e})=>{const{language:t}=dt(),n=t.startsWith("zh")?z4:$4,[i,o]=P.useState(!1),[l,u]=P.useState(0),c=P.useRef(null),p=P.useRef(null);return P.useEffect(()=>{if(e){const f=Math.floor(Math.random()*n.length);u(f),c.current=setTimeout(()=>{o(!0),p.current=setInterval(()=>{u(m=>(m+1)%n.length)},5e3)},1e3)}else c.current&&(clearTimeout(c.current),c.current=null),p.current&&(clearInterval(p.current),p.current=null),o(!1);return()=>{c.current&&clearTimeout(c.current),p.current&&clearInterval(p.current)}},[e,n.length]),!e&&!i?null:g.jsx("div",{className:"processing-hint","aria-hidden":!e,children:g.jsxs("div",{className:"processing-hint__content",style:e?void 0:{visibility:"hidden"},children:[i&&n.length>0&&g.jsxs(g.Fragment,{children:[g.jsx(Sh,{pulsing:!0,size:"sm",className:"processing-hint__dot"}),g.jsx("span",{className:"processing-hint__text",children:n[l]},l)]}),!i&&e&&g.jsxs("div",{className:"processing-hint__typing",children:[g.jsx("span",{}),g.jsx("span",{}),g.jsx("span",{})]})]})})};function _i(e){return e<1e3?`${Math.round(e)}ms`:`${(e/1e3).toFixed(1)}s`}function q4(e,t){if(!e||e.length<=t)return e;const n=t-3,i=Math.ceil(n*.6),o=n-i;return e.slice(0,i)+"..."+e.slice(-o)}function G4(e){if(navigator.clipboard?.writeText)return navigator.clipboard.writeText(e);const t=document.createElement("textarea");t.value=e,t.style.cssText="position:fixed;left:-9999px;top:-9999px;opacity:0",document.body.appendChild(t),t.select();try{document.execCommand("copy")}finally{document.body.removeChild(t)}return Promise.resolve()}const H4=({code:e})=>{const[t,n]=P.useState(!1),i=async()=>{try{await G4(e),n(!0),setTimeout(()=>n(!1),2e3)}catch{}};return g.jsx("button",{className:`copy-button${t?" copy-success":""}`,onClick:i,type:"button",children:t?g.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:g.jsx("polyline",{points:"20 6 9 17 4 12"})}):g.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[g.jsx("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),g.jsx("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]})})},ps="computer://",Pm="file://",ox="{{workspaceFolder}}",Um="sparo.mobile.last_selected_model_id",W4=new Set(["js","jsx","ts","tsx","mjs","cjs","mts","cts","py","pyw","pyi","rs","go","java","kt","kts","scala","groovy","c","cpp","cc","cxx","h","hpp","hxx","hh","cs","rb","php","swift","vue","svelte","css","scss","less","sass","json","jsonc","yaml","yml","toml","xml","md","mdx","rst","txt","sh","bash","zsh","fish","ps1","bat","cmd","sql","graphql","gql","proto","lock","env","ini","cfg","conf","cj","ets","editorconfig","gitignore","log"]),V4=new Set(["pdf","doc","docx","xls","xlsx","ppt","pptx","odt","ods","odp","rtf","pages","numbers","key","png","jpg","jpeg","gif","bmp","svg","webp","ico","tiff","tif","zip","tar","gz","bz2","7z","rar","dmg","iso","xz","mp3","wav","ogg","flac","aac","m4a","wma","mp4","avi","mkv","mov","webm","wmv","flv","csv","tsv","sqlite","db","parquet","epub","mobi","apk","ipa","exe","msi","deb","rpm","ttf","otf","woff","woff2"]);function fs(e){let t=e;e.startsWith(ps)?t=e.slice(ps.length):e.startsWith(Pm)?t=e.slice(Pm.length):e.startsWith("file:")&&(t=e.slice(5)),t.startsWith(ox)&&(t=t.slice(ox.length),t.startsWith("/")&&(t=t.slice(1))),/^\/[A-Za-z]:[\\/]/.test(t)&&(t=t.slice(1));try{return decodeURIComponent(t)}catch{return t}}function Y4(e){if(!e||e==="/")return null;let t;if(e.startsWith(ps)||e.startsWith(Pm)||e.startsWith("file:"))t=fs(e);else{if(e.includes("://")||e.startsWith("#")||e.startsWith("//"))return null;t=fs(e)}if(t.startsWith("/")&&t.split("/").filter(Boolean).length<2)return null;const n=t.split("/").pop()||"",i=n.lastIndexOf(".");if(i<=0)return null;const o=n.slice(i+1).toLowerCase();if(!o)return null;if(t.startsWith("/")){if(W4.has(o))return null}else if(!V4.has(o))return null;return t}function K4(e){return e>=1024*1024?`${(e/(1024*1024)).toFixed(1)} MB`:e>=1024?`${Math.round(e/1024)} KB`:`${e} B`}const mm=({size:e=20,style:t})=>g.jsxs("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:t,"aria-hidden":"true",children:[g.jsx("path",{d:"M15.3929 4.05365L14.8912 4.61112L15.3929 4.05365ZM19.3517 7.61654L18.85 8.17402L19.3517 7.61654ZM21.654 10.1541L20.9689 10.4592V10.4592L21.654 10.1541ZM3.17157 20.8284L3.7019 20.2981H3.7019L3.17157 20.8284ZM20.8284 20.8284L20.2981 20.2981L20.2981 20.2981L20.8284 20.8284ZM14 21.25H10V22.75H14V21.25ZM2.75 14V10H1.25V14H2.75ZM21.25 13.5629V14H22.75V13.5629H21.25ZM14.8912 4.61112L18.85 8.17402L19.8534 7.05907L15.8947 3.49618L14.8912 4.61112ZM22.75 13.5629C22.75 11.8745 22.7651 10.8055 22.3391 9.84897L20.9689 10.4592C21.2349 11.0565 21.25 11.742 21.25 13.5629H22.75ZM18.85 8.17402C20.2034 9.3921 20.7029 9.86199 20.9689 10.4592L22.3391 9.84897C21.9131 8.89241 21.1084 8.18853 19.8534 7.05907L18.85 8.17402ZM10.0298 2.75C11.6116 2.75 12.2085 2.76158 12.7405 2.96573L13.2779 1.5653C12.4261 1.23842 11.498 1.25 10.0298 1.25V2.75ZM15.8947 3.49618C14.8087 2.51878 14.1297 1.89214 13.2779 1.5653L12.7405 2.96573C13.2727 3.16993 13.7215 3.55836 14.8912 4.61112L15.8947 3.49618ZM10 21.25C8.09318 21.25 6.73851 21.2484 5.71085 21.1102C4.70476 20.975 4.12511 20.7213 3.7019 20.2981L2.64124 21.3588C3.38961 22.1071 4.33855 22.4392 5.51098 22.5969C6.66182 22.7516 8.13558 22.75 10 22.75V21.25ZM1.25 14C1.25 15.8644 1.24841 17.3382 1.40313 18.489C1.56076 19.6614 1.89288 20.6104 2.64124 21.3588L3.7019 20.2981C3.27869 19.8749 3.02502 19.2952 2.88976 18.2892C2.75159 17.2615 2.75 15.9068 2.75 14H1.25ZM14 22.75C15.8644 22.75 17.3382 22.7516 18.489 22.5969C19.6614 22.4392 20.6104 22.1071 21.3588 21.3588L20.2981 20.2981C19.8749 20.7213 19.2952 20.975 18.2892 21.1102C17.2615 21.2484 15.9068 21.25 14 21.25V22.75ZM21.25 14C21.25 15.9068 21.2484 17.2615 21.1102 18.2892C20.975 19.2952 20.7213 19.8749 20.2981 20.2981L21.3588 21.3588C22.1071 20.6104 22.4392 19.6614 22.5969 18.489C22.7516 17.3382 22.75 15.8644 22.75 14H21.25ZM2.75 10C2.75 8.09318 2.75159 6.73851 2.88976 5.71085C3.02502 4.70476 3.27869 4.12511 3.7019 3.7019L2.64124 2.64124C1.89288 3.38961 1.56076 4.33855 1.40313 5.51098C1.24841 6.66182 1.25 8.13558 1.25 10H2.75ZM10.0298 1.25C8.15538 1.25 6.67442 1.24842 5.51887 1.40307C4.34232 1.56054 3.39019 1.8923 2.64124 2.64124L3.7019 3.7019C4.12453 3.27928 4.70596 3.02525 5.71785 2.88982C6.75075 2.75158 8.11311 2.75 10.0298 2.75V1.25Z",fill:"currentColor"}),g.jsx("path",{d:"M6 14.5H14",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"}),g.jsx("path",{d:"M6 18H11.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"}),g.jsx("path",{d:"M13 2.5V5C13 7.35702 13 8.53553 13.7322 9.26777C14.4645 10 15.643 10 18 10H22",stroke:"currentColor",strokeWidth:"1.5"})]}),sx=({path:e,onGetFileInfo:t,onDownload:n})=>{const{isDark:i}=Ca(),{t:o}=dt(),[l,u]=P.useState({status:"loading"}),c=P.useRef(t);c.current=t,P.useEffect(()=>{let k=!1;return c.current(e).then(({name:T,size:N,mimeType:R})=>{k||u({status:"ready",name:T,size:N,mimeType:R})}).catch(T=>{k||u({status:"error",message:T instanceof Error?T.message:String(T)})}),()=>{k=!0}},[e]);const p=P.useCallback(async()=>{if(l.status!=="ready"&&l.status!=="done")return;const k=l;u({status:"downloading",name:k.name,size:k.size,mimeType:k.mimeType,progress:0});try{await n(e,(T,N)=>{u(R=>R.status!=="downloading"?R:{...R,progress:N>0?T/N:0})}),u({status:"done",name:k.name,size:k.size,mimeType:k.mimeType})}catch{u({status:"ready",name:k.name,size:k.size,mimeType:k.mimeType})}},[l,e,n]),f={display:"inline-flex",alignItems:"center",gap:"10px",padding:"10px 14px",border:`1px solid ${i?"rgba(255,255,255,0.12)":"rgba(0,0,0,0.12)"}`,borderRadius:"10px",background:i?"rgba(255,255,255,0.05)":"rgba(0,0,0,0.03)",cursor:l.status==="ready"||l.status==="done"?"pointer":"default",maxWidth:"300px",verticalAlign:"middle",transition:"background 0.15s"},m=i?"rgba(255,255,255,0.6)":"rgba(0,0,0,0.5)";if(l.status==="loading")return g.jsxs("span",{className:"file-card",style:f,children:[g.jsx(mm,{size:20,style:{color:m,flexShrink:0}}),g.jsx("span",{style:{fontSize:"0.8rem",opacity:.5},children:o("chat.fileLoading")})]});if(l.status==="error")return g.jsxs("span",{className:"file-card",style:{...f,cursor:"default",opacity:.5},title:l.message,children:[g.jsx(mm,{size:20,style:{color:m,flexShrink:0}}),g.jsx("span",{style:{fontSize:"0.8rem"},children:o("chat.fileUnavailable")})]});const{name:h,size:S}=l,E=l.status==="downloading",v=l.status==="done";return g.jsxs("span",{className:"file-card",style:f,onClick:p,role:"button",tabIndex:0,onKeyDown:k=>{(k.key==="Enter"||k.key===" ")&&p()},title:o(E?"chat.fileDownloading":v?"chat.fileDownloaded":"chat.clickToDownload"),children:[g.jsx(mm,{size:20,style:{color:m,flexShrink:0}}),g.jsxs("span",{style:{minWidth:0,overflow:"hidden"},children:[g.jsx("span",{style:{display:"block",fontSize:"0.85rem",fontWeight:500,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:i?"rgba(255,255,255,0.9)":"rgba(0,0,0,0.85)"},children:h}),g.jsx("span",{style:{display:"block",fontSize:"0.75rem",color:i?"rgba(255,255,255,0.45)":"rgba(0,0,0,0.45)",marginTop:"2px"},children:K4(S)})]}),g.jsx("span",{style:{flexShrink:0,fontSize:"0.75rem",color:v?i?"#4ade80":"#16a34a":i?"rgba(255,255,255,0.55)":"rgba(0,0,0,0.45)"},children:E?`${Math.round(l.progress*100)}%`:v?"✓":"↓"})]})},Ri=({content:e,onFileDownload:t,onGetFileInfo:n})=>{const{isDark:i}=Ca(),o=i?j4:B4,l=P.useMemo(()=>({code({className:u,children:c,...p}){const f=/language-(\w+)/.exec(u||""),m=String(c).replace(/\n$/,""),h=m.includes(` -`);return u?.startsWith("language-")||h?g.jsxs("div",{className:"code-block-wrapper",children:[g.jsx(H4,{code:m}),g.jsx(oR,{language:f?.[1]||"text",style:o,showLineNumbers:!0,customStyle:{margin:0,borderRadius:"8px",fontSize:"0.8rem",lineHeight:"1.5"},codeTagProps:{style:{fontFamily:"var(--font-family-mono)"}},lineNumberStyle:{color:i?"#666":"#999",paddingRight:"1em",textAlign:"right",userSelect:"none",minWidth:"2.5em"},children:m})]}):g.jsx("code",{className:"inline-code",...p,children:c})},a({href:u,children:c}){const p=typeof u=="string"&&u.startsWith(ps);if(p&&n&&t){const f=fs(u);return g.jsx(sx,{path:f,onGetFileInfo:n,onDownload:t})}if(p&&t){const f=fs(u);return g.jsx("button",{className:"file-link",onClick:m=>{m.preventDefault(),m.stopPropagation(),t(f)},type:"button",style:{cursor:"pointer",color:"var(--color-accent, #3b82f6)",textDecoration:"underline",background:"none",border:"none",font:"inherit",padding:0},children:c})}if(n&&t){const f=typeof u=="string"?Y4(u):null;if(f)return g.jsx(sx,{path:f,onGetFileInfo:n,onDownload:t})}return typeof u=="string"&&(u.startsWith("http://")||u.startsWith("https://"))?g.jsx("a",{href:u,target:"_blank",rel:"noopener noreferrer",style:{color:"var(--color-accent, #3b82f6)",textDecoration:"underline"},children:c}):g.jsx("span",{style:{textDecoration:"underline",opacity:.7},children:c})},table({children:u}){return g.jsx("div",{className:"table-wrapper",children:g.jsx("table",{children:u})})},blockquote({children:u}){return g.jsx("blockquote",{className:"custom-blockquote",children:u})}}),[o,i,t,n]);return g.jsx($L,{remarkPlugins:[tM],components:l,urlTransform:u=>u.startsWith("computer://")||/^(https?|mailto|tel|file):/i.test(u)||u.startsWith("#")||u.startsWith("/")||!u.includes(":")?u:"",children:e})},Bm=({thinking:e,streaming:t,isLastItem:n=!1})=>{const{t:i}=dt(),[o,l]=P.useState(!!t),u=P.useRef(!1),c=P.useRef(null),[p,f]=P.useState({atTop:!0,atBottom:!0}),m=uR(e,!!t);P.useEffect(()=>{u.current||(t?l(!0):n||l(!1))},[t,n]),P.useEffect(()=>{if(!t||!o)return;const k=c.current;if(!k)return;k.scrollHeight-k.scrollTop-k.clientHeight<80&&(k.scrollTop=k.scrollHeight)},[m,t,o]);const h=P.useCallback(()=>{const k=c.current;k&&f({atTop:k.scrollTop<4,atBottom:k.scrollHeight-k.scrollTop-k.clientHeight<4})},[]),S=P.useCallback(()=>{u.current=!0,l(k=>!k)},[]);if(!e&&!t)return null;const E=e.length,v=t&&E===0?i("chat.thinking"):i("chat.thoughtCharacters",{count:E});return g.jsxs("div",{className:`chat-thinking ${t?"chat-thinking--streaming":""}`,children:[g.jsxs("button",{className:"chat-thinking__toggle",onClick:S,children:[g.jsx("span",{className:`chat-thinking__chevron ${o?"is-open":""}`,children:g.jsx("svg",{width:"10",height:"10",viewBox:"0 0 16 16",fill:"none",children:g.jsx("path",{d:"M6 4L10 8L6 12",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})}),g.jsx("span",{className:"chat-thinking__label",children:v})]}),g.jsx("div",{className:`chat-thinking__expand-container ${o?"is-expanded":""}`,children:g.jsx("div",{className:"chat-thinking__expand-inner",children:e&&g.jsx("div",{className:`chat-thinking__content-wrapper ${p.atTop?"at-top":""} ${p.atBottom?"at-bottom":""}`,ref:c,onScroll:h,children:g.jsx("div",{className:"chat-thinking__content",children:g.jsx(Ri,{content:t?m:e})})})})})]})},gs={explore:"tools.explore",read_file:"tools.read",write_file:"tools.write",list_directory:"tools.ls",bash:"tools.shell",glob:"tools.glob",grep:"tools.grep",create_file:"tools.write",delete_file:"tools.delete",Task:"tools.task",search:"tools.search",edit_file:"tools.edit",web_search:"tools.web",TodoWrite:"tools.todo"},Z4=({tool:e})=>{const{t}=dt(),[n,i]=P.useState(!1),o=P.useMemo(()=>{const f=e.tool_input;if(!f)return[];const m=f.todos||f.result?.todos;return Array.isArray(m)?m:[]},[e.tool_input]);if(o.length===0)return null;const l=o.filter(f=>f.status==="completed").length,u=l===o.length,c=o.find(f=>f.status==="in_progress"),p=f=>{switch(f){case"completed":return g.jsxs("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"var(--color-success)",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[g.jsx("path",{d:"M22 11.08V12a10 10 0 1 1-5.93-9.14"}),g.jsx("path",{d:"m9 11 3 3L22 4"})]});case"in_progress":return g.jsxs("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"var(--color-accent-500)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[g.jsx("circle",{cx:"12",cy:"12",r:"10"}),g.jsx("polygon",{points:"10 8 16 12 10 16 10 8",fill:"var(--color-accent-500)"})]});case"cancelled":return g.jsxs("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"var(--color-error)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[g.jsx("circle",{cx:"12",cy:"12",r:"10"}),g.jsx("path",{d:"m15 9-6 6"}),g.jsx("path",{d:"m9 9 6 6"})]});default:return g.jsx("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"var(--color-text-muted)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:g.jsx("circle",{cx:"12",cy:"12",r:"10"})})}};return g.jsxs("div",{className:"chat-todo-card",children:[g.jsxs("div",{className:"chat-todo-card__header",onClick:()=>i(!n),children:[g.jsx("span",{className:"chat-todo-card__icon",children:g.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[g.jsx("rect",{x:"3",y:"5",width:"6",height:"6",rx:"1"}),g.jsx("path",{d:"m3 17 2 2 4-4"}),g.jsx("path",{d:"M13 6h8"}),g.jsx("path",{d:"M13 12h8"}),g.jsx("path",{d:"M13 18h8"})]})}),u&&!n?g.jsx("span",{className:"chat-todo-card__current chat-todo-card__current--done",children:t("chat.allTasksCompleted")}):c&&!n?g.jsx("span",{className:"chat-todo-card__current",children:c.content}):null,g.jsxs("span",{className:"chat-todo-card__right",children:[g.jsx("span",{className:"chat-todo-card__dots",children:o.map((f,m)=>g.jsx("span",{className:`chat-todo-card__dot chat-todo-card__dot--${f.status}`},f.id||m))}),g.jsxs("span",{className:"chat-todo-card__stats",children:[l,"/",o.length]})]}),g.jsx("span",{className:`chat-todo-card__chevron ${n?"is-expanded":""}`,children:g.jsx("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:g.jsx("path",{d:"m6 9 6 6 6-6"})})})]}),n&&g.jsx("div",{className:"chat-todo-card__list",children:o.map((f,m)=>g.jsxs("div",{className:`chat-todo-card__item chat-todo-card__item--${f.status}`,children:[p(f.status),g.jsx("span",{className:"chat-todo-card__item-text",children:f.content})]},f.id||m))})]})};function X4(e){const t=e.tool_input??(()=>{try{return JSON.parse(e.input_preview||"")}catch{return null}})();return t?{description:t.description,agentType:t.subagent_type}:null}function Q4(e,t){if(e.type==="thinking"){const n=(e.content||"").length;return t("chat.thoughtCharacters",{count:n})}if(e.type==="tool"&&e.tool){const n=e.tool,i=n.input_preview?`: ${n.input_preview}`:"";return`${n.name}${i}`}if(e.type==="text"){const n=(e.content||"").length;return t("chat.textCharacters",{count:n})}return""}const sR=({tool:e,now:t,subItems:n=[],onCancelTool:i})=>{const{t:o}=dt(),l=P.useRef(null),u=P.useRef(0),[c,p]=P.useState(!1),f=e.status==="running",m=e.status==="completed",h=e.status==="failed"||e.status==="error",S=f&&!!i,E=X4(e),v=m&&e.duration_ms!=null?_i(e.duration_ms):f&&e.start_ms?_i(t-e.start_ms):"",k=f?"running":m?"done":h?"error":"pending",T=n.filter(A=>A.type==="tool"&&A.tool),N=T.filter(A=>A.tool.status==="completed").length,R=T.filter(A=>A.tool.status==="running").length;return P.useEffect(()=>{c&&n.length>u.current&&l.current&&(l.current.scrollTop=l.current.scrollHeight),u.current=n.length},[n.length,c]),g.jsxs("div",{className:`chat-task-card chat-task-card--${k}`,children:[g.jsxs("div",{className:"chat-task-card__header",children:[g.jsx("span",{className:"chat-tool-card__icon",children:f?g.jsx("span",{className:"chat-tool-card__spinner"}):m?g.jsx("span",{className:"chat-tool-card__check",children:g.jsx("svg",{width:"12",height:"12",viewBox:"0 0 16 16",fill:"none",children:g.jsx("path",{d:"M3 8.5L6.5 12L13 4",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})}):h?g.jsx("span",{className:"chat-tool-card__error-icon",children:g.jsx("svg",{width:"12",height:"12",viewBox:"0 0 16 16",fill:"none",children:g.jsx("path",{d:"M4 4L12 12M12 4L4 12",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})})}):g.jsx("span",{className:"chat-tool-card__spinner"})}),g.jsx("span",{className:"chat-tool-card__name",children:E?.description||o("chat.task")}),E?.agentType&&g.jsx("span",{className:"chat-tool-card__type",children:E.agentType}),v&&g.jsx("span",{className:"chat-tool-card__duration",children:v}),S&&g.jsx("button",{className:"chat-tool-card__cancel",onClick:A=>{A.stopPropagation(),i?.(e.id)},"aria-label":o("common.cancel"),children:g.jsx("svg",{width:"10",height:"10",viewBox:"0 0 16 16",fill:"none",children:g.jsx("rect",{x:"3",y:"3",width:"10",height:"10",rx:"2",fill:"currentColor"})})})]}),n.length>0&&g.jsxs(g.Fragment,{children:[g.jsxs("div",{className:"chat-task-card__summary",onClick:()=>p(A=>!A),children:[g.jsx("span",{className:"chat-task-card__stat",children:o("chat.toolCalls",{count:T.length,suffix:T.length===1?"":"s"})}),g.jsxs("span",{className:"chat-task-card__stat-right",children:[g.jsx("span",{className:"chat-task-card__stat--done",children:o("chat.done",{count:N})}),R>0&&g.jsx("span",{className:"chat-task-card__stat--running",children:o("chat.running",{count:R})})]}),g.jsx("span",{className:`chat-task-card__chevron ${c?"is-expanded":""}`,children:g.jsx("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:g.jsx("path",{d:"m6 9 6 6 6-6"})})})]}),c&&g.jsx("div",{className:"chat-task-card__steps",ref:l,children:n.map((A,O)=>{if(A.type==="thinking")return g.jsxs("div",{className:"chat-task-card__step chat-task-card__step--thinking",children:[g.jsx("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:g.jsx("path",{d:"m6 9 6 6 6-6"})}),g.jsx("span",{children:Q4(A,o)})]},`sub-think-${O}`);if(A.type==="tool"&&A.tool){const L=A.tool,w=L.status==="completed",B=L.status==="failed"||L.status==="error";return g.jsxs("div",{className:`chat-task-card__step chat-task-card__step--tool ${w?"is-done":B?"is-error":"is-running"}`,children:[w?g.jsx("svg",{width:"10",height:"10",viewBox:"0 0 16 16",fill:"none",children:g.jsx("path",{d:"M3 8.5L6.5 12L13 4",stroke:"var(--color-success)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})}):B?g.jsx("svg",{width:"10",height:"10",viewBox:"0 0 16 16",fill:"none",children:g.jsx("path",{d:"M4 4L12 12M12 4L4 12",stroke:"var(--color-error)",strokeWidth:"2",strokeLinecap:"round"})}):g.jsx("span",{className:"chat-task-card__step-spinner"}),g.jsx("span",{className:"chat-task-card__step-name",children:L.name}),(()=>{const W=lR(L);return W?g.jsx("span",{className:"chat-task-card__step-preview",children:W}):null})(),w&&L.duration_ms!=null&&g.jsx("span",{className:"chat-task-card__step-duration",children:_i(L.duration_ms)})]},`sub-tool-${L.id}-${O}`)}return null})})]})]})};function lR(e){if(!e.input_preview)return null;try{const t=JSON.parse(e.input_preview);if(!t||typeof t!="object")return null;const n=l=>{const u=l.replace(/\\/g,"/").split("/");return u[u.length-1]||l};let i=null;const o=t.file_path||t.path;switch(e.name){case"Read":case"Write":case"Edit":case"LS":case"StrReplace":case"delete_file":i=o?n(o):null;break;case"Glob":case"Grep":i=t.pattern||null;break;case"Bash":case"Shell":i=t.description||t.command||null;break;case"web_search":case"WebSearch":i=t.search_term||t.query||null;break;case"WebFetch":i=t.url||null;break;case"SemanticSearch":i=t.query||null;break;default:i=Object.values(t).find(u=>typeof u=="string"&&u.length>0&&u.length<80)||null}return i?i.length>60?i.slice(0,60)+"…":i:null}catch{return null}}const lx=({tool:e,now:t,onCancelTool:n})=>{const{t:i}=dt(),o=e.name.toLowerCase().replace(/[\s-]/g,"_"),l=gs[o]||gs[e.name],u=l?i(l):"Tool",c=e.status==="running",p=e.status==="completed",f=e.status==="failed"||e.status==="error",m=c&&!!n,h=lR(e),S=p&&e.duration_ms!=null?_i(e.duration_ms):c&&e.start_ms?_i(t-e.start_ms):"",E=c?"running":p?"done":f?"error":"pending";return g.jsx("div",{className:`chat-tool-card chat-tool-card--${E}`,children:g.jsxs("div",{className:"chat-tool-card__row",children:[g.jsx("span",{className:"chat-tool-card__icon",children:c?g.jsx("span",{className:"chat-tool-card__spinner"}):p?g.jsx("span",{className:"chat-tool-card__check",children:g.jsx("svg",{width:"12",height:"12",viewBox:"0 0 16 16",fill:"none",children:g.jsx("path",{d:"M3 8.5L6.5 12L13 4",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})}):f?g.jsx("span",{className:"chat-tool-card__error-icon",children:g.jsx("svg",{width:"12",height:"12",viewBox:"0 0 16 16",fill:"none",children:g.jsx("path",{d:"M4 4L12 12M12 4L4 12",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})})}):g.jsx("span",{className:"chat-tool-card__spinner"})}),g.jsxs("span",{className:"chat-tool-card__name",children:[e.name,h&&g.jsxs("span",{className:"chat-tool-card__preview",children:[" ",h]})]}),g.jsx("span",{className:"chat-tool-card__type",children:u}),S&&g.jsx("span",{className:"chat-tool-card__duration",children:S}),m&&g.jsx("button",{className:"chat-tool-card__cancel",onClick:v=>{v.stopPropagation(),n?.(e.id)},"aria-label":i("common.cancel"),children:g.jsx("svg",{width:"10",height:"10",viewBox:"0 0 16 16",fill:"none",children:g.jsx("rect",{x:"3",y:"3",width:"10",height:"10",rx:"2",fill:"currentColor"})})})]})})},J4=new Set(["Read","Grep","Glob","SemanticSearch"]);function e$(e,t){const n=new Map,i=[];for(const o of e){const l=o.name.toLowerCase().replace(/[\s-]/g,"_"),u=gs[l]||gs[o.name],c=u?t(u):o.name,p=c.toLowerCase(),f=n.get(p);if(f){f.count+=1;continue}n.set(p,{label:c,count:1}),i.push(p)}return i.map(o=>{const l=n.get(o);return`${l.label} ${l.count}`}).join(", ")}const t$=({tools:e})=>{const{t}=dt(),[n,i]=P.useState(!1);if(e.length===0)return null;const o=e.filter(p=>p.status==="completed").length,l=o===e.length,u=e$(e,t),c=l?t("chat.readToolsDone",{summary:u}):t("chat.readToolsRunning",{summary:u,doneCount:o});return g.jsxs("div",{className:`chat-thinking ${l?"":"chat-thinking--streaming"}`,children:[g.jsxs("button",{className:"chat-thinking__toggle",onClick:()=>i(p=>!p),children:[g.jsx("span",{className:`chat-thinking__chevron ${n?"is-open":""}`,children:g.jsx("svg",{width:"10",height:"10",viewBox:"0 0 16 16",fill:"none",children:g.jsx("path",{d:"M6 4L10 8L6 12",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})}),g.jsx("span",{className:"chat-thinking__label",children:c})]}),n&&g.jsx("div",{className:"chat-thinking__content-wrapper at-top at-bottom",children:g.jsx("div",{className:"chat-thinking__content",children:e.map(p=>{const f=p.input_preview||"";return g.jsxs("div",{style:{fontSize:"12px",padding:"2px 0",opacity:.8},children:[p.status==="completed"?"✓":"⋯"," ",p.name," ",f]},p.id)})})})]})},n$=2,jm=({tools:e,now:t,onCancelTool:n})=>{const{t:i}=dt(),o=P.useRef(null),l=P.useRef(0),[u,c]=P.useState(!1);if(P.useEffect(()=>{u&&e.length>l.current&&o.current&&(o.current.scrollTop=o.current.scrollHeight),l.current=e.length},[e.length,u]),!e||e.length===0)return null;if(e.length<=n$)return g.jsx("div",{className:"chat-tool-list",children:e.map(m=>g.jsx(lx,{tool:m,now:t,onCancelTool:n},m.id))});const p=e.filter(m=>m.status==="running").length,f=e.filter(m=>m.status==="completed").length;return g.jsxs("div",{className:"chat-tool-list chat-tool-list--collapsed",children:[g.jsxs("div",{className:"chat-tool-list__header",onClick:()=>c(m=>!m),children:[g.jsx("span",{className:"chat-tool-list__count",children:i("chat.toolCalls",{count:e.length,suffix:e.length===1?"":"s"})}),g.jsxs("span",{className:"chat-tool-list__stats",children:[f>0&&g.jsx("span",{className:"chat-tool-list__stat chat-tool-list__stat--done",children:i("chat.done",{count:f})}),p>0&&g.jsx("span",{className:"chat-tool-list__stat chat-tool-list__stat--running",children:i("chat.running",{count:p})})]}),g.jsx("span",{className:`chat-tool-list__chevron ${u?"is-expanded":""}`,children:g.jsx("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:g.jsx("path",{d:"m6 9 6 6 6-6"})})})]}),u&&g.jsx("div",{className:"chat-tool-list__scroll",ref:o,children:e.map(m=>g.jsx(lx,{tool:m,now:t,onCancelTool:n},m.id))})]})};function uR(e,t){const[n,i]=P.useState(t?"":e),o=P.useRef(t?0:e.length),l=P.useRef(e),u=P.useRef(null),c=P.useRef(3);return P.useEffect(()=>{if(!t){u.current&&(clearInterval(u.current),u.current=null),o.current=e.length,l.current=e,i(e);return}l.current=e,e.length0){const h=26.666666666666668;c.current=Math.max(Math.ceil(p/h),2),u.current||(u.current=setInterval(()=>{const S=l.current,E=o.current;if(E>=S.length){u.current&&(clearInterval(u.current),u.current=null);return}const v=Math.min(E+c.current,S.length);o.current=v,i(S.slice(0,v))},30))}},[e,t]),P.useEffect(()=>()=>{u.current&&clearInterval(u.current)},[]),n}const cR=({content:e,onFileDownload:t,onGetFileInfo:n})=>{const i=uR(e,!0);return g.jsx(Ri,{content:i,onFileDownload:t,onGetFileInfo:n})},ms=e=>!e||e.name!=="AskUserQuestion"||!e.tool_input?!1:!["completed","failed","cancelled","rejected"].includes(e.status),qr=e=>{const t=(e||"").trim().toLowerCase();return t==="other"||t==="其他"},dR=({tool:e,onAnswer:t})=>{const{t:n}=dt(),i=e.tool_input?.questions||[],[o,l]=P.useState({}),[u,c]=P.useState({}),[p,f]=P.useState(!1),[m,h]=P.useState(!1),S=P.useMemo(()=>i.map(T=>{const N=Array.isArray(T.options)?T.options:[],R=N.some(A=>qr(A?.label));return{...T,options:N,hasBuiltInOther:R}}),[i]);if(S.length===0)return null;const E=(T,N,R)=>{l(A=>{if(R){const O=A[T]||[];return{...A,[T]:O.includes(N)?O.filter(L=>L!==N):[...O,N]}}return{...A,[T]:A[T]===N?void 0:N}})},v=async()=>{if(!k||p||m)return;const T={};S.forEach((N,R)=>{const A=o[R],O=(u[R]||"").trim();Array.isArray(A)?T[String(R)]=A.map(L=>qr(L)&&O||L):qr(A)?T[String(R)]=O||A:T[String(R)]=A??""}),f(!0);try{await t(e.id,T),h(!0)}finally{f(!1)}},k=S.every((T,N)=>{const R=o[N];return(T.multiSelect?Array.isArray(R)&&R.length>0:!!R)?!(Array.isArray(R)?R.some(L=>qr(L)):qr(R))||!!(u[N]||"").trim():!1});return g.jsxs("div",{className:"chat-ask-card",children:[g.jsxs("div",{className:"chat-ask-card__header",children:[g.jsx("span",{className:"chat-ask-card__count",children:n("chat.askQuestionCount",{count:i.length,suffix:i.length>1?"s":""})}),!m&&!p&&g.jsx("span",{className:"chat-ask-card__waiting",children:n("chat.waiting")})]}),S.map((T,N)=>{const R=o[N],A=Array.isArray(R)?R.some(O=>qr(O)):qr(R);return g.jsxs("div",{className:"chat-ask-card__question",children:[g.jsxs("div",{className:"chat-ask-card__question-header",children:[g.jsx("span",{className:"chat-ask-card__tag",children:T.header}),g.jsx("span",{className:"chat-ask-card__question-text",children:T.question})]}),g.jsxs("div",{className:"chat-ask-card__options",children:[(T.options||[]).map((O,L)=>{const w=T.multiSelect?(o[N]||[]).includes(O.label):o[N]===O.label;return g.jsxs("button",{className:`chat-ask-card__option ${w?"is-selected":""}`,onClick:()=>E(N,O.label,T.multiSelect),disabled:m||p,children:[g.jsx("span",{className:`chat-ask-card__radio ${T.multiSelect?"chat-ask-card__radio--multi":""}`,children:w&&g.jsx("svg",{width:"8",height:"8",viewBox:"0 0 16 16",fill:"none",children:g.jsx("path",{d:"M3 8L6.5 11.5L13 4.5",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),g.jsx("span",{className:"chat-ask-card__option-label",children:O.label}),O.description&&g.jsx("span",{className:"chat-ask-card__option-desc",children:O.description})]},L)}),!T.hasBuiltInOther&&g.jsxs("button",{className:`chat-ask-card__option ${A?"is-selected":""}`,onClick:()=>E(N,"Other",T.multiSelect),disabled:m||p,children:[g.jsx("span",{className:`chat-ask-card__radio ${T.multiSelect?"chat-ask-card__radio--multi":""}`,children:A&&g.jsx("svg",{width:"8",height:"8",viewBox:"0 0 16 16",fill:"none",children:g.jsx("path",{d:"M3 8L6.5 11.5L13 4.5",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),g.jsx("span",{className:"chat-ask-card__option-label",children:n("common.other")}),g.jsx("span",{className:"chat-ask-card__option-desc",children:n("common.customTextInput")})]}),A&&g.jsx("input",{className:"chat-ask-card__custom-input",placeholder:n("common.typeYourAnswer"),value:u[N]||"",onChange:O=>c(L=>({...L,[N]:O.target.value})),disabled:m||p})]})]},N)}),g.jsxs("button",{className:"chat-ask-card__submit chat-ask-card__submit--bottom",disabled:!k||m||p,onClick:v,children:[g.jsx("svg",{width:"12",height:"12",viewBox:"0 0 16 16",fill:"none",children:g.jsx("path",{d:"M2 8L6 12L14 4",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})}),n(m?"common.submitted":p?"common.submitting":"common.submit")]})]})};function pR(e){const t=[];let n=null;for(const i of e){if(i.type==="tool"&&i.tool?.name==="Task"){const o={...i,subItems:[]};t.push(o),n=o;continue}if(i.is_subagent&&n){n.subItems.push(i);continue}i.is_subagent||t.push(i)}return t}function xa(e){const t=[];for(const n of e){const i=t[t.length-1];i&&i.type===n.type?i.entries.push(n):t.push({type:n.type,entries:[n]})}return t}function fR(e,t,n){return n?e.map((i,o)=>g.jsx(dR,{tool:i.tool,onAnswer:n},`${t}-ask-${i.tool.id}-${o}`)):null}function Aa(e,t,n,i,o,l,u,c){return e.map((p,f)=>{if(p.type==="thinking"){const m=p.entries.map(S=>S.content||"").join(` +|(?![\\s\\S])))+`,"m"),alias:u,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(o)[0]}}}}),Object.defineProperty(n.languages.diff,"PREFIXES",{value:i})})(t)}return md}var hd,sk;function an(){if(sk)return hd;sk=1,hd=e,e.displayName="markupTemplating",e.aliases=[];function e(t){(function(n){function i(o,l){return"___"+o.toUpperCase()+l+"___"}Object.defineProperties(n.languages["markup-templating"]={},{buildPlaceholders:{value:function(o,l,u,c){if(o.language===l){var p=o.tokenStack=[];o.code=o.code.replace(u,function(f){if(typeof c=="function"&&!c(f))return f;for(var m=p.length,h;o.code.indexOf(h=i(l,m))!==-1;)++m;return p[m]=f,h}),o.grammar=n.languages.markup}}},tokenizePlaceholders:{value:function(o,l){if(o.language!==l||!o.tokenStack)return;o.grammar=n.languages[l];var u=0,c=Object.keys(o.tokenStack);function p(f){for(var m=0;m=c.length);m++){var h=f[m];if(typeof h=="string"||h.content&&typeof h.content=="string"){var S=c[u],E=o.tokenStack[S],v=typeof h=="string"?h:h.content,k=i(l,S),T=v.indexOf(k);if(T>-1){++u;var N=v.substring(0,T),R=new n.Token(l,n.tokenize(E,o.grammar),"language-"+l,E),A=v.substring(T+k.length),O=[];N&&O.push.apply(O,p([N])),O.push(R),A&&O.push.apply(O,p([A])),typeof h=="string"?f.splice.apply(f,[m,1].concat(O)):h.content=O}}else h.content&&p(h.content)}return f}p(o.tokens)}}})})(t)}return hd}var bd,lk;function eB(){if(lk)return bd;lk=1;var e=an();bd=t,t.displayName="django",t.aliases=["jinja2"];function t(n){n.register(e),(function(i){i.languages.django={comment:/^\{#[\s\S]*?#\}$/,tag:{pattern:/(^\{%[+-]?\s*)\w+/,lookbehind:!0,alias:"keyword"},delimiter:{pattern:/^\{[{%][+-]?|[+-]?[}%]\}$/,alias:"punctuation"},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},filter:{pattern:/(\|)\w+/,lookbehind:!0,alias:"function"},test:{pattern:/(\bis\s+(?:not\s+)?)(?!not\b)\w+/,lookbehind:!0,alias:"function"},function:/\b[a-z_]\w+(?=\s*\()/i,keyword:/\b(?:and|as|by|else|for|if|import|in|is|loop|not|or|recursive|with|without)\b/,operator:/[-+%=]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,number:/\b\d+(?:\.\d+)?\b/,boolean:/[Ff]alse|[Nn]one|[Tt]rue/,variable:/\b\w+\b/,punctuation:/[{}[\](),.:;]/};var o=/\{\{[\s\S]*?\}\}|\{%[\s\S]*?%\}|\{#[\s\S]*?#\}/g,l=i.languages["markup-templating"];i.hooks.add("before-tokenize",function(u){l.buildPlaceholders(u,"django",o)}),i.hooks.add("after-tokenize",function(u){l.tokenizePlaceholders(u,"django")}),i.languages.jinja2=i.languages.django,i.hooks.add("before-tokenize",function(u){l.buildPlaceholders(u,"jinja2",o)}),i.hooks.add("after-tokenize",function(u){l.tokenizePlaceholders(u,"jinja2")})})(n)}return bd}var yd,uk;function tB(){if(uk)return yd;uk=1,yd=e,e.displayName="dnsZoneFile",e.aliases=[];function e(t){t.languages["dns-zone-file"]={comment:/;.*/,string:{pattern:/"(?:\\.|[^"\\\r\n])*"/,greedy:!0},variable:[{pattern:/(^\$ORIGIN[ \t]+)\S+/m,lookbehind:!0},{pattern:/(^|\s)@(?=\s|$)/,lookbehind:!0}],keyword:/^\$(?:INCLUDE|ORIGIN|TTL)(?=\s|$)/m,class:{pattern:/(^|\s)(?:CH|CS|HS|IN)(?=\s|$)/,lookbehind:!0,alias:"keyword"},type:{pattern:/(^|\s)(?:A|A6|AAAA|AFSDB|APL|ATMA|CAA|CDNSKEY|CDS|CERT|CNAME|DHCID|DLV|DNAME|DNSKEY|DS|EID|GID|GPOS|HINFO|HIP|IPSECKEY|ISDN|KEY|KX|LOC|MAILA|MAILB|MB|MD|MF|MG|MINFO|MR|MX|NAPTR|NB|NBSTAT|NIMLOC|NINFO|NS|NSAP|NSAP-PTR|NSEC|NSEC3|NSEC3PARAM|NULL|NXT|OPENPGPKEY|PTR|PX|RKEY|RP|RRSIG|RT|SIG|SINK|SMIMEA|SOA|SPF|SRV|SSHFP|TA|TKEY|TLSA|TSIG|TXT|UID|UINFO|UNSPEC|URI|WKS|X25)(?=\s|$)/,lookbehind:!0,alias:"keyword"},punctuation:/[()]/},t.languages["dns-zone"]=t.languages["dns-zone-file"]}return yd}var Ed,ck;function nB(){if(ck)return Ed;ck=1,Ed=e,e.displayName="docker",e.aliases=["dockerfile"];function e(t){(function(n){var i=/\\[\r\n](?:\s|\\[\r\n]|#.*(?!.))*(?![\s#]|\\[\r\n])/.source,o=/(?:[ \t]+(?![ \t])(?:)?|)/.source.replace(//g,function(){return i}),l=/"(?:[^"\\\r\n]|\\(?:\r\n|[\s\S]))*"|'(?:[^'\\\r\n]|\\(?:\r\n|[\s\S]))*'/.source,u=/--[\w-]+=(?:|(?!["'])(?:[^\s\\]|\\.)+)/.source.replace(//g,function(){return l}),c={pattern:RegExp(l),greedy:!0},p={pattern:/(^[ \t]*)#.*/m,lookbehind:!0,greedy:!0};function f(m,h){return m=m.replace(//g,function(){return u}).replace(//g,function(){return o}),RegExp(m,h)}n.languages.docker={instruction:{pattern:/(^[ \t]*)(?:ADD|ARG|CMD|COPY|ENTRYPOINT|ENV|EXPOSE|FROM|HEALTHCHECK|LABEL|MAINTAINER|ONBUILD|RUN|SHELL|STOPSIGNAL|USER|VOLUME|WORKDIR)(?=\s)(?:\\.|[^\r\n\\])*(?:\\$(?:\s|#.*$)*(?![\s#])(?:\\.|[^\r\n\\])*)*/im,lookbehind:!0,greedy:!0,inside:{options:{pattern:f(/(^(?:ONBUILD)?\w+)(?:)*/.source,"i"),lookbehind:!0,greedy:!0,inside:{property:{pattern:/(^|\s)--[\w-]+/,lookbehind:!0},string:[c,{pattern:/(=)(?!["'])(?:[^\s\\]|\\.)+/,lookbehind:!0}],operator:/\\$/m,punctuation:/=/}},keyword:[{pattern:f(/(^(?:ONBUILD)?HEALTHCHECK(?:)*)(?:CMD|NONE)\b/.source,"i"),lookbehind:!0,greedy:!0},{pattern:f(/(^(?:ONBUILD)?FROM(?:)*(?!--)[^ \t\\]+)AS/.source,"i"),lookbehind:!0,greedy:!0},{pattern:f(/(^ONBUILD)\w+/.source,"i"),lookbehind:!0,greedy:!0},{pattern:/^\w+/,greedy:!0}],comment:p,string:c,variable:/\$(?:\w+|\{[^{}"'\\]*\})/,operator:/\\$/m}},comment:p},n.languages.dockerfile=n.languages.docker})(t)}return Ed}var Sd,dk;function rB(){if(dk)return Sd;dk=1,Sd=e,e.displayName="dot",e.aliases=["gv"];function e(t){(function(n){var i="(?:"+[/[a-zA-Z_\x80-\uFFFF][\w\x80-\uFFFF]*/.source,/-?(?:\.\d+|\d+(?:\.\d*)?)/.source,/"[^"\\]*(?:\\[\s\S][^"\\]*)*"/.source,/<(?:[^<>]|(?!)*>/.source].join("|")+")",o={markup:{pattern:/(^<)[\s\S]+(?=>$)/,lookbehind:!0,alias:["language-markup","language-html","language-xml"],inside:n.languages.markup}};function l(u,c){return RegExp(u.replace(//g,function(){return i}),c)}n.languages.dot={comment:{pattern:/\/\/.*|\/\*[\s\S]*?\*\/|^#.*/m,greedy:!0},"graph-name":{pattern:l(/(\b(?:digraph|graph|subgraph)[ \t\r\n]+)/.source,"i"),lookbehind:!0,greedy:!0,alias:"class-name",inside:o},"attr-value":{pattern:l(/(=[ \t\r\n]*)/.source),lookbehind:!0,greedy:!0,inside:o},"attr-name":{pattern:l(/([\[;, \t\r\n])(?=[ \t\r\n]*=)/.source),lookbehind:!0,greedy:!0,inside:o},keyword:/\b(?:digraph|edge|graph|node|strict|subgraph)\b/i,"compass-point":{pattern:/(:[ \t\r\n]*)(?:[ewc_]|[ns][ew]?)(?![\w\x80-\uFFFF])/,lookbehind:!0,alias:"builtin"},node:{pattern:l(/(^|[^-.\w\x80-\uFFFF\\])/.source),lookbehind:!0,greedy:!0,inside:o},operator:/[=:]|-[->]/,punctuation:/[\[\]{};,]/},n.languages.gv=n.languages.dot})(t)}return Sd}var vd,pk;function aB(){if(pk)return vd;pk=1,vd=e,e.displayName="ebnf",e.aliases=[];function e(t){t.languages.ebnf={comment:/\(\*[\s\S]*?\*\)/,string:{pattern:/"[^"\r\n]*"|'[^'\r\n]*'/,greedy:!0},special:{pattern:/\?[^?\r\n]*\?/,greedy:!0,alias:"class-name"},definition:{pattern:/^([\t ]*)[a-z]\w*(?:[ \t]+[a-z]\w*)*(?=\s*=)/im,lookbehind:!0,alias:["rule","keyword"]},rule:/\b[a-z]\w*(?:[ \t]+[a-z]\w*)*\b/i,punctuation:/\([:/]|[:/]\)|[.,;()[\]{}]/,operator:/[-=|*/!]/}}return vd}var kd,fk;function iB(){if(fk)return kd;fk=1,kd=e,e.displayName="editorconfig",e.aliases=[];function e(t){t.languages.editorconfig={comment:/[;#].*/,section:{pattern:/(^[ \t]*)\[.+\]/m,lookbehind:!0,alias:"selector",inside:{regex:/\\\\[\[\]{},!?.*]/,operator:/[!?]|\.\.|\*{1,2}/,punctuation:/[\[\]{},]/}},key:{pattern:/(^[ \t]*)[^\s=]+(?=[ \t]*=)/m,lookbehind:!0,alias:"attr-name"},value:{pattern:/=.*/,alias:"attr-value",inside:{punctuation:/^=/}}}}return kd}var _d,gk;function oB(){if(gk)return _d;gk=1,_d=e,e.displayName="eiffel",e.aliases=[];function e(t){t.languages.eiffel={comment:/--.*/,string:[{pattern:/"([^[]*)\[[\s\S]*?\]\1"/,greedy:!0},{pattern:/"([^{]*)\{[\s\S]*?\}\1"/,greedy:!0},{pattern:/"(?:%(?:(?!\n)\s)*\n\s*%|%\S|[^%"\r\n])*"/,greedy:!0}],char:/'(?:%.|[^%'\r\n])+'/,keyword:/\b(?:across|agent|alias|all|and|as|assign|attached|attribute|check|class|convert|create|Current|debug|deferred|detachable|do|else|elseif|end|ensure|expanded|export|external|feature|from|frozen|if|implies|inherit|inspect|invariant|like|local|loop|not|note|obsolete|old|once|or|Precursor|redefine|rename|require|rescue|Result|retry|select|separate|some|then|undefine|until|variant|Void|when|xor)\b/i,boolean:/\b(?:False|True)\b/i,"class-name":/\b[A-Z][\dA-Z_]*\b/,number:[/\b0[xcb][\da-f](?:_*[\da-f])*\b/i,/(?:\b\d(?:_*\d)*)?\.(?:(?:\d(?:_*\d)*)?e[+-]?)?\d(?:_*\d)*\b|\b\d(?:_*\d)*\b\.?/i],punctuation:/:=|<<|>>|\(\||\|\)|->|\.(?=\w)|[{}[\];(),:?]/,operator:/\\\\|\|\.\.\||\.\.|\/[~\/=]?|[><]=?|[-+*^=~]/}}return _d}var wd,mk;function sB(){if(mk)return wd;mk=1;var e=an();wd=t,t.displayName="ejs",t.aliases=["eta"];function t(n){n.register(e),(function(i){i.languages.ejs={delimiter:{pattern:/^<%[-_=]?|[-_]?%>$/,alias:"punctuation"},comment:/^#[\s\S]*/,"language-javascript":{pattern:/[\s\S]+/,inside:i.languages.javascript}},i.hooks.add("before-tokenize",function(o){var l=/<%(?!%)[\s\S]+?%>/g;i.languages["markup-templating"].buildPlaceholders(o,"ejs",l)}),i.hooks.add("after-tokenize",function(o){i.languages["markup-templating"].tokenizePlaceholders(o,"ejs")}),i.languages.eta=i.languages.ejs})(n)}return wd}var Td,hk;function lB(){if(hk)return Td;hk=1,Td=e,e.displayName="elixir",e.aliases=[];function e(t){t.languages.elixir={doc:{pattern:/@(?:doc|moduledoc)\s+(?:("""|''')[\s\S]*?\1|("|')(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2)/,inside:{attribute:/^@\w+/,string:/['"][\s\S]+/}},comment:{pattern:/#.*/,greedy:!0},regex:{pattern:/~[rR](?:("""|''')(?:\\[\s\S]|(?!\1)[^\\])+\1|([\/|"'])(?:\\.|(?!\2)[^\\\r\n])+\2|\((?:\\.|[^\\)\r\n])+\)|\[(?:\\.|[^\\\]\r\n])+\]|\{(?:\\.|[^\\}\r\n])+\}|<(?:\\.|[^\\>\r\n])+>)[uismxfr]*/,greedy:!0},string:[{pattern:/~[cCsSwW](?:("""|''')(?:\\[\s\S]|(?!\1)[^\\])+\1|([\/|"'])(?:\\.|(?!\2)[^\\\r\n])+\2|\((?:\\.|[^\\)\r\n])+\)|\[(?:\\.|[^\\\]\r\n])+\]|\{(?:\\.|#\{[^}]+\}|#(?!\{)|[^#\\}\r\n])+\}|<(?:\\.|[^\\>\r\n])+>)[csa]?/,greedy:!0,inside:{}},{pattern:/("""|''')[\s\S]*?\1/,greedy:!0,inside:{}},{pattern:/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0,inside:{}}],atom:{pattern:/(^|[^:]):\w+/,lookbehind:!0,alias:"symbol"},module:{pattern:/\b[A-Z]\w*\b/,alias:"class-name"},"attr-name":/\b\w+\??:(?!:)/,argument:{pattern:/(^|[^&])&\d+/,lookbehind:!0,alias:"variable"},attribute:{pattern:/@\w+/,alias:"variable"},function:/\b[_a-zA-Z]\w*[?!]?(?:(?=\s*(?:\.\s*)?\()|(?=\/\d))/,number:/\b(?:0[box][a-f\d_]+|\d[\d_]*)(?:\.[\d_]+)?(?:e[+-]?[\d_]+)?\b/i,keyword:/\b(?:after|alias|and|case|catch|cond|def(?:callback|delegate|exception|impl|macro|module|n|np|p|protocol|struct)?|do|else|end|fn|for|if|import|not|or|quote|raise|require|rescue|try|unless|unquote|use|when)\b/,boolean:/\b(?:false|nil|true)\b/,operator:[/\bin\b|&&?|\|[|>]?|\\\\|::|\.\.\.?|\+\+?|-[->]?|<[-=>]|>=|!==?|\B!|=(?:==?|[>~])?|[*\/^]/,{pattern:/([^<])<(?!<)/,lookbehind:!0},{pattern:/([^>])>(?!>)/,lookbehind:!0}],punctuation:/<<|>>|[.,%\[\]{}()]/},t.languages.elixir.string.forEach(function(n){n.inside={interpolation:{pattern:/#\{[^}]+\}/,inside:{delimiter:{pattern:/^#\{|\}$/,alias:"punctuation"},rest:t.languages.elixir}}}})}return Td}var xd,bk;function uB(){if(bk)return xd;bk=1,xd=e,e.displayName="elm",e.aliases=[];function e(t){t.languages.elm={comment:/--.*|\{-[\s\S]*?-\}/,char:{pattern:/'(?:[^\\'\r\n]|\\(?:[abfnrtv\\']|\d+|x[0-9a-fA-F]+|u\{[0-9a-fA-F]+\}))'/,greedy:!0},string:[{pattern:/"""[\s\S]*?"""/,greedy:!0},{pattern:/"(?:[^\\"\r\n]|\\.)*"/,greedy:!0}],"import-statement":{pattern:/(^[\t ]*)import\s+[A-Z]\w*(?:\.[A-Z]\w*)*(?:\s+as\s+(?:[A-Z]\w*)(?:\.[A-Z]\w*)*)?(?:\s+exposing\s+)?/m,lookbehind:!0,inside:{keyword:/\b(?:as|exposing|import)\b/}},keyword:/\b(?:alias|as|case|else|exposing|if|in|infixl|infixr|let|module|of|then|type)\b/,builtin:/\b(?:abs|acos|always|asin|atan|atan2|ceiling|clamp|compare|cos|curry|degrees|e|flip|floor|fromPolar|identity|isInfinite|isNaN|logBase|max|min|negate|never|not|pi|radians|rem|round|sin|sqrt|tan|toFloat|toPolar|toString|truncate|turns|uncurry|xor)\b/,number:/\b(?:\d+(?:\.\d+)?(?:e[+-]?\d+)?|0x[0-9a-f]+)\b/i,operator:/\s\.\s|[+\-/*=.$<>:&|^?%#@~!]{2,}|[+\-/*=$<>:&|^?%#@~!]/,hvariable:/\b(?:[A-Z]\w*\.)*[a-z]\w*\b/,constant:/\b(?:[A-Z]\w*\.)*[A-Z]\w*\b/,punctuation:/[{}[\]|(),.:]/}}return xd}var Ad,yk;function cB(){if(yk)return Ad;yk=1;var e=_s(),t=an();Ad=n,n.displayName="erb",n.aliases=[];function n(i){i.register(e),i.register(t),(function(o){o.languages.erb={delimiter:{pattern:/^(\s*)<%=?|%>(?=\s*$)/,lookbehind:!0,alias:"punctuation"},ruby:{pattern:/\s*\S[\s\S]*/,alias:"language-ruby",inside:o.languages.ruby}},o.hooks.add("before-tokenize",function(l){var u=/<%=?(?:[^\r\n]|[\r\n](?!=begin)|[\r\n]=begin\s(?:[^\r\n]|[\r\n](?!=end))*[\r\n]=end)+?%>/g;o.languages["markup-templating"].buildPlaceholders(l,"erb",u)}),o.hooks.add("after-tokenize",function(l){o.languages["markup-templating"].tokenizePlaceholders(l,"erb")})})(i)}return Ad}var Rd,Ek;function dB(){if(Ek)return Rd;Ek=1,Rd=e,e.displayName="erlang",e.aliases=[];function e(t){t.languages.erlang={comment:/%.+/,string:{pattern:/"(?:\\.|[^\\"\r\n])*"/,greedy:!0},"quoted-function":{pattern:/'(?:\\.|[^\\'\r\n])+'(?=\()/,alias:"function"},"quoted-atom":{pattern:/'(?:\\.|[^\\'\r\n])+'/,alias:"atom"},boolean:/\b(?:false|true)\b/,keyword:/\b(?:after|case|catch|end|fun|if|of|receive|try|when)\b/,number:[/\$\\?./,/\b\d+#[a-z0-9]+/i,/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i],function:/\b[a-z][\w@]*(?=\()/,variable:{pattern:/(^|[^@])(?:\b|\?)[A-Z_][\w@]*/,lookbehind:!0},operator:[/[=\/<>:]=|=[:\/]=|\+\+?|--?|[=*\/!]|\b(?:and|andalso|band|bnot|bor|bsl|bsr|bxor|div|not|or|orelse|rem|xor)\b/,{pattern:/(^|[^<])<(?!<)/,lookbehind:!0},{pattern:/(^|[^>])>(?!>)/,lookbehind:!0}],atom:/\b[a-z][\w@]*/,punctuation:/[()[\]{}:;,.#|]|<<|>>/}}return Rd}var Nd,Sk;function tR(){if(Sk)return Nd;Sk=1,Nd=e,e.displayName="lua",e.aliases=[];function e(t){t.languages.lua={comment:/^#!.+|--(?:\[(=*)\[[\s\S]*?\]\1\]|.*)/m,string:{pattern:/(["'])(?:(?!\1)[^\\\r\n]|\\z(?:\r\n|\s)|\\(?:\r\n|[^z]))*\1|\[(=*)\[[\s\S]*?\]\2\]/,greedy:!0},number:/\b0x[a-f\d]+(?:\.[a-f\d]*)?(?:p[+-]?\d+)?\b|\b\d+(?:\.\B|(?:\.\d*)?(?:e[+-]?\d+)?\b)|\B\.\d+(?:e[+-]?\d+)?\b/i,keyword:/\b(?:and|break|do|else|elseif|end|false|for|function|goto|if|in|local|nil|not|or|repeat|return|then|true|until|while)\b/,function:/(?!\d)\w+(?=\s*(?:[({]))/,operator:[/[-+*%^&|#]|\/\/?|<[<=]?|>[>=]?|[=~]=?/,{pattern:/(^|[^.])\.\.(?!\.)/,lookbehind:!0}],punctuation:/[\[\](){},;]|\.+|:+/}}return Nd}var Cd,vk;function pB(){if(vk)return Cd;vk=1;var e=tR(),t=an();Cd=n,n.displayName="etlua",n.aliases=[];function n(i){i.register(e),i.register(t),(function(o){o.languages.etlua={delimiter:{pattern:/^<%[-=]?|-?%>$/,alias:"punctuation"},"language-lua":{pattern:/[\s\S]+/,inside:o.languages.lua}},o.hooks.add("before-tokenize",function(l){var u=/<%[\s\S]+?%>/g;o.languages["markup-templating"].buildPlaceholders(l,"etlua",u)}),o.hooks.add("after-tokenize",function(l){o.languages["markup-templating"].tokenizePlaceholders(l,"etlua")})})(i)}return Cd}var Id,kk;function fB(){if(kk)return Id;kk=1,Id=e,e.displayName="excelFormula",e.aliases=[];function e(t){t.languages["excel-formula"]={comment:{pattern:/(\bN\(\s*)"(?:[^"]|"")*"(?=\s*\))/i,lookbehind:!0,greedy:!0},string:{pattern:/"(?:[^"]|"")*"(?!")/,greedy:!0},reference:{pattern:/(?:'[^']*'|(?:[^\s()[\]{}<>*?"';,$&]*\[[^^\s()[\]{}<>*?"']+\])?\w+)!/,greedy:!0,alias:"string",inside:{operator:/!$/,punctuation:/'/,sheet:{pattern:/[^[\]]+$/,alias:"function"},file:{pattern:/\[[^[\]]+\]$/,inside:{punctuation:/[[\]]/}},path:/[\s\S]+/}},"function-name":{pattern:/\b[A-Z]\w*(?=\()/i,alias:"keyword"},range:{pattern:/\$?\b(?:[A-Z]+\$?\d+:\$?[A-Z]+\$?\d+|[A-Z]+:\$?[A-Z]+|\d+:\$?\d+)\b/i,alias:"property",inside:{operator:/:/,cell:/\$?[A-Z]+\$?\d+/i,column:/\$?[A-Z]+/i,row:/\$?\d+/}},cell:{pattern:/\b[A-Z]+\d+\b|\$[A-Za-z]+\$?\d+\b|\b[A-Za-z]+\$\d+\b/,alias:"property"},number:/(?:\b\d+(?:\.\d+)?|\B\.\d+)(?:e[+-]?\d+)?\b/i,boolean:/\b(?:FALSE|TRUE)\b/i,operator:/[-+*/^%=&,]|<[=>]?|>=?/,punctuation:/[[\]();{}|]/},t.languages.xlsx=t.languages.xls=t.languages["excel-formula"]}return Id}var Od,_k;function gB(){if(_k)return Od;_k=1,Od=e,e.displayName="factor",e.aliases=[];function e(t){(function(n){var i={function:/\b(?:BUGS?|FIX(?:MES?)?|NOTES?|TODOS?|XX+|HACKS?|WARN(?:ING)?|\?{2,}|!{2,})\b/},o={number:/\\[^\s']|%\w/},l={comment:[{pattern:/(^|\s)(?:! .*|!$)/,lookbehind:!0,inside:i},{pattern:/(^|\s)\/\*\s[\s\S]*?\*\/(?=\s|$)/,lookbehind:!0,greedy:!0,inside:i},{pattern:/(^|\s)!\[(={0,6})\[\s[\s\S]*?\]\2\](?=\s|$)/,lookbehind:!0,greedy:!0,inside:i}],number:[{pattern:/(^|\s)[+-]?\d+(?=\s|$)/,lookbehind:!0},{pattern:/(^|\s)[+-]?0(?:b[01]+|o[0-7]+|d\d+|x[\dA-F]+)(?=\s|$)/i,lookbehind:!0},{pattern:/(^|\s)[+-]?\d+\/\d+\.?(?=\s|$)/,lookbehind:!0},{pattern:/(^|\s)\+?\d+\+\d+\/\d+(?=\s|$)/,lookbehind:!0},{pattern:/(^|\s)-\d+-\d+\/\d+(?=\s|$)/,lookbehind:!0},{pattern:/(^|\s)[+-]?(?:\d*\.\d+|\d+\.\d*|\d+)(?:e[+-]?\d+)?(?=\s|$)/i,lookbehind:!0},{pattern:/(^|\s)NAN:\s+[\da-fA-F]+(?=\s|$)/,lookbehind:!0},{pattern:/(^|\s)[+-]?0(?:b1\.[01]*|o1\.[0-7]*|d1\.\d*|x1\.[\dA-F]*)p\d+(?=\s|$)/i,lookbehind:!0}],regexp:{pattern:/(^|\s)R\/\s(?:\\\S|[^\\/])*\/(?:[idmsr]*|[idmsr]+-[idmsr]+)(?=\s|$)/,lookbehind:!0,alias:"number",inside:{variable:/\\\S/,keyword:/[+?*\[\]^$(){}.|]/,operator:{pattern:/(\/)[idmsr]+(?:-[idmsr]+)?/,lookbehind:!0}}},boolean:{pattern:/(^|\s)[tf](?=\s|$)/,lookbehind:!0},"custom-string":{pattern:/(^|\s)[A-Z0-9\-]+"\s(?:\\\S|[^"\\])*"/,lookbehind:!0,greedy:!0,alias:"string",inside:{number:/\\\S|%\w|\//}},"multiline-string":[{pattern:/(^|\s)STRING:\s+\S+(?:\n|\r\n).*(?:\n|\r\n)\s*;(?=\s|$)/,lookbehind:!0,greedy:!0,alias:"string",inside:{number:o.number,"semicolon-or-setlocal":{pattern:/([\r\n][ \t]*);(?=\s|$)/,lookbehind:!0,alias:"function"}}},{pattern:/(^|\s)HEREDOC:\s+\S+(?:\n|\r\n).*(?:\n|\r\n)\s*\S+(?=\s|$)/,lookbehind:!0,greedy:!0,alias:"string",inside:o},{pattern:/(^|\s)\[(={0,6})\[\s[\s\S]*?\]\2\](?=\s|$)/,lookbehind:!0,greedy:!0,alias:"string",inside:o}],"special-using":{pattern:/(^|\s)USING:(?:\s\S+)*(?=\s+;(?:\s|$))/,lookbehind:!0,alias:"function",inside:{string:{pattern:/(\s)[^:\s]+/,lookbehind:!0}}},"stack-effect-delimiter":[{pattern:/(^|\s)(?:call|eval|execute)?\((?=\s)/,lookbehind:!0,alias:"operator"},{pattern:/(\s)--(?=\s)/,lookbehind:!0,alias:"operator"},{pattern:/(\s)\)(?=\s|$)/,lookbehind:!0,alias:"operator"}],combinators:{pattern:null,lookbehind:!0,alias:"keyword"},"kernel-builtin":{pattern:null,lookbehind:!0,alias:"variable"},"sequences-builtin":{pattern:null,lookbehind:!0,alias:"variable"},"math-builtin":{pattern:null,lookbehind:!0,alias:"variable"},"constructor-word":{pattern:/(^|\s)<(?!=+>|-+>)\S+>(?=\s|$)/,lookbehind:!0,alias:"keyword"},"other-builtin-syntax":{pattern:null,lookbehind:!0,alias:"operator"},"conventionally-named-word":{pattern:/(^|\s)(?!")(?:(?:change|new|set|with)-\S+|\$\S+|>[^>\s]+|[^:>\s]+>|[^>\s]+>[^>\s]+|\+[^+\s]+\+|[^?\s]+\?|\?[^?\s]+|[^>\s]+>>|>>[^>\s]+|[^<\s]+<<|\([^()\s]+\)|[^!\s]+!|[^*\s]\S*\*|[^.\s]\S*\.)(?=\s|$)/,lookbehind:!0,alias:"keyword"},"colon-syntax":{pattern:/(^|\s)(?:[A-Z0-9\-]+#?)?:{1,2}\s+(?:;\S+|(?!;)\S+)(?=\s|$)/,lookbehind:!0,greedy:!0,alias:"function"},"semicolon-or-setlocal":{pattern:/(\s)(?:;|:>)(?=\s|$)/,lookbehind:!0,alias:"function"},"curly-brace-literal-delimiter":[{pattern:/(^|\s)[a-z]*\{(?=\s)/i,lookbehind:!0,alias:"operator"},{pattern:/(\s)\}(?=\s|$)/,lookbehind:!0,alias:"operator"}],"quotation-delimiter":[{pattern:/(^|\s)\[(?=\s)/,lookbehind:!0,alias:"operator"},{pattern:/(\s)\](?=\s|$)/,lookbehind:!0,alias:"operator"}],"normal-word":{pattern:/(^|\s)[^"\s]\S*(?=\s|$)/,lookbehind:!0},string:{pattern:/"(?:\\\S|[^"\\])*"/,greedy:!0,inside:o}},u=function(m){return(m+"").replace(/([.?*+\^$\[\]\\(){}|\-])/g,"\\$1")},c=function(m){return new RegExp("(^|\\s)(?:"+m.map(u).join("|")+")(?=\\s|$)")},p={"kernel-builtin":["or","2nipd","4drop","tuck","wrapper","nip","wrapper?","callstack>array","die","dupd","callstack","callstack?","3dup","hashcode","pick","4nip","build",">boolean","nipd","clone","5nip","eq?","?","=","swapd","2over","clear","2dup","get-retainstack","not","tuple?","dup","3nipd","call","-rotd","object","drop","assert=","assert?","-rot","execute","boa","get-callstack","curried?","3drop","pickd","overd","over","roll","3nip","swap","and","2nip","rotd","throw","(clone)","hashcode*","spin","reach","4dup","equal?","get-datastack","assert","2drop","","boolean?","identity-hashcode","identity-tuple?","null","composed?","new","5drop","rot","-roll","xor","identity-tuple","boolean"],"other-builtin-syntax":["=======","recursive","flushable",">>","<<<<<<","M\\","B","PRIVATE>","\\","======","final","inline","delimiter","deprecated",">>>>>","<<<<<<<","parse-complex","malformed-complex","read-only",">>>>>>>","call-next-method","<<","foldable","$","$[","${"],"sequences-builtin":["member-eq?","mismatch","append","assert-sequence=","longer","repetition","clone-like","3sequence","assert-sequence?","last-index-from","reversed","index-from","cut*","pad-tail","join-as","remove-eq!","concat-as","but-last","snip","nths","nth","sequence","longest","slice?","","remove-nth","tail-slice","empty?","tail*","member?","virtual-sequence?","set-length","drop-prefix","iota","unclip","bounds-error?","unclip-last-slice","non-negative-integer-expected","non-negative-integer-expected?","midpoint@","longer?","?set-nth","?first","rest-slice","prepend-as","prepend","fourth","sift","subseq-start","new-sequence","?last","like","first4","1sequence","reverse","slice","virtual@","repetition?","set-last","index","4sequence","max-length","set-second","immutable-sequence","first2","first3","supremum","unclip-slice","suffix!","insert-nth","tail","3append","short","suffix","concat","flip","immutable?","reverse!","2sequence","sum","delete-all","indices","snip-slice","","check-slice","sequence?","head","append-as","halves","sequence=","collapse-slice","?second","slice-error?","product","bounds-check?","bounds-check","immutable","virtual-exemplar","harvest","remove","pad-head","last","set-fourth","cartesian-product","remove-eq","shorten","shorter","reversed?","shorter?","shortest","head-slice","pop*","tail-slice*","but-last-slice","iota?","append!","cut-slice","new-resizable","head-slice*","sequence-hashcode","pop","set-nth","?nth","second","join","immutable-sequence?","","3append-as","virtual-sequence","subseq?","remove-nth!","length","last-index","lengthen","assert-sequence","copy","move","third","first","tail?","set-first","prefix","bounds-error","","exchange","surround","cut","min-length","set-third","push-all","head?","subseq-start-from","delete-slice","rest","sum-lengths","head*","infimum","remove!","glue","slice-error","subseq","push","replace-slice","subseq-as","unclip-last"],"math-builtin":["number=","next-power-of-2","?1+","fp-special?","imaginary-part","float>bits","number?","fp-infinity?","bignum?","fp-snan?","denominator","gcd","*","+","fp-bitwise=","-","u>=","/",">=","bitand","power-of-2?","log2-expects-positive","neg?","<","log2",">","integer?","number","bits>double","2/","zero?","bits>float","float?","shift","ratio?","rect>","even?","ratio","fp-sign","bitnot",">fixnum","complex?","/i","integer>fixnum","/f","sgn",">bignum","next-float","u<","u>","mod","recip","rational",">float","2^","integer","fixnum?","neg","fixnum","sq","bignum",">rect","bit?","fp-qnan?","simple-gcd","complex","","real",">fraction","double>bits","bitor","rem","fp-nan-payload","real-part","log2-expects-positive?","prev-float","align","unordered?","float","fp-nan?","abs","bitxor","integer>fixnum-strict","u<=","odd?","<=","/mod",">integer","real?","rational?","numerator"]};Object.keys(p).forEach(function(m){l[m].pattern=c(p[m])});var f=["2bi","while","2tri","bi*","4dip","both?","same?","tri@","curry","prepose","3bi","?if","tri*","2keep","3keep","curried","2keepd","when","2bi*","2tri*","4keep","bi@","keepdd","do","unless*","tri-curry","if*","loop","bi-curry*","when*","2bi@","2tri@","with","2with","either?","bi","until","3dip","3curry","tri-curry*","tri-curry@","bi-curry","keepd","compose","2dip","if","3tri","unless","tuple","keep","2curry","tri","most","while*","dip","composed","bi-curry@","find-last-from","trim-head-slice","map-as","each-from","none?","trim-tail","partition","if-empty","accumulate*","reject!","find-from","accumulate-as","collector-for-as","reject","map","map-sum","accumulate!","2each-from","follow","supremum-by","map!","unless-empty","collector","padding","reduce-index","replicate-as","infimum-by","trim-tail-slice","count","find-index","filter","accumulate*!","reject-as","map-integers","map-find","reduce","selector","interleave","2map","filter-as","binary-reduce","map-index-as","find","produce","filter!","replicate","cartesian-map","cartesian-each","find-index-from","map-find-last","3map-as","3map","find-last","selector-as","2map-as","2map-reduce","accumulate","each","each-index","accumulate*-as","when-empty","all?","collector-as","push-either","new-like","collector-for","2selector","push-if","2all?","map-reduce","3each","any?","trim-slice","2reduce","change-nth","produce-as","2each","trim","trim-head","cartesian-find","map-index","if-zero","each-integer","unless-zero","(find-integer)","when-zero","find-last-integer","(all-integers?)","times","(each-integer)","find-integer","all-integers?","unless-negative","if-positive","when-positive","when-negative","unless-positive","if-negative","case","2cleave","cond>quot","case>quot","3cleave","wrong-values","to-fixed-point","alist>quot","cond","cleave","call-effect","recursive-hashcode","spread","deep-spread>quot","2||","0||","n||","0&&","2&&","3||","1||","1&&","n&&","3&&","smart-unless*","keep-inputs","reduce-outputs","smart-when*","cleave>array","smart-with","smart-apply","smart-if","inputs/outputs","output>sequence-n","map-outputs","map-reduce-outputs","dropping","output>array","smart-map-reduce","smart-2map-reduce","output>array-n","nullary","inputsequence"];l.combinators.pattern=c(f),n.languages.factor=l})(t)}return Od}var Ld,wk;function mB(){if(wk)return Ld;wk=1,Ld=e,e.displayName="$false",e.aliases=[];function e(t){(function(n){n.languages.false={comment:{pattern:/\{[^}]*\}/},string:{pattern:/"[^"]*"/,greedy:!0},"character-code":{pattern:/'(?:[^\r]|\r\n?)/,alias:"number"},"assembler-code":{pattern:/\d+`/,alias:"important"},number:/\d+/,operator:/[-!#$%&'*+,./:;=>?@\\^_`|~ßø]/,punctuation:/\[|\]/,variable:/[a-z]/,"non-standard":{pattern:/[()!=]=?|[-+*/%]|\b(?:in|is)\b/}),delete t.languages["firestore-security-rules"]["class-name"],t.languages.insertBefore("firestore-security-rules","keyword",{path:{pattern:/(^|[\s(),])(?:\/(?:[\w\xA0-\uFFFF]+|\{[\w\xA0-\uFFFF]+(?:=\*\*)?\}|\$\([\w\xA0-\uFFFF.]+\)))+/,lookbehind:!0,greedy:!0,inside:{variable:{pattern:/\{[\w\xA0-\uFFFF]+(?:=\*\*)?\}|\$\([\w\xA0-\uFFFF.]+\)/,inside:{operator:/=/,keyword:/\*\*/,punctuation:/[.$(){}]/}},punctuation:/\//}},method:{pattern:/(\ballow\s+)[a-z]+(?:\s*,\s*[a-z]+)*(?=\s*[:;])/,lookbehind:!0,alias:"builtin",inside:{punctuation:/,/}}})}return Dd}var Md,xk;function bB(){if(xk)return Md;xk=1,Md=e,e.displayName="flow",e.aliases=[];function e(t){(function(n){n.languages.flow=n.languages.extend("javascript",{}),n.languages.insertBefore("flow","keyword",{type:[{pattern:/\b(?:[Bb]oolean|Function|[Nn]umber|[Ss]tring|any|mixed|null|void)\b/,alias:"tag"}]}),n.languages.flow["function-variable"].pattern=/(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=\s*(?:function\b|(?:\([^()]*\)(?:\s*:\s*\w+)?|(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/i,delete n.languages.flow.parameter,n.languages.insertBefore("flow","operator",{"flow-punctuation":{pattern:/\{\||\|\}/,alias:"punctuation"}}),Array.isArray(n.languages.flow.keyword)||(n.languages.flow.keyword=[n.languages.flow.keyword]),n.languages.flow.keyword.unshift({pattern:/(^|[^$]\b)(?:Class|declare|opaque|type)\b(?!\$)/,lookbehind:!0},{pattern:/(^|[^$]\B)\$(?:Diff|Enum|Exact|Keys|ObjMap|PropertyType|Record|Shape|Subtype|Supertype|await)\b(?!\$)/,lookbehind:!0})})(t)}return Md}var Fd,Ak;function yB(){if(Ak)return Fd;Ak=1,Fd=e,e.displayName="fortran",e.aliases=[];function e(t){t.languages.fortran={"quoted-number":{pattern:/[BOZ](['"])[A-F0-9]+\1/i,alias:"number"},string:{pattern:/(?:\b\w+_)?(['"])(?:\1\1|&(?:\r\n?|\n)(?:[ \t]*!.*(?:\r\n?|\n)|(?![ \t]*!))|(?!\1).)*(?:\1|&)/,inside:{comment:{pattern:/(&(?:\r\n?|\n)\s*)!.*/,lookbehind:!0}}},comment:{pattern:/!.*/,greedy:!0},boolean:/\.(?:FALSE|TRUE)\.(?:_\w+)?/i,number:/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[ED][+-]?\d+)?(?:_\w+)?/i,keyword:[/\b(?:CHARACTER|COMPLEX|DOUBLE ?PRECISION|INTEGER|LOGICAL|REAL)\b/i,/\b(?:END ?)?(?:BLOCK ?DATA|DO|FILE|FORALL|FUNCTION|IF|INTERFACE|MODULE(?! PROCEDURE)|PROGRAM|SELECT|SUBROUTINE|TYPE|WHERE)\b/i,/\b(?:ALLOCATABLE|ALLOCATE|BACKSPACE|CALL|CASE|CLOSE|COMMON|CONTAINS|CONTINUE|CYCLE|DATA|DEALLOCATE|DIMENSION|DO|END|EQUIVALENCE|EXIT|EXTERNAL|FORMAT|GO ?TO|IMPLICIT(?: NONE)?|INQUIRE|INTENT|INTRINSIC|MODULE PROCEDURE|NAMELIST|NULLIFY|OPEN|OPTIONAL|PARAMETER|POINTER|PRINT|PRIVATE|PUBLIC|READ|RETURN|REWIND|SAVE|SELECT|STOP|TARGET|WHILE|WRITE)\b/i,/\b(?:ASSIGNMENT|DEFAULT|ELEMENTAL|ELSE|ELSEIF|ELSEWHERE|ENTRY|IN|INCLUDE|INOUT|KIND|NULL|ONLY|OPERATOR|OUT|PURE|RECURSIVE|RESULT|SEQUENCE|STAT|THEN|USE)\b/i],operator:[/\*\*|\/\/|=>|[=\/]=|[<>]=?|::|[+\-*=%]|\.[A-Z]+\./i,{pattern:/(^|(?!\().)\/(?!\))/,lookbehind:!0}],punctuation:/\(\/|\/\)|[(),;:&]/}}return Fd}var Pd,Rk;function EB(){if(Rk)return Pd;Rk=1,Pd=e,e.displayName="fsharp",e.aliases=[];function e(t){t.languages.fsharp=t.languages.extend("clike",{comment:[{pattern:/(^|[^\\])\(\*(?!\))[\s\S]*?\*\)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(?:"""[\s\S]*?"""|@"(?:""|[^"])*"|"(?:\\[\s\S]|[^\\"])*")B?/,greedy:!0},"class-name":{pattern:/(\b(?:exception|inherit|interface|new|of|type)\s+|\w\s*:\s*|\s:\??>\s*)[.\w]+\b(?:\s*(?:->|\*)\s*[.\w]+\b)*(?!\s*[:.])/,lookbehind:!0,inside:{operator:/->|\*/,punctuation:/\./}},keyword:/\b(?:let|return|use|yield)(?:!\B|\b)|\b(?:abstract|and|as|asr|assert|atomic|base|begin|break|checked|class|component|const|constraint|constructor|continue|default|delegate|do|done|downcast|downto|eager|elif|else|end|event|exception|extern|external|false|finally|fixed|for|fun|function|functor|global|if|in|include|inherit|inline|interface|internal|land|lazy|lor|lsl|lsr|lxor|match|member|method|mixin|mod|module|mutable|namespace|new|not|null|object|of|open|or|override|parallel|private|process|protected|public|pure|rec|sealed|select|sig|static|struct|tailcall|then|to|trait|true|try|type|upcast|val|virtual|void|volatile|when|while|with)\b/,number:[/\b0x[\da-fA-F]+(?:LF|lf|un)?\b/,/\b0b[01]+(?:uy|y)?\b/,/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[fm]|e[+-]?\d+)?\b/i,/\b\d+(?:[IlLsy]|UL|u[lsy]?)?\b/],operator:/([<>~&^])\1\1|([*.:<>&])\2|<-|->|[!=:]=|?|\??(?:<=|>=|<>|[-+*/%=<>])\??|[!?^&]|~[+~-]|:>|:\?>?/}),t.languages.insertBefore("fsharp","keyword",{preprocessor:{pattern:/(^[\t ]*)#.*/m,lookbehind:!0,alias:"property",inside:{directive:{pattern:/(^#)\b(?:else|endif|if|light|line|nowarn)\b/,lookbehind:!0,alias:"keyword"}}}}),t.languages.insertBefore("fsharp","punctuation",{"computation-expression":{pattern:/\b[_a-z]\w*(?=\s*\{)/i,alias:"keyword"}}),t.languages.insertBefore("fsharp","string",{annotation:{pattern:/\[<.+?>\]/,greedy:!0,inside:{punctuation:/^\[<|>\]$/,"class-name":{pattern:/^\w+$|(^|;\s*)[A-Z]\w*(?=\()/,lookbehind:!0},"annotation-content":{pattern:/[\s\S]+/,inside:t.languages.fsharp}}},char:{pattern:/'(?:[^\\']|\\(?:.|\d{3}|x[a-fA-F\d]{2}|u[a-fA-F\d]{4}|U[a-fA-F\d]{8}))'B?/,greedy:!0}})}return Pd}var Ud,Nk;function SB(){if(Nk)return Ud;Nk=1;var e=an();Ud=t,t.displayName="ftl",t.aliases=[];function t(n){n.register(e),(function(i){for(var o=/[^<()"']|\((?:)*\)|<(?!#--)|<#--(?:[^-]|-(?!->))*-->|"(?:[^\\"]|\\.)*"|'(?:[^\\']|\\.)*'/.source,l=0;l<2;l++)o=o.replace(//g,function(){return o});o=o.replace(//g,/[^\s\S]/.source);var u={comment:/<#--[\s\S]*?-->/,string:[{pattern:/\br("|')(?:(?!\1)[^\\]|\\.)*\1/,greedy:!0},{pattern:RegExp(/("|')(?:(?!\1|\$\{)[^\\]|\\.|\$\{(?:(?!\})(?:))*\})*\1/.source.replace(//g,function(){return o})),greedy:!0,inside:{interpolation:{pattern:RegExp(/((?:^|[^\\])(?:\\\\)*)\$\{(?:(?!\})(?:))*\}/.source.replace(//g,function(){return o})),lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:null}}}}],keyword:/\b(?:as)\b/,boolean:/\b(?:false|true)\b/,"builtin-function":{pattern:/((?:^|[^?])\?\s*)\w+/,lookbehind:!0,alias:"function"},function:/\b\w+(?=\s*\()/,number:/\b\d+(?:\.\d+)?\b/,operator:/\.\.[<*!]?|->|--|\+\+|&&|\|\||\?{1,2}|[-+*/%!=<>]=?|\b(?:gt|gte|lt|lte)\b/,punctuation:/[,;.:()[\]{}]/};u.string[1].inside.interpolation.inside.rest=u,i.languages.ftl={"ftl-comment":{pattern:/^<#--[\s\S]*/,alias:"comment"},"ftl-directive":{pattern:/^<[\s\S]+>$/,inside:{directive:{pattern:/(^<\/?)[#@][a-z]\w*/i,lookbehind:!0,alias:"keyword"},punctuation:/^<\/?|\/?>$/,content:{pattern:/\s*\S[\s\S]*/,alias:"ftl",inside:u}}},"ftl-interpolation":{pattern:/^\$\{[\s\S]*\}$/,inside:{punctuation:/^\$\{|\}$/,content:{pattern:/\s*\S[\s\S]*/,alias:"ftl",inside:u}}}},i.hooks.add("before-tokenize",function(c){var p=RegExp(/<#--[\s\S]*?-->|<\/?[#@][a-zA-Z](?:)*?>|\$\{(?:)*?\}/.source.replace(//g,function(){return o}),"gi");i.languages["markup-templating"].buildPlaceholders(c,"ftl",p)}),i.hooks.add("after-tokenize",function(c){i.languages["markup-templating"].tokenizePlaceholders(c,"ftl")})})(n)}return Ud}var Bd,Ck;function vB(){if(Ck)return Bd;Ck=1,Bd=e,e.displayName="gap",e.aliases=[];function e(t){t.languages.gap={shell:{pattern:/^gap>[\s\S]*?(?=^gap>|$(?![\s\S]))/m,greedy:!0,inside:{gap:{pattern:/^(gap>).+(?:(?:\r(?:\n|(?!\n))|\n)>.*)*/,lookbehind:!0,inside:null},punctuation:/^gap>/}},comment:{pattern:/#.*/,greedy:!0},string:{pattern:/(^|[^\\'"])(?:'(?:[^\r\n\\']|\\.){1,10}'|"(?:[^\r\n\\"]|\\.)*"(?!")|"""[\s\S]*?""")/,lookbehind:!0,greedy:!0,inside:{continuation:{pattern:/([\r\n])>/,lookbehind:!0,alias:"punctuation"}}},keyword:/\b(?:Assert|Info|IsBound|QUIT|TryNextMethod|Unbind|and|atomic|break|continue|do|elif|else|end|fi|for|function|if|in|local|mod|not|od|or|quit|readonly|readwrite|rec|repeat|return|then|until|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:{pattern:/(^|[^\w.]|\.\.)(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?(?:_[a-z]?)?(?=$|[^\w.]|\.\.)/,lookbehind:!0},continuation:{pattern:/([\r\n])>/,lookbehind:!0,alias:"punctuation"},operator:/->|[-+*/^~=!]|<>|[<>]=?|:=|\.\./,punctuation:/[()[\]{},;.:]/},t.languages.gap.shell.inside.gap.inside=t.languages.gap}return Bd}var jd,Ik;function kB(){if(Ik)return jd;Ik=1,jd=e,e.displayName="gcode",e.aliases=[];function e(t){t.languages.gcode={comment:/;.*|\B\(.*?\)\B/,string:{pattern:/"(?:""|[^"])*"/,greedy:!0},keyword:/\b[GM]\d+(?:\.\d+)?\b/,property:/\b[A-Z]/,checksum:{pattern:/(\*)\d+/,lookbehind:!0,alias:"number"},punctuation:/[:*]/}}return jd}var zd,Ok;function _B(){if(Ok)return zd;Ok=1,zd=e,e.displayName="gdscript",e.aliases=[];function e(t){t.languages.gdscript={comment:/#.*/,string:{pattern:/@?(?:("|')(?:(?!\1)[^\n\\]|\\[\s\S])*\1(?!"|')|"""(?:[^\\]|\\[\s\S])*?""")/,greedy:!0},"class-name":{pattern:/(^(?:class|class_name|extends)[ \t]+|^export\([ \t]*|\bas[ \t]+|(?:\b(?:const|var)[ \t]|[,(])[ \t]*\w+[ \t]*:[ \t]*|->[ \t]*)[a-zA-Z_]\w*/m,lookbehind:!0},keyword:/\b(?:and|as|assert|break|breakpoint|class|class_name|const|continue|elif|else|enum|export|extends|for|func|if|in|is|master|mastersync|match|not|null|onready|or|pass|preload|puppet|puppetsync|remote|remotesync|return|self|setget|signal|static|tool|var|while|yield)\b/,function:/\b[a-z_]\w*(?=[ \t]*\()/i,variable:/\$\w+/,number:[/\b0b[01_]+\b|\b0x[\da-fA-F_]+\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.[\d_]+)(?:e[+-]?[\d_]+)?\b/,/\b(?:INF|NAN|PI|TAU)\b/],constant:/\b[A-Z][A-Z_\d]*\b/,boolean:/\b(?:false|true)\b/,operator:/->|:=|&&|\|\||<<|>>|[-+*/%&|!<>=]=?|[~^]/,punctuation:/[.:,;()[\]{}]/}}return zd}var $d,Lk;function wB(){if(Lk)return $d;Lk=1,$d=e,e.displayName="gedcom",e.aliases=[];function e(t){t.languages.gedcom={"line-value":{pattern:/(^[\t ]*\d+ +(?:@\w[\w!"$%&'()*+,\-./:;<=>?[\\\]^`{|}~\x80-\xfe #]*@ +)?\w+ ).+/m,lookbehind:!0,inside:{pointer:{pattern:/^@\w[\w!"$%&'()*+,\-./:;<=>?[\\\]^`{|}~\x80-\xfe #]*@$/,alias:"variable"}}},tag:{pattern:/(^[\t ]*\d+ +(?:@\w[\w!"$%&'()*+,\-./:;<=>?[\\\]^`{|}~\x80-\xfe #]*@ +)?)\w+/m,lookbehind:!0,alias:"string"},level:{pattern:/(^[\t ]*)\d+/m,lookbehind:!0,alias:"number"},pointer:{pattern:/@\w[\w!"$%&'()*+,\-./:;<=>?[\\\]^`{|}~\x80-\xfe #]*@/,alias:"variable"}}}return $d}var qd,Dk;function TB(){if(Dk)return qd;Dk=1,qd=e,e.displayName="gherkin",e.aliases=[];function e(t){(function(n){var i=/(?:\r?\n|\r)[ \t]*\|.+\|(?:(?!\|).)*/.source;n.languages.gherkin={pystring:{pattern:/("""|''')[\s\S]+?\1/,alias:"string"},comment:{pattern:/(^[ \t]*)#.*/m,lookbehind:!0},tag:{pattern:/(^[ \t]*)@\S*/m,lookbehind:!0},feature:{pattern:/((?:^|\r?\n|\r)[ \t]*)(?:Ability|Ahoy matey!|Arwedd|Aspekt|Besigheid Behoefte|Business Need|Caracteristica|Característica|Egenskab|Egenskap|Eiginleiki|Feature|Fīča|Fitur|Fonctionnalité|Fonksyonalite|Funcionalidade|Funcionalitat|Functionalitate|Funcţionalitate|Funcționalitate|Functionaliteit|Fungsi|Funkcia|Funkcija|Funkcionalitāte|Funkcionalnost|Funkcja|Funksie|Funktionalität|Funktionalitéit|Funzionalità|Hwaet|Hwæt|Jellemző|Karakteristik|Lastnost|Mak|Mogucnost|laH|Mogućnost|Moznosti|Možnosti|OH HAI|Omadus|Ominaisuus|Osobina|Özellik|Potrzeba biznesowa|perbogh|poQbogh malja'|Požadavek|Požiadavka|Pretty much|Qap|Qu'meH 'ut|Savybė|Tính năng|Trajto|Vermoë|Vlastnosť|Właściwość|Značilnost|Δυνατότητα|Λειτουργία|Могућност|Мөмкинлек|Особина|Свойство|Үзенчәлеклелек|Функционал|Функционалност|Функция|Функціонал|תכונה|خاصية|خصوصیت|صلاحیت|کاروبار کی ضرورت|وِیژگی|रूप लेख|ਖਾਸੀਅਤ|ਨਕਸ਼ ਨੁਹਾਰ|ਮੁਹਾਂਦਰਾ|గుణము|ಹೆಚ್ಚಳ|ความต้องการทางธุรกิจ|ความสามารถ|โครงหลัก|기능|フィーチャ|功能|機能):(?:[^:\r\n]+(?:\r?\n|\r|$))*/,lookbehind:!0,inside:{important:{pattern:/(:)[^\r\n]+/,lookbehind:!0},keyword:/[^:\r\n]+:/}},scenario:{pattern:/(^[ \t]*)(?:Abstract Scenario|Abstrakt Scenario|Achtergrond|Aer|Ær|Agtergrond|All y'all|Antecedentes|Antecedents|Atburðarás|Atburðarásir|Awww, look mate|B4|Background|Baggrund|Bakgrund|Bakgrunn|Bakgrunnur|Beispiele|Beispiller|Bối cảnh|Cefndir|Cenario|Cenário|Cenario de Fundo|Cenário de Fundo|Cenarios|Cenários|Contesto|Context|Contexte|Contexto|Conto|Contoh|Contone|Dæmi|Dasar|Dead men tell no tales|Delineacao do Cenario|Delineação do Cenário|Dis is what went down|Dữ liệu|Dyagram Senaryo|Dyagram senaryo|Egzanp|Ejemplos|Eksempler|Ekzemploj|Enghreifftiau|Esbozo do escenario|Escenari|Escenario|Esempi|Esquema de l'escenari|Esquema del escenario|Esquema do Cenario|Esquema do Cenário|EXAMPLZ|Examples|Exempel|Exemple|Exemples|Exemplos|First off|Fono|Forgatókönyv|Forgatókönyv vázlat|Fundo|Geçmiş|Grundlage|Hannergrond|ghantoH|Háttér|Heave to|Istorik|Juhtumid|Keadaan|Khung kịch bản|Khung tình huống|Kịch bản|Koncept|Konsep skenario|Kontèks|Kontekst|Kontekstas|Konteksts|Kontext|Konturo de la scenaro|Latar Belakang|lut chovnatlh|lut|lutmey|Lýsing Atburðarásar|Lýsing Dæma|MISHUN SRSLY|MISHUN|Menggariskan Senario|mo'|Náčrt Scenára|Náčrt Scénáře|Náčrt Scenáru|Oris scenarija|Örnekler|Osnova|Osnova Scenára|Osnova scénáře|Osnutek|Ozadje|Paraugs|Pavyzdžiai|Példák|Piemēri|Plan du scénario|Plan du Scénario|Plan Senaryo|Plan senaryo|Plang vum Szenario|Pozadí|Pozadie|Pozadina|Príklady|Příklady|Primer|Primeri|Primjeri|Przykłady|Raamstsenaarium|Reckon it's like|Rerefons|Scenár|Scénář|Scenarie|Scenarij|Scenarijai|Scenarijaus šablonas|Scenariji|Scenārijs|Scenārijs pēc parauga|Scenarijus|Scenario|Scénario|Scenario Amlinellol|Scenario Outline|Scenario Template|Scenariomal|Scenariomall|Scenarios|Scenariu|Scenariusz|Scenaro|Schema dello scenario|Se ðe|Se the|Se þe|Senario|Senaryo Deskripsyon|Senaryo deskripsyon|Senaryo|Senaryo taslağı|Shiver me timbers|Situācija|Situai|Situasie Uiteensetting|Situasie|Skenario konsep|Skenario|Skica|Structura scenariu|Structură scenariu|Struktura scenarija|Stsenaarium|Swa hwaer swa|Swa|Swa hwær swa|Szablon scenariusza|Szenario|Szenariogrundriss|Tapaukset|Tapaus|Tapausaihio|Taust|Tausta|Template Keadaan|Template Senario|Template Situai|The thing of it is|Tình huống|Variantai|Voorbeelde|Voorbeelden|Wharrimean is|Yo-ho-ho|You'll wanna|Założenia|Παραδείγματα|Περιγραφή Σεναρίου|Σενάρια|Σενάριο|Υπόβαθρο|Кереш|Контекст|Концепт|Мисаллар|Мисоллар|Основа|Передумова|Позадина|Предистория|Предыстория|Приклади|Пример|Примери|Примеры|Рамка на сценарий|Скица|Структура сценарија|Структура сценария|Структура сценарію|Сценарий|Сценарий структураси|Сценарийның төзелеше|Сценарији|Сценарио|Сценарій|Тарих|Үрнәкләр|דוגמאות|רקע|תבנית תרחיש|תרחיש|الخلفية|الگوی سناریو|امثلة|پس منظر|زمینه|سناریو|سيناريو|سيناريو مخطط|مثالیں|منظر نامے کا خاکہ|منظرنامہ|نمونه ها|उदाहरण|परिदृश्य|परिदृश्य रूपरेखा|पृष्ठभूमि|ਉਦਾਹਰਨਾਂ|ਪਟਕਥਾ|ਪਟਕਥਾ ਢਾਂਚਾ|ਪਟਕਥਾ ਰੂਪ ਰੇਖਾ|ਪਿਛੋਕੜ|ఉదాహరణలు|కథనం|నేపథ్యం|సన్నివేశం|ಉದಾಹರಣೆಗಳು|ಕಥಾಸಾರಾಂಶ|ವಿವರಣೆ|ಹಿನ್ನೆಲೆ|โครงสร้างของเหตุการณ์|ชุดของตัวอย่าง|ชุดของเหตุการณ์|แนวคิด|สรุปเหตุการณ์|เหตุการณ์|배경|시나리오|시나리오 개요|예|サンプル|シナリオ|シナリオアウトライン|シナリオテンプレ|シナリオテンプレート|テンプレ|例|例子|剧本|剧本大纲|劇本|劇本大綱|场景|场景大纲|場景|場景大綱|背景):[^:\r\n]*/m,lookbehind:!0,inside:{important:{pattern:/(:)[^\r\n]*/,lookbehind:!0},keyword:/[^:\r\n]+:/}},"table-body":{pattern:RegExp("("+i+")(?:"+i+")+"),lookbehind:!0,inside:{outline:{pattern:/<[^>]+>/,alias:"variable"},td:{pattern:/\s*[^\s|][^|]*/,alias:"string"},punctuation:/\|/}},"table-head":{pattern:RegExp(i),inside:{th:{pattern:/\s*[^\s|][^|]*/,alias:"variable"},punctuation:/\|/}},atrule:{pattern:/(^[ \t]+)(?:'a|'ach|'ej|7|a|A také|A taktiež|A tiež|A zároveň|Aber|Ac|Adott|Akkor|Ak|Aleshores|Ale|Ali|Allora|Alors|Als|Ama|Amennyiben|Amikor|Ampak|an|AN|Ananging|And y'all|And|Angenommen|Anrhegedig a|An|Apabila|Atès|Atesa|Atunci|Avast!|Aye|A|awer|Bagi|Banjur|Bet|Biết|Blimey!|Buh|But at the end of the day I reckon|But y'all|But|BUT|Cal|Când|Cand|Cando|Ce|Cuando|Če|Ða ðe|Ða|Dadas|Dada|Dados|Dado|DaH ghu' bejlu'|dann|Dann|Dano|Dan|Dar|Dat fiind|Data|Date fiind|Date|Dati fiind|Dati|Daţi fiind|Dați fiind|DEN|Dato|De|Den youse gotta|Dengan|Diberi|Diyelim ki|Donada|Donat|Donitaĵo|Do|Dun|Duota|Ðurh|Eeldades|Ef|Eğer ki|Entao|Então|Entón|E|En|Entonces|Epi|És|Etant donnée|Etant donné|Et|Étant données|Étant donnée|Étant donné|Etant données|Etant donnés|Étant donnés|Fakat|Gangway!|Gdy|Gegeben seien|Gegeben sei|Gegeven|Gegewe|ghu' noblu'|Gitt|Given y'all|Given|Givet|Givun|Ha|Cho|I CAN HAZ|In|Ir|It's just unbelievable|I|Ja|Jeśli|Jeżeli|Kad|Kada|Kadar|Kai|Kaj|Když|Keď|Kemudian|Ketika|Khi|Kiedy|Ko|Kuid|Kui|Kun|Lan|latlh|Le sa a|Let go and haul|Le|Lè sa a|Lè|Logo|Lorsqu'<|Lorsque|mä|Maar|Mais|Mając|Ma|Majd|Maka|Manawa|Mas|Men|Menawa|Mutta|Nalika|Nalikaning|Nanging|Når|När|Nato|Nhưng|Niin|Njuk|O zaman|Och|Og|Oletetaan|Ond|Onda|Oraz|Pak|Pero|Però|Podano|Pokiaľ|Pokud|Potem|Potom|Privzeto|Pryd|Quan|Quand|Quando|qaSDI'|Så|Sed|Se|Siis|Sipoze ke|Sipoze Ke|Sipoze|Si|Şi|Și|Soit|Stel|Tada|Tad|Takrat|Tak|Tapi|Ter|Tetapi|Tha the|Tha|Then y'all|Then|Thì|Thurh|Toda|Too right|Un|Und|ugeholl|Và|vaj|Vendar|Ve|wann|Wanneer|WEN|Wenn|When y'all|When|Wtedy|Wun|Y'know|Yeah nah|Yna|Youse know like when|Youse know when youse got|Y|Za predpokladu|Za předpokladu|Zadan|Zadani|Zadano|Zadate|Zadato|Zakładając|Zaradi|Zatati|Þa þe|Þa|Þá|Þegar|Þurh|Αλλά|Δεδομένου|Και|Όταν|Τότε|А також|Агар|Але|Али|Аммо|А|Әгәр|Әйтик|Әмма|Бирок|Ва|Вә|Дадено|Дано|Допустим|Если|Задате|Задати|Задато|И|І|К тому же|Када|Кад|Когато|Когда|Коли|Ләкин|Лекин|Нәтиҗәдә|Нехай|Но|Онда|Припустимо, що|Припустимо|Пусть|Также|Та|Тогда|Тоді|То|Унда|Һәм|Якщо|אבל|אזי|אז|בהינתן|וגם|כאשר|آنگاه|اذاً|اگر|اما|اور|با فرض|بالفرض|بفرض|پھر|تب|ثم|جب|عندما|فرض کیا|لكن|لیکن|متى|هنگامی|و|अगर|और|कदा|किन्तु|चूंकि|जब|तथा|तदा|तब|परन्तु|पर|यदि|ਅਤੇ|ਜਦੋਂ|ਜਿਵੇਂ ਕਿ|ਜੇਕਰ|ਤਦ|ਪਰ|అప్పుడు|ఈ పరిస్థితిలో|కాని|చెప్పబడినది|మరియు|ಆದರೆ|ನಂತರ|ನೀಡಿದ|ಮತ್ತು|ಸ್ಥಿತಿಯನ್ನು|กำหนดให้|ดังนั้น|แต่|เมื่อ|และ|그러면<|그리고<|단<|만약<|만일<|먼저<|조건<|하지만<|かつ<|しかし<|ただし<|ならば<|もし<|並且<|但し<|但是<|假如<|假定<|假設<|假设<|前提<|同时<|同時<|并且<|当<|當<|而且<|那么<|那麼<)(?=[ \t])/m,lookbehind:!0},string:{pattern:/"(?:\\.|[^"\\\r\n])*"|'(?:\\.|[^'\\\r\n])*'/,inside:{outline:{pattern:/<[^>]+>/,alias:"variable"}}},outline:{pattern:/<[^>]+>/,alias:"variable"}}})(t)}return qd}var Gd,Mk;function xB(){if(Mk)return Gd;Mk=1,Gd=e,e.displayName="git",e.aliases=[];function e(t){t.languages.git={comment:/^#.*/m,deleted:/^[-–].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s--?\w+/}},coord:/^@@.*@@$/m,"commit-sha1":/^commit \w{40}$/m}}return Gd}var Hd,Fk;function AB(){if(Fk)return Hd;Fk=1;var e=Yr();Hd=t,t.displayName="glsl",t.aliases=[];function t(n){n.register(e),n.languages.glsl=n.languages.extend("c",{keyword:/\b(?:active|asm|atomic_uint|attribute|[ibdu]?vec[234]|bool|break|buffer|case|cast|centroid|class|coherent|common|const|continue|d?mat[234](?:x[234])?|default|discard|do|double|else|enum|extern|external|false|filter|fixed|flat|float|for|fvec[234]|goto|half|highp|hvec[234]|[iu]?sampler2DMS(?:Array)?|[iu]?sampler2DRect|[iu]?samplerBuffer|[iu]?samplerCube|[iu]?samplerCubeArray|[iu]?sampler[123]D|[iu]?sampler[12]DArray|[iu]?image2DMS(?:Array)?|[iu]?image2DRect|[iu]?imageBuffer|[iu]?imageCube|[iu]?imageCubeArray|[iu]?image[123]D|[iu]?image[12]DArray|if|in|inline|inout|input|int|interface|invariant|layout|long|lowp|mediump|namespace|noinline|noperspective|out|output|partition|patch|precise|precision|public|readonly|resource|restrict|return|sample|sampler[12]DArrayShadow|sampler[12]DShadow|sampler2DRectShadow|sampler3DRect|samplerCubeArrayShadow|samplerCubeShadow|shared|short|sizeof|smooth|static|struct|subroutine|superp|switch|template|this|true|typedef|uint|uniform|union|unsigned|using|varying|void|volatile|while|writeonly)\b/})}return Hd}var Wd,Pk;function RB(){if(Pk)return Wd;Pk=1,Wd=e,e.displayName="gml",e.aliases=[];function e(t){t.languages.gamemakerlanguage=t.languages.gml=t.languages.extend("clike",{keyword:/\b(?:break|case|continue|default|do|else|enum|exit|for|globalvar|if|repeat|return|switch|until|var|while)\b/,number:/(?:\b0x[\da-f]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ulf]{0,4}/i,operator:/--|\+\+|[-+%/=]=?|!=|\*\*?=?|<[<=>]?|>[=>]?|&&?|\^\^?|\|\|?|~|\b(?:and|at|not|or|with|xor)\b/,constant:/\b(?:GM_build_date|GM_version|action_(?:continue|restart|reverse|stop)|all|gamespeed_(?:fps|microseconds)|global|local|noone|other|pi|pointer_(?:invalid|null)|self|timezone_(?:local|utc)|undefined|ev_(?:create|destroy|step|alarm|keyboard|mouse|collision|other|draw|draw_(?:begin|end|post|pre)|keypress|keyrelease|trigger|(?:left|middle|no|right)_button|(?:left|middle|right)_press|(?:left|middle|right)_release|mouse_(?:enter|leave|wheel_down|wheel_up)|global_(?:left|middle|right)_button|global_(?:left|middle|right)_press|global_(?:left|middle|right)_release|joystick(?:1|2)_(?:button1|button2|button3|button4|button5|button6|button7|button8|down|left|right|up)|outside|boundary|game_start|game_end|room_start|room_end|no_more_lives|animation_end|end_of_path|no_more_health|user\d|gui|gui_begin|gui_end|step_(?:begin|end|normal))|vk_(?:alt|anykey|backspace|control|delete|down|end|enter|escape|home|insert|left|nokey|pagedown|pageup|pause|printscreen|return|right|shift|space|tab|up|f\d|numpad\d|add|decimal|divide|lalt|lcontrol|lshift|multiply|ralt|rcontrol|rshift|subtract)|achievement_(?:filter_(?:all_players|favorites_only|friends_only)|friends_info|info|leaderboard_info|our_info|pic_loaded|show_(?:achievement|bank|friend_picker|leaderboard|profile|purchase_prompt|ui)|type_challenge|type_score_challenge)|asset_(?:font|object|path|room|script|shader|sound|sprite|tiles|timeline|unknown)|audio_(?:3d|falloff_(?:exponent_distance|exponent_distance_clamped|inverse_distance|inverse_distance_clamped|linear_distance|linear_distance_clamped|none)|mono|new_system|old_system|stereo)|bm_(?:add|complex|dest_alpha|dest_color|dest_colour|inv_dest_alpha|inv_dest_color|inv_dest_colour|inv_src_alpha|inv_src_color|inv_src_colour|max|normal|one|src_alpha|src_alpha_sat|src_color|src_colour|subtract|zero)|browser_(?:chrome|firefox|ie|ie_mobile|not_a_browser|opera|safari|safari_mobile|tizen|unknown|windows_store)|buffer_(?:bool|f16|f32|f64|fast|fixed|generalerror|grow|invalidtype|network|outofbounds|outofspace|s16|s32|s8|seek_end|seek_relative|seek_start|string|text|u16|u32|u64|u8|vbuffer|wrap)|c_(?:aqua|black|blue|dkgray|fuchsia|gray|green|lime|ltgray|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow)|cmpfunc_(?:always|equal|greater|greaterequal|less|lessequal|never|notequal)|cr_(?:appstart|arrow|beam|cross|default|drag|handpoint|hourglass|none|size_all|size_nesw|size_ns|size_nwse|size_we|uparrow)|cull_(?:clockwise|counterclockwise|noculling)|device_(?:emulator|tablet)|device_ios_(?:ipad|ipad_retina|iphone|iphone5|iphone6|iphone6plus|iphone_retina|unknown)|display_(?:landscape|landscape_flipped|portrait|portrait_flipped)|dll_(?:cdecl|cdel|stdcall)|ds_type_(?:grid|list|map|priority|queue|stack)|ef_(?:cloud|ellipse|explosion|firework|flare|rain|ring|smoke|smokeup|snow|spark|star)|fa_(?:archive|bottom|center|directory|hidden|left|middle|readonly|right|sysfile|top|volumeid)|fb_login_(?:default|fallback_to_webview|forcing_safari|forcing_webview|no_fallback_to_webview|use_system_account)|iap_(?:available|canceled|ev_consume|ev_product|ev_purchase|ev_restore|ev_storeload|failed|purchased|refunded|status_available|status_loading|status_processing|status_restoring|status_unavailable|status_uninitialised|storeload_failed|storeload_ok|unavailable)|leaderboard_type_(?:number|time_mins_secs)|lighttype_(?:dir|point)|matrix_(?:projection|view|world)|mb_(?:any|left|middle|none|right)|network_(?:config_(?:connect_timeout|disable_reliable_udp|enable_reliable_udp|use_non_blocking_socket)|socket_(?:bluetooth|tcp|udp)|type_(?:connect|data|disconnect|non_blocking_connect))|of_challenge_(?:lose|tie|win)|os_(?:android|ios|linux|macosx|ps3|ps4|psvita|unknown|uwp|win32|win8native|windows|winphone|xboxone)|phy_debug_render_(?:aabb|collision_pairs|coms|core_shapes|joints|obb|shapes)|phy_joint_(?:anchor_1_x|anchor_1_y|anchor_2_x|anchor_2_y|angle|angle_limits|damping_ratio|frequency|length_1|length_2|lower_angle_limit|max_force|max_length|max_motor_force|max_motor_torque|max_torque|motor_force|motor_speed|motor_torque|reaction_force_x|reaction_force_y|reaction_torque|speed|translation|upper_angle_limit)|phy_particle_data_flag_(?:category|color|colour|position|typeflags|velocity)|phy_particle_flag_(?:colormixing|colourmixing|elastic|powder|spring|tensile|viscous|wall|water|zombie)|phy_particle_group_flag_(?:rigid|solid)|pr_(?:linelist|linestrip|pointlist|trianglefan|trianglelist|trianglestrip)|ps_(?:distr|shape)_(?:diamond|ellipse|gaussian|invgaussian|line|linear|rectangle)|pt_shape_(?:circle|cloud|disk|explosion|flare|line|pixel|ring|smoke|snow|spark|sphere|square|star)|ty_(?:real|string)|gp_(?:face\d|axislh|axislv|axisrh|axisrv|padd|padl|padr|padu|select|shoulderl|shoulderlb|shoulderr|shoulderrb|start|stickl|stickr)|lb_disp_(?:none|numeric|time_ms|time_sec)|lb_sort_(?:ascending|descending|none)|ov_(?:achievements|community|friends|gamegroup|players|settings)|ugc_(?:filetype_(?:community|microtrans)|list_(?:Favorited|Followed|Published|Subscribed|UsedOrPlayed|VotedDown|VotedOn|VotedUp|WillVoteLater)|match_(?:AllGuides|Artwork|Collections|ControllerBindings|IntegratedGuides|Items|Items_Mtx|Items_ReadyToUse|Screenshots|UsableInGame|Videos|WebGuides)|query_(?:AcceptedForGameRankedByAcceptanceDate|CreatedByFriendsRankedByPublicationDate|FavoritedByFriendsRankedByPublicationDate|NotYetRated)|query_RankedBy(?:NumTimesReported|PublicationDate|TextSearch|TotalVotesAsc|Trend|Vote|VotesUp)|result_success|sortorder_CreationOrder(?:Asc|Desc)|sortorder_(?:ForModeration|LastUpdatedDesc|SubscriptionDateDesc|TitleAsc|VoteScoreDesc)|visibility_(?:friends_only|private|public))|vertex_usage_(?:binormal|blendindices|blendweight|color|colour|depth|fog|normal|position|psize|sample|tangent|texcoord|textcoord)|vertex_type_(?:float\d|color|colour|ubyte4)|input_type|layerelementtype_(?:background|instance|oldtilemap|particlesystem|sprite|tile|tilemap|undefined)|se_(?:chorus|compressor|echo|equalizer|flanger|gargle|none|reverb)|text_type|tile_(?:flip|index_mask|mirror|rotate)|(?:obj|rm|scr|spr)\w+)\b/,variable:/\b(?:alarm|application_surface|async_load|background_(?:alpha|blend|color|colour|foreground|height|hspeed|htiled|index|showcolor|showcolour|visible|vspeed|vtiled|width|x|xscale|y|yscale)|bbox_(?:bottom|left|right|top)|browser_(?:height|width)|caption_(?:health|lives|score)|current_(?:day|hour|minute|month|second|time|weekday|year)|cursor_sprite|debug_mode|delta_time|direction|display_aa|error_(?:last|occurred)|event_(?:action|number|object|type)|fps|fps_real|friction|game_(?:display|project|save)_(?:id|name)|gamemaker_(?:pro|registered|version)|gravity|gravity_direction|(?:h|v)speed|health|iap_data|id|image_(?:alpha|angle|blend|depth|index|number|speed|xscale|yscale)|instance_(?:count|id)|keyboard_(?:key|lastchar|lastkey|string)|layer|lives|mask_index|mouse_(?:button|lastbutton|x|y)|object_index|os_(?:browser|device|type|version)|path_(?:endaction|index|orientation|position|positionprevious|scale|speed)|persistent|phy_(?:rotation|(?:col_normal|collision|com|linear_velocity|position|speed)_(?:x|y)|angular_(?:damping|velocity)|position_(?:x|y)previous|speed|linear_damping|bullet|fixed_rotation|active|mass|inertia|dynamic|kinematic|sleeping|collision_points)|pointer_(?:invalid|null)|room|room_(?:caption|first|height|last|persistent|speed|width)|score|secure_mode|show_(?:health|lives|score)|solid|speed|sprite_(?:height|index|width|xoffset|yoffset)|temp_directory|timeline_(?:index|loop|position|running|speed)|transition_(?:color|kind|steps)|undefined|view_(?:angle|current|enabled|(?:h|v)(?:border|speed)|(?:h|w|x|y)port|(?:h|w|x|y)view|object|surface_id|visible)|visible|webgl_enabled|working_directory|(?:x|y)(?:previous|start)|x|y|argument(?:_relitive|_count|\d)|argument|global|local|other|self)\b/})}return Wd}var Vd,Uk;function NB(){if(Uk)return Vd;Uk=1,Vd=e,e.displayName="gn",e.aliases=["gni"];function e(t){t.languages.gn={comment:{pattern:/#.*/,greedy:!0},"string-literal":{pattern:/(^|[^\\"])"(?:[^\r\n"\\]|\\.)*"/,lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$(?:\{[\s\S]*?\}|[a-zA-Z_]\w*|0x[a-fA-F0-9]{2})/,lookbehind:!0,inside:{number:/^\$0x[\s\S]{2}$/,variable:/^\$\w+$/,"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},expression:{pattern:/[\s\S]+/,inside:null}}},string:/[\s\S]+/}},keyword:/\b(?:else|if)\b/,boolean:/\b(?:false|true)\b/,"builtin-function":{pattern:/\b(?:assert|defined|foreach|import|pool|print|template|tool|toolchain)(?=\s*\()/i,alias:"keyword"},function:/\b[a-z_]\w*(?=\s*\()/i,constant:/\b(?:current_cpu|current_os|current_toolchain|default_toolchain|host_cpu|host_os|root_build_dir|root_gen_dir|root_out_dir|target_cpu|target_gen_dir|target_os|target_out_dir)\b/,number:/-?\b\d+\b/,operator:/[-+!=<>]=?|&&|\|\|/,punctuation:/[(){}[\],.]/},t.languages.gn["string-literal"].inside.interpolation.inside.expression.inside=t.languages.gn,t.languages.gni=t.languages.gn}return Vd}var Yd,Bk;function CB(){if(Bk)return Yd;Bk=1,Yd=e,e.displayName="goModule",e.aliases=[];function e(t){t.languages["go-mod"]=t.languages["go-module"]={comment:{pattern:/\/\/.*/,greedy:!0},version:{pattern:/(^|[\s()[\],])v\d+\.\d+\.\d+(?:[+-][-+.\w]*)?(?![^\s()[\],])/,lookbehind:!0,alias:"number"},"go-version":{pattern:/((?:^|\s)go\s+)\d+(?:\.\d+){1,2}/,lookbehind:!0,alias:"number"},keyword:{pattern:/^([ \t]*)(?:exclude|go|module|replace|require|retract)\b/m,lookbehind:!0},operator:/=>/,punctuation:/[()[\],]/}}return Yd}var Kd,jk;function IB(){if(jk)return Kd;jk=1,Kd=e,e.displayName="go",e.aliases=[];function e(t){t.languages.go=t.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),t.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete t.languages.go["class-name"]}return Kd}var Zd,zk;function OB(){if(zk)return Zd;zk=1,Zd=e,e.displayName="graphql",e.aliases=[];function e(t){t.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:t.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},t.hooks.add("after-tokenize",function(i){if(i.language!=="graphql")return;var o=i.tokens.filter(function(N){return typeof N!="string"&&N.type!=="comment"&&N.type!=="scalar"}),l=0;function u(N){return o[l+N]}function c(N,R){R=R||0;for(var A=0;A0)){var v=p(/^\{$/,/^\}$/);if(v===-1)continue;for(var k=l;k=0&&f(T,"variable-input")}}}}})}return Zd}var Xd,$k;function LB(){if($k)return Xd;$k=1,Xd=e,e.displayName="groovy",e.aliases=[];function e(t){t.languages.groovy=t.languages.extend("clike",{string:[{pattern:/("""|''')(?:[^\\]|\\[\s\S])*?\1|\$\/(?:[^/$]|\$(?:[/$]|(?![/$]))|\/(?!\$))*\/\$/,greedy:!0},{pattern:/(["'/])(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0}],keyword:/\b(?:abstract|as|assert|boolean|break|byte|case|catch|char|class|const|continue|def|default|do|double|else|enum|extends|final|finally|float|for|goto|if|implements|import|in|instanceof|int|interface|long|native|new|package|private|protected|public|return|short|static|strictfp|super|switch|synchronized|this|throw|throws|trait|transient|try|void|volatile|while)\b/,number:/\b(?:0b[01_]+|0x[\da-f_]+(?:\.[\da-f_p\-]+)?|[\d_]+(?:\.[\d_]+)?(?:e[+-]?\d+)?)[glidf]?\b/i,operator:{pattern:/(^|[^.])(?:~|==?~?|\?[.:]?|\*(?:[.=]|\*=?)?|\.[@&]|\.\.<|\.\.(?!\.)|-[-=>]?|\+[+=]?|!=?|<(?:<=?|=>?)?|>(?:>>?=?|=)?|&[&=]?|\|[|=]?|\/=?|\^=?|%=?)/,lookbehind:!0},punctuation:/\.+|[{}[\];(),:$]/}),t.languages.insertBefore("groovy","string",{shebang:{pattern:/#!.+/,alias:"comment"}}),t.languages.insertBefore("groovy","punctuation",{"spock-block":/\b(?:and|cleanup|expect|given|setup|then|when|where):/}),t.languages.insertBefore("groovy","function",{annotation:{pattern:/(^|[^.])@\w+/,lookbehind:!0,alias:"punctuation"}}),t.hooks.add("wrap",function(n){if(n.language==="groovy"&&n.type==="string"){var i=n.content.value[0];if(i!="'"){var o=/([^\\])(?:\$(?:\{.*?\}|[\w.]+))/;i==="$"&&(o=/([^\$])(?:\$(?:\{.*?\}|[\w.]+))/),n.content.value=n.content.value.replace(/</g,"<").replace(/&/g,"&"),n.content=t.highlight(n.content.value,{expression:{pattern:o,lookbehind:!0,inside:t.languages.groovy}}),n.classes.push(i==="/"?"regex":"gstring")}}})}return Xd}var Qd,qk;function DB(){if(qk)return Qd;qk=1;var e=_s();Qd=t,t.displayName="haml",t.aliases=[];function t(n){n.register(e),(function(i){i.languages.haml={"multiline-comment":{pattern:/((?:^|\r?\n|\r)([\t ]*))(?:\/|-#).*(?:(?:\r?\n|\r)\2[\t ].+)*/,lookbehind:!0,alias:"comment"},"multiline-code":[{pattern:/((?:^|\r?\n|\r)([\t ]*)(?:[~-]|[&!]?=)).*,[\t ]*(?:(?:\r?\n|\r)\2[\t ].*,[\t ]*)*(?:(?:\r?\n|\r)\2[\t ].+)/,lookbehind:!0,inside:i.languages.ruby},{pattern:/((?:^|\r?\n|\r)([\t ]*)(?:[~-]|[&!]?=)).*\|[\t ]*(?:(?:\r?\n|\r)\2[\t ].*\|[\t ]*)*/,lookbehind:!0,inside:i.languages.ruby}],filter:{pattern:/((?:^|\r?\n|\r)([\t ]*)):[\w-]+(?:(?:\r?\n|\r)(?:\2[\t ].+|\s*?(?=\r?\n|\r)))+/,lookbehind:!0,inside:{"filter-name":{pattern:/^:[\w-]+/,alias:"symbol"}}},markup:{pattern:/((?:^|\r?\n|\r)[\t ]*)<.+/,lookbehind:!0,inside:i.languages.markup},doctype:{pattern:/((?:^|\r?\n|\r)[\t ]*)!!!(?: .+)?/,lookbehind:!0},tag:{pattern:/((?:^|\r?\n|\r)[\t ]*)[%.#][\w\-#.]*[\w\-](?:\([^)]+\)|\{(?:\{[^}]+\}|[^{}])+\}|\[[^\]]+\])*[\/<>]*/,lookbehind:!0,inside:{attributes:[{pattern:/(^|[^#])\{(?:\{[^}]+\}|[^{}])+\}/,lookbehind:!0,inside:i.languages.ruby},{pattern:/\([^)]+\)/,inside:{"attr-value":{pattern:/(=\s*)(?:"(?:\\.|[^\\"\r\n])*"|[^)\s]+)/,lookbehind:!0},"attr-name":/[\w:-]+(?=\s*!?=|\s*[,)])/,punctuation:/[=(),]/}},{pattern:/\[[^\]]+\]/,inside:i.languages.ruby}],punctuation:/[<>]/}},code:{pattern:/((?:^|\r?\n|\r)[\t ]*(?:[~-]|[&!]?=)).+/,lookbehind:!0,inside:i.languages.ruby},interpolation:{pattern:/#\{[^}]+\}/,inside:{delimiter:{pattern:/^#\{|\}$/,alias:"punctuation"},ruby:{pattern:/[\s\S]+/,inside:i.languages.ruby}}},punctuation:{pattern:/((?:^|\r?\n|\r)[\t ]*)[~=\-&!]+/,lookbehind:!0}};for(var o="((?:^|\\r?\\n|\\r)([\\t ]*)):{{filter_name}}(?:(?:\\r?\\n|\\r)(?:\\2[\\t ].+|\\s*?(?=\\r?\\n|\\r)))+",l=["css",{filter:"coffee",language:"coffeescript"},"erb","javascript","less","markdown","ruby","scss","textile"],u={},c=0,p=l.length;c@\[\\\]^`{|}~]/,variable:/[^!"#%&'()*+,\/;<=>@\[\\\]^`{|}~\s]+/},i.hooks.add("before-tokenize",function(o){var l=/\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g;i.languages["markup-templating"].buildPlaceholders(o,"handlebars",l)}),i.hooks.add("after-tokenize",function(o){i.languages["markup-templating"].tokenizePlaceholders(o,"handlebars")}),i.languages.hbs=i.languages.handlebars})(n)}return Jd}var ep,Hk;function gh(){if(Hk)return ep;Hk=1,ep=e,e.displayName="haskell",e.aliases=["hs"];function e(t){t.languages.haskell={comment:{pattern:/(^|[^-!#$%*+=?&@|~.:<>^\\\/])(?:--(?:(?=.)[^-!#$%*+=?&@|~.:<>^\\\/].*|$)|\{-[\s\S]*?-\})/m,lookbehind:!0},char:{pattern:/'(?:[^\\']|\\(?:[abfnrtv\\"'&]|\^[A-Z@[\]^_]|ACK|BEL|BS|CAN|CR|DC1|DC2|DC3|DC4|DEL|DLE|EM|ENQ|EOT|ESC|ETB|ETX|FF|FS|GS|HT|LF|NAK|NUL|RS|SI|SO|SOH|SP|STX|SUB|SYN|US|VT|\d+|o[0-7]+|x[0-9a-fA-F]+))'/,alias:"string"},string:{pattern:/"(?:[^\\"]|\\(?:\S|\s+\\))*"/,greedy:!0},keyword:/\b(?:case|class|data|deriving|do|else|if|in|infixl|infixr|instance|let|module|newtype|of|primitive|then|type|where)\b/,"import-statement":{pattern:/(^[\t ]*)import\s+(?:qualified\s+)?(?:[A-Z][\w']*)(?:\.[A-Z][\w']*)*(?:\s+as\s+(?:[A-Z][\w']*)(?:\.[A-Z][\w']*)*)?(?:\s+hiding\b)?/m,lookbehind:!0,inside:{keyword:/\b(?:as|hiding|import|qualified)\b/,punctuation:/\./}},builtin:/\b(?:abs|acos|acosh|all|and|any|appendFile|approxRational|asTypeOf|asin|asinh|atan|atan2|atanh|basicIORun|break|catch|ceiling|chr|compare|concat|concatMap|const|cos|cosh|curry|cycle|decodeFloat|denominator|digitToInt|div|divMod|drop|dropWhile|either|elem|encodeFloat|enumFrom|enumFromThen|enumFromThenTo|enumFromTo|error|even|exp|exponent|fail|filter|flip|floatDigits|floatRadix|floatRange|floor|fmap|foldl|foldl1|foldr|foldr1|fromDouble|fromEnum|fromInt|fromInteger|fromIntegral|fromRational|fst|gcd|getChar|getContents|getLine|group|head|id|inRange|index|init|intToDigit|interact|ioError|isAlpha|isAlphaNum|isAscii|isControl|isDenormalized|isDigit|isHexDigit|isIEEE|isInfinite|isLower|isNaN|isNegativeZero|isOctDigit|isPrint|isSpace|isUpper|iterate|last|lcm|length|lex|lexDigits|lexLitChar|lines|log|logBase|lookup|map|mapM|mapM_|max|maxBound|maximum|maybe|min|minBound|minimum|mod|negate|not|notElem|null|numerator|odd|or|ord|otherwise|pack|pi|pred|primExitWith|print|product|properFraction|putChar|putStr|putStrLn|quot|quotRem|range|rangeSize|read|readDec|readFile|readFloat|readHex|readIO|readInt|readList|readLitChar|readLn|readOct|readParen|readSigned|reads|readsPrec|realToFrac|recip|rem|repeat|replicate|return|reverse|round|scaleFloat|scanl|scanl1|scanr|scanr1|seq|sequence|sequence_|show|showChar|showInt|showList|showLitChar|showParen|showSigned|showString|shows|showsPrec|significand|signum|sin|sinh|snd|sort|span|splitAt|sqrt|subtract|succ|sum|tail|take|takeWhile|tan|tanh|threadToIOResult|toEnum|toInt|toInteger|toLower|toRational|toUpper|truncate|uncurry|undefined|unlines|until|unwords|unzip|unzip3|userError|words|writeFile|zip|zip3|zipWith|zipWith3)\b/,number:/\b(?:\d+(?:\.\d+)?(?:e[+-]?\d+)?|0o[0-7]+|0x[0-9a-f]+)\b/i,operator:[{pattern:/`(?:[A-Z][\w']*\.)*[_a-z][\w']*`/,greedy:!0},{pattern:/(\s)\.(?=\s)/,lookbehind:!0},/[-!#$%*+=?&@|~:<>^\\\/][-!#$%*+=?&@|~.:<>^\\\/]*|\.[-!#$%*+=?&@|~.:<>^\\\/]+/],hvariable:{pattern:/\b(?:[A-Z][\w']*\.)*[_a-z][\w']*/,inside:{punctuation:/\./}},constant:{pattern:/\b(?:[A-Z][\w']*\.)*[A-Z][\w']*/,inside:{punctuation:/\./}},punctuation:/[{}[\];(),.:]/},t.languages.hs=t.languages.haskell}return ep}var tp,Wk;function FB(){if(Wk)return tp;Wk=1,tp=e,e.displayName="haxe",e.aliases=[];function e(t){t.languages.haxe=t.languages.extend("clike",{string:{pattern:/"(?:[^"\\]|\\[\s\S])*"/,greedy:!0},"class-name":[{pattern:/(\b(?:abstract|class|enum|extends|implements|interface|new|typedef)\s+)[A-Z_]\w*/,lookbehind:!0},/\b[A-Z]\w*/],keyword:/\bthis\b|\b(?:abstract|as|break|case|cast|catch|class|continue|default|do|dynamic|else|enum|extends|extern|final|for|from|function|if|implements|import|in|inline|interface|macro|new|null|operator|overload|override|package|private|public|return|static|super|switch|throw|to|try|typedef|untyped|using|var|while)(?!\.)\b/,function:{pattern:/\b[a-z_]\w*(?=\s*(?:<[^<>]*>\s*)?\()/i,greedy:!0},operator:/\.{3}|\+\+|--|&&|\|\||->|=>|(?:<{1,3}|[-+*/%!=&|^])=?|[?:~]/}),t.languages.insertBefore("haxe","string",{"string-interpolation":{pattern:/'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{interpolation:{pattern:/(^|[^\\])\$(?:\w+|\{[^{}]+\})/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{?|\}$/,alias:"punctuation"},expression:{pattern:/[\s\S]+/,inside:t.languages.haxe}}},string:/[\s\S]+/}}}),t.languages.insertBefore("haxe","class-name",{regex:{pattern:/~\/(?:[^\/\\\r\n]|\\.)+\/[a-z]*/,greedy:!0,inside:{"regex-flags":/\b[a-z]+$/,"regex-source":{pattern:/^(~\/)[\s\S]+(?=\/$)/,lookbehind:!0,alias:"language-regex",inside:t.languages.regex},"regex-delimiter":/^~\/|\/$/}}}),t.languages.insertBefore("haxe","keyword",{preprocessor:{pattern:/#(?:else|elseif|end|if)\b.*/,alias:"property"},metadata:{pattern:/@:?[\w.]+/,alias:"symbol"},reification:{pattern:/\$(?:\w+|(?=\{))/,alias:"important"}})}return tp}var np,Vk;function PB(){if(Vk)return np;Vk=1,np=e,e.displayName="hcl",e.aliases=[];function e(t){t.languages.hcl={comment:/(?:\/\/|#).*|\/\*[\s\S]*?(?:\*\/|$)/,heredoc:{pattern:/<<-?(\w+\b)[\s\S]*?^[ \t]*\1/m,greedy:!0,alias:"string"},keyword:[{pattern:/(?:data|resource)\s+(?:"(?:\\[\s\S]|[^\\"])*")(?=\s+"[\w-]+"\s+\{)/i,inside:{type:{pattern:/(resource|data|\s+)(?:"(?:\\[\s\S]|[^\\"])*")/i,lookbehind:!0,alias:"variable"}}},{pattern:/(?:backend|module|output|provider|provisioner|variable)\s+(?:[\w-]+|"(?:\\[\s\S]|[^\\"])*")\s+(?=\{)/i,inside:{type:{pattern:/(backend|module|output|provider|provisioner|variable)\s+(?:[\w-]+|"(?:\\[\s\S]|[^\\"])*")\s+/i,lookbehind:!0,alias:"variable"}}},/[\w-]+(?=\s+\{)/],property:[/[-\w\.]+(?=\s*=(?!=))/,/"(?:\\[\s\S]|[^\\"])+"(?=\s*[:=])/],string:{pattern:/"(?:[^\\$"]|\\[\s\S]|\$(?:(?=")|\$+(?!\$)|[^"${])|\$\{(?:[^{}"]|"(?:[^\\"]|\\[\s\S])*")*\})*"/,greedy:!0,inside:{interpolation:{pattern:/(^|[^$])\$\{(?:[^{}"]|"(?:[^\\"]|\\[\s\S])*")*\}/,lookbehind:!0,inside:{type:{pattern:/(\b(?:count|data|local|module|path|self|terraform|var)\b\.)[\w\*]+/i,lookbehind:!0,alias:"variable"},keyword:/\b(?:count|data|local|module|path|self|terraform|var)\b/i,function:/\w+(?=\()/,string:{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0},number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?(?:e[+-]?\d+)?/i,punctuation:/[!\$#%&'()*+,.\/;<=>@\[\\\]^`{|}~?:]/}}}},number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?(?:e[+-]?\d+)?/i,boolean:/\b(?:false|true)\b/i,punctuation:/[=\[\]{}]/}}return np}var rp,Yk;function UB(){if(Yk)return rp;Yk=1;var e=Yr();rp=t,t.displayName="hlsl",t.aliases=[];function t(n){n.register(e),n.languages.hlsl=n.languages.extend("c",{"class-name":[n.languages.c["class-name"],/\b(?:AppendStructuredBuffer|BlendState|Buffer|ByteAddressBuffer|CompileShader|ComputeShader|ConsumeStructuredBuffer|DepthStencilState|DepthStencilView|DomainShader|GeometryShader|Hullshader|InputPatch|LineStream|OutputPatch|PixelShader|PointStream|RWBuffer|RWByteAddressBuffer|RWStructuredBuffer|RWTexture(?:1D|1DArray|2D|2DArray|3D)|RasterizerState|RenderTargetView|SamplerComparisonState|SamplerState|StructuredBuffer|Texture(?:1D|1DArray|2D|2DArray|2DMS|2DMSArray|3D|Cube|CubeArray)|TriangleStream|VertexShader)\b/],keyword:[/\b(?:asm|asm_fragment|auto|break|case|catch|cbuffer|centroid|char|class|column_major|compile|compile_fragment|const|const_cast|continue|default|delete|discard|do|dynamic_cast|else|enum|explicit|export|extern|for|friend|fxgroup|goto|groupshared|if|in|inline|inout|interface|line|lineadj|linear|long|matrix|mutable|namespace|new|nointerpolation|noperspective|operator|out|packoffset|pass|pixelfragment|point|precise|private|protected|public|register|reinterpret_cast|return|row_major|sample|sampler|shared|short|signed|sizeof|snorm|stateblock|stateblock_state|static|static_cast|string|struct|switch|tbuffer|technique|technique10|technique11|template|texture|this|throw|triangle|triangleadj|try|typedef|typename|uniform|union|unorm|unsigned|using|vector|vertexfragment|virtual|void|volatile|while)\b/,/\b(?:bool|double|dword|float|half|int|min(?:10float|12int|16(?:float|int|uint))|uint)(?:[1-4](?:x[1-4])?)?\b/],number:/(?:(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[eE][+-]?\d+)?|\b0x[\da-fA-F]+)[fFhHlLuU]?\b/,boolean:/\b(?:false|true)\b/})}return rp}var ap,Kk;function BB(){if(Kk)return ap;Kk=1,ap=e,e.displayName="hoon",e.aliases=[];function e(t){t.languages.hoon={comment:{pattern:/::.*/,greedy:!0},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},constant:/%(?:\.[ny]|[\w-]+)/,"class-name":/@(?:[a-z0-9-]*[a-z0-9])?|\*/i,function:/(?:\+[-+] {2})?(?:[a-z](?:[a-z0-9-]*[a-z0-9])?)/,keyword:/\.[\^\+\*=\?]|![><:\.=\?!]|=[>|:,\.\-\^<+;/~\*\?]|\?[>|:\.\-\^<\+&~=@!]|\|[\$_%:\.\-\^~\*=@\?]|\+[|\$\+\*]|:[_\-\^\+~\*]|%[_:\.\-\^\+~\*=]|\^[|:\.\-\+&~\*=\?]|\$[|_%:<>\-\^&~@=\?]|;[:<\+;\/~\*=]|~[>|\$_%<\+\/&=\?!]|--|==/}}return ap}var ip,Zk;function jB(){if(Zk)return ip;Zk=1,ip=e,e.displayName="hpkp",e.aliases=[];function e(t){t.languages.hpkp={directive:{pattern:/\b(?:includeSubDomains|max-age|pin-sha256|preload|report-to|report-uri|strict)(?=[\s;=]|$)/i,alias:"property"},operator:/=/,punctuation:/;/}}return ip}var op,Xk;function zB(){if(Xk)return op;Xk=1,op=e,e.displayName="hsts",e.aliases=[];function e(t){t.languages.hsts={directive:{pattern:/\b(?:includeSubDomains|max-age|preload)(?=[\s;=]|$)/i,alias:"property"},operator:/=/,punctuation:/;/}}return op}var sp,Qk;function $B(){if(Qk)return sp;Qk=1,sp=e,e.displayName="http",e.aliases=[];function e(t){(function(n){function i(h){return RegExp("(^(?:"+h+"):[ ]*(?![ ]))[^]+","i")}n.languages.http={"request-line":{pattern:/^(?:CONNECT|DELETE|GET|HEAD|OPTIONS|PATCH|POST|PRI|PUT|SEARCH|TRACE)\s(?:https?:\/\/|\/)\S*\sHTTP\/[\d.]+/m,inside:{method:{pattern:/^[A-Z]+\b/,alias:"property"},"request-target":{pattern:/^(\s)(?:https?:\/\/|\/)\S*(?=\s)/,lookbehind:!0,alias:"url",inside:n.languages.uri},"http-version":{pattern:/^(\s)HTTP\/[\d.]+/,lookbehind:!0,alias:"property"}}},"response-status":{pattern:/^HTTP\/[\d.]+ \d+ .+/m,inside:{"http-version":{pattern:/^HTTP\/[\d.]+/,alias:"property"},"status-code":{pattern:/^(\s)\d+(?=\s)/,lookbehind:!0,alias:"number"},"reason-phrase":{pattern:/^(\s).+/,lookbehind:!0,alias:"string"}}},header:{pattern:/^[\w-]+:.+(?:(?:\r\n?|\n)[ \t].+)*/m,inside:{"header-value":[{pattern:i(/Content-Security-Policy/.source),lookbehind:!0,alias:["csp","languages-csp"],inside:n.languages.csp},{pattern:i(/Public-Key-Pins(?:-Report-Only)?/.source),lookbehind:!0,alias:["hpkp","languages-hpkp"],inside:n.languages.hpkp},{pattern:i(/Strict-Transport-Security/.source),lookbehind:!0,alias:["hsts","languages-hsts"],inside:n.languages.hsts},{pattern:i(/[^:]+/.source),lookbehind:!0}],"header-name":{pattern:/^[^:]+/,alias:"keyword"},punctuation:/^:/}}};var o=n.languages,l={"application/javascript":o.javascript,"application/json":o.json||o.javascript,"application/xml":o.xml,"text/xml":o.xml,"text/html":o.html,"text/css":o.css,"text/plain":o.plain},u={"application/json":!0,"application/xml":!0};function c(h){var S=h.replace(/^[a-z]+\//,""),E="\\w+/(?:[\\w.-]+\\+)+"+S+"(?![+\\w.-])";return"(?:"+h+"|"+E+")"}var p;for(var f in l)if(l[f]){p=p||{};var m=u[f]?c(f):f;p[f.replace(/\//g,"-")]={pattern:RegExp("("+/content-type:\s*/.source+m+/(?:(?:\r\n?|\n)[\w-].*)*(?:\r(?:\n|(?!\n))|\n)/.source+")"+/[^ \t\w-][\s\S]*/.source,"i"),lookbehind:!0,inside:l[f]}}p&&n.languages.insertBefore("http","header",p)})(t)}return sp}var lp,Jk;function qB(){if(Jk)return lp;Jk=1,lp=e,e.displayName="ichigojam",e.aliases=[];function e(t){t.languages.ichigojam={comment:/(?:\B'|REM)(?:[^\n\r]*)/i,string:{pattern:/"(?:""|[!#$%&'()*,\/:;<=>?^\w +\-.])*"/,greedy:!0},number:/\B#[0-9A-F]+|\B`[01]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:E[+-]?\d+)?/i,keyword:/\b(?:BEEP|BPS|CASE|CLEAR|CLK|CLO|CLP|CLS|CLT|CLV|CONT|COPY|ELSE|END|FILE|FILES|FOR|GOSUB|GOTO|GSB|IF|INPUT|KBD|LED|LET|LIST|LOAD|LOCATE|LRUN|NEW|NEXT|OUT|PLAY|POKE|PRINT|PWM|REM|RENUM|RESET|RETURN|RIGHT|RTN|RUN|SAVE|SCROLL|SLEEP|SRND|STEP|STOP|SUB|TEMPO|THEN|TO|UART|VIDEO|WAIT)(?:\$|\b)/i,function:/\b(?:ABS|ANA|ASC|BIN|BTN|DEC|END|FREE|HELP|HEX|I2CR|I2CW|IN|INKEY|LEN|LINE|PEEK|RND|SCR|SOUND|STR|TICK|USR|VER|VPEEK|ZER)(?:\$|\b)/i,label:/(?:\B@\S+)/,operator:/<[=>]?|>=?|\|\||&&|[+\-*\/=|&^~!]|\b(?:AND|NOT|OR)\b/i,punctuation:/[\[,;:()\]]/}}return lp}var up,e_;function GB(){if(e_)return up;e_=1,up=e,e.displayName="icon",e.aliases=[];function e(t){t.languages.icon={comment:/#.*/,string:{pattern:/(["'])(?:(?!\1)[^\\\r\n_]|\\.|_(?!\1)(?:\r\n|[\s\S]))*\1/,greedy:!0},number:/\b(?:\d+r[a-z\d]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?)\b|\.\d+\b/i,"builtin-keyword":{pattern:/&(?:allocated|ascii|clock|collections|cset|current|date|dateline|digits|dump|e|error(?:number|text|value)?|errout|fail|features|file|host|input|lcase|letters|level|line|main|null|output|phi|pi|pos|progname|random|regions|source|storage|subject|time|trace|ucase|version)\b/,alias:"variable"},directive:{pattern:/\$\w+/,alias:"builtin"},keyword:/\b(?:break|by|case|create|default|do|else|end|every|fail|global|if|initial|invocable|link|local|next|not|of|procedure|record|repeat|return|static|suspend|then|to|until|while)\b/,function:/\b(?!\d)\w+(?=\s*[({]|\s*!\s*\[)/,operator:/[+-]:(?!=)|(?:[\/?@^%&]|\+\+?|--?|==?=?|~==?=?|\*\*?|\|\|\|?|<(?:->?|>?=?)(?::=)?|:(?:=:?)?|[!.\\|~]/,punctuation:/[\[\](){},;]/}}return up}var cp,t_;function HB(){if(t_)return cp;t_=1,cp=e,e.displayName="icuMessageFormat",e.aliases=[];function e(t){(function(n){function i(f,m){return m<=0?/[]/.source:f.replace(//g,function(){return i(f,m-1)})}var o=/'[{}:=,](?:[^']|'')*'(?!')/,l={pattern:/''/,greedy:!0,alias:"operator"},u={pattern:o,greedy:!0,inside:{escape:l}},c=i(/\{(?:[^{}']|'(?![{},'])|''||)*\}/.source.replace(//g,function(){return o.source}),8),p={pattern:RegExp(c),inside:{message:{pattern:/^(\{)[\s\S]+(?=\}$)/,lookbehind:!0,inside:null},"message-delimiter":{pattern:/./,alias:"punctuation"}}};n.languages["icu-message-format"]={argument:{pattern:RegExp(c),greedy:!0,inside:{content:{pattern:/^(\{)[\s\S]+(?=\}$)/,lookbehind:!0,inside:{"argument-name":{pattern:/^(\s*)[^{}:=,\s]+/,lookbehind:!0},"choice-style":{pattern:/^(\s*,\s*choice\s*,\s*)\S(?:[\s\S]*\S)?/,lookbehind:!0,inside:{punctuation:/\|/,range:{pattern:/^(\s*)[+-]?(?:\d+(?:\.\d*)?|\u221e)\s*[<#\u2264]/,lookbehind:!0,inside:{operator:/[<#\u2264]/,number:/\S+/}},rest:null}},"plural-style":{pattern:/^(\s*,\s*(?:plural|selectordinal)\s*,\s*)\S(?:[\s\S]*\S)?/,lookbehind:!0,inside:{offset:/^offset:\s*\d+/,"nested-message":p,selector:{pattern:/=\d+|[^{}:=,\s]+/,inside:{keyword:/^(?:few|many|one|other|two|zero)$/}}}},"select-style":{pattern:/^(\s*,\s*select\s*,\s*)\S(?:[\s\S]*\S)?/,lookbehind:!0,inside:{"nested-message":p,selector:{pattern:/[^{}:=,\s]+/,inside:{keyword:/^other$/}}}},keyword:/\b(?:choice|plural|select|selectordinal)\b/,"arg-type":{pattern:/\b(?:date|duration|number|ordinal|spellout|time)\b/,alias:"keyword"},"arg-skeleton":{pattern:/(,\s*)::[^{}:=,\s]+/,lookbehind:!0},"arg-style":{pattern:/(,\s*)(?:currency|full|integer|long|medium|percent|short)(?=\s*$)/,lookbehind:!0},"arg-style-text":{pattern:RegExp(/(^\s*,\s*(?=\S))/.source+i(/(?:[^{}']|'[^']*'|\{(?:)?\})+/.source,8)+"$"),lookbehind:!0,alias:"string"},punctuation:/,/}},"argument-delimiter":{pattern:/./,alias:"operator"}}},escape:l,string:u},p.inside.message.inside=n.languages["icu-message-format"],n.languages["icu-message-format"].argument.inside.content.inside["choice-style"].inside.rest=n.languages["icu-message-format"]})(t)}return cp}var dp,n_;function WB(){if(n_)return dp;n_=1;var e=gh();dp=t,t.displayName="idris",t.aliases=["idr"];function t(n){n.register(e),n.languages.idris=n.languages.extend("haskell",{comment:{pattern:/(?:(?:--|\|\|\|).*$|\{-[\s\S]*?-\})/m},keyword:/\b(?:Type|case|class|codata|constructor|corecord|data|do|dsl|else|export|if|implementation|implicit|import|impossible|in|infix|infixl|infixr|instance|interface|let|module|mutual|namespace|of|parameters|partial|postulate|private|proof|public|quoteGoal|record|rewrite|syntax|then|total|using|where|with)\b/,builtin:void 0}),n.languages.insertBefore("idris","keyword",{"import-statement":{pattern:/(^\s*import\s+)(?:[A-Z][\w']*)(?:\.[A-Z][\w']*)*/m,lookbehind:!0,inside:{punctuation:/\./}}}),n.languages.idr=n.languages.idris}return dp}var pp,r_;function VB(){if(r_)return pp;r_=1,pp=e,e.displayName="iecst",e.aliases=[];function e(t){t.languages.iecst={comment:[{pattern:/(^|[^\\])(?:\/\*[\s\S]*?(?:\*\/|$)|\(\*[\s\S]*?(?:\*\)|$)|\{[\s\S]*?(?:\}|$))/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},keyword:[/\b(?:END_)?(?:PROGRAM|CONFIGURATION|INTERFACE|FUNCTION_BLOCK|FUNCTION|ACTION|TRANSITION|TYPE|STRUCT|(?:INITIAL_)?STEP|NAMESPACE|LIBRARY|CHANNEL|FOLDER|RESOURCE|VAR_(?:ACCESS|CONFIG|EXTERNAL|GLOBAL|INPUT|IN_OUT|OUTPUT|TEMP)|VAR|METHOD|PROPERTY)\b/i,/\b(?:AT|BY|(?:END_)?(?:CASE|FOR|IF|REPEAT|WHILE)|CONSTANT|CONTINUE|DO|ELSE|ELSIF|EXIT|EXTENDS|FROM|GET|GOTO|IMPLEMENTS|JMP|NON_RETAIN|OF|PRIVATE|PROTECTED|PUBLIC|RETAIN|RETURN|SET|TASK|THEN|TO|UNTIL|USING|WITH|__CATCH|__ENDTRY|__FINALLY|__TRY)\b/],"class-name":/\b(?:ANY|ARRAY|BOOL|BYTE|U?(?:D|L|S)?INT|(?:D|L)?WORD|DATE(?:_AND_TIME)?|DT|L?REAL|POINTER|STRING|TIME(?:_OF_DAY)?|TOD)\b/,address:{pattern:/%[IQM][XBWDL][\d.]*|%[IQ][\d.]*/,alias:"symbol"},number:/\b(?:16#[\da-f]+|2#[01_]+|0x[\da-f]+)\b|\b(?:D|DT|T|TOD)#[\d_shmd:]*|\b[A-Z]*#[\d.,_]*|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,boolean:/\b(?:FALSE|NULL|TRUE)\b/,operator:/S?R?:?=>?|&&?|\*\*?|<[=>]?|>=?|[-:^/+#]|\b(?:AND|EQ|EXPT|GE|GT|LE|LT|MOD|NE|NOT|OR|XOR)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,punctuation:/[()[\].,;]/}}return pp}var fp,a_;function YB(){if(a_)return fp;a_=1,fp=e,e.displayName="ignore",e.aliases=["gitignore","hgignore","npmignore"];function e(t){(function(n){n.languages.ignore={comment:/^#.*/m,entry:{pattern:/\S(?:.*(?:(?:\\ )|\S))?/,alias:"string",inside:{operator:/^!|\*\*?|\?/,regex:{pattern:/(^|[^\\])\[[^\[\]]*\]/,lookbehind:!0},punctuation:/\//}}},n.languages.gitignore=n.languages.ignore,n.languages.hgignore=n.languages.ignore,n.languages.npmignore=n.languages.ignore})(t)}return fp}var gp,i_;function KB(){if(i_)return gp;i_=1,gp=e,e.displayName="inform7",e.aliases=[];function e(t){t.languages.inform7={string:{pattern:/"[^"]*"/,inside:{substitution:{pattern:/\[[^\[\]]+\]/,inside:{delimiter:{pattern:/\[|\]/,alias:"punctuation"}}}}},comment:{pattern:/\[[^\[\]]+\]/,greedy:!0},title:{pattern:/^[ \t]*(?:book|chapter|part(?! of)|section|table|volume)\b.+/im,alias:"important"},number:{pattern:/(^|[^-])(?:\b\d+(?:\.\d+)?(?:\^\d+)?(?:(?!\d)\w+)?|\b(?:eight|eleven|five|four|nine|one|seven|six|ten|three|twelve|two))\b(?!-)/i,lookbehind:!0},verb:{pattern:/(^|[^-])\b(?:answering|applying to|are|asking|attacking|be(?:ing)?|burning|buying|called|carries|carry(?! out)|carrying|climbing|closing|conceal(?:ing|s)?|consulting|contain(?:ing|s)?|cutting|drinking|dropping|eating|enclos(?:es?|ing)|entering|examining|exiting|getting|giving|going|ha(?:s|ve|ving)|hold(?:ing|s)?|impl(?:ies|y)|incorporat(?:es?|ing)|inserting|is|jumping|kissing|listening|locking|looking|mean(?:ing|s)?|opening|provid(?:es?|ing)|pulling|pushing|putting|relat(?:es?|ing)|removing|searching|see(?:ing|s)?|setting|showing|singing|sleeping|smelling|squeezing|support(?:ing|s)?|swearing|switching|taking|tasting|telling|thinking|throwing|touching|turning|tying|unlock(?:ing|s)?|var(?:ies|y|ying)|waiting|waking|waving|wear(?:ing|s)?)\b(?!-)/i,lookbehind:!0,alias:"operator"},keyword:{pattern:/(^|[^-])\b(?:after|before|carry out|check|continue the action|definition(?= *:)|do nothing|else|end (?:if|the story|unless)|every turn|if|include|instead(?: of)?|let|move|no|now|otherwise|repeat|report|resume the story|rule for|running through|say(?:ing)?|stop the action|test|try(?:ing)?|understand|unless|use|when|while|yes)\b(?!-)/i,lookbehind:!0},property:{pattern:/(^|[^-])\b(?:adjacent(?! to)|carried|closed|concealed|contained|dark|described|edible|empty|enclosed|enterable|even|female|fixed in place|full|handled|held|improper-named|incorporated|inedible|invisible|lighted|lit|lock(?:able|ed)|male|marked for listing|mentioned|negative|neuter|non-(?:empty|full|recurring)|odd|opaque|open(?:able)?|plural-named|portable|positive|privately-named|proper-named|provided|publically-named|pushable between rooms|recurring|related|rubbing|scenery|seen|singular-named|supported|swinging|switch(?:able|ed(?: off| on)?)|touch(?:able|ed)|transparent|unconcealed|undescribed|unlit|unlocked|unmarked for listing|unmentioned|unopenable|untouchable|unvisited|variable|visible|visited|wearable|worn)\b(?!-)/i,lookbehind:!0,alias:"symbol"},position:{pattern:/(^|[^-])\b(?:above|adjacent to|back side of|below|between|down|east|everywhere|front side|here|in|inside(?: from)?|north(?:east|west)?|nowhere|on(?: top of)?|other side|outside(?: from)?|parts? of|regionally in|south(?:east|west)?|through|up|west|within)\b(?!-)/i,lookbehind:!0,alias:"keyword"},type:{pattern:/(^|[^-])\b(?:actions?|activit(?:ies|y)|actors?|animals?|backdrops?|containers?|devices?|directions?|doors?|holders?|kinds?|lists?|m[ae]n|nobody|nothing|nouns?|numbers?|objects?|people|persons?|player(?:'s holdall)?|regions?|relations?|rooms?|rule(?:book)?s?|scenes?|someone|something|supporters?|tables?|texts?|things?|time|vehicles?|wom[ae]n)\b(?!-)/i,lookbehind:!0,alias:"variable"},punctuation:/[.,:;(){}]/},t.languages.inform7.string.inside.substitution.inside.rest=t.languages.inform7,t.languages.inform7.string.inside.substitution.inside.rest.text={pattern:/\S(?:\s*\S)*/,alias:"comment"}}return gp}var mp,o_;function ZB(){if(o_)return mp;o_=1,mp=e,e.displayName="ini",e.aliases=[];function e(t){t.languages.ini={comment:{pattern:/(^[ \f\t\v]*)[#;][^\n\r]*/m,lookbehind:!0},section:{pattern:/(^[ \f\t\v]*)\[[^\n\r\]]*\]?/m,lookbehind:!0,inside:{"section-name":{pattern:/(^\[[ \f\t\v]*)[^ \f\t\v\]]+(?:[ \f\t\v]+[^ \f\t\v\]]+)*/,lookbehind:!0,alias:"selector"},punctuation:/\[|\]/}},key:{pattern:/(^[ \f\t\v]*)[^ \f\n\r\t\v=]+(?:[ \f\t\v]+[^ \f\n\r\t\v=]+)*(?=[ \f\t\v]*=)/m,lookbehind:!0,alias:"attr-name"},value:{pattern:/(=[ \f\t\v]*)[^ \f\n\r\t\v]+(?:[ \f\t\v]+[^ \f\n\r\t\v]+)*/,lookbehind:!0,alias:"attr-value",inside:{"inner-value":{pattern:/^("|').+(?=\1$)/,lookbehind:!0}}},punctuation:/=/}}return mp}var hp,s_;function XB(){if(s_)return hp;s_=1,hp=e,e.displayName="io",e.aliases=[];function e(t){t.languages.io={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?(?:\*\/|$)|\/\/.*|#.*)/,lookbehind:!0,greedy:!0},"triple-quoted-string":{pattern:/"""(?:\\[\s\S]|(?!""")[^\\])*"""/,greedy:!0,alias:"string"},string:{pattern:/"(?:\\.|[^\\\r\n"])*"/,greedy:!0},keyword:/\b(?:activate|activeCoroCount|asString|block|break|call|catch|clone|collectGarbage|compileString|continue|do|doFile|doMessage|doString|else|elseif|exit|for|foreach|forward|getEnvironmentVariable|getSlot|hasSlot|if|ifFalse|ifNil|ifNilEval|ifTrue|isActive|isNil|isResumable|list|message|method|parent|pass|pause|perform|performWithArgList|print|println|proto|raise|raiseResumable|removeSlot|resend|resume|schedulerSleepSeconds|self|sender|setSchedulerSleepSeconds|setSlot|shallowCopy|slotNames|super|system|then|thisBlock|thisContext|try|type|uniqueId|updateSlot|wait|while|write|yield)\b/,builtin:/\b(?:Array|AudioDevice|AudioMixer|BigNum|Block|Box|Buffer|CFunction|CGI|Color|Curses|DBM|DNSResolver|DOConnection|DOProxy|DOServer|Date|Directory|Duration|DynLib|Error|Exception|FFT|File|Fnmatch|Font|Future|GL|GLE|GLScissor|GLU|GLUCylinder|GLUQuadric|GLUSphere|GLUT|Host|Image|Importer|LinkList|List|Lobby|Locals|MD5|MP3Decoder|MP3Encoder|Map|Message|Movie|Notification|Number|Object|OpenGL|Point|Protos|Random|Regex|SGML|SGMLElement|SGMLParser|SQLite|Sequence|Server|ShowMessage|SleepyCat|SleepyCatCursor|Socket|SocketManager|Sound|Soup|Store|String|Tree|UDPSender|UPDReceiver|URL|User|Warning|WeakLink)\b/,boolean:/\b(?:false|nil|true)\b/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e-?\d+)?/i,operator:/[=!*/%+\-^&|]=|>>?=?|<+*\-%$|,#][.:]?|[?^]\.?|[;\[]:?|[~}"i][.:]|[ACeEIjLor]\.|(?:[_\/\\qsux]|_?\d):)/,alias:"keyword"},number:/\b_?(?:(?!\d:)\d+(?:\.\d+)?(?:(?:ad|ar|[ejpx])_?\d+(?:\.\d+)?)*(?:b_?[\da-z]+(?:\.[\da-z]+)?)?|_\b(?!\.))/,adverb:{pattern:/[~}]|[\/\\]\.?|[bfM]\.|t[.:]/,alias:"builtin"},operator:/[=a][.:]|_\./,conjunction:{pattern:/&(?:\.:?|:)?|[.:@][.:]?|[!D][.:]|[;dHT]\.|`:?|[\^LS]:|"/,alias:"variable"},punctuation:/[()]/}}return bp}var yp,u_;function mh(){if(u_)return yp;u_=1,yp=e,e.displayName="java",e.aliases=[];function e(t){(function(n){var i=/\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\b/,o=/(^|[^\w.])(?:[a-z]\w*\s*\.\s*)*(?:[A-Z]\w*\s*\.\s*)*/.source,l={pattern:RegExp(o+/[A-Z](?:[\d_A-Z]*[a-z]\w*)?\b/.source),lookbehind:!0,inside:{namespace:{pattern:/^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/,inside:{punctuation:/\./}},punctuation:/\./}};n.languages.java=n.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"/,lookbehind:!0,greedy:!0},"class-name":[l,{pattern:RegExp(o+/[A-Z]\w*(?=\s+\w+\s*[;,=()])/.source),lookbehind:!0,inside:l.inside}],keyword:i,function:[n.languages.clike.function,{pattern:/(::\s*)[a-z_]\w*/,lookbehind:!0}],number:/\b0b[01][01_]*L?\b|\b0x(?:\.[\da-f_p+-]+|[\da-f_]+(?:\.[\da-f_p+-]+)?)\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfl]?/i,operator:{pattern:/(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,lookbehind:!0}}),n.languages.insertBefore("java","string",{"triple-quoted-string":{pattern:/"""[ \t]*[\r\n](?:(?:"|"")?(?:\\.|[^"\\]))*"""/,greedy:!0,alias:"string"},char:{pattern:/'(?:\\.|[^'\\\r\n]){1,6}'/,greedy:!0}}),n.languages.insertBefore("java","class-name",{annotation:{pattern:/(^|[^.])@\w+(?:\s*\.\s*\w+)*/,lookbehind:!0,alias:"punctuation"},generics:{pattern:/<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&))*>)*>)*>)*>/,inside:{"class-name":l,keyword:i,punctuation:/[<>(),.:]/,operator:/[?&|]/}},namespace:{pattern:RegExp(/(\b(?:exports|import(?:\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\s+)(?!)[a-z]\w*(?:\.[a-z]\w*)*\.?/.source.replace(//g,function(){return i.source})),lookbehind:!0,inside:{punctuation:/\./}}})})(t)}return yp}var Ep,c_;function ws(){if(c_)return Ep;c_=1,Ep=e,e.displayName="javadoclike",e.aliases=[];function e(t){(function(n){var i=n.languages.javadoclike={parameter:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*@(?:arg|arguments|param)\s+)\w+/m,lookbehind:!0},keyword:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*|\{)@[a-z][a-zA-Z-]+\b/m,lookbehind:!0},punctuation:/[{}]/};function o(u,c){var p="doc-comment",f=n.languages[u];if(f){var m=f[p];if(!m){var h={};h[p]={pattern:/(^|[^\\])\/\*\*[^/][\s\S]*?(?:\*\/|$)/,lookbehind:!0,alias:"comment"},f=n.languages.insertBefore(u,"comment",h),m=f[p]}if(m instanceof RegExp&&(m=f[p]={pattern:m}),Array.isArray(m))for(var S=0,E=m.length;S)?|/.source.replace(//g,function(){return u});o.languages.javadoc=o.languages.extend("javadoclike",{}),o.languages.insertBefore("javadoc","keyword",{reference:{pattern:RegExp(/(@(?:exception|link|linkplain|see|throws|value)\s+(?:\*\s*)?)/.source+"(?:"+c+")"),lookbehind:!0,inside:{function:{pattern:/(#\s*)\w+(?=\s*\()/,lookbehind:!0},field:{pattern:/(#\s*)\w+/,lookbehind:!0},namespace:{pattern:/\b(?:[a-z]\w*\s*\.\s*)+/,inside:{punctuation:/\./}},"class-name":/\b[A-Z]\w*/,keyword:o.languages.java.keyword,punctuation:/[#()[\],.]/}},"class-name":{pattern:/(@param\s+)<[A-Z]\w*>/,lookbehind:!0,inside:{punctuation:/[.<>]/}},"code-section":[{pattern:/(\{@code\s+(?!\s))(?:[^\s{}]|\s+(?![\s}])|\{(?:[^{}]|\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})*\})*\})+(?=\s*\})/,lookbehind:!0,inside:{code:{pattern:l,lookbehind:!0,inside:o.languages.java,alias:"language-java"}}},{pattern:/(<(code|pre|tt)>(?!)\s*)\S(?:\S|\s+\S)*?(?=\s*<\/\2>)/,lookbehind:!0,inside:{line:{pattern:l,lookbehind:!0,inside:{tag:o.languages.markup.tag,entity:o.languages.markup.entity,code:{pattern:/.+/,inside:o.languages.java,alias:"language-java"}}}}}],tag:o.languages.markup.tag,entity:o.languages.markup.entity}),o.languages.javadoclike.addSupport("java",o.languages.javadoc)})(i)}return Sp}var vp,p_;function ej(){if(p_)return vp;p_=1,vp=e,e.displayName="javastacktrace",e.aliases=[];function e(t){t.languages.javastacktrace={summary:{pattern:/^([\t ]*)(?:(?:Caused by:|Suppressed:|Exception in thread "[^"]*")[\t ]+)?[\w$.]+(?::.*)?$/m,lookbehind:!0,inside:{keyword:{pattern:/^([\t ]*)(?:(?:Caused by|Suppressed)(?=:)|Exception in thread)/m,lookbehind:!0},string:{pattern:/^(\s*)"[^"]*"/,lookbehind:!0},exceptions:{pattern:/^(:?\s*)[\w$.]+(?=:|$)/,lookbehind:!0,inside:{"class-name":/[\w$]+$/,namespace:/\b[a-z]\w*\b/,punctuation:/\./}},message:{pattern:/(:\s*)\S.*/,lookbehind:!0,alias:"string"},punctuation:/:/}},"stack-frame":{pattern:/^([\t ]*)at (?:[\w$./]|@[\w$.+-]*\/)+(?:)?\([^()]*\)/m,lookbehind:!0,inside:{keyword:{pattern:/^(\s*)at(?= )/,lookbehind:!0},source:[{pattern:/(\()\w+\.\w+:\d+(?=\))/,lookbehind:!0,inside:{file:/^\w+\.\w+/,punctuation:/:/,"line-number":{pattern:/\b\d+\b/,alias:"number"}}},{pattern:/(\()[^()]*(?=\))/,lookbehind:!0,inside:{keyword:/^(?:Native Method|Unknown Source)$/}}],"class-name":/[\w$]+(?=\.(?:|[\w$]+)\()/,function:/(?:|[\w$]+)(?=\()/,"class-loader":{pattern:/(\s)[a-z]\w*(?:\.[a-z]\w*)*(?=\/[\w@$.]*\/)/,lookbehind:!0,alias:"namespace",inside:{punctuation:/\./}},module:{pattern:/([\s/])[a-z]\w*(?:\.[a-z]\w*)*(?:@[\w$.+-]*)?(?=\/)/,lookbehind:!0,inside:{version:{pattern:/(@)[\s\S]+/,lookbehind:!0,alias:"number"},punctuation:/[@.]/}},namespace:{pattern:/(?:\b[a-z]\w*\.)+/,inside:{punctuation:/\./}},punctuation:/[()/.]/}},more:{pattern:/^([\t ]*)\.{3} \d+ [a-z]+(?: [a-z]+)*/m,lookbehind:!0,inside:{punctuation:/\.{3}/,number:/\d+/,keyword:/\b[a-z]+(?: [a-z]+)*\b/}}}}return vp}var kp,f_;function tj(){if(f_)return kp;f_=1,kp=e,e.displayName="jexl",e.aliases=[];function e(t){t.languages.jexl={string:/(["'])(?:\\[\s\S]|(?!\1)[^\\])*\1/,transform:{pattern:/(\|\s*)[a-zA-Zа-яА-Я_\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF$][\wа-яА-Я\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF$]*/,alias:"function",lookbehind:!0},function:/[a-zA-Zа-яА-Я_\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF$][\wа-яА-Я\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF$]*\s*(?=\()/,number:/\b\d+(?:\.\d+)?\b|\B\.\d+\b/,operator:/[<>!]=?|-|\+|&&|==|\|\|?|\/\/?|[?:*^%]/,boolean:/\b(?:false|true)\b/,keyword:/\bin\b/,punctuation:/[{}[\](),.]/}}return kp}var _p,g_;function nj(){if(g_)return _p;g_=1,_p=e,e.displayName="jolie",e.aliases=[];function e(t){t.languages.jolie=t.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\[\s\S]|[^"\\])*"/,lookbehind:!0,greedy:!0},"class-name":{pattern:/((?:\b(?:as|courier|embed|in|inputPort|outputPort|service)\b|@)[ \t]*)\w+/,lookbehind:!0},keyword:/\b(?:as|cH|comp|concurrent|constants|courier|cset|csets|default|define|else|embed|embedded|execution|exit|extender|for|foreach|forward|from|global|if|import|in|include|init|inputPort|install|instanceof|interface|is_defined|linkIn|linkOut|main|new|nullProcess|outputPort|over|private|provide|public|scope|sequential|service|single|spawn|synchronized|this|throw|throws|type|undef|until|while|with)\b/,function:/\b[a-z_]\w*(?=[ \t]*[@(])/i,number:/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?l?/i,operator:/-[-=>]?|\+[+=]?|<[<=]?|[>=*!]=?|&&|\|\||[?\/%^@|]/,punctuation:/[()[\]{},;.:]/,builtin:/\b(?:Byte|any|bool|char|double|enum|float|int|length|long|ranges|regex|string|undefined|void)\b/}),t.languages.insertBefore("jolie","keyword",{aggregates:{pattern:/(\bAggregates\s*:\s*)(?:\w+(?:\s+with\s+\w+)?\s*,\s*)*\w+(?:\s+with\s+\w+)?/,lookbehind:!0,inside:{keyword:/\bwith\b/,"class-name":/\w+/,punctuation:/,/}},redirects:{pattern:/(\bRedirects\s*:\s*)(?:\w+\s*=>\s*\w+\s*,\s*)*(?:\w+\s*=>\s*\w+)/,lookbehind:!0,inside:{punctuation:/,/,"class-name":/\w+/,operator:/=>/}},property:{pattern:/\b(?:Aggregates|[Ii]nterfaces|Java|Javascript|Jolie|[Ll]ocation|OneWay|[Pp]rotocol|Redirects|RequestResponse)\b(?=[ \t]*:)/}})}return _p}var wp,m_;function rj(){if(m_)return wp;m_=1,wp=e,e.displayName="jq",e.aliases=[];function e(t){(function(n){var i=/\\\((?:[^()]|\([^()]*\))*\)/.source,o=RegExp(/(^|[^\\])"(?:[^"\r\n\\]|\\[^\r\n(]|__)*"/.source.replace(/__/g,function(){return i})),l={interpolation:{pattern:RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+i),lookbehind:!0,inside:{content:{pattern:/^(\\\()[\s\S]+(?=\)$)/,lookbehind:!0,inside:null},punctuation:/^\\\(|\)$/}}},u=n.languages.jq={comment:/#.*/,property:{pattern:RegExp(o.source+/(?=\s*:(?!:))/.source),lookbehind:!0,greedy:!0,inside:l},string:{pattern:o,lookbehind:!0,greedy:!0,inside:l},function:{pattern:/(\bdef\s+)[a-z_]\w+/i,lookbehind:!0},variable:/\B\$\w+/,"property-literal":{pattern:/\b[a-z_]\w*(?=\s*:(?!:))/i,alias:"property"},keyword:/\b(?:as|break|catch|def|elif|else|end|foreach|if|import|include|label|module|modulemeta|null|reduce|then|try|while)\b/,boolean:/\b(?:false|true)\b/,number:/(?:\b\d+\.|\B\.)?\b\d+(?:[eE][+-]?\d+)?\b/,operator:[{pattern:/\|=?/,alias:"pipe"},/\.\.|[!=<>]?=|\?\/\/|\/\/=?|[-+*/%]=?|[<>?]|\b(?:and|not|or)\b/],"c-style-function":{pattern:/\b[a-z_]\w*(?=\s*\()/i,alias:"function"},punctuation:/::|[()\[\]{},:;]|\.(?=\s*[\[\w$])/,dot:{pattern:/\./,alias:"important"}};l.interpolation.inside.content.inside=u})(t)}return wp}var Tp,h_;function aj(){if(h_)return Tp;h_=1,Tp=e,e.displayName="jsExtras",e.aliases=[];function e(t){(function(n){n.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+n.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),n.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+n.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),n.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]});function i(f,m){return RegExp(f.replace(//g,function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source}),m)}n.languages.insertBefore("javascript","keyword",{imports:{pattern:i(/(\bimport\b\s*)(?:(?:\s*,\s*(?:\*\s*as\s+|\{[^{}]*\}))?|\*\s*as\s+|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:n.languages.javascript},exports:{pattern:i(/(\bexport\b\s*)(?:\*(?:\s*as\s+)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:n.languages.javascript}}),n.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),n.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),n.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:i(/(\.\s*)#?/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var o=["function","function-variable","method","method-variable","property-access"],l=0;l=B.length)return;var Y=j[M];if(typeof Y=="string"||typeof Y.content=="string"){var J=B[A],de=typeof Y=="string"?Y:Y.content,Z=de.indexOf(J);if(Z!==-1){++A;var H=de.substring(0,Z),te=h(O[J]),ue=de.substring(Z+J.length),q=[];if(H&&q.push(H),q.push(te),ue){var Q=[ue];W(Q),q.push.apply(q,Q)}typeof Y=="string"?(j.splice.apply(j,[M,1].concat(q)),M+=q.length-1):Y.content=q}}else{var x=Y.content;Array.isArray(x)?W(x):W([x])}}}return W(w),new n.Token(N,w,"language-"+N,k)}var E={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};n.hooks.add("after-tokenize",function(k){if(!(k.language in E))return;function T(N){for(var R=0,A=N.length;R]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),n.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete n.languages.typescript.parameter,delete n.languages.typescript["literal-property"];var i=n.languages.extend("typescript",{});delete i["class-name"],n.languages.typescript["class-name"].inside=i,n.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:i}}}}),n.languages.ts=n.languages.typescript})(t)}return Ap}var Rp,E_;function oj(){if(E_)return Rp;E_=1;var e=ws(),t=hh();Rp=n,n.displayName="jsdoc",n.aliases=[];function n(i){i.register(e),i.register(t),(function(o){var l=o.languages.javascript,u=/\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})+\}/.source,c="(@(?:arg|argument|param|property)\\s+(?:"+u+"\\s+)?)";o.languages.jsdoc=o.languages.extend("javadoclike",{parameter:{pattern:RegExp(c+/(?:(?!\s)[$\w\xA0-\uFFFF.])+(?=\s|$)/.source),lookbehind:!0,inside:{punctuation:/\./}}}),o.languages.insertBefore("jsdoc","keyword",{"optional-parameter":{pattern:RegExp(c+/\[(?:(?!\s)[$\w\xA0-\uFFFF.])+(?:=[^[\]]+)?\](?=\s|$)/.source),lookbehind:!0,inside:{parameter:{pattern:/(^\[)[$\w\xA0-\uFFFF\.]+/,lookbehind:!0,inside:{punctuation:/\./}},code:{pattern:/(=)[\s\S]*(?=\]$)/,lookbehind:!0,inside:l,alias:"language-javascript"},punctuation:/[=[\]]/}},"class-name":[{pattern:RegExp(/(@(?:augments|class|extends|interface|memberof!?|template|this|typedef)\s+(?:\s+)?)[A-Z]\w*(?:\.[A-Z]\w*)*/.source.replace(//g,function(){return u})),lookbehind:!0,inside:{punctuation:/\./}},{pattern:RegExp("(@[a-z]+\\s+)"+u),lookbehind:!0,inside:{string:l.string,number:l.number,boolean:l.boolean,keyword:o.languages.typescript.keyword,operator:/=>|\.\.\.|[&|?:*]/,punctuation:/[.,;=<>{}()[\]]/}}],example:{pattern:/(@example\s+(?!\s))(?:[^@\s]|\s+(?!\s))+?(?=\s*(?:\*\s*)?(?:@\w|\*\/))/,lookbehind:!0,inside:{code:{pattern:/^([\t ]*(?:\*\s*)?)\S.*$/m,lookbehind:!0,inside:l,alias:"language-javascript"}}}}),o.languages.javadoclike.addSupport("javascript",o.languages.jsdoc)})(i)}return Rp}var Np,S_;function bh(){if(S_)return Np;S_=1,Np=e,e.displayName="json",e.aliases=["webmanifest"];function e(t){t.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},t.languages.webmanifest=t.languages.json}return Np}var Cp,v_;function sj(){if(v_)return Cp;v_=1;var e=bh();Cp=t,t.displayName="json5",t.aliases=[];function t(n){n.register(e),(function(i){var o=/("|')(?:\\(?:\r\n?|\n|.)|(?!\1)[^\\\r\n])*\1/;i.languages.json5=i.languages.extend("json",{property:[{pattern:RegExp(o.source+"(?=\\s*:)"),greedy:!0},{pattern:/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/,alias:"unquoted"}],string:{pattern:o,greedy:!0},number:/[+-]?\b(?:NaN|Infinity|0x[a-fA-F\d]+)\b|[+-]?(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[eE][+-]?\d+\b)?/})})(n)}return Cp}var Ip,k_;function lj(){if(k_)return Ip;k_=1;var e=bh();Ip=t,t.displayName="jsonp",t.aliases=[];function t(n){n.register(e),n.languages.jsonp=n.languages.extend("json",{punctuation:/[{}[\]();,.]/}),n.languages.insertBefore("jsonp","punctuation",{function:/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*\()/})}return Ip}var Op,__;function uj(){if(__)return Op;__=1,Op=e,e.displayName="jsstacktrace",e.aliases=[];function e(t){t.languages.jsstacktrace={"error-message":{pattern:/^\S.*/m,alias:"string"},"stack-frame":{pattern:/(^[ \t]+)at[ \t].*/m,lookbehind:!0,inside:{"not-my-code":{pattern:/^at[ \t]+(?!\s)(?:node\.js||.*(?:node_modules|\(\)|\(|$|\(internal\/|\(node\.js)).*/m,alias:"comment"},filename:{pattern:/(\bat\s+(?!\s)|\()(?:[a-zA-Z]:)?[^():]+(?=:)/,lookbehind:!0,alias:"url"},function:{pattern:/(\bat\s+(?:new\s+)?)(?!\s)[_$a-zA-Z\xA0-\uFFFF<][.$\w\xA0-\uFFFF<>]*/,lookbehind:!0,inside:{punctuation:/\./}},punctuation:/[()]/,keyword:/\b(?:at|new)\b/,alias:{pattern:/\[(?:as\s+)?(?!\s)[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*\]/,alias:"variable"},"line-number":{pattern:/:\d+(?::\d+)?\b/,alias:"number",inside:{punctuation:/:/}}}}}}return Op}var Lp,w_;function nR(){if(w_)return Lp;w_=1,Lp=e,e.displayName="jsx",e.aliases=[];function e(t){(function(n){var i=n.util.clone(n.languages.javascript),o=/(?:\s|\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))\*\/)/.source,l=/(?:\{(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])*\})/.source,u=/(?:\{*\.{3}(?:[^{}]|)*\})/.source;function c(m,h){return m=m.replace(//g,function(){return o}).replace(//g,function(){return l}).replace(//g,function(){return u}),RegExp(m,h)}u=c(u).source,n.languages.jsx=n.languages.extend("markup",i),n.languages.jsx.tag.pattern=c(/<\/?(?:[\w.:-]+(?:+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|))?|))**\/?)?>/.source),n.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,n.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,n.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,n.languages.jsx.tag.inside.comment=i.comment,n.languages.insertBefore("inside","attr-name",{spread:{pattern:c(//.source),inside:n.languages.jsx}},n.languages.jsx.tag),n.languages.insertBefore("inside","special-attr",{script:{pattern:c(/=/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:n.languages.jsx}}},n.languages.jsx.tag);var p=function(m){return m?typeof m=="string"?m:typeof m.content=="string"?m.content:m.content.map(p).join(""):""},f=function(m){for(var h=[],S=0;S0&&h[h.length-1].tagName===p(E.content[0].content[1])&&h.pop():E.content[E.content.length-1].content==="/>"||h.push({tagName:p(E.content[0].content[1]),openedBraces:0}):h.length>0&&E.type==="punctuation"&&E.content==="{"?h[h.length-1].openedBraces++:h.length>0&&h[h.length-1].openedBraces>0&&E.type==="punctuation"&&E.content==="}"?h[h.length-1].openedBraces--:v=!0),(v||typeof E=="string")&&h.length>0&&h[h.length-1].openedBraces===0){var k=p(E);S0&&(typeof m[S-1]=="string"||m[S-1].type==="plain-text")&&(k=p(m[S-1])+k,m.splice(S-1,1),S--),m[S]=new n.Token("plain-text",k,null,k)}E.content&&typeof E.content!="string"&&f(E.content)}};n.hooks.add("after-tokenize",function(m){m.language!=="jsx"&&m.language!=="tsx"||f(m.tokens)})})(t)}return Lp}var Dp,T_;function cj(){if(T_)return Dp;T_=1,Dp=e,e.displayName="julia",e.aliases=[];function e(t){t.languages.julia={comment:{pattern:/(^|[^\\])(?:#=(?:[^#=]|=(?!#)|#(?!=)|#=(?:[^#=]|=(?!#)|#(?!=))*=#)*=#|#.*)/,lookbehind:!0},regex:{pattern:/r"(?:\\.|[^"\\\r\n])*"[imsx]{0,4}/,greedy:!0},string:{pattern:/"""[\s\S]+?"""|(?:\b\w+)?"(?:\\.|[^"\\\r\n])*"|`(?:[^\\`\r\n]|\\.)*`/,greedy:!0},char:{pattern:/(^|[^\w'])'(?:\\[^\r\n][^'\r\n]*|[^\\\r\n])'/,lookbehind:!0,greedy:!0},keyword:/\b(?:abstract|baremodule|begin|bitstype|break|catch|ccall|const|continue|do|else|elseif|end|export|finally|for|function|global|if|immutable|import|importall|in|let|local|macro|module|print|println|quote|return|struct|try|type|typealias|using|while)\b/,boolean:/\b(?:false|true)\b/,number:/(?:\b(?=\d)|\B(?=\.))(?:0[box])?(?:[\da-f]+(?:_[\da-f]+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[efp][+-]?\d+(?:_\d+)*)?j?/i,operator:/&&|\|\||[-+*^%÷⊻&$\\]=?|\/[\/=]?|!=?=?|\|[=>]?|<(?:<=?|[=:|])?|>(?:=|>>?=?)?|==?=?|[~≠≤≥'√∛]/,punctuation:/::?|[{}[\]();,.?]/,constant:/\b(?:(?:Inf|NaN)(?:16|32|64)?|im|pi)\b|[πℯ]/}}return Dp}var Mp,x_;function dj(){if(x_)return Mp;x_=1,Mp=e,e.displayName="keepalived",e.aliases=[];function e(t){t.languages.keepalived={comment:{pattern:/[#!].*/,greedy:!0},string:{pattern:/(^|[^\\])(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/,lookbehind:!0,greedy:!0},ip:{pattern:RegExp(/\b(?:(?:(?:[\da-f]{1,4}:){7}[\da-f]{1,4}|(?:[\da-f]{1,4}:){6}:[\da-f]{1,4}|(?:[\da-f]{1,4}:){5}:(?:[\da-f]{1,4}:)?[\da-f]{1,4}|(?:[\da-f]{1,4}:){4}:(?:[\da-f]{1,4}:){0,2}[\da-f]{1,4}|(?:[\da-f]{1,4}:){3}:(?:[\da-f]{1,4}:){0,3}[\da-f]{1,4}|(?:[\da-f]{1,4}:){2}:(?:[\da-f]{1,4}:){0,4}[\da-f]{1,4}|(?:[\da-f]{1,4}:){6}|(?:[\da-f]{1,4}:){0,5}:|::(?:[\da-f]{1,4}:){0,5}|[\da-f]{1,4}::(?:[\da-f]{1,4}:){0,5}[\da-f]{1,4}|::(?:[\da-f]{1,4}:){0,6}[\da-f]{1,4}|(?:[\da-f]{1,4}:){1,7}:)(?:\/\d{1,3})?|(?:\/\d{1,2})?)\b/.source.replace(//g,function(){return/(?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d))/.source}),"i"),alias:"number"},path:{pattern:/(\s)\/(?:[^\/\s]+\/)*[^\/\s]*|\b[a-zA-Z]:\\(?:[^\\\s]+\\)*[^\\\s]*/,lookbehind:!0,alias:"string"},variable:/\$\{?\w+\}?/,email:{pattern:/[\w-]+@[\w-]+(?:\.[\w-]{2,3}){1,2}/,alias:"string"},"conditional-configuration":{pattern:/@\^?[\w-]+/,alias:"variable"},operator:/=/,property:/\b(?:BFD_CHECK|DNS_CHECK|FILE_CHECK|HTTP_GET|MISC_CHECK|NAME|PING_CHECK|SCRIPTS|SMTP_CHECK|SSL|SSL_GET|TCP_CHECK|UDP_CHECK|accept|advert_int|alpha|auth_pass|auth_type|authentication|bfd_cpu_affinity|bfd_instance|bfd_no_swap|bfd_priority|bfd_process_name|bfd_rlimit_rttime|bfd_rt_priority|bind_if|bind_port|bindto|ca|certificate|check_unicast_src|checker|checker_cpu_affinity|checker_log_all_failures|checker_no_swap|checker_priority|checker_rlimit_rttime|checker_rt_priority|child_wait_time|connect_ip|connect_port|connect_timeout|dbus_service_name|debug|default_interface|delay|delay_before_retry|delay_loop|digest|dont_track_primary|dynamic|dynamic_interfaces|enable_(?:dbus|script_security|sni|snmp_checker|snmp_rfc|snmp_rfcv2|snmp_rfcv3|snmp_vrrp|traps)|end|fall|fast_recovery|file|flag-[123]|fork_delay|full_command|fwmark|garp_group|garp_interval|garp_lower_prio_delay|garp_lower_prio_repeat|garp_master_delay|garp_master_refresh|garp_master_refresh_repeat|garp_master_repeat|global_defs|global_tracking|gna_interval|group|ha_suspend|hashed|helo_name|higher_prio_send_advert|hoplimit|http_protocol|hysteresis|idle_tx|include|inhibit_on_failure|init_fail|init_file|instance|interface|interfaces|interval|ip_family|ipvs_process_name|keepalived.conf|kernel_rx_buf_size|key|linkbeat_interfaces|linkbeat_use_polling|log_all_failures|log_unknown_vrids|lower_prio_no_advert|lthreshold|lvs_flush|lvs_flush_onstop|lvs_method|lvs_netlink_cmd_rcv_bufs|lvs_netlink_cmd_rcv_bufs_force|lvs_netlink_monitor_rcv_bufs|lvs_netlink_monitor_rcv_bufs_force|lvs_notify_fifo|lvs_notify_fifo_script|lvs_sched|lvs_sync_daemon|max_auto_priority|max_hops|mcast_src_ip|mh-fallback|mh-port|min_auto_priority_delay|min_rx|min_tx|misc_dynamic|misc_path|misc_timeout|multiplier|name|namespace_with_ipsets|native_ipv6|neighbor_ip|net_namespace|net_namespace_ipvs|nftables|nftables_counters|nftables_ifindex|nftables_priority|no_accept|no_checker_emails|no_email_faults|nopreempt|notification_email|notification_email_from|notify|notify_backup|notify_deleted|notify_down|notify_fault|notify_fifo|notify_fifo_script|notify_master|notify_master_rx_lower_pri|notify_priority_changes|notify_stop|notify_up|old_unicast_checksum|omega|ops|param_match|passive|password|path|persistence_engine|persistence_granularity|persistence_timeout|preempt|preempt_delay|priority|process|process_monitor_rcv_bufs|process_monitor_rcv_bufs_force|process_name|process_names|promote_secondaries|protocol|proxy_arp|proxy_arp_pvlan|quorum|quorum_down|quorum_max|quorum_up|random_seed|real_server|regex|regex_max_offset|regex_min_offset|regex_no_match|regex_options|regex_stack|reload_repeat|reload_time_file|require_reply|retry|rise|router_id|rs_init_notifies|script|script_user|sh-fallback|sh-port|shutdown_script|shutdown_script_timeout|skip_check_adv_addr|smtp_alert|smtp_alert_checker|smtp_alert_vrrp|smtp_connect_timeout|smtp_helo_name|smtp_server|snmp_socket|sorry_server|sorry_server_inhibit|sorry_server_lvs_method|source_ip|start|startup_script|startup_script_timeout|state|static_ipaddress|static_routes|static_rules|status_code|step|strict_mode|sync_group_tracking_weight|terminate_delay|timeout|track_bfd|track_file|track_group|track_interface|track_process|track_script|track_src_ip|ttl|type|umask|unicast_peer|unicast_src_ip|unicast_ttl|url|use_ipvlan|use_pid_dir|use_vmac|user|uthreshold|val[123]|version|virtual_ipaddress|virtual_ipaddress_excluded|virtual_router_id|virtual_routes|virtual_rules|virtual_server|virtual_server_group|virtualhost|vmac_xmit_base|vrrp|vrrp_(?:check_unicast_src|cpu_affinity|garp_interval|garp_lower_prio_delay|garp_lower_prio_repeat|garp_master_delay|garp_master_refresh|garp_master_refresh_repeat|garp_master_repeat|gna_interval|higher_prio_send_advert|instance|ipsets|iptables|lower_prio_no_advert|mcast_group4|mcast_group6|min_garp|netlink_cmd_rcv_bufs|netlink_cmd_rcv_bufs_force|netlink_monitor_rcv_bufs|netlink_monitor_rcv_bufs_force|no_swap|notify_fifo|notify_fifo_script|notify_priority_changes|priority|process_name|rlimit_rttime|rt_priority|rx_bufs_multiplier|rx_bufs_policy|script|skip_check_adv_addr|startup_delay|strict|sync_group|track_process|version)|warmup|weight)\b/,constant:/\b(?:A|AAAA|AH|BACKUP|CNAME|DR|MASTER|MX|NAT|NS|PASS|SCTP|SOA|TCP|TUN|TXT|UDP|dh|fo|lblc|lblcr|lc|mh|nq|ovf|rr|sed|sh|wlc|wrr)\b/,number:{pattern:/(^|[^\w.-])-?\d+(?:\.\d+)?/,lookbehind:!0},boolean:/\b(?:false|no|off|on|true|yes)\b/,punctuation:/[\{\}]/}}return Mp}var Fp,A_;function pj(){if(A_)return Fp;A_=1,Fp=e,e.displayName="keyman",e.aliases=[];function e(t){t.languages.keyman={comment:{pattern:/\bc .*/i,greedy:!0},string:{pattern:/"[^"\r\n]*"|'[^'\r\n]*'/,greedy:!0},"virtual-key":{pattern:/\[\s*(?:(?:ALT|CAPS|CTRL|LALT|LCTRL|NCAPS|RALT|RCTRL|SHIFT)\s+)*(?:[TKU]_[\w?]+|[A-E]\d\d?|"[^"\r\n]*"|'[^'\r\n]*')\s*\]/i,greedy:!0,alias:"function"},"header-keyword":{pattern:/&\w+/,alias:"bold"},"header-statement":{pattern:/\b(?:bitmap|bitmaps|caps always off|caps on only|copyright|hotkey|language|layout|message|name|shift frees caps|version)\b/i,alias:"bold"},"rule-keyword":{pattern:/\b(?:any|baselayout|beep|call|context|deadkey|dk|if|index|layer|notany|nul|outs|platform|reset|return|save|set|store|use)\b/i,alias:"keyword"},"structural-keyword":{pattern:/\b(?:ansi|begin|group|match|nomatch|unicode|using keys)\b/i,alias:"keyword"},"compile-target":{pattern:/\$(?:keyman|keymanonly|keymanweb|kmfl|weaver):/i,alias:"property"},number:/\b(?:U\+[\dA-F]+|d\d+|x[\da-f]+|\d+)\b/i,operator:/[+>\\$]|\.\./,punctuation:/[()=,]/}}return Fp}var Pp,R_;function fj(){if(R_)return Pp;R_=1,Pp=e,e.displayName="kotlin",e.aliases=["kt","kts"];function e(t){(function(n){n.languages.kotlin=n.languages.extend("clike",{keyword:{pattern:/(^|[^.])\b(?:abstract|actual|annotation|as|break|by|catch|class|companion|const|constructor|continue|crossinline|data|do|dynamic|else|enum|expect|external|final|finally|for|fun|get|if|import|in|infix|init|inline|inner|interface|internal|is|lateinit|noinline|null|object|open|operator|out|override|package|private|protected|public|reified|return|sealed|set|super|suspend|tailrec|this|throw|to|try|typealias|val|var|vararg|when|where|while)\b/,lookbehind:!0},function:[{pattern:/(?:`[^\r\n`]+`|\b\w+)(?=\s*\()/,greedy:!0},{pattern:/(\.)(?:`[^\r\n`]+`|\w+)(?=\s*\{)/,lookbehind:!0,greedy:!0}],number:/\b(?:0[xX][\da-fA-F]+(?:_[\da-fA-F]+)*|0[bB][01]+(?:_[01]+)*|\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?(?:[eE][+-]?\d+(?:_\d+)*)?[fFL]?)\b/,operator:/\+[+=]?|-[-=>]?|==?=?|!(?:!|==?)?|[\/*%<>]=?|[?:]:?|\.\.|&&|\|\||\b(?:and|inv|or|shl|shr|ushr|xor)\b/}),delete n.languages.kotlin["class-name"];var i={"interpolation-punctuation":{pattern:/^\$\{?|\}$/,alias:"punctuation"},expression:{pattern:/[\s\S]+/,inside:n.languages.kotlin}};n.languages.insertBefore("kotlin","string",{"string-literal":[{pattern:/"""(?:[^$]|\$(?:(?!\{)|\{[^{}]*\}))*?"""/,alias:"multiline",inside:{interpolation:{pattern:/\$(?:[a-z_]\w*|\{[^{}]*\})/i,inside:i},string:/[\s\S]+/}},{pattern:/"(?:[^"\\\r\n$]|\\.|\$(?:(?!\{)|\{[^{}]*\}))*"/,alias:"singleline",inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$(?:[a-z_]\w*|\{[^{}]*\})/i,lookbehind:!0,inside:i},string:/[\s\S]+/}}],char:{pattern:/'(?:[^'\\\r\n]|\\(?:.|u[a-fA-F0-9]{0,4}))'/,greedy:!0}}),delete n.languages.kotlin.string,n.languages.insertBefore("kotlin","keyword",{annotation:{pattern:/\B@(?:\w+:)?(?:[A-Z]\w*|\[[^\]]+\])/,alias:"builtin"}}),n.languages.insertBefore("kotlin","function",{label:{pattern:/\b\w+@|@\w+\b/,alias:"symbol"}}),n.languages.kt=n.languages.kotlin,n.languages.kts=n.languages.kotlin})(t)}return Pp}var Up,N_;function gj(){if(N_)return Up;N_=1,Up=e,e.displayName="kumir",e.aliases=["kum"];function e(t){(function(n){var i=/\s\x00-\x1f\x22-\x2f\x3a-\x3f\x5b-\x5e\x60\x7b-\x7e/.source;function o(l,u){return RegExp(l.replace(//g,i),u)}n.languages.kumir={comment:{pattern:/\|.*/},prolog:{pattern:/#.*/,greedy:!0},string:{pattern:/"[^\n\r"]*"|'[^\n\r']*'/,greedy:!0},boolean:{pattern:o(/(^|[])(?:да|нет)(?=[]|$)/.source),lookbehind:!0},"operator-word":{pattern:o(/(^|[])(?:и|или|не)(?=[]|$)/.source),lookbehind:!0,alias:"keyword"},"system-variable":{pattern:o(/(^|[])знач(?=[]|$)/.source),lookbehind:!0,alias:"keyword"},type:[{pattern:o(/(^|[])(?:вещ|лит|лог|сим|цел)(?:\x20*таб)?(?=[]|$)/.source),lookbehind:!0,alias:"builtin"},{pattern:o(/(^|[])(?:компл|сканкод|файл|цвет)(?=[]|$)/.source),lookbehind:!0,alias:"important"}],keyword:{pattern:o(/(^|[])(?:алг|арг(?:\x20*рез)?|ввод|ВКЛЮЧИТЬ|вс[её]|выбор|вывод|выход|дано|для|до|дс|если|иначе|исп|использовать|кон(?:(?:\x20+|_)исп)?|кц(?:(?:\x20+|_)при)?|надо|нач|нс|нц|от|пауза|пока|при|раза?|рез|стоп|таб|то|утв|шаг)(?=[]|$)/.source),lookbehind:!0},name:{pattern:o(/(^|[])[^\d][^]*(?:\x20+[^]+)*(?=[]|$)/.source),lookbehind:!0},number:{pattern:o(/(^|[])(?:\B\$[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)(?=[]|$)/.source,"i"),lookbehind:!0},punctuation:/:=|[(),:;\[\]]/,"operator-char":{pattern:/\*\*?|<[=>]?|>=?|[-+/=]/,alias:"operator"}},n.languages.kum=n.languages.kumir})(t)}return Up}var Bp,C_;function mj(){if(C_)return Bp;C_=1,Bp=e,e.displayName="kusto",e.aliases=[];function e(t){t.languages.kusto={comment:{pattern:/\/\/.*/,greedy:!0},string:{pattern:/```[\s\S]*?```|[hH]?(?:"(?:[^\r\n\\"]|\\.)*"|'(?:[^\r\n\\']|\\.)*'|@(?:"[^\r\n"]*"|'[^\r\n']*'))/,greedy:!0},verb:{pattern:/(\|\s*)[a-z][\w-]*/i,lookbehind:!0,alias:"keyword"},command:{pattern:/\.[a-z][a-z\d-]*\b/,alias:"keyword"},"class-name":/\b(?:bool|datetime|decimal|dynamic|guid|int|long|real|string|timespan)\b/,keyword:/\b(?:access|alias|and|anti|as|asc|auto|between|by|(?:contains|(?:ends|starts)with|has(?:perfix|suffix)?)(?:_cs)?|database|declare|desc|external|from|fullouter|has_all|in|ingestion|inline|inner|innerunique|into|(?:left|right)(?:anti(?:semi)?|inner|outer|semi)?|let|like|local|not|of|on|or|pattern|print|query_parameters|range|restrict|schema|set|step|table|tables|to|view|where|with|matches\s+regex|nulls\s+(?:first|last))(?![\w-])/,boolean:/\b(?:false|null|true)\b/,function:/\b[a-z_]\w*(?=\s*\()/,datetime:[{pattern:/\b(?:(?:Fri|Friday|Mon|Monday|Sat|Saturday|Sun|Sunday|Thu|Thursday|Tue|Tuesday|Wed|Wednesday)\s*,\s*)?\d{1,2}(?:\s+|-)(?:Apr|Aug|Dec|Feb|Jan|Jul|Jun|Mar|May|Nov|Oct|Sep)(?:\s+|-)\d{2}\s+\d{2}:\d{2}(?::\d{2})?(?:\s*(?:\b(?:[A-Z]|(?:[ECMT][DS]|GM|U)T)|[+-]\d{4}))?\b/,alias:"number"},{pattern:/[+-]?\b(?:\d{4}-\d{2}-\d{2}(?:[ T]\d{2}:\d{2}(?::\d{2}(?:\.\d+)?)?)?|\d{2}:\d{2}(?::\d{2}(?:\.\d+)?)?)Z?/,alias:"number"}],number:/\b(?:0x[0-9A-Fa-f]+|\d+(?:\.\d+)?(?:[Ee][+-]?\d+)?)(?:(?:min|sec|[mnµ]s|[dhms]|microsecond|tick)\b)?|[+-]?\binf\b/,operator:/=>|[!=]~|[!=<>]=?|[-+*/%|]|\.\./,punctuation:/[()\[\]{},;.:]/}}return Bp}var jp,I_;function hj(){if(I_)return jp;I_=1,jp=e,e.displayName="latex",e.aliases=["tex","context"];function e(t){(function(n){var i=/\\(?:[^a-z()[\]]|[a-z*]+)/i,o={"equation-command":{pattern:i,alias:"regex"}};n.languages.latex={comment:/%.*/,cdata:{pattern:/(\\begin\{((?:lstlisting|verbatim)\*?)\})[\s\S]*?(?=\\end\{\2\})/,lookbehind:!0},equation:[{pattern:/\$\$(?:\\[\s\S]|[^\\$])+\$\$|\$(?:\\[\s\S]|[^\\$])+\$|\\\([\s\S]*?\\\)|\\\[[\s\S]*?\\\]/,inside:o,alias:"string"},{pattern:/(\\begin\{((?:align|eqnarray|equation|gather|math|multline)\*?)\})[\s\S]*?(?=\\end\{\2\})/,lookbehind:!0,inside:o,alias:"string"}],keyword:{pattern:/(\\(?:begin|cite|documentclass|end|label|ref|usepackage)(?:\[[^\]]+\])?\{)[^}]+(?=\})/,lookbehind:!0},url:{pattern:/(\\url\{)[^}]+(?=\})/,lookbehind:!0},headline:{pattern:/(\\(?:chapter|frametitle|paragraph|part|section|subparagraph|subsection|subsubparagraph|subsubsection|subsubsubparagraph)\*?(?:\[[^\]]+\])?\{)[^}]+(?=\})/,lookbehind:!0,alias:"class-name"},function:{pattern:i,alias:"selector"},punctuation:/[[\]{}&]/},n.languages.tex=n.languages.latex,n.languages.context=n.languages.latex})(t)}return jp}var zp,O_;function Ts(){if(O_)return zp;O_=1;var e=an();zp=t,t.displayName="php",t.aliases=[];function t(n){n.register(e),(function(i){var o=/\/\*[\s\S]*?\*\/|\/\/.*|#(?!\[).*/,l=[{pattern:/\b(?:false|true)\b/i,alias:"boolean"},{pattern:/(::\s*)\b[a-z_]\w*\b(?!\s*\()/i,greedy:!0,lookbehind:!0},{pattern:/(\b(?:case|const)\s+)\b[a-z_]\w*(?=\s*[;=])/i,greedy:!0,lookbehind:!0},/\b(?:null)\b/i,/\b[A-Z_][A-Z0-9_]*\b(?!\s*\()/],u=/\b0b[01]+(?:_[01]+)*\b|\b0o[0-7]+(?:_[0-7]+)*\b|\b0x[\da-f]+(?:_[\da-f]+)*\b|(?:\b\d+(?:_\d+)*\.?(?:\d+(?:_\d+)*)?|\B\.\d+)(?:e[+-]?\d+)?/i,c=/|\?\?=?|\.{3}|\??->|[!=]=?=?|::|\*\*=?|--|\+\+|&&|\|\||<<|>>|[?~]|[/^|%*&<>.+-]=?/,p=/[{}\[\](),:;]/;i.languages.php={delimiter:{pattern:/\?>$|^<\?(?:php(?=\s)|=)?/i,alias:"important"},comment:o,variable:/\$+(?:\w+\b|(?=\{))/,package:{pattern:/(namespace\s+|use\s+(?:function\s+)?)(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,lookbehind:!0,inside:{punctuation:/\\/}},"class-name-definition":{pattern:/(\b(?:class|enum|interface|trait)\s+)\b[a-z_]\w*(?!\\)\b/i,lookbehind:!0,alias:"class-name"},"function-definition":{pattern:/(\bfunction\s+)[a-z_]\w*(?=\s*\()/i,lookbehind:!0,alias:"function"},keyword:[{pattern:/(\(\s*)\b(?:array|bool|boolean|float|int|integer|object|string)\b(?=\s*\))/i,alias:"type-casting",greedy:!0,lookbehind:!0},{pattern:/([(,?]\s*)\b(?:array(?!\s*\()|bool|callable|(?:false|null)(?=\s*\|)|float|int|iterable|mixed|object|self|static|string)\b(?=\s*\$)/i,alias:"type-hint",greedy:!0,lookbehind:!0},{pattern:/(\)\s*:\s*(?:\?\s*)?)\b(?:array(?!\s*\()|bool|callable|(?:false|null)(?=\s*\|)|float|int|iterable|mixed|object|self|static|string|void)\b/i,alias:"return-type",greedy:!0,lookbehind:!0},{pattern:/\b(?:array(?!\s*\()|bool|float|int|iterable|mixed|object|string|void)\b/i,alias:"type-declaration",greedy:!0},{pattern:/(\|\s*)(?:false|null)\b|\b(?:false|null)(?=\s*\|)/i,alias:"type-declaration",greedy:!0,lookbehind:!0},{pattern:/\b(?:parent|self|static)(?=\s*::)/i,alias:"static-context",greedy:!0},{pattern:/(\byield\s+)from\b/i,lookbehind:!0},/\bclass\b/i,{pattern:/((?:^|[^\s>:]|(?:^|[^-])>|(?:^|[^:]):)\s*)\b(?:abstract|and|array|as|break|callable|case|catch|clone|const|continue|declare|default|die|do|echo|else|elseif|empty|enddeclare|endfor|endforeach|endif|endswitch|endwhile|enum|eval|exit|extends|final|finally|fn|for|foreach|function|global|goto|if|implements|include|include_once|instanceof|insteadof|interface|isset|list|match|namespace|new|or|parent|print|private|protected|public|require|require_once|return|self|static|switch|throw|trait|try|unset|use|var|while|xor|yield|__halt_compiler)\b/i,lookbehind:!0}],"argument-name":{pattern:/([(,]\s+)\b[a-z_]\w*(?=\s*:(?!:))/i,lookbehind:!0},"class-name":[{pattern:/(\b(?:extends|implements|instanceof|new(?!\s+self|\s+static))\s+|\bcatch\s*\()\b[a-z_]\w*(?!\\)\b/i,greedy:!0,lookbehind:!0},{pattern:/(\|\s*)\b[a-z_]\w*(?!\\)\b/i,greedy:!0,lookbehind:!0},{pattern:/\b[a-z_]\w*(?!\\)\b(?=\s*\|)/i,greedy:!0},{pattern:/(\|\s*)(?:\\?\b[a-z_]\w*)+\b/i,alias:"class-name-fully-qualified",greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/(?:\\?\b[a-z_]\w*)+\b(?=\s*\|)/i,alias:"class-name-fully-qualified",greedy:!0,inside:{punctuation:/\\/}},{pattern:/(\b(?:extends|implements|instanceof|new(?!\s+self\b|\s+static\b))\s+|\bcatch\s*\()(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,alias:"class-name-fully-qualified",greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/\b[a-z_]\w*(?=\s*\$)/i,alias:"type-declaration",greedy:!0},{pattern:/(?:\\?\b[a-z_]\w*)+(?=\s*\$)/i,alias:["class-name-fully-qualified","type-declaration"],greedy:!0,inside:{punctuation:/\\/}},{pattern:/\b[a-z_]\w*(?=\s*::)/i,alias:"static-context",greedy:!0},{pattern:/(?:\\?\b[a-z_]\w*)+(?=\s*::)/i,alias:["class-name-fully-qualified","static-context"],greedy:!0,inside:{punctuation:/\\/}},{pattern:/([(,?]\s*)[a-z_]\w*(?=\s*\$)/i,alias:"type-hint",greedy:!0,lookbehind:!0},{pattern:/([(,?]\s*)(?:\\?\b[a-z_]\w*)+(?=\s*\$)/i,alias:["class-name-fully-qualified","type-hint"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/(\)\s*:\s*(?:\?\s*)?)\b[a-z_]\w*(?!\\)\b/i,alias:"return-type",greedy:!0,lookbehind:!0},{pattern:/(\)\s*:\s*(?:\?\s*)?)(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,alias:["class-name-fully-qualified","return-type"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}}],constant:l,function:{pattern:/(^|[^\\\w])\\?[a-z_](?:[\w\\]*\w)?(?=\s*\()/i,lookbehind:!0,inside:{punctuation:/\\/}},property:{pattern:/(->\s*)\w+/,lookbehind:!0},number:u,operator:c,punctuation:p};var f={pattern:/\{\$(?:\{(?:\{[^{}]+\}|[^{}]+)\}|[^{}])+\}|(^|[^\\{])\$+(?:\w+(?:\[[^\r\n\[\]]+\]|->\w+)?)/,lookbehind:!0,inside:i.languages.php},m=[{pattern:/<<<'([^']+)'[\r\n](?:.*[\r\n])*?\1;/,alias:"nowdoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<<'[^']+'|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<'?|[';]$/}}}},{pattern:/<<<(?:"([^"]+)"[\r\n](?:.*[\r\n])*?\1;|([a-z_]\w*)[\r\n](?:.*[\r\n])*?\2;)/i,alias:"heredoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<<(?:"[^"]+"|[a-z_]\w*)|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<"?|[";]$/}},interpolation:f}},{pattern:/`(?:\\[\s\S]|[^\\`])*`/,alias:"backtick-quoted-string",greedy:!0},{pattern:/'(?:\\[\s\S]|[^\\'])*'/,alias:"single-quoted-string",greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,alias:"double-quoted-string",greedy:!0,inside:{interpolation:f}}];i.languages.insertBefore("php","variable",{string:m,attribute:{pattern:/#\[(?:[^"'\/#]|\/(?![*/])|\/\/.*$|#(?!\[).*$|\/\*(?:[^*]|\*(?!\/))*\*\/|"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*')+\](?=\s*[a-z$#])/im,greedy:!0,inside:{"attribute-content":{pattern:/^(#\[)[\s\S]+(?=\]$)/,lookbehind:!0,inside:{comment:o,string:m,"attribute-class-name":[{pattern:/([^:]|^)\b[a-z_]\w*(?!\\)\b/i,alias:"class-name",greedy:!0,lookbehind:!0},{pattern:/([^:]|^)(?:\\?\b[a-z_]\w*)+/i,alias:["class-name","class-name-fully-qualified"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}}],constant:l,number:u,operator:c,punctuation:p}},delimiter:{pattern:/^#\[|\]$/,alias:"punctuation"}}}}),i.hooks.add("before-tokenize",function(h){if(/<\?/.test(h.code)){var S=/<\?(?:[^"'/#]|\/(?![*/])|("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|(?:\/\/|#(?!\[))(?:[^?\n\r]|\?(?!>))*(?=$|\?>|[\r\n])|#\[|\/\*(?:[^*]|\*(?!\/))*(?:\*\/|$))*?(?:\?>|$)/g;i.languages["markup-templating"].buildPlaceholders(h,"php",S)}}),i.hooks.add("after-tokenize",function(h){i.languages["markup-templating"].tokenizePlaceholders(h,"php")})})(n)}return zp}var $p,L_;function bj(){if(L_)return $p;L_=1;var e=an(),t=Ts();$p=n,n.displayName="latte",n.aliases=[];function n(i){i.register(e),i.register(t),(function(o){o.languages.latte={comment:/^\{\*[\s\S]*/,"latte-tag":{pattern:/(^\{(?:\/(?=[a-z]))?)(?:[=_]|[a-z]\w*\b(?!\())/i,lookbehind:!0,alias:"important"},delimiter:{pattern:/^\{\/?|\}$/,alias:"punctuation"},php:{pattern:/\S(?:[\s\S]*\S)?/,alias:"language-php",inside:o.languages.php}};var l=o.languages.extend("markup",{});o.languages.insertBefore("inside","attr-value",{"n-attr":{pattern:/n:[\w-]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+))?/,inside:{"attr-name":{pattern:/^[^\s=]+/,alias:"important"},"attr-value":{pattern:/=[\s\S]+/,inside:{punctuation:[/^=/,{pattern:/^(\s*)["']|["']$/,lookbehind:!0}],php:{pattern:/\S(?:[\s\S]*\S)?/,inside:o.languages.php}}}}}},l.tag),o.hooks.add("before-tokenize",function(u){if(u.language==="latte"){var c=/\{\*[\s\S]*?\*\}|\{[^'"\s{}*](?:[^"'/{}]|\/(?![*/])|("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|\/\*(?:[^*]|\*(?!\/))*\*\/)*\}/g;o.languages["markup-templating"].buildPlaceholders(u,"latte",c),u.grammar=l}}),o.hooks.add("after-tokenize",function(u){o.languages["markup-templating"].tokenizePlaceholders(u,"latte")})})(i)}return $p}var qp,D_;function yj(){if(D_)return qp;D_=1,qp=e,e.displayName="less",e.aliases=[];function e(t){t.languages.less=t.languages.extend("css",{comment:[/\/\*[\s\S]*?\*\//,{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0}],atrule:{pattern:/@[\w-](?:\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};@\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{variable:/@+[\w-]+/}},property:/(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/,operator:/[+\-*\/]/}),t.languages.insertBefore("less","property",{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-].*?(?=[(;])/,lookbehind:!0,alias:"function"}})}return qp}var Gp,M_;function yh(){if(M_)return Gp;M_=1,Gp=e,e.displayName="scheme",e.aliases=[];function e(t){(function(n){n.languages.scheme={comment:/;.*|#;\s*(?:\((?:[^()]|\([^()]*\))*\)|\[(?:[^\[\]]|\[[^\[\]]*\])*\])|#\|(?:[^#|]|#(?!\|)|\|(?!#)|#\|(?:[^#|]|#(?!\|)|\|(?!#))*\|#)*\|#/,string:{pattern:/"(?:[^"\\]|\\.)*"/,greedy:!0},symbol:{pattern:/'[^()\[\]#'\s]+/,greedy:!0},char:{pattern:/#\\(?:[ux][a-fA-F\d]+\b|[-a-zA-Z]+\b|[\uD800-\uDBFF][\uDC00-\uDFFF]|\S)/,greedy:!0},"lambda-parameter":[{pattern:/((?:^|[^'`#])[(\[]lambda\s+)(?:[^|()\[\]'\s]+|\|(?:[^\\|]|\\.)*\|)/,lookbehind:!0},{pattern:/((?:^|[^'`#])[(\[]lambda\s+[(\[])[^()\[\]']+/,lookbehind:!0}],keyword:{pattern:/((?:^|[^'`#])[(\[])(?:begin|case(?:-lambda)?|cond(?:-expand)?|define(?:-library|-macro|-record-type|-syntax|-values)?|defmacro|delay(?:-force)?|do|else|except|export|guard|if|import|include(?:-ci|-library-declarations)?|lambda|let(?:rec)?(?:-syntax|-values|\*)?|let\*-values|only|parameterize|prefix|(?:quasi-?)?quote|rename|set!|syntax-(?:case|rules)|unless|unquote(?:-splicing)?|when)(?=[()\[\]\s]|$)/,lookbehind:!0},builtin:{pattern:/((?:^|[^'`#])[(\[])(?:abs|and|append|apply|assoc|ass[qv]|binary-port\?|boolean=?\?|bytevector(?:-append|-copy|-copy!|-length|-u8-ref|-u8-set!|\?)?|caar|cadr|call-with-(?:current-continuation|port|values)|call\/cc|car|cdar|cddr|cdr|ceiling|char(?:->integer|-ready\?|\?|<\?|<=\?|=\?|>\?|>=\?)|close-(?:input-port|output-port|port)|complex\?|cons|current-(?:error|input|output)-port|denominator|dynamic-wind|eof-object\??|eq\?|equal\?|eqv\?|error|error-object(?:-irritants|-message|\?)|eval|even\?|exact(?:-integer-sqrt|-integer\?|\?)?|expt|features|file-error\?|floor(?:-quotient|-remainder|\/)?|flush-output-port|for-each|gcd|get-output-(?:bytevector|string)|inexact\??|input-port(?:-open\?|\?)|integer(?:->char|\?)|lcm|length|list(?:->string|->vector|-copy|-ref|-set!|-tail|\?)?|make-(?:bytevector|list|parameter|string|vector)|map|max|member|memq|memv|min|modulo|negative\?|newline|not|null\?|number(?:->string|\?)|numerator|odd\?|open-(?:input|output)-(?:bytevector|string)|or|output-port(?:-open\?|\?)|pair\?|peek-char|peek-u8|port\?|positive\?|procedure\?|quotient|raise|raise-continuable|rational\?|rationalize|read-(?:bytevector|bytevector!|char|error\?|line|string|u8)|real\?|remainder|reverse|round|set-c[ad]r!|square|string(?:->list|->number|->symbol|->utf8|->vector|-append|-copy|-copy!|-fill!|-for-each|-length|-map|-ref|-set!|\?|<\?|<=\?|=\?|>\?|>=\?)?|substring|symbol(?:->string|\?|=\?)|syntax-error|textual-port\?|truncate(?:-quotient|-remainder|\/)?|u8-ready\?|utf8->string|values|vector(?:->list|->string|-append|-copy|-copy!|-fill!|-for-each|-length|-map|-ref|-set!|\?)?|with-exception-handler|write-(?:bytevector|char|string|u8)|zero\?)(?=[()\[\]\s]|$)/,lookbehind:!0},operator:{pattern:/((?:^|[^'`#])[(\[])(?:[-+*%/]|[<>]=?|=>?)(?=[()\[\]\s]|$)/,lookbehind:!0},number:{pattern:RegExp(i({"":/\d+(?:\/\d+)|(?:\d+(?:\.\d*)?|\.\d+)(?:[esfdl][+-]?\d+)?/.source,"":/[+-]?|[+-](?:inf|nan)\.0/.source,"":/[+-](?:|(?:inf|nan)\.0)?i/.source,"":/(?:@|)?|/.source,"":/(?:#d(?:#[ei])?|#[ei](?:#d)?)?/.source,"":/[0-9a-f]+(?:\/[0-9a-f]+)?/.source,"":/[+-]?|[+-](?:inf|nan)\.0/.source,"":/[+-](?:|(?:inf|nan)\.0)?i/.source,"":/(?:@|)?|/.source,"":/#[box](?:#[ei])?|(?:#[ei])?#[box]/.source,"":/(^|[()\[\]\s])(?:|)(?=[()\[\]\s]|$)/.source}),"i"),lookbehind:!0},boolean:{pattern:/(^|[()\[\]\s])#(?:[ft]|false|true)(?=[()\[\]\s]|$)/,lookbehind:!0},function:{pattern:/((?:^|[^'`#])[(\[])(?:[^|()\[\]'\s]+|\|(?:[^\\|]|\\.)*\|)(?=[()\[\]\s]|$)/,lookbehind:!0},identifier:{pattern:/(^|[()\[\]\s])\|(?:[^\\|]|\\.)*\|(?=[()\[\]\s]|$)/,lookbehind:!0,greedy:!0},punctuation:/[()\[\]']/};function i(o){for(var l in o)o[l]=o[l].replace(/<[\w\s]+>/g,function(u){return"(?:"+o[u].trim()+")"});return o[l]}})(t)}return Gp}var Hp,F_;function Ej(){if(F_)return Hp;F_=1;var e=yh();Hp=t,t.displayName="lilypond",t.aliases=[];function t(n){n.register(e),(function(i){for(var o=/\((?:[^();"#\\]|\\[\s\S]|;.*(?!.)|"(?:[^"\\]|\\.)*"|#(?:\{(?:(?!#\})[\s\S])*#\}|[^{])|)*\)/.source,l=5,u=0;u/g,function(){return o});o=o.replace(//g,/[^\s\S]/.source);var c=i.languages.lilypond={comment:/%(?:(?!\{).*|\{[\s\S]*?%\})/,"embedded-scheme":{pattern:RegExp(/(^|[=\s])#(?:"(?:[^"\\]|\\.)*"|[^\s()"]*(?:[^\s()]|))/.source.replace(//g,function(){return o}),"m"),lookbehind:!0,greedy:!0,inside:{scheme:{pattern:/^(#)[\s\S]+$/,lookbehind:!0,alias:"language-scheme",inside:{"embedded-lilypond":{pattern:/#\{[\s\S]*?#\}/,greedy:!0,inside:{punctuation:/^#\{|#\}$/,lilypond:{pattern:/[\s\S]+/,alias:"language-lilypond",inside:null}}},rest:i.languages.scheme}},punctuation:/#/}},string:{pattern:/"(?:[^"\\]|\\.)*"/,greedy:!0},"class-name":{pattern:/(\\new\s+)[\w-]+/,lookbehind:!0},keyword:{pattern:/\\[a-z][-\w]*/i,inside:{punctuation:/^\\/}},operator:/[=|]|<<|>>/,punctuation:{pattern:/(^|[a-z\d])(?:'+|,+|[_^]?-[_^]?(?:[-+^!>._]|(?=\d))|[_^]\.?|[.!])|[{}()[\]<>^~]|\\[()[\]<>\\!]|--|__/,lookbehind:!0},number:/\b\d+(?:\/\d+)?\b/};c["embedded-scheme"].inside.scheme.inside["embedded-lilypond"].inside.lilypond.inside=c,i.languages.ly=c})(n)}return Hp}var Wp,P_;function Sj(){if(P_)return Wp;P_=1;var e=an();Wp=t,t.displayName="liquid",t.aliases=[];function t(n){n.register(e),n.languages.liquid={comment:{pattern:/(^\{%\s*comment\s*%\})[\s\S]+(?=\{%\s*endcomment\s*%\}$)/,lookbehind:!0},delimiter:{pattern:/^\{(?:\{\{|[%\{])-?|-?(?:\}\}|[%\}])\}$/,alias:"punctuation"},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},keyword:/\b(?:as|assign|break|(?:end)?(?:capture|case|comment|for|form|if|paginate|raw|style|tablerow|unless)|continue|cycle|decrement|echo|else|elsif|in|include|increment|limit|liquid|offset|range|render|reversed|section|when|with)\b/,object:/\b(?:address|all_country_option_tags|article|block|blog|cart|checkout|collection|color|country|country_option_tags|currency|current_page|current_tags|customer|customer_address|date|discount_allocation|discount_application|external_video|filter|filter_value|font|forloop|fulfillment|generic_file|gift_card|group|handle|image|line_item|link|linklist|localization|location|measurement|media|metafield|model|model_source|order|page|page_description|page_image|page_title|part|policy|product|product_option|recommendations|request|robots|routes|rule|script|search|selling_plan|selling_plan_allocation|selling_plan_group|shipping_method|shop|shop_locale|sitemap|store_availability|tax_line|template|theme|transaction|unit_price_measurement|user_agent|variant|video|video_source)\b/,function:[{pattern:/(\|\s*)\w+/,lookbehind:!0,alias:"filter"},{pattern:/(\.\s*)(?:first|last|size)/,lookbehind:!0}],boolean:/\b(?:false|nil|true)\b/,range:{pattern:/\.\./,alias:"operator"},number:/\b\d+(?:\.\d+)?\b/,operator:/[!=]=|<>|[<>]=?|[|?:=-]|\b(?:and|contains(?=\s)|or)\b/,punctuation:/[.,\[\]()]/,empty:{pattern:/\bempty\b/,alias:"keyword"}},n.hooks.add("before-tokenize",function(i){var o=/\{%\s*comment\s*%\}[\s\S]*?\{%\s*endcomment\s*%\}|\{(?:%[\s\S]*?%|\{\{[\s\S]*?\}\}|\{[\s\S]*?\})\}/g,l=!1;n.languages["markup-templating"].buildPlaceholders(i,"liquid",o,function(u){var c=/^\{%-?\s*(\w+)/.exec(u);if(c){var p=c[1];if(p==="raw"&&!l)return l=!0,!0;if(p==="endraw")return l=!1,!0}return!l})}),n.hooks.add("after-tokenize",function(i){n.languages["markup-templating"].tokenizePlaceholders(i,"liquid")})}return Wp}var Vp,U_;function vj(){if(U_)return Vp;U_=1,Vp=e,e.displayName="lisp",e.aliases=[];function e(t){(function(n){function i(k){return RegExp(/(\()/.source+"(?:"+k+")"+/(?=[\s\)])/.source)}function o(k){return RegExp(/([\s([])/.source+"(?:"+k+")"+/(?=[\s)])/.source)}var l=/(?!\d)[-+*/~!@$%^=<>{}\w]+/.source,u="&"+l,c="(\\()",p="(?=\\))",f="(?=\\s)",m=/(?:[^()]|\((?:[^()]|\((?:[^()]|\((?:[^()]|\((?:[^()]|\([^()]*\))*\))*\))*\))*\))*/.source,h={heading:{pattern:/;;;.*/,alias:["comment","title"]},comment:/;.*/,string:{pattern:/"(?:[^"\\]|\\.)*"/,greedy:!0,inside:{argument:/[-A-Z]+(?=[.,\s])/,symbol:RegExp("`"+l+"'")}},"quoted-symbol":{pattern:RegExp("#?'"+l),alias:["variable","symbol"]},"lisp-property":{pattern:RegExp(":"+l),alias:"property"},splice:{pattern:RegExp(",@?"+l),alias:["symbol","variable"]},keyword:[{pattern:RegExp(c+"(?:and|(?:cl-)?letf|cl-loop|cond|cons|error|if|(?:lexical-)?let\\*?|message|not|null|or|provide|require|setq|unless|use-package|when|while)"+f),lookbehind:!0},{pattern:RegExp(c+"(?:append|by|collect|concat|do|finally|for|in|return)"+f),lookbehind:!0}],declare:{pattern:i(/declare/.source),lookbehind:!0,alias:"keyword"},interactive:{pattern:i(/interactive/.source),lookbehind:!0,alias:"keyword"},boolean:{pattern:o(/nil|t/.source),lookbehind:!0},number:{pattern:o(/[-+]?\d+(?:\.\d*)?/.source),lookbehind:!0},defvar:{pattern:RegExp(c+"def(?:const|custom|group|var)\\s+"+l),lookbehind:!0,inside:{keyword:/^def[a-z]+/,variable:RegExp(l)}},defun:{pattern:RegExp(c+/(?:cl-)?(?:defmacro|defun\*?)\s+/.source+l+/\s+\(/.source+m+/\)/.source),lookbehind:!0,greedy:!0,inside:{keyword:/^(?:cl-)?def\S+/,arguments:null,function:{pattern:RegExp("(^\\s)"+l),lookbehind:!0},punctuation:/[()]/}},lambda:{pattern:RegExp(c+"lambda\\s+\\(\\s*(?:&?"+l+"(?:\\s+&?"+l+")*\\s*)?\\)"),lookbehind:!0,greedy:!0,inside:{keyword:/^lambda/,arguments:null,punctuation:/[()]/}},car:{pattern:RegExp(c+l),lookbehind:!0},punctuation:[/(?:['`,]?\(|[)\[\]])/,{pattern:/(\s)\.(?=\s)/,lookbehind:!0}]},S={"lisp-marker":RegExp(u),varform:{pattern:RegExp(/\(/.source+l+/\s+(?=\S)/.source+m+/\)/.source),inside:h},argument:{pattern:RegExp(/(^|[\s(])/.source+l),lookbehind:!0,alias:"variable"},rest:h},E="\\S+(?:\\s+\\S+)*",v={pattern:RegExp(c+m+p),lookbehind:!0,inside:{"rest-vars":{pattern:RegExp("&(?:body|rest)\\s+"+E),inside:S},"other-marker-vars":{pattern:RegExp("&(?:aux|optional)\\s+"+E),inside:S},keys:{pattern:RegExp("&key\\s+"+E+"(?:\\s+&allow-other-keys)?"),inside:S},argument:{pattern:RegExp(l),alias:"variable"},punctuation:/[()]/}};h.lambda.inside.arguments=v,h.defun.inside.arguments=n.util.clone(v),h.defun.inside.arguments.inside.sublist=v,n.languages.lisp=h,n.languages.elisp=h,n.languages.emacs=h,n.languages["emacs-lisp"]=h})(t)}return Vp}var Yp,B_;function kj(){if(B_)return Yp;B_=1,Yp=e,e.displayName="livescript",e.aliases=[];function e(t){t.languages.livescript={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?\*\//,lookbehind:!0},{pattern:/(^|[^\\])#.*/,lookbehind:!0}],"interpolated-string":{pattern:/(^|[^"])("""|")(?:\\[\s\S]|(?!\2)[^\\])*\2(?!")/,lookbehind:!0,greedy:!0,inside:{variable:{pattern:/(^|[^\\])#[a-z_](?:-?[a-z]|[\d_])*/m,lookbehind:!0},interpolation:{pattern:/(^|[^\\])#\{[^}]+\}/m,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^#\{|\}$/,alias:"variable"}}},string:/[\s\S]+/}},string:[{pattern:/('''|')(?:\\[\s\S]|(?!\1)[^\\])*\1/,greedy:!0},{pattern:/<\[[\s\S]*?\]>/,greedy:!0},/\\[^\s,;\])}]+/],regex:[{pattern:/\/\/(?:\[[^\r\n\]]*\]|\\.|(?!\/\/)[^\\\[])+\/\/[gimyu]{0,5}/,greedy:!0,inside:{comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0}}},{pattern:/\/(?:\[[^\r\n\]]*\]|\\.|[^/\\\r\n\[])+\/[gimyu]{0,5}/,greedy:!0}],keyword:{pattern:/(^|(?!-).)\b(?:break|case|catch|class|const|continue|default|do|else|extends|fallthrough|finally|for(?: ever)?|function|if|implements|it|let|loop|new|null|otherwise|own|return|super|switch|that|then|this|throw|try|unless|until|var|void|when|while|yield)(?!-)\b/m,lookbehind:!0},"keyword-operator":{pattern:/(^|[^-])\b(?:(?:delete|require|typeof)!|(?:and|by|delete|export|from|import(?: all)?|in|instanceof|is(?: not|nt)?|not|of|or|til|to|typeof|with|xor)(?!-)\b)/m,lookbehind:!0,alias:"operator"},boolean:{pattern:/(^|[^-])\b(?:false|no|off|on|true|yes)(?!-)\b/m,lookbehind:!0},argument:{pattern:/(^|(?!\.&\.)[^&])&(?!&)\d*/m,lookbehind:!0,alias:"variable"},number:/\b(?:\d+~[\da-z]+|\d[\d_]*(?:\.\d[\d_]*)?(?:[a-z]\w*)?)/i,identifier:/[a-z_](?:-?[a-z]|[\d_])*/i,operator:[{pattern:/( )\.(?= )/,lookbehind:!0},/\.(?:[=~]|\.\.?)|\.(?:[&|^]|<<|>>>?)\.|:(?:=|:=?)|&&|\|[|>]|<(?:<[>=?]?|-(?:->?|>)?|\+\+?|@@?|%%?|\*\*?|!(?:~?=|--?>|~?~>)?|~(?:~?>|=)?|==?|\^\^?|[\/?]/],punctuation:/[(){}\[\]|.,:;`]/},t.languages.livescript["interpolated-string"].inside.interpolation.inside.rest=t.languages.livescript}return Yp}var Kp,j_;function _j(){if(j_)return Kp;j_=1,Kp=e,e.displayName="llvm",e.aliases=[];function e(t){(function(n){n.languages.llvm={comment:/;.*/,string:{pattern:/"[^"]*"/,greedy:!0},boolean:/\b(?:false|true)\b/,variable:/[%@!#](?:(?!\d)(?:[-$.\w]|\\[a-f\d]{2})+|\d+)/i,label:/(?!\d)(?:[-$.\w]|\\[a-f\d]{2})+:/i,type:{pattern:/\b(?:double|float|fp128|half|i[1-9]\d*|label|metadata|ppc_fp128|token|void|x86_fp80|x86_mmx)\b/,alias:"class-name"},keyword:/\b[a-z_][a-z_0-9]*\b/,number:/[+-]?\b\d+(?:\.\d+)?(?:[eE][+-]?\d+)?\b|\b0x[\dA-Fa-f]+\b|\b0xK[\dA-Fa-f]{20}\b|\b0x[ML][\dA-Fa-f]{32}\b|\b0xH[\dA-Fa-f]{4}\b/,punctuation:/[{}[\];(),.!*=<>]/}})(t)}return Kp}var Zp,z_;function wj(){if(z_)return Zp;z_=1,Zp=e,e.displayName="log",e.aliases=[];function e(t){t.languages.log={string:{pattern:/"(?:[^"\\\r\n]|\\.)*"|'(?![st] | \w)(?:[^'\\\r\n]|\\.)*'/,greedy:!0},exception:{pattern:/(^|[^\w.])[a-z][\w.]*(?:Error|Exception):.*(?:(?:\r\n?|\n)[ \t]*(?:at[ \t].+|\.{3}.*|Caused by:.*))+(?:(?:\r\n?|\n)[ \t]*\.\.\. .*)?/,lookbehind:!0,greedy:!0,alias:["javastacktrace","language-javastacktrace"],inside:t.languages.javastacktrace||{keyword:/\bat\b/,function:/[a-z_][\w$]*(?=\()/,punctuation:/[.:()]/}},level:[{pattern:/\b(?:ALERT|CRIT|CRITICAL|EMERG|EMERGENCY|ERR|ERROR|FAILURE|FATAL|SEVERE)\b/,alias:["error","important"]},{pattern:/\b(?:WARN|WARNING|WRN)\b/,alias:["warning","important"]},{pattern:/\b(?:DISPLAY|INF|INFO|NOTICE|STATUS)\b/,alias:["info","keyword"]},{pattern:/\b(?:DBG|DEBUG|FINE)\b/,alias:["debug","keyword"]},{pattern:/\b(?:FINER|FINEST|TRACE|TRC|VERBOSE|VRB)\b/,alias:["trace","comment"]}],property:{pattern:/((?:^|[\]|])[ \t]*)[a-z_](?:[\w-]|\b\/\b)*(?:[. ]\(?\w(?:[\w-]|\b\/\b)*\)?)*:(?=\s)/im,lookbehind:!0},separator:{pattern:/(^|[^-+])-{3,}|={3,}|\*{3,}|- - /m,lookbehind:!0,alias:"comment"},url:/\b(?:file|ftp|https?):\/\/[^\s|,;'"]*[^\s|,;'">.]/,email:{pattern:/(^|\s)[-\w+.]+@[a-z][a-z0-9-]*(?:\.[a-z][a-z0-9-]*)+(?=\s)/,lookbehind:!0,alias:"url"},"ip-address":{pattern:/\b(?:\d{1,3}(?:\.\d{1,3}){3})\b/,alias:"constant"},"mac-address":{pattern:/\b[a-f0-9]{2}(?::[a-f0-9]{2}){5}\b/i,alias:"constant"},domain:{pattern:/(^|\s)[a-z][a-z0-9-]*(?:\.[a-z][a-z0-9-]*)*\.[a-z][a-z0-9-]+(?=\s)/,lookbehind:!0,alias:"constant"},uuid:{pattern:/\b[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\b/i,alias:"constant"},hash:{pattern:/\b(?:[a-f0-9]{32}){1,2}\b/i,alias:"constant"},"file-path":{pattern:/\b[a-z]:[\\/][^\s|,;:(){}\[\]"']+|(^|[\s:\[\](>|])\.{0,2}\/\w[^\s|,;:(){}\[\]"']*/i,lookbehind:!0,greedy:!0,alias:"string"},date:{pattern:RegExp(/\b\d{4}[-/]\d{2}[-/]\d{2}(?:T(?=\d{1,2}:)|(?=\s\d{1,2}:))/.source+"|"+/\b\d{1,4}[-/ ](?:\d{1,2}|Apr|Aug|Dec|Feb|Jan|Jul|Jun|Mar|May|Nov|Oct|Sep)[-/ ]\d{2,4}T?\b/.source+"|"+/\b(?:(?:Fri|Mon|Sat|Sun|Thu|Tue|Wed)(?:\s{1,2}(?:Apr|Aug|Dec|Feb|Jan|Jul|Jun|Mar|May|Nov|Oct|Sep))?|Apr|Aug|Dec|Feb|Jan|Jul|Jun|Mar|May|Nov|Oct|Sep)\s{1,2}\d{1,2}\b/.source,"i"),alias:"number"},time:{pattern:/\b\d{1,2}:\d{1,2}:\d{1,2}(?:[.,:]\d+)?(?:\s?[+-]\d{2}:?\d{2}|Z)?\b/,alias:"number"},boolean:/\b(?:false|null|true)\b/i,number:{pattern:/(^|[^.\w])(?:0x[a-f0-9]+|0o[0-7]+|0b[01]+|v?\d[\da-f]*(?:\.\d+)*(?:e[+-]?\d+)?[a-z]{0,3}\b)\b(?!\.\w)/i,lookbehind:!0},operator:/[;:?<=>~/@!$%&+\-|^(){}*#]/,punctuation:/[\[\].,]/}}return Zp}var Xp,$_;function Tj(){if($_)return Xp;$_=1,Xp=e,e.displayName="lolcode",e.aliases=[];function e(t){t.languages.lolcode={comment:[/\bOBTW\s[\s\S]*?\sTLDR\b/,/\bBTW.+/],string:{pattern:/"(?::.|[^":])*"/,inside:{variable:/:\{[^}]+\}/,symbol:[/:\([a-f\d]+\)/i,/:\[[^\]]+\]/,/:[)>o":]/]},greedy:!0},number:/(?:\B-)?(?:\b\d+(?:\.\d*)?|\B\.\d+)/,symbol:{pattern:/(^|\s)(?:A )?(?:BUKKIT|NOOB|NUMBAR|NUMBR|TROOF|YARN)(?=\s|,|$)/,lookbehind:!0,inside:{keyword:/A(?=\s)/}},label:{pattern:/((?:^|\s)(?:IM IN YR|IM OUTTA YR) )[a-zA-Z]\w*/,lookbehind:!0,alias:"string"},function:{pattern:/((?:^|\s)(?:HOW IZ I|I IZ|IZ) )[a-zA-Z]\w*/,lookbehind:!0},keyword:[{pattern:/(^|\s)(?:AN|FOUND YR|GIMMEH|GTFO|HAI|HAS A|HOW IZ I|I HAS A|I IZ|IF U SAY SO|IM IN YR|IM OUTTA YR|IS NOW(?: A)?|ITZ(?: A)?|IZ|KTHX|KTHXBYE|LIEK(?: A)?|MAEK|MEBBE|MKAY|NERFIN|NO WAI|O HAI IM|O RLY\?|OIC|OMG|OMGWTF|R|SMOOSH|SRS|TIL|UPPIN|VISIBLE|WILE|WTF\?|YA RLY|YR)(?=\s|,|$)/,lookbehind:!0},/'Z(?=\s|,|$)/],boolean:{pattern:/(^|\s)(?:FAIL|WIN)(?=\s|,|$)/,lookbehind:!0},variable:{pattern:/(^|\s)IT(?=\s|,|$)/,lookbehind:!0},operator:{pattern:/(^|\s)(?:NOT|BOTH SAEM|DIFFRINT|(?:ALL|ANY|BIGGR|BOTH|DIFF|EITHER|MOD|PRODUKT|QUOSHUNT|SMALLR|SUM|WON) OF)(?=\s|,|$)/,lookbehind:!0},punctuation:/\.{3}|…|,|!/}}return Xp}var Qp,q_;function xj(){if(q_)return Qp;q_=1,Qp=e,e.displayName="magma",e.aliases=[];function e(t){t.languages.magma={output:{pattern:/^(>.*(?:\r(?:\n|(?!\n))|\n))(?!>)(?:.+|(?:\r(?:\n|(?!\n))|\n)(?!>).*)(?:(?:\r(?:\n|(?!\n))|\n)(?!>).*)*/m,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?\*\//,greedy:!0},string:{pattern:/(^|[^\\"])"(?:[^\r\n\\"]|\\.)*"/,lookbehind:!0,greedy:!0},keyword:/\b(?:_|adj|and|assert|assert2|assert3|assigned|break|by|case|cat|catch|clear|cmpeq|cmpne|continue|declare|default|delete|diff|div|do|elif|else|end|eq|error|eval|exists|exit|for|forall|forward|fprintf|freeze|function|ge|gt|if|iload|import|in|intrinsic|is|join|le|load|local|lt|meet|mod|ne|not|notadj|notin|notsubset|or|print|printf|procedure|quit|random|read|readi|repeat|require|requirege|requirerange|restore|return|save|sdiff|select|subset|then|time|to|try|until|vprint|vprintf|vtime|when|where|while|xor)\b/,boolean:/\b(?:false|true)\b/,generator:{pattern:/\b[a-z_]\w*(?=\s*<)/i,alias:"class-name"},function:/\b[a-z_]\w*(?=\s*\()/i,number:{pattern:/(^|[^\w.]|\.\.)(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?(?:_[a-z]?)?(?=$|[^\w.]|\.\.)/,lookbehind:!0},operator:/->|[-+*/^~!|#=]|:=|\.\./,punctuation:/[()[\]{}<>,;.:]/}}return Qp}var Jp,G_;function Aj(){if(G_)return Jp;G_=1,Jp=e,e.displayName="makefile",e.aliases=[];function e(t){t.languages.makefile={comment:{pattern:/(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/,lookbehind:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"builtin-target":{pattern:/\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,alias:"builtin"},target:{pattern:/^(?:[^:=\s]|[ \t]+(?![\s:]))+(?=\s*:(?!=))/m,alias:"symbol",inside:{variable:/\$+(?:(?!\$)[^(){}:#=\s]+|(?=[({]))/}},variable:/\$+(?:(?!\$)[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,keyword:/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,function:{pattern:/(\()(?:abspath|addsuffix|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:list|s)?)(?=[ \t])/,lookbehind:!0},operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/}}return Jp}var ef,H_;function Rj(){if(H_)return ef;H_=1,ef=e,e.displayName="markdown",e.aliases=["md"];function e(t){(function(n){var i=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function o(S){return S=S.replace(//g,function(){return i}),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+S+")")}var l=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,u=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,function(){return l}),c=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source;n.languages.markdown=n.languages.extend("markup",{}),n.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:n.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+u+c+"(?:"+u+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+u+c+")(?:"+u+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(l),inside:n.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+u+")"+c+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+u+"$"),inside:{"table-header":{pattern:RegExp(l),alias:"important",inside:n.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:o(/\b__(?:(?!_)|_(?:(?!_))+_)+__\b|\*\*(?:(?!\*)|\*(?:(?!\*))+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:o(/\b_(?:(?!_)|__(?:(?!_))+__)+_\b|\*(?:(?!\*)|\*\*(?:(?!\*))+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:o(/(~~?)(?:(?!~))+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:o(/!?\[(?:(?!\]))+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\]))+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach(function(S){["url","bold","italic","strike","code-snippet"].forEach(function(E){S!==E&&(n.languages.markdown[S].inside.content.inside[E]=n.languages.markdown[E])})}),n.hooks.add("after-tokenize",function(S){if(S.language!=="markdown"&&S.language!=="md")return;function E(v){if(!(!v||typeof v=="string"))for(var k=0,T=v.length;k",quot:'"'},m=String.fromCodePoint||String.fromCharCode;function h(S){var E=S.replace(p,"");return E=E.replace(/&(\w{1,8}|#x?[\da-f]{1,8});/gi,function(v,k){if(k=k.toLowerCase(),k[0]==="#"){var T;return k[1]==="x"?T=parseInt(k.slice(2),16):T=Number(k.slice(1)),m(T)}else{var N=f[k];return N||v}}),E}n.languages.md=n.languages.markdown})(t)}return ef}var tf,W_;function Nj(){if(W_)return tf;W_=1,tf=e,e.displayName="matlab",e.aliases=[];function e(t){t.languages.matlab={comment:[/%\{[\s\S]*?\}%/,/%.+/],string:{pattern:/\B'(?:''|[^'\r\n])*'/,greedy:!0},number:/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[eE][+-]?\d+)?(?:[ij])?|\b[ij]\b/,keyword:/\b(?:NaN|break|case|catch|continue|else|elseif|end|for|function|if|inf|otherwise|parfor|pause|pi|return|switch|try|while)\b/,function:/\b(?!\d)\w+(?=\s*\()/,operator:/\.?[*^\/\\']|[+\-:@]|[<>=~]=?|&&?|\|\|?/,punctuation:/\.{3}|[.,;\[\](){}!]/}}return tf}var nf,V_;function Cj(){if(V_)return nf;V_=1,nf=e,e.displayName="maxscript",e.aliases=[];function e(t){(function(n){var i=/\b(?:about|and|animate|as|at|attributes|by|case|catch|collect|continue|coordsys|do|else|exit|fn|for|from|function|global|if|in|local|macroscript|mapped|max|not|of|off|on|or|parameters|persistent|plugin|rcmenu|return|rollout|set|struct|then|throw|to|tool|try|undo|utility|when|where|while|with)\b/i;n.languages.maxscript={comment:{pattern:/\/\*[\s\S]*?(?:\*\/|$)|--.*/,greedy:!0},string:{pattern:/(^|[^"\\@])(?:"(?:[^"\\]|\\[\s\S])*"|@"[^"]*")/,lookbehind:!0,greedy:!0},path:{pattern:/\$(?:[\w/\\.*?]|'[^']*')*/,greedy:!0,alias:"string"},"function-call":{pattern:RegExp("((?:"+(/^/.source+"|"+/[;=<>+\-*/^({\[]/.source+"|"+/\b(?:and|by|case|catch|collect|do|else|if|in|not|or|return|then|to|try|where|while|with)\b/.source)+")[ ]*)(?!"+i.source+")"+/[a-z_]\w*\b/.source+"(?=[ ]*(?:"+("(?!"+i.source+")"+/[a-z_]/.source+"|"+/\d|-\.?\d/.source+"|"+/[({'"$@#?]/.source)+"))","im"),lookbehind:!0,greedy:!0,alias:"function"},"function-definition":{pattern:/(\b(?:fn|function)\s+)\w+\b/i,lookbehind:!0,alias:"function"},argument:{pattern:/\b[a-z_]\w*(?=:)/i,alias:"attr-name"},keyword:i,boolean:/\b(?:false|true)\b/,time:{pattern:/(^|[^\w.])(?:(?:(?:\d+(?:\.\d*)?|\.\d+)(?:[eEdD][+-]\d+|[LP])?[msft])+|\d+:\d+(?:\.\d*)?)(?![\w.:])/,lookbehind:!0,alias:"number"},number:[{pattern:/(^|[^\w.])(?:(?:\d+(?:\.\d*)?|\.\d+)(?:[eEdD][+-]\d+|[LP])?|0x[a-fA-F0-9]+)(?![\w.:])/,lookbehind:!0},/\b(?:e|pi)\b/],constant:/\b(?:dontcollect|ok|silentValue|undefined|unsupplied)\b/,color:{pattern:/\b(?:black|blue|brown|gray|green|orange|red|white|yellow)\b/i,alias:"constant"},operator:/[-+*/<>=!]=?|[&^?]|#(?!\()/,punctuation:/[()\[\]{}.:,;]|#(?=\()|\\$/m}})(t)}return nf}var rf,Y_;function Ij(){if(Y_)return rf;Y_=1,rf=e,e.displayName="mel",e.aliases=[];function e(t){t.languages.mel={comment:/\/\/.*/,code:{pattern:/`(?:\\.|[^\\`\r\n])*`/,greedy:!0,alias:"italic",inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"}}},string:{pattern:/"(?:\\.|[^\\"\r\n])*"/,greedy:!0},variable:/\$\w+/,number:/\b0x[\da-fA-F]+\b|\b\d+(?:\.\d*)?|\B\.\d+/,flag:{pattern:/-[^\d\W]\w*/,alias:"operator"},keyword:/\b(?:break|case|continue|default|do|else|float|for|global|if|in|int|matrix|proc|return|string|switch|vector|while)\b/,function:/\b\w+(?=\()|\b(?:CBG|HfAddAttractorToAS|HfAssignAS|HfBuildEqualMap|HfBuildFurFiles|HfBuildFurImages|HfCancelAFR|HfConnectASToHF|HfCreateAttractor|HfDeleteAS|HfEditAS|HfPerformCreateAS|HfRemoveAttractorFromAS|HfSelectAttached|HfSelectAttractors|HfUnAssignAS|Mayatomr|about|abs|addAttr|addAttributeEditorNodeHelp|addDynamic|addNewShelfTab|addPP|addPanelCategory|addPrefixToName|advanceToNextDrivenKey|affectedNet|affects|aimConstraint|air|alias|aliasAttr|align|alignCtx|alignCurve|alignSurface|allViewFit|ambientLight|angle|angleBetween|animCone|animCurveEditor|animDisplay|animView|annotate|appendStringArray|applicationName|applyAttrPreset|applyTake|arcLenDimContext|arcLengthDimension|arclen|arrayMapper|art3dPaintCtx|artAttrCtx|artAttrPaintVertexCtx|artAttrSkinPaintCtx|artAttrTool|artBuildPaintMenu|artFluidAttrCtx|artPuttyCtx|artSelectCtx|artSetPaintCtx|artUserPaintCtx|assignCommand|assignInputDevice|assignViewportFactories|attachCurve|attachDeviceAttr|attachSurface|attrColorSliderGrp|attrCompatibility|attrControlGrp|attrEnumOptionMenu|attrEnumOptionMenuGrp|attrFieldGrp|attrFieldSliderGrp|attrNavigationControlGrp|attrPresetEditWin|attributeExists|attributeInfo|attributeMenu|attributeQuery|autoKeyframe|autoPlace|bakeClip|bakeFluidShading|bakePartialHistory|bakeResults|bakeSimulation|basename|basenameEx|batchRender|bessel|bevel|bevelPlus|binMembership|bindSkin|blend2|blendShape|blendShapeEditor|blendShapePanel|blendTwoAttr|blindDataType|boneLattice|boundary|boxDollyCtx|boxZoomCtx|bufferCurve|buildBookmarkMenu|buildKeyframeMenu|button|buttonManip|cacheFile|cacheFileCombine|cacheFileMerge|cacheFileTrack|camera|cameraView|canCreateManip|canvas|capitalizeString|catch|catchQuiet|ceil|changeSubdivComponentDisplayLevel|changeSubdivRegion|channelBox|character|characterMap|characterOutlineEditor|characterize|chdir|checkBox|checkBoxGrp|checkDefaultRenderGlobals|choice|circle|circularFillet|clamp|clear|clearCache|clip|clipEditor|clipEditorCurrentTimeCtx|clipSchedule|clipSchedulerOutliner|clipTrimBefore|closeCurve|closeSurface|cluster|cmdFileOutput|cmdScrollFieldExecuter|cmdScrollFieldReporter|cmdShell|coarsenSubdivSelectionList|collision|color|colorAtPoint|colorEditor|colorIndex|colorIndexSliderGrp|colorSliderButtonGrp|colorSliderGrp|columnLayout|commandEcho|commandLine|commandPort|compactHairSystem|componentEditor|compositingInterop|computePolysetVolume|condition|cone|confirmDialog|connectAttr|connectControl|connectDynamic|connectJoint|connectionInfo|constrain|constrainValue|constructionHistory|container|containsMultibyte|contextInfo|control|convertFromOldLayers|convertIffToPsd|convertLightmap|convertSolidTx|convertTessellation|convertUnit|copyArray|copyFlexor|copyKey|copySkinWeights|cos|cpButton|cpCache|cpClothSet|cpCollision|cpConstraint|cpConvClothToMesh|cpForces|cpGetSolverAttr|cpPanel|cpProperty|cpRigidCollisionFilter|cpSeam|cpSetEdit|cpSetSolverAttr|cpSolver|cpSolverTypes|cpTool|cpUpdateClothUVs|createDisplayLayer|createDrawCtx|createEditor|createLayeredPsdFile|createMotionField|createNewShelf|createNode|createRenderLayer|createSubdivRegion|cross|crossProduct|ctxAbort|ctxCompletion|ctxEditMode|ctxTraverse|currentCtx|currentTime|currentTimeCtx|currentUnit|curve|curveAddPtCtx|curveCVCtx|curveEPCtx|curveEditorCtx|curveIntersect|curveMoveEPCtx|curveOnSurface|curveSketchCtx|cutKey|cycleCheck|cylinder|dagPose|date|defaultLightListCheckBox|defaultNavigation|defineDataServer|defineVirtualDevice|deformer|deg_to_rad|delete|deleteAttr|deleteShadingGroupsAndMaterials|deleteShelfTab|deleteUI|deleteUnusedBrushes|delrandstr|detachCurve|detachDeviceAttr|detachSurface|deviceEditor|devicePanel|dgInfo|dgdirty|dgeval|dgtimer|dimWhen|directKeyCtx|directionalLight|dirmap|dirname|disable|disconnectAttr|disconnectJoint|diskCache|displacementToPoly|displayAffected|displayColor|displayCull|displayLevelOfDetail|displayPref|displayRGBColor|displaySmoothness|displayStats|displayString|displaySurface|distanceDimContext|distanceDimension|doBlur|dolly|dollyCtx|dopeSheetEditor|dot|dotProduct|doubleProfileBirailSurface|drag|dragAttrContext|draggerContext|dropoffLocator|duplicate|duplicateCurve|duplicateSurface|dynCache|dynControl|dynExport|dynExpression|dynGlobals|dynPaintEditor|dynParticleCtx|dynPref|dynRelEdPanel|dynRelEditor|dynamicLoad|editAttrLimits|editDisplayLayerGlobals|editDisplayLayerMembers|editRenderLayerAdjustment|editRenderLayerGlobals|editRenderLayerMembers|editor|editorTemplate|effector|emit|emitter|enableDevice|encodeString|endString|endsWith|env|equivalent|equivalentTol|erf|error|eval|evalDeferred|evalEcho|event|exactWorldBoundingBox|exclusiveLightCheckBox|exec|executeForEachObject|exists|exp|expression|expressionEditorListen|extendCurve|extendSurface|extrude|fcheck|fclose|feof|fflush|fgetline|fgetword|file|fileBrowserDialog|fileDialog|fileExtension|fileInfo|filetest|filletCurve|filter|filterCurve|filterExpand|filterStudioImport|findAllIntersections|findAnimCurves|findKeyframe|findMenuItem|findRelatedSkinCluster|finder|firstParentOf|fitBspline|flexor|floatEq|floatField|floatFieldGrp|floatScrollBar|floatSlider|floatSlider2|floatSliderButtonGrp|floatSliderGrp|floor|flow|fluidCacheInfo|fluidEmitter|fluidVoxelInfo|flushUndo|fmod|fontDialog|fopen|formLayout|format|fprint|frameLayout|fread|freeFormFillet|frewind|fromNativePath|fwrite|gamma|gauss|geometryConstraint|getApplicationVersionAsFloat|getAttr|getClassification|getDefaultBrush|getFileList|getFluidAttr|getInputDeviceRange|getMayaPanelTypes|getModifiers|getPanel|getParticleAttr|getPluginResource|getenv|getpid|glRender|glRenderEditor|globalStitch|gmatch|goal|gotoBindPose|grabColor|gradientControl|gradientControlNoAttr|graphDollyCtx|graphSelectContext|graphTrackCtx|gravity|grid|gridLayout|group|groupObjectsByName|hardenPointCurve|hardware|hardwareRenderPanel|headsUpDisplay|headsUpMessage|help|helpLine|hermite|hide|hilite|hitTest|hotBox|hotkey|hotkeyCheck|hsv_to_rgb|hudButton|hudSlider|hudSliderButton|hwReflectionMap|hwRender|hwRenderLoad|hyperGraph|hyperPanel|hyperShade|hypot|iconTextButton|iconTextCheckBox|iconTextRadioButton|iconTextRadioCollection|iconTextScrollList|iconTextStaticLabel|ikHandle|ikHandleCtx|ikHandleDisplayScale|ikSolver|ikSplineHandleCtx|ikSystem|ikSystemInfo|ikfkDisplayMethod|illustratorCurves|image|imfPlugins|inheritTransform|insertJoint|insertJointCtx|insertKeyCtx|insertKnotCurve|insertKnotSurface|instance|instanceable|instancer|intField|intFieldGrp|intScrollBar|intSlider|intSliderGrp|interToUI|internalVar|intersect|iprEngine|isAnimCurve|isConnected|isDirty|isParentOf|isSameObject|isTrue|isValidObjectName|isValidString|isValidUiName|isolateSelect|itemFilter|itemFilterAttr|itemFilterRender|itemFilterType|joint|jointCluster|jointCtx|jointDisplayScale|jointLattice|keyTangent|keyframe|keyframeOutliner|keyframeRegionCurrentTimeCtx|keyframeRegionDirectKeyCtx|keyframeRegionDollyCtx|keyframeRegionInsertKeyCtx|keyframeRegionMoveKeyCtx|keyframeRegionScaleKeyCtx|keyframeRegionSelectKeyCtx|keyframeRegionSetKeyCtx|keyframeRegionTrackCtx|keyframeStats|lassoContext|lattice|latticeDeformKeyCtx|launch|launchImageEditor|layerButton|layeredShaderPort|layeredTexturePort|layout|layoutDialog|lightList|lightListEditor|lightListPanel|lightlink|lineIntersection|linearPrecision|linstep|listAnimatable|listAttr|listCameras|listConnections|listDeviceAttachments|listHistory|listInputDeviceAxes|listInputDeviceButtons|listInputDevices|listMenuAnnotation|listNodeTypes|listPanelCategories|listRelatives|listSets|listTransforms|listUnselected|listerEditor|loadFluid|loadNewShelf|loadPlugin|loadPluginLanguageResources|loadPrefObjects|localizedPanelLabel|lockNode|loft|log|longNameOf|lookThru|ls|lsThroughFilter|lsType|lsUI|mag|makeIdentity|makeLive|makePaintable|makeRoll|makeSingleSurface|makeTubeOn|makebot|manipMoveContext|manipMoveLimitsCtx|manipOptions|manipRotateContext|manipRotateLimitsCtx|manipScaleContext|manipScaleLimitsCtx|marker|match|max|memory|menu|menuBarLayout|menuEditor|menuItem|menuItemToShelf|menuSet|menuSetPref|messageLine|min|minimizeApp|mirrorJoint|modelCurrentTimeCtx|modelEditor|modelPanel|mouse|movIn|movOut|move|moveIKtoFK|moveKeyCtx|moveVertexAlongDirection|multiProfileBirailSurface|mute|nParticle|nameCommand|nameField|namespace|namespaceInfo|newPanelItems|newton|nodeCast|nodeIconButton|nodeOutliner|nodePreset|nodeType|noise|nonLinear|normalConstraint|normalize|nurbsBoolean|nurbsCopyUVSet|nurbsCube|nurbsEditUV|nurbsPlane|nurbsSelect|nurbsSquare|nurbsToPoly|nurbsToPolygonsPref|nurbsToSubdiv|nurbsToSubdivPref|nurbsUVSet|nurbsViewDirectionVector|objExists|objectCenter|objectLayer|objectType|objectTypeUI|obsoleteProc|oceanNurbsPreviewPlane|offsetCurve|offsetCurveOnSurface|offsetSurface|openGLExtension|openMayaPref|optionMenu|optionMenuGrp|optionVar|orbit|orbitCtx|orientConstraint|outlinerEditor|outlinerPanel|overrideModifier|paintEffectsDisplay|pairBlend|palettePort|paneLayout|panel|panelConfiguration|panelHistory|paramDimContext|paramDimension|paramLocator|parent|parentConstraint|particle|particleExists|particleInstancer|particleRenderInfo|partition|pasteKey|pathAnimation|pause|pclose|percent|performanceOptions|pfxstrokes|pickWalk|picture|pixelMove|planarSrf|plane|play|playbackOptions|playblast|plugAttr|plugNode|pluginInfo|pluginResourceUtil|pointConstraint|pointCurveConstraint|pointLight|pointMatrixMult|pointOnCurve|pointOnSurface|pointPosition|poleVectorConstraint|polyAppend|polyAppendFacetCtx|polyAppendVertex|polyAutoProjection|polyAverageNormal|polyAverageVertex|polyBevel|polyBlendColor|polyBlindData|polyBoolOp|polyBridgeEdge|polyCacheMonitor|polyCheck|polyChipOff|polyClipboard|polyCloseBorder|polyCollapseEdge|polyCollapseFacet|polyColorBlindData|polyColorDel|polyColorPerVertex|polyColorSet|polyCompare|polyCone|polyCopyUV|polyCrease|polyCreaseCtx|polyCreateFacet|polyCreateFacetCtx|polyCube|polyCut|polyCutCtx|polyCylinder|polyCylindricalProjection|polyDelEdge|polyDelFacet|polyDelVertex|polyDuplicateAndConnect|polyDuplicateEdge|polyEditUV|polyEditUVShell|polyEvaluate|polyExtrudeEdge|polyExtrudeFacet|polyExtrudeVertex|polyFlipEdge|polyFlipUV|polyForceUV|polyGeoSampler|polyHelix|polyInfo|polyInstallAction|polyLayoutUV|polyListComponentConversion|polyMapCut|polyMapDel|polyMapSew|polyMapSewMove|polyMergeEdge|polyMergeEdgeCtx|polyMergeFacet|polyMergeFacetCtx|polyMergeUV|polyMergeVertex|polyMirrorFace|polyMoveEdge|polyMoveFacet|polyMoveFacetUV|polyMoveUV|polyMoveVertex|polyNormal|polyNormalPerVertex|polyNormalizeUV|polyOptUvs|polyOptions|polyOutput|polyPipe|polyPlanarProjection|polyPlane|polyPlatonicSolid|polyPoke|polyPrimitive|polyPrism|polyProjection|polyPyramid|polyQuad|polyQueryBlindData|polyReduce|polySelect|polySelectConstraint|polySelectConstraintMonitor|polySelectCtx|polySelectEditCtx|polySeparate|polySetToFaceNormal|polySewEdge|polyShortestPathCtx|polySmooth|polySoftEdge|polySphere|polySphericalProjection|polySplit|polySplitCtx|polySplitEdge|polySplitRing|polySplitVertex|polyStraightenUVBorder|polySubdivideEdge|polySubdivideFacet|polyToSubdiv|polyTorus|polyTransfer|polyTriangulate|polyUVSet|polyUnite|polyWedgeFace|popen|popupMenu|pose|pow|preloadRefEd|print|progressBar|progressWindow|projFileViewer|projectCurve|projectTangent|projectionContext|projectionManip|promptDialog|propModCtx|propMove|psdChannelOutliner|psdEditTextureFile|psdExport|psdTextureFile|putenv|pwd|python|querySubdiv|quit|rad_to_deg|radial|radioButton|radioButtonGrp|radioCollection|radioMenuItemCollection|rampColorPort|rand|randomizeFollicles|randstate|rangeControl|readTake|rebuildCurve|rebuildSurface|recordAttr|recordDevice|redo|reference|referenceEdit|referenceQuery|refineSubdivSelectionList|refresh|refreshAE|registerPluginResource|rehash|reloadImage|removeJoint|removeMultiInstance|removePanelCategory|rename|renameAttr|renameSelectionList|renameUI|render|renderGlobalsNode|renderInfo|renderLayerButton|renderLayerParent|renderLayerPostProcess|renderLayerUnparent|renderManip|renderPartition|renderQualityNode|renderSettings|renderThumbnailUpdate|renderWindowEditor|renderWindowSelectContext|renderer|reorder|reorderDeformers|requires|reroot|resampleFluid|resetAE|resetPfxToPolyCamera|resetTool|resolutionNode|retarget|reverseCurve|reverseSurface|revolve|rgb_to_hsv|rigidBody|rigidSolver|roll|rollCtx|rootOf|rot|rotate|rotationInterpolation|roundConstantRadius|rowColumnLayout|rowLayout|runTimeCommand|runup|sampleImage|saveAllShelves|saveAttrPreset|saveFluid|saveImage|saveInitialState|saveMenu|savePrefObjects|savePrefs|saveShelf|saveToolSettings|scale|scaleBrushBrightness|scaleComponents|scaleConstraint|scaleKey|scaleKeyCtx|sceneEditor|sceneUIReplacement|scmh|scriptCtx|scriptEditorInfo|scriptJob|scriptNode|scriptTable|scriptToShelf|scriptedPanel|scriptedPanelType|scrollField|scrollLayout|sculpt|searchPathArray|seed|selLoadSettings|select|selectContext|selectCurveCV|selectKey|selectKeyCtx|selectKeyframeRegionCtx|selectMode|selectPref|selectPriority|selectType|selectedNodes|selectionConnection|separator|setAttr|setAttrEnumResource|setAttrMapping|setAttrNiceNameResource|setConstraintRestPosition|setDefaultShadingGroup|setDrivenKeyframe|setDynamic|setEditCtx|setEditor|setFluidAttr|setFocus|setInfinity|setInputDeviceMapping|setKeyCtx|setKeyPath|setKeyframe|setKeyframeBlendshapeTargetWts|setMenuMode|setNodeNiceNameResource|setNodeTypeFlag|setParent|setParticleAttr|setPfxToPolyCamera|setPluginResource|setProject|setStampDensity|setStartupMessage|setState|setToolTo|setUITemplate|setXformManip|sets|shadingConnection|shadingGeometryRelCtx|shadingLightRelCtx|shadingNetworkCompare|shadingNode|shapeCompare|shelfButton|shelfLayout|shelfTabLayout|shellField|shortNameOf|showHelp|showHidden|showManipCtx|showSelectionInTitle|showShadingGroupAttrEditor|showWindow|sign|simplify|sin|singleProfileBirailSurface|size|sizeBytes|skinCluster|skinPercent|smoothCurve|smoothTangentSurface|smoothstep|snap2to2|snapKey|snapMode|snapTogetherCtx|snapshot|soft|softMod|softModCtx|sort|sound|soundControl|source|spaceLocator|sphere|sphrand|spotLight|spotLightPreviewPort|spreadSheetEditor|spring|sqrt|squareSurface|srtContext|stackTrace|startString|startsWith|stitchAndExplodeShell|stitchSurface|stitchSurfacePoints|strcmp|stringArrayCatenate|stringArrayContains|stringArrayCount|stringArrayInsertAtIndex|stringArrayIntersector|stringArrayRemove|stringArrayRemoveAtIndex|stringArrayRemoveDuplicates|stringArrayRemoveExact|stringArrayToString|stringToStringArray|strip|stripPrefixFromName|stroke|subdAutoProjection|subdCleanTopology|subdCollapse|subdDuplicateAndConnect|subdEditUV|subdListComponentConversion|subdMapCut|subdMapSewMove|subdMatchTopology|subdMirror|subdToBlind|subdToPoly|subdTransferUVsToCache|subdiv|subdivCrease|subdivDisplaySmoothness|substitute|substituteAllString|substituteGeometry|substring|surface|surfaceSampler|surfaceShaderList|swatchDisplayPort|switchTable|symbolButton|symbolCheckBox|sysFile|system|tabLayout|tan|tangentConstraint|texLatticeDeformContext|texManipContext|texMoveContext|texMoveUVShellContext|texRotateContext|texScaleContext|texSelectContext|texSelectShortestPathCtx|texSmudgeUVContext|texWinToolCtx|text|textCurves|textField|textFieldButtonGrp|textFieldGrp|textManip|textScrollList|textToShelf|textureDisplacePlane|textureHairColor|texturePlacementContext|textureWindow|threadCount|threePointArcCtx|timeControl|timePort|timerX|toNativePath|toggle|toggleAxis|toggleWindowVisibility|tokenize|tokenizeList|tolerance|tolower|toolButton|toolCollection|toolDropped|toolHasOptions|toolPropertyWindow|torus|toupper|trace|track|trackCtx|transferAttributes|transformCompare|transformLimits|translator|trim|trunc|truncateFluidCache|truncateHairCache|tumble|tumbleCtx|turbulence|twoPointArcCtx|uiRes|uiTemplate|unassignInputDevice|undo|undoInfo|ungroup|uniform|unit|unloadPlugin|untangleUV|untitledFileName|untrim|upAxis|updateAE|userCtx|uvLink|uvSnapshot|validateShelfName|vectorize|view2dToolCtx|viewCamera|viewClipPlane|viewFit|viewHeadOn|viewLookAt|viewManip|viewPlace|viewSet|visor|volumeAxis|vortex|waitCursor|warning|webBrowser|webBrowserPrefs|whatIs|window|windowPref|wire|wireContext|workspace|wrinkle|wrinkleContext|writeTake|xbmLangPathList|xform)\b/,operator:[/\+[+=]?|-[-=]?|&&|\|\||[<>]=|[*\/!=]=?|[%^]/,{pattern:/(^|[^<])<(?!<)/,lookbehind:!0},{pattern:/(^|[^>])>(?!>)/,lookbehind:!0}],punctuation:/<<|>>|[.,:;?\[\](){}]/},t.languages.mel.code.inside.rest=t.languages.mel}return rf}var af,K_;function Oj(){if(K_)return af;K_=1,af=e,e.displayName="mermaid",e.aliases=[];function e(t){t.languages.mermaid={comment:{pattern:/%%.*/,greedy:!0},style:{pattern:/^([ \t]*(?:classDef|linkStyle|style)[ \t]+[\w$-]+[ \t]+)\w.*[^\s;]/m,lookbehind:!0,inside:{property:/\b\w[\w-]*(?=[ \t]*:)/,operator:/:/,punctuation:/,/}},"inter-arrow-label":{pattern:/([^<>ox.=-])(?:-[-.]|==)(?![<>ox.=-])[ \t]*(?:"[^"\r\n]*"|[^\s".=-](?:[^\r\n.=-]*[^\s.=-])?)[ \t]*(?:\.+->?|--+[->]|==+[=>])(?![<>ox.=-])/,lookbehind:!0,greedy:!0,inside:{arrow:{pattern:/(?:\.+->?|--+[->]|==+[=>])$/,alias:"operator"},label:{pattern:/^([\s\S]{2}[ \t]*)\S(?:[\s\S]*\S)?/,lookbehind:!0,alias:"property"},"arrow-head":{pattern:/^\S+/,alias:["arrow","operator"]}}},arrow:[{pattern:/(^|[^{}|o.-])[|}][|o](?:--|\.\.)[|o][|{](?![{}|o.-])/,lookbehind:!0,alias:"operator"},{pattern:/(^|[^<>ox.=-])(?:[ox]?|(?:==+|--+|-\.*-)[>ox]|===+|---+|-\.+-)(?![<>ox.=-])/,lookbehind:!0,alias:"operator"},{pattern:/(^|[^<>()x-])(?:--?(?:>>|[x>)])(?![<>()x])|(?:<<|[x<(])--?(?!-))/,lookbehind:!0,alias:"operator"},{pattern:/(^|[^<>|*o.-])(?:[*o]--|--[*o]|<\|?(?:--|\.\.)|(?:--|\.\.)\|?>|--|\.\.)(?![<>|*o.-])/,lookbehind:!0,alias:"operator"}],label:{pattern:/(^|[^|<])\|(?:[^\r\n"|]|"[^"\r\n]*")+\|/,lookbehind:!0,greedy:!0,alias:"property"},text:{pattern:/(?:[(\[{]+|\b>)(?:[^\r\n"()\[\]{}]|"[^"\r\n]*")+(?:[)\]}]+|>)/,alias:"string"},string:{pattern:/"[^"\r\n]*"/,greedy:!0},annotation:{pattern:/<<(?:abstract|choice|enumeration|fork|interface|join|service)>>|\[\[(?:choice|fork|join)\]\]/i,alias:"important"},keyword:[{pattern:/(^[ \t]*)(?:action|callback|class|classDef|classDiagram|click|direction|erDiagram|flowchart|gantt|gitGraph|graph|journey|link|linkStyle|pie|requirementDiagram|sequenceDiagram|stateDiagram|stateDiagram-v2|style|subgraph)(?![\w$-])/m,lookbehind:!0,greedy:!0},{pattern:/(^[ \t]*)(?:activate|alt|and|as|autonumber|deactivate|else|end(?:[ \t]+note)?|loop|opt|par|participant|rect|state|note[ \t]+(?:over|(?:left|right)[ \t]+of))(?![\w$-])/im,lookbehind:!0,greedy:!0}],entity:/#[a-z0-9]+;/,operator:{pattern:/(\w[ \t]*)&(?=[ \t]*\w)|:::|:/,lookbehind:!0},punctuation:/[(){};]/}}return af}var of,Z_;function Lj(){if(Z_)return of;Z_=1,of=e,e.displayName="mizar",e.aliases=[];function e(t){t.languages.mizar={comment:/::.+/,keyword:/@proof\b|\b(?:according|aggregate|all|and|antonym|are|as|associativity|assume|asymmetry|attr|be|begin|being|by|canceled|case|cases|clusters?|coherence|commutativity|compatibility|connectedness|consider|consistency|constructors|contradiction|correctness|def|deffunc|define|definitions?|defpred|do|does|end|environ|equals|ex|exactly|existence|for|from|func|given|hence|hereby|holds|idempotence|identity|iff?|implies|involutiveness|irreflexivity|is|it|let|means|mode|non|not|notations?|now|of|or|otherwise|over|per|pred|prefix|projectivity|proof|provided|qua|reconsider|redefine|reduce|reducibility|reflexivity|registrations?|requirements|reserve|sch|schemes?|section|selector|set|sethood|st|struct|such|suppose|symmetry|synonym|take|that|the|then|theorems?|thesis|thus|to|transitivity|uniqueness|vocabular(?:ies|y)|when|where|with|wrt)\b/,parameter:{pattern:/\$(?:10|\d)/,alias:"variable"},variable:/\b\w+(?=:)/,number:/(?:\b|-)\d+\b/,operator:/\.\.\.|->|&|\.?=/,punctuation:/\(#|#\)|[,:;\[\](){}]/}}return of}var sf,X_;function Dj(){if(X_)return sf;X_=1,sf=e,e.displayName="mongodb",e.aliases=[];function e(t){(function(n){var i=["$eq","$gt","$gte","$in","$lt","$lte","$ne","$nin","$and","$not","$nor","$or","$exists","$type","$expr","$jsonSchema","$mod","$regex","$text","$where","$geoIntersects","$geoWithin","$near","$nearSphere","$all","$elemMatch","$size","$bitsAllClear","$bitsAllSet","$bitsAnyClear","$bitsAnySet","$comment","$elemMatch","$meta","$slice","$currentDate","$inc","$min","$max","$mul","$rename","$set","$setOnInsert","$unset","$addToSet","$pop","$pull","$push","$pullAll","$each","$position","$slice","$sort","$bit","$addFields","$bucket","$bucketAuto","$collStats","$count","$currentOp","$facet","$geoNear","$graphLookup","$group","$indexStats","$limit","$listLocalSessions","$listSessions","$lookup","$match","$merge","$out","$planCacheStats","$project","$redact","$replaceRoot","$replaceWith","$sample","$set","$skip","$sort","$sortByCount","$unionWith","$unset","$unwind","$setWindowFields","$abs","$accumulator","$acos","$acosh","$add","$addToSet","$allElementsTrue","$and","$anyElementTrue","$arrayElemAt","$arrayToObject","$asin","$asinh","$atan","$atan2","$atanh","$avg","$binarySize","$bsonSize","$ceil","$cmp","$concat","$concatArrays","$cond","$convert","$cos","$dateFromParts","$dateToParts","$dateFromString","$dateToString","$dayOfMonth","$dayOfWeek","$dayOfYear","$degreesToRadians","$divide","$eq","$exp","$filter","$first","$floor","$function","$gt","$gte","$hour","$ifNull","$in","$indexOfArray","$indexOfBytes","$indexOfCP","$isArray","$isNumber","$isoDayOfWeek","$isoWeek","$isoWeekYear","$last","$last","$let","$literal","$ln","$log","$log10","$lt","$lte","$ltrim","$map","$max","$mergeObjects","$meta","$min","$millisecond","$minute","$mod","$month","$multiply","$ne","$not","$objectToArray","$or","$pow","$push","$radiansToDegrees","$range","$reduce","$regexFind","$regexFindAll","$regexMatch","$replaceOne","$replaceAll","$reverseArray","$round","$rtrim","$second","$setDifference","$setEquals","$setIntersection","$setIsSubset","$setUnion","$size","$sin","$slice","$split","$sqrt","$stdDevPop","$stdDevSamp","$strcasecmp","$strLenBytes","$strLenCP","$substr","$substrBytes","$substrCP","$subtract","$sum","$switch","$tan","$toBool","$toDate","$toDecimal","$toDouble","$toInt","$toLong","$toObjectId","$toString","$toLower","$toUpper","$trim","$trunc","$type","$week","$year","$zip","$count","$dateAdd","$dateDiff","$dateSubtract","$dateTrunc","$getField","$rand","$sampleRate","$setField","$unsetField","$comment","$explain","$hint","$max","$maxTimeMS","$min","$orderby","$query","$returnKey","$showDiskLoc","$natural"],o=["ObjectId","Code","BinData","DBRef","Timestamp","NumberLong","NumberDecimal","MaxKey","MinKey","RegExp","ISODate","UUID"];i=i.map(function(u){return u.replace("$","\\$")});var l="(?:"+i.join("|")+")\\b";n.languages.mongodb=n.languages.extend("javascript",{}),n.languages.insertBefore("mongodb","string",{property:{pattern:/(?:(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)(?=\s*:)/,greedy:!0,inside:{keyword:RegExp(`^(['"])?`+l+"(?:\\1)?$")}}}),n.languages.mongodb.string.inside={url:{pattern:/https?:\/\/[-\w@:%.+~#=]{1,256}\.[a-z0-9()]{1,6}\b[-\w()@:%+.~#?&/=]*/i,greedy:!0},entity:{pattern:/\b(?:(?:[01]?\d\d?|2[0-4]\d|25[0-5])\.){3}(?:[01]?\d\d?|2[0-4]\d|25[0-5])\b/,greedy:!0}},n.languages.insertBefore("mongodb","constant",{builtin:{pattern:RegExp("\\b(?:"+o.join("|")+")\\b"),alias:"keyword"}})})(t)}return sf}var lf,Q_;function Mj(){if(Q_)return lf;Q_=1,lf=e,e.displayName="monkey",e.aliases=[];function e(t){t.languages.monkey={comment:{pattern:/^#Rem\s[\s\S]*?^#End|'.+/im,greedy:!0},string:{pattern:/"[^"\r\n]*"/,greedy:!0},preprocessor:{pattern:/(^[ \t]*)#.+/m,lookbehind:!0,greedy:!0,alias:"property"},function:/\b\w+(?=\()/,"type-char":{pattern:/\b[?%#$]/,alias:"class-name"},number:{pattern:/((?:\.\.)?)(?:(?:\b|\B-\.?|\B\.)\d+(?:(?!\.\.)\.\d*)?|\$[\da-f]+)/i,lookbehind:!0},keyword:/\b(?:Abstract|Array|Bool|Case|Catch|Class|Const|Continue|Default|Eachin|Else|ElseIf|End|EndIf|Exit|Extends|Extern|False|Field|Final|Float|For|Forever|Function|Global|If|Implements|Import|Inline|Int|Interface|Local|Method|Module|New|Next|Null|Object|Private|Property|Public|Repeat|Return|Select|Self|Step|Strict|String|Super|Then|Throw|To|True|Try|Until|Void|Wend|While)\b/i,operator:/\.\.|<[=>]?|>=?|:?=|(?:[+\-*\/&~|]|\b(?:Mod|Shl|Shr)\b)=?|\b(?:And|Not|Or)\b/i,punctuation:/[.,:;()\[\]]/}}return lf}var uf,J_;function Fj(){if(J_)return uf;J_=1,uf=e,e.displayName="moonscript",e.aliases=["moon"];function e(t){t.languages.moonscript={comment:/--.*/,string:[{pattern:/'[^']*'|\[(=*)\[[\s\S]*?\]\1\]/,greedy:!0},{pattern:/"[^"]*"/,greedy:!0,inside:{interpolation:{pattern:/#\{[^{}]*\}/,inside:{moonscript:{pattern:/(^#\{)[\s\S]+(?=\})/,lookbehind:!0,inside:null},"interpolation-punctuation":{pattern:/#\{|\}/,alias:"punctuation"}}}}}],"class-name":[{pattern:/(\b(?:class|extends)[ \t]+)\w+/,lookbehind:!0},/\b[A-Z]\w*/],keyword:/\b(?:class|continue|do|else|elseif|export|extends|for|from|if|import|in|local|nil|return|self|super|switch|then|unless|using|when|while|with)\b/,variable:/@@?\w*/,property:{pattern:/\b(?!\d)\w+(?=:)|(:)(?!\d)\w+/,lookbehind:!0},function:{pattern:/\b(?:_G|_VERSION|assert|collectgarbage|coroutine\.(?:create|resume|running|status|wrap|yield)|debug\.(?:debug|getfenv|gethook|getinfo|getlocal|getmetatable|getregistry|getupvalue|setfenv|sethook|setlocal|setmetatable|setupvalue|traceback)|dofile|error|getfenv|getmetatable|io\.(?:close|flush|input|lines|open|output|popen|read|stderr|stdin|stdout|tmpfile|type|write)|ipairs|load|loadfile|loadstring|math\.(?:abs|acos|asin|atan|atan2|ceil|cos|cosh|deg|exp|floor|fmod|frexp|ldexp|log|log10|max|min|modf|pi|pow|rad|random|randomseed|sin|sinh|sqrt|tan|tanh)|module|next|os\.(?:clock|date|difftime|execute|exit|getenv|remove|rename|setlocale|time|tmpname)|package\.(?:cpath|loaded|loadlib|path|preload|seeall)|pairs|pcall|print|rawequal|rawget|rawset|require|select|setfenv|setmetatable|string\.(?:byte|char|dump|find|format|gmatch|gsub|len|lower|match|rep|reverse|sub|upper)|table\.(?:concat|insert|maxn|remove|sort)|tonumber|tostring|type|unpack|xpcall)\b/,inside:{punctuation:/\./}},boolean:/\b(?:false|true)\b/,number:/(?:\B\.\d+|\b\d+\.\d+|\b\d+(?=[eE]))(?:[eE][-+]?\d+)?\b|\b(?:0x[a-fA-F\d]+|\d+)(?:U?LL)?\b/,operator:/\.{3}|[-=]>|~=|(?:[-+*/%<>!=]|\.\.)=?|[:#^]|\b(?:and|or)\b=?|\b(?:not)\b/,punctuation:/[.,()[\]{}\\]/},t.languages.moonscript.string[1].inside.interpolation.inside.moonscript.inside=t.languages.moonscript,t.languages.moon=t.languages.moonscript}return uf}var cf,ew;function Pj(){if(ew)return cf;ew=1,cf=e,e.displayName="n1ql",e.aliases=[];function e(t){t.languages.n1ql={comment:{pattern:/\/\*[\s\S]*?(?:$|\*\/)|--.*/,greedy:!0},string:{pattern:/(["'])(?:\\[\s\S]|(?!\1)[^\\]|\1\1)*\1/,greedy:!0},identifier:{pattern:/`(?:\\[\s\S]|[^\\`]|``)*`/,greedy:!0},parameter:/\$[\w.]+/,keyword:/\b(?:ADVISE|ALL|ALTER|ANALYZE|AS|ASC|AT|BEGIN|BINARY|BOOLEAN|BREAK|BUCKET|BUILD|BY|CALL|CAST|CLUSTER|COLLATE|COLLECTION|COMMIT|COMMITTED|CONNECT|CONTINUE|CORRELATE|CORRELATED|COVER|CREATE|CURRENT|DATABASE|DATASET|DATASTORE|DECLARE|DECREMENT|DELETE|DERIVED|DESC|DESCRIBE|DISTINCT|DO|DROP|EACH|ELEMENT|EXCEPT|EXCLUDE|EXECUTE|EXPLAIN|FETCH|FILTER|FLATTEN|FLUSH|FOLLOWING|FOR|FORCE|FROM|FTS|FUNCTION|GOLANG|GRANT|GROUP|GROUPS|GSI|HASH|HAVING|IF|IGNORE|ILIKE|INCLUDE|INCREMENT|INDEX|INFER|INLINE|INNER|INSERT|INTERSECT|INTO|IS|ISOLATION|JAVASCRIPT|JOIN|KEY|KEYS|KEYSPACE|KNOWN|LANGUAGE|LAST|LEFT|LET|LETTING|LEVEL|LIMIT|LSM|MAP|MAPPING|MATCHED|MATERIALIZED|MERGE|MINUS|MISSING|NAMESPACE|NEST|NL|NO|NTH_VALUE|NULL|NULLS|NUMBER|OBJECT|OFFSET|ON|OPTION|OPTIONS|ORDER|OTHERS|OUTER|OVER|PARSE|PARTITION|PASSWORD|PATH|POOL|PRECEDING|PREPARE|PRIMARY|PRIVATE|PRIVILEGE|PROBE|PROCEDURE|PUBLIC|RANGE|RAW|REALM|REDUCE|RENAME|RESPECT|RETURN|RETURNING|REVOKE|RIGHT|ROLE|ROLLBACK|ROW|ROWS|SATISFIES|SAVEPOINT|SCHEMA|SCOPE|SELECT|SELF|SEMI|SET|SHOW|SOME|START|STATISTICS|STRING|SYSTEM|TIES|TO|TRAN|TRANSACTION|TRIGGER|TRUNCATE|UNBOUNDED|UNDER|UNION|UNIQUE|UNKNOWN|UNNEST|UNSET|UPDATE|UPSERT|USE|USER|USING|VALIDATE|VALUE|VALUES|VIA|VIEW|WHERE|WHILE|WINDOW|WITH|WORK|XOR)\b/i,function:/\b[a-z_]\w*(?=\s*\()/i,boolean:/\b(?:FALSE|TRUE)\b/i,number:/(?:\b\d+\.|\B\.)\d+e[+\-]?\d+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/%]|!=|==?|\|\||<[>=]?|>=?|\b(?:AND|ANY|ARRAY|BETWEEN|CASE|ELSE|END|EVERY|EXISTS|FIRST|IN|LIKE|NOT|OR|THEN|VALUED|WHEN|WITHIN)\b/i,punctuation:/[;[\](),.{}:]/}}return cf}var df,tw;function Uj(){if(tw)return df;tw=1,df=e,e.displayName="n4js",e.aliases=["n4jsd"];function e(t){t.languages.n4js=t.languages.extend("javascript",{keyword:/\b(?:Array|any|boolean|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|false|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|module|new|null|number|package|private|protected|public|return|set|static|string|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\b/}),t.languages.insertBefore("n4js","constant",{annotation:{pattern:/@+\w+/,alias:"operator"}}),t.languages.n4jsd=t.languages.n4js}return df}var pf,nw;function Bj(){if(nw)return pf;nw=1,pf=e,e.displayName="nand2tetrisHdl",e.aliases=[];function e(t){t.languages["nand2tetris-hdl"]={comment:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,keyword:/\b(?:BUILTIN|CHIP|CLOCKED|IN|OUT|PARTS)\b/,boolean:/\b(?:false|true)\b/,function:/\b[A-Za-z][A-Za-z0-9]*(?=\()/,number:/\b\d+\b/,operator:/=|\.\./,punctuation:/[{}[\];(),:]/}}return pf}var ff,rw;function jj(){if(rw)return ff;rw=1,ff=e,e.displayName="naniscript",e.aliases=[];function e(t){(function(n){var i=/\{[^\r\n\[\]{}]*\}/,o={"quoted-string":{pattern:/"(?:[^"\\]|\\.)*"/,alias:"operator"},"command-param-id":{pattern:/(\s)\w+:/,lookbehind:!0,alias:"property"},"command-param-value":[{pattern:i,alias:"selector"},{pattern:/([\t ])\S+/,lookbehind:!0,greedy:!0,alias:"operator"},{pattern:/\S(?:.*\S)?/,alias:"operator"}]};n.languages.naniscript={comment:{pattern:/^([\t ]*);.*/m,lookbehind:!0},define:{pattern:/^>.+/m,alias:"tag",inside:{value:{pattern:/(^>\w+[\t ]+)(?!\s)[^{}\r\n]+/,lookbehind:!0,alias:"operator"},key:{pattern:/(^>)\w+/,lookbehind:!0}}},label:{pattern:/^([\t ]*)#[\t ]*\w+[\t ]*$/m,lookbehind:!0,alias:"regex"},command:{pattern:/^([\t ]*)@\w+(?=[\t ]|$).*/m,lookbehind:!0,alias:"function",inside:{"command-name":/^@\w+/,expression:{pattern:i,greedy:!0,alias:"selector"},"command-params":{pattern:/\s*\S[\s\S]*/,inside:o}}},"generic-text":{pattern:/(^[ \t]*)[^#@>;\s].*/m,lookbehind:!0,alias:"punctuation",inside:{"escaped-char":/\\[{}\[\]"]/,expression:{pattern:i,greedy:!0,alias:"selector"},"inline-command":{pattern:/\[[\t ]*\w[^\r\n\[\]]*\]/,greedy:!0,alias:"function",inside:{"command-params":{pattern:/(^\[[\t ]*\w+\b)[\s\S]+(?=\]$)/,lookbehind:!0,inside:o},"command-param-name":{pattern:/^(\[[\t ]*)\w+/,lookbehind:!0,alias:"name"},"start-stop-char":/[\[\]]/}}}}},n.languages.nani=n.languages.naniscript,n.hooks.add("after-tokenize",function(c){var p=c.tokens;p.forEach(function(f){if(typeof f!="string"&&f.type==="generic-text"){var m=u(f);l(m)||(f.type="bad-line",f.content=m)}})});function l(c){for(var p="[]{}",f=[],m=0;m=&|$!]/}}return gf}var mf,iw;function $j(){if(iw)return mf;iw=1,mf=e,e.displayName="neon",e.aliases=[];function e(t){t.languages.neon={comment:{pattern:/#.*/,greedy:!0},datetime:{pattern:/(^|[[{(=:,\s])\d\d\d\d-\d\d?-\d\d?(?:(?:[Tt]| +)\d\d?:\d\d:\d\d(?:\.\d*)? *(?:Z|[-+]\d\d?(?::?\d\d)?)?)?(?=$|[\]}),\s])/,lookbehind:!0,alias:"number"},key:{pattern:/(^|[[{(,\s])[^,:=[\]{}()'"\s]+(?=\s*:(?:$|[\]}),\s])|\s*=)/,lookbehind:!0,alias:"atrule"},number:{pattern:/(^|[[{(=:,\s])[+-]?(?:0x[\da-fA-F]+|0o[0-7]+|0b[01]+|(?:\d+(?:\.\d*)?|\.?\d+)(?:[eE][+-]?\d+)?)(?=$|[\]}),:=\s])/,lookbehind:!0},boolean:{pattern:/(^|[[{(=:,\s])(?:false|no|true|yes)(?=$|[\]}),:=\s])/i,lookbehind:!0},null:{pattern:/(^|[[{(=:,\s])(?:null)(?=$|[\]}),:=\s])/i,lookbehind:!0,alias:"keyword"},string:{pattern:/(^|[[{(=:,\s])(?:('''|""")\r?\n(?:(?:[^\r\n]|\r?\n(?![\t ]*\2))*\r?\n)?[\t ]*\2|'[^'\r\n]*'|"(?:\\.|[^\\"\r\n])*")/,lookbehind:!0,greedy:!0},literal:{pattern:/(^|[[{(=:,\s])(?:[^#"',:=[\]{}()\s`-]|[:-][^"',=[\]{}()\s])(?:[^,:=\]})(\s]|:(?![\s,\]})]|$)|[ \t]+[^#,:=\]})(\s])*/,lookbehind:!0,alias:"string"},punctuation:/[,:=[\]{}()-]/}}return mf}var hf,ow;function qj(){if(ow)return hf;ow=1,hf=e,e.displayName="nevod",e.aliases=[];function e(t){t.languages.nevod={comment:/\/\/.*|(?:\/\*[\s\S]*?(?:\*\/|$))/,string:{pattern:/(?:"(?:""|[^"])*"(?!")|'(?:''|[^'])*'(?!'))!?\*?/,greedy:!0,inside:{"string-attrs":/!$|!\*$|\*$/}},namespace:{pattern:/(@namespace\s+)[a-zA-Z0-9\-.]+(?=\s*\{)/,lookbehind:!0},pattern:{pattern:/(@pattern\s+)?#?[a-zA-Z0-9\-.]+(?:\s*\(\s*(?:~\s*)?[a-zA-Z0-9\-.]+\s*(?:,\s*(?:~\s*)?[a-zA-Z0-9\-.]*)*\))?(?=\s*=)/,lookbehind:!0,inside:{"pattern-name":{pattern:/^#?[a-zA-Z0-9\-.]+/,alias:"class-name"},fields:{pattern:/\(.*\)/,inside:{"field-name":{pattern:/[a-zA-Z0-9\-.]+/,alias:"variable"},punctuation:/[,()]/,operator:{pattern:/~/,alias:"field-hidden-mark"}}}}},search:{pattern:/(@search\s+|#)[a-zA-Z0-9\-.]+(?:\.\*)?(?=\s*;)/,alias:"function",lookbehind:!0},keyword:/@(?:having|inside|namespace|outside|pattern|require|search|where)\b/,"standard-pattern":{pattern:/\b(?:Alpha|AlphaNum|Any|Blank|End|LineBreak|Num|NumAlpha|Punct|Space|Start|Symbol|Word|WordBreak)\b(?:\([a-zA-Z0-9\-.,\s+]*\))?/,inside:{"standard-pattern-name":{pattern:/^[a-zA-Z0-9\-.]+/,alias:"builtin"},quantifier:{pattern:/\b\d+(?:\s*\+|\s*-\s*\d+)?(?!\w)/,alias:"number"},"standard-pattern-attr":{pattern:/[a-zA-Z0-9\-.]+/,alias:"builtin"},punctuation:/[,()]/}},quantifier:{pattern:/\b\d+(?:\s*\+|\s*-\s*\d+)?(?!\w)/,alias:"number"},operator:[{pattern:/=/,alias:"pattern-def"},{pattern:/&/,alias:"conjunction"},{pattern:/~/,alias:"exception"},{pattern:/\?/,alias:"optionality"},{pattern:/[[\]]/,alias:"repetition"},{pattern:/[{}]/,alias:"variation"},{pattern:/[+_]/,alias:"sequence"},{pattern:/\.{2,3}/,alias:"span"}],"field-capture":[{pattern:/([a-zA-Z0-9\-.]+\s*\()\s*[a-zA-Z0-9\-.]+\s*:\s*[a-zA-Z0-9\-.]+(?:\s*,\s*[a-zA-Z0-9\-.]+\s*:\s*[a-zA-Z0-9\-.]+)*(?=\s*\))/,lookbehind:!0,inside:{"field-name":{pattern:/[a-zA-Z0-9\-.]+/,alias:"variable"},colon:/:/}},{pattern:/[a-zA-Z0-9\-.]+\s*:/,inside:{"field-name":{pattern:/[a-zA-Z0-9\-.]+/,alias:"variable"},colon:/:/}}],punctuation:/[:;,()]/,name:/[a-zA-Z0-9\-.]+/}}return hf}var bf,sw;function Gj(){if(sw)return bf;sw=1,bf=e,e.displayName="nginx",e.aliases=[];function e(t){(function(n){var i=/\$(?:\w[a-z\d]*(?:_[^\x00-\x1F\s"'\\()$]*)?|\{[^}\s"'\\]+\})/i;n.languages.nginx={comment:{pattern:/(^|[\s{};])#.*/,lookbehind:!0,greedy:!0},directive:{pattern:/(^|\s)\w(?:[^;{}"'\\\s]|\\.|"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*'|\s+(?:#.*(?!.)|(?![#\s])))*?(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:{string:{pattern:/((?:^|[^\\])(?:\\\\)*)(?:"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*')/,lookbehind:!0,greedy:!0,inside:{escape:{pattern:/\\["'\\nrt]/,alias:"entity"},variable:i}},comment:{pattern:/(\s)#.*/,lookbehind:!0,greedy:!0},keyword:{pattern:/^\S+/,greedy:!0},boolean:{pattern:/(\s)(?:off|on)(?!\S)/,lookbehind:!0},number:{pattern:/(\s)\d+[a-z]*(?!\S)/i,lookbehind:!0},variable:i}},punctuation:/[{};]/}})(t)}return bf}var yf,lw;function Hj(){if(lw)return yf;lw=1,yf=e,e.displayName="nim",e.aliases=[];function e(t){t.languages.nim={comment:{pattern:/#.*/,greedy:!0},string:{pattern:/(?:\b(?!\d)(?:\w|\\x[89a-fA-F][0-9a-fA-F])+)?(?:"""[\s\S]*?"""(?!")|"(?:\\[\s\S]|""|[^"\\])*")/,greedy:!0},char:{pattern:/'(?:\\(?:\d+|x[\da-fA-F]{0,2}|.)|[^'])'/,greedy:!0},function:{pattern:/(?:(?!\d)(?:\w|\\x[89a-fA-F][0-9a-fA-F])+|`[^`\r\n]+`)\*?(?:\[[^\]]+\])?(?=\s*\()/,greedy:!0,inside:{operator:/\*$/}},identifier:{pattern:/`[^`\r\n]+`/,greedy:!0,inside:{punctuation:/`/}},number:/\b(?:0[xXoObB][\da-fA-F_]+|\d[\d_]*(?:(?!\.\.)\.[\d_]*)?(?:[eE][+-]?\d[\d_]*)?)(?:'?[iuf]\d*)?/,keyword:/\b(?:addr|as|asm|atomic|bind|block|break|case|cast|concept|const|continue|converter|defer|discard|distinct|do|elif|else|end|enum|except|export|finally|for|from|func|generic|if|import|include|interface|iterator|let|macro|method|mixin|nil|object|out|proc|ptr|raise|ref|return|static|template|try|tuple|type|using|var|when|while|with|without|yield)\b/,operator:{pattern:/(^|[({\[](?=\.\.)|(?![({\[]\.).)(?:(?:[=+\-*\/<>@$~&%|!?^:\\]|\.\.|\.(?![)}\]]))+|\b(?:and|div|in|is|isnot|mod|not|notin|of|or|shl|shr|xor)\b)/m,lookbehind:!0},punctuation:/[({\[]\.|\.[)}\]]|[`(){}\[\],:]/}}return yf}var Ef,uw;function Wj(){if(uw)return Ef;uw=1,Ef=e,e.displayName="nix",e.aliases=[];function e(t){t.languages.nix={comment:{pattern:/\/\*[\s\S]*?\*\/|#.*/,greedy:!0},string:{pattern:/"(?:[^"\\]|\\[\s\S])*"|''(?:(?!'')[\s\S]|''(?:'|\\|\$\{))*''/,greedy:!0,inside:{interpolation:{pattern:/(^|(?:^|(?!'').)[^\\])\$\{(?:[^{}]|\{[^}]*\})*\}/,lookbehind:!0,inside:null}}},url:[/\b(?:[a-z]{3,7}:\/\/)[\w\-+%~\/.:#=?&]+/,{pattern:/([^\/])(?:[\w\-+%~.:#=?&]*(?!\/\/)[\w\-+%~\/.:#=?&])?(?!\/\/)\/[\w\-+%~\/.:#=?&]*/,lookbehind:!0}],antiquotation:{pattern:/\$(?=\{)/,alias:"important"},number:/\b\d+\b/,keyword:/\b(?:assert|builtins|else|if|in|inherit|let|null|or|then|with)\b/,function:/\b(?:abort|add|all|any|attrNames|attrValues|baseNameOf|compareVersions|concatLists|currentSystem|deepSeq|derivation|dirOf|div|elem(?:At)?|fetch(?:Tarball|url)|filter(?:Source)?|fromJSON|genList|getAttr|getEnv|hasAttr|hashString|head|import|intersectAttrs|is(?:Attrs|Bool|Function|Int|List|Null|String)|length|lessThan|listToAttrs|map|mul|parseDrvName|pathExists|read(?:Dir|File)|removeAttrs|replaceStrings|seq|sort|stringLength|sub(?:string)?|tail|throw|to(?:File|JSON|Path|String|XML)|trace|typeOf)\b|\bfoldl'\B/,boolean:/\b(?:false|true)\b/,operator:/[=!<>]=?|\+\+?|\|\||&&|\/\/|->?|[?@]/,punctuation:/[{}()[\].,:;]/},t.languages.nix.string.inside.interpolation.inside=t.languages.nix}return Ef}var Sf,cw;function Vj(){if(cw)return Sf;cw=1,Sf=e,e.displayName="nsis",e.aliases=[];function e(t){t.languages.nsis={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|[#;].*)/,lookbehind:!0,greedy:!0},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},keyword:{pattern:/(^[\t ]*)(?:Abort|Add(?:BrandingImage|Size)|AdvSplash|Allow(?:RootDirInstall|SkipFiles)|AutoCloseWindow|BG(?:Font|Gradient|Image)|Banner|BrandingText|BringToFront|CRCCheck|Call(?:InstDLL)?|Caption|ChangeUI|CheckBitmap|ClearErrors|CompletedText|ComponentText|CopyFiles|Create(?:Directory|Font|ShortCut)|Delete(?:INISec|INIStr|RegKey|RegValue)?|Detail(?:Print|sButtonText)|Dialer|Dir(?:Text|Var|Verify)|EnableWindow|Enum(?:RegKey|RegValue)|Exch|Exec(?:Shell(?:Wait)?|Wait)?|ExpandEnvStrings|File(?:BufSize|Close|ErrorText|Open|Read|ReadByte|ReadUTF16LE|ReadWord|Seek|Write|WriteByte|WriteUTF16LE|WriteWord)?|Find(?:Close|First|Next|Window)|FlushINI|Get(?:CurInstType|CurrentAddress|DLLVersion(?:Local)?|DlgItem|ErrorLevel|FileTime(?:Local)?|FullPathName|Function(?:Address|End)?|InstDirError|LabelAddress|TempFileName)|Goto|HideWindow|Icon|If(?:Abort|Errors|FileExists|RebootFlag|Silent)|InitPluginsDir|InstProgressFlags|Inst(?:Type(?:GetText|SetText)?)|Install(?:ButtonText|Colors|Dir(?:RegKey)?)|Int(?:64|Ptr)?CmpU?|Int(?:64)?Fmt|Int(?:Ptr)?Op|IsWindow|Lang(?:DLL|String)|License(?:BkColor|Data|ForceSelection|LangString|Text)|LoadLanguageFile|LockWindow|Log(?:Set|Text)|Manifest(?:DPIAware|SupportedOS)|Math|MessageBox|MiscButtonText|NSISdl|Name|Nop|OutFile|PE(?:DllCharacteristics|SubsysVer)|Page(?:Callbacks)?|Pop|Push|Quit|RMDir|Read(?:EnvStr|INIStr|RegDWORD|RegStr)|Reboot|RegDLL|Rename|RequestExecutionLevel|ReserveFile|Return|SearchPath|Section(?:End|GetFlags|GetInstTypes|GetSize|GetText|Group|In|SetFlags|SetInstTypes|SetSize|SetText)?|SendMessage|Set(?:AutoClose|BrandingImage|Compress|Compressor(?:DictSize)?|CtlColors|CurInstType|DatablockOptimize|DateSave|Details(?:Print|View)|ErrorLevel|Errors|FileAttributes|Font|OutPath|Overwrite|PluginUnload|RebootFlag|RegView|ShellVarContext|Silent)|Show(?:InstDetails|UninstDetails|Window)|Silent(?:Install|UnInstall)|Sleep|SpaceTexts|Splash|StartMenu|Str(?:CmpS?|Cpy|Len)|SubCaption|System|UnRegDLL|Unicode|UninstPage|Uninstall(?:ButtonText|Caption|Icon|SubCaption|Text)|UserInfo|VI(?:AddVersionKey|FileVersion|ProductVersion)|VPatch|Var|WindowIcon|Write(?:INIStr|Reg(?:Bin|DWORD|ExpandStr|MultiStr|None|Str)|Uninstaller)|XPStyle|ns(?:Dialogs|Exec))\b/m,lookbehind:!0},property:/\b(?:ARCHIVE|FILE_(?:ATTRIBUTE_ARCHIVE|ATTRIBUTE_NORMAL|ATTRIBUTE_OFFLINE|ATTRIBUTE_READONLY|ATTRIBUTE_SYSTEM|ATTRIBUTE_TEMPORARY)|HK(?:(?:CR|CU|LM)(?:32|64)?|DD|PD|U)|HKEY_(?:CLASSES_ROOT|CURRENT_CONFIG|CURRENT_USER|DYN_DATA|LOCAL_MACHINE|PERFORMANCE_DATA|USERS)|ID(?:ABORT|CANCEL|IGNORE|NO|OK|RETRY|YES)|MB_(?:ABORTRETRYIGNORE|DEFBUTTON1|DEFBUTTON2|DEFBUTTON3|DEFBUTTON4|ICONEXCLAMATION|ICONINFORMATION|ICONQUESTION|ICONSTOP|OK|OKCANCEL|RETRYCANCEL|RIGHT|RTLREADING|SETFOREGROUND|TOPMOST|USERICON|YESNO)|NORMAL|OFFLINE|READONLY|SHCTX|SHELL_CONTEXT|SYSTEM|TEMPORARY|admin|all|auto|both|colored|false|force|hide|highest|lastused|leave|listonly|none|normal|notset|off|on|open|print|show|silent|silentlog|smooth|textonly|true|user)\b/,constant:/\$\{[!\w\.:\^-]+\}|\$\([!\w\.:\^-]+\)/,variable:/\$\w[\w\.]*/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--?|\+\+?|<=?|>=?|==?=?|&&?|\|\|?|[?*\/~^%]/,punctuation:/[{}[\];(),.:]/,important:{pattern:/(^[\t ]*)!(?:addincludedir|addplugindir|appendfile|cd|define|delfile|echo|else|endif|error|execute|finalize|getdllversion|gettlbversion|if|ifdef|ifmacrodef|ifmacrondef|ifndef|include|insertmacro|macro|macroend|makensis|packhdr|pragma|searchparse|searchreplace|system|tempfile|undef|verbose|warning)\b/im,lookbehind:!0}}}return Sf}var vf,dw;function Yj(){if(dw)return vf;dw=1;var e=Yr();vf=t,t.displayName="objectivec",t.aliases=["objc"];function t(n){n.register(e),n.languages.objectivec=n.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete n.languages.objectivec["class-name"],n.languages.objc=n.languages.objectivec}return vf}var kf,pw;function Kj(){if(pw)return kf;pw=1,kf=e,e.displayName="ocaml",e.aliases=[];function e(t){t.languages.ocaml={comment:{pattern:/\(\*[\s\S]*?\*\)/,greedy:!0},char:{pattern:/'(?:[^\\\r\n']|\\(?:.|[ox]?[0-9a-f]{1,3}))'/i,greedy:!0},string:[{pattern:/"(?:\\(?:[\s\S]|\r\n)|[^\\\r\n"])*"/,greedy:!0},{pattern:/\{([a-z_]*)\|[\s\S]*?\|\1\}/,greedy:!0}],number:[/\b(?:0b[01][01_]*|0o[0-7][0-7_]*)\b/i,/\b0x[a-f0-9][a-f0-9_]*(?:\.[a-f0-9_]*)?(?:p[+-]?\d[\d_]*)?(?!\w)/i,/\b\d[\d_]*(?:\.[\d_]*)?(?:e[+-]?\d[\d_]*)?(?!\w)/i],directive:{pattern:/\B#\w+/,alias:"property"},label:{pattern:/\B~\w+/,alias:"property"},"type-variable":{pattern:/\B'\w+/,alias:"function"},variant:{pattern:/`\w+/,alias:"symbol"},keyword:/\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|nonrec|object|of|open|private|rec|sig|struct|then|to|try|type|val|value|virtual|when|where|while|with)\b/,boolean:/\b(?:false|true)\b/,"operator-like-punctuation":{pattern:/\[[<>|]|[>|]\]|\{<|>\}/,alias:"punctuation"},operator:/\.[.~]|:[=>]|[=<>@^|&+\-*\/$%!?~][!$%&*+\-.\/:<=>?@^|~]*|\b(?:and|asr|land|lor|lsl|lsr|lxor|mod|or)\b/,punctuation:/;;|::|[(){}\[\].,:;#]|\b_\b/}}return kf}var _f,fw;function Zj(){if(fw)return _f;fw=1;var e=Yr();_f=t,t.displayName="opencl",t.aliases=[];function t(n){n.register(e),(function(i){i.languages.opencl=i.languages.extend("c",{keyword:/\b(?:(?:__)?(?:constant|global|kernel|local|private|read_only|read_write|write_only)|__attribute__|auto|(?:bool|u?(?:char|int|long|short)|half|quad)(?:2|3|4|8|16)?|break|case|complex|const|continue|(?:double|float)(?:16(?:x(?:1|2|4|8|16))?|1x(?:1|2|4|8|16)|2(?:x(?:1|2|4|8|16))?|3|4(?:x(?:1|2|4|8|16))?|8(?:x(?:1|2|4|8|16))?)?|default|do|else|enum|extern|for|goto|if|imaginary|inline|packed|pipe|register|restrict|return|signed|sizeof|static|struct|switch|typedef|uniform|union|unsigned|void|volatile|while)\b/,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[fuhl]{0,4}/i,boolean:/\b(?:false|true)\b/,"constant-opencl-kernel":{pattern:/\b(?:CHAR_(?:BIT|MAX|MIN)|CLK_(?:ADDRESS_(?:CLAMP(?:_TO_EDGE)?|NONE|REPEAT)|FILTER_(?:LINEAR|NEAREST)|(?:GLOBAL|LOCAL)_MEM_FENCE|NORMALIZED_COORDS_(?:FALSE|TRUE))|CL_(?:BGRA|(?:HALF_)?FLOAT|INTENSITY|LUMINANCE|A?R?G?B?[Ax]?|(?:(?:UN)?SIGNED|[US]NORM)_(?:INT(?:8|16|32))|UNORM_(?:INT_101010|SHORT_(?:555|565)))|(?:DBL|FLT|HALF)_(?:DIG|EPSILON|(?:MAX|MIN)(?:(?:_10)?_EXP)?|MANT_DIG)|FLT_RADIX|HUGE_VALF?|(?:INT|LONG|SCHAR|SHRT)_(?:MAX|MIN)|INFINITY|MAXFLOAT|M_(?:[12]_PI|2_SQRTPI|E|LN(?:2|10)|LOG(?:2|10)E?|PI(?:_[24])?|SQRT(?:1_2|2))(?:_F|_H)?|NAN|(?:UCHAR|UINT|ULONG|USHRT)_MAX)\b/,alias:"constant"}}),i.languages.insertBefore("opencl","class-name",{"builtin-type":{pattern:/\b(?:_cl_(?:command_queue|context|device_id|event|kernel|mem|platform_id|program|sampler)|cl_(?:image_format|mem_fence_flags)|clk_event_t|event_t|image(?:1d_(?:array_|buffer_)?t|2d_(?:array_(?:depth_|msaa_depth_|msaa_)?|depth_|msaa_depth_|msaa_)?t|3d_t)|intptr_t|ndrange_t|ptrdiff_t|queue_t|reserve_id_t|sampler_t|size_t|uintptr_t)\b/,alias:"keyword"}});var o={"type-opencl-host":{pattern:/\b(?:cl_(?:GLenum|GLint|GLuin|addressing_mode|bitfield|bool|buffer_create_type|build_status|channel_(?:order|type)|(?:u?(?:char|int|long|short)|double|float)(?:2|3|4|8|16)?|command_(?:queue(?:_info|_properties)?|type)|context(?:_info|_properties)?|device_(?:exec_capabilities|fp_config|id|info|local_mem_type|mem_cache_type|type)|(?:event|sampler)(?:_info)?|filter_mode|half|image_info|kernel(?:_info|_work_group_info)?|map_flags|mem(?:_flags|_info|_object_type)?|platform_(?:id|info)|profiling_info|program(?:_build_info|_info)?))\b/,alias:"keyword"},"boolean-opencl-host":{pattern:/\bCL_(?:FALSE|TRUE)\b/,alias:"boolean"},"constant-opencl-host":{pattern:/\bCL_(?:A|ABGR|ADDRESS_(?:CLAMP(?:_TO_EDGE)?|MIRRORED_REPEAT|NONE|REPEAT)|ARGB|BGRA|BLOCKING|BUFFER_CREATE_TYPE_REGION|BUILD_(?:ERROR|IN_PROGRESS|NONE|PROGRAM_FAILURE|SUCCESS)|COMMAND_(?:ACQUIRE_GL_OBJECTS|BARRIER|COPY_(?:BUFFER(?:_RECT|_TO_IMAGE)?|IMAGE(?:_TO_BUFFER)?)|FILL_(?:BUFFER|IMAGE)|MAP(?:_BUFFER|_IMAGE)|MARKER|MIGRATE(?:_SVM)?_MEM_OBJECTS|NATIVE_KERNEL|NDRANGE_KERNEL|READ_(?:BUFFER(?:_RECT)?|IMAGE)|RELEASE_GL_OBJECTS|SVM_(?:FREE|MAP|MEMCPY|MEMFILL|UNMAP)|TASK|UNMAP_MEM_OBJECT|USER|WRITE_(?:BUFFER(?:_RECT)?|IMAGE))|COMPILER_NOT_AVAILABLE|COMPILE_PROGRAM_FAILURE|COMPLETE|CONTEXT_(?:DEVICES|INTEROP_USER_SYNC|NUM_DEVICES|PLATFORM|PROPERTIES|REFERENCE_COUNT)|DEPTH(?:_STENCIL)?|DEVICE_(?:ADDRESS_BITS|AFFINITY_DOMAIN_(?:L[1-4]_CACHE|NEXT_PARTITIONABLE|NUMA)|AVAILABLE|BUILT_IN_KERNELS|COMPILER_AVAILABLE|DOUBLE_FP_CONFIG|ENDIAN_LITTLE|ERROR_CORRECTION_SUPPORT|EXECUTION_CAPABILITIES|EXTENSIONS|GLOBAL_(?:MEM_(?:CACHELINE_SIZE|CACHE_SIZE|CACHE_TYPE|SIZE)|VARIABLE_PREFERRED_TOTAL_SIZE)|HOST_UNIFIED_MEMORY|IL_VERSION|IMAGE(?:2D_MAX_(?:HEIGHT|WIDTH)|3D_MAX_(?:DEPTH|HEIGHT|WIDTH)|_BASE_ADDRESS_ALIGNMENT|_MAX_ARRAY_SIZE|_MAX_BUFFER_SIZE|_PITCH_ALIGNMENT|_SUPPORT)|LINKER_AVAILABLE|LOCAL_MEM_SIZE|LOCAL_MEM_TYPE|MAX_(?:CLOCK_FREQUENCY|COMPUTE_UNITS|CONSTANT_ARGS|CONSTANT_BUFFER_SIZE|GLOBAL_VARIABLE_SIZE|MEM_ALLOC_SIZE|NUM_SUB_GROUPS|ON_DEVICE_(?:EVENTS|QUEUES)|PARAMETER_SIZE|PIPE_ARGS|READ_IMAGE_ARGS|READ_WRITE_IMAGE_ARGS|SAMPLERS|WORK_GROUP_SIZE|WORK_ITEM_DIMENSIONS|WORK_ITEM_SIZES|WRITE_IMAGE_ARGS)|MEM_BASE_ADDR_ALIGN|MIN_DATA_TYPE_ALIGN_SIZE|NAME|NATIVE_VECTOR_WIDTH_(?:CHAR|DOUBLE|FLOAT|HALF|INT|LONG|SHORT)|NOT_(?:AVAILABLE|FOUND)|OPENCL_C_VERSION|PARENT_DEVICE|PARTITION_(?:AFFINITY_DOMAIN|BY_AFFINITY_DOMAIN|BY_COUNTS|BY_COUNTS_LIST_END|EQUALLY|FAILED|MAX_SUB_DEVICES|PROPERTIES|TYPE)|PIPE_MAX_(?:ACTIVE_RESERVATIONS|PACKET_SIZE)|PLATFORM|PREFERRED_(?:GLOBAL_ATOMIC_ALIGNMENT|INTEROP_USER_SYNC|LOCAL_ATOMIC_ALIGNMENT|PLATFORM_ATOMIC_ALIGNMENT|VECTOR_WIDTH_(?:CHAR|DOUBLE|FLOAT|HALF|INT|LONG|SHORT))|PRINTF_BUFFER_SIZE|PROFILE|PROFILING_TIMER_RESOLUTION|QUEUE_(?:ON_(?:DEVICE_(?:MAX_SIZE|PREFERRED_SIZE|PROPERTIES)|HOST_PROPERTIES)|PROPERTIES)|REFERENCE_COUNT|SINGLE_FP_CONFIG|SUB_GROUP_INDEPENDENT_FORWARD_PROGRESS|SVM_(?:ATOMICS|CAPABILITIES|COARSE_GRAIN_BUFFER|FINE_GRAIN_BUFFER|FINE_GRAIN_SYSTEM)|TYPE(?:_ACCELERATOR|_ALL|_CPU|_CUSTOM|_DEFAULT|_GPU)?|VENDOR(?:_ID)?|VERSION)|DRIVER_VERSION|EVENT_(?:COMMAND_(?:EXECUTION_STATUS|QUEUE|TYPE)|CONTEXT|REFERENCE_COUNT)|EXEC_(?:KERNEL|NATIVE_KERNEL|STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST)|FILTER_(?:LINEAR|NEAREST)|FLOAT|FP_(?:CORRECTLY_ROUNDED_DIVIDE_SQRT|DENORM|FMA|INF_NAN|ROUND_TO_INF|ROUND_TO_NEAREST|ROUND_TO_ZERO|SOFT_FLOAT)|GLOBAL|HALF_FLOAT|IMAGE_(?:ARRAY_SIZE|BUFFER|DEPTH|ELEMENT_SIZE|FORMAT|FORMAT_MISMATCH|FORMAT_NOT_SUPPORTED|HEIGHT|NUM_MIP_LEVELS|NUM_SAMPLES|ROW_PITCH|SLICE_PITCH|WIDTH)|INTENSITY|INVALID_(?:ARG_INDEX|ARG_SIZE|ARG_VALUE|BINARY|BUFFER_SIZE|BUILD_OPTIONS|COMMAND_QUEUE|COMPILER_OPTIONS|CONTEXT|DEVICE|DEVICE_PARTITION_COUNT|DEVICE_QUEUE|DEVICE_TYPE|EVENT|EVENT_WAIT_LIST|GLOBAL_OFFSET|GLOBAL_WORK_SIZE|GL_OBJECT|HOST_PTR|IMAGE_DESCRIPTOR|IMAGE_FORMAT_DESCRIPTOR|IMAGE_SIZE|KERNEL|KERNEL_ARGS|KERNEL_DEFINITION|KERNEL_NAME|LINKER_OPTIONS|MEM_OBJECT|MIP_LEVEL|OPERATION|PIPE_SIZE|PLATFORM|PROGRAM|PROGRAM_EXECUTABLE|PROPERTY|QUEUE_PROPERTIES|SAMPLER|VALUE|WORK_DIMENSION|WORK_GROUP_SIZE|WORK_ITEM_SIZE)|KERNEL_(?:ARG_(?:ACCESS_(?:NONE|QUALIFIER|READ_ONLY|READ_WRITE|WRITE_ONLY)|ADDRESS_(?:CONSTANT|GLOBAL|LOCAL|PRIVATE|QUALIFIER)|INFO_NOT_AVAILABLE|NAME|TYPE_(?:CONST|NAME|NONE|PIPE|QUALIFIER|RESTRICT|VOLATILE))|ATTRIBUTES|COMPILE_NUM_SUB_GROUPS|COMPILE_WORK_GROUP_SIZE|CONTEXT|EXEC_INFO_SVM_FINE_GRAIN_SYSTEM|EXEC_INFO_SVM_PTRS|FUNCTION_NAME|GLOBAL_WORK_SIZE|LOCAL_MEM_SIZE|LOCAL_SIZE_FOR_SUB_GROUP_COUNT|MAX_NUM_SUB_GROUPS|MAX_SUB_GROUP_SIZE_FOR_NDRANGE|NUM_ARGS|PREFERRED_WORK_GROUP_SIZE_MULTIPLE|PRIVATE_MEM_SIZE|PROGRAM|REFERENCE_COUNT|SUB_GROUP_COUNT_FOR_NDRANGE|WORK_GROUP_SIZE)|LINKER_NOT_AVAILABLE|LINK_PROGRAM_FAILURE|LOCAL|LUMINANCE|MAP_(?:FAILURE|READ|WRITE|WRITE_INVALIDATE_REGION)|MEM_(?:ALLOC_HOST_PTR|ASSOCIATED_MEMOBJECT|CONTEXT|COPY_HOST_PTR|COPY_OVERLAP|FLAGS|HOST_NO_ACCESS|HOST_PTR|HOST_READ_ONLY|HOST_WRITE_ONLY|KERNEL_READ_AND_WRITE|MAP_COUNT|OBJECT_(?:ALLOCATION_FAILURE|BUFFER|IMAGE1D|IMAGE1D_ARRAY|IMAGE1D_BUFFER|IMAGE2D|IMAGE2D_ARRAY|IMAGE3D|PIPE)|OFFSET|READ_ONLY|READ_WRITE|REFERENCE_COUNT|SIZE|SVM_ATOMICS|SVM_FINE_GRAIN_BUFFER|TYPE|USES_SVM_POINTER|USE_HOST_PTR|WRITE_ONLY)|MIGRATE_MEM_OBJECT_(?:CONTENT_UNDEFINED|HOST)|MISALIGNED_SUB_BUFFER_OFFSET|NONE|NON_BLOCKING|OUT_OF_(?:HOST_MEMORY|RESOURCES)|PIPE_(?:MAX_PACKETS|PACKET_SIZE)|PLATFORM_(?:EXTENSIONS|HOST_TIMER_RESOLUTION|NAME|PROFILE|VENDOR|VERSION)|PROFILING_(?:COMMAND_(?:COMPLETE|END|QUEUED|START|SUBMIT)|INFO_NOT_AVAILABLE)|PROGRAM_(?:BINARIES|BINARY_SIZES|BINARY_TYPE(?:_COMPILED_OBJECT|_EXECUTABLE|_LIBRARY|_NONE)?|BUILD_(?:GLOBAL_VARIABLE_TOTAL_SIZE|LOG|OPTIONS|STATUS)|CONTEXT|DEVICES|IL|KERNEL_NAMES|NUM_DEVICES|NUM_KERNELS|REFERENCE_COUNT|SOURCE)|QUEUED|QUEUE_(?:CONTEXT|DEVICE|DEVICE_DEFAULT|ON_DEVICE|ON_DEVICE_DEFAULT|OUT_OF_ORDER_EXEC_MODE_ENABLE|PROFILING_ENABLE|PROPERTIES|REFERENCE_COUNT|SIZE)|R|RA|READ_(?:ONLY|WRITE)_CACHE|RG|RGB|RGBA|RGBx|RGx|RUNNING|Rx|SAMPLER_(?:ADDRESSING_MODE|CONTEXT|FILTER_MODE|LOD_MAX|LOD_MIN|MIP_FILTER_MODE|NORMALIZED_COORDS|REFERENCE_COUNT)|(?:UN)?SIGNED_INT(?:8|16|32)|SNORM_INT(?:8|16)|SUBMITTED|SUCCESS|UNORM_INT(?:8|16|24|_101010|_101010_2)|UNORM_SHORT_(?:555|565)|VERSION_(?:1_0|1_1|1_2|2_0|2_1)|sBGRA|sRGB|sRGBA|sRGBx)\b/,alias:"constant"},"function-opencl-host":{pattern:/\bcl(?:BuildProgram|CloneKernel|CompileProgram|Create(?:Buffer|CommandQueue(?:WithProperties)?|Context|ContextFromType|Image|Image2D|Image3D|Kernel|KernelsInProgram|Pipe|ProgramWith(?:Binary|BuiltInKernels|IL|Source)|Sampler|SamplerWithProperties|SubBuffer|SubDevices|UserEvent)|Enqueue(?:(?:Barrier|Marker)(?:WithWaitList)?|Copy(?:Buffer(?:Rect|ToImage)?|Image(?:ToBuffer)?)|(?:Fill|Map)(?:Buffer|Image)|MigrateMemObjects|NDRangeKernel|NativeKernel|(?:Read|Write)(?:Buffer(?:Rect)?|Image)|SVM(?:Free|Map|MemFill|Memcpy|MigrateMem|Unmap)|Task|UnmapMemObject|WaitForEvents)|Finish|Flush|Get(?:CommandQueueInfo|ContextInfo|Device(?:AndHostTimer|IDs|Info)|Event(?:Profiling)?Info|ExtensionFunctionAddress(?:ForPlatform)?|HostTimer|ImageInfo|Kernel(?:ArgInfo|Info|SubGroupInfo|WorkGroupInfo)|MemObjectInfo|PipeInfo|Platform(?:IDs|Info)|Program(?:Build)?Info|SamplerInfo|SupportedImageFormats)|LinkProgram|(?:Release|Retain)(?:CommandQueue|Context|Device|Event|Kernel|MemObject|Program|Sampler)|SVM(?:Alloc|Free)|Set(?:CommandQueueProperty|DefaultDeviceCommandQueue|EventCallback|Kernel|Kernel(?:Arg(?:SVMPointer)?|ExecInfo)|MemObjectDestructorCallback|UserEventStatus)|Unload(?:Platform)?Compiler|WaitForEvents)\b/,alias:"function"}};i.languages.insertBefore("c","keyword",o),i.languages.cpp&&(o["type-opencl-host-cpp"]={pattern:/\b(?:Buffer|BufferGL|BufferRenderGL|CommandQueue|Context|Device|DeviceCommandQueue|EnqueueArgs|Event|Image|Image1D|Image1DArray|Image1DBuffer|Image2D|Image2DArray|Image2DGL|Image3D|Image3DGL|ImageFormat|ImageGL|Kernel|KernelFunctor|LocalSpaceArg|Memory|NDRange|Pipe|Platform|Program|SVMAllocator|SVMTraitAtomic|SVMTraitCoarse|SVMTraitFine|SVMTraitReadOnly|SVMTraitReadWrite|SVMTraitWriteOnly|Sampler|UserEvent)\b/,alias:"keyword"},i.languages.insertBefore("cpp","keyword",o))})(n)}return _f}var wf,gw;function Xj(){if(gw)return wf;gw=1,wf=e,e.displayName="openqasm",e.aliases=["qasm"];function e(t){t.languages.openqasm={comment:/\/\*[\s\S]*?\*\/|\/\/.*/,string:{pattern:/"[^"\r\n\t]*"|'[^'\r\n\t]*'/,greedy:!0},keyword:/\b(?:CX|OPENQASM|U|barrier|boxas|boxto|break|const|continue|ctrl|def|defcal|defcalgrammar|delay|else|end|for|gate|gphase|if|in|include|inv|kernel|lengthof|let|measure|pow|reset|return|rotary|stretchinf|while)\b|#pragma\b/,"class-name":/\b(?:angle|bit|bool|creg|fixed|float|int|length|qreg|qubit|stretch|uint)\b/,function:/\b(?:cos|exp|ln|popcount|rotl|rotr|sin|sqrt|tan)\b(?=\s*\()/,constant:/\b(?:euler|pi|tau)\b|π|𝜏|ℇ/,number:{pattern:/(^|[^.\w$])(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?(?:dt|ns|us|µs|ms|s)?/i,lookbehind:!0},operator:/->|>>=?|<<=?|&&|\|\||\+\+|--|[!=<>&|~^+\-*/%]=?|@/,punctuation:/[(){}\[\];,:.]/},t.languages.qasm=t.languages.openqasm}return wf}var Tf,mw;function Qj(){if(mw)return Tf;mw=1,Tf=e,e.displayName="oz",e.aliases=[];function e(t){t.languages.oz={comment:{pattern:/\/\*[\s\S]*?\*\/|%.*/,greedy:!0},string:{pattern:/"(?:[^"\\]|\\[\s\S])*"/,greedy:!0},atom:{pattern:/'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,alias:"builtin"},keyword:/\$|\[\]|\b(?:_|at|attr|case|catch|choice|class|cond|declare|define|dis|else(?:case|if)?|end|export|fail|false|feat|finally|from|fun|functor|if|import|in|local|lock|meth|nil|not|of|or|prepare|proc|prop|raise|require|self|skip|then|thread|true|try|unit)\b/,function:[/\b[a-z][A-Za-z\d]*(?=\()/,{pattern:/(\{)[A-Z][A-Za-z\d]*\b/,lookbehind:!0}],number:/\b(?:0[bx][\da-f]+|\d+(?:\.\d*)?(?:e~?\d+)?)\b|&(?:[^\\]|\\(?:\d{3}|.))/i,variable:/`(?:[^`\\]|\\.)+`/,"attr-name":/\b\w+(?=[ \t]*:(?![:=]))/,operator:/:(?:=|::?)|<[-:=]?|=(?:=|=?:?|\\=:?|!!?|[|#+\-*\/,~^@]|\b(?:andthen|div|mod|orelse)\b/,punctuation:/[\[\](){}.:;?]/}}return Tf}var xf,hw;function Jj(){if(hw)return xf;hw=1,xf=e,e.displayName="parigp",e.aliases=[];function e(t){t.languages.parigp={comment:/\/\*[\s\S]*?\*\/|\\\\.*/,string:{pattern:/"(?:[^"\\\r\n]|\\.)*"/,greedy:!0},keyword:(function(){var n=["breakpoint","break","dbg_down","dbg_err","dbg_up","dbg_x","forcomposite","fordiv","forell","forpart","forprime","forstep","forsubgroup","forvec","for","iferr","if","local","my","next","return","until","while"];return n=n.map(function(i){return i.split("").join(" *")}).join("|"),RegExp("\\b(?:"+n+")\\b")})(),function:/\b\w(?:[\w ]*\w)?(?= *\()/,number:{pattern:/((?:\. *\. *)?)(?:\b\d(?: *\d)*(?: *(?!\. *\.)\.(?: *\d)*)?|\. *\d(?: *\d)*)(?: *e *(?:[+-] *)?\d(?: *\d)*)?/i,lookbehind:!0},operator:/\. *\.|[*\/!](?: *=)?|%(?: *=|(?: *#)?(?: *')*)?|\+(?: *[+=])?|-(?: *[-=>])?|<(?: *>|(?: *<)?(?: *=)?)?|>(?: *>)?(?: *=)?|=(?: *=){0,2}|\\(?: *\/)?(?: *=)?|&(?: *&)?|\| *\||['#~^]/,punctuation:/[\[\]{}().,:;|]/}}return xf}var Af,bw;function ez(){if(bw)return Af;bw=1,Af=e,e.displayName="parser",e.aliases=[];function e(t){(function(n){var i=n.languages.parser=n.languages.extend("markup",{keyword:{pattern:/(^|[^^])(?:\^(?:case|eval|for|if|switch|throw)\b|@(?:BASE|CLASS|GET(?:_DEFAULT)?|OPTIONS|SET_DEFAULT|USE)\b)/,lookbehind:!0},variable:{pattern:/(^|[^^])\B\$(?:\w+|(?=[.{]))(?:(?:\.|::?)\w+)*(?:\.|::?)?/,lookbehind:!0,inside:{punctuation:/\.|:+/}},function:{pattern:/(^|[^^])\B[@^]\w+(?:(?:\.|::?)\w+)*(?:\.|::?)?/,lookbehind:!0,inside:{keyword:{pattern:/(^@)(?:GET_|SET_)/,lookbehind:!0},punctuation:/\.|:+/}},escape:{pattern:/\^(?:[$^;@()\[\]{}"':]|#[a-f\d]*)/i,alias:"builtin"},punctuation:/[\[\](){};]/});i=n.languages.insertBefore("parser","keyword",{"parser-comment":{pattern:/(\s)#.*/,lookbehind:!0,alias:"comment"},expression:{pattern:/(^|[^^])\((?:[^()]|\((?:[^()]|\((?:[^()])*\))*\))*\)/,greedy:!0,lookbehind:!0,inside:{string:{pattern:/(^|[^^])(["'])(?:(?!\2)[^^]|\^[\s\S])*\2/,lookbehind:!0},keyword:i.keyword,variable:i.variable,function:i.function,boolean:/\b(?:false|true)\b/,number:/\b(?:0x[a-f\d]+|\d+(?:\.\d*)?(?:e[+-]?\d+)?)\b/i,escape:i.escape,operator:/[~+*\/\\%]|!(?:\|\|?|=)?|&&?|\|\|?|==|<[<=]?|>[>=]?|-[fd]?|\b(?:def|eq|ge|gt|in|is|le|lt|ne)\b/,punctuation:i.punctuation}}}),n.languages.insertBefore("inside","punctuation",{expression:i.expression,keyword:i.keyword,variable:i.variable,function:i.function,escape:i.escape,"parser-punctuation":{pattern:i.punctuation,alias:"punctuation"}},i.tag.inside["attr-value"])})(t)}return Af}var Rf,yw;function tz(){if(yw)return Rf;yw=1,Rf=e,e.displayName="pascal",e.aliases=["objectpascal"];function e(t){t.languages.pascal={directive:{pattern:/\{\$[\s\S]*?\}/,greedy:!0,alias:["marco","property"]},comment:{pattern:/\(\*[\s\S]*?\*\)|\{[\s\S]*?\}|\/\/.*/,greedy:!0},string:{pattern:/(?:'(?:''|[^'\r\n])*'(?!')|#[&$%]?[a-f\d]+)+|\^[a-z]/i,greedy:!0},asm:{pattern:/(\basm\b)[\s\S]+?(?=\bend\s*[;[])/i,lookbehind:!0,greedy:!0,inside:null},keyword:[{pattern:/(^|[^&])\b(?:absolute|array|asm|begin|case|const|constructor|destructor|do|downto|else|end|file|for|function|goto|if|implementation|inherited|inline|interface|label|nil|object|of|operator|packed|procedure|program|record|reintroduce|repeat|self|set|string|then|to|type|unit|until|uses|var|while|with)\b/i,lookbehind:!0},{pattern:/(^|[^&])\b(?:dispose|exit|false|new|true)\b/i,lookbehind:!0},{pattern:/(^|[^&])\b(?:class|dispinterface|except|exports|finalization|finally|initialization|inline|library|on|out|packed|property|raise|resourcestring|threadvar|try)\b/i,lookbehind:!0},{pattern:/(^|[^&])\b(?:absolute|abstract|alias|assembler|bitpacked|break|cdecl|continue|cppdecl|cvar|default|deprecated|dynamic|enumerator|experimental|export|external|far|far16|forward|generic|helper|implements|index|interrupt|iochecks|local|message|name|near|nodefault|noreturn|nostackframe|oldfpccall|otherwise|overload|override|pascal|platform|private|protected|public|published|read|register|reintroduce|result|safecall|saveregisters|softfloat|specialize|static|stdcall|stored|strict|unaligned|unimplemented|varargs|virtual|write)\b/i,lookbehind:!0}],number:[/(?:[&%]\d+|\$[a-f\d]+)/i,/\b\d+(?:\.\d+)?(?:e[+-]?\d+)?/i],operator:[/\.\.|\*\*|:=|<[<=>]?|>[>=]?|[+\-*\/]=?|[@^=]/,{pattern:/(^|[^&])\b(?:and|as|div|exclude|in|include|is|mod|not|or|shl|shr|xor)\b/,lookbehind:!0}],punctuation:/\(\.|\.\)|[()\[\]:;,.]/},t.languages.pascal.asm.inside=t.languages.extend("pascal",{asm:void 0,keyword:void 0,operator:void 0}),t.languages.objectpascal=t.languages.pascal}return Rf}var Nf,Ew;function nz(){if(Ew)return Nf;Ew=1,Nf=e,e.displayName="pascaligo",e.aliases=[];function e(t){(function(n){var i=/\((?:[^()]|\((?:[^()]|\([^()]*\))*\))*\)/.source,o=/(?:\b\w+(?:)?|)/.source.replace(//g,function(){return i}),l=n.languages.pascaligo={comment:/\(\*[\s\S]+?\*\)|\/\/.*/,string:{pattern:/(["'`])(?:\\[\s\S]|(?!\1)[^\\])*\1|\^[a-z]/i,greedy:!0},"class-name":[{pattern:RegExp(/(\btype\s+\w+\s+is\s+)/.source.replace(//g,function(){return o}),"i"),lookbehind:!0,inside:null},{pattern:RegExp(/(?=\s+is\b)/.source.replace(//g,function(){return o}),"i"),inside:null},{pattern:RegExp(/(:\s*)/.source.replace(//g,function(){return o})),lookbehind:!0,inside:null}],keyword:{pattern:/(^|[^&])\b(?:begin|block|case|const|else|end|fail|for|from|function|if|is|nil|of|remove|return|skip|then|type|var|while|with)\b/i,lookbehind:!0},boolean:{pattern:/(^|[^&])\b(?:False|True)\b/i,lookbehind:!0},builtin:{pattern:/(^|[^&])\b(?:bool|int|list|map|nat|record|string|unit)\b/i,lookbehind:!0},function:/\b\w+(?=\s*\()/,number:[/%[01]+|&[0-7]+|\$[a-f\d]+/i,/\b\d+(?:\.\d+)?(?:e[+-]?\d+)?(?:mtz|n)?/i],operator:/->|=\/=|\.\.|\*\*|:=|<[<=>]?|>[>=]?|[+\-*\/]=?|[@^=|]|\b(?:and|mod|or)\b/,punctuation:/\(\.|\.\)|[()\[\]:;,.{}]/},u=["comment","keyword","builtin","operator","punctuation"].reduce(function(c,p){return c[p]=l[p],c},{});l["class-name"].forEach(function(c){c.inside=u})})(t)}return Nf}var Cf,Sw;function rz(){if(Sw)return Cf;Sw=1,Cf=e,e.displayName="pcaxis",e.aliases=["px"];function e(t){t.languages.pcaxis={string:/"[^"]*"/,keyword:{pattern:/((?:^|;)\s*)[-A-Z\d]+(?:\s*\[[-\w]+\])?(?:\s*\("[^"]*"(?:,\s*"[^"]*")*\))?(?=\s*=)/,lookbehind:!0,greedy:!0,inside:{keyword:/^[-A-Z\d]+/,language:{pattern:/^(\s*)\[[-\w]+\]/,lookbehind:!0,inside:{punctuation:/^\[|\]$/,property:/[-\w]+/}},"sub-key":{pattern:/^(\s*)\S[\s\S]*/,lookbehind:!0,inside:{parameter:{pattern:/"[^"]*"/,alias:"property"},punctuation:/^\(|\)$|,/}}}},operator:/=/,tlist:{pattern:/TLIST\s*\(\s*\w+(?:(?:\s*,\s*"[^"]*")+|\s*,\s*"[^"]*"-"[^"]*")?\s*\)/,greedy:!0,inside:{function:/^TLIST/,property:{pattern:/^(\s*\(\s*)\w+/,lookbehind:!0},string:/"[^"]*"/,punctuation:/[(),]/,operator:/-/}},punctuation:/[;,]/,number:{pattern:/(^|\s)\d+(?:\.\d+)?(?!\S)/,lookbehind:!0},boolean:/NO|YES/},t.languages.px=t.languages.pcaxis}return Cf}var If,vw;function az(){if(vw)return If;vw=1,If=e,e.displayName="peoplecode",e.aliases=["pcode"];function e(t){t.languages.peoplecode={comment:RegExp([/\/\*[\s\S]*?\*\//.source,/\bREM[^;]*;/.source,/<\*(?:[^<*]|\*(?!>)|<(?!\*)|<\*(?:(?!\*>)[\s\S])*\*>)*\*>/.source,/\/\+[\s\S]*?\+\//.source].join("|")),string:{pattern:/'(?:''|[^'\r\n])*'(?!')|"(?:""|[^"\r\n])*"(?!")/,greedy:!0},variable:/%\w+/,"function-definition":{pattern:/((?:^|[^\w-])(?:function|method)\s+)\w+/i,lookbehind:!0,alias:"function"},"class-name":{pattern:/((?:^|[^-\w])(?:as|catch|class|component|create|extends|global|implements|instance|local|of|property|returns)\s+)\w+(?::\w+)*/i,lookbehind:!0,inside:{punctuation:/:/}},keyword:/\b(?:abstract|alias|as|catch|class|component|constant|create|declare|else|end-(?:class|evaluate|for|function|get|if|method|set|try|while)|evaluate|extends|for|function|get|global|if|implements|import|instance|library|local|method|null|of|out|peopleCode|private|program|property|protected|readonly|ref|repeat|returns?|set|step|then|throw|to|try|until|value|when(?:-other)?|while)\b/i,"operator-keyword":{pattern:/\b(?:and|not|or)\b/i,alias:"operator"},function:/[_a-z]\w*(?=\s*\()/i,boolean:/\b(?:false|true)\b/i,number:/\b\d+(?:\.\d+)?\b/,operator:/<>|[<>]=?|!=|\*\*|[-+*/|=@]/,punctuation:/[:.;,()[\]]/},t.languages.pcode=t.languages.peoplecode}return If}var Of,kw;function iz(){if(kw)return Of;kw=1,Of=e,e.displayName="perl",e.aliases=[];function e(t){(function(n){var i=/(?:\((?:[^()\\]|\\[\s\S])*\)|\{(?:[^{}\\]|\\[\s\S])*\}|\[(?:[^[\]\\]|\\[\s\S])*\]|<(?:[^<>\\]|\\[\s\S])*>)/.source;n.languages.perl={comment:[{pattern:/(^\s*)=\w[\s\S]*?=cut.*/m,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\$])#.*/,lookbehind:!0,greedy:!0}],string:[{pattern:RegExp(/\b(?:q|qq|qw|qx)(?![a-zA-Z0-9])\s*/.source+"(?:"+[/([^a-zA-Z0-9\s{(\[<])(?:(?!\1)[^\\]|\\[\s\S])*\1/.source,/([a-zA-Z0-9])(?:(?!\2)[^\\]|\\[\s\S])*\2/.source,i].join("|")+")"),greedy:!0},{pattern:/("|`)(?:(?!\1)[^\\]|\\[\s\S])*\1/,greedy:!0},{pattern:/'(?:[^'\\\r\n]|\\.)*'/,greedy:!0}],regex:[{pattern:RegExp(/\b(?:m|qr)(?![a-zA-Z0-9])\s*/.source+"(?:"+[/([^a-zA-Z0-9\s{(\[<])(?:(?!\1)[^\\]|\\[\s\S])*\1/.source,/([a-zA-Z0-9])(?:(?!\2)[^\\]|\\[\s\S])*\2/.source,i].join("|")+")"+/[msixpodualngc]*/.source),greedy:!0},{pattern:RegExp(/(^|[^-])\b(?:s|tr|y)(?![a-zA-Z0-9])\s*/.source+"(?:"+[/([^a-zA-Z0-9\s{(\[<])(?:(?!\2)[^\\]|\\[\s\S])*\2(?:(?!\2)[^\\]|\\[\s\S])*\2/.source,/([a-zA-Z0-9])(?:(?!\3)[^\\]|\\[\s\S])*\3(?:(?!\3)[^\\]|\\[\s\S])*\3/.source,i+/\s*/.source+i].join("|")+")"+/[msixpodualngcer]*/.source),lookbehind:!0,greedy:!0},{pattern:/\/(?:[^\/\\\r\n]|\\.)*\/[msixpodualngc]*(?=\s*(?:$|[\r\n,.;})&|\-+*~<>!?^]|(?:and|cmp|eq|ge|gt|le|lt|ne|not|or|x|xor)\b))/,greedy:!0}],variable:[/[&*$@%]\{\^[A-Z]+\}/,/[&*$@%]\^[A-Z_]/,/[&*$@%]#?(?=\{)/,/[&*$@%]#?(?:(?:::)*'?(?!\d)[\w$]+(?![\w$]))+(?:::)*/,/[&*$@%]\d+/,/(?!%=)[$@%][!"#$%&'()*+,\-.\/:;<=>?@[\\\]^_`{|}~]/],filehandle:{pattern:/<(?![<=])\S*?>|\b_\b/,alias:"symbol"},"v-string":{pattern:/v\d+(?:\.\d+)*|\d+(?:\.\d+){2,}/,alias:"string"},function:{pattern:/(\bsub[ \t]+)\w+/,lookbehind:!0},keyword:/\b(?:any|break|continue|default|delete|die|do|else|elsif|eval|for|foreach|given|goto|if|last|local|my|next|our|package|print|redo|require|return|say|state|sub|switch|undef|unless|until|use|when|while)\b/,number:/\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0b[01](?:_?[01])*|(?:(?:\d(?:_?\d)*)?\.)?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)\b/,operator:/-[rwxoRWXOezsfdlpSbctugkTBMAC]\b|\+[+=]?|-[-=>]?|\*\*?=?|\/\/?=?|=[=~>]?|~[~=]?|\|\|?=?|&&?=?|<(?:=>?|<=?)?|>>?=?|![~=]?|[%^]=?|\.(?:=|\.\.?)?|[\\?]|\bx(?:=|\b)|\b(?:and|cmp|eq|ge|gt|le|lt|ne|not|or|xor)\b/,punctuation:/[{}[\];(),:]/}})(t)}return Of}var Lf,_w;function oz(){if(_w)return Lf;_w=1;var e=Ts();Lf=t,t.displayName="phpExtras",t.aliases=[];function t(n){n.register(e),n.languages.insertBefore("php","variable",{this:{pattern:/\$this\b/,alias:"keyword"},global:/\$(?:GLOBALS|HTTP_RAW_POST_DATA|_(?:COOKIE|ENV|FILES|GET|POST|REQUEST|SERVER|SESSION)|argc|argv|http_response_header|php_errormsg)\b/,scope:{pattern:/\b[\w\\]+::/,inside:{keyword:/\b(?:parent|self|static)\b/,punctuation:/::|\\/}}})}return Lf}var Df,ww;function sz(){if(ww)return Df;ww=1;var e=Ts(),t=ws();Df=n,n.displayName="phpdoc",n.aliases=[];function n(i){i.register(e),i.register(t),(function(o){var l=/(?:\b[a-zA-Z]\w*|[|\\[\]])+/.source;o.languages.phpdoc=o.languages.extend("javadoclike",{parameter:{pattern:RegExp("(@(?:global|param|property(?:-read|-write)?|var)\\s+(?:"+l+"\\s+)?)\\$\\w+"),lookbehind:!0}}),o.languages.insertBefore("phpdoc","keyword",{"class-name":[{pattern:RegExp("(@(?:global|package|param|property(?:-read|-write)?|return|subpackage|throws|var)\\s+)"+l),lookbehind:!0,inside:{keyword:/\b(?:array|bool|boolean|callback|double|false|float|int|integer|mixed|null|object|resource|self|string|true|void)\b/,punctuation:/[|\\[\]()]/}}]}),o.languages.javadoclike.addSupport("php",o.languages.phpdoc)})(i)}return Df}var Mf,Tw;function lz(){if(Tw)return Mf;Tw=1;var e=ph();Mf=t,t.displayName="plsql",t.aliases=[];function t(n){n.register(e),n.languages.plsql=n.languages.extend("sql",{comment:{pattern:/\/\*[\s\S]*?\*\/|--.*/,greedy:!0},keyword:/\b(?:A|ACCESSIBLE|ADD|AGENT|AGGREGATE|ALL|ALTER|AND|ANY|ARRAY|AS|ASC|AT|ATTRIBUTE|AUTHID|AVG|BEGIN|BETWEEN|BFILE_BASE|BINARY|BLOB_BASE|BLOCK|BODY|BOTH|BOUND|BULK|BY|BYTE|C|CALL|CALLING|CASCADE|CASE|CHAR|CHARACTER|CHARSET|CHARSETFORM|CHARSETID|CHAR_BASE|CHECK|CLOB_BASE|CLONE|CLOSE|CLUSTER|CLUSTERS|COLAUTH|COLLECT|COLUMNS|COMMENT|COMMIT|COMMITTED|COMPILED|COMPRESS|CONNECT|CONSTANT|CONSTRUCTOR|CONTEXT|CONTINUE|CONVERT|COUNT|CRASH|CREATE|CREDENTIAL|CURRENT|CURSOR|CUSTOMDATUM|DANGLING|DATA|DATE|DATE_BASE|DAY|DECLARE|DEFAULT|DEFINE|DELETE|DESC|DETERMINISTIC|DIRECTORY|DISTINCT|DOUBLE|DROP|DURATION|ELEMENT|ELSE|ELSIF|EMPTY|END|ESCAPE|EXCEPT|EXCEPTION|EXCEPTIONS|EXCLUSIVE|EXECUTE|EXISTS|EXIT|EXTERNAL|FETCH|FINAL|FIRST|FIXED|FLOAT|FOR|FORALL|FORCE|FROM|FUNCTION|GENERAL|GOTO|GRANT|GROUP|HASH|HAVING|HEAP|HIDDEN|HOUR|IDENTIFIED|IF|IMMEDIATE|IMMUTABLE|IN|INCLUDING|INDEX|INDEXES|INDICATOR|INDICES|INFINITE|INSERT|INSTANTIABLE|INT|INTERFACE|INTERSECT|INTERVAL|INTO|INVALIDATE|IS|ISOLATION|JAVA|LANGUAGE|LARGE|LEADING|LENGTH|LEVEL|LIBRARY|LIKE|LIKE2|LIKE4|LIKEC|LIMIT|LIMITED|LOCAL|LOCK|LONG|LOOP|MAP|MAX|MAXLEN|MEMBER|MERGE|MIN|MINUS|MINUTE|MOD|MODE|MODIFY|MONTH|MULTISET|MUTABLE|NAME|NAN|NATIONAL|NATIVE|NCHAR|NEW|NOCOMPRESS|NOCOPY|NOT|NOWAIT|NULL|NUMBER_BASE|OBJECT|OCICOLL|OCIDATE|OCIDATETIME|OCIDURATION|OCIINTERVAL|OCILOBLOCATOR|OCINUMBER|OCIRAW|OCIREF|OCIREFCURSOR|OCIROWID|OCISTRING|OCITYPE|OF|OLD|ON|ONLY|OPAQUE|OPEN|OPERATOR|OPTION|OR|ORACLE|ORADATA|ORDER|ORGANIZATION|ORLANY|ORLVARY|OTHERS|OUT|OVERLAPS|OVERRIDING|PACKAGE|PARALLEL_ENABLE|PARAMETER|PARAMETERS|PARENT|PARTITION|PASCAL|PERSISTABLE|PIPE|PIPELINED|PLUGGABLE|POLYMORPHIC|PRAGMA|PRECISION|PRIOR|PRIVATE|PROCEDURE|PUBLIC|RAISE|RANGE|RAW|READ|RECORD|REF|REFERENCE|RELIES_ON|REM|REMAINDER|RENAME|RESOURCE|RESULT|RESULT_CACHE|RETURN|RETURNING|REVERSE|REVOKE|ROLLBACK|ROW|SAMPLE|SAVE|SAVEPOINT|SB1|SB2|SB4|SECOND|SEGMENT|SELECT|SELF|SEPARATE|SEQUENCE|SERIALIZABLE|SET|SHARE|SHORT|SIZE|SIZE_T|SOME|SPARSE|SQL|SQLCODE|SQLDATA|SQLNAME|SQLSTATE|STANDARD|START|STATIC|STDDEV|STORED|STRING|STRUCT|STYLE|SUBMULTISET|SUBPARTITION|SUBSTITUTABLE|SUBTYPE|SUM|SYNONYM|TABAUTH|TABLE|TDO|THE|THEN|TIME|TIMESTAMP|TIMEZONE_ABBR|TIMEZONE_HOUR|TIMEZONE_MINUTE|TIMEZONE_REGION|TO|TRAILING|TRANSACTION|TRANSACTIONAL|TRUSTED|TYPE|UB1|UB2|UB4|UNDER|UNION|UNIQUE|UNPLUG|UNSIGNED|UNTRUSTED|UPDATE|USE|USING|VALIST|VALUE|VALUES|VARIABLE|VARIANCE|VARRAY|VARYING|VIEW|VIEWS|VOID|WHEN|WHERE|WHILE|WITH|WORK|WRAPPED|WRITE|YEAR|ZONE)\b/i,operator:/:=?|=>|[<>^~!]=|\.\.|\|\||\*\*|[-+*/%<>=@]/}),n.languages.insertBefore("plsql","operator",{label:{pattern:/<<\s*\w+\s*>>/,alias:"symbol"}})}return Mf}var Ff,xw;function uz(){if(xw)return Ff;xw=1,Ff=e,e.displayName="powerquery",e.aliases=[];function e(t){t.languages.powerquery={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0,greedy:!0},"quoted-identifier":{pattern:/#"(?:[^"\r\n]|"")*"(?!")/,greedy:!0},string:{pattern:/(?:#!)?"(?:[^"\r\n]|"")*"(?!")/,greedy:!0},constant:[/\bDay\.(?:Friday|Monday|Saturday|Sunday|Thursday|Tuesday|Wednesday)\b/,/\bTraceLevel\.(?:Critical|Error|Information|Verbose|Warning)\b/,/\bOccurrence\.(?:All|First|Last)\b/,/\bOrder\.(?:Ascending|Descending)\b/,/\bRoundingMode\.(?:AwayFromZero|Down|ToEven|TowardZero|Up)\b/,/\bMissingField\.(?:Error|Ignore|UseNull)\b/,/\bQuoteStyle\.(?:Csv|None)\b/,/\bJoinKind\.(?:FullOuter|Inner|LeftAnti|LeftOuter|RightAnti|RightOuter)\b/,/\bGroupKind\.(?:Global|Local)\b/,/\bExtraValues\.(?:Error|Ignore|List)\b/,/\bJoinAlgorithm\.(?:Dynamic|LeftHash|LeftIndex|PairwiseHash|RightHash|RightIndex|SortMerge)\b/,/\bJoinSide\.(?:Left|Right)\b/,/\bPrecision\.(?:Decimal|Double)\b/,/\bRelativePosition\.From(?:End|Start)\b/,/\bTextEncoding\.(?:Ascii|BigEndianUnicode|Unicode|Utf16|Utf8|Windows)\b/,/\b(?:Any|Binary|Date|DateTime|DateTimeZone|Duration|Function|Int16|Int32|Int64|Int8|List|Logical|None|Number|Record|Table|Text|Time)\.Type\b/,/\bnull\b/],boolean:/\b(?:false|true)\b/,keyword:/\b(?:and|as|each|else|error|if|in|is|let|meta|not|nullable|optional|or|otherwise|section|shared|then|try|type)\b|#(?:binary|date|datetime|datetimezone|duration|infinity|nan|sections|shared|table|time)\b/,function:{pattern:/(^|[^#\w.])[a-z_][\w.]*(?=\s*\()/i,lookbehind:!0},"data-type":{pattern:/\b(?:any|anynonnull|binary|date|datetime|datetimezone|duration|function|list|logical|none|number|record|table|text|time)\b/,alias:"class-name"},number:{pattern:/\b0x[\da-f]+\b|(?:[+-]?(?:\b\d+\.)?\b\d+|[+-]\.\d+|(^|[^.])\B\.\d+)(?:e[+-]?\d+)?\b/i,lookbehind:!0},operator:/[-+*\/&?@^]|<(?:=>?|>)?|>=?|=>?|\.\.\.?/,punctuation:/[,;\[\](){}]/},t.languages.pq=t.languages.powerquery,t.languages.mscript=t.languages.powerquery}return Ff}var Pf,Aw;function cz(){if(Aw)return Pf;Aw=1,Pf=e,e.displayName="powershell",e.aliases=[];function e(t){(function(n){var i=n.languages.powershell={comment:[{pattern:/(^|[^`])<#[\s\S]*?#>/,lookbehind:!0},{pattern:/(^|[^`])#.*/,lookbehind:!0}],string:[{pattern:/"(?:`[\s\S]|[^`"])*"/,greedy:!0,inside:null},{pattern:/'(?:[^']|'')*'/,greedy:!0}],namespace:/\[[a-z](?:\[(?:\[[^\]]*\]|[^\[\]])*\]|[^\[\]])*\]/i,boolean:/\$(?:false|true)\b/i,variable:/\$\w+\b/,function:[/\b(?:Add|Approve|Assert|Backup|Block|Checkpoint|Clear|Close|Compare|Complete|Compress|Confirm|Connect|Convert|ConvertFrom|ConvertTo|Copy|Debug|Deny|Disable|Disconnect|Dismount|Edit|Enable|Enter|Exit|Expand|Export|Find|ForEach|Format|Get|Grant|Group|Hide|Import|Initialize|Install|Invoke|Join|Limit|Lock|Measure|Merge|Move|New|Open|Optimize|Out|Ping|Pop|Protect|Publish|Push|Read|Receive|Redo|Register|Remove|Rename|Repair|Request|Reset|Resize|Resolve|Restart|Restore|Resume|Revoke|Save|Search|Select|Send|Set|Show|Skip|Sort|Split|Start|Step|Stop|Submit|Suspend|Switch|Sync|Tee|Test|Trace|Unblock|Undo|Uninstall|Unlock|Unprotect|Unpublish|Unregister|Update|Use|Wait|Watch|Where|Write)-[a-z]+\b/i,/\b(?:ac|cat|chdir|clc|cli|clp|clv|compare|copy|cp|cpi|cpp|cvpa|dbp|del|diff|dir|ebp|echo|epal|epcsv|epsn|erase|fc|fl|ft|fw|gal|gbp|gc|gci|gcs|gdr|gi|gl|gm|gp|gps|group|gsv|gu|gv|gwmi|iex|ii|ipal|ipcsv|ipsn|irm|iwmi|iwr|kill|lp|ls|measure|mi|mount|move|mp|mv|nal|ndr|ni|nv|ogv|popd|ps|pushd|pwd|rbp|rd|rdr|ren|ri|rm|rmdir|rni|rnp|rp|rv|rvpa|rwmi|sal|saps|sasv|sbp|sc|select|set|shcm|si|sl|sleep|sls|sort|sp|spps|spsv|start|sv|swmi|tee|trcm|type|write)\b/i],keyword:/\b(?:Begin|Break|Catch|Class|Continue|Data|Define|Do|DynamicParam|Else|ElseIf|End|Exit|Filter|Finally|For|ForEach|From|Function|If|InlineScript|Parallel|Param|Process|Return|Sequence|Switch|Throw|Trap|Try|Until|Using|Var|While|Workflow)\b/i,operator:{pattern:/(^|\W)(?:!|-(?:b?(?:and|x?or)|as|(?:Not)?(?:Contains|In|Like|Match)|eq|ge|gt|is(?:Not)?|Join|le|lt|ne|not|Replace|sh[lr])\b|-[-=]?|\+[+=]?|[*\/%]=?)/i,lookbehind:!0},punctuation:/[|{}[\];(),.]/};i.string[0].inside={function:{pattern:/(^|[^`])\$\((?:\$\([^\r\n()]*\)|(?!\$\()[^\r\n)])*\)/,lookbehind:!0,inside:i},boolean:i.boolean,variable:i.variable}})(t)}return Pf}var Uf,Rw;function dz(){if(Rw)return Uf;Rw=1,Uf=e,e.displayName="processing",e.aliases=[];function e(t){t.languages.processing=t.languages.extend("clike",{keyword:/\b(?:break|case|catch|class|continue|default|else|extends|final|for|if|implements|import|new|null|private|public|return|static|super|switch|this|try|void|while)\b/,function:/\b\w+(?=\s*\()/,operator:/<[<=]?|>[>=]?|&&?|\|\|?|[%?]|[!=+\-*\/]=?/}),t.languages.insertBefore("processing","number",{constant:/\b(?!XML\b)[A-Z][A-Z\d_]+\b/,type:{pattern:/\b(?:boolean|byte|char|color|double|float|int|[A-Z]\w*)\b/,alias:"class-name"}})}return Uf}var Bf,Nw;function pz(){if(Nw)return Bf;Nw=1,Bf=e,e.displayName="prolog",e.aliases=[];function e(t){t.languages.prolog={comment:{pattern:/\/\*[\s\S]*?\*\/|%.*/,greedy:!0},string:{pattern:/(["'])(?:\1\1|\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1(?!\1)/,greedy:!0},builtin:/\b(?:fx|fy|xf[xy]?|yfx?)\b/,function:/\b[a-z]\w*(?:(?=\()|\/\d+)/,number:/\b\d+(?:\.\d*)?/,operator:/[:\\=><\-?*@\/;+^|!$.]+|\b(?:is|mod|not|xor)\b/,punctuation:/[(){}\[\],]/}}return Bf}var jf,Cw;function fz(){if(Cw)return jf;Cw=1,jf=e,e.displayName="promql",e.aliases=[];function e(t){(function(n){var i=["sum","min","max","avg","group","stddev","stdvar","count","count_values","bottomk","topk","quantile"],o=["on","ignoring","group_right","group_left","by","without"],l=["offset"],u=i.concat(o,l);n.languages.promql={comment:{pattern:/(^[ \t]*)#.*/m,lookbehind:!0},"vector-match":{pattern:new RegExp("((?:"+o.join("|")+")\\s*)\\([^)]*\\)"),lookbehind:!0,inside:{"label-key":{pattern:/\b[^,]+\b/,alias:"attr-name"},punctuation:/[(),]/}},"context-labels":{pattern:/\{[^{}]*\}/,inside:{"label-key":{pattern:/\b[a-z_]\w*(?=\s*(?:=|![=~]))/,alias:"attr-name"},"label-value":{pattern:/(["'`])(?:\\[\s\S]|(?!\1)[^\\])*\1/,greedy:!0,alias:"attr-value"},punctuation:/\{|\}|=~?|![=~]|,/}},"context-range":[{pattern:/\[[\w\s:]+\]/,inside:{punctuation:/\[|\]|:/,"range-duration":{pattern:/\b(?:\d+(?:[smhdwy]|ms))+\b/i,alias:"number"}}},{pattern:/(\boffset\s+)\w+/,lookbehind:!0,inside:{"range-duration":{pattern:/\b(?:\d+(?:[smhdwy]|ms))+\b/i,alias:"number"}}}],keyword:new RegExp("\\b(?:"+u.join("|")+")\\b","i"),function:/\b[a-z_]\w*(?=\s*\()/i,number:/[-+]?(?:(?:\b\d+(?:\.\d+)?|\B\.\d+)(?:e[-+]?\d+)?\b|\b(?:0x[0-9a-f]+|nan|inf)\b)/i,operator:/[\^*/%+-]|==|!=|<=|<|>=|>|\b(?:and|or|unless)\b/i,punctuation:/[{};()`,.[\]]/}})(t)}return jf}var zf,Iw;function gz(){if(Iw)return zf;Iw=1,zf=e,e.displayName="properties",e.aliases=[];function e(t){t.languages.properties={comment:/^[ \t]*[#!].*$/m,"attr-value":{pattern:/(^[ \t]*(?:\\(?:\r\n|[\s\S])|[^\\\s:=])+(?: *[=:] *(?! )| ))(?:\\(?:\r\n|[\s\S])|[^\\\r\n])+/m,lookbehind:!0},"attr-name":/^[ \t]*(?:\\(?:\r\n|[\s\S])|[^\\\s:=])+(?= *[=:]| )/m,punctuation:/[=:]/}}return zf}var $f,Ow;function mz(){if(Ow)return $f;Ow=1,$f=e,e.displayName="protobuf",e.aliases=[];function e(t){(function(n){var i=/\b(?:bool|bytes|double|s?fixed(?:32|64)|float|[su]?int(?:32|64)|string)\b/;n.languages.protobuf=n.languages.extend("clike",{"class-name":[{pattern:/(\b(?:enum|extend|message|service)\s+)[A-Za-z_]\w*(?=\s*\{)/,lookbehind:!0},{pattern:/(\b(?:rpc\s+\w+|returns)\s*\(\s*(?:stream\s+)?)\.?[A-Za-z_]\w*(?:\.[A-Za-z_]\w*)*(?=\s*\))/,lookbehind:!0}],keyword:/\b(?:enum|extend|extensions|import|message|oneof|option|optional|package|public|repeated|required|reserved|returns|rpc(?=\s+\w)|service|stream|syntax|to)\b(?!\s*=\s*\d)/,function:/\b[a-z_]\w*(?=\s*\()/i}),n.languages.insertBefore("protobuf","operator",{map:{pattern:/\bmap<\s*[\w.]+\s*,\s*[\w.]+\s*>(?=\s+[a-z_]\w*\s*[=;])/i,alias:"class-name",inside:{punctuation:/[<>.,]/,builtin:i}},builtin:i,"positional-class-name":{pattern:/(?:\b|\B\.)[a-z_]\w*(?:\.[a-z_]\w*)*(?=\s+[a-z_]\w*\s*[=;])/i,alias:"class-name",inside:{punctuation:/\./}},annotation:{pattern:/(\[\s*)[a-z_]\w*(?=\s*=)/i,lookbehind:!0}})})(t)}return $f}var qf,Lw;function hz(){if(Lw)return qf;Lw=1,qf=e,e.displayName="psl",e.aliases=[];function e(t){t.languages.psl={comment:{pattern:/#.*/,greedy:!0},string:{pattern:/"(?:\\.|[^\\"])*"/,greedy:!0,inside:{symbol:/\\[ntrbA-Z"\\]/}},"heredoc-string":{pattern:/<<<([a-zA-Z_]\w*)[\r\n](?:.*[\r\n])*?\1\b/,alias:"string",greedy:!0},keyword:/\b(?:__multi|__single|case|default|do|else|elsif|exit|export|for|foreach|function|if|last|line|local|next|requires|return|switch|until|while|word)\b/,constant:/\b(?:ALARM|CHART_ADD_GRAPH|CHART_DELETE_GRAPH|CHART_DESTROY|CHART_LOAD|CHART_PRINT|EOF|OFFLINE|OK|PSL_PROF_LOG|R_CHECK_HORIZ|R_CHECK_VERT|R_CLICKER|R_COLUMN|R_FRAME|R_ICON|R_LABEL|R_LABEL_CENTER|R_LIST_MULTIPLE|R_LIST_MULTIPLE_ND|R_LIST_SINGLE|R_LIST_SINGLE_ND|R_MENU|R_POPUP|R_POPUP_SCROLLED|R_RADIO_HORIZ|R_RADIO_VERT|R_ROW|R_SCALE_HORIZ|R_SCALE_VERT|R_SEP_HORIZ|R_SEP_VERT|R_SPINNER|R_TEXT_FIELD|R_TEXT_FIELD_LABEL|R_TOGGLE|TRIM_LEADING|TRIM_LEADING_AND_TRAILING|TRIM_REDUNDANT|TRIM_TRAILING|VOID|WARN)\b/,boolean:/\b(?:FALSE|False|NO|No|TRUE|True|YES|Yes|false|no|true|yes)\b/,variable:/\b(?:PslDebug|errno|exit_status)\b/,builtin:{pattern:/\b(?:PslExecute|PslFunctionCall|PslFunctionExists|PslSetOptions|_snmp_debug|acos|add_diary|annotate|annotate_get|ascii_to_ebcdic|asctime|asin|atan|atexit|batch_set|blackout|cat|ceil|chan_exists|change_state|close|code_cvt|cond_signal|cond_wait|console_type|convert_base|convert_date|convert_locale_date|cos|cosh|create|date|dcget_text|destroy|destroy_lock|dget_text|difference|dump_hist|ebcdic_to_ascii|encrypt|event_archive|event_catalog_get|event_check|event_query|event_range_manage|event_range_query|event_report|event_schedule|event_trigger|event_trigger2|execute|exists|exp|fabs|file|floor|fmod|fopen|fseek|ftell|full_discovery|get|get_chan_info|get_ranges|get_text|get_vars|getenv|gethostinfo|getpid|getpname|grep|history|history_get_retention|in_transition|index|int|internal|intersection|is_var|isnumber|join|kill|length|lines|lock|lock_info|log|log10|loge|matchline|msg_check|msg_get_format|msg_get_severity|msg_printf|msg_sprintf|ntharg|nthargf|nthline|nthlinef|num_bytes|num_consoles|pconfig|popen|poplines|pow|print|printf|proc_exists|process|random|read|readln|refresh_parameters|remote_check|remote_close|remote_event_query|remote_event_trigger|remote_file_send|remote_open|remove|replace|rindex|sec_check_priv|sec_store_get|sec_store_set|set|set_alarm_ranges|set_locale|share|sin|sinh|sleep|snmp_agent_config|snmp_agent_start|snmp_agent_stop|snmp_close|snmp_config|snmp_get|snmp_get_next|snmp_h_get|snmp_h_get_next|snmp_h_set|snmp_open|snmp_set|snmp_trap_ignore|snmp_trap_listen|snmp_trap_raise_std_trap|snmp_trap_receive|snmp_trap_register_im|snmp_trap_send|snmp_walk|sopen|sort|splitline|sprintf|sqrt|srandom|str_repeat|strcasecmp|subset|substr|system|tail|tan|tanh|text_domain|time|tmpnam|tolower|toupper|trace_psl_process|trim|union|unique|unlock|unset|va_arg|va_start|write)\b/,alias:"builtin-function"},"foreach-variable":{pattern:/(\bforeach\s+(?:(?:\w+\b|"(?:\\.|[^\\"])*")\s+){0,2})[_a-zA-Z]\w*(?=\s*\()/,lookbehind:!0,greedy:!0},function:/\b[_a-z]\w*\b(?=\s*\()/i,number:/\b(?:0x[0-9a-f]+|\d+(?:\.\d+)?)\b/i,operator:/--|\+\+|&&=?|\|\|=?|<<=?|>>=?|[=!]~|[-+*/%&|^!=<>]=?|\.|[:?]/,punctuation:/[(){}\[\];,]/}}return qf}var Gf,Dw;function bz(){if(Dw)return Gf;Dw=1,Gf=e,e.displayName="pug",e.aliases=[];function e(t){(function(n){n.languages.pug={comment:{pattern:/(^([\t ]*))\/\/.*(?:(?:\r?\n|\r)\2[\t ].+)*/m,lookbehind:!0},"multiline-script":{pattern:/(^([\t ]*)script\b.*\.[\t ]*)(?:(?:\r?\n|\r(?!\n))(?:\2[\t ].+|\s*?(?=\r?\n|\r)))+/m,lookbehind:!0,inside:n.languages.javascript},filter:{pattern:/(^([\t ]*)):.+(?:(?:\r?\n|\r(?!\n))(?:\2[\t ].+|\s*?(?=\r?\n|\r)))+/m,lookbehind:!0,inside:{"filter-name":{pattern:/^:[\w-]+/,alias:"variable"},text:/\S[\s\S]*/}},"multiline-plain-text":{pattern:/(^([\t ]*)[\w\-#.]+\.[\t ]*)(?:(?:\r?\n|\r(?!\n))(?:\2[\t ].+|\s*?(?=\r?\n|\r)))+/m,lookbehind:!0},markup:{pattern:/(^[\t ]*)<.+/m,lookbehind:!0,inside:n.languages.markup},doctype:{pattern:/((?:^|\n)[\t ]*)doctype(?: .+)?/,lookbehind:!0},"flow-control":{pattern:/(^[\t ]*)(?:case|default|each|else|if|unless|when|while)\b(?: .+)?/m,lookbehind:!0,inside:{each:{pattern:/^each .+? in\b/,inside:{keyword:/\b(?:each|in)\b/,punctuation:/,/}},branch:{pattern:/^(?:case|default|else|if|unless|when|while)\b/,alias:"keyword"},rest:n.languages.javascript}},keyword:{pattern:/(^[\t ]*)(?:append|block|extends|include|prepend)\b.+/m,lookbehind:!0},mixin:[{pattern:/(^[\t ]*)mixin .+/m,lookbehind:!0,inside:{keyword:/^mixin/,function:/\w+(?=\s*\(|\s*$)/,punctuation:/[(),.]/}},{pattern:/(^[\t ]*)\+.+/m,lookbehind:!0,inside:{name:{pattern:/^\+\w+/,alias:"function"},rest:n.languages.javascript}}],script:{pattern:/(^[\t ]*script(?:(?:&[^(]+)?\([^)]+\))*[\t ]).+/m,lookbehind:!0,inside:n.languages.javascript},"plain-text":{pattern:/(^[\t ]*(?!-)[\w\-#.]*[\w\-](?:(?:&[^(]+)?\([^)]+\))*\/?[\t ]).+/m,lookbehind:!0},tag:{pattern:/(^[\t ]*)(?!-)[\w\-#.]*[\w\-](?:(?:&[^(]+)?\([^)]+\))*\/?:?/m,lookbehind:!0,inside:{attributes:[{pattern:/&[^(]+\([^)]+\)/,inside:n.languages.javascript},{pattern:/\([^)]+\)/,inside:{"attr-value":{pattern:/(=\s*(?!\s))(?:\{[^}]*\}|[^,)\r\n]+)/,lookbehind:!0,inside:n.languages.javascript},"attr-name":/[\w-]+(?=\s*!?=|\s*[,)])/,punctuation:/[!=(),]+/}}],punctuation:/:/,"attr-id":/#[\w\-]+/,"attr-class":/\.[\w\-]+/}},code:[{pattern:/(^[\t ]*(?:-|!?=)).+/m,lookbehind:!0,inside:n.languages.javascript}],punctuation:/[.\-!=|]+/};for(var i=/(^([\t ]*)):(?:(?:\r?\n|\r(?!\n))(?:\2[\t ].+|\s*?(?=\r?\n|\r)))+/.source,o=[{filter:"atpl",language:"twig"},{filter:"coffee",language:"coffeescript"},"ejs","handlebars","less","livescript","markdown",{filter:"sass",language:"scss"},"stylus"],l={},u=0,c=o.length;u",function(){return p.filter}),"m"),lookbehind:!0,inside:{"filter-name":{pattern:/^:[\w-]+/,alias:"variable"},text:{pattern:/\S[\s\S]*/,alias:[p.language,"language-"+p.language],inside:n.languages[p.language]}}})}n.languages.insertBefore("pug","filter",l)})(t)}return Gf}var Hf,Mw;function yz(){if(Mw)return Hf;Mw=1,Hf=e,e.displayName="puppet",e.aliases=[];function e(t){(function(n){n.languages.puppet={heredoc:[{pattern:/(@\("([^"\r\n\/):]+)"(?:\/[nrts$uL]*)?\).*(?:\r?\n|\r))(?:.*(?:\r?\n|\r(?!\n)))*?[ \t]*(?:\|[ \t]*)?(?:-[ \t]*)?\2/,lookbehind:!0,alias:"string",inside:{punctuation:/(?=\S).*\S(?= *$)/}},{pattern:/(@\(([^"\r\n\/):]+)(?:\/[nrts$uL]*)?\).*(?:\r?\n|\r))(?:.*(?:\r?\n|\r(?!\n)))*?[ \t]*(?:\|[ \t]*)?(?:-[ \t]*)?\2/,lookbehind:!0,greedy:!0,alias:"string",inside:{punctuation:/(?=\S).*\S(?= *$)/}},{pattern:/@\("?(?:[^"\r\n\/):]+)"?(?:\/[nrts$uL]*)?\)/,alias:"string",inside:{punctuation:{pattern:/(\().+?(?=\))/,lookbehind:!0}}}],"multiline-comment":{pattern:/(^|[^\\])\/\*[\s\S]*?\*\//,lookbehind:!0,greedy:!0,alias:"comment"},regex:{pattern:/((?:\bnode\s+|[~=\(\[\{,]\s*|[=+]>\s*|^\s*))\/(?:[^\/\\]|\\[\s\S])+\/(?:[imx]+\b|\B)/,lookbehind:!0,greedy:!0,inside:{"extended-regex":{pattern:/^\/(?:[^\/\\]|\\[\s\S])+\/[im]*x[im]*$/,inside:{comment:/#.*/}}}},comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},string:{pattern:/(["'])(?:\$\{(?:[^'"}]|(["'])(?:(?!\2)[^\\]|\\[\s\S])*\2)+\}|\$(?!\{)|(?!\1)[^\\$]|\\[\s\S])*\1/,greedy:!0,inside:{"double-quoted":{pattern:/^"[\s\S]*"$/,inside:{}}}},variable:{pattern:/\$(?:::)?\w+(?:::\w+)*/,inside:{punctuation:/::/}},"attr-name":/(?:\b\w+|\*)(?=\s*=>)/,function:[{pattern:/(\.)(?!\d)\w+/,lookbehind:!0},/\b(?:contain|debug|err|fail|include|info|notice|realize|require|tag|warning)\b|\b(?!\d)\w+(?=\()/],number:/\b(?:0x[a-f\d]+|\d+(?:\.\d+)?(?:e-?\d+)?)\b/i,boolean:/\b(?:false|true)\b/,keyword:/\b(?:application|attr|case|class|consumes|default|define|else|elsif|function|if|import|inherits|node|private|produces|type|undef|unless)\b/,datatype:{pattern:/\b(?:Any|Array|Boolean|Callable|Catalogentry|Class|Collection|Data|Default|Enum|Float|Hash|Integer|NotUndef|Numeric|Optional|Pattern|Regexp|Resource|Runtime|Scalar|String|Struct|Tuple|Type|Undef|Variant)\b/,alias:"symbol"},operator:/=[=~>]?|![=~]?|<(?:<\|?|[=~|-])?|>[>=]?|->?|~>|\|>?>?|[*\/%+?]|\b(?:and|in|or)\b/,punctuation:/[\[\]{}().,;]|:+/};var i=[{pattern:/(^|[^\\])\$\{(?:[^'"{}]|\{[^}]*\}|(["'])(?:(?!\2)[^\\]|\\[\s\S])*\2)+\}/,lookbehind:!0,inside:{"short-variable":{pattern:/(^\$\{)(?!\w+\()(?:::)?\w+(?:::\w+)*/,lookbehind:!0,alias:"variable",inside:{punctuation:/::/}},delimiter:{pattern:/^\$/,alias:"variable"},rest:n.languages.puppet}},{pattern:/(^|[^\\])\$(?:::)?\w+(?:::\w+)*/,lookbehind:!0,alias:"variable",inside:{punctuation:/::/}}];n.languages.puppet.heredoc[0].inside.interpolation=i,n.languages.puppet.string.inside["double-quoted"].inside.interpolation=i})(t)}return Hf}var Wf,Fw;function Ez(){if(Fw)return Wf;Fw=1,Wf=e,e.displayName="pure",e.aliases=[];function e(t){(function(n){n.languages.pure={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?\*\//,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0},/#!.+/],"inline-lang":{pattern:/%<[\s\S]+?%>/,greedy:!0,inside:{lang:{pattern:/(^%< *)-\*-.+?-\*-/,lookbehind:!0,alias:"comment"},delimiter:{pattern:/^%<.*|%>$/,alias:"punctuation"}}},string:{pattern:/"(?:\\.|[^"\\\r\n])*"/,greedy:!0},number:{pattern:/((?:\.\.)?)(?:\b(?:inf|nan)\b|\b0x[\da-f]+|(?:\b(?:0b)?\d+(?:\.\d+)?|\B\.\d+)(?:e[+-]?\d+)?L?)/i,lookbehind:!0},keyword:/\b(?:NULL|ans|break|bt|case|catch|cd|clear|const|def|del|dump|else|end|exit|extern|false|force|help|if|infix[lr]?|interface|let|ls|mem|namespace|nonfix|of|otherwise|outfix|override|postfix|prefix|private|public|pwd|quit|run|save|show|stats|then|throw|trace|true|type|underride|using|when|with)\b/,function:/\b(?:abs|add_(?:addr|constdef|(?:fundef|interface|macdef|typedef)(?:_at)?|vardef)|all|any|applp?|arity|bigintp?|blob(?:_crc|_size|p)?|boolp?|byte_c?string(?:_pointer)?|byte_(?:matrix|pointer)|calloc|cat|catmap|ceil|char[ps]?|check_ptrtag|chr|clear_sentry|clearsym|closurep?|cmatrixp?|cols?|colcat(?:map)?|colmap|colrev|colvector(?:p|seq)?|complex(?:_float_(?:matrix|pointer)|_matrix(?:_view)?|_pointer|p)?|conj|cookedp?|cst|cstring(?:_(?:dup|list|vector))?|curry3?|cyclen?|del_(?:constdef|fundef|interface|macdef|typedef|vardef)|delete|diag(?:mat)?|dim|dmatrixp?|do|double(?:_matrix(?:_view)?|_pointer|p)?|dowith3?|drop|dropwhile|eval(?:cmd)?|exactp|filter|fix|fixity|flip|float(?:_matrix|_pointer)|floor|fold[lr]1?|frac|free|funp?|functionp?|gcd|get(?:_(?:byte|constdef|double|float|fundef|int(?:64)?|interface(?:_typedef)?|long|macdef|pointer|ptrtag|sentry|short|string|typedef|vardef))?|globsym|hash|head|id|im|imatrixp?|index|inexactp|infp|init|insert|int(?:_matrix(?:_view)?|_pointer|p)?|int64_(?:matrix|pointer)|integerp?|iteraten?|iterwhile|join|keys?|lambdap?|last(?:err(?:pos)?)?|lcd|list[2p]?|listmap|make_ptrtag|malloc|map|matcat|matrixp?|max|member|min|nanp|nargs|nmatrixp?|null|numberp?|ord|pack(?:ed)?|pointer(?:_cast|_tag|_type|p)?|pow|pred|ptrtag|put(?:_(?:byte|double|float|int(?:64)?|long|pointer|short|string))?|rationalp?|re|realp?|realloc|recordp?|redim|reduce(?:_with)?|refp?|repeatn?|reverse|rlistp?|round|rows?|rowcat(?:map)?|rowmap|rowrev|rowvector(?:p|seq)?|same|scan[lr]1?|sentry|sgn|short_(?:matrix|pointer)|slice|smatrixp?|sort|split|str|strcat|stream|stride|string(?:_(?:dup|list|vector)|p)?|subdiag(?:mat)?|submat|subseq2?|substr|succ|supdiag(?:mat)?|symbolp?|tail|take|takewhile|thunkp?|transpose|trunc|tuplep?|typep|ubyte|uint(?:64)?|ulong|uncurry3?|unref|unzip3?|update|ushort|vals?|varp?|vector(?:p|seq)?|void|zip3?|zipwith3?)\b/,special:{pattern:/\b__[a-z]+__\b/i,alias:"builtin"},operator:/(?:[!"#$%&'*+,\-.\/:<=>?@\\^`|~\u00a1-\u00bf\u00d7-\u00f7\u20d0-\u2bff]|\b_+\b)+|\b(?:and|div|mod|not|or)\b/,punctuation:/[(){}\[\];,|]/};var i=["c",{lang:"c++",alias:"cpp"},"fortran"],o=/%< *-\*- *\d* *-\*-[\s\S]+?%>/.source;i.forEach(function(l){var u=l;if(typeof l!="string"&&(u=l.alias,l=l.lang),n.languages[u]){var c={};c["inline-lang-"+u]={pattern:RegExp(o.replace("",l.replace(/([.+*?\/\\(){}\[\]])/g,"\\$1")),"i"),inside:n.util.clone(n.languages.pure["inline-lang"].inside)},c["inline-lang-"+u].inside.rest=n.util.clone(n.languages[u]),n.languages.insertBefore("pure","inline-lang",c)}}),n.languages.c&&(n.languages.pure["inline-lang"].inside.rest=n.util.clone(n.languages.c))})(t)}return Wf}var Vf,Pw;function Sz(){if(Pw)return Vf;Pw=1,Vf=e,e.displayName="purebasic",e.aliases=[];function e(t){t.languages.purebasic=t.languages.extend("clike",{comment:/;.*/,keyword:/\b(?:align|and|as|break|calldebugger|case|compilercase|compilerdefault|compilerelse|compilerelseif|compilerendif|compilerendselect|compilererror|compilerif|compilerselect|continue|data|datasection|debug|debuglevel|declare|declarec|declarecdll|declaredll|declaremodule|default|define|dim|disableasm|disabledebugger|disableexplicit|else|elseif|enableasm|enabledebugger|enableexplicit|end|enddatasection|enddeclaremodule|endenumeration|endif|endimport|endinterface|endmacro|endmodule|endprocedure|endselect|endstructure|endstructureunion|endwith|enumeration|extends|fakereturn|for|foreach|forever|global|gosub|goto|if|import|importc|includebinary|includefile|includepath|interface|macro|module|newlist|newmap|next|not|or|procedure|procedurec|procedurecdll|proceduredll|procedurereturn|protected|prototype|prototypec|read|redim|repeat|restore|return|runtime|select|shared|static|step|structure|structureunion|swap|threaded|to|until|wend|while|with|xincludefile|xor)\b/i,function:/\b\w+(?:\.\w+)?\s*(?=\()/,number:/(?:\$[\da-f]+|\b-?(?:\d+(?:\.\d+)?|\.\d+)(?:e[+-]?\d+)?)\b/i,operator:/(?:@\*?|\?|\*)\w+|-[>-]?|\+\+?|!=?|<>?=?|==?|&&?|\|?\||[~^%?*/@]/}),t.languages.insertBefore("purebasic","keyword",{tag:/#\w+\$?/,asm:{pattern:/(^[\t ]*)!.*/m,lookbehind:!0,alias:"tag",inside:{comment:/;.*/,string:{pattern:/(["'`])(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},"label-reference-anonymous":{pattern:/(!\s*j[a-z]+\s+)@[fb]/i,lookbehind:!0,alias:"fasm-label"},"label-reference-addressed":{pattern:/(!\s*j[a-z]+\s+)[A-Z._?$@][\w.?$@~#]*/i,lookbehind:!0,alias:"fasm-label"},keyword:[/\b(?:extern|global)\b[^;\r\n]*/i,/\b(?:CPU|DEFAULT|FLOAT)\b.*/],function:{pattern:/^([\t ]*!\s*)[\da-z]+(?=\s|$)/im,lookbehind:!0},"function-inline":{pattern:/(:\s*)[\da-z]+(?=\s)/i,lookbehind:!0,alias:"function"},label:{pattern:/^([\t ]*!\s*)[A-Za-z._?$@][\w.?$@~#]*(?=:)/m,lookbehind:!0,alias:"fasm-label"},register:/\b(?:st\d|[xyz]mm\d\d?|[cdt]r\d|r\d\d?[bwd]?|[er]?[abcd]x|[abcd][hl]|[er]?(?:bp|di|si|sp)|[cdefgs]s|mm\d+)\b/i,number:/(?:\b|-|(?=\$))(?:0[hx](?:[\da-f]*\.)?[\da-f]+(?:p[+-]?\d+)?|\d[\da-f]+[hx]|\$\d[\da-f]*|0[oq][0-7]+|[0-7]+[oq]|0[by][01]+|[01]+[by]|0[dt]\d+|(?:\d+(?:\.\d+)?|\.\d+)(?:\.?e[+-]?\d+)?[dt]?)\b/i,operator:/[\[\]*+\-/%<>=&|$!,.:]/}}}),delete t.languages.purebasic["class-name"],delete t.languages.purebasic.boolean,t.languages.pbfasm=t.languages.purebasic}return Vf}var Yf,Uw;function vz(){if(Uw)return Yf;Uw=1;var e=gh();Yf=t,t.displayName="purescript",t.aliases=["purs"];function t(n){n.register(e),n.languages.purescript=n.languages.extend("haskell",{keyword:/\b(?:ado|case|class|data|derive|do|else|forall|if|in|infixl|infixr|instance|let|module|newtype|of|primitive|then|type|where)\b|∀/,"import-statement":{pattern:/(^[\t ]*)import\s+[A-Z][\w']*(?:\.[A-Z][\w']*)*(?:\s+as\s+[A-Z][\w']*(?:\.[A-Z][\w']*)*)?(?:\s+hiding\b)?/m,lookbehind:!0,inside:{keyword:/\b(?:as|hiding|import)\b/,punctuation:/\./}},builtin:/\b(?:absurd|add|ap|append|apply|between|bind|bottom|clamp|compare|comparing|compose|conj|const|degree|discard|disj|div|eq|flap|flip|gcd|identity|ifM|join|lcm|liftA1|liftM1|map|max|mempty|min|mod|mul|negate|not|notEq|one|otherwise|recip|show|sub|top|unit|unless|unlessM|void|when|whenM|zero)\b/,operator:[n.languages.haskell.operator[0],n.languages.haskell.operator[2],/[\xa2-\xa6\xa8\xa9\xac\xae-\xb1\xb4\xb8\xd7\xf7\u02c2-\u02c5\u02d2-\u02df\u02e5-\u02eb\u02ed\u02ef-\u02ff\u0375\u0384\u0385\u03f6\u0482\u058d-\u058f\u0606-\u0608\u060b\u060e\u060f\u06de\u06e9\u06fd\u06fe\u07f6\u07fe\u07ff\u09f2\u09f3\u09fa\u09fb\u0af1\u0b70\u0bf3-\u0bfa\u0c7f\u0d4f\u0d79\u0e3f\u0f01-\u0f03\u0f13\u0f15-\u0f17\u0f1a-\u0f1f\u0f34\u0f36\u0f38\u0fbe-\u0fc5\u0fc7-\u0fcc\u0fce\u0fcf\u0fd5-\u0fd8\u109e\u109f\u1390-\u1399\u166d\u17db\u1940\u19de-\u19ff\u1b61-\u1b6a\u1b74-\u1b7c\u1fbd\u1fbf-\u1fc1\u1fcd-\u1fcf\u1fdd-\u1fdf\u1fed-\u1fef\u1ffd\u1ffe\u2044\u2052\u207a-\u207c\u208a-\u208c\u20a0-\u20bf\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211e-\u2123\u2125\u2127\u2129\u212e\u213a\u213b\u2140-\u2144\u214a-\u214d\u214f\u218a\u218b\u2190-\u2307\u230c-\u2328\u232b-\u2426\u2440-\u244a\u249c-\u24e9\u2500-\u2767\u2794-\u27c4\u27c7-\u27e5\u27f0-\u2982\u2999-\u29d7\u29dc-\u29fb\u29fe-\u2b73\u2b76-\u2b95\u2b97-\u2bff\u2ce5-\u2cea\u2e50\u2e51\u2e80-\u2e99\u2e9b-\u2ef3\u2f00-\u2fd5\u2ff0-\u2ffb\u3004\u3012\u3013\u3020\u3036\u3037\u303e\u303f\u309b\u309c\u3190\u3191\u3196-\u319f\u31c0-\u31e3\u3200-\u321e\u322a-\u3247\u3250\u3260-\u327f\u328a-\u32b0\u32c0-\u33ff\u4dc0-\u4dff\ua490-\ua4c6\ua700-\ua716\ua720\ua721\ua789\ua78a\ua828-\ua82b\ua836-\ua839\uaa77-\uaa79\uab5b\uab6a\uab6b\ufb29\ufbb2-\ufbc1\ufdfc\ufdfd\ufe62\ufe64-\ufe66\ufe69\uff04\uff0b\uff1c-\uff1e\uff3e\uff40\uff5c\uff5e\uffe0-\uffe6\uffe8-\uffee\ufffc\ufffd]/]}),n.languages.purs=n.languages.purescript}return Yf}var Kf,Bw;function kz(){if(Bw)return Kf;Bw=1,Kf=e,e.displayName="python",e.aliases=["py"];function e(t){t.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},t.languages.python["string-interpolation"].inside.interpolation.inside.rest=t.languages.python,t.languages.py=t.languages.python}return Kf}var Zf,jw;function _z(){if(jw)return Zf;jw=1,Zf=e,e.displayName="q",e.aliases=[];function e(t){t.languages.q={string:/"(?:\\.|[^"\\\r\n])*"/,comment:[{pattern:/([\t )\]}])\/.*/,lookbehind:!0,greedy:!0},{pattern:/(^|\r?\n|\r)\/[\t ]*(?:(?:\r?\n|\r)(?:.*(?:\r?\n|\r(?!\n)))*?(?:\\(?=[\t ]*(?:\r?\n|\r))|$)|\S.*)/,lookbehind:!0,greedy:!0},{pattern:/^\\[\t ]*(?:\r?\n|\r)[\s\S]+/m,greedy:!0},{pattern:/^#!.+/m,greedy:!0}],symbol:/`(?::\S+|[\w.]*)/,datetime:{pattern:/0N[mdzuvt]|0W[dtz]|\d{4}\.\d\d(?:m|\.\d\d(?:T(?:\d\d(?::\d\d(?::\d\d(?:[.:]\d\d\d)?)?)?)?)?[dz]?)|\d\d:\d\d(?::\d\d(?:[.:]\d\d\d)?)?[uvt]?/,alias:"number"},number:/\b(?![01]:)(?:0N[hje]?|0W[hj]?|0[wn]|0x[\da-fA-F]+|\d+(?:\.\d*)?(?:e[+-]?\d+)?[hjfeb]?)/,keyword:/\\\w+\b|\b(?:abs|acos|aj0?|all|and|any|asc|asin|asof|atan|attr|avgs?|binr?|by|ceiling|cols|cor|cos|count|cov|cross|csv|cut|delete|deltas|desc|dev|differ|distinct|div|do|dsave|ej|enlist|eval|except|exec|exit|exp|fby|fills|first|fkeys|flip|floor|from|get|getenv|group|gtime|hclose|hcount|hdel|hopen|hsym|iasc|identity|idesc|if|ij|in|insert|inter|inv|keys?|last|like|list|ljf?|load|log|lower|lsq|ltime|ltrim|mavg|maxs?|mcount|md5|mdev|med|meta|mins?|mmax|mmin|mmu|mod|msum|neg|next|not|null|or|over|parse|peach|pj|plist|prds?|prev|prior|rand|rank|ratios|raze|read0|read1|reciprocal|reval|reverse|rload|rotate|rsave|rtrim|save|scan|scov|sdev|select|set|setenv|show|signum|sin|sqrt|ssr?|string|sublist|sums?|sv|svar|system|tables|tan|til|trim|txf|type|uj|ungroup|union|update|upper|upsert|value|var|views?|vs|wavg|where|while|within|wj1?|wsum|ww|xasc|xbar|xcols?|xdesc|xexp|xgroup|xkey|xlog|xprev|xrank)\b/,adverb:{pattern:/['\/\\]:?|\beach\b/,alias:"function"},verb:{pattern:/(?:\B\.\B|\b[01]:|<[=>]?|>=?|[:+\-*%,!?~=|$&#@^]):?|\b_\b:?/,alias:"operator"},punctuation:/[(){}\[\];.]/}}return Zf}var Xf,zw;function wz(){if(zw)return Xf;zw=1,Xf=e,e.displayName="qml",e.aliases=[];function e(t){(function(n){for(var i=/"(?:\\.|[^\\"\r\n])*"|'(?:\\.|[^\\'\r\n])*'/.source,o=/\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))*\*\//.source,l=/(?:[^\\()[\]{}"'/]||\/(?![*/])||\(*\)|\[*\]|\{*\}|\\[\s\S])/.source.replace(//g,function(){return i}).replace(//g,function(){return o}),u=0;u<2;u++)l=l.replace(//g,function(){return l});l=l.replace(//g,"[^\\s\\S]"),n.languages.qml={comment:{pattern:/\/\/.*|\/\*[\s\S]*?\*\//,greedy:!0},"javascript-function":{pattern:RegExp(/((?:^|;)[ \t]*)function\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*\(*\)\s*\{*\}/.source.replace(//g,function(){return l}),"m"),lookbehind:!0,greedy:!0,alias:"language-javascript",inside:n.languages.javascript},"class-name":{pattern:/((?:^|[:;])[ \t]*)(?!\d)\w+(?=[ \t]*\{|[ \t]+on\b)/m,lookbehind:!0},property:[{pattern:/((?:^|[;{])[ \t]*)(?!\d)\w+(?:\.\w+)*(?=[ \t]*:)/m,lookbehind:!0},{pattern:/((?:^|[;{])[ \t]*)property[ \t]+(?!\d)\w+(?:\.\w+)*[ \t]+(?!\d)\w+(?:\.\w+)*(?=[ \t]*:)/m,lookbehind:!0,inside:{keyword:/^property/,property:/\w+(?:\.\w+)*/}}],"javascript-expression":{pattern:RegExp(/(:[ \t]*)(?![\s;}[])(?:(?!$|[;}]))+/.source.replace(//g,function(){return l}),"m"),lookbehind:!0,greedy:!0,alias:"language-javascript",inside:n.languages.javascript},string:{pattern:/"(?:\\.|[^\\"\r\n])*"/,greedy:!0},keyword:/\b(?:as|import|on)\b/,punctuation:/[{}[\]:;,]/}})(t)}return Xf}var Qf,$w;function Tz(){if($w)return Qf;$w=1,Qf=e,e.displayName="qore",e.aliases=[];function e(t){t.languages.qore=t.languages.extend("clike",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:\/\/|#).*)/,lookbehind:!0},string:{pattern:/("|')(?:\\[\s\S]|(?!\1)[^\\])*\1/,greedy:!0},keyword:/\b(?:abstract|any|assert|binary|bool|boolean|break|byte|case|catch|char|class|code|const|continue|data|default|do|double|else|enum|extends|final|finally|float|for|goto|hash|if|implements|import|inherits|instanceof|int|interface|long|my|native|new|nothing|null|object|our|own|private|reference|rethrow|return|short|soft(?:bool|date|float|int|list|number|string)|static|strictfp|string|sub|super|switch|synchronized|this|throw|throws|transient|try|void|volatile|while)\b/,boolean:/\b(?:false|true)\b/i,function:/\$?\b(?!\d)\w+(?=\()/,number:/\b(?:0b[01]+|0x(?:[\da-f]*\.)?[\da-fp\-]+|(?:\d+(?:\.\d+)?|\.\d+)(?:e\d+)?[df]|(?:\d+(?:\.\d+)?|\.\d+))\b/i,operator:{pattern:/(^|[^.])(?:\+[+=]?|-[-=]?|[!=](?:==?|~)?|>>?=?|<(?:=>?|<=?)?|&[&=]?|\|[|=]?|[*\/%^]=?|[~?])/,lookbehind:!0},variable:/\$(?!\d)\w+\b/})}return Qf}var Jf,qw;function xz(){if(qw)return Jf;qw=1,Jf=e,e.displayName="qsharp",e.aliases=["qs"];function e(t){(function(n){function i(v,k){return v.replace(/<<(\d+)>>/g,function(T,N){return"(?:"+k[+N]+")"})}function o(v,k,T){return RegExp(i(v,k),"")}function l(v,k){for(var T=0;T>/g,function(){return"(?:"+v+")"});return v.replace(/<>/g,"[^\\s\\S]")}var u={type:"Adj BigInt Bool Ctl Double false Int One Pauli PauliI PauliX PauliY PauliZ Qubit Range Result String true Unit Zero",other:"Adjoint adjoint apply as auto body borrow borrowing Controlled controlled distribute elif else fail fixup for function if in internal intrinsic invert is let mutable namespace new newtype open operation repeat return self set until use using while within"};function c(v){return"\\b(?:"+v.trim().replace(/ /g,"|")+")\\b"}var p=RegExp(c(u.type+" "+u.other)),f=/\b[A-Za-z_]\w*\b/.source,m=i(/<<0>>(?:\s*\.\s*<<0>>)*/.source,[f]),h={keyword:p,punctuation:/[<>()?,.:[\]]/},S=/"(?:\\.|[^\\"])*"/.source;n.languages.qsharp=n.languages.extend("clike",{comment:/\/\/.*/,string:[{pattern:o(/(^|[^$\\])<<0>>/.source,[S]),lookbehind:!0,greedy:!0}],"class-name":[{pattern:o(/(\b(?:as|open)\s+)<<0>>(?=\s*(?:;|as\b))/.source,[m]),lookbehind:!0,inside:h},{pattern:o(/(\bnamespace\s+)<<0>>(?=\s*\{)/.source,[m]),lookbehind:!0,inside:h}],keyword:p,number:/(?:\b0(?:x[\da-f]+|b[01]+|o[0-7]+)|(?:\B\.\d+|\b\d+(?:\.\d*)?)(?:e[-+]?\d+)?)l?\b/i,operator:/\band=|\bor=|\band\b|\bnot\b|\bor\b|<[-=]|[-=]>|>>>=?|<<<=?|\^\^\^=?|\|\|\|=?|&&&=?|w\/=?|~~~|[*\/+\-^=!%]=?/,punctuation:/::|[{}[\];(),.:]/}),n.languages.insertBefore("qsharp","number",{range:{pattern:/\.\./,alias:"operator"}});var E=l(i(/\{(?:[^"{}]|<<0>>|<>)*\}/.source,[S]),2);n.languages.insertBefore("qsharp","string",{"interpolation-string":{pattern:o(/\$"(?:\\.|<<0>>|[^\\"{])*"/.source,[E]),greedy:!0,inside:{interpolation:{pattern:o(/((?:^|[^\\])(?:\\\\)*)<<0>>/.source,[E]),lookbehind:!0,inside:{punctuation:/^\{|\}$/,expression:{pattern:/[\s\S]+/,alias:"language-qsharp",inside:n.languages.qsharp}}},string:/[\s\S]+/}}})})(t),t.languages.qs=t.languages.qsharp}return Jf}var eg,Gw;function Az(){if(Gw)return eg;Gw=1,eg=e,e.displayName="r",e.aliases=[];function e(t){t.languages.r={comment:/#.*/,string:{pattern:/(['"])(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},"percent-operator":{pattern:/%[^%\s]*%/,alias:"operator"},boolean:/\b(?:FALSE|TRUE)\b/,ellipsis:/\.\.(?:\.|\d+)/,number:[/\b(?:Inf|NaN)\b/,/(?:\b0x[\dA-Fa-f]+(?:\.\d*)?|\b\d+(?:\.\d*)?|\B\.\d+)(?:[EePp][+-]?\d+)?[iL]?/],keyword:/\b(?:NA|NA_character_|NA_complex_|NA_integer_|NA_real_|NULL|break|else|for|function|if|in|next|repeat|while)\b/,operator:/->?>?|<(?:=|=!]=?|::?|&&?|\|\|?|[+*\/^$@~]/,punctuation:/[(){}\[\],;]/}}return eg}var tg,Hw;function Rz(){if(Hw)return tg;Hw=1;var e=yh();tg=t,t.displayName="racket",t.aliases=["rkt"];function t(n){n.register(e),n.languages.racket=n.languages.extend("scheme",{"lambda-parameter":{pattern:/([(\[]lambda\s+[(\[])[^()\[\]'\s]+/,lookbehind:!0}}),n.languages.insertBefore("racket","string",{lang:{pattern:/^#lang.+/m,greedy:!0,alias:"keyword"}}),n.languages.rkt=n.languages.racket}return tg}var ng,Ww;function Nz(){if(Ww)return ng;Ww=1,ng=e,e.displayName="reason",e.aliases=[];function e(t){t.languages.reason=t.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),t.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete t.languages.reason.function}return ng}var rg,Vw;function Cz(){if(Vw)return rg;Vw=1,rg=e,e.displayName="regex",e.aliases=[];function e(t){(function(n){var i={pattern:/\\[\\(){}[\]^$+*?|.]/,alias:"escape"},o=/\\(?:x[\da-fA-F]{2}|u[\da-fA-F]{4}|u\{[\da-fA-F]+\}|0[0-7]{0,2}|[123][0-7]{2}|c[a-zA-Z]|.)/,l={pattern:/\.|\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},u={pattern:/\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},c="(?:[^\\\\-]|"+o.source+")",p=RegExp(c+"-"+c),f={pattern:/(<|')[^<>']+(?=[>']$)/,lookbehind:!0,alias:"variable"};n.languages.regex={"char-class":{pattern:/((?:^|[^\\])(?:\\\\)*)\[(?:[^\\\]]|\\[\s\S])*\]/,lookbehind:!0,inside:{"char-class-negation":{pattern:/(^\[)\^/,lookbehind:!0,alias:"operator"},"char-class-punctuation":{pattern:/^\[|\]$/,alias:"punctuation"},range:{pattern:p,inside:{escape:o,"range-punctuation":{pattern:/-/,alias:"operator"}}},"special-escape":i,"char-set":u,escape:o}},"special-escape":i,"char-set":l,backreference:[{pattern:/\\(?![123][0-7]{2})[1-9]/,alias:"keyword"},{pattern:/\\k<[^<>']+>/,alias:"keyword",inside:{"group-name":f}}],anchor:{pattern:/[$^]|\\[ABbGZz]/,alias:"function"},escape:o,group:[{pattern:/\((?:\?(?:<[^<>']+>|'[^<>']+'|[>:]|:=]=?|!=|\b_\b/,punctuation:/[,;.\[\]{}()]/}}return ag}var ig,Kw;function Oz(){if(Kw)return ig;Kw=1,ig=e,e.displayName="renpy",e.aliases=["rpy"];function e(t){t.languages.renpy={comment:{pattern:/(^|[^\\])#.+/,lookbehind:!0},string:{pattern:/("""|''')[\s\S]+?\1|("|')(?:\\.|(?!\2)[^\\])*\2|(?:^#?(?:(?:[0-9a-fA-F]){3}|[0-9a-fA-F]{6})$)/m,greedy:!0},function:/\b[a-z_]\w*(?=\()/i,property:/\b(?:Update|UpdateVersion|action|activate_sound|adv_nvl_transition|after_load_transition|align|alpha|alt|anchor|antialias|area|auto|background|bar_invert|bar_resizing|bar_vertical|black_color|bold|bottom_bar|bottom_gutter|bottom_margin|bottom_padding|box_reverse|box_wrap|can_update|caret|child|color|crop|default_afm_enable|default_afm_time|default_fullscreen|default_text_cps|developer|directory_name|drag_handle|drag_joined|drag_name|drag_raise|draggable|dragged|drop_shadow|drop_shadow_color|droppable|dropped|easein|easeout|edgescroll|end_game_transition|end_splash_transition|enter_replay_transition|enter_sound|enter_transition|enter_yesno_transition|executable_name|exit_replay_transition|exit_sound|exit_transition|exit_yesno_transition|fadein|fadeout|first_indent|first_spacing|fit_first|focus|focus_mask|font|foreground|game_main_transition|get_installed_packages|google_play_key|google_play_salt|ground|has_music|has_sound|has_voice|height|help|hinting|hover|hover_background|hover_color|hover_sound|hovered|hyperlink_functions|idle|idle_color|image_style|include_update|insensitive|insensitive_background|insensitive_color|inside|intra_transition|italic|justify|kerning|keyboard_focus|language|layer_clipping|layers|layout|left_bar|left_gutter|left_margin|left_padding|length|line_leading|line_overlap_split|line_spacing|linear|main_game_transition|main_menu_music|maximum|min_width|minimum|minwidth|modal|mouse|mousewheel|name|narrator_menu|newline_indent|nvl_adv_transition|offset|order_reverse|outlines|overlay_functions|pos|position|prefix|radius|range|rest_indent|right_bar|right_gutter|right_margin|right_padding|rotate|rotate_pad|ruby_style|sample_sound|save_directory|say_attribute_transition|screen_height|screen_width|scrollbars|selected_hover|selected_hover_color|selected_idle|selected_idle_color|selected_insensitive|show_side_image|show_two_window|side_spacing|side_xpos|side_ypos|size|size_group|slow_cps|slow_cps_multiplier|spacing|strikethrough|subpixel|text_align|text_style|text_xpos|text_y_fudge|text_ypos|thumb|thumb_offset|thumb_shadow|thumbnail_height|thumbnail_width|time|top_bar|top_gutter|top_margin|top_padding|translations|underline|unscrollable|update|value|version|version_name|version_tuple|vertical|width|window_hide_transition|window_icon|window_left_padding|window_show_transition|window_title|windows_icon|xadjustment|xalign|xanchor|xanchoraround|xaround|xcenter|xfill|xinitial|xmargin|xmaximum|xminimum|xoffset|xofsset|xpadding|xpos|xsize|xzoom|yadjustment|yalign|yanchor|yanchoraround|yaround|ycenter|yfill|yinitial|ymargin|ymaximum|yminimum|yoffset|ypadding|ypos|ysize|ysizexysize|yzoom|zoom|zorder)\b/,tag:/\b(?:bar|block|button|buttoscreenn|drag|draggroup|fixed|frame|grid|[hv]box|hotbar|hotspot|image|imagebutton|imagemap|input|key|label|menu|mm_menu_frame|mousearea|nvl|parallel|screen|self|side|tag|text|textbutton|timer|vbar|viewport|window)\b|\$/,keyword:/\b(?:None|add|adjustment|alignaround|allow|angle|animation|around|as|assert|behind|box_layout|break|build|cache|call|center|changed|child_size|choice|circles|class|clear|clicked|clipping|clockwise|config|contains|continue|corner1|corner2|counterclockwise|def|default|define|del|delay|disabled|disabled_text|dissolve|elif|else|event|except|exclude|exec|expression|fade|finally|for|from|function|global|gm_root|has|hide|id|if|import|in|init|is|jump|knot|lambda|left|less_rounded|mm_root|movie|music|null|on|onlayer|pass|pause|persistent|play|print|python|queue|raise|random|renpy|repeat|return|right|rounded_window|scene|scope|set|show|slow|slow_abortable|slow_done|sound|stop|store|style|style_group|substitute|suffix|theme|transform|transform_anchor|transpose|try|ui|unhovered|updater|use|voice|while|widget|widget_hover|widget_selected|widget_text|yield)\b/,boolean:/\b(?:[Ff]alse|[Tt]rue)\b/,number:/(?:\b(?:0[bo])?(?:(?:\d|0x[\da-f])[\da-f]*(?:\.\d*)?)|\B\.\d+)(?:e[+-]?\d+)?j?/i,operator:/[-+%=]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]|\b(?:and|at|not|or|with)\b/,punctuation:/[{}[\];(),.:]/},t.languages.rpy=t.languages.renpy}return ig}var og,Zw;function Lz(){if(Zw)return og;Zw=1,og=e,e.displayName="rest",e.aliases=[];function e(t){t.languages.rest={table:[{pattern:/(^[\t ]*)(?:\+[=-]+)+\+(?:\r?\n|\r)(?:\1[+|].+[+|](?:\r?\n|\r))+\1(?:\+[=-]+)+\+/m,lookbehind:!0,inside:{punctuation:/\||(?:\+[=-]+)+\+/}},{pattern:/(^[\t ]*)=+ [ =]*=(?:(?:\r?\n|\r)\1.+)+(?:\r?\n|\r)\1=+ [ =]*=(?=(?:\r?\n|\r){2}|\s*$)/m,lookbehind:!0,inside:{punctuation:/[=-]+/}}],"substitution-def":{pattern:/(^[\t ]*\.\. )\|(?:[^|\s](?:[^|]*[^|\s])?)\| [^:]+::/m,lookbehind:!0,inside:{substitution:{pattern:/^\|(?:[^|\s]|[^|\s][^|]*[^|\s])\|/,alias:"attr-value",inside:{punctuation:/^\||\|$/}},directive:{pattern:/( )(?! )[^:]+::/,lookbehind:!0,alias:"function",inside:{punctuation:/::$/}}}},"link-target":[{pattern:/(^[\t ]*\.\. )\[[^\]]+\]/m,lookbehind:!0,alias:"string",inside:{punctuation:/^\[|\]$/}},{pattern:/(^[\t ]*\.\. )_(?:`[^`]+`|(?:[^:\\]|\\.)+):/m,lookbehind:!0,alias:"string",inside:{punctuation:/^_|:$/}}],directive:{pattern:/(^[\t ]*\.\. )[^:]+::/m,lookbehind:!0,alias:"function",inside:{punctuation:/::$/}},comment:{pattern:/(^[\t ]*\.\.)(?:(?: .+)?(?:(?:\r?\n|\r).+)+| .+)(?=(?:\r?\n|\r){2}|$)/m,lookbehind:!0},title:[{pattern:/^(([!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~])\2+)(?:\r?\n|\r).+(?:\r?\n|\r)\1$/m,inside:{punctuation:/^[!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~]+|[!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~]+$/,important:/.+/}},{pattern:/(^|(?:\r?\n|\r){2}).+(?:\r?\n|\r)([!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~])\2+(?=\r?\n|\r|$)/,lookbehind:!0,inside:{punctuation:/[!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~]+$/,important:/.+/}}],hr:{pattern:/((?:\r?\n|\r){2})([!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~])\2{3,}(?=(?:\r?\n|\r){2})/,lookbehind:!0,alias:"punctuation"},field:{pattern:/(^[\t ]*):[^:\r\n]+:(?= )/m,lookbehind:!0,alias:"attr-name"},"command-line-option":{pattern:/(^[\t ]*)(?:[+-][a-z\d]|(?:--|\/)[a-z\d-]+)(?:[ =](?:[a-z][\w-]*|<[^<>]+>))?(?:, (?:[+-][a-z\d]|(?:--|\/)[a-z\d-]+)(?:[ =](?:[a-z][\w-]*|<[^<>]+>))?)*(?=(?:\r?\n|\r)? {2,}\S)/im,lookbehind:!0,alias:"symbol"},"literal-block":{pattern:/::(?:\r?\n|\r){2}([ \t]+)(?![ \t]).+(?:(?:\r?\n|\r)\1.+)*/,inside:{"literal-block-punctuation":{pattern:/^::/,alias:"punctuation"}}},"quoted-literal-block":{pattern:/::(?:\r?\n|\r){2}([!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~]).*(?:(?:\r?\n|\r)\1.*)*/,inside:{"literal-block-punctuation":{pattern:/^(?:::|([!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~])\1*)/m,alias:"punctuation"}}},"list-bullet":{pattern:/(^[\t ]*)(?:[*+\-•‣⁃]|\(?(?:\d+|[a-z]|[ivxdclm]+)\)|(?:\d+|[a-z]|[ivxdclm]+)\.)(?= )/im,lookbehind:!0,alias:"punctuation"},"doctest-block":{pattern:/(^[\t ]*)>>> .+(?:(?:\r?\n|\r).+)*/m,lookbehind:!0,inside:{punctuation:/^>>>/}},inline:[{pattern:/(^|[\s\-:\/'"<(\[{])(?::[^:]+:`.*?`|`.*?`:[^:]+:|(\*\*?|``?|\|)(?!\s)(?:(?!\2).)*\S\2(?=[\s\-.,:;!?\\\/'")\]}]|$))/m,lookbehind:!0,inside:{bold:{pattern:/(^\*\*).+(?=\*\*$)/,lookbehind:!0},italic:{pattern:/(^\*).+(?=\*$)/,lookbehind:!0},"inline-literal":{pattern:/(^``).+(?=``$)/,lookbehind:!0,alias:"symbol"},role:{pattern:/^:[^:]+:|:[^:]+:$/,alias:"function",inside:{punctuation:/^:|:$/}},"interpreted-text":{pattern:/(^`).+(?=`$)/,lookbehind:!0,alias:"attr-value"},substitution:{pattern:/(^\|).+(?=\|$)/,lookbehind:!0,alias:"attr-value"},punctuation:/\*\*?|``?|\|/}}],link:[{pattern:/\[[^\[\]]+\]_(?=[\s\-.,:;!?\\\/'")\]}]|$)/,alias:"string",inside:{punctuation:/^\[|\]_$/}},{pattern:/(?:\b[a-z\d]+(?:[_.:+][a-z\d]+)*_?_|`[^`]+`_?_|_`[^`]+`)(?=[\s\-.,:;!?\\\/'")\]}]|$)/i,alias:"string",inside:{punctuation:/^_?`|`$|`?_?_$/}}],punctuation:{pattern:/(^[\t ]*)(?:\|(?= |$)|(?:---?|—|\.\.|__)(?= )|\.\.$)/m,lookbehind:!0}}}return og}var sg,Xw;function Dz(){if(Xw)return sg;Xw=1,sg=e,e.displayName="rip",e.aliases=[];function e(t){t.languages.rip={comment:{pattern:/#.*/,greedy:!0},char:{pattern:/\B`[^\s`'",.:;#\/\\()<>\[\]{}]\b/,greedy:!0},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},regex:{pattern:/(^|[^/])\/(?!\/)(?:\[[^\n\r\]]*\]|\\.|[^/\\\r\n\[])+\/(?=\s*(?:$|[\r\n,.;})]))/,lookbehind:!0,greedy:!0},keyword:/(?:=>|->)|\b(?:case|catch|class|else|exit|finally|if|raise|return|switch|try)\b/,builtin:/@|\bSystem\b/,boolean:/\b(?:false|true)\b/,date:/\b\d{4}-\d{2}-\d{2}\b/,time:/\b\d{2}:\d{2}:\d{2}\b/,datetime:/\b\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\b/,symbol:/:[^\d\s`'",.:;#\/\\()<>\[\]{}][^\s`'",.:;#\/\\()<>\[\]{}]*/,number:/[+-]?\b(?:\d+\.\d+|\d+)\b/,punctuation:/(?:\.{2,3})|[`,.:;=\/\\()<>\[\]{}]/,reference:/[^\d\s`'",.:;#\/\\()<>\[\]{}][^\s`'",.:;#\/\\()<>\[\]{}]*/}}return sg}var lg,Qw;function Mz(){if(Qw)return lg;Qw=1,lg=e,e.displayName="roboconf",e.aliases=[];function e(t){t.languages.roboconf={comment:/#.*/,keyword:{pattern:/(^|\s)(?:(?:external|import)\b|(?:facet|instance of)(?=[ \t]+[\w-]+[ \t]*\{))/,lookbehind:!0},component:{pattern:/[\w-]+(?=[ \t]*\{)/,alias:"variable"},property:/[\w.-]+(?=[ \t]*:)/,value:{pattern:/(=[ \t]*(?![ \t]))[^,;]+/,lookbehind:!0,alias:"attr-value"},optional:{pattern:/\(optional\)/,alias:"builtin"},wildcard:{pattern:/(\.)\*/,lookbehind:!0,alias:"operator"},punctuation:/[{},.;:=]/}}return lg}var ug,Jw;function Fz(){if(Jw)return ug;Jw=1,ug=e,e.displayName="robotframework",e.aliases=[];function e(t){(function(n){var i={pattern:/(^[ \t]*| {2}|\t)#.*/m,lookbehind:!0,greedy:!0},o={pattern:/((?:^|[^\\])(?:\\{2})*)[$@&%]\{(?:[^{}\r\n]|\{[^{}\r\n]*\})*\}/,lookbehind:!0,inside:{punctuation:/^[$@&%]\{|\}$/}};function l(f,m){var h={};h["section-header"]={pattern:/^ ?\*{3}.+?\*{3}/,alias:"keyword"};for(var S in m)h[S]=m[S];return h.tag={pattern:/([\r\n](?: {2}|\t)[ \t]*)\[[-\w]+\]/,lookbehind:!0,inside:{punctuation:/\[|\]/}},h.variable=o,h.comment=i,{pattern:RegExp(/^ ?\*{3}[ \t]*[ \t]*\*{3}(?:.|[\r\n](?!\*{3}))*/.source.replace(//g,function(){return f}),"im"),alias:"section",inside:h}}var u={pattern:/(\[Documentation\](?: {2}|\t)[ \t]*)(?![ \t]|#)(?:.|(?:\r\n?|\n)[ \t]*\.{3})+/,lookbehind:!0,alias:"string"},c={pattern:/([\r\n] ?)(?!#)(?:\S(?:[ \t]\S)*)+/,lookbehind:!0,alias:"function",inside:{variable:o}},p={pattern:/([\r\n](?: {2}|\t)[ \t]*)(?!\[|\.{3}|#)(?:\S(?:[ \t]\S)*)+/,lookbehind:!0,inside:{variable:o}};n.languages.robotframework={settings:l("Settings",{documentation:{pattern:/([\r\n] ?Documentation(?: {2}|\t)[ \t]*)(?![ \t]|#)(?:.|(?:\r\n?|\n)[ \t]*\.{3})+/,lookbehind:!0,alias:"string"},property:{pattern:/([\r\n] ?)(?!\.{3}|#)(?:\S(?:[ \t]\S)*)+/,lookbehind:!0}}),variables:l("Variables"),"test-cases":l("Test Cases",{"test-name":c,documentation:u,property:p}),keywords:l("Keywords",{"keyword-name":c,documentation:u,property:p}),tasks:l("Tasks",{"task-name":c,documentation:u,property:p}),comment:i},n.languages.robot=n.languages.robotframework})(t)}return ug}var cg,eT;function Pz(){if(eT)return cg;eT=1,cg=e,e.displayName="rust",e.aliases=[];function e(t){(function(n){for(var i=/\/\*(?:[^*/]|\*(?!\/)|\/(?!\*)|)*\*\//.source,o=0;o<2;o++)i=i.replace(//g,function(){return i});i=i.replace(//g,function(){return/[^\s\S]/.source}),n.languages.rust={comment:[{pattern:RegExp(/(^|[^\\])/.source+i),lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/b?"(?:\\[\s\S]|[^\\"])*"|b?r(#*)"(?:[^"]|"(?!\1))*"\1/,greedy:!0},char:{pattern:/b?'(?:\\(?:x[0-7][\da-fA-F]|u\{(?:[\da-fA-F]_*){1,6}\}|.)|[^\\\r\n\t'])'/,greedy:!0},attribute:{pattern:/#!?\[(?:[^\[\]"]|"(?:\\[\s\S]|[^\\"])*")*\]/,greedy:!0,alias:"attr-name",inside:{string:null}},"closure-params":{pattern:/([=(,:]\s*|\bmove\s*)\|[^|]*\||\|[^|]*\|(?=\s*(?:\{|->))/,lookbehind:!0,greedy:!0,inside:{"closure-punctuation":{pattern:/^\||\|$/,alias:"punctuation"},rest:null}},"lifetime-annotation":{pattern:/'\w+/,alias:"symbol"},"fragment-specifier":{pattern:/(\$\w+:)[a-z]+/,lookbehind:!0,alias:"punctuation"},variable:/\$\w+/,"function-definition":{pattern:/(\bfn\s+)\w+/,lookbehind:!0,alias:"function"},"type-definition":{pattern:/(\b(?:enum|struct|trait|type|union)\s+)\w+/,lookbehind:!0,alias:"class-name"},"module-declaration":[{pattern:/(\b(?:crate|mod)\s+)[a-z][a-z_\d]*/,lookbehind:!0,alias:"namespace"},{pattern:/(\b(?:crate|self|super)\s*)::\s*[a-z][a-z_\d]*\b(?:\s*::(?:\s*[a-z][a-z_\d]*\s*::)*)?/,lookbehind:!0,alias:"namespace",inside:{punctuation:/::/}}],keyword:[/\b(?:Self|abstract|as|async|await|become|box|break|const|continue|crate|do|dyn|else|enum|extern|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|override|priv|pub|ref|return|self|static|struct|super|trait|try|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\b/,/\b(?:bool|char|f(?:32|64)|[ui](?:8|16|32|64|128|size)|str)\b/],function:/\b[a-z_]\w*(?=\s*(?:::\s*<|\())/,macro:{pattern:/\b\w+!/,alias:"property"},constant:/\b[A-Z_][A-Z_\d]+\b/,"class-name":/\b[A-Z]\w*\b/,namespace:{pattern:/(?:\b[a-z][a-z_\d]*\s*::\s*)*\b[a-z][a-z_\d]*\s*::(?!\s*<)/,inside:{punctuation:/::/}},number:/\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(?:(?:\d(?:_?\d)*)?\.)?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)(?:_?(?:f32|f64|[iu](?:8|16|32|64|size)?))?\b/,boolean:/\b(?:false|true)\b/,punctuation:/->|\.\.=|\.{1,3}|::|[{}[\];(),:]/,operator:/[-+*\/%!^]=?|=[=>]?|&[&=]?|\|[|=]?|<>?=?|[@?]/},n.languages.rust["closure-params"].inside.rest=n.languages.rust,n.languages.rust.attribute.inside.string=n.languages.rust.string})(t)}return cg}var dg,tT;function Uz(){if(tT)return dg;tT=1,dg=e,e.displayName="sas",e.aliases=[];function e(t){(function(n){var i=/(?:"(?:""|[^"])*"(?!")|'(?:''|[^'])*'(?!'))/.source,o=/\b(?:\d[\da-f]*x|\d+(?:\.\d+)?(?:e[+-]?\d+)?)\b/i,l={pattern:RegExp(i+"[bx]"),alias:"number"},u={pattern:/&[a-z_]\w*/i},c={pattern:/((?:^|\s|=|\())%(?:ABORT|BY|CMS|COPY|DISPLAY|DO|ELSE|END|EVAL|GLOBAL|GO|GOTO|IF|INC|INCLUDE|INDEX|INPUT|KTRIM|LENGTH|LET|LIST|LOCAL|PUT|QKTRIM|QSCAN|QSUBSTR|QSYSFUNC|QUPCASE|RETURN|RUN|SCAN|SUBSTR|SUPERQ|SYMDEL|SYMEXIST|SYMGLOBL|SYMLOCAL|SYSCALL|SYSEVALF|SYSEXEC|SYSFUNC|SYSGET|SYSRPUT|THEN|TO|TSO|UNQUOTE|UNTIL|UPCASE|WHILE|WINDOW)\b/i,lookbehind:!0,alias:"keyword"},p={pattern:/(^|\s)(?:proc\s+\w+|data(?!=)|quit|run)\b/i,alias:"keyword",lookbehind:!0},f=[/\/\*[\s\S]*?\*\//,{pattern:/(^[ \t]*|;\s*)\*[^;]*;/m,lookbehind:!0}],m={pattern:RegExp(i),greedy:!0},h=/[$%@.(){}\[\];,\\]/,S={pattern:/%?\b\w+(?=\()/,alias:"keyword"},E={function:S,"arg-value":{pattern:/(=\s*)[A-Z\.]+/i,lookbehind:!0},operator:/=/,"macro-variable":u,arg:{pattern:/[A-Z]+/i,alias:"keyword"},number:o,"numeric-constant":l,punctuation:h,string:m},v={pattern:/\b(?:format|put)\b=?[\w'$.]+/i,inside:{keyword:/^(?:format|put)(?==)/i,equals:/=/,format:{pattern:/(?:\w|\$\d)+\.\d?/,alias:"number"}}},k={pattern:/\b(?:format|put)\s+[\w']+(?:\s+[$.\w]+)+(?=;)/i,inside:{keyword:/^(?:format|put)/i,format:{pattern:/[\w$]+\.\d?/,alias:"number"}}},T={pattern:/((?:^|\s)=?)(?:catname|checkpoint execute_always|dm|endsas|filename|footnote|%include|libname|%list|lock|missing|options|page|resetline|%run|sasfile|skip|sysecho|title\d?)\b/i,lookbehind:!0,alias:"keyword"},N={pattern:/(^|\s)(?:submit(?:\s+(?:load|norun|parseonly))?|endsubmit)\b/i,lookbehind:!0,alias:"keyword"},R=/aStore|accessControl|aggregation|audio|autotune|bayesianNetClassifier|bioMedImage|boolRule|builtins|cardinality|cdm|clustering|conditionalRandomFields|configuration|copula|countreg|dataDiscovery|dataPreprocess|dataSciencePilot|dataStep|decisionTree|deduplication|deepLearn|deepNeural|deepRnn|ds2|ecm|entityRes|espCluster|explainModel|factmac|fastKnn|fcmpact|fedSql|freqTab|gVarCluster|gam|gleam|graphSemiSupLearn|hiddenMarkovModel|hyperGroup|ica|image|iml|kernalPca|langModel|ldaTopic|loadStreams|mbc|mixed|mlTools|modelPublishing|network|neuralNet|nmf|nonParametricBayes|nonlinear|optNetwork|optimization|panel|pca|percentile|phreg|pls|qkb|qlim|quantreg|recommend|regression|reinforcementLearn|robustPca|ruleMining|sampling|sandwich|sccasl|search(?:Analytics)?|sentimentAnalysis|sequence|session(?:Prop)?|severity|simSystem|simple|smartData|sparkEmbeddedProcess|sparseML|spatialreg|spc|stabilityMonitoring|svDataDescription|svm|table|text(?:Filters|Frequency|Mining|Parse|Rule(?:Develop|Score)|Topic|Util)|timeData|transpose|tsInfo|tsReconcile|uniTimeSeries|varReduce/.source,A={pattern:RegExp(/(^|\s)(?:action\s+)?(?:)\.[a-z]+\b[^;]+/.source.replace(//g,function(){return R}),"i"),lookbehind:!0,inside:{keyword:RegExp(/(?:)\.[a-z]+\b/.source.replace(//g,function(){return R}),"i"),action:{pattern:/(?:action)/i,alias:"keyword"},comment:f,function:S,"arg-value":E["arg-value"],operator:E.operator,argument:E.arg,number:o,"numeric-constant":l,punctuation:h,string:m}},O={pattern:/((?:^|\s)=?)(?:after|analysis|and|array|barchart|barwidth|begingraph|by|call|cas|cbarline|cfill|class(?:lev)?|close|column|computed?|contains|continue|data(?==)|define|delete|describe|document|do\s+over|do|dol|drop|dul|else|end(?:comp|source)?|entryTitle|eval(?:uate)?|exec(?:ute)?|exit|file(?:name)?|fill(?:attrs)?|flist|fnc|function(?:list)?|global|goto|group(?:by)?|headline|headskip|histogram|if|infile|keep|keylabel|keyword|label|layout|leave|legendlabel|length|libname|loadactionset|merge|midpoints|_?null_|name|noobs|nowd|ods|options|or|otherwise|out(?:put)?|over(?:lay)?|plot|print|put|raise|ranexp|rannor|rbreak|retain|return|select|session|sessref|set|source|statgraph|sum|summarize|table|temp|terminate|then\s+do|then|title\d?|to|var|when|where|xaxisopts|y2axisopts|yaxisopts)\b/i,lookbehind:!0};n.languages.sas={datalines:{pattern:/^([ \t]*)(?:cards|(?:data)?lines);[\s\S]+?^[ \t]*;/im,lookbehind:!0,alias:"string",inside:{keyword:{pattern:/^(?:cards|(?:data)?lines)/i},punctuation:/;/}},"proc-sql":{pattern:/(^proc\s+(?:fed)?sql(?:\s+[\w|=]+)?;)[\s\S]+?(?=^(?:proc\s+\w+|data|quit|run);|(?![\s\S]))/im,lookbehind:!0,inside:{sql:{pattern:RegExp(/^[ \t]*(?:select|alter\s+table|(?:create|describe|drop)\s+(?:index|table(?:\s+constraints)?|view)|create\s+unique\s+index|insert\s+into|update)(?:|[^;"'])+;/.source.replace(//g,function(){return i}),"im"),alias:"language-sql",inside:n.languages.sql},"global-statements":T,"sql-statements":{pattern:/(^|\s)(?:disconnect\s+from|begin|commit|exec(?:ute)?|reset|rollback|validate)\b/i,lookbehind:!0,alias:"keyword"},number:o,"numeric-constant":l,punctuation:h,string:m}},"proc-groovy":{pattern:/(^proc\s+groovy(?:\s+[\w|=]+)?;)[\s\S]+?(?=^(?:proc\s+\w+|data|quit|run);|(?![\s\S]))/im,lookbehind:!0,inside:{comment:f,groovy:{pattern:RegExp(/(^[ \t]*submit(?:\s+(?:load|norun|parseonly))?)(?:|[^"'])+?(?=endsubmit;)/.source.replace(//g,function(){return i}),"im"),lookbehind:!0,alias:"language-groovy",inside:n.languages.groovy},keyword:O,"submit-statement":N,"global-statements":T,number:o,"numeric-constant":l,punctuation:h,string:m}},"proc-lua":{pattern:/(^proc\s+lua(?:\s+[\w|=]+)?;)[\s\S]+?(?=^(?:proc\s+\w+|data|quit|run);|(?![\s\S]))/im,lookbehind:!0,inside:{comment:f,lua:{pattern:RegExp(/(^[ \t]*submit(?:\s+(?:load|norun|parseonly))?)(?:|[^"'])+?(?=endsubmit;)/.source.replace(//g,function(){return i}),"im"),lookbehind:!0,alias:"language-lua",inside:n.languages.lua},keyword:O,"submit-statement":N,"global-statements":T,number:o,"numeric-constant":l,punctuation:h,string:m}},"proc-cas":{pattern:/(^proc\s+cas(?:\s+[\w|=]+)?;)[\s\S]+?(?=^(?:proc\s+\w+|quit|data);|(?![\s\S]))/im,lookbehind:!0,inside:{comment:f,"statement-var":{pattern:/((?:^|\s)=?)saveresult\s[^;]+/im,lookbehind:!0,inside:{statement:{pattern:/^saveresult\s+\S+/i,inside:{keyword:/^(?:saveresult)/i}},rest:E}},"cas-actions":A,statement:{pattern:/((?:^|\s)=?)(?:default|(?:un)?set|on|output|upload)[^;]+/im,lookbehind:!0,inside:E},step:p,keyword:O,function:S,format:v,altformat:k,"global-statements":T,number:o,"numeric-constant":l,punctuation:h,string:m}},"proc-args":{pattern:RegExp(/(^proc\s+\w+\s+)(?!\s)(?:[^;"']|)+;/.source.replace(//g,function(){return i}),"im"),lookbehind:!0,inside:E},"macro-keyword":c,"macro-variable":u,"macro-string-functions":{pattern:/((?:^|\s|=))%(?:BQUOTE|NRBQUOTE|NRQUOTE|NRSTR|QUOTE|STR)\(.*?(?:[^%]\))/i,lookbehind:!0,inside:{function:{pattern:/%(?:BQUOTE|NRBQUOTE|NRQUOTE|NRSTR|QUOTE|STR)/i,alias:"keyword"},"macro-keyword":c,"macro-variable":u,"escaped-char":{pattern:/%['"()<>=¬^~;,#]/},punctuation:h}},"macro-declaration":{pattern:/^%macro[^;]+(?=;)/im,inside:{keyword:/%macro/i}},"macro-end":{pattern:/^%mend[^;]+(?=;)/im,inside:{keyword:/%mend/i}},macro:{pattern:/%_\w+(?=\()/,alias:"keyword"},input:{pattern:/\binput\s[-\w\s/*.$&]+;/i,inside:{input:{alias:"keyword",pattern:/^input/i},comment:f,number:o,"numeric-constant":l}},"options-args":{pattern:/(^options)[-'"|/\\<>*+=:()\w\s]*(?=;)/im,lookbehind:!0,inside:E},"cas-actions":A,comment:f,function:S,format:v,altformat:k,"numeric-constant":l,datetime:{pattern:RegExp(i+"(?:dt?|t)"),alias:"number"},string:m,step:p,keyword:O,"operator-keyword":{pattern:/\b(?:eq|ge|gt|in|le|lt|ne|not)\b/i,alias:"operator"},number:o,operator:/\*\*?|\|\|?|!!?|¦¦?|<[>=]?|>[<=]?|[-+\/=&]|[~¬^]=?/,punctuation:h}})(t)}return dg}var pg,nT;function Bz(){if(nT)return pg;nT=1,pg=e,e.displayName="sass",e.aliases=[];function e(t){(function(n){n.languages.sass=n.languages.extend("css",{comment:{pattern:/^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t].+)*/m,lookbehind:!0,greedy:!0}}),n.languages.insertBefore("sass","atrule",{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,greedy:!0,inside:{atrule:/(?:@[\w-]+|[+=])/}}}),delete n.languages.sass.atrule;var i=/\$[-\w]+|#\{\$[-\w]+\}/,o=[/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|not|or)\b/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}];n.languages.insertBefore("sass","property",{"variable-line":{pattern:/^[ \t]*\$.+/m,greedy:!0,inside:{punctuation:/:/,variable:i,operator:o}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s].*)/m,greedy:!0,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable:i,operator:o,important:n.languages.sass.important}}}),delete n.languages.sass.property,delete n.languages.sass.important,n.languages.insertBefore("sass","punctuation",{selector:{pattern:/^([ \t]*)\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*)*/m,lookbehind:!0,greedy:!0}})})(t)}return pg}var fg,rT;function jz(){if(rT)return fg;rT=1;var e=mh();fg=t,t.displayName="scala",t.aliases=[];function t(n){n.register(e),n.languages.scala=n.languages.extend("java",{"triple-quoted-string":{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string"},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},keyword:/<-|=>|\b(?:abstract|case|catch|class|def|do|else|extends|final|finally|for|forSome|if|implicit|import|lazy|match|new|null|object|override|package|private|protected|return|sealed|self|super|this|throw|trait|try|type|val|var|while|with|yield)\b/,number:/\b0x(?:[\da-f]*\.)?[\da-f]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e\d+)?[dfl]?/i,builtin:/\b(?:Any|AnyRef|AnyVal|Boolean|Byte|Char|Double|Float|Int|Long|Nothing|Short|String|Unit)\b/,symbol:/'[^\d\s\\]\w*/}),n.languages.insertBefore("scala","triple-quoted-string",{"string-interpolation":{pattern:/\b[a-z]\w*(?:"""(?:[^$]|\$(?:[^{]|\{(?:[^{}]|\{[^{}]*\})*\}))*?"""|"(?:[^$"\r\n]|\$(?:[^{]|\{(?:[^{}]|\{[^{}]*\})*\}))*")/i,greedy:!0,inside:{id:{pattern:/^\w+/,greedy:!0,alias:"function"},escape:{pattern:/\\\$"|\$[$"]/,greedy:!0,alias:"symbol"},interpolation:{pattern:/\$(?:\w+|\{(?:[^{}]|\{[^{}]*\})*\})/,greedy:!0,inside:{punctuation:/^\$\{?|\}$/,expression:{pattern:/[\s\S]+/,inside:n.languages.scala}}},string:/[\s\S]+/}}}),delete n.languages.scala["class-name"],delete n.languages.scala.function}return fg}var gg,aT;function zz(){if(aT)return gg;aT=1,gg=e,e.displayName="scss",e.aliases=[];function e(t){t.languages.scss=t.languages.extend("css",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-](?:\([^()]+\)|[^()\s]|\s+(?!\s))*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)?url(?=\()/i,selector:{pattern:/(?=\S)[^@;{}()]?(?:[^@;{}()\s]|\s+(?!\s)|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}][^:{}]*[:{][^}]))/,inside:{parent:{pattern:/&/,alias:"important"},placeholder:/%[-\w]+/,variable:/\$[-\w]+|#\{\$[-\w]+\}/}},property:{pattern:/(?:[-\w]|\$[-\w]|#\{\$[-\w]+\})+(?=\s*:)/,inside:{variable:/\$[-\w]+|#\{\$[-\w]+\}/}}}),t.languages.insertBefore("scss","atrule",{keyword:[/@(?:content|debug|each|else(?: if)?|extend|for|forward|function|if|import|include|mixin|return|use|warn|while)\b/i,{pattern:/( )(?:from|through)(?= )/,lookbehind:!0}]}),t.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),t.languages.insertBefore("scss","function",{"module-modifier":{pattern:/\b(?:as|hide|show|with)\b/i,alias:"keyword"},placeholder:{pattern:/%[-\w]+/,alias:"selector"},statement:{pattern:/\B!(?:default|optional)\b/i,alias:"keyword"},boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"},operator:{pattern:/(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|not|or)(?=\s)/,lookbehind:!0}}),t.languages.scss.atrule.inside.rest=t.languages.scss}return gg}var mg,iT;function $z(){if(iT)return mg;iT=1;var e=JA();mg=t,t.displayName="shellSession",t.aliases=[];function t(n){n.register(e),(function(i){var o=[/"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/.source,/'[^']*'/.source,/\$'(?:[^'\\]|\\[\s\S])*'/.source,/<<-?\s*(["']?)(\w+)\1\s[\s\S]*?[\r\n]\2/.source].join("|");i.languages["shell-session"]={command:{pattern:RegExp(/^/.source+"(?:"+(/[^\s@:$#%*!/\\]+@[^\r\n@:$#%*!/\\]+(?::[^\0-\x1F$#%*?"<>:;|]+)?/.source+"|"+/[/~.][^\0-\x1F$#%*?"<>@:;|]*/.source)+")?"+/[$#%](?=\s)/.source+/(?:[^\\\r\n \t'"<$]|[ \t](?:(?!#)|#.*$)|\\(?:[^\r]|\r\n?)|\$(?!')|<(?!<)|<>)+/.source.replace(/<>/g,function(){return o}),"m"),greedy:!0,inside:{info:{pattern:/^[^#$%]+/,alias:"punctuation",inside:{user:/^[^\s@:$#%*!/\\]+@[^\r\n@:$#%*!/\\]+/,punctuation:/:/,path:/[\s\S]+/}},bash:{pattern:/(^[$#%]\s*)\S[\s\S]*/,lookbehind:!0,alias:"language-bash",inside:i.languages.bash},"shell-symbol":{pattern:/^[$#%]/,alias:"important"}}},output:/.(?:.*(?:[\r\n]|.$))*/},i.languages["sh-session"]=i.languages.shellsession=i.languages["shell-session"]})(n)}return mg}var hg,oT;function qz(){if(oT)return hg;oT=1,hg=e,e.displayName="smali",e.aliases=[];function e(t){t.languages.smali={comment:/#.*/,string:{pattern:/"(?:[^\r\n\\"]|\\.)*"|'(?:[^\r\n\\']|\\(?:.|u[\da-fA-F]{4}))'/,greedy:!0},"class-name":{pattern:/(^|[^L])L(?:(?:\w+|`[^`\r\n]*`)\/)*(?:[\w$]+|`[^`\r\n]*`)(?=\s*;)/,lookbehind:!0,inside:{"class-name":{pattern:/(^L|\/)(?:[\w$]+|`[^`\r\n]*`)$/,lookbehind:!0},namespace:{pattern:/^(L)(?:(?:\w+|`[^`\r\n]*`)\/)+/,lookbehind:!0,inside:{punctuation:/\//}},builtin:/^L/}},builtin:[{pattern:/([();\[])[BCDFIJSVZ]+/,lookbehind:!0},{pattern:/([\w$>]:)[BCDFIJSVZ]/,lookbehind:!0}],keyword:[{pattern:/(\.end\s+)[\w-]+/,lookbehind:!0},{pattern:/(^|[^\w.-])\.(?!\d)[\w-]+/,lookbehind:!0},{pattern:/(^|[^\w.-])(?:abstract|annotation|bridge|constructor|enum|final|interface|private|protected|public|runtime|static|synthetic|system|transient)(?![\w.-])/,lookbehind:!0}],function:{pattern:/(^|[^\w.-])(?:\w+|<[\w$-]+>)(?=\()/,lookbehind:!0},field:{pattern:/[\w$]+(?=:)/,alias:"variable"},register:{pattern:/(^|[^\w.-])[vp]\d(?![\w.-])/,lookbehind:!0,alias:"variable"},boolean:{pattern:/(^|[^\w.-])(?:false|true)(?![\w.-])/,lookbehind:!0},number:{pattern:/(^|[^/\w.-])-?(?:NAN|INFINITY|0x(?:[\dA-F]+(?:\.[\dA-F]*)?|\.[\dA-F]+)(?:p[+-]?[\dA-F]+)?|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?)[dflst]?(?![\w.-])/i,lookbehind:!0},label:{pattern:/(:)\w+/,lookbehind:!0,alias:"property"},operator:/->|\.\.|[\[=]/,punctuation:/[{}(),;:]/}}return hg}var bg,sT;function Gz(){if(sT)return bg;sT=1,bg=e,e.displayName="smalltalk",e.aliases=[];function e(t){t.languages.smalltalk={comment:{pattern:/"(?:""|[^"])*"/,greedy:!0},char:{pattern:/\$./,greedy:!0},string:{pattern:/'(?:''|[^'])*'/,greedy:!0},symbol:/#[\da-z]+|#(?:-|([+\/\\*~<>=@%|&?!])\1?)|#(?=\()/i,"block-arguments":{pattern:/(\[\s*):[^\[|]*\|/,lookbehind:!0,inside:{variable:/:[\da-z]+/i,punctuation:/\|/}},"temporary-variables":{pattern:/\|[^|]+\|/,inside:{variable:/[\da-z]+/i,punctuation:/\|/}},keyword:/\b(?:new|nil|self|super)\b/,boolean:/\b(?:false|true)\b/,number:[/\d+r-?[\dA-Z]+(?:\.[\dA-Z]+)?(?:e-?\d+)?/,/\b\d+(?:\.\d+)?(?:e-?\d+)?/],operator:/[<=]=?|:=|~[~=]|\/\/?|\\\\|>[>=]?|[!^+\-*&|,@]/,punctuation:/[.;:?\[\](){}]/}}return bg}var yg,lT;function Hz(){if(lT)return yg;lT=1;var e=an();yg=t,t.displayName="smarty",t.aliases=[];function t(n){n.register(e),(function(i){i.languages.smarty={comment:{pattern:/^\{\*[\s\S]*?\*\}/,greedy:!0},"embedded-php":{pattern:/^\{php\}[\s\S]*?\{\/php\}/,greedy:!0,inside:{smarty:{pattern:/^\{php\}|\{\/php\}$/,inside:null},php:{pattern:/[\s\S]+/,alias:"language-php",inside:i.languages.php}}},string:[{pattern:/"(?:\\.|[^"\\\r\n])*"/,greedy:!0,inside:{interpolation:{pattern:/\{[^{}]*\}|`[^`]*`/,inside:{"interpolation-punctuation":{pattern:/^[{`]|[`}]$/,alias:"punctuation"},expression:{pattern:/[\s\S]+/,inside:null}}},variable:/\$\w+/}},{pattern:/'(?:\\.|[^'\\\r\n])*'/,greedy:!0}],keyword:{pattern:/(^\{\/?)[a-z_]\w*\b(?!\()/i,lookbehind:!0,greedy:!0},delimiter:{pattern:/^\{\/?|\}$/,greedy:!0,alias:"punctuation"},number:/\b0x[\dA-Fa-f]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][-+]?\d+)?/,variable:[/\$(?!\d)\w+/,/#(?!\d)\w+#/,{pattern:/(\.|->|\w\s*=)(?!\d)\w+\b(?!\()/,lookbehind:!0},{pattern:/(\[)(?!\d)\w+(?=\])/,lookbehind:!0}],function:{pattern:/(\|\s*)@?[a-z_]\w*|\b[a-z_]\w*(?=\()/i,lookbehind:!0},"attr-name":/\b[a-z_]\w*(?=\s*=)/i,boolean:/\b(?:false|no|off|on|true|yes)\b/,punctuation:/[\[\](){}.,:`]|->/,operator:[/[+\-*\/%]|==?=?|[!<>]=?|&&|\|\|?/,/\bis\s+(?:not\s+)?(?:div|even|odd)(?:\s+by)?\b/,/\b(?:and|eq|gt?e|gt|lt?e|lt|mod|neq?|not|or)\b/]},i.languages.smarty["embedded-php"].inside.smarty.inside=i.languages.smarty,i.languages.smarty.string[0].inside.interpolation.inside.expression.inside=i.languages.smarty;var o=/"(?:\\.|[^"\\\r\n])*"|'(?:\\.|[^'\\\r\n])*'/,l=RegExp(/\{\*[\s\S]*?\*\}/.source+"|"+/\{php\}[\s\S]*?\{\/php\}/.source+"|"+/\{(?:[^{}"']||\{(?:[^{}"']||\{(?:[^{}"']|)*\})*\})*\}/.source.replace(//g,function(){return o.source}),"g");i.hooks.add("before-tokenize",function(u){var c="{literal}",p="{/literal}",f=!1;i.languages["markup-templating"].buildPlaceholders(u,"smarty",l,function(m){return m===p&&(f=!1),f?!1:(m===c&&(f=!0),!0)})}),i.hooks.add("after-tokenize",function(u){i.languages["markup-templating"].tokenizePlaceholders(u,"smarty")})})(n)}return yg}var Eg,uT;function Wz(){if(uT)return Eg;uT=1,Eg=e,e.displayName="sml",e.aliases=["smlnj"];function e(t){(function(n){var i=/\b(?:abstype|and|andalso|as|case|datatype|do|else|end|eqtype|exception|fn|fun|functor|handle|if|in|include|infix|infixr|let|local|nonfix|of|op|open|orelse|raise|rec|sharing|sig|signature|struct|structure|then|type|val|where|while|with|withtype)\b/i;n.languages.sml={comment:/\(\*(?:[^*(]|\*(?!\))|\((?!\*)|\(\*(?:[^*(]|\*(?!\))|\((?!\*))*\*\))*\*\)/,string:{pattern:/#?"(?:[^"\\]|\\.)*"/,greedy:!0},"class-name":[{pattern:RegExp(/((?:^|[^:]):\s*)(?:\s*(?:(?:\*|->)\s*|,\s*(?:(?=)|(?!)\s+)))*/.source.replace(//g,function(){return/\s*(?:[*,]|->)/.source}).replace(//g,function(){return/(?:'[\w']*||\((?:[^()]|\([^()]*\))*\)|\{(?:[^{}]|\{[^{}]*\})*\})(?:\s+)*/.source}).replace(//g,function(){return/(?!)[a-z\d_][\w'.]*/.source}).replace(//g,function(){return i.source}),"i"),lookbehind:!0,greedy:!0,inside:null},{pattern:/((?:^|[^\w'])(?:datatype|exception|functor|signature|structure|type)\s+)[a-z_][\w'.]*/i,lookbehind:!0}],function:{pattern:/((?:^|[^\w'])fun\s+)[a-z_][\w'.]*/i,lookbehind:!0},keyword:i,variable:{pattern:/(^|[^\w'])'[\w']*/,lookbehind:!0},number:/~?\b(?:\d+(?:\.\d+)?(?:e~?\d+)?|0x[\da-f]+)\b/i,word:{pattern:/\b0w(?:\d+|x[\da-f]+)\b/i,alias:"constant"},boolean:/\b(?:false|true)\b/i,operator:/\.\.\.|:[>=:]|=>?|->|[<>]=?|[!+\-*/^#|@~]/,punctuation:/[(){}\[\].:,;]/},n.languages.sml["class-name"][0].inside=n.languages.sml,n.languages.smlnj=n.languages.sml})(t)}return Eg}var Sg,cT;function Vz(){if(cT)return Sg;cT=1,Sg=e,e.displayName="solidity",e.aliases=["sol"];function e(t){t.languages.solidity=t.languages.extend("clike",{"class-name":{pattern:/(\b(?:contract|enum|interface|library|new|struct|using)\s+)(?!\d)[\w$]+/,lookbehind:!0},keyword:/\b(?:_|anonymous|as|assembly|assert|break|calldata|case|constant|constructor|continue|contract|default|delete|do|else|emit|enum|event|external|for|from|function|if|import|indexed|inherited|interface|internal|is|let|library|mapping|memory|modifier|new|payable|pragma|private|public|pure|require|returns?|revert|selfdestruct|solidity|storage|struct|suicide|switch|this|throw|using|var|view|while)\b/,operator:/=>|->|:=|=:|\*\*|\+\+|--|\|\||&&|<<=?|>>=?|[-+*/%^&|<>!=]=?|[~?]/}),t.languages.insertBefore("solidity","keyword",{builtin:/\b(?:address|bool|byte|u?int(?:8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?|string|bytes(?:[1-9]|[12]\d|3[0-2])?)\b/}),t.languages.insertBefore("solidity","number",{version:{pattern:/([<>]=?|\^)\d+\.\d+\.\d+\b/,lookbehind:!0,alias:"number"}}),t.languages.sol=t.languages.solidity}return Sg}var vg,dT;function Yz(){if(dT)return vg;dT=1,vg=e,e.displayName="solutionFile",e.aliases=[];function e(t){(function(n){var i={pattern:/\{[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}\}/i,alias:"constant",inside:{punctuation:/[{}]/}};n.languages["solution-file"]={comment:{pattern:/#.*/,greedy:!0},string:{pattern:/"[^"\r\n]*"|'[^'\r\n]*'/,greedy:!0,inside:{guid:i}},object:{pattern:/^([ \t]*)(?:([A-Z]\w*)\b(?=.*(?:\r\n?|\n)(?:\1[ \t].*(?:\r\n?|\n))*\1End\2(?=[ \t]*$))|End[A-Z]\w*(?=[ \t]*$))/m,lookbehind:!0,greedy:!0,alias:"keyword"},property:{pattern:/^([ \t]*)(?!\s)[^\r\n"#=()]*[^\s"#=()](?=\s*=)/m,lookbehind:!0,inside:{guid:i}},guid:i,number:/\b\d+(?:\.\d+)*\b/,boolean:/\b(?:FALSE|TRUE)\b/,operator:/=/,punctuation:/[(),]/},n.languages.sln=n.languages["solution-file"]})(t)}return vg}var kg,pT;function Kz(){if(pT)return kg;pT=1;var e=an();kg=t,t.displayName="soy",t.aliases=[];function t(n){n.register(e),(function(i){var o=/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,l=/\b\d+(?:\.\d+)?(?:[eE][+-]?\d+)?\b|\b0x[\dA-F]+\b/;i.languages.soy={comment:[/\/\*[\s\S]*?\*\//,{pattern:/(\s)\/\/.*/,lookbehind:!0,greedy:!0}],"command-arg":{pattern:/(\{+\/?\s*(?:alias|call|delcall|delpackage|deltemplate|namespace|template)\s+)\.?[\w.]+/,lookbehind:!0,alias:"string",inside:{punctuation:/\./}},parameter:{pattern:/(\{+\/?\s*@?param\??\s+)\.?[\w.]+/,lookbehind:!0,alias:"variable"},keyword:[{pattern:/(\{+\/?[^\S\r\n]*)(?:\\[nrt]|alias|call|case|css|default|delcall|delpackage|deltemplate|else(?:if)?|fallbackmsg|for(?:each)?|if(?:empty)?|lb|let|literal|msg|namespace|nil|@?param\??|rb|sp|switch|template|xid)/,lookbehind:!0},/\b(?:any|as|attributes|bool|css|float|html|in|int|js|list|map|null|number|string|uri)\b/],delimiter:{pattern:/^\{+\/?|\/?\}+$/,alias:"punctuation"},property:/\w+(?==)/,variable:{pattern:/\$[^\W\d]\w*(?:\??(?:\.\w+|\[[^\]]+\]))*/,inside:{string:{pattern:o,greedy:!0},number:l,punctuation:/[\[\].?]/}},string:{pattern:o,greedy:!0},function:[/\w+(?=\()/,{pattern:/(\|[^\S\r\n]*)\w+/,lookbehind:!0}],boolean:/\b(?:false|true)\b/,number:l,operator:/\?:?|<=?|>=?|==?|!=|[+*/%-]|\b(?:and|not|or)\b/,punctuation:/[{}()\[\]|.,:]/},i.hooks.add("before-tokenize",function(u){var c=/\{\{.+?\}\}|\{.+?\}|\s\/\/.*|\/\*[\s\S]*?\*\//g,p="{literal}",f="{/literal}",m=!1;i.languages["markup-templating"].buildPlaceholders(u,"soy",c,function(h){return h===f&&(m=!1),m?!1:(h===p&&(m=!0),!0)})}),i.hooks.add("after-tokenize",function(u){i.languages["markup-templating"].tokenizePlaceholders(u,"soy")})})(n)}return kg}var _g,fT;function rR(){if(fT)return _g;fT=1,_g=e,e.displayName="turtle",e.aliases=[];function e(t){t.languages.turtle={comment:{pattern:/#.*/,greedy:!0},"multiline-string":{pattern:/"""(?:(?:""?)?(?:[^"\\]|\\.))*"""|'''(?:(?:''?)?(?:[^'\\]|\\.))*'''/,greedy:!0,alias:"string",inside:{comment:/#.*/}},string:{pattern:/"(?:[^\\"\r\n]|\\.)*"|'(?:[^\\'\r\n]|\\.)*'/,greedy:!0},url:{pattern:/<(?:[^\x00-\x20<>"{}|^`\\]|\\(?:u[\da-fA-F]{4}|U[\da-fA-F]{8}))*>/,greedy:!0,inside:{punctuation:/[<>]/}},function:{pattern:/(?:(?![-.\d\xB7])[-.\w\xB7\xC0-\uFFFD]+)?:(?:(?![-.])(?:[-.:\w\xC0-\uFFFD]|%[\da-f]{2}|\\.)+)?/i,inside:{"local-name":{pattern:/([^:]*:)[\s\S]+/,lookbehind:!0},prefix:{pattern:/[\s\S]+/,inside:{punctuation:/:/}}}},number:/[+-]?\b\d+(?:\.\d*)?(?:e[+-]?\d+)?/i,punctuation:/[{}.,;()[\]]|\^\^/,boolean:/\b(?:false|true)\b/,keyword:[/(?:\ba|@prefix|@base)\b|=/,/\b(?:base|graph|prefix)\b/i],tag:{pattern:/@[a-z]+(?:-[a-z\d]+)*/i,inside:{punctuation:/@/}}},t.languages.trig=t.languages.turtle}return _g}var wg,gT;function Zz(){if(gT)return wg;gT=1;var e=rR();wg=t,t.displayName="sparql",t.aliases=["rq"];function t(n){n.register(e),n.languages.sparql=n.languages.extend("turtle",{boolean:/\b(?:false|true)\b/i,variable:{pattern:/[?$]\w+/,greedy:!0}}),n.languages.insertBefore("sparql","punctuation",{keyword:[/\b(?:A|ADD|ALL|AS|ASC|ASK|BNODE|BY|CLEAR|CONSTRUCT|COPY|CREATE|DATA|DEFAULT|DELETE|DESC|DESCRIBE|DISTINCT|DROP|EXISTS|FILTER|FROM|GROUP|HAVING|INSERT|INTO|LIMIT|LOAD|MINUS|MOVE|NAMED|NOT|NOW|OFFSET|OPTIONAL|ORDER|RAND|REDUCED|SELECT|SEPARATOR|SERVICE|SILENT|STRUUID|UNION|USING|UUID|VALUES|WHERE)\b/i,/\b(?:ABS|AVG|BIND|BOUND|CEIL|COALESCE|CONCAT|CONTAINS|COUNT|DATATYPE|DAY|ENCODE_FOR_URI|FLOOR|GROUP_CONCAT|HOURS|IF|IRI|isBLANK|isIRI|isLITERAL|isNUMERIC|isURI|LANG|LANGMATCHES|LCASE|MAX|MD5|MIN|MINUTES|MONTH|REGEX|REPLACE|ROUND|sameTerm|SAMPLE|SECONDS|SHA1|SHA256|SHA384|SHA512|STR|STRAFTER|STRBEFORE|STRDT|STRENDS|STRLANG|STRLEN|STRSTARTS|SUBSTR|SUM|TIMEZONE|TZ|UCASE|URI|YEAR)\b(?=\s*\()/i,/\b(?:BASE|GRAPH|PREFIX)\b/i]}),n.languages.rq=n.languages.sparql}return wg}var Tg,mT;function Xz(){if(mT)return Tg;mT=1,Tg=e,e.displayName="splunkSpl",e.aliases=[];function e(t){t.languages["splunk-spl"]={comment:/`comment\("(?:\\.|[^\\"])*"\)`/,string:{pattern:/"(?:\\.|[^\\"])*"/,greedy:!0},keyword:/\b(?:abstract|accum|addcoltotals|addinfo|addtotals|analyzefields|anomalies|anomalousvalue|anomalydetection|append|appendcols|appendcsv|appendlookup|appendpipe|arules|associate|audit|autoregress|bin|bucket|bucketdir|chart|cluster|cofilter|collect|concurrency|contingency|convert|correlate|datamodel|dbinspect|dedup|delete|delta|diff|erex|eval|eventcount|eventstats|extract|fieldformat|fields|fieldsummary|filldown|fillnull|findtypes|folderize|foreach|format|from|gauge|gentimes|geom|geomfilter|geostats|head|highlight|history|iconify|input|inputcsv|inputlookup|iplocation|join|kmeans|kv|kvform|loadjob|localize|localop|lookup|makecontinuous|makemv|makeresults|map|mcollect|metadata|metasearch|meventcollect|mstats|multikv|multisearch|mvcombine|mvexpand|nomv|outlier|outputcsv|outputlookup|outputtext|overlap|pivot|predict|rangemap|rare|regex|relevancy|reltime|rename|replace|rest|return|reverse|rex|rtorder|run|savedsearch|script|scrub|search|searchtxn|selfjoin|sendemail|set|setfields|sichart|sirare|sistats|sitimechart|sitop|sort|spath|stats|strcat|streamstats|table|tags|tail|timechart|timewrap|top|transaction|transpose|trendline|tscollect|tstats|typeahead|typelearner|typer|union|uniq|untable|where|x11|xmlkv|xmlunescape|xpath|xyseries)\b/i,"operator-word":{pattern:/\b(?:and|as|by|not|or|xor)\b/i,alias:"operator"},function:/\b\w+(?=\s*\()/,property:/\b\w+(?=\s*=(?!=))/,date:{pattern:/\b\d{1,2}\/\d{1,2}\/\d{1,4}(?:(?::\d{1,2}){3})?\b/,alias:"number"},number:/\b\d+(?:\.\d+)?\b/,boolean:/\b(?:f|false|t|true)\b/i,operator:/[<>=]=?|[-+*/%|]/,punctuation:/[()[\],]/}}return Tg}var xg,hT;function Qz(){if(hT)return xg;hT=1,xg=e,e.displayName="sqf",e.aliases=[];function e(t){t.languages.sqf=t.languages.extend("clike",{string:{pattern:/"(?:(?:"")?[^"])*"(?!")|'(?:[^'])*'/,greedy:!0},keyword:/\b(?:breakOut|breakTo|call|case|catch|default|do|echo|else|execFSM|execVM|exitWith|for|forEach|forEachMember|forEachMemberAgent|forEachMemberTeam|from|goto|if|nil|preprocessFile|preprocessFileLineNumbers|private|scopeName|spawn|step|switch|then|throw|to|try|while|with)\b/i,boolean:/\b(?:false|true)\b/i,function:/\b(?:abs|accTime|acos|action|actionIDs|actionKeys|actionKeysImages|actionKeysNames|actionKeysNamesArray|actionName|actionParams|activateAddons|activatedAddons|activateKey|add3DENConnection|add3DENEventHandler|add3DENLayer|addAction|addBackpack|addBackpackCargo|addBackpackCargoGlobal|addBackpackGlobal|addCamShake|addCuratorAddons|addCuratorCameraArea|addCuratorEditableObjects|addCuratorEditingArea|addCuratorPoints|addEditorObject|addEventHandler|addForce|addForceGeneratorRTD|addGoggles|addGroupIcon|addHandgunItem|addHeadgear|addItem|addItemCargo|addItemCargoGlobal|addItemPool|addItemToBackpack|addItemToUniform|addItemToVest|addLiveStats|addMagazine|addMagazineAmmoCargo|addMagazineCargo|addMagazineCargoGlobal|addMagazineGlobal|addMagazinePool|addMagazines|addMagazineTurret|addMenu|addMenuItem|addMissionEventHandler|addMPEventHandler|addMusicEventHandler|addOwnedMine|addPlayerScores|addPrimaryWeaponItem|addPublicVariableEventHandler|addRating|addResources|addScore|addScoreSide|addSecondaryWeaponItem|addSwitchableUnit|addTeamMember|addToRemainsCollector|addTorque|addUniform|addVehicle|addVest|addWaypoint|addWeapon|addWeaponCargo|addWeaponCargoGlobal|addWeaponGlobal|addWeaponItem|addWeaponPool|addWeaponTurret|admin|agent|agents|AGLToASL|aimedAtTarget|aimPos|airDensityCurveRTD|airDensityRTD|airplaneThrottle|airportSide|AISFinishHeal|alive|all3DENEntities|allAirports|allControls|allCurators|allCutLayers|allDead|allDeadMen|allDisplays|allGroups|allMapMarkers|allMines|allMissionObjects|allow3DMode|allowCrewInImmobile|allowCuratorLogicIgnoreAreas|allowDamage|allowDammage|allowFileOperations|allowFleeing|allowGetIn|allowSprint|allPlayers|allSimpleObjects|allSites|allTurrets|allUnits|allUnitsUAV|allVariables|ammo|ammoOnPylon|animate|animateBay|animateDoor|animatePylon|animateSource|animationNames|animationPhase|animationSourcePhase|animationState|append|apply|armoryPoints|arrayIntersect|asin|ASLToAGL|ASLToATL|assert|assignAsCargo|assignAsCargoIndex|assignAsCommander|assignAsDriver|assignAsGunner|assignAsTurret|assignCurator|assignedCargo|assignedCommander|assignedDriver|assignedGunner|assignedItems|assignedTarget|assignedTeam|assignedVehicle|assignedVehicleRole|assignItem|assignTeam|assignToAirport|atan|atan2|atg|ATLToASL|attachedObject|attachedObjects|attachedTo|attachObject|attachTo|attackEnabled|backpack|backpackCargo|backpackContainer|backpackItems|backpackMagazines|backpackSpaceFor|behaviour|benchmark|binocular|blufor|boundingBox|boundingBoxReal|boundingCenter|briefingName|buildingExit|buildingPos|buldozer_EnableRoadDiag|buldozer_IsEnabledRoadDiag|buldozer_LoadNewRoads|buldozer_reloadOperMap|buttonAction|buttonSetAction|cadetMode|callExtension|camCommand|camCommit|camCommitPrepared|camCommitted|camConstuctionSetParams|camCreate|camDestroy|cameraEffect|cameraEffectEnableHUD|cameraInterest|cameraOn|cameraView|campaignConfigFile|camPreload|camPreloaded|camPrepareBank|camPrepareDir|camPrepareDive|camPrepareFocus|camPrepareFov|camPrepareFovRange|camPreparePos|camPrepareRelPos|camPrepareTarget|camSetBank|camSetDir|camSetDive|camSetFocus|camSetFov|camSetFovRange|camSetPos|camSetRelPos|camSetTarget|camTarget|camUseNVG|canAdd|canAddItemToBackpack|canAddItemToUniform|canAddItemToVest|cancelSimpleTaskDestination|canFire|canMove|canSlingLoad|canStand|canSuspend|canTriggerDynamicSimulation|canUnloadInCombat|canVehicleCargo|captive|captiveNum|cbChecked|cbSetChecked|ceil|channelEnabled|cheatsEnabled|checkAIFeature|checkVisibility|civilian|className|clear3DENAttribute|clear3DENInventory|clearAllItemsFromBackpack|clearBackpackCargo|clearBackpackCargoGlobal|clearForcesRTD|clearGroupIcons|clearItemCargo|clearItemCargoGlobal|clearItemPool|clearMagazineCargo|clearMagazineCargoGlobal|clearMagazinePool|clearOverlay|clearRadio|clearVehicleInit|clearWeaponCargo|clearWeaponCargoGlobal|clearWeaponPool|clientOwner|closeDialog|closeDisplay|closeOverlay|collapseObjectTree|collect3DENHistory|collectiveRTD|combatMode|commandArtilleryFire|commandChat|commander|commandFire|commandFollow|commandFSM|commandGetOut|commandingMenu|commandMove|commandRadio|commandStop|commandSuppressiveFire|commandTarget|commandWatch|comment|commitOverlay|compile|compileFinal|completedFSM|composeText|configClasses|configFile|configHierarchy|configName|configNull|configProperties|configSourceAddonList|configSourceMod|configSourceModList|confirmSensorTarget|connectTerminalToUAV|controlNull|controlsGroupCtrl|copyFromClipboard|copyToClipboard|copyWaypoints|cos|count|countEnemy|countFriendly|countSide|countType|countUnknown|create3DENComposition|create3DENEntity|createAgent|createCenter|createDialog|createDiaryLink|createDiaryRecord|createDiarySubject|createDisplay|createGearDialog|createGroup|createGuardedPoint|createLocation|createMarker|createMarkerLocal|createMenu|createMine|createMissionDisplay|createMPCampaignDisplay|createSimpleObject|createSimpleTask|createSite|createSoundSource|createTask|createTeam|createTrigger|createUnit|createVehicle|createVehicleCrew|createVehicleLocal|crew|ctAddHeader|ctAddRow|ctClear|ctCurSel|ctData|ctFindHeaderRows|ctFindRowHeader|ctHeaderControls|ctHeaderCount|ctRemoveHeaders|ctRemoveRows|ctrlActivate|ctrlAddEventHandler|ctrlAngle|ctrlAutoScrollDelay|ctrlAutoScrollRewind|ctrlAutoScrollSpeed|ctrlChecked|ctrlClassName|ctrlCommit|ctrlCommitted|ctrlCreate|ctrlDelete|ctrlEnable|ctrlEnabled|ctrlFade|ctrlHTMLLoaded|ctrlIDC|ctrlIDD|ctrlMapAnimAdd|ctrlMapAnimClear|ctrlMapAnimCommit|ctrlMapAnimDone|ctrlMapCursor|ctrlMapMouseOver|ctrlMapScale|ctrlMapScreenToWorld|ctrlMapWorldToScreen|ctrlModel|ctrlModelDirAndUp|ctrlModelScale|ctrlParent|ctrlParentControlsGroup|ctrlPosition|ctrlRemoveAllEventHandlers|ctrlRemoveEventHandler|ctrlScale|ctrlSetActiveColor|ctrlSetAngle|ctrlSetAutoScrollDelay|ctrlSetAutoScrollRewind|ctrlSetAutoScrollSpeed|ctrlSetBackgroundColor|ctrlSetChecked|ctrlSetDisabledColor|ctrlSetEventHandler|ctrlSetFade|ctrlSetFocus|ctrlSetFont|ctrlSetFontH1|ctrlSetFontH1B|ctrlSetFontH2|ctrlSetFontH2B|ctrlSetFontH3|ctrlSetFontH3B|ctrlSetFontH4|ctrlSetFontH4B|ctrlSetFontH5|ctrlSetFontH5B|ctrlSetFontH6|ctrlSetFontH6B|ctrlSetFontHeight|ctrlSetFontHeightH1|ctrlSetFontHeightH2|ctrlSetFontHeightH3|ctrlSetFontHeightH4|ctrlSetFontHeightH5|ctrlSetFontHeightH6|ctrlSetFontHeightSecondary|ctrlSetFontP|ctrlSetFontPB|ctrlSetFontSecondary|ctrlSetForegroundColor|ctrlSetModel|ctrlSetModelDirAndUp|ctrlSetModelScale|ctrlSetPixelPrecision|ctrlSetPosition|ctrlSetScale|ctrlSetStructuredText|ctrlSetText|ctrlSetTextColor|ctrlSetTextColorSecondary|ctrlSetTextSecondary|ctrlSetTooltip|ctrlSetTooltipColorBox|ctrlSetTooltipColorShade|ctrlSetTooltipColorText|ctrlShow|ctrlShown|ctrlText|ctrlTextHeight|ctrlTextSecondary|ctrlTextWidth|ctrlType|ctrlVisible|ctRowControls|ctRowCount|ctSetCurSel|ctSetData|ctSetHeaderTemplate|ctSetRowTemplate|ctSetValue|ctValue|curatorAddons|curatorCamera|curatorCameraArea|curatorCameraAreaCeiling|curatorCoef|curatorEditableObjects|curatorEditingArea|curatorEditingAreaType|curatorMouseOver|curatorPoints|curatorRegisteredObjects|curatorSelected|curatorWaypointCost|current3DENOperation|currentChannel|currentCommand|currentMagazine|currentMagazineDetail|currentMagazineDetailTurret|currentMagazineTurret|currentMuzzle|currentNamespace|currentTask|currentTasks|currentThrowable|currentVisionMode|currentWaypoint|currentWeapon|currentWeaponMode|currentWeaponTurret|currentZeroing|cursorObject|cursorTarget|customChat|customRadio|cutFadeOut|cutObj|cutRsc|cutText|damage|date|dateToNumber|daytime|deActivateKey|debriefingText|debugFSM|debugLog|deg|delete3DENEntities|deleteAt|deleteCenter|deleteCollection|deleteEditorObject|deleteGroup|deleteGroupWhenEmpty|deleteIdentity|deleteLocation|deleteMarker|deleteMarkerLocal|deleteRange|deleteResources|deleteSite|deleteStatus|deleteTeam|deleteVehicle|deleteVehicleCrew|deleteWaypoint|detach|detectedMines|diag_activeMissionFSMs|diag_activeScripts|diag_activeSQFScripts|diag_activeSQSScripts|diag_captureFrame|diag_captureFrameToFile|diag_captureSlowFrame|diag_codePerformance|diag_drawMode|diag_dynamicSimulationEnd|diag_enable|diag_enabled|diag_fps|diag_fpsMin|diag_frameNo|diag_lightNewLoad|diag_list|diag_log|diag_logSlowFrame|diag_mergeConfigFile|diag_recordTurretLimits|diag_setLightNew|diag_tickTime|diag_toggle|dialog|diarySubjectExists|didJIP|didJIPOwner|difficulty|difficultyEnabled|difficultyEnabledRTD|difficultyOption|direction|directSay|disableAI|disableCollisionWith|disableConversation|disableDebriefingStats|disableMapIndicators|disableNVGEquipment|disableRemoteSensors|disableSerialization|disableTIEquipment|disableUAVConnectability|disableUserInput|displayAddEventHandler|displayCtrl|displayNull|displayParent|displayRemoveAllEventHandlers|displayRemoveEventHandler|displaySetEventHandler|dissolveTeam|distance|distance2D|distanceSqr|distributionRegion|do3DENAction|doArtilleryFire|doFire|doFollow|doFSM|doGetOut|doMove|doorPhase|doStop|doSuppressiveFire|doTarget|doWatch|drawArrow|drawEllipse|drawIcon|drawIcon3D|drawLine|drawLine3D|drawLink|drawLocation|drawPolygon|drawRectangle|drawTriangle|driver|drop|dynamicSimulationDistance|dynamicSimulationDistanceCoef|dynamicSimulationEnabled|dynamicSimulationSystemEnabled|east|edit3DENMissionAttributes|editObject|editorSetEventHandler|effectiveCommander|emptyPositions|enableAI|enableAIFeature|enableAimPrecision|enableAttack|enableAudioFeature|enableAutoStartUpRTD|enableAutoTrimRTD|enableCamShake|enableCaustics|enableChannel|enableCollisionWith|enableCopilot|enableDebriefingStats|enableDiagLegend|enableDynamicSimulation|enableDynamicSimulationSystem|enableEndDialog|enableEngineArtillery|enableEnvironment|enableFatigue|enableGunLights|enableInfoPanelComponent|enableIRLasers|enableMimics|enablePersonTurret|enableRadio|enableReload|enableRopeAttach|enableSatNormalOnDetail|enableSaving|enableSentences|enableSimulation|enableSimulationGlobal|enableStamina|enableStressDamage|enableTeamSwitch|enableTraffic|enableUAVConnectability|enableUAVWaypoints|enableVehicleCargo|enableVehicleSensor|enableWeaponDisassembly|endl|endLoadingScreen|endMission|engineOn|enginesIsOnRTD|enginesPowerRTD|enginesRpmRTD|enginesTorqueRTD|entities|environmentEnabled|estimatedEndServerTime|estimatedTimeLeft|evalObjectArgument|everyBackpack|everyContainer|exec|execEditorScript|exp|expectedDestination|exportJIPMessages|eyeDirection|eyePos|face|faction|fadeMusic|fadeRadio|fadeSound|fadeSpeech|failMission|fillWeaponsFromPool|find|findCover|findDisplay|findEditorObject|findEmptyPosition|findEmptyPositionReady|findIf|findNearestEnemy|finishMissionInit|finite|fire|fireAtTarget|firstBackpack|flag|flagAnimationPhase|flagOwner|flagSide|flagTexture|fleeing|floor|flyInHeight|flyInHeightASL|fog|fogForecast|fogParams|forceAddUniform|forceAtPositionRTD|forcedMap|forceEnd|forceFlagTexture|forceFollowRoad|forceGeneratorRTD|forceMap|forceRespawn|forceSpeed|forceWalk|forceWeaponFire|forceWeatherChange|forgetTarget|format|formation|formationDirection|formationLeader|formationMembers|formationPosition|formationTask|formatText|formLeader|freeLook|fromEditor|fuel|fullCrew|gearIDCAmmoCount|gearSlotAmmoCount|gearSlotData|get3DENActionState|get3DENAttribute|get3DENCamera|get3DENConnections|get3DENEntity|get3DENEntityID|get3DENGrid|get3DENIconsVisible|get3DENLayerEntities|get3DENLinesVisible|get3DENMissionAttribute|get3DENMouseOver|get3DENSelected|getAimingCoef|getAllEnvSoundControllers|getAllHitPointsDamage|getAllOwnedMines|getAllSoundControllers|getAmmoCargo|getAnimAimPrecision|getAnimSpeedCoef|getArray|getArtilleryAmmo|getArtilleryComputerSettings|getArtilleryETA|getAssignedCuratorLogic|getAssignedCuratorUnit|getBackpackCargo|getBleedingRemaining|getBurningValue|getCameraViewDirection|getCargoIndex|getCenterOfMass|getClientState|getClientStateNumber|getCompatiblePylonMagazines|getConnectedUAV|getContainerMaxLoad|getCursorObjectParams|getCustomAimCoef|getDammage|getDescription|getDir|getDirVisual|getDLCAssetsUsage|getDLCAssetsUsageByName|getDLCs|getDLCUsageTime|getEditorCamera|getEditorMode|getEditorObjectScope|getElevationOffset|getEngineTargetRpmRTD|getEnvSoundController|getFatigue|getFieldManualStartPage|getForcedFlagTexture|getFriend|getFSMVariable|getFuelCargo|getGroupIcon|getGroupIconParams|getGroupIcons|getHideFrom|getHit|getHitIndex|getHitPointDamage|getItemCargo|getMagazineCargo|getMarkerColor|getMarkerPos|getMarkerSize|getMarkerType|getMass|getMissionConfig|getMissionConfigValue|getMissionDLCs|getMissionLayerEntities|getMissionLayers|getModelInfo|getMousePosition|getMusicPlayedTime|getNumber|getObjectArgument|getObjectChildren|getObjectDLC|getObjectMaterials|getObjectProxy|getObjectTextures|getObjectType|getObjectViewDistance|getOxygenRemaining|getPersonUsedDLCs|getPilotCameraDirection|getPilotCameraPosition|getPilotCameraRotation|getPilotCameraTarget|getPlateNumber|getPlayerChannel|getPlayerScores|getPlayerUID|getPlayerUIDOld|getPos|getPosASL|getPosASLVisual|getPosASLW|getPosATL|getPosATLVisual|getPosVisual|getPosWorld|getPylonMagazines|getRelDir|getRelPos|getRemoteSensorsDisabled|getRepairCargo|getResolution|getRotorBrakeRTD|getShadowDistance|getShotParents|getSlingLoad|getSoundController|getSoundControllerResult|getSpeed|getStamina|getStatValue|getSuppression|getTerrainGrid|getTerrainHeightASL|getText|getTotalDLCUsageTime|getTrimOffsetRTD|getUnitLoadout|getUnitTrait|getUserMFDText|getUserMFDValue|getVariable|getVehicleCargo|getWeaponCargo|getWeaponSway|getWingsOrientationRTD|getWingsPositionRTD|getWPPos|glanceAt|globalChat|globalRadio|goggles|group|groupChat|groupFromNetId|groupIconSelectable|groupIconsVisible|groupId|groupOwner|groupRadio|groupSelectedUnits|groupSelectUnit|grpNull|gunner|gusts|halt|handgunItems|handgunMagazine|handgunWeapon|handsHit|hasInterface|hasPilotCamera|hasWeapon|hcAllGroups|hcGroupParams|hcLeader|hcRemoveAllGroups|hcRemoveGroup|hcSelected|hcSelectGroup|hcSetGroup|hcShowBar|hcShownBar|headgear|hideBody|hideObject|hideObjectGlobal|hideSelection|hint|hintC|hintCadet|hintSilent|hmd|hostMission|htmlLoad|HUDMovementLevels|humidity|image|importAllGroups|importance|in|inArea|inAreaArray|incapacitatedState|independent|inflame|inflamed|infoPanel|infoPanelComponentEnabled|infoPanelComponents|infoPanels|inGameUISetEventHandler|inheritsFrom|initAmbientLife|inPolygon|inputAction|inRangeOfArtillery|insertEditorObject|intersect|is3DEN|is3DENMultiplayer|isAbleToBreathe|isAgent|isAimPrecisionEnabled|isArray|isAutoHoverOn|isAutonomous|isAutoStartUpEnabledRTD|isAutotest|isAutoTrimOnRTD|isBleeding|isBurning|isClass|isCollisionLightOn|isCopilotEnabled|isDamageAllowed|isDedicated|isDLCAvailable|isEngineOn|isEqualTo|isEqualType|isEqualTypeAll|isEqualTypeAny|isEqualTypeArray|isEqualTypeParams|isFilePatchingEnabled|isFlashlightOn|isFlatEmpty|isForcedWalk|isFormationLeader|isGroupDeletedWhenEmpty|isHidden|isInRemainsCollector|isInstructorFigureEnabled|isIRLaserOn|isKeyActive|isKindOf|isLaserOn|isLightOn|isLocalized|isManualFire|isMarkedForCollection|isMultiplayer|isMultiplayerSolo|isNil|isNull|isNumber|isObjectHidden|isObjectRTD|isOnRoad|isPipEnabled|isPlayer|isRealTime|isRemoteExecuted|isRemoteExecutedJIP|isServer|isShowing3DIcons|isSimpleObject|isSprintAllowed|isStaminaEnabled|isSteamMission|isStreamFriendlyUIEnabled|isStressDamageEnabled|isText|isTouchingGround|isTurnedOut|isTutHintsEnabled|isUAVConnectable|isUAVConnected|isUIContext|isUniformAllowed|isVehicleCargo|isVehicleRadarOn|isVehicleSensorEnabled|isWalking|isWeaponDeployed|isWeaponRested|itemCargo|items|itemsWithMagazines|join|joinAs|joinAsSilent|joinSilent|joinString|kbAddDatabase|kbAddDatabaseTargets|kbAddTopic|kbHasTopic|kbReact|kbRemoveTopic|kbTell|kbWasSaid|keyImage|keyName|knowsAbout|land|landAt|landResult|language|laserTarget|lbAdd|lbClear|lbColor|lbColorRight|lbCurSel|lbData|lbDelete|lbIsSelected|lbPicture|lbPictureRight|lbSelection|lbSetColor|lbSetColorRight|lbSetCurSel|lbSetData|lbSetPicture|lbSetPictureColor|lbSetPictureColorDisabled|lbSetPictureColorSelected|lbSetPictureRight|lbSetPictureRightColor|lbSetPictureRightColorDisabled|lbSetPictureRightColorSelected|lbSetSelectColor|lbSetSelectColorRight|lbSetSelected|lbSetText|lbSetTextRight|lbSetTooltip|lbSetValue|lbSize|lbSort|lbSortByValue|lbText|lbTextRight|lbValue|leader|leaderboardDeInit|leaderboardGetRows|leaderboardInit|leaderboardRequestRowsFriends|leaderboardRequestRowsGlobal|leaderboardRequestRowsGlobalAroundUser|leaderboardsRequestUploadScore|leaderboardsRequestUploadScoreKeepBest|leaderboardState|leaveVehicle|libraryCredits|libraryDisclaimers|lifeState|lightAttachObject|lightDetachObject|lightIsOn|lightnings|limitSpeed|linearConversion|lineBreak|lineIntersects|lineIntersectsObjs|lineIntersectsSurfaces|lineIntersectsWith|linkItem|list|listObjects|listRemoteTargets|listVehicleSensors|ln|lnbAddArray|lnbAddColumn|lnbAddRow|lnbClear|lnbColor|lnbColorRight|lnbCurSelRow|lnbData|lnbDeleteColumn|lnbDeleteRow|lnbGetColumnsPosition|lnbPicture|lnbPictureRight|lnbSetColor|lnbSetColorRight|lnbSetColumnsPos|lnbSetCurSelRow|lnbSetData|lnbSetPicture|lnbSetPictureColor|lnbSetPictureColorRight|lnbSetPictureColorSelected|lnbSetPictureColorSelectedRight|lnbSetPictureRight|lnbSetText|lnbSetTextRight|lnbSetValue|lnbSize|lnbSort|lnbSortByValue|lnbText|lnbTextRight|lnbValue|load|loadAbs|loadBackpack|loadFile|loadGame|loadIdentity|loadMagazine|loadOverlay|loadStatus|loadUniform|loadVest|local|localize|locationNull|locationPosition|lock|lockCameraTo|lockCargo|lockDriver|locked|lockedCargo|lockedDriver|lockedTurret|lockIdentity|lockTurret|lockWP|log|logEntities|logNetwork|logNetworkTerminate|lookAt|lookAtPos|magazineCargo|magazines|magazinesAllTurrets|magazinesAmmo|magazinesAmmoCargo|magazinesAmmoFull|magazinesDetail|magazinesDetailBackpack|magazinesDetailUniform|magazinesDetailVest|magazinesTurret|magazineTurretAmmo|mapAnimAdd|mapAnimClear|mapAnimCommit|mapAnimDone|mapCenterOnCamera|mapGridPosition|markAsFinishedOnSteam|markerAlpha|markerBrush|markerColor|markerDir|markerPos|markerShape|markerSize|markerText|markerType|max|members|menuAction|menuAdd|menuChecked|menuClear|menuCollapse|menuData|menuDelete|menuEnable|menuEnabled|menuExpand|menuHover|menuPicture|menuSetAction|menuSetCheck|menuSetData|menuSetPicture|menuSetValue|menuShortcut|menuShortcutText|menuSize|menuSort|menuText|menuURL|menuValue|min|mineActive|mineDetectedBy|missionConfigFile|missionDifficulty|missionName|missionNamespace|missionStart|missionVersion|modelToWorld|modelToWorldVisual|modelToWorldVisualWorld|modelToWorldWorld|modParams|moonIntensity|moonPhase|morale|move|move3DENCamera|moveInAny|moveInCargo|moveInCommander|moveInDriver|moveInGunner|moveInTurret|moveObjectToEnd|moveOut|moveTime|moveTo|moveToCompleted|moveToFailed|musicVolume|name|nameSound|nearEntities|nearestBuilding|nearestLocation|nearestLocations|nearestLocationWithDubbing|nearestObject|nearestObjects|nearestTerrainObjects|nearObjects|nearObjectsReady|nearRoads|nearSupplies|nearTargets|needReload|netId|netObjNull|newOverlay|nextMenuItemIndex|nextWeatherChange|nMenuItems|numberOfEnginesRTD|numberToDate|objectCurators|objectFromNetId|objectParent|objNull|objStatus|onBriefingGear|onBriefingGroup|onBriefingNotes|onBriefingPlan|onBriefingTeamSwitch|onCommandModeChanged|onDoubleClick|onEachFrame|onGroupIconClick|onGroupIconOverEnter|onGroupIconOverLeave|onHCGroupSelectionChanged|onMapSingleClick|onPlayerConnected|onPlayerDisconnected|onPreloadFinished|onPreloadStarted|onShowNewObject|onTeamSwitch|openCuratorInterface|openDLCPage|openDSInterface|openMap|openSteamApp|openYoutubeVideo|opfor|orderGetIn|overcast|overcastForecast|owner|param|params|parseNumber|parseSimpleArray|parseText|parsingNamespace|particlesQuality|pi|pickWeaponPool|pitch|pixelGrid|pixelGridBase|pixelGridNoUIScale|pixelH|pixelW|playableSlotsNumber|playableUnits|playAction|playActionNow|player|playerRespawnTime|playerSide|playersNumber|playGesture|playMission|playMove|playMoveNow|playMusic|playScriptedMission|playSound|playSound3D|position|positionCameraToWorld|posScreenToWorld|posWorldToScreen|ppEffectAdjust|ppEffectCommit|ppEffectCommitted|ppEffectCreate|ppEffectDestroy|ppEffectEnable|ppEffectEnabled|ppEffectForceInNVG|precision|preloadCamera|preloadObject|preloadSound|preloadTitleObj|preloadTitleRsc|primaryWeapon|primaryWeaponItems|primaryWeaponMagazine|priority|processDiaryLink|processInitCommands|productVersion|profileName|profileNamespace|profileNameSteam|progressLoadingScreen|progressPosition|progressSetPosition|publicVariable|publicVariableClient|publicVariableServer|pushBack|pushBackUnique|putWeaponPool|queryItemsPool|queryMagazinePool|queryWeaponPool|rad|radioChannelAdd|radioChannelCreate|radioChannelRemove|radioChannelSetCallSign|radioChannelSetLabel|radioVolume|rain|rainbow|random|rank|rankId|rating|rectangular|registeredTasks|registerTask|reload|reloadEnabled|remoteControl|remoteExec|remoteExecCall|remoteExecutedOwner|remove3DENConnection|remove3DENEventHandler|remove3DENLayer|removeAction|removeAll3DENEventHandlers|removeAllActions|removeAllAssignedItems|removeAllContainers|removeAllCuratorAddons|removeAllCuratorCameraAreas|removeAllCuratorEditingAreas|removeAllEventHandlers|removeAllHandgunItems|removeAllItems|removeAllItemsWithMagazines|removeAllMissionEventHandlers|removeAllMPEventHandlers|removeAllMusicEventHandlers|removeAllOwnedMines|removeAllPrimaryWeaponItems|removeAllWeapons|removeBackpack|removeBackpackGlobal|removeCuratorAddons|removeCuratorCameraArea|removeCuratorEditableObjects|removeCuratorEditingArea|removeDrawIcon|removeDrawLinks|removeEventHandler|removeFromRemainsCollector|removeGoggles|removeGroupIcon|removeHandgunItem|removeHeadgear|removeItem|removeItemFromBackpack|removeItemFromUniform|removeItemFromVest|removeItems|removeMagazine|removeMagazineGlobal|removeMagazines|removeMagazinesTurret|removeMagazineTurret|removeMenuItem|removeMissionEventHandler|removeMPEventHandler|removeMusicEventHandler|removeOwnedMine|removePrimaryWeaponItem|removeSecondaryWeaponItem|removeSimpleTask|removeSwitchableUnit|removeTeamMember|removeUniform|removeVest|removeWeapon|removeWeaponAttachmentCargo|removeWeaponCargo|removeWeaponGlobal|removeWeaponTurret|reportRemoteTarget|requiredVersion|resetCamShake|resetSubgroupDirection|resistance|resize|resources|respawnVehicle|restartEditorCamera|reveal|revealMine|reverse|reversedMouseY|roadAt|roadsConnectedTo|roleDescription|ropeAttachedObjects|ropeAttachedTo|ropeAttachEnabled|ropeAttachTo|ropeCreate|ropeCut|ropeDestroy|ropeDetach|ropeEndPosition|ropeLength|ropes|ropeUnwind|ropeUnwound|rotorsForcesRTD|rotorsRpmRTD|round|runInitScript|safeZoneH|safeZoneW|safeZoneWAbs|safeZoneX|safeZoneXAbs|safeZoneY|save3DENInventory|saveGame|saveIdentity|saveJoysticks|saveOverlay|saveProfileNamespace|saveStatus|saveVar|savingEnabled|say|say2D|say3D|score|scoreSide|screenshot|screenToWorld|scriptDone|scriptName|scriptNull|scudState|secondaryWeapon|secondaryWeaponItems|secondaryWeaponMagazine|select|selectBestPlaces|selectDiarySubject|selectedEditorObjects|selectEditorObject|selectionNames|selectionPosition|selectLeader|selectMax|selectMin|selectNoPlayer|selectPlayer|selectRandom|selectRandomWeighted|selectWeapon|selectWeaponTurret|sendAUMessage|sendSimpleCommand|sendTask|sendTaskResult|sendUDPMessage|serverCommand|serverCommandAvailable|serverCommandExecutable|serverName|serverTime|set|set3DENAttribute|set3DENAttributes|set3DENGrid|set3DENIconsVisible|set3DENLayer|set3DENLinesVisible|set3DENLogicType|set3DENMissionAttribute|set3DENMissionAttributes|set3DENModelsVisible|set3DENObjectType|set3DENSelected|setAccTime|setActualCollectiveRTD|setAirplaneThrottle|setAirportSide|setAmmo|setAmmoCargo|setAmmoOnPylon|setAnimSpeedCoef|setAperture|setApertureNew|setArmoryPoints|setAttributes|setAutonomous|setBehaviour|setBleedingRemaining|setBrakesRTD|setCameraInterest|setCamShakeDefParams|setCamShakeParams|setCamUseTI|setCaptive|setCenterOfMass|setCollisionLight|setCombatMode|setCompassOscillation|setConvoySeparation|setCuratorCameraAreaCeiling|setCuratorCoef|setCuratorEditingAreaType|setCuratorWaypointCost|setCurrentChannel|setCurrentTask|setCurrentWaypoint|setCustomAimCoef|setCustomWeightRTD|setDamage|setDammage|setDate|setDebriefingText|setDefaultCamera|setDestination|setDetailMapBlendPars|setDir|setDirection|setDrawIcon|setDriveOnPath|setDropInterval|setDynamicSimulationDistance|setDynamicSimulationDistanceCoef|setEditorMode|setEditorObjectScope|setEffectCondition|setEngineRpmRTD|setFace|setFaceAnimation|setFatigue|setFeatureType|setFlagAnimationPhase|setFlagOwner|setFlagSide|setFlagTexture|setFog|setForceGeneratorRTD|setFormation|setFormationTask|setFormDir|setFriend|setFromEditor|setFSMVariable|setFuel|setFuelCargo|setGroupIcon|setGroupIconParams|setGroupIconsSelectable|setGroupIconsVisible|setGroupId|setGroupIdGlobal|setGroupOwner|setGusts|setHideBehind|setHit|setHitIndex|setHitPointDamage|setHorizonParallaxCoef|setHUDMovementLevels|setIdentity|setImportance|setInfoPanel|setLeader|setLightAmbient|setLightAttenuation|setLightBrightness|setLightColor|setLightDayLight|setLightFlareMaxDistance|setLightFlareSize|setLightIntensity|setLightnings|setLightUseFlare|setLocalWindParams|setMagazineTurretAmmo|setMarkerAlpha|setMarkerAlphaLocal|setMarkerBrush|setMarkerBrushLocal|setMarkerColor|setMarkerColorLocal|setMarkerDir|setMarkerDirLocal|setMarkerPos|setMarkerPosLocal|setMarkerShape|setMarkerShapeLocal|setMarkerSize|setMarkerSizeLocal|setMarkerText|setMarkerTextLocal|setMarkerType|setMarkerTypeLocal|setMass|setMimic|setMousePosition|setMusicEffect|setMusicEventHandler|setName|setNameSound|setObjectArguments|setObjectMaterial|setObjectMaterialGlobal|setObjectProxy|setObjectTexture|setObjectTextureGlobal|setObjectViewDistance|setOvercast|setOwner|setOxygenRemaining|setParticleCircle|setParticleClass|setParticleFire|setParticleParams|setParticleRandom|setPilotCameraDirection|setPilotCameraRotation|setPilotCameraTarget|setPilotLight|setPiPEffect|setPitch|setPlateNumber|setPlayable|setPlayerRespawnTime|setPos|setPosASL|setPosASL2|setPosASLW|setPosATL|setPosition|setPosWorld|setPylonLoadOut|setPylonsPriority|setRadioMsg|setRain|setRainbow|setRandomLip|setRank|setRectangular|setRepairCargo|setRotorBrakeRTD|setShadowDistance|setShotParents|setSide|setSimpleTaskAlwaysVisible|setSimpleTaskCustomData|setSimpleTaskDescription|setSimpleTaskDestination|setSimpleTaskTarget|setSimpleTaskType|setSimulWeatherLayers|setSize|setSkill|setSlingLoad|setSoundEffect|setSpeaker|setSpeech|setSpeedMode|setStamina|setStaminaScheme|setStatValue|setSuppression|setSystemOfUnits|setTargetAge|setTaskMarkerOffset|setTaskResult|setTaskState|setTerrainGrid|setText|setTimeMultiplier|setTitleEffect|setToneMapping|setToneMappingParams|setTrafficDensity|setTrafficDistance|setTrafficGap|setTrafficSpeed|setTriggerActivation|setTriggerArea|setTriggerStatements|setTriggerText|setTriggerTimeout|setTriggerType|setType|setUnconscious|setUnitAbility|setUnitLoadout|setUnitPos|setUnitPosWeak|setUnitRank|setUnitRecoilCoefficient|setUnitTrait|setUnloadInCombat|setUserActionText|setUserMFDText|setUserMFDValue|setVariable|setVectorDir|setVectorDirAndUp|setVectorUp|setVehicleAmmo|setVehicleAmmoDef|setVehicleArmor|setVehicleCargo|setVehicleId|setVehicleInit|setVehicleLock|setVehiclePosition|setVehicleRadar|setVehicleReceiveRemoteTargets|setVehicleReportOwnPosition|setVehicleReportRemoteTargets|setVehicleTIPars|setVehicleVarName|setVelocity|setVelocityModelSpace|setVelocityTransformation|setViewDistance|setVisibleIfTreeCollapsed|setWantedRpmRTD|setWaves|setWaypointBehaviour|setWaypointCombatMode|setWaypointCompletionRadius|setWaypointDescription|setWaypointForceBehaviour|setWaypointFormation|setWaypointHousePosition|setWaypointLoiterRadius|setWaypointLoiterType|setWaypointName|setWaypointPosition|setWaypointScript|setWaypointSpeed|setWaypointStatements|setWaypointTimeout|setWaypointType|setWaypointVisible|setWeaponReloadingTime|setWind|setWindDir|setWindForce|setWindStr|setWingForceScaleRTD|setWPPos|show3DIcons|showChat|showCinemaBorder|showCommandingMenu|showCompass|showCuratorCompass|showGPS|showHUD|showLegend|showMap|shownArtilleryComputer|shownChat|shownCompass|shownCuratorCompass|showNewEditorObject|shownGPS|shownHUD|shownMap|shownPad|shownRadio|shownScoretable|shownUAVFeed|shownWarrant|shownWatch|showPad|showRadio|showScoretable|showSubtitles|showUAVFeed|showWarrant|showWatch|showWaypoint|showWaypoints|side|sideAmbientLife|sideChat|sideEmpty|sideEnemy|sideFriendly|sideLogic|sideRadio|sideUnknown|simpleTasks|simulationEnabled|simulCloudDensity|simulCloudOcclusion|simulInClouds|simulWeatherSync|sin|size|sizeOf|skill|skillFinal|skipTime|sleep|sliderPosition|sliderRange|sliderSetPosition|sliderSetRange|sliderSetSpeed|sliderSpeed|slingLoadAssistantShown|soldierMagazines|someAmmo|sort|soundVolume|speaker|speed|speedMode|splitString|sqrt|squadParams|stance|startLoadingScreen|stop|stopEngineRTD|stopped|str|sunOrMoon|supportInfo|suppressFor|surfaceIsWater|surfaceNormal|surfaceType|swimInDepth|switchableUnits|switchAction|switchCamera|switchGesture|switchLight|switchMove|synchronizedObjects|synchronizedTriggers|synchronizedWaypoints|synchronizeObjectsAdd|synchronizeObjectsRemove|synchronizeTrigger|synchronizeWaypoint|systemChat|systemOfUnits|tan|targetKnowledge|targets|targetsAggregate|targetsQuery|taskAlwaysVisible|taskChildren|taskCompleted|taskCustomData|taskDescription|taskDestination|taskHint|taskMarkerOffset|taskNull|taskParent|taskResult|taskState|taskType|teamMember|teamMemberNull|teamName|teams|teamSwitch|teamSwitchEnabled|teamType|terminate|terrainIntersect|terrainIntersectASL|terrainIntersectAtASL|text|textLog|textLogFormat|tg|time|timeMultiplier|titleCut|titleFadeOut|titleObj|titleRsc|titleText|toArray|toFixed|toLower|toString|toUpper|triggerActivated|triggerActivation|triggerArea|triggerAttachedVehicle|triggerAttachObject|triggerAttachVehicle|triggerDynamicSimulation|triggerStatements|triggerText|triggerTimeout|triggerTimeoutCurrent|triggerType|turretLocal|turretOwner|turretUnit|tvAdd|tvClear|tvCollapse|tvCollapseAll|tvCount|tvCurSel|tvData|tvDelete|tvExpand|tvExpandAll|tvPicture|tvPictureRight|tvSetColor|tvSetCurSel|tvSetData|tvSetPicture|tvSetPictureColor|tvSetPictureColorDisabled|tvSetPictureColorSelected|tvSetPictureRight|tvSetPictureRightColor|tvSetPictureRightColorDisabled|tvSetPictureRightColorSelected|tvSetSelectColor|tvSetText|tvSetTooltip|tvSetValue|tvSort|tvSortByValue|tvText|tvTooltip|tvValue|type|typeName|typeOf|UAVControl|uiNamespace|uiSleep|unassignCurator|unassignItem|unassignTeam|unassignVehicle|underwater|uniform|uniformContainer|uniformItems|uniformMagazines|unitAddons|unitAimPosition|unitAimPositionVisual|unitBackpack|unitIsUAV|unitPos|unitReady|unitRecoilCoefficient|units|unitsBelowHeight|unlinkItem|unlockAchievement|unregisterTask|updateDrawIcon|updateMenuItem|updateObjectTree|useAIOperMapObstructionTest|useAISteeringComponent|useAudioTimeForMoves|userInputDisabled|vectorAdd|vectorCos|vectorCrossProduct|vectorDiff|vectorDir|vectorDirVisual|vectorDistance|vectorDistanceSqr|vectorDotProduct|vectorFromTo|vectorMagnitude|vectorMagnitudeSqr|vectorModelToWorld|vectorModelToWorldVisual|vectorMultiply|vectorNormalized|vectorUp|vectorUpVisual|vectorWorldToModel|vectorWorldToModelVisual|vehicle|vehicleCargoEnabled|vehicleChat|vehicleRadio|vehicleReceiveRemoteTargets|vehicleReportOwnPosition|vehicleReportRemoteTargets|vehicles|vehicleVarName|velocity|velocityModelSpace|verifySignature|vest|vestContainer|vestItems|vestMagazines|viewDistance|visibleCompass|visibleGPS|visibleMap|visiblePosition|visiblePositionASL|visibleScoretable|visibleWatch|waitUntil|waves|waypointAttachedObject|waypointAttachedVehicle|waypointAttachObject|waypointAttachVehicle|waypointBehaviour|waypointCombatMode|waypointCompletionRadius|waypointDescription|waypointForceBehaviour|waypointFormation|waypointHousePosition|waypointLoiterRadius|waypointLoiterType|waypointName|waypointPosition|waypoints|waypointScript|waypointsEnabledUAV|waypointShow|waypointSpeed|waypointStatements|waypointTimeout|waypointTimeoutCurrent|waypointType|waypointVisible|weaponAccessories|weaponAccessoriesCargo|weaponCargo|weaponDirection|weaponInertia|weaponLowered|weapons|weaponsItems|weaponsItemsCargo|weaponState|weaponsTurret|weightRTD|west|WFSideText|wind|windDir|windRTD|windStr|wingsForcesRTD|worldName|worldSize|worldToModel|worldToModelVisual|worldToScreen)\b/i,number:/(?:\$|\b0x)[\da-f]+\b|(?:\B\.\d+|\b\d+(?:\.\d+)?)(?:e[+-]?\d+)?\b/i,operator:/##|>>|&&|\|\||[!=<>]=?|[-+*/%#^]|\b(?:and|mod|not|or)\b/i,"magic-variable":{pattern:/\b(?:this|thisList|thisTrigger|_exception|_fnc_scriptName|_fnc_scriptNameParent|_forEachIndex|_this|_thisEventHandler|_thisFSM|_thisScript|_x)\b/i,alias:"keyword"},constant:/\bDIK(?:_[a-z\d]+)+\b/i}),t.languages.insertBefore("sqf","string",{macro:{pattern:/(^[ \t]*)#[a-z](?:[^\r\n\\]|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{directive:{pattern:/#[a-z]+\b/i,alias:"keyword"},comment:t.languages.sqf.comment}}}),delete t.languages.sqf["class-name"]}return xg}var Ag,bT;function Jz(){if(bT)return Ag;bT=1,Ag=e,e.displayName="squirrel",e.aliases=[];function e(t){t.languages.squirrel=t.languages.extend("clike",{comment:[t.languages.clike.comment[0],{pattern:/(^|[^\\:])(?:\/\/|#).*/,lookbehind:!0,greedy:!0}],string:{pattern:/(^|[^\\"'@])(?:@"(?:[^"]|"")*"(?!")|"(?:[^\\\r\n"]|\\.)*")/,lookbehind:!0,greedy:!0},"class-name":{pattern:/(\b(?:class|enum|extends|instanceof)\s+)\w+(?:\.\w+)*/,lookbehind:!0,inside:{punctuation:/\./}},keyword:/\b(?:__FILE__|__LINE__|base|break|case|catch|class|clone|const|constructor|continue|default|delete|else|enum|extends|for|foreach|function|if|in|instanceof|local|null|resume|return|static|switch|this|throw|try|typeof|while|yield)\b/,number:/\b(?:0x[0-9a-fA-F]+|\d+(?:\.(?:\d+|[eE][+-]?\d+))?)\b/,operator:/\+\+|--|<=>|<[-<]|>>>?|&&?|\|\|?|[-+*/%!=<>]=?|[~^]|::?/,punctuation:/[(){}\[\],;.]/}),t.languages.insertBefore("squirrel","string",{char:{pattern:/(^|[^\\"'])'(?:[^\\']|\\(?:[xuU][0-9a-fA-F]{0,8}|[\s\S]))'/,lookbehind:!0,greedy:!0}}),t.languages.insertBefore("squirrel","operator",{"attribute-punctuation":{pattern:/<\/|\/>/,alias:"important"},lambda:{pattern:/@(?=\()/,alias:"operator"}})}return Ag}var Rg,yT;function e4(){if(yT)return Rg;yT=1,Rg=e,e.displayName="stan",e.aliases=[];function e(t){(function(n){var i=/\b(?:algebra_solver|algebra_solver_newton|integrate_1d|integrate_ode|integrate_ode_bdf|integrate_ode_rk45|map_rect|ode_(?:adams|bdf|ckrk|rk45)(?:_tol)?|ode_adjoint_tol_ctl|reduce_sum|reduce_sum_static)\b/;n.languages.stan={comment:/\/\/.*|\/\*[\s\S]*?\*\/|#(?!include).*/,string:{pattern:/"[\x20\x21\x23-\x5B\x5D-\x7E]*"/,greedy:!0},directive:{pattern:/^([ \t]*)#include\b.*/m,lookbehind:!0,alias:"property"},"function-arg":{pattern:RegExp("("+i.source+/\s*\(\s*/.source+")"+/[a-zA-Z]\w*/.source),lookbehind:!0,alias:"function"},constraint:{pattern:/(\b(?:int|matrix|real|row_vector|vector)\s*)<[^<>]*>/,lookbehind:!0,inside:{expression:{pattern:/(=\s*)\S(?:\S|\s+(?!\s))*?(?=\s*(?:>$|,\s*\w+\s*=))/,lookbehind:!0,inside:null},property:/\b[a-z]\w*(?=\s*=)/i,operator:/=/,punctuation:/^<|>$|,/}},keyword:[{pattern:/\bdata(?=\s*\{)|\b(?:functions|generated|model|parameters|quantities|transformed)\b/,alias:"program-block"},/\b(?:array|break|cholesky_factor_corr|cholesky_factor_cov|complex|continue|corr_matrix|cov_matrix|data|else|for|if|in|increment_log_prob|int|matrix|ordered|positive_ordered|print|real|reject|return|row_vector|simplex|target|unit_vector|vector|void|while)\b/,i],function:/\b[a-z]\w*(?=\s*\()/i,number:/(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:E[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,boolean:/\b(?:false|true)\b/,operator:/<-|\.[*/]=?|\|\|?|&&|[!=<>+\-*/]=?|['^%~?:]/,punctuation:/[()\[\]{},;]/},n.languages.stan.constraint.inside.expression.inside=n.languages.stan})(t)}return Rg}var Ng,ET;function t4(){if(ET)return Ng;ET=1,Ng=e,e.displayName="stylus",e.aliases=[];function e(t){(function(n){var i={pattern:/(\b\d+)(?:%|[a-z]+)/,lookbehind:!0},o={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},l={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},url:{pattern:/\burl\((["']?).*?\1\)/i,greedy:!0},string:{pattern:/("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,greedy:!0},interpolation:null,func:null,important:/\B!(?:important|optional)\b/i,keyword:{pattern:/(^|\s+)(?:(?:else|for|if|return|unless)(?=\s|$)|@[\w-]+)/,lookbehind:!0},hexcode:/#[\da-f]{3,6}/i,color:[/\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\b/i,{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:i,number:o,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:i,boolean:/\b(?:false|true)\b/,operator:[/~|[+!\/%<>?=]=?|[-:]=|\*[*=]?|\.{2,3}|&&|\|\||\B-\B|\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\b/],number:o,punctuation:/[{}()\[\];:,]/};l.interpolation={pattern:/\{[^\r\n}:]+\}/,alias:"variable",inside:{delimiter:{pattern:/^\{|\}$/,alias:"punctuation"},rest:l}},l.func={pattern:/[\w-]+\([^)]*\).*/,inside:{function:/^[^(]+/,rest:l}},n.languages.stylus={"atrule-declaration":{pattern:/(^[ \t]*)@.+/m,lookbehind:!0,inside:{atrule:/^@[\w-]+/,rest:l}},"variable-declaration":{pattern:/(^[ \t]*)[\w$-]+\s*.?=[ \t]*(?:\{[^{}]*\}|\S.*|$)/m,lookbehind:!0,inside:{variable:/^\S+/,rest:l}},statement:{pattern:/(^[ \t]*)(?:else|for|if|return|unless)[ \t].+/m,lookbehind:!0,inside:{keyword:/^\S+/,rest:l}},"property-declaration":{pattern:/((?:^|\{)([ \t]*))(?:[\w-]|\{[^}\r\n]+\})+(?:\s*:\s*|[ \t]+)(?!\s)[^{\r\n]*(?:;|[^{\r\n,]$(?!(?:\r?\n|\r)(?:\{|\2[ \t])))/m,lookbehind:!0,inside:{property:{pattern:/^[^\s:]+/,inside:{interpolation:l.interpolation}},rest:l}},selector:{pattern:/(^[ \t]*)(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)(?:(?:\r?\n|\r)(?:\1(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)))*(?:,$|\{|(?=(?:\r?\n|\r)(?:\{|\1[ \t])))/m,lookbehind:!0,inside:{interpolation:l.interpolation,comment:l.comment,punctuation:/[{},]/}},func:l.func,string:l.string,comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0,greedy:!0},interpolation:l.interpolation,punctuation:/[{}()\[\];:.]/}})(t)}return Ng}var Cg,ST;function n4(){if(ST)return Cg;ST=1,Cg=e,e.displayName="swift",e.aliases=[];function e(t){t.languages.swift={comment:{pattern:/(^|[^\\:])(?:\/\/.*|\/\*(?:[^/*]|\/(?!\*)|\*(?!\/)|\/\*(?:[^*]|\*(?!\/))*\*\/)*\*\/)/,lookbehind:!0,greedy:!0},"string-literal":[{pattern:RegExp(/(^|[^"#])/.source+"(?:"+/"(?:\\(?:\((?:[^()]|\([^()]*\))*\)|\r\n|[^(])|[^\\\r\n"])*"/.source+"|"+/"""(?:\\(?:\((?:[^()]|\([^()]*\))*\)|[^(])|[^\\"]|"(?!""))*"""/.source+")"+/(?!["#])/.source),lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/(\\\()(?:[^()]|\([^()]*\))*(?=\))/,lookbehind:!0,inside:null},"interpolation-punctuation":{pattern:/^\)|\\\($/,alias:"punctuation"},punctuation:/\\(?=[\r\n])/,string:/[\s\S]+/}},{pattern:RegExp(/(^|[^"#])(#+)/.source+"(?:"+/"(?:\\(?:#+\((?:[^()]|\([^()]*\))*\)|\r\n|[^#])|[^\\\r\n])*?"/.source+"|"+/"""(?:\\(?:#+\((?:[^()]|\([^()]*\))*\)|[^#])|[^\\])*?"""/.source+")\\2"),lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/(\\#+\()(?:[^()]|\([^()]*\))*(?=\))/,lookbehind:!0,inside:null},"interpolation-punctuation":{pattern:/^\)|\\#+\($/,alias:"punctuation"},string:/[\s\S]+/}}],directive:{pattern:RegExp(/#/.source+"(?:"+(/(?:elseif|if)\b/.source+"(?:[ ]*"+/(?:![ \t]*)?(?:\b\w+\b(?:[ \t]*\((?:[^()]|\([^()]*\))*\))?|\((?:[^()]|\([^()]*\))*\))(?:[ \t]*(?:&&|\|\|))?/.source+")+")+"|"+/(?:else|endif)\b/.source+")"),alias:"property",inside:{"directive-name":/^#\w+/,boolean:/\b(?:false|true)\b/,number:/\b\d+(?:\.\d+)*\b/,operator:/!|&&|\|\||[<>]=?/,punctuation:/[(),]/}},literal:{pattern:/#(?:colorLiteral|column|dsohandle|file(?:ID|Literal|Path)?|function|imageLiteral|line)\b/,alias:"constant"},"other-directive":{pattern:/#\w+\b/,alias:"property"},attribute:{pattern:/@\w+/,alias:"atrule"},"function-definition":{pattern:/(\bfunc\s+)\w+/,lookbehind:!0,alias:"function"},label:{pattern:/\b(break|continue)\s+\w+|\b[a-zA-Z_]\w*(?=\s*:\s*(?:for|repeat|while)\b)/,lookbehind:!0,alias:"important"},keyword:/\b(?:Any|Protocol|Self|Type|actor|as|assignment|associatedtype|associativity|async|await|break|case|catch|class|continue|convenience|default|defer|deinit|didSet|do|dynamic|else|enum|extension|fallthrough|fileprivate|final|for|func|get|guard|higherThan|if|import|in|indirect|infix|init|inout|internal|is|isolated|lazy|left|let|lowerThan|mutating|none|nonisolated|nonmutating|open|operator|optional|override|postfix|precedencegroup|prefix|private|protocol|public|repeat|required|rethrows|return|right|safe|self|set|some|static|struct|subscript|super|switch|throw|throws|try|typealias|unowned|unsafe|var|weak|where|while|willSet)\b/,boolean:/\b(?:false|true)\b/,nil:{pattern:/\bnil\b/,alias:"constant"},"short-argument":/\$\d+\b/,omit:{pattern:/\b_\b/,alias:"keyword"},number:/\b(?:[\d_]+(?:\.[\de_]+)?|0x[a-f0-9_]+(?:\.[a-f0-9p_]+)?|0b[01_]+|0o[0-7_]+)\b/i,"class-name":/\b[A-Z](?:[A-Z_\d]*[a-z]\w*)?\b/,function:/\b[a-z_]\w*(?=\s*\()/i,constant:/\b(?:[A-Z_]{2,}|k[A-Z][A-Za-z_]+)\b/,operator:/[-+*/%=!<>&|^~?]+|\.[.\-+*/%=!<>&|^~?]+/,punctuation:/[{}[\]();,.:\\]/},t.languages.swift["string-literal"].forEach(function(n){n.inside.interpolation.inside=t.languages.swift})}return Cg}var Ig,vT;function r4(){if(vT)return Ig;vT=1,Ig=e,e.displayName="systemd",e.aliases=[];function e(t){(function(n){var i={pattern:/^[;#].*/m,greedy:!0},o=/"(?:[^\r\n"\\]|\\(?:[^\r]|\r\n?))*"(?!\S)/.source;n.languages.systemd={comment:i,section:{pattern:/^\[[^\n\r\[\]]*\](?=[ \t]*$)/m,greedy:!0,inside:{punctuation:/^\[|\]$/,"section-name":{pattern:/[\s\S]+/,alias:"selector"}}},key:{pattern:/^[^\s=]+(?=[ \t]*=)/m,greedy:!0,alias:"attr-name"},value:{pattern:RegExp(/(=[ \t]*(?!\s))/.source+"(?:"+o+`|(?=[^"\r +]))(?:`+(/[^\s\\]/.source+'|[ ]+(?:(?![ "])|'+o+")|"+/\\[\r\n]+(?:[#;].*[\r\n]+)*(?![#;])/.source)+")*"),lookbehind:!0,greedy:!0,alias:"attr-value",inside:{comment:i,quoted:{pattern:RegExp(/(^|\s)/.source+o),lookbehind:!0,greedy:!0},punctuation:/\\$/m,boolean:{pattern:/^(?:false|no|off|on|true|yes)$/,greedy:!0}}},punctuation:/=/}})(t)}return Ig}var Og,kT;function Eh(){if(kT)return Og;kT=1,Og=e,e.displayName="t4Templating",e.aliases=[];function e(t){(function(n){function i(l,u,c){return{pattern:RegExp("<#"+l+"[\\s\\S]*?#>"),alias:"block",inside:{delimiter:{pattern:RegExp("^<#"+l+"|#>$"),alias:"important"},content:{pattern:/[\s\S]+/,inside:u,alias:c}}}}function o(l){var u=n.languages[l],c="language-"+l;return{block:{pattern:/<#[\s\S]+?#>/,inside:{directive:i("@",{"attr-value":{pattern:/=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+)/,inside:{punctuation:/^=|^["']|["']$/}},keyword:/\b\w+(?=\s)/,"attr-name":/\b\w+/}),expression:i("=",u,c),"class-feature":i("\\+",u,c),standard:i("",u,c)}}}}n.languages["t4-templating"]=Object.defineProperty({},"createT4",{value:o})})(t)}return Og}var Lg,_T;function a4(){if(_T)return Lg;_T=1;var e=Eh(),t=ks();Lg=n,n.displayName="t4Cs",n.aliases=[];function n(i){i.register(e),i.register(t),i.languages.t4=i.languages["t4-cs"]=i.languages["t4-templating"].createT4("csharp")}return Lg}var Dg,wT;function aR(){if(wT)return Dg;wT=1;var e=eR();Dg=t,t.displayName="vbnet",t.aliases=[];function t(n){n.register(e),n.languages.vbnet=n.languages.extend("basic",{comment:[{pattern:/(?:!|REM\b).+/i,inside:{keyword:/^REM/i}},{pattern:/(^|[^\\:])'.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(^|[^"])"(?:""|[^"])*"(?!")/,lookbehind:!0,greedy:!0},keyword:/(?:\b(?:ADDHANDLER|ADDRESSOF|ALIAS|AND|ANDALSO|AS|BEEP|BLOAD|BOOLEAN|BSAVE|BYREF|BYTE|BYVAL|CALL(?: ABSOLUTE)?|CASE|CATCH|CBOOL|CBYTE|CCHAR|CDATE|CDBL|CDEC|CHAIN|CHAR|CHDIR|CINT|CLASS|CLEAR|CLNG|CLOSE|CLS|COBJ|COM|COMMON|CONST|CONTINUE|CSBYTE|CSHORT|CSNG|CSTR|CTYPE|CUINT|CULNG|CUSHORT|DATA|DATE|DECIMAL|DECLARE|DEF(?: FN| SEG|DBL|INT|LNG|SNG|STR)|DEFAULT|DELEGATE|DIM|DIRECTCAST|DO|DOUBLE|ELSE|ELSEIF|END|ENUM|ENVIRON|ERASE|ERROR|EVENT|EXIT|FALSE|FIELD|FILES|FINALLY|FOR(?: EACH)?|FRIEND|FUNCTION|GET|GETTYPE|GETXMLNAMESPACE|GLOBAL|GOSUB|GOTO|HANDLES|IF|IMPLEMENTS|IMPORTS|IN|INHERITS|INPUT|INTEGER|INTERFACE|IOCTL|IS|ISNOT|KEY|KILL|LET|LIB|LIKE|LINE INPUT|LOCATE|LOCK|LONG|LOOP|LSET|ME|MKDIR|MOD|MODULE|MUSTINHERIT|MUSTOVERRIDE|MYBASE|MYCLASS|NAME|NAMESPACE|NARROWING|NEW|NEXT|NOT|NOTHING|NOTINHERITABLE|NOTOVERRIDABLE|OBJECT|OF|OFF|ON(?: COM| ERROR| KEY| TIMER)?|OPEN|OPERATOR|OPTION(?: BASE)?|OPTIONAL|OR|ORELSE|OUT|OVERLOADS|OVERRIDABLE|OVERRIDES|PARAMARRAY|PARTIAL|POKE|PRIVATE|PROPERTY|PROTECTED|PUBLIC|PUT|RAISEEVENT|READ|READONLY|REDIM|REM|REMOVEHANDLER|RESTORE|RESUME|RETURN|RMDIR|RSET|RUN|SBYTE|SELECT(?: CASE)?|SET|SHADOWS|SHARED|SHELL|SHORT|SINGLE|SLEEP|STATIC|STEP|STOP|STRING|STRUCTURE|SUB|SWAP|SYNCLOCK|SYSTEM|THEN|THROW|TIMER|TO|TROFF|TRON|TRUE|TRY|TRYCAST|TYPE|TYPEOF|UINTEGER|ULONG|UNLOCK|UNTIL|USHORT|USING|VIEW PRINT|WAIT|WEND|WHEN|WHILE|WIDENING|WITH|WITHEVENTS|WRITE|WRITEONLY|XOR)|\B(?:#CONST|#ELSE|#ELSEIF|#END|#IF))(?:\$|\b)/i,punctuation:/[,;:(){}]/})}return Dg}var Mg,TT;function i4(){if(TT)return Mg;TT=1;var e=Eh(),t=aR();Mg=n,n.displayName="t4Vb",n.aliases=[];function n(i){i.register(e),i.register(t),i.languages["t4-vb"]=i.languages["t4-templating"].createT4("vbnet")}return Mg}var Fg,xT;function iR(){if(xT)return Fg;xT=1,Fg=e,e.displayName="yaml",e.aliases=["yml"];function e(t){(function(n){var i=/[*&][^\s[\]{},]+/,o=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,l="(?:"+o.source+"(?:[ ]+"+i.source+")?|"+i.source+"(?:[ ]+"+o.source+")?)",u=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-])(?:[ \t]*(?:(?![#:])|:))*/.source.replace(//g,function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source}),c=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function p(f,m){m=(m||"").replace(/m/g,"")+"m";var h=/([:\-,[{]\s*(?:\s<>[ \t]+)?)(?:<>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<>/g,function(){return l}).replace(/<>/g,function(){return f});return RegExp(h,m)}n.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<>/g,function(){return l})),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<>[ \t]+)?)<>(?=\s*:\s)/.source.replace(/<>/g,function(){return l}).replace(/<>/g,function(){return"(?:"+u+"|"+c+")"})),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:p(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:p(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:p(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:p(c),lookbehind:!0,greedy:!0},number:{pattern:p(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:o,important:i,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},n.languages.yml=n.languages.yaml})(t)}return Fg}var Pg,AT;function o4(){if(AT)return Pg;AT=1;var e=iR();Pg=t,t.displayName="tap",t.aliases=[];function t(n){n.register(e),n.languages.tap={fail:/not ok[^#{\n\r]*/,pass:/ok[^#{\n\r]*/,pragma:/pragma [+-][a-z]+/,bailout:/bail out!.*/i,version:/TAP version \d+/i,plan:/\b\d+\.\.\d+(?: +#.*)?/,subtest:{pattern:/# Subtest(?:: .*)?/,greedy:!0},punctuation:/[{}]/,directive:/#.*/,yamlish:{pattern:/(^[ \t]*)---[\s\S]*?[\r\n][ \t]*\.\.\.$/m,lookbehind:!0,inside:n.languages.yaml,alias:"language-yaml"}}}return Pg}var Ug,RT;function s4(){if(RT)return Ug;RT=1,Ug=e,e.displayName="tcl",e.aliases=[];function e(t){t.languages.tcl={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0},string:{pattern:/"(?:[^"\\\r\n]|\\(?:\r\n|[\s\S]))*"/,greedy:!0},variable:[{pattern:/(\$)(?:::)?(?:[a-zA-Z0-9]+::)*\w+/,lookbehind:!0},{pattern:/(\$)\{[^}]+\}/,lookbehind:!0},{pattern:/(^[\t ]*set[ \t]+)(?:::)?(?:[a-zA-Z0-9]+::)*\w+/m,lookbehind:!0}],function:{pattern:/(^[\t ]*proc[ \t]+)\S+/m,lookbehind:!0},builtin:[{pattern:/(^[\t ]*)(?:break|class|continue|error|eval|exit|for|foreach|if|proc|return|switch|while)\b/m,lookbehind:!0},/\b(?:else|elseif)\b/],scope:{pattern:/(^[\t ]*)(?:global|upvar|variable)\b/m,lookbehind:!0,alias:"constant"},keyword:{pattern:/(^[\t ]*|\[)(?:Safe_Base|Tcl|after|append|apply|array|auto_(?:execok|import|load|mkindex|qualify|reset)|automkindex_old|bgerror|binary|catch|cd|chan|clock|close|concat|dde|dict|encoding|eof|exec|expr|fblocked|fconfigure|fcopy|file(?:event|name)?|flush|gets|glob|history|http|incr|info|interp|join|lappend|lassign|lindex|linsert|list|llength|load|lrange|lrepeat|lreplace|lreverse|lsearch|lset|lsort|math(?:func|op)|memory|msgcat|namespace|open|package|parray|pid|pkg_mkIndex|platform|puts|pwd|re_syntax|read|refchan|regexp|registry|regsub|rename|scan|seek|set|socket|source|split|string|subst|tcl(?:_endOfWord|_findLibrary|startOf(?:Next|Previous)Word|test|vars|wordBreak(?:After|Before))|tell|time|tm|trace|unknown|unload|unset|update|uplevel|vwait)\b/m,lookbehind:!0},operator:/!=?|\*\*?|==|&&?|\|\|?|<[=<]?|>[=>]?|[-+~\/%?^]|\b(?:eq|in|ne|ni)\b/,punctuation:/[{}()\[\]]/}}return Ug}var Bg,NT;function l4(){if(NT)return Bg;NT=1,Bg=e,e.displayName="textile",e.aliases=[];function e(t){(function(n){var i=/\([^|()\n]+\)|\[[^\]\n]+\]|\{[^}\n]+\}/.source,o=/\)|\((?![^|()\n]+\))/.source;function l(S,E){return RegExp(S.replace(//g,function(){return"(?:"+i+")"}).replace(//g,function(){return"(?:"+o+")"}),E||"")}var u={css:{pattern:/\{[^{}]+\}/,inside:{rest:n.languages.css}},"class-id":{pattern:/(\()[^()]+(?=\))/,lookbehind:!0,alias:"attr-value"},lang:{pattern:/(\[)[^\[\]]+(?=\])/,lookbehind:!0,alias:"attr-value"},punctuation:/[\\\/]\d+|\S/},c=n.languages.textile=n.languages.extend("markup",{phrase:{pattern:/(^|\r|\n)\S[\s\S]*?(?=$|\r?\n\r?\n|\r\r)/,lookbehind:!0,inside:{"block-tag":{pattern:l(/^[a-z]\w*(?:||[<>=])*\./.source),inside:{modifier:{pattern:l(/(^[a-z]\w*)(?:||[<>=])+(?=\.)/.source),lookbehind:!0,inside:u},tag:/^[a-z]\w*/,punctuation:/\.$/}},list:{pattern:l(/^[*#]+*\s+\S.*/.source,"m"),inside:{modifier:{pattern:l(/(^[*#]+)+/.source),lookbehind:!0,inside:u},punctuation:/^[*#]+/}},table:{pattern:l(/^(?:(?:||[<>=^~])+\.\s*)?(?:\|(?:(?:||[<>=^~_]|[\\/]\d+)+\.|(?!(?:||[<>=^~_]|[\\/]\d+)+\.))[^|]*)+\|/.source,"m"),inside:{modifier:{pattern:l(/(^|\|(?:\r?\n|\r)?)(?:||[<>=^~_]|[\\/]\d+)+(?=\.)/.source),lookbehind:!0,inside:u},punctuation:/\||^\./}},inline:{pattern:l(/(^|[^a-zA-Z\d])(\*\*|__|\?\?|[*_%@+\-^~])*.+?\2(?![a-zA-Z\d])/.source),lookbehind:!0,inside:{bold:{pattern:l(/(^(\*\*?)*).+?(?=\2)/.source),lookbehind:!0},italic:{pattern:l(/(^(__?)*).+?(?=\2)/.source),lookbehind:!0},cite:{pattern:l(/(^\?\?*).+?(?=\?\?)/.source),lookbehind:!0,alias:"string"},code:{pattern:l(/(^@*).+?(?=@)/.source),lookbehind:!0,alias:"keyword"},inserted:{pattern:l(/(^\+*).+?(?=\+)/.source),lookbehind:!0},deleted:{pattern:l(/(^-*).+?(?=-)/.source),lookbehind:!0},span:{pattern:l(/(^%*).+?(?=%)/.source),lookbehind:!0},modifier:{pattern:l(/(^\*\*|__|\?\?|[*_%@+\-^~])+/.source),lookbehind:!0,inside:u},punctuation:/[*_%?@+\-^~]+/}},"link-ref":{pattern:/^\[[^\]]+\]\S+$/m,inside:{string:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0},url:{pattern:/(^\])\S+$/,lookbehind:!0},punctuation:/[\[\]]/}},link:{pattern:l(/"*[^"]+":.+?(?=[^\w/]?(?:\s|$))/.source),inside:{text:{pattern:l(/(^"*)[^"]+(?=")/.source),lookbehind:!0},modifier:{pattern:l(/(^")+/.source),lookbehind:!0,inside:u},url:{pattern:/(:).+/,lookbehind:!0},punctuation:/[":]/}},image:{pattern:l(/!(?:||[<>=])*(?![<>=])[^!\s()]+(?:\([^)]+\))?!(?::.+?(?=[^\w/]?(?:\s|$)))?/.source),inside:{source:{pattern:l(/(^!(?:||[<>=])*)(?![<>=])[^!\s()]+(?:\([^)]+\))?(?=!)/.source),lookbehind:!0,alias:"url"},modifier:{pattern:l(/(^!)(?:||[<>=])+/.source),lookbehind:!0,inside:u},url:{pattern:/(:).+/,lookbehind:!0},punctuation:/[!:]/}},footnote:{pattern:/\b\[\d+\]/,alias:"comment",inside:{punctuation:/\[|\]/}},acronym:{pattern:/\b[A-Z\d]+\([^)]+\)/,inside:{comment:{pattern:/(\()[^()]+(?=\))/,lookbehind:!0},punctuation:/[()]/}},mark:{pattern:/\b\((?:C|R|TM)\)/,alias:"comment",inside:{punctuation:/[()]/}}}}}),p=c.phrase.inside,f={inline:p.inline,link:p.link,image:p.image,footnote:p.footnote,acronym:p.acronym,mark:p.mark};c.tag.pattern=/<\/?(?!\d)[a-z0-9]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/i;var m=p.inline.inside;m.bold.inside=f,m.italic.inside=f,m.inserted.inside=f,m.deleted.inside=f,m.span.inside=f;var h=p.table.inside;h.inline=f.inline,h.link=f.link,h.image=f.image,h.footnote=f.footnote,h.acronym=f.acronym,h.mark=f.mark})(t)}return Bg}var jg,CT;function u4(){if(CT)return jg;CT=1,jg=e,e.displayName="toml",e.aliases=[];function e(t){(function(n){var i=/(?:[\w-]+|'[^'\n\r]*'|"(?:\\.|[^\\"\r\n])*")/.source;function o(l){return l.replace(/__/g,function(){return i})}n.languages.toml={comment:{pattern:/#.*/,greedy:!0},table:{pattern:RegExp(o(/(^[\t ]*\[\s*(?:\[\s*)?)__(?:\s*\.\s*__)*(?=\s*\])/.source),"m"),lookbehind:!0,greedy:!0,alias:"class-name"},key:{pattern:RegExp(o(/(^[\t ]*|[{,]\s*)__(?:\s*\.\s*__)*(?=\s*=)/.source),"m"),lookbehind:!0,greedy:!0,alias:"property"},string:{pattern:/"""(?:\\[\s\S]|[^\\])*?"""|'''[\s\S]*?'''|'[^'\n\r]*'|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},date:[{pattern:/\b\d{4}-\d{2}-\d{2}(?:[T\s]\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})?)?\b/i,alias:"number"},{pattern:/\b\d{2}:\d{2}:\d{2}(?:\.\d+)?\b/,alias:"number"}],number:/(?:\b0(?:x[\da-zA-Z]+(?:_[\da-zA-Z]+)*|o[0-7]+(?:_[0-7]+)*|b[10]+(?:_[10]+)*))\b|[-+]?\b\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?(?:[eE][+-]?\d+(?:_\d+)*)?\b|[-+]?\b(?:inf|nan)\b/,boolean:/\b(?:false|true)\b/,punctuation:/[.,=[\]{}]/}})(t)}return jg}var zg,IT;function c4(){if(IT)return zg;IT=1,zg=e,e.displayName="tremor",e.aliases=[];function e(t){(function(n){n.languages.tremor={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},"interpolated-string":null,extractor:{pattern:/\b[a-z_]\w*\|(?:[^\r\n\\|]|\\(?:\r\n|[\s\S]))*\|/i,greedy:!0,inside:{regex:{pattern:/(^re)\|[\s\S]+/,lookbehind:!0},function:/^\w+/,value:/\|[\s\S]+/}},identifier:{pattern:/`[^`]*`/,greedy:!0},function:/\b[a-z_]\w*(?=\s*(?:::\s*<|\())\b/,keyword:/\b(?:args|as|by|case|config|connect|connector|const|copy|create|default|define|deploy|drop|each|emit|end|erase|event|flow|fn|for|from|group|having|insert|into|intrinsic|let|links|match|merge|mod|move|of|operator|patch|pipeline|recur|script|select|set|sliding|state|stream|to|tumbling|update|use|when|where|window|with)\b/,boolean:/\b(?:false|null|true)\b/i,number:/\b(?:0b[01_]*|0x[0-9a-fA-F_]*|\d[\d_]*(?:\.\d[\d_]*)?(?:[Ee][+-]?[\d_]+)?)\b/,"pattern-punctuation":{pattern:/%(?=[({[])/,alias:"punctuation"},operator:/[-+*\/%~!^]=?|=[=>]?|&[&=]?|\|[|=]?|<>?>?=?|(?:absent|and|not|or|present|xor)\b/,punctuation:/::|[;\[\]()\{\},.:]/};var i=/#\{(?:[^"{}]|\{[^{}]*\}|"(?:[^"\\\r\n]|\\(?:\r\n|[\s\S]))*")*\}/.source;n.languages.tremor["interpolated-string"]={pattern:RegExp(/(^|[^\\])/.source+'(?:"""(?:'+/[^"\\#]|\\[\s\S]|"(?!"")|#(?!\{)/.source+"|"+i+')*"""|"(?:'+/[^"\\\r\n#]|\\(?:\r\n|[\s\S])|#(?!\{)/.source+"|"+i+')*")'),lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:RegExp(i),inside:{punctuation:/^#\{|\}$/,expression:{pattern:/[\s\S]+/,inside:n.languages.tremor}}},string:/[\s\S]+/}},n.languages.troy=n.languages.tremor,n.languages.trickle=n.languages.tremor})(t)}return zg}var $g,OT;function d4(){if(OT)return $g;OT=1;var e=nR(),t=hh();$g=n,n.displayName="tsx",n.aliases=[];function n(i){i.register(e),i.register(t),(function(o){var l=o.util.clone(o.languages.typescript);o.languages.tsx=o.languages.extend("jsx",l),delete o.languages.tsx.parameter,delete o.languages.tsx["literal-property"];var u=o.languages.tsx.tag;u.pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+u.pattern.source+")",u.pattern.flags),u.lookbehind=!0})(i)}return $g}var qg,LT;function p4(){if(LT)return qg;LT=1;var e=an();qg=t,t.displayName="tt2",t.aliases=[];function t(n){n.register(e),(function(i){i.languages.tt2=i.languages.extend("clike",{comment:/#.*|\[%#[\s\S]*?%\]/,keyword:/\b(?:BLOCK|CALL|CASE|CATCH|CLEAR|DEBUG|DEFAULT|ELSE|ELSIF|END|FILTER|FINAL|FOREACH|GET|IF|IN|INCLUDE|INSERT|LAST|MACRO|META|NEXT|PERL|PROCESS|RAWPERL|RETURN|SET|STOP|SWITCH|TAGS|THROW|TRY|UNLESS|USE|WHILE|WRAPPER)\b/,punctuation:/[[\]{},()]/}),i.languages.insertBefore("tt2","number",{operator:/=[>=]?|!=?|<=?|>=?|&&|\|\|?|\b(?:and|not|or)\b/,variable:{pattern:/\b[a-z]\w*(?:\s*\.\s*(?:\d+|\$?[a-z]\w*))*\b/i}}),i.languages.insertBefore("tt2","keyword",{delimiter:{pattern:/^(?:\[%|%%)-?|-?%\]$/,alias:"punctuation"}}),i.languages.insertBefore("tt2","string",{"single-quoted-string":{pattern:/'[^\\']*(?:\\[\s\S][^\\']*)*'/,greedy:!0,alias:"string"},"double-quoted-string":{pattern:/"[^\\"]*(?:\\[\s\S][^\\"]*)*"/,greedy:!0,alias:"string",inside:{variable:{pattern:/\$(?:[a-z]\w*(?:\.(?:\d+|\$?[a-z]\w*))*)/i}}}}),delete i.languages.tt2.string,i.hooks.add("before-tokenize",function(o){var l=/\[%[\s\S]+?%\]/g;i.languages["markup-templating"].buildPlaceholders(o,"tt2",l)}),i.hooks.add("after-tokenize",function(o){i.languages["markup-templating"].tokenizePlaceholders(o,"tt2")})})(n)}return qg}var Gg,DT;function f4(){if(DT)return Gg;DT=1;var e=an();Gg=t,t.displayName="twig",t.aliases=[];function t(n){n.register(e),n.languages.twig={comment:/^\{#[\s\S]*?#\}$/,"tag-name":{pattern:/(^\{%-?\s*)\w+/,lookbehind:!0,alias:"keyword"},delimiter:{pattern:/^\{[{%]-?|-?[%}]\}$/,alias:"punctuation"},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,inside:{punctuation:/^['"]|['"]$/}},keyword:/\b(?:even|if|odd)\b/,boolean:/\b(?:false|null|true)\b/,number:/\b0x[\dA-Fa-f]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][-+]?\d+)?/,operator:[{pattern:/(\s)(?:and|b-and|b-or|b-xor|ends with|in|is|matches|not|or|same as|starts with)(?=\s)/,lookbehind:!0},/[=<>]=?|!=|\*\*?|\/\/?|\?:?|[-+~%|]/],punctuation:/[()\[\]{}:.,]/},n.hooks.add("before-tokenize",function(i){if(i.language==="twig"){var o=/\{(?:#[\s\S]*?#|%[\s\S]*?%|\{[\s\S]*?\})\}/g;n.languages["markup-templating"].buildPlaceholders(i,"twig",o)}}),n.hooks.add("after-tokenize",function(i){n.languages["markup-templating"].tokenizePlaceholders(i,"twig")})}return Gg}var Hg,MT;function g4(){if(MT)return Hg;MT=1,Hg=e,e.displayName="typoscript",e.aliases=["tsconfig"];function e(t){(function(n){var i=/\b(?:ACT|ACTIFSUB|CARRAY|CASE|CLEARGIF|COA|COA_INT|CONSTANTS|CONTENT|CUR|EDITPANEL|EFFECT|EXT|FILE|FLUIDTEMPLATE|FORM|FRAME|FRAMESET|GIFBUILDER|GMENU|GMENU_FOLDOUT|GMENU_LAYERS|GP|HMENU|HRULER|HTML|IENV|IFSUB|IMAGE|IMGMENU|IMGMENUITEM|IMGTEXT|IMG_RESOURCE|INCLUDE_TYPOSCRIPT|JSMENU|JSMENUITEM|LLL|LOAD_REGISTER|NO|PAGE|RECORDS|RESTORE_REGISTER|TEMPLATE|TEXT|TMENU|TMENUITEM|TMENU_LAYERS|USER|USER_INT|_GIFBUILDER|global|globalString|globalVar)\b/;n.languages.typoscript={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0},{pattern:/(^|[^\\:= \t]|(?:^|[^= \t])[ \t]+)\/\/.*/,lookbehind:!0,greedy:!0},{pattern:/(^|[^"'])#.*/,lookbehind:!0,greedy:!0}],function:[{pattern://,inside:{string:{pattern:/"[^"\r\n]*"|'[^'\r\n]*'/,inside:{keyword:i}},keyword:{pattern:/INCLUDE_TYPOSCRIPT/}}},{pattern:/@import\s*(?:"[^"\r\n]*"|'[^'\r\n]*')/,inside:{string:/"[^"\r\n]*"|'[^'\r\n]*'/}}],string:{pattern:/^([^=]*=[< ]?)(?:(?!\]\n).)*/,lookbehind:!0,inside:{function:/\{\$.*\}/,keyword:i,number:/^\d+$/,punctuation:/[,|:]/}},keyword:i,number:{pattern:/\b\d+\s*[.{=]/,inside:{operator:/[.{=]/}},tag:{pattern:/\.?[-\w\\]+\.?/,inside:{punctuation:/\./}},punctuation:/[{}[\];(),.:|]/,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/},n.languages.tsconfig=n.languages.typoscript})(t)}return Hg}var Wg,FT;function m4(){if(FT)return Wg;FT=1,Wg=e,e.displayName="unrealscript",e.aliases=["uc","uscript"];function e(t){t.languages.unrealscript={comment:/\/\/.*|\/\*[\s\S]*?\*\//,string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},category:{pattern:/(\b(?:(?:autoexpand|hide|show)categories|var)\s*\()[^()]+(?=\))/,lookbehind:!0,greedy:!0,alias:"property"},metadata:{pattern:/(\w\s*)<\s*\w+\s*=[^<>|=\r\n]+(?:\|\s*\w+\s*=[^<>|=\r\n]+)*>/,lookbehind:!0,greedy:!0,inside:{property:/\b\w+(?=\s*=)/,operator:/=/,punctuation:/[<>|]/}},macro:{pattern:/`\w+/,alias:"property"},"class-name":{pattern:/(\b(?:class|enum|extends|interface|state(?:\(\))?|struct|within)\s+)\w+/,lookbehind:!0},keyword:/\b(?:abstract|actor|array|auto|autoexpandcategories|bool|break|byte|case|class|classgroup|client|coerce|collapsecategories|config|const|continue|default|defaultproperties|delegate|dependson|deprecated|do|dontcollapsecategories|editconst|editinlinenew|else|enum|event|exec|export|extends|final|float|for|forcescriptorder|foreach|function|goto|guid|hidecategories|hidedropdown|if|ignores|implements|inherits|input|int|interface|iterator|latent|local|material|name|native|nativereplication|noexport|nontransient|noteditinlinenew|notplaceable|operator|optional|out|pawn|perobjectconfig|perobjectlocalized|placeable|postoperator|preoperator|private|protected|reliable|replication|return|server|showcategories|simulated|singular|state|static|string|struct|structdefault|structdefaultproperties|switch|texture|transient|travel|unreliable|until|var|vector|while|within)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,boolean:/\b(?:false|true)\b/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/>>|<<|--|\+\+|\*\*|[-+*/~!=<>$@]=?|&&?|\|\|?|\^\^?|[?:%]|\b(?:ClockwiseFrom|Cross|Dot)\b/,punctuation:/[()[\]{};,.]/},t.languages.uc=t.languages.uscript=t.languages.unrealscript}return Wg}var Vg,PT;function h4(){if(PT)return Vg;PT=1,Vg=e,e.displayName="uorazor",e.aliases=[];function e(t){t.languages.uorazor={"comment-hash":{pattern:/#.*/,alias:"comment",greedy:!0},"comment-slash":{pattern:/\/\/.*/,alias:"comment",greedy:!0},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,inside:{punctuation:/^['"]|['"]$/},greedy:!0},"source-layers":{pattern:/\b(?:arms|backpack|blue|bracelet|cancel|clear|cloak|criminal|earrings|enemy|facialhair|friend|friendly|gloves|gray|grey|ground|hair|head|innerlegs|innertorso|innocent|lefthand|middletorso|murderer|neck|nonfriendly|onehandedsecondary|outerlegs|outertorso|pants|red|righthand|ring|self|shirt|shoes|talisman|waist)\b/i,alias:"function"},"source-commands":{pattern:/\b(?:alliance|attack|cast|clearall|clearignore|clearjournal|clearlist|clearsysmsg|createlist|createtimer|dclick|dclicktype|dclickvar|dress|dressconfig|drop|droprelloc|emote|getlabel|guild|gumpclose|gumpresponse|hotkey|ignore|lasttarget|lift|lifttype|menu|menuresponse|msg|org|organize|organizer|overhead|pause|poplist|potion|promptresponse|pushlist|removelist|removetimer|rename|restock|say|scav|scavenger|script|setability|setlasttarget|setskill|settimer|setvar|sysmsg|target|targetloc|targetrelloc|targettype|undress|unignore|unsetvar|useobject|useonce|useskill|usetype|virtue|wait|waitforgump|waitformenu|waitforprompt|waitforstat|waitforsysmsg|waitfortarget|walk|wfsysmsg|wft|whisper|yell)\b/,alias:"function"},"tag-name":{pattern:/(^\{%-?\s*)\w+/,lookbehind:!0,alias:"keyword"},delimiter:{pattern:/^\{[{%]-?|-?[%}]\}$/,alias:"punctuation"},function:/\b(?:atlist|close|closest|count|counter|counttype|dead|dex|diffhits|diffmana|diffstam|diffweight|find|findbuff|finddebuff|findlayer|findtype|findtypelist|followers|gumpexists|hidden|hits|hp|hue|human|humanoid|ingump|inlist|insysmessage|insysmsg|int|invul|lhandempty|list|listexists|mana|maxhits|maxhp|maxmana|maxstam|maxweight|monster|mounted|name|next|noto|paralyzed|poisoned|position|prev|previous|queued|rand|random|rhandempty|skill|stam|str|targetexists|timer|timerexists|varexist|warmode|weight)\b/,keyword:/\b(?:and|as|break|continue|else|elseif|endfor|endif|endwhile|for|if|loop|not|or|replay|stop|while)\b/,boolean:/\b(?:false|null|true)\b/,number:/\b0x[\dA-Fa-f]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][-+]?\d+)?/,operator:[{pattern:/(\s)(?:and|b-and|b-or|b-xor|ends with|in|is|matches|not|or|same as|starts with)(?=\s)/,lookbehind:!0},/[=<>]=?|!=|\*\*?|\/\/?|\?:?|[-+~%|]/],punctuation:/[()\[\]{}:.,]/}}return Vg}var Yg,UT;function b4(){if(UT)return Yg;UT=1,Yg=e,e.displayName="uri",e.aliases=["url"];function e(t){t.languages.uri={scheme:{pattern:/^[a-z][a-z0-9+.-]*:/im,greedy:!0,inside:{"scheme-delimiter":/:$/}},fragment:{pattern:/#[\w\-.~!$&'()*+,;=%:@/?]*/,inside:{"fragment-delimiter":/^#/}},query:{pattern:/\?[\w\-.~!$&'()*+,;=%:@/?]*/,inside:{"query-delimiter":{pattern:/^\?/,greedy:!0},"pair-delimiter":/[&;]/,pair:{pattern:/^[^=][\s\S]*/,inside:{key:/^[^=]+/,value:{pattern:/(^=)[\s\S]+/,lookbehind:!0}}}}},authority:{pattern:RegExp(/^\/\//.source+/(?:[\w\-.~!$&'()*+,;=%:]*@)?/.source+("(?:"+/\[(?:[0-9a-fA-F:.]{2,48}|v[0-9a-fA-F]+\.[\w\-.~!$&'()*+,;=]+)\]/.source+"|"+/[\w\-.~!$&'()*+,;=%]*/.source+")")+/(?::\d*)?/.source,"m"),inside:{"authority-delimiter":/^\/\//,"user-info-segment":{pattern:/^[\w\-.~!$&'()*+,;=%:]*@/,inside:{"user-info-delimiter":/@$/,"user-info":/^[\w\-.~!$&'()*+,;=%:]+/}},"port-segment":{pattern:/:\d*$/,inside:{"port-delimiter":/^:/,port:/^\d+/}},host:{pattern:/[\s\S]+/,inside:{"ip-literal":{pattern:/^\[[\s\S]+\]$/,inside:{"ip-literal-delimiter":/^\[|\]$/,"ipv-future":/^v[\s\S]+/,"ipv6-address":/^[\s\S]+/}},"ipv4-address":/^(?:(?:[03-9]\d?|[12]\d{0,2})\.){3}(?:[03-9]\d?|[12]\d{0,2})$/}}}},path:{pattern:/^[\w\-.~!$&'()*+,;=%:@/]+/m,inside:{"path-separator":/\//}}},t.languages.url=t.languages.uri}return Yg}var Kg,BT;function y4(){if(BT)return Kg;BT=1,Kg=e,e.displayName="v",e.aliases=[];function e(t){(function(n){var i={pattern:/[\s\S]+/,inside:null};n.languages.v=n.languages.extend("clike",{string:{pattern:/r?(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,alias:"quoted-string",greedy:!0,inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$(?:\{[^{}]*\}|\w+(?:\.\w+(?:\([^\(\)]*\))?|\[[^\[\]]+\])*)/,lookbehind:!0,inside:{"interpolation-variable":{pattern:/^\$\w[\s\S]*$/,alias:"variable"},"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},"interpolation-expression":i}}}},"class-name":{pattern:/(\b(?:enum|interface|struct|type)\s+)(?:C\.)?\w+/,lookbehind:!0},keyword:/(?:\b(?:__global|as|asm|assert|atomic|break|chan|const|continue|defer|else|embed|enum|fn|for|go(?:to)?|if|import|in|interface|is|lock|match|module|mut|none|or|pub|return|rlock|select|shared|sizeof|static|struct|type(?:of)?|union|unsafe)|\$(?:else|for|if)|#(?:flag|include))\b/,number:/\b(?:0x[a-f\d]+(?:_[a-f\d]+)*|0b[01]+(?:_[01]+)*|0o[0-7]+(?:_[0-7]+)*|\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?)\b/i,operator:/~|\?|[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\.?/,builtin:/\b(?:any(?:_float|_int)?|bool|byte(?:ptr)?|charptr|f(?:32|64)|i(?:8|16|64|128|nt)|rune|size_t|string|u(?:16|32|64|128)|voidptr)\b/}),i.inside=n.languages.v,n.languages.insertBefore("v","string",{char:{pattern:/`(?:\\`|\\?[^`]{1,2})`/,alias:"rune"}}),n.languages.insertBefore("v","operator",{attribute:{pattern:/(^[\t ]*)\[(?:deprecated|direct_array_access|flag|inline|live|ref_only|typedef|unsafe_fn|windows_stdcall)\]/m,lookbehind:!0,alias:"annotation",inside:{punctuation:/[\[\]]/,keyword:/\w+/}},generic:{pattern:/<\w+>(?=\s*[\)\{])/,inside:{punctuation:/[<>]/,"class-name":/\w+/}}}),n.languages.insertBefore("v","function",{"generic-function":{pattern:/\b\w+\s*<\w+>(?=\()/,inside:{function:/^\w+/,generic:{pattern:/<\w+>/,inside:n.languages.v.generic.inside}}}})})(t)}return Kg}var Zg,jT;function E4(){if(jT)return Zg;jT=1,Zg=e,e.displayName="vala",e.aliases=[];function e(t){t.languages.vala=t.languages.extend("clike",{"class-name":[{pattern:/\b[A-Z]\w*(?:\.\w+)*\b(?=(?:\?\s+|\*?\s+\*?)\w)/,inside:{punctuation:/\./}},{pattern:/(\[)[A-Z]\w*(?:\.\w+)*\b/,lookbehind:!0,inside:{punctuation:/\./}},{pattern:/(\b(?:class|interface)\s+[A-Z]\w*(?:\.\w+)*\s*:\s*)[A-Z]\w*(?:\.\w+)*\b/,lookbehind:!0,inside:{punctuation:/\./}},{pattern:/((?:\b(?:class|enum|interface|new|struct)\s+)|(?:catch\s+\())[A-Z]\w*(?:\.\w+)*\b/,lookbehind:!0,inside:{punctuation:/\./}}],keyword:/\b(?:abstract|as|assert|async|base|bool|break|case|catch|char|class|const|construct|continue|default|delegate|delete|do|double|dynamic|else|ensures|enum|errordomain|extern|finally|float|for|foreach|get|if|in|inline|int|int16|int32|int64|int8|interface|internal|is|lock|long|namespace|new|null|out|override|owned|params|private|protected|public|ref|requires|return|set|short|signal|sizeof|size_t|ssize_t|static|string|struct|switch|this|throw|throws|try|typeof|uchar|uint|uint16|uint32|uint64|uint8|ulong|unichar|unowned|ushort|using|value|var|virtual|void|volatile|weak|while|yield)\b/i,function:/\b\w+(?=\s*\()/,number:/(?:\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)(?:f|u?l?)?/i,operator:/\+\+|--|&&|\|\||<<=?|>>=?|=>|->|~|[+\-*\/%&^|=!<>]=?|\?\??|\.\.\./,punctuation:/[{}[\];(),.:]/,constant:/\b[A-Z0-9_]+\b/}),t.languages.insertBefore("vala","string",{"raw-string":{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string"},"template-string":{pattern:/@"[\s\S]*?"/,greedy:!0,inside:{interpolation:{pattern:/\$(?:\([^)]*\)|[a-zA-Z]\w*)/,inside:{delimiter:{pattern:/^\$\(?|\)$/,alias:"punctuation"},rest:t.languages.vala}},string:/[\s\S]+/}}}),t.languages.insertBefore("vala","keyword",{regex:{pattern:/\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[imsx]{0,4}(?=\s*(?:$|[\r\n,.;})\]]))/,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:t.languages.regex},"regex-delimiter":/^\//,"regex-flags":/^[a-z]+$/}}})}return Zg}var Xg,zT;function S4(){if(zT)return Xg;zT=1,Xg=e,e.displayName="velocity",e.aliases=[];function e(t){(function(n){n.languages.velocity=n.languages.extend("markup",{});var i={variable:{pattern:/(^|[^\\](?:\\\\)*)\$!?(?:[a-z][\w-]*(?:\([^)]*\))?(?:\.[a-z][\w-]*(?:\([^)]*\))?|\[[^\]]+\])*|\{[^}]+\})/i,lookbehind:!0,inside:{}},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},number:/\b\d+\b/,boolean:/\b(?:false|true)\b/,operator:/[=!<>]=?|[+*/%-]|&&|\|\||\.\.|\b(?:eq|g[et]|l[et]|n(?:e|ot))\b/,punctuation:/[(){}[\]:,.]/};i.variable.inside={string:i.string,function:{pattern:/([^\w-])[a-z][\w-]*(?=\()/,lookbehind:!0},number:i.number,boolean:i.boolean,punctuation:i.punctuation},n.languages.insertBefore("velocity","comment",{unparsed:{pattern:/(^|[^\\])#\[\[[\s\S]*?\]\]#/,lookbehind:!0,greedy:!0,inside:{punctuation:/^#\[\[|\]\]#$/}},"velocity-comment":[{pattern:/(^|[^\\])#\*[\s\S]*?\*#/,lookbehind:!0,greedy:!0,alias:"comment"},{pattern:/(^|[^\\])##.*/,lookbehind:!0,greedy:!0,alias:"comment"}],directive:{pattern:/(^|[^\\](?:\\\\)*)#@?(?:[a-z][\w-]*|\{[a-z][\w-]*\})(?:\s*\((?:[^()]|\([^()]*\))*\))?/i,lookbehind:!0,inside:{keyword:{pattern:/^#@?(?:[a-z][\w-]*|\{[a-z][\w-]*\})|\bin\b/,inside:{punctuation:/[{}]/}},rest:i}},variable:i.variable}),n.languages.velocity.tag.inside["attr-value"].inside.rest=n.languages.velocity})(t)}return Xg}var Qg,$T;function v4(){if($T)return Qg;$T=1,Qg=e,e.displayName="verilog",e.aliases=[];function e(t){t.languages.verilog={comment:{pattern:/\/\/.*|\/\*[\s\S]*?\*\//,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"kernel-function":{pattern:/\B\$\w+\b/,alias:"property"},constant:/\B`\w+\b/,function:/\b\w+(?=\()/,keyword:/\b(?:alias|and|assert|assign|assume|automatic|before|begin|bind|bins|binsof|bit|break|buf|bufif0|bufif1|byte|case|casex|casez|cell|chandle|class|clocking|cmos|config|const|constraint|context|continue|cover|covergroup|coverpoint|cross|deassign|default|defparam|design|disable|dist|do|edge|else|end|endcase|endclass|endclocking|endconfig|endfunction|endgenerate|endgroup|endinterface|endmodule|endpackage|endprimitive|endprogram|endproperty|endsequence|endspecify|endtable|endtask|enum|event|expect|export|extends|extern|final|first_match|for|force|foreach|forever|fork|forkjoin|function|generate|genvar|highz0|highz1|if|iff|ifnone|ignore_bins|illegal_bins|import|incdir|include|initial|inout|input|inside|instance|int|integer|interface|intersect|join|join_any|join_none|large|liblist|library|local|localparam|logic|longint|macromodule|matches|medium|modport|module|nand|negedge|new|nmos|nor|noshowcancelled|not|notif0|notif1|null|or|output|package|packed|parameter|pmos|posedge|primitive|priority|program|property|protected|pull0|pull1|pulldown|pullup|pulsestyle_ondetect|pulsestyle_onevent|pure|rand|randc|randcase|randsequence|rcmos|real|realtime|ref|reg|release|repeat|return|rnmos|rpmos|rtran|rtranif0|rtranif1|scalared|sequence|shortint|shortreal|showcancelled|signed|small|solve|specify|specparam|static|string|strong0|strong1|struct|super|supply0|supply1|table|tagged|task|this|throughout|time|timeprecision|timeunit|tran|tranif0|tranif1|tri|tri0|tri1|triand|trior|trireg|type|typedef|union|unique|unsigned|use|uwire|var|vectored|virtual|void|wait|wait_order|wand|weak0|weak1|while|wildcard|wire|with|within|wor|xnor|xor)\b/,important:/\b(?:always|always_comb|always_ff|always_latch)\b(?: *@)?/,number:/\B##?\d+|(?:\b\d+)?'[odbh] ?[\da-fzx_?]+|\b(?:\d*[._])?\d+(?:e[-+]?\d+)?/i,operator:/[-+{}^~%*\/?=!<>&|]+/,punctuation:/[[\];(),.:]/}}return Qg}var Jg,qT;function k4(){if(qT)return Jg;qT=1,Jg=e,e.displayName="vhdl",e.aliases=[];function e(t){t.languages.vhdl={comment:/--.+/,"vhdl-vectors":{pattern:/\b[oxb]"[\da-f_]+"|"[01uxzwlh-]+"/i,alias:"number"},"quoted-function":{pattern:/"\S+?"(?=\()/,alias:"function"},string:/"(?:[^\\"\r\n]|\\(?:\r\n|[\s\S]))*"/,constant:/\b(?:library|use)\b/i,keyword:/\b(?:'active|'ascending|'base|'delayed|'driving|'driving_value|'event|'high|'image|'instance_name|'last_active|'last_event|'last_value|'left|'leftof|'length|'low|'path_name|'pos|'pred|'quiet|'range|'reverse_range|'right|'rightof|'simple_name|'stable|'succ|'transaction|'val|'value|access|after|alias|all|architecture|array|assert|attribute|begin|block|body|buffer|bus|case|component|configuration|constant|disconnect|downto|else|elsif|end|entity|exit|file|for|function|generate|generic|group|guarded|if|impure|in|inertial|inout|is|label|library|linkage|literal|loop|map|new|next|null|of|on|open|others|out|package|port|postponed|procedure|process|pure|range|record|register|reject|report|return|select|severity|shared|signal|subtype|then|to|transport|type|unaffected|units|until|use|variable|wait|when|while|with)\b/i,boolean:/\b(?:false|true)\b/i,function:/\w+(?=\()/,number:/'[01uxzwlh-]'|\b(?:\d+#[\da-f_.]+#|\d[\d_.]*)(?:e[-+]?\d+)?/i,operator:/[<>]=?|:=|[-+*/&=]|\b(?:abs|and|mod|nand|nor|not|or|rem|rol|ror|sla|sll|sra|srl|xnor|xor)\b/i,punctuation:/[{}[\];(),.:]/}}return Jg}var em,GT;function _4(){if(GT)return em;GT=1,em=e,e.displayName="vim",e.aliases=[];function e(t){t.languages.vim={string:/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\r\n]|'')*'/,comment:/".*/,function:/\b\w+(?=\()/,keyword:/\b(?:N|Next|P|Print|X|XMLent|XMLns|ab|abbreviate|abc|abclear|abo|aboveleft|al|all|ar|arga|argadd|argd|argdelete|argdo|arge|argedit|argg|argglobal|argl|arglocal|args|argu|argument|as|ascii|b|bN|bNext|ba|bad|badd|ball|bd|bdelete|be|bel|belowright|bf|bfirst|bl|blast|bm|bmodified|bn|bnext|bo|botright|bp|bprevious|br|brea|break|breaka|breakadd|breakd|breakdel|breakl|breaklist|brewind|bro|browse|bufdo|buffer|buffers|bun|bunload|bw|bwipeout|c|cN|cNext|cNfcNfile|ca|cabbrev|cabc|cabclear|cad|caddb|caddbuffer|caddexpr|caddf|caddfile|cal|call|cat|catch|cb|cbuffer|cc|ccl|cclose|cd|ce|center|cex|cexpr|cf|cfile|cfir|cfirst|cg|cgetb|cgetbuffer|cgete|cgetexpr|cgetfile|change|changes|chd|chdir|che|checkpath|checkt|checktime|cl|cla|clast|clist|clo|close|cmapc|cmapclear|cn|cnew|cnewer|cnext|cnf|cnfile|cnorea|cnoreabbrev|co|col|colder|colo|colorscheme|comc|comclear|comp|compiler|con|conf|confirm|continue|cope|copen|copy|cp|cpf|cpfile|cprevious|cq|cquit|cr|crewind|cu|cuna|cunabbrev|cunmap|cw|cwindow|d|debugg|debuggreedy|delc|delcommand|delete|delf|delfunction|delm|delmarks|di|diffg|diffget|diffoff|diffpatch|diffpu|diffput|diffsplit|diffthis|diffu|diffupdate|dig|digraphs|display|dj|djump|dl|dlist|dr|drop|ds|dsearch|dsp|dsplit|e|earlier|echoe|echoerr|echom|echomsg|echon|edit|el|else|elsei|elseif|em|emenu|en|endf|endfo|endfor|endfun|endfunction|endif|endt|endtry|endw|endwhile|ene|enew|ex|exi|exit|exu|exusage|f|file|files|filetype|fin|fina|finally|find|fini|finish|fir|first|fix|fixdel|fo|fold|foldc|foldclose|foldd|folddoc|folddoclosed|folddoopen|foldo|foldopen|for|fu|fun|function|go|goto|gr|grep|grepa|grepadd|h|ha|hardcopy|help|helpf|helpfind|helpg|helpgrep|helpt|helptags|hid|hide|his|history|ia|iabbrev|iabc|iabclear|if|ij|ijump|il|ilist|imapc|imapclear|in|inorea|inoreabbrev|isearch|isp|isplit|iu|iuna|iunabbrev|iunmap|j|join|ju|jumps|k|kee|keepalt|keepj|keepjumps|keepmarks|l|lN|lNext|lNf|lNfile|la|lad|laddb|laddbuffer|laddexpr|laddf|laddfile|lan|language|last|later|lb|lbuffer|lc|lcd|lch|lchdir|lcl|lclose|left|lefta|leftabove|let|lex|lexpr|lf|lfile|lfir|lfirst|lg|lgetb|lgetbuffer|lgete|lgetexpr|lgetfile|lgr|lgrep|lgrepa|lgrepadd|lh|lhelpgrep|list|ll|lla|llast|lli|llist|lm|lmak|lmake|lmap|lmapc|lmapclear|ln|lne|lnew|lnewer|lnext|lnf|lnfile|lnoremap|lo|loadview|loc|lockmarks|lockv|lockvar|lol|lolder|lop|lopen|lp|lpf|lpfile|lprevious|lr|lrewind|ls|lt|ltag|lu|lunmap|lv|lvimgrep|lvimgrepa|lvimgrepadd|lw|lwindow|m|ma|mak|make|mark|marks|mat|match|menut|menutranslate|mk|mkexrc|mks|mksession|mksp|mkspell|mkv|mkvie|mkview|mkvimrc|mod|mode|move|mz|mzf|mzfile|mzscheme|n|nbkey|new|next|nmapc|nmapclear|noh|nohlsearch|norea|noreabbrev|nu|number|nun|nunmap|o|omapc|omapclear|on|only|open|opt|options|ou|ounmap|p|pc|pclose|pe|ped|pedit|perl|perld|perldo|po|pop|popu|popup|pp|ppop|pre|preserve|prev|previous|print|prof|profd|profdel|profile|promptf|promptfind|promptr|promptrepl|ps|psearch|ptN|ptNext|pta|ptag|ptf|ptfirst|ptj|ptjump|ptl|ptlast|ptn|ptnext|ptp|ptprevious|ptr|ptrewind|pts|ptselect|pu|put|pw|pwd|py|pyf|pyfile|python|q|qa|qall|quit|quita|quitall|r|read|rec|recover|red|redi|redir|redo|redr|redraw|redraws|redrawstatus|reg|registers|res|resize|ret|retab|retu|return|rew|rewind|ri|right|rightb|rightbelow|ru|rub|ruby|rubyd|rubydo|rubyf|rubyfile|runtime|rv|rviminfo|sN|sNext|sa|sal|sall|san|sandbox|sargument|sav|saveas|sb|sbN|sbNext|sba|sball|sbf|sbfirst|sbl|sblast|sbm|sbmodified|sbn|sbnext|sbp|sbprevious|sbr|sbrewind|sbuffer|scrip|scripte|scriptencoding|scriptnames|se|set|setf|setfiletype|setg|setglobal|setl|setlocal|sf|sfind|sfir|sfirst|sh|shell|sign|sil|silent|sim|simalt|sl|sla|slast|sleep|sm|smagic|smap|smapc|smapclear|sme|smenu|sn|snext|sni|sniff|sno|snomagic|snor|snoremap|snoreme|snoremenu|so|sor|sort|source|sp|spe|spelld|spelldump|spellgood|spelli|spellinfo|spellr|spellrepall|spellu|spellundo|spellw|spellwrong|split|spr|sprevious|sre|srewind|st|sta|stag|star|startg|startgreplace|startinsert|startr|startreplace|stj|stjump|stop|stopi|stopinsert|sts|stselect|sun|sunhide|sunm|sunmap|sus|suspend|sv|sview|syncbind|t|tN|tNext|ta|tab|tabN|tabNext|tabc|tabclose|tabd|tabdo|tabe|tabedit|tabf|tabfind|tabfir|tabfirst|tabl|tablast|tabm|tabmove|tabn|tabnew|tabnext|tabo|tabonly|tabp|tabprevious|tabr|tabrewind|tabs|tag|tags|tc|tcl|tcld|tcldo|tclf|tclfile|te|tearoff|tf|tfirst|th|throw|tj|tjump|tl|tlast|tm|tmenu|tn|tnext|to|topleft|tp|tprevious|tr|trewind|try|ts|tselect|tu|tunmenu|u|una|unabbreviate|undo|undoj|undojoin|undol|undolist|unh|unhide|unlet|unlo|unlockvar|unm|unmap|up|update|ve|verb|verbose|version|vert|vertical|vi|vie|view|vim|vimgrep|vimgrepa|vimgrepadd|visual|viu|viusage|vmapc|vmapclear|vne|vnew|vs|vsplit|vu|vunmap|w|wN|wNext|wa|wall|wh|while|win|winc|wincmd|windo|winp|winpos|winsize|wn|wnext|wp|wprevious|wq|wqa|wqall|write|ws|wsverb|wv|wviminfo|x|xa|xall|xit|xm|xmap|xmapc|xmapclear|xme|xmenu|xn|xnoremap|xnoreme|xnoremenu|xu|xunmap|y|yank)\b/,builtin:/\b(?:acd|ai|akm|aleph|allowrevins|altkeymap|ambiwidth|ambw|anti|antialias|arab|arabic|arabicshape|ari|arshape|autochdir|autocmd|autoindent|autoread|autowrite|autowriteall|aw|awa|background|backspace|backup|backupcopy|backupdir|backupext|backupskip|balloondelay|ballooneval|balloonexpr|bdir|bdlay|beval|bex|bexpr|bg|bh|bin|binary|biosk|bioskey|bk|bkc|bomb|breakat|brk|browsedir|bs|bsdir|bsk|bt|bufhidden|buflisted|buftype|casemap|ccv|cdpath|cedit|cfu|ch|charconvert|ci|cin|cindent|cink|cinkeys|cino|cinoptions|cinw|cinwords|clipboard|cmdheight|cmdwinheight|cmp|cms|columns|com|comments|commentstring|compatible|complete|completefunc|completeopt|consk|conskey|copyindent|cot|cpo|cpoptions|cpt|cscopepathcomp|cscopeprg|cscopequickfix|cscopetag|cscopetagorder|cscopeverbose|cspc|csprg|csqf|cst|csto|csverb|cuc|cul|cursorcolumn|cursorline|cwh|debug|deco|def|define|delcombine|dex|dg|dict|dictionary|diff|diffexpr|diffopt|digraph|dip|dir|directory|dy|ea|ead|eadirection|eb|ed|edcompatible|ef|efm|ei|ek|enc|encoding|endofline|eol|ep|equalalways|equalprg|errorbells|errorfile|errorformat|esckeys|et|eventignore|expandtab|exrc|fcl|fcs|fdc|fde|fdi|fdl|fdls|fdm|fdn|fdo|fdt|fen|fenc|fencs|fex|ff|ffs|fileencoding|fileencodings|fileformat|fileformats|fillchars|fk|fkmap|flp|fml|fmr|foldcolumn|foldenable|foldexpr|foldignore|foldlevel|foldlevelstart|foldmarker|foldmethod|foldminlines|foldnestmax|foldtext|formatexpr|formatlistpat|formatoptions|formatprg|fp|fs|fsync|ft|gcr|gd|gdefault|gfm|gfn|gfs|gfw|ghr|gp|grepformat|grepprg|gtl|gtt|guicursor|guifont|guifontset|guifontwide|guiheadroom|guioptions|guipty|guitablabel|guitabtooltip|helpfile|helpheight|helplang|hf|hh|hi|hidden|highlight|hk|hkmap|hkmapp|hkp|hl|hlg|hls|hlsearch|ic|icon|iconstring|ignorecase|im|imactivatekey|imak|imc|imcmdline|imd|imdisable|imi|iminsert|ims|imsearch|inc|include|includeexpr|incsearch|inde|indentexpr|indentkeys|indk|inex|inf|infercase|insertmode|invacd|invai|invakm|invallowrevins|invaltkeymap|invanti|invantialias|invar|invarab|invarabic|invarabicshape|invari|invarshape|invautochdir|invautoindent|invautoread|invautowrite|invautowriteall|invaw|invawa|invbackup|invballooneval|invbeval|invbin|invbinary|invbiosk|invbioskey|invbk|invbl|invbomb|invbuflisted|invcf|invci|invcin|invcindent|invcompatible|invconfirm|invconsk|invconskey|invcopyindent|invcp|invcscopetag|invcscopeverbose|invcst|invcsverb|invcuc|invcul|invcursorcolumn|invcursorline|invdeco|invdelcombine|invdg|invdiff|invdigraph|invdisable|invea|inveb|inved|invedcompatible|invek|invendofline|inveol|invequalalways|inverrorbells|invesckeys|invet|invex|invexpandtab|invexrc|invfen|invfk|invfkmap|invfoldenable|invgd|invgdefault|invguipty|invhid|invhidden|invhk|invhkmap|invhkmapp|invhkp|invhls|invhlsearch|invic|invicon|invignorecase|invim|invimc|invimcmdline|invimd|invincsearch|invinf|invinfercase|invinsertmode|invis|invjoinspaces|invjs|invlazyredraw|invlbr|invlinebreak|invlisp|invlist|invloadplugins|invlpl|invlz|invma|invmacatsui|invmagic|invmh|invml|invmod|invmodeline|invmodifiable|invmodified|invmore|invmousef|invmousefocus|invmousehide|invnu|invnumber|invodev|invopendevice|invpaste|invpi|invpreserveindent|invpreviewwindow|invprompt|invpvw|invreadonly|invremap|invrestorescreen|invrevins|invri|invrightleft|invrightleftcmd|invrl|invrlc|invro|invrs|invru|invruler|invsb|invsc|invscb|invscrollbind|invscs|invsecure|invsft|invshellslash|invshelltemp|invshiftround|invshortname|invshowcmd|invshowfulltag|invshowmatch|invshowmode|invsi|invsm|invsmartcase|invsmartindent|invsmarttab|invsmd|invsn|invsol|invspell|invsplitbelow|invsplitright|invspr|invsr|invssl|invsta|invstartofline|invstmp|invswapfile|invswf|invta|invtagbsearch|invtagrelative|invtagstack|invtbi|invtbidi|invtbs|invtermbidi|invterse|invtextauto|invtextmode|invtf|invtgst|invtildeop|invtimeout|invtitle|invto|invtop|invtr|invttimeout|invttybuiltin|invttyfast|invtx|invvb|invvisualbell|invwa|invwarn|invwb|invweirdinvert|invwfh|invwfw|invwildmenu|invwinfixheight|invwinfixwidth|invwiv|invwmnu|invwrap|invwrapscan|invwrite|invwriteany|invwritebackup|invws|isf|isfname|isi|isident|isk|iskeyword|isprint|joinspaces|js|key|keymap|keymodel|keywordprg|km|kmp|kp|langmap|langmenu|laststatus|lazyredraw|lbr|lcs|linebreak|lines|linespace|lisp|lispwords|listchars|loadplugins|lpl|lsp|lz|macatsui|magic|makeef|makeprg|matchpairs|matchtime|maxcombine|maxfuncdepth|maxmapdepth|maxmem|maxmempattern|maxmemtot|mco|mef|menuitems|mfd|mh|mis|mkspellmem|ml|mls|mm|mmd|mmp|mmt|modeline|modelines|modifiable|modified|more|mouse|mousef|mousefocus|mousehide|mousem|mousemodel|mouses|mouseshape|mouset|mousetime|mp|mps|msm|mzq|mzquantum|nf|noacd|noai|noakm|noallowrevins|noaltkeymap|noanti|noantialias|noar|noarab|noarabic|noarabicshape|noari|noarshape|noautochdir|noautoindent|noautoread|noautowrite|noautowriteall|noaw|noawa|nobackup|noballooneval|nobeval|nobin|nobinary|nobiosk|nobioskey|nobk|nobl|nobomb|nobuflisted|nocf|noci|nocin|nocindent|nocompatible|noconfirm|noconsk|noconskey|nocopyindent|nocp|nocscopetag|nocscopeverbose|nocst|nocsverb|nocuc|nocul|nocursorcolumn|nocursorline|nodeco|nodelcombine|nodg|nodiff|nodigraph|nodisable|noea|noeb|noed|noedcompatible|noek|noendofline|noeol|noequalalways|noerrorbells|noesckeys|noet|noex|noexpandtab|noexrc|nofen|nofk|nofkmap|nofoldenable|nogd|nogdefault|noguipty|nohid|nohidden|nohk|nohkmap|nohkmapp|nohkp|nohls|noic|noicon|noignorecase|noim|noimc|noimcmdline|noimd|noincsearch|noinf|noinfercase|noinsertmode|nois|nojoinspaces|nojs|nolazyredraw|nolbr|nolinebreak|nolisp|nolist|noloadplugins|nolpl|nolz|noma|nomacatsui|nomagic|nomh|noml|nomod|nomodeline|nomodifiable|nomodified|nomore|nomousef|nomousefocus|nomousehide|nonu|nonumber|noodev|noopendevice|nopaste|nopi|nopreserveindent|nopreviewwindow|noprompt|nopvw|noreadonly|noremap|norestorescreen|norevins|nori|norightleft|norightleftcmd|norl|norlc|noro|nors|noru|noruler|nosb|nosc|noscb|noscrollbind|noscs|nosecure|nosft|noshellslash|noshelltemp|noshiftround|noshortname|noshowcmd|noshowfulltag|noshowmatch|noshowmode|nosi|nosm|nosmartcase|nosmartindent|nosmarttab|nosmd|nosn|nosol|nospell|nosplitbelow|nosplitright|nospr|nosr|nossl|nosta|nostartofline|nostmp|noswapfile|noswf|nota|notagbsearch|notagrelative|notagstack|notbi|notbidi|notbs|notermbidi|noterse|notextauto|notextmode|notf|notgst|notildeop|notimeout|notitle|noto|notop|notr|nottimeout|nottybuiltin|nottyfast|notx|novb|novisualbell|nowa|nowarn|nowb|noweirdinvert|nowfh|nowfw|nowildmenu|nowinfixheight|nowinfixwidth|nowiv|nowmnu|nowrap|nowrapscan|nowrite|nowriteany|nowritebackup|nows|nrformats|numberwidth|nuw|odev|oft|ofu|omnifunc|opendevice|operatorfunc|opfunc|osfiletype|pa|para|paragraphs|paste|pastetoggle|patchexpr|patchmode|path|pdev|penc|pex|pexpr|pfn|ph|pheader|pi|pm|pmbcs|pmbfn|popt|preserveindent|previewheight|previewwindow|printdevice|printencoding|printexpr|printfont|printheader|printmbcharset|printmbfont|printoptions|prompt|pt|pumheight|pvh|pvw|qe|quoteescape|readonly|remap|report|restorescreen|revins|rightleft|rightleftcmd|rl|rlc|ro|rs|rtp|ruf|ruler|rulerformat|runtimepath|sbo|sc|scb|scr|scroll|scrollbind|scrolljump|scrolloff|scrollopt|scs|sect|sections|secure|sel|selection|selectmode|sessionoptions|sft|shcf|shellcmdflag|shellpipe|shellquote|shellredir|shellslash|shelltemp|shelltype|shellxquote|shiftround|shiftwidth|shm|shortmess|shortname|showbreak|showcmd|showfulltag|showmatch|showmode|showtabline|shq|si|sidescroll|sidescrolloff|siso|sj|slm|smartcase|smartindent|smarttab|smc|smd|softtabstop|sol|spc|spell|spellcapcheck|spellfile|spelllang|spellsuggest|spf|spl|splitbelow|splitright|sps|sr|srr|ss|ssl|ssop|stal|startofline|statusline|stl|stmp|su|sua|suffixes|suffixesadd|sw|swapfile|swapsync|swb|swf|switchbuf|sws|sxq|syn|synmaxcol|syntax|t_AB|t_AF|t_AL|t_CS|t_CV|t_Ce|t_Co|t_Cs|t_DL|t_EI|t_F1|t_F2|t_F3|t_F4|t_F5|t_F6|t_F7|t_F8|t_F9|t_IE|t_IS|t_K1|t_K3|t_K4|t_K5|t_K6|t_K7|t_K8|t_K9|t_KA|t_KB|t_KC|t_KD|t_KE|t_KF|t_KG|t_KH|t_KI|t_KJ|t_KK|t_KL|t_RI|t_RV|t_SI|t_Sb|t_Sf|t_WP|t_WS|t_ZH|t_ZR|t_al|t_bc|t_cd|t_ce|t_cl|t_cm|t_cs|t_da|t_db|t_dl|t_fs|t_k1|t_k2|t_k3|t_k4|t_k5|t_k6|t_k7|t_k8|t_k9|t_kB|t_kD|t_kI|t_kN|t_kP|t_kb|t_kd|t_ke|t_kh|t_kl|t_kr|t_ks|t_ku|t_le|t_mb|t_md|t_me|t_mr|t_ms|t_nd|t_op|t_se|t_so|t_sr|t_te|t_ti|t_ts|t_ue|t_us|t_ut|t_vb|t_ve|t_vi|t_vs|t_xs|tabline|tabpagemax|tabstop|tagbsearch|taglength|tagrelative|tagstack|tal|tb|tbi|tbidi|tbis|tbs|tenc|term|termbidi|termencoding|terse|textauto|textmode|textwidth|tgst|thesaurus|tildeop|timeout|timeoutlen|title|titlelen|titleold|titlestring|toolbar|toolbariconsize|top|tpm|tsl|tsr|ttimeout|ttimeoutlen|ttm|tty|ttybuiltin|ttyfast|ttym|ttymouse|ttyscroll|ttytype|tw|tx|uc|ul|undolevels|updatecount|updatetime|ut|vb|vbs|vdir|verbosefile|vfile|viewdir|viewoptions|viminfo|virtualedit|visualbell|vop|wak|warn|wb|wc|wcm|wd|weirdinvert|wfh|wfw|whichwrap|wi|wig|wildchar|wildcharm|wildignore|wildmenu|wildmode|wildoptions|wim|winaltkeys|window|winfixheight|winfixwidth|winheight|winminheight|winminwidth|winwidth|wiv|wiw|wm|wmh|wmnu|wmw|wop|wrap|wrapmargin|wrapscan|writeany|writebackup|writedelay|ww)\b/,number:/\b(?:0x[\da-f]+|\d+(?:\.\d+)?)\b/i,operator:/\|\||&&|[-+.]=?|[=!](?:[=~][#?]?)?|[<>]=?[#?]?|[*\/%?]|\b(?:is(?:not)?)\b/,punctuation:/[{}[\](),;:]/}}return em}var tm,HT;function w4(){if(HT)return tm;HT=1,tm=e,e.displayName="visualBasic",e.aliases=[];function e(t){t.languages["visual-basic"]={comment:{pattern:/(?:['‘’]|REM\b)(?:[^\r\n_]|_(?:\r\n?|\n)?)*/i,inside:{keyword:/^REM/i}},directive:{pattern:/#(?:Const|Else|ElseIf|End|ExternalChecksum|ExternalSource|If|Region)(?:\b_[ \t]*(?:\r\n?|\n)|.)+/i,alias:"property",greedy:!0},string:{pattern:/\$?["“”](?:["“”]{2}|[^"“”])*["“”]C?/i,greedy:!0},date:{pattern:/#[ \t]*(?:\d+([/-])\d+\1\d+(?:[ \t]+(?:\d+[ \t]*(?:AM|PM)|\d+:\d+(?::\d+)?(?:[ \t]*(?:AM|PM))?))?|\d+[ \t]*(?:AM|PM)|\d+:\d+(?::\d+)?(?:[ \t]*(?:AM|PM))?)[ \t]*#/i,alias:"number"},number:/(?:(?:\b\d+(?:\.\d+)?|\.\d+)(?:E[+-]?\d+)?|&[HO][\dA-F]+)(?:[FRD]|U?[ILS])?/i,boolean:/\b(?:False|Nothing|True)\b/i,keyword:/\b(?:AddHandler|AddressOf|Alias|And(?:Also)?|As|Boolean|ByRef|Byte|ByVal|Call|Case|Catch|C(?:Bool|Byte|Char|Date|Dbl|Dec|Int|Lng|Obj|SByte|Short|Sng|Str|Type|UInt|ULng|UShort)|Char|Class|Const|Continue|Currency|Date|Decimal|Declare|Default|Delegate|Dim|DirectCast|Do|Double|Each|Else(?:If)?|End(?:If)?|Enum|Erase|Error|Event|Exit|Finally|For|Friend|Function|Get(?:Type|XMLNamespace)?|Global|GoSub|GoTo|Handles|If|Implements|Imports|In|Inherits|Integer|Interface|Is|IsNot|Let|Lib|Like|Long|Loop|Me|Mod|Module|Must(?:Inherit|Override)|My(?:Base|Class)|Namespace|Narrowing|New|Next|Not(?:Inheritable|Overridable)?|Object|Of|On|Operator|Option(?:al)?|Or(?:Else)?|Out|Overloads|Overridable|Overrides|ParamArray|Partial|Private|Property|Protected|Public|RaiseEvent|ReadOnly|ReDim|RemoveHandler|Resume|Return|SByte|Select|Set|Shadows|Shared|short|Single|Static|Step|Stop|String|Structure|Sub|SyncLock|Then|Throw|To|Try|TryCast|Type|TypeOf|U(?:Integer|Long|Short)|Until|Using|Variant|Wend|When|While|Widening|With(?:Events)?|WriteOnly|Xor)\b/i,operator:/[+\-*/\\^<=>&#@$%!]|\b_(?=[ \t]*[\r\n])/,punctuation:/[{}().,:?]/},t.languages.vb=t.languages["visual-basic"],t.languages.vba=t.languages["visual-basic"]}return tm}var nm,WT;function T4(){if(WT)return nm;WT=1,nm=e,e.displayName="warpscript",e.aliases=[];function e(t){t.languages.warpscript={comment:/#.*|\/\/.*|\/\*[\s\S]*?\*\//,string:{pattern:/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'|<'(?:[^\\']|'(?!>)|\\.)*'>/,greedy:!0},variable:/\$\S+/,macro:{pattern:/@\S+/,alias:"property"},keyword:/\b(?:BREAK|CHECKMACRO|CONTINUE|CUDF|DEFINED|DEFINEDMACRO|EVAL|FAIL|FOR|FOREACH|FORSTEP|IFT|IFTE|MSGFAIL|NRETURN|RETHROW|RETURN|SWITCH|TRY|UDF|UNTIL|WHILE)\b/,number:/[+-]?\b(?:NaN|Infinity|\d+(?:\.\d*)?(?:[Ee][+-]?\d+)?|0x[\da-fA-F]+|0b[01]+)\b/,boolean:/\b(?:F|T|false|true)\b/,punctuation:/<%|%>|[{}[\]()]/,operator:/==|&&?|\|\|?|\*\*?|>>>?|<<|[<>!~]=?|[-/%^]|\+!?|\b(?:AND|NOT|OR)\b/}}return nm}var rm,VT;function x4(){if(VT)return rm;VT=1,rm=e,e.displayName="wasm",e.aliases=[];function e(t){t.languages.wasm={comment:[/\(;[\s\S]*?;\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/"(?:\\[\s\S]|[^"\\])*"/,greedy:!0},keyword:[{pattern:/\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|neg?|nearest|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|sqrt|store(?:8|16|32)?|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,inside:{punctuation:/\./}},/\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/],variable:/\$[\w!#$%&'*+\-./:<=>?@\\^`|~]+/,number:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,punctuation:/[()]/}}return rm}var am,YT;function A4(){if(YT)return am;YT=1,am=e,e.displayName="webIdl",e.aliases=[];function e(t){(function(n){var i=/(?:\B-|\b_|\b)[A-Za-z][\w-]*(?![\w-])/.source,o="(?:"+/\b(?:unsigned\s+)?long\s+long(?![\w-])/.source+"|"+/\b(?:unrestricted|unsigned)\s+[a-z]+(?![\w-])/.source+"|"+/(?!(?:unrestricted|unsigned)\b)/.source+i+/(?:\s*<(?:[^<>]|<[^<>]*>)*>)?/.source+")"+/(?:\s*\?)?/.source,l={};n.languages["web-idl"]={comment:{pattern:/\/\/.*|\/\*[\s\S]*?\*\//,greedy:!0},string:{pattern:/"[^"]*"/,greedy:!0},namespace:{pattern:RegExp(/(\bnamespace\s+)/.source+i),lookbehind:!0},"class-name":[{pattern:/(^|[^\w-])(?:iterable|maplike|setlike)\s*<(?:[^<>]|<[^<>]*>)*>/,lookbehind:!0,inside:l},{pattern:RegExp(/(\b(?:attribute|const|deleter|getter|optional|setter)\s+)/.source+o),lookbehind:!0,inside:l},{pattern:RegExp("("+/\bcallback\s+/.source+i+/\s*=\s*/.source+")"+o),lookbehind:!0,inside:l},{pattern:RegExp(/(\btypedef\b\s*)/.source+o),lookbehind:!0,inside:l},{pattern:RegExp(/(\b(?:callback|dictionary|enum|interface(?:\s+mixin)?)\s+)(?!(?:interface|mixin)\b)/.source+i),lookbehind:!0},{pattern:RegExp(/(:\s*)/.source+i),lookbehind:!0},RegExp(i+/(?=\s+(?:implements|includes)\b)/.source),{pattern:RegExp(/(\b(?:implements|includes)\s+)/.source+i),lookbehind:!0},{pattern:RegExp(o+"(?="+/\s*(?:\.{3}\s*)?/.source+i+/\s*[(),;=]/.source+")"),inside:l}],builtin:/\b(?:ArrayBuffer|BigInt64Array|BigUint64Array|ByteString|DOMString|DataView|Float32Array|Float64Array|FrozenArray|Int16Array|Int32Array|Int8Array|ObservableArray|Promise|USVString|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray)\b/,keyword:[/\b(?:async|attribute|callback|const|constructor|deleter|dictionary|enum|getter|implements|includes|inherit|interface|mixin|namespace|null|optional|or|partial|readonly|required|setter|static|stringifier|typedef|unrestricted)\b/,/\b(?:any|bigint|boolean|byte|double|float|iterable|long|maplike|object|octet|record|sequence|setlike|short|symbol|undefined|unsigned|void)\b/],boolean:/\b(?:false|true)\b/,number:{pattern:/(^|[^\w-])-?(?:0x[0-9a-f]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|NaN|Infinity)(?![\w-])/i,lookbehind:!0},operator:/\.{3}|[=:?<>-]/,punctuation:/[(){}[\].,;]/};for(var u in n.languages["web-idl"])u!=="class-name"&&(l[u]=n.languages["web-idl"][u]);n.languages.webidl=n.languages["web-idl"]})(t)}return am}var im,KT;function R4(){if(KT)return im;KT=1,im=e,e.displayName="wiki",e.aliases=[];function e(t){t.languages.wiki=t.languages.extend("markup",{"block-comment":{pattern:/(^|[^\\])\/\*[\s\S]*?\*\//,lookbehind:!0,alias:"comment"},heading:{pattern:/^(=+)[^=\r\n].*?\1/m,inside:{punctuation:/^=+|=+$/,important:/.+/}},emphasis:{pattern:/('{2,5}).+?\1/,inside:{"bold-italic":{pattern:/(''''').+?(?=\1)/,lookbehind:!0,alias:["bold","italic"]},bold:{pattern:/(''')[^'](?:.*?[^'])?(?=\1)/,lookbehind:!0},italic:{pattern:/('')[^'](?:.*?[^'])?(?=\1)/,lookbehind:!0},punctuation:/^''+|''+$/}},hr:{pattern:/^-{4,}/m,alias:"punctuation"},url:[/ISBN +(?:97[89][ -]?)?(?:\d[ -]?){9}[\dx]\b|(?:PMID|RFC) +\d+/i,/\[\[.+?\]\]|\[.+?\]/],variable:[/__[A-Z]+__/,/\{{3}.+?\}{3}/,/\{\{.+?\}\}/],symbol:[/^#redirect/im,/~{3,5}/],"table-tag":{pattern:/((?:^|[|!])[|!])[^|\r\n]+\|(?!\|)/m,lookbehind:!0,inside:{"table-bar":{pattern:/\|$/,alias:"punctuation"},rest:t.languages.markup.tag.inside}},punctuation:/^(?:\{\||\|\}|\|-|[*#:;!|])|\|\||!!/m}),t.languages.insertBefore("wiki","tag",{nowiki:{pattern:/<(nowiki|pre|source)\b[^>]*>[\s\S]*?<\/\1>/i,inside:{tag:{pattern:/<(?:nowiki|pre|source)\b[^>]*>|<\/(?:nowiki|pre|source)>/i,inside:t.languages.markup.tag.inside}}}})}return im}var om,ZT;function N4(){if(ZT)return om;ZT=1,om=e,e.displayName="wolfram",e.aliases=["mathematica","wl","nb"];function e(t){t.languages.wolfram={comment:/\(\*(?:\(\*(?:[^*]|\*(?!\)))*\*\)|(?!\(\*)[\s\S])*?\*\)/,string:{pattern:/"(?:\\.|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:Abs|AbsArg|Accuracy|Block|Do|For|Function|If|Manipulate|Module|Nest|NestList|None|Return|Switch|Table|Which|While)\b/,context:{pattern:/\b\w+`+\w*/,alias:"class-name"},blank:{pattern:/\b\w+_\b/,alias:"regex"},"global-variable":{pattern:/\$\w+/,alias:"variable"},boolean:/\b(?:False|True)\b/,number:/(?:\b(?=\d)|\B(?=\.))(?:0[bo])?(?:(?:\d|0x[\da-f])[\da-f]*(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?j?\b/i,operator:/\/\.|;|=\.|\^=|\^:=|:=|<<|>>|<\||\|>|:>|\|->|->|<-|@@@|@@|@|\/@|=!=|===|==|=|\+|-|\^|\[\/-+%=\]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},t.languages.mathematica=t.languages.wolfram,t.languages.wl=t.languages.wolfram,t.languages.nb=t.languages.wolfram}return om}var sm,XT;function C4(){if(XT)return sm;XT=1,sm=e,e.displayName="wren",e.aliases=[];function e(t){t.languages.wren={comment:[{pattern:/\/\*(?:[^*/]|\*(?!\/)|\/(?!\*)|\/\*(?:[^*/]|\*(?!\/)|\/(?!\*)|\/\*(?:[^*/]|\*(?!\/)|\/(?!\*))*\*\/)*\*\/)*\*\//,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],"triple-quoted-string":{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string"},"string-literal":null,hashbang:{pattern:/^#!\/.+/,greedy:!0,alias:"comment"},attribute:{pattern:/#!?[ \t\u3000]*\w+/,alias:"keyword"},"class-name":[{pattern:/(\bclass\s+)\w+/,lookbehind:!0},/\b[A-Z][a-z\d_]*\b/],constant:/\b[A-Z][A-Z\d_]*\b/,null:{pattern:/\bnull\b/,alias:"keyword"},keyword:/\b(?:as|break|class|construct|continue|else|for|foreign|if|import|in|is|return|static|super|this|var|while)\b/,boolean:/\b(?:false|true)\b/,number:/\b(?:0x[\da-f]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?)\b/i,function:/\b[a-z_]\w*(?=\s*[({])/i,operator:/<<|>>|[=!<>]=?|&&|\|\||[-+*/%~^&|?:]|\.{2,3}/,punctuation:/[\[\](){}.,;]/},t.languages.wren["string-literal"]={pattern:/(^|[^\\"])"(?:[^\\"%]|\\[\s\S]|%(?!\()|%\((?:[^()]|\((?:[^()]|\([^)]*\))*\))*\))*"/,lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)%\((?:[^()]|\((?:[^()]|\([^)]*\))*\))*\)/,lookbehind:!0,inside:{expression:{pattern:/^(%\()[\s\S]+(?=\)$)/,lookbehind:!0,inside:t.languages.wren},"interpolation-punctuation":{pattern:/^%\(|\)$/,alias:"punctuation"}}},string:/[\s\S]+/}}}return sm}var lm,QT;function I4(){if(QT)return lm;QT=1,lm=e,e.displayName="xeora",e.aliases=["xeoracube"];function e(t){(function(n){n.languages.xeora=n.languages.extend("markup",{constant:{pattern:/\$(?:DomainContents|PageRenderDuration)\$/,inside:{punctuation:{pattern:/\$/}}},variable:{pattern:/\$@?(?:#+|[-+*~=^])?[\w.]+\$/,inside:{punctuation:{pattern:/[$.]/},operator:{pattern:/#+|[-+*~=^@]/}}},"function-inline":{pattern:/\$F:[-\w.]+\?[-\w.]+(?:,(?:(?:@[-#]*\w+\.[\w+.]\.*)*\|)*(?:(?:[\w+]|[-#*.~^]+[\w+]|=\S)(?:[^$=]|=+[^=])*=*|(?:@[-#]*\w+\.[\w+.]\.*)+(?:(?:[\w+]|[-#*~^][-#*.~^]*[\w+]|=\S)(?:[^$=]|=+[^=])*=*)?)?)?\$/,inside:{variable:{pattern:/(?:[,|])@?(?:#+|[-+*~=^])?[\w.]+/,inside:{punctuation:{pattern:/[,.|]/},operator:{pattern:/#+|[-+*~=^@]/}}},punctuation:{pattern:/\$\w:|[$:?.,|]/}},alias:"function"},"function-block":{pattern:/\$XF:\{[-\w.]+\?[-\w.]+(?:,(?:(?:@[-#]*\w+\.[\w+.]\.*)*\|)*(?:(?:[\w+]|[-#*.~^]+[\w+]|=\S)(?:[^$=]|=+[^=])*=*|(?:@[-#]*\w+\.[\w+.]\.*)+(?:(?:[\w+]|[-#*~^][-#*.~^]*[\w+]|=\S)(?:[^$=]|=+[^=])*=*)?)?)?\}:XF\$/,inside:{punctuation:{pattern:/[$:{}?.,|]/}},alias:"function"},"directive-inline":{pattern:/\$\w(?:#\d+\+?)?(?:\[[-\w.]+\])?:[-\/\w.]+\$/,inside:{punctuation:{pattern:/\$(?:\w:|C(?:\[|#\d))?|[:{[\]]/,inside:{tag:{pattern:/#\d/}}}},alias:"function"},"directive-block-open":{pattern:/\$\w+:\{|\$\w(?:#\d+\+?)?(?:\[[-\w.]+\])?:[-\w.]+:\{(?:![A-Z]+)?/,inside:{punctuation:{pattern:/\$(?:\w:|C(?:\[|#\d))?|[:{[\]]/,inside:{tag:{pattern:/#\d/}}},attribute:{pattern:/![A-Z]+$/,inside:{punctuation:{pattern:/!/}},alias:"keyword"}},alias:"function"},"directive-block-separator":{pattern:/\}:[-\w.]+:\{/,inside:{punctuation:{pattern:/[:{}]/}},alias:"function"},"directive-block-close":{pattern:/\}:[-\w.]+\$/,inside:{punctuation:{pattern:/[:{}$]/}},alias:"function"}}),n.languages.insertBefore("inside","punctuation",{variable:n.languages.xeora["function-inline"].inside.variable},n.languages.xeora["function-block"]),n.languages.xeoracube=n.languages.xeora})(t)}return lm}var um,JT;function O4(){if(JT)return um;JT=1,um=e,e.displayName="xmlDoc",e.aliases=[];function e(t){(function(n){function i(c,p){n.languages[c]&&n.languages.insertBefore(c,"comment",{"doc-comment":p})}var o=n.languages.markup.tag,l={pattern:/\/\/\/.*/,greedy:!0,alias:"comment",inside:{tag:o}},u={pattern:/'''.*/,greedy:!0,alias:"comment",inside:{tag:o}};i("csharp",l),i("fsharp",l),i("vbnet",u)})(t)}return um}var cm,ex;function L4(){if(ex)return cm;ex=1,cm=e,e.displayName="xojo",e.aliases=[];function e(t){t.languages.xojo={comment:{pattern:/(?:'|\/\/|Rem\b).+/i,greedy:!0},string:{pattern:/"(?:""|[^"])*"/,greedy:!0},number:[/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:E[+-]?\d+)?/i,/&[bchou][a-z\d]+/i],directive:{pattern:/#(?:Else|ElseIf|Endif|If|Pragma)\b/i,alias:"property"},keyword:/\b(?:AddHandler|App|Array|As(?:signs)?|Auto|Boolean|Break|By(?:Ref|Val)|Byte|Call|Case|Catch|CFStringRef|CGFloat|Class|Color|Const|Continue|CString|Currency|CurrentMethodName|Declare|Delegate|Dim|Do(?:uble|wnTo)?|Each|Else(?:If)?|End|Enumeration|Event|Exception|Exit|Extends|False|Finally|For|Function|Get|GetTypeInfo|Global|GOTO|If|Implements|In|Inherits|Int(?:8|16|32|64|eger|erface)?|Lib|Loop|Me|Module|Next|Nil|Object|Optional|OSType|ParamArray|Private|Property|Protected|PString|Ptr|Raise(?:Event)?|ReDim|RemoveHandler|Return|Select(?:or)?|Self|Set|Shared|Short|Single|Soft|Static|Step|String|Sub|Super|Text|Then|To|True|Try|Ubound|UInt(?:8|16|32|64|eger)?|Until|Using|Var(?:iant)?|Wend|While|WindowPtr|WString)\b/i,operator:/<[=>]?|>=?|[+\-*\/\\^=]|\b(?:AddressOf|And|Ctype|IsA?|Mod|New|Not|Or|WeakAddressOf|Xor)\b/i,punctuation:/[.,;:()]/}}return cm}var dm,tx;function D4(){if(tx)return dm;tx=1,dm=e,e.displayName="xquery",e.aliases=[];function e(t){(function(n){n.languages.xquery=n.languages.extend("markup",{"xquery-comment":{pattern:/\(:[\s\S]*?:\)/,greedy:!0,alias:"comment"},string:{pattern:/(["'])(?:\1\1|(?!\1)[\s\S])*\1/,greedy:!0},extension:{pattern:/\(#.+?#\)/,alias:"symbol"},variable:/\$[-\w:]+/,axis:{pattern:/(^|[^-])(?:ancestor(?:-or-self)?|attribute|child|descendant(?:-or-self)?|following(?:-sibling)?|parent|preceding(?:-sibling)?|self)(?=::)/,lookbehind:!0,alias:"operator"},"keyword-operator":{pattern:/(^|[^:-])\b(?:and|castable as|div|eq|except|ge|gt|idiv|instance of|intersect|is|le|lt|mod|ne|or|union)\b(?=$|[^:-])/,lookbehind:!0,alias:"operator"},keyword:{pattern:/(^|[^:-])\b(?:as|ascending|at|base-uri|boundary-space|case|cast as|collation|construction|copy-namespaces|declare|default|descending|else|empty (?:greatest|least)|encoding|every|external|for|function|if|import|in|inherit|lax|let|map|module|namespace|no-inherit|no-preserve|option|order(?: by|ed|ing)?|preserve|return|satisfies|schema|some|stable|strict|strip|then|to|treat as|typeswitch|unordered|validate|variable|version|where|xquery)\b(?=$|[^:-])/,lookbehind:!0},function:/[\w-]+(?::[\w-]+)*(?=\s*\()/,"xquery-element":{pattern:/(element\s+)[\w-]+(?::[\w-]+)*/,lookbehind:!0,alias:"tag"},"xquery-attribute":{pattern:/(attribute\s+)[\w-]+(?::[\w-]+)*/,lookbehind:!0,alias:"attr-name"},builtin:{pattern:/(^|[^:-])\b(?:attribute|comment|document|element|processing-instruction|text|xs:(?:ENTITIES|ENTITY|ID|IDREFS?|NCName|NMTOKENS?|NOTATION|Name|QName|anyAtomicType|anyType|anyURI|base64Binary|boolean|byte|date|dateTime|dayTimeDuration|decimal|double|duration|float|gDay|gMonth|gMonthDay|gYear|gYearMonth|hexBinary|int|integer|language|long|negativeInteger|nonNegativeInteger|nonPositiveInteger|normalizedString|positiveInteger|short|string|time|token|unsigned(?:Byte|Int|Long|Short)|untyped(?:Atomic)?|yearMonthDuration))\b(?=$|[^:-])/,lookbehind:!0},number:/\b\d+(?:\.\d+)?(?:E[+-]?\d+)?/,operator:[/[+*=?|@]|\.\.?|:=|!=|<[=<]?|>[=>]?/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}],punctuation:/[[\](){},;:/]/}),n.languages.xquery.tag.pattern=/<\/?(?!\d)[^\s>\/=$<%]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|\{(?!\{)(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])+\}|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/,n.languages.xquery.tag.inside["attr-value"].pattern=/=(?:("|')(?:\\[\s\S]|\{(?!\{)(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])+\}|(?!\1)[^\\])*\1|[^\s'">=]+)/,n.languages.xquery.tag.inside["attr-value"].inside.punctuation=/^="|"$/,n.languages.xquery.tag.inside["attr-value"].inside.expression={pattern:/\{(?!\{)(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])+\}/,inside:n.languages.xquery,alias:"language-xquery"};var i=function(l){return typeof l=="string"?l:typeof l.content=="string"?l.content:l.content.map(i).join("")},o=function(l){for(var u=[],c=0;c0&&u[u.length-1].tagName===i(p.content[0].content[1])&&u.pop():p.content[p.content.length-1].content==="/>"||u.push({tagName:i(p.content[0].content[1]),openedBraces:0}):u.length>0&&p.type==="punctuation"&&p.content==="{"&&(!l[c+1]||l[c+1].type!=="punctuation"||l[c+1].content!=="{")&&(!l[c-1]||l[c-1].type!=="plain-text"||l[c-1].content!=="{")?u[u.length-1].openedBraces++:u.length>0&&u[u.length-1].openedBraces>0&&p.type==="punctuation"&&p.content==="}"?u[u.length-1].openedBraces--:p.type!=="comment"&&(f=!0)),(f||typeof p=="string")&&u.length>0&&u[u.length-1].openedBraces===0){var m=i(p);c0&&(typeof l[c-1]=="string"||l[c-1].type==="plain-text")&&(m=i(l[c-1])+m,l.splice(c-1,1),c--),/^\s+$/.test(m)?l[c]=m:l[c]=new n.Token("plain-text",m,null,m)}p.content&&typeof p.content!="string"&&o(p.content)}};n.hooks.add("after-tokenize",function(l){l.language==="xquery"&&o(l.tokens)})})(t)}return dm}var pm,nx;function M4(){if(nx)return pm;nx=1,pm=e,e.displayName="yang",e.aliases=[];function e(t){t.languages.yang={comment:/\/\*[\s\S]*?\*\/|\/\/.*/,string:{pattern:/"(?:[^\\"]|\\.)*"|'[^']*'/,greedy:!0},keyword:{pattern:/(^|[{};\r\n][ \t]*)[a-z_][\w.-]*/i,lookbehind:!0},namespace:{pattern:/(\s)[a-z_][\w.-]*(?=:)/i,lookbehind:!0},boolean:/\b(?:false|true)\b/,operator:/\+/,punctuation:/[{};:]/}}return pm}var fm,rx;function F4(){if(rx)return fm;rx=1,fm=e,e.displayName="zig",e.aliases=[];function e(t){(function(n){function i(m){return function(){return m}}var o=/\b(?:align|allowzero|and|anyframe|anytype|asm|async|await|break|cancel|catch|comptime|const|continue|defer|else|enum|errdefer|error|export|extern|fn|for|if|inline|linksection|nakedcc|noalias|nosuspend|null|or|orelse|packed|promise|pub|resume|return|stdcallcc|struct|suspend|switch|test|threadlocal|try|undefined|union|unreachable|usingnamespace|var|volatile|while)\b/,l="\\b(?!"+o.source+")(?!\\d)\\w+\\b",u=/align\s*\((?:[^()]|\([^()]*\))*\)/.source,c=/(?:\?|\bpromise->|(?:\[[^[\]]*\]|\*(?!\*)|\*\*)(?:\s*|\s*const\b|\s*volatile\b|\s*allowzero\b)*)/.source.replace(//g,i(u)),p=/(?:\bpromise\b|(?:\berror\.)?(?:\.)*(?!\s+))/.source.replace(//g,i(l)),f="(?!\\s)(?:!?\\s*(?:"+c+"\\s*)*"+p+")+";n.languages.zig={comment:[{pattern:/\/\/[/!].*/,alias:"doc-comment"},/\/{2}.*/],string:[{pattern:/(^|[^\\@])c?"(?:[^"\\\r\n]|\\.)*"/,lookbehind:!0,greedy:!0},{pattern:/([\r\n])([ \t]+c?\\{2}).*(?:(?:\r\n?|\n)\2.*)*/,lookbehind:!0,greedy:!0}],char:{pattern:/(^|[^\\])'(?:[^'\\\r\n]|[\uD800-\uDFFF]{2}|\\(?:.|x[a-fA-F\d]{2}|u\{[a-fA-F\d]{1,6}\}))'/,lookbehind:!0,greedy:!0},builtin:/\B@(?!\d)\w+(?=\s*\()/,label:{pattern:/(\b(?:break|continue)\s*:\s*)\w+\b|\b(?!\d)\w+\b(?=\s*:\s*(?:\{|while\b))/,lookbehind:!0},"class-name":[/\b(?!\d)\w+(?=\s*=\s*(?:(?:extern|packed)\s+)?(?:enum|struct|union)\s*[({])/,{pattern:RegExp(/(:\s*)(?=\s*(?:\s*)?[=;,)])|(?=\s*(?:\s*)?\{)/.source.replace(//g,i(f)).replace(//g,i(u))),lookbehind:!0,inside:null},{pattern:RegExp(/(\)\s*)(?=\s*(?:\s*)?;)/.source.replace(//g,i(f)).replace(//g,i(u))),lookbehind:!0,inside:null}],"builtin-type":{pattern:/\b(?:anyerror|bool|c_u?(?:int|long|longlong|short)|c_longdouble|c_void|comptime_(?:float|int)|f(?:16|32|64|128)|[iu](?:8|16|32|64|128|size)|noreturn|type|void)\b/,alias:"keyword"},keyword:o,function:/\b(?!\d)\w+(?=\s*\()/,number:/\b(?:0b[01]+|0o[0-7]+|0x[a-fA-F\d]+(?:\.[a-fA-F\d]*)?(?:[pP][+-]?[a-fA-F\d]+)?|\d+(?:\.\d*)?(?:[eE][+-]?\d+)?)\b/,boolean:/\b(?:false|true)\b/,operator:/\.[*?]|\.{2,3}|[-=]>|\*\*|\+\+|\|\||(?:<<|>>|[-+*]%|[-+*/%^&|<>!=])=?|[?~]/,punctuation:/[.:,;(){}[\]]/},n.languages.zig["class-name"].forEach(function(m){m.inside===null&&(m.inside=n.languages.zig)})})(t)}return fm}var gm,ax;function P4(){if(ax)return gm;ax=1;var e=JP();return gm=e,e.register(tU()),e.register(nU()),e.register(rU()),e.register(aU()),e.register(iU()),e.register(oU()),e.register(sU()),e.register(lU()),e.register(uU()),e.register(cU()),e.register(dU()),e.register(pU()),e.register(fU()),e.register(gU()),e.register(mU()),e.register(hU()),e.register(bU()),e.register(yU()),e.register(EU()),e.register(SU()),e.register(vU()),e.register(kU()),e.register(JA()),e.register(eR()),e.register(_U()),e.register(wU()),e.register(TU()),e.register(xU()),e.register(AU()),e.register(RU()),e.register(NU()),e.register(CU()),e.register(IU()),e.register(OU()),e.register(Yr()),e.register(LU()),e.register(DU()),e.register(MU()),e.register(FU()),e.register(PU()),e.register(UU()),e.register(BU()),e.register(jU()),e.register(zU()),e.register(fh()),e.register($U()),e.register(ks()),e.register(qU()),e.register(GU()),e.register(HU()),e.register(WU()),e.register(VU()),e.register(YU()),e.register(KU()),e.register(ZU()),e.register(XU()),e.register(QU()),e.register(JU()),e.register(eB()),e.register(tB()),e.register(nB()),e.register(rB()),e.register(aB()),e.register(iB()),e.register(oB()),e.register(sB()),e.register(lB()),e.register(uB()),e.register(cB()),e.register(dB()),e.register(pB()),e.register(fB()),e.register(gB()),e.register(mB()),e.register(hB()),e.register(bB()),e.register(yB()),e.register(EB()),e.register(SB()),e.register(vB()),e.register(kB()),e.register(_B()),e.register(wB()),e.register(TB()),e.register(xB()),e.register(AB()),e.register(RB()),e.register(NB()),e.register(CB()),e.register(IB()),e.register(OB()),e.register(LB()),e.register(DB()),e.register(MB()),e.register(gh()),e.register(FB()),e.register(PB()),e.register(UB()),e.register(BB()),e.register(jB()),e.register(zB()),e.register($B()),e.register(qB()),e.register(GB()),e.register(HB()),e.register(WB()),e.register(VB()),e.register(YB()),e.register(KB()),e.register(ZB()),e.register(XB()),e.register(QB()),e.register(mh()),e.register(JB()),e.register(ws()),e.register(ej()),e.register(tj()),e.register(nj()),e.register(rj()),e.register(aj()),e.register(ij()),e.register(oj()),e.register(bh()),e.register(sj()),e.register(lj()),e.register(uj()),e.register(nR()),e.register(cj()),e.register(dj()),e.register(pj()),e.register(fj()),e.register(gj()),e.register(mj()),e.register(hj()),e.register(bj()),e.register(yj()),e.register(Ej()),e.register(Sj()),e.register(vj()),e.register(kj()),e.register(_j()),e.register(wj()),e.register(Tj()),e.register(tR()),e.register(xj()),e.register(Aj()),e.register(Rj()),e.register(an()),e.register(Nj()),e.register(Cj()),e.register(Ij()),e.register(Oj()),e.register(Lj()),e.register(Dj()),e.register(Mj()),e.register(Fj()),e.register(Pj()),e.register(Uj()),e.register(Bj()),e.register(jj()),e.register(zj()),e.register($j()),e.register(qj()),e.register(Gj()),e.register(Hj()),e.register(Wj()),e.register(Vj()),e.register(Yj()),e.register(Kj()),e.register(Zj()),e.register(Xj()),e.register(Qj()),e.register(Jj()),e.register(ez()),e.register(tz()),e.register(nz()),e.register(rz()),e.register(az()),e.register(iz()),e.register(oz()),e.register(Ts()),e.register(sz()),e.register(lz()),e.register(uz()),e.register(cz()),e.register(dz()),e.register(pz()),e.register(fz()),e.register(gz()),e.register(mz()),e.register(hz()),e.register(bz()),e.register(yz()),e.register(Ez()),e.register(Sz()),e.register(vz()),e.register(kz()),e.register(_z()),e.register(wz()),e.register(Tz()),e.register(xz()),e.register(Az()),e.register(Rz()),e.register(Nz()),e.register(Cz()),e.register(Iz()),e.register(Oz()),e.register(Lz()),e.register(Dz()),e.register(Mz()),e.register(Fz()),e.register(_s()),e.register(Pz()),e.register(Uz()),e.register(Bz()),e.register(jz()),e.register(yh()),e.register(zz()),e.register($z()),e.register(qz()),e.register(Gz()),e.register(Hz()),e.register(Wz()),e.register(Vz()),e.register(Yz()),e.register(Kz()),e.register(Zz()),e.register(Xz()),e.register(Qz()),e.register(ph()),e.register(Jz()),e.register(e4()),e.register(t4()),e.register(n4()),e.register(r4()),e.register(a4()),e.register(Eh()),e.register(i4()),e.register(o4()),e.register(s4()),e.register(l4()),e.register(u4()),e.register(c4()),e.register(d4()),e.register(p4()),e.register(rR()),e.register(f4()),e.register(hh()),e.register(g4()),e.register(m4()),e.register(h4()),e.register(b4()),e.register(y4()),e.register(E4()),e.register(aR()),e.register(S4()),e.register(v4()),e.register(k4()),e.register(_4()),e.register(w4()),e.register(T4()),e.register(x4()),e.register(A4()),e.register(R4()),e.register(N4()),e.register(C4()),e.register(I4()),e.register(O4()),e.register(L4()),e.register(D4()),e.register(iR()),e.register(M4()),e.register(F4()),gm}var U4=P4();const B4=Ni(U4);var oR=TM(B4,eU);oR.supportedLanguages=xM;const j4={'code[class*="language-"]':{color:"#393A34",fontFamily:'"Consolas", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace',direction:"ltr",textAlign:"left",whiteSpace:"pre",wordSpacing:"normal",wordBreak:"normal",fontSize:".9em",lineHeight:"1.2em",MozTabSize:"4",OTabSize:"4",tabSize:"4",WebkitHyphens:"none",MozHyphens:"none",msHyphens:"none",hyphens:"none"},'pre[class*="language-"]':{color:"#393A34",fontFamily:'"Consolas", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace',direction:"ltr",textAlign:"left",whiteSpace:"pre",wordSpacing:"normal",wordBreak:"normal",fontSize:".9em",lineHeight:"1.2em",MozTabSize:"4",OTabSize:"4",tabSize:"4",WebkitHyphens:"none",MozHyphens:"none",msHyphens:"none",hyphens:"none",padding:"1em",margin:".5em 0",overflow:"auto",border:"1px solid #dddddd",backgroundColor:"white"},'pre > code[class*="language-"]':{fontSize:"1em"},'pre[class*="language-"]::-moz-selection':{background:"#C1DEF1"},'pre[class*="language-"] ::-moz-selection':{background:"#C1DEF1"},'code[class*="language-"]::-moz-selection':{background:"#C1DEF1"},'code[class*="language-"] ::-moz-selection':{background:"#C1DEF1"},'pre[class*="language-"]::selection':{background:"#C1DEF1"},'pre[class*="language-"] ::selection':{background:"#C1DEF1"},'code[class*="language-"]::selection':{background:"#C1DEF1"},'code[class*="language-"] ::selection':{background:"#C1DEF1"},':not(pre) > code[class*="language-"]':{padding:".2em",paddingTop:"1px",paddingBottom:"1px",background:"#f8f8f8",border:"1px solid #dddddd"},comment:{color:"#008000",fontStyle:"italic"},prolog:{color:"#008000",fontStyle:"italic"},doctype:{color:"#008000",fontStyle:"italic"},cdata:{color:"#008000",fontStyle:"italic"},namespace:{Opacity:".7"},string:{color:"#A31515"},punctuation:{color:"#393A34"},operator:{color:"#393A34"},url:{color:"#36acaa"},symbol:{color:"#36acaa"},number:{color:"#36acaa"},boolean:{color:"#36acaa"},variable:{color:"#36acaa"},constant:{color:"#36acaa"},inserted:{color:"#36acaa"},atrule:{color:"#0000ff"},keyword:{color:"#0000ff"},"attr-value":{color:"#0000ff"},".language-autohotkey .token.selector":{color:"#0000ff"},".language-json .token.boolean":{color:"#0000ff"},".language-json .token.number":{color:"#0000ff"},'code[class*="language-css"]':{color:"#0000ff"},function:{color:"#393A34"},deleted:{color:"#9a050f"},".language-autohotkey .token.tag":{color:"#9a050f"},selector:{color:"#800000"},".language-autohotkey .token.keyword":{color:"#00009f"},important:{color:"#e90",fontWeight:"bold"},bold:{fontWeight:"bold"},italic:{fontStyle:"italic"},"class-name":{color:"#2B91AF"},".language-json .token.property":{color:"#2B91AF"},tag:{color:"#800000"},"attr-name":{color:"#ff0000"},property:{color:"#ff0000"},regex:{color:"#ff0000"},entity:{color:"#ff0000"},"directive.tag.tag":{background:"#ffff00",color:"#393A34"},".line-numbers.line-numbers .line-numbers-rows":{borderRightColor:"#a5a5a5"},".line-numbers .line-numbers-rows > span:before":{color:"#2B91AF"},".line-highlight.line-highlight":{background:"linear-gradient(to right, rgba(193, 222, 241, 0.2) 70%, rgba(221, 222, 241, 0))"}},z4={'pre[class*="language-"]':{color:"#d4d4d4",fontSize:"13px",textShadow:"none",fontFamily:'Menlo, Monaco, Consolas, "Andale Mono", "Ubuntu Mono", "Courier New", monospace',direction:"ltr",textAlign:"left",whiteSpace:"pre",wordSpacing:"normal",wordBreak:"normal",lineHeight:"1.5",MozTabSize:"4",OTabSize:"4",tabSize:"4",WebkitHyphens:"none",MozHyphens:"none",msHyphens:"none",hyphens:"none",padding:"1em",margin:".5em 0",overflow:"auto",background:"#1e1e1e"},'code[class*="language-"]':{color:"#d4d4d4",fontSize:"13px",textShadow:"none",fontFamily:'Menlo, Monaco, Consolas, "Andale Mono", "Ubuntu Mono", "Courier New", monospace',direction:"ltr",textAlign:"left",whiteSpace:"pre",wordSpacing:"normal",wordBreak:"normal",lineHeight:"1.5",MozTabSize:"4",OTabSize:"4",tabSize:"4",WebkitHyphens:"none",MozHyphens:"none",msHyphens:"none",hyphens:"none"},'pre[class*="language-"]::selection':{textShadow:"none",background:"#264F78"},'code[class*="language-"]::selection':{textShadow:"none",background:"#264F78"},'pre[class*="language-"] *::selection':{textShadow:"none",background:"#264F78"},'code[class*="language-"] *::selection':{textShadow:"none",background:"#264F78"},':not(pre) > code[class*="language-"]':{padding:".1em .3em",borderRadius:".3em",color:"#db4c69",background:"#1e1e1e"},".namespace":{Opacity:".7"},"doctype.doctype-tag":{color:"#569CD6"},"doctype.name":{color:"#9cdcfe"},comment:{color:"#6a9955"},prolog:{color:"#6a9955"},punctuation:{color:"#d4d4d4"},".language-html .language-css .token.punctuation":{color:"#d4d4d4"},".language-html .language-javascript .token.punctuation":{color:"#d4d4d4"},property:{color:"#9cdcfe"},tag:{color:"#569cd6"},boolean:{color:"#569cd6"},number:{color:"#b5cea8"},constant:{color:"#9cdcfe"},symbol:{color:"#b5cea8"},inserted:{color:"#b5cea8"},unit:{color:"#b5cea8"},selector:{color:"#d7ba7d"},"attr-name":{color:"#9cdcfe"},string:{color:"#ce9178"},char:{color:"#ce9178"},builtin:{color:"#ce9178"},deleted:{color:"#ce9178"},".language-css .token.string.url":{textDecoration:"underline"},operator:{color:"#d4d4d4"},entity:{color:"#569cd6"},"operator.arrow":{color:"#569CD6"},atrule:{color:"#ce9178"},"atrule.rule":{color:"#c586c0"},"atrule.url":{color:"#9cdcfe"},"atrule.url.function":{color:"#dcdcaa"},"atrule.url.punctuation":{color:"#d4d4d4"},keyword:{color:"#569CD6"},"keyword.module":{color:"#c586c0"},"keyword.control-flow":{color:"#c586c0"},function:{color:"#dcdcaa"},"function.maybe-class-name":{color:"#dcdcaa"},regex:{color:"#d16969"},important:{color:"#569cd6"},italic:{fontStyle:"italic"},"class-name":{color:"#4ec9b0"},"maybe-class-name":{color:"#4ec9b0"},console:{color:"#9cdcfe"},parameter:{color:"#9cdcfe"},interpolation:{color:"#9cdcfe"},"punctuation.interpolation-punctuation":{color:"#569cd6"},variable:{color:"#9cdcfe"},"imports.maybe-class-name":{color:"#9cdcfe"},"exports.maybe-class-name":{color:"#9cdcfe"},escape:{color:"#d7ba7d"},"tag.punctuation":{color:"#808080"},cdata:{color:"#808080"},"attr-value":{color:"#ce9178"},"attr-value.punctuation":{color:"#ce9178"},"attr-value.punctuation.attr-equals":{color:"#d4d4d4"},namespace:{color:"#4ec9b0"},'pre[class*="language-javascript"]':{color:"#9cdcfe"},'code[class*="language-javascript"]':{color:"#9cdcfe"},'pre[class*="language-jsx"]':{color:"#9cdcfe"},'code[class*="language-jsx"]':{color:"#9cdcfe"},'pre[class*="language-typescript"]':{color:"#9cdcfe"},'code[class*="language-typescript"]':{color:"#9cdcfe"},'pre[class*="language-tsx"]':{color:"#9cdcfe"},'code[class*="language-tsx"]':{color:"#9cdcfe"},'pre[class*="language-css"]':{color:"#ce9178"},'code[class*="language-css"]':{color:"#ce9178"},'pre[class*="language-html"]':{color:"#d4d4d4"},'code[class*="language-html"]':{color:"#d4d4d4"},".language-regex .token.anchor":{color:"#dcdcaa"},".language-html .token.punctuation":{color:"#808080"},'pre[class*="language-"] > code[class*="language-"]':{position:"relative",zIndex:"1"},".line-highlight.line-highlight":{background:"#f7ebc6",boxShadow:"inset 5px 0 0 #f7d87c",zIndex:"0"}},Sh=({pulsing:e=!1,size:t="md",className:n})=>g.jsx("span",{className:["ignition-dot",`ignition-dot--${t}`,e&&"ignition-dot--pulsing",n].filter(Boolean).join(" "),"aria-hidden":"true"}),$4=["思维回路全速运转...","Token 们奋力排列中...","矩阵乘法进行中...","Transformer 全力变形...","最后一次梯度下降...","注意力机制已锁定...","思维发动机轰鸣启动...","激活函数全员上岗...","推理链跑起来了...","十四亿参数找答案...","上下文窗口挤一挤...","最合适的词正在出现...","正在 Debug 思维链...","在语言的岔路口选方向...","给神经网络倒咖啡...","模型正在思考人生...","神经元群情激昂...","正在召开内部评审会...","多个思路正在 PK...","答案在路上了...","拼图最后一块到位...","差不多了,收尾中...","还差一点点...","就差临门一脚...","搞定了百分之九十九...","答案正在着陆跑道...","翻阅无数可能中...","脑洞已打开...","在知识图谱里找路...","知识正在快速结晶...","字斟句酌,只给精华...","想想,再想想...","这道题,我会!","收到!全力处理中...","全情投入,心无旁骛...","才华正在集中爆发...","正在憋大招...","超强输出,即将到来...","最强答案正在成形...","把散落的灵感拼起来...","脑内灯泡闪烁中...","思路打结,解开中...","秒速百公里地思考...","知识储备调用中...","智慧内核全速转...","脑子已经全力转起来了...","正在为你量身定制...","把最好的留到最后...","用心对待每一个字...","注意力全给你了...","这一刻,全给你...","混沌转逻辑中...","思考齿轮咬合中...","合并所有子思路...","拆解成千个小问题...","千个念头取最好...","整理千头万绪中...","确认答案合理性中...","把模糊变清晰中...","思维正在对焦...","全速冲刺,答案在望...","思维扩容,装下更多...","逻辑拼图已完成...","有条不紊,稳步推进...","万事就绪,答案出发...","思路刚打通,马上来...","用推理缝合碎片...","召开紧急大脑会议...","整理出最佳路径...","正在审阅自己的思维...","努力中,绝不放弃...","正在做些不可思议的事...","我在,我想,我输出...","正在奋笔疾书...","正在将想法变为现实...","知识全力驰援中...","删删改改中...","比特们正在排队...","思维启动加速度...","正在给回答注入灵魂...","准备好了吗?快了...","就差最后一步...","答案即将成形...","正在快乐工作中...","大脑正在全速燃烧...","正在把复杂变简单...","知识海洋里捞最优解...","答案正在破壳而出...","大招正在蓄力中...","答案即将横空出世..."],q4=["Neural circuits running at full speed...","Tokens lining up in perfect order...","Matrix multiplications in progress...","One final gradient descent to go...","Attention heads: activated and locked...","Thought engine roaring to life...","Activation functions reporting for duty...","Reasoning chain is running...","Spelunking through fourteen billion parameters...","Squeezing into the context window...","The perfect word is surfacing...","Debugging my own chain of thought...","Picking a path through the language labyrinth...","Feeding the model its morning coffee...","Neurons firing in passionate debate...","Holding an internal peer review...","Multiple ideas in a heated competition...","Answer is on its way...","Last puzzle piece sliding into place...","Almost done, wrapping up...","Just a tiny bit more...","One final push to go...","Ninety-nine percent done...","Answer on final approach for landing...","Rummaging through the multiverse of ideas...","Navigating the knowledge graph...","Knowledge crystallizing rapidly...","Hand-picking only the best words...","Let me think... still thinking...","I know this one!","Roger that! Processing at full capacity...","Fully in the zone right now...","Talent concentrated and detonating...","Charging up the big move...","Supercharged output incoming...","The best answer is taking shape...","Lightbulb flickering in the back of my mind...","Untangling the knots in my reasoning...","Thinking at hundreds of miles per second...","Pulling from deep knowledge reserves...","Brain already spinning at full tilt...","Tailoring this response just for you...","Crafting every word with care...","All attention given to you...","This moment is entirely for you...","Converting chaos into logic...","Gears of thought clicking into place...","Breaking it into a thousand micro-problems...","Picking the best of a thousand thoughts...","Sorting through a tangle of threads...","Turning fuzzy into clear...","Thoughts coming into focus...","Sprinting to the finish line...","Logic puzzle: assembled...","Moving steadily, step by step...","Thread of thought just clicked — almost there...","Stitching the fragments together with reasoning...","Calling an emergency brain session...","Pushing through, won't give up...","Doing something kind of amazing right now...","I think, therefore I output...","Writing at full speed...","Turning ideas into reality...","Editing and re-editing...","Bits falling into line...","Thought engine accelerating...","Infusing the response with soul...","Almost there...","One last step to go...","Answer taking shape...","Happily working away...","Brain burning at full speed...","Turning complexity into simplicity...","Optimal path: locked in...","Creating something from nothing, just for you...","Answer hatching right now..."],ix=({visible:e})=>{const{language:t}=dt(),n=t.startsWith("zh")?$4:q4,[i,o]=P.useState(!1),[l,u]=P.useState(0),c=P.useRef(null),p=P.useRef(null);return P.useEffect(()=>{if(e){const f=Math.floor(Math.random()*n.length);u(f),c.current=setTimeout(()=>{o(!0),p.current=setInterval(()=>{u(m=>(m+1)%n.length)},5e3)},1e3)}else c.current&&(clearTimeout(c.current),c.current=null),p.current&&(clearInterval(p.current),p.current=null),o(!1);return()=>{c.current&&clearTimeout(c.current),p.current&&clearInterval(p.current)}},[e,n.length]),!e&&!i?null:g.jsx("div",{className:"processing-hint","aria-hidden":!e,children:g.jsxs("div",{className:"processing-hint__content",style:e?void 0:{visibility:"hidden"},children:[i&&n.length>0&&g.jsxs(g.Fragment,{children:[g.jsx(Sh,{pulsing:!0,size:"sm",className:"processing-hint__dot"}),g.jsx("span",{className:"processing-hint__text",children:n[l]},l)]}),!i&&e&&g.jsxs("div",{className:"processing-hint__typing",children:[g.jsx("span",{}),g.jsx("span",{}),g.jsx("span",{})]})]})})};function _i(e){return e<1e3?`${Math.round(e)}ms`:`${(e/1e3).toFixed(1)}s`}function G4(e,t){if(!e||e.length<=t)return e;const n=t-3,i=Math.ceil(n*.6),o=n-i;return e.slice(0,i)+"..."+e.slice(-o)}function H4(e){if(navigator.clipboard?.writeText)return navigator.clipboard.writeText(e);const t=document.createElement("textarea");t.value=e,t.style.cssText="position:fixed;left:-9999px;top:-9999px;opacity:0",document.body.appendChild(t),t.select();try{document.execCommand("copy")}finally{document.body.removeChild(t)}return Promise.resolve()}const W4=({code:e})=>{const[t,n]=P.useState(!1),i=async()=>{try{await H4(e),n(!0),setTimeout(()=>n(!1),2e3)}catch{}};return g.jsx("button",{className:`copy-button${t?" copy-success":""}`,onClick:i,type:"button",children:t?g.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:g.jsx("polyline",{points:"20 6 9 17 4 12"})}):g.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[g.jsx("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),g.jsx("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]})})},ps="computer://",Pm="file://",ox="{{workspaceFolder}}",Um="sparo.mobile.last_selected_model_id",V4=new Set(["js","jsx","ts","tsx","mjs","cjs","mts","cts","py","pyw","pyi","rs","go","java","kt","kts","scala","groovy","c","cpp","cc","cxx","h","hpp","hxx","hh","cs","rb","php","swift","vue","svelte","css","scss","less","sass","json","jsonc","yaml","yml","toml","xml","md","mdx","rst","txt","sh","bash","zsh","fish","ps1","bat","cmd","sql","graphql","gql","proto","lock","env","ini","cfg","conf","cj","ets","editorconfig","gitignore","log"]),Y4=new Set(["pdf","doc","docx","xls","xlsx","ppt","pptx","odt","ods","odp","rtf","pages","numbers","key","png","jpg","jpeg","gif","bmp","svg","webp","ico","tiff","tif","zip","tar","gz","bz2","7z","rar","dmg","iso","xz","mp3","wav","ogg","flac","aac","m4a","wma","mp4","avi","mkv","mov","webm","wmv","flv","csv","tsv","sqlite","db","parquet","epub","mobi","apk","ipa","exe","msi","deb","rpm","ttf","otf","woff","woff2"]);function fs(e){let t=e;e.startsWith(ps)?t=e.slice(ps.length):e.startsWith(Pm)?t=e.slice(Pm.length):e.startsWith("file:")&&(t=e.slice(5)),t.startsWith(ox)&&(t=t.slice(ox.length),t.startsWith("/")&&(t=t.slice(1))),/^\/[A-Za-z]:[\\/]/.test(t)&&(t=t.slice(1));try{return decodeURIComponent(t)}catch{return t}}function K4(e){if(!e||e==="/")return null;let t;if(e.startsWith(ps)||e.startsWith(Pm)||e.startsWith("file:"))t=fs(e);else{if(e.includes("://")||e.startsWith("#")||e.startsWith("//"))return null;t=fs(e)}if(t.startsWith("/")&&t.split("/").filter(Boolean).length<2)return null;const n=t.split("/").pop()||"",i=n.lastIndexOf(".");if(i<=0)return null;const o=n.slice(i+1).toLowerCase();if(!o)return null;if(t.startsWith("/")){if(V4.has(o))return null}else if(!Y4.has(o))return null;return t}function Z4(e){return e>=1024*1024?`${(e/(1024*1024)).toFixed(1)} MB`:e>=1024?`${Math.round(e/1024)} KB`:`${e} B`}const mm=({size:e=20,style:t})=>g.jsxs("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:t,"aria-hidden":"true",children:[g.jsx("path",{d:"M15.3929 4.05365L14.8912 4.61112L15.3929 4.05365ZM19.3517 7.61654L18.85 8.17402L19.3517 7.61654ZM21.654 10.1541L20.9689 10.4592V10.4592L21.654 10.1541ZM3.17157 20.8284L3.7019 20.2981H3.7019L3.17157 20.8284ZM20.8284 20.8284L20.2981 20.2981L20.2981 20.2981L20.8284 20.8284ZM14 21.25H10V22.75H14V21.25ZM2.75 14V10H1.25V14H2.75ZM21.25 13.5629V14H22.75V13.5629H21.25ZM14.8912 4.61112L18.85 8.17402L19.8534 7.05907L15.8947 3.49618L14.8912 4.61112ZM22.75 13.5629C22.75 11.8745 22.7651 10.8055 22.3391 9.84897L20.9689 10.4592C21.2349 11.0565 21.25 11.742 21.25 13.5629H22.75ZM18.85 8.17402C20.2034 9.3921 20.7029 9.86199 20.9689 10.4592L22.3391 9.84897C21.9131 8.89241 21.1084 8.18853 19.8534 7.05907L18.85 8.17402ZM10.0298 2.75C11.6116 2.75 12.2085 2.76158 12.7405 2.96573L13.2779 1.5653C12.4261 1.23842 11.498 1.25 10.0298 1.25V2.75ZM15.8947 3.49618C14.8087 2.51878 14.1297 1.89214 13.2779 1.5653L12.7405 2.96573C13.2727 3.16993 13.7215 3.55836 14.8912 4.61112L15.8947 3.49618ZM10 21.25C8.09318 21.25 6.73851 21.2484 5.71085 21.1102C4.70476 20.975 4.12511 20.7213 3.7019 20.2981L2.64124 21.3588C3.38961 22.1071 4.33855 22.4392 5.51098 22.5969C6.66182 22.7516 8.13558 22.75 10 22.75V21.25ZM1.25 14C1.25 15.8644 1.24841 17.3382 1.40313 18.489C1.56076 19.6614 1.89288 20.6104 2.64124 21.3588L3.7019 20.2981C3.27869 19.8749 3.02502 19.2952 2.88976 18.2892C2.75159 17.2615 2.75 15.9068 2.75 14H1.25ZM14 22.75C15.8644 22.75 17.3382 22.7516 18.489 22.5969C19.6614 22.4392 20.6104 22.1071 21.3588 21.3588L20.2981 20.2981C19.8749 20.7213 19.2952 20.975 18.2892 21.1102C17.2615 21.2484 15.9068 21.25 14 21.25V22.75ZM21.25 14C21.25 15.9068 21.2484 17.2615 21.1102 18.2892C20.975 19.2952 20.7213 19.8749 20.2981 20.2981L21.3588 21.3588C22.1071 20.6104 22.4392 19.6614 22.5969 18.489C22.7516 17.3382 22.75 15.8644 22.75 14H21.25ZM2.75 10C2.75 8.09318 2.75159 6.73851 2.88976 5.71085C3.02502 4.70476 3.27869 4.12511 3.7019 3.7019L2.64124 2.64124C1.89288 3.38961 1.56076 4.33855 1.40313 5.51098C1.24841 6.66182 1.25 8.13558 1.25 10H2.75ZM10.0298 1.25C8.15538 1.25 6.67442 1.24842 5.51887 1.40307C4.34232 1.56054 3.39019 1.8923 2.64124 2.64124L3.7019 3.7019C4.12453 3.27928 4.70596 3.02525 5.71785 2.88982C6.75075 2.75158 8.11311 2.75 10.0298 2.75V1.25Z",fill:"currentColor"}),g.jsx("path",{d:"M6 14.5H14",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"}),g.jsx("path",{d:"M6 18H11.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"}),g.jsx("path",{d:"M13 2.5V5C13 7.35702 13 8.53553 13.7322 9.26777C14.4645 10 15.643 10 18 10H22",stroke:"currentColor",strokeWidth:"1.5"})]}),sx=({path:e,onGetFileInfo:t,onDownload:n})=>{const{isDark:i}=Ca(),{t:o}=dt(),[l,u]=P.useState({status:"loading"}),c=P.useRef(t);c.current=t,P.useEffect(()=>{let k=!1;return c.current(e).then(({name:T,size:N,mimeType:R})=>{k||u({status:"ready",name:T,size:N,mimeType:R})}).catch(T=>{k||u({status:"error",message:T instanceof Error?T.message:String(T)})}),()=>{k=!0}},[e]);const p=P.useCallback(async()=>{if(l.status!=="ready"&&l.status!=="done")return;const k=l;u({status:"downloading",name:k.name,size:k.size,mimeType:k.mimeType,progress:0});try{await n(e,(T,N)=>{u(R=>R.status!=="downloading"?R:{...R,progress:N>0?T/N:0})}),u({status:"done",name:k.name,size:k.size,mimeType:k.mimeType})}catch{u({status:"ready",name:k.name,size:k.size,mimeType:k.mimeType})}},[l,e,n]),f={display:"inline-flex",alignItems:"center",gap:"10px",padding:"10px 14px",border:`1px solid ${i?"rgba(255,255,255,0.12)":"rgba(0,0,0,0.12)"}`,borderRadius:"10px",background:i?"rgba(255,255,255,0.05)":"rgba(0,0,0,0.03)",cursor:l.status==="ready"||l.status==="done"?"pointer":"default",maxWidth:"300px",verticalAlign:"middle",transition:"background 0.15s"},m=i?"rgba(255,255,255,0.6)":"rgba(0,0,0,0.5)";if(l.status==="loading")return g.jsxs("span",{className:"file-card",style:f,children:[g.jsx(mm,{size:20,style:{color:m,flexShrink:0}}),g.jsx("span",{style:{fontSize:"0.8rem",opacity:.5},children:o("chat.fileLoading")})]});if(l.status==="error")return g.jsxs("span",{className:"file-card",style:{...f,cursor:"default",opacity:.5},title:l.message,children:[g.jsx(mm,{size:20,style:{color:m,flexShrink:0}}),g.jsx("span",{style:{fontSize:"0.8rem"},children:o("chat.fileUnavailable")})]});const{name:h,size:S}=l,E=l.status==="downloading",v=l.status==="done";return g.jsxs("span",{className:"file-card",style:f,onClick:p,role:"button",tabIndex:0,onKeyDown:k=>{(k.key==="Enter"||k.key===" ")&&p()},title:o(E?"chat.fileDownloading":v?"chat.fileDownloaded":"chat.clickToDownload"),children:[g.jsx(mm,{size:20,style:{color:m,flexShrink:0}}),g.jsxs("span",{style:{minWidth:0,overflow:"hidden"},children:[g.jsx("span",{style:{display:"block",fontSize:"0.85rem",fontWeight:500,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:i?"rgba(255,255,255,0.9)":"rgba(0,0,0,0.85)"},children:h}),g.jsx("span",{style:{display:"block",fontSize:"0.75rem",color:i?"rgba(255,255,255,0.45)":"rgba(0,0,0,0.45)",marginTop:"2px"},children:Z4(S)})]}),g.jsx("span",{style:{flexShrink:0,fontSize:"0.75rem",color:v?i?"#4ade80":"#16a34a":i?"rgba(255,255,255,0.55)":"rgba(0,0,0,0.45)"},children:E?`${Math.round(l.progress*100)}%`:v?"✓":"↓"})]})},Ri=({content:e,onFileDownload:t,onGetFileInfo:n})=>{const{isDark:i}=Ca(),o=i?z4:j4,l=P.useMemo(()=>({code({className:u,children:c,...p}){const f=/language-(\w+)/.exec(u||""),m=String(c).replace(/\n$/,""),h=m.includes(` +`);return u?.startsWith("language-")||h?g.jsxs("div",{className:"code-block-wrapper",children:[g.jsx(W4,{code:m}),g.jsx(oR,{language:f?.[1]||"text",style:o,showLineNumbers:!0,customStyle:{margin:0,borderRadius:"8px",fontSize:"0.8rem",lineHeight:"1.5"},codeTagProps:{style:{fontFamily:"var(--font-family-mono)"}},lineNumberStyle:{color:i?"#666":"#999",paddingRight:"1em",textAlign:"right",userSelect:"none",minWidth:"2.5em"},children:m})]}):g.jsx("code",{className:"inline-code",...p,children:c})},a({href:u,children:c}){const p=typeof u=="string"&&u.startsWith(ps);if(p&&n&&t){const f=fs(u);return g.jsx(sx,{path:f,onGetFileInfo:n,onDownload:t})}if(p&&t){const f=fs(u);return g.jsx("button",{className:"file-link",onClick:m=>{m.preventDefault(),m.stopPropagation(),t(f)},type:"button",style:{cursor:"pointer",color:"var(--color-accent, #3b82f6)",textDecoration:"underline",background:"none",border:"none",font:"inherit",padding:0},children:c})}if(n&&t){const f=typeof u=="string"?K4(u):null;if(f)return g.jsx(sx,{path:f,onGetFileInfo:n,onDownload:t})}return typeof u=="string"&&(u.startsWith("http://")||u.startsWith("https://"))?g.jsx("a",{href:u,target:"_blank",rel:"noopener noreferrer",style:{color:"var(--color-accent, #3b82f6)",textDecoration:"underline"},children:c}):g.jsx("span",{style:{textDecoration:"underline",opacity:.7},children:c})},table({children:u}){return g.jsx("div",{className:"table-wrapper",children:g.jsx("table",{children:u})})},blockquote({children:u}){return g.jsx("blockquote",{className:"custom-blockquote",children:u})}}),[o,i,t,n]);return g.jsx(qL,{remarkPlugins:[nM],components:l,urlTransform:u=>u.startsWith("computer://")||/^(https?|mailto|tel|file):/i.test(u)||u.startsWith("#")||u.startsWith("/")||!u.includes(":")?u:"",children:e})},Bm=({thinking:e,streaming:t,isLastItem:n=!1})=>{const{t:i}=dt(),[o,l]=P.useState(!!t),u=P.useRef(!1),c=P.useRef(null),[p,f]=P.useState({atTop:!0,atBottom:!0}),m=uR(e,!!t);P.useEffect(()=>{u.current||(t?l(!0):n||l(!1))},[t,n]),P.useEffect(()=>{if(!t||!o)return;const k=c.current;if(!k)return;k.scrollHeight-k.scrollTop-k.clientHeight<80&&(k.scrollTop=k.scrollHeight)},[m,t,o]);const h=P.useCallback(()=>{const k=c.current;k&&f({atTop:k.scrollTop<4,atBottom:k.scrollHeight-k.scrollTop-k.clientHeight<4})},[]),S=P.useCallback(()=>{u.current=!0,l(k=>!k)},[]);if(!e&&!t)return null;const E=e.length,v=t&&E===0?i("chat.thinking"):i("chat.thoughtCharacters",{count:E});return g.jsxs("div",{className:`chat-thinking ${t?"chat-thinking--streaming":""}`,children:[g.jsxs("button",{className:"chat-thinking__toggle",onClick:S,children:[g.jsx("span",{className:`chat-thinking__chevron ${o?"is-open":""}`,children:g.jsx("svg",{width:"10",height:"10",viewBox:"0 0 16 16",fill:"none",children:g.jsx("path",{d:"M6 4L10 8L6 12",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})}),g.jsx("span",{className:"chat-thinking__label",children:v})]}),g.jsx("div",{className:`chat-thinking__expand-container ${o?"is-expanded":""}`,children:g.jsx("div",{className:"chat-thinking__expand-inner",children:e&&g.jsx("div",{className:`chat-thinking__content-wrapper ${p.atTop?"at-top":""} ${p.atBottom?"at-bottom":""}`,ref:c,onScroll:h,children:g.jsx("div",{className:"chat-thinking__content",children:g.jsx(Ri,{content:t?m:e})})})})})]})},gs={explore:"tools.explore",read_file:"tools.read",write_file:"tools.write",list_directory:"tools.ls",bash:"tools.shell",glob:"tools.glob",grep:"tools.grep",create_file:"tools.write",delete_file:"tools.delete",Task:"tools.task",search:"tools.search",edit_file:"tools.edit",web_search:"tools.web",TodoWrite:"tools.todo"},X4=({tool:e})=>{const{t}=dt(),[n,i]=P.useState(!1),o=P.useMemo(()=>{const f=e.tool_input;if(!f)return[];const m=f.todos||f.result?.todos;return Array.isArray(m)?m:[]},[e.tool_input]);if(o.length===0)return null;const l=o.filter(f=>f.status==="completed").length,u=l===o.length,c=o.find(f=>f.status==="in_progress"),p=f=>{switch(f){case"completed":return g.jsxs("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"var(--color-success)",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[g.jsx("path",{d:"M22 11.08V12a10 10 0 1 1-5.93-9.14"}),g.jsx("path",{d:"m9 11 3 3L22 4"})]});case"in_progress":return g.jsxs("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"var(--color-accent-500)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[g.jsx("circle",{cx:"12",cy:"12",r:"10"}),g.jsx("polygon",{points:"10 8 16 12 10 16 10 8",fill:"var(--color-accent-500)"})]});case"cancelled":return g.jsxs("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"var(--color-error)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[g.jsx("circle",{cx:"12",cy:"12",r:"10"}),g.jsx("path",{d:"m15 9-6 6"}),g.jsx("path",{d:"m9 9 6 6"})]});default:return g.jsx("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"var(--color-text-muted)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:g.jsx("circle",{cx:"12",cy:"12",r:"10"})})}};return g.jsxs("div",{className:"chat-todo-card",children:[g.jsxs("div",{className:"chat-todo-card__header",onClick:()=>i(!n),children:[g.jsx("span",{className:"chat-todo-card__icon",children:g.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[g.jsx("rect",{x:"3",y:"5",width:"6",height:"6",rx:"1"}),g.jsx("path",{d:"m3 17 2 2 4-4"}),g.jsx("path",{d:"M13 6h8"}),g.jsx("path",{d:"M13 12h8"}),g.jsx("path",{d:"M13 18h8"})]})}),u&&!n?g.jsx("span",{className:"chat-todo-card__current chat-todo-card__current--done",children:t("chat.allTasksCompleted")}):c&&!n?g.jsx("span",{className:"chat-todo-card__current",children:c.content}):null,g.jsxs("span",{className:"chat-todo-card__right",children:[g.jsx("span",{className:"chat-todo-card__dots",children:o.map((f,m)=>g.jsx("span",{className:`chat-todo-card__dot chat-todo-card__dot--${f.status}`},f.id||m))}),g.jsxs("span",{className:"chat-todo-card__stats",children:[l,"/",o.length]})]}),g.jsx("span",{className:`chat-todo-card__chevron ${n?"is-expanded":""}`,children:g.jsx("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:g.jsx("path",{d:"m6 9 6 6 6-6"})})})]}),n&&g.jsx("div",{className:"chat-todo-card__list",children:o.map((f,m)=>g.jsxs("div",{className:`chat-todo-card__item chat-todo-card__item--${f.status}`,children:[p(f.status),g.jsx("span",{className:"chat-todo-card__item-text",children:f.content})]},f.id||m))})]})};function Q4(e){const t=e.tool_input??(()=>{try{return JSON.parse(e.input_preview||"")}catch{return null}})();return t?{description:t.description,agentType:t.subagent_type}:null}function J4(e,t){if(e.type==="thinking"){const n=(e.content||"").length;return t("chat.thoughtCharacters",{count:n})}if(e.type==="tool"&&e.tool){const n=e.tool,i=n.input_preview?`: ${n.input_preview}`:"";return`${n.name}${i}`}if(e.type==="text"){const n=(e.content||"").length;return t("chat.textCharacters",{count:n})}return""}const sR=({tool:e,now:t,subItems:n=[],onCancelTool:i})=>{const{t:o}=dt(),l=P.useRef(null),u=P.useRef(0),[c,p]=P.useState(!1),f=e.status==="running",m=e.status==="completed",h=e.status==="failed"||e.status==="error",S=f&&!!i,E=Q4(e),v=m&&e.duration_ms!=null?_i(e.duration_ms):f&&e.start_ms?_i(t-e.start_ms):"",k=f?"running":m?"done":h?"error":"pending",T=n.filter(A=>A.type==="tool"&&A.tool),N=T.filter(A=>A.tool.status==="completed").length,R=T.filter(A=>A.tool.status==="running").length;return P.useEffect(()=>{c&&n.length>u.current&&l.current&&(l.current.scrollTop=l.current.scrollHeight),u.current=n.length},[n.length,c]),g.jsxs("div",{className:`chat-task-card chat-task-card--${k}`,children:[g.jsxs("div",{className:"chat-task-card__header",children:[g.jsx("span",{className:"chat-tool-card__icon",children:f?g.jsx("span",{className:"chat-tool-card__spinner"}):m?g.jsx("span",{className:"chat-tool-card__check",children:g.jsx("svg",{width:"12",height:"12",viewBox:"0 0 16 16",fill:"none",children:g.jsx("path",{d:"M3 8.5L6.5 12L13 4",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})}):h?g.jsx("span",{className:"chat-tool-card__error-icon",children:g.jsx("svg",{width:"12",height:"12",viewBox:"0 0 16 16",fill:"none",children:g.jsx("path",{d:"M4 4L12 12M12 4L4 12",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})})}):g.jsx("span",{className:"chat-tool-card__spinner"})}),g.jsx("span",{className:"chat-tool-card__name",children:E?.description||o("chat.task")}),E?.agentType&&g.jsx("span",{className:"chat-tool-card__type",children:E.agentType}),v&&g.jsx("span",{className:"chat-tool-card__duration",children:v}),S&&g.jsx("button",{className:"chat-tool-card__cancel",onClick:A=>{A.stopPropagation(),i?.(e.id)},"aria-label":o("common.cancel"),children:g.jsx("svg",{width:"10",height:"10",viewBox:"0 0 16 16",fill:"none",children:g.jsx("rect",{x:"3",y:"3",width:"10",height:"10",rx:"2",fill:"currentColor"})})})]}),n.length>0&&g.jsxs(g.Fragment,{children:[g.jsxs("div",{className:"chat-task-card__summary",onClick:()=>p(A=>!A),children:[g.jsx("span",{className:"chat-task-card__stat",children:o("chat.toolCalls",{count:T.length,suffix:T.length===1?"":"s"})}),g.jsxs("span",{className:"chat-task-card__stat-right",children:[g.jsx("span",{className:"chat-task-card__stat--done",children:o("chat.done",{count:N})}),R>0&&g.jsx("span",{className:"chat-task-card__stat--running",children:o("chat.running",{count:R})})]}),g.jsx("span",{className:`chat-task-card__chevron ${c?"is-expanded":""}`,children:g.jsx("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:g.jsx("path",{d:"m6 9 6 6 6-6"})})})]}),c&&g.jsx("div",{className:"chat-task-card__steps",ref:l,children:n.map((A,O)=>{if(A.type==="thinking")return g.jsxs("div",{className:"chat-task-card__step chat-task-card__step--thinking",children:[g.jsx("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:g.jsx("path",{d:"m6 9 6 6 6-6"})}),g.jsx("span",{children:J4(A,o)})]},`sub-think-${O}`);if(A.type==="tool"&&A.tool){const L=A.tool,w=L.status==="completed",B=L.status==="failed"||L.status==="error";return g.jsxs("div",{className:`chat-task-card__step chat-task-card__step--tool ${w?"is-done":B?"is-error":"is-running"}`,children:[w?g.jsx("svg",{width:"10",height:"10",viewBox:"0 0 16 16",fill:"none",children:g.jsx("path",{d:"M3 8.5L6.5 12L13 4",stroke:"var(--color-success)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})}):B?g.jsx("svg",{width:"10",height:"10",viewBox:"0 0 16 16",fill:"none",children:g.jsx("path",{d:"M4 4L12 12M12 4L4 12",stroke:"var(--color-error)",strokeWidth:"2",strokeLinecap:"round"})}):g.jsx("span",{className:"chat-task-card__step-spinner"}),g.jsx("span",{className:"chat-task-card__step-name",children:L.name}),(()=>{const W=lR(L);return W?g.jsx("span",{className:"chat-task-card__step-preview",children:W}):null})(),w&&L.duration_ms!=null&&g.jsx("span",{className:"chat-task-card__step-duration",children:_i(L.duration_ms)})]},`sub-tool-${L.id}-${O}`)}return null})})]})]})};function lR(e){if(!e.input_preview)return null;try{const t=JSON.parse(e.input_preview);if(!t||typeof t!="object")return null;const n=l=>{const u=l.replace(/\\/g,"/").split("/");return u[u.length-1]||l};let i=null;const o=t.file_path||t.path;switch(e.name){case"Read":case"Write":case"Edit":case"LS":case"StrReplace":case"delete_file":i=o?n(o):null;break;case"Glob":case"Grep":i=t.pattern||null;break;case"Bash":case"Shell":i=t.description||t.command||null;break;case"web_search":case"WebSearch":i=t.search_term||t.query||null;break;case"WebFetch":i=t.url||null;break;case"SemanticSearch":i=t.query||null;break;default:i=Object.values(t).find(u=>typeof u=="string"&&u.length>0&&u.length<80)||null}return i?i.length>60?i.slice(0,60)+"…":i:null}catch{return null}}const lx=({tool:e,now:t,onCancelTool:n})=>{const{t:i}=dt(),o=e.name.toLowerCase().replace(/[\s-]/g,"_"),l=gs[o]||gs[e.name],u=l?i(l):"Tool",c=e.status==="running",p=e.status==="completed",f=e.status==="failed"||e.status==="error",m=c&&!!n,h=lR(e),S=p&&e.duration_ms!=null?_i(e.duration_ms):c&&e.start_ms?_i(t-e.start_ms):"",E=c?"running":p?"done":f?"error":"pending";return g.jsx("div",{className:`chat-tool-card chat-tool-card--${E}`,children:g.jsxs("div",{className:"chat-tool-card__row",children:[g.jsx("span",{className:"chat-tool-card__icon",children:c?g.jsx("span",{className:"chat-tool-card__spinner"}):p?g.jsx("span",{className:"chat-tool-card__check",children:g.jsx("svg",{width:"12",height:"12",viewBox:"0 0 16 16",fill:"none",children:g.jsx("path",{d:"M3 8.5L6.5 12L13 4",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})}):f?g.jsx("span",{className:"chat-tool-card__error-icon",children:g.jsx("svg",{width:"12",height:"12",viewBox:"0 0 16 16",fill:"none",children:g.jsx("path",{d:"M4 4L12 12M12 4L4 12",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})})}):g.jsx("span",{className:"chat-tool-card__spinner"})}),g.jsxs("span",{className:"chat-tool-card__name",children:[e.name,h&&g.jsxs("span",{className:"chat-tool-card__preview",children:[" ",h]})]}),g.jsx("span",{className:"chat-tool-card__type",children:u}),S&&g.jsx("span",{className:"chat-tool-card__duration",children:S}),m&&g.jsx("button",{className:"chat-tool-card__cancel",onClick:v=>{v.stopPropagation(),n?.(e.id)},"aria-label":i("common.cancel"),children:g.jsx("svg",{width:"10",height:"10",viewBox:"0 0 16 16",fill:"none",children:g.jsx("rect",{x:"3",y:"3",width:"10",height:"10",rx:"2",fill:"currentColor"})})})]})})},e$=new Set(["Read","Grep","Glob","SemanticSearch"]);function t$(e,t){const n=new Map,i=[];for(const o of e){const l=o.name.toLowerCase().replace(/[\s-]/g,"_"),u=gs[l]||gs[o.name],c=u?t(u):o.name,p=c.toLowerCase(),f=n.get(p);if(f){f.count+=1;continue}n.set(p,{label:c,count:1}),i.push(p)}return i.map(o=>{const l=n.get(o);return`${l.label} ${l.count}`}).join(", ")}const n$=({tools:e})=>{const{t}=dt(),[n,i]=P.useState(!1);if(e.length===0)return null;const o=e.filter(p=>p.status==="completed").length,l=o===e.length,u=t$(e,t),c=l?t("chat.readToolsDone",{summary:u}):t("chat.readToolsRunning",{summary:u,doneCount:o});return g.jsxs("div",{className:`chat-thinking ${l?"":"chat-thinking--streaming"}`,children:[g.jsxs("button",{className:"chat-thinking__toggle",onClick:()=>i(p=>!p),children:[g.jsx("span",{className:`chat-thinking__chevron ${n?"is-open":""}`,children:g.jsx("svg",{width:"10",height:"10",viewBox:"0 0 16 16",fill:"none",children:g.jsx("path",{d:"M6 4L10 8L6 12",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})}),g.jsx("span",{className:"chat-thinking__label",children:c})]}),n&&g.jsx("div",{className:"chat-thinking__content-wrapper at-top at-bottom",children:g.jsx("div",{className:"chat-thinking__content",children:e.map(p=>{const f=p.input_preview||"";return g.jsxs("div",{style:{fontSize:"12px",padding:"2px 0",opacity:.8},children:[p.status==="completed"?"✓":"⋯"," ",p.name," ",f]},p.id)})})})]})},r$=2,jm=({tools:e,now:t,onCancelTool:n})=>{const{t:i}=dt(),o=P.useRef(null),l=P.useRef(0),[u,c]=P.useState(!1);if(P.useEffect(()=>{u&&e.length>l.current&&o.current&&(o.current.scrollTop=o.current.scrollHeight),l.current=e.length},[e.length,u]),!e||e.length===0)return null;if(e.length<=r$)return g.jsx("div",{className:"chat-tool-list",children:e.map(m=>g.jsx(lx,{tool:m,now:t,onCancelTool:n},m.id))});const p=e.filter(m=>m.status==="running").length,f=e.filter(m=>m.status==="completed").length;return g.jsxs("div",{className:"chat-tool-list chat-tool-list--collapsed",children:[g.jsxs("div",{className:"chat-tool-list__header",onClick:()=>c(m=>!m),children:[g.jsx("span",{className:"chat-tool-list__count",children:i("chat.toolCalls",{count:e.length,suffix:e.length===1?"":"s"})}),g.jsxs("span",{className:"chat-tool-list__stats",children:[f>0&&g.jsx("span",{className:"chat-tool-list__stat chat-tool-list__stat--done",children:i("chat.done",{count:f})}),p>0&&g.jsx("span",{className:"chat-tool-list__stat chat-tool-list__stat--running",children:i("chat.running",{count:p})})]}),g.jsx("span",{className:`chat-tool-list__chevron ${u?"is-expanded":""}`,children:g.jsx("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:g.jsx("path",{d:"m6 9 6 6 6-6"})})})]}),u&&g.jsx("div",{className:"chat-tool-list__scroll",ref:o,children:e.map(m=>g.jsx(lx,{tool:m,now:t,onCancelTool:n},m.id))})]})};function uR(e,t){const[n,i]=P.useState(t?"":e),o=P.useRef(t?0:e.length),l=P.useRef(e),u=P.useRef(null),c=P.useRef(3);return P.useEffect(()=>{if(!t){u.current&&(clearInterval(u.current),u.current=null),o.current=e.length,l.current=e,i(e);return}l.current=e,e.length0){const h=26.666666666666668;c.current=Math.max(Math.ceil(p/h),2),u.current||(u.current=setInterval(()=>{const S=l.current,E=o.current;if(E>=S.length){u.current&&(clearInterval(u.current),u.current=null);return}const v=Math.min(E+c.current,S.length);o.current=v,i(S.slice(0,v))},30))}},[e,t]),P.useEffect(()=>()=>{u.current&&clearInterval(u.current)},[]),n}const cR=({content:e,onFileDownload:t,onGetFileInfo:n})=>{const i=uR(e,!0);return g.jsx(Ri,{content:i,onFileDownload:t,onGetFileInfo:n})},ms=e=>!e||e.name!=="AskUserQuestion"||!e.tool_input?!1:!["completed","failed","cancelled","rejected"].includes(e.status),qr=e=>{const t=(e||"").trim().toLowerCase();return t==="other"||t==="其他"},dR=({tool:e,onAnswer:t})=>{const{t:n}=dt(),i=e.tool_input?.questions||[],[o,l]=P.useState({}),[u,c]=P.useState({}),[p,f]=P.useState(!1),[m,h]=P.useState(!1),S=P.useMemo(()=>i.map(T=>{const N=Array.isArray(T.options)?T.options:[],R=N.some(A=>qr(A?.label));return{...T,options:N,hasBuiltInOther:R}}),[i]);if(S.length===0)return null;const E=(T,N,R)=>{l(A=>{if(R){const O=A[T]||[];return{...A,[T]:O.includes(N)?O.filter(L=>L!==N):[...O,N]}}return{...A,[T]:A[T]===N?void 0:N}})},v=async()=>{if(!k||p||m)return;const T={};S.forEach((N,R)=>{const A=o[R],O=(u[R]||"").trim();Array.isArray(A)?T[String(R)]=A.map(L=>qr(L)&&O||L):qr(A)?T[String(R)]=O||A:T[String(R)]=A??""}),f(!0);try{await t(e.id,T),h(!0)}finally{f(!1)}},k=S.every((T,N)=>{const R=o[N];return(T.multiSelect?Array.isArray(R)&&R.length>0:!!R)?!(Array.isArray(R)?R.some(L=>qr(L)):qr(R))||!!(u[N]||"").trim():!1});return g.jsxs("div",{className:"chat-ask-card",children:[g.jsxs("div",{className:"chat-ask-card__header",children:[g.jsx("span",{className:"chat-ask-card__count",children:n("chat.askQuestionCount",{count:i.length,suffix:i.length>1?"s":""})}),!m&&!p&&g.jsx("span",{className:"chat-ask-card__waiting",children:n("chat.waiting")})]}),S.map((T,N)=>{const R=o[N],A=Array.isArray(R)?R.some(O=>qr(O)):qr(R);return g.jsxs("div",{className:"chat-ask-card__question",children:[g.jsxs("div",{className:"chat-ask-card__question-header",children:[g.jsx("span",{className:"chat-ask-card__tag",children:T.header}),g.jsx("span",{className:"chat-ask-card__question-text",children:T.question})]}),g.jsxs("div",{className:"chat-ask-card__options",children:[(T.options||[]).map((O,L)=>{const w=T.multiSelect?(o[N]||[]).includes(O.label):o[N]===O.label;return g.jsxs("button",{className:`chat-ask-card__option ${w?"is-selected":""}`,onClick:()=>E(N,O.label,T.multiSelect),disabled:m||p,children:[g.jsx("span",{className:`chat-ask-card__radio ${T.multiSelect?"chat-ask-card__radio--multi":""}`,children:w&&g.jsx("svg",{width:"8",height:"8",viewBox:"0 0 16 16",fill:"none",children:g.jsx("path",{d:"M3 8L6.5 11.5L13 4.5",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),g.jsx("span",{className:"chat-ask-card__option-label",children:O.label}),O.description&&g.jsx("span",{className:"chat-ask-card__option-desc",children:O.description})]},L)}),!T.hasBuiltInOther&&g.jsxs("button",{className:`chat-ask-card__option ${A?"is-selected":""}`,onClick:()=>E(N,"Other",T.multiSelect),disabled:m||p,children:[g.jsx("span",{className:`chat-ask-card__radio ${T.multiSelect?"chat-ask-card__radio--multi":""}`,children:A&&g.jsx("svg",{width:"8",height:"8",viewBox:"0 0 16 16",fill:"none",children:g.jsx("path",{d:"M3 8L6.5 11.5L13 4.5",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),g.jsx("span",{className:"chat-ask-card__option-label",children:n("common.other")}),g.jsx("span",{className:"chat-ask-card__option-desc",children:n("common.customTextInput")})]}),A&&g.jsx("input",{className:"chat-ask-card__custom-input",placeholder:n("common.typeYourAnswer"),value:u[N]||"",onChange:O=>c(L=>({...L,[N]:O.target.value})),disabled:m||p})]})]},N)}),g.jsxs("button",{className:"chat-ask-card__submit chat-ask-card__submit--bottom",disabled:!k||m||p,onClick:v,children:[g.jsx("svg",{width:"12",height:"12",viewBox:"0 0 16 16",fill:"none",children:g.jsx("path",{d:"M2 8L6 12L14 4",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})}),n(m?"common.submitted":p?"common.submitting":"common.submit")]})]})};function pR(e){const t=[];let n=null;for(const i of e){if(i.type==="tool"&&i.tool?.name==="Task"){const o={...i,subItems:[]};t.push(o),n=o;continue}if(i.is_subagent&&n){n.subItems.push(i);continue}i.is_subagent||t.push(i)}return t}function xa(e){const t=[];for(const n of e){const i=t[t.length-1];i&&i.type===n.type?i.entries.push(n):t.push({type:n.type,entries:[n]})}return t}function fR(e,t,n){return n?e.map((i,o)=>g.jsx(dR,{tool:i.tool,onAnswer:n},`${t}-ask-${i.tool.id}-${o}`)):null}function Aa(e,t,n,i,o,l,u,c){return e.map((p,f)=>{if(p.type==="thinking"){const m=p.entries.map(S=>S.content||"").join(` -`),h=c&&f===e.length-1;return g.jsx(Bm,{thinking:m,streaming:h,isLastItem:h},`${t}-thinking-${f}`)}if(p.type==="tool"){const m=[];let h=[],S=[];const E=()=>{S.length>0&&(m.push(g.jsx(t$,{tools:S},`${t}-read-${f}-${m.length}`)),S=[])},v=()=>{h.length>0&&(m.push(g.jsx(jm,{tools:h,now:n,onCancelTool:i},`${t}-tl-${f}-${m.length}`)),h=[])},k=()=>{E(),v()};for(const T of p.entries)T.tool?.name==="Task"?(k(),m.push(g.jsx(sR,{tool:T.tool,now:n,subItems:T.subItems,onCancelTool:i},`${t}-task-${f}-${m.length}`))):T.tool?.name==="TodoWrite"?(k(),m.push(g.jsx(Z4,{tool:T.tool},`${t}-todo-${f}-${m.length}`))):T.tool&&J4.has(T.tool.name)?(v(),S.push(T.tool)):T.tool&&(E(),h.push(T.tool));return k(),g.jsx(ct.Fragment,{children:m},`${t}-tool-${f}`)}if(p.type==="text"){const m=p.entries.map(h=>h.content||"").join("");return m?g.jsx("div",{className:"chat-msg__assistant-content",children:o?g.jsx(cR,{content:m,onFileDownload:l,onGetFileInfo:u}):g.jsx(Ri,{content:m,onFileDownload:l,onGetFileInfo:u})},`${t}-text-${f}`):null}return null})}function ux(e,t,n,i,o,l){const u=pR(e),c=u.filter(h=>ms(h.tool));if(c.length===0)return Aa(xa(u),"ordered",t,n,!1,o,l);const p=[],f=[];let m=!1;for(const h of u)ms(h.tool)?m=!0:m?f.push(h):p.push(h);return g.jsxs(g.Fragment,{children:[Aa(xa(p),"ordered-before",t,n,!1,o,l),fR(c,"ordered",i),Aa(xa(f),"ordered-after",t,n,!1,o,l)]})}function r$(e,t,n,i,o,l,u){const c=pR(e),p=c.filter(E=>ms(E.tool)),f=E=>{n.cancelTool(E,"User cancelled").catch(v=>{i(String(v))})};if(p.length===0)return Aa(xa(c),"active",t,f,!0,l,u,!0);const m=[],h=[];let S=!1;for(const E of c)ms(E.tool)?S=!0:S?h.push(E):m.push(E);return g.jsxs(g.Fragment,{children:[Aa(xa(m),"active-before",t,f,!0,l,u,!0),fR(p,"active",o),Aa(xa(h),"active-after",t,f,!0,l,u,!0)]})}const a$=({isDark:e})=>g.jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:e?g.jsx("path",{d:"M8 1.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM3 8a5 5 0 0 1 5-5v10a5 5 0 0 1-5-5Z",fill:"currentColor"}):g.jsx("path",{d:"M8 1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-1 0v-1A.5.5 0 0 1 8 1Zm0 11a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-1 0v-1A.5.5 0 0 1 8 12Zm7-4a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1 0-1h1A.5.5 0 0 1 15 8ZM3 8a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1 0-1h1A.5.5 0 0 1 3 8Zm9.95-3.54a.5.5 0 0 1 0 .71l-.71.7a.5.5 0 1 1-.7-.7l.7-.71a.5.5 0 0 1 .71 0ZM5.46 11.24a.5.5 0 0 1 0 .71l-.7.71a.5.5 0 0 1-.71-.71l.7-.71a.5.5 0 0 1 .71 0Zm7.08 1.42a.5.5 0 0 1-.7 0l-.71-.71a.5.5 0 0 1 .7-.7l.71.7a.5.5 0 0 1 0 .71ZM5.46 4.76a.5.5 0 0 1-.71 0l-.71-.7a.5.5 0 0 1 .71-.71l.7.7a.5.5 0 0 1 0 .71ZM8 5a3 3 0 1 1 0 6 3 3 0 0 1 0-6Z",fill:"currentColor"})}),cx=({className:e,size:t=10})=>g.jsxs("svg",{className:e,width:t,height:t,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[g.jsx("path",{d:"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.937A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .962 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.582a.5.5 0 0 1 0 .962L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.962 0z"}),g.jsx("path",{d:"M20 3v4"}),g.jsx("path",{d:"M22 5h-4"}),g.jsx("path",{d:"M4 17v2"}),g.jsx("path",{d:"M5 18H3"})]});function gR(e){const t=e.trim();return t?t.charAt(0).toUpperCase()+t.slice(1):"Unknown"}function i$(e){const t=e.name?.trim();return t||gR(e.provider)}function o$(e){return e?`${Math.round(e/1e3)}k`:null}function s$(e){return e.enabled&&Array.isArray(e.capabilities)&&e.capabilities.includes("text_chat")}function vh(e,t){const n=e?.trim();if(!n||n==="default")return"primary";if(n==="primary"||n==="fast"){const i=n==="primary"?t?.default_models?.primary:t?.default_models?.fast;return i&&Na(i,t)?n:"primary"}return Na(n,t)?n:"primary"}function l$(){return typeof window>"u"?null:window.localStorage.getItem(Um)?.trim()||null}function hm(e){if(typeof window>"u")return;const t=e.trim();if(!t){window.localStorage.removeItem(Um);return}window.localStorage.setItem(Um,t)}function u$(e,t){const n=e?.trim();if(!n)return{modelId:null,fellBackToPrimary:!1};const i=vh(n,t);return{modelId:i,fellBackToPrimary:i==="primary"&&n!=="primary"&&n!=="default"}}function Na(e,t){return t&&t.models.find(n=>n.id===e)||null}function wi(e){if(!e)return null;const t=[i$(e)],n=o$(e.context_window);return n&&t.push(n),t.join(" · ")}function as(e){return e&&(e.model_name||e.name)||""}function zm(e){return e?e.reasoning_mode?e.reasoning_mode==="enabled"||e.reasoning_mode==="adaptive":!!e.enable_thinking_process:!1}function c$(e,t,n){if(e==="primary"||e==="fast"){const o=e==="primary"?t?.default_models?.primary:t?.default_models?.fast,l=o?Na(o,t):null;return{label:n(l?e==="primary"?"chat.modelPrimary":"chat.modelFast":"chat.modelNotConfigured"),meta:wi(l)||n("chat.modelNotConfigured"),enableThinking:zm(l),reasoningEffort:l?.reasoning_effort}}const i=Na(e,t);return i?{label:as(i),meta:wi(i),enableThinking:zm(i),reasoningEffort:i.reasoning_effort}:{label:n("chat.modelNotConfigured"),meta:n("chat.modelNotConfigured"),enableThinking:!1}}const d$=({catalog:e,selectedModelId:t,disabled:n,onSelect:i})=>{const{t:o}=dt(),[l,u]=P.useState(!1),c=P.useRef(null),p=P.useMemo(()=>vh(t,e),[e,t]),f=P.useMemo(()=>(e?.models||[]).filter(s$),[e]),m=P.useMemo(()=>Na(e?.default_models?.primary||"",e),[e]),h=P.useMemo(()=>Na(e?.default_models?.fast||"",e),[e]),S=P.useMemo(()=>c$(p,e,o),[e,p,o]);if(P.useEffect(()=>{if(!l)return;const v=k=>{c.current&&!c.current.contains(k.target)&&u(!1)};return document.addEventListener("mousedown",v),()=>document.removeEventListener("mousedown",v)},[l]),!e)return null;const E=async v=>{await i(v),u(!1)};return g.jsxs("div",{className:"chat-model-selector",ref:c,children:[g.jsxs("button",{className:`chat-model-selector__trigger${l?" chat-model-selector__trigger--open":""}`,type:"button",onClick:()=>u(v=>!v),disabled:n,"aria-label":o("chat.modelSelection"),children:[g.jsx("span",{className:"chat-model-selector__icon","aria-hidden":"true",children:g.jsxs("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",children:[g.jsx("rect",{x:"4",y:"4",width:"6",height:"6",rx:"1.5",stroke:"currentColor",strokeWidth:"1.7"}),g.jsx("rect",{x:"14",y:"4",width:"6",height:"6",rx:"1.5",stroke:"currentColor",strokeWidth:"1.7"}),g.jsx("rect",{x:"9",y:"14",width:"6",height:"6",rx:"1.5",stroke:"currentColor",strokeWidth:"1.7"}),g.jsx("path",{d:"M10 7h4M12 10v4",stroke:"currentColor",strokeWidth:"1.7",strokeLinecap:"round"})]})}),g.jsxs("span",{className:"chat-model-selector__name",children:[g.jsx("span",{className:"chat-model-selector__name-text",children:S.label}),S.enableThinking&&g.jsx(cx,{className:"chat-model-selector__thinking",size:9})]}),S.reasoningEffort&&g.jsx("span",{className:"chat-model-selector__effort",children:S.reasoningEffort}),g.jsx("span",{className:"chat-model-selector__chevron","aria-hidden":"true",children:g.jsx("svg",{width:"10",height:"10",viewBox:"0 0 16 16",fill:"none",children:g.jsx("path",{d:"M4 6L8 10L12 6",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})})]}),l&&g.jsxs("div",{className:"chat-model-selector__dropdown",children:[g.jsx("div",{className:"chat-model-selector__header",children:o("chat.modelSelection")}),g.jsx("button",{className:`chat-model-selector__option${p==="primary"?" is-selected":""}`,type:"button",onClick:()=>{E("primary")},children:g.jsxs("span",{className:"chat-model-selector__option-main",children:[g.jsx("span",{className:"chat-model-selector__option-name",children:o("chat.modelPrimary")}),g.jsxs("span",{className:"chat-model-selector__option-meta chat-model-selector__option-meta--stacked",children:[g.jsx("span",{className:"chat-model-selector__option-meta-line",children:as(m)||o("chat.modelNotConfigured")}),g.jsx("span",{className:"chat-model-selector__option-meta-line",children:wi(m)||o("chat.modelNotConfigured")})]})]})}),g.jsx("button",{className:`chat-model-selector__option${p==="fast"?" is-selected":""}`,type:"button",onClick:()=>{E("fast")},children:g.jsxs("span",{className:"chat-model-selector__option-main",children:[g.jsx("span",{className:"chat-model-selector__option-name",children:o("chat.modelFast")}),g.jsxs("span",{className:"chat-model-selector__option-meta chat-model-selector__option-meta--stacked",children:[g.jsx("span",{className:"chat-model-selector__option-meta-line",children:as(h)||o("chat.modelNotConfigured")}),g.jsx("span",{className:"chat-model-selector__option-meta-line",children:wi(h)||o("chat.modelNotConfigured")})]})]})}),g.jsx("div",{className:"chat-model-selector__divider"}),g.jsx("div",{className:"chat-model-selector__list",children:f.map(v=>{const k=p===v.id;return g.jsx("button",{className:`chat-model-selector__option${k?" is-selected":""}`,type:"button",onClick:()=>{E(v.id)},children:g.jsxs("span",{className:"chat-model-selector__option-main",children:[g.jsxs("span",{className:"chat-model-selector__option-name",children:[g.jsx("span",{className:"chat-model-selector__option-name-text",children:as(v)}),zm(v)&&g.jsx(cx,{className:"chat-model-selector__option-thinking",size:10})]}),g.jsx("span",{className:"chat-model-selector__option-meta",children:wi(v)||gR(v.provider)})]})},v.id)})})]})]})},p$=new Set(["bitfun-coder","bitfun-plan","bitfun-debug","bitfun-team"]);function dx(e){return e==="bitfun-plan"||e==="bitfun-debug"||e==="bitfun-team"?e:"bitfun-coder"}const mR=({sessionMgr:e,sessionId:t,sessionName:n,onBack:i,autoFocus:o,embedded:l=!1,agentType:u})=>{const c=u?p$.has(u):!1,{t:p}=dt(),{getMessages:f,setMessages:m,appendNewMessages:h,activeTurn:S,setActiveTurn:E,error:v,setError:k,selectedWorkspace:T,updateSessionName:N}=vn(),{isDark:R,toggleTheme:A}=Ca(),O=P.useMemo(()=>[{id:"bitfun-coder",label:p("chat.modeBitFunCoder")},{id:"bitfun-plan",label:p("chat.modePlan")},{id:"bitfun-debug",label:p("chat.modeDebug")},{id:"bitfun-team",label:p("chat.modeTeam")}],[p]),L=f(t),[w,B]=P.useState(""),[W,j]=P.useState(()=>dx(u)),[M,Y]=P.useState(n),[J,de]=P.useState(null),[Z,H]=P.useState("primary"),[te,ue]=P.useState(!1),[q,Q]=P.useState([]),[x,D]=P.useState(!1),[$,C]=P.useState(null),[ae,pe]=P.useState(!!o),fe=P.useRef(null),Se=P.useRef(null),ke=P.useRef(null),X=P.useRef(null),[he,Ie]=P.useState(!1),[Qe,Ce]=P.useState(!0),$e=P.useRef(!1),pt=P.useRef(!0),tt=P.useRef(!1),Wt=P.useRef(null),Ct=P.useRef(null),[kn,kt]=P.useState(new Set),[It,Mt]=P.useState(null),ft=S!=null&&S.status==="active";P.useEffect(()=>{j(dx(u))},[u,t]);const[_t,bt]=P.useState(()=>Date.now()),K=P.useCallback(async(ne,se)=>{try{await e.answerQuestion(ne,se)}catch(Oe){throw k(String(Oe)),Oe}},[e,k]),ee=P.useCallback(ne=>e.getFileInfo(ne,t),[t,e]),ge=P.useCallback(async(ne,se)=>{try{const{name:Oe,contentBase64:Be,mimeType:ze}=await e.readFile(ne,t,se),Ge=atob(Be),at=new Uint8Array(Ge.length);for(let Yt=0;Yt{try{const ne=await e.getModelCatalog(t);if(de(ne),!tt.current){const se=u$(l$(),ne),Oe=vh(ne.session_model_id||"primary",ne),Be=se.modelId||Oe;if(se.modelId&&se.modelId!==Oe){const ze=await e.setSessionModel(t,se.modelId);H(ze||"primary"),se.fellBackToPrimary&&(!ze||ze==="primary")&&hm("primary")}else H(Be||"primary"),se.fellBackToPrimary&&Be==="primary"&&hm("primary");tt.current=!0}return ne}catch(ne){return k(ne instanceof Error?ne.message:String(ne)),null}},[t,e,k]),Ne=P.useCallback(async ne=>{if(!(te||ft||x)){ue(!0);try{const se=await e.setSessionModel(t,ne);H(se||"primary"),hm(se||"primary")}catch(se){k(se instanceof Error?se.message:String(se))}finally{ue(!1)}}},[x,ft,te,t,e,k]);P.useEffect(()=>{if(!ft)return;const ne=setInterval(()=>bt(Date.now()),500);return()=>clearInterval(ne)},[ft]),P.useEffect(()=>{if(!v)return;const ne=setTimeout(()=>k(null),5e3);return()=>clearTimeout(ne)},[v,k]),P.useEffect(()=>{if(!It)return;const ne=setTimeout(()=>Mt(null),3200);return()=>clearTimeout(ne)},[It]);const We=P.useCallback(async ne=>{if(!($e.current||!pt.current&&ne))try{$e.current=!0,Ie(!0);const se=await e.getSessionMessages(t,50,ne);if(ne){const Oe=f(t);m(t,[...se.messages,...Oe])}else m(t,se.messages);Ce(se.has_more),pt.current=se.has_more}catch(se){k(se.message)}finally{$e.current=!1,Ie(!1)}},[e,t,m,k,f]),nt=P.useRef(!0),yt=80,xt=P.useCallback(()=>{const ne=Ct.current;if(!ne)return;const se=ne.scrollHeight-ne.scrollTop-ne.clientHeight;if(nt.current=se0&&We(Oe[0].id)}},[Qe,he,f,t,We]),rt=P.useRef(!1),Ke=P.useRef(!1);P.useEffect(()=>{tt.current=!1,pt.current=!0,$e.current=!1,Ce(!0),Ie(!1),de(null),H("primary")},[t]),P.useEffect(()=>(rt.current=!1,Ke.current=!1,Promise.all([We(),_e()]).then(([ne,se])=>{const Oe=vn.getState().getMessages(t).length;Ke.current=!0;const Be=new EI(e,t,ze=>{ze.new_messages&&ze.new_messages.length>0&&h(t,ze.new_messages),ze.total_msg_count!=null&&vn.getState().getMessages(t).length!==ze.total_msg_count&&e.getSessionMessages(t,200).then(at=>{vn.getState().setMessages(t,at.messages)}).catch(()=>{}),ze.title&&(Y(ze.title),N(t,ze.title)),ze.model_catalog&&de(ze.model_catalog),E(ze.active_turn??null)},se?.version||0);Be.start(Oe),X.current=Be}),()=>{X.current?.stop(),X.current=null,E(null)}),[t,e,We,_e,h,E,N]);const gt=P.useRef(0);P.useLayoutEffect(()=>{if(!Ke.current||L.length===0)return;Ke.current=!1;const ne=Ct.current;ne&&(ne.scrollTop=ne.scrollHeight),rt.current=!0,gt.current=L.length},[L]),P.useEffect(()=>{if(rt.current&&L.length!==gt.current){const ne=L.length>gt.current;gt.current=L.length,ne&&!he&&nt.current&&Wt.current?.scrollIntoView({behavior:"smooth"})}},[L.length,he]),P.useEffect(()=>{!rt.current||!ft||nt.current&&Wt.current?.scrollIntoView({behavior:"auto"})},[S,ft]),P.useEffect(()=>{$&&(nt.current=!0,Wt.current?.scrollIntoView({behavior:"smooth"}))},[$]),P.useEffect(()=>{if(!rt.current||!ft)return;const ne=Ct.current;if(!ne)return;const se=setInterval(()=>{if(!nt.current)return;const Oe=ne.scrollHeight-ne.scrollTop-ne.clientHeight;Oe>10&&Oe<400&&ne.scrollTo({top:ne.scrollHeight,behavior:"smooth"})},300);return()=>clearInterval(se)},[ft]);const st=P.useCallback(async()=>{const ne=w.trim(),se=q;if(!ne&&se.length===0||x)return;const Oe=ft;B(""),Q([]),Oe||pe(!1);const Be=se.length>0,ze=Be?se.map((Ge,at)=>{const Et=Ge.dataUrl.split(";")[0]?.replace("data:","")||"image/png";return{id:`mobile_img_${Date.now()}_${at}`,data_url:Ge.dataUrl,mime_type:Et,metadata:{name:Ge.name,source:"remote"}}}):void 0;Be&&(C({id:`opt_${Date.now()}`,text:ne||"",images:se.map(Ge=>({name:Ge.name,data_url:Ge.dataUrl}))}),D(!0));try{const Ge=c?W:void 0;await e.sendMessage(t,ne||p("chat.imageAttachmentFallback"),Ge,ze),X.current?.nudge(),Oe&&Mt(p("chat.messageQueued"))}catch(Ge){k(Ge.message)}finally{D(!1),C(null)}},[W,x,w,ft,q,t,e,k,c,p]),Ft=P.useCallback(()=>{Se.current?.click()},[]),Je=P.useCallback(async ne=>{const se=ne.target.files;if(!se)return;const Oe=5,Be=Oe-q.length,ze=Array.from(se).slice(0,Be),{compressImageFile:Ge}=await II(async()=>{const{compressImageFile:at}=await import("./imageCompressor-Cy77l5Xt.js");return{compressImageFile:at}},[],import.meta.url);for(const at of ze)try{const Et=await Ge(at);Q(lt=>lt.length>=Oe?lt:[...lt,{name:Et.name,dataUrl:Et.dataUrl}])}catch{const Et=new FileReader;Et.onload=()=>{const lt=Et.result;Q(De=>De.length>=Oe?De:[...De,{name:at.name,dataUrl:lt}])},Et.readAsDataURL(at)}ne.target.value=""},[q.length]),Vt=P.useCallback(ne=>{Q(se=>se.filter((Oe,Be)=>Be!==ne))},[]),_n=P.useCallback(()=>{pe(!0),requestAnimationFrame(()=>fe.current?.focus())},[]);P.useEffect(()=>{o&&requestAnimationFrame(()=>fe.current?.focus())},[o]),P.useEffect(()=>{if(!ae)return;const ne=se=>{ke.current&&!ke.current.contains(se.target)&&!w.trim()&&q.length===0&&pe(!1)};return document.addEventListener("mousedown",ne),()=>document.removeEventListener("mousedown",ne)},[ae,w,q.length]);const $n=P.useRef(!1),Ar=P.useCallback(()=>{$n.current=!0},[]),Rr=P.useCallback(()=>{setTimeout(()=>{$n.current=!1},0)},[]),rr=ne=>{if(ne.key==="Enter"&&!ne.shiftKey){if(ne.nativeEvent.isComposing||$n.current)return;ne.preventDefault(),st()}},Di=async()=>{try{await e.cancelTask(t,S?.turn_id)}catch{}},Kr=T?.project_name||T?.path?.split("/").pop()||"",Zr=T?.git_branch,ar=M||n||p("chat.session");return g.jsxs("div",{className:"chat-page",children:[!l&&g.jsx("div",{className:"chat-page__header",children:g.jsxs("div",{className:"chat-page__header-row",children:[g.jsx("button",{className:"chat-page__back",onClick:i,"aria-label":p("common.back"),children:g.jsx("svg",{width:"18",height:"18",viewBox:"0 0 20 20",fill:"none",children:g.jsx("path",{d:"M12 4L6 10L12 16",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round"})})}),g.jsxs("div",{className:"chat-page__header-center",children:[g.jsx("span",{className:"chat-page__title",title:ar,children:ar}),Kr&&g.jsxs("div",{className:"chat-page__header-workspace",title:T?.path,children:[g.jsx("span",{className:"chat-page__workspace-name",children:Kr}),Zr&&g.jsxs("span",{className:"chat-page__workspace-branch",title:Zr,children:[g.jsxs("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[g.jsx("line",{x1:"6",x2:"6",y1:"3",y2:"15"}),g.jsx("circle",{cx:"18",cy:"6",r:"3"}),g.jsx("circle",{cx:"6",cy:"18",r:"3"}),g.jsx("path",{d:"M18 9a9 9 0 0 1-9 9"})]}),q4(Zr,28)]})]})]}),g.jsx("div",{className:"chat-page__header-right",children:g.jsx("button",{className:"chat-page__theme-btn",onClick:A,"aria-label":p("common.toggleTheme"),children:g.jsx(a$,{isDark:R})})})]})}),g.jsxs("div",{className:"chat-page__messages",ref:Ct,onScroll:xt,children:[he&&g.jsx("div",{className:"chat-page__load-more-indicator",children:p("chat.loadingOlderMessages")}),(()=>{const ne=L.reduceRight((se,Oe,Be)=>se<0&&Oe.role==="user"?Be:se,-1);return L.map((se,Oe)=>{if(se.role==="system"||se.role==="tool")return null;if(se.role==="user"){const Et=se.content.replace(/#img:\S+\s*/g,"").replace(/\[Image:.*?\]\n(?:Path:.*?\n|Image ID:.*?\n)?/g,"").trim();return g.jsx("div",{className:"chat-msg chat-msg--user",children:g.jsxs("div",{className:"chat-msg__user-card",children:[g.jsx("div",{className:"chat-msg__user-avatar",children:"U"}),g.jsxs("div",{className:"chat-msg__user-content",children:[Et,se.images&&se.images.length>0&&g.jsx("div",{className:"chat-msg__user-images",children:se.images.map((lt,De)=>g.jsx("img",{src:lt.data_url,alt:lt.name,className:"chat-msg__user-image"},De))})]})]})},se.id)}const Be=se.items&&se.items.length>0,ze=se.thinking||se.tools&&se.tools.length>0||se.content;if(!Be&&!ze)return null;const Ge=Oekt(Et=>{const lt=new Set(Et);return lt.add(se.id),lt}),children:[g.jsx("span",{className:"chat-msg__response-chevron",children:g.jsx("svg",{width:"10",height:"10",viewBox:"0 0 16 16",fill:"none",children:g.jsx("path",{d:"M6 4L10 8L6 12",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})}),g.jsx("span",{className:"chat-msg__response-label",children:p("chat.showResponse")})]})},se.id):g.jsxs("div",{className:"chat-msg chat-msg--assistant",children:[Ge&&at&&g.jsxs("button",{className:"chat-msg__response-toggle",onClick:()=>kt(Et=>{const lt=new Set(Et);return lt.delete(se.id),lt}),children:[g.jsx("span",{className:"chat-msg__response-chevron is-open",children:g.jsx("svg",{width:"10",height:"10",viewBox:"0 0 16 16",fill:"none",children:g.jsx("path",{d:"M6 4L10 8L6 12",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})}),g.jsx("span",{className:"chat-msg__response-label",children:p("chat.hideResponse")})]}),Be?ux(se.items,_t,void 0,K,ge,ee):g.jsxs(g.Fragment,{children:[se.thinking&&g.jsx(Bm,{thinking:se.thinking}),se.tools&&se.tools.length>0&&g.jsx(jm,{tools:se.tools,now:_t}),se.content&&g.jsx("div",{className:"chat-msg__assistant-content",children:g.jsx(Ri,{content:se.content,onFileDownload:ge,onGetFileInfo:ee})})]})]},se.id)})})(),S&&(()=>{const ne=S,se=ne.status==="active";if(ne.items&&ne.items.length>0)return g.jsxs("div",{className:"chat-msg chat-msg--assistant",children:[se?r$(ne.items,_t,e,k,K,ge,ee):ux(ne.items,_t,void 0,void 0,ge,ee),se&&!ne.thinking&&!ne.text&&ne.tools.length===0&&g.jsx("div",{className:"chat-msg__assistant-content",children:g.jsx(ix,{visible:!0})})]});const Oe=ne.tools.filter(De=>De.name==="Task"),Be=Oe.some(De=>De.status==="running"),ze=ne.tools.filter(De=>De.name==="AskUserQuestion"&&De.status==="running"&&De.tool_input),Ge=new Set(ze.map(De=>De.id)),at=ne.tools.filter(De=>De.name!=="Task"&&!Ge.has(De.id)),Et=Be?[...ne.thinking?[{type:"thinking",content:ne.thinking}]:[],...at.map(De=>({type:"tool",tool:De}))]:[],lt=De=>{e.cancelTool(De,p("common.cancel")).catch(Yt=>{k(String(Yt))})};return g.jsxs("div",{className:"chat-msg chat-msg--assistant",children:[!Be&&(ne.thinking||se)&&g.jsx(Bm,{thinking:ne.thinking,streaming:se,isLastItem:se}),Oe.map(De=>g.jsx(sR,{tool:De,now:_t,subItems:De.status==="running"?Et:void 0,onCancelTool:lt},De.id)),!Be&&at.length>0&&g.jsx(jm,{tools:at,now:_t,onCancelTool:lt}),se&&ze.map(De=>g.jsx(dR,{tool:De,onAnswer:K},De.id)),!Be&&ne.text?g.jsx("div",{className:"chat-msg__assistant-content",children:se?g.jsx(cR,{content:ne.text,onFileDownload:ge,onGetFileInfo:ee}):g.jsx(Ri,{content:ne.text,onFileDownload:ge,onGetFileInfo:ee})}):se&&!ne.thinking&&ne.tools.length===0?g.jsx("div",{className:"chat-msg__assistant-content",children:g.jsx(ix,{visible:!0})}):null]})})(),$&&g.jsx("div",{className:"chat-msg chat-msg--user",children:g.jsxs("div",{className:"chat-msg__user-card",children:[g.jsx("div",{className:"chat-msg__user-avatar",children:"U"}),g.jsxs("div",{className:"chat-msg__user-content",children:[$.text,$.images.length>0&&g.jsx("div",{className:"chat-msg__user-images",children:$.images.map((ne,se)=>g.jsx("img",{src:ne.data_url,alt:ne.name,className:"chat-msg__user-image"},se))})]})]})}),x&&g.jsx("div",{className:"chat-msg chat-msg--assistant",children:g.jsx("div",{className:"chat-msg__assistant-card",children:g.jsxs("div",{className:"chat-msg__image-analyzing",children:[g.jsx("div",{className:"chat-msg__image-analyzing-icon",children:g.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[g.jsx("circle",{cx:"12",cy:"12",r:"3"}),g.jsx("path",{d:"M12 1v2M12 21v2M4.22 4.22l1.42 1.42M18.36 18.36l1.42 1.42M1 12h2M21 12h2M4.22 19.78l1.42-1.42M18.36 5.64l1.42-1.42"})]})}),g.jsx("span",{children:p("chat.analyzingImage")})]})})}),g.jsx("div",{ref:Wt})]}),g.jsx("input",{ref:Se,type:"file",accept:"image/png,image/jpeg,image/jpg,image/gif,image/webp",multiple:!0,style:{display:"none"},onChange:Je}),g.jsx("div",{className:`chat-page__input-wrap ${ae?"is-expanded":""}`,ref:ke,children:g.jsxs("div",{className:"chat-page__input-box",onClick:ae?void 0:_n,children:[g.jsx("div",{className:"chat-page__input-area",children:ae?g.jsx("textarea",{ref:fe,className:"chat-page__input",placeholder:p("chat.inputPlaceholder"),value:w,onChange:ne=>B(ne.target.value),onKeyDown:rr,onCompositionStart:Ar,onCompositionEnd:Rr,rows:1,disabled:x}):g.jsx("span",{className:"chat-page__input-placeholder",children:p(x?"chat.imageAnalyzingPlaceholder":ft?"chat.collapsedStreamingPlaceholder":"chat.collapsedInputPlaceholder")})}),g.jsxs("div",{className:"chat-page__input-actions",children:[g.jsxs("div",{className:"chat-page__input-actions-left",children:[ae&&g.jsx(d$,{catalog:J,selectedModelId:Z,disabled:x||te,onSelect:Ne}),ae&&q.length>0&&g.jsx("div",{className:"chat-page__image-preview-row",children:q.map((ne,se)=>g.jsxs("div",{className:"chat-page__image-thumb",children:[g.jsx("img",{src:ne.dataUrl,alt:ne.name}),g.jsx("button",{className:"chat-page__image-remove",onClick:()=>Vt(se),children:"×"})]},se))})]}),g.jsxs("div",{className:"chat-page__input-actions-right",children:[ae&&g.jsxs(g.Fragment,{children:[c&&g.jsx("button",{className:`chat-page__mode-pill${W!=="bitfun-coder"?` chat-page__mode-pill--${W}`:""}`,onClick:()=>{const ne=["bitfun-coder","bitfun-plan","bitfun-debug","bitfun-team"],se=ne.indexOf(W);j(ne[(se+1)%ne.length])},disabled:x,children:O.find(ne=>ne.id===W)?.label}),g.jsx("button",{className:"chat-page__action-btn",onClick:Ft,disabled:x||q.length>=5,"aria-label":p("common.attachImage"),children:g.jsxs("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[g.jsx("rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2"}),g.jsx("circle",{cx:"9",cy:"9",r:"2"}),g.jsx("path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21"})]})})]}),x?g.jsx("button",{className:"chat-page__send-btn is-stop","aria-label":p("common.stop"),disabled:!0,children:g.jsxs("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",style:{animation:"analyzeSpin 2s linear infinite"},children:[g.jsx("circle",{cx:"12",cy:"12",r:"3"}),g.jsx("path",{d:"M12 1v2M12 21v2M4.22 4.22l1.42 1.42M18.36 18.36l1.42 1.42M1 12h2M21 12h2"})]})}):ft?g.jsxs("div",{className:"chat-page__stream-actions",children:[g.jsx("button",{type:"button",className:"chat-page__send-btn is-stop",onClick:Di,"aria-label":p("common.stop"),children:g.jsx("svg",{width:"10",height:"10",viewBox:"0 0 16 16",fill:"none",children:g.jsx("rect",{x:"3",y:"3",width:"10",height:"10",rx:"2",fill:"currentColor"})})}),g.jsx("button",{type:"button",className:"chat-page__send-btn",onClick:ae?st:_n,disabled:!w.trim()&&q.length===0,"aria-label":p("common.submit"),children:g.jsx("svg",{width:"12",height:"12",viewBox:"0 0 20 20",fill:"none",children:g.jsx("path",{d:"M10 3L10 17M10 3L5 8M10 3L15 8",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})})]}):g.jsx("button",{className:"chat-page__send-btn",onClick:ae?st:void 0,disabled:!w.trim()&&q.length===0,children:g.jsx("svg",{width:"12",height:"12",viewBox:"0 0 20 20",fill:"none",children:g.jsx("path",{d:"M10 3L10 17M10 3L5 8M10 3L15 8",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})})]})]})]})}),v&&g.jsx("div",{className:"chat-page__toast",onClick:()=>k(null),children:v}),It&&g.jsx("div",{className:"chat-page__toast chat-page__toast--info",onClick:()=>Mt(null),children:It})]})},f$=({sessionMgr:e})=>{const{t}=dt(),[n,i]=P.useState(null),[o,l]=P.useState(!0),[u,c]=P.useState(null),{authenticatedUserId:p,selectedWorkspace:f}=vn(),m=Bn(E=>E.setSessionContext),h=P.useCallback(async()=>{l(!0),c(null);try{const E=await e.getOrCreateAgenticOsSession(f?.path);i(E),m(null)}catch(E){c(E?.message??"Failed to load")}finally{l(!1)}},[e,f?.path,m]);P.useEffect(()=>{h()},[h]);const S=p??"";return S.split("@")[0],o?g.jsxs("div",{className:"agentic-os-home agentic-os-home--loading",children:[g.jsx("div",{className:"agentic-os-home__orbit-spinner"}),g.jsx("span",{className:"agentic-os-home__loading-text",children:t("common.loading")})]}):u||!n?g.jsxs("div",{className:"agentic-os-home agentic-os-home--error",children:[g.jsx("div",{className:"agentic-os-home__error-dot","aria-hidden":"true"}),g.jsx("span",{children:u??t("common.loading")}),g.jsx("button",{type:"button",className:"agentic-os-home__retry",onClick:()=>{h()},children:"Retry"})]}):g.jsx("div",{className:"agentic-os-home",children:g.jsx(mR,{sessionMgr:e,sessionId:n,sessionName:t("sessions.agenticOsSession"),onBack:()=>{},embedded:!0})})},Dt=({children:e,className:t})=>g.jsxs("div",{className:`eyebrow-label${t?` ${t}`:""}`,children:[g.jsx("span",{className:"eyebrow-label__dot","aria-hidden":"true"}),g.jsx("span",{className:"eyebrow-label__text",children:e})]}),Gr=({open:e,onClose:t,title:n,children:i})=>{const o=P.useRef(null);return P.useEffect(()=>{if(!e)return;const l=u=>{u.key==="Escape"&&t()};return document.addEventListener("keydown",l),()=>document.removeEventListener("keydown",l)},[e,t]),e?g.jsx("div",{className:"bottom-sheet-overlay",onClick:t,role:"dialog","aria-modal":"true",children:g.jsxs("div",{ref:o,className:"bottom-sheet",onClick:l=>l.stopPropagation(),children:[g.jsx("div",{className:"bottom-sheet__handle","aria-hidden":"true"}),n&&g.jsx("div",{className:"bottom-sheet__header",children:g.jsx("span",{className:"bottom-sheet__title",children:n})}),g.jsx("div",{className:"bottom-sheet__body",children:i})]})}):null},Me=({className:e})=>g.jsx("div",{className:e,style:{height:"1px",background:"var(--border-subtle)",flexShrink:0},"aria-hidden":"true"}),g$=100,yn="__all__",m$={Runno:"Runno","bitfun-coder":"BitFun Coder","bitfun-plan":"Plan","bitfun-debug":"Debug","bitfun-team":"Team",cowork:"Cowork",Cowork:"Cowork",design:"Design",Design:"Design",deepresearch:"Deep Research",DeepResearch:"Deep Research",AppBuilder:"App Builder",OSAgent:"Sparo OS"},h$=[{type:"bitfun-coder",labelKey:"sessions.agentBitFunCoder",descKey:"sessions.agentBitFunCoderDesc",badge:"BF",badgeColor:"#1E40AF",needsWorkspace:!0},{type:"Cowork",labelKey:"sessions.agentCowork",descKey:"sessions.agentCoworkDesc",badge:"CW",badgeColor:"#065F46",needsWorkspace:!0},{type:"Design",labelKey:"sessions.agentDesign",descKey:"sessions.agentDesignDesc",badge:"DS",badgeColor:"#6D28D9",needsWorkspace:!0},{type:"DeepResearch",labelKey:"sessions.agentDeepResearch",descKey:"sessions.agentDeepResearchDesc",badge:"DR",badgeColor:"#92400E",needsWorkspace:!0},{type:"AppBuilder",labelKey:"sessions.appBuilder",descKey:"sessions.appBuilderDesc",badge:"AB",badgeColor:"#BE123C",needsWorkspace:!1}];function Qo(e){return m$[e]??e}function b$(e,t,n){const i=parseInt(e,10);if(!i||isNaN(i))return"";const o=new Date(i*1e3),u=new Date().getTime()-o.getTime(),c=Math.floor(u/6e4);if(c<1)return n("common.justNow");if(c<60)return n("common.minutesAgo",{count:c});const p=Math.floor(c/60);if(p<24)return n("common.hoursAgo",{count:p});const f=Math.floor(p/24);return f<7?n("common.daysAgo",{count:f}):o.toLocaleDateString(t)}function px(e){return!1}function fx(e,t){return e.workspace_name?e.workspace_name:e.workspace_path?e.workspace_path.replace(/\\/g,"/").split("/").filter(Boolean).pop()??e.workspace_path:t==="zh-CN"?"无工作区":"No Workspace"}const y$=()=>g.jsx("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:g.jsx("polygon",{points:"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3"})}),E$=()=>g.jsxs("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[g.jsx("line",{x1:"8",y1:"6",x2:"21",y2:"6"}),g.jsx("line",{x1:"8",y1:"12",x2:"21",y2:"12"}),g.jsx("line",{x1:"8",y1:"18",x2:"21",y2:"18"}),g.jsx("line",{x1:"3",y1:"6",x2:"3.01",y2:"6"}),g.jsx("line",{x1:"3",y1:"12",x2:"3.01",y2:"12"}),g.jsx("line",{x1:"3",y1:"18",x2:"3.01",y2:"18"})]}),bm=({size:e=15})=>g.jsx("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:g.jsx("path",{d:"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z"})}),S$=({sessionMgr:e,onSelectSession:t})=>{const{t:n,language:i}=dt(),{sessions:o,setSessions:l,selectedWorkspace:u}=vn(),[c,p]=P.useState("time"),[f,m]=P.useState(!1),[h,S]=P.useState(!1),[E,v]=P.useState(!1),[k,T]=P.useState(!1),[N,R]=P.useState(null),[A,O]=P.useState([]),[L,w]=P.useState(!1),[B,W]=P.useState(yn),[j,M]=P.useState(yn),[Y,J]=P.useState(null),[de,Z]=P.useState(!1),H=P.useRef(),te=P.useCallback(async()=>{m(!0);try{const X=await e.listSessions(void 0,g$,0);l(X.sessions)}catch{}finally{m(!1)}},[e,l]);P.useEffect(()=>{te()},[te]),P.useEffect(()=>{const X=setInterval(()=>{te()},1e4);return()=>clearInterval(X)},[te]);const ue=P.useMemo(()=>{const X={};return o.forEach(he=>{const Ie=he.workspace_path??"__none__";X[Ie]||(X[Ie]=fx(he,i))}),X},[o,i]),q=P.useMemo(()=>{const X=new Set;return o.forEach(he=>{he.agent_type&&X.add(he.agent_type)}),Array.from(X)},[o]),Q=P.useMemo(()=>o.filter(X=>!(B!==yn&&(X.workspace_path??"__none__")!==B||j!==yn&&X.agent_type!==j)),[o,B,j]),x=B!==yn||j!==yn,D=P.useCallback(async X=>{if(!X.needsWorkspace){v(!1),S(!0);try{const he=await e.createSession(X.type,void 0,void 0);await te(),t(he,Qo(X.type),X.type)}catch{}finally{S(!1)}return}v(!1),R(X);try{const he=await e.listRecentWorkspaces();O(he.map(Ie=>({path:Ie.path,name:Ie.name})))}catch{O(u?.path?[{path:u.path,name:u.project_name??u.path}]:[])}w(!0)},[u,te,t,e]),$=P.useCallback(async X=>{if(!(!N||h)){w(!1),R(null),S(!0);try{const he=await e.createSession(N.type,void 0,X);await te(),t(he,Qo(N.type),N.type)}catch{}finally{S(!1)}}},[h,te,t,N,e]),C=X=>{H.current=setTimeout(()=>{J(X),Z(!0)},500)},ae=()=>{clearTimeout(H.current)},pe=P.useCallback(async()=>{if(Y){Z(!1);try{await e.deleteSession(Y.session_id),await te()}catch{}}},[Y,e,te]),fe=(X,he,Ie)=>g.jsxs(ct.Fragment,{children:[g.jsxs("div",{className:"tasks-row",role:"button",tabIndex:0,onClick:()=>t(X.session_id,X.name,X.agent_type),onKeyDown:Qe=>{Qe.key==="Enter"&&t(X.session_id,X.name,X.agent_type)},onTouchStart:()=>C(X),onTouchEnd:ae,onMouseDown:()=>C(X),onMouseUp:ae,children:[g.jsxs("div",{className:"tasks-row__body",children:[g.jsx("span",{className:"tasks-row__name",children:X.name||n("sessions.untitledSession")}),g.jsxs("div",{className:"tasks-row__meta-row",children:[X.agent_type&&g.jsx("span",{className:"tasks-row__tag",children:Qo(X.agent_type)}),g.jsx("span",{className:"tasks-row__meta",children:b$(X.updated_at,i,n)}),c==="time"&&X.workspace_path&&g.jsxs(g.Fragment,{children:[g.jsx("span",{className:"tasks-row__meta-sep",children:"·"}),g.jsxs("span",{className:"tasks-row__meta tasks-row__meta--ws",children:[g.jsx(bm,{size:11}),fx(X,i)]})]})]})]}),g.jsxs("div",{className:"tasks-row__end",children:[Ie&&g.jsx(Sh,{pulsing:!0,size:"sm"}),g.jsx("svg",{className:"tasks-row__chevron",width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:g.jsx("path",{d:"m9 18 6-6-6-6"})})]})]}),g.jsx(Me,{})]},X.session_id),Se=()=>{const X=[...Q].sort((Qe,Ce)=>{const $e=parseInt(Qe.updated_at,10)||0;return(parseInt(Ce.updated_at,10)||0)-$e}),he=X.filter(px),Ie=X.filter(Qe=>!0);return g.jsxs(g.Fragment,{children:[he.length>0&&g.jsxs("div",{className:"tasks-scene__section",children:[g.jsx("div",{className:"tasks-scene__section-head",children:g.jsx(Dt,{children:n("sessions.active")})}),g.jsx(Me,{}),he.map((Qe,Ce)=>fe(Qe,Ce,!0))]}),g.jsxs("div",{className:"tasks-scene__section",children:[Ie.length===0&&!f&&g.jsx("div",{className:"tasks-scene__empty",children:n("tasks.noRecentSessions")}),Ie.map((Qe,Ce)=>fe(Qe,he.length+Ce,!1))]})]})},ke=()=>{const X="__none__",he={};Q.forEach(Ce=>{const $e=Ce.workspace_path??X;he[$e]||(he[$e]=[]),he[$e].push(Ce)}),Object.values(he).forEach(Ce=>Ce.sort(($e,pt)=>(parseInt(pt.updated_at,10)||0)-(parseInt($e.updated_at,10)||0)));const Ie=Object.keys(he).sort((Ce,$e)=>Ce===X?1:$e===X?-1:(ue[Ce]??Ce).localeCompare(ue[$e]??$e));if(Ie.length===0&&!f)return g.jsx("div",{className:"tasks-scene__empty",children:n("tasks.noRecentSessions")});let Qe=0;return g.jsx(g.Fragment,{children:Ie.map(Ce=>{const $e=he[Ce],pt=ue[Ce]??(i==="zh-CN"?"无工作区":"No Workspace");return g.jsxs("div",{className:"tasks-scene__section",children:[g.jsxs("div",{className:"tasks-scene__section-head tasks-scene__section-head--ws",children:[g.jsx(bm,{}),g.jsx("span",{className:"tasks-scene__ws-label",children:pt}),g.jsxs("span",{className:"tasks-scene__section-count",children:["(",$e.length,")"]})]}),g.jsx(Me,{}),$e.map(tt=>fe(tt,Qe++,px()))]},Ce)})})};return g.jsxs("div",{className:"tasks-scene",children:[g.jsxs("div",{className:"tasks-scene__toolbar",children:[g.jsxs("span",{className:"tasks-scene__title",children:[n("tasks.title"),Q.length>0&&g.jsxs("span",{className:"tasks-scene__title-count",children:[" (",Q.length,")"]})]}),g.jsxs("div",{className:"tasks-scene__toolbar-right",children:[g.jsx("button",{type:"button",className:`tasks-scene__mode-btn${c==="workspace"?" is-active":""}`,onClick:()=>p(X=>X==="time"?"workspace":"time"),"aria-label":c==="time"?"Group by workspace":"Sort by time",title:c==="time"?"Group by workspace":"Sort by time",children:c==="time"?g.jsx(bm,{}):g.jsx(E$,{})}),g.jsxs("button",{type:"button",className:`tasks-scene__mode-btn${x?" is-active":""}`,onClick:()=>T(!0),"aria-label":"Filter",children:[g.jsx(y$,{}),x&&g.jsx("span",{className:"tasks-scene__filter-badge"})]})]})]}),g.jsxs("div",{className:"tasks-scene__list",children:[f&&o.length===0&&g.jsx("div",{className:"tasks-scene__empty",children:n("common.loading")}),c==="time"?Se():ke()]}),g.jsxs("button",{type:"button",className:"tasks-scene__fab",onClick:()=>v(!0),disabled:h,"aria-label":n("sessions.newSession"),children:[g.jsx("span",{className:"tasks-scene__fab-dot","aria-hidden":"true"}),g.jsx("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.2",strokeLinecap:"round","aria-hidden":"true",children:g.jsx("path",{d:"M12 5v14M5 12h14"})})]}),g.jsx(Gr,{open:E,onClose:()=>v(!1),title:n("sessions.newSession"),children:h$.map((X,he)=>g.jsxs(ct.Fragment,{children:[he>0&&g.jsx(Me,{}),g.jsxs("button",{type:"button",className:"tasks-scene__sheet-item tasks-scene__sheet-item--agent",onClick:()=>{D(X)},disabled:h,children:[g.jsx("span",{className:"tasks-scene__sheet-item-badge",style:{background:X.badgeColor},"aria-hidden":"true",children:X.badge}),g.jsxs("span",{className:"tasks-scene__sheet-item-body",children:[g.jsx("span",{className:"tasks-scene__sheet-item-label",children:n(X.labelKey)}),g.jsx("span",{className:"tasks-scene__sheet-item-desc",children:n(X.descKey)})]})]})]},X.type))}),g.jsx(Gr,{open:L,onClose:()=>{w(!1),R(null)},title:i==="zh-CN"?"选择工作区":"Select Workspace",children:A.length===0?g.jsx("div",{className:"tasks-scene__ws-empty",children:i==="zh-CN"?"没有可用的工作区":"No workspaces available"}):A.map((X,he)=>g.jsxs(ct.Fragment,{children:[he>0&&g.jsx(Me,{}),g.jsxs("button",{type:"button",className:"tasks-scene__sheet-item",onClick:()=>{$(X.path)},disabled:h,children:[g.jsx("span",{className:"tasks-scene__sheet-item-label",children:X.name}),g.jsx("span",{className:"tasks-scene__sheet-item-desc tasks-scene__sheet-item-desc--path",children:X.path})]})]},X.path))}),g.jsxs(Gr,{open:k,onClose:()=>T(!1),title:i==="zh-CN"?"筛选":"Filter",children:[g.jsxs("div",{className:"tasks-scene__filter-section",children:[g.jsx("div",{className:"tasks-scene__filter-label",children:g.jsx(Dt,{children:n("sessions.workspace")})}),g.jsxs("div",{className:"tasks-scene__filter-chips",children:[g.jsx("button",{type:"button",className:`tasks-scene__chip${B===yn?" is-active":""}`,onClick:()=>W(yn),children:i==="zh-CN"?"全部":"All"}),Object.entries(ue).filter(([X])=>X!=="__none__").map(([X,he])=>g.jsx("button",{type:"button",className:`tasks-scene__chip${B===X?" is-active":""}`,onClick:()=>W(X),children:he},X))]})]}),g.jsx(Me,{}),g.jsxs("div",{className:"tasks-scene__filter-section",children:[g.jsx("div",{className:"tasks-scene__filter-label",children:g.jsx(Dt,{children:i==="zh-CN"?"Agent 类型":"Agent Type"})}),g.jsxs("div",{className:"tasks-scene__filter-chips",children:[g.jsx("button",{type:"button",className:`tasks-scene__chip${j===yn?" is-active":""}`,onClick:()=>M(yn),children:i==="zh-CN"?"全部":"All"}),q.map(X=>g.jsx("button",{type:"button",className:`tasks-scene__chip${j===X?" is-active":""}`,onClick:()=>M(X),children:Qo(X)},X))]})]}),x&&g.jsxs(g.Fragment,{children:[g.jsx(Me,{}),g.jsx("button",{type:"button",className:"tasks-scene__sheet-item tasks-scene__sheet-item--danger",onClick:()=>{W(yn),M(yn),T(!1)},children:g.jsx("span",{className:"tasks-scene__sheet-item-label",children:i==="zh-CN"?"清除筛选":"Clear Filters"})})]})]}),g.jsxs(Gr,{open:de,onClose:()=>Z(!1),children:[g.jsx("button",{type:"button",className:"tasks-scene__sheet-item tasks-scene__sheet-item--danger",onClick:()=>{pe()},children:g.jsx("span",{className:"tasks-scene__sheet-item-label",children:n("sessions.deleteSession")})}),g.jsx(Me,{}),g.jsx("button",{type:"button",className:"tasks-scene__sheet-item",onClick:()=>Z(!1),children:g.jsx("span",{className:"tasks-scene__sheet-item-label",children:n("common.cancel")})})]})]})},v$=()=>g.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:g.jsx("path",{d:"m9 18 6-6-6-6"})}),k$=()=>{const{t:e}=dt(),{push:t}=Bn(),n=[{id:"app:skills",label:e("apps.skills"),desc:e("apps.skillsDesc"),available:!0},{id:"app:settings",label:e("apps.settings"),desc:e("apps.settingsDesc"),available:!0}],i=["Product Apps","Subagents","Tools","File Browser","Design Canvas"];return g.jsx("div",{className:"apps-scene",children:g.jsxs("div",{className:"apps-scene__list",children:[g.jsx("div",{className:"apps-scene__section-head",children:g.jsx(Dt,{children:e("apps.title")})}),g.jsx(Me,{}),n.map((o,l)=>g.jsxs(ct.Fragment,{children:[g.jsxs("button",{type:"button",className:"apps-row",onClick:()=>t(o.id),children:[g.jsx("span",{className:"apps-row__num",children:String(l+1).padStart(2,"0")}),g.jsxs("div",{className:"apps-row__body",children:[g.jsx("span",{className:"apps-row__label",children:o.label}),g.jsx("span",{className:"apps-row__desc",children:o.desc})]}),g.jsx(v$,{})]}),g.jsx(Me,{})]},o.id)),g.jsx("div",{className:"apps-scene__section-head apps-scene__section-head--mt",children:g.jsx(Dt,{children:e("apps.comingSoon")})}),g.jsx(Me,{}),i.map((o,l)=>g.jsxs(ct.Fragment,{children:[g.jsxs("div",{className:"apps-row apps-row--disabled",children:[g.jsx("span",{className:"apps-row__num",children:String(n.length+l+1).padStart(2,"0")}),g.jsx("div",{className:"apps-row__body",children:g.jsx("span",{className:"apps-row__label apps-row__label--muted",children:o})}),g.jsx("span",{className:"apps-row__badge",children:e("apps.comingSoon")})]}),g.jsx(Me,{})]},o))]})})},_$=({sessionMgr:e})=>{const{t,language:n}=dt(),{selectedWorkspace:i}=vn(),[o,l]=P.useState([]),[u,c]=P.useState(!0),[p,f]=P.useState(null);P.useEffect(()=>{(async()=>{c(!0),f(null);try{const k=await e.listSkills(i?.path);l(k)}catch(k){f(k?.message??"Failed to load skills")}finally{c(!1)}})()},[e,i?.path]);const m=o.filter(v=>v.level==="user"),h=o.filter(v=>v.level==="project"),S=o.filter(v=>v.isBuiltin),E=(v,k)=>g.jsxs(ct.Fragment,{children:[g.jsxs("div",{className:"skills-row",children:[g.jsx("span",{className:"skills-row__num",children:String(k+1).padStart(2,"0")}),g.jsxs("div",{className:"skills-row__body",children:[g.jsx("span",{className:"skills-row__name",children:v.name}),v.description&&g.jsx("span",{className:"skills-row__desc",children:v.description})]}),v.isBuiltin&&g.jsx("span",{className:"skills-row__badge",children:n==="zh-CN"?"内置":"Built-in"})]}),g.jsx(Me,{})]},v.key);return u?g.jsx("div",{className:"app-page",children:g.jsx("div",{className:"app-page__loading",children:t("common.loading")})}):p?g.jsxs("div",{className:"app-page",children:[g.jsx("div",{className:"app-page__section-head",children:g.jsx(Dt,{children:t("apps.skills")})}),g.jsx(Me,{}),g.jsxs("div",{className:"app-page__placeholder",children:[g.jsx("div",{className:"app-page__placeholder-dot","aria-hidden":"true"}),g.jsx("strong",{className:"app-page__placeholder-title",children:n==="zh-CN"?"加载失败":"Failed to load"}),g.jsx("p",{className:"app-page__placeholder-desc",children:p})]})]}):o.length===0?g.jsxs("div",{className:"app-page",children:[g.jsx("div",{className:"app-page__section-head",children:g.jsx(Dt,{children:t("apps.skills")})}),g.jsx(Me,{}),g.jsxs("div",{className:"app-page__placeholder",children:[g.jsx("div",{className:"app-page__placeholder-dot","aria-hidden":"true"}),g.jsx("strong",{className:"app-page__placeholder-title",children:n==="zh-CN"?"暂无技能":"No skills found"}),g.jsx("p",{className:"app-page__placeholder-desc",children:n==="zh-CN"?"在工作区的 .cursor/skills/ 目录或用户级 skills 目录下添加技能文件":"Add skill files under .cursor/skills/ in your workspace or user-level skills directory"})]})]}):g.jsxs("div",{className:"app-page",children:[h.length>0&&g.jsxs(g.Fragment,{children:[g.jsx("div",{className:"app-page__section-head",children:g.jsx(Dt,{children:n==="zh-CN"?"项目技能":"Project Skills"})}),g.jsx(Me,{}),h.map((v,k)=>E(v,k))]}),m.filter(v=>!v.isBuiltin).length>0&&g.jsxs(g.Fragment,{children:[g.jsx("div",{className:`app-page__section-head${h.length>0?" app-page__section-head--mt":""}`,children:g.jsx(Dt,{children:n==="zh-CN"?"用户技能":"User Skills"})}),g.jsx(Me,{}),m.filter(v=>!v.isBuiltin).map((v,k)=>E(v,h.length+k))]}),S.length>0&&g.jsxs(g.Fragment,{children:[g.jsx("div",{className:"app-page__section-head app-page__section-head--mt",children:g.jsx(Dt,{children:n==="zh-CN"?"内置技能":"Built-in Skills"})}),g.jsx(Me,{}),S.map((v,k)=>E(v,m.filter(T=>!T.isBuiltin).length+h.length+k))]})]})},w$=()=>g.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:g.jsx("path",{d:"m9 18 6-6-6-6"})}),T$=()=>{const{t:e,language:t,setLanguage:n}=dt(),{isDark:i,toggleTheme:o}=Ca();return g.jsxs("div",{className:"app-page",children:[g.jsx("div",{className:"app-page__section-head",children:g.jsx(Dt,{children:e("me.preferences")})}),g.jsx(Me,{}),g.jsxs("button",{type:"button",className:"app-page__row app-page__row--btn",onClick:o,children:[g.jsx("div",{className:"app-page__row-body",children:g.jsx("span",{className:"app-page__row-name",children:e("me.appearance")})}),g.jsx("span",{className:"app-page__row-value",children:e(i?"me.dark":"me.light")})]}),g.jsx(Me,{}),g.jsxs("button",{type:"button",className:"app-page__row app-page__row--btn",onClick:()=>n(t==="zh-CN"?"en-US":"zh-CN"),children:[g.jsx("div",{className:"app-page__row-body",children:g.jsx("span",{className:"app-page__row-name",children:e("me.language")})}),g.jsx("span",{className:"app-page__row-value",children:t==="zh-CN"?"中文":"English"}),g.jsx(w$,{})]}),g.jsx(Me,{}),g.jsx("div",{className:"app-page__section-head app-page__section-head--mt",children:g.jsx(Dt,{children:e("apps.title")})}),g.jsx(Me,{}),g.jsx("div",{className:"app-page__row",children:g.jsxs("div",{className:"app-page__row-body",children:[g.jsx("span",{className:"app-page__row-name",children:"Sparo OS"}),g.jsx("span",{className:"app-page__row-desc",children:"Remote Control v0.1"})]})}),g.jsx(Me,{})]})},x$=({sessionMgr:e,onDone:t})=>{const{t:n}=dt(),{selectedWorkspace:i,setSelectedWorkspace:o}=vn(),[l,u]=P.useState([]),[c,p]=P.useState(!0),[f,m]=P.useState(!1),[h,S]=P.useState(null);P.useEffect(()=>{(async()=>{p(!0);try{const k=await e.listRecentWorkspaces();u(k)}catch(k){S(k.message)}finally{p(!1)}})()},[e]);const E=P.useCallback(async v=>{if(!f){m(!0),S(null);try{const k=await e.setWorkspace(v.path);k.success?(o({has_workspace:!0,path:k.path||v.path,project_name:k.project_name||v.name}),t?.()):S(k.error||n("workspace.failedToSetWorkspace"))}catch(k){S(k.message)}finally{m(!1)}}},[f,e,o,t,n]);return c?g.jsx("div",{className:"workspace-picker__loading",children:n("common.loading")}):g.jsxs("div",{className:"workspace-picker",children:[g.jsx("div",{className:"workspace-picker__head",children:g.jsx(Dt,{children:n("workspace.recentWorkspaces")})}),g.jsx(Me,{}),l.length===0&&g.jsx("div",{className:"workspace-picker__empty",children:n("workspace.noRecentWorkspaces")}),l.map(v=>g.jsxs(ct.Fragment,{children:[g.jsxs("button",{type:"button",className:`workspace-picker__item${i?.path===v.path?" is-current":""}`,onClick:()=>{E(v)},disabled:f,children:[g.jsx("div",{className:"workspace-picker__item-name",children:v.name}),g.jsx("div",{className:"workspace-picker__item-path",children:v.path}),i?.path===v.path&&g.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:g.jsx("polyline",{points:"20 6 9 17 4 12"})})]}),g.jsx(Me,{})]},v.path)),h&&g.jsx("div",{className:"workspace-picker__error",children:h})]})},Jo=()=>g.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:g.jsx("path",{d:"m9 18 6-6-6-6"})}),A$=()=>g.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[g.jsx("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),g.jsx("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]}),R$=()=>g.jsxs("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[g.jsx("line",{x1:"6",x2:"6",y1:"3",y2:"15"}),g.jsx("circle",{cx:"18",cy:"6",r:"3"}),g.jsx("circle",{cx:"6",cy:"18",r:"3"}),g.jsx("path",{d:"M18 9a9 9 0 0 1-9 9"})]}),N$=({sessionMgr:e,onSignOut:t})=>{const{t:n,language:i,setLanguage:o}=dt(),{isDark:l,toggleTheme:u}=Ca(),{selectedWorkspace:c,authenticatedUserId:p}=vn(),[f,m]=P.useState(!1),[h,S]=P.useState(!1),[E,v]=P.useState(!1),k=()=>{c?.path&&navigator.clipboard?.writeText(c.path).then(()=>{v(!0),setTimeout(()=>v(!1),2e3)}).catch(()=>{})},T=()=>{S(!1),t()},N=c?.project_name??c?.path?.split(/[\\/]/).pop()??"";return g.jsxs("div",{className:"me-page",children:[g.jsx("div",{className:"me-page__section-head",children:g.jsx(Dt,{children:n("me.workspace")})}),g.jsx(Me,{}),c?.path?g.jsxs(g.Fragment,{children:[g.jsxs("div",{className:"me-page__ws-card",children:[g.jsx("div",{className:"me-page__ws-name",children:N}),g.jsxs("div",{className:"me-page__ws-path-row",children:[g.jsx("span",{className:"me-page__ws-path",children:c.path}),g.jsx("button",{type:"button",className:"me-page__ws-copy",onClick:k,"aria-label":n("me.copyPath"),children:E?g.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.2",strokeLinecap:"round",strokeLinejoin:"round",children:g.jsx("polyline",{points:"20 6 9 17 4 12"})}):g.jsx(A$,{})})]}),c.git_branch&&g.jsxs("div",{className:"me-page__ws-branch",children:[g.jsx(R$,{}),g.jsx("span",{children:c.git_branch}),g.jsx(Sh,{size:"sm"})]})]}),g.jsx(Me,{}),g.jsxs("button",{type:"button",className:"me-page__row me-page__row--btn",onClick:()=>m(!0),children:[g.jsx("span",{className:"me-page__row-label",children:n("me.switchWorkspace")}),g.jsx(Jo,{})]}),g.jsx(Me,{})]}):g.jsxs(g.Fragment,{children:[g.jsxs("button",{type:"button",className:"me-page__row me-page__row--btn",onClick:()=>m(!0),children:[g.jsx("span",{className:"me-page__row-label",children:n("workspace.selectWorkspace")}),g.jsx(Jo,{})]}),g.jsx(Me,{})]}),g.jsx("div",{className:"me-page__section-head me-page__section-head--mt",children:g.jsx(Dt,{children:n("me.preferences")})}),g.jsx(Me,{}),g.jsxs("button",{type:"button",className:"me-page__row me-page__row--btn",onClick:u,children:[g.jsx("span",{className:"me-page__row-label",children:n("me.appearance")}),g.jsx("span",{className:"me-page__row-value",children:n(l?"me.dark":"me.light")}),g.jsx(Jo,{})]}),g.jsx(Me,{}),g.jsxs("button",{type:"button",className:"me-page__row me-page__row--btn",onClick:()=>o(i==="zh-CN"?"en-US":"zh-CN"),children:[g.jsx("span",{className:"me-page__row-label",children:n("me.language")}),g.jsx("span",{className:"me-page__row-value",children:i==="zh-CN"?"中文":"English"}),g.jsx(Jo,{})]}),g.jsx(Me,{}),g.jsx("div",{className:"me-page__section-head me-page__section-head--mt",children:g.jsx(Dt,{children:n("me.account")})}),g.jsx(Me,{}),g.jsxs("div",{className:"me-page__row",children:[g.jsx("span",{className:"me-page__row-label",children:n("me.userId")}),g.jsx("span",{className:"me-page__row-value me-page__row-value--mono",children:p??"—"})]}),g.jsx(Me,{}),g.jsx("button",{type:"button",className:"me-page__row me-page__row--btn me-page__row--danger",onClick:()=>S(!0),children:g.jsx("span",{className:"me-page__row-label",children:n("me.signOut")})}),g.jsx(Me,{}),g.jsx(Gr,{open:f,onClose:()=>m(!1),title:n("workspace.selectWorkspace"),children:g.jsx(x$,{sessionMgr:e,onDone:()=>m(!1)})}),g.jsx(Gr,{open:h,onClose:()=>S(!1),children:g.jsxs("div",{className:"me-page__signout-panel",children:[g.jsx("div",{className:"me-page__signout-title",children:n("me.signOutConfirm")}),g.jsx("div",{className:"me-page__signout-desc",children:n("me.signOutDesc")}),g.jsxs("button",{type:"button",className:"me-page__signout-btn me-page__signout-btn--confirm",onClick:T,children:[g.jsx("span",{className:"me-page__signout-btn-dot","aria-hidden":"true"}),n("me.signOut")]}),g.jsx("button",{type:"button",className:"me-page__signout-btn me-page__signout-btn--cancel",onClick:()=>S(!1),children:n("common.cancel")})]})})]})};function C$(e,t){return!e||e.length<=t?e:`${e.slice(0,t)}…`}const I$=({sessionMgr:e,onSelectSession:t})=>{const{t:n}=dt(),{sessions:i,selectedWorkspace:o}=vn(),[l,u]=P.useState(""),c=P.useRef(null);P.useEffect(()=>{c.current?.focus()},[]);const p=P.useMemo(()=>{const h={};return o?.path&&o.project_name&&(h[o.path]=o.project_name),h},[o]),f=P.useMemo(()=>{if(!l.trim())return i.slice(0,20);const h=l.toLowerCase();return i.filter(S=>S.name?.toLowerCase().includes(h)||S.agent_type?.toLowerCase().includes(h)||p[S.workspace_path??""]?.toLowerCase().includes(h)).slice(0,20)},[l,i,p]),m=P.useCallback((h,S,E)=>{t(h,S,E)},[t]);return g.jsxs("div",{className:"search-dialog",children:[g.jsxs("div",{className:"search-dialog__input-wrap",children:[g.jsxs("svg",{className:"search-dialog__input-icon",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[g.jsx("circle",{cx:"11",cy:"11",r:"8"}),g.jsx("path",{d:"m21 21-4.35-4.35"})]}),g.jsx("input",{ref:c,type:"search",className:"search-dialog__input",placeholder:n("search.placeholder"),value:l,onChange:h=>u(h.target.value),autoCapitalize:"off",autoCorrect:"off"}),l&&g.jsx("button",{type:"button",className:"search-dialog__clear",onClick:()=>{u(""),c.current?.focus()},"aria-label":"Clear",children:g.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[g.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),g.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]}),g.jsx(Me,{}),g.jsx("div",{className:"search-dialog__results",children:f.length===0&&l.trim()?g.jsx("div",{className:"search-dialog__empty",children:n("search.noResults")}):g.jsxs(g.Fragment,{children:[f.length>0&&g.jsx("div",{className:"search-dialog__section-head",children:g.jsx(Dt,{children:n("search.sessions")})}),f.map((h,S)=>g.jsxs(ct.Fragment,{children:[g.jsxs("button",{type:"button",className:"search-dialog__row",onClick:()=>m(h.session_id,h.name,h.agent_type),children:[g.jsx("span",{className:"search-dialog__row-num",children:String(S+1).padStart(2,"0")}),g.jsxs("div",{className:"search-dialog__row-body",children:[g.jsx("span",{className:"search-dialog__row-name",children:C$(h.name||n("sessions.untitledSession"),40)}),g.jsx("span",{className:"search-dialog__row-meta",children:h.agent_type})]})]}),g.jsx(Me,{})]},h.session_id))]})})]})},O$=()=>g.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:g.jsx("path",{d:"M19 12H5M12 5l-7 7 7 7"})}),L$=()=>g.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[g.jsx("path",{d:"M9 11l3 3L22 4"}),g.jsx("path",{d:"M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11"})]}),D$=()=>g.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[g.jsx("rect",{x:"3",y:"3",width:"7",height:"7",rx:"1"}),g.jsx("rect",{x:"14",y:"3",width:"7",height:"7",rx:"1"}),g.jsx("rect",{x:"3",y:"14",width:"7",height:"7",rx:"1"}),g.jsx("rect",{x:"14",y:"14",width:"7",height:"7",rx:"1"})]}),M$=()=>g.jsx("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:g.jsx("path",{d:"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z"})}),F$=({onLogoClick:e,onTasksClick:t,onAppsClick:n})=>{const{activeScene:i,sessionContext:o,closeOverlay:l,openAgenticOs:u}=Bn(),c=i==="home",p=["app:skills","app:memory","app:shell","app:settings","me","search"].includes(i),f=!c,m=()=>{p?l():u()},h=o?.workspaceDisplayName??(o?.workspacePath?o.workspacePath.replace(/\\/g,"/").split("/").filter(Boolean).pop()??"":"");return g.jsxs("div",{className:"sparo-topbar",children:[g.jsx("div",{className:"sparo-topbar__left",children:g.jsx("button",{type:"button",className:"sparo-topbar__logo-btn",onClick:e,"aria-label":"Open menu",children:g.jsx("img",{src:Px,alt:"Sparo OS",className:"sparo-topbar__logo-img"})})}),g.jsx("div",{className:"sparo-topbar__center",children:f&&g.jsxs("div",{className:"sparo-topbar__context-capsule",children:[g.jsx("button",{type:"button",className:"sparo-topbar__back-btn",onClick:m,"aria-label":"Back",children:g.jsx(O$,{})}),o&&g.jsxs(g.Fragment,{children:[g.jsx("span",{className:"sparo-topbar__capsule-sep","aria-hidden":"true"}),g.jsxs("div",{className:"sparo-topbar__capsule-title",children:[o.mode&&g.jsx("span",{className:"sparo-topbar__capsule-mode",children:o.mode}),o.mode&&h&&g.jsx("span",{className:"sparo-topbar__capsule-slash","aria-hidden":"true",children:"/"}),h&&g.jsxs("span",{className:"sparo-topbar__capsule-ws",children:[g.jsx(M$,{}),g.jsx("span",{children:h})]})]})]})]})}),g.jsxs("div",{className:"sparo-topbar__right",children:[g.jsx("button",{type:"button",className:`sparo-topbar__icon-btn${i==="tasks"?" is-active":""}`,onClick:t,"aria-label":"Tasks",children:g.jsx(L$,{})}),g.jsx("button",{type:"button",className:`sparo-topbar__icon-btn${i==="apps"?" is-active":""}`,onClick:n,"aria-label":"Apps",children:g.jsx(D$,{})})]})]})},P$=240;function es({label:e,onClick:t,danger:n}){return g.jsx("button",{type:"button",className:`logo-menu-item${n?" logo-menu-item--danger":""}`,onClick:t,children:e})}function gx(){return g.jsx("div",{className:"logo-menu-divider","aria-hidden":"true"})}const U$=()=>{const{t:e,language:t,setLanguage:n}=dt(),{isDark:i,toggleTheme:o}=Ca(),l=P.useRef(null),u=P.useRef(null),[c,p]=P.useState(!1),{activeScene:f,pageStack:m,push:h,closeOverlay:S,openAgenticOs:E,openChat:v,setSessionContext:k}=Bn(),[T,N]=P.useState(!1),[R,A]=P.useState(f),[O,L]=P.useState(!1),[w,B]=P.useState(null),W=P.useRef();P.useEffect(()=>{f!==R&&(B(R),L(!0),A(f),clearTimeout(W.current),W.current=setTimeout(()=>{B(null),L(!1)},P$))},[f,R]),P.useEffect(()=>()=>clearTimeout(W.current),[]),P.useEffect(()=>{const H=()=>{const{activeScene:te,pageStack:ue}=Bn.getState();if(ue.length<=1){history.pushState({scene:te},"");return}if(["app:skills","app:memory","app:shell","app:settings","me","search"].includes(te))Bn.getState().closeOverlay();else{const Q=ue[ue.length-2];Bn.setState(x=>({activeScene:Q,pageStack:x.pageStack.slice(0,-1)}))}};return window.addEventListener("popstate",H),()=>window.removeEventListener("popstate",H)},[]);const j=P.useCallback((H,te)=>{l.current=H,u.current=te,p(!0),history.pushState({scene:"home"},"")},[]),M=P.useCallback((H,te,ue)=>{v({mode:ue??"Session",agentType:ue,sessionId:H,sessionName:te??""})},[v]),Y=P.useCallback(()=>{const{pageStack:H}=Bn.getState(),te=H.length>1?H[H.length-2]:"home";Bn.setState(ue=>({activeScene:te,pageStack:ue.pageStack.slice(0,-1),sessionContext:null})),history.back()},[]),J=P.useCallback(H=>{N(!1),H==="home"?E():H==="tasks"?h("tasks"):H==="search"?h("search"):H==="me"?h("me"):H==="theme"?o():H==="lang-en"?n("en-US"):H==="lang-zh"?n("zh-CN"):H==="signout"&&(localStorage.removeItem("sparo.mobile.user_id"),localStorage.removeItem("sparo.mobile.install_id"),localStorage.removeItem("sparo.mobile.user_id_lock_until"),localStorage.removeItem("sparo.mobile.user_id_failure_count"),l.current=null,u.current=null,p(!1),E())},[E,h,o,n]);if(!c)return g.jsx(AI,{onPaired:j});const de=u.current,Z=H=>{switch(H){case"home":return g.jsx(f$,{sessionMgr:de,onSelectSession:M});case"tasks":return g.jsx(S$,{sessionMgr:de,onSelectSession:M});case"apps":return g.jsx(k$,{});case"app:skills":return g.jsx(_$,{sessionMgr:de});case"app:memory":case"app:shell":return null;case"app:settings":return g.jsx(T$,{});case"me":return g.jsx(N$,{sessionMgr:de,onSignOut:()=>J("signout")});case"search":return g.jsx(I$,{sessionMgr:de,onSelectSession:M});case"chat":{const{sessionContext:te}=Bn.getState();return te?.sessionId?g.jsx(mR,{sessionMgr:de,sessionId:te.sessionId,sessionName:te.sessionName??"",agentType:te.agentType,onBack:Y,embedded:!0}):null}default:return null}};return g.jsxs("div",{className:"sparo-shell",children:[g.jsx(F$,{onLogoClick:()=>N(!0),onTasksClick:()=>{f!=="tasks"&&h("tasks")},onAppsClick:()=>{f!=="apps"&&h("apps")}}),g.jsxs("div",{className:"sparo-shell__body",children:[O&&w&&w!==R&&g.jsx("div",{className:"nav-page nav-push-exit",children:Z(w)},`prev-${w}`),g.jsx("div",{className:`nav-page${O?" nav-push-enter":""}`,children:Z(R)},R)]}),g.jsxs(Gr,{open:T,onClose:()=>N(!1),children:[g.jsx(es,{label:e("topbar.openMenu"),onClick:()=>N(!1)}),g.jsx(gx,{}),g.jsx(es,{label:t==="zh-CN"?"English":"中文",onClick:()=>J(t==="zh-CN"?"lang-en":"lang-zh")}),g.jsx(es,{label:e(i?"me.light":"me.dark"),onClick:()=>J("theme")}),g.jsx(gx,{}),g.jsx(es,{label:e("me.signOut"),onClick:()=>J("signout"),danger:!0})]})]})},B$=()=>g.jsx(xC,{children:g.jsx(SC,{children:g.jsx(U$,{})})});document.getElementById("boot-splash")?.remove();mC.createRoot(document.getElementById("root")).render(g.jsx(ct.StrictMode,{children:g.jsx(B$,{})})); +`),h=c&&f===e.length-1;return g.jsx(Bm,{thinking:m,streaming:h,isLastItem:h},`${t}-thinking-${f}`)}if(p.type==="tool"){const m=[];let h=[],S=[];const E=()=>{S.length>0&&(m.push(g.jsx(n$,{tools:S},`${t}-read-${f}-${m.length}`)),S=[])},v=()=>{h.length>0&&(m.push(g.jsx(jm,{tools:h,now:n,onCancelTool:i},`${t}-tl-${f}-${m.length}`)),h=[])},k=()=>{E(),v()};for(const T of p.entries)T.tool?.name==="Task"?(k(),m.push(g.jsx(sR,{tool:T.tool,now:n,subItems:T.subItems,onCancelTool:i},`${t}-task-${f}-${m.length}`))):T.tool?.name==="TodoWrite"?(k(),m.push(g.jsx(X4,{tool:T.tool},`${t}-todo-${f}-${m.length}`))):T.tool&&e$.has(T.tool.name)?(v(),S.push(T.tool)):T.tool&&(E(),h.push(T.tool));return k(),g.jsx(ct.Fragment,{children:m},`${t}-tool-${f}`)}if(p.type==="text"){const m=p.entries.map(h=>h.content||"").join("");return m?g.jsx("div",{className:"chat-msg__assistant-content",children:o?g.jsx(cR,{content:m,onFileDownload:l,onGetFileInfo:u}):g.jsx(Ri,{content:m,onFileDownload:l,onGetFileInfo:u})},`${t}-text-${f}`):null}return null})}function ux(e,t,n,i,o,l){const u=pR(e),c=u.filter(h=>ms(h.tool));if(c.length===0)return Aa(xa(u),"ordered",t,n,!1,o,l);const p=[],f=[];let m=!1;for(const h of u)ms(h.tool)?m=!0:m?f.push(h):p.push(h);return g.jsxs(g.Fragment,{children:[Aa(xa(p),"ordered-before",t,n,!1,o,l),fR(c,"ordered",i),Aa(xa(f),"ordered-after",t,n,!1,o,l)]})}function a$(e,t,n,i,o,l,u){const c=pR(e),p=c.filter(E=>ms(E.tool)),f=E=>{n.cancelTool(E,"User cancelled").catch(v=>{i(String(v))})};if(p.length===0)return Aa(xa(c),"active",t,f,!0,l,u,!0);const m=[],h=[];let S=!1;for(const E of c)ms(E.tool)?S=!0:S?h.push(E):m.push(E);return g.jsxs(g.Fragment,{children:[Aa(xa(m),"active-before",t,f,!0,l,u,!0),fR(p,"active",o),Aa(xa(h),"active-after",t,f,!0,l,u,!0)]})}const i$=({isDark:e})=>g.jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:e?g.jsx("path",{d:"M8 1.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM3 8a5 5 0 0 1 5-5v10a5 5 0 0 1-5-5Z",fill:"currentColor"}):g.jsx("path",{d:"M8 1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-1 0v-1A.5.5 0 0 1 8 1Zm0 11a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-1 0v-1A.5.5 0 0 1 8 12Zm7-4a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1 0-1h1A.5.5 0 0 1 15 8ZM3 8a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1 0-1h1A.5.5 0 0 1 3 8Zm9.95-3.54a.5.5 0 0 1 0 .71l-.71.7a.5.5 0 1 1-.7-.7l.7-.71a.5.5 0 0 1 .71 0ZM5.46 11.24a.5.5 0 0 1 0 .71l-.7.71a.5.5 0 0 1-.71-.71l.7-.71a.5.5 0 0 1 .71 0Zm7.08 1.42a.5.5 0 0 1-.7 0l-.71-.71a.5.5 0 0 1 .7-.7l.71.7a.5.5 0 0 1 0 .71ZM5.46 4.76a.5.5 0 0 1-.71 0l-.71-.7a.5.5 0 0 1 .71-.71l.7.7a.5.5 0 0 1 0 .71ZM8 5a3 3 0 1 1 0 6 3 3 0 0 1 0-6Z",fill:"currentColor"})}),cx=({className:e,size:t=10})=>g.jsxs("svg",{className:e,width:t,height:t,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[g.jsx("path",{d:"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.937A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .962 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.582a.5.5 0 0 1 0 .962L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.962 0z"}),g.jsx("path",{d:"M20 3v4"}),g.jsx("path",{d:"M22 5h-4"}),g.jsx("path",{d:"M4 17v2"}),g.jsx("path",{d:"M5 18H3"})]});function gR(e){const t=e.trim();return t?t.charAt(0).toUpperCase()+t.slice(1):"Unknown"}function o$(e){const t=e.name?.trim();return t||gR(e.provider)}function s$(e){return e?`${Math.round(e/1e3)}k`:null}function l$(e){return e.enabled&&Array.isArray(e.capabilities)&&e.capabilities.includes("text_chat")}function vh(e,t){const n=e?.trim();if(!n||n==="default")return"primary";if(n==="primary"||n==="fast"){const i=n==="primary"?t?.default_models?.primary:t?.default_models?.fast;return i&&Na(i,t)?n:"primary"}return Na(n,t)?n:"primary"}function u$(){return typeof window>"u"?null:window.localStorage.getItem(Um)?.trim()||null}function hm(e){if(typeof window>"u")return;const t=e.trim();if(!t){window.localStorage.removeItem(Um);return}window.localStorage.setItem(Um,t)}function c$(e,t){const n=e?.trim();if(!n)return{modelId:null,fellBackToPrimary:!1};const i=vh(n,t);return{modelId:i,fellBackToPrimary:i==="primary"&&n!=="primary"&&n!=="default"}}function Na(e,t){return t&&t.models.find(n=>n.id===e)||null}function wi(e){if(!e)return null;const t=[o$(e)],n=s$(e.context_window);return n&&t.push(n),t.join(" · ")}function as(e){return e&&(e.model_name||e.name)||""}function zm(e){return e?e.reasoning_mode==="enabled"||e.reasoning_mode==="adaptive":!1}function d$(e,t,n){if(e==="primary"||e==="fast"){const o=e==="primary"?t?.default_models?.primary:t?.default_models?.fast,l=o?Na(o,t):null;return{label:n(l?e==="primary"?"chat.modelPrimary":"chat.modelFast":"chat.modelNotConfigured"),meta:wi(l)||n("chat.modelNotConfigured"),enableThinking:zm(l),reasoningEffort:l?.reasoning_effort}}const i=Na(e,t);return i?{label:as(i),meta:wi(i),enableThinking:zm(i),reasoningEffort:i.reasoning_effort}:{label:n("chat.modelNotConfigured"),meta:n("chat.modelNotConfigured"),enableThinking:!1}}const p$=({catalog:e,selectedModelId:t,disabled:n,onSelect:i})=>{const{t:o}=dt(),[l,u]=P.useState(!1),c=P.useRef(null),p=P.useMemo(()=>vh(t,e),[e,t]),f=P.useMemo(()=>(e?.models||[]).filter(l$),[e]),m=P.useMemo(()=>Na(e?.default_models?.primary||"",e),[e]),h=P.useMemo(()=>Na(e?.default_models?.fast||"",e),[e]),S=P.useMemo(()=>d$(p,e,o),[e,p,o]);if(P.useEffect(()=>{if(!l)return;const v=k=>{c.current&&!c.current.contains(k.target)&&u(!1)};return document.addEventListener("mousedown",v),()=>document.removeEventListener("mousedown",v)},[l]),!e)return null;const E=async v=>{await i(v),u(!1)};return g.jsxs("div",{className:"chat-model-selector",ref:c,children:[g.jsxs("button",{className:`chat-model-selector__trigger${l?" chat-model-selector__trigger--open":""}`,type:"button",onClick:()=>u(v=>!v),disabled:n,"aria-label":o("chat.modelSelection"),children:[g.jsx("span",{className:"chat-model-selector__icon","aria-hidden":"true",children:g.jsxs("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",children:[g.jsx("rect",{x:"4",y:"4",width:"6",height:"6",rx:"1.5",stroke:"currentColor",strokeWidth:"1.7"}),g.jsx("rect",{x:"14",y:"4",width:"6",height:"6",rx:"1.5",stroke:"currentColor",strokeWidth:"1.7"}),g.jsx("rect",{x:"9",y:"14",width:"6",height:"6",rx:"1.5",stroke:"currentColor",strokeWidth:"1.7"}),g.jsx("path",{d:"M10 7h4M12 10v4",stroke:"currentColor",strokeWidth:"1.7",strokeLinecap:"round"})]})}),g.jsxs("span",{className:"chat-model-selector__name",children:[g.jsx("span",{className:"chat-model-selector__name-text",children:S.label}),S.enableThinking&&g.jsx(cx,{className:"chat-model-selector__thinking",size:9})]}),S.reasoningEffort&&g.jsx("span",{className:"chat-model-selector__effort",children:S.reasoningEffort}),g.jsx("span",{className:"chat-model-selector__chevron","aria-hidden":"true",children:g.jsx("svg",{width:"10",height:"10",viewBox:"0 0 16 16",fill:"none",children:g.jsx("path",{d:"M4 6L8 10L12 6",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})})]}),l&&g.jsxs("div",{className:"chat-model-selector__dropdown",children:[g.jsx("div",{className:"chat-model-selector__header",children:o("chat.modelSelection")}),g.jsx("button",{className:`chat-model-selector__option${p==="primary"?" is-selected":""}`,type:"button",onClick:()=>{E("primary")},children:g.jsxs("span",{className:"chat-model-selector__option-main",children:[g.jsx("span",{className:"chat-model-selector__option-name",children:o("chat.modelPrimary")}),g.jsxs("span",{className:"chat-model-selector__option-meta chat-model-selector__option-meta--stacked",children:[g.jsx("span",{className:"chat-model-selector__option-meta-line",children:as(m)||o("chat.modelNotConfigured")}),g.jsx("span",{className:"chat-model-selector__option-meta-line",children:wi(m)||o("chat.modelNotConfigured")})]})]})}),g.jsx("button",{className:`chat-model-selector__option${p==="fast"?" is-selected":""}`,type:"button",onClick:()=>{E("fast")},children:g.jsxs("span",{className:"chat-model-selector__option-main",children:[g.jsx("span",{className:"chat-model-selector__option-name",children:o("chat.modelFast")}),g.jsxs("span",{className:"chat-model-selector__option-meta chat-model-selector__option-meta--stacked",children:[g.jsx("span",{className:"chat-model-selector__option-meta-line",children:as(h)||o("chat.modelNotConfigured")}),g.jsx("span",{className:"chat-model-selector__option-meta-line",children:wi(h)||o("chat.modelNotConfigured")})]})]})}),g.jsx("div",{className:"chat-model-selector__divider"}),g.jsx("div",{className:"chat-model-selector__list",children:f.map(v=>{const k=p===v.id;return g.jsx("button",{className:`chat-model-selector__option${k?" is-selected":""}`,type:"button",onClick:()=>{E(v.id)},children:g.jsxs("span",{className:"chat-model-selector__option-main",children:[g.jsxs("span",{className:"chat-model-selector__option-name",children:[g.jsx("span",{className:"chat-model-selector__option-name-text",children:as(v)}),zm(v)&&g.jsx(cx,{className:"chat-model-selector__option-thinking",size:10})]}),g.jsx("span",{className:"chat-model-selector__option-meta",children:wi(v)||gR(v.provider)})]})},v.id)})})]})]})},f$=new Set(["bitfun-coder","bitfun-plan","bitfun-debug","bitfun-team"]);function dx(e){return e==="bitfun-plan"||e==="bitfun-debug"||e==="bitfun-team"?e:"bitfun-coder"}const mR=({sessionMgr:e,sessionId:t,sessionName:n,onBack:i,autoFocus:o,embedded:l=!1,agentType:u})=>{const c=u?f$.has(u):!1,{t:p}=dt(),{getMessages:f,setMessages:m,appendNewMessages:h,activeTurn:S,setActiveTurn:E,error:v,setError:k,selectedWorkspace:T,updateSessionName:N}=vn(),{isDark:R,toggleTheme:A}=Ca(),O=P.useMemo(()=>[{id:"bitfun-coder",label:p("chat.modeBitFunCoder")},{id:"bitfun-plan",label:p("chat.modePlan")},{id:"bitfun-debug",label:p("chat.modeDebug")},{id:"bitfun-team",label:p("chat.modeTeam")}],[p]),L=f(t),[w,B]=P.useState(""),[W,j]=P.useState(()=>dx(u)),[M,Y]=P.useState(n),[J,de]=P.useState(null),[Z,H]=P.useState("primary"),[te,ue]=P.useState(!1),[q,Q]=P.useState([]),[x,D]=P.useState(!1),[$,C]=P.useState(null),[ae,pe]=P.useState(!!o),fe=P.useRef(null),Se=P.useRef(null),ke=P.useRef(null),X=P.useRef(null),[he,Ie]=P.useState(!1),[Qe,Ce]=P.useState(!0),$e=P.useRef(!1),pt=P.useRef(!0),tt=P.useRef(!1),Wt=P.useRef(null),Ct=P.useRef(null),[kn,kt]=P.useState(new Set),[It,Mt]=P.useState(null),ft=S!=null&&S.status==="active";P.useEffect(()=>{j(dx(u))},[u,t]);const[_t,bt]=P.useState(()=>Date.now()),K=P.useCallback(async(ne,se)=>{try{await e.answerQuestion(ne,se)}catch(Oe){throw k(String(Oe)),Oe}},[e,k]),ee=P.useCallback(ne=>e.getFileInfo(ne,t),[t,e]),ge=P.useCallback(async(ne,se)=>{try{const{name:Oe,contentBase64:Be,mimeType:ze}=await e.readFile(ne,t,se),Ge=atob(Be),at=new Uint8Array(Ge.length);for(let Yt=0;Yt{try{const ne=await e.getModelCatalog(t);if(de(ne),!tt.current){const se=c$(u$(),ne),Oe=vh(ne.session_model_id||"primary",ne),Be=se.modelId||Oe;if(se.modelId&&se.modelId!==Oe){const ze=await e.setSessionModel(t,se.modelId);H(ze||"primary"),se.fellBackToPrimary&&(!ze||ze==="primary")&&hm("primary")}else H(Be||"primary"),se.fellBackToPrimary&&Be==="primary"&&hm("primary");tt.current=!0}return ne}catch(ne){return k(ne instanceof Error?ne.message:String(ne)),null}},[t,e,k]),Ne=P.useCallback(async ne=>{if(!(te||ft||x)){ue(!0);try{const se=await e.setSessionModel(t,ne);H(se||"primary"),hm(se||"primary")}catch(se){k(se instanceof Error?se.message:String(se))}finally{ue(!1)}}},[x,ft,te,t,e,k]);P.useEffect(()=>{if(!ft)return;const ne=setInterval(()=>bt(Date.now()),500);return()=>clearInterval(ne)},[ft]),P.useEffect(()=>{if(!v)return;const ne=setTimeout(()=>k(null),5e3);return()=>clearTimeout(ne)},[v,k]),P.useEffect(()=>{if(!It)return;const ne=setTimeout(()=>Mt(null),3200);return()=>clearTimeout(ne)},[It]);const We=P.useCallback(async ne=>{if(!($e.current||!pt.current&&ne))try{$e.current=!0,Ie(!0);const se=await e.getSessionMessages(t,50,ne);if(ne){const Oe=f(t);m(t,[...se.messages,...Oe])}else m(t,se.messages);Ce(se.has_more),pt.current=se.has_more}catch(se){k(se.message)}finally{$e.current=!1,Ie(!1)}},[e,t,m,k,f]),nt=P.useRef(!0),yt=80,xt=P.useCallback(()=>{const ne=Ct.current;if(!ne)return;const se=ne.scrollHeight-ne.scrollTop-ne.clientHeight;if(nt.current=se0&&We(Oe[0].id)}},[Qe,he,f,t,We]),rt=P.useRef(!1),Ke=P.useRef(!1);P.useEffect(()=>{tt.current=!1,pt.current=!0,$e.current=!1,Ce(!0),Ie(!1),de(null),H("primary")},[t]),P.useEffect(()=>(rt.current=!1,Ke.current=!1,Promise.all([We(),_e()]).then(([ne,se])=>{const Oe=vn.getState().getMessages(t).length;Ke.current=!0;const Be=new SI(e,t,ze=>{ze.new_messages&&ze.new_messages.length>0&&h(t,ze.new_messages),ze.total_msg_count!=null&&vn.getState().getMessages(t).length!==ze.total_msg_count&&e.getSessionMessages(t,200).then(at=>{vn.getState().setMessages(t,at.messages)}).catch(()=>{}),ze.title&&(Y(ze.title),N(t,ze.title)),ze.model_catalog&&de(ze.model_catalog),E(ze.active_turn??null)},se?.version||0);Be.start(Oe),X.current=Be}),()=>{X.current?.stop(),X.current=null,E(null)}),[t,e,We,_e,h,E,N]);const gt=P.useRef(0);P.useLayoutEffect(()=>{if(!Ke.current||L.length===0)return;Ke.current=!1;const ne=Ct.current;ne&&(ne.scrollTop=ne.scrollHeight),rt.current=!0,gt.current=L.length},[L]),P.useEffect(()=>{if(rt.current&&L.length!==gt.current){const ne=L.length>gt.current;gt.current=L.length,ne&&!he&&nt.current&&Wt.current?.scrollIntoView({behavior:"smooth"})}},[L.length,he]),P.useEffect(()=>{!rt.current||!ft||nt.current&&Wt.current?.scrollIntoView({behavior:"auto"})},[S,ft]),P.useEffect(()=>{$&&(nt.current=!0,Wt.current?.scrollIntoView({behavior:"smooth"}))},[$]),P.useEffect(()=>{if(!rt.current||!ft)return;const ne=Ct.current;if(!ne)return;const se=setInterval(()=>{if(!nt.current)return;const Oe=ne.scrollHeight-ne.scrollTop-ne.clientHeight;Oe>10&&Oe<400&&ne.scrollTo({top:ne.scrollHeight,behavior:"smooth"})},300);return()=>clearInterval(se)},[ft]);const st=P.useCallback(async()=>{const ne=w.trim(),se=q;if(!ne&&se.length===0||x)return;const Oe=ft;B(""),Q([]),Oe||pe(!1);const Be=se.length>0,ze=Be?se.map((Ge,at)=>{const Et=Ge.dataUrl.split(";")[0]?.replace("data:","")||"image/png";return{id:`mobile_img_${Date.now()}_${at}`,data_url:Ge.dataUrl,mime_type:Et,metadata:{name:Ge.name,source:"remote"}}}):void 0;Be&&(C({id:`opt_${Date.now()}`,text:ne||"",images:se.map(Ge=>({name:Ge.name,data_url:Ge.dataUrl}))}),D(!0));try{const Ge=c?W:void 0;await e.sendMessage(t,ne||p("chat.imageAttachmentFallback"),Ge,ze),X.current?.nudge(),Oe&&Mt(p("chat.messageQueued"))}catch(Ge){k(Ge.message)}finally{D(!1),C(null)}},[W,x,w,ft,q,t,e,k,c,p]),Ft=P.useCallback(()=>{Se.current?.click()},[]),Je=P.useCallback(async ne=>{const se=ne.target.files;if(!se)return;const Oe=5,Be=Oe-q.length,ze=Array.from(se).slice(0,Be),{compressImageFile:Ge}=await OI(async()=>{const{compressImageFile:at}=await import("./imageCompressor-Cy77l5Xt.js");return{compressImageFile:at}},[],import.meta.url);for(const at of ze)try{const Et=await Ge(at);Q(lt=>lt.length>=Oe?lt:[...lt,{name:Et.name,dataUrl:Et.dataUrl}])}catch{const Et=new FileReader;Et.onload=()=>{const lt=Et.result;Q(De=>De.length>=Oe?De:[...De,{name:at.name,dataUrl:lt}])},Et.readAsDataURL(at)}ne.target.value=""},[q.length]),Vt=P.useCallback(ne=>{Q(se=>se.filter((Oe,Be)=>Be!==ne))},[]),_n=P.useCallback(()=>{pe(!0),requestAnimationFrame(()=>fe.current?.focus())},[]);P.useEffect(()=>{o&&requestAnimationFrame(()=>fe.current?.focus())},[o]),P.useEffect(()=>{if(!ae)return;const ne=se=>{ke.current&&!ke.current.contains(se.target)&&!w.trim()&&q.length===0&&pe(!1)};return document.addEventListener("mousedown",ne),()=>document.removeEventListener("mousedown",ne)},[ae,w,q.length]);const $n=P.useRef(!1),Ar=P.useCallback(()=>{$n.current=!0},[]),Rr=P.useCallback(()=>{setTimeout(()=>{$n.current=!1},0)},[]),rr=ne=>{if(ne.key==="Enter"&&!ne.shiftKey){if(ne.nativeEvent.isComposing||$n.current)return;ne.preventDefault(),st()}},Di=async()=>{try{await e.cancelTask(t,S?.turn_id)}catch{}},Kr=T?.project_name||T?.path?.split("/").pop()||"",Zr=T?.git_branch,ar=M||n||p("chat.session");return g.jsxs("div",{className:"chat-page",children:[!l&&g.jsx("div",{className:"chat-page__header",children:g.jsxs("div",{className:"chat-page__header-row",children:[g.jsx("button",{className:"chat-page__back",onClick:i,"aria-label":p("common.back"),children:g.jsx("svg",{width:"18",height:"18",viewBox:"0 0 20 20",fill:"none",children:g.jsx("path",{d:"M12 4L6 10L12 16",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round"})})}),g.jsxs("div",{className:"chat-page__header-center",children:[g.jsx("span",{className:"chat-page__title",title:ar,children:ar}),Kr&&g.jsxs("div",{className:"chat-page__header-workspace",title:T?.path,children:[g.jsx("span",{className:"chat-page__workspace-name",children:Kr}),Zr&&g.jsxs("span",{className:"chat-page__workspace-branch",title:Zr,children:[g.jsxs("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[g.jsx("line",{x1:"6",x2:"6",y1:"3",y2:"15"}),g.jsx("circle",{cx:"18",cy:"6",r:"3"}),g.jsx("circle",{cx:"6",cy:"18",r:"3"}),g.jsx("path",{d:"M18 9a9 9 0 0 1-9 9"})]}),G4(Zr,28)]})]})]}),g.jsx("div",{className:"chat-page__header-right",children:g.jsx("button",{className:"chat-page__theme-btn",onClick:A,"aria-label":p("common.toggleTheme"),children:g.jsx(i$,{isDark:R})})})]})}),g.jsxs("div",{className:"chat-page__messages",ref:Ct,onScroll:xt,children:[he&&g.jsx("div",{className:"chat-page__load-more-indicator",children:p("chat.loadingOlderMessages")}),(()=>{const ne=L.reduceRight((se,Oe,Be)=>se<0&&Oe.role==="user"?Be:se,-1);return L.map((se,Oe)=>{if(se.role==="system"||se.role==="tool")return null;if(se.role==="user"){const Et=se.content.replace(/#img:\S+\s*/g,"").replace(/\[Image:.*?\]\n(?:Path:.*?\n|Image ID:.*?\n)?/g,"").trim();return g.jsx("div",{className:"chat-msg chat-msg--user",children:g.jsxs("div",{className:"chat-msg__user-card",children:[g.jsx("div",{className:"chat-msg__user-avatar",children:"U"}),g.jsxs("div",{className:"chat-msg__user-content",children:[Et,se.images&&se.images.length>0&&g.jsx("div",{className:"chat-msg__user-images",children:se.images.map((lt,De)=>g.jsx("img",{src:lt.data_url,alt:lt.name,className:"chat-msg__user-image"},De))})]})]})},se.id)}const Be=se.items&&se.items.length>0,ze=se.thinking||se.tools&&se.tools.length>0||se.content;if(!Be&&!ze)return null;const Ge=Oekt(Et=>{const lt=new Set(Et);return lt.add(se.id),lt}),children:[g.jsx("span",{className:"chat-msg__response-chevron",children:g.jsx("svg",{width:"10",height:"10",viewBox:"0 0 16 16",fill:"none",children:g.jsx("path",{d:"M6 4L10 8L6 12",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})}),g.jsx("span",{className:"chat-msg__response-label",children:p("chat.showResponse")})]})},se.id):g.jsxs("div",{className:"chat-msg chat-msg--assistant",children:[Ge&&at&&g.jsxs("button",{className:"chat-msg__response-toggle",onClick:()=>kt(Et=>{const lt=new Set(Et);return lt.delete(se.id),lt}),children:[g.jsx("span",{className:"chat-msg__response-chevron is-open",children:g.jsx("svg",{width:"10",height:"10",viewBox:"0 0 16 16",fill:"none",children:g.jsx("path",{d:"M6 4L10 8L6 12",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})}),g.jsx("span",{className:"chat-msg__response-label",children:p("chat.hideResponse")})]}),Be?ux(se.items,_t,void 0,K,ge,ee):g.jsxs(g.Fragment,{children:[se.thinking&&g.jsx(Bm,{thinking:se.thinking}),se.tools&&se.tools.length>0&&g.jsx(jm,{tools:se.tools,now:_t}),se.content&&g.jsx("div",{className:"chat-msg__assistant-content",children:g.jsx(Ri,{content:se.content,onFileDownload:ge,onGetFileInfo:ee})})]})]},se.id)})})(),S&&(()=>{const ne=S,se=ne.status==="active";if(ne.items&&ne.items.length>0)return g.jsxs("div",{className:"chat-msg chat-msg--assistant",children:[se?a$(ne.items,_t,e,k,K,ge,ee):ux(ne.items,_t,void 0,void 0,ge,ee),se&&!ne.thinking&&!ne.text&&ne.tools.length===0&&g.jsx("div",{className:"chat-msg__assistant-content",children:g.jsx(ix,{visible:!0})})]});const Oe=ne.tools.filter(De=>De.name==="Task"),Be=Oe.some(De=>De.status==="running"),ze=ne.tools.filter(De=>De.name==="AskUserQuestion"&&De.status==="running"&&De.tool_input),Ge=new Set(ze.map(De=>De.id)),at=ne.tools.filter(De=>De.name!=="Task"&&!Ge.has(De.id)),Et=Be?[...ne.thinking?[{type:"thinking",content:ne.thinking}]:[],...at.map(De=>({type:"tool",tool:De}))]:[],lt=De=>{e.cancelTool(De,p("common.cancel")).catch(Yt=>{k(String(Yt))})};return g.jsxs("div",{className:"chat-msg chat-msg--assistant",children:[!Be&&(ne.thinking||se)&&g.jsx(Bm,{thinking:ne.thinking,streaming:se,isLastItem:se}),Oe.map(De=>g.jsx(sR,{tool:De,now:_t,subItems:De.status==="running"?Et:void 0,onCancelTool:lt},De.id)),!Be&&at.length>0&&g.jsx(jm,{tools:at,now:_t,onCancelTool:lt}),se&&ze.map(De=>g.jsx(dR,{tool:De,onAnswer:K},De.id)),!Be&&ne.text?g.jsx("div",{className:"chat-msg__assistant-content",children:se?g.jsx(cR,{content:ne.text,onFileDownload:ge,onGetFileInfo:ee}):g.jsx(Ri,{content:ne.text,onFileDownload:ge,onGetFileInfo:ee})}):se&&!ne.thinking&&ne.tools.length===0?g.jsx("div",{className:"chat-msg__assistant-content",children:g.jsx(ix,{visible:!0})}):null]})})(),$&&g.jsx("div",{className:"chat-msg chat-msg--user",children:g.jsxs("div",{className:"chat-msg__user-card",children:[g.jsx("div",{className:"chat-msg__user-avatar",children:"U"}),g.jsxs("div",{className:"chat-msg__user-content",children:[$.text,$.images.length>0&&g.jsx("div",{className:"chat-msg__user-images",children:$.images.map((ne,se)=>g.jsx("img",{src:ne.data_url,alt:ne.name,className:"chat-msg__user-image"},se))})]})]})}),x&&g.jsx("div",{className:"chat-msg chat-msg--assistant",children:g.jsx("div",{className:"chat-msg__assistant-card",children:g.jsxs("div",{className:"chat-msg__image-analyzing",children:[g.jsx("div",{className:"chat-msg__image-analyzing-icon",children:g.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[g.jsx("circle",{cx:"12",cy:"12",r:"3"}),g.jsx("path",{d:"M12 1v2M12 21v2M4.22 4.22l1.42 1.42M18.36 18.36l1.42 1.42M1 12h2M21 12h2M4.22 19.78l1.42-1.42M18.36 5.64l1.42-1.42"})]})}),g.jsx("span",{children:p("chat.analyzingImage")})]})})}),g.jsx("div",{ref:Wt})]}),g.jsx("input",{ref:Se,type:"file",accept:"image/png,image/jpeg,image/jpg,image/gif,image/webp",multiple:!0,style:{display:"none"},onChange:Je}),g.jsx("div",{className:`chat-page__input-wrap ${ae?"is-expanded":""}`,ref:ke,children:g.jsxs("div",{className:"chat-page__input-box",onClick:ae?void 0:_n,children:[g.jsx("div",{className:"chat-page__input-area",children:ae?g.jsx("textarea",{ref:fe,className:"chat-page__input",placeholder:p("chat.inputPlaceholder"),value:w,onChange:ne=>B(ne.target.value),onKeyDown:rr,onCompositionStart:Ar,onCompositionEnd:Rr,rows:1,disabled:x}):g.jsx("span",{className:"chat-page__input-placeholder",children:p(x?"chat.imageAnalyzingPlaceholder":ft?"chat.collapsedStreamingPlaceholder":"chat.collapsedInputPlaceholder")})}),g.jsxs("div",{className:"chat-page__input-actions",children:[g.jsxs("div",{className:"chat-page__input-actions-left",children:[ae&&g.jsx(p$,{catalog:J,selectedModelId:Z,disabled:x||te,onSelect:Ne}),ae&&q.length>0&&g.jsx("div",{className:"chat-page__image-preview-row",children:q.map((ne,se)=>g.jsxs("div",{className:"chat-page__image-thumb",children:[g.jsx("img",{src:ne.dataUrl,alt:ne.name}),g.jsx("button",{className:"chat-page__image-remove",onClick:()=>Vt(se),children:"×"})]},se))})]}),g.jsxs("div",{className:"chat-page__input-actions-right",children:[ae&&g.jsxs(g.Fragment,{children:[c&&g.jsx("button",{className:`chat-page__mode-pill${W!=="bitfun-coder"?` chat-page__mode-pill--${W}`:""}`,onClick:()=>{const ne=["bitfun-coder","bitfun-plan","bitfun-debug","bitfun-team"],se=ne.indexOf(W);j(ne[(se+1)%ne.length])},disabled:x,children:O.find(ne=>ne.id===W)?.label}),g.jsx("button",{className:"chat-page__action-btn",onClick:Ft,disabled:x||q.length>=5,"aria-label":p("common.attachImage"),children:g.jsxs("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[g.jsx("rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2"}),g.jsx("circle",{cx:"9",cy:"9",r:"2"}),g.jsx("path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21"})]})})]}),x?g.jsx("button",{className:"chat-page__send-btn is-stop","aria-label":p("common.stop"),disabled:!0,children:g.jsxs("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",style:{animation:"analyzeSpin 2s linear infinite"},children:[g.jsx("circle",{cx:"12",cy:"12",r:"3"}),g.jsx("path",{d:"M12 1v2M12 21v2M4.22 4.22l1.42 1.42M18.36 18.36l1.42 1.42M1 12h2M21 12h2"})]})}):ft?g.jsxs("div",{className:"chat-page__stream-actions",children:[g.jsx("button",{type:"button",className:"chat-page__send-btn is-stop",onClick:Di,"aria-label":p("common.stop"),children:g.jsx("svg",{width:"10",height:"10",viewBox:"0 0 16 16",fill:"none",children:g.jsx("rect",{x:"3",y:"3",width:"10",height:"10",rx:"2",fill:"currentColor"})})}),g.jsx("button",{type:"button",className:"chat-page__send-btn",onClick:ae?st:_n,disabled:!w.trim()&&q.length===0,"aria-label":p("common.submit"),children:g.jsx("svg",{width:"12",height:"12",viewBox:"0 0 20 20",fill:"none",children:g.jsx("path",{d:"M10 3L10 17M10 3L5 8M10 3L15 8",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})})]}):g.jsx("button",{className:"chat-page__send-btn",onClick:ae?st:void 0,disabled:!w.trim()&&q.length===0,children:g.jsx("svg",{width:"12",height:"12",viewBox:"0 0 20 20",fill:"none",children:g.jsx("path",{d:"M10 3L10 17M10 3L5 8M10 3L15 8",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})})]})]})]})}),v&&g.jsx("div",{className:"chat-page__toast",onClick:()=>k(null),children:v}),It&&g.jsx("div",{className:"chat-page__toast chat-page__toast--info",onClick:()=>Mt(null),children:It})]})},g$=({sessionMgr:e})=>{const{t}=dt(),[n,i]=P.useState(null),[o,l]=P.useState(!0),[u,c]=P.useState(null),{authenticatedUserId:p,selectedWorkspace:f}=vn(),m=Bn(E=>E.setSessionContext),h=P.useCallback(async()=>{l(!0),c(null);try{const E=await e.getOrCreateAgenticOsSession(f?.path);i(E),m(null)}catch(E){c(E?.message??"Failed to load")}finally{l(!1)}},[e,f?.path,m]);P.useEffect(()=>{h()},[h]);const S=p??"";return S.split("@")[0],o?g.jsxs("div",{className:"agentic-os-home agentic-os-home--loading",children:[g.jsx("div",{className:"agentic-os-home__orbit-spinner"}),g.jsx("span",{className:"agentic-os-home__loading-text",children:t("common.loading")})]}):u||!n?g.jsxs("div",{className:"agentic-os-home agentic-os-home--error",children:[g.jsx("div",{className:"agentic-os-home__error-dot","aria-hidden":"true"}),g.jsx("span",{children:u??t("common.loading")}),g.jsx("button",{type:"button",className:"agentic-os-home__retry",onClick:()=>{h()},children:"Retry"})]}):g.jsx("div",{className:"agentic-os-home",children:g.jsx(mR,{sessionMgr:e,sessionId:n,sessionName:t("sessions.agenticOsSession"),onBack:()=>{},embedded:!0})})},Dt=({children:e,className:t})=>g.jsxs("div",{className:`eyebrow-label${t?` ${t}`:""}`,children:[g.jsx("span",{className:"eyebrow-label__dot","aria-hidden":"true"}),g.jsx("span",{className:"eyebrow-label__text",children:e})]}),Gr=({open:e,onClose:t,title:n,children:i})=>{const o=P.useRef(null);return P.useEffect(()=>{if(!e)return;const l=u=>{u.key==="Escape"&&t()};return document.addEventListener("keydown",l),()=>document.removeEventListener("keydown",l)},[e,t]),e?g.jsx("div",{className:"bottom-sheet-overlay",onClick:t,role:"dialog","aria-modal":"true",children:g.jsxs("div",{ref:o,className:"bottom-sheet",onClick:l=>l.stopPropagation(),children:[g.jsx("div",{className:"bottom-sheet__handle","aria-hidden":"true"}),n&&g.jsx("div",{className:"bottom-sheet__header",children:g.jsx("span",{className:"bottom-sheet__title",children:n})}),g.jsx("div",{className:"bottom-sheet__body",children:i})]})}):null},Me=({className:e})=>g.jsx("div",{className:e,style:{height:"1px",background:"var(--border-subtle)",flexShrink:0},"aria-hidden":"true"}),m$=100,yn="__all__",h$={Runno:"Runno","bitfun-coder":"BitFun Coder","bitfun-plan":"Plan","bitfun-debug":"Debug","bitfun-team":"Team",cowork:"Cowork",Cowork:"Cowork",design:"Design",Design:"Design",deepresearch:"Deep Research",DeepResearch:"Deep Research",AppBuilder:"App Builder",OSAgent:"Sparo OS"},b$=[{type:"bitfun-coder",labelKey:"sessions.agentBitFunCoder",descKey:"sessions.agentBitFunCoderDesc",badge:"BF",badgeColor:"#1E40AF",needsWorkspace:!0},{type:"Cowork",labelKey:"sessions.agentCowork",descKey:"sessions.agentCoworkDesc",badge:"CW",badgeColor:"#065F46",needsWorkspace:!0},{type:"Design",labelKey:"sessions.agentDesign",descKey:"sessions.agentDesignDesc",badge:"DS",badgeColor:"#6D28D9",needsWorkspace:!0},{type:"DeepResearch",labelKey:"sessions.agentDeepResearch",descKey:"sessions.agentDeepResearchDesc",badge:"DR",badgeColor:"#92400E",needsWorkspace:!0},{type:"AppBuilder",labelKey:"sessions.appBuilder",descKey:"sessions.appBuilderDesc",badge:"AB",badgeColor:"#BE123C",needsWorkspace:!1}];function Qo(e){return h$[e]??e}function y$(e,t,n){const i=parseInt(e,10);if(!i||isNaN(i))return"";const o=new Date(i*1e3),u=new Date().getTime()-o.getTime(),c=Math.floor(u/6e4);if(c<1)return n("common.justNow");if(c<60)return n("common.minutesAgo",{count:c});const p=Math.floor(c/60);if(p<24)return n("common.hoursAgo",{count:p});const f=Math.floor(p/24);return f<7?n("common.daysAgo",{count:f}):o.toLocaleDateString(t)}function px(e){return!1}function fx(e,t){return e.workspace_name?e.workspace_name:e.workspace_path?e.workspace_path.replace(/\\/g,"/").split("/").filter(Boolean).pop()??e.workspace_path:t==="zh-CN"?"无工作区":"No Workspace"}const E$=()=>g.jsx("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:g.jsx("polygon",{points:"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3"})}),S$=()=>g.jsxs("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[g.jsx("line",{x1:"8",y1:"6",x2:"21",y2:"6"}),g.jsx("line",{x1:"8",y1:"12",x2:"21",y2:"12"}),g.jsx("line",{x1:"8",y1:"18",x2:"21",y2:"18"}),g.jsx("line",{x1:"3",y1:"6",x2:"3.01",y2:"6"}),g.jsx("line",{x1:"3",y1:"12",x2:"3.01",y2:"12"}),g.jsx("line",{x1:"3",y1:"18",x2:"3.01",y2:"18"})]}),bm=({size:e=15})=>g.jsx("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:g.jsx("path",{d:"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z"})}),v$=({sessionMgr:e,onSelectSession:t})=>{const{t:n,language:i}=dt(),{sessions:o,setSessions:l,selectedWorkspace:u}=vn(),[c,p]=P.useState("time"),[f,m]=P.useState(!1),[h,S]=P.useState(!1),[E,v]=P.useState(!1),[k,T]=P.useState(!1),[N,R]=P.useState(null),[A,O]=P.useState([]),[L,w]=P.useState(!1),[B,W]=P.useState(yn),[j,M]=P.useState(yn),[Y,J]=P.useState(null),[de,Z]=P.useState(!1),H=P.useRef(),te=P.useCallback(async()=>{m(!0);try{const X=await e.listSessions(void 0,m$,0);l(X.sessions)}catch{}finally{m(!1)}},[e,l]);P.useEffect(()=>{te()},[te]),P.useEffect(()=>{const X=setInterval(()=>{te()},1e4);return()=>clearInterval(X)},[te]);const ue=P.useMemo(()=>{const X={};return o.forEach(he=>{const Ie=he.workspace_path??"__none__";X[Ie]||(X[Ie]=fx(he,i))}),X},[o,i]),q=P.useMemo(()=>{const X=new Set;return o.forEach(he=>{he.agent_type&&X.add(he.agent_type)}),Array.from(X)},[o]),Q=P.useMemo(()=>o.filter(X=>!(B!==yn&&(X.workspace_path??"__none__")!==B||j!==yn&&X.agent_type!==j)),[o,B,j]),x=B!==yn||j!==yn,D=P.useCallback(async X=>{if(!X.needsWorkspace){v(!1),S(!0);try{const he=await e.createSession(X.type,void 0,void 0);await te(),t(he,Qo(X.type),X.type)}catch{}finally{S(!1)}return}v(!1),R(X);try{const he=await e.listRecentWorkspaces();O(he.map(Ie=>({path:Ie.path,name:Ie.name})))}catch{O(u?.path?[{path:u.path,name:u.project_name??u.path}]:[])}w(!0)},[u,te,t,e]),$=P.useCallback(async X=>{if(!(!N||h)){w(!1),R(null),S(!0);try{const he=await e.createSession(N.type,void 0,X);await te(),t(he,Qo(N.type),N.type)}catch{}finally{S(!1)}}},[h,te,t,N,e]),C=X=>{H.current=setTimeout(()=>{J(X),Z(!0)},500)},ae=()=>{clearTimeout(H.current)},pe=P.useCallback(async()=>{if(Y){Z(!1);try{await e.deleteSession(Y.session_id),await te()}catch{}}},[Y,e,te]),fe=(X,he,Ie)=>g.jsxs(ct.Fragment,{children:[g.jsxs("div",{className:"tasks-row",role:"button",tabIndex:0,onClick:()=>t(X.session_id,X.name,X.agent_type),onKeyDown:Qe=>{Qe.key==="Enter"&&t(X.session_id,X.name,X.agent_type)},onTouchStart:()=>C(X),onTouchEnd:ae,onMouseDown:()=>C(X),onMouseUp:ae,children:[g.jsxs("div",{className:"tasks-row__body",children:[g.jsx("span",{className:"tasks-row__name",children:X.name||n("sessions.untitledSession")}),g.jsxs("div",{className:"tasks-row__meta-row",children:[X.agent_type&&g.jsx("span",{className:"tasks-row__tag",children:Qo(X.agent_type)}),g.jsx("span",{className:"tasks-row__meta",children:y$(X.updated_at,i,n)}),c==="time"&&X.workspace_path&&g.jsxs(g.Fragment,{children:[g.jsx("span",{className:"tasks-row__meta-sep",children:"·"}),g.jsxs("span",{className:"tasks-row__meta tasks-row__meta--ws",children:[g.jsx(bm,{size:11}),fx(X,i)]})]})]})]}),g.jsxs("div",{className:"tasks-row__end",children:[Ie&&g.jsx(Sh,{pulsing:!0,size:"sm"}),g.jsx("svg",{className:"tasks-row__chevron",width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:g.jsx("path",{d:"m9 18 6-6-6-6"})})]})]}),g.jsx(Me,{})]},X.session_id),Se=()=>{const X=[...Q].sort((Qe,Ce)=>{const $e=parseInt(Qe.updated_at,10)||0;return(parseInt(Ce.updated_at,10)||0)-$e}),he=X.filter(px),Ie=X.filter(Qe=>!0);return g.jsxs(g.Fragment,{children:[he.length>0&&g.jsxs("div",{className:"tasks-scene__section",children:[g.jsx("div",{className:"tasks-scene__section-head",children:g.jsx(Dt,{children:n("sessions.active")})}),g.jsx(Me,{}),he.map((Qe,Ce)=>fe(Qe,Ce,!0))]}),g.jsxs("div",{className:"tasks-scene__section",children:[Ie.length===0&&!f&&g.jsx("div",{className:"tasks-scene__empty",children:n("tasks.noRecentSessions")}),Ie.map((Qe,Ce)=>fe(Qe,he.length+Ce,!1))]})]})},ke=()=>{const X="__none__",he={};Q.forEach(Ce=>{const $e=Ce.workspace_path??X;he[$e]||(he[$e]=[]),he[$e].push(Ce)}),Object.values(he).forEach(Ce=>Ce.sort(($e,pt)=>(parseInt(pt.updated_at,10)||0)-(parseInt($e.updated_at,10)||0)));const Ie=Object.keys(he).sort((Ce,$e)=>Ce===X?1:$e===X?-1:(ue[Ce]??Ce).localeCompare(ue[$e]??$e));if(Ie.length===0&&!f)return g.jsx("div",{className:"tasks-scene__empty",children:n("tasks.noRecentSessions")});let Qe=0;return g.jsx(g.Fragment,{children:Ie.map(Ce=>{const $e=he[Ce],pt=ue[Ce]??(i==="zh-CN"?"无工作区":"No Workspace");return g.jsxs("div",{className:"tasks-scene__section",children:[g.jsxs("div",{className:"tasks-scene__section-head tasks-scene__section-head--ws",children:[g.jsx(bm,{}),g.jsx("span",{className:"tasks-scene__ws-label",children:pt}),g.jsxs("span",{className:"tasks-scene__section-count",children:["(",$e.length,")"]})]}),g.jsx(Me,{}),$e.map(tt=>fe(tt,Qe++,px()))]},Ce)})})};return g.jsxs("div",{className:"tasks-scene",children:[g.jsxs("div",{className:"tasks-scene__toolbar",children:[g.jsxs("span",{className:"tasks-scene__title",children:[n("tasks.title"),Q.length>0&&g.jsxs("span",{className:"tasks-scene__title-count",children:[" (",Q.length,")"]})]}),g.jsxs("div",{className:"tasks-scene__toolbar-right",children:[g.jsx("button",{type:"button",className:`tasks-scene__mode-btn${c==="workspace"?" is-active":""}`,onClick:()=>p(X=>X==="time"?"workspace":"time"),"aria-label":c==="time"?"Group by workspace":"Sort by time",title:c==="time"?"Group by workspace":"Sort by time",children:c==="time"?g.jsx(bm,{}):g.jsx(S$,{})}),g.jsxs("button",{type:"button",className:`tasks-scene__mode-btn${x?" is-active":""}`,onClick:()=>T(!0),"aria-label":"Filter",children:[g.jsx(E$,{}),x&&g.jsx("span",{className:"tasks-scene__filter-badge"})]})]})]}),g.jsxs("div",{className:"tasks-scene__list",children:[f&&o.length===0&&g.jsx("div",{className:"tasks-scene__empty",children:n("common.loading")}),c==="time"?Se():ke()]}),g.jsxs("button",{type:"button",className:"tasks-scene__fab",onClick:()=>v(!0),disabled:h,"aria-label":n("sessions.newSession"),children:[g.jsx("span",{className:"tasks-scene__fab-dot","aria-hidden":"true"}),g.jsx("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.2",strokeLinecap:"round","aria-hidden":"true",children:g.jsx("path",{d:"M12 5v14M5 12h14"})})]}),g.jsx(Gr,{open:E,onClose:()=>v(!1),title:n("sessions.newSession"),children:b$.map((X,he)=>g.jsxs(ct.Fragment,{children:[he>0&&g.jsx(Me,{}),g.jsxs("button",{type:"button",className:"tasks-scene__sheet-item tasks-scene__sheet-item--agent",onClick:()=>{D(X)},disabled:h,children:[g.jsx("span",{className:"tasks-scene__sheet-item-badge",style:{background:X.badgeColor},"aria-hidden":"true",children:X.badge}),g.jsxs("span",{className:"tasks-scene__sheet-item-body",children:[g.jsx("span",{className:"tasks-scene__sheet-item-label",children:n(X.labelKey)}),g.jsx("span",{className:"tasks-scene__sheet-item-desc",children:n(X.descKey)})]})]})]},X.type))}),g.jsx(Gr,{open:L,onClose:()=>{w(!1),R(null)},title:i==="zh-CN"?"选择工作区":"Select Workspace",children:A.length===0?g.jsx("div",{className:"tasks-scene__ws-empty",children:i==="zh-CN"?"没有可用的工作区":"No workspaces available"}):A.map((X,he)=>g.jsxs(ct.Fragment,{children:[he>0&&g.jsx(Me,{}),g.jsxs("button",{type:"button",className:"tasks-scene__sheet-item",onClick:()=>{$(X.path)},disabled:h,children:[g.jsx("span",{className:"tasks-scene__sheet-item-label",children:X.name}),g.jsx("span",{className:"tasks-scene__sheet-item-desc tasks-scene__sheet-item-desc--path",children:X.path})]})]},X.path))}),g.jsxs(Gr,{open:k,onClose:()=>T(!1),title:i==="zh-CN"?"筛选":"Filter",children:[g.jsxs("div",{className:"tasks-scene__filter-section",children:[g.jsx("div",{className:"tasks-scene__filter-label",children:g.jsx(Dt,{children:n("sessions.workspace")})}),g.jsxs("div",{className:"tasks-scene__filter-chips",children:[g.jsx("button",{type:"button",className:`tasks-scene__chip${B===yn?" is-active":""}`,onClick:()=>W(yn),children:i==="zh-CN"?"全部":"All"}),Object.entries(ue).filter(([X])=>X!=="__none__").map(([X,he])=>g.jsx("button",{type:"button",className:`tasks-scene__chip${B===X?" is-active":""}`,onClick:()=>W(X),children:he},X))]})]}),g.jsx(Me,{}),g.jsxs("div",{className:"tasks-scene__filter-section",children:[g.jsx("div",{className:"tasks-scene__filter-label",children:g.jsx(Dt,{children:i==="zh-CN"?"Agent 类型":"Agent Type"})}),g.jsxs("div",{className:"tasks-scene__filter-chips",children:[g.jsx("button",{type:"button",className:`tasks-scene__chip${j===yn?" is-active":""}`,onClick:()=>M(yn),children:i==="zh-CN"?"全部":"All"}),q.map(X=>g.jsx("button",{type:"button",className:`tasks-scene__chip${j===X?" is-active":""}`,onClick:()=>M(X),children:Qo(X)},X))]})]}),x&&g.jsxs(g.Fragment,{children:[g.jsx(Me,{}),g.jsx("button",{type:"button",className:"tasks-scene__sheet-item tasks-scene__sheet-item--danger",onClick:()=>{W(yn),M(yn),T(!1)},children:g.jsx("span",{className:"tasks-scene__sheet-item-label",children:i==="zh-CN"?"清除筛选":"Clear Filters"})})]})]}),g.jsxs(Gr,{open:de,onClose:()=>Z(!1),children:[g.jsx("button",{type:"button",className:"tasks-scene__sheet-item tasks-scene__sheet-item--danger",onClick:()=>{pe()},children:g.jsx("span",{className:"tasks-scene__sheet-item-label",children:n("sessions.deleteSession")})}),g.jsx(Me,{}),g.jsx("button",{type:"button",className:"tasks-scene__sheet-item",onClick:()=>Z(!1),children:g.jsx("span",{className:"tasks-scene__sheet-item-label",children:n("common.cancel")})})]})]})},k$=()=>g.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:g.jsx("path",{d:"m9 18 6-6-6-6"})}),_$=()=>{const{t:e}=dt(),{push:t}=Bn(),n=[{id:"app:skills",label:e("apps.skills"),desc:e("apps.skillsDesc"),available:!0},{id:"app:settings",label:e("apps.settings"),desc:e("apps.settingsDesc"),available:!0}],i=["Product Apps","Subagents","Tools","File Browser","Design Canvas"];return g.jsx("div",{className:"apps-scene",children:g.jsxs("div",{className:"apps-scene__list",children:[g.jsx("div",{className:"apps-scene__section-head",children:g.jsx(Dt,{children:e("apps.title")})}),g.jsx(Me,{}),n.map((o,l)=>g.jsxs(ct.Fragment,{children:[g.jsxs("button",{type:"button",className:"apps-row",onClick:()=>t(o.id),children:[g.jsx("span",{className:"apps-row__num",children:String(l+1).padStart(2,"0")}),g.jsxs("div",{className:"apps-row__body",children:[g.jsx("span",{className:"apps-row__label",children:o.label}),g.jsx("span",{className:"apps-row__desc",children:o.desc})]}),g.jsx(k$,{})]}),g.jsx(Me,{})]},o.id)),g.jsx("div",{className:"apps-scene__section-head apps-scene__section-head--mt",children:g.jsx(Dt,{children:e("apps.comingSoon")})}),g.jsx(Me,{}),i.map((o,l)=>g.jsxs(ct.Fragment,{children:[g.jsxs("div",{className:"apps-row apps-row--disabled",children:[g.jsx("span",{className:"apps-row__num",children:String(n.length+l+1).padStart(2,"0")}),g.jsx("div",{className:"apps-row__body",children:g.jsx("span",{className:"apps-row__label apps-row__label--muted",children:o})}),g.jsx("span",{className:"apps-row__badge",children:e("apps.comingSoon")})]}),g.jsx(Me,{})]},o))]})})},w$=({sessionMgr:e})=>{const{t,language:n}=dt(),{selectedWorkspace:i}=vn(),[o,l]=P.useState([]),[u,c]=P.useState(!0),[p,f]=P.useState(null);P.useEffect(()=>{(async()=>{c(!0),f(null);try{const k=await e.listSkills(i?.path);l(k)}catch(k){f(k?.message??"Failed to load skills")}finally{c(!1)}})()},[e,i?.path]);const m=o.filter(v=>v.level==="user"),h=o.filter(v=>v.level==="project"),S=o.filter(v=>v.isBuiltin),E=(v,k)=>g.jsxs(ct.Fragment,{children:[g.jsxs("div",{className:"skills-row",children:[g.jsx("span",{className:"skills-row__num",children:String(k+1).padStart(2,"0")}),g.jsxs("div",{className:"skills-row__body",children:[g.jsx("span",{className:"skills-row__name",children:v.name}),v.description&&g.jsx("span",{className:"skills-row__desc",children:v.description})]}),v.isBuiltin&&g.jsx("span",{className:"skills-row__badge",children:n==="zh-CN"?"内置":"Built-in"})]}),g.jsx(Me,{})]},v.key);return u?g.jsx("div",{className:"app-page",children:g.jsx("div",{className:"app-page__loading",children:t("common.loading")})}):p?g.jsxs("div",{className:"app-page",children:[g.jsx("div",{className:"app-page__section-head",children:g.jsx(Dt,{children:t("apps.skills")})}),g.jsx(Me,{}),g.jsxs("div",{className:"app-page__placeholder",children:[g.jsx("div",{className:"app-page__placeholder-dot","aria-hidden":"true"}),g.jsx("strong",{className:"app-page__placeholder-title",children:n==="zh-CN"?"加载失败":"Failed to load"}),g.jsx("p",{className:"app-page__placeholder-desc",children:p})]})]}):o.length===0?g.jsxs("div",{className:"app-page",children:[g.jsx("div",{className:"app-page__section-head",children:g.jsx(Dt,{children:t("apps.skills")})}),g.jsx(Me,{}),g.jsxs("div",{className:"app-page__placeholder",children:[g.jsx("div",{className:"app-page__placeholder-dot","aria-hidden":"true"}),g.jsx("strong",{className:"app-page__placeholder-title",children:n==="zh-CN"?"暂无技能":"No skills found"}),g.jsx("p",{className:"app-page__placeholder-desc",children:n==="zh-CN"?"在工作区的 .cursor/skills/ 目录或用户级 skills 目录下添加技能文件":"Add skill files under .cursor/skills/ in your workspace or user-level skills directory"})]})]}):g.jsxs("div",{className:"app-page",children:[h.length>0&&g.jsxs(g.Fragment,{children:[g.jsx("div",{className:"app-page__section-head",children:g.jsx(Dt,{children:n==="zh-CN"?"项目技能":"Project Skills"})}),g.jsx(Me,{}),h.map((v,k)=>E(v,k))]}),m.filter(v=>!v.isBuiltin).length>0&&g.jsxs(g.Fragment,{children:[g.jsx("div",{className:`app-page__section-head${h.length>0?" app-page__section-head--mt":""}`,children:g.jsx(Dt,{children:n==="zh-CN"?"用户技能":"User Skills"})}),g.jsx(Me,{}),m.filter(v=>!v.isBuiltin).map((v,k)=>E(v,h.length+k))]}),S.length>0&&g.jsxs(g.Fragment,{children:[g.jsx("div",{className:"app-page__section-head app-page__section-head--mt",children:g.jsx(Dt,{children:n==="zh-CN"?"内置技能":"Built-in Skills"})}),g.jsx(Me,{}),S.map((v,k)=>E(v,m.filter(T=>!T.isBuiltin).length+h.length+k))]})]})},T$=()=>g.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:g.jsx("path",{d:"m9 18 6-6-6-6"})}),x$=()=>{const{t:e,language:t,setLanguage:n}=dt(),{isDark:i,toggleTheme:o}=Ca();return g.jsxs("div",{className:"app-page",children:[g.jsx("div",{className:"app-page__section-head",children:g.jsx(Dt,{children:e("me.preferences")})}),g.jsx(Me,{}),g.jsxs("button",{type:"button",className:"app-page__row app-page__row--btn",onClick:o,children:[g.jsx("div",{className:"app-page__row-body",children:g.jsx("span",{className:"app-page__row-name",children:e("me.appearance")})}),g.jsx("span",{className:"app-page__row-value",children:e(i?"me.dark":"me.light")})]}),g.jsx(Me,{}),g.jsxs("button",{type:"button",className:"app-page__row app-page__row--btn",onClick:()=>n(t==="zh-CN"?"en-US":"zh-CN"),children:[g.jsx("div",{className:"app-page__row-body",children:g.jsx("span",{className:"app-page__row-name",children:e("me.language")})}),g.jsx("span",{className:"app-page__row-value",children:t==="zh-CN"?"中文":"English"}),g.jsx(T$,{})]}),g.jsx(Me,{}),g.jsx("div",{className:"app-page__section-head app-page__section-head--mt",children:g.jsx(Dt,{children:e("apps.title")})}),g.jsx(Me,{}),g.jsx("div",{className:"app-page__row",children:g.jsxs("div",{className:"app-page__row-body",children:[g.jsx("span",{className:"app-page__row-name",children:"Sparo OS"}),g.jsx("span",{className:"app-page__row-desc",children:"Remote Control v0.1"})]})}),g.jsx(Me,{})]})},A$=({sessionMgr:e,onDone:t})=>{const{t:n}=dt(),{selectedWorkspace:i,setSelectedWorkspace:o}=vn(),[l,u]=P.useState([]),[c,p]=P.useState(!0),[f,m]=P.useState(!1),[h,S]=P.useState(null);P.useEffect(()=>{(async()=>{p(!0);try{const k=await e.listRecentWorkspaces();u(k)}catch(k){S(k.message)}finally{p(!1)}})()},[e]);const E=P.useCallback(async v=>{if(!f){m(!0),S(null);try{const k=await e.setWorkspace(v.path);k.success?(o({has_workspace:!0,path:k.path||v.path,project_name:k.project_name||v.name}),t?.()):S(k.error||n("workspace.failedToSetWorkspace"))}catch(k){S(k.message)}finally{m(!1)}}},[f,e,o,t,n]);return c?g.jsx("div",{className:"workspace-picker__loading",children:n("common.loading")}):g.jsxs("div",{className:"workspace-picker",children:[g.jsx("div",{className:"workspace-picker__head",children:g.jsx(Dt,{children:n("workspace.recentWorkspaces")})}),g.jsx(Me,{}),l.length===0&&g.jsx("div",{className:"workspace-picker__empty",children:n("workspace.noRecentWorkspaces")}),l.map(v=>g.jsxs(ct.Fragment,{children:[g.jsxs("button",{type:"button",className:`workspace-picker__item${i?.path===v.path?" is-current":""}`,onClick:()=>{E(v)},disabled:f,children:[g.jsx("div",{className:"workspace-picker__item-name",children:v.name}),g.jsx("div",{className:"workspace-picker__item-path",children:v.path}),i?.path===v.path&&g.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:g.jsx("polyline",{points:"20 6 9 17 4 12"})})]}),g.jsx(Me,{})]},v.path)),h&&g.jsx("div",{className:"workspace-picker__error",children:h})]})},Jo=()=>g.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:g.jsx("path",{d:"m9 18 6-6-6-6"})}),R$=()=>g.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[g.jsx("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),g.jsx("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]}),N$=()=>g.jsxs("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[g.jsx("line",{x1:"6",x2:"6",y1:"3",y2:"15"}),g.jsx("circle",{cx:"18",cy:"6",r:"3"}),g.jsx("circle",{cx:"6",cy:"18",r:"3"}),g.jsx("path",{d:"M18 9a9 9 0 0 1-9 9"})]}),C$=({sessionMgr:e,onSignOut:t})=>{const{t:n,language:i,setLanguage:o}=dt(),{isDark:l,toggleTheme:u}=Ca(),{selectedWorkspace:c,authenticatedUserId:p}=vn(),[f,m]=P.useState(!1),[h,S]=P.useState(!1),[E,v]=P.useState(!1),k=()=>{c?.path&&navigator.clipboard?.writeText(c.path).then(()=>{v(!0),setTimeout(()=>v(!1),2e3)}).catch(()=>{})},T=()=>{S(!1),t()},N=c?.project_name??c?.path?.split(/[\\/]/).pop()??"";return g.jsxs("div",{className:"me-page",children:[g.jsx("div",{className:"me-page__section-head",children:g.jsx(Dt,{children:n("me.workspace")})}),g.jsx(Me,{}),c?.path?g.jsxs(g.Fragment,{children:[g.jsxs("div",{className:"me-page__ws-card",children:[g.jsx("div",{className:"me-page__ws-name",children:N}),g.jsxs("div",{className:"me-page__ws-path-row",children:[g.jsx("span",{className:"me-page__ws-path",children:c.path}),g.jsx("button",{type:"button",className:"me-page__ws-copy",onClick:k,"aria-label":n("me.copyPath"),children:E?g.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.2",strokeLinecap:"round",strokeLinejoin:"round",children:g.jsx("polyline",{points:"20 6 9 17 4 12"})}):g.jsx(R$,{})})]}),c.git_branch&&g.jsxs("div",{className:"me-page__ws-branch",children:[g.jsx(N$,{}),g.jsx("span",{children:c.git_branch}),g.jsx(Sh,{size:"sm"})]})]}),g.jsx(Me,{}),g.jsxs("button",{type:"button",className:"me-page__row me-page__row--btn",onClick:()=>m(!0),children:[g.jsx("span",{className:"me-page__row-label",children:n("me.switchWorkspace")}),g.jsx(Jo,{})]}),g.jsx(Me,{})]}):g.jsxs(g.Fragment,{children:[g.jsxs("button",{type:"button",className:"me-page__row me-page__row--btn",onClick:()=>m(!0),children:[g.jsx("span",{className:"me-page__row-label",children:n("workspace.selectWorkspace")}),g.jsx(Jo,{})]}),g.jsx(Me,{})]}),g.jsx("div",{className:"me-page__section-head me-page__section-head--mt",children:g.jsx(Dt,{children:n("me.preferences")})}),g.jsx(Me,{}),g.jsxs("button",{type:"button",className:"me-page__row me-page__row--btn",onClick:u,children:[g.jsx("span",{className:"me-page__row-label",children:n("me.appearance")}),g.jsx("span",{className:"me-page__row-value",children:n(l?"me.dark":"me.light")}),g.jsx(Jo,{})]}),g.jsx(Me,{}),g.jsxs("button",{type:"button",className:"me-page__row me-page__row--btn",onClick:()=>o(i==="zh-CN"?"en-US":"zh-CN"),children:[g.jsx("span",{className:"me-page__row-label",children:n("me.language")}),g.jsx("span",{className:"me-page__row-value",children:i==="zh-CN"?"中文":"English"}),g.jsx(Jo,{})]}),g.jsx(Me,{}),g.jsx("div",{className:"me-page__section-head me-page__section-head--mt",children:g.jsx(Dt,{children:n("me.account")})}),g.jsx(Me,{}),g.jsxs("div",{className:"me-page__row",children:[g.jsx("span",{className:"me-page__row-label",children:n("me.userId")}),g.jsx("span",{className:"me-page__row-value me-page__row-value--mono",children:p??"—"})]}),g.jsx(Me,{}),g.jsx("button",{type:"button",className:"me-page__row me-page__row--btn me-page__row--danger",onClick:()=>S(!0),children:g.jsx("span",{className:"me-page__row-label",children:n("me.signOut")})}),g.jsx(Me,{}),g.jsx(Gr,{open:f,onClose:()=>m(!1),title:n("workspace.selectWorkspace"),children:g.jsx(A$,{sessionMgr:e,onDone:()=>m(!1)})}),g.jsx(Gr,{open:h,onClose:()=>S(!1),children:g.jsxs("div",{className:"me-page__signout-panel",children:[g.jsx("div",{className:"me-page__signout-title",children:n("me.signOutConfirm")}),g.jsx("div",{className:"me-page__signout-desc",children:n("me.signOutDesc")}),g.jsxs("button",{type:"button",className:"me-page__signout-btn me-page__signout-btn--confirm",onClick:T,children:[g.jsx("span",{className:"me-page__signout-btn-dot","aria-hidden":"true"}),n("me.signOut")]}),g.jsx("button",{type:"button",className:"me-page__signout-btn me-page__signout-btn--cancel",onClick:()=>S(!1),children:n("common.cancel")})]})})]})};function I$(e,t){return!e||e.length<=t?e:`${e.slice(0,t)}…`}const O$=({sessionMgr:e,onSelectSession:t})=>{const{t:n}=dt(),{sessions:i,selectedWorkspace:o}=vn(),[l,u]=P.useState(""),c=P.useRef(null);P.useEffect(()=>{c.current?.focus()},[]);const p=P.useMemo(()=>{const h={};return o?.path&&o.project_name&&(h[o.path]=o.project_name),h},[o]),f=P.useMemo(()=>{if(!l.trim())return i.slice(0,20);const h=l.toLowerCase();return i.filter(S=>S.name?.toLowerCase().includes(h)||S.agent_type?.toLowerCase().includes(h)||p[S.workspace_path??""]?.toLowerCase().includes(h)).slice(0,20)},[l,i,p]),m=P.useCallback((h,S,E)=>{t(h,S,E)},[t]);return g.jsxs("div",{className:"search-dialog",children:[g.jsxs("div",{className:"search-dialog__input-wrap",children:[g.jsxs("svg",{className:"search-dialog__input-icon",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[g.jsx("circle",{cx:"11",cy:"11",r:"8"}),g.jsx("path",{d:"m21 21-4.35-4.35"})]}),g.jsx("input",{ref:c,type:"search",className:"search-dialog__input",placeholder:n("search.placeholder"),value:l,onChange:h=>u(h.target.value),autoCapitalize:"off",autoCorrect:"off"}),l&&g.jsx("button",{type:"button",className:"search-dialog__clear",onClick:()=>{u(""),c.current?.focus()},"aria-label":"Clear",children:g.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[g.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),g.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]}),g.jsx(Me,{}),g.jsx("div",{className:"search-dialog__results",children:f.length===0&&l.trim()?g.jsx("div",{className:"search-dialog__empty",children:n("search.noResults")}):g.jsxs(g.Fragment,{children:[f.length>0&&g.jsx("div",{className:"search-dialog__section-head",children:g.jsx(Dt,{children:n("search.sessions")})}),f.map((h,S)=>g.jsxs(ct.Fragment,{children:[g.jsxs("button",{type:"button",className:"search-dialog__row",onClick:()=>m(h.session_id,h.name,h.agent_type),children:[g.jsx("span",{className:"search-dialog__row-num",children:String(S+1).padStart(2,"0")}),g.jsxs("div",{className:"search-dialog__row-body",children:[g.jsx("span",{className:"search-dialog__row-name",children:I$(h.name||n("sessions.untitledSession"),40)}),g.jsx("span",{className:"search-dialog__row-meta",children:h.agent_type})]})]}),g.jsx(Me,{})]},h.session_id))]})})]})},L$=()=>g.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:g.jsx("path",{d:"M19 12H5M12 5l-7 7 7 7"})}),D$=()=>g.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[g.jsx("path",{d:"M9 11l3 3L22 4"}),g.jsx("path",{d:"M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11"})]}),M$=()=>g.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[g.jsx("rect",{x:"3",y:"3",width:"7",height:"7",rx:"1"}),g.jsx("rect",{x:"14",y:"3",width:"7",height:"7",rx:"1"}),g.jsx("rect",{x:"3",y:"14",width:"7",height:"7",rx:"1"}),g.jsx("rect",{x:"14",y:"14",width:"7",height:"7",rx:"1"})]}),F$=()=>g.jsx("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:g.jsx("path",{d:"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z"})}),P$=({onLogoClick:e,onTasksClick:t,onAppsClick:n})=>{const{activeScene:i,sessionContext:o,closeOverlay:l,openAgenticOs:u}=Bn(),c=i==="home",p=["app:skills","app:memory","app:shell","app:settings","me","search"].includes(i),f=!c,m=()=>{p?l():u()},h=o?.workspaceDisplayName??(o?.workspacePath?o.workspacePath.replace(/\\/g,"/").split("/").filter(Boolean).pop()??"":"");return g.jsxs("div",{className:"sparo-topbar",children:[g.jsx("div",{className:"sparo-topbar__left",children:g.jsx("button",{type:"button",className:"sparo-topbar__logo-btn",onClick:e,"aria-label":"Open menu",children:g.jsx(_x,{size:28,alt:"Sparo OS",className:"sparo-topbar__logo-img"})})}),g.jsx("div",{className:"sparo-topbar__center",children:f&&g.jsxs("div",{className:"sparo-topbar__context-capsule",children:[g.jsx("button",{type:"button",className:"sparo-topbar__back-btn",onClick:m,"aria-label":"Back",children:g.jsx(L$,{})}),o&&g.jsxs(g.Fragment,{children:[g.jsx("span",{className:"sparo-topbar__capsule-sep","aria-hidden":"true"}),g.jsxs("div",{className:"sparo-topbar__capsule-title",children:[o.mode&&g.jsx("span",{className:"sparo-topbar__capsule-mode",children:o.mode}),o.mode&&h&&g.jsx("span",{className:"sparo-topbar__capsule-slash","aria-hidden":"true",children:"/"}),h&&g.jsxs("span",{className:"sparo-topbar__capsule-ws",children:[g.jsx(F$,{}),g.jsx("span",{children:h})]})]})]})]})}),g.jsxs("div",{className:"sparo-topbar__right",children:[g.jsx("button",{type:"button",className:`sparo-topbar__icon-btn${i==="tasks"?" is-active":""}`,onClick:t,"aria-label":"Tasks",children:g.jsx(D$,{})}),g.jsx("button",{type:"button",className:`sparo-topbar__icon-btn${i==="apps"?" is-active":""}`,onClick:n,"aria-label":"Apps",children:g.jsx(M$,{})})]})]})},U$=240;function es({label:e,onClick:t,danger:n}){return g.jsx("button",{type:"button",className:`logo-menu-item${n?" logo-menu-item--danger":""}`,onClick:t,children:e})}function gx(){return g.jsx("div",{className:"logo-menu-divider","aria-hidden":"true"})}const B$=()=>{const{t:e,language:t,setLanguage:n}=dt(),{isDark:i,toggleTheme:o}=Ca(),l=P.useRef(null),u=P.useRef(null),[c,p]=P.useState(!1),{activeScene:f,pageStack:m,push:h,closeOverlay:S,openAgenticOs:E,openChat:v,setSessionContext:k}=Bn(),[T,N]=P.useState(!1),[R,A]=P.useState(f),[O,L]=P.useState(!1),[w,B]=P.useState(null),W=P.useRef();P.useEffect(()=>{f!==R&&(B(R),L(!0),A(f),clearTimeout(W.current),W.current=setTimeout(()=>{B(null),L(!1)},U$))},[f,R]),P.useEffect(()=>()=>clearTimeout(W.current),[]),P.useEffect(()=>{const H=()=>{const{activeScene:te,pageStack:ue}=Bn.getState();if(ue.length<=1){history.pushState({scene:te},"");return}if(["app:skills","app:memory","app:shell","app:settings","me","search"].includes(te))Bn.getState().closeOverlay();else{const Q=ue[ue.length-2];Bn.setState(x=>({activeScene:Q,pageStack:x.pageStack.slice(0,-1)}))}};return window.addEventListener("popstate",H),()=>window.removeEventListener("popstate",H)},[]);const j=P.useCallback((H,te)=>{l.current=H,u.current=te,p(!0),history.pushState({scene:"home"},"")},[]),M=P.useCallback((H,te,ue)=>{v({mode:ue??"Session",agentType:ue,sessionId:H,sessionName:te??""})},[v]),Y=P.useCallback(()=>{const{pageStack:H}=Bn.getState(),te=H.length>1?H[H.length-2]:"home";Bn.setState(ue=>({activeScene:te,pageStack:ue.pageStack.slice(0,-1),sessionContext:null})),history.back()},[]),J=P.useCallback(H=>{N(!1),H==="home"?E():H==="tasks"?h("tasks"):H==="search"?h("search"):H==="me"?h("me"):H==="theme"?o():H==="lang-en"?n("en-US"):H==="lang-zh"?n("zh-CN"):H==="signout"&&(localStorage.removeItem("sparo.mobile.user_id"),localStorage.removeItem("sparo.mobile.install_id"),localStorage.removeItem("sparo.mobile.user_id_lock_until"),localStorage.removeItem("sparo.mobile.user_id_failure_count"),l.current=null,u.current=null,p(!1),E())},[E,h,o,n]);if(!c)return g.jsx(RI,{onPaired:j});const de=u.current,Z=H=>{switch(H){case"home":return g.jsx(g$,{sessionMgr:de,onSelectSession:M});case"tasks":return g.jsx(v$,{sessionMgr:de,onSelectSession:M});case"apps":return g.jsx(_$,{});case"app:skills":return g.jsx(w$,{sessionMgr:de});case"app:memory":case"app:shell":return null;case"app:settings":return g.jsx(x$,{});case"me":return g.jsx(C$,{sessionMgr:de,onSignOut:()=>J("signout")});case"search":return g.jsx(O$,{sessionMgr:de,onSelectSession:M});case"chat":{const{sessionContext:te}=Bn.getState();return te?.sessionId?g.jsx(mR,{sessionMgr:de,sessionId:te.sessionId,sessionName:te.sessionName??"",agentType:te.agentType,onBack:Y,embedded:!0}):null}default:return null}};return g.jsxs("div",{className:"sparo-shell",children:[g.jsx(P$,{onLogoClick:()=>N(!0),onTasksClick:()=>{f!=="tasks"&&h("tasks")},onAppsClick:()=>{f!=="apps"&&h("apps")}}),g.jsxs("div",{className:"sparo-shell__body",children:[O&&w&&w!==R&&g.jsx("div",{className:"nav-page nav-push-exit",children:Z(w)},`prev-${w}`),g.jsx("div",{className:`nav-page${O?" nav-push-enter":""}`,children:Z(R)},R)]}),g.jsxs(Gr,{open:T,onClose:()=>N(!1),children:[g.jsx(es,{label:e("topbar.openMenu"),onClick:()=>N(!1)}),g.jsx(gx,{}),g.jsx(es,{label:t==="zh-CN"?"English":"中文",onClick:()=>J(t==="zh-CN"?"lang-en":"lang-zh")}),g.jsx(es,{label:e(i?"me.light":"me.dark"),onClick:()=>J("theme")}),g.jsx(gx,{}),g.jsx(es,{label:e("me.signOut"),onClick:()=>J("signout"),danger:!0})]})]})},j$=()=>g.jsx(xC,{children:g.jsx(SC,{children:g.jsx(B$,{})})});document.getElementById("boot-splash")?.remove();mC.createRoot(document.getElementById("root")).render(g.jsx(ct.StrictMode,{children:g.jsx(j$,{})})); diff --git a/src/apps/relay-server/static/assets/sparo-logo-mark-BchWKRwx.png b/src/apps/relay-server/static/assets/sparo-logo-mark-BchWKRwx.png deleted file mode 100644 index 8c783315..00000000 Binary files a/src/apps/relay-server/static/assets/sparo-logo-mark-BchWKRwx.png and /dev/null differ diff --git a/src/apps/relay-server/static/brand/app-icon-180.png b/src/apps/relay-server/static/brand/app-icon-180.png new file mode 100644 index 00000000..3bce3cf1 Binary files /dev/null and b/src/apps/relay-server/static/brand/app-icon-180.png differ diff --git a/src/apps/relay-server/static/brand/favicon-32.png b/src/apps/relay-server/static/brand/favicon-32.png new file mode 100644 index 00000000..2f5e44f9 Binary files /dev/null and b/src/apps/relay-server/static/brand/favicon-32.png differ diff --git a/src/apps/relay-server/static/brand/sparo-mark-16.png b/src/apps/relay-server/static/brand/sparo-mark-16.png new file mode 100644 index 00000000..436e8c9f Binary files /dev/null and b/src/apps/relay-server/static/brand/sparo-mark-16.png differ diff --git a/src/apps/relay-server/static/brand/sparo-mark-24.png b/src/apps/relay-server/static/brand/sparo-mark-24.png new file mode 100644 index 00000000..b3e6726f Binary files /dev/null and b/src/apps/relay-server/static/brand/sparo-mark-24.png differ diff --git a/src/apps/relay-server/static/brand/sparo-mark-32.png b/src/apps/relay-server/static/brand/sparo-mark-32.png new file mode 100644 index 00000000..4078a327 Binary files /dev/null and b/src/apps/relay-server/static/brand/sparo-mark-32.png differ diff --git a/src/apps/relay-server/static/brand/sparo-mark-48.png b/src/apps/relay-server/static/brand/sparo-mark-48.png new file mode 100644 index 00000000..5ae20c02 Binary files /dev/null and b/src/apps/relay-server/static/brand/sparo-mark-48.png differ diff --git a/src/apps/relay-server/static/brand/sparo-mark-full.png b/src/apps/relay-server/static/brand/sparo-mark-full.png new file mode 100644 index 00000000..275ec993 Binary files /dev/null and b/src/apps/relay-server/static/brand/sparo-mark-full.png differ diff --git a/src/apps/relay-server/static/favicon.png b/src/apps/relay-server/static/favicon.png deleted file mode 100644 index c10df7d6..00000000 Binary files a/src/apps/relay-server/static/favicon.png and /dev/null differ diff --git a/src/apps/relay-server/static/homepage/index.html b/src/apps/relay-server/static/homepage/index.html index 552c29dc..2af366ed 100644 --- a/src/apps/relay-server/static/homepage/index.html +++ b/src/apps/relay-server/static/homepage/index.html @@ -6,7 +6,7 @@ Sparo OS Relay Server - + @@ -166,7 +166,7 @@
- +

Sparo OS Relay Server

桌面端与移动端之间的中继服务,提供配对与消息转发能力。

diff --git a/src/apps/relay-server/static/index.html b/src/apps/relay-server/static/index.html index 2c6cd702..b5c3ef75 100644 --- a/src/apps/relay-server/static/index.html +++ b/src/apps/relay-server/static/index.html @@ -9,8 +9,8 @@ - - + + Sparo OS + diff --git a/src/mobile-web/index.html b/src/mobile-web/index.html index 4501cddb..e7dfcb0f 100644 --- a/src/mobile-web/index.html +++ b/src/mobile-web/index.html @@ -9,8 +9,8 @@ - - + + Sparo OS + diff --git a/src/web-ui/preview.html b/src/web-ui/preview.html index cce19658..18e6a324 100644 --- a/src/web-ui/preview.html +++ b/src/web-ui/preview.html @@ -2,7 +2,7 @@ - + Sparo OS Design System Preview diff --git a/src/web-ui/public/brand/app-icon-512.png b/src/web-ui/public/brand/app-icon-512.png new file mode 100644 index 00000000..c9cd4a69 Binary files /dev/null and b/src/web-ui/public/brand/app-icon-512.png differ diff --git a/src/web-ui/public/brand/favicon-32.png b/src/web-ui/public/brand/favicon-32.png new file mode 100644 index 00000000..2f5e44f9 Binary files /dev/null and b/src/web-ui/public/brand/favicon-32.png differ diff --git a/src/web-ui/public/brand/sparo-mark-256.png b/src/web-ui/public/brand/sparo-mark-256.png new file mode 100644 index 00000000..aee2c85c Binary files /dev/null and b/src/web-ui/public/brand/sparo-mark-256.png differ diff --git a/src/web-ui/public/brand/sparo-mark-full.png b/src/web-ui/public/brand/sparo-mark-full.png new file mode 100644 index 00000000..275ec993 Binary files /dev/null and b/src/web-ui/public/brand/sparo-mark-full.png differ diff --git a/src/web-ui/public/brand/sparo-wordmark-primary.png b/src/web-ui/public/brand/sparo-wordmark-primary.png new file mode 100644 index 00000000..73f058cd Binary files /dev/null and b/src/web-ui/public/brand/sparo-wordmark-primary.png differ diff --git a/src/web-ui/public/brand/sparo-wordmark-reversed.png b/src/web-ui/public/brand/sparo-wordmark-reversed.png new file mode 100644 index 00000000..3e6aeb4d Binary files /dev/null and b/src/web-ui/public/brand/sparo-wordmark-reversed.png differ diff --git a/src/web-ui/public/sparo-app-icon.png b/src/web-ui/public/sparo-app-icon.png deleted file mode 100644 index 9e8086ab..00000000 Binary files a/src/web-ui/public/sparo-app-icon.png and /dev/null differ diff --git a/src/web-ui/public/sparo-logo-mark.png b/src/web-ui/public/sparo-logo-mark.png deleted file mode 100644 index 8c783315..00000000 Binary files a/src/web-ui/public/sparo-logo-mark.png and /dev/null differ diff --git a/src/web-ui/src/app/App.tsx b/src/web-ui/src/app/App.tsx index 32066bee..6f1c8ad3 100644 --- a/src/web-ui/src/app/App.tsx +++ b/src/web-ui/src/app/App.tsx @@ -23,6 +23,7 @@ import { useSettingsStore } from './scenes/settings/settingsStore'; import { openWorkspaceScene } from './navigation/workspaceNavigation'; import { aiApi } from '@/infrastructure/api'; import { ConfigRecoveryPrompt } from './components/ConfigRecoveryPrompt'; +import { requestMainWindowShow } from '@/boot/startupSplash'; const log = createLogger('App'); /** @@ -57,8 +58,7 @@ function App() { mainWindowShownRef.current = true; try { - const { invoke } = await import('@tauri-apps/api/core'); - await invoke('show_main_window'); + await requestMainWindowShow(); log.debug('Main window shown', { reason }); } catch (error: any) { log.error('Failed to show main window', error); diff --git a/src/web-ui/src/app/components/AboutDialog/AboutDialog.scss b/src/web-ui/src/app/components/AboutDialog/AboutDialog.scss index edf87e6d..be6f59fb 100644 --- a/src/web-ui/src/app/components/AboutDialog/AboutDialog.scss +++ b/src/web-ui/src/app/components/AboutDialog/AboutDialog.scss @@ -18,17 +18,13 @@ --about-text-muted: var(--ds-color-text-muted, var(--color-text-muted, #{tokens.$color-text-muted})); --about-border-base: var(--ds-color-border-base, var(--border-base, #{tokens.$border-base})); --about-border-subtle: var(--ds-color-border-subtle, var(--border-subtle, #{tokens.$border-subtle})); - --about-accent: var(--ds-color-accent-500, var(--color-accent-500, #{tokens.$color-accent-500})); - --about-font-sans: var(--ds-font-family-sans, var(--font-family-sans, #{tokens.$font-family-sans})); + --about-font-sans: var(--font-family-sans, var(--ds-font-family-sans, #{tokens.$font-family-sans})); --about-font-mono: var(--ds-font-family-mono, var(--font-family-mono, #{tokens.$font-family-mono})); - --about-font-size-xs: var(--ds-font-size-xs, #{tokens.$font-size-xs}); - --about-font-size-sm: var(--ds-font-size-sm, #{tokens.$font-size-sm}); - --about-font-size-base: var(--ds-font-size-base, #{tokens.$font-size-base}); - --about-font-size-lg: var(--ds-font-size-lg, #{tokens.$font-size-lg}); - --about-font-size-xl: var(--ds-font-size-xl, #{tokens.$font-size-xl}); - --about-font-size-3xl: var(--ds-font-size-3xl, #{tokens.$font-size-3xl}); - --about-font-size-4xl: var(--ds-font-size-4xl, #{tokens.$font-size-4xl}); - --about-font-size-5xl: var(--ds-font-size-5xl, #{tokens.$font-size-5xl}); + --about-font-size-xs: var(--font-size-xs, var(--ds-font-size-xs, #{tokens.$font-size-xs})); + --about-font-size-sm: var(--font-size-sm, var(--ds-font-size-sm, #{tokens.$font-size-sm})); + --about-font-size-base: var(--font-size-base, var(--ds-font-size-base, #{tokens.$font-size-base})); + --about-font-size-lg: var(--font-size-lg, var(--ds-font-size-lg, #{tokens.$font-size-lg})); + --about-font-weight-normal: var(--ds-font-weight-normal, #{tokens.$font-weight-normal}); --about-font-weight-medium: var(--ds-font-weight-medium, #{tokens.$font-weight-medium}); --about-font-weight-semibold: var(--ds-font-weight-semibold, #{tokens.$font-weight-semibold}); --about-line-height-tight: var(--ds-line-height-tight, #{tokens.$line-height-tight}); @@ -56,6 +52,7 @@ overscroll-behavior: contain; padding: var(--about-space-6) var(--about-space-8) var(--about-space-4); color: var(--about-text-secondary); + font-family: var(--about-font-sans); } .sparo-about-dialog > .ds-floating-card__dismiss.icon-btn { @@ -85,14 +82,32 @@ width: clamp(120px, 52%, 160px); height: auto; object-fit: contain; - filter: drop-shadow( - 0 var(--about-space-4) var(--about-space-5) - color-mix(in srgb, var(--ds-shadow-color-card, transparent) 56%, transparent) - ); user-select: none; -webkit-user-drag: none; } +.sparo-about-dialog__wordmark-image { + position: absolute; + inset: 0; + display: block; + width: 100%; + height: 100%; + user-select: none; + -webkit-user-drag: none; +} + +.sparo-about-dialog__wordmark-image--primary { + visibility: hidden; +} + +:root[data-theme-type='light'] .sparo-about-dialog__wordmark-image--primary { + visibility: visible; +} + +:root[data-theme-type='light'] .sparo-about-dialog__wordmark-image--reversed { + visibility: hidden; +} + .sparo-about-dialog__details { min-width: 0; padding: var(--about-space-5) var(--about-space-2) var(--about-space-4) 0; @@ -104,28 +119,28 @@ .sparo-about-dialog__title-line { display: flex; - align-items: center; + align-items: flex-end; flex-wrap: wrap; gap: var(--about-space-3); min-width: 0; } .sparo-about-dialog__title { + position: relative; + display: block; + width: min(232px, 100%); + aspect-ratio: 475 / 96; margin: 0; - color: var(--about-text-primary); - font-family: var(--about-font-sans); - font-size: var(--about-font-size-5xl); - font-weight: var(--about-font-weight-semibold); - letter-spacing: -0.03em; - line-height: var(--about-line-height-tight); + user-select: none; + -webkit-user-drag: none; } .sparo-about-dialog__version { padding-inline-start: var(--about-space-3); border-inline-start: 1px solid var(--about-border-base); - color: var(--about-accent); + color: var(--about-text-muted); font-family: var(--about-font-mono); - font-size: var(--about-font-size-sm); + font-size: var(--about-font-size-xs); font-weight: var(--about-font-weight-medium); line-height: var(--about-line-height-tight); white-space: nowrap; @@ -134,8 +149,9 @@ .sparo-about-dialog__tagline { margin: var(--about-space-4) 0 0; color: var(--about-text-secondary); - font-size: var(--about-font-size-base); - line-height: var(--about-line-height-relaxed); + font-size: var(--about-font-size-lg); + font-weight: var(--about-font-weight-normal); + line-height: var(--about-line-height-base); } .sparo-about-dialog__build { @@ -151,11 +167,10 @@ } .sparo-about-dialog__build-title { - color: var(--about-text-muted); - font-size: var(--about-font-size-xs); + color: var(--about-text-secondary); + font-size: var(--about-font-size-sm); font-weight: var(--about-font-weight-semibold); - letter-spacing: 0.08em; - text-transform: uppercase; + line-height: var(--about-line-height-base); } .sparo-about-dialog__build-list { @@ -179,7 +194,7 @@ dt { color: var(--about-text-muted); font-size: var(--about-font-size-xs); - font-weight: var(--about-font-weight-medium); + font-weight: var(--about-font-weight-normal); line-height: var(--about-line-height-base); } @@ -187,8 +202,10 @@ margin-top: var(--about-space-1); overflow: hidden; color: var(--about-text-primary); + font-family: var(--about-font-mono); font-size: var(--about-font-size-base); - font-weight: var(--about-font-weight-semibold); + font-weight: var(--about-font-weight-medium); + letter-spacing: 0.01em; line-height: var(--about-line-height-base); text-overflow: ellipsis; white-space: nowrap; @@ -201,7 +218,7 @@ justify-content: center; width: var(--about-space-8); height: var(--about-space-8); - color: var(--about-text-secondary); + color: var(--about-text-muted); svg { width: var(--about-space-5); @@ -213,11 +230,6 @@ min-width: 0; } -.sparo-about-dialog__build-value--mono { - font-family: var(--about-font-mono); - letter-spacing: 0.01em; -} - .sparo-about-dialog__links { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); @@ -244,6 +256,7 @@ gap: var(--about-space-2); padding-inline: var(--about-space-3); color: var(--about-text-secondary); + font-family: var(--about-font-sans); > svg:first-child { flex: 0 0 auto; @@ -286,13 +299,17 @@ .sparo-about-dialog__license { flex: 0 0 auto; - color: var(--about-text-secondary); + color: var(--about-text-muted); + font-family: var(--about-font-sans); + font-size: var(--about-font-size-xs); + font-weight: var(--about-font-weight-normal); } .sparo-about-dialog__copyright { margin: 0; color: var(--about-text-muted); font-size: var(--about-font-size-xs); + font-weight: var(--about-font-weight-normal); line-height: var(--about-line-height-base); text-align: end; } @@ -358,7 +375,7 @@ } .sparo-about-dialog__title { - font-size: var(--about-font-size-3xl); + width: min(190px, 100%); } .sparo-about-dialog__version { diff --git a/src/web-ui/src/app/components/AboutDialog/AboutDialog.tsx b/src/web-ui/src/app/components/AboutDialog/AboutDialog.tsx index b161ae69..8c4adecf 100644 --- a/src/web-ui/src/app/components/AboutDialog/AboutDialog.tsx +++ b/src/web-ui/src/app/components/AboutDialog/AboutDialog.tsx @@ -10,6 +10,7 @@ import { Button, FloatingCard, IconButton, + SparoLogoMark, useBodyScrollLock, useDialogFocusTrap, } from '@/design-system'; @@ -101,7 +102,6 @@ export const AboutDialog: React.FC = ({ icon: Clock3, label: t('about.buildDate'), value: buildDateLabel, - isMonospace: false, }, version.gitCommit ? { @@ -109,7 +109,6 @@ export const AboutDialog: React.FC = ({ icon: Hash, label: t('about.commit'), value: version.gitCommit.slice(0, 7), - isMonospace: true, } : null, version.gitBranch @@ -118,7 +117,6 @@ export const AboutDialog: React.FC = ({ icon: GitBranch, label: t('about.branch'), value: version.gitBranch, - isMonospace: true, } : null, ].filter((item): item is { @@ -126,7 +124,6 @@ export const AboutDialog: React.FC = ({ icon: typeof Clock3; label: string; value: string; - isMonospace: boolean; } => item !== null); if (!isOpen || typeof document === 'undefined') { @@ -156,18 +153,35 @@ export const AboutDialog: React.FC = ({ >
-
-

{t('about.productTitle')}

+

+ + +

{t('about.version', { version: versionLabel })} @@ -192,16 +206,14 @@ export const AboutDialog: React.FC = ({
- {buildItems.map(({ key, icon: Icon, label, value, isMonospace }) => ( + {buildItems.map(({ key, icon: Icon, label, value }) => (
{label}
-
- {value} -
+
{value}
))} diff --git a/src/web-ui/src/app/components/AgentCompanionDesktopPet/AgentCompanionDesktopPet.scss b/src/web-ui/src/app/components/AgentCompanionDesktopPet/AgentCompanionDesktopPet.scss index 00ff7b2f..d0cf11bb 100644 --- a/src/web-ui/src/app/components/AgentCompanionDesktopPet/AgentCompanionDesktopPet.scss +++ b/src/web-ui/src/app/components/AgentCompanionDesktopPet/AgentCompanionDesktopPet.scss @@ -26,8 +26,8 @@ --app-agent-companion-attention-border: color-mix(in srgb, var(--ds-color-warning) 38%, transparent); --app-agent-companion-completed-tint: color-mix(in srgb, var(--ds-color-success) 12%, transparent); --app-agent-companion-completed-border: color-mix(in srgb, var(--ds-color-success) 34%, transparent); - --app-agent-companion-error-tint: color-mix(in srgb, var(--ds-color-error) 12%, transparent); - --app-agent-companion-error-border: color-mix(in srgb, var(--ds-color-error) 34%, transparent); + --app-agent-companion-error-tint: color-mix(in srgb, var(--ds-color-danger) 12%, transparent); + --app-agent-companion-error-border: color-mix(in srgb, var(--ds-color-danger) 34%, transparent); width: 100vw; height: 100vh; diff --git a/src/web-ui/src/app/components/AgentCompanionDesktopPet/AgentCompanionPetSprite.scss b/src/web-ui/src/app/components/AgentCompanionDesktopPet/AgentCompanionPetSprite.scss index cbfc7fe8..009bc14f 100644 --- a/src/web-ui/src/app/components/AgentCompanionDesktopPet/AgentCompanionPetSprite.scss +++ b/src/web-ui/src/app/components/AgentCompanionDesktopPet/AgentCompanionPetSprite.scss @@ -2,12 +2,12 @@ --sparo-petdex-width: 42px; --sparo-petdex-height: 46px; --sparo-petdex-margin-top: -8px; - --app-pet-loader-orbit-border: color-mix(in srgb, var(--ds-color-danger) 28%, transparent); - --app-pet-loader-orbit-active: color-mix(in srgb, var(--ds-color-danger) 90%, transparent); + --app-pet-loader-orbit-border: color-mix(in srgb, var(--ds-color-brand-core) 28%, transparent); + --app-pet-loader-orbit-active: color-mix(in srgb, var(--ds-color-brand-core) 90%, transparent); --app-pet-loader-face-ink: var(--ds-color-text-primary); --app-pet-loader-face-bg-start: var(--ds-color-warning-bg); --app-pet-loader-face-bg-end: color-mix(in srgb, var(--ds-color-warning) 38%, var(--ds-color-bg-elevated)); - --app-pet-loader-face-ring: color-mix(in srgb, var(--ds-color-danger) 26%, transparent); + --app-pet-loader-face-ring: color-mix(in srgb, var(--ds-color-brand-core) 26%, transparent); --app-pet-loader-face-shadow: 0 8px 18px color-mix(in srgb, var(--ds-color-text-primary) 16%, transparent); --app-pet-loader-spark: var(--ds-color-warning); --app-pet-loader-spark-shadow: 0 0 10px color-mix(in srgb, var(--ds-color-warning) 55%, transparent); diff --git a/src/web-ui/src/app/components/UnifiedTopBar/UnifiedTopBar.scss b/src/web-ui/src/app/components/UnifiedTopBar/UnifiedTopBar.scss index c17b6b55..ca563e3e 100644 --- a/src/web-ui/src/app/components/UnifiedTopBar/UnifiedTopBar.scss +++ b/src/web-ui/src/app/components/UnifiedTopBar/UnifiedTopBar.scss @@ -52,7 +52,6 @@ } &__logo-control:hover &__logo-mark { - color: var(--ds-color-accent-500); transform: scale(1.06); } @@ -67,12 +66,10 @@ justify-content: center; width: 28px; height: 28px; - color: var(--unified-top-bar-logo-color, var(--ds-color-text-primary)); pointer-events: none; user-select: none; transform-origin: center; transition: - color var(--ds-motion-fast) var(--ds-easing-standard), transform var(--ds-motion-fast) var(--ds-easing-standard); } diff --git a/src/web-ui/src/app/components/UnifiedTopBar/UnifiedTopBar.tsx b/src/web-ui/src/app/components/UnifiedTopBar/UnifiedTopBar.tsx index 3662f822..c7a19f4e 100644 --- a/src/web-ui/src/app/components/UnifiedTopBar/UnifiedTopBar.tsx +++ b/src/web-ui/src/app/components/UnifiedTopBar/UnifiedTopBar.tsx @@ -26,7 +26,7 @@ import { Button, Dialog, IconButton, - SparoLogoMark, + SparoLogoCore, Tooltip, WindowControls, } from '@/design-system'; @@ -493,7 +493,11 @@ const UnifiedTopBar: React.FC = ({ data-testid="unified-top-bar-home" > diff --git a/src/web-ui/src/app/components/WorkDock/NewWorkDialog.scss b/src/web-ui/src/app/components/WorkDock/NewWorkDialog.scss index d80ebc8e..c4117ea5 100644 --- a/src/web-ui/src/app/components/WorkDock/NewWorkDialog.scss +++ b/src/web-ui/src/app/components/WorkDock/NewWorkDialog.scss @@ -4,94 +4,131 @@ display: flex; align-items: center; justify-content: center; - padding: var(--ds-space-5); + padding: var(--ds-space-6, 24px); pointer-events: none; - z-index: var(--ds-z-popover); + z-index: var(--ds-z-popover, 1000); } .new-work-dialog { display: flex; flex-direction: column; - width: min(520px, 100%); + width: min(600px, 100%); + height: min(280px, calc(100vh - var(--ds-space-12, 48px))); + min-height: 260px; overflow: visible; pointer-events: auto; } -.new-work-dialog__header { - display: flex; - align-items: center; - justify-content: space-between; - gap: var(--ds-space-3); - margin-bottom: var(--ds-space-2); - min-width: 0; -} - .new-work-dialog__title { + position: absolute; + top: var(--ds-space-4, 16px); + left: var(--ds-space-4, 16px); + z-index: var(--ds-z-local, 1); margin: 0; - color: var(--ds-color-text-primary); - font-size: var(--ds-font-size-lg); - font-weight: var(--ds-font-weight-semibold); - line-height: var(--ds-line-height-tight); + color: var(--ds-color-text-primary, var(--color-text-primary)); + font-size: var(--ds-font-size-xl, 18px); + font-weight: var(--ds-font-weight-semibold, 600); + line-height: var(--ds-line-height-tight, 1.25); letter-spacing: -0.02em; white-space: nowrap; } -.new-work-dialog__mode { - flex: 0 0 auto; +.new-work-dialog__tabs { + flex: 1; + min-height: 0; +} + +.new-work-dialog__tabs > .ds-tabs__nav { + min-height: 40px; + padding-right: calc(var(--ds-space-4, 16px) + var(--ds-space-5, 20px)); + padding-left: 180px; + border-bottom-color: transparent; } -.new-work-dialog__mode-content { +.new-work-dialog__tabs > .ds-tabs__nav .ds-tabs__nav-list { + justify-content: flex-end; + flex: 1; +} + +.new-work-dialog__tabs > .ds-tabs__content { display: flex; - align-items: center; - height: 64px; + flex: 1; min-width: 0; - padding: var(--ds-space-2) 0; + min-height: 0; + padding-top: var(--ds-space-3, 12px); +} + +.new-work-dialog__tabs > .ds-tabs__content > .ds-tab-pane { + min-height: 0; +} + +.new-work-dialog__stage { + display: flex; + flex-direction: column; + min-height: 100%; + padding: var(--ds-space-4, 16px); + border: 1px solid var(--ds-color-border-subtle, var(--border-subtle)); + border-radius: var(--ds-radius-xl, var(--size-radius-xl, 16px)); + background: color-mix( + in srgb, + var(--ds-color-bg-panel, var(--color-bg-secondary)) 84%, + var(--ds-color-bg-elevated, var(--color-bg-elevated)) + ); box-sizing: border-box; } +.new-work-dialog__hint { + margin: 0; + color: var(--ds-color-text-muted, var(--color-text-muted)); + font-size: var(--ds-font-size-sm, var(--font-size-sm, 13px)); + font-weight: var(--ds-font-weight-medium, 500); + line-height: var(--ds-line-height-normal, 1.5); +} + .new-work-dialog__sentence { display: flex; align-items: center; - flex-wrap: wrap; - gap: var(--ds-space-2); + justify-content: center; + flex: 1; + gap: var(--ds-space-2, 8px); min-width: 0; width: 100%; - animation: new-work-dialog-mode-in var(--ds-motion-fast) var(--ds-easing-standard); + animation: new-work-dialog-mode-in var(--ds-motion-fast, var(--motion-fast)) var(--ds-easing-standard, var(--easing-standard)); } .new-work-dialog__sentence-copy { flex: 0 0 auto; - color: var(--ds-color-text-secondary); - font-size: var(--ds-font-size-sm); - font-weight: 500; + color: var(--ds-color-text-primary, var(--color-text-primary)); + font-size: var(--ds-font-size-lg, 15px); + font-weight: var(--ds-font-weight-medium, 500); line-height: 1.3; white-space: nowrap; } .new-work-dialog__agent-select { - flex: 0 0 142px; + flex: 0 0 168px; min-width: 0; - max-width: 142px; + max-width: 168px; } .new-work-dialog__agent-option { display: flex; align-items: center; justify-content: space-between; - gap: var(--ds-space-3); + gap: var(--ds-space-3, 12px); width: 100%; min-width: 0; } .new-work-dialog__agent-option--value { justify-content: flex-start; - gap: var(--ds-space-2); + gap: var(--ds-space-2, 8px); } .new-work-dialog__agent-option-main { display: inline-flex; align-items: center; - gap: var(--ds-space-2); + gap: var(--ds-space-2, 8px); min-width: 0; } @@ -106,8 +143,8 @@ flex: 0 1 48%; min-width: 90px; overflow: hidden; - color: var(--ds-color-text-muted); - font-size: var(--ds-font-size-xs); + color: var(--ds-color-text-muted, var(--color-text-muted)); + font-size: var(--ds-font-size-xs, 11px); line-height: 1.35; text-align: right; text-overflow: ellipsis; @@ -116,11 +153,11 @@ .new-work-dialog__system-badge { flex-shrink: 0; - padding: 0 var(--ds-space-1); - border: 1px solid var(--ds-color-border-subtle); - border-radius: var(--ds-radius-full); - background: var(--ds-color-element-subtle); - color: var(--ds-color-text-muted); + padding: 0 var(--ds-space-1, 4px); + border: 1px solid var(--ds-color-border-subtle, var(--border-subtle)); + border-radius: var(--ds-radius-full, 999px); + background: var(--ds-color-element-subtle, var(--element-bg-subtle)); + color: var(--ds-color-text-muted, var(--color-text-muted)); font-size: 10px; font-weight: 600; line-height: 1.35; @@ -129,10 +166,10 @@ .new-work-dialog__workspace-field { display: flex; align-items: center; - flex: 0 0 188px; - gap: var(--ds-space-1); + flex: 0 0 210px; + gap: var(--ds-space-1, 4px); min-width: 0; - max-width: 188px; + max-width: 210px; } .new-work-dialog__workspace-select { @@ -145,11 +182,12 @@ } .new-work-dialog__sentence--delegate { - flex-wrap: nowrap; + padding-inline: var(--ds-space-4, 16px); } .new-work-dialog__objective { - flex: 1 1 240px; + flex: 1 1 300px; + max-width: 380px; min-width: 0; } @@ -170,20 +208,52 @@ flex-shrink: 0; align-items: center; justify-content: flex-end; - gap: var(--ds-space-1); - margin-top: var(--ds-space-2); + gap: var(--ds-space-3, 12px); + margin-top: var(--ds-space-3, 12px); } -@media (max-width: 520px) { - .new-work-dialog__header { - align-items: flex-start; - flex-direction: column; +@media (max-width: 640px) { + .new-work-dialog-layer { + align-items: stretch; + padding: var(--ds-space-3, 12px); + } + + .new-work-dialog { + width: 100%; + height: auto; + min-height: 0; + max-height: calc(100vh - var(--ds-space-6, 24px)); + overflow-y: auto; + } + + .new-work-dialog__title { + position: static; + margin-bottom: var(--ds-space-3, 12px); + font-size: var(--ds-font-size-xl, 18px); + } + + .new-work-dialog__tabs > .ds-tabs__nav { + min-height: auto; + padding-inline: 0 calc(var(--ds-space-5, 20px) + var(--ds-space-2, 8px)); + } + + .new-work-dialog__tabs > .ds-tabs__nav .ds-tabs__nav-list { + justify-content: flex-start; + } + + .new-work-dialog__tabs > .ds-tabs__content { + padding-top: var(--ds-space-3, 12px); + } + + .new-work-dialog__stage { + min-height: 300px; + padding: var(--ds-space-4, 16px); } - .new-work-dialog__mode-content { - height: 152px; - align-items: flex-start; - padding-block: var(--ds-space-3); + .new-work-dialog__sentence { + align-content: center; + flex-wrap: wrap; + padding-block: var(--ds-space-5, 20px); } .new-work-dialog__agent-select, @@ -194,6 +264,12 @@ .new-work-dialog__sentence--delegate { flex-wrap: wrap; + padding-inline: 0; + } + + .new-work-dialog__objective { + flex-basis: 100%; + max-width: none; } } diff --git a/src/web-ui/src/app/components/WorkDock/NewWorkDialog.tsx b/src/web-ui/src/app/components/WorkDock/NewWorkDialog.tsx index 1d0bb455..6035ff85 100644 --- a/src/web-ui/src/app/components/WorkDock/NewWorkDialog.tsx +++ b/src/web-ui/src/app/components/WorkDock/NewWorkDialog.tsx @@ -1,14 +1,14 @@ import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'; import { createPortal } from 'react-dom'; -import { FolderOpen } from 'lucide-react'; +import { ArrowRight, FolderOpen } from 'lucide-react'; import { open } from '@tauri-apps/plugin-dialog'; import { - Button, FloatingCard, IconButton, Input, - SegmentedControl, Select, + TabPane, + Tabs, type SelectOption, } from '@/design-system'; import { useI18n } from '@/infrastructure/i18n'; @@ -398,11 +398,6 @@ export const NewWorkDialog: React.FC = ({ [intelligentExecutors, knownBuiltinChoices, t] ); - const startModeOptions = useMemo(() => [ - { value: 'manual', label: t('nav.workDock.modeManual') }, - { value: 'agentic-os', label: t('nav.workDock.modeAgenticOs') }, - ], [t]); - const renderAgentOption = useCallback((option: SelectOption) => (
@@ -425,13 +420,10 @@ export const NewWorkDialog: React.FC = ({
{option.label} - {knownBuiltinChoices.has(String(option.value)) && ( - {t('nav.workDock.executor.systemBadge')} - )}
); - }, [knownBuiltinChoices, t]); + }, []); const handleBrowse = useCallback(async () => { try { @@ -572,6 +564,31 @@ export const NewWorkDialog: React.FC = ({ && (startMode === 'agentic-os' || !parseAppSlotWorkChoice(agentChoice) || Boolean(selectedExecutor)) && !submitting; + const renderActions = () => { + const confirmLabel = startMode === 'agentic-os' + ? t('nav.workDock.confirmDispatch') + : t('nav.workDock.confirmCreate'); + + return ( +
+ void handleConfirm()} + disabled={!canSubmit} + aria-label={confirmLabel} + tooltip={confirmLabel} + tooltipPlacement="top" + data-testid="new-work-confirm" + > + + +
+ ); + }; + if (!isOpen) return null; return createPortal( @@ -586,121 +603,112 @@ export const NewWorkDialog: React.FC = ({ role="dialog" aria-modal="false" aria-labelledby="new-work-dialog-title" + aria-describedby="new-work-dialog-hint" tabIndex={-1} data-testid="new-work-dialog" > -
-

- {t('nav.workDock.createTitle')} -

- setStartMode(value as NewWorkStartMode)} - size="small" - variant="accent" - ariaLabel={t('nav.workDock.modeAriaLabel')} - /> -
- -
- {startMode === 'manual' ? ( -
- {t('nav.workDock.sentencePrefix')} -
- { - const selectedValue = String(value); - setWorkspaceId(selectedValue); - if (selectedValue !== BROWSED_WORKSPACE_VALUE) { - setBrowsedWorkspacePath(null); - } - }} - placeholder={t('nav.workDock.workspacePlaceholder')} + options={agentOptions} + value={agentChoice} + onChange={(value) => setAgentChoice(value as NewWorkAgentChoice)} + renderOption={renderAgentOption} + renderValue={renderAgentValue} + dropdownWidth="min(360px, calc(100vw - 32px))" + searchPlaceholder={t('nav.workDock.agentSearchPlaceholder')} searchable - dropdownWidth="min(420px, calc(100vw - 32px))" - dropdownAlign="end" - emptyText={t('nav.workDock.noOpenWorkspace')} />
- {t('nav.workDock.sentenceInfix')} +
+
+ setObjective(event.target.value)} + placeholder={t('nav.workDock.objectivePlaceholder')} size="medium" - className="new-work-dialog__browse" - onClick={() => void handleBrowse()} - aria-label={t('nav.workDock.browseWorkspace')} - tooltip={t('nav.workDock.browseWorkspace')} - tooltipPlacement="top" - > - - + shape="pill" + focusTone="danger" + maxLength={600} + autoFocus + onKeyDown={(event) => { + if (event.key === 'Enter' && canSubmit) void handleConfirm(); + }} + /> + {t('nav.workDock.delegateSuffix')}
- {t('nav.workDock.sentenceSuffix')} -
- ) : ( -
- {t('nav.workDock.delegatePrefix')} - setObjective(event.target.value)} - placeholder={t('nav.workDock.objectivePlaceholder')} - size="medium" - shape="pill" - focusTone="danger" - maxLength={600} - autoFocus - onKeyDown={(event) => { - if (event.key === 'Enter' && canSubmit) void handleConfirm(); - }} - /> - {t('nav.workDock.delegateSuffix')} -
- )} -
- -
- - -
+ {renderActions()} +
+ +
, document.body, diff --git a/src/web-ui/src/app/components/WorkDock/WorkDock.scss b/src/web-ui/src/app/components/WorkDock/WorkDock.scss index dcfa875b..da066266 100644 --- a/src/web-ui/src/app/components/WorkDock/WorkDock.scss +++ b/src/web-ui/src/app/components/WorkDock/WorkDock.scss @@ -1,1188 +1,512 @@ /** - * WorkDock styles floating vertical session navigation panel. - * - * Three visual states: - * Default (idle) 36 px narrow pill, icon + badge, click to expand. - * Focus work 36 px vertical capsule with work icons; hover/focus expands. - * Expanded full-width overlay list panel. + * WorkDock mirrors the three-stage interaction in the approved visual: + * a quiet edge handle, a compact active-work rail, and a quick work switcher. */ -// -// Root container (shared positioning) -// - .work-dock { - --work-dock-expanded-width: min(216px, calc(100vw - 20px)); - --work-dock-inline-pad: var(--ds-space-2); - --work-dock-menu-bg: var(--color-bg-elevated, var(--ds-color-bg-elevated)); - --work-dock-menu-border: var(--border-subtle, var(--ds-color-border-subtle)); - --work-dock-menu-shadow: 0 4px 12px var(--ds-shadow-color-popover); + --work-dock-expanded-width: min(272px, calc(100vw - 16px)); + --work-dock-menu-bg: color-mix(in srgb, var(--ds-color-bg-elevated) 96%, transparent); + --work-dock-menu-border: color-mix(in srgb, var(--ds-color-border-subtle) 80%, transparent); + --work-dock-menu-shadow: + 0 12px 32px var(--ds-shadow-color-popover), + 0 2px 8px color-mix(in srgb, var(--ds-color-bg-app) 14%, transparent); position: fixed; - left: var(--ds-space-3); + left: 0; top: 50%; - transform: translateY(-50%); z-index: var(--ds-z-dropdown); display: flex; - flex-direction: column; - align-items: center; width: 36px; - max-height: 52px; + max-height: calc(100vh - var(--ds-space-8)); box-sizing: border-box; - contain: layout paint style; - will-change: transform, width, max-height; - animation: work-dock-appear 220ms cubic-bezier(0.22, 1, 0.36, 1) both; - transition: - width 180ms cubic-bezier(0.22, 1, 0.36, 1), - max-height 180ms cubic-bezier(0.22, 1, 0.36, 1), - border-radius 180ms cubic-bezier(0.22, 1, 0.36, 1), - box-shadow 160ms ease, - background 140ms ease; + transform: translateY(-50%); + animation: work-dock-enter 180ms var(--ds-easing-decelerate) both; - // Above full-screen scene surface while staying below full-window overlays. &--above-scene-chrome { z-index: var(--ds-z-dropdown); } - // Running state: vertical capsule showing running task avatars &--running { - width: 36px; - max-height: calc(100vh - 80px); - background: var(--work-dock-menu-bg); - border: 1px solid var(--work-dock-menu-border); - border-radius: 999px; - box-shadow: none; - overflow: hidden; - animation: work-dock-running-enter 260ms cubic-bezier(0.22, 1, 0.36, 1) both; - - &:hover, - &:focus-within { - width: min(224px, calc(100vw - 20px)); - border-radius: var(--ds-radius-md, 8px); - box-shadow: - var(--work-dock-menu-shadow), - 0 0 0 1px color-mix(in srgb, var(--ds-color-accent-500) 20%, transparent); - } + left: 0; + top: 50%; + width: 44px; } - // Expanded state: full list panel &--expanded { + left: var(--ds-space-2); width: var(--work-dock-expanded-width); - max-height: calc(100vh - 48px); - align-items: stretch; - background: var(--work-dock-menu-bg); - border: 1px solid var(--work-dock-menu-border); - border-radius: var(--ds-radius-md, 8px); - box-shadow: var(--work-dock-menu-shadow); + min-height: 0; + max-height: min(420px, calc(100vh - 16px)); overflow: hidden; - display: flex; flex-direction: column; - animation: none; + border: 1px solid var(--work-dock-menu-border); + border-radius: var(--ds-radius-2xl); + background: var(--work-dock-menu-bg); + box-shadow: var(--work-dock-menu-shadow); + backdrop-filter: blur(18px) saturate(1.05); + -webkit-backdrop-filter: blur(18px) saturate(1.05); + transform-origin: left center; + animation: work-dock-panel-enter 180ms var(--ds-easing-decelerate) both; } - } -// -// Idle collapsed pill trigger -// - .work-dock__trigger { position: relative; - flex-direction: column; - gap: 4px; - width: 30px; - min-height: 48px; - padding: 7px 0; - border: 1px solid transparent; - border-radius: 9999px; - background: var(--ds-color-bg-app); + z-index: var(--ds-z-raised); + width: 36px; + min-width: 36px; + height: 36px; + min-height: 36px; + padding: 0; + border: 0; + border-radius: 0; + background: transparent; color: var(--ds-color-text-muted); - // Idle: flat no drop shadow (reads as docked, not a floating chip) box-shadow: none; + overflow: visible; + transform: none; transition: - color var(--ds-motion-fast) var(--ds-easing-standard), - background var(--ds-motion-fast) var(--ds-easing-standard), - box-shadow var(--ds-motion-fast) var(--ds-easing-standard), - transform var(--ds-motion-fast) var(--ds-easing-standard); + color var(--ds-motion-fast) var(--ds-easing-standard); &.icon-btn:hover:not(:disabled), - &:hover { + &:hover, + &:focus-visible { color: var(--ds-color-text-primary); - border-color: color-mix(in srgb, var(--ds-color-border-subtle) 62%, transparent); - background: var(--ds-color-bg-elevated); - box-shadow: - 0 10px 24px color-mix(in srgb, var(--ds-color-bg-app) 36%, transparent), - 0 22px 58px color-mix(in srgb, var(--ds-color-bg-app) 30%, transparent); - transform: translateX(2px); + background: transparent; + transform: none; } &:focus-visible { - border-color: color-mix(in srgb, var(--ds-color-accent-500) 42%, transparent); - background: var(--ds-color-bg-elevated); - box-shadow: - 0 10px 24px color-mix(in srgb, var(--ds-color-bg-app) 36%, transparent), - 0 22px 58px color-mix(in srgb, var(--ds-color-bg-app) 30%, transparent); - outline: 2px solid var(--ds-color-accent-200); - outline-offset: 2px; - } - - &:active { - transform: translateX(1px) scale(0.97); - } - - :root[data-theme-type='dark'] & { - box-shadow: none; - } - - :root[data-theme-type='dark'] &.icon-btn:hover:not(:disabled), - :root[data-theme-type='dark'] &:hover, - :root[data-theme-type='dark'] &:focus-visible { - background: var(--ds-color-bg-elevated); - box-shadow: - 0 12px 28px color-mix(in srgb, black 44%, transparent), - 0 26px 64px color-mix(in srgb, black 38%, transparent); + outline: 2px solid var(--ds-focus-outline); + outline-offset: -2px; } } -.work-dock__whisper { +.work-dock__trigger-surface { position: absolute; - left: calc(100% + 8px); - top: 6px; - z-index: var(--ds-z-raised); - display: inline-flex; - align-items: center; - gap: 6px; - width: max-content; - max-width: 190px; - min-height: 28px; - padding: 0 10px; - border: 1px solid color-mix(in srgb, var(--ds-color-border-subtle) 72%, transparent); - border-radius: 999px; - background: color-mix(in srgb, var(--ds-color-bg-elevated) 94%, transparent); - color: var(--ds-color-text-secondary); - box-shadow: - 0 4px 12px color-mix(in srgb, var(--ds-color-bg-app) 12%, transparent), - 0 14px 32px color-mix(in srgb, var(--ds-color-bg-app) 18%, transparent); - backdrop-filter: blur(14px) saturate(1.08); - -webkit-backdrop-filter: blur(14px) saturate(1.08); - font-size: 11px; - font-weight: 500; - line-height: 1.25; - white-space: nowrap; - pointer-events: none; - animation: work-dock-whisper-in 240ms cubic-bezier(0.22, 1, 0.36, 1) both; - - &--waiting { - color: var(--ds-color-warning); - border-color: color-mix(in srgb, var(--ds-color-warning) 26%, transparent); - background: color-mix(in srgb, var(--ds-color-warning) 9%, var(--ds-color-bg-elevated)); - } - - &--done { - color: var(--ds-color-success); - border-color: color-mix(in srgb, var(--ds-color-success) 24%, transparent); - background: color-mix(in srgb, var(--ds-color-success) 8%, var(--ds-color-bg-elevated)); - } - - &--button { - font: inherit; - pointer-events: auto; - cursor: pointer; - border-radius: 999px; - transition: - transform var(--ds-motion-fast) var(--ds-easing-standard), - background var(--ds-motion-fast) var(--ds-easing-standard), - border-color var(--ds-motion-fast) var(--ds-easing-standard); - - &:hover { - transform: translateX(2px); - border-color: color-mix(in srgb, var(--ds-color-success) 34%, transparent); - background: color-mix(in srgb, var(--ds-color-success) 12%, var(--ds-color-bg-elevated)); - } - - &:focus-visible { - outline: 2px solid var(--ds-color-accent-200); - outline-offset: 2px; - } - } -} - -// -// Running card panel -// - -.work-dock__running-panel { - display: flex; - flex-direction: column; - width: 100%; - contain: layout paint style; - box-shadow: none; - transition: box-shadow var(--ds-motion-fast) var(--ds-easing-standard); - - .work-dock--running:is(:hover, :focus-within) & { - box-shadow: inset 0 1px 0 color-mix(in srgb, var(--ds-color-text-primary) 6%, transparent); - } -} - -// Header: label + count badge -.work-dock__running-hd { - display: flex; - align-items: center; - justify-content: flex-start; - min-height: 0; - max-height: 0; - padding: 0 8px; - flex-shrink: 0; - gap: var(--ds-space-2); - opacity: 0; - overflow: hidden; - transition: - max-height var(--ds-motion-fast) var(--ds-easing-standard), - padding var(--ds-motion-fast) var(--ds-easing-standard), - gap var(--ds-motion-fast) var(--ds-easing-standard), - opacity var(--ds-motion-fast) var(--ds-easing-standard); - - .work-dock--running:is(:hover, :focus-within) & { - min-height: 28px; - max-height: 32px; - padding: 7px 8px 5px; - opacity: 1; - } -} - -.work-dock__running-hd-label { - flex: 1 1 auto; - min-width: 0; - font-size: 10px; - font-weight: 600; - letter-spacing: 0.04em; - text-transform: uppercase; - color: var(--ds-color-text-muted); - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - max-width: none; - opacity: 1; - transform: none; - transition: - max-width var(--ds-motion-fast) var(--ds-easing-standard), - opacity var(--ds-motion-fast) var(--ds-easing-standard), - transform var(--ds-motion-fast) var(--ds-easing-standard); -} - -.work-dock__running-count { + left: 0; + top: 4px; display: inline-flex; + width: 28px; + height: 28px; align-items: center; justify-content: center; - min-width: 16px; - height: 16px; - padding: 0 4px; - border-radius: 999px; - background: color-mix(in srgb, var(--ds-color-accent-500) 18%, transparent); - color: var(--ds-color-accent-600); - font-size: 9px; - font-weight: 700; - flex-shrink: 0; - transition: - opacity var(--ds-motion-fast) var(--ds-easing-standard), - transform var(--ds-motion-fast) var(--ds-easing-standard); -} - -// Row list wrapper -.work-dock__running-rows { - display: flex; - flex-direction: column; - align-items: center; - min-height: 0; - max-height: calc(100vh - 90px); - overflow-y: auto; - overflow-x: hidden; - padding: 5px; - gap: 2px; - transition: - max-height var(--ds-motion-fast) var(--ds-easing-standard), - padding var(--ds-motion-fast) var(--ds-easing-standard); - - .work-dock--running:is(:hover, :focus-within) & { - align-items: stretch; - max-height: calc(100vh - 128px); - padding: 2px 4px 4px; - } - - > .work-dock__running-row-wrap { - animation: work-dock-row-enter 280ms cubic-bezier(0.22, 1, 0.36, 1) both; - - @for $i from 1 through 10 { - &:nth-child(#{$i}) { - animation-delay: #{($i - 1) * 40}ms; - } - } - } - - &::-webkit-scrollbar { - width: 3px; - } - - &::-webkit-scrollbar-track { - background: transparent; - } - - &::-webkit-scrollbar-thumb { - background: color-mix(in srgb, var(--work-dock-tone, var(--ds-color-accent-500)) 28%, transparent); - border-radius: 2px; - } -} - -.work-dock__running-row-wrap { - position: relative; - display: flex; - align-items: center; - justify-content: center; - width: 100%; - min-width: 0; - gap: 0; - transition: - background var(--ds-motion-fast) var(--ds-easing-standard), - transform var(--ds-motion-fast) var(--ds-easing-standard); -} - -// Individual task row -.work-dock__running-row { - display: flex; - align-items: center; - justify-content: center; - gap: 0; - height: 28px; - padding: 0; - border: none; - border-radius: 999px; - background: transparent; - cursor: pointer; - color: var(--ds-color-text-secondary); - width: 100%; - min-width: 0; - text-align: left; - overflow: hidden; - transition: - gap var(--ds-motion-fast) var(--ds-easing-standard), - height var(--ds-motion-fast) var(--ds-easing-standard), - padding var(--ds-motion-fast) var(--ds-easing-standard), - border-radius var(--ds-motion-fast) var(--ds-easing-standard), - color var(--ds-motion-fast) var(--ds-easing-standard), - background var(--ds-motion-fast) var(--ds-easing-standard); - - &--failed { - overflow: visible; - } - - .work-dock--running:is(:hover, :focus-within) & { - justify-content: flex-start; - gap: 7px; - height: 34px; - padding: 0 78px 0 6px; - border-radius: 7px; - } - - &:hover { - color: var(--ds-color-text-primary); - background: var(--ds-color-element-soft); - } - - // Focused / currently-viewed session - &.is-active { - color: var(--ds-color-text-primary); - background: transparent; - } -} - -.work-dock__running-row-cancel { - width: 0; - min-width: 0; - height: 32px; - border-radius: 7px; - color: var(--ds-color-warning); - opacity: 0; - overflow: hidden; - transition: - width var(--ds-motion-fast) var(--ds-easing-standard), - opacity var(--ds-motion-fast) var(--ds-easing-standard), - color var(--ds-motion-fast) var(--ds-easing-standard), - background var(--ds-motion-fast) var(--ds-easing-standard); - - .work-dock--running:is(:hover, :focus-within) & { - width: 22px; - min-width: 22px; - opacity: 1; - } - - &:hover { - color: color-mix(in srgb, var(--ds-color-warning) 88%, white); - background: color-mix(in srgb, var(--ds-color-warning) 18%, transparent); - } - -} - -.work-dock__running-row-cancel-icon { + border: 1px solid var(--work-dock-menu-border); + border-radius: var(--ds-radius-full); + background: color-mix(in srgb, var(--ds-color-bg-elevated) 92%, transparent); + box-shadow: 0 4px 12px color-mix(in srgb, var(--ds-shadow-color-popover) 40%, transparent); color: inherit; - flex-shrink: 0; -} - -@keyframes work-dock-row-enter { - from { opacity: 0; transform: translateX(-10px); } - to { opacity: 1; transform: translateX(0); } -} - -.work-dock__running-row-copy { - flex: 1 1 auto; - min-width: 0; - overflow: hidden; - max-width: 0; - opacity: 0; - transform: translateX(-4px); - display: flex; - flex-direction: column; - gap: 1px; + backdrop-filter: blur(16px); + -webkit-backdrop-filter: blur(16px); + transform: translateX(-16px); transition: - max-width var(--ds-motion-fast) var(--ds-easing-standard), - opacity var(--ds-motion-fast) var(--ds-easing-standard), + background var(--ds-motion-fast) var(--ds-easing-standard), transform var(--ds-motion-fast) var(--ds-easing-standard); - - .work-dock--running:is(:hover, :focus-within) & { - max-width: 128px; - opacity: 1; - transform: none; - } - } -// Task title label inside each row -.work-dock__running-row-title { - display: block; - min-width: 0; - font-size: 11.5px; - font-weight: 500; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - line-height: 1.18; +.work-dock__trigger:hover .work-dock__trigger-surface, +.work-dock__trigger:focus-visible .work-dock__trigger-surface { + background: var(--ds-color-bg-elevated); + transform: translateX(-10px); } -.work-dock__running-row-actions { +.work-dock__idle-hint { position: absolute; - right: 5px; + left: 20px; top: 50%; - z-index: var(--ds-z-local); - display: flex; + display: inline-flex; + width: max-content; align-items: center; - gap: 2px; - padding-left: 20px; - background: transparent; + gap: 6px; + color: var(--ds-color-text-muted); + font-size: var(--ds-font-size-2xs); + line-height: 1; opacity: 0; pointer-events: none; - transform: translate(6px, -50%) scale(0.98); + transform: translate(-4px, -50%); transition: opacity var(--ds-motion-fast) var(--ds-easing-standard), transform var(--ds-motion-fast) var(--ds-easing-standard); - .work-dock__running-row-wrap:is(:hover, :focus-within) & { - opacity: 1; - pointer-events: auto; - transform: translate(0, -50%) scale(1); + &::before { + content: ''; + display: block; + width: 40px; + height: 1px; + background: linear-gradient(90deg, var(--ds-color-border-subtle), transparent); } } -.work-dock__running-row-action { - width: 22px; - height: 22px; - color: var(--ds-color-text-muted); - background: transparent; - border: 1px solid transparent; - box-shadow: none; - - &:hover { - color: var(--ds-color-text-primary); - background: var(--ds-color-element-medium); - } - - &--danger:hover { - color: var(--ds-color-warning); - background: color-mix(in srgb, var(--ds-color-warning) 12%, var(--ds-color-element-soft)); - } +.work-dock[data-state='idle']:hover .work-dock__idle-hint, +.work-dock[data-state='idle']:focus-within .work-dock__idle-hint { + opacity: 1; + transform: translate(0, -50%); } -.work-dock__running-row-status { - display: inline-flex; +.work-dock__running-panel { + position: relative; + display: flex; + width: 44px; + min-width: 44px; + height: 232px; + min-height: 232px; + flex-direction: column; align-items: center; - gap: 4px; - min-width: 0; - font-size: 9.5px; - font-weight: 500; - color: var(--ds-color-text-muted); - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - line-height: 1.1; - .ds-status-dot { - flex-shrink: 0; - } - - span:not(.ds-status-dot) { - min-width: 0; - overflow: hidden; - text-overflow: ellipsis; - } -} - -// Footer: "open full list" button -.work-dock__running-ft { - max-height: 0; - opacity: 0; + justify-content: center; overflow: hidden; - padding: 0 4px; - border-top: 1px solid transparent; - transition: - max-height var(--ds-motion-fast) var(--ds-easing-standard), - opacity var(--ds-motion-fast) var(--ds-easing-standard), - padding var(--ds-motion-fast) var(--ds-easing-standard), - border-color var(--ds-motion-fast) var(--ds-easing-standard); - - .work-dock--running:is(:hover, :focus-within) & { - max-height: 32px; - opacity: 1; - padding: 3px 6px 5px; - border-top-color: var(--ds-color-border-subtle); - } + padding: 24px 4px 24px 1px; + border: 1px solid var(--work-dock-menu-border); + border-left: 0; + border-radius: 0 100% 100% 0 / 0 50% 50% 0; + border-color: color-mix(in srgb, var(--work-dock-menu-border) 56%, transparent); + background: color-mix(in srgb, var(--work-dock-menu-bg) 60%, transparent); + box-shadow: 3px 5px 14px color-mix(in srgb, var(--ds-shadow-color-popover) 14%, transparent); + backdrop-filter: blur(10px) saturate(1.01); + -webkit-backdrop-filter: blur(10px) saturate(1.01); } -.work-dock__running-actions { +.work-dock__running-rows { + position: relative; + z-index: var(--ds-z-raised); display: flex; - width: 100%; + flex: 0 0 auto; + flex-direction: column; + align-items: center; + gap: 3px; + overflow: visible; + padding: 0; + transform: translateX(-2px); } -.work-dock__open-list-action { - display: flex; +.work-dock__running-row { + position: relative; + display: inline-flex; + width: 28px; + height: 28px; + min-height: 28px; align-items: center; - gap: 0; - width: 30px; - height: 24px; + justify-content: center; padding: 0; - border: none; - border-radius: 6px; + border: 0; + border-radius: var(--ds-radius-full); background: transparent; + color: var(--ds-color-text-secondary); cursor: pointer; - color: var(--ds-color-text-muted); - font-size: 10.5px; - font-weight: 500; + overflow: visible; transition: - width var(--ds-motion-fast) var(--ds-easing-standard), color var(--ds-motion-fast) var(--ds-easing-standard), - background var(--ds-motion-fast) var(--ds-easing-standard); - - &:hover { - color: var(--ds-color-text-secondary); - background: var(--ds-color-element-soft); - } - - &--center:hover { - color: var(--ds-color-accent-500); - background: color-mix(in srgb, var(--ds-color-accent-500) 10%, transparent); - } - - span { - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - max-width: 0; - opacity: 0; - transition: - max-width var(--ds-motion-fast) var(--ds-easing-standard), - opacity var(--ds-motion-fast) var(--ds-easing-standard); - } - - &--full { - width: 100%; - justify-content: center; - gap: 5px; + background var(--ds-motion-fast) var(--ds-easing-standard), + transform var(--ds-motion-fast) var(--ds-easing-standard); - span { - max-width: none; - opacity: 1; - } + &:hover, + &.is-active { + color: var(--ds-color-text-primary); + background: color-mix(in srgb, var(--ds-color-accent-500) 9%, transparent); } - .work-dock--running:is(:hover, :focus-within) & { - width: 100%; - gap: 5px; - padding: 0 6px; - justify-content: center; + &:hover { + transform: translateX(2px) scale(1.02); } - .work-dock--running:is(:hover, :focus-within) & span { - max-width: none; - opacity: 1; + &:focus-visible { + outline: 2px solid var(--ds-focus-outline); + outline-offset: 1px; } } -// -// Mode avatar circle (running rows) unified tone (mode shown in list copy / badges) -// - .work-dock__mode-avatar { position: relative; - display: flex; - align-items: center; - justify-content: center; + display: inline-flex; width: 24px; height: 24px; - flex-shrink: 0; - border-radius: 50%; - overflow: hidden; - background: color-mix(in srgb, var(--ds-color-element-medium) 88%, transparent); - color: var(--ds-color-text-secondary); - transition: background var(--ds-motion-fast) var(--ds-easing-standard); - - .work-dock__running-row.is-active & { - background: color-mix(in srgb, var(--work-dock-tone, var(--ds-color-accent-500)) 14%, var(--ds-color-element-soft)); - color: var(--work-dock-tone, var(--ds-color-accent-500)); - } - - .work-dock__running-row:not(.is-active):hover & { - background: color-mix(in srgb, var(--ds-color-element-medium) 100%, transparent); - } - transition: transform var(--ds-motion-fast) var(--ds-easing-standard); + align-items: center; + justify-content: center; + flex: 0 0 24px; + border: 1px solid color-mix(in srgb, var(--ds-color-border-subtle) 72%, transparent); + border-radius: var(--ds-radius-full); + color: inherit; + background: color-mix(in srgb, var(--ds-color-bg-elevated) 82%, transparent); + box-shadow: 0 2px 6px color-mix(in srgb, var(--ds-shadow-color-popover) 16%, transparent); + overflow: visible; - // Spinning arc execution affordance (same hue for all modes) - &::before, &::after { content: ''; position: absolute; + right: 1px; + bottom: 1px; + z-index: var(--ds-z-raised); display: none; + width: 6px; + height: 6px; + border-radius: var(--ds-radius-full); + background: var(--work-dock-tone, var(--ds-color-text-muted)); + box-shadow: 0 0 0 2px var(--work-dock-menu-bg); pointer-events: none; } - // Lift on row hover - .work-dock__running-row:hover & { - transform: scale(1.1); + &--running::after, + &--waiting-user::after, + &--blocked::after, + &--failed::after { + display: block; } - &.is-focused { - --work-dock-pixel-dim: color-mix(in srgb, var(--work-dock-tone, var(--ds-color-accent-500)) 20%, transparent); - --work-dock-pixel-mid: color-mix(in srgb, var(--work-dock-tone, var(--ds-color-accent-500)) 54%, transparent); - --work-dock-pixel-bright: var(--work-dock-tone, var(--ds-color-accent-500)); - - &::before { - content: ''; - position: absolute; - width: 3px; - height: 3px; - left: 5px; - top: 5px; - border: none; - border-radius: 1px; - background: var(--work-dock-pixel-bright); - box-shadow: - 5px -4px 0 var(--work-dock-pixel-dim), - 5px 0 0 var(--work-dock-pixel-mid), - 10px 0 0 var(--work-dock-pixel-dim), - -4px 5px 0 var(--work-dock-pixel-dim), - 0 5px 0 var(--work-dock-pixel-mid), - 5px 5px 0 var(--work-dock-pixel-bright), - 10px 5px 0 var(--work-dock-pixel-mid), - 14px 5px 0 var(--work-dock-pixel-dim), - 0 10px 0 var(--work-dock-pixel-dim), - 5px 10px 0 var(--work-dock-pixel-mid), - 10px 10px 0 var(--work-dock-pixel-dim), - 5px 14px 0 var(--work-dock-pixel-dim); - animation: work-dock-pixel-bloom 2.4s steps(1, end) infinite; - opacity: 1; - pointer-events: none; - } - } - - &--pixel { - --work-dock-pixel-dim: color-mix(in srgb, var(--work-dock-tone, var(--ds-color-accent-500)) 20%, transparent); - --work-dock-pixel-mid: color-mix(in srgb, var(--work-dock-tone, var(--ds-color-accent-500)) 54%, transparent); - --work-dock-pixel-bright: var(--work-dock-tone, var(--ds-color-accent-500)); - background: color-mix(in srgb, var(--work-dock-tone, var(--ds-color-accent-500)) 12%, var(--ds-color-element-soft)); - color: var(--work-dock-tone, var(--ds-color-accent-500)); - - &::before { - display: block; - content: ''; - position: absolute; - width: 3px; - height: 3px; - left: 5px; - top: 5px; - border: none; - border-radius: 1px; - background: var(--work-dock-pixel-bright); - box-shadow: - 5px -4px 0 var(--work-dock-pixel-dim), - 5px 0 0 var(--work-dock-pixel-mid), - 10px 0 0 var(--work-dock-pixel-dim), - -4px 5px 0 var(--work-dock-pixel-dim), - 0 5px 0 var(--work-dock-pixel-mid), - 5px 5px 0 var(--work-dock-pixel-bright), - 10px 5px 0 var(--work-dock-pixel-mid), - 14px 5px 0 var(--work-dock-pixel-dim), - 0 10px 0 var(--work-dock-pixel-dim), - 5px 10px 0 var(--work-dock-pixel-mid), - 10px 10px 0 var(--work-dock-pixel-dim), - 5px 14px 0 var(--work-dock-pixel-dim); - animation: work-dock-pixel-bloom 2.4s steps(1, end) infinite; - opacity: 1; - pointer-events: none; - } - - svg { - opacity: 0; - } + &--running::after { + animation: work-dock-status-pulse 1.8s ease-in-out infinite; } - &--waiting-user, - &--blocked { - background: color-mix(in srgb, var(--work-dock-tone, var(--ds-color-accent-500)) 12%, var(--ds-color-element-soft)); - color: var(--work-dock-tone, var(--ds-color-accent-500)); - } - - &--waiting-user { - &::before { - display: block; - inset: 1px; - border: 1px solid color-mix(in srgb, var(--work-dock-tone, var(--ds-color-warning)) 44%, transparent); - border-radius: inherit; - animation: work-dock-status-breathe 1.9s ease-in-out infinite; - } - - &::after { - display: block; - width: 5px; - height: 5px; - top: -1px; - right: -1px; - border-radius: var(--ds-radius-full); - background: var(--work-dock-tone, var(--ds-color-warning)); - box-shadow: 0 0 0 2px color-mix(in srgb, var(--work-dock-tone, var(--ds-color-warning)) 16%, transparent); - } - } - - &--blocked { - &::after { - display: block; - left: 5px; - right: 5px; - bottom: 4px; - height: 2px; - border-radius: var(--ds-radius-full); - background: var(--work-dock-tone, var(--ds-color-warning)); - box-shadow: 5px 0 0 color-mix(in srgb, var(--ds-color-bg-elevated) 88%, transparent); - } - } - - &--failed { - overflow: visible; - background: transparent; - color: var(--ds-color-text-secondary); - - &::before { - display: none; - } - - &::after { - display: block; - width: 6px; - height: 6px; - right: 1px; - bottom: 1px; - z-index: var(--ds-z-raised); - border-radius: var(--ds-radius-full); - background: var(--work-dock-tone, var(--ds-color-danger)); - box-shadow: 0 0 0 1px var(--work-dock-menu-bg); - opacity: 1; - } - - .work-dock__running-row.is-active & { - background: transparent; - color: var(--ds-color-text-secondary); - } - } - - svg { - flex-shrink: 0; - position: relative; - z-index: var(--ds-z-local); - transition: opacity var(--ds-motion-fast) var(--ds-easing-standard); - } - - &.is-focused svg { - opacity: 0; - } - - .work-dock__running-row:hover &, - .work-dock__running-row.is-active & { - background: transparent; + &--failed::after { + right: 1px; + bottom: 1px; + box-shadow: 0 0 0 1px var(--work-dock-menu-bg); } } -@keyframes work-dock-arc-spin { - from { transform: rotate(0deg); } - to { transform: rotate(360deg); } -} +.work-dock__arc-trigger { + position: absolute; + inset: 0; + z-index: var(--ds-z-base); + width: 100%; + min-width: 0; + height: 100%; + min-height: 0; + padding: 0; + border: 0; + border-radius: inherit; + background: transparent; -@keyframes work-dock-pixel-bloom { - 0% { - background: var(--work-dock-pixel-bright); - box-shadow: - 5px -4px 0 var(--work-dock-pixel-dim), - 5px 0 0 var(--work-dock-pixel-mid), - 10px 0 0 var(--work-dock-pixel-dim), - -4px 5px 0 var(--work-dock-pixel-dim), - 0 5px 0 var(--work-dock-pixel-mid), - 5px 5px 0 var(--work-dock-pixel-bright), - 10px 5px 0 var(--work-dock-pixel-mid), - 14px 5px 0 var(--work-dock-pixel-dim), - 0 10px 0 var(--work-dock-pixel-dim), - 5px 10px 0 var(--work-dock-pixel-mid), - 10px 10px 0 var(--work-dock-pixel-dim), - 5px 14px 0 var(--work-dock-pixel-dim); - } - 18% { - background: var(--work-dock-pixel-bright); - box-shadow: - 5px -4px 0 var(--work-dock-pixel-bright), - 5px 0 0 var(--work-dock-pixel-bright), - 10px 0 0 var(--work-dock-pixel-mid), - -4px 5px 0 var(--work-dock-pixel-mid), - 0 5px 0 var(--work-dock-pixel-bright), - 5px 5px 0 var(--work-dock-pixel-bright), - 10px 5px 0 var(--work-dock-pixel-mid), - 14px 5px 0 var(--work-dock-pixel-dim), - 0 10px 0 var(--work-dock-pixel-dim), - 5px 10px 0 var(--work-dock-pixel-mid), - 10px 10px 0 var(--work-dock-pixel-dim), - 5px 14px 0 var(--work-dock-pixel-dim); - } - 36% { - background: var(--work-dock-pixel-mid); - box-shadow: - 5px -4px 0 var(--work-dock-pixel-mid), - 5px 0 0 var(--work-dock-pixel-mid), - 10px 0 0 var(--work-dock-pixel-bright), - -4px 5px 0 var(--work-dock-pixel-dim), - 0 5px 0 var(--work-dock-pixel-mid), - 5px 5px 0 var(--work-dock-pixel-bright), - 10px 5px 0 var(--work-dock-pixel-bright), - 14px 5px 0 var(--work-dock-pixel-bright), - 0 10px 0 var(--work-dock-pixel-dim), - 5px 10px 0 var(--work-dock-pixel-mid), - 10px 10px 0 var(--work-dock-pixel-mid), - 5px 14px 0 var(--work-dock-pixel-dim); - } - 54% { - background: var(--work-dock-pixel-bright); - box-shadow: - 5px -4px 0 var(--work-dock-pixel-dim), - 5px 0 0 var(--work-dock-pixel-mid), - 10px 0 0 var(--work-dock-pixel-dim), - -4px 5px 0 var(--work-dock-pixel-dim), - 0 5px 0 var(--work-dock-pixel-mid), - 5px 5px 0 var(--work-dock-pixel-bright), - 10px 5px 0 var(--work-dock-pixel-mid), - 14px 5px 0 var(--work-dock-pixel-dim), - 0 10px 0 var(--work-dock-pixel-mid), - 5px 10px 0 var(--work-dock-pixel-bright), - 10px 10px 0 var(--work-dock-pixel-mid), - 5px 14px 0 var(--work-dock-pixel-bright); - } - 72% { - background: var(--work-dock-pixel-mid); - box-shadow: - 5px -4px 0 var(--work-dock-pixel-dim), - 5px 0 0 var(--work-dock-pixel-mid), - 10px 0 0 var(--work-dock-pixel-dim), - -4px 5px 0 var(--work-dock-pixel-bright), - 0 5px 0 var(--work-dock-pixel-bright), - 5px 5px 0 var(--work-dock-pixel-bright), - 10px 5px 0 var(--work-dock-pixel-bright), - 14px 5px 0 var(--work-dock-pixel-bright), - 0 10px 0 var(--work-dock-pixel-dim), - 5px 10px 0 var(--work-dock-pixel-mid), - 10px 10px 0 var(--work-dock-pixel-dim), - 5px 14px 0 var(--work-dock-pixel-dim); - } - 88%, - 100% { - background: var(--work-dock-pixel-bright); - box-shadow: - 5px -4px 0 var(--work-dock-pixel-dim), - 5px 0 0 var(--work-dock-pixel-mid), - 10px 0 0 var(--work-dock-pixel-dim), - -4px 5px 0 var(--work-dock-pixel-dim), - 0 5px 0 var(--work-dock-pixel-mid), - 5px 5px 0 var(--work-dock-pixel-bright), - 10px 5px 0 var(--work-dock-pixel-mid), - 14px 5px 0 var(--work-dock-pixel-dim), - 0 10px 0 var(--work-dock-pixel-dim), - 5px 10px 0 var(--work-dock-pixel-mid), - 10px 10px 0 var(--work-dock-pixel-dim), - 5px 14px 0 var(--work-dock-pixel-dim); + &:hover { + background: color-mix(in srgb, var(--ds-color-accent-500) 2%, transparent); } -} -@keyframes work-dock-status-breathe { - 0%, - 100% { - opacity: 0.5; - transform: scale(0.94); - } - 50% { - opacity: 1; - transform: scale(1.05); + &:focus-visible { + outline: none; + box-shadow: inset 0 0 0 2px var(--ds-focus-outline); } } -@keyframes work-dock-whisper-in { - from { opacity: 0; transform: translateX(-8px) scale(0.98); } - to { opacity: 1; transform: translateX(0) scale(1); } +.work-dock__arc-trigger-label { + position: absolute; + width: 1px; + height: 1px; + overflow: hidden; + clip-path: inset(50%); + white-space: nowrap; } -// -// Expanded panel parts -// - -.work-dock__title-bar { - display: flex; +.work-dock__overflow-count { + position: absolute; + right: -2px; + top: -3px; + z-index: var(--ds-z-raised); + display: inline-flex; + min-width: 15px; + height: 15px; align-items: center; - gap: var(--ds-space-1); - min-height: 34px; - padding: 6px var(--work-dock-inline-pad); - flex-shrink: 0; - min-width: 0; - box-sizing: border-box; - overflow: hidden; + justify-content: center; + padding: 0 3px; + border-radius: var(--ds-radius-full); + background: var(--ds-color-accent-500); + box-shadow: 0 0 0 2px var(--work-dock-menu-bg); + color: var(--ds-color-text-inverse); + font-size: var(--ds-font-size-2xs); + font-weight: var(--ds-font-weight-semibold); + line-height: 1; } -.work-dock__title-actions { +.work-dock__panel-header { display: flex; + min-height: 40px; align-items: center; - justify-content: flex-end; - gap: var(--ds-space-1); - margin-left: auto; + gap: var(--ds-space-2); + padding: 5px 6px 3px 10px; flex: 0 0 auto; } -.work-dock__title-bar .work-dock__search-input.search { - flex: 1 1 0%; +.work-dock__heading { + display: flex; min-width: 0; - width: auto; - overflow: hidden; + flex: 1 1 auto; + flex-direction: column; + gap: 2px; } -.work-dock__title-bar .work-dock__search-input.search .search__wrapper { - min-width: 0; - max-width: 100%; +.work-dock__title { + overflow: hidden; + color: var(--ds-color-text-primary); + font-size: var(--ds-font-size-base); + font-weight: var(--ds-font-weight-medium); + line-height: 1.25; + text-overflow: ellipsis; + white-space: nowrap; } -.work-dock__title-bar .search__input { - font-size: var(--ds-font-size-xs); - min-width: 0; +.work-dock__subtitle { + display: none; } -.work-dock__title-bar .work-dock__search--pill.search--small .search__wrapper { - border-radius: 9999px; - min-height: 26px; - padding: 1px 8px; - gap: 4px; +.work-dock__title-actions { + display: flex; + align-items: center; + gap: var(--ds-space-1); + flex: 0 0 auto; } .work-dock__icon-action { - width: 20px; - height: 20px; + width: 24px; + height: 24px; color: var(--ds-color-text-muted); &.is-pinned { color: var(--ds-color-accent-600); - background: transparent; - - &:hover { - color: var(--ds-color-accent-700); - background: transparent; - } + background: color-mix(in srgb, var(--ds-color-accent-500) 10%, transparent); } } -.work-dock__new-work-action { +.work-dock__search-row { + display: flex; min-width: 0; - max-width: calc(100% - 28px); - height: 24px; - padding: 0 8px; - gap: 4px; - color: var(--ds-color-text-secondary); - font-size: var(--ds-font-size-xs); - font-weight: 500; + padding: 0 8px 6px 10px; + flex: 0 0 auto; +} - svg { - flex-shrink: 0; - } +.work-dock__search-row .work-dock__search-input.search { + width: 100%; + min-width: 0; +} - span { - min-width: 0; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - } +.work-dock__search-row .work-dock__search--pill .search__wrapper { + min-height: 30px; + padding: 1px 8px; + border-radius: var(--ds-radius-full); + border-color: color-mix(in srgb, var(--ds-color-border-strong) 72%, transparent); + background: color-mix(in srgb, var(--ds-color-bg-app) 22%, transparent); } -.work-dock__footer { - display: flex; - align-items: center; - justify-content: space-between; - gap: var(--ds-space-1); - padding: var(--ds-space-1) var(--work-dock-inline-pad); - flex-shrink: 0; +.work-dock__search-row .search__input { + min-width: 0; + font-size: var(--ds-font-size-sm); +} + +.work-dock__search-row .search__prefix { + color: var(--ds-color-accent-500); +} + +.work-dock__search-row .search__icon { + width: 14px; + height: 14px; } .work-dock__list { - flex: 1; min-height: 0; - overflow-y: auto; + flex: 1 1 auto; overflow-x: hidden; - contain: layout paint style; - padding: var(--ds-space-1) var(--work-dock-inline-pad) var(--ds-space-2); + overflow-y: auto; + padding: 0 4px 4px; + overscroll-behavior: contain; + scrollbar-width: thin; + scrollbar-color: var(--ds-color-border-subtle) transparent; .work-list__list--filter-empty { - padding-left: 0; padding-right: 0; - } - - &::-webkit-scrollbar { width: 3px; } - &::-webkit-scrollbar-track { background: transparent; } - &::-webkit-scrollbar-thumb { - background: var(--ds-color-border-subtle); - border-radius: 2px; - } -} - -.work-dock__section { - display: flex; - flex-direction: column; - min-width: 0; - - & + & { - margin-top: var(--ds-space-2); - padding-top: var(--ds-space-1); - border-top: 1px solid var(--ds-color-border-subtle); + padding-left: 0; } } -.work-dock__section-header { +.work-dock__footer { display: flex; + min-height: 36px; align-items: center; justify-content: space-between; - gap: var(--ds-space-1); - min-height: 22px; - padding: 2px 2px 3px; - color: var(--ds-color-text-muted); - font-size: var(--ds-font-size-2xs); - font-weight: 600; - line-height: 1.2; - text-transform: uppercase; + gap: var(--ds-space-2); + padding: 2px 6px; + border-top: 1px solid var(--ds-color-border-subtle); + flex: 0 0 auto; } -.work-dock__section-toggle { +.work-dock__new-work-action { min-width: 0; - height: 20px; - padding: 0 4px; - gap: 2px; - color: var(--ds-color-text-muted); - font-size: var(--ds-font-size-2xs); - font-weight: 500; - text-transform: none; - - svg { - flex-shrink: 0; - } + height: 26px; + justify-content: flex-start; + gap: var(--ds-space-2); + padding: 0 var(--ds-space-2); + color: var(--ds-color-text-secondary); + font-size: var(--ds-font-size-sm); span { - min-width: 0; overflow: hidden; + min-width: 0; text-overflow: ellipsis; white-space: nowrap; } } -// -// Animations -// - -// Initial mount slide in from left edge -@keyframes work-dock-appear { +@keyframes work-dock-enter { from { opacity: 0; - transform: translateX(-10px) translateY(-50%); + transform: translate(-6px, -50%); } to { opacity: 1; - transform: translateX(0) translateY(-50%); + transform: translate(0, -50%); } } -// Idle running: morph from narrow pill to wider card -@keyframes work-dock-running-enter { - 0% { - opacity: 0.5; - transform: translateX(-4px) translateY(-50%); +@keyframes work-dock-panel-enter { + from { + opacity: 0; + transform: translate(-5px, -50%) scale(0.985); } - 60% { + to { opacity: 1; - } - 100% { - transform: translateX(0) translateY(-50%); + transform: translate(0, -50%) scale(1); } } -// Collapsed expanded list panel -@keyframes work-dock-preview-content-in { - from { - opacity: 0; - transform: translateX(-4px); +@keyframes work-dock-status-pulse { + 0%, + 100% { + opacity: 0.66; + transform: scale(0.9); } - to { + 50% { opacity: 1; - transform: translateX(0); + transform: scale(1.08); } } +@media (max-width: 640px) { + .work-dock { + --work-dock-expanded-width: min(272px, calc(100vw - 16px)); + + &--running { + left: 0; + } + + &--expanded { + left: var(--ds-space-2); + } + } + + .work-dock__panel-header { + padding-right: 6px; + padding-left: 10px; + } -// -// Reduced motion overrides -// + .work-dock__search-row { + padding-right: 8px; + padding-left: 10px; + } +} @media (prefers-reduced-motion: reduce) { .work-dock, .work-dock--expanded, - .work-dock--running, .work-dock__trigger, - .work-dock__icon-action, - .work-dock__open-list-action, - .work-dock__whisper, - .work-dock__mode-avatar, - .work-dock__title-bar, - .work-dock__list, - .work-dock__footer, - .work-dock__running-row { - transition: none; - animation: none; - } - - .work-dock__mode-avatar::before, + .work-dock__idle-hint, + .work-dock__arc-trigger, + .work-dock__running-row, .work-dock__mode-avatar::after { animation: none; - border-top-color: transparent; - border-right-color: transparent; - } - - .work-dock__running-row:hover .work-dock__mode-avatar { - transform: none; + transition: none; } } diff --git a/src/web-ui/src/app/components/WorkDock/WorkDock.tsx b/src/web-ui/src/app/components/WorkDock/WorkDock.tsx index 2d8af9ce..73e9c91a 100644 --- a/src/web-ui/src/app/components/WorkDock/WorkDock.tsx +++ b/src/web-ui/src/app/components/WorkDock/WorkDock.tsx @@ -1,5 +1,5 @@ import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'; -import { ArrowRight, ChevronDown, Info, LayoutDashboard, ListChecks, Plus, XCircle } from 'lucide-react'; +import { LayoutDashboard, ListChecks, PanelLeftClose, Plus } from 'lucide-react'; import { Button, IconButton, @@ -11,7 +11,7 @@ import { useI18n } from '@/infrastructure/i18n'; import { useWorks } from '@/app/agentic-os/work/hooks/useWorks'; import { WorkIcon } from '@/app/agentic-os/work/presentation/WorkIcon'; import { useWorkStore } from '@/app/agentic-os/work/data/workStore'; -import { openWork, openWorkCenterHome, openWorkInCenter } from '@/app/agentic-os/work/navigation/openWork'; +import { openWork, openWorkCenterHome } from '@/app/agentic-os/work/navigation/openWork'; import type { WorkStatus } from '@/app/agentic-os/work/domain/workTypes'; import type { WorkProjection } from '@/app/agentic-os/work/projections/workProjection'; import { @@ -21,8 +21,6 @@ import { } from '@/app/agentic-os/work/domain/workClassification'; import { useWorkDockStore } from '@/app/stores/workDockStore'; import { useWorkspaceSurfaceStore } from '@/app/navigation/workspaceSurfaceStore'; -import { notificationService } from '@/shared/notification-system'; -import { createLogger } from '@/shared/utils/logger'; import WorkList from '../WorkList/WorkList'; import { getWorkToneValue, @@ -31,7 +29,6 @@ import { import { NewWorkDialog } from './NewWorkDialog'; import './WorkDock.scss'; -const log = createLogger('WorkDock'); const RUNNING_WORK_COLLAPSED_LIMIT = 5; const STORAGE_KEY = 'sparo.workDock.expanded'; const STORAGE_PINNED = 'sparo.workDock.pinned'; @@ -72,26 +69,17 @@ function isDockVisibleStatus(status: WorkStatus): boolean { return isWorkRunningStatus(status) || isWorkAttentionStatus(status); } -function isCancellableStatus(status: WorkStatus): boolean { - return status === 'running' || status === 'waiting_user' || status === 'blocked'; -} - -function isPixelStatus(status: WorkStatus): boolean { - return status === 'running'; -} - const WorkDock: React.FC = () => { const { t } = useI18n('common'); const activeSurface = useWorkspaceSurfaceStore((state) => state.activeSurface); + const surfaceContext = useWorkspaceSurfaceStore((state) => state.surfaceContext); const workDockOpenNonce = useWorkDockStore((state) => state.workDockOpenNonce); const { works, projections } = useWorks(); const getWork = useWorkStore((state) => state.getWork); - const controlWork = useWorkStore((state) => state.controlWork); const [expanded, setExpanded] = useState(readExpandedFromStorage); const [pinned, setPinned] = useState(readPinnedFromStorage); const [surfaceExpanded, setSurfaceExpanded] = useState(false); - const [hoverExpanded, setHoverExpanded] = useState(false); const [listFilterQuery, setListFilterQuery] = useState(''); const [selectedListResultIndex, setSelectedListResultIndex] = useState(0); const [listResultCount, setListResultCount] = useState(0); @@ -119,25 +107,11 @@ const WorkDock: React.FC = () => { await openWork(record); }, [getWork, workById]); - const handleCancelWork = useCallback(async (work: WorkProjection) => { - try { - await controlWork({ locator: { scope: work.scope, workId: work.id }, action: 'cancel_current_execution' }); - } catch (error) { - log.error('Failed to cancel work from Work Dock', { workId: work.id, error }); - notificationService.error(t('nav.workDock.cancelFailed')); - } - }, [controlWork, t]); - - const handleOpenWorkDetails = useCallback((work: WorkProjection) => { - openWorkInCenter(work.id); - }, []); - const handleOpenWorkCenter = useCallback(() => { openWorkCenterHome(); }, []); const openWorkDock = useCallback(() => { - setHoverExpanded(false); if (activeSurface.kind === 'scene') { setSurfaceExpanded(true); return; @@ -147,7 +121,6 @@ const WorkDock: React.FC = () => { }, [activeSurface.kind]); const closeWorkDock = useCallback(() => { - setHoverExpanded(false); if (activeSurface.kind === 'scene') { setSurfaceExpanded(false); return; @@ -157,7 +130,6 @@ const WorkDock: React.FC = () => { }, [activeSurface.kind]); const toggleWorkDock = useCallback(() => { - setHoverExpanded(false); if (activeSurface.kind === 'scene') { setSurfaceExpanded((value) => !value); return; @@ -185,10 +157,6 @@ const WorkDock: React.FC = () => { if (!surfaceExpanded) setListFilterQuery(''); }, [surfaceExpanded]); - useEffect(() => { - if (!hoverExpanded) setListFilterQuery(''); - }, [hoverExpanded]); - useEffect(() => { setSelectedListResultIndex(0); }, [listFilterQuery]); @@ -218,12 +186,13 @@ const WorkDock: React.FC = () => { const isSessionSurface = activeSurface.kind === 'agentic-os-home' || activeSurface.kind === 'session'; const suppressInWorkCenter = activeSurface.kind === 'scene' && activeSurface.sceneId === 'work-center'; const showExpandedPanel = !suppressInWorkCenter && ( - hoverExpanded || (isSessionSurface ? (expanded || newWorkDialogOpen) : surfaceExpanded) + isSessionSurface ? (expanded || newWorkDialogOpen) : surfaceExpanded ); const liftAboveSurface = activeSurface.kind === 'scene'; const showCollapsedDock = isSessionSurface && !suppressInWorkCenter; const showRunningCollapsedDock = !suppressInWorkCenter && !showExpandedPanel && runningCount > 0; const isSearchingWorks = listFilterQuery.trim().length > 0; + const activeWorkId = surfaceContext?.kind === 'work' ? surfaceContext.workId : null; useEffect(() => { if (!showExpandedPanel || newWorkDialogOpen) return; @@ -232,7 +201,24 @@ const WorkDock: React.FC = () => { }); }, [newWorkDialogOpen, showExpandedPanel]); + useEffect(() => { + if (!showExpandedPanel || newWorkDialogOpen) return; + const handleEscape = (event: KeyboardEvent) => { + if (event.key !== 'Escape') return; + event.preventDefault(); + closeWorkDock(); + }; + window.addEventListener('keydown', handleEscape); + return () => window.removeEventListener('keydown', handleEscape); + }, [closeWorkDock, newWorkDialogOpen, showExpandedPanel]); + const handleListSearchKeyDown = useCallback((event: React.KeyboardEvent) => { + if (event.key === 'Escape') { + event.preventDefault(); + closeWorkDock(); + return; + } + if (!listFilterQuery.trim() || listResultCount <= 0) return; if (event.key === 'ArrowDown') { @@ -257,7 +243,7 @@ const WorkDock: React.FC = () => { ); row?.click(); } - }, [listFilterQuery, listResultCount, selectedListResultIndex]); + }, [closeWorkDock, listFilterQuery, listResultCount, selectedListResultIndex]); useEffect(() => { if (!showExpandedPanel || pinned || newWorkDialogOpen) return; @@ -289,27 +275,18 @@ const WorkDock: React.FC = () => { ].filter(Boolean).join(' ')} aria-label={t('nav.workDock.label')} data-testid="work-dock" + data-state={showExpandedPanel ? 'expanded' : showRunningCollapsedDock ? 'active' : 'idle'} data-sparo-ignore-work-dock-outside - onMouseEnter={showRunningCollapsedDock ? () => setHoverExpanded(true) : undefined} - onMouseLeave={hoverExpanded ? () => setHoverExpanded(false) : undefined} - onFocus={showRunningCollapsedDock ? openWorkDock : undefined} > {showExpandedPanel ? ( <> -
- setListFilterQuery('')} - onKeyDown={handleListSearchKeyDown} - clearable - size="small" - enterToSearch={false} - inputAriaLabel={t('nav.workDock.searchPlaceholder')} - /> +
+
+ {t('nav.workDock.title')} + + {t('nav.workDock.subtitle', { count: runningCount })} + +
{ tooltipPlacement="top" > + + +
+
+ +
+ setListFilterQuery('')} + onKeyDown={handleListSearchKeyDown} + clearable + size="medium" + enterToSearch={false} + inputAriaLabel={t('nav.workDock.searchPlaceholder')} + />
-
+
@@ -350,7 +356,7 @@ const WorkDock: React.FC = () => { aria-label={t('nav.workDock.newWorkButton')} data-testid="work-dock-new-work" > - + {t('nav.workDock.newWorkButton')} { tooltipPlacement="top" data-testid="work-dock-open-center" > - +
setNewWorkDialogOpen(false)} /> ) : showRunningCollapsedDock ? ( -
-
- {t('nav.workDock.activeWorksGroupLabel')} - {runningCount} -
+
+ + ) : ( - - - + <> + + + + + + + {t('nav.workDock.idleHint')} + + )}
); diff --git a/src/web-ui/src/app/components/WorkList/WorkList.scss b/src/web-ui/src/app/components/WorkList/WorkList.scss index 099de5f2..1be1a43c 100644 --- a/src/web-ui/src/app/components/WorkList/WorkList.scss +++ b/src/web-ui/src/app/components/WorkList/WorkList.scss @@ -6,17 +6,17 @@ position: relative; display: flex; flex-direction: column; - gap: 1px; + gap: 0; margin: 0; - padding: 2px 0; + padding: 0; &--filter-empty { - padding: $size-gap-2 $size-gap-3; + padding: $size-gap-3; } } &__filter-empty { - padding: $size-gap-1 $size-gap-2; + padding: $size-gap-4 $size-gap-2; .ds-empty-state__image, .ds-empty-state__footer { @@ -25,7 +25,8 @@ .ds-empty-state__description { margin: 0; - font-size: var(--font-size-xs); + color: var(--ds-color-text-muted); + font-size: var(--ds-font-size-sm); } } @@ -33,16 +34,17 @@ display: flex; min-width: 0; flex-direction: column; + gap: 0; } &__group-label { display: flex; + min-height: 20px; align-items: center; - min-height: 18px; - padding: 4px 2px 2px; + padding: var(--ds-space-1) var(--ds-space-2); color: var(--ds-color-text-muted); @include eyebrow-label.ds-eyebrow-label( - $font-size: var(--font-size-2xs), + $font-size: var(--ds-font-size-2xs), $letter-spacing: 0.04em, $font-weight: 600 ); @@ -51,34 +53,38 @@ &__item { position: relative; display: flex; - align-items: center; - gap: 5px; width: 100%; - height: 28px; - border-radius: var(--ds-list-row-radius, var(--ds-radius-full)); + min-height: 32px; + align-items: center; + gap: 0; + border-radius: var(--ds-radius-md); background: transparent; color: var(--ds-color-text-secondary); - font-size: var(--font-size-sm); transition: color $motion-fast $easing-standard, - background $motion-fast $easing-standard; + background $motion-fast $easing-standard, + box-shadow $motion-fast $easing-standard; &:hover, - &.is-active, &.is-keyboard-active { color: var(--ds-color-text-primary); background: var(--ds-color-element-soft); } + + &.is-active { + color: var(--ds-color-text-primary); + background: color-mix(in srgb, var(--ds-color-accent-500) 7%, var(--ds-color-element-soft)); + } } &__item-main { display: flex; - align-items: center; - flex: 1; min-width: 0; - height: 100%; + min-height: 32px; + align-items: center; + flex: 1 1 auto; gap: 6px; - padding: 0 $size-gap-2; + padding: 2px 6px; border: 0; background: transparent; color: inherit; @@ -86,44 +92,33 @@ text-align: left; &:focus-visible { - outline: 1px solid var(--ds-color-accent-500); - outline-offset: -1px; + border-radius: inherit; + outline: 2px solid var(--ds-focus-outline); + outline-offset: -2px; } } &__item-icon { --work-list-tone-local: var(--work-list-tone, var(--ds-color-text-muted)); + position: relative; display: flex; + width: 24px; + height: 24px; align-items: center; justify-content: center; - position: relative; - width: 22px; - height: 22px; - flex-shrink: 0; - border-radius: var(--ds-radius-sm); - color: var(--ds-color-text-secondary); + flex: 0 0 24px; + border-radius: var(--ds-radius-md); background: transparent; - opacity: 0.82; - transform: scale(1); - transform-origin: center; + color: var(--ds-color-text-secondary); + overflow: visible; transition: color $motion-fast $easing-standard, - background $motion-fast $easing-standard, - opacity $motion-fast $easing-standard, transform $motion-fast $easing-standard; - &::before, - &::after { - content: ''; - position: absolute; - pointer-events: none; - opacity: 0; - } - .work-list__item:hover &, .work-list__item.is-active &, .work-list__item.is-keyboard-active & { - opacity: 1; + color: var(--ds-color-text-primary); transform: scale(1.04); } } @@ -134,95 +129,29 @@ display: flex; align-items: center; justify-content: center; - transition: - color $motion-fast $easing-standard, - opacity $motion-fast $easing-standard, - transform $motion-fast $easing-standard; } &__item-state-mark { position: absolute; - pointer-events: none; - } - - &__item.has-state-instrument &__item-icon { - color: var(--work-list-tone-local); - background: transparent; - } - - &__item--running &__item-icon { - --work-list-pixel-dim: color-mix(in srgb, var(--work-list-tone-local) 20%, transparent); - --work-list-pixel-mid: color-mix(in srgb, var(--work-list-tone-local) 54%, transparent); - --work-list-pixel-bright: var(--work-list-tone-local); - color: var(--work-list-tone-local); - - &::before { - left: 4px; - top: 4px; - width: 3px; - height: 3px; - border-radius: 1px; - background: var(--work-list-pixel-bright); - box-shadow: - 5px -3px 0 var(--work-list-pixel-dim), - 5px 1px 0 var(--work-list-pixel-mid), - 10px 1px 0 var(--work-list-pixel-dim), - -3px 5px 0 var(--work-list-pixel-dim), - 1px 5px 0 var(--work-list-pixel-mid), - 5px 5px 0 var(--work-list-pixel-bright), - 10px 5px 0 var(--work-list-pixel-mid), - 14px 5px 0 var(--work-list-pixel-dim), - 1px 10px 0 var(--work-list-pixel-dim), - 5px 10px 0 var(--work-list-pixel-mid), - 10px 10px 0 var(--work-list-pixel-dim), - 5px 14px 0 var(--work-list-pixel-dim); - opacity: 1; - animation: work-list-status-pixel-bloom 2.4s steps(1, end) infinite; - } - } - - &__item--running &__item-icon-glyph { - opacity: 0; - transform: scale(0.88); - } - - &__item--running &__item-state-mark { + right: 1px; + bottom: 1px; + z-index: var(--ds-z-raised); display: none; + width: 6px; + height: 6px; + border-radius: var(--ds-radius-full); + background: var(--work-list-tone-local); + box-shadow: 0 0 0 2px var(--work-dock-menu-bg, var(--ds-color-bg-elevated)); + pointer-events: none; } - &__item--waiting-user &__item-icon { - color: var(--work-list-tone-local); - - &::before { - top: 2px; - right: 1px; - width: 5px; - height: 5px; - border-radius: var(--ds-radius-full); - background: var(--work-list-tone-local); - box-shadow: 0 0 0 3px color-mix(in srgb, var(--work-list-tone-local) 12%, transparent); - opacity: 1; - animation: work-list-status-attention 1.9s ease-in-out infinite; - } + &__item.has-state-instrument &__item-state-mark { + display: block; } + &__item--running &__item-state-mark, &__item--waiting-user &__item-state-mark { - display: none; - } - - &__item--blocked &__item-icon { - color: var(--work-list-tone-local); - - &::before { - left: 4px; - right: 4px; - bottom: 3px; - height: 2px; - border-radius: var(--ds-radius-full); - background: var(--work-list-tone-local); - opacity: 1; - box-shadow: 5px 0 0 color-mix(in srgb, var(--ds-color-bg-elevated) 88%, transparent); - } + animation: work-list-status-pulse 1.9s ease-in-out infinite; } &__item--failed.has-state-instrument &__item-icon { @@ -231,78 +160,37 @@ } &__item--failed &__item-state-mark { - width: 6px; - height: 6px; right: 1px; bottom: 1px; - z-index: var(--ds-z-raised); - border-radius: var(--ds-radius-full); - background: var(--work-list-tone-local); box-shadow: 0 0 0 1px var(--work-dock-menu-bg, var(--ds-color-bg-elevated)); } - &__item--paused &__item-icon { - color: color-mix(in srgb, var(--ds-color-text-muted) 82%, transparent); - background: color-mix(in srgb, var(--ds-color-element-medium) 56%, transparent); - } - - &__item--paused &__item-state-mark { - width: 7px; - height: 8px; - right: 2px; - bottom: 2px; - border-left: 2px solid currentColor; - border-right: 2px solid currentColor; - opacity: 0.75; - } - - &__item--completed &__item-icon { - color: var(--work-list-tone-local); - } - - &__item--completed &__item-state-mark { - width: 8px; - height: 5px; - right: -2px; - top: 0; - border-left: 2px solid var(--work-list-tone-local); - border-bottom: 2px solid var(--work-list-tone-local); - transform: rotate(-45deg); - } - &__item-copy { display: flex; - align-items: center; - flex: 1; min-width: 0; - height: 100%; + flex: 1 1 auto; + align-items: center; } &__item-label { - flex: 1; - min-width: 0; overflow: hidden; + min-width: 0; color: inherit; - font-size: var(--font-size-sm); - line-height: 1.15; + font-size: var(--ds-font-size-sm); + font-weight: var(--ds-font-weight-medium); + line-height: 1.2; text-overflow: ellipsis; white-space: nowrap; } &__item-actions { display: inline-flex; + min-width: 46px; align-items: center; - gap: 2px; + justify-content: flex-end; + gap: 0; + padding-right: 2px; flex: 0 0 auto; - margin-right: 4px; - } - - &__item-action { - width: 20px; - height: 20px; - flex: 0 0 20px; - border-radius: var(--ds-radius-full); - color: inherit; opacity: 0; pointer-events: none; transition: opacity $motion-fast $easing-standard; @@ -312,21 +200,21 @@ opacity: 1; pointer-events: auto; } + } - &--always-visible { - opacity: 0.55; - pointer-events: auto; + &__item-action { + width: 22px; + height: 22px; + min-width: 22px; + flex: 0 0 22px; + color: var(--ds-color-text-muted); - &:hover { - opacity: 1; - } + &:hover, + &:focus-visible { + color: var(--ds-color-text-primary); } } - &__item-action-icon { - color: inherit; - } - &__loading, &__text-action { color: var(--ds-color-text-secondary); @@ -334,7 +222,7 @@ } &__loading { - padding: var(--ds-space-3); + padding: var(--ds-space-5); } &__text-action { @@ -346,115 +234,28 @@ } } -@keyframes work-list-status-pixel-bloom { - 0% { - background: var(--work-list-pixel-bright); - box-shadow: - 5px -3px 0 var(--work-list-pixel-dim), - 5px 1px 0 var(--work-list-pixel-mid), - 10px 1px 0 var(--work-list-pixel-dim), - -3px 5px 0 var(--work-list-pixel-dim), - 1px 5px 0 var(--work-list-pixel-mid), - 5px 5px 0 var(--work-list-pixel-bright), - 10px 5px 0 var(--work-list-pixel-mid), - 14px 5px 0 var(--work-list-pixel-dim), - 1px 10px 0 var(--work-list-pixel-dim), - 5px 10px 0 var(--work-list-pixel-mid), - 10px 10px 0 var(--work-list-pixel-dim), - 5px 14px 0 var(--work-list-pixel-dim); - } - 24% { - background: var(--work-list-pixel-bright); - box-shadow: - 5px -3px 0 var(--work-list-pixel-bright), - 5px 1px 0 var(--work-list-pixel-bright), - 10px 1px 0 var(--work-list-pixel-mid), - -3px 5px 0 var(--work-list-pixel-mid), - 1px 5px 0 var(--work-list-pixel-bright), - 5px 5px 0 var(--work-list-pixel-bright), - 10px 5px 0 var(--work-list-pixel-mid), - 14px 5px 0 var(--work-list-pixel-dim), - 1px 10px 0 var(--work-list-pixel-dim), - 5px 10px 0 var(--work-list-pixel-mid), - 10px 10px 0 var(--work-list-pixel-dim), - 5px 14px 0 var(--work-list-pixel-dim); - } - 48% { - background: var(--work-list-pixel-mid); - box-shadow: - 5px -3px 0 var(--work-list-pixel-mid), - 5px 1px 0 var(--work-list-pixel-mid), - 10px 1px 0 var(--work-list-pixel-bright), - -3px 5px 0 var(--work-list-pixel-dim), - 1px 5px 0 var(--work-list-pixel-mid), - 5px 5px 0 var(--work-list-pixel-bright), - 10px 5px 0 var(--work-list-pixel-bright), - 14px 5px 0 var(--work-list-pixel-bright), - 1px 10px 0 var(--work-list-pixel-dim), - 5px 10px 0 var(--work-list-pixel-mid), - 10px 10px 0 var(--work-list-pixel-mid), - 5px 14px 0 var(--work-list-pixel-dim); - } - 72% { - background: var(--work-list-pixel-bright); - box-shadow: - 5px -3px 0 var(--work-list-pixel-dim), - 5px 1px 0 var(--work-list-pixel-mid), - 10px 1px 0 var(--work-list-pixel-dim), - -3px 5px 0 var(--work-list-pixel-bright), - 1px 5px 0 var(--work-list-pixel-bright), - 5px 5px 0 var(--work-list-pixel-bright), - 10px 5px 0 var(--work-list-pixel-bright), - 14px 5px 0 var(--work-list-pixel-bright), - 1px 10px 0 var(--work-list-pixel-dim), - 5px 10px 0 var(--work-list-pixel-mid), - 10px 10px 0 var(--work-list-pixel-dim), - 5px 14px 0 var(--work-list-pixel-dim); - } - 100% { - background: var(--work-list-pixel-bright); - box-shadow: - 5px -3px 0 var(--work-list-pixel-dim), - 5px 1px 0 var(--work-list-pixel-mid), - 10px 1px 0 var(--work-list-pixel-dim), - -3px 5px 0 var(--work-list-pixel-dim), - 1px 5px 0 var(--work-list-pixel-mid), - 5px 5px 0 var(--work-list-pixel-bright), - 10px 5px 0 var(--work-list-pixel-mid), - 14px 5px 0 var(--work-list-pixel-dim), - 1px 10px 0 var(--work-list-pixel-dim), - 5px 10px 0 var(--work-list-pixel-mid), - 10px 10px 0 var(--work-list-pixel-dim), - 5px 14px 0 var(--work-list-pixel-dim); - } -} - -@keyframes work-list-status-attention { +@keyframes work-list-status-pulse { 0%, 100% { - opacity: 0.82; - transform: scale(0.92); + opacity: 0.68; + transform: scale(0.9); } 50% { opacity: 1; - transform: scale(1.05); + transform: scale(1.08); } } @media (prefers-reduced-motion: reduce) { - .work-list { - &__item, - &__item-icon, - &__item-icon::before, - &__item-icon::after, - &__item-state-mark, - &__item-cancel-action { - transition: none; - animation: none; - } + .work-list__item, + .work-list__item-icon, + .work-list__item-state-mark, + .work-list__item-actions { + animation: none; + transition: none; } .work-list__item:hover .work-list__item-icon { - transform: scale(1); + transform: none; } } diff --git a/src/web-ui/src/app/components/WorkList/WorkList.tsx b/src/web-ui/src/app/components/WorkList/WorkList.tsx index 87b45354..2ad212c4 100644 --- a/src/web-ui/src/app/components/WorkList/WorkList.tsx +++ b/src/web-ui/src/app/components/WorkList/WorkList.tsx @@ -1,4 +1,4 @@ -import React, { useCallback, useEffect, useMemo } from 'react'; +import React, { useCallback, useEffect, useMemo, useRef } from 'react'; import { Archive, Info, XCircle } from 'lucide-react'; import { EmptyState, IconButton } from '@/design-system'; import { useI18n } from '@/infrastructure/i18n'; @@ -26,6 +26,12 @@ interface IndexedWorkProjection { index: number; } +interface StableWorkOrder { + selectionKey: string; + membershipKey: string; + workIds: string[]; +} + export interface WorkListProps { className?: string; query?: string; @@ -33,6 +39,7 @@ export interface WorkListProps { runningFilter?: 'all' | 'running' | 'not-running'; includeArchived?: boolean; includeCompleted?: boolean; + activeWorkId?: string | null; selectedResultIndex?: number; showGroupLabels?: boolean; onResultCountChange?: (count: number) => void; @@ -65,6 +72,7 @@ const WorkList: React.FC = ({ runningFilter = 'all', includeArchived = false, includeCompleted = true, + activeWorkId = null, selectedResultIndex = -1, showGroupLabels = false, onResultCountChange, @@ -73,17 +81,42 @@ const WorkList: React.FC = ({ const { works, projections, loading, error, refreshWorks } = useWorks(); const getWork = useWorkStore((state) => state.getWork); const controlWork = useWorkStore((state) => state.controlWork); + const stableOrderRef = useRef(null); const workById = useMemo(() => new Map(works.map((work) => [work.id, work])), [works]); const visibleWorks = useMemo(() => { - return selectWorksForDockList(projections, { + const candidates = selectWorksForDockList(projections, { query, - maxWorks, runningFilter, includeArchived, includeCompleted, }); + const selectionKey = JSON.stringify({ query, runningFilter, includeArchived, includeCompleted }); + const membershipKey = JSON.stringify(candidates.map((work) => work.id).sort()); + let stableOrder = stableOrderRef.current; + + if ( + !stableOrder + || stableOrder.selectionKey !== selectionKey + || stableOrder.membershipKey !== membershipKey + ) { + stableOrder = { + selectionKey, + membershipKey, + workIds: candidates.map((work) => work.id), + }; + stableOrderRef.current = stableOrder; + } + + const orderByWorkId = new Map( + stableOrder.workIds.map((workId, index) => [workId, index]) + ); + const stableCandidates = [...candidates].sort( + (left, right) => (orderByWorkId.get(left.id) ?? 0) - (orderByWorkId.get(right.id) ?? 0) + ); + + return typeof maxWorks === 'number' ? stableCandidates.slice(0, maxWorks) : stableCandidates; }, [includeArchived, includeCompleted, maxWorks, projections, query, runningFilter]); const indexedVisibleWorks = useMemo( @@ -115,11 +148,11 @@ const WorkList: React.FC = ({ } }, [controlWork, t]); - const handleRemove = useCallback(async (work: WorkProjection) => { + const handleArchive = useCallback(async (work: WorkProjection) => { try { await controlWork({ locator: { scope: work.scope, workId: work.id }, action: 'archive' }); - } catch (removeError) { - log.error('Failed to remove work from Work Dock', { workId: work.id, error: removeError }); + } catch (archiveError) { + log.error('Failed to archive work from Work Dock', { workId: work.id, error: archiveError }); notificationService.error(t('nav.workDock.removeFailed')); } }, [controlWork, t]); @@ -182,8 +215,9 @@ const WorkList: React.FC = ({ )} {group.items.map(({ work, index }) => { const selected = index === selectedResultIndex; + const active = work.id === activeWorkId; const showCancelAction = isCancellableStatus(work.status); - const showRemoveAction = !showCancelAction && work.status !== 'archived'; + const showArchiveAction = !showCancelAction && work.status !== 'archived'; const statusClass = statusKey(work.status); const instrumented = isInstrumentedStatus(work.status); return ( @@ -193,6 +227,7 @@ const WorkList: React.FC = ({ 'work-list__item', `work-list__item--${statusClass}`, instrumented && 'has-state-instrument', + active && 'is-active', selected && 'is-keyboard-active', ].filter(Boolean).join(' ')} data-sparo-work-list-result-index={index} @@ -205,10 +240,11 @@ const WorkList: React.FC = ({ className="work-list__item-main" onClick={() => void handleOpen(work)} aria-label={`${work.title}, ${t(`nav.workDock.status.${work.status}`)}`} + aria-current={active ? 'page' : undefined} > - + {instrumented ? : null} @@ -228,21 +264,21 @@ const WorkList: React.FC = ({ data-sparo-work-list-details-action onClick={() => handleOpenDetails(work)} > - + {showCancelAction ? ( void handleCancel(work)} > - + - ) : showRemoveAction ? ( + ) : showArchiveAction ? ( = ({ variant="ghost" aria-label={t('nav.workDock.removeWork')} tooltip={t('nav.workDock.removeWork')} - onClick={() => void handleRemove(work)} + onClick={() => void handleArchive(work)} > - + ) : null}
diff --git a/src/web-ui/src/app/components/WorkspaceFooterActions/WorkspaceFooterActions.scss b/src/web-ui/src/app/components/WorkspaceFooterActions/WorkspaceFooterActions.scss index 90c91dae..31700fd9 100644 --- a/src/web-ui/src/app/components/WorkspaceFooterActions/WorkspaceFooterActions.scss +++ b/src/web-ui/src/app/components/WorkspaceFooterActions/WorkspaceFooterActions.scss @@ -132,9 +132,9 @@ min-width: 40px; height: 40px; padding: 0; - color: var(--ds-color-text-inverse); - background: var(--ds-color-accent-500); - border: 1px solid transparent; + color: var(--ds-color-text-primary); + background: var(--ds-color-bg-elevated); + border: 1px solid var(--ds-color-border-base); border-radius: var(--ds-radius-full); box-shadow: var(--ds-shadow-sm); transform: none; @@ -150,15 +150,17 @@ &:hover:not(:disabled), &:focus-visible { - color: var(--ds-color-text-inverse); - background: var(--ds-color-accent-600); - border-color: transparent; + color: var(--ds-color-text-primary); + background: var(--ds-color-element-medium); + border-color: var(--ds-color-border-medium); transform: scale(1.035); } &.is-open { z-index: var(--ds-z-tooltip); - background: var(--ds-color-accent-500); + color: var(--ds-color-brand-on-action); + background: var(--ds-color-brand-action); + border-color: transparent; box-shadow: none; transform: none; } @@ -177,8 +179,8 @@ justify-content: center; width: 18px; height: 18px; - color: var(--ds-color-text-inverse); - background: var(--ds-color-danger); + color: var(--ds-color-brand-on-action); + background: var(--ds-color-brand-action); border: 2px solid var(--ds-color-bg-panel); border-radius: var(--ds-radius-full); box-shadow: var(--ds-shadow-sm); @@ -352,7 +354,7 @@ &.is-selected, &.is-selected:hover, &.is-selected:focus-within { - background: var(--ds-color-accent-500); + background: color-mix(in srgb, var(--ds-color-brand-action) 10%, transparent); } &:hover .sparo-workspace-hub__preview-item-open, @@ -419,16 +421,15 @@ .sparo-workspace-hub__preview-item, .sparo-workspace-hub__preview-item:hover:not(:disabled), .sparo-workspace-hub__preview-item:focus-visible { - color: var(--ds-color-text-inverse); + color: var(--ds-color-text-primary); } .sparo-workspace-hub__item-meta { - color: var(--ds-color-text-inverse); - opacity: 0.72; + color: var(--ds-color-text-secondary); } .sparo-workspace-hub__preview-item-open { - color: var(--ds-color-text-inverse); + color: var(--ds-color-brand-action); &:hover:not(:disabled), &:focus-visible { @@ -487,7 +488,7 @@ z-index: var(--ds-z-local); width: 6px; height: 6px; - background: var(--ds-color-danger); + background: var(--ds-color-brand-action); border: 1px solid var(--ds-color-bg-panel); border-radius: var(--ds-radius-full); } @@ -838,8 +839,8 @@ .ds-segmented-control__item--selected .sparo-workspace-hub__theme-preview, .ds-segmented-control__item--selected .sparo-workspace-hub__system-theme-preview { - color: $color-error; - border-color: $color-error; + color: var(--ds-color-brand-action); + border-color: var(--ds-color-brand-action); } } diff --git a/src/web-ui/src/app/scenes/apps/AppsScene.scss b/src/web-ui/src/app/scenes/apps/AppsScene.scss index aa8fd80f..e43b0fa4 100644 --- a/src/web-ui/src/app/scenes/apps/AppsScene.scss +++ b/src/web-ui/src/app/scenes/apps/AppsScene.scss @@ -1719,7 +1719,7 @@ margin-top: var(--ds-space-3); padding: var(--ds-space-2) var(--ds-space-3); border-radius: var(--ds-radius-lg); - background: color-mix(in srgb, var(--ds-color-danger-soft) 36%, var(--ds-color-bg-panel)); + background: var(--ds-color-danger-bg); color: var(--ds-color-text-secondary); font-size: var(--ds-font-size-xs); } diff --git a/src/web-ui/src/app/scenes/apps/app-builder/AppBuilderWorkbench.scss b/src/web-ui/src/app/scenes/apps/app-builder/AppBuilderWorkbench.scss index 8f8a24ff..a315648d 100644 --- a/src/web-ui/src/app/scenes/apps/app-builder/AppBuilderWorkbench.scss +++ b/src/web-ui/src/app/scenes/apps/app-builder/AppBuilderWorkbench.scss @@ -102,12 +102,12 @@ } &.is-running { - color: var(--ds-color-danger) !important; - border-color: color-mix(in srgb, var(--ds-color-danger) 38%, transparent) !important; + color: var(--ds-color-brand-action) !important; + border-color: color-mix(in srgb, var(--ds-color-brand-action) 38%, transparent) !important; &:hover { - background: color-mix(in srgb, var(--ds-color-danger) 10%, transparent) !important; - border-color: color-mix(in srgb, var(--ds-color-danger) 55%, transparent) !important; + background: color-mix(in srgb, var(--ds-color-brand-action) 10%, transparent) !important; + border-color: color-mix(in srgb, var(--ds-color-brand-action) 55%, transparent) !important; } } } diff --git a/src/web-ui/src/app/scenes/file-viewer/FileViewerScene.scss b/src/web-ui/src/app/scenes/file-viewer/FileViewerScene.scss index 22766edd..b7fd37b3 100644 --- a/src/web-ui/src/app/scenes/file-viewer/FileViewerScene.scss +++ b/src/web-ui/src/app/scenes/file-viewer/FileViewerScene.scss @@ -328,7 +328,7 @@ color: currentColor; &.is-active { - color: var(--ds-color-danger); + color: var(--ds-color-brand-action); } } diff --git a/src/web-ui/src/app/scenes/memory/MemoryScene.scss b/src/web-ui/src/app/scenes/memory/MemoryScene.scss index 7a4a2d4e..4ec4610f 100644 --- a/src/web-ui/src/app/scenes/memory/MemoryScene.scss +++ b/src/web-ui/src/app/scenes/memory/MemoryScene.scss @@ -1,7 +1,7 @@ @use '@/design-system/foundation/tokens/tokens.scss' as *; .memory-scene { - --memory-seal-red: var(--ds-color-danger); + --memory-seal-red: var(--ds-color-brand-core); --memory-core: var(--ds-color-warning); position: relative; diff --git a/src/web-ui/src/app/scenes/memory/utils/memoryLayout.ts b/src/web-ui/src/app/scenes/memory/utils/memoryLayout.ts index b9d4d8f6..a2b5cf17 100644 --- a/src/web-ui/src/app/scenes/memory/utils/memoryLayout.ts +++ b/src/web-ui/src/app/scenes/memory/utils/memoryLayout.ts @@ -47,7 +47,7 @@ export interface BuildLayoutInput { export const TYPE_COLORS: Record = { memory: 'var(--ds-color-warning)', - soul: 'var(--ds-color-danger)', + soul: 'var(--ds-color-brand-core)', user: 'var(--ds-color-info)', milestone: 'var(--ds-color-success)', host_overview: 'var(--ds-color-accent-500)', @@ -146,7 +146,7 @@ const colorForGroup = (id: string, isCore: boolean): string => { 'var(--ds-color-accent-500)', 'var(--ds-color-purple-500)', 'var(--ds-color-success)', - 'var(--ds-color-danger)', + 'var(--ds-color-brand-core)', 'var(--ds-color-warning)', 'var(--ds-color-accent-400)', ]; diff --git a/src/web-ui/src/boot/bootStage.ts b/src/web-ui/src/boot/bootStage.ts index 48578aef..6b07e60b 100644 --- a/src/web-ui/src/boot/bootStage.ts +++ b/src/web-ui/src/boot/bootStage.ts @@ -6,8 +6,8 @@ * here, exposes the current stage as React state, and uses it to decide when * to render the main ``. * - * There is **no minimum splash duration**: the splash exits the moment the - * backend reports `workspaceReady`, so a warm cache start can paint < 200 ms. + * Backend readiness is immediate, while the splash handoff may wait for the + * finite brand reveal to resolve so it never cuts away mid-animation. */ import { createLogger } from '@/shared/utils/logger'; diff --git a/src/web-ui/src/boot/startupSplash.tsx b/src/web-ui/src/boot/startupSplash.tsx new file mode 100644 index 00000000..c914e9a3 --- /dev/null +++ b/src/web-ui/src/boot/startupSplash.tsx @@ -0,0 +1,126 @@ +let splashDismissed = false; +let splashMotionElement: HTMLElement | null = null; +let splashStartupComplete = false; +let splashDismissPending = false; +let splashStartupFallback: number | null = null; +let mainWindowShowPromise: Promise | null = null; +let mainApplicationStartScheduled = false; +let mainApplicationStarted = false; + +/** + * Shares one native show request between the early splash and the React app. + * A failed early request is cleared so the app-level fallback can retry it. + */ +export function requestMainWindowShow(): Promise { + if (!mainWindowShowPromise) { + mainWindowShowPromise = import('@tauri-apps/api/core') + .then(({ invoke }) => invoke('show_main_window')) + .catch((error) => { + mainWindowShowPromise = null; + throw error; + }); + } + + return mainWindowShowPromise; +} + +function startMainApplication(): void { + if (mainApplicationStarted) return; + mainApplicationStarted = true; + void import('../main'); +} + +function scheduleMainApplicationAfterSplashPaint(): void { + if (mainApplicationStartScheduled) return; + mainApplicationStartScheduled = true; + + window.requestAnimationFrame(() => { + window.setTimeout(startMainApplication, 0); + }); +} + +function finishInlineSplashDismissal(): void { + if (splashDismissed) return; + splashDismissed = true; + const splash = document.getElementById('sparo-splash'); + if (!splash) return; + splash.dataset.leaving = '1'; + + window.setTimeout(() => { + if (splashStartupFallback !== null) { + window.clearTimeout(splashStartupFallback); + splashStartupFallback = null; + } + splashMotionElement = null; + splash.parentNode?.removeChild(splash); + }, 400); +} + +function handleSplashMotionMounted(): void { + const splash = document.getElementById('sparo-splash'); + if (splash) splash.dataset.motionReady = '1'; + + // The DOM is ready for the native window's first visible frame. The main + // application reuses this request and retries with logging if it fails. + void requestMainWindowShow().catch(() => {}); +} + +function handleSplashStartupComplete(): void { + if (splashStartupComplete) return; + splashStartupComplete = true; + if (splashDismissPending) { + finishInlineSplashDismissal(); + return; + } + if (splashMotionElement) splashMotionElement.dataset.motion = 'thinking'; + const splash = document.getElementById('sparo-splash'); + if (splash && !splashDismissed && splash.dataset.leaving !== '1') { + splash.dataset.delayedLoader = '1'; + } +} + +function mountStartupSplash(): void { + const host = document.getElementById('sparo-splash-motion-root'); + if (!host || !host.isConnected || splashMotionElement) return; + + splashMotionElement = host; + host.dataset.motion = 'startup'; + host.querySelector('.sparo-splash-mark__surface')?.addEventListener('animationend', (event) => { + if ((event as AnimationEvent).animationName === 'sparo-splash-materialize') { + handleSplashStartupComplete(); + } + }, { once: true }); + + handleSplashMotionMounted(); + + if (window.matchMedia('(prefers-reduced-motion: reduce)').matches) { + window.requestAnimationFrame(handleSplashStartupComplete); + return; + } + + // Prevent a stylesheet failure from holding the startup phase indefinitely. + splashStartupFallback = window.setTimeout(handleSplashStartupComplete, 1500); +} + +export function dismissInlineSplash(): void { + if (splashDismissed || splashDismissPending) return; + if (splashMotionElement && !splashStartupComplete) { + splashDismissPending = true; + return; + } + finishInlineSplashDismissal(); +} + +export function forceDismissInlineSplash(): void { + finishInlineSplashDismissal(); +} + +const isAgentCompanionWindow = + new URLSearchParams(window.location.search).get('sparoWindow') === 'agent-companion'; + +if (!isAgentCompanionWindow) { + mountStartupSplash(); + scheduleMainApplicationAfterSplashPaint(); +} else { + startMainApplication(); +} diff --git a/src/web-ui/src/design-system/foundation/brand/sparo-app-icon-32.png b/src/web-ui/src/design-system/foundation/brand/sparo-app-icon-32.png new file mode 100644 index 00000000..2f5e44f9 Binary files /dev/null and b/src/web-ui/src/design-system/foundation/brand/sparo-app-icon-32.png differ diff --git a/src/web-ui/src/design-system/foundation/brand/sparo-core-16.png b/src/web-ui/src/design-system/foundation/brand/sparo-core-16.png new file mode 100644 index 00000000..b9f45ded Binary files /dev/null and b/src/web-ui/src/design-system/foundation/brand/sparo-core-16.png differ diff --git a/src/web-ui/src/design-system/foundation/brand/sparo-core-20.png b/src/web-ui/src/design-system/foundation/brand/sparo-core-20.png new file mode 100644 index 00000000..6337d009 Binary files /dev/null and b/src/web-ui/src/design-system/foundation/brand/sparo-core-20.png differ diff --git a/src/web-ui/src/design-system/foundation/brand/sparo-core-24.png b/src/web-ui/src/design-system/foundation/brand/sparo-core-24.png new file mode 100644 index 00000000..27852d0d Binary files /dev/null and b/src/web-ui/src/design-system/foundation/brand/sparo-core-24.png differ diff --git a/src/web-ui/src/design-system/foundation/brand/sparo-core-32.png b/src/web-ui/src/design-system/foundation/brand/sparo-core-32.png new file mode 100644 index 00000000..f5eb3acd Binary files /dev/null and b/src/web-ui/src/design-system/foundation/brand/sparo-core-32.png differ diff --git a/src/web-ui/src/design-system/foundation/brand/sparo-core-48.png b/src/web-ui/src/design-system/foundation/brand/sparo-core-48.png new file mode 100644 index 00000000..5301c09b Binary files /dev/null and b/src/web-ui/src/design-system/foundation/brand/sparo-core-48.png differ diff --git a/src/web-ui/src/design-system/foundation/brand/sparo-mark-16.png b/src/web-ui/src/design-system/foundation/brand/sparo-mark-16.png new file mode 100644 index 00000000..436e8c9f Binary files /dev/null and b/src/web-ui/src/design-system/foundation/brand/sparo-mark-16.png differ diff --git a/src/web-ui/src/design-system/foundation/brand/sparo-mark-24.png b/src/web-ui/src/design-system/foundation/brand/sparo-mark-24.png new file mode 100644 index 00000000..b3e6726f Binary files /dev/null and b/src/web-ui/src/design-system/foundation/brand/sparo-mark-24.png differ diff --git a/src/web-ui/src/design-system/foundation/brand/sparo-mark-256.png b/src/web-ui/src/design-system/foundation/brand/sparo-mark-256.png new file mode 100644 index 00000000..aee2c85c Binary files /dev/null and b/src/web-ui/src/design-system/foundation/brand/sparo-mark-256.png differ diff --git a/src/web-ui/src/design-system/foundation/brand/sparo-mark-32.png b/src/web-ui/src/design-system/foundation/brand/sparo-mark-32.png new file mode 100644 index 00000000..4078a327 Binary files /dev/null and b/src/web-ui/src/design-system/foundation/brand/sparo-mark-32.png differ diff --git a/src/web-ui/src/design-system/foundation/brand/sparo-mark-48.png b/src/web-ui/src/design-system/foundation/brand/sparo-mark-48.png new file mode 100644 index 00000000..5ae20c02 Binary files /dev/null and b/src/web-ui/src/design-system/foundation/brand/sparo-mark-48.png differ diff --git a/src/web-ui/src/design-system/foundation/brand/sparo-mark-full.png b/src/web-ui/src/design-system/foundation/brand/sparo-mark-full.png new file mode 100644 index 00000000..275ec993 Binary files /dev/null and b/src/web-ui/src/design-system/foundation/brand/sparo-mark-full.png differ diff --git a/src/web-ui/src/design-system/foundation/icons/SparoLogoCore.tsx b/src/web-ui/src/design-system/foundation/icons/SparoLogoCore.tsx new file mode 100644 index 00000000..ce4c7912 --- /dev/null +++ b/src/web-ui/src/design-system/foundation/icons/SparoLogoCore.tsx @@ -0,0 +1,45 @@ +import { forwardRef, type ImgHTMLAttributes } from 'react'; + +import core16 from '../brand/sparo-core-16.png'; +import core20 from '../brand/sparo-core-20.png'; +import core24 from '../brand/sparo-core-24.png'; +import core32 from '../brand/sparo-core-32.png'; +import core48 from '../brand/sparo-core-48.png'; + +export type SparoLogoCoreSize = 16 | 20 | 24 | 32 | 48; + +export interface SparoLogoCoreProps + extends Omit, 'height' | 'src' | 'width'> { + /** Uses the matching target-size core shared with the default tray icon. */ + size?: SparoLogoCoreSize; + /** Uses a larger raster source when the rendered surface needs high-DPI clarity. */ + sourceSize?: SparoLogoCoreSize; +} + +const sources: Record = { + 16: core16, + 20: core20, + 24: core24, + 32: core32, + 48: core48, +}; + +export const SparoLogoCore = forwardRef(({ + size = 24, + sourceSize = size, + alt = '', + draggable = false, + ...props +}, ref) => ( + {alt} +)); + +SparoLogoCore.displayName = 'SparoLogoCore'; diff --git a/src/web-ui/src/design-system/foundation/icons/SparoLogoMark.tsx b/src/web-ui/src/design-system/foundation/icons/SparoLogoMark.tsx index b103e65a..0dabab67 100644 --- a/src/web-ui/src/design-system/foundation/icons/SparoLogoMark.tsx +++ b/src/web-ui/src/design-system/foundation/icons/SparoLogoMark.tsx @@ -1,32 +1,41 @@ -import { forwardRef, type SVGProps } from 'react'; +import { forwardRef, type ImgHTMLAttributes } from 'react'; -export interface SparoLogoMarkProps extends SVGProps { +import mark16 from '../brand/sparo-mark-16.png'; +import mark24 from '../brand/sparo-mark-24.png'; +import mark32 from '../brand/sparo-mark-32.png'; +import mark48 from '../brand/sparo-mark-48.png'; +import markFull from '../brand/sparo-mark-full.png'; + +export interface SparoLogoMarkProps + extends Omit, 'height' | 'src' | 'width'> { + /** Selects the matching responsive source instead of scaling one small mark across sizes. */ size?: number | string; - strokeWidth?: number | string; } -export const SparoLogoMark = forwardRef(({ +function sourceForSize(size: number | string) { + if (typeof size !== 'number') return markFull; + if (size <= 20) return mark16; + if (size <= 28) return mark24; + if (size <= 40) return mark32; + if (size < 64) return mark48; + return markFull; +} + +export const SparoLogoMark = forwardRef(({ size = 24, - strokeWidth = 6.5, + alt = '', + draggable = false, ...props }, ref) => ( - - - - + /> )); SparoLogoMark.displayName = 'SparoLogoMark'; diff --git a/src/web-ui/src/design-system/foundation/icons/SparoLogoMotion.scss b/src/web-ui/src/design-system/foundation/icons/SparoLogoMotion.scss new file mode 100644 index 00000000..57040892 --- /dev/null +++ b/src/web-ui/src/design-system/foundation/icons/SparoLogoMotion.scss @@ -0,0 +1,165 @@ +.sparo-logo-motion { + position: relative; + display: block; + flex: 0 0 auto; + overflow: visible; + transform-origin: center; +} + +.sparo-logo-motion__surface, +.sparo-logo-motion__focus { + position: absolute; + inset: 0; + display: block; + width: 100%; + height: 100%; + object-fit: contain; + pointer-events: none; + user-select: none; + transform-origin: center; +} + +.sparo-logo-motion__focus, +.sparo-logo-motion__sweep { + opacity: 0; +} + +.sparo-logo-motion__focus { + clip-path: circle(21% at 50% 51%); +} + +.sparo-logo-motion__sweep { + position: absolute; + inset-block: 7%; + left: -48%; + width: 26%; + border-radius: 999px; + background: linear-gradient(90deg, transparent, rgb(255 255 255 / 46%), transparent); + pointer-events: none; + transform: rotate(18deg); +} + +/* Motion transforms only pixels from the approved raster master. */ +.sparo-logo-motion--startup .sparo-logo-motion__surface { + animation: ds-sparo-logo-materialize 860ms cubic-bezier(0.22, 0.68, 0.2, 1) both; + backface-visibility: hidden; + will-change: opacity, transform; +} + +.sparo-logo-motion--startup .sparo-logo-motion__focus { + animation: ds-sparo-logo-startup-core 860ms cubic-bezier(0.22, 0.68, 0.2, 1) both; + backface-visibility: hidden; + will-change: opacity, transform; +} + +.sparo-logo-motion--thinking .sparo-logo-motion__surface { + animation: ds-sparo-logo-breathe 2.6s ease-in-out infinite; + will-change: transform; +} + +.sparo-logo-motion--thinking .sparo-logo-motion__focus { + animation: ds-sparo-logo-focus 2.6s ease-in-out infinite; + filter: saturate(1.08) brightness(1.025); + will-change: opacity, transform; +} + +.sparo-logo-motion--processing .sparo-logo-motion__surface { + animation: ds-sparo-logo-process-depth 1.8s ease-in-out infinite; + will-change: filter; +} + +.sparo-logo-motion--processing .sparo-logo-motion__sweep { + animation: ds-sparo-logo-process-sweep 1.55s cubic-bezier(0.45, 0, 0.55, 1) infinite; + will-change: opacity, transform; +} + +.sparo-logo-motion--paused, +.sparo-logo-motion--paused .sparo-logo-motion__surface, +.sparo-logo-motion--paused .sparo-logo-motion__focus, +.sparo-logo-motion--paused .sparo-logo-motion__sweep { + animation-play-state: paused; +} + +@keyframes ds-sparo-logo-materialize { + 0% { + opacity: 0.12; + transform: scale(0.86); + } + + 100% { + opacity: 1; + transform: scale(1); + } +} + +@keyframes ds-sparo-logo-startup-core { + 0% { + opacity: 0.92; + transform: scale(0.94); + } + + 100% { + opacity: 0; + transform: scale(1.08); + } +} + +@keyframes ds-sparo-logo-breathe { + 0%, + 100% { + transform: scale(1); + } + + 50% { + transform: scale(1.006); + } +} + +@keyframes ds-sparo-logo-focus { + 0%, + 100% { + opacity: 0; + transform: scale(0.96); + } + + 50% { + opacity: 0.44; + transform: scale(1.025); + } +} + +@keyframes ds-sparo-logo-process-depth { + 0%, + 100% { filter: brightness(0.995) saturate(1); } + 50% { filter: brightness(1.018) saturate(1.025); } +} + +@keyframes ds-sparo-logo-process-sweep { + 0% { + opacity: 0; + transform: translateX(0) rotate(18deg); + } + + 18%, + 78% { opacity: 0.5; } + + 100% { + opacity: 0; + transform: translateX(570%) rotate(18deg); + } +} + +@media (prefers-reduced-motion: reduce) { + .sparo-logo-motion, + .sparo-logo-motion__surface, + .sparo-logo-motion__focus, + .sparo-logo-motion__sweep { + animation: none !important; + filter: none; + opacity: 1; + transform: none; + } + + .sparo-logo-motion__focus, + .sparo-logo-motion__sweep { display: none; } +} diff --git a/src/web-ui/src/design-system/foundation/icons/SparoLogoMotion.tsx b/src/web-ui/src/design-system/foundation/icons/SparoLogoMotion.tsx new file mode 100644 index 00000000..8a82804a --- /dev/null +++ b/src/web-ui/src/design-system/foundation/icons/SparoLogoMotion.tsx @@ -0,0 +1,81 @@ +import { forwardRef, type HTMLAttributes } from 'react'; + +import sparoMotionMark from '../brand/sparo-mark-256.png'; +import './SparoLogoMotion.scss'; + +export type SparoLogoMotionState = 'startup' | 'thinking' | 'processing'; + +export interface SparoLogoMotionProps + extends Omit, 'children'> { + /** Preserves the canonical square crop at every rendered size. */ + size?: number | string; + /** Maps product lifecycle state to an approved material-logo behavior. */ + motion?: SparoLogoMotionState; + /** Pauses the current animation without changing the supplied raster artwork. */ + active?: boolean; + /** Removes the status announcement when adjacent text already communicates state. */ + decorative?: boolean; + /** Accessible state label. Defaults to a concise English lifecycle label. */ + label?: string; +} + +const DEFAULT_LABELS: Record = { + startup: 'Sparo OS is starting', + thinking: 'Sparo OS is thinking', + processing: 'Sparo OS is processing', +}; + +export const SparoLogoMotion = forwardRef(({ + size = 160, + motion = 'thinking', + active = true, + decorative = false, + label, + className, + style, + ...props +}, ref) => { + const classes = [ + 'sparo-logo-motion', + `sparo-logo-motion--${motion}`, + active ? null : 'sparo-logo-motion--paused', + className, + ].filter(Boolean).join(' '); + + return ( +
+ + +
+ ); +}); + +SparoLogoMotion.displayName = 'SparoLogoMotion'; + +type StateAnimationProps = Omit; + +export const SparoStartupAnimation = forwardRef( + (props, ref) => , +); +SparoStartupAnimation.displayName = 'SparoStartupAnimation'; + +export const SparoThinkingAnimation = forwardRef( + (props, ref) => , +); +SparoThinkingAnimation.displayName = 'SparoThinkingAnimation'; + +export const SparoProcessingAnimation = forwardRef( + (props, ref) => , +); +SparoProcessingAnimation.displayName = 'SparoProcessingAnimation'; diff --git a/src/web-ui/src/design-system/foundation/icons/icon-policy.ts b/src/web-ui/src/design-system/foundation/icons/icon-policy.ts index 7e1b91b3..f980749d 100644 --- a/src/web-ui/src/design-system/foundation/icons/icon-policy.ts +++ b/src/web-ui/src/design-system/foundation/icons/icon-policy.ts @@ -10,6 +10,7 @@ export const DESIGN_SYSTEM_ICON_POLICY = { strokeWidth: 1.8, iconOnlyButtonRequiresLabel: true, customSemanticIcons: [ + 'SparoLogoCore', 'SparoLogoMark', 'SparoAgentIcon', 'SparoSubagentIcon', diff --git a/src/web-ui/src/design-system/foundation/icons/index.ts b/src/web-ui/src/design-system/foundation/icons/index.ts index e9ed4fe7..333b52c4 100644 --- a/src/web-ui/src/design-system/foundation/icons/index.ts +++ b/src/web-ui/src/design-system/foundation/icons/index.ts @@ -1,4 +1,6 @@ export * from './icon-policy'; export * from './SparoAgentIcons'; +export * from './SparoLogoCore'; export * from './SparoLogoMark'; +export * from './SparoLogoMotion'; export * from './SparoSystemIcons'; diff --git a/src/web-ui/src/design-system/foundation/tokens/css-var-map.ts b/src/web-ui/src/design-system/foundation/tokens/css-var-map.ts index 7ec2b14a..fc41bbc9 100644 --- a/src/web-ui/src/design-system/foundation/tokens/css-var-map.ts +++ b/src/web-ui/src/design-system/foundation/tokens/css-var-map.ts @@ -42,6 +42,12 @@ export function createThemeCssVarMap(theme: ThemeConfig): CssVarMap { '--ds-color-text-muted': tokens.color.text.muted, '--ds-color-text-disabled': tokens.color.text.disabled, '--ds-color-text-inverse': tokens.color.text.inverse, + '--ds-color-brand-core': tokens.color.brand.core, + '--ds-color-brand-action': tokens.color.brand.action, + '--ds-color-brand-action-hover': tokens.color.brand.actionHover, + '--ds-color-brand-action-active': tokens.color.brand.actionActive, + '--ds-color-brand-on-action': tokens.color.brand.onAction, + '--ds-color-brand-focus-ring': tokens.color.brand.focusRing, '--ds-color-border-subtle': tokens.color.border.subtle, '--ds-color-border-base': tokens.color.border.base, '--ds-color-border-medium': tokens.color.border.medium, diff --git a/src/web-ui/src/design-system/foundation/tokens/legacy-css-var-map.ts b/src/web-ui/src/design-system/foundation/tokens/legacy-css-var-map.ts index a2913aba..36456832 100644 --- a/src/web-ui/src/design-system/foundation/tokens/legacy-css-var-map.ts +++ b/src/web-ui/src/design-system/foundation/tokens/legacy-css-var-map.ts @@ -23,6 +23,14 @@ function toRgbChannels(color: string): string | null { export function createLegacyCssVarMap(theme: ThemeConfig): CssVarMap { const { colors, effects, motion, typography } = theme; + const brand = colors.brand ?? { + core: colors.accent[500], + action: colors.accent[500], + actionHover: colors.accent[600], + actionActive: colors.accent[800], + onAction: '#ffffff', + focusRing: colors.accent[500], + }; const vars: CssVarMap = { '--color-bg-primary': colors.background.primary, '--color-bg-secondary': colors.background.secondary, @@ -37,8 +45,14 @@ export function createLegacyCssVarMap(theme: ThemeConfig): CssVarMap { '--color-text-secondary': colors.text.secondary, '--color-text-muted': colors.text.muted, '--color-text-disabled': colors.text.disabled, - '--color-primary': colors.accent[500], - '--color-primary-hover': colors.accent[600], + '--color-primary': brand.action, + '--color-primary-hover': brand.actionHover, + '--color-brand-core': brand.core, + '--color-brand-action': brand.action, + '--color-brand-action-hover': brand.actionHover, + '--color-brand-action-active': brand.actionActive, + '--color-brand-on-action': brand.onAction, + '--color-brand-focus-ring': brand.focusRing, '--color-accent': colors.accent[500], '--color-accent-primary': colors.accent[500], '--color-success': colors.semantic.success, @@ -94,7 +108,7 @@ export function createLegacyCssVarMap(theme: ThemeConfig): CssVarMap { vars['--color-bg-tooltip'] = colors.background.tooltip; } - const primaryRgb = toRgbChannels(colors.accent[500]); + const primaryRgb = toRgbChannels(brand.action); if (primaryRgb) { vars['--color-primary-rgb'] = primaryRgb; } diff --git a/src/web-ui/src/design-system/foundation/tokens/token-contract.ts b/src/web-ui/src/design-system/foundation/tokens/token-contract.ts index 37dd7c53..d7fd799e 100644 --- a/src/web-ui/src/design-system/foundation/tokens/token-contract.ts +++ b/src/web-ui/src/design-system/foundation/tokens/token-contract.ts @@ -12,6 +12,15 @@ export interface ThemeColorScale { 800: string; } +export interface ThemeBrandColors { + core: string; + action: string; + actionHover: string; + actionActive: string; + onAction: string; + focusRing: string; +} + export interface ThemeColorConfig { background: { primary: string; @@ -44,6 +53,7 @@ export interface ThemeColorConfig { strong: string; elevated: string; }; + brand?: ThemeBrandColors; accent: ThemeColorScale; purple?: ThemeColorScale; semantic: { @@ -227,6 +237,7 @@ export interface DesignTokens { strong: string; elevated: string; }; + brand: ThemeBrandColors; accent: DesignTokenScale; purple: DesignTokenScale; success: DesignStatusToken; @@ -387,6 +398,14 @@ function status(fg: string, bg: string, border: string): DesignStatusToken { export function createDesignTokens(theme: ThemeConfig): DesignTokens { const { colors, effects, motion, typography } = theme; const isDark = theme.type === 'dark'; + const brand: ThemeBrandColors = colors.brand ?? { + core: colors.accent[500], + action: colors.accent[500], + actionHover: colors.accent[600], + actionActive: colors.accent[800], + onAction: '#ffffff', + focusRing: colors.accent[500], + }; const purple = colors.purple ?? colors.accent; const neutralSurface = status(colors.text.secondary, colors.element.base, colors.border.base); const runningSurface = status(colors.accent[500], colors.accent[100], colors.accent[300]); @@ -418,9 +437,10 @@ export function createDesignTokens(theme: ThemeConfig): DesignTokens { }, border: { ...colors.border, - focus: colors.accent[400], + focus: brand.focusRing, }, element: colors.element, + brand, accent: stringScale(colors.accent), purple: stringScale(colors.purple ?? colors.accent), success: { @@ -449,9 +469,9 @@ export function createDesignTokens(theme: ThemeConfig): DesignTokens { backdrop: isDark ? 'rgba(10, 10, 12, 0.78)' : 'rgba(248, 250, 252, 0.78)', }, focus: { - ring: colors.accent[400], - ringSubtle: colors.accent[200], - outline: colors.accent[500], + ring: brand.focusRing, + ringSubtle: brand.action, + outline: brand.focusRing, }, selection: { bg: colors.semantic.highlightBg || colors.accent[200], @@ -509,7 +529,7 @@ export function createDesignTokens(theme: ThemeConfig): DesignTokens { markdown: status(colors.text.secondary, colors.element.soft, colors.border.base), rust: status(colors.semantic.error, colors.semantic.errorBg, colors.semantic.errorBorder), css: status(colors.accent[600], colors.accent[100], colors.accent[300]), - html: status(colors.semantic.error, colors.semantic.errorBg, colors.semantic.errorBorder), + html: status(colors.accent[600], colors.accent[100], colors.accent[300]), shell: status(colors.semantic.success, colors.semantic.successBg, colors.semantic.successBorder), python: status(colors.semantic.info, colors.semantic.infoBg, colors.semantic.infoBorder), }, diff --git a/src/web-ui/src/design-system/patterns/ActionListRow/ActionListRow.scss b/src/web-ui/src/design-system/patterns/ActionListRow/ActionListRow.scss index db1f5684..6b3841e0 100644 --- a/src/web-ui/src/design-system/patterns/ActionListRow/ActionListRow.scss +++ b/src/web-ui/src/design-system/patterns/ActionListRow/ActionListRow.scss @@ -46,7 +46,7 @@ } &--error { - border-color: var(--ds-color-error, var(--color-error)); + border-color: var(--ds-color-danger); } &--loading { @@ -106,7 +106,7 @@ } .ds-action-list-row__error { - color: var(--ds-color-error, var(--color-error)); + color: var(--ds-color-danger); overflow-wrap: anywhere; } diff --git a/src/web-ui/src/design-system/patterns/ConfirmDialog/ConfirmDialog.scss b/src/web-ui/src/design-system/patterns/ConfirmDialog/ConfirmDialog.scss index b914b5a2..57ecf91f 100644 --- a/src/web-ui/src/design-system/patterns/ConfirmDialog/ConfirmDialog.scss +++ b/src/web-ui/src/design-system/patterns/ConfirmDialog/ConfirmDialog.scss @@ -35,8 +35,8 @@ } &--error &__icon { - background: color-mix(in srgb, var(--color-error) 15%, transparent); - color: var(--color-error); + background: color-mix(in srgb, var(--ds-color-danger) 15%, transparent); + color: var(--ds-color-danger); } &--success &__icon { diff --git a/src/web-ui/src/design-system/patterns/Form/Form.scss b/src/web-ui/src/design-system/patterns/Form/Form.scss index 78e884b5..175493f6 100644 --- a/src/web-ui/src/design-system/patterns/Form/Form.scss +++ b/src/web-ui/src/design-system/patterns/Form/Form.scss @@ -53,7 +53,7 @@ &__required, &__error { - color: var(--ds-color-danger, var(--color-error)); + color: var(--ds-color-danger); } &__description { diff --git a/src/web-ui/src/design-system/patterns/ToolCard/ToolCard.scss b/src/web-ui/src/design-system/patterns/ToolCard/ToolCard.scss index 9690e255..93efd124 100644 --- a/src/web-ui/src/design-system/patterns/ToolCard/ToolCard.scss +++ b/src/web-ui/src/design-system/patterns/ToolCard/ToolCard.scss @@ -22,7 +22,7 @@ &--danger, &--error { - border-color: var(--ds-color-danger-border, var(--color-error-border)); + border-color: var(--ds-color-danger-border); } &--ai { diff --git a/src/web-ui/src/design-system/preview/preview.html b/src/web-ui/src/design-system/preview/preview.html index 7b240fef..d2bed6da 100644 --- a/src/web-ui/src/design-system/preview/preview.html +++ b/src/web-ui/src/design-system/preview/preview.html @@ -2,7 +2,7 @@ - + Sparo OS Design System Preview diff --git a/src/web-ui/src/design-system/preview/registries/primitives.tsx b/src/web-ui/src/design-system/preview/registries/primitives.tsx index cce65d98..cd4b9738 100644 --- a/src/web-ui/src/design-system/preview/registries/primitives.tsx +++ b/src/web-ui/src/design-system/preview/registries/primitives.tsx @@ -33,7 +33,9 @@ import { StatusPill, SPARO_ICON_OPTICAL_STROKE_WIDTH, SparoAgentIcon, + SparoLogoCore, SparoLogoMark, + SparoLogoMotion, SparoSubagentIcon, SparoSystemIcon, systemIconNames, @@ -192,6 +194,74 @@ function StatefulNumberField() { ); } +function SparoLogoMotionPreview() { + const [startupRun, setStartupRun] = useState(0); + const samples = [ + { + motion: 'startup' as const, + title: '启动 / Startup', + note: '圆形外场从红色核心向外显现,材质与层级同步聚焦', + }, + { + motion: 'thinking' as const, + title: '思考 / Thinking', + note: '外场保持稳定,红色核心区域轻柔聚能与释放', + }, + { + motion: 'processing' as const, + title: '处理 / Processing', + note: '定向材质高光扫过圆形边界,表达持续执行', + }, + ]; + + return ( +
+
+ {samples.map((sample) => ( +
+ + + {sample.title} + + + {sample.note} + +
+ ))} +
+
+ +
+ + +
+
+
+ ); +} + function StatefulNullableNumberField() { const [value, setValue] = useState(null); return ( @@ -260,19 +330,15 @@ export const primitivePreviewCategories: PreviewCategory[] = [ { id: 'ds-sparo-logo-mark', name: 'Sparo logo mark', - description: 'Vector brand mark with configurable size, stroke width, and currentColor inheritance.', + description: 'Responsive raster brand mark derived from the approved material master.', category: 'ds-primitives', render: () => (
- + + +
), ai: { @@ -282,6 +348,40 @@ export const primitivePreviewCategories: PreviewCategory[] = [ states: ['default', 'theme', 'narrow'], }, }, + { + id: 'ds-sparo-logo-core', + name: 'Sparo logo core', + description: 'Compact source-derived red core shared with the default tray state.', + category: 'ds-primitives', + render: () => ( +
+ + + + + +
+ ), + ai: { + useWhen: ['Compact Sparo OS app chrome should align with the default tray identity'], + composeWith: ['IconButton', 'Toolbar'], + avoid: ['Application icons', 'Large identity moments', 'Replacing the full mark outside compact chrome'], + states: ['default', 'theme', 'narrow'], + }, + }, + { + id: 'ds-sparo-logo-motion', + name: 'Sparo logo motion states', + description: 'Canonical circular material logo mapped to startup, thinking, and processing motion semantics.', + category: 'ds-primitives', + render: () => , + ai: { + useWhen: ['A first-party Sparo OS lifecycle moment needs a recognizable branded state animation'], + composeWith: ['StartupScene', 'EmptyState', 'ToolCard', 'StatusBar'], + avoid: ['Replacing ordinary inline spinners', 'Changing the circular silhouette during thinking', 'Reconstructing the logo geometry in feature code'], + states: ['startup', 'thinking', 'processing', 'narrow', 'theme', 'i18n', 'reduced motion'], + }, + }, { id: 'ds-sparo-system-icons', name: 'Sparo semantic icon families', @@ -316,7 +416,7 @@ export const primitivePreviewCategories: PreviewCategory[] = [ ai: { useWhen: ['A first-party Sparo OS destination, work type, navigation surface, or large-format semantic action needs a recognizable icon'], composeWith: ['Button', 'IconButton', 'DataList', 'Navigation'], - avoid: ['Generic actions that already have a Lucide icon', 'Feature-local copies of the SVG geometry'], + avoid: ['Generic actions that already have a Lucide icon', 'Feature-local redraws or recolored copies'], states: ['default', 'theme', 'narrow'], }, }, diff --git a/src/web-ui/src/design-system/primitives/Alert/Alert.scss b/src/web-ui/src/design-system/primitives/Alert/Alert.scss index 3a9b8e97..89d55499 100644 --- a/src/web-ui/src/design-system/primitives/Alert/Alert.scss +++ b/src/web-ui/src/design-system/primitives/Alert/Alert.scss @@ -28,13 +28,11 @@ } &--error { - border-color: var(--color-error-border); - background: linear-gradient(135deg, - rgba(239, 68, 68, 0.06) 0%, - rgba(239, 68, 68, 0.04) 100%); + border-color: var(--ds-color-danger-border); + background: var(--ds-color-danger-bg); .alert__icon { - color: var(--color-error); + color: var(--ds-color-danger); } .alert__title { diff --git a/src/web-ui/src/design-system/primitives/Badge/Badge.scss b/src/web-ui/src/design-system/primitives/Badge/Badge.scss index 65cf3dee..35533c8f 100644 --- a/src/web-ui/src/design-system/primitives/Badge/Badge.scss +++ b/src/web-ui/src/design-system/primitives/Badge/Badge.scss @@ -44,8 +44,8 @@ } &--error { - background: var(--color-error-bg); - color: var(--color-error); + background: var(--ds-color-danger-bg); + color: var(--ds-color-danger); } &--info { diff --git a/src/web-ui/src/design-system/primitives/Button/Button.scss b/src/web-ui/src/design-system/primitives/Button/Button.scss index 77c8fb43..6686eca2 100644 --- a/src/web-ui/src/design-system/primitives/Button/Button.scss +++ b/src/web-ui/src/design-system/primitives/Button/Button.scss @@ -22,8 +22,8 @@ transition: all var(--motion-fast, 0.15s) var(--easing-standard, cubic-bezier(0.4, 0, 0.2, 1)); &:focus-visible { - outline: 2px solid rgba(96, 165, 250, 0.5); - outline-offset: 1px; + outline: 2px solid var(--ds-focus-ring, var(--color-brand-focus-ring, #C62828)); + outline-offset: 2px; } &-sm { @@ -76,11 +76,7 @@ } &:focus-visible { - outline-color: color-mix( - in srgb, - var(--btn-primary-color, var(--color-accent-500, #60a5fa)) 55%, - transparent - ); + outline-color: var(--ds-focus-ring, var(--color-brand-focus-ring, #C62828)); } } @@ -201,16 +197,16 @@ } &-danger { - background: rgba(199, 112, 112, 0.18); + background: color-mix(in srgb, var(--ds-color-danger) 18%, transparent); color: var(--color-text-primary, #ffffff); &:hover { - background: rgba(199, 112, 112, 0.36); + background: color-mix(in srgb, var(--ds-color-danger) 36%, transparent); color: var(--color-text-primary, #ffffff); } &:active { - background: rgba(199, 112, 112, 0.28); + background: color-mix(in srgb, var(--ds-color-danger) 28%, transparent); } } @@ -237,12 +233,12 @@ .btn.btn-action-danger { &:hover:not(:disabled) { - background: rgba(199, 112, 112, 0.36); + background: color-mix(in srgb, var(--ds-color-danger) 36%, transparent); color: var(--color-text-primary, #ffffff); } &:active:not(:disabled) { - background: rgba(199, 112, 112, 0.28); + background: color-mix(in srgb, var(--ds-color-danger) 28%, transparent); } } diff --git a/src/web-ui/src/design-system/primitives/Checkbox/Checkbox.scss b/src/web-ui/src/design-system/primitives/Checkbox/Checkbox.scss index 1b54d50d..c6dd81ba 100644 --- a/src/web-ui/src/design-system/primitives/Checkbox/Checkbox.scss +++ b/src/web-ui/src/design-system/primitives/Checkbox/Checkbox.scss @@ -132,16 +132,16 @@ } &--error &__box { - border-color: rgba(239, 68, 68, 0.6); + border-color: var(--ds-color-danger-border); } &--error &__input:checked + &__box { - background: rgba(239, 68, 68, 0.1); - border-color: rgba(239, 68, 68, 0.8); + background: var(--ds-color-danger-bg); + border-color: var(--ds-color-danger); } &--error &__input:checked + &__box &__icon { - color: rgb(239, 68, 68); + color: var(--ds-color-danger); } &--small { diff --git a/src/web-ui/src/design-system/primitives/DateRangeDialog/DateRangeDialog.scss b/src/web-ui/src/design-system/primitives/DateRangeDialog/DateRangeDialog.scss index 0a51598e..fc335002 100644 --- a/src/web-ui/src/design-system/primitives/DateRangeDialog/DateRangeDialog.scss +++ b/src/web-ui/src/design-system/primitives/DateRangeDialog/DateRangeDialog.scss @@ -175,7 +175,7 @@ $range-edge-hover: color-mix(in srgb, var(--ds-color-bg-elevated, var(--ds-color &__error { margin: 0; - color: var(--ds-color-danger, var(--color-error)); + color: var(--ds-color-danger); font-size: var(--ds-font-size-xs, 12px); } diff --git a/src/web-ui/src/design-system/primitives/FloatingCard/FloatingCard.scss b/src/web-ui/src/design-system/primitives/FloatingCard/FloatingCard.scss index 14c3beab..3a249ec5 100644 --- a/src/web-ui/src/design-system/primitives/FloatingCard/FloatingCard.scss +++ b/src/web-ui/src/design-system/primitives/FloatingCard/FloatingCard.scss @@ -8,8 +8,10 @@ color: var(--ds-color-text-secondary, var(--color-text-secondary)); animation: ds-floating-card-enter 180ms cubic-bezier(0.16, 1, 0.3, 1); - &:focus { + &:focus, + &:focus-visible { outline: none; + border-radius: var(--ds-radius-2xl, 20px); } &--padding-compact { diff --git a/src/web-ui/src/design-system/primitives/IconButton/IconButton.scss b/src/web-ui/src/design-system/primitives/IconButton/IconButton.scss index 69d07682..0e1dd45a 100644 --- a/src/web-ui/src/design-system/primitives/IconButton/IconButton.scss +++ b/src/web-ui/src/design-system/primitives/IconButton/IconButton.scss @@ -26,7 +26,7 @@ &:hover:not(:disabled) { transform: scale(1.06); background: rgba(255, 255, 255, 0.08); - color: var(--color-accent-500, #60a5fa); + color: var(--ds-color-text-primary, var(--color-text-primary)); } &:active:not(:disabled) { @@ -90,29 +90,29 @@ &:hover:not(:disabled) { background: var(--ds-color-element-soft, rgba(255, 255, 255, 0.08)); - color: var(--ds-color-accent-500, var(--color-accent-500, #60a5fa)); + color: var(--ds-color-text-primary, var(--color-text-primary)); } &:active:not(:disabled) { background: var(--ds-color-element-medium, rgba(255, 255, 255, 0.06)); - color: var(--ds-color-accent-500, var(--color-accent-500, #60a5fa)); + color: var(--ds-color-text-primary, var(--color-text-primary)); } } &--accent { - background: var(--ds-color-accent-500, var(--color-accent-500, #60a5fa)); - color: #ffffff; - box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--ds-color-accent-500, var(--color-accent-500)) 72%, #ffffff 8%); + background: var(--ds-color-brand-action, var(--color-brand-action)); + color: var(--ds-color-brand-on-action, var(--color-brand-on-action)); + box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--ds-color-brand-action, var(--color-brand-action)) 72%, #ffffff 8%); &:hover:not(:disabled) { - background: color-mix(in srgb, var(--ds-color-accent-500, var(--color-accent-500)) 82%, var(--ds-color-bg-app, #0f172a)); - color: #ffffff; - box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--ds-color-accent-500, var(--color-accent-500)) 68%, #ffffff 10%); + background: var(--ds-color-brand-action-hover, var(--color-brand-action-hover)); + color: var(--ds-color-brand-on-action, var(--color-brand-on-action)); + box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--ds-color-brand-action-hover, var(--color-brand-action-hover)) 68%, #ffffff 10%); } &:active:not(:disabled) { - background: color-mix(in srgb, var(--ds-color-accent-500, var(--color-accent-500)) 74%, var(--ds-color-bg-app, #0f172a)); - color: #ffffff; + background: var(--ds-color-brand-action-active, var(--color-brand-action-active)); + color: var(--ds-color-brand-on-action, var(--color-brand-on-action)); } } @@ -126,14 +126,6 @@ &:active:not(:disabled) { @include btn-primary.btn-primary-surface-active; } - - &:focus-visible { - outline-color: color-mix( - in srgb, - var(--btn-primary-bg, var(--color-accent-500, #60a5fa)) 55%, - transparent - ); - } } &--danger { @@ -141,13 +133,13 @@ color: var(--color-text-secondary, #a0a0a0); &:hover:not(:disabled) { - background: rgba(199, 112, 112, 0.28); - color: var(--color-error, #c77070); + background: color-mix(in srgb, var(--ds-color-danger) 18%, transparent); + color: var(--ds-color-danger); } &:active:not(:disabled) { - background: rgba(199, 112, 112, 0.22); - color: var(--color-error, #c77070); + background: color-mix(in srgb, var(--ds-color-danger) 14%, transparent); + color: var(--ds-color-danger); } } @@ -194,23 +186,23 @@ } &--brand { - background: var(--color-error); - color: #ffffff; + background: var(--ds-color-brand-action, var(--color-brand-action, #C62828)); + color: var(--ds-color-brand-on-action, var(--color-brand-on-action, #FFFFFF)); &:hover:not(:disabled) { - background: color-mix(in srgb, var(--color-error) 86%, var(--color-text-primary)); - color: #ffffff; + background: var(--ds-color-brand-action-hover, var(--color-brand-action-hover, #B71C1C)); + color: var(--ds-color-brand-on-action, var(--color-brand-on-action, #FFFFFF)); } &:active:not(:disabled) { - background: color-mix(in srgb, var(--color-error) 78%, var(--color-text-primary)); - color: #ffffff; + background: var(--ds-color-brand-action-active, var(--color-brand-action-active, #981B1B)); + color: var(--ds-color-brand-on-action, var(--color-brand-on-action, #FFFFFF)); } } &:focus-visible { - outline: 2px solid rgba(96, 165, 250, 0.5); - outline-offset: 1px; + outline: 2px solid var(--ds-focus-ring, var(--color-brand-focus-ring, #C62828)); + outline-offset: 2px; } &:disabled { diff --git a/src/web-ui/src/design-system/primitives/Input/Input.scss b/src/web-ui/src/design-system/primitives/Input/Input.scss index ebfe4f7f..01e25ef9 100644 --- a/src/web-ui/src/design-system/primitives/Input/Input.scss +++ b/src/web-ui/src/design-system/primitives/Input/Input.scss @@ -77,19 +77,19 @@ } &--focus-danger { - --ds-input-focus-border: var(--ds-color-danger-border, var(--color-error, #c77070)); + --ds-input-focus-border: var(--ds-color-danger-border); } &--error { .ds-input-container { - border-color: var(--color-error-border, rgba(199, 112, 112, 0.3)) !important; + border-color: var(--ds-color-danger-border) !important; &:hover:not(.ds-input-wrapper--disabled &) { - border-color: var(--color-error, #c77070) !important; + border-color: var(--ds-color-danger) !important; } &:focus-within { - border-color: var(--color-error, #c77070) !important; + border-color: var(--ds-color-danger) !important; } } } @@ -135,11 +135,11 @@ } .ds-input-wrapper--focus-danger .ds-input-container:focus-within { - border-color: var(--ds-color-danger, var(--color-error, #c77070)) !important; + border-color: var(--ds-color-danger) !important; } .ds-input-wrapper--focus-danger:not(.ds-input-wrapper--disabled) .ds-input-container:hover { - border-color: var(--ds-color-danger, var(--color-error, #c77070)); + border-color: var(--ds-color-danger); } .ds-input { @@ -194,6 +194,6 @@ .ds-input-error-message { font-size: var(--font-size-xs, 12px); - color: var(--color-error, #c77070); + color: var(--ds-color-danger); margin-top: -2px; } diff --git a/src/web-ui/src/design-system/primitives/Search/Search.scss b/src/web-ui/src/design-system/primitives/Search/Search.scss index 4579dd94..8894a5bf 100644 --- a/src/web-ui/src/design-system/primitives/Search/Search.scss +++ b/src/web-ui/src/design-system/primitives/Search/Search.scss @@ -197,18 +197,18 @@ &--error { .search__wrapper { - border-color: var(--color-error); + border-color: var(--ds-color-danger); } .search__prefix { - color: var(--color-error); + color: var(--ds-color-danger); } } &__error-message { margin-top: $size-gap-2; font-size: var(--font-size-xs); - color: var(--color-error); + color: var(--ds-color-danger); display: flex; align-items: center; gap: $size-gap-1; diff --git a/src/web-ui/src/design-system/primitives/Select/Select.scss b/src/web-ui/src/design-system/primitives/Select/Select.scss index 773016f9..11471d7e 100644 --- a/src/web-ui/src/design-system/primitives/Select/Select.scss +++ b/src/web-ui/src/design-system/primitives/Select/Select.scss @@ -114,10 +114,10 @@ &--error { .select__trigger { - border-color: var(--color-error-border, rgba(199, 112, 112, 0.3)); + border-color: var(--ds-color-danger-border); &:hover:not(.select--disabled &) { - border-color: var(--color-error, #c77070); + border-color: var(--ds-color-danger); } } } @@ -220,8 +220,8 @@ margin-left: 2px; &:hover { - background: var(--color-error-bg, rgba(199, 112, 112, 0.1)); - color: var(--color-error, #c77070); + background: var(--ds-color-danger-bg); + color: var(--ds-color-danger); } } @@ -250,8 +250,8 @@ line-height: 1; &:hover { - background: var(--color-error-bg, rgba(199, 112, 112, 0.1)); - color: var(--color-error, #c77070); + background: var(--ds-color-danger-bg); + color: var(--ds-color-danger); } } @@ -350,8 +350,8 @@ flex-shrink: 0; &:hover { - background: var(--color-error-bg, rgba(199, 112, 112, 0.1)); - color: var(--color-error, #c77070); + background: var(--ds-color-danger-bg); + color: var(--ds-color-danger); } } @@ -587,7 +587,7 @@ &__error-message { margin-top: 6px; font-size: var(--font-size-xs, 12px); - color: var(--color-error, #c77070); + color: var(--ds-color-danger); display: flex; align-items: center; gap: 4px; diff --git a/src/web-ui/src/design-system/primitives/Status/Status.scss b/src/web-ui/src/design-system/primitives/Status/Status.scss index a5416f7c..5ae23058 100644 --- a/src/web-ui/src/design-system/primitives/Status/Status.scss +++ b/src/web-ui/src/design-system/primitives/Status/Status.scss @@ -36,7 +36,7 @@ } &--error { - --ds-status-color: var(--ds-color-error, var(--color-error)); + --ds-status-color: var(--ds-color-danger); } &--accent { @@ -93,8 +93,8 @@ } &--error { - --ds-status-pill-bg: var(--ds-color-error-bg, var(--color-error-bg)); - --ds-status-pill-text: var(--ds-color-error, var(--color-error)); + --ds-status-pill-bg: var(--ds-color-danger-bg); + --ds-status-pill-text: var(--ds-color-danger); } &--accent { diff --git a/src/web-ui/src/design-system/primitives/Tabs/Tabs.scss b/src/web-ui/src/design-system/primitives/Tabs/Tabs.scss index 6122df50..9e656d17 100644 --- a/src/web-ui/src/design-system/primitives/Tabs/Tabs.scss +++ b/src/web-ui/src/design-system/primitives/Tabs/Tabs.scss @@ -83,8 +83,8 @@ opacity: 1; &:hover { - background: rgba(239, 68, 68, 0.2); - color: #ef4444; + background: color-mix(in srgb, var(--ds-color-danger) 20%, transparent); + color: var(--ds-color-danger); } } } diff --git a/src/web-ui/src/design-system/primitives/Tag/Tag.scss b/src/web-ui/src/design-system/primitives/Tag/Tag.scss index 673d0f57..d9b523db 100644 --- a/src/web-ui/src/design-system/primitives/Tag/Tag.scss +++ b/src/web-ui/src/design-system/primitives/Tag/Tag.scss @@ -45,11 +45,11 @@ } &--red { - background: rgba(239, 68, 68, 0.14); - color: tokens.$color-error; + background: color-mix(in srgb, var(--ds-color-danger) 14%, transparent); + color: var(--ds-color-danger); &:hover { - background: rgba(239, 68, 68, 0.2); + background: color-mix(in srgb, var(--ds-color-danger) 20%, transparent); } } diff --git a/src/web-ui/src/design-system/primitives/Textarea/Textarea.scss b/src/web-ui/src/design-system/primitives/Textarea/Textarea.scss index 30db7a43..20210846 100644 --- a/src/web-ui/src/design-system/primitives/Textarea/Textarea.scss +++ b/src/web-ui/src/design-system/primitives/Textarea/Textarea.scss @@ -15,7 +15,7 @@ } &__required { - color: var(--color-error); + color: var(--ds-color-danger); margin-left: 4px; } @@ -94,7 +94,7 @@ &__error-message { font-size: 12px; - color: var(--color-error); + color: var(--ds-color-danger); line-height: 1.4; } @@ -106,10 +106,10 @@ } &--error &__field { - border-color: var(--color-error-border); + border-color: var(--ds-color-danger-border); &:focus { - border-color: var(--color-error-border); + border-color: var(--ds-color-danger-border); background: var(--element-bg-subtle); } diff --git a/src/web-ui/src/design-system/primitives/WindowControls/WindowControls.scss b/src/web-ui/src/design-system/primitives/WindowControls/WindowControls.scss index 66829c90..0f47a036 100644 --- a/src/web-ui/src/design-system/primitives/WindowControls/WindowControls.scss +++ b/src/web-ui/src/design-system/primitives/WindowControls/WindowControls.scss @@ -85,12 +85,12 @@ &--close { &:hover { background: var(--btn-ghost-hover-bg, rgba(255, 255, 255, 0.06)); - color: var(--window-control-close-hover-color, #ef4444); + color: var(--window-control-close-hover-color, var(--ds-color-danger)); border-color: var(--btn-ghost-hover-border, transparent); } &:focus-visible { - outline-color: var(--window-control-close-hover-color, #ef4444); + outline-color: var(--window-control-close-hover-color, var(--ds-color-danger)); } } diff --git a/src/web-ui/src/design-system/styles/btn-primary-tokens.scss b/src/web-ui/src/design-system/styles/btn-primary-tokens.scss index 96f5e9f6..96f00ccb 100644 --- a/src/web-ui/src/design-system/styles/btn-primary-tokens.scss +++ b/src/web-ui/src/design-system/styles/btn-primary-tokens.scss @@ -1,21 +1,21 @@ // Surfaces that must match theme `components.button.primary`. // ThemeService sets --btn-primary-* on :root when the theme includes components.button. -// Fallbacks mirror the legacy accent-tint primary button when those vars are absent. +// Fallbacks use the contrast-safe brand action roles when runtime variables are absent. @mixin btn-primary-surface-default { - background: var(--btn-primary-bg, var(--color-accent-200, rgba(96, 165, 250, 0.2))); - color: var(--btn-primary-color, var(--color-accent-600, #3b82f6)); + background: var(--btn-primary-bg, var(--color-brand-action, #C62828)); + color: var(--btn-primary-color, var(--color-brand-on-action, #FFFFFF)); box-shadow: var(--btn-primary-shadow, none); } @mixin btn-primary-surface-hover { - background: var(--btn-primary-hover-bg, var(--color-accent-300, rgba(96, 165, 250, 0.3))); - color: var(--btn-primary-hover-color, var(--color-text-primary, #ffffff)); + background: var(--btn-primary-hover-bg, var(--color-brand-action-hover, #B71C1C)); + color: var(--btn-primary-hover-color, var(--color-brand-on-action, #FFFFFF)); box-shadow: var(--btn-primary-hover-shadow, none); } @mixin btn-primary-surface-active { - background: var(--btn-primary-active-bg, var(--color-accent-200, rgba(96, 165, 250, 0.24))); - color: var(--btn-primary-active-color, var(--color-text-primary, #ffffff)); + background: var(--btn-primary-active-bg, var(--color-brand-action-active, #981B1B)); + color: var(--btn-primary-active-color, var(--color-brand-on-action, #FFFFFF)); box-shadow: var(--btn-primary-active-shadow, none); } diff --git a/src/web-ui/src/design-system/styles/tokens.scss b/src/web-ui/src/design-system/styles/tokens.scss index ee8c9419..58736dc9 100644 --- a/src/web-ui/src/design-system/styles/tokens.scss +++ b/src/web-ui/src/design-system/styles/tokens.scss @@ -77,9 +77,11 @@ $color-warning: #c9944d; $color-warning-bg: rgba(201, 148, 77, 0.1); $color-warning-border: rgba(201, 148, 77, 0.3); -$color-error: #c77070; -$color-error-bg: rgba(199, 112, 112, 0.1); -$color-error-border: rgba(199, 112, 112, 0.3); +// Static compatibility fallbacks mirror the accessible Sparo action red. +// Runtime UI must consume --ds-color-danger* from the injected theme contract. +$color-error: #c62828; +$color-error-bg: rgba(198, 40, 40, 0.09); +$color-error-border: rgba(198, 40, 40, 0.28); $color-info: #7096c4; $color-info-bg: rgba(112, 150, 196, 0.1); @@ -105,10 +107,10 @@ $git-color-added: $git-color-staged; $git-color-added-bg: $git-color-staged-bg; $git-color-added-bg-hover: $git-color-staged-bg-hover; -$git-color-deleted: rgb(199, 112, 112); -$git-color-deleted-bg: rgba(199, 112, 112, 0.1); -$git-color-deleted-bg-hover: rgba(199, 112, 112, 0.15); -$git-color-deleted-border: rgba(199, 112, 112, 0.3); +$git-color-deleted: rgb(198, 40, 40); +$git-color-deleted-bg: rgba(198, 40, 40, 0.09); +$git-color-deleted-bg-hover: rgba(198, 40, 40, 0.15); +$git-color-deleted-border: rgba(198, 40, 40, 0.28); $git-color-pull: $git-color-branch; $git-color-pull-bg: $git-color-branch-bg; @@ -158,7 +160,7 @@ $glow-shadow-purple: 0 3px 8px rgba(0, 0, 0, 0.1); $glow-shadow-red: - 0 8px 20px rgba(239, 68, 68, 0.2), + 0 8px 20px rgba(198, 40, 40, 0.2), 0 4px 10px rgba(0, 0, 0, 0.08), inset 0 1px 0 rgba(255, 255, 255, 0.1); @@ -216,9 +218,9 @@ $glass-purple-hover: linear-gradient(135deg, rgba(196, 181, 253, 0.15) 60%, rgba(139, 92, 246, 0.3) 100%); -$glass-red-subtle: rgba(239, 68, 68, 0.05); -$glass-red-base: rgba(239, 68, 68, 0.08); -$glass-red-hover: rgba(239, 68, 68, 0.15); +$glass-red-subtle: rgba(198, 40, 40, 0.05); +$glass-red-base: rgba(198, 40, 40, 0.08); +$glass-red-hover: rgba(198, 40, 40, 0.15); $glass-green-base: rgba(52, 211, 153, 0.08); $glass-green-hover: rgba(52, 211, 153, 0.15); diff --git a/src/web-ui/src/flow_chat/components/ModelSelector.scss b/src/web-ui/src/flow_chat/components/ModelSelector.scss index 2d6284f9..137be8db 100644 --- a/src/web-ui/src/flow_chat/components/ModelSelector.scss +++ b/src/web-ui/src/flow_chat/components/ModelSelector.scss @@ -128,6 +128,30 @@ &__dropdown:hover &__hover-highlight { opacity: 1; } + + &__toolbar { + display: flex; + align-items: center; + justify-content: space-between; + gap: 8px; + min-height: 28px; + padding: 4px 6px 4px 12px; + } + + &__toolbar-label { + min-width: 0; + overflow: hidden; + color: var(--ds-chat-text-muted); + font-size: var(--flowchat-font-size-xxs); + font-weight: 500; + text-overflow: ellipsis; + white-space: nowrap; + } + + & &__thinking-toggle { + flex-shrink: 0; + color: var(--ds-chat-text-muted); + } &__divider { position: relative; diff --git a/src/web-ui/src/flow_chat/components/ModelSelector.tsx b/src/web-ui/src/flow_chat/components/ModelSelector.tsx index 1faf4b4e..ab548bc8 100644 --- a/src/web-ui/src/flow_chat/components/ModelSelector.tsx +++ b/src/web-ui/src/flow_chat/components/ModelSelector.tsx @@ -15,15 +15,17 @@ import React, { useState, useSyncExternalStore, } from 'react'; -import { ChevronDown, Check, Brain } from 'lucide-react'; +import { Brain, Check, ChevronDown, Eye, EyeOff } from 'lucide-react'; import { useTranslation } from 'react-i18next'; +import { useAIExperienceSettings } from '@/infrastructure/config/hooks'; +import { aiExperienceConfigService } from '@/infrastructure/config/services/AIExperienceConfigService'; import { configManager } from '@/infrastructure/config/services/ConfigManager'; import { configSnapshotStore } from '@/infrastructure/config/snapshot/ConfigSnapshotStore'; import { agentAPI } from '@/infrastructure/api/service-api/AgentAPI'; import { getProviderDisplayName } from '@/infrastructure/config/services/modelConfigs'; import { isReasoningVisiblyEnabled } from '@/infrastructure/config/utils/reasoning'; import type { AIModelConfig } from '@/infrastructure/config/types'; -import { Button, PopupMenu, Tooltip } from '@/design-system'; +import { Button, IconButton, PopupMenu, Tooltip } from '@/design-system'; import { FlowChatStore } from '../store/FlowChatStore'; import { flowChatManager } from '../services/FlowChatManager'; import { createLogger } from '@/shared/utils/logger'; @@ -148,6 +150,8 @@ export const ModelSelector: React.FC = ({ const [agentModels, setAgentModels] = useState>({}); // agent_id -> model_id const [dropdownOpen, setDropdownOpen] = useState(false); const [loading, setLoading] = useState(false); + const [thinkingToggleSaving, setThinkingToggleSaving] = useState(false); + const { settings: aiExperienceSettings } = useAIExperienceSettings(); const configSnapshotState = useSyncExternalStore( configSnapshotStore.subscribe, configSnapshotStore.getState, @@ -275,6 +279,27 @@ export const ModelSelector: React.FC = ({ reasoningEffort: m.reasoning_effort, })); }, [allModels]); + + const showCompletedThinkingItem = aiExperienceSettings?.show_completed_thinking_item === true; + const thinkingToggleTooltip = showCompletedThinkingItem + ? t('modelSelector.thinkingShown') + : t('modelSelector.thinkingHidden'); + + const handleToggleCompletedThinkingItems = useCallback(async () => { + if (!aiExperienceSettings || thinkingToggleSaving) return; + + setThinkingToggleSaving(true); + try { + await aiExperienceConfigService.saveSettings({ + ...aiExperienceSettings, + show_completed_thinking_item: !showCompletedThinkingItem, + }); + } catch (error) { + log.error('Failed to toggle completed thinking items', { error }); + } finally { + setThinkingToggleSaving(false); + } + }, [aiExperienceSettings, showCompletedThinkingItem, thinkingToggleSaving]); const handleSelectModel = useCallback(async (modelId: string) => { if (loading) return; @@ -369,6 +394,35 @@ export const ModelSelector: React.FC = ({ } as React.CSSProperties} aria-hidden /> +
+ + {t('modelSelector.modelSelection')} + + { + void handleToggleCompletedThinkingItems(); + }} + > + {showCompletedThinkingItem ? ( + +
+ +
+ {(() => { const primaryModel = allModels.find(m => m.id === defaultModels.primary); const primaryTooltip = primaryModel diff --git a/src/web-ui/src/flow_chat/components/ScrollToLatestBar.scss b/src/web-ui/src/flow_chat/components/ScrollToLatestBar.scss index 69272ba0..397fd444 100644 --- a/src/web-ui/src/flow_chat/components/ScrollToLatestBar.scss +++ b/src/web-ui/src/flow_chat/components/ScrollToLatestBar.scss @@ -74,7 +74,7 @@ // ========== Circle arrow button ========== &__control.icon-btn { --scroll-to-latest-ring-angle: 0turn; - --scroll-to-latest-ring-color: var(--ds-chat-danger, var(--ds-status-surface-danger-fg)); + --scroll-to-latest-ring-color: var(--ds-chat-brand-action); display: flex; align-items: center; @@ -148,7 +148,7 @@ outline: none; .scroll-to-latest-bar__control.icon-btn { - border-color: var(--ds-chat-danger, var(--ds-status-surface-danger-fg)); + border-color: var(--ds-chat-focus-ring); color: var(--ds-chat-text-primary); } } diff --git a/src/web-ui/src/flow_chat/components/composer/ComposerSendAction.tsx b/src/web-ui/src/flow_chat/components/composer/ComposerSendAction.tsx index b6c0cc13..d5427665 100644 --- a/src/web-ui/src/flow_chat/components/composer/ComposerSendAction.tsx +++ b/src/web-ui/src/flow_chat/components/composer/ComposerSendAction.tsx @@ -30,7 +30,7 @@ export function ComposerSendAction({ disabled shape="circle" size="small" - variant="danger" + variant="brand" > @@ -52,7 +52,7 @@ export function ComposerSendAction({ variant="ghost" >
- {hasQueuedInput && 1} + {hasQueuedInput && 1} ); @@ -98,7 +98,7 @@ export function ComposerSendAction({ tooltip={labels.queueShortcut} shape="circle" size="small" - variant="danger" + variant="brand" > @@ -116,7 +116,7 @@ export function ComposerSendAction({ tooltip={labels.sendShortcut} shape="circle" size="small" - variant="danger" + variant="brand" > diff --git a/src/web-ui/src/flow_chat/components/composer/ComposerShell.tsx b/src/web-ui/src/flow_chat/components/composer/ComposerShell.tsx index 5033fecd..9782228f 100644 --- a/src/web-ui/src/flow_chat/components/composer/ComposerShell.tsx +++ b/src/web-ui/src/flow_chat/components/composer/ComposerShell.tsx @@ -49,7 +49,7 @@ const CONTEXT_KIND_META: Record { - void handleAgenticOsCreateSession(); - }} - // Header-level search is hidden while the timeline sidebar is - // open; Ctrl+F routes to the timeline search instead. - searchQuery="" - onSearchChange={() => {}} - searchMatchCount={0} - searchCurrentMatch={0} - onSearchNext={() => {}} - onSearchPrev={() => {}} - onSearchClose={() => {}} - searchOpenRequest={0} + showSearchControl={false} + showGoalControl={false} timelineOpen={timelineOpen} onTimelineOpenChange={setTimelineOpen} forceTimelineEnabled diff --git a/src/web-ui/src/flow_chat/components/modern/ExportImageButton.tsx b/src/web-ui/src/flow_chat/components/modern/ExportImageButton.tsx index eac192ec..4edc562e 100644 --- a/src/web-ui/src/flow_chat/components/modern/ExportImageButton.tsx +++ b/src/web-ui/src/flow_chat/components/modern/ExportImageButton.tsx @@ -173,7 +173,7 @@ export const ExportImageButton: React.FC = ({ img.onload = () => resolve(img); img.onerror = reject; // Cache-bust to avoid stale decoded copies when re-exporting. - img.src = `/sparo-app-icon.png?t=${Date.now()}`; + img.src = `/brand/app-icon-512.png?t=${Date.now()}`; }); } catch (e) { log.warn('Logo preload failed; export will proceed without logo overlay', e); @@ -202,6 +202,7 @@ export const ExportImageButton: React.FC = ({ '--border-base', '--border-medium', '--border-prominent', '--element-bg-base', '--element-bg-soft', '--element-bg-medium', '--element-bg-strong', '--color-success', '--color-success-bg', '--color-warning', '--color-error', + '--ds-color-danger', '--ds-color-danger-bg', '--ds-color-danger-border', '--color-primary', '--color-accent', ]; cssVars.forEach(varName => { diff --git a/src/web-ui/src/flow_chat/components/modern/FlowChatHeader.scss b/src/web-ui/src/flow_chat/components/modern/FlowChatHeader.scss index 88f3e4c3..299751ce 100644 --- a/src/web-ui/src/flow_chat/components/modern/FlowChatHeader.scss +++ b/src/web-ui/src/flow_chat/components/modern/FlowChatHeader.scss @@ -91,8 +91,6 @@ // ==================== Search (right-aligned strip; does not span full header) ==================== &__search-action, - &__thinking-toggle, - &__more-menu-trigger, &__right-panel-toggle, &__sidecar-action, &__sidecar-more { @@ -128,15 +126,6 @@ } } - &__more-wrap { - position: relative; - flex: 0 0 auto; - } - - &__thinking-toggle { - color: var(--ds-chat-text-secondary); - } - &__search { flex: 0 1 auto; min-width: 0; diff --git a/src/web-ui/src/flow_chat/components/modern/FlowChatHeader.tsx b/src/web-ui/src/flow_chat/components/modern/FlowChatHeader.tsx index cdf15f81..8685e2e6 100644 --- a/src/web-ui/src/flow_chat/components/modern/FlowChatHeader.tsx +++ b/src/web-ui/src/flow_chat/components/modern/FlowChatHeader.tsx @@ -3,31 +3,26 @@ * * The session title and the "return to Agentic OS" button have been moved to * UnifiedTopBar so the whole application shares a single top chrome. - * Agentic OS: reset and thinking display live under a "more" menu on - * the right; other sessions keep the inline thinking toggle. Session files badge - * stays on the left. + * Agentic OS session creation/reset lives in its timeline. Thinking display + * is controlled from the Chat Input model selector across session types. + * Session files badge stays on the left. */ -import React, { useEffect, useRef, useState, useCallback, useMemo } from 'react'; +import React, { useEffect, useRef, useState, useCallback } from 'react'; import { ChevronDown, ChevronUp, - Eye, - EyeOff, List, - MoreVertical, Search, X, } from 'lucide-react'; import { - DropdownMenu, IconButton, Input, PanelRightClosedIcon, PanelRightOpenIcon, SPARO_ICON_OPTICAL_STROKE_WIDTH, } from '@/design-system'; -import type { DropdownMenuEntry } from '@/design-system'; import { useTranslation } from 'react-i18next'; import { selectActiveAuxiliaryHostState, @@ -37,14 +32,9 @@ import { import { SessionFilesBadge } from './SessionFilesBadge'; import { FlowChatSidecarActions } from './FlowChatSidecarActions'; import GoalHeaderControl from '../goal/GoalHeaderControl'; -import { useAIExperienceSettings } from '@/infrastructure/config/hooks'; -import { aiExperienceConfigService } from '@/infrastructure/config/services/AIExperienceConfigService'; -import { createLogger } from '@/shared/utils/logger'; import type { FlowChatSidecarActionViewModel } from './useSessionSidecarActions'; import './FlowChatHeader.scss'; -const log = createLogger('FlowChatHeader'); - export interface FlowChatHeaderTurnSummary { turnId: string; turnIndex: number; @@ -82,6 +72,8 @@ export interface FlowChatHeaderProps { onSearchClose?: () => void; /** Increments each time the parent requests to open the search bar (e.g. Ctrl+F). */ searchOpenRequest?: number; + /** Whether to render the header-level message search control. */ + showSearchControl?: boolean; /** Timeline sidebar open state (controlled by parent). */ timelineOpen?: boolean; @@ -100,12 +92,8 @@ export interface FlowChatHeaderProps { timelinePanelId?: string; /** Test id for the timeline toggle. */ timelineControlTestId?: string; - - /** - * Agentic OS: start a new backend session; shown to the user as - * resetting history rather than "new session". - */ - onResetHistory?: () => void; + /** Whether to render the session-scoped goal control. */ + showGoalControl?: boolean; /** Profile-declared right-panel actions for this session. */ sidecarActions?: FlowChatSidecarActionViewModel[]; @@ -124,6 +112,7 @@ export const FlowChatHeader: React.FC = ({ onSearchPrev, onSearchClose, searchOpenRequest = 0, + showSearchControl = true, timelineOpen = false, onTimelineOpenChange, forceTimelineEnabled = false, @@ -131,15 +120,12 @@ export const FlowChatHeader: React.FC = ({ showTimelineControl = true, timelinePanelId = 'agentic-os-timeline-sidebar', timelineControlTestId = 'flowchat-header-timeline', - onResetHistory, + showGoalControl = true, sidecarActions = [], }) => { const { t } = useTranslation('flow-chat'); const [isSearchOpen, setIsSearchOpen] = useState(false); - const { settings: aiExperienceSettings } = useAIExperienceSettings(); const searchInputRef = useRef(null); - const sessionMoreMenuAnchorRef = useRef(null); - const [sessionMoreMenuOpen, setSessionMoreMenuOpen] = useState(false); const activeAuxiliaryHost = useAuxiliarySurfaceStore(selectActiveAuxiliaryHostState); const timelineTooltip = @@ -147,13 +133,8 @@ export const FlowChatHeader: React.FC = ({ t('flowChatHeader.timeline', { defaultValue: 'Timeline', }); - const keepThinkingItemEnabled = aiExperienceSettings?.show_completed_thinking_item === true; - const thinkingItemToggleTooltip = keepThinkingItemEnabled - ? t('flowChatHeader.hideCompletedThinkingItems', { defaultValue: 'Hide completed thinking items' }) - : t('flowChatHeader.showCompletedThinkingItems', { defaultValue: 'Show completed thinking items' }); const hasTimelineNavigation = showTimelineControl && (forceTimelineEnabled || (turns.length > 0 && !!onJumpToTurn)); - const moreMenuLabel = t('flowChatHeader.moreMenu', { defaultValue: 'More' }); const rightPanelOpen = activeAuxiliaryHost?.presentation === 'docked'; const rightPanelLabel = rightPanelOpen ? t('flowChatHeader.collapseRightPanel', { defaultValue: 'Collapse right panel' }) @@ -221,57 +202,6 @@ export const FlowChatHeader: React.FC = ({ onTimelineOpenChange?.(!timelineOpen); }; - const handleToggleCompletedThinkingItems = useCallback(async () => { - if (!aiExperienceSettings) return; - const nextSettings = { - ...aiExperienceSettings, - show_completed_thinking_item: !keepThinkingItemEnabled, - }; - try { - await aiExperienceConfigService.saveSettings(nextSettings); - } catch (error) { - log.error('Failed to toggle completed thinking items', { error }); - } - }, [aiExperienceSettings, keepThinkingItemEnabled]); - - const agenticOsSessionMenuItems = useMemo((): DropdownMenuEntry[] => { - if (!onResetHistory) return []; - const entries: DropdownMenuEntry[] = []; - if (aiExperienceSettings) { - entries.push({ - type: 'item', - id: 'thinking-settings', - label: t('flowChatHeader.showCompletedThinkingInConversation', { - defaultValue: 'Show/hide thinking', - }), - checked: keepThinkingItemEnabled, - onClick: () => { - void handleToggleCompletedThinkingItems(); - }, - }); - entries.push({ type: 'separator', id: 'agentic-os-session-menu-sep' }); - } - entries.push({ - type: 'item', - id: 'reset-session', - label: t('flowChatHeader.resetSession', { defaultValue: 'Reset session' }), - onClick: onResetHistory, - }); - return entries; - }, [ - onResetHistory, - aiExperienceSettings, - keepThinkingItemEnabled, - t, - handleToggleCompletedThinkingItems, - ]); - - useEffect(() => { - if (!visible) { - setSessionMoreMenuOpen(false); - } - }, [visible]); - if (!visible) { return null; } @@ -282,12 +212,12 @@ export const FlowChatHeader: React.FC = ({
- {!timelineOpen && !isSearchOpen && !onResetHistory ? ( + {!timelineOpen && !isSearchOpen && showGoalControl ? ( ) : null}
- {!timelineOpen && isSearchOpen ? ( + {showSearchControl && !timelineOpen && isSearchOpen ? (
= ({
) : null} - {!timelineOpen && !isSearchOpen && !onResetHistory && aiExperienceSettings ? ( - { - void handleToggleCompletedThinkingItems(); - }} - tooltip={thinkingItemToggleTooltip} - aria-label={thinkingItemToggleTooltip} - aria-pressed={keepThinkingItemEnabled} - data-testid="flowchat-header-thinking-toggle" - > - {keepThinkingItemEnabled ? : } - - ) : null} {!timelineOpen && !isSearchOpen && sidecarActions.length > 0 ? ( ) : null} - {!timelineOpen && !isSearchOpen && ( + {showSearchControl && !timelineOpen && !isSearchOpen && ( = ({
) : null} - {onResetHistory ? ( -
- setSessionMoreMenuOpen(v => !v)} - tooltip={moreMenuLabel} - aria-label={moreMenuLabel} - aria-haspopup="menu" - aria-expanded={sessionMoreMenuOpen} - data-testid="flowchat-header-session-more" - > - - - setSessionMoreMenuOpen(false)} - align="right" - minWidth={180} - /> -
- ) : null} ({ monacoThemeSync: { syncTheme: vi.fn() }, })); +import { applyCssVars, createThemeCssVarMap } from '@/design-system'; import { ThemeService } from './ThemeService'; function deferred(): { @@ -75,7 +76,7 @@ describe('ThemeService config synchronization', () => { expect(configManagerMock.setSetting).not.toHaveBeenCalled(); }); - it('fails closed when the authoritative projection cannot be loaded', async () => { + it('keeps complete bootstrap tokens while authoritative loading fails closed', async () => { configManagerMock.getSetting.mockRejectedValueOnce(new Error('snapshot unavailable')); const service = new ThemeService(); @@ -84,7 +85,11 @@ describe('ThemeService config synchronization', () => { expect(service.getCurrentThemeId()).toBeNull(); expect(service.getResolvedThemeId()).toBeNull(); expect(() => service.getCurrentTheme()).toThrow('no authoritative current theme'); - expect(document.documentElement.dataset.theme).toBeUndefined(); + expect(document.documentElement.dataset.theme).toBe('light'); + expect(createThemeCssVarMap).toHaveBeenCalledWith( + expect.objectContaining({ id: 'light' }), + ); + expect(applyCssVars).toHaveBeenCalled(); }); it('rejects legacy theme aliases instead of translating them', async () => { @@ -94,7 +99,7 @@ describe('ThemeService config synchronization', () => { await expect(service.initialize()).rejects.toThrow('Unknown current theme id: sparo-dark'); expect(service.getCurrentThemeId()).toBeNull(); - expect(document.documentElement.dataset.theme).toBeUndefined(); + expect(document.documentElement.dataset.theme).toBe('light'); }); it('does not apply a requested theme when persistence fails', async () => { diff --git a/src/web-ui/src/infrastructure/theme/core/ThemeService.ts b/src/web-ui/src/infrastructure/theme/core/ThemeService.ts index f917b11f..a107c5eb 100644 --- a/src/web-ui/src/infrastructure/theme/core/ThemeService.ts +++ b/src/web-ui/src/infrastructure/theme/core/ThemeService.ts @@ -96,6 +96,7 @@ export class ThemeService { async initialize(): Promise { this.initializing = true; + this.injectBootstrapFallbackTheme(); this.ensureConfigWatch(); try { const storedConfig = await this.loadStoredThemesConfig(); @@ -114,6 +115,35 @@ export class ThemeService { } } } + + /** + * Installs a complete built-in token map before the asynchronous Catalog + * projection is available. This is visual fallback only: authoritative + * selection state remains unset until configuration loads successfully. + */ + private injectBootstrapFallbackTheme(): void { + if (typeof document === 'undefined') { + return; + } + + const root = document.documentElement; + const cachedThemeId = root.dataset.theme; + const cachedThemeType = root.dataset.themeType; + const fallbackId = cachedThemeId && this.themes.has(cachedThemeId) + ? cachedThemeId + : cachedThemeType === 'dark' || cachedThemeType === 'light' + ? cachedThemeType + : getSystemPreferredDefaultThemeId(); + const fallbackTheme = this.themes.get(fallbackId); + + if (!fallbackTheme) { + log.error('Builtin fallback theme is unavailable', { fallbackId }); + return; + } + + this.injectCSSVariables(fallbackTheme); + log.debug('Installed bootstrap theme tokens', { fallbackId }); + } private async loadStoredThemesConfig(): Promise { return parseStoredThemesConfig( diff --git a/src/web-ui/src/infrastructure/theme/presets/dark-theme.ts b/src/web-ui/src/infrastructure/theme/presets/dark-theme.ts index 7c270bb5..2c6beb5e 100644 --- a/src/web-ui/src/infrastructure/theme/presets/dark-theme.ts +++ b/src/web-ui/src/infrastructure/theme/presets/dark-theme.ts @@ -1,6 +1,7 @@ import { ThemeConfig } from '../types'; +import { SPARO_BRAND, SPARO_BRAND_FOCUS_RING, sparoBrandAlpha } from './sparo-brand'; /** Default Sparo OS dark preset — aligns accent with the Light theme ink-red ramp. */ export const darkTheme: ThemeConfig = { @@ -30,17 +31,22 @@ export const darkTheme: ThemeConfig = { muted: '#858585', disabled: '#555555', }, + + brand: { + ...SPARO_BRAND, + focusRing: SPARO_BRAND_FOCUS_RING.dark, + }, accent: { - 50: 'rgba(183, 55, 47, 0.05)', - 100: 'rgba(183, 55, 47, 0.09)', - 200: 'rgba(183, 55, 47, 0.14)', - 300: 'rgba(183, 55, 47, 0.24)', - 400: 'rgba(183, 55, 47, 0.42)', - 500: '#B7372F', - 600: '#9E2F29', - 700: 'rgba(158, 47, 41, 0.88)', - 800: 'rgba(128, 36, 32, 0.94)', + 50: sparoBrandAlpha(SPARO_BRAND_FOCUS_RING.dark, 0.05), + 100: sparoBrandAlpha(SPARO_BRAND_FOCUS_RING.dark, 0.09), + 200: sparoBrandAlpha(SPARO_BRAND_FOCUS_RING.dark, 0.14), + 300: sparoBrandAlpha(SPARO_BRAND_FOCUS_RING.dark, 0.24), + 400: sparoBrandAlpha(SPARO_BRAND_FOCUS_RING.dark, 0.42), + 500: SPARO_BRAND_FOCUS_RING.dark, + 600: SPARO_BRAND_FOCUS_RING.dark, + 700: SPARO_BRAND.actionHover, + 800: SPARO_BRAND.actionActive, }, purple: { @@ -64,16 +70,16 @@ export const darkTheme: ThemeConfig = { warningBg: 'rgba(245, 158, 11, 0.1)', warningBorder: 'rgba(245, 158, 11, 0.3)', - error: '#B7372F', - errorBg: 'rgba(183, 55, 47, 0.12)', - errorBorder: 'rgba(183, 55, 47, 0.35)', + error: SPARO_BRAND_FOCUS_RING.dark, + errorBg: sparoBrandAlpha(SPARO_BRAND_FOCUS_RING.dark, 0.12), + errorBorder: sparoBrandAlpha(SPARO_BRAND_FOCUS_RING.dark, 0.35), info: '#a1a1aa', infoBg: 'rgba(255, 255, 255, 0.08)', infoBorder: 'rgba(255, 255, 255, 0.22)', - highlight: '#B7372F', - highlightBg: 'rgba(183, 55, 47, 0.14)', + highlight: SPARO_BRAND_FOCUS_RING.dark, + highlightBg: sparoBrandAlpha(SPARO_BRAND_FOCUS_RING.dark, 0.14), }, border: { @@ -100,8 +106,8 @@ export const darkTheme: ThemeConfig = { changesBg: 'rgba(245, 158, 11, 0.1)', added: 'rgb(34, 197, 94)', addedBg: 'rgba(34, 197, 94, 0.1)', - deleted: 'rgb(239, 68, 68)', - deletedBg: 'rgba(239, 68, 68, 0.1)', + deleted: SPARO_BRAND_FOCUS_RING.dark, + deletedBg: sparoBrandAlpha(SPARO_BRAND_FOCUS_RING.dark, 0.1), staged: 'rgb(34, 197, 94)', stagedBg: 'rgba(34, 197, 94, 0.1)', }, @@ -124,9 +130,9 @@ export const darkTheme: ThemeConfig = { }, glow: { - blue: '0 12px 32px rgba(183, 55, 47, 0.18), 0 6px 16px rgba(183, 55, 47, 0.1), 0 3px 8px rgba(0, 0, 0, 0.12)', + blue: `0 12px 32px ${sparoBrandAlpha(SPARO_BRAND.action, 0.18)}, 0 6px 16px ${sparoBrandAlpha(SPARO_BRAND.action, 0.1)}, 0 3px 8px rgba(0, 0, 0, 0.12)`, purple: '0 12px 32px rgba(139, 92, 246, 0.22), 0 6px 16px rgba(124, 58, 237, 0.14), 0 3px 8px rgba(0, 0, 0, 0.12)', - mixed: '0 12px 32px rgba(255, 255, 255, 0.06), 0 6px 16px rgba(183, 55, 47, 0.1), 0 3px 8px rgba(0, 0, 0, 0.12)', + mixed: `0 12px 32px rgba(255, 255, 255, 0.06), 0 6px 16px ${sparoBrandAlpha(SPARO_BRAND.action, 0.1)}, 0 3px 8px rgba(0, 0, 0, 0.12)`, }, blur: { @@ -240,18 +246,18 @@ export const darkTheme: ThemeConfig = { hoverShadow: '0 2px 8px rgba(0, 0, 0, 0.25), inset 0 1px 0 rgba(255, 255, 255, 0.08)', }, close: { - dot: 'rgba(239, 68, 68, 0.45)', - dotShadow: '0 0 4px rgba(239, 68, 68, 0.2)', - hoverBg: 'rgba(239, 68, 68, 0.12)', - hoverColor: '#ef4444', - hoverBorder: 'rgba(239, 68, 68, 0.2)', - hoverShadow: '0 2px 8px rgba(239, 68, 68, 0.15), inset 0 1px 0 rgba(255, 255, 255, 0.1)', + dot: sparoBrandAlpha(SPARO_BRAND_FOCUS_RING.dark, 0.45), + dotShadow: `0 0 4px ${sparoBrandAlpha(SPARO_BRAND_FOCUS_RING.dark, 0.2)}`, + hoverBg: sparoBrandAlpha(SPARO_BRAND_FOCUS_RING.dark, 0.12), + hoverColor: SPARO_BRAND_FOCUS_RING.dark, + hoverBorder: sparoBrandAlpha(SPARO_BRAND_FOCUS_RING.dark, 0.2), + hoverShadow: `0 2px 8px ${sparoBrandAlpha(SPARO_BRAND_FOCUS_RING.dark, 0.15)}, inset 0 1px 0 rgba(255, 255, 255, 0.1)`, }, common: { defaultColor: 'rgba(232, 232, 232, 0.9)', defaultDot: 'rgba(255, 255, 255, 0.2)', disabledDot: 'rgba(255, 255, 255, 0.1)', - flowGradient: 'linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.04), rgba(183, 55, 47, 0.1), rgba(255, 255, 255, 0.04), transparent)', + flowGradient: 'linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.04), transparent)', }, }, @@ -281,23 +287,23 @@ export const darkTheme: ThemeConfig = { primary: { default: { - background: '#B7372F', - color: '#FFFFFF', + background: SPARO_BRAND.action, + color: SPARO_BRAND.onAction, border: 'transparent', - shadow: '0 2px 8px rgba(183, 55, 47, 0.22)', + shadow: `0 2px 8px ${sparoBrandAlpha(SPARO_BRAND.action, 0.22)}`, }, hover: { - background: '#9E2F29', - color: '#FFFFFF', + background: SPARO_BRAND.actionHover, + color: SPARO_BRAND.onAction, border: 'transparent', - shadow: '0 4px 14px rgba(183, 55, 47, 0.28)', + shadow: `0 4px 14px ${sparoBrandAlpha(SPARO_BRAND.action, 0.28)}`, transform: 'none', }, active: { - background: '#802420', - color: '#FFFFFF', + background: SPARO_BRAND.actionActive, + color: SPARO_BRAND.onAction, border: 'transparent', - shadow: '0 2px 8px rgba(183, 55, 47, 0.22)', + shadow: `0 2px 8px ${sparoBrandAlpha(SPARO_BRAND.action, 0.22)}`, transform: 'none', }, }, @@ -339,8 +345,8 @@ export const darkTheme: ThemeConfig = { background: '#121214', foreground: '#e8e8e8', lineHighlight: '#18181a', - selection: 'rgba(183, 55, 47, 0.28)', - cursor: '#B7372F', + selection: sparoBrandAlpha(SPARO_BRAND_FOCUS_RING.dark, 0.28), + cursor: SPARO_BRAND_FOCUS_RING.dark, }, }, }; diff --git a/src/web-ui/src/infrastructure/theme/presets/light-theme.ts b/src/web-ui/src/infrastructure/theme/presets/light-theme.ts index 58ba87f9..c719918d 100644 --- a/src/web-ui/src/infrastructure/theme/presets/light-theme.ts +++ b/src/web-ui/src/infrastructure/theme/presets/light-theme.ts @@ -1,4 +1,5 @@ import { ThemeConfig } from '../types'; +import { SPARO_BRAND, SPARO_BRAND_FOCUS_RING, sparoBrandAlpha } from './sparo-brand'; export const lightTheme: ThemeConfig = { id: 'light', @@ -30,16 +31,21 @@ export const lightTheme: ThemeConfig = { disabled: 'rgba(91, 107, 140, 0.56)', }, + brand: { + ...SPARO_BRAND, + focusRing: SPARO_BRAND_FOCUS_RING.light, + }, + accent: { - 50: 'rgba(183, 55, 47, 0.045)', - 100: 'rgba(183, 55, 47, 0.08)', - 200: 'rgba(183, 55, 47, 0.13)', - 300: 'rgba(183, 55, 47, 0.22)', - 400: 'rgba(183, 55, 47, 0.42)', - 500: '#B7372F', - 600: '#9E2F29', - 700: 'rgba(158, 47, 41, 0.88)', - 800: 'rgba(128, 36, 32, 0.94)', + 50: sparoBrandAlpha(SPARO_BRAND.action, 0.045), + 100: sparoBrandAlpha(SPARO_BRAND.action, 0.08), + 200: sparoBrandAlpha(SPARO_BRAND.action, 0.13), + 300: sparoBrandAlpha(SPARO_BRAND.action, 0.22), + 400: sparoBrandAlpha(SPARO_BRAND.action, 0.42), + 500: SPARO_BRAND.action, + 600: SPARO_BRAND.actionHover, + 700: SPARO_BRAND.actionActive, + 800: SPARO_BRAND.actionActive, }, purple: { @@ -63,16 +69,16 @@ export const lightTheme: ThemeConfig = { warningBg: 'rgba(184, 132, 43, 0.1)', warningBorder: 'rgba(184, 132, 43, 0.28)', - error: '#B7372F', - errorBg: 'rgba(183, 55, 47, 0.09)', - errorBorder: 'rgba(183, 55, 47, 0.28)', + error: SPARO_BRAND.action, + errorBg: sparoBrandAlpha(SPARO_BRAND.action, 0.09), + errorBorder: sparoBrandAlpha(SPARO_BRAND.action, 0.28), info: '#5B6B8C', infoBg: 'rgba(91, 107, 140, 0.1)', infoBorder: 'rgba(91, 107, 140, 0.25)', - highlight: '#B7372F', - highlightBg: 'rgba(183, 55, 47, 0.11)', + highlight: SPARO_BRAND.action, + highlightBg: sparoBrandAlpha(SPARO_BRAND.action, 0.11), }, border: { @@ -99,8 +105,8 @@ export const lightTheme: ThemeConfig = { changesBg: 'rgba(184, 132, 43, 0.09)', added: '#12B76A', addedBg: 'rgba(18, 183, 106, 0.12)', - deleted: '#B7372F', - deletedBg: 'rgba(183, 55, 47, 0.09)', + deleted: SPARO_BRAND.action, + deletedBg: sparoBrandAlpha(SPARO_BRAND.action, 0.09), staged: '#12B76A', stagedBg: 'rgba(18, 183, 106, 0.12)', }, @@ -124,7 +130,7 @@ export const lightTheme: ThemeConfig = { glow: { blue: '0 10px 28px rgba(15, 23, 42, 0.06), 0 4px 14px rgba(91, 107, 140, 0.06)', purple: '0 10px 28px rgba(91, 107, 140, 0.08), 0 4px 14px rgba(15, 23, 42, 0.05)', - mixed: '0 10px 28px rgba(183, 55, 47, 0.08), 0 4px 14px rgba(15, 23, 42, 0.05)', + mixed: `0 10px 28px ${sparoBrandAlpha(SPARO_BRAND.action, 0.08)}, 0 4px 14px rgba(15, 23, 42, 0.05)`, }, blur: { @@ -234,18 +240,18 @@ export const lightTheme: ThemeConfig = { hoverShadow: '0 2px 8px rgba(15, 23, 42, 0.07), inset 0 1px 0 rgba(255, 255, 255, 0.9)', }, close: { - dot: 'rgba(183, 55, 47, 0.55)', - dotShadow: '0 0 4px rgba(183, 55, 47, 0.18)', - hoverBg: 'rgba(183, 55, 47, 0.12)', - hoverColor: '#B7372F', - hoverBorder: 'rgba(183, 55, 47, 0.24)', - hoverShadow: '0 2px 8px rgba(183, 55, 47, 0.14), inset 0 1px 0 rgba(255, 255, 255, 0.85)', + dot: sparoBrandAlpha(SPARO_BRAND.action, 0.55), + dotShadow: `0 0 4px ${sparoBrandAlpha(SPARO_BRAND.action, 0.18)}`, + hoverBg: sparoBrandAlpha(SPARO_BRAND.action, 0.12), + hoverColor: SPARO_BRAND.action, + hoverBorder: sparoBrandAlpha(SPARO_BRAND.action, 0.24), + hoverShadow: `0 2px 8px ${sparoBrandAlpha(SPARO_BRAND.action, 0.14)}, inset 0 1px 0 rgba(255, 255, 255, 0.85)`, }, common: { defaultColor: 'rgba(15, 23, 42, 0.92)', defaultDot: 'rgba(91, 107, 140, 0.28)', disabledDot: 'rgba(91, 107, 140, 0.16)', - flowGradient: 'linear-gradient(90deg, transparent, rgba(91, 107, 140, 0.05), rgba(183, 55, 47, 0.08), rgba(91, 107, 140, 0.05), transparent)', + flowGradient: 'linear-gradient(90deg, transparent, rgba(91, 107, 140, 0.05), rgba(91, 107, 140, 0.08), rgba(91, 107, 140, 0.05), transparent)', }, }, @@ -273,23 +279,23 @@ export const lightTheme: ThemeConfig = { primary: { default: { - background: '#B7372F', - color: '#FFFFFF', + background: SPARO_BRAND.action, + color: SPARO_BRAND.onAction, border: 'transparent', - shadow: '0 2px 8px rgba(183, 55, 47, 0.18)', + shadow: `0 2px 8px ${sparoBrandAlpha(SPARO_BRAND.action, 0.18)}`, }, hover: { - background: '#9E2F29', - color: '#FFFFFF', + background: SPARO_BRAND.actionHover, + color: SPARO_BRAND.onAction, border: 'transparent', - shadow: '0 4px 14px rgba(183, 55, 47, 0.22)', + shadow: `0 4px 14px ${sparoBrandAlpha(SPARO_BRAND.action, 0.22)}`, transform: 'none', }, active: { - background: '#802420', - color: '#FFFFFF', + background: SPARO_BRAND.actionActive, + color: SPARO_BRAND.onAction, border: 'transparent', - shadow: '0 2px 8px rgba(183, 55, 47, 0.18)', + shadow: `0 2px 8px ${sparoBrandAlpha(SPARO_BRAND.action, 0.18)}`, transform: 'none', }, }, @@ -341,18 +347,18 @@ export const lightTheme: ThemeConfig = { background: '#F8FAFC', foreground: '#0F172A', lineHighlight: '#F1F5F9', - selection: 'rgba(183, 55, 47, 0.16)', - cursor: '#B7372F', + selection: sparoBrandAlpha(SPARO_BRAND.action, 0.16), + cursor: SPARO_BRAND.action, - 'editor.selectionBackground': 'rgba(183, 55, 47, 0.16)', + 'editor.selectionBackground': sparoBrandAlpha(SPARO_BRAND.action, 0.16), 'editor.selectionForeground': '#0F172A', 'editor.inactiveSelectionBackground': 'rgba(15, 23, 42, 0.08)', - 'editor.selectionHighlightBackground': 'rgba(183, 55, 47, 0.1)', - 'editor.selectionHighlightBorder': 'rgba(183, 55, 47, 0.22)', - 'editorCursor.foreground': '#B7372F', + 'editor.selectionHighlightBackground': sparoBrandAlpha(SPARO_BRAND.action, 0.1), + 'editor.selectionHighlightBorder': sparoBrandAlpha(SPARO_BRAND.action, 0.22), + 'editorCursor.foreground': SPARO_BRAND.action, 'editor.wordHighlightBackground': 'rgba(15, 23, 42, 0.06)', - 'editor.wordHighlightStrongBackground': 'rgba(183, 55, 47, 0.1)', + 'editor.wordHighlightStrongBackground': sparoBrandAlpha(SPARO_BRAND.action, 0.1), }, }, }; diff --git a/src/web-ui/src/infrastructure/theme/presets/sparo-brand.test.ts b/src/web-ui/src/infrastructure/theme/presets/sparo-brand.test.ts new file mode 100644 index 00000000..66894681 --- /dev/null +++ b/src/web-ui/src/infrastructure/theme/presets/sparo-brand.test.ts @@ -0,0 +1,64 @@ +import { describe, expect, it } from 'vitest'; +import { createThemeCssVarMap } from '@/design-system'; +import { darkTheme } from './dark-theme'; +import { lightTheme } from './light-theme'; +import { SPARO_BRAND, SPARO_BRAND_FOCUS_RING, sparoBrandAlpha } from './sparo-brand'; + +function relativeLuminance(hex: string): number { + const channels = hex + .match(/[a-f\d]{2}/gi) + ?.map((channel) => Number.parseInt(channel, 16) / 255) + .map((channel) => ( + channel <= 0.04045 + ? channel / 12.92 + : ((channel + 0.055) / 1.055) ** 2.4 + )); + + if (!channels || channels.length !== 3) { + throw new Error(`Expected a six-digit hex color, received ${hex}`); + } + + return 0.2126 * channels[0] + 0.7152 * channels[1] + 0.0722 * channels[2]; +} + +function contrastRatio(foreground: string, background: string): number { + const foregroundLuminance = relativeLuminance(foreground); + const backgroundLuminance = relativeLuminance(background); + const lighter = Math.max(foregroundLuminance, backgroundLuminance); + const darker = Math.min(foregroundLuminance, backgroundLuminance); + return (lighter + 0.05) / (darker + 0.05); +} + +describe('Sparo brand theme roles', () => { + it('keeps the logo core red separate from the accessible action role', () => { + const lightVars = createThemeCssVarMap(lightTheme); + + expect(lightVars['--ds-color-brand-core']).toBe('#E53935'); + expect(lightVars['--ds-color-brand-action']).toBe(SPARO_BRAND.action); + expect(lightVars['--ds-color-danger']).toBe(SPARO_BRAND.action); + expect(lightTheme.components?.button?.primary.default.background) + .toBe(SPARO_BRAND.action); + }); + + it('meets contrast requirements for action labels and focus indicators', () => { + expect(contrastRatio(SPARO_BRAND.onAction, SPARO_BRAND.action)).toBeGreaterThanOrEqual(4.5); + expect(contrastRatio(SPARO_BRAND_FOCUS_RING.light, lightTheme.colors.background.secondary)) + .toBeGreaterThanOrEqual(3); + expect(contrastRatio(SPARO_BRAND_FOCUS_RING.dark, darkTheme.colors.background.secondary)) + .toBeGreaterThanOrEqual(3); + }); + + it('uses one high-contrast red role for focus and danger on dark surfaces', () => { + const darkVars = createThemeCssVarMap(darkTheme); + + expect(darkVars['--ds-focus-ring']).toBe(SPARO_BRAND_FOCUS_RING.dark); + expect(darkVars['--ds-color-danger']).toBe(SPARO_BRAND_FOCUS_RING.dark); + }); + + it('derives translucent roles from canonical colors instead of separate red literals', () => { + expect(sparoBrandAlpha(SPARO_BRAND.action, 0.12)).toBe('rgba(198, 40, 40, 0.12)'); + expect(lightTheme.colors.semantic.errorBg).toBe(sparoBrandAlpha(SPARO_BRAND.action, 0.09)); + expect(darkTheme.colors.semantic.errorBg) + .toBe(sparoBrandAlpha(SPARO_BRAND_FOCUS_RING.dark, 0.12)); + }); +}); diff --git a/src/web-ui/src/infrastructure/theme/presets/sparo-brand.ts b/src/web-ui/src/infrastructure/theme/presets/sparo-brand.ts new file mode 100644 index 00000000..824b9729 --- /dev/null +++ b/src/web-ui/src/infrastructure/theme/presets/sparo-brand.ts @@ -0,0 +1,33 @@ +/** + * Product UI roles derived from the canonical Sparo Core Red (#E53935). + * + * The logo keeps the canonical color. Solid controls use a darker action red + * so white labels meet WCAG AA. Focus rings are theme-specific so they remain + * visible against both light and dark surfaces. + */ +export const SPARO_BRAND = { + core: '#E53935', + action: '#C62828', + actionHover: '#B71C1C', + actionActive: '#981B1B', + onAction: '#FFFFFF', +} as const; + +export const SPARO_BRAND_FOCUS_RING = { + light: SPARO_BRAND.action, + dark: '#FF6B64', +} as const; + +/** Build translucent roles from a canonical brand color without duplicating RGB literals. */ +export function sparoBrandAlpha(color: string, alpha: number): string { + const normalized = color.replace(/^#/, ''); + if (!/^[0-9a-f]{6}$/i.test(normalized)) { + throw new Error(`Expected a six-digit hex color, received: ${color}`); + } + + const red = Number.parseInt(normalized.slice(0, 2), 16); + const green = Number.parseInt(normalized.slice(2, 4), 16); + const blue = Number.parseInt(normalized.slice(4, 6), 16); + const clampedAlpha = Math.min(1, Math.max(0, alpha)); + return `rgba(${red}, ${green}, ${blue}, ${clampedAlpha})`; +} diff --git a/src/web-ui/src/infrastructure/theme/types/index.ts b/src/web-ui/src/infrastructure/theme/types/index.ts index 93813a82..7d8df331 100644 --- a/src/web-ui/src/infrastructure/theme/types/index.ts +++ b/src/web-ui/src/infrastructure/theme/types/index.ts @@ -51,6 +51,18 @@ export interface AccentColors { 800: ColorValue; } +export interface BrandColors { + /** Canonical color used by the logo and brand assets. */ + core: ColorValue; + /** Contrast-safe fill for primary actions. */ + action: ColorValue; + actionHover: ColorValue; + actionActive: ColorValue; + onAction: ColorValue; + /** Theme-specific keyboard focus indicator. */ + focusRing: ColorValue; +} + export interface SemanticColors { success: ColorValue; @@ -393,6 +405,7 @@ export interface ThemeConfig { colors: { background: BackgroundColors; text: TextColors; + brand?: BrandColors; accent: AccentColors; purple?: AccentColors; semantic: SemanticColors; diff --git a/src/web-ui/src/locales/en-US/design-system/preview.json b/src/web-ui/src/locales/en-US/design-system/preview.json index 504cd82c..90933267 100644 --- a/src/web-ui/src/locales/en-US/design-system/preview.json +++ b/src/web-ui/src/locales/en-US/design-system/preview.json @@ -89,7 +89,11 @@ "examples": { "ds-sparo-logo-mark": { "name": "Sparo logo mark", - "description": "Vector brand mark with configurable size, stroke width, and currentColor inheritance." + "description": "Responsive vector brand mark with target-specific geometry below 64 px." + }, + "ds-sparo-logo-core": { + "name": "Sparo logo core", + "description": "Compact source-derived red core shared with the default tray state." }, "ds-sparo-system-icons": { "name": "Sparo semantic icon families", diff --git a/src/web-ui/src/locales/en-US/flow-chat.json b/src/web-ui/src/locales/en-US/flow-chat.json index 2115c29d..de8d5223 100644 --- a/src/web-ui/src/locales/en-US/flow-chat.json +++ b/src/web-ui/src/locales/en-US/flow-chat.json @@ -383,14 +383,8 @@ "searchNext": "Next matching turn", "searchClose": "Close search", "searchOpen": "Search in turns", - "hideCompletedThinkingItems": "Hide completed thinking items", - "showCompletedThinkingItems": "Show completed thinking items", "expandRightPanel": "Expand right panel", "collapseRightPanel": "Collapse right panel", - "resetHistory": "Reset history", - "moreMenu": "More", - "showCompletedThinkingInConversation": "Show/hide thinking", - "resetSession": "Reset session", "sidecar": { "groupLabel": "Session panels", "more": "More panels", @@ -564,7 +558,9 @@ "currentMode": "Current Mode", "primaryModel": "Primary Model", "fastModel": "Fast Model", - "modelNotConfigured": "Not Configured" + "modelNotConfigured": "Not Configured", + "thinkingShown": "Thinking history is shown", + "thinkingHidden": "Thinking history is hidden" }, "reasoningEffort": { "title": "Reasoning Effort", diff --git a/src/web-ui/src/locales/en-US/shell/navigation.json b/src/web-ui/src/locales/en-US/shell/navigation.json index 032be592..73b4b2a3 100644 --- a/src/web-ui/src/locales/en-US/shell/navigation.json +++ b/src/web-ui/src/locales/en-US/shell/navigation.json @@ -1132,7 +1132,7 @@ }, "workDock": { "label": "Work Dock", - "title": "Work", + "title": "Agent work status", "subtitle": "{{count}} in focus", "searchPlaceholder": "Search work...", "filterNoMatch": "No matching work", @@ -1141,7 +1141,9 @@ "retry": "Retry", "pinKeepOpen": "Keep open", "unpinKeepOpen": "Unpin keep-open", + "collapse": "Collapse work status", "openWorkList": "Open work quick view", + "idleHint": "Hover to view work status", "openWorkCenter": "Open work center", "openWorkCenterShort": "Center", "openWork": "Open work", @@ -1153,6 +1155,7 @@ "recentWorksGroupLabel": "Recent", "newWorkButton": "Start new work", "createTitle": "Create Work", + "definitionHint": "Define this work in one sentence", "modeAriaLabel": "Work start mode", "modeManual": "I choose", "modeAgenticOs": "Delegate to OS", diff --git a/src/web-ui/src/locales/zh-CN/design-system/preview.json b/src/web-ui/src/locales/zh-CN/design-system/preview.json index 071b4da4..598e73f0 100644 --- a/src/web-ui/src/locales/zh-CN/design-system/preview.json +++ b/src/web-ui/src/locales/zh-CN/design-system/preview.json @@ -89,7 +89,11 @@ "examples": { "ds-sparo-logo-mark": { "name": "Sparo 标志", - "description": "支持尺寸、描边宽度和 currentColor 继承的矢量品牌标志。" + "description": "64 像素以下自动使用对应尺寸几何的响应式矢量品牌标志。" + }, + "ds-sparo-logo-core": { + "name": "Sparo Logo 内核", + "description": "与默认托盘状态共用的紧凑红色内核。" }, "ds-sparo-system-icons": { "name": "Sparo 语义图标族", diff --git a/src/web-ui/src/locales/zh-CN/flow-chat.json b/src/web-ui/src/locales/zh-CN/flow-chat.json index 5d83fb3f..a5213870 100644 --- a/src/web-ui/src/locales/zh-CN/flow-chat.json +++ b/src/web-ui/src/locales/zh-CN/flow-chat.json @@ -383,14 +383,8 @@ "searchNext": "下一个匹配轮次", "searchClose": "关闭搜索", "searchOpen": "搜索对话轮次", - "hideCompletedThinkingItems": "隐藏已完成的思考条目", - "showCompletedThinkingItems": "显示已完成的思考条目", "expandRightPanel": "展开右侧面板", "collapseRightPanel": "收起右侧面板", - "resetHistory": "重置历史", - "moreMenu": "更多", - "showCompletedThinkingInConversation": "显示/隐藏思考", - "resetSession": "重置会话", "sidecar": { "groupLabel": "会话面板", "more": "更多面板", @@ -564,7 +558,9 @@ "currentMode": "当前模式", "primaryModel": "Primary 模型", "fastModel": "Fast 模型", - "modelNotConfigured": "未配置" + "modelNotConfigured": "未配置", + "thinkingShown": "思考记录已显示", + "thinkingHidden": "思考记录已隐藏" }, "reasoningEffort": { "title": "推理深度", diff --git a/src/web-ui/src/locales/zh-CN/shell/navigation.json b/src/web-ui/src/locales/zh-CN/shell/navigation.json index 730a980a..18b3a1df 100644 --- a/src/web-ui/src/locales/zh-CN/shell/navigation.json +++ b/src/web-ui/src/locales/zh-CN/shell/navigation.json @@ -1132,7 +1132,7 @@ }, "workDock": { "label": "工作栏", - "title": "工作", + "title": "Agent工作状态", "subtitle": "{{count}} 个焦点", "searchPlaceholder": "搜索工作...", "filterNoMatch": "没有匹配的工作", @@ -1141,7 +1141,9 @@ "retry": "重试", "pinKeepOpen": "保持展开", "unpinKeepOpen": "取消保持", + "collapse": "收起工作状态", "openWorkList": "打开工作快览", + "idleHint": "悬停以查看工作状态", "openWorkCenter": "打开工作中心", "openWorkCenterShort": "中心", "openWork": "打开工作", @@ -1153,6 +1155,7 @@ "recentWorksGroupLabel": "最近", "newWorkButton": "启动新工作", "createTitle": "创建 Work", + "definitionHint": "用一句话定义这项工作", "modeAriaLabel": "Work 启动方式", "modeManual": "我来指定", "modeAgenticOs": "交给 OS", diff --git a/src/web-ui/src/main.tsx b/src/web-ui/src/main.tsx index 44539e49..dcaac96c 100644 --- a/src/web-ui/src/main.tsx +++ b/src/web-ui/src/main.tsx @@ -1,4 +1,8 @@ import ReactDOM from "react-dom/client"; +import { + dismissInlineSplash, + forceDismissInlineSplash, +} from './boot/startupSplash'; import { installGlobalSurfaceEscapeToHome } from "./app/globalOverlayEscape"; import App from "./app/App"; import AgentCompanionDesktopPet from "./app/components/AgentCompanionDesktopPet/AgentCompanionDesktopPet"; @@ -351,20 +355,6 @@ async function initializeAfterRender(): Promise { * * Idempotent: safe to call from multiple subscribers / safety timers. */ -let splashDismissed = false; -function dismissInlineSplash(): void { - if (splashDismissed) return; - splashDismissed = true; - const splash = document.getElementById('sparo-splash'); - if (!splash) return; - splash.dataset.leaving = '1'; - // Match the 360ms CSS opacity transition; remove afterwards so it doesn't - // intercept events even though it already has `pointer-events: none`. - window.setTimeout(() => { - splash.parentNode?.removeChild(splash); - }, 400); -} - /** * Subscribe to the boot-stage bridge and dismiss the splash on the first * stage that means the shell can take over (`workspaceReady`) — or @@ -399,9 +389,9 @@ function wireSplashDismissalToBootStage(): void { }); window.setTimeout(() => { - if (!splashDismissed) { + if (document.getElementById('sparo-splash')) { log.warn('Splash watchdog firing — backend never reported workspaceReady'); - dismissInlineSplash(); + forceDismissInlineSplash(); } }, 8000); } diff --git a/src/web-ui/src/tools/design-canvas/DesignTokensStudio.scss b/src/web-ui/src/tools/design-canvas/DesignTokensStudio.scss index 52b8e408..d961d2d1 100644 --- a/src/web-ui/src/tools/design-canvas/DesignTokensStudio.scss +++ b/src/web-ui/src/tools/design-canvas/DesignTokensStudio.scss @@ -203,7 +203,7 @@ } &__save-error { - color: var(--ds-color-error); + color: var(--ds-color-danger); } &__editable-value { @@ -278,9 +278,9 @@ &__editor-error { padding: 10px 12px; border-radius: 8px; - border: 1px solid var(--ds-color-error-border); - background: var(--ds-color-error-bg); - color: var(--ds-color-error); + border: 1px solid var(--ds-color-danger-border); + background: var(--ds-color-danger-bg); + color: var(--ds-color-danger); font-size: var(--ds-font-size-xs); } diff --git a/src/web-ui/src/tools/design-canvas/DesignTokensStudio.tsx b/src/web-ui/src/tools/design-canvas/DesignTokensStudio.tsx index c628ce01..2a4f5aff 100644 --- a/src/web-ui/src/tools/design-canvas/DesignTokensStudio.tsx +++ b/src/web-ui/src/tools/design-canvas/DesignTokensStudio.tsx @@ -328,7 +328,7 @@ export const DesignTokensStudio: React.FC = ({ artifactId, scopePath }) = '--dt-accent': resolve('accent', 'primary', 'brand') || 'var(--ds-color-accent-500)', '--dt-success': resolve('success') || 'var(--ds-color-success)', '--dt-warning': resolve('warning') || resolve('accent', 'primary') || 'var(--ds-color-warning)', - '--dt-danger': resolve('danger', 'error') || 'var(--ds-color-error)', + '--dt-danger': resolve('danger', 'error') || 'var(--ds-color-danger)', '--dt-font': family, '--dt-font-mono': monoFamily, '--dt-font-display': resolvedCanonical['--dt-font-display'], diff --git a/src/web-ui/src/tools/file-system/styles/FileExplorer.scss b/src/web-ui/src/tools/file-system/styles/FileExplorer.scss index 1c643653..8a93cc86 100644 --- a/src/web-ui/src/tools/file-system/styles/FileExplorer.scss +++ b/src/web-ui/src/tools/file-system/styles/FileExplorer.scss @@ -317,7 +317,7 @@ $_indent-width: 8px; } &--html { - color: var(--ds-language-html-fg, var(--ds-color-danger)); + color: var(--ds-language-html-fg, var(--ds-color-accent-500)); } &--css { @@ -357,7 +357,7 @@ $_indent-width: 8px; } &--video { - color: var(--ds-color-danger); + color: var(--ds-color-purple-500, var(--ds-color-text-secondary)); } &--archive { diff --git a/src/web-ui/src/tools/markdown/tiptap/components/TiptapEditor.tsx b/src/web-ui/src/tools/markdown/tiptap/components/TiptapEditor.tsx index 573c8b4e..51a6208a 100644 --- a/src/web-ui/src/tools/markdown/tiptap/components/TiptapEditor.tsx +++ b/src/web-ui/src/tools/markdown/tiptap/components/TiptapEditor.tsx @@ -18,7 +18,7 @@ import type { Editor as TiptapEditorInstance, JSONContent } from '@tiptap/core'; import type { Node as ProseMirrorNode } from '@tiptap/pm/model'; import { Selection, TextSelection } from '@tiptap/pm/state'; import { useI18n } from '@/infrastructure/i18n'; -import { Button, IconButton, Input } from '@/design-system'; +import { Button, IconButton, Input, SparoLogoMark } from '@/design-system'; import { markdownAiAPI } from '@/infrastructure/api/service-api/MarkdownAiAPI'; import { notificationService } from '@/shared/notification-system'; import { createLogger } from '@/shared/utils/logger'; @@ -3041,7 +3041,7 @@ export const TiptapEditor = React.forwardRef - +